* David Woodhouse <dw...@infradead.org> wrote:
> From: David Woodhouse <d...@amazon.co.uk> > > Signed-off-by: David Woodhouse <d...@amazon.co.uk> > --- > arch/x86/kernel/relocate_kernel_64.S | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/kernel/relocate_kernel_64.S > b/arch/x86/kernel/relocate_kernel_64.S > index 17d41e6e1a4b..2b7fc59af373 100644 > --- a/arch/x86/kernel/relocate_kernel_64.S > +++ b/arch/x86/kernel/relocate_kernel_64.S > @@ -158,7 +158,7 @@ SYM_CODE_START_LOCAL_NOALIGN(identity_mapped) > lidt (%rsp) > addq $10, %rsp > > - //int3 > + int3 So this is all boot-serialized functionality with no SMP concerns whatsoever, right? If yes then we could use something like this: static int exception_selftest = 1; and add the INT3 point: int3 .globl after_int3 after_int3: And do this in the early exception handler: ... if (exception_selftest) { exception_selftest = 0; print_something_warm_and_fuzzy(); IRET-to-after_int3; } ... ... regular exception path ... ... but all in assembly or so ;-) This would make it reasonably certain that the most complex bits of this new debuging code are in working order, all the time. Thanks, Ingo