>-----Original Message----- >From: Eric Auger <eric.au...@redhat.com> >Subject: Re: [PATCH v5 13/21] intel_iommu: Introduce a new pasid cache >invalidation type FORCE_RESET > >Hi Zhenzhong, > >On 8/22/25 8:40 AM, Zhenzhong Duan wrote: >> FORCE_RESET is different from GLOBAL_INV which updates pasid cache if >> underlying pasid entry is still valid, it drops all the pasid caches. >> >> FORCE_RESET isn't a VTD spec defined invalidation type for pasid cache, >> only used internally in system level reset. >> >> Signed-off-by: Yi Liu <yi.l....@intel.com> >> Signed-off-by: Yi Sun <yi.y....@linux.intel.com> >> Signed-off-by: Zhenzhong Duan <zhenzhong.d...@intel.com> >> --- >> hw/i386/intel_iommu_internal.h | 9 +++++++++ >> hw/i386/intel_iommu.c | 25 +++++++++++++++++++++++++ >> hw/i386/trace-events | 1 + >> 3 files changed, 35 insertions(+) >> >> diff --git a/hw/i386/intel_iommu_internal.h >b/hw/i386/intel_iommu_internal.h >> index fb2a919e87..c510b09d1a 100644 >> --- a/hw/i386/intel_iommu_internal.h >> +++ b/hw/i386/intel_iommu_internal.h >> @@ -569,6 +569,15 @@ typedef enum VTDPCInvType { >> VTD_PASID_CACHE_DOMSI = VTD_INV_DESC_PASIDC_G_DSI, >> VTD_PASID_CACHE_PASIDSI = VTD_INV_DESC_PASIDC_G_PASID_SI, >> VTD_PASID_CACHE_GLOBAL_INV = >VTD_INV_DESC_PASIDC_G_GLOBAL, >> + >> + /* >> + * Internally used PASID cache invalidation type starts here, >> + * 0x10 is large enough as invalidation type in pc_inv_desc >> + * is 2bits in size. >> + */ >> + >> + /* Reset all PASID cache entries, used in system level reset */ >> + VTD_PASID_CACHE_FORCE_RESET = 0x10, >I am not very keen on adding such an artifical enum value that does not >exist in the spec. > >Why not simply introduce another function (instead of >vtd_flush_pasid_locked) that does the cleanup. To me it would be >cleaner. Thanks Eric
Good suggestions, will do. Thanks Zhenzhong