panic kexec broken on ARM64?
stefan.wahren at i2se.com
Wed Jun 6 00:02:04 PDT 2018
Am 05.06.2018 um 19:46 schrieb James Morse:
> Hi Petr,
> (CC: +Akashi, Marc)
> On 05/06/18 09:01, Petr Tesarik wrote:
>> I have observed hangs after crash on a Raspberry Pi 3 Model B+ board
>> when a panic kernel is loaded.
> kdump is a best-effort thing, it looks like this is a case where the
> crashed-kernel can't tear itself down.
> Do you have the rest of the stack trace? Was it handling an irq when it decided
> to panic?:
the Raspberry Pi 3 B+ support is very fresh (linux-next). Since i didn't
see a version, i need to doublecheck.
You are actually using linux-next and not the downstream kernel?
>> I attached a hardware debugger and found
>> out that all CPU cores were stopped except one which was stuck in the
>> idle thread. It seems that irq_set_irqchip_state() may sleep, which is
>> definitely not safe after a kernel panic.
> I don't know much about irqchip stuff, but __irq_get_desc_lock() takes a
> raw_spin_lock(), and calls gic_irq_get_irqchip_state() which is just poking
> around in mmio registers, this should all be safe unless you re-entered the same
>> If I'm right, then this is broken in general, but I have only ever seen
>> it on RPi 3 Model B+ (even RPi3 Model B works fine), so the issue may
>> be more subtle.
> Is there a hardware difference around the interrupt controller on these?
No, but the RPi 3 B has a different USB network chip on board (smsc95xx,
Fast ethernet) instead of lan78xx (Gigabit ethernet).
More information about the kexec