> From: Jason Wang
> Sent: Monday, March 21, 2022 1:54 PM
> 
> This patch introduce ECAP_PASID via "x-pasid-mode". Based on the
> existing support for scalable mode, we need to implement the following
> missing parts:
> 
> 1) tag VTDAddressSpace with PASID and support IOMMU/DMA translation
>    with PASID
> 2) tag IOTLB with PASID

and invalidate desc to flush PASID iotlb, which seems missing in this patch.

> 3) PASID cache and its flush
> 4) Fault recording with PASID
> 
> For simplicity:
> 
> 1) PASID cache is not implemented so we can simply implement the PASID
> cache flush as a nop.
> 2) Fault recording with PASID is not supported, NFR is not changed.
> 
> All of the above is not mandatory and could be implemented in the
> future.

PASID cache is optional, but fault recording with PASID is required.
I'm fine with adding it incrementally but want to clarify the concept first.

> 
> Note that though PASID based IOMMU translation is ready but no device
> can issue PASID DMA right now. In this case, PCI_NO_PASID is used as
> PASID to identify the address w/ PASID. vtd_find_add_as() has been
> extended to provision address space with PASID which could be utilized
> by the future extension of PCI core to allow device model to use PASID
> based DMA translation.

I didn't get the point of PCI_NO_PASID. How is it different from RID_PASID?
Can you enlighten?

> 
> This feature would be useful for:
> 
> 1) prototyping PASID support for devices like virtio
> 2) future vPASID work
> 3) future PRS and vSVA work

Haven't got time to look at the code in detail. stop here. 

Thanks
Kevin

Reply via email to