Message ID | 1512386159-236028-2-git-send-email-mark.b.kavanagh@intel.com |
---|---|
State | Changes Requested |
Delegated to: | Ian Stokes |
Headers | show |
Series | DPDK v17.11 Support | expand |
Hello, I tested it. It is ok for my meter patch: https://mail.openvswitch.org/pipermail/ovs-dev/2017-December/341544.html > 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@intel.com> > Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com> > Acked-by: Ciara Loftus <ciara.loftus@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)
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@ericsson.com> Tested-by: Jan Scheurich <jan.scheurich@ericsson.com> > -----Original Message----- > From: Mark Kavanagh [mailto:mark.b.kavanagh@intel.com] > Sent: Monday, 04 December, 2017 12:16 > To: dev@openvswitch.org > Cc: ktraynor@redhat.com; maxime.coquelin@redhat.com; i.maximets@samsung.com; Jan Scheurich <jan.scheurich@ericsson.com>; > sean.k.mooney@intel.com; ian.stokes@intel.com; Mark Kavanagh <mark.b.kavanagh@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@intel.com> > Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com> > Acked-by: Ciara Loftus <ciara.loftus@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
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)