[ovs-git] [openvswitch/ovs] e50547: netdev-afxdp: Add need_wakeup support.

William Tu noreply at github.com
Tue Oct 29 19:34:49 UTC 2019


  Branch: refs/heads/master
  Home:   https://github.com/openvswitch/ovs
  Commit: e50547b51a4362a53f6a4d1af90ee32837ed664e
      https://github.com/openvswitch/ovs/commit/e50547b51a4362a53f6a4d1af90ee32837ed664e
  Author: William Tu <u9012063 at gmail.com>
  Date:   2019-10-29 (Tue, 29 Oct 2019)

  Changed paths:
    M Documentation/intro/install/afxdp.rst
    M NEWS
    M acinclude.m4
    M lib/netdev-afxdp.c
    M lib/netdev-linux-private.h
    M vswitchd/vswitch.xml

  Log Message:
  -----------
  netdev-afxdp: Add need_wakeup support.

The patch adds support for using need_wakeup flag in AF_XDP rings.
A new option, use-need-wakeup, is added.  When this option is used,
it means that OVS has to explicitly wake up the kernel RX, using poll()
syscall and wake up TX, using sendto() syscall. This feature improves
the performance by avoiding unnecessary sendto syscalls for TX.
For RX, instead of kernel always busy-spinning on fille queue, OVS wakes
up the kernel RX processing when fill queue is replenished.

The need_wakeup feature is merged into Linux kernel bpf-next tee with commit
77cd0d7b3f25 ("xsk: add support for need_wakeup flag in AF_XDP rings") and
OVS enables it by default, if libbpf supports it.  If users enable it but
runs in an older version of libbpf, then the need_wakeup feature has no effect,
and a warning message is logged.

For virtual interface, it's better set use-need-wakeup=false, since
the virtual device's AF_XDP xmit is synchronous: the sendto syscall
enters kernel and process the TX packet on tx queue directly.

On Intel Xeon E5-2620 v3 2.4GHz system, performance of physical port
to physical port improves from 6.1Mpps to 7.3Mpps.

Suggested-by: Ilya Maximets <i.maximets at ovn.org>
Signed-off-by: William Tu <u9012063 at gmail.com>
Acked-by: Eelco Chaudron <echaudro at redhat.com>
Signed-off-by: Ilya Maximets <i.maximets at ovn.org>




More information about the git mailing list