From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
To: "Gujjar, Abhinandan S" <abhinandan.gujjar@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
"Vangati, Narender" <narender.vangati@intel.com>,
"Rao, Nikhil" <nikhil.rao@intel.com>,
"Eads, Gage" <gage.eads@intel.com>,
"hemant.agrawal@nxp.com" <hemant.agrawal@nxp.com>,
"akhil.goyal@nxp.com" <akhil.goyal@nxp.com>,
"narayanaprasad.athreya@cavium.com"
<narayanaprasad.athreya@cavium.com>,
"nidadavolu.murthy@cavium.com" <nidadavolu.murthy@cavium.com>,
"nithin.dabilpuram@cavium.com" <nithin.dabilpuram@cavium.com>
Subject: Re: [RFC v2, 2/2] eventdev: add crypto adapter API header
Date: Tue, 20 Feb 2018 19:29:21 +0530 [thread overview]
Message-ID: <20180220135920.GA23970@jerin> (raw)
In-Reply-To: <5612CB344B05EE4F95FC5B729939F7807069B737@PGSMSX102.gar.corp.intel.com>
-----Original Message-----
> Date: Mon, 19 Feb 2018 10:55:58 +0000
> From: "Gujjar, Abhinandan S" <abhinandan.gujjar@intel.com>
> To: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> CC: "dev@dpdk.org" <dev@dpdk.org>, "Vangati, Narender"
> <narender.vangati@intel.com>, "Rao, Nikhil" <nikhil.rao@intel.com>, "Eads,
> Gage" <gage.eads@intel.com>, "hemant.agrawal@nxp.com"
> <hemant.agrawal@nxp.com>, "akhil.goyal@nxp.com" <akhil.goyal@nxp.com>,
> "narayanaprasad.athreya@cavium.com" <narayanaprasad.athreya@cavium.com>,
> "nidadavolu.murthy@cavium.com" <nidadavolu.murthy@cavium.com>,
> "nithin.dabilpuram@cavium.com" <nithin.dabilpuram@cavium.com>
> Subject: RE: [RFC v2, 2/2] eventdev: add crypto adapter API header
>
> Hi Jerin,
Hi Abhinandan,
>
> Thanks for the review. Please find few comments inline.
>
> > -----Original Message-----
> > From: Jerin Jacob [mailto:jerin.jacob@caviumnetworks.com]
> > Sent: Saturday, February 17, 2018 1:04 AM
> > To: Gujjar, Abhinandan S <abhinandan.gujjar@intel.com>
> > Cc: dev@dpdk.org; Vangati, Narender <narender.vangati@intel.com>; Rao,
> > Nikhil <nikhil.rao@intel.com>; Eads, Gage <gage.eads@intel.com>;
> > hemant.agrawal@nxp.com; akhil.goyal@nxp.com;
> > narayanaprasad.athreya@cavium.com; nidadavolu.murthy@cavium.com;
> > nithin.dabilpuram@cavium.com
> > Subject: Re: [RFC v2, 2/2] eventdev: add crypto adapter API header
> >
> > -----Original Message-----
> > > Date: Mon, 15 Jan 2018 16:23:50 +0530
> > > From: Abhinandan Gujjar <abhinandan.gujjar@intel.com>
> > > To: jerin.jacob@caviumnetworks.com
> > > CC: dev@dpdk.org, narender.vangati@intel.com, Abhinandan Gujjar
> > > <abhinandan.gujjar@intel.com>, Nikhil Rao <nikhil.rao@intel.com>, Gage
> > > Eads <gage.eads@intel.com>
> > > Subject: [RFC v2, 2/2] eventdev: add crypto adapter API header
> > > X-Mailer: git-send-email 1.9.1
> > >
> > > +
> > > +/**
> > > + * This adapter adds support to enqueue crypto completions to event device.
> > > + * The packet flow from cryptodev to the event device can be
> > > +accomplished
> > > + * using both SW and HW based transfer mechanisms.
> > > + * The adapter uses a EAL service core function for SW based packet
> > > +transfer
> > > + * and uses the eventdev PMD functions to configure HW based packet
> > > +transfer
> > > + * between the cryptodev and the event device.
> > > + *
> > > + * In the case of SW based transfers, application can choose to
> > > +submit a
> >
> > I think, we can remove "In the case of SW based transfers" as it should be
> > applicable for HW case too
> Ok. In that case, adapter will detect the presence of HW connection between
> cryptodev & eventdev and will not dequeue crypto completions.
I would say presence of "specific capability" instead of HW.
>
> >
> > > + * crypto operation directly to cryptodev or send it to the
> > > + cryptodev
> > > + * adapter via eventdev, the cryptodev adapter then submits the
> > > + crypto
> > > + * operation to the crypto device. The first mode is known as the
> >
> > The first mode (DEQ) is very clear. In the second mode(ENQ_DEQ),
> > - How does "worker" submits the crypto work through crypto-adapter?
> > If I understand it correctly, "workers" always deals with only cryptodev's
> > rte_cryptodev_enqueue_burst() API and "service" function in crypto adapter
> > would be responsible for dequeue() from cryptodev and enqueue to eventdev?
> >
> > I understand the need for OP_NEW vs OP_FWD mode difference in both modes.
> > Other than that, What makes ENQ_DEQ different? Could you share the flow for
> > ENQ_DEQ mode with APIs.
>
> /*
> Application changes for ENQ_DEQ mode:
> -------------------------------------------------
> /* In ENQ_DEQ mode, to enqueue to adapter app
> * has to fill out following details.
> */
> struct rte_event_crypto_request *req;
> struct rte_crypto_op *op = rte_crypto_op_alloc();
>
> /* fill request info */
> req = (void *)((char *)op + op.private_data_offset);
> req->cdev_id = 1;
> req->queue_pair_id = 1;
>
> /* fill response info */
> ...
>
> /* send event to crypto adapter */
> ev->event_ptr = op;
> ev->queue_id = dst_event_qid;
> ev->priority = dst_priority;
> ev->sched_type = dst_sched_type;
> ev->event_type = RTE_EVENT_TYPE_CRYPTODEV;
> ev->sub_event_type = sub_event_type;
> ev->flow_id = dst_flow_id;
> ret = rte_event_enqueue_burst(event_dev_id, event_port_id, ev, 1);
>
>
> Adapter in ENQ_DEQ mode, submitting crypto ops to cryptodev:
> -----------------------------------------------------------------------------
> n = rte_event_dequeue_burst(event_dev_id, event_port_id, ev, BATCH_SIZE, time_out);
> struct rte_crypto_op *op = ev->event_ptr;
> struct rte_event_crypto_request *req = (void *)op + op.private_data_offset;
> cdev_id = req->cdev_id;
> qp_id = req->queue_pair_id
>
> ret = rte_cryptodev_enqueue_burst(cdev_id, qp_id, op, 1);
This mode wont work for the HW implementations that I know. As in HW
implementations, The Adapter is embedded in HW.
The DEQ mode works. But, This would call for to have two separate application logic for
DEQ and ENQ_DEQ mode.
I think, it is unavoidable as SW scheme has better performance with ENQ_DEQ MODE.
If you think, there is no option other than introducing a capability in
adapter then please create capability in Rx adapter to inform the
adapter capability to the application.
Do we think, it possible to have scheme with ENQ_DEQ mode, Where
application still enqueue to cryptodev like DEQ mode but using
cryptodev. ie. Adapter patches the cryptodev dev->enqueue_burst() to
"eventdev enqueue burst" followed by "exiting dev->enqueue_burst".
Something like exiting ethdev rx_burst callback scheme.
This will enable application to have unified flow IMO.
Any thoughts from NXP folks?
> */
> >
> > > + * dequeue only (DEQ) mode and the second as the enqueue - dequeue
> >
> > extra space between "mode" and "and"
> Ok
> >
> > > + * (ENQ_DEQ) mode. The choice of mode can be specified when creating
> > > + * the adapter.
> > > + * In the latter choice, the cryptodev adapter is able to use
> > > + * RTE_OP_FORWARD as the event dev enqueue type, this has a
> > > + performance
> > > + * advantage in "closed system" eventdevs like the eventdev SW PMD
> > > + and
> >
next prev parent reply other threads:[~2018-02-20 14:00 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-15 10:53 [RFC v2, 2/2] eventdev: add crypto adapter API header Abhinandan Gujjar
2018-02-13 9:21 ` Gujjar, Abhinandan S
2018-02-16 19:33 ` Jerin Jacob
2018-02-19 10:55 ` Gujjar, Abhinandan S
2018-02-20 13:59 ` Jerin Jacob [this message]
2018-02-20 18:55 ` Vangati, Narender
2018-02-21 6:54 ` Jerin Jacob
2018-02-23 12:00 ` Akhil Goyal
2018-02-26 13:51 ` Akhil Goyal
2018-02-28 9:01 ` Gujjar, Abhinandan S
2018-03-06 6:44 ` Akhil Goyal
2018-03-03 22:42 ` Vangati, Narender
2018-03-06 7:13 ` Akhil Goyal
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=20180220135920.GA23970@jerin \
--to=jerin.jacob@caviumnetworks.com \
--cc=abhinandan.gujjar@intel.com \
--cc=akhil.goyal@nxp.com \
--cc=dev@dpdk.org \
--cc=gage.eads@intel.com \
--cc=hemant.agrawal@nxp.com \
--cc=narayanaprasad.athreya@cavium.com \
--cc=narender.vangati@intel.com \
--cc=nidadavolu.murthy@cavium.com \
--cc=nikhil.rao@intel.com \
--cc=nithin.dabilpuram@cavium.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
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.