Specify SDT probe argument types in the probe definition itself rather than

using SDT_PROBE_ARGTYPE(). This will make it easy to extend the SDT(9) API
to allow probes with dynamically-translated types.

There is no functional change.

MFC after:	2 weeks
This commit is contained in:
Mark Johnston 2013-08-15 04:08:55 +00:00
parent 3d2bc9e872
commit 7b77e1fe0f
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=254350
8 changed files with 129 additions and 218 deletions

View File

@ -96,12 +96,9 @@ dtrace_execexit_func_t dtrace_fasttrap_exec;
#endif
SDT_PROVIDER_DECLARE(proc);
SDT_PROBE_DEFINE(proc, kernel, , exec, exec);
SDT_PROBE_ARGTYPE(proc, kernel, , exec, 0, "char *");
SDT_PROBE_DEFINE(proc, kernel, , exec_failure, exec-failure);
SDT_PROBE_ARGTYPE(proc, kernel, , exec_failure, 0, "int");
SDT_PROBE_DEFINE(proc, kernel, , exec_success, exec-success);
SDT_PROBE_ARGTYPE(proc, kernel, , exec_success, 0, "char *");
SDT_PROBE_DEFINE1(proc, kernel, , exec, exec, "char *");
SDT_PROBE_DEFINE1(proc, kernel, , exec_failure, exec-failure, "int");
SDT_PROBE_DEFINE1(proc, kernel, , exec_success, exec-success, "char *");
MALLOC_DEFINE(M_PARGS, "proc-args", "Process arguments");

View File

@ -94,8 +94,7 @@ dtrace_execexit_func_t dtrace_fasttrap_exit;
#endif
SDT_PROVIDER_DECLARE(proc);
SDT_PROBE_DEFINE(proc, kernel, , exit, exit);
SDT_PROBE_ARGTYPE(proc, kernel, , exit, 0, "int");
SDT_PROBE_DEFINE1(proc, kernel, , exit, exit, "int");
/* Hook for NFS teardown procedure. */
void (*nlminfo_release_p)(struct proc *p);

View File

