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.