Re: [PATCHv11.1 11/19] x86/tdx: Convert shared memory back to private on kexec

From: Kirill A. Shutemov
Date: Tue Jun 04 2024 - 11:34:08 EST


On Mon, Jun 03, 2024 at 10:37:54AM +0200, Borislav Petkov wrote:
> On Sun, Jun 02, 2024 at 05:23:03PM +0300, Kirill A. Shutemov wrote:
> > + /*
> > + * The only thing one can do at this point on failure
> > + * is panic. It is reasonable to proceed.
>
> It makes even less sense now: panic() means "all stops and we die" and
> you say it is reasonable to proceed.
>
> I'm confused.

Right.

What about the comment below?

/*
* One possible reason for the failure is if kexec raced
* with memory conversion. In this case shared bit in
* page table got set (or not cleared) during
* shared<->private conversion, but the page is actually
* private. So this failure is not going to affect the
* kexec'ed kernel.
*
* The only thing one can do at this point on failure
* at this point is panic. In absence of better options,
* it is reasonable to proceed, hoping the failure is a
* benign shared bit mismatch due to the race.
*
* Also, even if the failure is real and the page cannot
* be touched as private, the kdump kernel will boot
* fine as it uses pre-reserved memory. What happens
* next depends on what the dumping process does and
* there's a reasonable chance to produce useful dump
* on crash.
*
* Regardless, the print leaves a trace in the log to
* give a clue for debug.
*/

--
Kiryl Shutsemau / Kirill A. Shutemov