Can register addresses conversion go through iommu too? probably not..

FMDF fmdefrancesco at
Thu Sep 30 19:40:52 EDT 2021

On Thu, 30 Sep 2021, 08:54 , <ckim at> wrote:

> [If] the OS is running in virtualized environment (a hypervisor under it),
> this kernel virtual address should go under conversion twice
> 1. virtual to physical by OS  (this physical is not actually physical, an
> intermediate physical?)
> 2. intermediate physical to real physical
> I thought these two conversions are done by kernel or hypervisor software
> because iommu is for address translation for the addresses that the device
> “uses(or generates)”, not for the kernel to access the device itself.
> Is my understanding correct?
Something similar to what you describe happens with old/deprecated
technologies. For example, with Full virtualization I/O operations need to
go through two software layers.

Virtual Function I/O (VFIO) exposes direct device access to user space in a
secure memory (IOMMU) protected environment. With VFIO, a VM Guest can
directly access hardware devices on the VM Host Server. This technique
improves performance, if compared both to Full virtualization and
Paravirtualization. However, with VFIO, devices cannot be shared with
multiple VM guests.

Single Root I/O Virtualization (SR-IOV) combines the benefits of
performance gains of VFIO and the ability to share a device with several VM
Guests (but it requires special hardware that must be capable to appear to
two or more VM guests as different devices.


Fabio M. De Francesco

P.S.: For further information about Linux virtualization capabilities,
please read

> Any help will be appreciated.
> Thank you!
> Chan Kim
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Kernelnewbies mailing list