From 07089f8b693de995b5fd51b28a4846122143138e Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Thu, 9 Jul 2009 00:02:52 -0700 Subject: Fix signal.send matching for 2.6.30+. --- tapset/signal.stp | 54 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 26 deletions(-) (limited to 'tapset/signal.stp') diff --git a/tapset/signal.stp b/tapset/signal.stp index e8470a9c..02c761c3 100644 --- a/tapset/signal.stp +++ b/tapset/signal.stp @@ -1,7 +1,7 @@ // Signal tapset // Copyright (C) 2006 IBM Corp. // Copyright (C) 2006 Intel Corporation. -// Copyright (C) 2008 Red Hat, Inc. +// Copyright (C) 2008-2009 Red Hat, Inc. // // This file is part of systemtap, and is free software. You can // redistribute it and/or modify it under the terms of the GNU General @@ -17,7 +17,7 @@ // (if sig==2) or for a particular process (if pid_name==stap). // -/** +/** * probe signal.send - Signal being sent to a process * Arguments: * @sig: The number of the signal @@ -83,7 +83,9 @@ probe _signal.send.part4 = kernel.function("specific_send_sig_info") %) %( kernel_v > "2.6.25" %? -probe _signal.send.part1 = kernel.function("send_signal") +probe _signal.send.part1 = + kernel.function("__send_signal") !, + kernel.function("send_signal") { if ($group == 1) { name = "__group_send_sig_info" @@ -128,7 +130,7 @@ probe _signal.send.part3 = kernel.function("send_sigqueue") * Context: * The signal's sender. (correct?) * - * Possible __group_send_sig_info and + * Possible __group_send_sig_info and * specific_send_sig_info return values are as follows; * * 0 -- The signal is sucessfully sent to a process, @@ -137,11 +139,11 @@ probe _signal.send.part3 = kernel.function("send_sigqueue") * <2> this is a non-RT signal and the system already has one queued, and * <3> the signal was successfully added to the sigqueue of the receiving process. * - * -EAGAIN -- The sigqueue of the receiving process is - * overflowing, the signal was RT, and the signal was sent by a user using something other - * than kill(). + * -EAGAIN -- The sigqueue of the receiving process is + * overflowing, the signal was RT, and the signal was sent by a user using something other + * than kill(). * - * Possible send_group_sigqueue and + * Possible send_group_sigqueue and * send_sigqueue return values are as follows; * * 0 -- The signal was either sucessfully added into the @@ -152,7 +154,7 @@ probe _signal.send.part3 = kernel.function("send_sigqueue") * * -1 -- (send_sigqueue only) The task was marked * exiting, allowing * posix_timer_event to redirect it to the group - * leader. + * leader. * */ probe signal.send.return = _signal.send.*.return @@ -302,7 +304,7 @@ probe signal.wakeup = kernel.function("signal_wake_up") /** * probe signal.check_ignored - Checking to see signal is ignored - * @sig_pid: The PID of the process receiving the 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 @@ -350,7 +352,7 @@ probe signal.handle_stop = kernel.function("handle_stop_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 + * @sig_name: A string representation of the signal */ probe signal.force_segv = _signal.force_segv.* { @@ -404,7 +406,7 @@ probe signal.syskill.return = syscall.kill.return { } -/** +/** * probe signal.sys_tkill - Sending a kill signal to a thread * @pid: The PID of the process receiving the kill signal * @sig: The specific signal sent to the process @@ -413,7 +415,7 @@ probe signal.syskill.return = syscall.kill.return * The tkill call is analogous to kill(2), * 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). + * thread IDs (TID). */ probe signal.systkill = syscall.tkill { @@ -434,9 +436,9 @@ probe signal.systkill.return = syscall.tkill.return * @sig: The specific kill signal sent to the process * @sig_name: A string representation of the signal * - * The tgkill call is similar to tkill, - * except that it also allows the caller to specify the thread group ID of - * the thread to be signalled. This protects against TID reuse. + * The tgkill call is similar to tkill, + * 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.systgkill = syscall.tgkill { @@ -481,14 +483,14 @@ probe signal.send_sig_queue.return = } -/** +/** * probe signal.pending - Examining pending signal * @sigset_add: The address of the user-space signal set * (sigset_t) * @sigset_size: The size of the user-space signal set - * - * This probe is used to examine a set of signals pending for delivery - * to a specific thread. This normally occurs when the + * + * This probe is used to examine a set of signals pending for delivery + * to a specific thread. This normally occurs when the * do_sigpending kernel function is executed. */ probe signal.pending = kernel.function("do_sigpending") @@ -497,7 +499,7 @@ probe signal.pending = kernel.function("do_sigpending") sigset_size=$sigsetsize } -/** +/** * probe signal.pending.return - Examination of pending signal completed * @retstr: Return value as a string */ @@ -515,7 +517,7 @@ probe signal.pending.return = kernel.function("do_sigpending").return * siginfo signal * @ka_addr: The address of the k_sigaction table * associated with the signal - * @oldset_addr: The address of the bitmask array of blocked signals + * @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 */ @@ -593,9 +595,9 @@ function __get_action_mask:long(act:long) %{ /* pure */ /** * probe signal.procmask - Examining or changing blocked signals - * @how: Indicates how to change the blocked signals; possible values are - * SIG_BLOCK=0 (for blocking signals), - * SIG_UNBLOCK=1 (for unblocking signals), and + * @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: The address of the signal set (sigset_t) * to be implemented @@ -635,7 +637,7 @@ probe signal.procmask.return = kernel.function("sigprocmask").return * @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 + * performing the flush */ probe signal.flush = kernel.function("flush_signals") { -- cgit