[ovs-dev] [PATCH v8 0/5] Convert DPDK configuration from command line to DB based

Aaron Conole aconole at redhat.com
Thu Feb 11 17:10:14 UTC 2016


Daniele Di Proietto <diproiettod at vmware.com> writes:

> On 09/02/2016 09:48, "Traynor, Kevin" <kevin.traynor at intel.com> wrote:
>
>>
>>
>>> -----Original Message-----
>>> From: Aaron Conole [mailto:aconole at redhat.com]
>>> Sent: Friday, January 29, 2016 5:57 PM
>>> To: dev at openvswitch.org
>>> Cc: Flavio Leitner <fbl at sysclose.org>; Panu Matilainen
>>><pmatilai at redhat.com>;
>>> Traynor, Kevin <kevin.traynor at intel.com>; Zoltan Kiss
>>> <zoltan.kiss at linaro.org>; Christian Ehrhardt
>>> <christian.ehrhardt at canonical.com>
>>> Subject: [PATCH v8 0/5] Convert DPDK configuration from command line to
>>>DB
>>> based
>>> 
>>> Currently, configuration of DPDK parameters is done via the command line
>>> through a --dpdk **OPTIONS** -- command line argument. This has a
>>>number of
>>> challenges, including:
>>> * It must be the first option passed to ovs-vswitchd
>>> * It breaks from the way most other things are configured in OVS
>>> * It doesn't allow an easy way to populate defaults
>>> 
>>> 
>>> This series brings the following changes to openvswitch:
>>> * All DPDK options are taken from the ovs database rather than the
>>>   command line
>>> * DPDK lcores are optionally auto-assigned to a single core based on the
>>>   bridge coremask.
>>> * Updated documentation
>>> 
>>> v2:
>>> * Dropped the vhost-user socket configuration options. Those can be
>>>re-added
>>>   as an extension
>>> * Incorporated feedback from Kevin Traynor.
>>> 
>>> v3:
>>> * Went back to a global dpdk-init
>>> * Language cleanup and various minor fixes
>>> 
>>> v4:
>>> * Added a way to pass arbitrary eal arguments
>>> 
>>> v5:
>>> * Restore the socket-mem default, and fix up the ovs-dev.py script,
>>>along
>>>   with the manpage for ovsdb-server
>>> 
>>> v6:
>>> * Correct a documentation issue with INSTALL.DPDK.md
>>> * Correct a non-dpdk enabled OVS incorrect warning variable
>>> * Remove an excess whitespace
>>> 
>>> v7:
>>> * After testing by Christian with dpdk-alloc-mem
>>> 
>>> v8:
>>> * Confirmed ``make check`` operation with and without dpdk.
>>>   Retested on live-host
>>
>>Hi,
>>
>>I've done some testing on this patchset and I couldn't find any issues.
>> - tested that -c and -n defaults and explicit values are catered for
>> - tested dpdk-init=t/f leads to dpdk initialization or not
>> - tested that use of both dpdk-socket-mem and dpdk-alloc-mem is caught
>> - tested that a string can be passed in through extra_args
>> - tested the code won't catch using a db entry dpdk-socket-mem and also
>>   putting --socket-mem in extra_args, however dpdk will barf
>>
>>On command line args vs. db entries vs. a string of args in the db, if
>>there
>>is doubt on this then let's debate further. This will change how ovs with
>>dpdk is used, so better debate it out and get it right.
>
> I don't have any particular preference on command line vs database.  As
> Jesse
> pointed out having them in the database might help making them run-time
> configurable (even though they're not today).

I agree with this very much :). 

>>
>>There's one or two of the db entries that may be able to reused later for
>>other things e.g. vhostuser socket location, so that would be a + for
>>them.
>>Backwards compatibility would be a + for command line args. Daniele has
>>mentioned scripting also. I'm sure there's other +/-'s.
>
> Again, IMHO, this is quite important.  Having to start OVS just to write a
> value in the database and the restart it again seems wasteful.  If we want
> to go with the database, we should figure out how to integrate with
> ovs-ctl.

Perhaps there could be something like (just brainstorming):

ovs-ctl set-db-value "key=value" which would start the database, set the
parameter, and stop the database. Then there could be a
--restart-vswitchd flag?

Just throwing out a wild idea. I honestly don't know what makes the most
sense from a "user experience" perspective.

>>
>>Kevin.
>>
>>> 
>>> Aaron Conole (5):
>>>   netdev-dpdk: Restore thread affinity after DPDK init
>>>   netdev-dpdk: Convert initialization from cmdline to db
>>>   netdev-dpdk: Autofill lcore coremask if absent
>>>   netdev-dpdk: Allow arbitrary eal arguments
>>>   NEWS: Announce the DPDK EAL configuration change
>>> 
>>>  FAQ.md                     |   6 +-
>>>  INSTALL.DPDK.md            |  90 ++++++++++---
>>>  NEWS                       |   5 +
>>>  lib/netdev-dpdk.c          | 327
>>>++++++++++++++++++++++++++++++++++++++-----
>>> --
>>>  lib/netdev-dpdk.h          |  22 ++-
>>>  utilities/ovs-dev.py       |   7 +-
>>>  vswitchd/bridge.c          |   3 +
>>>  vswitchd/ovs-vswitchd.8.in |   5 +-
>>>  vswitchd/ovs-vswitchd.c    |  25 +---
>>>  vswitchd/vswitch.xml       | 128 +++++++++++++++++-
>>>  10 files changed, 513 insertions(+), 105 deletions(-)
>>> 
>>> --
>>> 2.5.0
>>



More information about the dev mailing list