Re: KGDB/KDB treats WARN*() as Oops on x86 since 4.12

From: Daniel Thompson
Date: Fri Oct 13 2017 - 10:59:54 EST


On 09/10/17 13:24, Ilya Dryomov wrote:
Hi Jason,

Starting with 4.12, WARN*() is implemented with ud0, generating an
Invalid Opcode exception. KGDB/KDB gets entered as if it were an Oops,
making KGDB/KDB rather hard to use, particularly on testing kernels.

Alexander posted a fix a while back, but Peter seems to be waiting for
your ack. Could you please weigh in?

[PATCH] x86/debug: Handle warnings before the notifier chain
https://patchwork.kernel.org/patch/9859065/

Hmnnn... IIRC arm64 code has been also been blocked for a couple of releases whilst Will D. waited for an ack that never came.

My own reading of the code is that the patch in question restores the status quo, that there will still be mechanisms to provoke entry to kdb/kgdb during a warning (breakpoint on __warn, engage panic_on_warn, etc) and that these are not obviously recursive[1].

Put another way I'm happy to dig the patch out of my mail archive and throw in an Acked-By: but since I have no official role within kdb/kgdb (I'm just an interested bystander) it might not be enough for Peter.


Daniel.


[1] I'm not a huge x86 expert so correct me if I am wrong but I think
its ok for us to trap here providing its for a different reason.