Re: [PATCH bpf-next v2 0/8] Simplify xdp_do_redirect_map()/xdp_do_flush_map() and XDP maps

Alexei Starovoitov
2019-12-20T05:21:54Z

On Wed, Dec 18, 2019 at 10:10 PM Björn Töpel <bjorn.topel@gmail.com> wrote:
>
> This series aims to simplify the XDP maps and
> xdp_do_redirect_map()/xdp_do_flush_map(), and to crank out some more
> performance from XDP_REDIRECT scenarios.
>
> The first part of the series simplifies all XDP_REDIRECT capable maps,
> so that __XXX_flush_map() does not require the map parameter, by
> moving the flush list from the map to global scope.
>
> This results in that the map_to_flush member can be removed from
> struct bpf_redirect_info, and its corresponding logic.
>
> Simpler code, and more performance due to that checks/code per-packet
> is moved to flush.
>
> Pre-series performance:
> $ sudo taskset -c 22 ./xdpsock -i enp134s0f0 -q 20 -n 1 -r -z
>
> sock0@enp134s0f0:20 rxdrop xdp-drv
> pps pkts 1.00
> rx 20,797,350 230,942,399
> tx 0 0
>
> $ sudo ./xdp_redirect_cpu --dev enp134s0f0 --cpu 22 xdp_cpu_map0
>
> Running XDP/eBPF prog_name:xdp_cpu_map5_lb_hash_ip_pairs
> XDP-cpumap CPU:to pps drop-pps extra-info
> XDP-RX 20 7723038 0 0
> XDP-RX total 7723038 0
> cpumap_kthread total 0 0 0
> redirect_err total 0 0
> xdp_exception total 0 0
>
> Post-series performance:
> $ sudo taskset -c 22 ./xdpsock -i enp134s0f0 -q 20 -n 1 -r -z
>
> sock0@enp134s0f0:20 rxdrop xdp-drv
> pps pkts 1.00
> rx 21,524,979 86,835,327
> tx 0 0
>
> $ sudo ./xdp_redirect_cpu --dev enp134s0f0 --cpu 22 xdp_cpu_map0
>
> Running XDP/eBPF prog_name:xdp_cpu_map5_lb_hash_ip_pairs
> XDP-cpumap CPU:to pps drop-pps extra-info
> XDP-RX 20 7840124 0 0
> XDP-RX total 7840124 0
> cpumap_kthread total 0 0 0
> redirect_err total 0 0
> xdp_exception total 0 0
>
> Results: +3.5% and +1.5% for the ubenchmarks.
>
> v1->v2 [1]:
> * Removed 'unused-variable' compiler warning (Jakub)
>
> [1] https://lore.kernel.org/bpf/20191218105400.2895-1-bjorn.topel@gmail.com/

My understanding that outstanding discussions are not objecting to the
core ideas
of the patch set, hence applied. Thanks