Re: [PATCH v19 110/130] KVM: TDX: Handle TDX PV MMIO hypercall

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 4/19/2024 5:22 AM, Isaku Yamahata wrote:
On Thu, Apr 18, 2024 at 07:04:11PM +0800,
Binbin Wu <binbin.wu@xxxxxxxxxxxxxxx> wrote:


On 4/18/2024 5:29 PM, Binbin Wu wrote:
+
+static int tdx_emulate_mmio(struct kvm_vcpu *vcpu)
+{
+    struct kvm_memory_slot *slot;
+    int size, write, r;
+    unsigned long val;
+    gpa_t gpa;
+
+    KVM_BUG_ON(vcpu->mmio_needed, vcpu->kvm);
+
+    size = tdvmcall_a0_read(vcpu);
+    write = tdvmcall_a1_read(vcpu);
+    gpa = tdvmcall_a2_read(vcpu);
+    val = write ? tdvmcall_a3_read(vcpu) : 0;
+
+    if (size != 1 && size != 2 && size != 4 && size != 8)
+        goto error;
+    if (write != 0 && write != 1)
+        goto error;
+
+    /* Strip the shared bit, allow MMIO with and without it set. */
Based on the discussion
https://lore.kernel.org/all/ZcUO5sFEAIH68JIA@xxxxxxxxxx/
Do we still allow the MMIO without shared bit?
That's independent.  The part is how to work around guest accesses the
MMIO region with private GPA.  This part is,  the guest issues
TDG.VP.VMCALL<MMMIO> and KVM masks out the shared bit to make it friendly
to the user space VMM.
It's similar.
The tdvmcall from the guest for mmio can also be private GPA, which is not reasonable, right? According to the comment, kvm doens't care about if the TD guest issue the tdvmcall with private GPA or shared GPA.






[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux