diff options
author | Frank Ch. Eigler <fche@elastic.org> | 2009-03-20 16:30:02 -0400 |
---|---|---|
committer | Frank Ch. Eigler <fche@elastic.org> | 2009-03-20 16:30:02 -0400 |
commit | 9c73606142525f521a44c4907832b2d1e1f3c659 (patch) | |
tree | 3c467ddfef14fd099c395cfa98eaf67a23f5be8b | |
parent | 947d86f92e1e1a12e587e6a7b1955ff324c3fdf5 (diff) | |
download | systemtap-steved-9c73606142525f521a44c4907832b2d1e1f3c659.tar.gz systemtap-steved-9c73606142525f521a44c4907832b2d1e1f3c659.tar.xz systemtap-steved-9c73606142525f521a44c4907832b2d1e1f3c659.zip |
PR9967: don't count -DINTERRUPTIBLE=1 reentrancy against MAXSKIPPED
* tapsets.cxx (common_probe_entryfn_prologue): Become conditional on
!INTERRUPTIBLE.
* translate.cxx (emit_module_exit): Still print skipped_count_reentrant
with -t, even if skipped_count was zero.
-rw-r--r-- | stap.1.in | 3 | ||||
-rw-r--r-- | tapsets.cxx | 4 | ||||
-rw-r--r-- | translate.cxx | 5 |
3 files changed, 8 insertions, 4 deletions
@@ -1056,7 +1056,8 @@ means that the first error will exit the script. MAXSKIPPED Maximum number of skipped probes before an exit is triggered, default 100. Running systemtap with \-t (timing) mode gives more details about skipped -probes. +probes. With the default \-DINTERRUPTIBLE=1 setting, probes skipped due to +reentrancy are not accumulated against this limit. .TP MINSTACKSPACE Minimum number of free kernel stack bytes required in order to diff --git a/tapsets.cxx b/tapsets.cxx index a8653d8a..bc567491 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -206,7 +206,9 @@ common_probe_entryfn_prologue (translator_output* o, string statestr, o->newline() << "c = per_cpu_ptr (contexts, smp_processor_id());"; o->newline() << "if (atomic_inc_return (& c->busy) != 1) {"; - o->newline(1) << "atomic_inc (& skipped_count);"; + o->newline(1) << "#if !INTERRUPTIBLE"; + o->newline() << "atomic_inc (& skipped_count);"; + o->newline() << "#endif"; o->newline() << "#ifdef STP_TIMING"; o->newline() << "atomic_inc (& skipped_count_reentrant);"; o->newline() << "#ifdef DEBUG_REENTRANCY"; diff --git a/translate.cxx b/translate.cxx index 377a11fb..e7c23672 100644 --- a/translate.cxx +++ b/translate.cxx @@ -1360,9 +1360,10 @@ c_unparser::emit_module_exit () o->newline() << "#endif"; } - // print final error/reentrancy counts if non-zero + // print final error/skipped counts if non-zero o->newline() << "if (atomic_read (& skipped_count) || " - << "atomic_read (& error_count)) {"; + << "atomic_read (& error_count) || " + << "atomic_read (& skipped_count_reentrant)) {"; // PR9967 o->newline(1) << "_stp_warn (\"Number of errors: %d, " << "skipped probes: %d\\n\", " << "(int) atomic_read (& error_count), " |