Hi,

> -----Original Message-----
> From: Spike Du <spi...@nvidia.com>
> Sent: Thursday, June 16, 2022 11:42 AM
> To: Matan Azrad <ma...@nvidia.com>; Slava Ovsiienko
> <viachesl...@nvidia.com>; Ori Kam <or...@nvidia.com>; NBU-Contact-
> Thomas Monjalon (EXTERNAL) <tho...@monjalon.net>
> Cc: andrew.rybche...@oktetlabs.ru; step...@networkplumber.org;
> m...@smartsharesystems.com; dev@dpdk.org; Raslan Darawsheh
> <rasl...@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

Reply via email to