Re: [tip:timers/core] hrtimers: Support resuming with two or moreCPUs online (but stopped)

From: Thomas Gleixner
Date: Fri Jul 05 2013 - 09:52:02 EST


On Fri, 5 Jul 2013, David Vrabel wrote:
> On 05/07/13 11:25, Thomas Gleixner wrote:
> > On Fri, 5 Jul 2013, David Vrabel wrote:
> >
> > You failed to CC Artem :(
> >
> >> On 05/07/13 10:30, Artem Savkov wrote:
> >>> This commit brings up a warning about a potential deadlock in
> >>> smp_call_function_many() discussed previously:
> >>> https://lkml.org/lkml/2013/4/18/546
> >>
> >> Can we just avoid the wait in clock_was_set()? Something like this?
> >>
> >> 8<------------------------------------------------------
> >> hrtimers: do not wait for other CPUs in clock_was_set()
> >>
> >> Calling on_each_cpu() and waiting in a softirq causes a WARNing about
> >> a potential deadlock.
> >>
> >> Because hrtimers are per-CPU, it is sufficient to ensure that all
> >> other CPUs' timers are reprogrammed as soon as possible and before the
> >> next softirq on that CPU. There is no need to wait for this to be
> >> complete on all CPUs.
>
> Unfortunately this doesn't look sufficient. on_each_cpu(..., 0) may
> still wait for other calls to complete before queuing the calls due to
> the use of a single set of per-CPU csd data.

Hrmpf. I'll fix it in the non elegant way :(

Thanks,

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/