summaryrefslogtreecommitdiffstats
path: root/tapsets.cxx
diff options
context:
space:
mode:
authorhiramatu <hiramatu>2007-09-06 18:08:44 +0000
committerhiramatu <hiramatu>2007-09-06 18:08:44 +0000
commita721fbcf46a1d80e180670c8b68ce7f159b2a28a (patch)
treeba457c079e3ade9a27fa93cc617f358d4e83184c /tapsets.cxx
parent7d0ea3216d499fdc77dcd98d7d75ac14441421f8 (diff)
downloadsystemtap-steved-a721fbcf46a1d80e180670c8b68ce7f159b2a28a.tar.gz
systemtap-steved-a721fbcf46a1d80e180670c8b68ce7f159b2a28a.tar.xz
systemtap-steved-a721fbcf46a1d80e180670c8b68ce7f159b2a28a.zip
2007-09-06 Masami Hiramatsu <mhiramat@redhat.com>
PR4542 * tapsets.cxx (dwarf_query::build_blacklist): add __switch_to to blacklisted_return_probes on i686 * systemtap.stress/current.stp: Don't probe the return of __switch_to on i686
Diffstat (limited to 'tapsets.cxx')
-rw-r--r--tapsets.cxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/tapsets.cxx b/tapsets.cxx
index 281fcd0a..7e1c196a 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -2348,9 +2348,12 @@ dwarf_query::build_blacklist()
blacklisted_probes.insert("_spin_unlock");
blacklisted_probes.insert("_spin_unlock_irqrestore");
- // __switch_to is only disallowed on x86_64
+ // __switch_to changes "current" on x86_64 and i686, so return probes
+ // would cause kernel panic, and it is marked as "__kprobes" on x86_64
if (sess.architecture == "x86_64")
blacklisted_probes.insert("__switch_to");
+ if (sess.architecture == "i686")
+ blacklisted_return_probes.insert("__switch_to");
// These functions don't return, so return probes would never be recovered
blacklisted_return_probes.insert("do_exit");