DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Ma, LihongX" <lihongx.ma@intel.com>
To: "Burakov, Anatoly" <anatoly.burakov@intel.com>,
	"dev@dpdk.org" <dev@dpdk.org>
Cc: "Hunt, David" <david.hunt@intel.com>,
	"stable@dpdk.org" <stable@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH v3] l3fwd-power: add Rx interrupt timeout
Date: Fri, 8 May 2020 01:50:42 +0000	[thread overview]
Message-ID: <f27abec65f3a43da9b525a78f3109a54@intel.com> (raw)
In-Reply-To: <11d12e160790fbf3e6d1abae121c33e82bd18d8c.1588848367.git.anatoly.burakov@intel.com>

Tested-by:ma,lihong<lihongx.ma@intel.com>

Regards,
Ma,lihong

-----Original Message-----
From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Anatoly Burakov
Sent: Thursday, May 7, 2020 6:46 PM
To: dev@dpdk.org
Cc: Hunt, David <david.hunt@intel.com>; stable@dpdk.org
Subject: [dpdk-dev] [PATCH v3] l3fwd-power: add Rx interrupt timeout

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. Additionally, remove the log message to avoid spamming about entering interrupt mode.

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

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: David Hunt <david.hunt@intel.com>
---

Notes:
    v3:
    - Turns out that log message was important, so
      bring it back, but prevent spam
    v2:
    - Remove log spam

 examples/l3fwd-power/main.c | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c index 293b3da4ae..23685c48fc 100644
--- a/examples/l3fwd-power/main.c
+++ b/examples/l3fwd-power/main.c
@@ -823,17 +823,24 @@ power_freq_scaleup_heuristic(unsigned lcore_id,  static int  sleep_until_rx_interrupt(int num)  {
+	/*
+	 * we want to track when we are woken up by traffic so that we can go
+	 * back to sleep again without log spamming.
+	 */
+	static bool timeout;
 	struct rte_epoll_event event[num];
 	int n, i;
 	uint16_t port_id;
 	uint8_t queue_id;
 	void *data;
 
-	RTE_LOG(INFO, L3FWD_POWER,
-		"lcore %u sleeps until interrupt triggers\n",
-		rte_lcore_id());
+	if (!timeout) {
+		RTE_LOG(INFO, L3FWD_POWER,
+				"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; @@ -844,6 +851,7 @@ sleep_until_rx_interrupt(int num)
 			" port %d queue %d\n",
 			rte_lcore_id(), port_id, queue_id);
 	}
+	timeout = n == 0;
 
 	return 0;
 }
@@ -1306,7 +1314,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

  reply	other threads:[~2020-05-08  1:50 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-29 12:21 [dpdk-dev] [PATCH] " 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 [this message]
2020-05-11 19:35     ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f27abec65f3a43da9b525a78f3109a54@intel.com \
    --to=lihongx.ma@intel.com \
    --cc=anatoly.burakov@intel.com \
    --cc=david.hunt@intel.com \
    --cc=dev@dpdk.org \
    --cc=stable@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).