From a721fbcf46a1d80e180670c8b68ce7f159b2a28a Mon Sep 17 00:00:00 2001 From: hiramatu Date: Thu, 6 Sep 2007 18:08:44 +0000 Subject: 2007-09-06 Masami Hiramatsu 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 --- tapsets.cxx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'tapsets.cxx') 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"); -- cgit