diff options
author | Frank Ch. Eigler <fche@elastic.org> | 2008-11-26 13:59:53 -0500 |
---|---|---|
committer | Frank Ch. Eigler <fche@elastic.org> | 2008-11-26 13:59:53 -0500 |
commit | 8d59b39f96b89eb055d77d422a923c499d2a5fca (patch) | |
tree | c40a45b0356c97f66c4c7b2dcd262b5777c4c1be /translate.cxx | |
parent | 391d64d0997a41035f2af5f13d41dae00300061b (diff) | |
download | systemtap-steved-8d59b39f96b89eb055d77d422a923c499d2a5fca.tar.gz systemtap-steved-8d59b39f96b89eb055d77d422a923c499d2a5fca.tar.xz systemtap-steved-8d59b39f96b89eb055d77d422a923c499d2a5fca.zip |
safety: add paranoid call to synchronize_sched() during shutdown process
Diffstat (limited to 'translate.cxx')
-rw-r--r-- | translate.cxx | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/translate.cxx b/translate.cxx index 1cf7361e..41a424ed 100644 --- a/translate.cxx +++ b/translate.cxx @@ -1287,6 +1287,11 @@ c_unparser::emit_module_exit () o->newline () << "yield ();"; // aka schedule() and then some o->newline(-2) << "} while (holdon);"; + // + o->newline() << "#ifdef STAPCONF_SYNCHRONIZE_SCHED"; + o->newline() << "synchronize_sched();"; + o->newline() << "#endif"; + // XXX: might like to have an escape hatch, in case some probe is // genuinely stuck somehow @@ -4860,6 +4865,7 @@ translate_pass (systemtap_session& s) s.op->newline() << "#include \"stat.c\""; s.op->newline() << "#include <linux/string.h>"; s.op->newline() << "#include <linux/timer.h>"; + s.op->newline() << "#include <linux/sched.h>"; s.op->newline() << "#include <linux/delay.h>"; s.op->newline() << "#include <linux/profile.h>"; s.op->newline() << "#include <linux/random.h>"; |