patches for DPDK stable branches
 help / color / mirror / Atom feed
From: "Li, Xiaoyun" <xiaoyun.li@intel.com>
To: "Xing, Beilei" <beilei.xing@intel.com>,
	"Yu, DapengX" <dapengx.yu@intel.com>,
	"Lu, Wenzhuo" <wenzhuo.lu@intel.com>,
	"Iremonger, Bernard" <bernard.iremonger@intel.com>,
	Stephen Hemminger <stephen@networkplumber.org>
Cc: "dev@dpdk.org" <dev@dpdk.org>, "stable@dpdk.org" <stable@dpdk.org>
Subject: Re: [dpdk-stable] [dpdk-dev] [PATCH] app/testpmd: avoid exit without resource release
Date: Fri, 15 Jan 2021 09:21:45 +0000
Message-ID: <CY4PR11MB175016F66482F99FD2FB98D999A70@CY4PR11MB1750.namprd11.prod.outlook.com> (raw)
In-Reply-To: <MN2PR11MB380745B4CF52902E85D25CB0F7A70@MN2PR11MB3807.namprd11.prod.outlook.com>

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 <stable-bounces@dpdk.org> On Behalf Of Xing, Beilei
> Sent: Friday, January 15, 2021 13:50
> To: Yu, DapengX <dapengx.yu@intel.com>; Lu, Wenzhuo
> <wenzhuo.lu@intel.com>; Iremonger, Bernard <bernard.iremonger@intel.com>
> Cc: Stephen Hemminger <stephen@networkplumber.org>; dev@dpdk.org;
> stable@dpdk.org
> Subject: Re: [dpdk-stable] [dpdk-dev] [PATCH] app/testpmd: avoid exit without
> resource release
> 
> > -----Original Message-----
> > From: Yu, DapengX <dapengx.yu@intel.com>
> > Sent: Friday, January 15, 2021 11:29 AM
> > To: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Xing, Beilei
> > <beilei.xing@intel.com>; Iremonger, Bernard
> > <bernard.iremonger@intel.com>
> > Cc: Yu, DapengX <dapengx.yu@intel.com>; Stephen Hemminger
> > <stephen@networkplumber.org>; dev@dpdk.org; stable@dpdk.org
> > 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:dev-bounces@dpdk.org] On Behalf Of Yu, DapengX
> > Sent: Friday, December 25, 2020 1:09 PM
> > To: Stephen Hemminger <stephen@networkplumber.org>
> > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Xing, Beilei
> > <beilei.xing@intel.com>; Iremonger, Bernard
> > <bernard.iremonger@intel.com>; dev@dpdk.org; stable@dpdk.org
> > 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:stephen@networkplumber.org]
> > Sent: Friday, December 25, 2020 11:03 AM
> > To: Yu, DapengX <dapengx.yu@intel.com>
> > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Xing, Beilei
> > <beilei.xing@intel.com>; Iremonger, Bernard
> > <bernard.iremonger@intel.com>; dev@dpdk.org; stable@dpdk.org
> > Subject: Re: [dpdk-dev] [PATCH] app/testpmd: avoid exit without
> > resource release
> >
> > On Thu, 24 Dec 2020 11:57:48 +0800
> > dapengx.yu@intel.com wrote:
> >
> > > From: YU DAPENG <dapengx.yu@intel.com>
> > >
> > > 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: stable@dpdk.org
> > >
> > > Signed-off-by: YU DAPENG <dapengx.yu@intel.com>
> >
> > 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.
> >


  parent reply	other threads:[~2021-01-15  9:21 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-24  3:57 [dpdk-stable] " dapengx.yu
2020-12-25  3:03 ` [dpdk-stable] [dpdk-dev] " Stephen Hemminger
2020-12-25  5:09   ` Yu, DapengX
2021-01-15  3:28     ` Yu, DapengX
2021-01-15  5:50       ` Xing, Beilei
2021-01-15  6:05         ` Yu, DapengX
2021-01-15  9:21         ` Li, Xiaoyun [this message]
2021-01-18 11:47           ` Yu, DapengX
2021-01-25  3:29 ` [dpdk-stable] [PATCH v2] app/testpmd: avoid exit without terminal restore dapengx.yu
2021-01-26  6:33   ` Li, Xiaoyun
2021-01-26  7:13     ` Yu, DapengX
2021-01-26  7:44     ` Yu, DapengX
2021-01-26  8:24       ` Li, Xiaoyun
2021-01-29 10:46         ` Ferruh Yigit

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=CY4PR11MB175016F66482F99FD2FB98D999A70@CY4PR11MB1750.namprd11.prod.outlook.com \
    --to=xiaoyun.li@intel.com \
    --cc=beilei.xing@intel.com \
    --cc=bernard.iremonger@intel.com \
    --cc=dapengx.yu@intel.com \
    --cc=dev@dpdk.org \
    --cc=stable@dpdk.org \
    --cc=stephen@networkplumber.org \
    --cc=wenzhuo.lu@intel.com \
    /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

patches for DPDK stable branches

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/stable/0 stable/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 stable stable/ https://inbox.dpdk.org/stable \
		stable@dpdk.org
	public-inbox-index stable

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.stable


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git