Hi Stephen, Do you mean this solution? 1. support atexit() in librte_eal, other component can use it to register a function to be called when rte_exit() is called. 2. in librte_cmdline, use atexit() to register a function to release resource
I am looking forward to more comments from other maintainers, since this solution will modify librte_eal and librte_cmdline, but not just testpmd app. -----Original Message----- From: Stephen Hemminger [mailto:[email protected]] Sent: Friday, December 25, 2020 11:03 AM To: Yu, DapengX <[email protected]> Cc: Lu, Wenzhuo <[email protected]>; Xing, Beilei <[email protected]>; Iremonger, Bernard <[email protected]>; [email protected]; [email protected] Subject: Re: [dpdk-dev] [PATCH] app/testpmd: avoid exit without resource release On Thu, 24 Dec 2020 11:57:48 +0800 [email protected] wrote: > From: YU DAPENG <[email protected]> > > In interactive mode, if testpmd exit by calling rte_exit without > cmdline resource release, terminal will not echo keyboard input. So > add code to just show error message, but not exit testpmd when > unexpected happens on starting packet forwarding in interactive mode. User > can type "quit" > to exit testpmd later. > > Fixes: 5a8fb55c48ab ("app/testpmd: support unidirectional > configuration") > Cc: [email protected] > > Signed-off-by: YU DAPENG <[email protected]> Sounds like a more generic problem with rte_exit and librte_cmdline. Would it better to fix it in librte_cmdline by adding an atexit() handler.

