From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jianbo Liu Subject: Re: [PATCH] app/testpmd: fix stats period can't quit normally in container Date: Thu, 21 Sep 2017 16:32:12 +0800 Message-ID: References: <1505706058-1841-1-git-send-email-phil.yang@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Cc: dev@dpdk.org, nd@arm.com To: Phil Yang Return-path: Received: from mail-wm0-f48.google.com (mail-wm0-f48.google.com [74.125.82.48]) by dpdk.org (Postfix) with ESMTP id 9B180199A9 for ; Thu, 21 Sep 2017 10:32:13 +0200 (CEST) Received: by mail-wm0-f48.google.com with SMTP id r68so13303196wmg.3 for ; Thu, 21 Sep 2017 01:32:13 -0700 (PDT) In-Reply-To: <1505706058-1841-1-git-send-email-phil.yang@arm.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 18 September 2017 at 11:40, Phil Yang wrote: > While running testpmd in container with stats-period option, it can't > quit normally after received SIGINT. > > Signed-off-by: Phil Yang > --- > app/test-pmd/testpmd.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c > index e097ee0..d94c63b 100644 > --- a/app/test-pmd/testpmd.c > +++ b/app/test-pmd/testpmd.c > @@ -183,6 +183,7 @@ uint16_t mbuf_data_size = DEFAULT_MBUF_DATA_SIZE; /**< Mbuf data space size. */ > uint32_t param_total_num_mbufs = 0; /**< number of mbufs in all pools - if > * specified on command-line. */ > uint16_t stats_period; /**< Period to show statistics (disabled by default) */ > +uint8_t f_quit; /* Receive LSC INTERRUPTION to stop show statistics periodically */ The comment seems wrong, as it's not related to LSC. > /* > * Configuration of packet segments used by the "txonly" processing engine. > */ > @@ -2285,6 +2286,8 @@ init_port(void) > static void > force_quit(void) > { > + f_quit = 1; I suggest moving this line to the bottom of this function. > + > pmd_test_exit(); > prompt_exit(); > } > @@ -2441,10 +2444,13 @@ main(int argc, char** argv) > uint64_t prev_time = 0, cur_time, diff_time = 0; > uint64_t timer_period; > > + /* Receive LSC interrupt to stop showing statistics period */ > + f_quit = 0; > + > /* Convert to number of cycles */ > timer_period = stats_period * rte_get_timer_hz(); > > - while (1) { > + while (!f_quit) { > cur_time = rte_get_timer_cycles(); > diff_time += cur_time - prev_time; > > -- > 2.7.4 >