On 18 September 2017 at 11:40, Phil Yang <phil.y...@arm.com> wrote: > While running testpmd in container with stats-period option, it can't > quit normally after received SIGINT. > > Signed-off-by: Phil Yang <phil.y...@arm.com> > --- > 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 >