On 2016-05-21 18:19, Aviv B.D wrote: > From: "Aviv Ben-David" <bd.a...@gmail.com> > > This flag tells the guest to invalidate tlb cache also after unmap operations. > > Signed-off-by: Aviv Ben-David <bd.a...@gmail.com> > --- > 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 347718f..1af8da8 100644 > --- a/hw/i386/intel_iommu.c > +++ b/hw/i386/intel_iommu.c > @@ -1949,7 +1949,8 @@ static void vtd_init(IntelIOMMUState *s) > s->iq_last_desc_type = VTD_INV_DESC_NONE; > s->next_frcd_reg = 0; > s->cap = VTD_CAP_FRO | VTD_CAP_NFR | VTD_CAP_ND | VTD_CAP_MGAW | > - VTD_CAP_SAGAW | VTD_CAP_MAMV | VTD_CAP_PSI | VTD_CAP_SLLPS; > + VTD_CAP_SAGAW | VTD_CAP_MAMV | VTD_CAP_PSI | VTD_CAP_SLLPS | > + VTD_CAP_CM;
Again, needs to be optional because not all guests will support it or behave differently when it's set (I've one that refuses to work). Jan > s->ecap = VTD_ECAP_QI | VTD_ECAP_IRO; > > vtd_reset_context_cache(s); > diff --git a/hw/i386/intel_iommu_internal.h b/hw/i386/intel_iommu_internal.h > index e5f514c..ae40f73 100644 > --- a/hw/i386/intel_iommu_internal.h > +++ b/hw/i386/intel_iommu_internal.h > @@ -190,6 +190,7 @@ > #define VTD_CAP_MAMV (VTD_MAMV << 48) > #define VTD_CAP_PSI (1ULL << 39) > #define VTD_CAP_SLLPS ((1ULL << 34) | (1ULL << 35)) > +#define VTD_CAP_CM (1ULL << 7) > > /* Supported Adjusted Guest Address Widths */ > #define VTD_CAP_SAGAW_SHIFT 8 >
signature.asc
Description: OpenPGP digital signature