On Wed, Dec 18, 2019 at 10:10 PM Björn Töpel <bjorn.topel@xxxxxxxxx> 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@xxxxxxxxx/ My understanding that outstanding discussions are not objecting to the core ideas of the patch set, hence applied. Thanks