![]() | |||||||||||||
Messages in this thread |
Hi, On Sun, 12 Mar 2006, Thomas Gleixner wrote: > On Sun, 2006-03-12 at 14:26 +0100, Roman Zippel wrote: > > > softirq runs on CPU0 > > > base->lock() > > > > > > remove_timer(timer); > > > > > > base->unlock() > > > signal of previous expiry is delivered on CPU1 > > > timer is reqeued. > > -------> sig_ignore is set ??? I can't find any symbol 'sig_ignore'. > > > requeue = timer->fn(); > > > > > > base->lock() > > > > > > if (requeue) > > > enqueue_timer(timer) > > > What actually happened is that requeue is false and in the meantime the timer was restarted on another cpu via signal delivery and run_hrtimer_queue would set the state to expired, while the timer was still active -> OOPS. bye, Roman - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||||
| Last update: 2006-03-12 14:58 [from the cache] ©2003-2008 | |||||||||||||