[PATCH v6] app/testpmd: add Host Shaper command
Singh, Aman Deep
aman.deep.singh at intel.com
Tue Jun 14 11:43:59 CEST 2022
Hi Spike,
On 6/13/2022 8:20 AM, Spike Du wrote:
> Add command line options to support host shaper configure.
> - Command syntax:
> mlx5 set port <port_id> host_shaper avail_thresh_triggered <0|1> rate
> <rate_num>
>
> - Example commands:
> To enable avail_thresh_triggered on port 1 and disable current host
> shaper:
> testpmd> mlx5 set port 1 host_shaper avail_thresh_triggered 1 rate 0
>
> To disable avail_thresh_triggered and current host shaper on port 1:
> testpmd> mlx5 set port 1 host_shaper avail_thresh_triggered 0 rate 0
>
> The rate unit is 100Mbps.
> To disable avail_thresh_triggered and configure a shaper of 5Gbps on
> port 1:
> testpmd> mlx5 set port 1 host_shaper avail_thresh_triggered 0 rate 50
>
> Add sample code to handle rxq available descriptor threshold event, it
> delays a while so that rxq empties, then disables host shaper and
> rearms available descriptor threshold event.
>
> Signed-off-by: Spike Du <spiked at nvidia.com>
> ---
> app/test-pmd/testpmd.c | 11 +++
> doc/guides/nics/mlx5.rst | 46 +++++++++
> drivers/net/mlx5/meson.build | 4 +
> drivers/net/mlx5/mlx5_testpmd.c | 206 ++++++++++++++++++++++++++++++++++++++++
> drivers/net/mlx5/mlx5_testpmd.h | 26 +++++
> 5 files changed, 293 insertions(+)
> create mode 100644 drivers/net/mlx5/mlx5_testpmd.c
> create mode 100644 drivers/net/mlx5/mlx5_testpmd.h
>
> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
> index 33d9b85..e1ac75a 100644
> --- a/app/test-pmd/testpmd.c
> +++ b/app/test-pmd/testpmd.c
> @@ -69,6 +69,9 @@
> #ifdef RTE_NET_BOND
> #include <rte_eth_bond.h>
> #endif
> +#ifdef RTE_NET_MLX5
> +#include "mlx5_testpmd.h"
> +#endif
>
> #include "testpmd.h"
>
> @@ -3659,6 +3662,14 @@ struct pmd_test_command {
> break;
> printf("Received avail_thresh event, port:%d rxq_id:%d\n",
> port_id, rxq_id);
> +
> + struct rte_eth_dev_info dev_info;
> + if (rte_eth_dev_info_get(port_id, &dev_info) != 0 ||
> + (strncmp(dev_info.driver_name, "mlx5", 4) != 0))
> + printf("%s\n", dev_info.driver_name);
> +#ifdef RTE_NET_MLX5
> + mlx5_test_avail_thresh_event_handler(port_id, rxq_id);
> +#endif
> }
Wanted to check the intend of above "if-statement". Currently i think only print() is dependent on it.
Do we want to call mlx5 event_handler, only if driver_name is mlx5 ?
> break;
> default:
>
<snip>
More information about the dev
mailing list