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? I think, hand-waving in a general way, having the SEAMCALL wrappers in KVM code will result in at least more marshaling of structs members into function args. But I can't point to any specific problem in our current SEAMCALLs.