>-----Original Message-----
>From: Panu Matilainen [mailto:[email protected]]
>Sent: Thursday, April 9, 2015 8:23 AM
>To: Kavanagh, Mark B; [email protected]
>Subject: Re: [PATCH] DPDK: add support for v2.0.0
>
>On 04/08/2015 06:34 PM, Mark Kavanagh wrote:
>> Update relevant artifacts to add support for DPDK v2.0.0
>> - INSTALL.DPDK.md
>> - travis build script
>> - netdev-dpdk: fix build with unified offload types in DPDK v2.0.0
>>
>> Note that this breaks compatibility with DPDK v1.8.0
>>
>> Signed-off-by: Mark Kavanagh <[email protected]>
>> Signed-off-by: Panu Matilainen <[email protected]>
>> ---
>> .travis/build.sh | 6 +++---
>> INSTALL.DPDK.md | 10 +++++++---
>> lib/netdev-dpdk.c | 3 +--
>> 3 files changed, 11 insertions(+), 8 deletions(-)
>>
>> diff --git a/.travis/build.sh b/.travis/build.sh
>> index b6b701c..b6fe0eb 100755
>> --- a/.travis/build.sh
>> +++ b/.travis/build.sh
>> @@ -68,11 +68,11 @@ 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"
>> + # Support older versions of GCC
>> + CFLAGS="-mssse3"
>
>I'd think this is sufficiently (and better) covered by documenting it,
>as done below. But if this is to be kept, you can't just override CFLAGS
>completely, you need to append to it.
Nice catch, thanks.
>
>> EXTRA_OPTS+="--with-dpdk=./dpdk-$DPDK_VER/build"
>> elif [ $CC != "clang" ]; then
>> # DPDK headers currently trigger sparse errors
>> diff --git a/INSTALL.DPDK.md b/INSTALL.DPDK.md
>> index 60889d0..8e6f6af 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
>> ```
>>
>> @@ -66,8 +66,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
>> - make
>> + make [CFLAGS="-g -O2 -mssse3"]
>> ```
>
>This would work for one-shot builds but its better to pass the CFLAGS to
>configure so you dont need to keep passing them to every invocation of
>make. Ie
>
>./configure --with-dpdk=$DPDK_BUILD CFLAGS="-g -O2 -mssse3"
>make
Agreed.
>
>> +Note that users of older versions of GCC must pass additional CFLAGS
>> +("-g -O2 -mssse3") to 'make'. This issue has been observed with GCC versions
>> +<= 4.8.3, and is not present in GCC v4.9.2 - applicability to interim
>> versions is
>> +untested.
>>
>> To have better performance one can enable aggressive compiler
>> optimizations and
>> use the special instructions(popcnt, crc32) that may not be available on
>> all
>> 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 = {
>>
>
>The rest looks fine to me.
>
> - Panu -
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev