This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: [Bug runtime/2922] BUG: sleeping function called from invalid context at kernel/mutex.c:86
"fche at redhat dot com" <sourceware-bugzilla@sourceware.org> writes:
> ------- Additional Comments From fche at redhat dot com 2006-07-13 20:15 -------
> The question is why this __stp_init_time appears to be in irqs_disabled context.
> Does the "on_each_cpu" IPI widget imply that?
Yes. Quoting kernel/softirq.c:
/*
* Call a function on all processors
*/
int on_each_cpu(void (*func) (void *info), void *info, int retry, int wait)
{
int ret = 0;
preempt_disable();
ret = smp_call_function(func, info, retry, wait);
local_irq_disable();
func(info);
local_irq_enable();
preempt_enable();
return ret;
}