Hi Eric,

>-----Original Message-----
>From: Eric Auger <eric.au...@redhat.com>
>Subject: Re: [PATCH v1 02/15] intel_iommu: Optimize context entry cache
>utilization
>
>Hi Zhenzhong,
>
>On 6/6/25 12:04 PM, Zhenzhong Duan wrote:
>> There are many call sites referencing context entry by calling
>> vtd_dev_to_context_entry() which will traverse the DMAR table.
>>
>> In most cases we can use cached context entry in vtd_as->context_cache_entry
>> except when its entry is stale. Currently only global and domain context
>> invalidation stale it.
>>
>> So introduce a helper function vtd_as_to_context_entry() to fetch from cache
>> before trying with vtd_dev_to_context_entry().
>>
>> Signed-off-by: Zhenzhong Duan <zhenzhong.d...@intel.com>
>> ---
>>  hw/i386/intel_iommu.c | 36 +++++++++++++++++++++++-------------
>>  1 file changed, 23 insertions(+), 13 deletions(-)
>>
>> diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
>> index f0b1f90eff..a2f3250724 100644
>> --- a/hw/i386/intel_iommu.c
>> +++ b/hw/i386/intel_iommu.c
>> @@ -1597,6 +1597,22 @@ static int
>vtd_dev_to_context_entry(IntelIOMMUState *s, uint8_t bus_num,
>>      return 0;
>>  }
>>
>> +static int vtd_as_to_context_entry(VTDAddressSpace *vtd_as,
>VTDContextEntry *ce)
>> +{
>> +    IntelIOMMUState *s = vtd_as->iommu_state;
>> +    uint8_t bus_num = pci_bus_num(vtd_as->bus);
>> +    uint8_t devfn = vtd_as->devfn;
>> +    VTDContextCacheEntry *cc_entry = &vtd_as->context_cache_entry;
>> +
>> +    /* Try to fetch context-entry from cache first */
>> +    if (cc_entry->context_cache_gen == s->context_cache_gen) {
>> +        *ce = cc_entry->context_entry;
>> +        return 0;
>> +    } else {
>> +        return vtd_dev_to_context_entry(s, bus_num, devfn, ce);
>> +    }
>> +}
>> +
>While the patch looks good to me can't you use the helper also in
>vtd_do_iommu_translate()?
>See " /* Try to fetch context-entry from cache first */"

It can, but it finally calls into vtd_dev_to_context_entry() so we can call 
vtd_dev_to_context_entry() directly.
I will drop this patch following Yi's suggestion.

Thanks
Zhenzhong

Reply via email to