@ -89,10 +89,8 @@ dtrace_fork_func_t dtrace_fasttrap_fork;
#endif
SDT_PROVIDER_DECLARE(proc);
SDT_PROBE_DEFINE(proc, kernel, , create, create);
SDT_PROBE_ARGTYPE(proc, kernel, , create, 0, "struct proc *");
SDT_PROBE_ARGTYPE(proc, kernel, , create, 1, "struct proc *");
SDT_PROBE_ARGTYPE(proc, kernel, , create, 2, "int");
SDT_PROBE_DEFINE3(proc, kernel, , create, create, "struct proc *",
"struct proc *", "int");
#ifndef _SYS_SYSPROTO_H_
struct fork_args {

View File

@ -92,33 +92,18 @@ __FBSDID("$FreeBSD$");
#endif
SDT_PROVIDER_DEFINE(proc);
SDT_PROBE_DEFINE(proc, kernel, ctor, entry, entry);
SDT_PROBE_ARGTYPE(proc, kernel, ctor, entry, 0, "struct proc *");
SDT_PROBE_ARGTYPE(proc, kernel, ctor, entry, 1, "int");
SDT_PROBE_ARGTYPE(proc, kernel, ctor, entry, 2, "void *");
SDT_PROBE_ARGTYPE(proc, kernel, ctor, entry, 3, "int");
SDT_PROBE_DEFINE(proc, kernel, ctor, return, return);
SDT_PROBE_ARGTYPE(proc, kernel, ctor, return, 0, "struct proc *");
SDT_PROBE_ARGTYPE(proc, kernel, ctor, return, 1, "int");
SDT_PROBE_ARGTYPE(proc, kernel, ctor, return, 2, "void *");
SDT_PROBE_ARGTYPE(proc, kernel, ctor, return, 3, "int");
SDT_PROBE_DEFINE(proc, kernel, dtor, entry, entry);
SDT_PROBE_ARGTYPE(proc, kernel, dtor, entry, 0, "struct proc *");
SDT_PROBE_ARGTYPE(proc, kernel, dtor, entry, 1, "int");
SDT_PROBE_ARGTYPE(proc, kernel, dtor, entry, 2, "void *");
SDT_PROBE_ARGTYPE(proc, kernel, dtor, entry, 3, "struct thread *");
SDT_PROBE_DEFINE(proc, kernel, dtor, return, return);
SDT_PROBE_ARGTYPE(proc, kernel, dtor, return, 0, "struct proc *");
SDT_PROBE_ARGTYPE(proc, kernel, dtor, return, 1, "int");
SDT_PROBE_ARGTYPE(proc, kernel, dtor, return, 2, "void *");
SDT_PROBE_DEFINE(proc, kernel, init, entry, entry);
SDT_PROBE_ARGTYPE(proc, kernel, init, entry, 0, "struct proc *");
SDT_PROBE_ARGTYPE(proc, kernel, init, entry, 1, "int");
SDT_PROBE_ARGTYPE(proc, kernel, init, entry, 2, "int");
SDT_PROBE_DEFINE(proc, kernel, init, return, return);
SDT_PROBE_ARGTYPE(proc, kernel, init, return, 0, "struct proc *");
SDT_PROBE_ARGTYPE(proc, kernel, init, return, 1, "int");
SDT_PROBE_ARGTYPE(proc, kernel, init, return, 2, "int");
SDT_PROBE_DEFINE4(proc, kernel, ctor, entry, entry, "struct proc *", "int",
"void *", "int");
SDT_PROBE_DEFINE4(proc, kernel, ctor, return, return, "struct proc *", "int",
"void *", "int");
SDT_PROBE_DEFINE4(proc, kernel, dtor, entry, entry, "struct proc *", "int",
"void *", "struct thread *");
SDT_PROBE_DEFINE3(proc, kernel, dtor, return, return, "struct proc *", "int",
"void *");
SDT_PROBE_DEFINE3(proc, kernel, init, entry, entry, "struct proc *", "int",
"int");
SDT_PROBE_DEFINE3(proc, kernel, init, return, return, "struct proc *", "int",
"int");
MALLOC_DEFINE(M_PGRP, "pgrp", "process group header");
MALLOC_DEFINE(M_SESSION, "session", "session header");

View File

@ -93,17 +93,12 @@ __FBSDID("$FreeBSD$");
#define ONSIG 32 /* NSIG for osig* syscalls. XXX. */
SDT_PROVIDER_DECLARE(proc);
SDT_PROBE_DEFINE(proc, kernel, , signal_send, signal-send);
SDT_PROBE_ARGTYPE(proc, kernel, , signal_send, 0, "struct thread *");
SDT_PROBE_ARGTYPE(proc, kernel, , signal_send, 1, "struct proc *");
SDT_PROBE_ARGTYPE(proc, kernel, , signal_send, 2, "int");
SDT_PROBE_DEFINE(proc, kernel, , signal_clear, signal-clear);
SDT_PROBE_ARGTYPE(proc, kernel, , signal_clear, 0, "int");
SDT_PROBE_ARGTYPE(proc, kernel, , signal_clear, 1, "ksiginfo_t *");
SDT_PROBE_DEFINE(proc, kernel, , signal_discard, signal-discard);
SDT_PROBE_ARGTYPE(proc, kernel, , signal_discard, 0, "struct thread *");
SDT_PROBE_ARGTYPE(proc, kernel, , signal_discard, 1, "struct proc *");
SDT_PROBE_ARGTYPE(proc, kernel, , signal_discard, 2, "int");
SDT_PROBE_DEFINE3(proc, kernel, , signal_send, signal-send, "struct thread *",
"struct proc *", "int");
SDT_PROBE_DEFINE2(proc, kernel, , signal_clear, signal-clear, "int",
"ksiginfo_t *");
SDT_PROBE_DEFINE3(proc, kernel, , signal_discard, signal-discard,
"struct thread *", "struct proc *", "int");
static int coredump(struct thread *);
static int killpg1(struct thread *td, int sig, int pgid, int all,

View File

@ -69,11 +69,9 @@ DPCPU_DECLARE(sbintime_t, hardclocktime);
#endif
SDT_PROVIDER_DEFINE(callout_execute);
SDT_PROBE_DEFINE(callout_execute, kernel, , callout_start, callout-start);
SDT_PROBE_ARGTYPE(callout_execute, kernel, , callout_start, 0,
SDT_PROBE_DEFINE1(callout_execute, kernel, , callout_start, callout-start,
"struct callout *");
SDT_PROBE_DEFINE(callout_execute, kernel, , callout_end, callout-end);
SDT_PROBE_ARGTYPE(callout_execute, kernel, , callout_end, 0,
SDT_PROBE_DEFINE1(callout_execute, kernel, , callout_end, callout-end,
"struct callout *");
#ifdef CALLOUT_PROFILING

View File

@ -92,12 +92,8 @@ __FBSDID("$FreeBSD$");
MALLOC_DEFINE(M_FADVISE, "fadvise", "posix_fadvise(2) information");
SDT_PROVIDER_DEFINE(vfs);
SDT_PROBE_DEFINE(vfs, , stat, mode, mode);
SDT_PROBE_ARGTYPE(vfs, , stat, mode, 0, "char *");
SDT_PROBE_ARGTYPE(vfs, , stat, mode, 1, "int");
SDT_PROBE_DEFINE(vfs, , stat, reg, reg);
SDT_PROBE_ARGTYPE(vfs, , stat, reg, 0, "char *");
SDT_PROBE_ARGTYPE(vfs, , stat, reg, 1, "int");
SDT_PROBE_DEFINE2(vfs, , stat, mode, mode, "char *", "int");
SDT_PROBE_DEFINE2(vfs, , stat, reg, reg, "char *", "int");
static int chroot_refuse_vdir_fds(struct filedesc *fdp);
static int getutimes(const struct timeval *, enum uio_seg, struct timespec *);

View File

@ -45,189 +45,132 @@ SDT_PROVIDER_DEFINE(sctp);
/* Cwnd probe - tracks changes in the congestion window on a netp */
/********************************************************/
/* Initial */
SDT_PROBE_DEFINE(sctp, cwnd, net, init, init);
/* The Vtag for this end */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, init, 0, "uint32_t");
/* The port number of the local side << 16 | port number of remote
* in network byte order.
*/
SDT_PROBE_ARGTYPE(sctp, cwnd, net, init, 1, "uint32_t");
/* The pointer to the struct sctp_nets * changing */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, init, 2, "uintptr_t");
/* The old value of the cwnd */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, init, 3, "int");
/* The new value of the cwnd */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, init, 4, "int");
SDT_PROBE_DEFINE5(sctp, cwnd, net, init, init,
"uint32_t", /* The Vtag for this end */
"uint32_t", /*
* The port number of the local side << 16 | port number
* of remote in network byte order.
*/
"uintptr_t", /* The pointer to the struct sctp_nets * changing */
"int", /* The old value of the cwnd */
"int"); /* The new value of the cwnd */
/* ACK-INCREASE */
SDT_PROBE_DEFINE(sctp, cwnd, net, ack, ack);
/* The Vtag for this end */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, ack, 0, "uint32_t");
/* The port number of the local side << 16 | port number of remote
* in network byte order.
*/
SDT_PROBE_ARGTYPE(sctp, cwnd, net, ack, 1, "uint32_t");
/* The pointer to the struct sctp_nets * changing */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, ack, 2, "uintptr_t");
/* The old value of the cwnd */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, ack, 3, "int");
/* The new value of the cwnd */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, ack, 4, "int");
SDT_PROBE_DEFINE5(sctp, cwnd, net, ack, ack,
"uint32_t", /* The Vtag for this end */
"uint32_t", /*
* The port number of the local side << 16 | port number
* of remote in network byte order.
*/
"uintptr_t", /* The pointer to the struct sctp_nets * changing */
"int", /* The old value of the cwnd */
"int"); /* The new value of the cwnd */
/* ACK-INCREASE */
SDT_PROBE_DEFINE(sctp, cwnd, net, rttvar, rttvar);
/* The Vtag << 32 | localport << 16 | remoteport */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttvar, 0, "uint64_t");
/* obw | nbw */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttvar, 1, "uint64_t");
/* bwrtt | newrtt */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttvar, 2, "uint64_t");
/* flight */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttvar, 3, "uint64_t");
/* (cwnd << 32) | point << 16 | retval(0/1) */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttvar, 4, "uint64_t");
SDT_PROBE_DEFINE(sctp, cwnd, net, rttstep, rttstep);
/* The Vtag << 32 | localport << 16 | remoteport */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttstep, 0, "uint64_t");
/* obw | nbw */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttstep, 1, "uint64_t");
/* bwrtt | nrtt */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttstep, 2, "uint64_t");
/* cwnd_saved | stepcnt << 16 | oldstep */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttstep, 3, "uint64_t");
/* (cwnd << 32) | point << 16 | retval(0/1) */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttstep, 4, "uint64_t");
SDT_PROBE_DEFINE5(sctp, cwnd, net, rttvar, rttvar,
"uint64_t", /* The Vtag << 32 | localport << 16 | remoteport */
"uint64_t", /* obw | nbw */
"uint64_t", /* bwrtt | newrtt */
"uint64_t", /* flight */
"uint64_t"); /* (cwnd << 32) | point << 16 | retval(0/1) */
SDT_PROBE_DEFINE5(sctp, cwnd, net, rttstep, rttstep,
"uint64_t", /* The Vtag << 32 | localport << 16 | remoteport */
"uint64_t", /* obw | nbw */
"uint64_t", /* bwrtt | newrtt */
"uint64_t", /* flight */
"uint64_t"); /* (cwnd << 32) | point << 16 | retval(0/1) */
/* FastRetransmit-DECREASE */
SDT_PROBE_DEFINE(sctp, cwnd, net, fr, fr);
/* The Vtag for this end */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, fr, 0, "uint32_t");
/* The port number of the local side << 16 | port number of remote
* in network byte order.
*/
SDT_PROBE_ARGTYPE(sctp, cwnd, net, fr, 1, "uint32_t");
/* The pointer to the struct sctp_nets * changing */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, fr, 2, "uintptr_t");
/* The old value of the cwnd */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, fr, 3, "int");
/* The new value of the cwnd */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, fr, 4, "int");
SDT_PROBE_DEFINE5(sctp, cwnd, net, fr, fr,
"uint32_t", /* The Vtag for this end */
"uint32_t", /*
* The port number of the local side << 16 | port number
* of remote in network byte order.
*/
"uintptr_t", /* The pointer to the struct sctp_nets * changing */
"int", /* The old value of the cwnd */
"int"); /* The new value of the cwnd */
/* TimeOut-DECREASE */
SDT_PROBE_DEFINE(sctp, cwnd, net, to, to);
/* The Vtag for this end */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, to, 0, "uint32_t");
/* The port number of the local side << 16 | port number of remote
* in network byte order.
*/
SDT_PROBE_ARGTYPE(sctp, cwnd, net, to, 1, "uint32_t");
/* The pointer to the struct sctp_nets * changing */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, to, 2, "uintptr_t");
/* The old value of the cwnd */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, to, 3, "int");
/* The new value of the cwnd */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, to, 4, "int");
SDT_PROBE_DEFINE5(sctp, cwnd, net, to, to,
"uint32_t", /* The Vtag for this end */
"uint32_t", /*
* The port number of the local side << 16 | port number
* of remote in network byte order.
*/
"uintptr_t", /* The pointer to the struct sctp_nets * changing */
"int", /* The old value of the cwnd */
"int"); /* The new value of the cwnd */
/* BurstLimit-DECREASE */
SDT_PROBE_DEFINE(sctp, cwnd, net, bl, bl);
/* The Vtag for this end */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, bl, 0, "uint32_t");
/* The port number of the local side << 16 | port number of remote
* in network byte order.
*/
SDT_PROBE_ARGTYPE(sctp, cwnd, net, bl, 1, "uint32_t");
/* The pointer to the struct sctp_nets * changing */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, bl, 2, "uintptr_t");
/* The old value of the cwnd */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, bl, 3, "int");
/* The new value of the cwnd */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, bl, 4, "int");
SDT_PROBE_DEFINE5(sctp, cwnd, net, bl, bl,
"uint32_t", /* The Vtag for this end */
"uint32_t", /*
* The port number of the local side << 16 | port number
* of remote in network byte order.
*/
"uintptr_t", /* The pointer to the struct sctp_nets * changing */
"int", /* The old value of the cwnd */
"int"); /* The new value of the cwnd */
/* ECN-DECREASE */
SDT_PROBE_DEFINE(sctp, cwnd, net, ecn, ecn);
/* The Vtag for this end */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, ecn, 0, "uint32_t");
/* The port number of the local side << 16 | port number of remote
* in network byte order.
*/
SDT_PROBE_ARGTYPE(sctp, cwnd, net, ecn, 1, "uint32_t");
/* The pointer to the struct sctp_nets * changing */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, ecn, 2, "uintptr_t");
/* The old value of the cwnd */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, ecn, 3, "int");
/* The new value of the cwnd */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, ecn, 4, "int");
SDT_PROBE_DEFINE5(sctp, cwnd, net, ecn, ecn,
"uint32_t", /* The Vtag for this end */
"uint32_t", /*
* The port number of the local side << 16 | port number
* of remote in network byte order.
*/
"uintptr_t", /* The pointer to the struct sctp_nets * changing */
"int", /* The old value of the cwnd */
"int"); /* The new value of the cwnd */
/* PacketDrop-DECREASE */
SDT_PROBE_DEFINE(sctp, cwnd, net, pd, pd);
/* The Vtag for this end */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, pd, 0, "uint32_t");
/* The port number of the local side << 16 | port number of remote
* in network byte order.
*/
SDT_PROBE_ARGTYPE(sctp, cwnd, net, pd, 1, "uint32_t");
/* The pointer to the struct sctp_nets * changing */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, pd, 2, "uintptr_t");
/* The old value of the cwnd */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, pd, 3, "int");
/* The new value of the cwnd */
SDT_PROBE_ARGTYPE(sctp, cwnd, net, pd, 4, "int");
SDT_PROBE_DEFINE5(sctp, cwnd, net, pd, pd,
"uint32_t", /* The Vtag for this end */
"uint32_t", /*
* The port number of the local side << 16 | port number
* of remote in network byte order.
*/
"uintptr_t", /* The pointer to the struct sctp_nets * changing */
"int", /* The old value of the cwnd */
"int"); /* The new value of the cwnd */
/********************************************************/
/* Rwnd probe - tracks changes in the receiver window for an assoc */
/********************************************************/
SDT_PROBE_DEFINE(sctp, rwnd, assoc, val, val);
/* The Vtag for this end */
SDT_PROBE_ARGTYPE(sctp, rwnd, assoc, val, 0, "uint32_t");
/* The port number of the local side << 16 | port number of remote
* in network byte order.
*/
SDT_PROBE_ARGTYPE(sctp, rwnd, assoc, val, 1, "uint32_t");
/* The up/down amount */
SDT_PROBE_ARGTYPE(sctp, rwnd, assoc, val, 2, "int");
/* The new value of the cwnd */
SDT_PROBE_ARGTYPE(sctp, rwnd, assoc, val, 3, "int");
SDT_PROBE_DEFINE4(sctp, rwnd, assoc, val, val,
"uint32_t", /* The Vtag for this end */
"uint32_t", /*
* The port number of the local side << 16 | port number
* of remote in network byte order.
*/
"int", /* The up/down amount */
"int"); /* The new value of the cwnd */
/********************************************************/
/* flight probe - tracks changes in the flight size on a net or assoc */
/********************************************************/
SDT_PROBE_DEFINE(sctp, flightsize, net, val, val);
/* The Vtag for this end */
SDT_PROBE_ARGTYPE(sctp, flightsize, net, val, 0, "uint32_t");
/* The port number of the local side << 16 | port number of remote
* in network byte order.
*/
SDT_PROBE_ARGTYPE(sctp, flightsize, net, val, 1, "uint32_t");
/* The pointer to the struct sctp_nets * changing */
SDT_PROBE_ARGTYPE(sctp, flightsize, net, val, 2, "uintptr_t");
/* The up/down amount */
SDT_PROBE_ARGTYPE(sctp, flightsize, net, val, 3, "int");
/* The new value of the cwnd */
SDT_PROBE_ARGTYPE(sctp, flightsize, net, val, 4, "int");
SDT_PROBE_DEFINE5(sctp, flightsize, net, val, val,
"uint32_t", /* The Vtag for this end */
"uint32_t", /*
* The port number of the local side << 16 | port number
* of remote in network byte order.
*/
"uintptr_t", /* The pointer to the struct sctp_nets * changing */
"int", /* The up/down amount */
"int"); /* The new value of the cwnd */
/********************************************************/
/* The total flight version */
/********************************************************/
SDT_PROBE_DEFINE(sctp, flightsize, assoc, val, val);
/* The Vtag for this end */
SDT_PROBE_ARGTYPE(sctp, flightsize, assoc, val, 0, "uint32_t");
/* The port number of the local side << 16 | port number of remote
* in network byte order.
*/
SDT_PROBE_ARGTYPE(sctp, flightsize, assoc, val, 1, "uint32_t");
/* The up/down amount */
SDT_PROBE_ARGTYPE(sctp, flightsize, assoc, val, 2, "int");
/* The new value of the cwnd */
SDT_PROBE_ARGTYPE(sctp, flightsize, assoc, val, 3, "int");
SDT_PROBE_DEFINE4(sctp, flightsize, assoc, val, val,
"uint32_t", /* The Vtag for this end */
"uint32_t", /*
* The port number of the local side << 16 | port number
* of remote in network byte order.
*/
"int", /* The up/down amount */
"int"); /* The new value of the cwnd */
#endif