Re: [PATCH v1] intel_iommu: Expose SMPWC when SVM is enabled
"Michael S. Tsirkin" <[email protected]> Mon, 3 Aug 2026 02:05:33 -0400
| Newsgroups | org.nongnu.qemu-devel |
|---|---|
| Message-ID | <[email protected]> |
On Mon, Aug 03, 2026 at 05:40:06AM +0000, Clément MATHIEU--DRIF wrote: > > > On Sun, 2026-08-02 at 14:53 -0400, Michael S. Tsirkin 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 Sun, Aug 02, 2026 at 04:05:08PM +0000, Clément MATHIEU--DRIF wrote: > > > > > SVM in Linux requires SMPWC as of 780dfed68862. > > > > > > And what is 780dfed68862? > > A commit in the linux tree, is there a dedicated tag for that? > > Maybe "Link: link_to_github"? https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=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 */ > > > -- > > > 2.54.0 > > > >