Hello everyone,
I'm trying to use packet send scheduling [1] with DPDK 20.11 and the
MLX5 PMD (NIC: ConnectX-5 MCX516A-CDAT). This patch contains some
additional information on this feature also know as packet pacing [2].
According to MLX5's docs, packet pacing requires the "tx_pp" parameter
[3, CTRL+F: "tx_pp"]. However, when firing up testpmd with that
parameter, it fails as follows:
# dpdk-testpmd -a 81:00.0,tx_pp=500 -- -i
...
EAL: Probe PCI driver: mlx5_pci (15b3:1019) device: 0000:81:00.0 (socket 0)
mlx5_pci: WQE rate mode is required for packet pacing
mlx5_pci: probe of PCI device 0000:81:00.0 aborted after encountering an error:
No such device
common_mlx5: Failed to load driver = mlx5_pci.
EAL: Requested device 0000:81:00.0 cannot be used
The error message originates here [4] and is caused by what to me
appears to be a value read from the NIC [5]. Unfortunately, that leaves
me clueless on how to activate the required "WQE rate mode". According
to the output of ibv_devinfo, my NIC does support packet pacing:
# ibv_devinfo -v 81:00.0
...
packet_pacing_caps:
qp_rate_limit_min: 1kbps
qp_rate_limit_max: 100000000kbps
supported_qp:
SUPPORT_RAW_PACKET
I'd be grateful for any information on how to get packet pacing up and
running. Am I just missing another required option (which is not given
in the docs) or does my NIC lack packet pacing support?
Thank you very much in advance.
Best regards,
Carsten
[1]
https://doc.dpdk.org/api/rte__ethdev_8h.html#a990d8351447a710628cbb24a28d3252d
[2] https://patches.dpdk.org/patch/73742/
[3] https://doc.dpdk.org/guides/nics/mlx5.html#run-time-configuration
[4]
http://code.dpdk.org/dpdk/v20.11/source/drivers/net/mlx5/linux/mlx5_os.c#L1278
[5]
http://code.dpdk.org/dpdk/v20.11/source/drivers/common/mlx5/mlx5_devx_cmds.c#L748