DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] What is the best way to distribute a DPDK-based app?
@ 2015-01-11 17:10 Vlad Zolotarov
  2015-01-12 11:30 ` Bruce Richardson
  0 siblings, 1 reply; 4+ messages in thread
From: Vlad Zolotarov @ 2015-01-11 17:10 UTC (permalink / raw)
  To: dev; +Cc: Shlomi Livne

Hi,
guys could you share form your experience what is the best way to 
distribute the DPDK libraries with the DPDK-based app:

  * Is there any significant benefit in compiling the libraries on a
    target machine?
  * Is there an already existing DPDK-libs packaging: I've noticed there
    is some Fedora RPM package with DPDK libs but it's lacking
    pmd-driver's libs and they are the main component we are using,
    therefore we can't use it.

Thanks in advance,
vlad

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] What is the best way to distribute a DPDK-based app?
  2015-01-11 17:10 [dpdk-dev] What is the best way to distribute a DPDK-based app? Vlad Zolotarov
@ 2015-01-12 11:30 ` Bruce Richardson
  2015-01-12 14:50   ` Neil Horman
  0 siblings, 1 reply; 4+ messages in thread
From: Bruce Richardson @ 2015-01-12 11:30 UTC (permalink / raw)
  To: Vlad Zolotarov; +Cc: dev, Shlomi Livne

On Sun, Jan 11, 2015 at 07:10:30PM +0200, Vlad Zolotarov wrote:
> Hi,
> guys could you share form your experience what is the best way to distribute
> the DPDK libraries with the DPDK-based app:
> 
>  * Is there any significant benefit in compiling the libraries on a
>    target machine?
>  * Is there an already existing DPDK-libs packaging: I've noticed there
>    is some Fedora RPM package with DPDK libs but it's lacking
>    pmd-driver's libs and they are the main component we are using,
>    therefore we can't use it.
> 
> Thanks in advance,
> vlad
> 
The default in DPDK is to build a statically linked binary, in which case no
separate distribution of libraries is necessary. This also gives best performance.

If you know ahead of time what the minimum cpu hardware of your target is, it's
probably worthwhile doing a compile of your app/libs for that minimum hardware,
especially if you care about getting best performance. If a few percent drop in
performance is not a big issue, then compiling up for the "default" target is
the safest path to take.
For distributing the libs as shared libs, the same logic applies.

/Bruce

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] What is the best way to distribute a DPDK-based app?
  2015-01-12 11:30 ` Bruce Richardson
@ 2015-01-12 14:50   ` Neil Horman
  2015-01-12 15:17     ` Vlad Zolotarov
  0 siblings, 1 reply; 4+ messages in thread
From: Neil Horman @ 2015-01-12 14:50 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev, Shlomi Livne

On Mon, Jan 12, 2015 at 11:30:26AM +0000, Bruce Richardson wrote:
> On Sun, Jan 11, 2015 at 07:10:30PM +0200, Vlad Zolotarov wrote:
> > Hi,
> > guys could you share form your experience what is the best way to distribute
> > the DPDK libraries with the DPDK-based app:
> > 
> >  * Is there any significant benefit in compiling the libraries on a
> >    target machine?
> >  * Is there an already existing DPDK-libs packaging: I've noticed there
> >    is some Fedora RPM package with DPDK libs but it's lacking
> >    pmd-driver's libs and they are the main component we are using,
> >    therefore we can't use it.
> > 
> > Thanks in advance,
> > vlad
> > 
> The default in DPDK is to build a statically linked binary, in which case no
> separate distribution of libraries is necessary. This also gives best performance.
> 
That wasn't the question though.  the question was "what is the best way to
distribute dpdk libraries".  The answer is, it depends on a number of factors,
including, but not limited to what distribution your are distributing for and
what your intended audience is.  

As you note, Fedora distributes dpdk 1.7 using DSO's.  We do this because Fedora
strongly tries to avoid shipping static libraries so as to prevent security
issues living on in applications that link to libraries (i.e. a dpdk security
fix will update all applications if they use DSO's.

You've also noted that the Fedora DPDK doesn't include PMD's for several bits of
hardware.  This is done because those PMD's require out of tree kernel modules,
which Fedora prohibits.  So we currently only ship virtual pmd's.  That will
change soon though we hope, when some high speed socket API changes get made to
the kernel.

> If you know ahead of time what the minimum cpu hardware of your target is, it's
> probably worthwhile doing a compile of your app/libs for that minimum hardware,
> especially if you care about getting best performance. If a few percent drop in
> performance is not a big issue, then compiling up for the "default" target is
> the safest path to take.
> For distributing the libs as shared libs, the same logic applies.
> 
> /Bruce
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] What is the best way to distribute a DPDK-based app?
  2015-01-12 14:50   ` Neil Horman
@ 2015-01-12 15:17     ` Vlad Zolotarov
  0 siblings, 0 replies; 4+ messages in thread
From: Vlad Zolotarov @ 2015-01-12 15:17 UTC (permalink / raw)
  To: Neil Horman, Bruce Richardson; +Cc: dev, Shlomi Livne


On 01/12/15 16:50, Neil Horman wrote:
> On Mon, Jan 12, 2015 at 11:30:26AM +0000, Bruce Richardson wrote:
>> On Sun, Jan 11, 2015 at 07:10:30PM +0200, Vlad Zolotarov wrote:
>>> Hi,
>>> guys could you share form your experience what is the best way to distribute
>>> the DPDK libraries with the DPDK-based app:
>>>
>>>   * Is there any significant benefit in compiling the libraries on a
>>>     target machine?
>>>   * Is there an already existing DPDK-libs packaging: I've noticed there
>>>     is some Fedora RPM package with DPDK libs but it's lacking
>>>     pmd-driver's libs and they are the main component we are using,
>>>     therefore we can't use it.
>>>
>>> Thanks in advance,
>>> vlad
>>>
>> The default in DPDK is to build a statically linked binary, in which case no
>> separate distribution of libraries is necessary. This also gives best performance.
>>
> That wasn't the question though.  the question was "what is the best way to
> distribute dpdk libraries".  The answer is, it depends on a number of factors,
> including, but not limited to what distribution your are distributing for and
> what your intended audience is.
>
> As you note, Fedora distributes dpdk 1.7 using DSO's.  We do this because Fedora
> strongly tries to avoid shipping static libraries so as to prevent security
> issues living on in applications that link to libraries (i.e. a dpdk security
> fix will update all applications if they use DSO's.
>
> You've also noted that the Fedora DPDK doesn't include PMD's for several bits of
> hardware.  This is done because those PMD's require out of tree kernel modules,
> which Fedora prohibits.  So we currently only ship virtual pmd's.  That will
> change soon though we hope, when some high speed socket API changes get made to
> the kernel.

Neil, Bruce, thanks for your input.

>
>> If you know ahead of time what the minimum cpu hardware of your target is, it's
>> probably worthwhile doing a compile of your app/libs for that minimum hardware,
>> especially if you care about getting best performance. If a few percent drop in
>> performance is not a big issue, then compiling up for the "default" target is
>> the safest path to take.
>> For distributing the libs as shared libs, the same logic applies.
>>
>> /Bruce
>>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-01-12 15:17 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-11 17:10 [dpdk-dev] What is the best way to distribute a DPDK-based app? Vlad Zolotarov
2015-01-12 11:30 ` Bruce Richardson
2015-01-12 14:50   ` Neil Horman
2015-01-12 15:17     ` Vlad Zolotarov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).