Update relevant artifacts to add support for DPDK v2.1.0 - INSTALL.DPDK.md - acinclude.m4: Change DPDK library name - netdev-dpdk: Add 16 bytes extra padding to mbuf size 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.kavan...@intel.com> Signed-off-by: Michal Weglicki <michalx.wegli...@intel.com> Signed-off-by: Timo Puha <timox.p...@intel.com> --- .travis/build.sh | 2 +- INSTALL.DPDK.md | 12 ++++++------ acinclude.m4 | 2 +- lib/netdev-dpdk.c | 3 ++- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.travis/build.sh b/.travis/build.sh index e90f4d0..3cadbf0 100755 --- a/.travis/build.sh +++ b/.travis/build.sh @@ -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/INSTALL.DPDK.md b/INSTALL.DPDK.md index 35dd9a0..39e1b5d 100644 --- a/INSTALL.DPDK.md +++ b/INSTALL.DPDK.md @@ -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 ``` @@ -112,7 +112,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 +315,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 +336,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 +418,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`: diff --git a/acinclude.m4 b/acinclude.m4 index 45cfaf6..90bb708 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -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( diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index 3444bb1..5798a93 100644 --- a/lib/netdev-dpdk.c +++ b/lib/netdev-dpdk.c @@ -68,7 +68,8 @@ static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(5, 20); */ #define MTU_TO_MAX_LEN(mtu) ((mtu) + ETHER_HDR_LEN + ETHER_CRC_LEN) -#define MBUF_SIZE(mtu) (MTU_TO_MAX_LEN(mtu) + (512) + \ +#define MBUF_PADDING 16 +#define MBUF_SIZE(mtu) (MTU_TO_MAX_LEN(mtu) + (512) + (MBUF_PADDING) + \ sizeof(struct rte_mbuf) + RTE_PKTMBUF_HEADROOM) /* Max and min number of packets in the mempool. OVS tries to allocate a -- 1.8.3.1 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev