On Mon, 14 Nov 2022 20:31:49 +0800
"[email protected]" <[email protected]> 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
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to