Re: [PATCH 5/6] x86/virt/tdx: Make TDX module initialize the extensions
From: Xu Yilun
Date: Tue Aug 25 2026 - 05:53:58 EST
> Not specifically. Just wondering what it is doing. Like is it the big operation
> to prep the memory, and ADD just hands pages which sit on a list waiting the
> real work?
Yes, TDH.EXT.INIT is the big operation to prep the memory. ADD just hands
pages.
> Or more like a "we think we are good to go" notification from the
> VMM?
>
> > I can think of some case that TDH.EXT.MEM.ADD is not
> > needed but the extensions initialization is needed. For example: after
> > an compatible TDX module update.
> >
> > I may ask the TDX module team to get a better understanding.
>
> That this is also called during an update just raises further questions to me.
> If is doing initing of the memory, then what happens during an update? I'd
> expect memory would need to be persisted across an update, not initialized. Or
The update of the extensions is just like the basic TDX module update.
TDX module The extensions
================= =====================
execution memory SEAM range Added by TDH.EXT.MEM.ADD
binary loading P-SEAMLDR.INSTALL TDH.EXT.INIT
initialization TDH.SYS.INIT/LP.INIT TDH.EXT.INIT
resuming state TDH.SYS.UPDATE TDH.EXT.INIT
(consume handoff data)
The extensions memory is mainly for their own execution context, code &
data. During update, the execution binary of the extensions must also
be updated to match the new TDX module binary. That means the execution
context is re-built, the memory is re-intialized.
> it is doing something different when called after a TDH.SYS.UPDATE? Does it
> consume the handoff data?
So TDH.EXT.INIT does mostly the same after update, it re-builds the
execution context from scratch. The difference is that it then
consumes the handoff data if any.