Instrumenting context switches
Stone, Joshua I
joshua.i.stone@intel.com
Thu Nov 30 18:10:00 GMT 2006
On Wednesday, November 29, 2006 4:47 PM, Frank Ch. Eigler wrote:
> It may be that this problem is due to the recent rewrite of
> gettimeofday_us. That code contains bits like preempt_disable() and
> _enable(), even though the equivalent (interrupt disabling) should
> already be done within probe context. In particular, I wonder if
> changing the latter to preempt_enable_no_resched() might improve the
> situation.
I'll take a look at whether some of the locking in the time subsystem
can go away, under the assumption that probes are always
interrupt-disabled. I took a very conservative approach, so I'm sure
some of that is overkill. However, the preempt_enable vs. _no_resched
shouldn't really cause a problem, because preempt_schedule checks for
irqs_disabled() anyway.
I think this is a red herring for Perry though. He mentions that simply
taking out his _stp_printf statement makes things work, so the
gettimeofday_us is still being called in the working case.
A wild guess -- the stack is transitioning in __switch_to, so might it
be that _stp_printf is running out-of-bounds somehow?
Josh
More information about the Systemtap
mailing list