Re: [PATCH 0/5] x86: Impplement support for unaccepted memory

From: Dave Hansen
Date: Tue Aug 10 2021 - 10:09:22 EST


On 8/9/21 11:26 PM, Kirill A. Shutemov wrote:
> UEFI Specification version 2.9 introduces concept of memory acceptance:
> Some Virtual Machine platforms, such as Intel TDX or AMD SEV-SNP,
> requiring memory to be accepted before it can be used by the guest.
> Accepting happens via a protocol specific for the Virtrual Machine
> platform.
>
> Accepting memory is costly and it makes VMM allocate memory for the
> accepted guest physical address range. We don't want to accept all memory
> upfront.

This could use a bit more explanation. Any VM is likely to *eventually*
touch all its memory, so it's not like a VMM has a long-term advantage
by delaying this.

So, it must have to do with resource use at boot. Is this to help boot
times?

I had expected this series, but I also expected it to be connected to
CONFIG_DEFERRED_STRUCT_PAGE_INIT somehow. Could you explain a bit how
this problem is different and demands a totally orthogonal solution?

For instance, what prevents us from declaring: "Memory is accepted at
the time that its 'struct page' is initialized" ? Then, we use all the
infrastructure we already have for DEFERRED_STRUCT_PAGE_INIT.

This series isn't too onerous, but I do want to make sure that we're not
reinventing the wheel.