On Mon, Mar 09, 2026 at 05:20:27AM -0400, Zhenzhong Duan wrote: > We had 'x-scalable-mode' for more than 5 years and 'x-flts' for more than 1 > year, it's fine to remove 'x-' now.
I tried to look at history to understand why we used an 'x-' prefix to begin with. There doesn't seem to have been a very compelling reason, just a suggestion from Peter (cc'd) https://lists.nongnu.org/archive/html/qemu-devel/2019-02/msg02847.html If we assume these features are needed for > This is a prerequisite to enable intel_iommu's scalable mode and first stage > translation support in libvirt. Yep, libvirt will not support any setting with an 'x-' prefix, until it is graduated to supportable by QEMU What's the typical use case where a user needs to set these two properties ? Presuming we'll need to support those use cases indefinitely, and we have no better QEMU design available, then dropping the 'x-' prefix makes sense. > Signed-off-by: Zhenzhong Duan <[email protected]> > --- > docs/devel/vfio-iommufd.rst | 10 +++++----- > hw/i386/intel_iommu.c | 8 ++++---- > hw/i386/intel_iommu_accel.c | 4 ++-- > tests/qtest/intel-iommu-test.c | 2 +- > 4 files changed, 12 insertions(+), 12 deletions(-) > > diff --git a/docs/devel/vfio-iommufd.rst b/docs/devel/vfio-iommufd.rst > index 78bcdffac7..5755532443 100644 > --- a/docs/devel/vfio-iommufd.rst > +++ b/docs/devel/vfio-iommufd.rst > @@ -153,22 +153,22 @@ RAM discarding for mdev. > ``vfio-ap`` and ``vfio-ccw`` devices don't have same issue as their backend > devices are always mdev and RAM discarding is force enabled. > > -Usage with intel_iommu featuring x-flts=on > +Usage with intel_iommu featuring flts=on > ------------------------------------------ > > Only IOMMUFD backed VFIO device is supported when intel_iommu is configured > -with x-flts=on, for legacy container backed VFIO device, below error shows: > +with flts=on, for legacy container backed VFIO device, below error shows: > > .. code-block:: none > > - qemu-system-x86_64: -device vfio-pci,host=0000:02:00.0: vfio > 0000:02:00.0: Failed to set vIOMMU: Need IOMMUFD backend when x-flts=on > + qemu-system-x86_64: -device vfio-pci,host=0000:02:00.0: vfio > 0000:02:00.0: Failed to set vIOMMU: Need IOMMUFD backend when flts=on > > VFIO device under PCI bridge is unsupported, use PCIE bridge if necessary, > otherwise below error shows: > > .. code-block:: none > > - qemu-system-x86_64: -device > vfio-pci,host=0000:02:00.0,bus=bridge1,iommufd=iommufd0: vfio 0000:02:00.0: > Failed to set vIOMMU: Host device downstream to a PCI bridge is unsupported > when x-flts=on > + qemu-system-x86_64: -device > vfio-pci,host=0000:02:00.0,bus=bridge1,iommufd=iommufd0: vfio 0000:02:00.0: > Failed to set vIOMMU: Host device downstream to a PCI bridge is unsupported > when flts=on > > If host IOMMU has ERRATA_772415_SPR17, running guest with > "intel_iommu=on,sm_off" > is unsupported, kexec or reboot guest from "intel_iommu=on,sm_on" to > @@ -177,4 +177,4 @@ below if it's not needed by guest: > > .. code-block:: bash > > - -device intel-iommu,x-scalable-mode=off > + -device intel-iommu,scalable-mode=off > diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c > index d24ba989bf..001847ad37 100644 > --- a/hw/i386/intel_iommu.c > +++ b/hw/i386/intel_iommu.c > @@ -4200,8 +4200,8 @@ static const Property vtd_properties[] = { > DEFINE_PROP_UINT8("aw-bits", IntelIOMMUState, aw_bits, > VTD_HOST_ADDRESS_WIDTH), > DEFINE_PROP_BOOL("caching-mode", IntelIOMMUState, caching_mode, FALSE), > - DEFINE_PROP_BOOL("x-scalable-mode", IntelIOMMUState, scalable_mode, > FALSE), > - DEFINE_PROP_BOOL("x-flts", IntelIOMMUState, fsts, FALSE), > + DEFINE_PROP_BOOL("scalable-mode", IntelIOMMUState, scalable_mode, FALSE), > + DEFINE_PROP_BOOL("flts", IntelIOMMUState, fsts, FALSE), > DEFINE_PROP_BOOL("snoop-control", IntelIOMMUState, snoop_control, false), > DEFINE_PROP_BOOL("x-pasid-mode", IntelIOMMUState, pasid, false), > DEFINE_PROP_BOOL("svm", IntelIOMMUState, svm, false), > @@ -5564,7 +5564,7 @@ static bool vtd_decide_config(IntelIOMMUState *s, Error > **errp) > } > > if (!s->scalable_mode && s->fsts) { > - error_setg(errp, "x-flts is only available in scalable mode"); > + error_setg(errp, "flts is only available in scalable mode"); > return false; > } > > @@ -5577,7 +5577,7 @@ static bool vtd_decide_config(IntelIOMMUState *s, Error > **errp) > } > > if (s->fsts && s->aw_bits != VTD_HOST_AW_48BIT) { > - error_setg(errp, "Scalable mode(x-flts=on): supported value for " > + error_setg(errp, "Scalable mode(flts=on): supported value for " > "aw-bits is: %d", VTD_HOST_AW_48BIT); > return false; > } > diff --git a/hw/i386/intel_iommu_accel.c b/hw/i386/intel_iommu_accel.c > index 67d54849f2..b28d5eb9fa 100644 > --- a/hw/i386/intel_iommu_accel.c > +++ b/hw/i386/intel_iommu_accel.c > @@ -26,7 +26,7 @@ bool vtd_check_hiod_accel(IntelIOMMUState *s, > VTDHostIOMMUDevice *vtd_hiod, > PCIDevice *pdev = bus->devices[vtd_hiod->devfn]; > > if (!object_dynamic_cast(OBJECT(hiod), TYPE_HOST_IOMMU_DEVICE_IOMMUFD)) { > - error_setg(errp, "Need IOMMUFD backend when x-flts=on"); > + error_setg(errp, "Need IOMMUFD backend when flts=on"); > return false; > } > > @@ -44,7 +44,7 @@ bool vtd_check_hiod_accel(IntelIOMMUState *s, > VTDHostIOMMUDevice *vtd_hiod, > > if (pci_device_get_iommu_bus_devfn(pdev, &bus, NULL, NULL)) { > error_setg(errp, "Host device downstream to a PCI bridge is " > - "unsupported when x-flts=on"); > + "unsupported when flts=on"); > return false; > } > > diff --git a/tests/qtest/intel-iommu-test.c b/tests/qtest/intel-iommu-test.c > index e5cc6acaf0..4f12c56260 100644 > --- a/tests/qtest/intel-iommu-test.c > +++ b/tests/qtest/intel-iommu-test.c > @@ -29,7 +29,7 @@ static void test_intel_iommu_stage_1(void) > uint64_t cap, ecap, tmp; > QTestState *s; > > - s = qtest_init("-M q35 -device > intel-iommu,x-scalable-mode=on,x-flts=on"); > + s = qtest_init("-M q35 -device intel-iommu,scalable-mode=on,flts=on"); > > cap = vtd_reg_readq(s, DMAR_CAP_REG); > g_assert((cap & CAP_STAGE_1_FIXED1) == CAP_STAGE_1_FIXED1); > -- > 2.47.3 > With regards, Daniel -- |: https://berrange.com ~~ https://hachyderm.io/@berrange :| |: https://libvirt.org ~~ https://entangle-photo.org :| |: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|
