btw, here's a test script to monitor the persistent context values:
function cycles(which:long) %{
THIS->__retvalue = (THIS->which == 0) ? CONTEXT->cycles_base :
CONTEXT->cycles_sum;
%}
probe timer.profile { /* just for */ backtrace() /* load generation */
printf("%d %d\n", cycles(0), cycles(1)) }
probe timer.s(1) { exit() }
+2008-04-26 Frank Ch. Eigler <fche@elastic.org>
+
+ * tapsets.cxx (common_probe_entryfn_prologue): Undo
+ clear of overload-related context vars; add explanation why.
+
2008-04-25 Frank Ch. Eigler <fche@elastic.org>
* systemtap.spec.in: Simplify configuration defaults.
o->newline() << "#ifdef STP_TIMING";
o->newline() << "c->statp = 0;";
o->newline() << "#endif";
+ // NB: The following would actually be incorrect.
+ // That's because cycles_sum/cycles_base values are supposed to survive
+ // between consecutive probes. Periodically (STP_OVERLOAD_INTERVAL
+ // cycles), the values will be reset.
+ /*
o->newline() << "#ifdef STP_OVERLOAD";
o->newline() << "c->cycles_sum = 0;";
o->newline() << "c->cycles_base = 0;";
o->newline() << "#endif";
+ */
}