]> git.proxmox.com Git - ovs.git/commitdiff
dpdk: add support for v2.1.0
authorTimo Puha <timox.puha@intel.com>
Fri, 4 Sep 2015 12:35:57 +0000 (13:35 +0100)
committerDaniele Di Proietto <diproiettod@vmware.com>
Tue, 8 Sep 2015 15:20:18 +0000 (16:20 +0100)
Update relevant artifacts to add support for DPDK v2.1.0
 - INSTALL.DPDK.md
 - acinclude.m4: Change DPDK library name
 - netdev-dpdk: Limit minimum mbuf size to to adapt to DPDK bug fix that
   changes the treatment of the requested mbuf size
 - build.sh: Change DPDK version number

Note that this breaks compatibility with DPDK v2.0.0 although only
for the library name change.

Note that throughput for vhost ports with mergeable buffers is reduced
about 10% due to a necessary bug fix in DPDK vhost code.

Signed-off-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
Signed-off-by: Michal Weglicki <michalx.weglicki@intel.com>
Signed-off-by: Timo Puha <timox.puha@intel.com>
Acked-by: Daniele Di Proietto <diproiettod@vmware.com>
.travis/build.sh
AUTHORS
INSTALL.DPDK.md
acinclude.m4
lib/netdev-dpdk.c

index e90f4d08b90e90a87105b6cb74c1bccbf4db47cd..3cadbf0cee14cb1aa785f6cb3d69bc6b269cb848 100755 (executable)
@@ -71,7 +71,7 @@ fi
 
 if [ "$DPDK" ]; then
     if [ -z "$DPDK_VER" ]; then
-        DPDK_VER="2.0.0"
+        DPDK_VER="2.1.0"
     fi
     install_dpdk $DPDK_VER
     if [ "$CC" = "clang" ]; then
diff --git a/AUTHORS b/AUTHORS
index 2eb5adf2108c46b23c27106f45be3cfccd8bc258..a7f40bb5adae4bb0578cdd0f9766ab2c7e4beb2e 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -125,6 +125,7 @@ Martin Casado           casado@nicira.com
 Martino Fornasa         mf@fornasa.it
 Maryam Tahhan           maryam.tahhan@intel.com
 Mehak Mahajan           mmahajan@nicira.com
+Michal Weglicki         michalx.weglicki@intel.com
 Mijo Safradin           mijo@linux.vnet.ibm.com
 Minoru TAKAHASHI        takahashi.minoru7@gmail.com
 Murphy McCauley         murphy.mccauley@gmail.com
@@ -183,6 +184,7 @@ Thomas F. Herbert       thomasfherbert@gmail.com
 Thomas Goirand          zigo@debian.org
 Thomas Graf             tgraf@noironetworks.com
 Thomas Lacroix          thomas.lacroix@citrix.com
+Timo Puha               timox.puha@intel.com
 Todd Deshane            deshantm@gmail.com
 Tom Everman             teverman@google.com
 Tsvi Slonim             tsvi@toroki.com
index 20bd1c69eb25e4a04960cf1de4d318666d622377..6026217c2b5304d5c07af4e0486698895426146c 100644 (file)
@@ -16,7 +16,7 @@ OVS needs a system with 1GB hugepages support.
 Building and Installing:
 ------------------------
 
-Required: DPDK 2.0
+Required: DPDK 2.1
 Optional (if building with vhost-cuse): `fuse`, `fuse-devel` (`libfuse-dev`
 on Debian/Ubuntu)
 
@@ -24,7 +24,7 @@ on Debian/Ubuntu)
   1. Set `$DPDK_DIR`
 
      ```
-     export DPDK_DIR=/usr/src/dpdk-2.0
+     export DPDK_DIR=/usr/src/dpdk-2.1
      cd $DPDK_DIR
      ```
 
@@ -33,11 +33,6 @@ on Debian/Ubuntu)
 
      `CONFIG_RTE_BUILD_COMBINE_LIBS=y`
 
-     Update `config/common_linuxapp` so that DPDK is built with vhost
-     libraries.
-
-     `CONFIG_RTE_LIBRTE_VHOST=y`
-
      Then run `make install` to build and install the library.
      For default install without IVSHMEM:
 
@@ -112,7 +107,7 @@ Using the DPDK with ovs-vswitchd:
      3. Bind network device to vfio-pci:
         `$DPDK_DIR/tools/dpdk_nic_bind.py --bind=vfio-pci eth1`
 
-3. Mount the hugetable filsystem
+3. Mount the hugetable filesystem
 
    `mount -t hugetlbfs -o pagesize=1G none /dev/hugepages`
 
@@ -315,7 +310,7 @@ the vswitchd.
 DPDK vhost:
 -----------
 
-DPDK 2.0 supports two types of vhost:
+DPDK 2.1 supports two types of vhost:
 
 1. vhost-user
 2. vhost-cuse
@@ -336,7 +331,7 @@ with OVS.
 DPDK vhost-user Prerequisites:
 -------------------------
 
-1. DPDK 2.0 with vhost support enabled as documented in the "Building and
+1. DPDK 2.1 with vhost support enabled as documented in the "Building and
    Installing section"
 
 2. QEMU version v2.1.0+
@@ -418,7 +413,7 @@ with OVS.
 DPDK vhost-cuse Prerequisites:
 -------------------------
 
-1. DPDK 2.0 with vhost support enabled as documented in the "Building and
+1. DPDK 2.1 with vhost support enabled as documented in the "Building and
    Installing section"
    As an additional step, you must enable vhost-cuse in DPDK by setting the
    following additional flag in `config/common_linuxapp`:
index dbaee29c081472a266f974084e57143f5ba3a54f..68e556a973fce093a6b6943b07d33c89e7161910 100644 (file)
@@ -172,7 +172,7 @@ AC_DEFUN([OVS_CHECK_DPDK], [
 
     DPDK_INCLUDE=$RTE_SDK/include
     DPDK_LIB_DIR=$RTE_SDK/lib
-    DPDK_LIB="-lintel_dpdk"
+    DPDK_LIB="-ldpdk"
     DPDK_EXTRA_LIB=""
 
     AC_COMPILE_IFELSE(
index afe1c4517d54cae4107ca21941c290d784705ddb..ca09e681c29710a62c260c89ca4c8fbc9f580c38 100644 (file)
@@ -65,11 +65,17 @@ static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(5, 20);
 /*
  * need to reserve tons of extra space in the mbufs so we can align the
  * DMA addresses to 4KB.
+ * The minimum mbuf size is limited to avoid scatter behaviour and drop in
+ * performance for standard Ethernet MTU.
  */
-
 #define MTU_TO_MAX_LEN(mtu)  ((mtu) + ETHER_HDR_LEN + ETHER_CRC_LEN)
-#define MBUF_SIZE(mtu)       (MTU_TO_MAX_LEN(mtu) + (512) + \
-                             sizeof(struct rte_mbuf) + RTE_PKTMBUF_HEADROOM)
+#define MBUF_SIZE_MTU(mtu)   (MTU_TO_MAX_LEN(mtu)        \
+                              + sizeof(struct dp_packet) \
+                              + RTE_PKTMBUF_HEADROOM)
+#define MBUF_SIZE_DRIVER     (2048                       \
+                              + sizeof (struct rte_mbuf) \
+                              + RTE_PKTMBUF_HEADROOM)
+#define MBUF_SIZE(mtu)       MAX(MBUF_SIZE_MTU(mtu), MBUF_SIZE_DRIVER)
 
 /* Max and min number of packets in the mempool.  OVS tries to allocate a
  * mempool with MAX_NB_MBUF: if this fails (because the system doesn't have