[ovs-dev] [PATCH 0/8] Convert DPDK configuration from command line to DB based
Aaron Conole
aconole at redhat.com
Fri Apr 1 03:22:41 UTC 2016
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 is the only datapath feature in OVS to be configured on the command
line
* It requires specialized knowledge of sub-component command switches
* It also inteprets non-EAL arguments (confusing users)
* It is a broken model for datapath configuration.
This series brings the following changes to openvswitch:
* All DPDK options are taken from the ovs database rather than the
command line
* Non-EAL arguments also have separate database entries
* DPDK lcores are optionally auto-assigned to a single core based on the
bridge coremask.
* DPDK options have default behaviors
* Updated documentation
This series has been build tested (including `make check`) on OSX, Fedora 23,
Windows (via appveyor), and FreeBSD 10.3; the v11 has had very basic testing
applied (start, configure some of the settings). I have removed ACKs and
Tested-bys for some of the patches since they underwent changes that I felt
disqualified continued use of the Acked-by: and Tested-by: tags.
Travis-ci build: https://travis-ci.org/orgcandman/ovs/builds/119975234
Appveyor build: https://ci.appveyor.com/project/orgcandman/ovs/build/1.0.8
A huge round of thanks on the work so far should be given to the following
folks (in alphabetical order):
* Ben Pfaff (Reviews, vhost-sock-dir escape suggestion)
* Christian Erhardt (Testing)
* Daniele Di Proietto (Reviews, general suggestions)
* Flavio Leitner (Original efforts, reviews)
* Kevin Traynor (Testing, general suggestions, reviews, doc reviews)
* Panu Matilainen (Initialization ideas, eal arguments ideas, reviews)
* RobertX Wojciechowicz (Testing, general suggestions)
* Sean Mooney (Testing, general suggestions)
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
v9:
* Cleanup of comments
* Cleanup of one place where headers are specified
* Mark the dpdk coremask and numa config as optional
* Added 5/6 to scan the extras and warn the user when conflicting
DB entries are present
* Acks given for all but patch 5/6
v10:
* Rebased against latest upstream
* ACK or Tested-by for all patches
* Code cleanup on patch 2/6 (vhost-cuse warning)
* DB options documentation cleanup.
v11:
* Spacing cleanups (verified with checkpatch)
* Introduced a realpath() call
* Validate the vhost-sock-dir is in a protected area of the filesystem
* Split the netdev-dpdk into a netdev-nodpdk
* Converted most of the ovs_abort() error paths into VLOG_ERR()s
Aaron Conole (8):
netdev-dpdk: Restore thread affinity after DPDK init
util: Add a path canonicalizer
netdev-dpdk: Convert initialization from cmdline to db
netdev-dpdk: Restrict vhost_sock_dir
netdev-dpdk: Autofill lcore coremask if absent
netdev-dpdk: Allow arbitrary eal arguments
netdev-dpdk: Check dpdk-extra when reading db
NEWS: Announce the DPDK EAL configuration change
FAQ.md | 6 +-
INSTALL.DPDK.md | 87 +++++++--
NEWS | 3 +
configure.ac | 2 +-
lib/automake.mk | 4 +
lib/netdev-dpdk.c | 430 +++++++++++++++++++++++++++++++++++++--------
lib/netdev-dpdk.h | 13 +-
lib/netdev-nodpdk.c | 21 +++
lib/util.c | 52 ++++++
lib/util.h | 1 +
tests/library.at | 5 +
tests/ofproto-macros.at | 3 +-
tests/test-util.c | 23 +++
utilities/ovs-dev.py | 8 +-
vswitchd/bridge.c | 3 +
vswitchd/ovs-vswitchd.8.in | 6 +-
vswitchd/ovs-vswitchd.c | 25 +--
vswitchd/vswitch.xml | 143 ++++++++++++++-
18 files changed, 697 insertions(+), 138 deletions(-)
create mode 100644 lib/netdev-nodpdk.c
--
2.5.5
More information about the dev
mailing list