[ovs-git] [openvswitch/ovs] b4c5f0: netdev-dpdk: Deprecate ring ports.

Ilya Maximets noreply at github.com
Thu Nov 28 17:24:58 UTC 2019


  Branch: refs/heads/master
  Home:   https://github.com/openvswitch/ovs
  Commit: b4c5f00c339ba2e2f45afc19cd7311069f98fbc8
      https://github.com/openvswitch/ovs/commit/b4c5f00c339ba2e2f45afc19cd7311069f98fbc8
  Author: Ilya Maximets <i.maximets at ovn.org>
  Date:   2019-11-28 (Thu, 28 Nov 2019)

  Changed paths:
    M Documentation/topics/dpdk/ring.rst
    M NEWS
    M lib/netdev-dpdk.c

  Log Message:
  -----------
  netdev-dpdk: Deprecate ring ports.

'dpdkr' a.k.a. DPDK ring ports has really poor support in OVS and not
tested on a regular basis.  These ports are intended to work via
shared memory with another DPDK secondary process, but there are lots
of limitations for using this functionality in practice.  Most of them
connected with running secondary DPDK application and memory layout
issues.  More details are available in DPDK guide:
https://doc.dpdk.org/guides-18.11/prog_guide/multi_proc_support.html#multi-process-limitations

Beside the functional limitations it's also hard to use this
functionality correctly.  User must be sure that OVS and secondary DPDK
application are running on different CPU cores, which is hard because
non-PMD threads could float over available CPU cores.  This or any
other misconfiguration will likely lead to crash of OVS.

Another problem is that the user must actually build the secondary
application with the same version of DPDK that was used for OVS build.

Above issues are same as we have while using DPDK pdump.

Beside that, current implementation in OVS is not able to free
allocated rings that could lead to memory exhausting.

Initially these ports was added to use with IVSHMEM for a fast
zero-copy HOST<-->VM communication.  However, IVSHMEM is not used
anymore.  IVSHMEM support was removed from DPDK in 16.11 release
(instructions for IVSHMEM were removed from the OVS docs almost 3 years
ago by commit 90ca71dd317f ("doc: Remove ivshmem instructions.")) and
the patch for QEMU for using regular files as a device backend is no
longer available.  That makes DPDK ring ports barely useful in real
virtualization environment.

This patch adds a deprecation warnings for run-time port creation
and documentation.  Claiming to completely remove this functionality
from OVS in one of the next releases.

Signed-off-by: Ilya Maximets <i.maximets at ovn.org>
Acked-by: Flavio Leitner <fbl at sysclose.org>
Acked-by: Ian Stokes <ian.stokes at intel.com>
Acked-by: Aaron Conole <aconole at redhat.com>
Acked-by: David Marchand <david.marchand at redhat.com>
Acked-by: Kevin Traynor <ktraynor at redhat.com>


  Commit: 9965fef8db795fbf06ca9e6e65d1f5f19740d78d
      https://github.com/openvswitch/ovs/commit/9965fef8db795fbf06ca9e6e65d1f5f19740d78d
  Author: Ilya Maximets <i.maximets at ovn.org>
  Date:   2019-11-28 (Thu, 28 Nov 2019)

  Changed paths:
    M lib/dp-packet.c
    M lib/dp-packet.h

  Log Message:
  -----------
  dp-packet: Fix clearing/copying of memory layout flags.

'ol_flags' of DPDK mbuf could contain bits responsible for external
or indirect buffers which are not actually offload flags in a common
sense.  Clearing/copying of these flags could lead to memory leaks of
external memory chunks and crashes due to access to wrong memory.

OVS should not clear these flags while resetting offloads and also
should not copy them to the newly allocated packets.

This change is required to support DPDK 19.11, as some drivers may
return mbufs with these flags set.  However, it might be good to do
the same for DPDK 18.11, because these flags are present and should
be taken into account.

Fixes: 03f3f9c0faf8 ("dpdk: Update to use DPDK 18.11.")
Signed-off-by: Ilya Maximets <i.maximets at ovn.org>
Reviewed-by: David Marchand <david.marchand at redhat.com>
Acked-by: Ben Pfaff <blp at ovn.org>
Acked-by: Kevin Traynor <ktraynor at redhat.com>


  Commit: 89ee730a60e9cd0e70c0f1a748ef0abc2a4ebed9
      https://github.com/openvswitch/ovs/commit/89ee730a60e9cd0e70c0f1a748ef0abc2a4ebed9
  Author: Ilya Maximets <i.maximets at ovn.org>
  Date:   2019-11-28 (Thu, 28 Nov 2019)

  Changed paths:
    M ofproto/ofproto-dpif.c
    M ofproto/ofproto-provider.h

  Log Message:
  -----------
  ofproto-provider: Move datapath capabilities callback to correct section.

'get_datapath_cap' callback was mistakenly placed in
'Connection tracking' section of the 'struct dpif_class'
while belongs to the 'Datapath information'.

CC: William Tu <u9012063 at gmail.com>
Fixes: 27501802d09f ("ofproto-dpif: Expose datapath capability to ovsdb.")
Signed-off-by: Ilya Maximets <i.maximets at ovn.org>
Acked-by: William Tu <u9012063 at gmail.com>


Compare: https://github.com/openvswitch/ovs/compare/2596585bcb5b...89ee730a60e9


More information about the git mailing list