Re: [PATCH v2 06/25] x86/virt/tdx: Add SEAMCALL wrappers for TDX TD creation
From: Edgecombe, Rick P
Date: Tue Nov 12 2024 - 16:22:13 EST
On Tue, 2024-11-12 at 12:17 -0800, Dave Hansen wrote:
> On 10/30/24 12:00, Rick Edgecombe wrote:
> > +u64 tdh_mng_create(u64 tdr, u64 hkid)
> > +{
> > + struct tdx_module_args args = {
> > + .rcx = tdr,
> > + .rdx = hkid,
> > + };
> > + clflush_cache_range(__va(tdr), PAGE_SIZE);
> > + return seamcall(TDH_MNG_CREATE, &args);
> > +}
> > +EXPORT_SYMBOL_GPL(tdh_mng_create);
>
> I'd _prefer_ that this explain why the clflush is there.
How about:
/*
* The TDX module exposes a CLFLUSH_BEFORE_ALLOC bit to specify whether
* a CLFLUSH of pages is required before handing them to the TDX module.
* Be conservative and make the code simpler by doing the CLFLUSH
* unconditionally.
*/
>
> The other goofy thing here is why it's getting a physical address passed
> in. It's my old 32-bit paranoia kicking in, but everything that has a
> valid virtual address _also_ has a valid physical address. The inverse
> is not true, though. So I like to keep things as pointers as long as
> possible.
Ok, seems reasonable.