From: Kathleen Capella Date: Thu, 8 Apr 2021 21:35:49 +0000 (+0000) Subject: examples/l3fwd: skip Tx queue drain on first iteration X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=a8f8b672d575;p=dpdk.git examples/l3fwd: skip Tx queue drain on first iteration Initialize prev_tsc to cur_tsc. This avoids running the TX queue drain in the first iteration of the packet processing loop. Signed-off-by: Kathleen Capella Reviewed-by: Honnappa Nagarahalli --- diff --git a/examples/l3fwd/l3fwd_em.c b/examples/l3fwd/l3fwd_em.c index 9996bfba34..01f8dff485 100644 --- a/examples/l3fwd/l3fwd_em.c +++ b/examples/l3fwd/l3fwd_em.c @@ -629,8 +629,6 @@ em_main_loop(__rte_unused void *dummy) const uint64_t drain_tsc = (rte_get_tsc_hz() + US_PER_S - 1) / US_PER_S * BURST_TX_DRAIN_US; - prev_tsc = 0; - lcore_id = rte_lcore_id(); qconf = &lcore_conf[lcore_id]; @@ -650,9 +648,10 @@ em_main_loop(__rte_unused void *dummy) lcore_id, portid, queueid); } - while (!force_quit) { + cur_tsc = rte_rdtsc(); + prev_tsc = cur_tsc; - cur_tsc = rte_rdtsc(); + while (!force_quit) { /* * TX burst queue drain @@ -692,6 +691,8 @@ em_main_loop(__rte_unused void *dummy) portid, qconf); #endif } + + cur_tsc = rte_rdtsc(); } return 0; diff --git a/examples/l3fwd/l3fwd_lpm.c b/examples/l3fwd/l3fwd_lpm.c index 3dcf1fef18..375746fef0 100644 --- a/examples/l3fwd/l3fwd_lpm.c +++ b/examples/l3fwd/l3fwd_lpm.c @@ -185,8 +185,6 @@ lpm_main_loop(__rte_unused void *dummy) const uint64_t drain_tsc = (rte_get_tsc_hz() + US_PER_S - 1) / US_PER_S * BURST_TX_DRAIN_US; - prev_tsc = 0; - lcore_id = rte_lcore_id(); qconf = &lcore_conf[lcore_id]; @@ -206,9 +204,10 @@ lpm_main_loop(__rte_unused void *dummy) lcore_id, portid, queueid); } - while (!force_quit) { + cur_tsc = rte_rdtsc(); + prev_tsc = cur_tsc; - cur_tsc = rte_rdtsc(); + while (!force_quit) { /* * TX burst queue drain @@ -249,6 +248,8 @@ lpm_main_loop(__rte_unused void *dummy) portid, qconf); #endif /* X86 */ } + + cur_tsc = rte_rdtsc(); } return 0;