[ovs-dev] [PATCHv6] netdev-afxdp: Add need_wakeup supprt.

Eelco Chaudron echaudro at redhat.com
Mon Oct 28 10:46:54 UTC 2019

On 23 Oct 2019, at 23:06, 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 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>

Reviewed based on diff from previous version, also did quick compile 
test with and without need_wakeup supported kernel.
No actual performance tests ran, as my setup is in a messed up state :(

One small issue (guess can be fixed at apply time), the subject mentions 
“supprt”, it’s missing an o.

Acked-by: Eelco Chaudron <echaudro at redhat.com>

More information about the dev mailing list