Skip to content

RFC net/mlx5: introduce limit watermark and host shaper

Spike Du dpdk-dev 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 RFC Latest6 patches 5 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/6net/mlx5: add LWM support for Rxqdrivers/net/mlx5/mlx5.h drivers/net/mlx5/mlx5_devx.c drivers/net/mlx5/mlx5_devx.h +1 more+12 -1119 replies
2/6common/mlx5: share interrupt managementdrivers/common/mlx5/linux/mlx5_common_os.c drivers/common/mlx5/linux/mlx5_common_os.h drivers/common/mlx5/version.map +8 more+217 -3120 replies
3/6net/mlx5: add LWM event handling supportdrivers/net/mlx5/mlx5.c drivers/net/mlx5/mlx5.h drivers/net/mlx5/mlx5_devx.c +2 more+151 -00 replies
4/6net/mlx5: add private API to configure Rxq LWMdoc/guides/nics/mlx5.rst doc/guides/rel_notes/release_22_03.rst drivers/common/mlx5/mlx5_prm.h +4 more+132 -10 replies
5/6net/mlx5: add private API to config host port shaperdoc/guides/nics/mlx5.rst doc/guides/rel_notes/release_22_03.rst drivers/common/mlx5/linux/meson.build +5 more+187 -40 replies
6/6app/testpmd: add LWM and Host Shaper commandapp/test-pmd/cmdline.c app/test-pmd/config.c app/test-pmd/meson.build +3 more+358 -00 replies

Reviews trailers per patch

1 of 6 patches has a Reviewed-by or Acked-by.

PatchRay KinsellaThomas MonjalonMatan Azrad
1/6A-b A-b A-b Series-acked-by A-b A-b A-b A-b A-b A-b A-b
2/6
3/6
4/6
5/6
6/6

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.

Read the v1 thread

Cover letter [RFC 0/6] net/mlx5: introduce limit watermark and host shaper

LWM(limit watermark) is per RX queue attribute, when RX queue fullness reach the LWM limit, HW sends an event to dpdk application.
Host shaper can configure shaper rate and lwm-triggered for a host port. The shaper limits the rate of traffic from host port to wire port. If lwm-triggered is enabled, a 100Mbps shaper is enabled automatically when one of the host port's Rx queues receives LWM event.

These two features can combine to control traffic from host port to wire port. The work flow is configure LWM to RX queue and enable lwm-triggered flag in host shaper, after receiving LWM event, delay a while until RX queue is empty , then disable the shaper. We recycle this work flow to reduce RX queue drops.

Spike Du (6):
net/mlx5: add LWM support for Rxq common/mlx5: share interrupt management net/mlx5: add LWM event handling support net/mlx5: add private API to configure Rxq LWM net/mlx5: add private API to config host port shaper app/testpmd: add LWM and Host Shaper command

 app/test-pmd/cmdline.c                       | 149 ++++++++++++++++++
 app/test-pmd/config.c                        | 122 +++++++++++++++
 app/test-pmd/meson.build                     |   3 +
 app/test-pmd/testpmd.c                       |   3 +
 app/test-pmd/testpmd.h                       |   5 +
 doc/guides/nics/mlx5.rst                     |  87 +++++++++++
 doc/guides/rel_notes/release_22_03.rst       |   7 +
 drivers/common/mlx5/linux/meson.build        |  21 ++-
 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              |   3 +-
 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/mlx5.c                      |  61 ++++++++
 drivers/net/mlx5/mlx5.h                      |  12 +-
 drivers/net/mlx5/mlx5_devx.c                 |  57 ++++++-
 drivers/net/mlx5/mlx5_devx.h                 |   1 +
 drivers/net/mlx5/mlx5_rx.c                   | 221 ++++++++++++++++++++++++++-
 drivers/net/mlx5/mlx5_rx.h                   |   9 ++
 drivers/net/mlx5/mlx5_txpp.c                 |  28 +---
 drivers/net/mlx5/rte_pmd_mlx5.h              |  62 ++++++++
 drivers/net/mlx5/version.map                 |   2 +
 drivers/net/mlx5/windows/mlx5_ethdev_os.c    |  22 ---
 drivers/vdpa/mlx5/mlx5_vdpa_virtq.c          |  52 +------
 27 files changed, 1057 insertions(+), 318 deletions(-)
Signature · 1 line
1.8.3.1