2006-07-24 18:32:45 +02:00
|
|
|
/* ----------
|
|
|
|
* DTrace probes for PostgreSQL backend
|
|
|
|
*
|
2011-01-01 19:18:15 +01:00
|
|
|
* Copyright (c) 2006-2011, PostgreSQL Global Development Group
|
2006-07-24 18:32:45 +02:00
|
|
|
*
|
2010-09-20 22:08:53 +02:00
|
|
|
* src/backend/utils/probes.d
|
2006-07-24 18:32:45 +02:00
|
|
|
* ----------
|
|
|
|
*/
|
|
|
|
|
2008-08-01 15:16:09 +02:00
|
|
|
|
2009-03-12 00:19:25 +01:00
|
|
|
/*
|
|
|
|
* Typedefs used in PostgreSQL.
|
|
|
|
*
|
|
|
|
* NOTE: Do not use system-provided typedefs (e.g. uintptr_t, uint32_t, etc)
|
|
|
|
* in probe definitions, as they cause compilation errors on Mac OS X 10.5.
|
|
|
|
*/
|
2008-12-17 02:39:04 +01:00
|
|
|
#define LocalTransactionId unsigned int
|
|
|
|
#define LWLockId int
|
|
|
|
#define LWLockMode int
|
|
|
|
#define LOCKMODE int
|
|
|
|
#define BlockNumber unsigned int
|
|
|
|
#define Oid unsigned int
|
|
|
|
#define ForkNumber int
|
2008-08-01 15:16:09 +02:00
|
|
|
#define bool char
|
|
|
|
|
2006-07-24 18:32:45 +02:00
|
|
|
provider postgresql {
|
|
|
|
|
2008-08-01 15:16:09 +02:00
|
|
|
probe transaction__start(LocalTransactionId);
|
|
|
|
probe transaction__commit(LocalTransactionId);
|
|
|
|
probe transaction__abort(LocalTransactionId);
|
|
|
|
|
|
|
|
probe lwlock__acquire(LWLockId, LWLockMode);
|
|
|
|
probe lwlock__release(LWLockId);
|
|
|
|
probe lwlock__wait__start(LWLockId, LWLockMode);
|
|
|
|
probe lwlock__wait__done(LWLockId, LWLockMode);
|
|
|
|
probe lwlock__condacquire(LWLockId, LWLockMode);
|
|
|
|
probe lwlock__condacquire__fail(LWLockId, LWLockMode);
|
|
|
|
|
2009-03-23 02:52:38 +01:00
|
|
|
probe lock__wait__start(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, LOCKMODE);
|
|
|
|
probe lock__wait__done(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, LOCKMODE);
|
2008-08-01 15:16:09 +02:00
|
|
|
|
|
|
|
probe query__parse__start(const char *);
|
|
|
|
probe query__parse__done(const char *);
|
|
|
|
probe query__rewrite__start(const char *);
|
|
|
|
probe query__rewrite__done(const char *);
|
|
|
|
probe query__plan__start();
|
|
|
|
probe query__plan__done();
|
|
|
|
probe query__execute__start();
|
|
|
|
probe query__execute__done();
|
|
|
|
probe query__start(const char *);
|
|
|
|
probe query__done(const char *);
|
|
|
|
probe statement__status(const char *);
|
|
|
|
|
|
|
|
probe sort__start(int, bool, int, int, bool);
|
2009-03-12 00:19:25 +01:00
|
|
|
probe sort__done(bool, long);
|
2008-08-01 15:16:09 +02:00
|
|
|
|
2010-08-14 00:54:17 +02:00
|
|
|
probe buffer__read__start(ForkNumber, BlockNumber, Oid, Oid, Oid, int, bool);
|
2010-08-13 22:10:54 +02:00
|
|
|
probe buffer__read__done(ForkNumber, BlockNumber, Oid, Oid, Oid, int, bool, bool);
|
2010-08-14 04:22:10 +02:00
|
|
|
probe buffer__flush__start(ForkNumber, BlockNumber, Oid, Oid, Oid);
|
|
|
|
probe buffer__flush__done(ForkNumber, BlockNumber, Oid, Oid, Oid);
|
2008-08-01 15:16:09 +02:00
|
|
|
|
|
|
|
probe buffer__checkpoint__start(int);
|
2008-12-17 02:39:04 +01:00
|
|
|
probe buffer__checkpoint__sync__start();
|
2008-08-01 15:16:09 +02:00
|
|
|
probe buffer__checkpoint__done();
|
|
|
|
probe buffer__sync__start(int, int);
|
|
|
|
probe buffer__sync__written(int);
|
|
|
|
probe buffer__sync__done(int, int, int);
|
2008-12-17 02:39:04 +01:00
|
|
|
probe buffer__write__dirty__start(ForkNumber, BlockNumber, Oid, Oid, Oid);
|
|
|
|
probe buffer__write__dirty__done(ForkNumber, BlockNumber, Oid, Oid, Oid);
|
2008-08-01 15:16:09 +02:00
|
|
|
|
|
|
|
probe deadlock__found();
|
2006-07-24 18:32:45 +02:00
|
|
|
|
2008-12-17 02:39:04 +01:00
|
|
|
probe checkpoint__start(int);
|
|
|
|
probe checkpoint__done(int, int, int, int, int);
|
2008-08-01 15:16:09 +02:00
|
|
|
probe clog__checkpoint__start(bool);
|
|
|
|
probe clog__checkpoint__done(bool);
|
|
|
|
probe subtrans__checkpoint__start(bool);
|
|
|
|
probe subtrans__checkpoint__done(bool);
|
|
|
|
probe multixact__checkpoint__start(bool);
|
|
|
|
probe multixact__checkpoint__done(bool);
|
|
|
|
probe twophase__checkpoint__start();
|
|
|
|
probe twophase__checkpoint__done();
|
2008-12-17 02:39:04 +01:00
|
|
|
|
2010-08-13 22:10:54 +02:00
|
|
|
probe smgr__md__read__start(ForkNumber, BlockNumber, Oid, Oid, Oid, int);
|
|
|
|
probe smgr__md__read__done(ForkNumber, BlockNumber, Oid, Oid, Oid, int, int, int);
|
|
|
|
probe smgr__md__write__start(ForkNumber, BlockNumber, Oid, Oid, Oid, int);
|
|
|
|
probe smgr__md__write__done(ForkNumber, BlockNumber, Oid, Oid, Oid, int, int, int);
|
2008-12-17 02:39:04 +01:00
|
|
|
|
|
|
|
probe xlog__insert(unsigned char, unsigned char);
|
|
|
|
probe xlog__switch();
|
2008-12-24 21:41:29 +01:00
|
|
|
probe wal__buffer__write__dirty__start();
|
|
|
|
probe wal__buffer__write__dirty__done();
|
2006-07-24 18:32:45 +02:00
|
|
|
};
|