[dpdk-dev] What is the best way to distribute a DPDK-based app?

Vlad Zolotarov vladz at cloudius-systems.com
Mon Jan 12 16:17:21 CET 2015


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
>>



More information about the dev mailing list