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/120081527 Appveyor build: https://ci.appveyor.com/project/orgcandman/ovs/build/1.0.9 This is a resend due to an accidentally omitted hunk in 4/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 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev