This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
postgresql markers missing arguments
- From: William Cohen <wcohen at redhat dot com>
- To: SystemTAP <systemtap at sources dot redhat dot com>
- Date: Mon, 21 Jun 2010 14:25:51 -0400
- Subject: postgresql markers missing arguments
I was working on a demonstration of the postgresql marker for Fedora-13 and I found that some of the systemtap markers are missing their arguments.
>From the postgresql srpm in postgresql-8.4/src/backend/utils/probes.h have the following:
/* TRACE_POSTGRESQL_TRANSACTION_START ( unsigned int) */
#define TRACE_POSTGRESQL_TRANSACTION_START_ENABLED() transaction__start_semaphore
__extension__ extern unsigned short transaction__start_semaphore __attribute__ (
(unused)) __attribute__ ((section (".probes")));
#define TRACE_POSTGRESQL_TRANSACTION_START(arg1) \
STAP_PROBE1(provider,transaction__start,arg1)
/* TRACE_POSTGRESQL_TRANSACTION_COMMIT ( unsigned int) */
#define TRACE_POSTGRESQL_TRANSACTION_COMMIT_ENABLED() transaction__commit_semaphore
__extension__ extern unsigned short transaction__commit_semaphore __attribute__
((unused)) __attribute__ ((section (".probes")));
#define TRACE_POSTGRESQL_TRANSACTION_COMMIT(arg1) \
STAP_PROBE1(provider,transaction__commit,arg1)
/* TRACE_POSTGRESQL_TRANSACTION_ABORT ( unsigned int) */
#define TRACE_POSTGRESQL_TRANSACTION_ABORT_ENABLED() transaction__abort_semaphore
__extension__ extern unsigned short transaction__abort_semaphore __attribute__ (
(unused)) __attribute__ ((section (".probes")));
#define TRACE_POSTGRESQL_TRANSACTION_ABORT(arg1) \
STAP_PROBE1(provider,transaction__abort,arg1)
See the macros used in postgresql-8.4.2/src/backend/access/transam/xact.c.
And postgresql-8.4.2src/backend/utils/probes.d has:
probe transaction__start(LocalTransactionId);
probe transaction__commit(LocalTransactionId);
probe transaction__abort(LocalTransactionId);
However, listing out the probe the transaction__abort and transaction__commit are missing arguments:
$ stap -L 'process("./src/backend/postgres").mark("trans*")' | sort
process("./src/backend/postgres").mark("transaction__abort")
process("./src/backend/postgres").mark("transaction__commit")
process("./src/backend/postgres").mark("transaction__start") $arg1:LocalTransactionId
Is the compiler optimizing out some of the marker arguments?
-Will