Skip to content

Commit

Permalink
app/testpmd: fix forward lcores number for DCB
Browse files Browse the repository at this point in the history
[ upstream commit 9ee7d02 ]

For the DCB forwarding test, each core is assigned to each traffic class.
Number of forwarding cores for DCB test must be equal or less than number
of total TC. Otherwise, the following problems may occur:
1/ Redundant polling threads will be created when forwarding cores number
   is greater than total TC number.
2/ Two cores would try to use a same queue on a port when Rx/Tx queue
   number is greater than the used TC number, which is not allowed.

Fixes: 900550d ("app/testpmd: add dcb support")
Fixes: ce8d561 ("app/testpmd: add port configuration settings")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Lijun Ou <oulijun@huawei.com>
Acked-by: Xiaoyun Li <xiaoyun.li@intel.com>
  • Loading branch information
LiHuiSong1 authored and steevenlee committed Jun 8, 2021
1 parent 9874e06 commit 95d258a
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions app/test-pmd/config.c
Expand Up @@ -3153,6 +3153,21 @@ rss_fwd_config_setup(void)
}
}

static uint16_t
get_fwd_port_total_tc_num(void)
{
struct rte_eth_dcb_info dcb_info;
uint16_t total_tc_num = 0;
unsigned int i;

for (i = 0; i < nb_fwd_ports; i++) {
(void)rte_eth_dev_get_dcb_info(fwd_ports_ids[i], &dcb_info);
total_tc_num += dcb_info.nb_tcs;
}

return total_tc_num;
}

/**
* For the DCB forwarding test, each core is assigned on each traffic class.
*
Expand All @@ -3172,12 +3187,16 @@ dcb_fwd_config_setup(void)
lcoreid_t lc_id;
uint16_t nb_rx_queue, nb_tx_queue;
uint16_t i, j, k, sm_id = 0;
uint16_t total_tc_num;
uint8_t tc = 0;

cur_fwd_config.nb_fwd_lcores = (lcoreid_t) nb_fwd_lcores;
cur_fwd_config.nb_fwd_ports = nb_fwd_ports;
cur_fwd_config.nb_fwd_streams =
(streamid_t) (nb_rxq * cur_fwd_config.nb_fwd_ports);
total_tc_num = get_fwd_port_total_tc_num();
if (cur_fwd_config.nb_fwd_lcores > total_tc_num)
cur_fwd_config.nb_fwd_lcores = total_tc_num;

/* reinitialize forwarding streams */
init_fwd_streams();
Expand Down

0 comments on commit 95d258a

Please sign in to comment.