On Mon, 14 Nov 2022 20:31:49 +0800
"leohou at tom.com" <leohou at tom.com> 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