* [PATCH v2 1/2] intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and 'x-flts' properties
2026-03-11 9:23 [PATCH v2 0/2] Update properties naming for 'x-scalable-mode' and 'x-flts' Zhenzhong Duan
@ 2026-03-11 9:23 ` Zhenzhong Duan
2026-03-11 9:23 ` [PATCH v2 2/2] intel_iommu: Change 'flts' property naming to 'fsts' Zhenzhong Duan
2026-05-13 2:32 ` [PATCH v2 0/2] Update properties naming for 'x-scalable-mode' and 'x-flts' Duan, Zhenzhong
2 siblings, 0 replies; 5+ messages in thread
From: Zhenzhong Duan @ 2026-03-11 9:23 UTC (permalink / raw)
To: qemu-devel
Cc: mst, jasowang, berrange, clg, nathanc, clement.mathieu--drif,
philmd, yi.l.liu, Zhenzhong Duan, 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 f395fa248c..fb6bbc3447 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),
@@ -5560,7 +5560,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;
}
@@ -5573,7 +5573,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] 5+ messages in thread* [PATCH v2 2/2] intel_iommu: Change 'flts' property naming to 'fsts'
2026-03-11 9:23 [PATCH v2 0/2] Update properties naming for 'x-scalable-mode' and 'x-flts' Zhenzhong Duan
2026-03-11 9:23 ` [PATCH v2 1/2] intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and 'x-flts' properties Zhenzhong Duan
@ 2026-03-11 9:23 ` Zhenzhong Duan
2026-05-13 2:32 ` [PATCH v2 0/2] Update properties naming for 'x-scalable-mode' and 'x-flts' Duan, Zhenzhong
2 siblings, 0 replies; 5+ messages in thread
From: Zhenzhong Duan @ 2026-03-11 9:23 UTC (permalink / raw)
To: qemu-devel
Cc: mst, jasowang, berrange, clg, nathanc, clement.mathieu--drif,
philmd, yi.l.liu, Zhenzhong Duan, Paolo Bonzini
Previous patch Removed 'x-' prefix from 'x-flts' property.
Opportunistically, this patch does s/flts/fsts for property name
in order to better align with newer spec since revision 3.4 which
changed terminology from "First-level" to "First-stage".
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
---
docs/devel/vfio-iommufd.rst | 8 ++++----
hw/i386/intel_iommu.c | 10 +++++-----
hw/i386/intel_iommu_accel.c | 6 +++---
tests/qtest/intel-iommu-test.c | 2 +-
4 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/docs/devel/vfio-iommufd.rst b/docs/devel/vfio-iommufd.rst
index 5755532443..d5538461ba 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 flts=on
+Usage with intel_iommu featuring fsts=on
------------------------------------------
Only IOMMUFD backed VFIO device is supported when intel_iommu is configured
-with flts=on, for legacy container backed VFIO device, below error shows:
+with fsts=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 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 fsts=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 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 fsts=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
diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
index fb6bbc3447..282c05ed19 100644
--- a/hw/i386/intel_iommu.c
+++ b/hw/i386/intel_iommu.c
@@ -4201,7 +4201,7 @@ static const Property vtd_properties[] = {
VTD_HOST_ADDRESS_WIDTH),
DEFINE_PROP_BOOL("caching-mode", IntelIOMMUState, caching_mode, FALSE),
DEFINE_PROP_BOOL("scalable-mode", IntelIOMMUState, scalable_mode, FALSE),
- DEFINE_PROP_BOOL("flts", IntelIOMMUState, fsts, FALSE),
+ DEFINE_PROP_BOOL("fsts", 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),
@@ -5560,20 +5560,20 @@ static bool vtd_decide_config(IntelIOMMUState *s, Error **errp)
}
if (!s->scalable_mode && s->fsts) {
- error_setg(errp, "flts is only available in scalable mode");
+ error_setg(errp, "fsts is only available in scalable mode");
return false;
}
if (!s->fsts && s->aw_bits != VTD_HOST_AW_39BIT &&
s->aw_bits != VTD_HOST_AW_48BIT) {
error_setg(errp, "%s: supported values for aw-bits are: %d, %d",
- s->scalable_mode ? "Scalable mode(flts=off)" : "Legacy mode",
+ s->scalable_mode ? "Scalable mode(fsts=off)" : "Legacy mode",
VTD_HOST_AW_39BIT, VTD_HOST_AW_48BIT);
return false;
}
if (s->fsts && s->aw_bits != VTD_HOST_AW_48BIT) {
- error_setg(errp, "Scalable mode(flts=on): supported value for "
+ error_setg(errp, "Scalable mode(fsts=on): supported value for "
"aw-bits is: %d", VTD_HOST_AW_48BIT);
return false;
}
@@ -5590,7 +5590,7 @@ static bool vtd_decide_config(IntelIOMMUState *s, Error **errp)
}
if (!s->fsts) {
- error_setg(errp, "Need to set flts for svm");
+ error_setg(errp, "Need to set fsts for svm");
return false;
}
diff --git a/hw/i386/intel_iommu_accel.c b/hw/i386/intel_iommu_accel.c
index b28d5eb9fa..43d2993fb3 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 flts=on");
+ error_setg(errp, "Need IOMMUFD backend when fsts=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 flts=on");
+ "unsupported when fsts=on");
return false;
}
@@ -105,7 +105,7 @@ static bool vtd_device_attach_iommufd(VTDHostIOMMUDevice *vtd_hiod,
bool ret;
/*
- * We can get here only if flts=on, the supported PGTT is FST or PT.
+ * We can get here only if fsts=on, the supported PGTT is FST or PT.
* Catch invalid PGTT when processing invalidation request to avoid
* attaching to wrong hwpt.
*/
diff --git a/tests/qtest/intel-iommu-test.c b/tests/qtest/intel-iommu-test.c
index 4f12c56260..30ee6524df 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,scalable-mode=on,flts=on");
+ s = qtest_init("-M q35 -device intel-iommu,scalable-mode=on,fsts=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] 5+ messages in thread* RE: [PATCH v2 0/2] Update properties naming for 'x-scalable-mode' and 'x-flts'
2026-03-11 9:23 [PATCH v2 0/2] Update properties naming for 'x-scalable-mode' and 'x-flts' Zhenzhong Duan
2026-03-11 9:23 ` [PATCH v2 1/2] intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and 'x-flts' properties Zhenzhong Duan
2026-03-11 9:23 ` [PATCH v2 2/2] intel_iommu: Change 'flts' property naming to 'fsts' Zhenzhong Duan
@ 2026-05-13 2:32 ` Duan, Zhenzhong
2026-05-13 3:02 ` Michael S. Tsirkin
2 siblings, 1 reply; 5+ messages in thread
From: Duan, Zhenzhong @ 2026-05-13 2:32 UTC (permalink / raw)
To: qemu-devel@nongnu.org
Cc: mst@redhat.com, jasowang@redhat.com, berrange@redhat.com,
clg@redhat.com, nathanc@nvidia.com,
clement.mathieu--drif@bull.com, philmd@linaro.org, Liu, Yi L
Hi All,
Kindly ping😊
This series needs a rebase as there are conflicts with newest code.
Any comments or objections before I do that?
Thanks
Zhenzhong
>-----Original Message-----
>From: Duan, Zhenzhong <zhenzhong.duan@intel.com>
>Subject: [PATCH v2 0/2] Update properties naming for 'x-scalable-mode' and 'x-
>flts'
>
>Hi,
>
>This series dropped 'x-' prefix for properties 'x-scalable-mode' and 'x-flts',
>by this chance also renamed 'flts' to 'fsts' to align with newer spec.
>
>After that, we can add scalable mode and first stage translation support to
>libvirt.
>
>Thanks
>Zhenzhong
>
>Zhenzhong Duan (2):
> intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and 'x-flts'
> properties
> intel_iommu: Change 'flts' property naming to 'fsts'
>
> docs/devel/vfio-iommufd.rst | 10 +++++-----
> hw/i386/intel_iommu.c | 12 ++++++------
> hw/i386/intel_iommu_accel.c | 6 +++---
> tests/qtest/intel-iommu-test.c | 2 +-
> 4 files changed, 15 insertions(+), 15 deletions(-)
>
>--
>2.47.3
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 0/2] Update properties naming for 'x-scalable-mode' and 'x-flts'
2026-05-13 2:32 ` [PATCH v2 0/2] Update properties naming for 'x-scalable-mode' and 'x-flts' Duan, Zhenzhong
@ 2026-05-13 3:02 ` Michael S. Tsirkin
0 siblings, 0 replies; 5+ messages in thread
From: Michael S. Tsirkin @ 2026-05-13 3:02 UTC (permalink / raw)
To: Duan, Zhenzhong
Cc: qemu-devel@nongnu.org, jasowang@redhat.com, berrange@redhat.com,
clg@redhat.com, nathanc@nvidia.com,
clement.mathieu--drif@bull.com, philmd@linaro.org, Liu, Yi L
On Wed, May 13, 2026 at 02:32:00AM +0000, Duan, Zhenzhong wrote:
> Hi All,
>
> Kindly ping😊
> This series needs a rebase as there are conflicts with newest code.
> Any comments or objections before I do that?
>
> Thanks
> Zhenzhong
>
> >-----Original Message-----
> >From: Duan, Zhenzhong <zhenzhong.duan@intel.com>
> >Subject: [PATCH v2 0/2] Update properties naming for 'x-scalable-mode' and 'x-
> >flts'
> >
> >Hi,
> >
> >This series dropped 'x-' prefix for properties 'x-scalable-mode' and 'x-flts',
> >by this chance also renamed 'flts' to 'fsts' to align with newer spec.
> >
> >After that, we can add scalable mode and first stage translation support to
> >libvirt.
> >
> >Thanks
> >Zhenzhong
> >
> >Zhenzhong Duan (2):
> > intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and 'x-flts'
> > properties
> > intel_iommu: Change 'flts' property naming to 'fsts'
> >
> > docs/devel/vfio-iommufd.rst | 10 +++++-----
> > hw/i386/intel_iommu.c | 12 ++++++------
> > hw/i386/intel_iommu_accel.c | 6 +++---
> > tests/qtest/intel-iommu-test.c | 2 +-
> > 4 files changed, 15 insertions(+), 15 deletions(-)
> >
> >--
> >2.47.3
>
Pls go ahead.
^ permalink raw reply [flat|nested] 5+ messages in thread