On 2/1/2024 1:52 PM, skotesh...@marvell.com wrote: > From: Satha Rao <skotesh...@marvell.com> > > Existing Rx desc used count command extended to get Tx queue > used count. > testpmd> show port 0 rxq 0 desc used count > testpmd> show port 0 txq 0 desc used count > > Signed-off-by: Satha Rao <skotesh...@marvell.com> > --- > Depends-on: series-30833 ("ethdev: support Tx queue used count") > > v2: > extended rx_queue_desc_used_count command to support Tx > updated testpmd_app_ug with new command > > app/test-pmd/cmdline.c | 184 +++++++++++--------- > doc/guides/testpmd_app_ug/testpmd_funcs.rst | 10 +- > 2 files changed, 104 insertions(+), 90 deletions(-) > > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c > index f704319771..c8c88f3236 100644 > --- a/app/test-pmd/cmdline.c > +++ b/app/test-pmd/cmdline.c > @@ -12638,6 +12638,104 @@ static cmdline_parse_inst_t > cmd_show_port_supported_ptypes = { > }, > }; > > +/* *** display rx/tx queue descriptor used count *** */ > +struct cmd_show_rx_tx_queue_desc_used_count_result { > + cmdline_fixed_string_t cmd_show; > + cmdline_fixed_string_t cmd_port; > + cmdline_fixed_string_t cmd_dir; > + cmdline_fixed_string_t cmd_desc; > + cmdline_fixed_string_t cmd_used; > + cmdline_fixed_string_t cmd_count; > + portid_t cmd_pid; > + portid_t cmd_qid; > +}; > + > +static void > +cmd_show_rx_tx_queue_desc_used_count_parsed(void *parsed_result, > __rte_unused struct cmdline *cl, > + __rte_unused void *data) > +{ > + struct cmd_show_rx_tx_queue_desc_used_count_result *res = parsed_result; > + int rc; > + > + if (!strcmp(res->cmd_dir, "rxq")) { > + if (rte_eth_rx_queue_is_valid(res->cmd_pid, res->cmd_qid) != 0) > { > + fprintf(stderr, "Invalid input: port id = %d, queue id > = %d\n", > + res->cmd_pid, res->cmd_qid); > + return; > + } > + > + rc = rte_eth_rx_queue_count(res->cmd_pid, res->cmd_qid); > + if (rc < 0) { > + fprintf(stderr, "Invalid queueid = %d\n", res->cmd_qid); >
Can you please unify the error message for Rx and Tx? > + return; > + } > + printf("RxQ %d used desc count = %d\n", res->cmd_qid, rc); > + } else if (!strcmp(res->cmd_dir, "txq")) { > + if (rte_eth_tx_queue_is_valid(res->cmd_pid, res->cmd_qid) != 0) > { > + fprintf(stderr, "Invalid input: port id = %d, queue id > = %d\n", > + res->cmd_pid, res->cmd_qid); > + return; > + } > + > + rc = rte_eth_tx_queue_count(res->cmd_pid, res->cmd_qid); > + if (rc < 0) { > + fprintf(stderr, "Tx queue count get failed rc=%d > queue_id=%d\n", rc, > + res->cmd_qid); > + return; > + } > + printf("TxQ %d used desc count = %d\n", res->cmd_qid, rc); > + } > +} > + > +static cmdline_parse_token_string_t > cmd_show_rx_tx_queue_desc_used_count_show = > + TOKEN_STRING_INITIALIZER > + (struct cmd_show_rx_tx_queue_desc_used_count_result, > + cmd_show, "show"); > +static cmdline_parse_token_string_t > cmd_show_rx_tx_queue_desc_used_count_port = > + TOKEN_STRING_INITIALIZER > + (struct cmd_show_rx_tx_queue_desc_used_count_result, > + cmd_port, "port"); > +static cmdline_parse_token_num_t cmd_show_rx_tx_queue_desc_used_count_pid = > + TOKEN_NUM_INITIALIZER > + (struct cmd_show_rx_tx_queue_desc_used_count_result, > + cmd_pid, RTE_UINT16); > +static cmdline_parse_token_string_t cmd_show_rx_tx_queue_desc_used_count_dir > = > + TOKEN_STRING_INITIALIZER > + (struct cmd_show_rx_tx_queue_desc_used_count_result, > + cmd_dir, "rxq#txq"); > +static cmdline_parse_token_num_t cmd_show_rx_tx_queue_desc_used_count_qid = > + TOKEN_NUM_INITIALIZER > + (struct cmd_show_rx_tx_queue_desc_used_count_result, > + cmd_qid, RTE_UINT16); > +static cmdline_parse_token_string_t > cmd_show_rx_tx_queue_desc_used_count_desc = > + TOKEN_STRING_INITIALIZER > + (struct cmd_show_rx_tx_queue_desc_used_count_result, > + cmd_desc, "desc"); > +static cmdline_parse_token_string_t > cmd_show_rx_tx_queue_desc_used_count_used = > + TOKEN_STRING_INITIALIZER > + (struct cmd_show_rx_tx_queue_desc_used_count_result, > + cmd_count, "used"); > +static cmdline_parse_token_string_t > cmd_show_rx_tx_queue_desc_used_count_count = > + TOKEN_STRING_INITIALIZER > + (struct cmd_show_rx_tx_queue_desc_used_count_result, > + cmd_count, "count"); > +static cmdline_parse_inst_t cmd_show_rx_tx_queue_desc_used_count = { > + .f = cmd_show_rx_tx_queue_desc_used_count_parsed, > + .data = NULL, > + .help_str = "show port <port_id> rxq|txq <queue_id> desc used count", > + .tokens = { > + (void *)&cmd_show_rx_tx_queue_desc_used_count_show, > + (void *)&cmd_show_rx_tx_queue_desc_used_count_port, > + (void *)&cmd_show_rx_tx_queue_desc_used_count_pid, > + (void *)&cmd_show_rx_tx_queue_desc_used_count_dir, > + (void *)&cmd_show_rx_tx_queue_desc_used_count_qid, > + (void *)&cmd_show_rx_tx_queue_desc_used_count_desc, > + (void *)&cmd_show_rx_tx_queue_desc_used_count_used, > + (void *)&cmd_show_rx_tx_queue_desc_used_count_count, > + NULL, > + }, > +}; > + > /* *** display rx/tx descriptor status *** */ > struct cmd_show_rx_tx_desc_status_result { > cmdline_fixed_string_t cmd_show; > @@ -12745,90 +12843,6 @@ static cmdline_parse_inst_t > cmd_show_rx_tx_desc_status = { > }, > }; > > -/* *** display rx queue desc used count *** */ > -struct cmd_show_rx_queue_desc_used_count_result { > - cmdline_fixed_string_t cmd_show; > - cmdline_fixed_string_t cmd_port; > - cmdline_fixed_string_t cmd_rxq; > - cmdline_fixed_string_t cmd_desc; > - cmdline_fixed_string_t cmd_used; > - cmdline_fixed_string_t cmd_count; > - portid_t cmd_pid; > - portid_t cmd_qid; > -}; > - > -static void > -cmd_show_rx_queue_desc_used_count_parsed(void *parsed_result, > - __rte_unused struct cmdline *cl, > - __rte_unused void *data) > -{ > - struct cmd_show_rx_queue_desc_used_count_result *res = parsed_result; > - int rc; > - > - if (rte_eth_rx_queue_is_valid(res->cmd_pid, res->cmd_qid) != 0) { > - fprintf(stderr, > - "Invalid input: port id = %d, queue id = %d\n", > - res->cmd_pid, res->cmd_qid); > - return; > - } > - > - rc = rte_eth_rx_queue_count(res->cmd_pid, res->cmd_qid); > - if (rc < 0) { > - fprintf(stderr, "Invalid queueid = %d\n", res->cmd_qid); > - return; > - } > - printf("Used desc count = %d\n", rc); > -} > - > -static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_show = > - TOKEN_STRING_INITIALIZER > - (struct cmd_show_rx_queue_desc_used_count_result, > - cmd_show, "show"); > -static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_port = > - TOKEN_STRING_INITIALIZER > - (struct cmd_show_rx_queue_desc_used_count_result, > - cmd_port, "port"); > -static cmdline_parse_token_num_t cmd_show_rx_queue_desc_used_count_pid = > - TOKEN_NUM_INITIALIZER > - (struct cmd_show_rx_queue_desc_used_count_result, > - cmd_pid, RTE_UINT16); > -static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_rxq = > - TOKEN_STRING_INITIALIZER > - (struct cmd_show_rx_queue_desc_used_count_result, > - cmd_rxq, "rxq"); > -static cmdline_parse_token_num_t cmd_show_rx_queue_desc_used_count_qid = > - TOKEN_NUM_INITIALIZER > - (struct cmd_show_rx_queue_desc_used_count_result, > - cmd_qid, RTE_UINT16); > -static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_desc = > - TOKEN_STRING_INITIALIZER > - (struct cmd_show_rx_queue_desc_used_count_result, > - cmd_count, "desc"); > -static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_used = > - TOKEN_STRING_INITIALIZER > - (struct cmd_show_rx_queue_desc_used_count_result, > - cmd_count, "used"); > -static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_count = > - TOKEN_STRING_INITIALIZER > - (struct cmd_show_rx_queue_desc_used_count_result, > - cmd_count, "count"); > -static cmdline_parse_inst_t cmd_show_rx_queue_desc_used_count = { > - .f = cmd_show_rx_queue_desc_used_count_parsed, > - .data = NULL, > - .help_str = "show port <port_id> rxq <queue_id> desc used count", > - .tokens = { > - (void *)&cmd_show_rx_queue_desc_used_count_show, > - (void *)&cmd_show_rx_queue_desc_used_count_port, > - (void *)&cmd_show_rx_queue_desc_used_count_pid, > - (void *)&cmd_show_rx_queue_desc_used_count_rxq, > - (void *)&cmd_show_rx_queue_desc_used_count_qid, > - (void *)&cmd_show_rx_queue_desc_used_count_desc, > - (void *)&cmd_show_rx_queue_desc_used_count_used, > - (void *)&cmd_show_rx_queue_desc_used_count_count, > - NULL, > - }, > -}; > - > Why moving the function up, can you please keep it in same place. Also can you please update help command output in 'cmd_help_long_parsed()' function at the beggining of the file?