Messages in this thread | | | Date | Wed, 23 Apr 2008 09:24:32 +0200 | From | Jens Axboe <> | Subject | Re: [PATCH 1/11] Add generic helpers for arch IPI function calls |
| |
On Tue, Apr 22 2008, Mark Lord wrote: > Jens, > > While you're in there, :) > > Could you perhaps fix this bug (below) if it still exists?
I don't understand the bug - what are the shared call buffers you are talking of?
With the changes, there's not even an spin_trylock() in there anymore. But I don't see the original bug either, so...
> > >Date: Thu, 15 Nov 2007 12:07:48 -0500 > >From: Mark Lord <lkml@rtr.ca> > >To: Greg KH <gregkh@suse.de> > >Cc: Yasunori Goto <y-goto@jp.fujitsu.com>, > > Andrew Morton <akpm@linux-foundation.org>, > > Alexey Dobriyan <adobriyan@sw.ru>, linux-kernel@vger.kernel.org > >Subject: Re: EIP is at device_shutdown+0x32/0x60 > >Content-Type: text/plain; charset=ISO-8859-1; format=flowed > >Content-Transfer-Encoding: 7bit > >Sender: linux-kernel-owner@vger.kernel.org > > > >... < snip > ... > > > >Greg, I don't know if this is relevant or not, > >but x86 has bugs in the halt/reboot code for SMP. > > > >Specifically, in native_smp_send_stop() the code now uses > >spin_trylock() to "lock" the shared call buffers, > >but then ignores the result. > > > >This means that multiple CPUs can/will clobber each other > >in that code. > > > >The second bug, is that this code does not wait for the > >target CPUs to actually stop before it continues. > > > >This was the real cause of the failure-to-poweroff problems > >I was having with 2.6.23, which we fixed by using CPU hotplug > >to disable_nonboot_cpus() before the above code ever got run. > > > >Maybe it's related, maybe not.
-- Jens Axboe
| |