[ovs-dev] [PATCH V4 1/2] netdev-dpdk: DPDK v17.11 upgrade

Jan Scheurich jan.scheurich at ericsson.com
Wed Dec 6 16:50:27 UTC 2017


I tested this patch series together with my PMD Performance Metrics and Supervision patch (https://mail.openvswitch.org/pipermail/ovs-dev/2017-November/341099.html) and it worked out of the box. 

The new rte_vhost API call introduced in DPDK 17.08 my patch uses to read the vhostuser queue length compiles and works with DPDK 17.11.

Within measurement accuracy the performance in our standard PVP L3-VPN over VXLAN benchmark is the same for DPDK 17.05 and 17.11 (not using IOMMU of course).

Regards, Jan

Acked-by: Jan Scheurich <jan.scheurich at ericsson.com>
Tested-by: Jan Scheurich <jan.scheurich at ericsson.com>

> -----Original Message-----
> From: Mark Kavanagh [mailto:mark.b.kavanagh at intel.com]
> Sent: Monday, 04 December, 2017 12:16
> To: dev at openvswitch.org
> Cc: ktraynor at redhat.com; maxime.coquelin at redhat.com; i.maximets at samsung.com; Jan Scheurich <jan.scheurich at ericsson.com>;
> sean.k.mooney at intel.com; ian.stokes at intel.com; Mark Kavanagh <mark.b.kavanagh at intel.com>
> Subject: [ovs-dev][PATCH V4 1/2] netdev-dpdk: DPDK v17.11 upgrade
> 
> This commit adds support for DPDK v17.11:
> - minor updates to accomodate DPDK API changes
> - update references to DPDK version in Documentation
> - update DPDK version in travis' linux-build script
> 
> Signed-off-by: Mark Kavanagh <mark.b.kavanagh at intel.com>
> Acked-by: Maxime Coquelin <maxime.coquelin at redhat.com>
> Acked-by: Ciara Loftus <ciara.loftus at intel.com>
> ---
>  .travis/linux-build.sh                   |  2 +-
>  Documentation/faq/releases.rst           |  1 +
>  Documentation/intro/install/dpdk.rst     | 10 +++++-----
>  Documentation/topics/dpdk/ring.rst       |  2 +-
>  Documentation/topics/dpdk/vhost-user.rst |  8 ++++----
>  NEWS                                     |  2 ++
>  lib/netdev-dpdk.c                        |  5 +++--
>  7 files changed, 17 insertions(+), 13 deletions(-)
> 
> diff --git a/.travis/linux-build.sh b/.travis/linux-build.sh
> index 4d6459f..ed28ee4 100755
> --- a/.travis/linux-build.sh
> +++ b/.travis/linux-build.sh
> @@ -81,7 +81,7 @@ fi
> 
>  if [ "$DPDK" ]; then
>      if [ -z "$DPDK_VER" ]; then
> -        DPDK_VER="17.05.2"
> +        DPDK_VER="17.11"
>      fi
>      install_dpdk $DPDK_VER
>      if [ "$CC" = "clang" ]; then
> diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
> index d903b06..62a1957 100644
> --- a/Documentation/faq/releases.rst
> +++ b/Documentation/faq/releases.rst
> @@ -164,6 +164,7 @@ Q: What DPDK version does each Open vSwitch release work with?
>      2.6.x        16.07.2
>      2.7.x        16.11.3
>      2.8.x        17.05.2
> +    2.9.x        17.11
>      ============ =======
> 
>  Q: I get an error like this when I configure Open vSwitch:
> diff --git a/Documentation/intro/install/dpdk.rst b/Documentation/intro/install/dpdk.rst
> index bb69ae5..3fecb5c 100644
> --- a/Documentation/intro/install/dpdk.rst
> +++ b/Documentation/intro/install/dpdk.rst
> @@ -40,7 +40,7 @@ Build requirements
>  In addition to the requirements described in :doc:`general`, building Open
>  vSwitch with DPDK will require the following:
> 
> -- DPDK 17.05.2
> +- DPDK 17.11
> 
>  - A `DPDK supported NIC`_
> 
> @@ -69,9 +69,9 @@ Install DPDK
>  #. Download the `DPDK sources`_, extract the file and set ``DPDK_DIR``::
> 
>         $ cd /usr/src/
> -       $ wget http://fast.dpdk.org/rel/dpdk-17.05.2.tar.xz
> -       $ tar xf dpdk-17.05.2.tar.xz
> -       $ export DPDK_DIR=/usr/src/dpdk-stable-17.05.2
> +       $ wget http://fast.dpdk.org/rel/dpdk-17.11.tar.xz
> +       $ tar xf dpdk-17.11.tar.xz
> +       $ export DPDK_DIR=/usr/src/dpdk-17.11
>         $ cd $DPDK_DIR
> 
>  #. (Optional) Configure DPDK as a shared library
> @@ -583,7 +583,7 @@ Limitations
>    The latest list of validated firmware versions can be found in the `DPDK
>    release notes`_.
> 
> -.. _DPDK release notes: http://dpdk.org/doc/guides/rel_notes/release_17_05.html
> +.. _DPDK release notes: http://dpdk.org/doc/guides/rel_notes/release_17_11.html
> 
>  Reporting Bugs
>  --------------
> diff --git a/Documentation/topics/dpdk/ring.rst b/Documentation/topics/dpdk/ring.rst
> index ad9d7a5..8d0ede8 100644
> --- a/Documentation/topics/dpdk/ring.rst
> +++ b/Documentation/topics/dpdk/ring.rst
> @@ -77,4 +77,4 @@ DPDK. However, this functionality was removed because:
>  - :doc:`vhost-user interfaces <vhost-user>` are the defacto DPDK-based path to
>    guests
> 
> -.. _DPDK documentation: https://dpdk.readthedocs.io/en/v17.05/prog_guide/ring_lib.html
> +.. _DPDK documentation: https://dpdk.readthedocs.io/en/v17.11/prog_guide/ring_lib.html
> diff --git a/Documentation/topics/dpdk/vhost-user.rst b/Documentation/topics/dpdk/vhost-user.rst
> index 74ac06e..5347995 100644
> --- a/Documentation/topics/dpdk/vhost-user.rst
> +++ b/Documentation/topics/dpdk/vhost-user.rst
> @@ -292,9 +292,9 @@ To begin, instantiate a guest as described in :ref:`dpdk-vhost-user` or
>  DPDK sources to VM and build DPDK::
> 
>      $ cd /root/dpdk/
> -    $ wget http://fast.dpdk.org/rel/dpdk-17.05.2.tar.xz
> -    $ tar xf dpdk-17.05.2.tar.xz
> -    $ export DPDK_DIR=/root/dpdk/dpdk-stable-17.05.2
> +    $ wget http://fast.dpdk.org/rel/dpdk-17.11.tar.xz
> +    $ tar xf dpdk-17.11.tar.xz
> +    $ export DPDK_DIR=/root/dpdk/dpdk-17.11
>      $ export DPDK_TARGET=x86_64-native-linuxapp-gcc
>      $ export DPDK_BUILD=$DPDK_DIR/$DPDK_TARGET
>      $ cd $DPDK_DIR
> @@ -378,7 +378,7 @@ Sample XML
>          </disk>
>          <disk type='dir' device='disk'>
>            <driver name='qemu' type='fat'/>
> -          <source dir='/usr/src/dpdk-stable-17.05.2'/>
> +          <source dir='/usr/src/dpdk-17.11'/>
>            <target dev='vdb' bus='virtio'/>
>            <readonly/>
>          </disk>
> diff --git a/NEWS b/NEWS
> index 427c8f8..d4a1c9a 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -13,6 +13,8 @@ Post-v2.8.0
>       * ovn-ctl: New commands run_nb_ovsdb and run_sb_ovsdb.
>     - Linux kernel 4.13
>       * Add support for compiling OVS with the latest Linux 4.13 kernel
> +   - DPDK:
> +     * Add support for DPDK v17.11
> 
>  v2.8.0 - 31 Aug 2017
>  --------------------
> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
> index faff842..f552444 100644
> --- a/lib/netdev-dpdk.c
> +++ b/lib/netdev-dpdk.c
> @@ -26,6 +26,7 @@
>  #include <sys/socket.h>
>  #include <linux/if.h>
> 
> +#include <rte_bus_pci.h>
>  #include <rte_config.h>
>  #include <rte_cycles.h>
>  #include <rte_errno.h>
> @@ -140,8 +141,8 @@ static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(5, 20);
> 
>  #define DPDK_ETH_PORT_ID_INVALID    RTE_MAX_ETHPORTS
> 
> -/* DPDK library uses uint8_t for port_id. */
> -typedef uint8_t dpdk_port_t;
> +/* DPDK library uses uint16_t for port_id. */
> +typedef uint16_t dpdk_port_t;
> 
>  #define VHOST_ENQ_RETRY_NUM 8
>  #define IF_NAME_SZ (PATH_MAX > IFNAMSIZ ? PATH_MAX : IFNAMSIZ)
> --
> 2.7.4



More information about the dev mailing list