Re: [PATCH] powerpc/crash: Allow direct printing on kexec
From: Ryo Takakura <hidden>
Date: 2024-10-21 12:12:05
Also in:
lkml
Hi John! On 2024-10-20, John Ogness [off-list ref] wrote:
On 2024-10-20, Ryo Takakura [off-list ref] wrote:quoted
Let legacy consoles print directly so that we can see messages on kexec, as the commit b6cf8b3f3312 ("printk: add lockless ringbuffer") turned printk ring buffer lockless and there should be no worries panicked CPU deadlocking writing into ringbuffer after shutting down non-panicked CPU.It is correct that the ringbuffer is now lockless. But the legacy console drivers are not. Allowing them to print directly in panic can lead to similar effects that commit af2876b501e4 ("powerpc/crash: Use NMI context for printk when starting to crash") was working around.
Oh I see. I wasn't taking the locks acquired by console drivers into account... Thanks once again for the feedback!
Note that although printk is deferred, it is only the printing that is deferred. The messages are landing in the ringbuffer immediately. So they would be available to kdump and crash kernels.
I also agree to rather skip printing and leave it to kdump and crash kernels considering the chance of pointed out risk on panic.
Rather than removing the deferring, it would be better to convert the console you are using to the new NBCON API. Then it would be able to print direct and safe during panic. (printk_deferred does not affect NBCON consoles.) What console driver are you using that you want to see the messages on?
I was working on qemu ppc64 this time but I am usually working on Raspberry Pi 4 (mostly for fun and study) which uses either of bcm2835-aux-uart or amba-pl011. It would be really nice to see them working as nbcon! I am thinking of taking a look at [0] but If there were any other references, I would really like to look into as well.
John Ogness
Sincerely, Ryo Takakura [0] https://lore.kernel.org/lkml/87wn3zsz5x.fsf@jogness.linutronix.de/ (local)