Re: [PATCH v2 08/25] x86/virt/tdx: Add SEAMCALL wrappers for TDX page cache management
From: Edgecombe, Rick P
Date: Wed Nov 13 2024 - 19:33:21 EST
On Thu, 2024-11-14 at 13:21 +1300, Huang, Kai wrote:
>
> On 14/11/2024 11:00 am, Edgecombe, Rick P wrote:
> > On Wed, 2024-11-13 at 13:50 -0800, Dave Hansen wrote:
> > > On 11/13/24 13:44, Edgecombe, Rick P wrote:
> > > > Moving them to arch/x86 means we need to translate some things between KVM's
> > > > parlance and the rest of the kernels. This is extra wrapping. Another example
> > > > that was used in the old SEAMCALL wrappers was gpa_t, which KVM uses to refers
> > > > to a guest physical address. void * to the host direct map doesn't fit, so we
> > > > are back to u64 or a new gpa struct (like in the other thread) to speak to the
> > > > arch/x86 layers.
> > >
> > > I have zero issues with non-core x86 code doing a #include
> > > <linux/kvm_types.h>. Why not just use the KVM types?
> >
> > You know...I assumed it wouldn't work because of some internal headers. But yea.
> > Nevermind, we can just do that. Probably because the old code also referred to
> > struct kvm_tdx, it just got fully separated. Kai did you attempt this path at
> > all?
>
> 'struct kvm_tdx' is a KVM internal structure so we cannot use that in
> SEAMCALL wrappers in the x86 core.
>
Yea, makes sense.
> If you are talking about just use
> KVM types like 'gfn_t/hpa_t' etc (by including <linux/kvm_types.h>)
> perhaps this is fine.
>
> But I didn't try to do in this way. We can try if that's better, but I
> suppose we should get Sean/Paolo's feedback here?
There are certainly a lot of style considerations here. I'm thinking to post
like an RFC. Like a fork to look at Dave's suggestions.