From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
To: "Eads, Gage" <gage.eads@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
"Richardson, Bruce" <bruce.richardson@intel.com>,
"Van Haaren, Harry" <harry.van.haaren@intel.com>,
Hemant Agrawal <hemant.agrawal@nxp.com>,
Nipun Gupta <nipun.gupta@nxp.com>,
"Rao, Nikhil" <nikhil.rao@intel.com>,
Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>,
Thomas Monjalon <thomas@monjalon.net>
Subject: Re: [PATCH] eventdev: remove experimental label
Date: Thu, 2 Nov 2017 09:41:53 +0530 [thread overview]
Message-ID: <20171102041152.GA2107@jerin> (raw)
In-Reply-To: <9184057F7FC11744A2107296B6B8EB1E1400FA36@FMSMSX108.amr.corp.intel.com>
-----Original Message-----
> Date: Wed, 1 Nov 2017 14:12:59 +0000
> From: "Eads, Gage" <gage.eads@intel.com>
> To: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> CC: "dev@dpdk.org" <dev@dpdk.org>, "Richardson, Bruce"
> <bruce.richardson@intel.com>, "Van Haaren, Harry"
> <harry.van.haaren@intel.com>, Hemant Agrawal <hemant.agrawal@nxp.com>,
> Nipun Gupta <nipun.gupta@nxp.com>, "Rao, Nikhil" <nikhil.rao@intel.com>,
> Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>, Thomas Monjalon
> <thomas@monjalon.net>
> Subject: RE: [dpdk-dev] [PATCH] eventdev: remove experimental label
>
>
>
> > -----Original Message-----
> > From: Jerin Jacob [mailto:jerin.jacob@caviumnetworks.com]
> > Sent: Monday, October 30, 2017 12:38 PM
> > To: Eads, Gage <gage.eads@intel.com>
> > Cc: dev@dpdk.org; Richardson, Bruce <bruce.richardson@intel.com>; Van
> > Haaren, Harry <harry.van.haaren@intel.com>; Hemant Agrawal
> > <hemant.agrawal@nxp.com>; Nipun Gupta <nipun.gupta@nxp.com>; Rao,
> > Nikhil <nikhil.rao@intel.com>; Pavan Nikhilesh
> > <pbhagavatula@caviumnetworks.com>; Thomas Monjalon
> > <thomas@monjalon.net>
> > Subject: Re: [dpdk-dev] [PATCH] eventdev: remove experimental label
> >
> > -----Original Message-----
> > > Date: Mon, 23 Oct 2017 18:27:52 +0000
> > > From: "Eads, Gage" <gage.eads@intel.com>
> > > To: Jerin Jacob <jerin.jacob@caviumnetworks.com>, "dev@dpdk.org"
> > > <dev@dpdk.org>
> > > CC: "Richardson, Bruce" <bruce.richardson@intel.com>, "Van Haaren, Harry"
> > > <harry.van.haaren@intel.com>, Hemant Agrawal
> > > <hemant.agrawal@nxp.com>, Nipun Gupta <nipun.gupta@nxp.com>, "Rao,
> > > Nikhil" <nikhil.rao@intel.com>, Pavan Nikhilesh
> > > <pbhagavatula@caviumnetworks.com>, Thomas Monjalon
> > > <thomas@monjalon.net>
> > > Subject: RE: [dpdk-dev] [PATCH] eventdev: remove experimental label
> > >
> > > Hi Jerin,
> >
> > Hi Gage,
> >
> > >
> > > I have one concern with the API that may delay changing the label.
> > >
> > > The implicit release that in rte_event_dequeue_burst() is a problem when using
> > asynchronous/look-aside hardware, like a cryptodev. For instance, let's say in
> > pipeline stage N the worker takes the event's mbuf and places it in a per-worker
> > crypto request queue. When the worker next calls rte_event_dequeue_burst(),
> > that function will release the previous event which could cause the flow to
> > migrate to another worker, and this could result in packet reordering.
> > >
> > > To prevent this, the worker can't call dequeue until the look-aside operation
> > completes...in effect treating the asynchronous/look-aside hardware as
> > synchronous. Another option is to feed stage N's queue to a single port to avoid
> > the flow migration, but that port may become a bottleneck.
> > >
> > > We could remove the implicit release functionality or add a port configuration
> > flag to disable it, so the default behavior is unchanged. Removing it will
> > completely will likely require changes in existing code, but it simplifies the usage
> > model (all dequeued events must be either forwarded or released) and the
> > PMD's dequeue code. This functionality could be removed from the software
> > eventdev fairly easily, but I haven't looked into the hardware PMDs.
> >
> >
> >
> > The HW implementations, I know, it does the implicit release. Otherwise it
> > will result in deadlock because it cannot hold reordering metadata for
> > the longtime(SRAM is limited etc)
> >
> > Coming back to cryptodev use case, if I understand it correctly, before
> > application enqueues to crypto queue, the application will change the tag and
> > submit to ATOMIC queue. So as long as crypto queue competes for the
> > crypto work in order then the order will be maintained.
> >
> > In typical outbound IPSec use case,
> > - Stage 1 will be processed in ORDERED where application does the SA
> > lookup
> > - Once SA found, application enqueue to ATOMIC stage with SA as flow_id.
> > - When the event comes from the ATOMIC queue, it in ingress order and
> > then it submits to the crypto queue
> > - Crypto queue maintains the FIFO order.
> > - On IPSec crypto work competition, packets will come in Stage 3.
> > - So at Stage 3, packets are in ingress order for the given SA flow id.
> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >
> > Having said that, If SW implementation needs to do differently for performance
> > reasons then we will end up in capability as HW implementation works in the
> > implicit release. May we can sort out through capability or separate adapter for
> > crypto case. But I think, those will be new additions to the API.So removing the
> > experimental tags may be OK.
> > But if you have strong opinion on keeping the experimental tag till we address
> > the crypto use case then I am fine with that.
> >
> > Thoughts?
>
> Ok, agreed, no need to keep the tag for this concern. The capability idea is intriguing -- I'll chew on this and we can tackle it at a later point.
OK. Please add Acked-by:
>
> Thanks,
> Gage
>
> >
> > Jerin
> >
> >
> > >
> > > Thanks,
> > > Gage
> > >
next prev parent reply other threads:[~2017-11-02 4:12 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-16 10:32 [PATCH] eventdev: remove experimental label Jerin Jacob
2017-10-23 18:27 ` Eads, Gage
2017-10-30 17:38 ` Jerin Jacob
2017-11-01 14:12 ` Eads, Gage
2017-11-02 4:11 ` Jerin Jacob [this message]
2017-11-02 14:19 ` Eads, Gage
2017-11-07 22:16 ` Thomas Monjalon
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=20171102041152.GA2107@jerin \
--to=jerin.jacob@caviumnetworks.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=gage.eads@intel.com \
--cc=harry.van.haaren@intel.com \
--cc=hemant.agrawal@nxp.com \
--cc=nikhil.rao@intel.com \
--cc=nipun.gupta@nxp.com \
--cc=pbhagavatula@caviumnetworks.com \
--cc=thomas@monjalon.net \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.