All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Zhenzhong Duan <zhenzhong.duan@intel.com>
Cc: qemu-devel@nongnu.org, mst@redhat.com, jasowang@redhat.com,
	clg@redhat.com, nathanc@nvidia.com, "Yi Liu" <yi.l.liu@intel.com>,
	"Clément Mathieu--Drif" <clement.mathieu--drif@bull.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Peter Xu" <peterx@redhat.com>
Subject: Re: [PATCH] intel_iommu: Remove 'x-' prefix from 'x-scalable-mode' and 'x-flts' properties
Date: Mon, 9 Mar 2026 13:49:11 +0000	[thread overview]
Message-ID: <aa7P13u3yconC_JU@redhat.com> (raw)
In-Reply-To: <20260309092027.404489-1-zhenzhong.duan@intel.com>

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 :|



  parent reply	other threads:[~2026-03-09 13:49 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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é [this message]
2026-03-09 15:21   ` Peter Xu
2026-03-10  5:55   ` Duan, Zhenzhong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aa7P13u3yconC_JU@redhat.com \
    --to=berrange@redhat.com \
    --cc=clement.mathieu--drif@bull.com \
    --cc=clg@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=mst@redhat.com \
    --cc=nathanc@nvidia.com \
    --cc=pbonzini@redhat.com \
    --cc=peterx@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=yi.l.liu@intel.com \
    --cc=zhenzhong.duan@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.