how to use PASID capability on ConnectX-5 ?

I found PASID feature on ConnectX-5_EN_Card product brief. but I check MCX556A-CDAT PCIE extended configure space did not find pasid capability; So ConnectX -5 EN Card did not support PASID ? if support , how use this feature ?

Hello,

PASID is PCIE standard. Your server chipset platfrom should support IOMMU and enable it on BIOS, also kernel code need support that. That is commen kernel feature.

below is the spec of pci sig, and pasid kernel feature from kernel.org

https://pcisig.com/specifications/pciexpress/specifications/ECN-PASID-ATS-2011-03-31.pdf?speclib=pasid

https://lwn.net/Articles/747230/

I think mellanox driver should alloc pasid and establish pasid table ; then the pasid can work; So the driver support pasid? Why does the PCIE configuration space not see the pasid capability? Has anyone actually used pasid? Tell me how to use it!

As I said this is kernel feature, you need use kernel related API alloc DMA mapping. It is not driver feature. “lspci” may not show all Capabilities, also each PCI SIG version define different standerd. You can check with " hexdump /sys/bus/pci/devices/0000:04:00.0/config" dump extend config space, but decode need follow PCI SIG defined structure.

hi xiaofeng

thanks a lot!

I think kernel related API is used by driver to alloc pasid; Kernel is only provide related API; And Application combined with driver make pasid feature work;So the driver should support pasid, right?

i check extend config space and didn’t find a pasid capability ID of 001bh ;​