[PATCH v4 12/14] x86: Add KHO support
Mike Rapoport
rppt at kernel.org
Mon Feb 24 06:36:38 PST 2025
On Mon, Feb 24, 2025 at 07:13:55AM +0000, Wei Yang wrote:
> On Thu, Feb 06, 2025 at 03:27:52PM +0200, Mike Rapoport wrote:
> >From: Alexander Graf <graf at amazon.com>
> [...]
> >diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
> >index 82b96ed9890a..0b81cd70b02a 100644
> >--- a/arch/x86/kernel/e820.c
> >+++ b/arch/x86/kernel/e820.c
> >@@ -1329,6 +1329,24 @@ void __init e820__memblock_setup(void)
> > memblock_add(entry->addr, entry->size);
> > }
> >
> >+ /*
> >+ * At this point with KHO we only allocate from scratch memory.
> >+ * At the same time, we configure memblock to only allow
> >+ * allocations from memory below ISA_END_ADDRESS which is not
> >+ * a natural scratch region, because Linux ignores memory below
> >+ * ISA_END_ADDRESS at runtime. Beside very few (if any) early
> >+ * allocations, we must allocate real-mode trapoline below
> >+ * ISA_END_ADDRESS.
> >+ *
> >+ * To make sure that we can actually perform allocations during
> >+ * this phase, let's mark memory below ISA_END_ADDRESS as scratch
> >+ * so we can allocate from there in a scratch-only world.
> >+ *
> >+ * After real mode trampoline is allocated, we clear scratch
> >+ * marking from the memory below ISA_END_ADDRESS
> >+ */
> >+ memblock_mark_kho_scratch(0, ISA_END_ADDRESS);
> >+
>
> At the beginning of e820__memblock_setup() we call memblock_allow_resize(),
> which means during adding memory region it could double the array. And the
> memory used here is from some region just added.
There are large KHO scratch areas that will be used for most allocations.
Marking the memory below ISA_END_ADDRESS as KHO scratch is required to
satisfy allocations that explicitly limit the allocation to ISA_END_ADDRESS,
e.g the real time trampoline.
> But with KHO, I am afraid it would fail?
>
> > /* Throw away partial pages: */
> > memblock_trim_memory(PAGE_SIZE);
> >
>
> --
> Wei Yang
> Help you, Help me
--
Sincerely yours,
Mike.
More information about the kexec
mailing list