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. 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?