diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-16 19:46:48 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-16 19:46:48 +0000 |
commit | 311bcfc6b3acdd6fd152798c7f287ddf74fa2a98 (patch) | |
tree | 0ec307299b1dada3701e42f4ca6eda57d708261e /src/backend/utils/probes.d | |
parent | Initial commit. (diff) | |
download | postgresql-15-upstream.tar.xz postgresql-15-upstream.zip |
Adding upstream version 15.4.upstream/15.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/backend/utils/probes.d')
-rw-r--r-- | src/backend/utils/probes.d | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d new file mode 100644 index 0000000..3ebbcf8 --- /dev/null +++ b/src/backend/utils/probes.d @@ -0,0 +1,94 @@ +/* ---------- + * DTrace probes for PostgreSQL backend + * + * Copyright (c) 2006-2022, PostgreSQL Global Development Group + * + * src/backend/utils/probes.d + * ---------- + */ + + +/* + * Typedefs used in PostgreSQL probes. + * + * NOTE: Do not use system-provided typedefs (e.g. uintptr_t, uint32_t, etc) + * in probe definitions, as they cause compilation errors on macOS. + */ +#define LocalTransactionId unsigned int +#define LWLockMode int +#define LOCKMODE int +#define BlockNumber unsigned int +#define Oid unsigned int +#define ForkNumber int +#define bool unsigned char + +provider postgresql { + + probe transaction__start(LocalTransactionId); + probe transaction__commit(LocalTransactionId); + probe transaction__abort(LocalTransactionId); + + probe lwlock__acquire(const char *, LWLockMode); + probe lwlock__release(const char *); + probe lwlock__wait__start(const char *, LWLockMode); + probe lwlock__wait__done(const char *, LWLockMode); + probe lwlock__condacquire(const char *, LWLockMode); + probe lwlock__condacquire__fail(const char *, LWLockMode); + probe lwlock__acquire__or__wait(const char *, LWLockMode); + probe lwlock__acquire__or__wait__fail(const char *, LWLockMode); + + 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); + + 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, int); + probe sort__done(bool, long); + + probe buffer__read__start(ForkNumber, BlockNumber, Oid, Oid, Oid, int, bool); + probe buffer__read__done(ForkNumber, BlockNumber, Oid, Oid, Oid, int, bool, bool); + probe buffer__flush__start(ForkNumber, BlockNumber, Oid, Oid, Oid); + probe buffer__flush__done(ForkNumber, BlockNumber, Oid, Oid, Oid); + + probe buffer__checkpoint__start(int); + probe buffer__checkpoint__sync__start(); + probe buffer__checkpoint__done(); + probe buffer__sync__start(int, int); + probe buffer__sync__written(int); + probe buffer__sync__done(int, int, int); + probe buffer__write__dirty__start(ForkNumber, BlockNumber, Oid, Oid, Oid); + probe buffer__write__dirty__done(ForkNumber, BlockNumber, Oid, Oid, Oid); + + probe deadlock__found(); + + probe checkpoint__start(int); + probe checkpoint__done(int, int, int, int, int); + 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(); + + 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); + + probe wal__insert(unsigned char, unsigned char); + probe wal__switch(); + probe wal__buffer__write__dirty__start(); + probe wal__buffer__write__dirty__done(); +}; |