> > This patch aligns the l3fwd FIB code with the changes made to LPM in > commit 74fb854a3de6 ("examples/l3fwd: remove useless reloads in LPM > main loop"). > This change ensures the compiler knows that the lcore config variables > are constant values and the compiler will then optimize the code > accordingly. > > Signed-off-by: Conor Walsh <conor.wa...@intel.com> > --- > examples/l3fwd/l3fwd_fib.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/examples/l3fwd/l3fwd_fib.c b/examples/l3fwd/l3fwd_fib.c > index 1787229942..d083ddfdd5 100644 > --- a/examples/l3fwd/l3fwd_fib.c > +++ b/examples/l3fwd/l3fwd_fib.c > @@ -182,14 +182,16 @@ fib_main_loop(__rte_unused void *dummy) > lcore_id = rte_lcore_id(); > qconf = &lcore_conf[lcore_id]; > > - if (qconf->n_rx_queue == 0) { > + const uint16_t n_rx_q = qconf->n_rx_queue; > + const uint16_t n_tx_p = qconf->n_tx_port; > + if (n_rx_q == 0) { > RTE_LOG(INFO, L3FWD, "lcore %u has nothing to do\n", lcore_id); > return 0; > } > > RTE_LOG(INFO, L3FWD, "entering main loop on lcore %u\n", lcore_id); > > - for (i = 0; i < qconf->n_rx_queue; i++) { > + for (i = 0; i < n_rx_q; i++) { > > portid = qconf->rx_queue_list[i].port_id; > queueid = qconf->rx_queue_list[i].queue_id; > @@ -207,7 +209,7 @@ fib_main_loop(__rte_unused void *dummy) > diff_tsc = cur_tsc - prev_tsc; > if (unlikely(diff_tsc > drain_tsc)) { > > - for (i = 0; i < qconf->n_tx_port; ++i) { > + for (i = 0; i < n_tx_p; ++i) { > portid = qconf->tx_port_id[i]; > if (qconf->tx_mbufs[portid].len == 0) > continue; > @@ -221,7 +223,7 @@ fib_main_loop(__rte_unused void *dummy) > } > > /* Read packet from RX queues. */ > - for (i = 0; i < qconf->n_rx_queue; ++i) { > + for (i = 0; i < n_rx_q; ++i) { > portid = qconf->rx_queue_list[i].port_id; > queueid = qconf->rx_queue_list[i].queue_id; > nb_rx = rte_eth_rx_burst(portid, queueid, pkts_burst, > --
Acked-by: Konstantin Ananyev <konstantin.anan...@intel.com> > 2.25.1