On Fri, 28 Sep 2007 11:18:45 +0200 Laurent Vivier <[email protected]> wrote:
> Andrew Morton wrote:
> > On Fri, 28 Sep 2007 10:52:08 +0200 Laurent Vivier <[email protected]> wrote:
> >>
> >> Andi, is this correct ?
> >> Andrew, should I send a patch implementing this change ?
> >
> > umm, I think all the smp_call_function fucntions are deadlocky if called
> > with local interrupts disabled, regardless of whether the calling CPU is in
> > the mask.
> >
> > If CPU A is sending a cross-cpu call to CPU B and CPU B is sending a
> > cross-cpu call to CPU A, and they both have local interrupts disabled...
>
> OK, so there are two errors:
>
> 1- one I introduce myself (without any help from anyone) where
> smp_call_function() calls all online CPUs instead of calling all CPUs except itself.
I'd be pretty surprised if one was able to write a bug like that. You mean
the CPU sends an IPI to itself and then loops around until it has serviced
that IPI? And this works? Wow.
And on_each_cpu() can call the handler function twice?
hm
> 2- one in global_flush_tlb() which calls smp_call_function() with irqs disabled.
That would be a big bug, and surely we would already have picked it up.
<looks>
argh, mainline's x86_64 smp_call_function() doesn't do the check. We've
had *heaps* of bugs in i386 where people were running smp_call_foo() under
local_irq_disable(). I wonder how many there are in x86_64?
> I think I should at least correct #1 ?
I think we should correct all bugs ;)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]