Using a PCie protocol analyzer to capture the TLP, it is impossible to capture the ATS request message send by CX6, and CX6 uses an unconverted address to send DMA WR/RD TLP(As shown in the figure dma_at_is_0.jpg)。In addition, we can catch the ATS Invalidation message sent by RC/TA to CX6。
By the way, we use VFIO to pass through the CX6 to QEMU for network transmission.
Hello @gulan,
Thank you for posting your query on our community. Please ensure you are following the below procedure to enable ATS:
- Ensure that the firmware is upgraded to version xx.40.1000 or later.
- Enable IOMMU in kernel parameters:
iommu=on
- Use the following commands to enable ATS in the firmware:
# mlxconfig -d <device> s ATS_ENABLED=1
- After enabling ATS, perform a system reboot for the changes to take effect.
- Verify that ATS is enabled by checking the device configuration:
# mlxconfig -d <device> q | grep ATS_ENABLED
Expected output:
ATS_ENABLED True(1)
- Check the lspci output for ATS capabilities:
# lspci -s <BDF> -vvvxxx | grep ATS
Expected output:
Capabilities: [480 v1] Address Translation Service (ATS)
ATSCap: Invalidate Queue Depth: 00
ATSCtl: Enable+, Smallest Translation Unit: 00
- Please note, that to activate ATS, a GPU direct solution must be implemented.
Thanks,
Bhargavi
1 Like