> > Hi Akhil,
> >
> > >Subject: [PATCH v3 0/8] crypto/security session framework rework
> > >
> > >As discussed in last release deprecation notice, crypto and security 
> > >session
> > >framework are reworked to reduce the need of two mempool objects and
> > >remove the requirement to expose the rte_security_session and
> > >rte_cryptodev_sym_session structures.
> > >Design methodology is explained in the patch description.
> > >
> > >Similar work will need to be done for asymmetric sessions as well.
> > Asymmetric
> > >session need another rework and is postponed to next release. Since it is
> > still
> > >in experimental stage, we can modify the APIs in next release as well.
> > >
> > >The patches are compilable with all affected PMDs and tested with dpdk-
> > test
> > >and test-crypto-perf app on CN9k platform.
> > <snip>
> >
> > I am seeing test failures for cryptodev_scheduler_autotest:
> > + Tests Total :       638
> >  + Tests Skipped :     280
> >  + Tests Executed :    638
> >  + Tests Unsupported:   0
> >  + Tests Passed :      18
> >  + Tests Failed :      340
> >
> > The error showing for each testcase:
> > scheduler_pmd_sym_session_configure() line 487: unable to config sym
> > session
> > CRYPTODEV: rte_cryptodev_sym_session_init() line 1743: dev_id 2 failed to
> > configure session details
> >
> > I believe the problem happens in scheduler_pmd_sym_session_configure.
> > The full sess object is no longer accessible in here, but it is required to 
> > be
> > passed to rte_cryptodev_sym_session_init.
> > The init function expects access to sess rather than the private data, and
> now
> > fails as a result.
> >
> > static int
> > scheduler_pmd_sym_session_configure(struct rte_cryptodev *dev,
> >         struct rte_crypto_sym_xform *xform, void *sess,
> >         rte_iova_t sess_iova __rte_unused)
> > {
> >         struct scheduler_ctx *sched_ctx = dev->data->dev_private;
> >         uint32_t i;
> >         int ret;
> >         for (i = 0; i < sched_ctx->nb_workers; i++) {
> >                 struct scheduler_worker *worker = &sched_ctx->workers[i];
> >                 ret = rte_cryptodev_sym_session_init(worker->dev_id, sess,
> >                                         xform);
> >                 if (ret < 0) {
> >                         CR_SCHED_LOG(ERR, "unable to config sym session");
> >                         return ret;
> >                 }
> >         }
> >         return 0;
> > }
> >
> It looks like scheduler PMD is managing the stuff on its own for other PMDs.
> The APIs are designed such that the app can call session_init multiple times
> With different dev_id on same sess.
> But here scheduler PMD internally want to configure other PMDs sess_priv
> By calling session_init.
> 
> I wonder, why we have this 2 step session_create and session_init?
> Why can't we have it similar to security session create and let the scheduler
> PMD have its big session private data which can hold priv_data of as many
> PMDs
> as it want to schedule.
> 
> Konstantin/Fan/Pablo what are your thoughts on this issue?
> Can we resolve this issue at priority in RC1(or probably RC2) for this release
> or
> else we defer it for next ABI break release?
> 
> Thomas,
> Can we defer this for RC2? It does not seem to be fixed in 1 day.

On another thought, this can be fixed with current patch also by having a big 
session
Private data for scheduler PMD which is big enough to hold all other PMDs data 
which
it want to schedule and then call the sess_configure function pointer of dev 
directly.
What say? And this PMD change can be done in RC2. And this patchset go as is in 
RC1.

Reply via email to