[PATCH v5 0/7] introduce per-queue available descriptor threshold and host shaper

Andrew Rybchenko andrew.rybchenko at oktetlabs.ru
Wed Jun 8 11:43:41 CEST 2022


@Matan, @Viacheslav, could you review mlx5 patches of the series,
please.

On 6/7/22 15:59, Spike Du wrote:
> available descriptor threshold(ADT for short) is per RX queue attribute, when RX queue available descriptors for HW is below ADT, HW sends an event to application.
> Host shaper can configure shaper rate and avail_thresh-triggered for a host port.
> The shaper limits the rate of traffic from host port to embedded ARM rx port on Nvidia BlueField 2 NIC.
> If avail_thresh-triggered is enabled, a 100Mbps shaper is enabled automatically when one of the host port's Rx queues receives available descriptor threshold event.
> 
> These two features can combine to control traffic from host port to wire port for BlueField 2 NIC.
> The traffic flows from host to embedded ARM, then to the physical port.
> The work flow is on the ARM system, configure available descriptor threshold to RX queue and enable avail_thresh-triggered flag in host shaper, after receiving available descriptor threshold event, delay a while until RX queue is empty , then disable the shaper. We recycle this work flow to reduce RX queue drops on ARM system.
> 
> Add new libethdev API to set available descriptor threshold, add rte event RTE_ETH_EVENT_RX_AVAIL_THRESH to handle available descriptor threshold event. For host shaper, because it doesn't align to existing DPDK framework and is specific to Nvidia NIC, use PMD private API.
> 
> For integration with testpmd, put the private cmdline function and available descriptor threshold event handler in mlx5 PMD directory by adding a new file mlx5_testpmd.c. Follow David Marchand's driver specific commands framework to add mlx5 specific commands.
> 
> 
> Spike Du (7):
>    net/mlx5: add LWM support for Rxq
>    common/mlx5: share interrupt management
>    ethdev: introduce Rx queue based available descriptor threshold
>    net/mlx5: add LWM event handling support
>    net/mlx5: support Rx queue based available descriptor threshold
>    net/mlx5: add private API to config host port shaper
>    app/testpmd: add Host Shaper command




More information about the dev mailing list