diff options
author | hiramatu <hiramatu> | 2007-09-06 18:08:44 +0000 |
---|---|---|
committer | hiramatu <hiramatu> | 2007-09-06 18:08:44 +0000 |
commit | a721fbcf46a1d80e180670c8b68ce7f159b2a28a (patch) | |
tree | ba457c079e3ade9a27fa93cc617f358d4e83184c | |
parent | 7d0ea3216d499fdc77dcd98d7d75ac14441421f8 (diff) | |
download | systemtap-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
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | tapsets.cxx | 5 | ||||
-rw-r--r-- | testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | testsuite/systemtap.stress/current.stp | 17 |
4 files changed, 26 insertions, 8 deletions
@@ -1,3 +1,9 @@ +2007-09-06 Masami Hiramatsu <mhiramat@redhat.com> + + PR 4542 + * tapsets.cxx (dwarf_query::build_blacklist): add __switch_to to + blacklisted_return_probes on i686 + 2007-08-30 David Smith <dsmith@redhat.com> PR 4983 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"); diff --git a/testsuite/ChangeLog b/testsuite/ChangeLog index be9ac35f..5d49161e 100644 --- a/testsuite/ChangeLog +++ b/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2007-09-06 Masami Hiramatsu <mhiramat@redhat.com> + + PR 4542 + * systemtap.stress/current.stp: Don't probe the return of __switch_to + on i686. + 2007-08-27 Martin Hunt <hunt@redhat.com> * systemtap.context/context.exp (build_modules): Change diff --git a/testsuite/systemtap.stress/current.stp b/testsuite/systemtap.stress/current.stp index ddc298d4..09e54bad 100644 --- a/testsuite/systemtap.stress/current.stp +++ b/testsuite/systemtap.stress/current.stp @@ -18,13 +18,16 @@ probe begin { log("systemtap starting probe") } probe timer.profile, - %( arch != "x86_64" %? - # __switch_to.return is broken on x86_64 - see PR2068 - %( arch != "ia64" %? - # __switch_to is macro definition in ia64, - # and ia64_switch_to is defined in assemble language - kernel.function("__switch_to").call, - kernel.function("__switch_to").return, + %( arch != "ia64" %? + # __switch_to is macro definition in ia64, + # and ia64_switch_to is defined in assemble language + %( arch != "x86_64" %? + # __switch_to can not be probed on x86_64 - see PR2068 + kernel.function("__switch_to").call, + %( arch != "i686" %? + # __switch_to.return is broken on i686 - see PR4542 + kernel.function("__switch_to").return, + %) %) %) |