All of lore.kernel.org
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] l3fwd-power: add Rx interrupt timeout
@ 2020-04-29 12:21 Anatoly Burakov
  2020-04-29 12:27 ` Hunt, David
  2020-04-30 10:49 ` [dpdk-dev] [PATCH v2] " Anatoly Burakov
  0 siblings, 2 replies; 7+ messages in thread
From: Anatoly Burakov @ 2020-04-29 12:21 UTC (permalink / raw)
  To: dev; +Cc: David Hunt, stable

Currently, thread waiting on an interrupt does not have a timeout, so
it will not ever wake up until traffic arrives. This means that, when
time comes to exit the application, it will not quit unless there
happens to be traffic coming in and waking up the thread from sleep.

Fix it so that the interrupt thread sleeps for 10ms before waking up
and attempting to poll again.

Fixes: 613ce6691c0d ("examples/l3fwd-power: implement proper shutdown")
Cc: stable@dpdk.org

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 examples/l3fwd-power/main.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c
index 293b3da4ae..4112bbbee4 100644
--- a/examples/l3fwd-power/main.c
+++ b/examples/l3fwd-power/main.c
@@ -833,7 +833,7 @@ sleep_until_rx_interrupt(int num)
 		"lcore %u sleeps until interrupt triggers\n",
 		rte_lcore_id());
 
-	n = rte_epoll_wait(RTE_EPOLL_PER_THREAD, event, num, -1);
+	n = rte_epoll_wait(RTE_EPOLL_PER_THREAD, event, num, 10);
 	for (i = 0; i < n; i++) {
 		data = event[i].epdata.data;
 		port_id = ((uintptr_t)data) >> CHAR_BIT;
@@ -1306,7 +1306,8 @@ main_loop(__rte_unused void *dummy)
 					/**
 					 * start receiving packets immediately
 					 */
-					goto start_rx;
+					if (likely(!is_done()))
+						goto start_rx;
 				}
 			}
 			stats[lcore_id].sleep_time += lcore_idle_hint;
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-05-11 19:35 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-29 12:21 [dpdk-dev] [PATCH] l3fwd-power: add Rx interrupt timeout Anatoly Burakov
2020-04-29 12:27 ` Hunt, David
2020-04-30 10:49 ` [dpdk-dev] [PATCH v2] " Anatoly Burakov
2020-04-30 13:08   ` Hunt, David
2020-05-07 10:46   ` [dpdk-dev] [PATCH v3] " Anatoly Burakov
2020-05-08  1:50     ` Ma, LihongX
2020-05-11 19:35     ` Thomas Monjalon

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.