[dpdk-dev] [EXT] Re: [PATCH 00/39] adding eventmode helper library

Anoob Joseph anoobj at marvell.com
Fri Jun 28 13:34:29 CEST 2019


Hi Thomas, Jerin,

> -----Original Message-----
> From: dev <dev-bounces at dpdk.org> On Behalf Of Thomas Monjalon
> Sent: Friday, June 28, 2019 2:10 PM
> To: Jerin Jacob Kollanukkaran <jerinj at marvell.com>; Anoob Joseph
> <anoobj at marvell.com>
> Cc: dev at dpdk.org; Mattias Rönnblom <mattias.ronnblom at ericsson.com>;
> Nikhil Rao <nikhil.rao at intel.com>; Erik Gabriel Carrillo
> <erik.g.carrillo at intel.com>; Abhinandan Gujjar
> <abhinandan.gujjar at intel.com>; Bruce Richardson
> <bruce.richardson at intel.com>; Pablo de Lara
> <pablo.de.lara.guarch at intel.com>; Narayana Prasad Raju Athreya
> <pathreya at marvell.com>; Lukas Bartosik <lbartosik at marvell.com>; Pavan
> Nikhilesh Bhagavatula <pbhagavatula at marvell.com>; Hemant Agrawal
> <hemant.agrawal at nxp.com>; Nipun Gupta <nipun.gupta at nxp.com>; Harry
> van Haaren <harry.van.haaren at intel.com>; Liang Ma
> <liang.j.ma at intel.com>; techboard at dpdk.org
> Subject: [EXT] Re: [dpdk-dev] [PATCH 00/39] adding eventmode helper
> library
> 
> External Email
> 
> ----------------------------------------------------------------------
> 28/06/2019 05:37, Jerin Jacob Kollanukkaran:
> > From: Anoob Joseph
> > > From: Jerin Jacob Kollanukkaran
> > > > From: Anoob Joseph
> > > > > The helper library will be experimental while we add event-mode
> > > > > support for other applications like l3fwd & ipsec-secgw. I
> > > > > expect the helper library to be complete over the course of
> > > > > those applications also using the helper library.
> 
> You are doing a copy of l2fwd example to add event mode.
> It was the decision from the techboard to not complicate the original l2fwd.
> But it makes me nervous to see some code duplicated, especially if you plan
> to do the same for l3fwd and ipsec-secgw.
> We are not going to duplicate every examples. We should re-consider.
> 

[Anoob] For l3fwd & ipsec-secgw, the plan is to add eventmode in the original application itself. If you have concerns about code duplication in l2fwd-event, the changes can be added to l2fwd itself. Please advise on how to proceed.
 
> > > > I have only concern about moving this as library inside eventdev
> > > > that till we have mature version of helper library the eventdev
> > > > library ABI will not stable(i.e .so file version needs to be
> > > > incremented as when a change needed). Which align with Mattias
> > > > thoughts for some other reason:. How about moving this code to
> > > > 1) example/common or
> > > > 2) to specific application itself, once at least two applications
> > > > starts using it then move to Eventdev library.
> > > >
> > > > Thoughts?
> > >
> > > [Anoob] Either location is not a problem if there is a consensus.
> > > Earlier the suggestion was to move it to library (when the patch was
> > > submitted with changes added in app).
> 
> If there is only one user, making it grow in the application looks to be the
> best thing to do.
> Should we use it in more applications before it is more mature?
> If not, we could move the code in eventdev library when we will use it in
> more examples.
> 

[Anoob] The proposal with l2fwd-event was to present an easy enough example so that the APIs can be decided before moving onto complex examples. Additions to l3fwd & ipsec-secgw is in the pipeline.

> > If there NO objections then lets move to example/common.
> 
> If we really want to have this library standalone in examples, I suggest to give
> it a name and not use a "common" directory.
> 

[Anoob] I would suggest to add the eventmode code in 'examples/utils'.

What is being added here can be treated as a utility library. Almost all examples have duplicated code for the entire conf parsing, ethdev init etc. Anyone who would attempt a new application will have to duplicate lot of code. So a similar exercise with regular poll mode is also possible. 

As for build, we will have the following options,

1. From the examples/<example>/Makefile, build *helper*.o files ( '../utils/eventmode_helper.o') and prepare the binary. So each application will build its own version of *helper*.c
    +SRCS-y += ../utils/eventmode_helper.c

2. Make 'examples/utils' a separate library. This way, all applications can directly link without having to build separately.

Please do suggest on which would be a good way to execute.

Thanks,
Anoob


More information about the dev mailing list