Hi all, Just a quick poll: are the resolutions to review comments in this patch acceptable to everyone?
If I've missed anything, or are there any additional opens that need to be addressed before it can be merged, just let me know. Thanks in advance, Mark > >Update relevant artifacts to add support for DPDK v2.0.0 > - INSTALL.DPDK.md > - travis build script > - acinclude.m4: add 'mssse3' flag to OVS_CFLAGS > - netdev-dpdk: fix build with unified offload types in DPDK v2.0.0 > >Note that this breaks compatibility with DPDK v1.8.0 > >v1: - update DPDK version & build instructions in INSTALL.DPDK.md > - update DPDK version and remove compile flags in travis/build.sh > - fix build with unified offload types in DPDK v2.0.0 > >v2: - add mssse3 flag to OVS_CFLAGS in acinclude.m4 > - reinstate '-Wno-cast-align' compile flag for clang > - add details of vhost user support limitations to INSTALL.DPDK.md > - refactor travis/build.sh to reflect these changes > >v3: -correct minor typos in commit message > >Signed-off-by: Mark Kavanagh <mark.b.kavan...@intel.com> >Signed-off-by: Panu Matilainen <pmati...@redhat.com> >--- > .travis/build.sh | 11 +++++++---- > INSTALL.DPDK.md | 13 +++++++++---- > acinclude.m4 | 2 +- > lib/netdev-dpdk.c | 3 +-- > 4 files changed, 18 insertions(+), 11 deletions(-) > >diff --git a/.travis/build.sh b/.travis/build.sh >index 46c5c4d..c7796e1 100755 >--- a/.travis/build.sh >+++ b/.travis/build.sh >@@ -49,6 +49,7 @@ function install_dpdk() > find ./ -type f | xargs sed -i > 's/max-inline-insns-single=100/max-inline-insns- >single=400/' > sed -ri 's,(CONFIG_RTE_BUILD_COMBINE_LIBS=).*,\1y,' config/common_linuxapp > sed -ri 's,(CONFIG_RTE_LIBRTE_VHOST=).*,\1y,' config/common_linuxapp >+ sed -ri 's,(CONFIG_RTE_LIBRTE_VHOST_USER=).*,\1n,' config/common_linuxapp > sed -ri '/CONFIG_RTE_LIBNAME/a CONFIG_RTE_BUILD_FPIC=y' > config/common_linuxapp > sed -ri '/EXECENV_CFLAGS = -pthread -fPIC/{s/$/\nelse ifeq >($(CONFIG_RTE_BUILD_FPIC),y)/;s/$/\nEXECENV_CFLAGS = -pthread -fPIC/}' >mk/exec- >env/linuxapp/rte.vars.mk > make config CC=gcc T=x86_64-native-linuxapp-gcc >@@ -68,12 +69,14 @@ fi > > if [ "$DPDK" ]; then > if [ -z "$DPDK_VER" ]; then >- DPDK_VER="1.8.0" >+ DPDK_VER="2.0.0" > fi > install_dpdk $DPDK_VER >- # Disregard bad function casts until DPDK is fixed >- CFLAGS="$CFLAGS -Wno-error=bad-function-cast -Wno-error=cast-align" >- EXTRA_OPTS+="--with-dpdk=./dpdk-$DPDK_VER/build" >+ if [ "$CC" = "clang" ]; then >+ # Disregard cast alignment errors until DPDK is fixed >+ EXTRA_OPTS="$EXTRA_OPTS -Wno-cast-align" >+ fi >+ EXTRA_OPTS="$EXTRA_OPTS --with-dpdk=./dpdk-$DPDK_VER/build" > elif [ "$CC" != "clang" ]; then > # DPDK headers currently trigger sparse errors > SPARSE_FLAGS="$SPARSE_FLAGS -Wsparse-error" >diff --git a/INSTALL.DPDK.md b/INSTALL.DPDK.md >index aae97a5..899763f 100644 >--- a/INSTALL.DPDK.md >+++ b/INSTALL.DPDK.md >@@ -16,13 +16,13 @@ OVS needs a system with 1GB hugepages support. > Building and Installing: > ------------------------ > >-Required DPDK 1.8.0, `fuse`, `fuse-devel` (`libfuse-dev` on Debian/Ubuntu) >+Required DPDK 2.0, `fuse`, `fuse-devel` (`libfuse-dev` on Debian/Ubuntu) > > 1. Configure build & install DPDK: > 1. Set `$DPDK_DIR` > > ``` >- export DPDK_DIR=/usr/src/dpdk-1.8.0 >+ export DPDK_DIR=/usr/src/dpdk-2.0 > cd $DPDK_DIR > ``` > >@@ -32,9 +32,12 @@ Required DPDK 1.8.0, `fuse`, `fuse-devel` (`libfuse-dev` on >Debian/Ubuntu) > `CONFIG_RTE_BUILD_COMBINE_LIBS=y` > > Update `config/common_linuxapp` so that DPDK is built with vhost >- libraries: >+ libraries; currently, OVS only supports vhost-cuse, so DPDK vhost-user >+ libraries should be explicitly turned off (they are enabled by default >+ in DPDK 2.0). > > `CONFIG_RTE_LIBRTE_VHOST=y` >+ `CONFIG_RTE_LIBRTE_VHOST_USER=n` > > Then run `make install` to build and install the library. > For default install without IVSHMEM: >@@ -65,10 +68,12 @@ Required DPDK 1.8.0, `fuse`, `fuse-devel` (`libfuse-dev` on >Debian/Ubuntu) > ``` > cd $(OVS_DIR)/openvswitch > ./boot.sh >- ./configure --with-dpdk=$DPDK_BUILD >+ ./configure --with-dpdk=$DPDK_BUILD [CFLAGS="-g -O2 -Wno-cast-align"] > make > ``` > >+ Note: 'clang' users may specify the '-Wno-cast-align' flag to suppress >DPDK cast-align >warnings. >+ > To have better performance one can enable aggressive compiler optimizations > and > use the special instructions(popcnt, crc32) that may not be available on all > machines. Instead of typing `make`, type: >diff --git a/acinclude.m4 b/acinclude.m4 >index b09f2f2..5988c1f 100644 >--- a/acinclude.m4 >+++ b/acinclude.m4 >@@ -205,7 +205,7 @@ AC_DEFUN([OVS_CHECK_DPDK], [ > CFLAGS="$ovs_save_CFLAGS" > LDFLAGS="$ovs_save_LDFLAGS" > OVS_LDFLAGS="$OVS_LDFLAGS -L$DPDK_LIB_DIR" >- OVS_CFLAGS="$OVS_CFLAGS -I$DPDK_INCLUDE" >+ OVS_CFLAGS="$OVS_CFLAGS -I$DPDK_INCLUDE -mssse3" > > # DPDK pmd drivers are not linked unless --whole-archive is used. > # >diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c >index f69154b..5ab119a 100644 >--- a/lib/netdev-dpdk.c >+++ b/lib/netdev-dpdk.c >@@ -117,8 +117,7 @@ static const struct rte_eth_conf port_conf = { > .rx_adv_conf = { > .rss_conf = { > .rss_key = NULL, >- .rss_hf = ETH_RSS_IPV4_TCP | ETH_RSS_IPV4 | ETH_RSS_IPV6 >- | ETH_RSS_IPV4_UDP | ETH_RSS_IPV6_TCP | ETH_RSS_IPV6_UDP, >+ .rss_hf = ETH_RSS_IP | ETH_RSS_UDP | ETH_RSS_TCP, > }, > }, > .txmode = { >-- >1.9.3 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev