Hi, This adds 'scalable_mode' and 'first_stage' attributes to intel IOMMU so that emulated device can run with first stage translation. This is based on Nathan Chen's iommufd series v2[1], so for passthrough device, nested tranlation is enabled automatically with below config: <iommu model='intel'> <driver caching_mode='on' iotlb='on' scalable_mode='on' first_stage='on'/> </iommu> Tests: Basic net card passthrough libvirt selftest Thanks Zhenzhong [1] https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/KFYUQ... Zhenzhong Duan (3): qemu: Introduce scalable_mode and first_stage capabilities conf: add support for 'scalable_mode' and 'first_stage' attributes to intel IOMMU qemu: Add command line support for scalable mode and first stage of virtual vtd docs/formatdomain.rst | 8 +++++ src/conf/domain_conf.c | 35 ++++++++++++++++++- src/conf/domain_conf.h | 2 ++ src/conf/domain_validate.c | 6 ++++ src/conf/schemas/domaincommon.rng | 10 ++++++ src/qemu/qemu_capabilities.c | 4 +++ src/qemu/qemu_capabilities.h | 2 ++ src/qemu/qemu_command.c | 2 ++ src/qemu/qemu_validate.c | 12 +++++++ .../caps_10.0.0_x86_64+amdsev.xml | 2 ++ .../caps_10.0.0_x86_64.xml | 2 ++ .../caps_10.1.0_x86_64+inteltdx.xml | 2 ++ .../caps_10.1.0_x86_64.xml | 2 ++ .../caps_10.2.0_x86_64.xml | 2 ++ .../caps_6.2.0_x86_64.xml | 1 + .../caps_7.0.0_x86_64.xml | 1 + .../caps_7.1.0_x86_64.xml | 1 + .../caps_7.2.0_x86_64+hvf.xml | 1 + .../caps_7.2.0_x86_64.xml | 1 + .../caps_8.0.0_x86_64.xml | 1 + .../caps_8.1.0_x86_64.xml | 1 + .../caps_8.2.0_x86_64.xml | 1 + .../caps_9.0.0_x86_64.xml | 1 + .../caps_9.1.0_x86_64.xml | 1 + .../caps_9.2.0_x86_64+amdsev.xml | 1 + .../caps_9.2.0_x86_64.xml | 1 + 26 files changed, 102 insertions(+), 1 deletion(-) -- 2.47.3