On Mon, 14 Nov 2022 20:31:49 +0800 "leohou@xxxxxxx" <leohou@xxxxxxx> wrote: > Hi, > Here is my application scenario: > 1. The NIC (Network Information Center) passes through to the VM(Virtual Machine); > 2. The VM uses the user mode driver DPDK; > > Question: > 1. vIOMMU maintains the mapping gIOVA->gPA, When do you use this gPA ? QEMU in the host derives the hVA from the gPA. The vIOMMU driver in QEMU is triggering the gIOVA to hVA mapping through vfio in the host. > 2. Physical IOMMU maintains the GIOVA->HPA mapping ? If so, by what means (gIOVA -> HPA) mapping ? As above, the vIOMMU in the guest provides gIOVA -> gPA, in QEMU we do the gPA -> hVA, then vfio in the host kernel performs hVA -> hPA via page pinning. > 3. What does QEMU do in NIC pass-through address translation ? The guest visible vIOMMU triggers MemoryListener notifications in QEMU for the device address space, which insert and removes mappings to the vfio layer below it. Thanks, Alex _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization