Re: [PATCH 5/6] x86/virt/tdx: Make TDX module initialize the extensions

Xu Yilun <[email protected]>
Newsgroups org.kernel.vger.kvm,dev.linux.lists.linux-coco,org.kernel.vger.linux-kernel
Message-ID <ao1oS3HPP3mEjou6@yilunxu-OptiPlex-7050>
On Mon, Aug 24, 2026 at 05:58:07PM +0000, Edgecombe, Rick P wrote:
> On Tue, 2026-08-25 at 01:14 +0800, Xu Yilun wrote:
> > > If that could technically work, I guess the benefit of the current approach
> > > is that it allows to use contiguous physical allocations. Not sure if you
> > > think that simpler snippet would actually be that simple in the real world.
> > 
> > I think there are several simplifications here, let's break down:
> > 
> >  1. Forget about the 512-page limitation for hpa_list_info, always add 1 page
> >     at a time.
> >     This can also be applied to current flow. So put it aside.
> > 
> >  2. The loop strategy:
> >     - read total memory size	vs.	- loop on error code
> >     - prealloc all memory		  - alloc a page
> >     - loop on size			  - memory add
> >       - memory add
> > 
> >     The main saving is that we don't read memory_pool_required_pages any more.
> >     Others are similar lines of code.
> 
> If we don't read memory_pool_required_pages, then the only real option is to add
> 1 page at a time. Or I'd think you end up giving extra memory. Unless
> memory_pool_required_pages is rounded up to some higher page order? I think no.
> 
> But otherwise, if you are going to add pages many at at time, you need to read
> memory_pool_required_pages to make sure you are not going to give extra memory.
> At that point doing the allocation upfront (before the error code) is simpler.
> Hence, the design in this patch.
> 
> So I'm not suggesting to change the design in the patch. Just that if 1 and 2
> are really slightly simpler, it's worth justifying the design in this patch as
> for the purpose of reducing fragmentation. Otherwise it looks unnecessarily

Good to me.

> complicated.
> 
> > 
> >  3. But we'd better keep reading ext_required. I tested when ext_required ==
> > 0:
> >       - tdh_sys_init() returns TDX_EXT_MEMORY_POOL_REQUIRED,
> 
> If we don't config any extensions, tdh_sys_init() returns
> TDX_EXT_MEMORY_POOL_REQUIRED? Seems like a bug.

Maybe. But it also indicates calling tdh_sys_init() when ext_required == 0
is not architecturly defined now, we should not rely on that.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.