[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Z9K3dcMAgu3cot85@gmail.com>
Date: Thu, 13 Mar 2025 11:46:13 +0100
From: Ingo Molnar <mingo@...nel.org>
To: David Woodhouse <dwmw2@...radead.org>
Cc: kexec@...ts.infradead.org, Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>, Borislav Petkov <bp@...en8.de>,
Dave Hansen <dave.hansen@...ux.intel.com>, x86@...nel.org,
"H . Peter Anvin" <hpa@...or.com>,
David Woodhouse <dwmw@...zon.co.uk>,
"Kirill A . Shutemov" <kirill.shutemov@...ux.intel.com>,
Kai Huang <kai.huang@...el.com>,
Nikolay Borisov <nik.borisov@...e.com>,
linux-kernel@...r.kernel.org, Simon Horman <horms@...nel.org>,
Dave Young <dyoung@...hat.com>,
Peter Zijlstra <peterz@...radead.org>, jpoimboe@...nel.org,
bsz@...zon.de
Subject: Re: [PATCH v7 0/8] x86/kexec: Add exception handling for
relocate_kernel
* David Woodhouse <dwmw2@...radead.org> wrote:
> Debugging kexec failures is painful, as anything going wrong in execution
> of the critical relocate_kernel() function tends to just lead to a triple
> fault. Thus leading to *weeks* of my life that I won't get back. Having
> hacked something up for my own use, I figured I should share it...
>
> Add a trivial exception handler in the relocate_kernel environment which
> outputs to the early_printk serial console if configured. Currently only
> 8250-compatible serial ports are supported, but that could be extended.
>
> I had to hack up QEMU support for a PCI serial port which matches what
> the existing early_printk code can drive, and the *real* 8250_pci driver
> doesn't seem to cope with that setup at all, but whatever... the kexec
> code now drives the same 32-bit stride which is all that earlyprintk
> supports. We can always add more later, if anyone cares.
>
> Someone who cares might want to bring the i386 version into line with
> this, although the lack of rip-based addressing makes all the PIC code a
> bit harder.
>
> David Woodhouse (8):
> x86/kexec: Debugging support: load a GDT
> x86/kexec: Debugging support: Load an IDT and basic exception entry points
> x86/kexec: Debugging support: Dump registers on exception
> x86/kexec: Add 8250 serial port output
> x86/kexec: Add 8250 MMIO serial port output
> x86/kexec: Invalidate GDT/IDT from relocate_kernel() instead of earlier
> [DO NOT MERGE] x86/kexec: Add int3 in kexec path for testing
> [DO NOT MERGE] x86/kexec: Add CFI type information to relocate_kernel()
>
> arch/x86/include/asm/kexec.h | 7 ++
> arch/x86/kernel/early_printk.c | 9 ++
> arch/x86/kernel/machine_kexec_64.c | 50 ++++++--
> arch/x86/kernel/relocate_kernel_64.S | 254 +++++++++++++++++++++++++++++++++++++++-
> 4 files changed, 308 insertions(+), 12 deletions(-)
I applied the first 3 patches to tip:x86/boot for phased-risk-reduction
reasons, and because I had some questions and suggestions starting at
patch #4.
Thanks,
Ingo
Powered by blists - more mailing lists