Re: [PATCH v1] intel_iommu: Expose SMPWC when SVM is enabled
Clément MATHIEU--DRIF <[email protected]> Tue, 4 Aug 2026 11:09:44 +0000
| Newsgroups | org.nongnu.qemu-devel |
|---|---|
| Message-ID | <[email protected]> |
On Tue, 2026-08-04 at 16:51 +0800, Yi Liu wrote: > Caution: External email. Do not open attachments or click links, unless this email comes from a known sender and you know the content is safe. > > > On 8/3/26 00:47, Michael S. Tsirkin wrote: > > > On Sun, Aug 02, 2026 at 04:05:08PM +0000, Clément MATHIEU--DRIF wrote: > > > > > SVM in Linux requires SMPWC as of 780dfed68862. This is free in the > > > current implementation as it is already in line with the expected > > > behaviour. > > > > > > Signed-off-by: Clement Mathieu--Drif <[[email protected]](mailto:[email protected])> > > > --- > > > hw/i386/intel_iommu.c | 3 ++- > > > hw/i386/intel_iommu_internal.h | 1 + > > > 2 files changed, 3 insertions(+), 1 deletion(-) > > > > > > diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c > > > index 8245452d89..9f21622a4f 100644 > > > --- a/hw/i386/intel_iommu.c > > > +++ b/hw/i386/intel_iommu.c > > > @@ -5108,7 +5108,8 @@ static void vtd_init(IntelIOMMUState *s) > > > } > > > > > > if (s->svm) { > > > - s->ecap |= VTD_ECAP_PRS | VTD_ECAP_PDS | VTD_ECAP_NWFS; > > > + s->ecap |= VTD_ECAP_PRS | VTD_ECAP_PDS | VTD_ECAP_NWFS | > > > + VTD_ECAP_SMPWCS; > > > } > > > > > > vtd_reset_caches(s); > > > diff --git a/hw/i386/intel_iommu_internal.h b/hw/i386/intel_iommu_internal.h > > > index 924e91cb8a..df7a0efa6e 100644 > > > --- a/hw/i386/intel_iommu_internal.h > > > +++ b/hw/i386/intel_iommu_internal.h > > > @@ -202,6 +202,7 @@ > > > #define VTD_ECAP_SMTS (1ULL << 43) > > > #define VTD_ECAP_SSTS (1ULL << 46) > > > #define VTD_ECAP_FSTS (1ULL << 47) > > > +#define VTD_ECAP_SMPWCS (1ULL << 48) > > > > > > /* CAP_REG */ > > > /* (offset >> 4) << 24 */ > > > > > > Any cross version migration concerns with this one? > > > this bit is exposed when the svm flag is set. This flag was introduced > by the below commit and controlled by a 'svm' option. So looks like this > change is ok from the migration perspective? I came to the same conclusion. Thanks > > > 952e1a6e90eb22a6deffa4e980277b135e9d077f > > @@ -4186,6 +4188,7 @@ static const Property vtd_properties[] = { > DEFINE_PROP_BOOL("x-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), > DEFINE_PROP_BOOL("dma-drain", IntelIOMMUState, dma_drain, true), > DEFINE_PROP_BOOL("stale-tm", IntelIOMMUState, stale_tm, false), > DEFINE_PROP_BOOL("fs1gp", IntelIOMMUState, fs1gp, true), >