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(-)
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
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 :|
>-----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 :|
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
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),
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 :|
>-----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
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
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.
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
© 2016 - 2026 Red Hat, Inc.