[PATCH] ARM: Temporary fix for broken arch reboot
Russell King - ARM Linux
linux at arm.linux.org.uk
Wed Nov 10 05:06:17 EST 2010
On Wed, Nov 10, 2010 at 11:25:21AM +0530, Shilimkar, Santosh wrote:
> > -----Original Message-----
> > From: Catalin Marinas [mailto:catalin.marinas at arm.com]
> > Sent: Tuesday, November 09, 2010 10:08 PM
> > To: Russell King - ARM Linux
> > Cc: Shilimkar, Santosh; linux-arm-kernel at lists.infradead.org; Gadiyar,
> > Anand
> > Subject: Re: [PATCH] ARM: Temporary fix for broken arch reboot
> >
> > On Tue, 2010-11-09 at 13:18 +0000, Russell King - ARM Linux wrote:
> > > On Tue, Nov 09, 2010 at 06:40:39PM +0530, Shilimkar, Santosh wrote:
> > > > With commit 3d3f78d752bf, reboot seems to broken on ARM
> > > > machines. CPU dies while doing flush_pmd_entry() as part of
> > > > setup_mm_for_reboot()
> >
> > What do you mean by 'dies'? Can you still connect with a debugger or it
> > got to some weird state?
> >
> It goes to some weird state. Basically the emulation connection dies,
> and debugger gets disconnected.
>
> > > > I know this is not the fix but intention is to report the
> > > > issue and also provide temporary fix till it get fixed correctly
> > >
> > > So you're now rebooting with the secondary CPUs still running. I guess
> > > that the secondary CPUs end up crashing and don't restart.
> > >
> > > I think more the question is why the CP15 cache clean/flush is hanging
> > > with the other CPUs taken down. All the other CPUs will be doing is
> > > sitting in a loop doing nothing.
> >
> > I can't think of anything. Did the other CPUs print 'stopping'?
> No it doesn't not print anything.
The processing of the IPI is asynchronous to the CPU which is rebooting
continuing - which means that if there is some kind of bus lockup, you
won't get anything from any of the CPUs.
You might be able to get something from the other CPUs by inserting a
mdelay(100) after the call to machine_shutdown(), to give the other CPUs
time to respond.
More information about the linux-arm-kernel
mailing list