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

Reply via email to