mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* panic() logic
@ 2008-10-17 21:48 Ani Sinha
  2008-10-17 21:50 ` Ani Sinha
  2008-10-18  7:56 ` Andi Kleen
  0 siblings, 2 replies; 5+ messages in thread
From: Ani Sinha @ 2008-10-17 21:48 UTC (permalink / raw)
  To: linux-kernel, torvalds; +Cc: kernel

Hi All:

I noticed an issue with the panic() firing on a back core in SMP
lately. We are mostly working on mips architectures but it might
effect other archs as well. Therefore, I am putting forward my
thoughts and comments to the whole linux community. In the following,
by front core I mean core#0 and by back core I mean other cores.

The panic() call does a smp_send_stop() pretty early in the call
process. There is an issue with this:

smp_send_stop basically marks all the other cores as 'down' and
updates the cpu bitmap. One implication of this is that you can not do
an IPI later on to other cores (smp_send_function() does a
'for_earch_online_cpu'). This makes sense since you should not be
allowed to do anything on a down cpu. But what if a particular
architecture had logic to do specific things for the front core and
other things on the back cores as a part of 'graceful reboot' process?
For example, the arch dependent emergency_restart() might try to do
send IPI to the front core to do a graceful reboot and simply place
the others on an infinite loop? As a concrete example, mips sibyte
processor has logic in arch dependent restart code to call cfe_exit()
on front core and an infinite loop on the back cores. It does this
through an IPI which obviously does not succeed because of the early
smp_send_stop().

So, my proposal is, can we just run panic on the front core and put
the back cores in loop right away. I mean, can we do this in pseudo
code?

panic()
{

/* do stuff that must be done on the current core */
    on_each_cpu(continue_panic, ...);

}

continue_panic()
{
 if (!smp_processor_id()) {
        smp_send_stop();
        /* rest of existing panic() logic */
 }else

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2008-10-19  5:07 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-10-17 21:48 panic() logic Ani Sinha
2008-10-17 21:50 ` Ani Sinha
2008-10-18  7:56 ` Andi Kleen
2008-10-19  2:44   ` Anirban Sinha
2008-10-19  5:07     ` Anirban Sinha

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome