[ovs-git] Open vSwitch: netdev-dpdk: Use multiple core for dpdk IO. (master)

dev at openvswitch.org dev at openvswitch.org
Tue Mar 25 02:56:07 UTC 2014


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Open vSwitch".

The branch, master has been updated
       via  8617affff4f6570ef9ebeafe471e7f14a2c630e3 (commit)
       via  8a9562d21a40c765a8ae6775a070cb279cb2147a (commit)
       via  275eebb92d46e8647861f0b25d9b0fb300379d2d (commit)
       via  20ebd771520db301d24c57c22fde989692adf913 (commit)
       via  55c955bd8aecc90273ffa93114c1c38f4f9b78ec (commit)
       via  f77917408a404d4660c6fb2cbe4d4c0f9f123cf2 (commit)
       via  e4cfed38b159aba1ef44ed4a7b1f3e982b7358d4 (commit)
       via  b284085e550464aceb69c4891684d8f8574086ef (commit)
       via  40d26f04b2588632cf08e2ca3ea2cee40402a3f9 (commit)
       via  df1e5a3bc7d772237de0ca19663e4a5a9b8f403b (commit)
      from  90b8c2f7c08eab4aea41601e57d4eee021ef5561 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 8617affff4f6570ef9ebeafe471e7f14a2c630e3
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=8617affff4f6570ef9ebeafe471e7f14a2c630e3
Author: Pravin <pshelar at nicira.com>
		
netdev-dpdk: Use multiple core for dpdk IO.
		
DPDK need to set _lcore_id for using multiple core.

Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
Acked-by: Thomas Graf <tgraf at redhat.com>


commit 8a9562d21a40c765a8ae6775a070cb279cb2147a
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=8a9562d21a40c765a8ae6775a070cb279cb2147a
Author: Pravin <pshelar at nicira.com>
		
dpif-netdev: Add DPDK netdev.
		
Following patch adds DPDK netdev-class to userspace datapath. Now
OVS can use DPDK port for IO by just configuring DPDK port and then
adding dpdk type port to userspace datapath.

Refer to INSTALL.DPDK doc for further info.

This is based a patch from Gerald Rogers.

Signed-off-by: Gerald Rogers <gerald.rogers at intel.com>
Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
Acked-by: Thomas Graf <tgraf at redhat.com>


commit 275eebb92d46e8647861f0b25d9b0fb300379d2d
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=275eebb92d46e8647861f0b25d9b0fb300379d2d
Author: Pravin <pshelar at nicira.com>
		
utils: Introduce xsleep for RCU quiescent state
		
Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
Acked-by: Ben Pfaff <blp at nicira.com>


commit 20ebd771520db301d24c57c22fde989692adf913
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=20ebd771520db301d24c57c22fde989692adf913
Author: Pravin <pshelar at nicira.com>
		
ofpbuf: Add OFPBUF_DPDK type.
		
This will be used by DPDK for zero copy IO.

Signed-off-by: Pravin B Shelar <pshelar at nicira.com>


commit 55c955bd8aecc90273ffa93114c1c38f4f9b78ec
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=55c955bd8aecc90273ffa93114c1c38f4f9b78ec
Author: Pravin <pshelar at nicira.com>
		
netdev: Add support multiqueue recv.
		
new netdev type like DPDK can support multi-queue IO. Following
patch Adds support for same.

Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
Acked-by: Thomas Graf <tgraf at redhat.com>


commit f77917408a404d4660c6fb2cbe4d4c0f9f123cf2
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=f77917408a404d4660c6fb2cbe4d4c0f9f123cf2
Author: Pravin <pshelar at nicira.com>
		
netdev: Rename netdev_rx to netdev_rxq
		
Preparation for multi queue netdev IO.  There are no functional changes
in this patch.

Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
Acked-by: Thomas Graf <tgraf at redhat.com>


commit e4cfed38b159aba1ef44ed4a7b1f3e982b7358d4
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=e4cfed38b159aba1ef44ed4a7b1f3e982b7358d4
Author: Pravin <pshelar at nicira.com>
		
dpif-netdev: Add poll-mode-device thread.
		
This patch adds PMD type netdev for netdevice with poll-mode
drivers.  Since there is no way to get signal on a packet recv
from these devices we need to poll them in busy loop.  So minimize
system call overhead this patch uses dpif-thread exclusively
for PMD devices and rest of devices which needs system calls to
do IO are moved to dpif-netdev-run().
PMD device like DPDK work in userspace so there is no system call
overhead for them.

Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
Acked-by: Thomas Graf <tgraf at redhat.com>


commit b284085e550464aceb69c4891684d8f8574086ef
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=b284085e550464aceb69c4891684d8f8574086ef
Author: Pravin <pshelar at nicira.com>
		
dpif-netdev: Add ref-counting for port.
		
DPDK Poll mode thread need to keep ref to dpif-port.

Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
Acked-by: Jarno Rajahalme <jrajahalme at nicira.com>
Acked-by: Thomas Graf <tgraf at redhat.com>


commit 40d26f04b2588632cf08e2ca3ea2cee40402a3f9
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=40d26f04b2588632cf08e2ca3ea2cee40402a3f9
Author: Pravin <pshelar at nicira.com>
		
netdev: Send ofpbuf directly to netdev.
		
DPDK netdev need to access ofpbuf while sending buffer. Following
patch changes netdev_send accordingly.

Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
Acked-by: Thomas Graf <tgraf at redhat.com>


commit df1e5a3bc7d772237de0ca19663e4a5a9b8f403b
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=df1e5a3bc7d772237de0ca19663e4a5a9b8f403b
Author: Pravin <pshelar at nicira.com>
		
netdev: Extend rx_recv to pass multiple packets.
		
DPDK can receive multiple packets but current netdev API does
not allow that.  Following patch allows dpif-netdev receive batch
of packet in a rx_recv() call for any netdev port.  This will be
used by dpdk-netdev.

Signed-off-by: Pravin B Shelar <pshelar at nicira.com>


-----------------------------------------------------------------------

Summary of changes:
 INSTALL                        |    1 +
 INSTALL.DPDK                   |   93 +++
 Makefile.am                    |    1 +
 NEWS                           |    1 +
 acinclude.m4                   |   26 +
 configure.ac                   |    1 +
 lib/automake.mk                |    7 +
 lib/daemon.c                   |    2 +-
 lib/dpif-netdev.c              |  430 +++++++++-----
 lib/{jhash.h => dpif-netdev.h} |   36 +-
 lib/dpif.c                     |    2 +-
 lib/netdev-bsd.c               |   33 +-
 lib/netdev-dpdk.c              | 1216 ++++++++++++++++++++++++++++++++++++++++
 lib/netdev-dpdk.h              |   34 ++
 lib/netdev-dummy.c             |  116 ++--
 lib/netdev-linux.c             |  100 ++--
 lib/netdev-provider.h          |   87 ++-
 lib/netdev.c                   |   89 +--
 lib/netdev.h                   |   34 +-
 lib/odp-execute.c              |   29 +-
 lib/odp-execute.h              |    4 +-
 lib/ofpbuf.c                   |   17 +-
 lib/ofpbuf.h                   |    4 +-
 lib/util.c                     |   12 +
 lib/util.h                     |    1 +
 ofproto/ofproto-dpif-xlate.c   |    2 +-
 vswitchd/ovs-vswitchd.c        |   14 +-
 27 files changed, 2012 insertions(+), 380 deletions(-)
 create mode 100644 INSTALL.DPDK
 copy lib/{jhash.h => dpif-netdev.h} (51%)
 create mode 100644 lib/netdev-dpdk.c
 create mode 100644 lib/netdev-dpdk.h


hooks/post-receive
-- 
Open vSwitch



More information about the git mailing list