Re: DIE_GPF vs. DIE_PAGE_FAULT/DIE_TRAP

From: Jan Beulich
Date: Wed Oct 26 2005 - 10:23:08 EST


>>> Andi Kleen <ak@xxxxxxx> 26.10.05 17:01:52 >>>
>On Wednesday 26 October 2005 16:44, Jan Beulich wrote:
>> What is the reason for notify_die(DIE_GPF, ...) to be run late in
the GP
>> fault handler (on both i386 and x86-64), while for other exceptions
it
>> gets run first thing (as I would have expected for all exceptions)?
>
>"die"s as the name says are normally only supposed to run when the
>error is determined to be an illegal kernel fault. Page fault
>got an exception to that to make kprobes work. For the others
>it is mostly only because there is no good way to check
>for illegal kernel faults first.

Hmm, then this isn't really useful for a debugger. There ought to be a
chance to filter exceptions early (i.e. debugger accesses to non-mapped
memory or non-existing MSRs) and a chance to detect bad faults (note
that the kernel normal exception recovery mechanism may not be usable
here because for example page faults first try to service the fault
before scanning the fixup tables, but a debugger will normally not want
a page-in to happen behind its back). I thought the latter was what gets
reported as DIE_OOPS, while the former would be the filtering occasions
(and I actually took the "grossly misnamed" comment in asm/kdebug.h as
additional indication for that).

Jan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/