[PATCH v10 0/6] introduce per-queue available descriptor threshold and host shaper
Raslan Darawsheh
rasland at nvidia.com
Sun Jun 19 10:14:03 CEST 2022
Hi,
> -----Original Message-----
> From: Spike Du <spiked at nvidia.com>
> Sent: Thursday, June 16, 2022 11:42 AM
> To: Matan Azrad <matan at nvidia.com>; Slava Ovsiienko
> <viacheslavo at nvidia.com>; Ori Kam <orika at nvidia.com>; NBU-Contact-
> Thomas Monjalon (EXTERNAL) <thomas at monjalon.net>
> Cc: andrew.rybchenko at oktetlabs.ru; stephen at networkplumber.org;
> mb at smartsharesystems.com; dev at dpdk.org; Raslan Darawsheh
> <rasland at nvidia.com>
> Subject: [PATCH v10 0/6] introduce per-queue available descriptor threshold
> and host shaper
>
> 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 (6):
> net/mlx5: add LWM support for Rxq
> common/mlx5: share interrupt management
> 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
>
> app/test-pmd/testpmd.c | 7 +
> doc/guides/nics/mlx5.rst | 93 +++++++++
> doc/guides/rel_notes/release_22_07.rst | 2 +
> drivers/common/mlx5/linux/meson.build | 13 ++
> drivers/common/mlx5/linux/mlx5_common_os.c | 131 ++++++++++++
> drivers/common/mlx5/linux/mlx5_common_os.h | 11 +
> drivers/common/mlx5/mlx5_prm.h | 26 +++
> drivers/common/mlx5/version.map | 2 +
> drivers/common/mlx5/windows/mlx5_common_os.h | 24 +++
> drivers/net/mlx5/linux/mlx5_ethdev_os.c | 71 -------
> drivers/net/mlx5/linux/mlx5_os.c | 132 +++---------
> drivers/net/mlx5/linux/mlx5_socket.c | 53 +----
> drivers/net/mlx5/meson.build | 3 +
> drivers/net/mlx5/mlx5.c | 68 +++++++
> drivers/net/mlx5/mlx5.h | 12 +-
> drivers/net/mlx5/mlx5_devx.c | 60 +++++-
> drivers/net/mlx5/mlx5_devx.h | 1 +
> drivers/net/mlx5/mlx5_rx.c | 288
> +++++++++++++++++++++++++++
> drivers/net/mlx5/mlx5_rx.h | 13 ++
> drivers/net/mlx5/mlx5_testpmd.c | 205 +++++++++++++++++++
> drivers/net/mlx5/mlx5_testpmd.h | 26 +++
> drivers/net/mlx5/mlx5_txpp.c | 28 +--
> drivers/net/mlx5/rte_pmd_mlx5.h | 30 +++
> drivers/net/mlx5/version.map | 2 +
> drivers/net/mlx5/windows/mlx5_ethdev_os.c | 22 --
> drivers/vdpa/mlx5/mlx5_vdpa_virtq.c | 48 +----
> 26 files changed, 1063 insertions(+), 308 deletions(-) create mode 100644
> drivers/net/mlx5/mlx5_testpmd.c create mode 100644
> drivers/net/mlx5/mlx5_testpmd.h
>
> --
> 1.8.3.1
Series applied to next-net-mlx,
Kindest regards,
Raslan Darawsheh
More information about the dev
mailing list