* [PATCH] intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and 'x-flts' properties @ 2026-03-09 9:20 Zhenzhong Duan 2026-03-09 12:44 ` Philippe Mathieu-Daudé 2026-03-09 13:49 ` Daniel P. Berrangé 0 siblings, 2 replies; 10+ messages in thread From: Zhenzhong Duan @ 2026-03-09 9:20 UTC (permalink / raw) To: qemu-devel Cc: mst, jasowang, berrange, clg, nathanc, Zhenzhong Duan, Yi Liu, Clément Mathieu--Drif, Paolo Bonzini 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. This is a prerequisite to enable intel_iommu's scalable mode and first stage translation support in libvirt. Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com> --- 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 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and 'x-flts' properties 2026-03-09 9:20 [PATCH] intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and 'x-flts' properties Zhenzhong Duan @ 2026-03-09 12:44 ` Philippe Mathieu-Daudé 2026-03-09 12:57 ` Daniel P. Berrangé 2026-03-09 13:49 ` Daniel P. Berrangé 1 sibling, 1 reply; 10+ messages in thread From: Philippe Mathieu-Daudé @ 2026-03-09 12:44 UTC (permalink / raw) To: Zhenzhong Duan, qemu-devel Cc: mst, jasowang, berrange, clg, nathanc, Yi Liu, Clément Mathieu--Drif, Paolo Bonzini Hi, On 9/3/26 10:20, 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. > > This is a prerequisite to enable intel_iommu's scalable mode and first stage > translation support in libvirt. > > Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com> > --- > 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), IMHO safer would be to officially deprecate these in docs/about/deprecated.rst and keeping them aliased until deprecation period expires. Other changes LGTM. > + 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), ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and 'x-flts' properties 2026-03-09 12:44 ` Philippe Mathieu-Daudé @ 2026-03-09 12:57 ` Daniel P. Berrangé 2026-03-09 13:39 ` Philippe Mathieu-Daudé 2026-03-10 3:16 ` Duan, Zhenzhong 0 siblings, 2 replies; 10+ messages in thread From: Daniel P. Berrangé @ 2026-03-09 12:57 UTC (permalink / raw) To: Philippe Mathieu-Daudé Cc: Zhenzhong Duan, qemu-devel, mst, jasowang, clg, nathanc, Yi Liu, Clément Mathieu--Drif, Paolo Bonzini On Mon, Mar 09, 2026 at 01:44:15PM +0100, Philippe Mathieu-Daudé wrote: > Hi, > > On 9/3/26 10:20, 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. > > > > This is a prerequisite to enable intel_iommu's scalable mode and first stage > > translation support in libvirt. > > > > Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com> > > --- > > 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), > > IMHO safer would be to officially deprecate these in > docs/about/deprecated.rst and keeping them aliased until deprecation > period expires. Other changes LGTM. The purpose of using an 'x-' prefix for properties in QEMU is to declare that they are subject to change with no warning, so we are free to change them without any deprecation IMHO. > > + 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), > 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 :| ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and 'x-flts' properties 2026-03-09 12:57 ` Daniel P. Berrangé @ 2026-03-09 13:39 ` Philippe Mathieu-Daudé 2026-03-10 3:16 ` Duan, Zhenzhong 1 sibling, 0 replies; 10+ messages in thread From: Philippe Mathieu-Daudé @ 2026-03-09 13:39 UTC (permalink / raw) To: Daniel P. Berrangé Cc: Zhenzhong Duan, qemu-devel, mst, jasowang, clg, nathanc, Yi Liu, Clément Mathieu--Drif, Paolo Bonzini On 9/3/26 13:57, Daniel P. Berrangé wrote: > On Mon, Mar 09, 2026 at 01:44:15PM +0100, Philippe Mathieu-Daudé wrote: >> Hi, >> >> On 9/3/26 10:20, 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. >>> >>> This is a prerequisite to enable intel_iommu's scalable mode and first stage >>> translation support in libvirt. >>> >>> Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com> >>> --- >>> 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), >> >> IMHO safer would be to officially deprecate these in >> docs/about/deprecated.rst and keeping them aliased until deprecation >> period expires. Other changes LGTM. > > The purpose of using an 'x-' prefix for properties in QEMU is to declare > that they are subject to change with no warning, so we are free to change > them without any deprecation IMHO. OK, good to know, thanks. > >>> + 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), >> > > With regards, > Daniel ^ permalink raw reply [flat|nested] 10+ messages in thread
* RE: [PATCH] intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and 'x-flts' properties 2026-03-09 12:57 ` Daniel P. Berrangé 2026-03-09 13:39 ` Philippe Mathieu-Daudé @ 2026-03-10 3:16 ` Duan, Zhenzhong 2026-03-10 6:02 ` Philippe Mathieu-Daudé 2026-03-10 6:04 ` CLEMENT MATHIEU--DRIF 1 sibling, 2 replies; 10+ messages in thread From: Duan, Zhenzhong @ 2026-03-10 3:16 UTC (permalink / raw) To: Daniel P. Berrangé, Philippe Mathieu-Daudé Cc: qemu-devel@nongnu.org, mst@redhat.com, jasowang@redhat.com, clg@redhat.com, nathanc@nvidia.com, Liu, Yi L, Clément Mathieu--Drif, Paolo Bonzini >-----Original Message----- >From: Daniel P. Berrangé <berrange@redhat.com> >Subject: Re: [PATCH] intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and >'x-flts' properties > >On Mon, Mar 09, 2026 at 01:44:15PM +0100, Philippe Mathieu-Daudé wrote: >> Hi, >> >> On 9/3/26 10:20, 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. >> > >> > This is a prerequisite to enable intel_iommu's scalable mode and first stage >> > translation support in libvirt. >> > >> > Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com> >> > --- >> > 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), >> >> IMHO safer would be to officially deprecate these in >> docs/about/deprecated.rst and keeping them aliased until deprecation >> period expires. Other changes LGTM. > >The purpose of using an 'x-' prefix for properties in QEMU is to declare >that they are subject to change with no warning, so we are free to change >them without any deprecation IMHO. Does that mean I can add another patch to s/flts/fsts opportunistically? flts(first level translation support) is a naming based on old version vtd spec, in new spec, it changed to use fsts(first stage translation support) naming. Thanks Zhenzhong ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and 'x-flts' properties 2026-03-10 3:16 ` Duan, Zhenzhong @ 2026-03-10 6:02 ` Philippe Mathieu-Daudé 2026-03-10 6:04 ` CLEMENT MATHIEU--DRIF 1 sibling, 0 replies; 10+ messages in thread From: Philippe Mathieu-Daudé @ 2026-03-10 6:02 UTC (permalink / raw) To: Duan, Zhenzhong, Daniel P. Berrangé Cc: qemu-devel@nongnu.org, mst@redhat.com, jasowang@redhat.com, clg@redhat.com, nathanc@nvidia.com, Liu, Yi L, Clément Mathieu--Drif, Paolo Bonzini On 10/3/26 04:16, Duan, Zhenzhong wrote: > > >> -----Original Message----- >> From: Daniel P. Berrangé <berrange@redhat.com> >> Subject: Re: [PATCH] intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and >> 'x-flts' properties >> >> On Mon, Mar 09, 2026 at 01:44:15PM +0100, Philippe Mathieu-Daudé wrote: >>> Hi, >>> >>> On 9/3/26 10:20, 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. >>>> >>>> This is a prerequisite to enable intel_iommu's scalable mode and first stage >>>> translation support in libvirt. >>>> >>>> Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com> >>>> --- >>>> 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), >>> >>> IMHO safer would be to officially deprecate these in >>> docs/about/deprecated.rst and keeping them aliased until deprecation >>> period expires. Other changes LGTM. >> >> The purpose of using an 'x-' prefix for properties in QEMU is to declare >> that they are subject to change with no warning, so we are free to change >> them without any deprecation IMHO. > > Does that mean I can add another patch to s/flts/fsts opportunistically? > flts(first level translation support) is a naming based on old version vtd spec, > in new spec, it changed to use fsts(first stage translation support) naming. Apparently :) You should post a v2 with that change included. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and 'x-flts' properties 2026-03-10 3:16 ` Duan, Zhenzhong 2026-03-10 6:02 ` Philippe Mathieu-Daudé @ 2026-03-10 6:04 ` CLEMENT MATHIEU--DRIF 1 sibling, 0 replies; 10+ messages in thread From: CLEMENT MATHIEU--DRIF @ 2026-03-10 6:04 UTC (permalink / raw) To: Duan, Zhenzhong, Daniel P. Berrangé, Philippe Mathieu-Daudé Cc: qemu-devel@nongnu.org, mst@redhat.com, jasowang@redhat.com, clg@redhat.com, nathanc@nvidia.com, Liu, Yi L, CLEMENT MATHIEU--DRIF, Paolo Bonzini On Tue, 2026-03-10 at 03:16 +0000, Duan, Zhenzhong wrote: > > > > > -----Original Message----- > > From: Daniel P. Berrangé <[berrange@redhat.com](mailto:berrange@redhat.com)> > > Subject: Re: [PATCH] intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and > > 'x-flts' properties > > > > On Mon, Mar 09, 2026 at 01:44:15PM +0100, Philippe Mathieu-Daudé wrote: > > > > > Hi, > > > > > > On 9/3/26 10:20, 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. > > > > > > > > This is a prerequisite to enable intel_iommu's scalable mode and first stage > > > > translation support in libvirt. > > > > > > > > Signed-off-by: Zhenzhong Duan <[zhenzhong.duan@intel.com](mailto:zhenzhong.duan@intel.com)> > > > > --- > > > > 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), > > > > > > > > > IMHO safer would be to officially deprecate these in > > > docs/about/deprecated.rst and keeping them aliased until deprecation > > > period expires. Other changes LGTM. > > > > > > The purpose of using an 'x-' prefix for properties in QEMU is to declare > > that they are subject to change with no warning, so we are free to change > > them without any deprecation IMHO. > > > Does that mean I can add another patch to s/flts/fsts opportunistically? > flts(first level translation support) is a naming based on old version vtd spec, > in new spec, it changed to use fsts(first stage translation support) naming. Hi, Indeed, this would be nice if we could. > > Thanks > Zhenzhong ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and 'x-flts' properties 2026-03-09 9:20 [PATCH] intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and 'x-flts' properties Zhenzhong Duan 2026-03-09 12:44 ` Philippe Mathieu-Daudé @ 2026-03-09 13:49 ` Daniel P. Berrangé 2026-03-09 15:21 ` Peter Xu 2026-03-10 5:55 ` Duan, Zhenzhong 1 sibling, 2 replies; 10+ messages in thread From: Daniel P. Berrangé @ 2026-03-09 13:49 UTC (permalink / raw) To: Zhenzhong Duan Cc: qemu-devel, mst, jasowang, clg, nathanc, Yi Liu, Clément Mathieu--Drif, Paolo Bonzini, Peter Xu 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 <zhenzhong.duan@intel.com> > --- > 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 :| ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and 'x-flts' properties 2026-03-09 13:49 ` Daniel P. Berrangé @ 2026-03-09 15:21 ` Peter Xu 2026-03-10 5:55 ` Duan, Zhenzhong 1 sibling, 0 replies; 10+ messages in thread From: Peter Xu @ 2026-03-09 15:21 UTC (permalink / raw) To: Daniel P. Berrangé Cc: Zhenzhong Duan, qemu-devel, mst, jasowang, clg, nathanc, Yi Liu, Clément Mathieu--Drif, Paolo Bonzini On Mon, Mar 09, 2026 at 01:49:11PM +0000, Daniel P. Berrangé wrote: > 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 Yes, at that time scalable mode is at very early stage, and the ABI may be prone to change, hence the suggestion. I do have the gut feeling it's getting much more stable on the interface so it makes sense to remove x-. Thanks, -- Peter Xu ^ permalink raw reply [flat|nested] 10+ messages in thread
* RE: [PATCH] intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and 'x-flts' properties 2026-03-09 13:49 ` Daniel P. Berrangé 2026-03-09 15:21 ` Peter Xu @ 2026-03-10 5:55 ` Duan, Zhenzhong 1 sibling, 0 replies; 10+ messages in thread From: Duan, Zhenzhong @ 2026-03-10 5:55 UTC (permalink / raw) To: Daniel P. Berrangé Cc: qemu-devel@nongnu.org, mst@redhat.com, jasowang@redhat.com, clg@redhat.com, nathanc@nvidia.com, Liu, Yi L, Clément Mathieu--Drif, Paolo Bonzini, Peter Xu >-----Original Message----- >From: Daniel P. Berrangé <berrange@redhat.com> >Subject: Re: [PATCH] intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and >'x-flts' properties > >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 ? Any scenario that legacy mode and second stage translation can't support. E.g., user want to use SVM feature, user want pasid support, etc. BRs, Zhenzhong > >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 <zhenzhong.duan@intel.com> >> --- >> 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 :| ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-03-10 6:05 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-03-09 9:20 [PATCH] intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and 'x-flts' properties Zhenzhong Duan 2026-03-09 12:44 ` Philippe Mathieu-Daudé 2026-03-09 12:57 ` Daniel P. Berrangé 2026-03-09 13:39 ` Philippe Mathieu-Daudé 2026-03-10 3:16 ` Duan, Zhenzhong 2026-03-10 6:02 ` Philippe Mathieu-Daudé 2026-03-10 6:04 ` CLEMENT MATHIEU--DRIF 2026-03-09 13:49 ` Daniel P. Berrangé 2026-03-09 15:21 ` Peter Xu 2026-03-10 5:55 ` Duan, Zhenzhong
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.