Re: [ANNOUNCE] 2.6.15-rc5-hrt2 - hrtimers based high resolutionpatches

From: Thomas Gleixner
Date: Wed Dec 14 2005 - 08:53:33 EST


On Wed, 2005-12-14 at 08:48 -0500, Steven Rostedt wrote:
> On Wed, 2005-12-14 at 09:43 +0100, Ingo Molnar wrote:
> > * Ingo Molnar <mingo@xxxxxxx> wrote:

> And going into gdb, I get:
>
> (gdb) li *0xc0136b98
> 0xc0136b98 is in hrtimer_cancel (kernel/hrtimer.c:671).
> 666 int hrtimer_cancel(struct hrtimer *timer)
> 667 {
> 668 for (;;) {
> 669 int ret = hrtimer_try_to_cancel(timer);
> 670
> 671 if (ret >= 0)
> 672 return ret;
> 673 }
> 674 }
> 675
>
> So it may not really be locked, and if I waited a couple of hours, it
> might actually finish (the test usually takes a couple of minutes to
> run, and I let it run here for about 20 minutes).
>
> Yeah, the above code would be very bad if this happens after preempting
> the running timer.
>
> So the fix to this, in the case of preempting the softirq, that we need
> to introduce some wait queue that will allow processes to wait for the
> softirq to finish, and then the softirq will wake up all the processes.

We had the waitqueue in the ktimer based -rt patches and did not add it
back.

tglx


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/