summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tapset/ChangeLog5
-rw-r--r--tapset/signal.stp37
2 files changed, 29 insertions, 13 deletions
diff --git a/tapset/ChangeLog b/tapset/ChangeLog
index 1a7df352..570d3697 100644
--- a/tapset/ChangeLog
+++ b/tapset/ChangeLog
@@ -1,3 +1,8 @@
+2009-02-04 K Prasad <prasad@linux.vnet.ibm.com>
+
+ PR 7030.
+ * signal.stp: handle functions inlined in 2.6.27+
+
2009-02-03 Frank Ch. Eigler <fche@elastic.org>
PR 6961/9810.
diff --git a/tapset/signal.stp b/tapset/signal.stp
index 7f932e77..8c125e80 100644
--- a/tapset/signal.stp
+++ b/tapset/signal.stp
@@ -84,21 +84,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"
+ 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 = 1
- send2queue = 0
-}
-
-probe _signal.send.part4 = kernel.function("send_signal")
-{
- name = "specific_send_sig_info"
- sig = $sig
- task = $t
- sinfo = $info
- shared = 0
send2queue = 0
}
%)
@@ -139,6 +135,22 @@ probe signal.send.return = _signal.send.*.return
* 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,7 +165,6 @@ 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