[ovs-dev] [PATCHv4] netdev-afxdp: Add need_wakeup supprt.
echaudro at redhat.com
Wed Sep 18 10:46:08 UTC 2019
On 17 Sep 2019, at 20:36, William Tu wrote:
> 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 5.3.0-rc1 and OVS
> enables it by default. Running the feature before this version causes
> xsk bind fails, please use options:use_need_wakeup=false to disable 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.
> I tested on kernel 5.3.0-rc3 using its libbpf. On Intel Xeon E5-2620
> v3 2.4GHz system, performance of physical port to physical port improves
> from 6.1Mpps to 7.3Mpps. Testing on 5.2.0-rc6 using libbpf from 5.3.0-rc3
> does not work due to libbpf API change. Users have to use the older
> libbpf for older kernel.
> 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>
More information about the dev