Hi Actually, you can just type "stty echo" to solve the problem you met.
But anyway, if you want to fix it in DPDK I think you misunderstood stephan's solution. You don't need to implement atexit() yourself in eal. It's a common function like exit() in rte_exit(). Then when exit() is called. Each function registered by atexit() will be called in stack order. The simplest way to solve this problem is to register a function with atexit() in prompt() in each app which uses cmdline. Then when exit() in rte_exit() is called, the registered clean function will be called directly. Registering in prompt() is because that prompt() is the function which starts cmdline in each app. @Stephen Hemminger What do you think of this about atexit() in prompt() in each app? I understand it's cmdline and rte_exit problem. But atexit needs a function without parameters. And the cleanup for cmdline is cmdline_stdin_exit(struct cmdline *cl) which needs cmdline as the parameter to restore original terminal setting. Setting a global value will be too ugly to me. BRs Xiaoyun > -----Original Message----- > From: stable <[email protected]> On Behalf Of Xing, Beilei > Sent: Friday, January 15, 2021 13:50 > To: Yu, DapengX <[email protected]>; Lu, Wenzhuo > <[email protected]>; Iremonger, Bernard <[email protected]> > Cc: Stephen Hemminger <[email protected]>; [email protected]; > [email protected] > Subject: Re: [dpdk-stable] [dpdk-dev] [PATCH] app/testpmd: avoid exit without > resource release > > > -----Original Message----- > > From: Yu, DapengX <[email protected]> > > Sent: Friday, January 15, 2021 11:29 AM > > To: Lu, Wenzhuo <[email protected]>; Xing, Beilei > > <[email protected]>; Iremonger, Bernard > > <[email protected]> > > Cc: Yu, DapengX <[email protected]>; Stephen Hemminger > > <[email protected]>; [email protected]; [email protected] > > Subject: RE: [dpdk-dev] [PATCH] app/testpmd: avoid exit without > > resource release > > > > Hi Wenzhuo, Beilei, Bernard > > > > I need testpmd app maintainers' comment : > > Do you prefer the simple solution in this patch or Stephen's > > comprehensive and generic solution(which will modify librte_cmdline, > > testpmd (and maybe rte_exit()))? > > The patch just workarounds a specific case, the issue exits in many cases, > such > as Rxonly mode and Rxq is 0. > So It's better to investigate how to solve the generic problem according to > Stephen's comments. > > > So I can continue resolving the defect. > > > > Thanks! > > > > -----Original Message----- > > From: dev [mailto:[email protected]] On Behalf Of Yu, DapengX > > Sent: Friday, December 25, 2020 1:09 PM > > To: Stephen Hemminger <[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 > > > > 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. > >

