[ovs-dev] [PATCHv6] netdev-afxdp: Add need_wakeup supprt.
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
> 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
> up the kernel RX processing when fill queue is replenished.
> The need_wakeup feature is merged into Linux kernel bpf-next tee with
> 77cd0d7b3f25 ("xsk: add support for need_wakeup flag in AF_XDP rings")
> OVS enables it by default, if libbpf supports it. If users enable it
> 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