Re: [PATCH V2] smp: Give WARN()ing when calling smp_call_function_many()/single()in serving irq

From: Thomas Gleixner
Date: Sun Jul 07 2013 - 09:48:11 EST


On Sun, 7 Jul 2013, Wang YanQing wrote:
> On Fri, Jul 05, 2013 at 04:37:14PM +0200, Thomas Gleixner wrote:
> > Hmm, even there it matters, because of the following scenario:
> >
> > CPU 0
> > smp_call_function_single(CPU 1)
> > csd_lock(CPU 1)
>
> No, smpl_call_function_single(CPU 1)
> will csd_lock(CPU 0), not csd_lock(CPU 1)
>
> > irq_enter()
> > irq_exit()
> > __do_softirq()
> > smp_call_function_many()
> > setup csd (CPU 1)
> > csd_lock(CPU 1) ==> CPU 0 deadlocked itself.
> >
>
> maybe below is the scenario:
> irq_enter()
> irq_exit()
> __do_softirq()
> smp_call_function_single()
> setup csd (CPU 1)
> csd_lock(CPU 0) ==> CPU 0 deadlocked itself.

Right, I fatfingered that :)
--
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/