[dpdk-dev] Sharing Common libs between PMDs

Trahe, Fiona fiona.trahe at intel.com
Wed Mar 14 17:11:09 CET 2018



> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Bruce Richardson
> Sent: Wednesday, March 14, 2018 3:05 PM
> To: Jerin Jacob <jerin.jacob at caviumnetworks.com>
> Cc: Liron Himi <lironh at marvell.com>; dev at dpdk.org
> Subject: Re: [dpdk-dev] Sharing Common libs between PMDs
> 
> On Wed, Mar 14, 2018 at 08:25:45PM +0530, Jerin Jacob wrote:
> > -----Original Message-----
> > > Date: Wed, 14 Mar 2018 09:34:40 +0000
> > > From: Liron Himi <lironh at marvell.com>
> > > To: "dev at dpdk.org" <dev at dpdk.org>
> > > CC: Liron Himi <lironh at marvell.com>
> > > Subject: [dpdk-dev] Sharing Common libs between PMDs
> > >
> > > Hi,
> > >
> > > We have several PMDs in DPDK that are using the same underlying common libraries.
> > > In addition, we have plans to add some new common service into DPDK that already introduces too
> much complexity with the way that the code is written now.
> > > Therefore, we would like to move all our common functions calls into one shared/common folder in
> DPDK and we need to find proper place for this purpose.
> > >
> > > Can you suggest on such a place?
> >
> > There was an attempt to create "driver/common" but latter the common code
> > for NXP HW device got moved to drivers/bus/dpaa/. Linux kernel has
> > something called "driver/soc", I think, "driver/soc" may be more appropriate.
> >
> > Currently DPDK's driver build dependency is in the following order
> > (bus, mempool, net, crypto, event).
> > Other than driver/common or driver/soc, one option could be to
> > - Move the common code to bus or mempool
> > and
> > - Across the drivers, include the header files through CFLAGS if the common code
> >   is in header file
> > http://dpdk.org/browse/dpdk/tree/drivers/event/octeontx/Makefile#n13
> >
> Given that this seems to be a recurring problem, I think having a
> drivers/common folder may not be a bad thing.
> 
> /Bruce
We've been grappling with the same problem for QAT driver.
A variant we were about to propose was to rename drivers/bus to drivers/lib.
And possibly move drivers/mempool to drivers/lib
As the rest of the drivers/xxx are actually PMDs, while mempool and bus are libs
on which other drivers depend.
I'm ok with adding a drivers/common instead, but the above seems cleaner.


More information about the dev mailing list