Re: KGDB/KDB treats WARN*() as Oops on x86 since 4.12
From: Ingo Molnar
Date: Fri Nov 10 2017 - 01:16:00 EST
* Ilya Dryomov <idryomov@xxxxxxxxx> wrote:
> On Fri, Oct 13, 2017 at 4:59 PM, Daniel Thompson
> <daniel.thompson@xxxxxxxxxx> wrote:
> > 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.
>
> Hi Peter, Ingo,
>
> Could you please consider taking Alexander's patch for 4.15? Jason
> never replied to any of our pings and hasn't been actively involved
> with kgdb recently. In the meantime, this regression makes running
> e.g. xfstests runs with kgdb enabled pretty much impossible.
Ok, agreed, I picked the fix up into tip:x86/urgent, with a -stable backporting
tag, and will try to get it to Linus for v4.15 (it will also get backported to
v4.14 which is affected as well).
Thanks,
Ingo