On Fri, Jan 14, 2022 at 3:13 PM Peter Xu <pet...@redhat.com> wrote: > > On Fri, Jan 14, 2022 at 01:58:07PM +0800, Jason Wang wrote: > > > > Right, but I think you meant to do this only when scalable mode is > > > > disabled. > > > > > > Yes IMHO it will definitely suite for !scalable case since that's exactly > > > what > > > we did before. What I'm also wondering is even if scalable is enabled > > > but no > > > "real" pasid is used, so if all the translations go through the default > > > pasid > > > that stored in the device context entry, then maybe we can ignore > > > checking it. > > > The latter is the "hacky" part mentioned above. > > > > The problem I see is that we can't know what PASID is used as default > > without reading the context entry? > > Can the default NO_PASID being used in mixture of !NO_PASID use case on the > same device? If that's possible, then I agree..
My understanding is that it is possible. > > My previous idea should be based on the fact that if NO_PASID is used on one > device, then all translations will be based on NO_PASID, but now I'm not sure > of it. Actually, what I meant is: device 1 using transactions without PASID with RID2PASID 1 device 2 using transactions without PASID with RID2PASID 2 Then we can't assume a default pasid here. > > > > > > > > > The other thing to mention is, if we postpone the iotlb lookup to be after > > > context entry, then logically we can have per-device iotlb, that means we > > > can > > > replace IntelIOMMUState.iotlb with VTDAddressSpace.iotlb in the future, > > > too, > > > which can also be more efficient. > > > > Right but we still need to limit the total slots and ATS is a better > > way to deal with the IOTLB bottleneck actually. > > I think it depends on how the iotlb ghash is implemented. Logically I think > if > we can split the cache to per-device it'll be slightly better because we don't > need to iterate over iotlbs of other devices when lookup anymore; meanwhile > each iotlb takes less space too (no devfn needed anymore). So we've already used sid in the IOTLB hash, I wonder how much we can gain form this. Thanks > > Thanks, > > -- > Peter Xu >