summaryrefslogtreecommitdiffstats
path: root/tapset
diff options
context:
space:
mode:
Diffstat (limited to 'tapset')
-rw-r--r--tapset/ChangeLog2105
-rw-r--r--tapset/DEVGUIDE83
-rw-r--r--tapset/aux_syscalls.stp22
-rw-r--r--tapset/context-unwind.stp17
-rw-r--r--tapset/errno.stp4
-rw-r--r--tapset/memory.stp102
-rw-r--r--tapset/nfs_proc.stp20
-rw-r--r--tapset/process.stp13
-rw-r--r--tapset/signal.stp466
-rw-r--r--tapset/udp.stp16
10 files changed, 448 insertions, 2400 deletions
diff --git a/tapset/ChangeLog b/tapset/ChangeLog
deleted file mode 100644
index d473a797..00000000
--- a/tapset/ChangeLog
+++ /dev/null
@@ -1,2105 +0,0 @@
-2008-12-15 Mark Wielaard <mjw@redhat.com>
-
- * context-symbols.stp (probefunc): Call _stp_symbol_snprint with
- current task.
-
-2008-12-10 Mark Wielaard <mjw@redhat.com>
-
- * context-symbols.stp: Define STP_NEED_TASK_FINDER_VMA.
- (symbolname): New function.
- * context-unwind.stp (caller): Pass current task to
- _stp_symbol_snprint.
-
-2009-01-06 Frank Ch. Eigler <fche@elastic.org>
-
- PR 9699.
- * context.stp, task.stp: Adapt to STAPCONF_TASK_UID.
-
-2008-12-09 Frank Ch. Eigler <fche@elastic.org>
-
- PR 6961.
- * context-unwind.stp (print_backtrace, backtrace): WARN_ON !regs.
-
-2008-11-28 Frank Ch. Eigler <fche@elastic.org>
-
- PR 6965.
- * context-{symbols,unwind}.h: Tweak control symbols to
- STP_NEED_{SYMBOL,UNWIND}_DATA.
-
-2008-11-28 Elliott Baron <ebaron@redhat.com>
-
- PR 6965.
- * tapsets/context.stp: moved functions requiring symbols
- to tapsets/context-symbols.stp and those requiring both
- symbols and unwinder to tapsets/context-unwind.stp.
- * tapsets/context-symbols.h: New file.
- * tapsets/context-unwind.h: New file.
-
-2008-11-26 Will Cohen <wcohen@redhat.com>
-
- * scsi.stp: Add kernel-doc notation.
-
-2008-11-26 Will Cohen <wcohen@redhat.com>
-
- * process.stp: Add kernel-doc notation.
-
-2008-11-25 Will Cohen <wcohen@redhat.com>
-
- * ioscheduler.stp:
- * socket.stp:
- * tcp.stp:
- * udp.stp: Add kernel-doc notation.
-
-2008-11-24 Will Cohen <wcohen@redhat.com>
-
- * context.stp:
- * memory.stp:
- * networking.stp:
- * timestamp.stp: Change to use kernel-doc notation.
-
-2008-11-19 Jim Keniston <jkenisto@us.ibm.com>
-
- * s390x/registers.stp: Fixed typo.
-
-2008-11-19 Ananth Mavinakayanahalli <ananth@us.ibm.com> and Jim Keniston <jkenisto@us.ibm.com>
-
- * s390x/registers.stp: Added
-
-2008-11-13 William Cohen <wcohen@redhat.com>
-
- * networking.stp: Order entries in table.
-
-2008-11-13 William Cohen <wcohen@redhat.com>
-
- * memory.stp: Add xml documentation.
-
-2008-11-12 William Cohen <wcohen@redhat.com>
-
- * context.stp: Remove cpuid() documentation.
-
-2008-10-28 William Cohen <wcohen@redhat.com>
-
- * vfs.stp (vfs.(read|write){.return}): Add inode variable, ino.
-
-2008-10-28 David Smith <dsmith@redhat.com>
-
- PR6972
- * vfs.stp (generic.fop.aio_read): Works under 2.6.18 kernels, such
- as RHEL5.
- (generic.fop.aio_read.return): Ditto.
- (vfs.__set_page_dirty_buffers): Fixed small bug.
- (_vfs.block_write_begin): Only use for kernels >= 2.6.24.
- (_vfs.block_write_begin.return): Ditto.
- (_vfs.block_write_end): Ditto.
- (_vfs.block_write_end.return): Ditto.
-
-2008-10-28 Wenji Huang <wenji.huang@oracle.com>
-
- * ioblock.stp (ioblock.request, ioblock.end): Correct for 2.6.28.
- * scsi.stp (scsi_timer_pending): Ditto.
-
-2008-10-27 William Cohen <wcohen@redhat.com>
-
- * vfs.stp (vfs.(read|write){.return}): Add dev and devname variables.
-
-2008-10-23 Mark Wielaard <mjw@redhat.com>
-
- * syscalls2.stp (syscall.utime): Don't use pointer_arg to fetch
- arguments.
- (syscall.compat_utime): Likewise.
-
-2008-10-07 Mark Wielaard <mjw@redhat.com>
-
- * aux_syscalls.stp (_stp_sigaction_str): New embedded C function.
- (_struct_sigaction_u): Call _stp_sigaction_str.
- (_struct_sigaction32_u): New function.
- * syscalls2.stp (syscall.rt_sigaction32): Call _struct_sigaction32_u.
-
-2008-09-23 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * socket.stp (socket.aio_read/write): Fix version-checking method.
-
-2008-09-22 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * socket.stp (socket.aio_read/write): Fix the semantic error
- caused by the difference of kernel versions.
-
-2008-09-18 Mark Wielaard <mjw@redhat.com>
-
- * aux_syscalls.stp (_reboot_magic_str): Moved reboot.h include out.
-
-2008-09-17 Mark Wielaard <mjw@redhat.com>
-
- * aux_syscalls.stp: Removed commented out code. Removed unneeded
- unpure embedded C-code.
-
-2008-09-15 Mark Wielaard <mjw@redhat.com>
-
- * x86_64/syscalls.stp (syscall.vm86_warning): Add argstr.
-
-2008-09-15 Mark Wielaard <mjw@redhat.com>
-
- * vfs.stp: Fix 2.6.27 detection.
- * syscall.stp: Likewise.
- * syscall2.stp: Likewise.
-
-2008-09-12 Wenji Huang <wenji.huang@oracle.com>
-
- * signal.stp: Initialize __sig in a function.
-
-2008-09-09 Masami Hiramatsu <mhiramat@redhat.com>
-
- * utrace.stp: Added _utrace_syscall_return().
-
-2008-09-09 Masami Hiramatsu <mhiramat@redhat.com>
-
- * utrace.stp: Added _utrace_syscall_arg().
-
-2008-09-09 Masami Hiramatsu <mhiramat@redhat.com>
-
- * marker.stp : New file, including marker context variable accessors.
-
-2008-09-01 Frank Ch. Eigler <fche@elastic.org>
-
- PR4225 merge.
- * utrace.stp: New file, for use by utrace $var expansions.
-
-2008-09-01 Zhaolei <zhaolei@cn.fujitsu.com>
- * nfs_proc.stp: Fix memory access error in nfs.proc.read_setup,
- nfs.proc.write_setup and nfs.proc.commit_setup.
-
-2008-08-28 Zhaolei <zhaolei@cn.fujitsu.com>
- * socket.stp: Make _get_sock_addr return correct address in kernel
- before 2.6.16.
-
-2008-08-04 Wenji Huang <wenji.huang@oracle.com>
-
- * syscall.stp: Change $path to $pathname for 2.6.27.
- * syscall2.stp: Ditto.
-
-2008-08-03 Wenji Huang <wenji.huang@oracle.com>
-
- * vfs.stp(add_to_page_cache): Correct for 2.6.27.
-
-2008-07-25 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * syscalls2.stp: Add sys_unlinkat.
-
-2008-07-18 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * syscalls2.stp: Add sys_symlinkat.
-
-2008-07-14 David Smith <dsmith@redhat.com>
-
- * i686/registers.stp: Removed syscall_nr function.
- * x86_64/registers.stp: Ditto.
-
-2008-07-10 Josh Stone <joshua.i.stone@intel.com>
-
- * vfs.stp (__address_inode): Correct access to the mapping field.
-
-2008-07-09 Mark Wielaard <mwielaard@redhat.com>
-
- PR 6732
- * context.stp (ppid): Use STAPCONF_REAL_PARENT.
- (pexecname): Likewise.
- * task.stp (task_parent): Likewise.
-
-2008-07-01 Wenji Huang <wenji.huang@oracle.com>
-
- * vfs.stp : Make _vfs.generic_commit_write only for kernel<=2.6.25
-
-2008-06-26 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * syscalls2.stp: Add sys_renameat.
-
-2008-06-23 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * syscalls.stp: Add sys_mknodat.
-
-2008-06-20 wcohen <wcohen@redhat.com>
-
- * dev.stp: New.
-
-2008-06-19 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * aux_syscalls.stp: Output unknown bits in _stp_lookup_or_str.
-
-2008-06-17 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * syscalls.stp: Add sys_linkat.
-
-2008-06-17 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * aux_syscalls.stp (__fork_flags): Add termination signal.
-
-2008-06-13 Josh Stone <joshua.i.stone@intel.com>
-
- * aux_syscalls.stp, ctime.stp, inet.stp, memory.stp,
- s390x/syscalls.stp, {i686,x86_64,ppc64}/registers.stp: Add
- 'pure' to embedded-C functions that deserve it.
-
-2008-06-13 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * syscalls.stp: Add sys_fchownat.
-
-2008-06-12 Will Cohen <wcohen@redhat.com>
-
- * tasks.stp: Add user_mode.
-
-2008-06-11 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * syscalls.stp: Add sys_fchmodat.
-
-2008-06-10 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * syscalls.stp: Add sys_faccessat.
-
-2008-06-10 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * syscalls.stp(syscall.mkdirat): Use _dfd_str() to add support
- for AT_FDCWD.
-
-2008-06-10 Frank Ch. Eigler <fche@elastic.org>
-
- PR 6470.
- * argv.stp: New tapset.
-
-2008-06-09 David Smith <dsmith@redhat.com>
-
- * x86_64/registers.stp (syscall_nr): Added syscall_nr function.
- * i686/registers.stp (syscall_nr): Ditto.
-
-2008-06-04 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * syscalls2.stp: Add sys_unshare.
-
-2008-06-03 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * aux_syscalls.stp (__fork_flags): Support for new clone flags
- before linux-2.6.25.
-
-2008-05-26 Mark Wielaard <mwielaard@redhat.com>
-
- * task.stp : Only include fdtable.h for kernel versions > 2.6.25.
-
-2008-05-26 Wenji Huang <wenji.huang@oracle.com>
-
- * task.stp : Include fdtable.h for 2.6.26.
-
-2008-05-26 Wenji Huang <wenji.huang@oracle.com>
-
- * signal.stp (send.*): Correct for 2.6.26.
-
-2008-05-23 Frank Ch. Eigler <fche@elastic.org>
-
- * nfs.stp (*): Similarly convert kernel?,module? -> kernel!,module.
-
-2008-05-23 Frank Ch. Eigler <fche@elastic.org>
-
- * rpc.stp (*): Convert kernel?,module? -> kernel!,module probe points.
- (rpc_create_task): Make conditional on kernel <= 2.6.18.
-
-2008-05-21 Frank Ch. Eigler <fche@elastic.org>
-
- PR 6538
- * nfs.stp (nfs.aop.readpage): Fix rsize.
-
-2008-05-20 Frank Ch. Eigler <fche@elastic.org>
-
- PR 6538
- * signal.stp (_signal.send.part[23]): Initialize dummy sinfo.
- * syscalls2.stp (syscall.compat_sys_semtimedop): Fix sops_uaddr.
- * vfs.stp (__find_bdevname): Rewrite.
- * x86_64/syscalls.stp (syscall.pipe32): Fix argstr.
-
-2008-05-21 Mark Wielaard <mwielaard@redhat.com>
-
- * syscalls2.stp (syscall.utime): Use pointer_arg to fetch arguments.
- (syscall.compat_utime): Likewise.
-
-2008-05-20 Mark Wielaard <mwielaard@redhat.com>
-
- PR 5001
- * aux_syscalls.stp (_stp_ctime): Removed.
- (_struct_utimbuf_u): Removed.
- (_struct_compat_utimbuf_u): Removed.
- (_struct_utimbuf_actime): New function.
- (_struct_utimbuf_modtime): New function.
- (_struct_compat_utimbuf_actime): New function.
- (_struct_compat_utimbuf_modtime): New function.
- * syscalls2.stp (syscall.utime): Use new functions and ctime.
- (syscall.compat_utime): Likewise.
-
-2008-05-19 Mark Wielaard <mwielaard@redhat.com>
-
- PR 6524
- * ctime.stp: Don't try to convert values that won't fit in 32bits.
-
-2008-05-08 Ananth N Mavinakayanahalli <ananth@in.ibm.com>
-
- PR 5231
- * ioblock.stp (ioblock.end): Set bytes_done depending on kernel
- version.
-
-2008-04-29 Frank Ch. Eigler <fche@elastic.org>
-
- PR 6466
- * tcp.stp (tcp_sockstate_str, tcp_sockopt_str): Initialize
- number->string lookup tables here, instead of "probe begin(-1)"
- block that can be elided/warned.
-
-2008-04-16 Wenji Huang <wenji.huang@oracle.com>
-
- * scsi.stp (scsi.iodispatching): Correct for 2.6.25 kernel.
-
-2008-04-15 Martin Hunt <hunt@monkey>
-
- * context.stp (print_backtrace, backtrace): Use MAXTRACE.
-
-2008-03-21 Eugene Teo <eugeneteo@kernel.sg>
-
- PR 5528
- * conversions.stp (user_string_n, user_string_n2, user_string_n_warn,
- user_string_n_quoted, user_short, user_short_warn, user_int,
- user_int_warn, user_long, user_long_warn, user_char, user_char_warn):
- New user_* functions.
-
-2008-03-20 Frank Ch. Eigler <fche@elastic.org>
-
- PR 5956.
- * null.stp: New file, defining global NULL=0.
-
-2008-03-11 Will Cohen <wcohen@redhat.com>
-
- * syscalls2.stp (syscall.wait{4|id}): Correct for 2.6.24.n kernels.
-
-2008-03-06 Ananth N Mavinakayanahalli <ananth@in.ibm.com
-
- * i686/syscalls.stp: Handle sys_sigaltstack parameter after
- register unification
-
-2008-02-28 Will Cohen <wcohen@redhat.com>
-
- PR433780
- * errno.stp (returnstr): Handle unified i386/x86_64 reg names.
-
-2008-02-27 Masami Hiramatsu <mhiramat@redhat.com>
-
- * x86_64/syscalls.stp (syscall.iopl): Use new_iopl instead of level
- on xen kernel.
-
-2008-01-25 Will Cohen <wcohen@redhat.com>
-
- PR5554
- * syscalls.stp (__is_user_regs): Modify to work with older kernels.
-
-2008-01-23 Masami Hiramatsu <mhiramat@redhat.com>
-
- PR5554
- * syscalls.stp (__is_user_regs): Add new function to check whether
- pt_regs is user mode registers.
- (syscall.fork): Use __is_user_regs() to decide syscall name.
-
-2008-01-16 Eugene Teo <eteo@redhat.com>
-
- * signal.stp (get_sa_flags, get_sa_handler): New functions to
- return addresses of sa_flags and sa_handler of struct k_sigaction.
- (sigset_mask_str): New function. Returns a string containing the
- set of signals to be blocked when executing the signal handler.
- (is_sig_blocked): New function. Checks task_struct->blocked signal
- mask for signals that are currently blocked.
- (signal_str): New function. Translates a signal number.
- (sa_flags_str): New function. Translates the sa_flags.
- (sa_handler_str): New function. Returns the signal action or handler
- associated to the signal.
-
-2008-1-4 Masami Hiramatsu <mhiramat@redhat.com>
-
- * aux_syscalls.stp (_stp_fork_list): Check kernel version for new
- flags.
-
-2008-1-4 Masami Hiramatsu <mhiramat@redhat.com>
-
- PR5152
- * scheduler.stp (scheduler.ctxswitch): Change probe point __switch_to
- to context_switch on ia64.
-
-2007-12-27 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Yang Zhiguo <yzgcsu@cn.fujitsu.com>
- * signal.stp (_signal.send.part3.return): Correct name variable.
-
-2007-12-25 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Yang Zhiguo <yzgcsu@cn.fujitsu.com>
- * aux_syscalls.stp (_struct_sigaction_u): Delete overlaped
- SA_SIGINFO from _stp_sa_flags_list[].
-
-2007-12-21 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Yang Zhiguo <yzgcsu@cn.fujitsu.com>
- * aux_syscalls.stp (_futex_op_str): Add new futex options.
- (_stp_fork_list[]): Add new clone flags.
-
-2007-12-17 Martin Hunt <hunt@redhat.com>
-
- * syscalls.stp (get_mempolicy): Fix syntax. Add prototype.
- (kexec_load): Ditto.
- (mbind): Ditto.
- (move_pages): Ditto.
-
-2007-12-17 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Yang Zhiguo <yzgcsu@cn.fujitsu.com>
- * Add new address family to _fam_num2str: IUCV and RXRPC.
-
-2007-12-17 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Bai Weidong <baiwd@cn.fujitsu.com>
- * syscalls.stp: Add missed compat* probes in syscalls.stp.
-
-2007-12-12 Martin Hunt <hunt@redhat.com>
-
- * syscalls2.stp (compat_sys_ptrace): Remove for now.
- Utrace-patched kernels have a different compat_sys_ptrace().
-
-2007-12-7 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Yang Zhiguo <yzgcsu@cn.fujitsu.com>
- * syscalls2.stp: Add missed compat* probes in syscalls2.stp.
-
-2007-12-7 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Bai Weidong <baiwd@cn.fujitsu.com>
- * aux_syscalls.stp (__sem_flags): Add the missed mode display,
- Fix calculation error when string is empty.
-
-2007-11-21 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Bai Weidong <baiwd@cn.fujitsu.com>
- * syscalls2.stp (rt_sigsuspend): Fix the semantic error caused by
- the difference of kernel versions on IA64.
-
-2007-11-14 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Lai Jiangshan <laijs@cn.fujitsu.com>
- * signal.stp (signal.do_action): Call __get_action_mask to get mask
- to fix semantic error of accessing a struct.
- * signal.stp (__get_action_mask): Add.
-
-2007-11-12 Martin Hunt <hunt@redhat.com>
-
- * logging.stp (print_char): Remove. Now implemented by
- stap.
- (log): Add a comment that it is deprecated.
-
-2007-11-12 Martin Hunt <hunt@redhat.com>
-
- * syscalls2.stp (sys_remap_file_pages: : Change kernel
- version check to >= 2.6.24.
-
-2007-11-8 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Lai Jiangshan <laijs@cn.fujitsu.com>
- * rpc.stp (clones_from_clnt): Use deref to check, then use
- atomic_read to read an atomic_t to avoid compilation error of
- type matching.
- (tasks_from_clnt): Ditto.
-
-2007-11-6 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Cai Fei <caifei@cn.fujitsu.com>
- * rpc.stp (sunrpc.clnt.call_sync): Define procname only for
- kernel>=2.6.17.
- (sunrpc.clnt.call_async): Ditto.
-
-2007-11-5 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Cai Fei <caifei@cn.fujitsu.com>
- * nfs_proc.stp: Use kread in get_ip and get_prot to avoid kernel
- panic.
-
-2007-11-2 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Cai Fei <caifei@cn.fujitsu.com>
- * nfsd.stp: Fix the semantic error caused by the difference of
- kernel versions.
- * nfs_proc.stp: Ditto.
-
-2007-11-1 Will Cohen <wcohen@redhat.com>
-
- * syscall2.stp (sys_remap_file_pages): Fix compile error with kernel
- version greater than 2.6.23.
-
-2007-11-1 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Lai Jiangshan <laijs@cn.fujitsu.com>
- * rpc.stp (clones_from_clnt): Add CATCH_DEREF_FAULT().
- (tasks_from_clnt): Ditto.
-
-2007-10-17 Martin Hunt <hunt@redhat.com>
- PR5000
- * endian.stp (set_endian): Remove.
-
-2007-10-15 Dave Wilder <dwilder@us.ibm.com>
-
- *aux_syscalls.stp:_dfd_str Added test for 32-bit value of AT_FDCWD
-
-2007-10-15 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Cai Fei <caifei@cn.fujitsu.com>
- * conversions.stp: Add a function kernel_string_n for copy
- non-0-terminated string with fixed length from kernel space at
- given address.
- * stapfuncs.5.in: Add kernel_string_n.
- * nfsd.stp: Using kernel_string_n to copy non-0-terminated string
- with fixed length from kernel space at given address.
- * nfs_proc.stp: Ditto.
-
-2007-10-12 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * queue_stats.stp (qsq_start): Fix problem that compile fails when
- calling qsq_utilization or other query functions next to qsq_start.
-
-2007-10-11 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * queue_stats.stp (qsq_utilization): Update queue account datas
- before calculate.
- (qsq_blocked): Ditto.
- (qsq_wait_queue_length): Ditto.
- (qsq_service_time): Ditto.
- (qsq_wait_time): Ditto.
- (qsq_throughput): Ditto.
-
-2007-10-11 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Cai Fei <caifei@cn.fujitsu.com>
- * nfs_proc.stp (__nfs_write_data_info): Add data-access code for
- count, valid and timestamp.
-
-2007-10-11 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * udp.stp: Add name argument for all probes.
-
-2007-10-10 Martin Hunt <hunt@redhat.com>
-
- * aux_syscalls.stp (_stp_lookup_str): When defaulting
- to a numeric value, append, don't overwrite.
-
-2007-10-10 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Lai Jiangshan <laijs@cn.fujitsu.com>
- * aux_syscalls.stp (_stp_lookup_or_str) redirect to _stp_lookup_str
- if val is 0.
-
-2007-10-09 Mike Mason <mmlnx@us.ibm.com>
-
- * rpc.stp: Replaced atomic_read()'s with kread()'s
-
-2007-10-09 Martin Hunt <hunt@redhat.com>
- PR5153
- * aux_syscalls.stp (_sighandler_str): No
- sa_restorer field for IA64.
-
-2007-10-09 Martin Hunt <hunt@redhat.com>
-
- * syscalls2.stp (sys_signal): Call
- _sighandler_str().
-
- * aux_syscalls.stp (_stp_sigset_str): Don't
- include SIG_0.
- (_sighandler_str): New.
-
-2007-10-09 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * queue_stats.stp (qsq_start): Add destruction for qs_utime.
-
-2007-10-09 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Cai Fei <caifei@cn.fujitsu.com>
- * memory.stp (addr_to_node): Fix the compilation error of function
- addr_to_node on IA64.
-
-2007-10-05 Martin Hunt <hunt@redhat.com>
-
- * aux_syscalls.stp: Put #ifdef CONFIG_COMPAT
- around compat code.
-
- * syscalls2.stp (rt_sigaction, sigaction): Call
- _struct_sigaction_u().
-
- * aux_syscalls.stp (_struct_timeval): Removed. No longer
- necessary now that we have structure access in scripts.
- (_struct_timespec): Ditto.
- (_struct_itimerval): Ditto.
- (_struct_timezone_u): Remove random CATCH_DEREF_FAULT()
- line.
- (_stp_sigset_str): New.
- (_struct_sigaction_u): New.
-
-2007-10-04 Frank Ch. Eigler <fche@elastic.org>
-
- * inet.stp: New tapset for htonl and friends.
-
-2007-10-04 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * queue_stats.stp (qsq_print): Make value of ops/s output as float
-
-2007-10-03 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * aux_syscalls.stp(_sockopt_level_str): Add support for protocol
- number 134~137.
- * socket.stp (global define,begin): Ditto.
-
-2007-10-02 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * tcp.stp: Add name argument for all probes.
- * tcp.stp (tcp.setsockopt.return): Add comment.
-
-2007-10-01 Martin Hunt <hunt@redhat.com>
-
- * aux_syscalls.stp (_str_lookup_str): Print unmatched
- values in hex.
-
-2007-10-01 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * socket.stp (_success_check): Fix compare method.
-
-2007-09-27 Martin Hunt <hunt@redhat.com>
-
- * aux_syscalls.stp (_stp_lookup_str, _stp_lookup_or_str):
- New functions to efficiently and safely read arrays of values
- and return a string.
- (_signal_name): Reimplement using _stp_lookup_str().
- (_semctl_cmd): Ditto.
- (__fork_flags): Ditto.
- (_mmap_flags): Ditto.
- (_mprotect_prot_str): Ditto.
- (_shmat_flags_str): Ditto.
- (_at_flag_str): Ditto.
- (get_mmap_args): Complete rewrite for safety and correctness.
-
-2007-09-27 Wenji Huang <wenji.huang@oracle.com>
-
- * rpc.stp (clones_from_clnt, tasks_from_clnt): Fix for kernel >= 2.6.22.
- * nfs.stp (__nfsi_ndirty) : Ditto.
- * nfs_proc.stp (__nfsv4_bitmask) : Make bitmask valid according to CONFIG.
-
-2007-09-27 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Cai Fei <caifei@cn.fujitsu.com>
- * rpc.stp (sunrpc.clnt.shutdown_client): Add argument progname's
- definition for probe sunrpc.clnt.shutdown_client, because it
- is in the man page but not defined in tapset.
-
-2007-09-27 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Cai Fei <caifei@cn.fujitsu.com>
- * rpc.stp (sunrpc.clnt.call_sync, sunrpc.clnt.call_async): Fix
- the output format of flags in argstr from hex to decimal just
- to make it same as other probes.
-
-2007-09-27 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * tcp.stp (sendmsg.return): Fix description of size variable.
- * tcp.stp (recvmsg.return): Ditto.
-
-2007-09-27 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * socket.stp (aio_read): Fix compile error with kernel version
- less than 2.6.19.
- * socket.stp (aio_write): Ditto.
-
-2007-09-26 Mike Mason <mmlnx@us.ibm.com>
-
- * vfs.stp:
- Specified explicit types for __find_bdevname() parameters
- and return value. The types could not be determined correctly
- when __find_bdevname() was used in nfs.stp
-
- Added __page_index() to work around problem dereferencing unions
- in stap language.
-
- Made generic.fop.sendfile conditional on kernel <= 2.6.22.
- generic_file_sendfile() was removed in 2.6.23.
-
-2007-09-26 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Lai Jiangshan <laijs@cn.fujitsu.com>
- * syscall.stp (syscall.brk): Add probe point
- kernel.function("ia64_brk").
- * syscall.stp (syscall.mremap): Add probe point
- kernel.function("ia64_mremap").
-
-2007-09-26 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Lai Jiangshan <laijs@cn.fujitsu.com>
- modify field-access operator from "." to "->" in all files.
-
-2007-09-26 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * syscalls.stp (adjtimex.return): Improve retstr.
- * aux_syscalls.stp: Add a function(_adjtimex_return_str) for
- adjtimex.return.
-
-2007-09-25 Frank Ch. Eigler <fche@elastic.org>
-
- * socket.stp (sock_flags_num2str): Define SOCK_PASSCRED if needed.
-
-2007-09-25 Frank Ch. Eigler <fche@elastic.org>
-
- * nfs_proc.stp (__i2n_ip_proto): Add a cast for 32-bit compatibility.
-
-2007-09-25 Frank Ch. Eigler <fche@elastic.org>
-
- * signal.stp (_signal.send.part*): Remove sinfo alias variable,
- since it's a struct rather than integral value.
-
-2007-09-25 Martin Hunt <hunt@redhat.com>
-
- * syscalls2.stp (sys_readlinkat): Make optional.
-
- * aux_syscalls.stp (_struct_compat_timeval_u): ifdef
- CONFIG_COMPAT so buildok test will pass.
-
-2007-09-25 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Cai Fei <caifei@cn.fujitsu.com>
- * rpc.stp Fix the wrong calling of returnstr($return) to
- returnstr(1) or returnstr(2).
-
-2007-09-25 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Cai Fei <caifei@cn.fujitsu.com>
- * rpc.stp Add function for probe point sunrpc.clnt.create_client.
-
-2007-09-24 Martin Hunt <hunt@redhat.com>
-
- * aux_syscalls.stp (_at_flag_str): Add some more flags.
- * syscalls2.stp (openat): Call _dfd_str().
-
-2007-09-24 David Smith <dsmith@redhat.com>
-
- * nfsd.stp (__svc_fh): Added missing semicolon.
-
-2007-09-24 Frank Ch. Eigler <fche@elastic.org>
-
- * aux_syscalls.stp: Add missing CATCH_DEREF_FAULT()s.
-
-2007-09-24 Frank Ch. Eigler <fche@elastic.org>
-
- * inet_sock.stp, ioblock.stp, rpc.stp, scsi.stp, socket.stp,
- tcp.stp: Add /* pure */ to embedded-C functions.
-
-2007-09-24 Frank Ch. Eigler <fche@elastic.org>
-
- * conversions.stp (user_string): Redefine in terms of user_string2.
-
-2007-09-23 Ulrich Drepper <drepper@redhat.com>
-
- * syscalls2.stp (readlinkat): Add.
-
-2007-09-21 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Lai Jiangshan <laijs@cn.fujitsu.com>
- * aux_syscalls.stp (_sys_open_flag_str): Fix bug that missing
- "O_ASYNC".
-
- From Lai Jiangshan <laijs@cn.fujitsu.com>
- * aux_syscalls.stp: Add a function _mremap_flags.
- * syscalls.stp (syscall.mremap): Use _mremap_flags instead of
- _mmap_flags.
-
-2007-09-21 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * aux_syscalls.stp(_reboot_magic_str) Fix the problem that
- LINUX_REBOOT_MAGIC1 printed as UNKNOWN VALUE.
-
-2007-09-19 Martin Hunt <hunt@redhat.com>
- PR 2295
- * syscalls.stp (sys_bdflush): Make optional.
- (sys_madvise): Ditto.
- (sys_mincore): Ditto.
- (sys_mlock): Ditto.
- (sys_mlockall): Ditto.
- (sys_mprotect): Ditto.
- (sys_mremap): Ditto.
- (sys_msync): Ditto.
- (sys_munlock): Ditto.
- (sys_munlockall): Ditto.
- * syscalls2.stp (sys_remap_pages): Make optional.
- * ppc64/syscalls.stp (ppc_rtas): Make optional.
-
-2007-09-19 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * syscall.stp(getrusage) Fix the output of getrusage's argstr
- when who is set to -2.
-
-2007-09-19 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Lai Jiangshan <laijs@cn.fujitsu.com>
- * ia64/syscalls.stp Add a probe point syscall.sigaltstack for
- ia64.
- * signal.stp(signal.force_segv) Add a part(force_sigsegv_info)
- for signal.force_segv.
-
-2007-09-13 David Smith <dsmith@redhat.com>
-
- * task.stp (task_open_file_handles): Fixed for kernels less than
- version 2.6.15.
- (task_max_file_handles): Ditto.
-
-2007-09-13 Martin Hunt <hunt@redhat.com>
-
- * aux_syscalls.stp: Replace get_user calls with __stp_get_user.
-
-2007-09-06 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * aux_syscalls.stp (_stp_sockaddr_str): Fix memory access error
- when calling with addrlen set to 0.
-
-2007-09-06 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * aux_syscalls.stp (_module_flags_str): Modify combination of
- flags' values.
-
-2007-09-04 Zhaolei <zhaolei@cn.fujitsu.com>
-
- From Lai Jiangshan <laijs@cn.fujitsu.com>
- * syscalls2.stp (quotactl): Init special_str before use.
- (rt_sigqueueinfo): Change pid's type from %p to %d in argstr.
-
-2007-08-31 Zhaolei <zhaolei@cn.fujitsu.com>
- From Lai Jiangshan <laijs@cn.fujitsu.com>
- * aux_syscalls.stp (_mknod_mode_str): Fix file type
- judgement error.
-
-2007-08-30 Wenji Huang <wenji.huang@oracle.com>
-
- * nfs.stp (__iov_length): Update.
- (nfs.fop.aio_read, nfs.fop.aio_write): Update calling __iov_length.
- * vfs.stp (generic.fop.aio_read, generic.fop.aio_write): Modify evaluating count,buf.
- (generic.fop.readv*, generic.fop.writev*, generic.fop.splice_read*,
- generic.fop.splice_write*, generic.fop.read*, generic.fop.write*): Make optional.
- (vfs.__set_page_dirty_buffers.return): Add condition.
- (vfs.remove_from_page_cache.return): Fix typo.
- (vfs.block_sync_page.return): Remove size and units.
-
-2007-08-30 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * syscalls2.stp (syslog): Make $buf output as address in argstr.
-
-2007-08-29 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * syscalls2.stp (sysfs): Set argstr's format different
- by value of option arg.
-
-2007-08-28 Wenji Huang <wenji.huang@oracle.com>
-
- * tcp.stp (sockstate): Fix typo.
-
-2007-08-28 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * syscalls.stp (bdflush): Add comma between args in argstr
- Set second parameter(data)'s type by first parameter(func)'s
- value in argstr.
-
-2007-08-27 Martin Hunt <hunt@redhat.com>
-
- * context.stp (module_name): New. Returns the current
- module name.
-
- * tcp.stp (tcp_sendmsg): For 2.6.23, parameters change.
-
-2007-08-27 Wenji Huang <wenji.huang@oracle.com>
-
- * signal.stp (signal.do_action): Modify evaluating sa_handler,sa_mask.
-
-2007-08-27 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * syscalls2.stp(sendto): Set $addr as content string in argstr.
-
-2007-08-24 Wenji Huang <wenji.huang@oracle.com>
-
- * scheduler.stp (scheduler.cpu_on,scheduler.migrate): Make optional.
- (scheduler.migrate): Modify evaluating cpu_from with task_cpu.
-
-2007-08-24 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * syscalls2.stp(send): Add len argument into argstr.
-
-2007-08-09 William Cohen <wcohen@redhat.com>
-
- * syscalls2.stp (compat_sys_utimensat): Correct function arg.
-
-2007-08-23 Martin Hunt <hunt@redhat.com>
-
- * syscalls2.stp (sys_tee.return): Make optional
-
-2007-08-23 Martin Hunt <hunt@redhat.com>
-
- * aux_syscalls.stp (_struct_compat_timeval_u): Fix
- array reference.
- (_struct_compat_timespec_u): Cast args to long.
-
-2007-08-23 Martin Hunt <hunt@redhat.com>
-
- From Cai Fei <caifei@cn.fujitsu.com>
- * aux_syscalls.stp (_waitid_opt_str): New.
- (_wait4_opt_str): Just handle wait4 options.
- * syscalls2.stp (sys_waitid): Use _waitid_opt_str.
-
-2007-08-23 Wenji Huang <wenji.huang@oracle.com>
-
- * rpc.stp (sunrpc.svc.process, sunrpc.svc.recv): Modify evaluating
- sv_name,sv_prog,sv_nrthreads in kernel>=2.6.19.
- (sunrpc.sched.delay,sunrpc.sched.delay): Fix typo.
- (sunrpc.*.return): Change name by adding "return".
-
-2007-08-23 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * aux_syscalls.stp (_send_flags_str): Add support for MSG_MORE
- (used in send, sendto, sendmsg and compat_sys_sendmsg).
- Change name of _send_flags_str to _sendflags_str for unify with
- _recvflags_str.
-
- * syscalls2.stp(send, sendto, sendmsg, compat_sys_sendmsg): Change
- name of _send_flags_str to _sendflags_str for unify with _recvflags_str.
-
-2007-08-22 Martin Hunt <hunt@redhat.com>
-
- * ppc64/syscalls.stp: Remove a bunch of
- non-ppc64 specific probes.
-
- * syscalls.stp (compat_sys_epoll_ctl): New.
- (compat_sys_epoll_wait): New.
- (sys_epoll_pwait): New.
- (compat_sys_epoll_pwait): New.
- (compat_sys_keyctl): New.
- (compat_sys_mq_open): New.
- (compat_sys_futex): New.
- (compat_sys_mq_timedsend): New.
- (compat_sys_mq_timedreceive): New.
- (compat_sys_mq_notify): New.
- (compat_sys_mq_getsetattr): New.
- (init_module): Make optional and quote args.
- (sys_eventfd): New.
-
- * syscalls2.stp (sys_splice): New.
- (sys_vmsplice): New.
- (compat_sys_vmsplice): New.
- (sys_tee): New.
- (sys_signalfd): New.
- (compat_sys_signalfd): New.
- (sys_timerfd): New.
- (compat_sys_timerfd): New.
- (old32_readdir): New.
-
-2007-08-22 Martin Hunt <hunt@redhat.com>
-
- * aux_syscalls.stp (_utimensat_flag_str): New.
- (_dfd_str): New.
- (_struct_timeval2_u): Deleted.
- (_struct_timeval_u): Take a number of structs to decode.
- (_struct_compat_timeval2_u): Deleted
- (_struct_compat_timeval_u): Take a number of structs to decode.
- (_struct_timespec_u): Take a number of structs to decode.
- Recognize UTIME_NOW and UTIME_OMIT.
- (_struct_compat_timespec_u): Ditto.
-
- * syscalls.stp (compat_sys_old_getrlimit): Removed.
- (sys_migrate_pages): New.
- (sys_move_pages): New.
-
- * syscalls2.stp (compat_sys_sigprocmask): Removed. Calls
- sys_sigprocmask.
- (compat_sys_sysinfo): New.
- (compat_sys_rt_sigtimedwait): New.
- (sys_utimensat, compat_sys_utimensat): New.
-
- * ppc64/syscalls.stp (compat_sys_sigpending): Removed.
- Calls sys_ func.
- (compat_sys_setrlimit): Ditto.
- (compat_sys_getrlimit): Ditto.
- (compat_sys_old_getrlimit): Ditto.
- (compat_sys_getrusage): Ditto.
- (compat_sys_wait4): Ditto.
- (compat_sys_sched_setaffinity): Ditto.
- (compat_sys_sched_getaffinity): Ditto.
-
-2007-08-22 Wenji Huang <wenji.huang@oracle.com>
-
- * nfsd.stp (nfsd.proc?.*): Modify evaluating client_ip
- with function addr_from_rqst to make it compatible in kernel>=2.6.19
- (nfsd.proc4.compound,nfsd.read,nfsd.write): Fix typo.
- (nfsd.unlink): Fix reference to variable iap.
-
-2007-08-22 Wenji Huang <wenji.huang@oracle.com>
-
- * nfs.stp (__iov_length): Updated, Temporary here.
- * nfs_proc.stp (__i2n_ip_proto): Add type cast to sockaddr_in.
- (nfs.proc?.*): Modify evaluating count and offset.
- (nfs.proc?.read.return): Delete evaluating size and units.
- (nfs.proc?.write.return): Modify evaluating size.
- (nfs.proc?.create): Modify evaluating filename and filelen.
- (nfs.proc?.rename): Fix typo.
-
-2007-08-22 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * syscalls2.stp (syscall.setdomainname): Add argstr content
- (argstr = "" -> argstr = sprintf("%p, %d", $name, $len)).
-
-2007-08-21 Frank Ch. Eigler <fche@elastic.org>
-
- From Cai Fei <caifei@cn.fujitsu.com>:
- * syscalls2.stp, syscalls.stp: Added several missing argstr/retstr
- variables.
-
-2007-08-21 Zhaolei <zhaolei@cn.fujitsu.com>
-
- * syscalls2.stp (syscall.select): Fixed variable name error
- (timeout_uaddr = $tv->$tvp).
- * aux_syscalls.stp (_recvflags_str): Add support for MSG_DONTWAIT
- used in recv, recvfrom, recvmsg, compat_sys_recvmsg
-
-2007-08-20 Masami Hiramatsu <mhiramat@redhat.com>
-
- * ioblock.stp: Fix __bio_ino() not to access i_ino if the page is not
- assigned to any inode.
-
-2007-08-20 Wenji Huang <wenji.huang@oracle.com>
-
- * nfs.stp (nfs.fop.aio_read, nfs.fop.aio_write): Modify evaluating count.
- (__iov_length): New function.
- (nfs.fop.sendfile, nfs.aop.set_page_dirty, nfs.aop.prepare_write,
- nfs.aop.release_page): Fix typo.
-
-2007-08-17 Martin Hunt <hunt@redhat.com>
- From Lai Jiangshan <laijs@cn.fujitsu.com>
- * syscalls.stp (creat): Fix argstr.
-
-2007-08-17 Wenji Huang <wenji.huang@oracle.com>
-
- * ioscheduler.stp (ioscheduler.elv_add_request,
- ioscheduler.elv_completed_request): Add checking $rq.
-
- * memory.stp (_IS_ZERO_PAGE): Modify reference to arguments.
-
-2007-08-16 Frank Ch. Eigler <fche@elastic.org>
-
- PR 1315.
- * target_set.stp: New tapset file.
-
-2007-08-16 Martin Hunt <hunt@redhat.com>
-
- * aux_syscalls.stp (_sock_family_str):
- Add PF_IUCV, PF_RXRPC, PF_TIPC.
-
- From zhaolei@cn.fujitsu.com
- Remove PF_UNIX. PF_LOCAL is correct.
-
-2007-08-16 Martin Hunt <hunt@redhat.com>
-
- * aux_syscalls.stp (__get_argv): Add parameter to
- optionally skip the first argv (argv[0]).
- (__get_compat_argv): Ditto.
-
- * syscalls.stp (execve): Set args to the whole argv.
- For argstr use filename plus argv starting at [1].
- (compat_execve): Ditto.
- * ppc64/syscalls.stp (sys32_exevve): Ditto.
-
- From Cai Fei <caifei@cn.fujitsu.com>
- * syscalls.stp (sts_getpgid): Add pid arg.
-
-2007-08-16 Wenji Huang <wenji.huang@oracle.com>
-
- * errno.stp: Fix Typo for EADV.
-
-2007-08-15 Wenji Huang <wenji.huang@oracle.com>
-
- * aux_syscalls.stp (_reboot_flag_str,_futex_op_str,_mprotect_prot_str,
- _fcntl_cmd_str, _quotaclt_cmd_str, _sock_type_str, _rlimit_resource_str,
- _rusage_who_str): Add new entries, modify default return string.
-
-2007-08-15 Martin Hunt <hunt@redhat.com>
-
- * x86_64/syscalls.stp: Add support for sys32_mmap[2],
- sys32_vm86_warning, and sys32_pipe.
- * s390x/syscalls.stp (get_mmap_args): Move to aux_syscalls.
- * aux_syscalls.stp (get_mmap_args): Moved here.
- * syscalls.stp: Add sys32_alarm.
- * syscalls2.stp: Add sys32_uname.
-
-2007-08-15 Frank Ch. Eigler <fche@elastic.org>
-
- * context.stp (cpuid, cpu): Use smp_processor_id().
-
-2007-08-12 Wenji Huang <wenji.huang@oracle.com>
-
- * aux_syscalls.stp(_sched_policy_str,_nfsctl_cmd_str): Add SCHED_BATCH to
- policy entries, FSCTL_GETFD,NFSCTL_GETFS to nfsctl entries
-
-2007-08-10 Josh Stone <joshua.i.stone@intel.com>
-
- * conversions.stp (kernel_string, kernel_long, kernel_int,
- kernel_short, kernel_char, user_string_warn): Use the
- CONTEXT->error_buffer to create an error message instead of a static
- local array.
-
-2007-08-10 Frank Ch. Eigler <fche@elastic.org>
-
- From "Zhaolei" zhaolei@cn.fujitsu.com:
- * syscalls.stp (msync.return): Correct name variable.
-
-2007-08-10 Frank Ch. Eigler <fche@elastic.org>
-
- From "Zhaolei" zhaolei@cn.fujitsu.com:
- * aux_syscalls.stp (_sockopt_optname_str): Add SO_SND/RCVBUFFORCE.
-
-2007-08-09 Frank Ch. Eigler <fche@elastic.org>
-
- From Cai Fei <caifei@cn.fujitsu.com>:
- * aux_syscalls.stp (__fork_flags): Decode CLONE_VM, NEWNS, DETACHED.
-
-2007-08-09 William Cohen <wcohen@redhat.com>
-
- * tapset/syscalls.stp (syscall.compat_execve,
- syscall.compat_execve.return):
- * tapset/syscalls2.stp (syscall.compat_sys_semtimedop,
- syscall.compat_sys_semtimedop.return):
- * tapset/i686/syscalls.stp (syscall.set_zone_reclaim,
- syscall.set_zone_reclaim.return): Make optional.
-
-2007-08-08 Frank Ch. Eigler <fche@elastic.org>
-
- From "Zhaolei" zhaolei@cn.fujitsu.com:
- * aux_syscalls.stp (_sockopt_level_str): Correct level=1 string.
-
-2007-08-03 Martin Hunt <hunt@redhat.com>
-
- * aux_syscalls.stp (__get_compat_argv): Add cast.
-
-2007-07-31 Martin Hunt <hunt@redhat.com>
-
- * syscalls*: Move sys32_sysctl to arch dirs.
-
-2007-07-31 Martin Hunt <hunt@redhat.com>
-
- * syscalls.stp (clock_nanosleep): Fix flags string.
- * syscalls2.stp: Fix typo.
-
-2007-07-31 Martin Hunt <hunt@redhat.com>
-
- * */syscalls.stp: Added mmap functions.
- Continued moving common compatibility functions to
- the main tapset.
-
- * aux_syscalls.stp (_shmat_flags_str): New.
- (__get_compat_argv): New.
-
- * syscalls.stp (adjtimex): Just print hex argument.
- (compat_adjtimex): New.
- (clock_getres): Also probe compat_clock_getres.
- (clock_gettime): Also probe compat funcs.
- (compat_clock_nanosleep): New.
- (compat_execve): New.
- (fstatat): New.
- (get[e][gu]id): Also probe sys32.
- (getsockopt): Make optional. Also probe compat.
- (mmap, mmap2): These are arch-specific, so move to individual
- architecture subdirs.
- (compat_sys_msgctl): New.
- (compat_sys_msgrcv): New.
- (compat_sys_msgsnd): New.
-
- * syscalls.stp (pread32): Remove. It calls pread64 .
- (quotactl): Make optional.
- (recv): Probe correct function.
- (recvfrom): Fix args.
- (compat_sys_recvmsg): New.
- (semctl): Make optional.
- (compat_sys_semctl): New.
- (semget): Make optional.
- (semop): Make optional.
- (semtimedop): Make optional.
- (compat_sys_semtimedop): New.
- (send): Make optional.
- (sendmsg): Make optional.
- (compat_sys_sendmsg): New.
- (sendto): Make optional.
- (setsockopt): Make optional. Add compat.
- (shmat): New.
- (compat_sys_shmat): New.
- (shmctl): New.
- (compat_sys_shmctl): New.
- (shmdt): New.
- (shmget): New.
- (shutdown): Make optional.
- (socket): Make optional.
- (socketpair): Make optional.
- (swapoff): Make optional.
- (swapon): Make optional.
- (sysctl): Add probe on sys32.
-
-2007-07-31 Frank Ch. Eigler <fche@elastic.org>
-
- PR 4793
- * ppc64/syscalls.stp: Remove duplicate sys_request_key{,.return}
- aliases.
-
-2007-07-30 Dave Wilder <dwilder@us.ibm.com>
-
- PR 4794
- * syscalls2.stp (syscall.pread and syscall.pread32)
- For s390x only changed the $buf argument to $ubuf.
- Change the format for count and position from %p to %d
- to make it consistant with sys_read and sys_write.
-
-2007-07-25 Mike Mason <mmlnx@us.ibm.com>
-
- PR 4386
- * memory.stp (vm.pagefault, vm.pagefault.return):
- __handle_mm_fault renamed back to handle_mm_fault in 2.6.23.
- Changed probes to look for either name in mm/memory.c and removed
- kernel version check.
- * task.stp (task_cpu): thread_info in task_struct changed
- to stack in 2.6.23. Usage appears to be the same as before.
-
-2007-07-17 Mike Mason <mmlnx@us.ibm.com>
-
- * socket.stp: changed initialization of *num2str arrays to
- foreach loops.
-
-2007-07-16 Martin Hunt <hunt@redhat.com>
- (compat_sys_io_submit): Fix typo.
-
-2007-07-16 Martin Hunt <hunt@redhat.com>
- * syscalls.stp (compat_sys_fcntl64, compat_sys_fcntl): Add.
- (compat_sys_fstatfs64): Add.
- (compat_sys_getdents, compat_sys_getdents64): Add.
- (compat_sys_ioctl): Add.
- (compat_sys_io_getevents): Add.
- (compat_sys_io_setup): Add.
- (compat_sys_io_submit): Add.
-
- * syscalls2.stp (compat_sys_nfsservctl): Add.
- (sys_openat): Add.
- (sys_ppoll): Add;
- (compat_sys_ppoll): Add.
- (sys32_pread64): Add.
- (sys32_pwrite32): Add.
- (sys_pwrite64): Print quoted string.
- (sys_pselect6, compat_sys_pselect6): Add.
- (sys_pselect7, compat_sys_pselect7): Add.
- (compat_sys_old_readdir): Add.
- (sys_select): Don't try to print fd_sets.
- (compat_sys_select): Add.
- (compat_sys_statfs64): Add.
-
- * ppc/syscalls.stp: Remove duplicated probes.
-
- * aux_syscalls.stp (_nfsctl_cmd_str): New.
- (_fd_set_u): Removed. Not used.
-
-2007-07-11 Eugene Teo <eteo@redhat.com>
-
- * tcp.stp (tcp_sockstate_str, tcp_sockopt_str,
- tcp_setsockopt): New. Also added sockopt and sockstate
- lookup tables.
-
-2007-07-10 Martin Hunt <hunt@redhat.com>
-
- * aux_syscalls.stp (_struct_compat_timeval2_u):
- Fixes.
-
-2007-07-10 Martin Hunt <hunt@redhat.com>
- * syscall*.stp: Major reorganization work.
- * aux_syscalls.stp (_sigprocmask_how_str): Rewrite
- in C so real arch-dependent header files
- will be used.
- (_mlockall_flags_str): Ditto.
-
-2007-07-09 Martin Hunt <hunt@redhat.com>
- * syscalls2.stp (compat_sys_settimeofday): New.
-
-2007-07-09 Martin Hunt <hunt@redhat.com>
-
- * syscalls2.stp (compat_sys_utimes): New.
- * ppc64/syscalls.stp (compat_sys_utimes): Removed.
-
- * syscalls.stp (compat_sys_futimesat): Fix arg.
-
-2007-07-03 Martin Hunt <hunt@redhat.com>
-
- * syscalls.stp: Add sys_futimesat, compat_sys_futimesat.
- * syscalls2.stp (utimes): Use _struct_timeval2_u.
- * aux_syscalls.stp (_struct_timeval2_u): New function.
- (_struct_compat_timeval2_u): New function.
-
-2007-07-02 Martin Hunt <hunt@redhat.com>
-
- * context.stp (print_backtrace): If no regs, just
- print the probe point.
-
-2007-06-22 Frank Ch. Eigler <fche@elastic.org>
-
- * syscalls_cfg_trunc.stp: New file for configuration global.
- * syscalls.stp (add_key, mount), syscalls2.stp (write):
- Use parameter.
-
-2007-06-15 Martin Hunt <hunt@redhat.com>
-
- * syscalls.stp: Add sys_fcntl64, sys_oabi_fstat64,
- sys_oabi_lstat64.
- * syscalls2.stp: Fix sys_send. Add sys_sendfile64.
- * errno.stp: Add arm support.
-
-2007-06-14 Mike Mason <mmlnx@us.ibm.com>
-
- * socket.stp: removed extra assignment to "size" in
- socket.aio_write.return
-
-2007-06-07 Martin Hunt <hunt@redhat.com>
- Fallout from PR 3331 fix. Sometimes glibc and the
- kernel disagree about signed vs unsigned.
- * aux_syscalls.stp: Rename __uid() to __int32().
- * syscalls.stp: Change syscall.chown, syscall.fchown,
- syscall.lchown, and syscall.lseek to use __int32().
- * syscalls2.stp: Change syscall.setregid, syscall.resgid,
- syscall.resuid, and syscall.setreuid to use __int32().
-
-2007-05-17 Martin Hunt <hunt@redhat.com>
-
- * syscalls.stp: Make optional sys_alarm, sys_fadvise64,
- sys_gethostname, sys_getpgrp, and sys_llseek.
- (syscall.getrlimit): Add optional calls sys_old_getrlimit,
- compat_sys_getrlimit, and compat_sys_old_getrlimit.
-
- * syscalls2.stp: Make optional sys_nice, sys_rt_sigreturn,
- sys_signal, sys_sigprocmask, sys_utime
- (syscall.old_getrlimit): Moved into syscall.getrlimit.
-
-2007-05-16 Will Cohen <wcohen@redhat.com>
- PR 4471
- * syscall2.stp: Correct sys_pipe function args for ia64.
-
-2007-05-16 Will Cohen <wcohen@redhat.com>
-
- PR 4510
- * scheduler.stp: Correct function argument.
-
-2007-05-09 Martin Hunt <hunt@redhat.com>
-
- * syscalls2.stp: Added compat_sys_pause to syscall.pause.
-
- * syscalls.stp: Added sys_lstat64 to syscall.lstat.
- Added compat_sys_gettimeofday to syscall.gettimeofday.
-
- * ppc64/syscalls.stp: Remove sys_lstat64.
- * i686/syscalls.stp: Remove sys_lstat64.
-
-2007-04-25 David Wilder <dwilder@us.ibm.com>
-
- * syscall2.stp:syscall.pause added sys32_pause to probe list.
-
-2007-04-25 David Wilder <dwilder@us.ibm.com>
-
- * s390x/syscall.stp: Fix bug in syscall.mmap returning the wrong args
- for 32-bit versions of mmap calls.
-
-2007-04-24 Will Cohen <wcohen@redhat.com>
-
- * memory.stp: Update vm.pagefault.return comment.
-
-2007-04-24 Mike Mason <mmlnx@us.ibm.com>
-
- * socket.stp: adapted to changes in 2.6.19 socket routines
-
-2007-04-24 Will Cohen <wcohen@redhat.com>
-
- * memory.stp: Add matching vm.pagefault.return
-
-2007-04-23 Frank Ch. Eigler <fche@elastic.org>
-
- * scheduler.stp (scheduler.ctxswitch): Since it's marked __kprobes
- switch from __switch_to to context_switch on x86-64 in Ipswitch.
-
-2007-04-04 Sébastien Dugué <sebastien.dugue@bull.net>
-
- * scsi.stp: Fix for when the scsi driver is built into the kernel.
-
-2007-04-11 Martin Hunt <hunt@redhat.com>
-
- * aux_syscalls.stp: Add in6.h include.
-
-2007-04-10 Martin Hunt <hunt@redhat.com>
-
- * logging.stp (print_char): New function.
-
- * aux_syscalls.stp: Clean up network includes.
-
-2007-04-09 Mike Mason <mmlnx@us.ibm.com>
-
- * DEVGUIDE: Added new tapset developer's guide.
-
-2007-03-30 Frank Ch. Eigler <fche@elastic.org>
-
- PR 1570.
- * memory.stp, scheduler.stp, signal.stp, LKET/signal.stp: Adapt
- to .inline -> .function change.
-
-2007-03-09 Pierre Peiffer <pierre.peiffer@bull.net>
-
- * nfsd.stp (nfsd.dispatch): Change initialization of variable
- client_ip with a call to addr_from_rqst.
- * rpc.stp (addr_from_rqst): - update with changes in struct svc_rqst
- - __rpc_execute returns void now. struct rpc_xprt modified since
- kernel 2.6.19.
- * nfs.stp, vfs.stp: Local variables f_dentry renamed, because
- conflicting with a new #define in kernel header linux/fs.h in 2.6.20.
-
-2007-02-29 David Wilder <dwilder@us.ibm.com>
-
- *conversions.stp (kernel_int) added goto success; (PR 4419)
-
-2007-02-22 David Wilder <dwilder@us.ibm.com>
-
- * syscalls.stp, s390x/syscall.stp: Created an s390x version of
- syscall.mmap, syscall.mmap2, syscall.mmap.return, syscall.mmap2.return.
-
-2007-02-09 Fr ank Ch. Eigler <fche@elastic.org>
-
- * conversions.stp (*): Make errmsg usage uniform.
-
-2007-02-06 Josh Stone <joshua.i.stone@intel.com>
-
- * aux_syscalls.stp, inet_sock.stp, ioblock.stp, ioscheduler.stp,
- nfs.stp, nfs_proc.stp, nfsd.stp, rpc.stp, scsi.stp, signal.stp,
- socket.stp, task.stp, tcp.stp, vfs.stp: Protect pointer dereferences
- with kread wherever possible. Some places still have hazards, as
- marked with FIXMEs.
-
- * errno.stp (returnstr): Don't use return in tapset C functions.
- * aux_syscalls.stp (__uget_timex_m): Ditto.
- * nfsd.stp (__get_fh): Ditto.
- * nfs.stp, vfs.stp (<many functions>): Ditto.
- * string.stp (substr): Ditto. Also make sure start index is valid.
-
- * syscalls.stp (syscall.execve): Change __string to kernel_string.
-
-2007-02-06 Frank Ch. Eigler <fche@elastic.org>
-
- * conversions.stp (kernel_long/int/short/char): New functions.
-
-2007-01-31 Martin Hunt <hunt@redhat.com>
-
- * context.stp (print_backtrace): Modify for new
- _stp_stack_print.
- (backtrace): Just use _stp_stack_snprint().
- (print_stack): Use new _stp_print* functions.
- (probefunc): Use _stp_symbol_snprint.
-
-2007-01-26 Josh Stone <joshua.i.stone@intel.com>
-
- * vfs.stp (ppos_pos): Change deref() to kread() so i686 passes.
-
-2007-01-25 Mike Mason <mmlnx@us.ibm.com>
-
- * socket.stp: Fix for missing SOCK_PASSSEC in kernels earlier
- than 2.6.18.
-
-2007-01-25 Martin Hunt <hunt@localhost.localdomain>
-
- * syscalls2.stp: Add sys32_ustat probe.
-
-2007-01-23 Mike Mason <mmlnx@us.ibm.com>
-
- * socket.stp: Fixed bit checking method in sock_flags_num2str()
- to match how it's done in the kernel.
-
-2007-01-23 Mike Mason <mmlnx@us.ibm.com>
-
- * socket.stp: New sockets tapset.
-
-2007-01-23 Mike Mason <mmlnx@us.ibm.com>
-
- * string.stp: Added tokenize() and strtol() functions.
-
-2007-01-17 Martin Hunt <hunt@redhat.com>
-
- * syscalls.stp: Add syscall.creat.
- * syscalls2.stp: Add compat_sys_open.
-
-2007-01-13 Mike Mason <mmlnx@us.ibm.com>
-
- * ioblock.stp: renamed __bio_direction() to bio_rw_num()
-
-2007-01-12 Mike Mason <mmlnx@us.ibm.com>
-
- * x86_64/syscalls.stp: added ? to request_key aliases
- to prevent syscall.* failures on some kernels
-
-2006-12-29 Li Guanglei <guanglei@cn.ibm.com>
-
- From Gui Jian <guij@cn.ibm.com>
- * ioscheduler.stp, nfsd.stp, nfs.stp, nfs_proc.stp,
- rpc.stp, vfs.stp: patch for 2.6.19 kernel
-
-2006-12-18 Frank Ch. Eigler <fche@elastic.org>
-
- * vfs.stp (ppos_pos): Protect contents with deref(), though
- this blocks operation on i686 due to bug #3079.
-
-2006-12-13 Mike Mason <mmlnx@us.ibm.com>
-
- * scheduler.stp: fixed last line in scheduler.ctxswitch to
- reference $prev_p->state instead of $prev_p->pid.
-
-2006-12-11 Li Guanglei <guanglei@cn.ibm.com>
-
- From Gui Jian <guij@cn.ibm.com>
- * nfs.stp, nfs_proc.stp, rpc.stp: patch for 2.6.9 kernel
-
-2006-11-29 Li Guanglei <guanglei@cn.ibm.com>
-
- From Gui Jian <guij@cn.ibm.com>
- * scheduler.stp, vfs.stp: made idle_balance and
- buffer_migrate_page optinal.
-
-2006-11-20 Frank Ch. Eigler <fche@elastic.org>
-
- * context.stp (caller_addr): Declare return type.
-
-2006-11-07 Li Guanglei <guanglei@cn.ibm.com>
-
- From Gui Jian <guij@cn.ibm.com>
- * signal.stp, memory.stp: make do_mmap2, copy_cow_page
- and signal.handle.return optional since they are obsolete
- or failed to probe on 2.6.18.1/ppc64
-
-2006-11-02 Frank Ch. Eigler <fche@elastic.org>
-
- * README: Add a blurb against running these scripts directly.
-
-2006-10-29 Thang Nguyen <thang.p.nguyen@intel.com>
-
- * context.stp: Added proper handling of statement
- * probe in probefunc() for IA64 (bz# 3423)
-
-2006-10-16 Li Guanglei <guanglei@cn.ibm.com>
- * scsi.stp: check whether rq_disk is empty
- * scheduler.stp: revert changes for x86_64
-
-2006-10-13 Li Guanglei <guanglei@cn.ibm.com>
- * scsi.stp: add some variables
- * scheduler.stp: skip __switch_to on x86_64
-
-2006-10-12 Martin Hunt <hunt@redhat.com>
- * context.stp (print_backtrace): Pass in new
- kretprobe instance arg.
- (backtrace): Ditto.
- (is_return): Rewrite.
- (stack_size): New.
- (stack_used): New.
- (stack_unused): New.
- (called_addr): New.
- (caller): New.
-
-2006-10-12 Li Guanglei <guanglei@cn.ibm.com>
- * ioscheduler.stp: bugfix to avoid refer to NULL pointer
-
-2006-10-11 Li Guanglei <guanglei@cn.ibm.com>
- * nfs.stp, nfsd.stp: bugfix of pointer conversion on
- 32-bit platform.
- * i686/syscall.stp: make sys_request_key optional since
- it failed to probe on 2.6.18/i386
-
-2006-10-04 Frank Ch. Eigler <fche@elastic.org>
-
- * context.stp (probefunc): Return empty string for
- userspace (< PAGE_OFFSET) pointers.
-
-2006-09-26 David Smith <dsmith@redhat.com>
-
- * test/run.sh: Changed 'stpd' references to 'staprun'.
-
-2006-09-20 Josh Stone <joshua.i.stone@intel.com>
-
- PR 3233
- * timestamp.stp (gettimeofday_ns): New function
- (gettimeofday_us, gettimeofday_ms, gettimeofday_s):
- Use gettimeofday_ns as the base unit.
-
-2006-09-19 Li Guanglei <guanglei@cn.ibm.com>
-
- From Gui Jian <guijian@cn.ibm.com>
-
- * rpc.stp: Some changes and more comments of RPC tapset
-
-2006-09-18 Martin Hunt <hunt@redhat.com>
-
- * logging.stp (stp_print_binary): New function.
- * string.stp: Fix docs.
-
-2006-09-12 Li Guanglei <guanglei@cn.ibm.com>
-
- From Li Xuepeng <xuepengl@cn.ibm.com>
-
- * nfsd.stp, nfs_proc.stp, nfs.stp:
- Change NFS file identifier. Change NFS version data type
- from String to INT. Add version variable to nfs_open
- and nfs_release.
-
-2006-09-11 Li Guanglei <guanglei@cn.ibm.com>
-
- From Gui Jian(guijian@cn.ibm.com>
- * rpc.stp: tapsets for RPC activities.
-
-2006-08-30 Li Guanglei <guanglei@cn.ibm.com>
-
- * signal.stp: some changes to arguments and comments
- of signal tapset
-
-2006-08-25 Li Guanglei <guanglei@cn.ibm.com>
-
- From Li Xuepeng:
- * vfs.stp,nfsd.stp,nfs.stp: bug fixes and more error checking
-
-2006-08-23 Li Guanglei <guanglei@cn.ibm.com>
-
- * vfs.stp: New tapset from Thomas Zanussi(trz@us.ibm.com) to probe
- vfs layer activities.
- * nfs.stp: New tapset from Li Xuepeng(xuepengl@cn.ibm.com) to probe
- nfs file operations and nfs address space operations on client side.
- * nfs_proc.stp: New tapset from Li Xuepeng to probe some nfs RPC
- procedure stub functions on client side.
- * nfsd.stp: New tapset from Li Xuepeng to probe nfs server side
- activities, including some RPC procedure stub functions, nfsd
- dispatch routine, and nfsd_* functions
-
-2006-08-22 Li Guanglei <guanglei@cn.ibm.com>
-
- * signal.stp: More variables for signal.do_action and
- signal.procmask. New function of get_sigset(). Minor
- changes to naming of signal.pend and its comments
-
-
-2006-08-21 Martin Hunt <hunt@redhat.com>
-
- * string.stp (substr): Rewrite. Make the 3rd parameter
- be the length.
-
-2006-08-17 Josh Stone <joshua.i.stone@intel.com>
-
- * signal.stp: Changes on behalf of Manoj S Pattabhiraman:
- 1. As per the suggestions, i have removed the argstr from the
- probe points.
- 2. Added some checks to find whether the signals generated are
- USER or Kernel Mode in signal_handle probe.
-
-2006-08-17 Li Guanglei <guanglei@cn.ibm.com>
-
- * signal.stp: update signal tapsets based on the discussion
- with Josh Stone on mailinglist:
- 1. Added "send2queue" and "name" variable for signal.send.part*
- 2. Added signal.send.return probe alias
- 3. Added signal.checkperm and signal.checkperm.return probe alias
- 4. Commented out signal.handle_stop
- 5. Alias all signal syscalls to syscall tapsets.
-
-2006-08-15 Thang Nguyen <thang.p.nguyen@intel.com>
-
- * ioblock.stp: Added safety checks for __bio_ino() and
- __bio_start_sect().
-
-2006-08-09 Thang Nguyen <thang.p.nguyen@intel.com>
-
- * ioblock.stp: Merged io.stp from Tom Zanussi (IBM) into existing
- ioblock.stp. Removed/Renamed duplicate variables and probes.
-
-2006-08-09 Josh Stone <joshua.i.stone@intel.com>
-
- * signal.stp: Create a new tapset that addresses process signals.
- Much of this was contributed by Manoj Pattabhiraman (IBM).
- * process.stp: Remove aliases that now belong in signal tapset
- * memory.stp: move pagefault to vm.* namespace, and add many other
- virtual-memory themed probes.
-
-2006-08-09 David Smith <dsmith@redhat.com>
-
- * syscalls.stp: Fixed typo in syscall.kexec_load argument
- handling.
-
-2006-08-08 Eugene Teo <eteo@redhat.com>
-
- * context.stp (probemod): New function.
-
-2006-07-18 Thang Nguyen <thang.p.nguyen@intel.com>
-
- * context.stp: Modified probefunc() to print the function
- name (without the dot) for statement probe on ppc64.
-
-2006-07-17 David Smith <dsmith@redhat.com>
-
- * context.stp: Removed returnval() function. Use $return
- instead.
- * return.stp: Removed. Use $return instead.
-
-2006-07-17 Tom Zanussi <zanussi@us.ibm.com>
-
- * ioblock.stp: add null bi_bdev check to bio_devname()
-
-2006-07-17 Li Guanglei <guanglei@cn.ibm.com>
-
- * syscalls.stp: make sys_acct, sys_add_key, sys_keyctl
- and sys_modify_ldt optional on ppc64 since they are
- weak symbol.
- * ppc64/syscalls.stp: remove syscall.acct, syscall.add_key
- and syscall.umask since they are already defined in
- syscalls.stp
-
-2006-07-04 Martin Hunt <hunt@redhat.com>
-
- * syscalls.stp, syscalls2.stp: Use user_string_quoted().
-
-2006-07-04 Li Guanglei <guanglei@cn.ibm.com>
-
- * syscalls.stp, syscalls2.stp, ppc64/syscalls.stp:
- fix syscall.lstat, syscall.lstat64, syscall.newlstat.
- * ppc64/syscalls.stp: fix syscall.compat_sys_statfs and
- syscall.sys32_open
-
-2006-07-04 Li Guanglei <guanglei@cn.ibm.com>
-
- * memory.stp: add addr_to_node() from Jose R. Santos
- (jrs@us.ibm.com)
- * syscalls.stp: typo for syscall.lstat
-
-2006-06-30 Martin Hunt <hunt@redhat.com>
-
- * conversions.stp (user_string): Don't generate errors
- on faults, just return <unknown>.
- (user_string2): New function.
- (user_string_warn): New function.
-
-2006-06-26 Martin Hunt <hunt@redhat.com>
-
- * aux_syscalls.stp (_stp_ctime): New function.
- (_struct_utimbuf_u): New function.
-
-2006-06-25 Li Guanglei <guanglei@cn.ibm.com>
-
- * syscalls.stp: Changes to AIO related syscalls(io_setup,
- io_submit, io_getevents, io_cancel, io_destroy)
-
-2006-06-23 Thang Nguyen <thang.p.nguyen@intel.com>
-
- * tcp.stp: Refined variables and added more
- function descriptions.
- * udp.stp: UDP tapset.
- * inet_sock.stp: common inet_sock functions
- for TCP and UDP tapsets.
-
-2006-06-22 Thang Nguyen <thang.p.nguyen@intel.com>
-
- * tcp.stp: TCP tapset (originally from IBM)
-
-2006-06-21 Josh Stone <joshua.i.stone@intel.com>
-
- PR 2525
- * timestamp.stp (gettimeofday_us, gettimeofday_ms, gettimeofday_s):
- Convert to using the runtime-provided _stp_gettimeofday_us().
-
-2006-06-19 Martin Hunt <hunt@redhat.com>
-
- * syscalls.stp: Make the 16-bit calls optional.
- * syscalls2.stp: Ditto.
-
-2006-06-09 Martin Hunt <hunt@redhat.com>
-
- * syscalls2.stp: Fix sys_sync.
-
-2006-06-09 Martin Hunt <hunt@redhat.com>
-
- * syscalls2.stp: Fixed the uid and gid calls.
-
-2006-06-09 Li Guanglei <guanglei@cn.ibm.com>
-
- * syscalls.stp: made sys_ftruncate64 optional since it doesn't
- exist on 2.6.16*/ppc64
-
-2006-06-08 Thang Nguyen <thang.p.nguyen@intel.com>
-
- * ioblock.stp: new (block I/O activities)
-
-2006-06-06 Josh Stone <joshua.i.stone@intel.com>
-
- * process.stp (create, exec_complete): replace retval() with $return
-
-2006-06-02 Josh Stone <joshua.i.stone@intel.com>
-
- * process.stp (exec, exec_complete): conditionally include
- compat_do_execve for 64-bit kernels
- * process.stp (handle_signal): use optional probes to alternate
- between function or inline
-
-2006-05-30 Martin Hunt <hunt@redhat.com>
-
- * aux_syscalls.stp (_mountflags_str): Rewrite.
- (_umountflags_str): New.
-
- * syscalls.stp (fstatfs.return): Add retstr.
-
- * syscalls2.stp (sys_write): Use text_strn().
- * syscalls.stp (sys_lseek): Fix.
- (sys_llseek): Fix.
-
- * string.stp (text_str): New.
- (text_strn): New.
-
-2006-05-26 Martin Hunt <hunt@redhat.com>
-
- * errno.stp: Add octal option for returnstr.
-
- * [i686,x86_64]/syscalls.stp (umask): Print args and return
- in octal.
- (add_key): Comment out. This syscall is added by a xen patch
- and may not be present.
- (tux): Ditto.
-
- * syscalls.stp (accept): Fix arg name.
-
-2006-05-25 Martin Hunt <hunt@redhat.com>
-
- * syscalls.stp: Add sys_fcntl and sys_listen.
-
- * syscalls2.stp: Commented out sys_socketcall because it only calls
- other system calls which are already probed.
-
-2006-05-25 Martin Hunt <hunt@redhat.com>
-
- * syscall*.stp: Change "0x%p" to "%p".
-
-2006-05-25 Li Guanglei <guanglei@cn.ibm.com>
-
- * scheduler.stp: add prev_task and next_task variable.
-
-2006-05-24 Josh Stone <joshua.i.stone@intel.com>
-
- PR 2677
- * context.stp (probefunc): Use _stp_symbol_sprint_basic
-
-2006-05-19 Li Guanglei <guanglei@cn.ibm.com>
-
- Patch from Mao Bibo (bibo.mao@intel.com)
- * tapset/aux_syscalls.stp: change %lx to %llx in snprintf to
- print the address in IA64
-
-2006-05-19 Li Guanglei <guanglei@cn.ibm.com>
-
- * tapset/ioscheduler.stp: change . to -> operator to get the
- elevator name
-
-2006-05-18 Li Guanglei <guanglei@cn.ibm.com>
-
- * tapset/LKET/*: tracing tapsets of LKET
- * tapset/context.stp: add stp_pid() func
- * tapset/ppc64/syscalls.stp: add conditional preprocessing
- since sys64_time is removed from kernel >= 2.6.16
-
-2006-05-18 Li Guanglei <guanglei@cn.ibm.com>
-
- * tapset/tskschedule.stp: deleted, merge into scheduler.stp
- * tapset/scheduler.stp: incorporate tskschedule.stp
-
-2006-05-17 Josh Stone <joshua.i.stone@intel.com>
-
- * process.stp: Rename signal.send to signal_send and process.complete
- to process_complete, to allow process.* to work properly.
- * process.stp (_IS_ERR): declare parameter type
- * process.stp (process.create): correct new_pid assignment
- * scheduler.stp: New scheduler tapset
-
-2006-05-18 Li Guanglei <guanglei@cn.ibm.com>
-
- * tapset/ioscheduler.stp: generic IO scheduler tapsets from LKET
- * tapset/memory.stp: generic pagefault tapsets from LKET
- * tapset/networking.stp: generic networking tapsets from LKET
- * tapset/scsi.stp: generic scsi tapsets from LKET
- * tapset/tskschedule.stp: generic task scheduler tapsets from LKET
- * tapset/process.stp: changes to process.exec alias
-
-
-2006-05-16 David Smith <dsmith@redhat.com>
-
- * conversions.stp (hexstring, string): Removed functions. Because
- of parser changes, "string" is now a reserved word and cannot be a
- function name. Use 'sprintf("0x%x", num)' to replace hexstring()
- and either 'sprint(num)' or 'sprintf("%d", num)' to replace
- string().
-
- * syscalls.stp (syscall.accept, syscall.alarm, syscall.close,
- syscall.dup, syscall.epoll_create, syscall.exit, syscall.fchdir,
- syscall.fdatasync, syscall.fsync, syscall.getsid) Changed
- 'string()' calls to 'sprint()' calls.
- * syscalls2.stp (syscall.sched_get_priority_max,
- syscall.sched_get_priority_min, syscall.sched_getscheduler,
- syscall.setfsgid, syscall.setfsgid16, syscall.setfsuid,
- syscall.setfsuid16, syscall.setgid, syscall.setgid16,
- syscall.setuid, syscall.setuid16, syscall.ssetmask,
- syscall.timer_delete, syscall.timer_getoverrun): Ditto.
- * i686/syscalls.stp (syscall.iopl, syscall.rt_sigreturn,
- syscall.sigreturn): Ditto.
- * ppc64/syscalls.stp (syscall.ppc64_personality): Ditto.
- * x86_64/syscalls.stp (kernel.syscall.iopl, kernel.syscall.umask):
- Ditto.
-
- * test/ctostp.sh: Uses 'sprint()' instead of 'string()' in
- generated systemtap code.
-
-2006-05-14 Martin Hunt <hunt@redhat.com>
-
- * aux_syscalls.stp (_sys_open_flag_str): Rewrite in C so it
- is complete and works on different archs.
-
-2006-05-09 Josh Stone <joshua.i.stone@intel.com>
-
- * context.stp (probefunc): remove use of labels
- * task.stp: functions to retrieve task information
- * process.stp: tapset for process-related events
-
-2006-05-08 Josh Stone <joshua.i.stone@intel.com>
-
- PR 2594
- From Thang P Nguyen <thang.p.nguyen@intel.com>
- * context.stp (probefunc): expands ability to detect the function
- for different types of probes.
-
-2006-05-05 Frank Ch. Eigler <fche@elastic.org>
-
- PR 2643
- * syscalls.stp: Put back some dummy syscall.exit*.return probes.
-
-2006-05-03 Frank Ch. Eigler <fche@elastic.org>
-
- * context.stp, errno.stp: Note/eliminate some retval() duplication.
-
-2006-04-27 Martin Hunt <hunt@redhat.com>
-
- * endian.stp (set_endian): Remove "pure" to prevent
- this from optimizing away.
-
-2006-04-21 Frank Ch. Eigler <fche@elastic.org>
-
- * aux_syscalls.stp (_fildes_u): Declare return value type.
-
-2006-04-18 Frank Ch. Eigler <fche@elastic.org>
-
- * conversions.stp (string, hex_string): Use snprintf for safety.
-
-2006-04-18 Martin Hunt <hunt@redhat.com>
-
- * conversions.stp (user_string): Reenable error message.
-
-2006-04-17 Martin Hunt <hunt@redhat.com>
-
- * endian.stp (set_endian): New function.
-
-2006-03-06 Martin Hunt <hunt@redhat.com>
-
- * system.stp: New tapset.
-
-2006-03-01 Martin Hunt <hunt@redhat.com>
-
- * aux_syscalls.stp (_struct_sockaddr_u): Parse sockaddr.
-
- * syscalls.stp (bind): Call _struct_sockaddr_u().
-
- * errno.stp (errno_str): Complete rewrite in C for speed and
- accuracy.
- (returnstr): New function for syscall tapet.
-
-2006-02-22 Frank Ch. Eigler <fche@elastic.org>
-
- * timestamp.stp (get_cycles): New function.
-
-2006-02-21 Martin Hunt <hunt@redhat.com>
-
- * context.stp: Fix definition of returnval(). Now the same as retval().
- Cleanup needed. Only one can survive.
-
-2006-02-17 Frank Ch. Eigler <fche@elastic.org>
-
- * context.stp (cpu): Clone undocumented cpuid() function.
-
-2006-02-14 Martin Hunt <hunt@redhat.com>
-
- * syscalls.stp: More updates.
-
-2006-02-14 Frank Ch. Eigler <fche@elastic.org>
-
- * queue_stats.stp: New tapset.
-
-2006-02-14 Mark McLoughlin <markmc@redhat.com>
-
- * aux_syscalls.stp: (_sys_open_flag_str): s/O_NDCTTY/O_NOCTTY/
-
-2006-02-14 Martin Hunt <hunt@redhat.com>
-
- * aux_syscalls.stp (_struct_timeval_u): New function.
- (_struct_timeval): New function.
- (_struct_timespec_u): New function.
- (_struct_timespec): New function.
- (_struct_itimerval_u): New function:
- (_struct_itimerval): New function:
- (_signal_name): New function.
- (_module_flags_str): Fixed.
-
- * syscalls2.stp (syscall.setitimer): Use new function
- _struct_itimerval_u().
-
- * syscalls.stp: Latest version. Many changes.
-
-2006-02-08 Martin Hunt <hunt@redhat.com>
-
- * aux_syscalls.stp(_msync_flag_str): Fix.
- (_wait_opt_str): Fix.
- * syscalls.stp: Latest.
-
-2006-02-07 Martin Hunt <hunt@redhat.com>
-
- * syscalls.stp: Latest.
- * syscalls2.stp: Commented out pciconfig calls. Those
- need to go in arch-specific directories.
-
- * aux_syscalls.stp (_access_mode_str): Fix.
- (_mmap_flags): New Function.
- (_mprotect_prot_str): Fix.
- (__string): New.
- (__get_argv): New.
- (__fork_flags): New.
-
-2006-02-01 Martin Hunt <hunt@redhat.com>
-
- * syscalls.stp: New syscall file.
- * syscall2.stp: More syscalls.
- * i686/syscalls.stp: x86-specific calls.
- * x86_64/syscalls.stp: x86_64-specific calls.
-
-2006-01-30 Martin Hunt <hunt@redhat.com>
-
- * context.stp (probefunc): New function.
- (is_return): New function.
- (returnval): New function.
-
-2006-01-15 Frank Ch. Eigler <fche@elastic.org>
-
- * logging.stp: Revert.
-
-2006-01-10 Martin Hunt <hunt@redhat.com>
-
- * logging.stp: Don't set STAP_SESSION_STOPPING.
- That it done in _stp_exit().
-
diff --git a/tapset/DEVGUIDE b/tapset/DEVGUIDE
index 3d550319..e6bc3fb8 100644
--- a/tapset/DEVGUIDE
+++ b/tapset/DEVGUIDE
@@ -135,17 +135,66 @@ Comments
All probes and functions should include comment blocks that describe
their purpose, the data they provide and the context in which they run
(e.g., interrupt, process, etc.). Also use comments in areas where your
-intent may not be clear from reading the code.
+intent may not be clear from reading the code. The comments preceding
+the functions and probes should be written in the format described in
+the Documentation section to allow automatic generation of the tapset
+documentation.
Documentation
-------------
-Every tapset should have its own man page called stapprobes.<tapset>(5).
-See src/man for examples. In addition, the SEE ALSO section in the
-stapprobes(5) man page should be updated to refer to your tapset's man
-page.
-
-External functions defined in your tapset should be added to the
-stapfuncs(5) man page.
+SystemTap now documents the tapset functions and probe points in a
+manner similar to the Linux kernel. The tapset files have comments
+before each function and probe point that are processed by a modified
+kernel-doc script and pulled into an XML document. HTML, PDF, and man
+pages are generated from that document during the build process.
+
+For systemtap functions the structure of the documentation comment is:
+
+/**
+ * sfunction function_name(:)? (- short description)?
+(* @parameter(space)*: (description of function parameter x)?)*
+(* a blank line)?
+ * (Description:)? (Description of function)?
+ * (section header: (section description)? )*
+(*)?*/
+
+For sytemtap probes the structure of the documentation comment is the
+following:
+
+/**
+ * probe probe_name(:)? (- short description)?
+(* @variable(space)*: (description of probe variable x)?)*
+(* a blank line)?
+ * (Description:)? (Description of probe)?
+ * (section header: (section description)? )*
+(*)?*/
+
+The document extraction keys off the "/**" at the start of the
+comment; normal comments starting with "/*" are ignored. The next
+line of the comment describes whether the following code is for a
+SystemTap function or a probe and title descript. Following lines that
+have an '@' preceding the first word describe the parameters or
+variables available in the function or probe. There can be zero or
+more "section headers" after the variables or parameters. After each
+section there can be multiple lines of text. The comment is closed
+with "*/".
+
+The xml tapsets.tmpl in src/doc/SystemTap_Tapset_Reference makes use
+of those special comments. This xml file has place holders to extract
+the documentation from the tapsets like the following for
+ioscheduler.stp:
+
+!Itapset/ioscheduler.stp
+
+When a new tapset file is created you will need make a similar addition
+to tapsets.tmpl to pull the documentation in from the new tapset file.
+If configured to build reference documentation (--enable-refdocs) and
+the needed software is available, the build process will automatic
+generated PDF, HTML, and man pages.
+
+The creation of new man pages for the tapsets and functions is
+depricated and all the documentation should be migrated over to the
+tapsets.tmpl.
Config & Makefiles
------------------
@@ -182,14 +231,7 @@ most important, it validates that the tapset can actually be used for
something useful. If you can't write a script that uses the tapset in a
meaningful way, perhaps you should rethink what the tapset provides.
-Example scripts are stored in src/examples in GIT.
-
-Change Logs
------------
-Update the appropriate ChangeLog files with a brief description of your
-additions and changes. Note that the change description you enter during
-a "cvs commit" does not get added to the ChangeLog files. You must edit
-the ChangeLog files directly and commit them as well.
+Example scripts are stored in testsuite/systemtap.examples/ in GIT.
Embedded C & Safety
-------------------
@@ -221,7 +263,7 @@ The following documents, web sites and mailing lists will familiarize
you with SystemTap:
- SystemTap Tutorial. A good introduction to SystemTap.
- (html format:http://sourceware.org/systemtap/tutorial/,
+ (html format: http://sourceware.org/systemtap/tutorial/,
PDF format: http://sourceware.org/systemtap/tutorial.pdf)
- SystemTap project home page
@@ -231,7 +273,7 @@ you with SystemTap:
(http://sourceware.org/systemtap/getinvolved.html)
- GIT repository
- (http://sources.redhat.com/git/?p=systemtap.git;a=summary
+ (http://sources.redhat.com/git/?p=systemtap.git;a=summary)
- HACKING file in the source directory. This file outlines what's
expected of project contributors.
@@ -242,7 +284,8 @@ you with SystemTap:
- Existing tapsets
-- SystemTap Language Reference (in development, will be added to wiki
- when released)
+- SystemTap Language Reference.
+ (html format: http://sourceware.org/systemtap/langref/,
+ PDF format: http://sourceware.org/systemtap/langref.pdf)
- SystemTap Man Pages (use "man -k stap" to print a list)
diff --git a/tapset/aux_syscalls.stp b/tapset/aux_syscalls.stp
index 603d2158..42b2abf8 100644
--- a/tapset/aux_syscalls.stp
+++ b/tapset/aux_syscalls.stp
@@ -1419,7 +1419,7 @@ typedef struct {
char *name;
} _stp_val_array;
-void _stp_lookup_str(const _stp_val_array * const array, long val, char *ptr, int len)
+static void _stp_lookup_str(const _stp_val_array * const array, long val, char *ptr, int len)
{
int i = 0, slen;
while (array[i].name) {
@@ -1432,7 +1432,7 @@ void _stp_lookup_str(const _stp_val_array * const array, long val, char *ptr, in
slen = strlen(ptr);
_stp_snprintf(ptr + slen, len - slen, "0x%lx", val);
}
-void _stp_lookup_or_str(const _stp_val_array * const array, long val, char *ptr, int len)
+static void _stp_lookup_or_str(const _stp_val_array * const array, long val, char *ptr, int len)
{
int i = 0, flag = 0, slen;
@@ -1461,7 +1461,7 @@ void _stp_lookup_or_str(const _stp_val_array * const array, long val, char *ptr,
%}
%{
-const _stp_val_array const _stp_signal_list[] = {
+static const _stp_val_array const _stp_signal_list[] = {
{0, "SIG_0"},
V(SIGHUP),
V(SIGINT),
@@ -1493,7 +1493,7 @@ const _stp_val_array const _stp_signal_list[] = {
{0, NULL}
};
-void _stp_sigset_str(sigset_t *mask, char *ptr, int len)
+static void _stp_sigset_str(sigset_t *mask, char *ptr, int len)
{
const _stp_val_array * const array = _stp_signal_list;
int i = 0, flag = 0;
@@ -1517,7 +1517,7 @@ function _signal_name:string(sig:long)
%}
%{
-const _stp_val_array const _stp_semctl_list[] = {
+static const _stp_val_array const _stp_semctl_list[] = {
V(IPC_INFO),
V(SEM_INFO),
V(SEM_STAT),
@@ -1556,7 +1556,7 @@ function _stp_sigset_u:string(setptr:long)
%}
%{
-const _stp_val_array const _stp_fork_list[] = {
+static const _stp_val_array const _stp_fork_list[] = {
V(CLONE_VM),
V(CLONE_FS),
V(CLONE_FILES),
@@ -1604,7 +1604,7 @@ function __fork_flags:string(flags:long)
%}
%{
-const _stp_val_array const _stp_atflag_list[] = {
+static const _stp_val_array const _stp_atflag_list[] = {
#ifdef AT_SYMLINK_NOFOLLOW
V(AT_SYMLINK_NOFOLLOW),
#endif
@@ -1626,7 +1626,7 @@ function _at_flag_str:string(f:long)
%{
#include <linux/shm.h>
-const _stp_val_array const _stp_shmat_list[] = {
+static const _stp_val_array const _stp_shmat_list[] = {
V(SHM_RDONLY),
V(SHM_RND),
V(SHM_REMAP),
@@ -1643,7 +1643,7 @@ function _shmat_flags_str:string(f:long)
%{
#include <linux/mman.h>
-const _stp_val_array const _stp_mprotect_list[] = {
+static const _stp_val_array const _stp_mprotect_list[] = {
{0, "PROT_NONE"},
V(PROT_READ),
V(PROT_WRITE),
@@ -1660,7 +1660,7 @@ function _mprotect_prot_str:string(prot:long)
%{
#include <linux/mman.h>
-const _stp_val_array const _stp_mmap_list[] = {
+static const _stp_val_array const _stp_mmap_list[] = {
V(MAP_SHARED),
V(MAP_PRIVATE),
V(MAP_FIXED),
@@ -1730,7 +1730,7 @@ function _sighandler_str:string(uaddr:long)
%}
%{
-void _stp_sigaction_str(struct sigaction *act, char *ptr, int len)
+static void _stp_sigaction_str(struct sigaction *act, char *ptr, int len)
{
static const _stp_val_array const _stp_sa_handler_list[] = {
{0, "SIG_DFL"},
diff --git a/tapset/context-unwind.stp b/tapset/context-unwind.stp
index 59d111ee..7c96b7e2 100644
--- a/tapset/context-unwind.stp
+++ b/tapset/context-unwind.stp
@@ -23,10 +23,11 @@
* except that deeper stack nesting may be supported. Return nothing.
*/
function print_backtrace () %{
- if (! CONTEXT->regs)
- WARN_ON (! CONTEXT->regs);
- else
- _stp_stack_print(CONTEXT->regs, 1, CONTEXT->pi, MAXTRACE);
+ if (CONTEXT->regs) {
+ _stp_stack_print(CONTEXT->regs, 1, CONTEXT->pi, MAXTRACE);
+ } else {
+ _stp_printf("Systemtap probe: %s\n", CONTEXT->probe_point);
+ }
%}
/**
@@ -36,10 +37,10 @@ function print_backtrace () %{
* stack. It may be truncated due to maximum string length.
*/
function backtrace:string () %{ /* pure */
- if (! CONTEXT->regs)
- WARN_ON (! CONTEXT->regs);
- else
- _stp_stack_snprint (THIS->__retvalue, MAXSTRINGLEN, CONTEXT->regs, 0, CONTEXT->pi, MAXTRACE);
+ if (CONTEXT->regs)
+ _stp_stack_snprint (THIS->__retvalue, MAXSTRINGLEN, CONTEXT->regs, 0, CONTEXT->pi, MAXTRACE);
+ else
+ strlcpy (THIS->__retvalue, "", MAXSTRINGLEN);
%}
/**
diff --git a/tapset/errno.stp b/tapset/errno.stp
index 2523d846..eda9bff1 100644
--- a/tapset/errno.stp
+++ b/tapset/errno.stp
@@ -9,7 +9,7 @@
%{
#define N(a) [a]=#a
-const char * const errlist[] = {
+static const char * const errlist[] = {
/* from asm-generic/errno-base.h */
[1] = "EPERM",
[2] = "ENOENT",
@@ -340,7 +340,7 @@ const char * const errlist[] = {
#endif
};
#undef N
-const int Maxerrno = sizeof(errlist)/sizeof(char *);
+static const int Maxerrno = sizeof(errlist)/sizeof(char *);
%}
function errno_str:string (err:long) %{ /* pure */
diff --git a/tapset/memory.stp b/tapset/memory.stp
index 9370073b..961cca38 100644
--- a/tapset/memory.stp
+++ b/tapset/memory.stp
@@ -6,14 +6,57 @@
// redistribute it and/or modify it under the terms of the GNU General
// Public License (GPL); either version 2, or (at your option) any
// later version.
+%{
+#include <linux/mm.h>
+%}
+
+global VM_FAULT_OOM=0, VM_FAULT_SIGBUS=1, VM_FAULT_MINOR=2, VM_FAULT_MAJOR=3
+global VM_FAULT_NOPAGE=4, VM_FAULT_LOCKED=5, VM_FAULT_ERROR=6
+
+/**
+ * sfunction vm_fault_contains - Test return value for page fault reason
+ * @value: The fault_type returned by vm.page_fault.return
+ * @test: The type of fault to test for (VM_FAULT_OOM or similar)
+ */
+function vm_fault_contains:long (value:long, test:long)
+%{
+ int res;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
+ switch (THIS->test){
+ case 0: res = THIS->value == VM_FAULT_OOM; break;
+ case 1: res = THIS->value == VM_FAULT_SIGBUS; break;
+ case 2: res = THIS->value == VM_FAULT_MINOR; break;
+ case 3: res = THIS->value == VM_FAULT_MAJOR; break;
+ default:
+ res = 0; break;
+ }
+#else
+ switch (THIS->test){
+ case 0: res = THIS->value & VM_FAULT_OOM; break;
+ case 1: res = THIS->value & VM_FAULT_SIGBUS; break;
+ case 2: /* VM_FAULT_MINOR infered by that flags off */
+ res = !((VM_FAULT_OOM | VM_FAULT_SIGBUS | VM_FAULT_MAJOR) &
+ THIS->value);
+ break;
+ case 3: res = THIS->value & VM_FAULT_MAJOR; break;
+ case 4: res = THIS->value & VM_FAULT_NOPAGE; break;
+ case 5: res = THIS->value & VM_FAULT_LOCKED; break;
+ case 6: res = THIS->value & VM_FAULT_ERROR; break;
+ default:
+ res = 0;
+ }
+#endif
+ THIS->__retvalue = (res != 0);
+ return;
+%}
/**
* probe vm.pagefault - Records that a page fault occurred.
- * @address: The address of the faulting memory access.
- * @write_access: Indicates whether this was a write.
+ * @address: The address of the faulting memory access; i.e. the address that caused the page fault.
+ * @write_access: Indicates whether this was a write or read access; <command>1</command> indicates a write,
+ * while <command>0</command> indicates a read.
*
* Context: The process which triggered the fault
- *
*/
probe vm.pagefault = kernel.function("__handle_mm_fault@mm/memory.c") ?,
kernel.function("handle_mm_fault@mm/memory.c") ?
@@ -23,9 +66,12 @@ probe vm.pagefault = kernel.function("__handle_mm_fault@mm/memory.c") ?,
}
/**
- * probe vm.pagefault.return - Records type of fault that occurred.
- * @fault_type: 0 (VM_FAULT_OOM), 1 (VM_FAULT_SIGBUS),
- * 2 (VM_FAULT_MINOR), and 3 (VM_FAULT_MAJOR)
+ * probe vm.pagefault.return - Indicates what type of fault occurred.
+ * @fault_type: Returns either
+ * <command>0</command> (VM_FAULT_OOM) for out of memory faults,
+ * <command>2</command> (VM_FAULT_MINOR) for minor faults, <command>3</command> (VM_FAULT_MAJOR) for
+ * major faults, or <command>1</command> (VM_FAULT_SIGBUS) if the fault was neither OOM, minor fault,
+ * nor major fault.
*/
probe vm.pagefault.return = kernel.function("__handle_mm_fault@mm/memory.c").return ?,
kernel.function("handle_mm_fault@mm/memory.c").return ?
@@ -34,7 +80,7 @@ probe vm.pagefault.return = kernel.function("__handle_mm_fault@mm/memory.c").ret
}
/**
- * sfunction addr_to_node - Returns which NUMA node has the given address.
+ * sfunction addr_to_node - Returns which node a given address belongs to within a NUMA system.
* @addr: The address of the faulting memory access.
*
*/
@@ -58,7 +104,7 @@ function _IS_ZERO_PAGE:long(from:long, vaddr:long) %{ /* pure */
/**
- * probe vm.write_shared - Write to shared page.
+ * probe vm.write_shared - Attempts at writing to a shared page.
* @address: The address of the shared write.
*
* Context:
@@ -66,7 +112,7 @@ function _IS_ZERO_PAGE:long(from:long, vaddr:long) %{ /* pure */
*
* Fires when a process attempts to write to a shared page.
* If a copy is necessary, this will be followed by a
- * vm.write_shared_copy.
+ * <command>vm.write_shared_copy</command>.
*/
probe vm.write_shared = kernel.function("do_wp_page") {
address = $address
@@ -74,15 +120,15 @@ probe vm.write_shared = kernel.function("do_wp_page") {
/**
* probe vm.write_shared_copy- Page copy for shared page write.
- * @address: the address of the shared write.
- * @zero: boolean indicating whether it is a zero page
+ * @address: The address of the shared write.
+ * @zero: Boolean indicating whether it is a zero page
* (can do a clear instead of a copy).
*
* Context:
* The process attempting the write.
*
* Fires when a write to a shared page requires a page copy. This is
- * always preceded by a vm.shared_write.
+ * always preceded by a <command>vm.shared_write</command>.
*/
probe vm.write_shared_copy = kernel.function("copy_cow_page")? {
address = $address
@@ -91,12 +137,12 @@ probe vm.write_shared_copy = kernel.function("copy_cow_page")? {
/**
- * probe vm.mmap - Fires when an mmap is requested.
- * @address: the requested address
- * @length: the length of the memory segment
+ * probe vm.mmap - Fires when an <command>mmap</command> is requested.
+ * @address: The requested address
+ * @length: The length of the memory segment
*
* Context:
- * The process calling mmap.
+ * The process calling <command>mmap</command>.
*/
probe vm.mmap = kernel.function("do_mmap"), kernel.function("do_mmap2")? {
address = $addr
@@ -105,12 +151,12 @@ probe vm.mmap = kernel.function("do_mmap"), kernel.function("do_mmap2")? {
/**
- * probe vm.munmap - Fires when an munmap is requested.
- * @address: the requested address
- * @length: the length of the memory segment
+ * probe vm.munmap - Fires when an <command>munmap</command> is requested.
+ * @address: The requested address
+ * @length: The length of the memory segment
*
* Context:
- * The process calling munmap.
+ * The process calling <command>munmap</command>.
*/
probe vm.munmap = kernel.function("do_munmap") {
address = $start
@@ -118,12 +164,12 @@ probe vm.munmap = kernel.function("do_munmap") {
}
/**
- * probe vm.brk -Fires when a brk is requested (resizing a heap).
- * @address - the requested address
- * @length - the length of the memory segment
+ * probe vm.brk - Fires when a <command>brk</command> is requested (i.e. the heap will be resized).
+ * @address: The requested address
+ * @length: The length of the memory segment
*
* Context:
- * The process calling brk.
+ * The process calling <command>brk</command>.
*/
probe vm.brk = kernel.function("do_brk") {
address = $addr
@@ -131,12 +177,12 @@ probe vm.brk = kernel.function("do_brk") {
}
/**
- * probe vm.oom_kill - Fires when a thread is targetted by the OOM killer.
- * @task: the task being killed
+ * probe vm.oom_kill - Fires when a thread is selected for termination by the OOM killer.
+ * @task: The task being killed
*
* Context:
- * The process that tried to consume more memory, and thus
- * triggered the OOM. (correct?)
+ * The process that tried to consume excessive memory, and thus
+ * triggered the OOM. <remark>(is this correct?)</remark>
*/
probe vm.oom_kill = kernel.function("__oom_kill_task") {
task = $p
diff --git a/tapset/nfs_proc.stp b/tapset/nfs_proc.stp
index 4f841836..11463e9a 100644
--- a/tapset/nfs_proc.stp
+++ b/tapset/nfs_proc.stp
@@ -5,18 +5,18 @@
%{
/*Get rpc_clnt from inode, same as kernel function NFS_CLIENT*/
- struct rpc_clnt *_stap_NFS_CLIENT(struct inode *inode, struct context * __restrict__ c);
+ static struct rpc_clnt *_stap_NFS_CLIENT(struct inode *inode, struct context * __restrict__ c);
/*Get ip address from a rpc_clnt*/
- __u32 _get_ip_from_client(struct rpc_clnt *clnt, struct context * __restrict__ c);
+ static __u32 _get_ip_from_client(struct rpc_clnt *clnt, struct context * __restrict__ c);
/*Get protocol types from a rpc_clnt*/
- int _get_prot_from_client(struct rpc_clnt *clnt, struct context * __restrict__ c);
+ static int _get_prot_from_client(struct rpc_clnt *clnt, struct context * __restrict__ c);
/*Get ip address from a rpc_task*/
- __u32 get_ip(struct rpc_task *, struct context * __restrict__);
+ static __u32 get_ip(struct rpc_task *, struct context * __restrict__);
/*Get protocol types from a rpc_task*/
- int get_prot(struct rpc_task *, struct context * __restrict__);
+ static int get_prot(struct rpc_task *, struct context * __restrict__);
%}
%{
- struct rpc_clnt *_stap_NFS_CLIENT(struct inode *inode, struct context * __restrict__ c) {
+ static struct rpc_clnt *_stap_NFS_CLIENT(struct inode *inode, struct context * __restrict__ c) {
struct super_block *i_sb;
struct nfs_server *server;
i_sb = kread(&(inode->i_sb));
@@ -26,7 +26,7 @@
return NULL;
}
- __u32 _get_ip_from_client(struct rpc_clnt *clnt, struct context * __restrict__ c) {
+ static __u32 _get_ip_from_client(struct rpc_clnt *clnt, struct context * __restrict__ c) {
struct rpc_xprt * cl_xprt;
struct sockaddr_in *addr;
cl_xprt= kread(&(clnt->cl_xprt));
@@ -39,7 +39,7 @@
return -1;
}
- int _get_prot_from_client(struct rpc_clnt *clnt, struct context * __restrict__ c) {
+ static int _get_prot_from_client(struct rpc_clnt *clnt, struct context * __restrict__ c) {
struct rpc_xprt * cl_xprt;
cl_xprt= kread(&(clnt->cl_xprt));
return kread(&(cl_xprt->prot));
@@ -47,7 +47,7 @@
return -1;
}
- __u32 get_ip(struct rpc_task * task, struct context * __restrict__ c) {
+ static __u32 get_ip(struct rpc_task * task, struct context * __restrict__ c) {
struct rpc_clnt * clnt;
clnt = kread(&(task->tk_client));
return _get_ip_from_client(clnt, c);
@@ -55,7 +55,7 @@
return -1;
}
- int get_prot(struct rpc_task * task, struct context * __restrict__ c) {
+ static int get_prot(struct rpc_task * task, struct context * __restrict__ c) {
struct rpc_clnt * clnt;
clnt = kread(&(task->tk_client));
return _get_prot_from_client(clnt, c);
diff --git a/tapset/process.stp b/tapset/process.stp
index b28a72cd..ca49aa67 100644
--- a/tapset/process.stp
+++ b/tapset/process.stp
@@ -13,20 +13,19 @@ function _IS_ERR:long(ptr:long) %{ /* pure */
/**
- * probe process.create - New process created
- * @task: A handle to the newly created process
- * @new_pid: PID of the newly created process
+ * probe process.create - Fires whenever a new process is successfully created
+ * @new_pid: The PID of the newly created process
*
* Context:
* Parent of the created process.
*
* Fires whenever a new process is successfully created, either as a result of
- * one of the fork syscall variants, or a new kernel thread.
+ * <command>fork</command> (or one of its syscall variants), or a new kernel thread.
*/
probe process.create = kernel.function("copy_process").return {
task = $return
- new_pid = task_pid(task)
if (_IS_ERR(task)) next
+ new_pid = task_pid(task)
}
@@ -34,9 +33,9 @@ probe process.create = kernel.function("copy_process").return {
* probe process.start - Starting new process
*
* Context:
- * Newly created process.
+ * Newly created process.
*
- * Fires immediately before a new process begins execution.
+ * Fires immediately before a new process begins execution.
*
*/
probe process.start = kernel.function("schedule_tail") { }
diff --git a/tapset/signal.stp b/tapset/signal.stp
index 7f932e77..f40958e6 100644
--- a/tapset/signal.stp
+++ b/tapset/signal.stp
@@ -16,24 +16,23 @@
//
-/* probe signal.send
- *
- * Fires when a signal is sent to a process.
- *
+/**
+ * probe signal.send- Fires when a system call or kernel function sends a signal to a process.
+ * Arguments:
+ * @sig: The number of the signal
+ * @sig_name: A string representation of the signal
+ * @sig_pid: The PID of the process receiving the signal
+ * @pid_name: The name of the signal recipient
+ * @si_code: Indicates the signal type
+ * @task: A task handle to the signal recipient
+ * @sinfo: The address of <command>siginfo</command> struct
+ * @shared: Indicates whether the signal is shared by the thread group
+ * @send2queue- Indicates whether the signal is sent to an existing <command>sigqueue</command>
+ * @name: The name of the function used to send out the signal
+ *
* Context:
* The signal's sender.
*
- * Arguments:
- * sig - the number of the signal
- * sig_name - a string representation of the signal
- * sig_pid - pid of the signal recipient process
- * pid_name - name of the signal recipient process
- * si_code - indicates the signal type.
- * task - a task handle to the signal recipient
- * sinfo - the address of siginfo struct.
- * shared - indicates whether this signal is shared by the thread group
- * send2queue- indicates whether this signal is sent to an existing sigqueue
- * name - name of the function used to send out this signal
*/
probe signal.send = _signal.send.*
{
@@ -84,21 +83,17 @@ probe _signal.send.part4 = kernel.function("specific_send_sig_info")
%( kernel_v > "2.6.25" %?
probe _signal.send.part1 = kernel.function("send_signal")
{
- name = "__group_send_sig_info"
- sig = $sig
- task = $t
- sinfo = $info
- shared = 1
- send2queue = 0
-}
-
-probe _signal.send.part4 = kernel.function("send_signal")
-{
- name = "specific_send_sig_info"
+ if ($group == 1) {
+ name = "__group_send_sig_info"
+ shared = 1
+ }
+ else if ($group == 0) {
+ name = "specific_send_sig_info"
+ shared = 0
+ }
sig = $sig
task = $t
sinfo = $info
- shared = 0
send2queue = 0
}
%)
@@ -118,27 +113,80 @@ probe _signal.send.part3 = kernel.function("send_sigqueue")
send2queue = 1
}
-/* probe signal.send.return
+/**
+ * probe signal.send.return - Fires when a signal sent to a process returns.
+ * @retstr: The return value to either <command>__group_send_sig_info</command>,
+ * <command>specific_send_sig_info</command>, or <command>send_sigqueue</command>.
+ * Refer to the Description of this probe for more information about the return
+ * values of each function call.
+ * @shared: Indicates whether the sent signal is shared by the thread group.
+ * @send2queue: Indicates whether the sent signal was sent to an existing <command>sigqueue</command>
+ * @name: The name of the function used to send out the signal.
+ *
+ * Context:
+ * The signal's sender. <remark>(correct?)</remark>
+ *
+ * Possible <command>__group_send_sig_info</command> and
+ * <command>specific_send_sig_info</command> return values are as follows;
+ *
+ * <command>0</command> - The signal is sucessfully sent to a process,
+ * which means that
+ * <1> the signal was ignored by the receiving process,
+ * <2> this is a non-RT signal and the system already has one queued, and
+ * <3> the signal was successfully added to the <command>sigqueue</command> of the receiving process.
+ *
+ * <command>-EAGAIN</command> - The <command>sigqueue</command> of the receiving process is
+ * overflowing, the signal was RT, and the signal was sent by a user using something other
+ * than <command>kill()</command>
+ *
+ * Possible <command>send_group_sigqueue</command> and
+ * <command>send_sigqueue</command> return values are as follows;
+ *
+ * <command>0</command> - The signal was either sucessfully added into the
+ * <command>sigqueue</command> of the receiving process, or a <command>SI_TIMER</command> entry is already
+ * queued (in which case, the overrun count will be simply incremented).
+ *
+ * <command>1</command> - The signal was ignored by the receiving process.
+ *
+ *
+ * <command>-1</command> - (<command>send_sigqueue</command> only) The task was marked
+ * <command>exiting</command>, allowing * <command>posix_timer_event</command> to redirect it to the group
+ * leader.
+ *
*/
probe signal.send.return = _signal.send.*.return
{
retstr = returnstr(1)
}
-/*
- * Return values for "__group_send_sig_info" and "specific_send_sig_info"
- *
- * - return 0 if the signal is sucessfully sent to a process,
- * which means the following:
- * <1> the signal is ignored by receiving process
- * <2> this is a non-RT signal and we already have one queued
- * <3> the signal is successfully added into the sigqueue of
- * receiving process
- *
- * - return -EAGAIN if the sigqueue is overflow the signal was RT
- * and sent by user using something other than kill()
- *
- */
+// Return values for "__group_send_sig_info" and "specific_send_sig_info"
+//
+// - return 0 if the signal is sucessfully sent to a process,
+// which means the following:
+// <1> the signal is ignored by receiving process
+// <2> this is a non-RT signal and we already have one queued
+// <3> the signal is successfully added into the sigqueue of
+// receiving process
+//
+// - return -EAGAIN if the sigqueue is overflow the signal was RT
+// and sent by user using something other than kill()
+
+%( kernel_v > "2.6.25" %?
+probe _signal.send.part1.return = kernel.function("send_signal").return
+{
+ if ($group == 1) {
+ name = "__group_send_sig_info"
+ shared = 1
+ }
+ else if ($group == 0) {
+ name = "specific_send_sig_info"
+ shared = 0
+ }
+ send2queue = 0
+}
+%)
+
+%( kernel_v <= "2.6.25" %?
probe _signal.send.part1.return = kernel.function("__group_send_sig_info").return
{
name = "__group_send_sig_info"
@@ -153,15 +201,12 @@ probe _signal.send.part4.return = kernel.function("specific_send_sig_info").retu
send2queue = 0
}
-%( kernel_v <= "2.6.25" %?
-/*
- * - return 0 if the signal is either sucessfully added into the
- * sigqueue of receiving process or a SI_TIMER entry is already
- * queued so just increment the overrun count
- *
- * - return 1 if this signal is ignored by receiving process
- *
- */
+// - return 0 if the signal is either sucessfully added into the
+// sigqueue of receiving process or a SI_TIMER entry is already
+// queued so just increment the overrun count
+//
+// - return 1 if this signal is ignored by receiving process
+
probe _signal.send.part2.return = kernel.function("send_group_sigqueue").return
{
name = "send_group_sigqueue"
@@ -170,17 +215,14 @@ probe _signal.send.part2.return = kernel.function("send_group_sigqueue").return
}
%)
-/*
- * - return 0 if the signal is either sucessfully added into the
- * sigqueue of receiving process or a SI_TIMER entry is already
- * queued so just increment the overrun count
- *
- * - return 1 if this signal is ignored by receiving process
- *
- * - return -1 if the task is marked exiting, so posix_timer_event
- * can redirect it to the group leader
- *
- */
+// - return 0 if the signal is either sucessfully added into the
+// sigqueue of receiving process or a SI_TIMER entry is already
+// queued so just increment the overrun count
+//
+// - return 1 if this signal is ignored by receiving process
+//
+// - return -1 if the task is marked exiting, so posix_timer_event
+// can redirect it to the group leader
probe _signal.send.part3.return = kernel.function("send_sigqueue").return
{
@@ -189,10 +231,16 @@ probe _signal.send.part3.return = kernel.function("send_sigqueue").return
send2queue = 1
}
-/* probe signal.checkperm
- *
- * check permissions for sending the signal
- *
+/**
+ * probe signal.checkperm - Fires when a permission check is performed on a sent signal
+ * @sig: The number of the signal
+ * @sig_name: A string representation of the signal
+ * @sig_pid: The PID of the process receiving the signal
+ * @pid_name: Name of the process receiving the signal
+ * @si_code: Indicates the signal type
+ * @task: A task handle to the signal recipient
+ * @sinfo: The address of the <command>siginfo</command> structure
+ * @name: Name of the probe point; default value is <command>signal.checkperm</command>
*/
probe signal.checkperm = kernel.function("check_kill_permission")
{
@@ -220,17 +268,16 @@ probe signal.checkperm.return = kernel.function("check_kill_permission").return
}
-/* probe signal.wakeup
- *
- * Wake up the process for new active signals.
- *
- * Argument:
- * sig_pid: pid of the process to be woke up
- * pid_name: name of the process to be woke up
- * resume: indicate whether to wake up a task in STOPPED or
- TRACED state
- * state_mask: a string representation indicates the mask
- * of task states that can be woken
+/**
+ * probe signal.wakeup - Wakes up a sleeping process, making it ready for new active signals
+ * @sig_pid: The PID of the process you wish to wake
+ * @pid_name: Name of the process you wish to wake
+ * @resume: Indicates whether to wake up a task in a <command>STOPPED</command> or
+ * <command>TRACED</command> state
+ * @state_mask: A string representation indicating the mask
+ * of task states you wish to wake. Possible values are <command>TASK_INTERRUPTIBLE</command>,
+ * <command>TASK_STOPPED</command>, <command>TASK_TRACED</command>,
+ * and <command>TASK_INTERRUPTIBLE</command>.
*/
probe signal.wakeup = kernel.function("signal_wake_up")
{
@@ -245,10 +292,13 @@ probe signal.wakeup = kernel.function("signal_wake_up")
}
-/* probe signal.ignored
- *
- * Checks whether the signal is ignored or not.
- *
+/**
+ * probe signal.check_ignored - Fires when a system call or kernel function checks whether a
+ * signal was ignored or not
+ * @sig_pid: The PID of the process receiving the signal
+ * @pid_name: Name of the process receiving the signal
+ * @sig: The number of the signal
+ * @sig_name: A string representation of the signal
*/
probe signal.check_ignored = kernel.function("sig_ignored")
{
@@ -265,14 +315,12 @@ probe signal.check_ignored.return = kernel.function("sig_ignored").return ?
}
-/* probe signal.handle_stop
- *
- * For now, just comment it out since at the time handle_stop_signal()
- * is called, it doesn't know whether current signal is STOP/COUNT.
- * So the calling of handle_stop_signal() doesn't mean that the Kernel
- * is now processing the STOP/COUNT signal
- *
- */
+// probe signal.handle_stop
+// For now, just comment it out since at the time handle_stop_signal()
+// is called, it doesn't know whether current signal is STOP/COUNT.
+// So the calling of handle_stop_signal() doesn't mean that the Kernel
+// is now processing the STOP/COUNT signal
+//
/*
probe signal.handle_stop = kernel.function("handle_stop_signal")
{
@@ -284,10 +332,13 @@ probe signal.handle_stop = kernel.function("handle_stop_signal")
*/
-/* probe signal.force_segv
- *
- * Forces SIGSEGV when there are some issues while handling signals for the process.
- *
+/**
+ * probe signal.force_segv - Fires when a system call, kernel function, or process sent a
+ * <command>SIGSEGV</command> as a result of problems it encountered while handling a received signal
+ * @sig_pid: The PID of the process receiving the signal
+ * @pid_name: Name of the process receiving the signal
+ * @sig: The number of the signal
+ * @sig_name: A string representation of the signal
*/
probe signal.force_segv = _signal.force_segv.*
{
@@ -318,10 +369,11 @@ probe signal.force_segv.return =
}
-/* probe signal.syskill
- *
- * To kill a process, Pass the pid and signal to kill the process.
- *
+/**
+ * probe signal.syskill - Fires when the kernel function <command>sys_kill</command>
+ * sends a kill signal to a process
+ * @pid: The PID of the process receiving the kill signal
+ * @sig: The specific signal sent to the process
*/
probe signal.syskill = syscall.kill
{
@@ -331,42 +383,50 @@ probe signal.syskill = syscall.kill
probe signal.syskill.return = syscall.kill.return
{
}
-
-
-/* probe signal.sys_tgkill
- *
- * Sends a signal to one specific thread.
- *
+/**
+ * probe signal.sys_tkill - Fires when <command>tkill</command> sends a kill signal
+ * to a process that is part of a thread group
+ * @pid: The PID of the process receiving the kill signal
+ * @sig: The specific signal sent to the process
+ * The <command>tkill</command> call is analogous to <command>kill(2)</command>,
+ * except that it also allows a process within a specific thread group to
+ * be targetted. Such processes are targetted through their unique thread IDs (TID).
*/
-probe signal.systgkill = syscall.tgkill
+probe signal.systkill = syscall.tkill
{
sig_name = _signal_name($sig)
}
-probe signal.systgkill.return = syscall.tgkill.return
+probe signal.systkill.return = syscall.tkill.return
{
}
-
-/* probe signal.sys_tkill
- *
- * Sends a signal to one specific task.
- *
+/**
+ * probe signal.sys_tgkill - Fires when the kernel function <command>tgkill</command>
+ * sends a kill signal to a specific thread group
+ * @pid: The PID of the thread receiving the kill signal
+ * @tgid: The thread group ID of the thread receiving the kill signal
+ * @sig: The specific kill signal sent to the process
+ * The <command>tgkill</command> call is similar to <command>tkill</command>,
+ * except that it also allows the caller to specify the thread group ID of
+ * the thread to be signalled. This protects against TID reuse.
*/
-probe signal.systkill = syscall.tkill
+probe signal.systgkill = syscall.tgkill
{
sig_name = _signal_name($sig)
}
-probe signal.systkill.return = syscall.tkill.return
+probe signal.systgkill.return = syscall.tgkill.return
{
}
-
-/* probe signal.send_sig_queue
- *
- * Queue signal to a process.
- *
+/**
+ * probe signal.send_sig_queue - Fires when a signal is queued to a process
+ * @sig: The queued signal
+ * @sig_name: A string representation of the signal
+ * @sig_pid: The PID of the process to which the signal is queued
+ * @pid_name: Name of the process to which the signal is queued
+ * @sigqueue_addr: The address of the signal queue
*/
probe signal.send_sig_queue =
kernel.function("send_sigqueue"),
@@ -387,13 +447,20 @@ probe signal.send_sig_queue.return =
}
-/* probe signal.pending
- *
- * Used to examine the set of signals that are pending for
- * delivery to the calling thread
- *
- * long do_sigpending(void __user *set, unsigned long sigsetsize)
+/**
+ * probe signal.pending - Fires when the <command>SIGPENDING</command> system call is used;
+ * this normally occurs when the <command>do_sigpending</command> kernel function is executed
+ * @sigset_add: The address of the user-space signal set (<command>sigset_t</command>)
+ * @sigset_size: The size of the user-space signal set.
+ *
+ * Synopsis:
+ * <programlisting>long do_sigpending(void __user *set, unsigned long sigsetsize)</programlisting>
+ *
+ * This probe is used to examine a set of signals pending for delivery
+ * to a specific thread.
*/
+// long do_sigpending(void __user *set, unsigned long sigsetsize)
+
probe signal.pending = kernel.function("do_sigpending")
{
sigset_add=$set
@@ -406,20 +473,23 @@ probe signal.pending.return = kernel.function("do_sigpending").return
}
-/* probe signal.handle
- *
- * Used to invoke signals
- *
- * static int handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
- * sigset_t *oldset, struct pt_regs * regs)
- * Argument :-
- * sig : Signal number
- * sinfo : address of siginfo table.
- * ka_addr : Address of the k_sigaction table associated with the signal
- * oldset_addr : Address of a bit mask array of blocked signals
- * regs : Address in the Kernel Mode stack area
- *
+/**
+ * probe signal.handle - Fires when the signal handler is invoked
+ * @sig: The signal number that invoked the signal handler
+ * @sinfo: The address of the <command>siginfo</command> table
+ * @sig_code: The <command>si_code</command> value of the <command>siginfo</command> signal
+ * @ka_addr: The address of the <command>k_sigaction</command> table associated with the signal
+ * @oldset_addr: The address of the bitmask array of blocked signals
+ * @regs: The address of the kernel-mode stack area
+ * @sig_mode: Indicates whether the signal was a user-mode or kernel-mode signal
+ *
+ * Synopsis:
+ * <programlisting>static int handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
+ * sigset_t *oldset, struct pt_regs * regs)</programlisting>
*/
+//static int handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
+// sigset_t *oldset, struct pt_regs * regs)
+
probe signal.handle = kernel.function("handle_signal")
{
sig = $sig
@@ -444,16 +514,14 @@ probe signal.handle.return = kernel.function("handle_signal").return ?
}
-/* probe signal.do_action
- *
- * Fires by calling thread to examine and change a signal action
- *
- * int do_sigaction(int sig, struct k_sigaction *act, struct k_sigaction *oact)
- *
- * Argument :-
- * sig : Signal number
- * sigact_addr : address of the new sigaction struct associated with the signal
- * oldsigact_addr : address of a previous sigaction struct associated with the signal
+/**
+ * probe signal.do_action - Initiates a trace when a thread is about to examine
+ * and change a signal action
+ * @sig: The signal to be examined/changed
+ * @sigact_addr: The address of the new <command>sigaction</command> struct associated with the signal
+ * @oldsigact_addr: The address of the old <command>sigaction</command> struct associated with the signal
+ * @sa_handler: The new handler of the signal
+ * @sa_mask: The new mask of the signal
*/
probe signal.do_action = kernel.function("do_sigaction")
{
@@ -485,21 +553,17 @@ function __get_action_mask:long(act:long) %{ /* pure */
%}
-/* probe signal.procmask
- *
- * Fires by calling thread to examine and change blocked signals
- *
- * int sigprocmask(int how, sigset_t *set, sigset_t *oldset)
- *
- * Argument :-
- * how : indicates how to change the blocked signals. Possible
- * values are SIG_BLOCK=0 for blocking signals, SIG_UNBLOCK=1
- * for unblocking signals, and SIG_SETMASK=2 for setting
- * the signal mask
- * sigset_addr : address of sigset_t to be set
- * oldsigset_addr : address of the old sigset_t
- * sigset : the actual sigset to be set
- *
+/**
+ * probe signal.procmask - Initiates a trace when a thread is about to examine and change blocked signals
+ * @how: Indicates how to change the blocked signals; possible values are
+ * <command>SIG_BLOCK=0</command> (for blocking signals),
+ * <command>SIG_UNBLOCK=1</command> (for unblocking signals), and
+ * <command>SIG_SETMASK=2</command> for setting the signal mask.
+ * @sigset_addr: The address of the signal set (<command>sigset_t</command>) to be implemented
+ * @oldsigset_addr: The old address of the signal set (<command>sigset_t</command>)
+ * @sigset: The actual value to be set for <command>sigset_t</command> <remark>(correct?)</remark>
+ * Synopsis:
+ * <programlisting>int sigprocmask(int how, sigset_t *set, sigset_t *oldset)</programlisting>
*/
probe signal.procmask = kernel.function("sigprocmask")
{
@@ -526,14 +590,17 @@ probe signal.procmask.return = kernel.function("sigprocmask").return
}
-/*
- * probe signal.flush
- *
- * Flush all pending signals for a task.
- *
- * void flush_signals(struct task_struct *t)
- *
+/**
+ * probe signal.flush - Fires when all pending signals for a task are flushed
+ * @task: The task handler of the process performing the flush
+ * @sig_pid: The PID of the process associated with the task performing the flush
+ * @pid_name: The name of the process associated with the task performing the flush
+ *
+ * Synopsis:
+ * <programlisting>void flush_signals(struct task_struct *t)</programlisting>
*/
+//void flush_signals(struct task_struct *t)
+
probe signal.flush = kernel.function("flush_signals")
{
task = $t
@@ -553,28 +620,27 @@ function get_sa_handler:long (act:long) %{ /* pure */
CATCH_DEREF_FAULT();
%}
-/*
- * sa_mask contains the set of signals to be blocked when executing the
- * signal handler. This function returns a string, delimited by ",".
- *
- * struct task_struct {
- * [...]
- * struct signal_struct *signal;
- * struct sighand_struct *sighand;
- * [...]
- * struct sighand_struct {
- * atomic_t count;
- * struct k_sigaction action[_NSIG];
- * [...]
- * struct k_sigaction {
- * struct sigaction sa;
- * };
- *
- * struct sigaction {
- * [...]
- * sigset_t sa_mask;
- * };
- */
+// sa_mask contains the set of signals to be blocked when executing the
+// signal handler. This function returns a string, delimited by ",".
+//
+// struct task_struct {
+// [...]
+// struct signal_struct//signal;
+// struct sighand_struct//sighand;
+// [...]
+// struct sighand_struct {
+// atomic_t count;
+// struct k_sigaction action[_NSIG];
+// [...]
+// struct k_sigaction {
+// struct sigaction sa;
+// };
+//
+// struct sigaction {
+// [...]
+// sigset_t sa_mask;
+// };
+
function sigset_mask_str:string (mask:long) %{ /* pure */
int i, len;
char *str = THIS->__retvalue, tmp[5];
@@ -587,14 +653,13 @@ function sigset_mask_str:string (mask:long) %{ /* pure */
if (len) str[len - 1] = '\0';
%}
-/*
- * task_struct->blocked signal mask contains the set of signals that are
- * currently blocked.
- *
- * struct task_struct {
- * [...]
- * sigset_t blocked, real_blocked;
- */
+// task_struct->blocked signal mask contains the set of signals that are
+// currently blocked.
+//
+// struct task_struct {
+// [...]
+// sigset_t blocked, real_blocked;
+
function is_sig_blocked:long (task:long, sig:long) %{ /* pure */
int i;
sigset_t blocked;
@@ -627,9 +692,8 @@ function sa_handler_str(handler) {
return sprintf("%p", handler); /* userspace address */
}
-/*
- * Signals start from 1 not 0.
- */
+// Signals start from 1 not 0.
+
global __sig[64]
function signal_str(num) {
diff --git a/tapset/udp.stp b/tapset/udp.stp
index 984df692..707cf77d 100644
--- a/tapset/udp.stp
+++ b/tapset/udp.stp
@@ -14,7 +14,7 @@
%}
/**
- * probe udp.sendmsg - Sending a UDP message
+ * probe udp.sendmsg - Fires whenever a process sends a UDP message
* @name: Name of this probe
* @sock: Network socket
* @size: Number of bytes to send
@@ -29,7 +29,7 @@ probe udp.sendmsg = kernel.function("udp_sendmsg") {
}
/**
- * probe udp.sendmsg.return - Sending UDP message complete
+ * probe udp.sendmsg.return - Fires whenever an attempt to send a UDP message is completed
* @name: Name of this probe
* @size: Number of bytes sent
*
@@ -42,10 +42,10 @@ probe udp.sendmsg.return = kernel.function("udp_sendmsg").return {
}
/**
- * probe udp.recvmsg - UDP message received
+ * probe udp.recvmsg - Fires whenever a UDP message is received
* @name: Name of this probe
* @sock: Network socket
- * @size: Number of bytes to be received
+ * @size: Number of bytes received
*
* Context:
* The process which receives a udp message
@@ -57,7 +57,7 @@ probe udp.recvmsg = kernel.function("udp_recvmsg") {
}
/**
- * probe udp.recvmsg.return - UDP message received is complete
+ * probe udp.recvmsg.return - An attempt to receive a UDP message received has been completed
* @name: Name of this probe
* @size: Number of bytes received
*
@@ -70,13 +70,13 @@ probe udp.recvmsg.return = kernel.function("udp_recvmsg").return {
}
/**
- * probe udp.disconnect - UDP is disconnected
+ * probe udp.disconnect - A process requests for UPD to be UDP disconnected
* @name: Name of this probe
* @sock: Network socket
* @flags: Flags (e.g. FIN, etc)
*
* Context:
- * The process which disconnects udp
+ * The process which disconnects UDP
*/
probe udp.disconnect = kernel.function("udp_disconnect") {
name = "udp.disconnect"
@@ -85,7 +85,7 @@ probe udp.disconnect = kernel.function("udp_disconnect") {
}
/**
- * probe udp.disconnect.return - returning from udp.disconnect probe
+ * probe udp.disconnect.return - UDP has been disconnected successfully
* @name: Name of this probe
* @ret: Error code (0: no error)
*