[PATCH bpf-next 0/6] nfp: bpf: improve efficiency of offloaded perf events
Hi! This set is focused on improving the performance of perf events reported from BPF offload. Perf events can now be received on packet data queues, which significantly improves the performance (from total of 0.5 Msps to 5Msps per core). To get to this performance we need a fast path for control messages which will operate on raw buffers and recycle them immediately. Patch 5 replaces the map pointers for perf maps with map IDs. We look the pointers up in a hashtable, anyway, to validate they are correct, so there is no performance difference. Map IDs have the advantage of being easier to understand for users in case of errors (we no longer print raw pointers to the logs). Last patch improves info messages about map offload. Jakub Kicinski (6): nfp: move repr handling on RX path nfp: allow control message reception on data queues nfp: bpf: pass raw data buffer to nfp_bpf_event_output() nfp: bpf: allow receiving perf events on data queues nfp: bpf: remember maps by ID nfp: bpf: improve map offload info messages drivers/net/ethernet/netronome/nfp/bpf/cmsg.c | 25 +++- drivers/net/ethernet/netronome/nfp/bpf/jit.c | 12 ++-- drivers/net/ethernet/netronome/nfp/bpf/main.c | 5 +- drivers/net/ethernet/netronome/nfp/bpf/main.h | 9 ++- .../net/ethernet/netronome/nfp/bpf/offload.c | 63 +++ drivers/net/ethernet/netronome/nfp/nfp_app.c | 2 + drivers/net/ethernet/netronome/nfp/nfp_app.h | 17 + .../ethernet/netronome/nfp/nfp_net_common.c | 40 +++- .../net/ethernet/netronome/nfp/nfp_net_ctrl.h | 1 + 9 files changed, 125 insertions(+), 49 deletions(-) -- 2.17.1
Re: [PATCH bpf-next 0/6] nfp: bpf: improve efficiency of offloaded perf events
On 07/26/2018 04:53 AM, Jakub Kicinski wrote: > Hi! > > This set is focused on improving the performance of perf events > reported from BPF offload. Perf events can now be received on > packet data queues, which significantly improves the performance > (from total of 0.5 Msps to 5Msps per core). To get to this > performance we need a fast path for control messages which will > operate on raw buffers and recycle them immediately. > > Patch 5 replaces the map pointers for perf maps with map IDs. > We look the pointers up in a hashtable, anyway, to validate they > are correct, so there is no performance difference. Map IDs > have the advantage of being easier to understand for users in > case of errors (we no longer print raw pointers to the logs). > > Last patch improves info messages about map offload. > > Jakub Kicinski (6): > nfp: move repr handling on RX path > nfp: allow control message reception on data queues > nfp: bpf: pass raw data buffer to nfp_bpf_event_output() > nfp: bpf: allow receiving perf events on data queues > nfp: bpf: remember maps by ID > nfp: bpf: improve map offload info messages > > drivers/net/ethernet/netronome/nfp/bpf/cmsg.c | 25 +++- > drivers/net/ethernet/netronome/nfp/bpf/jit.c | 12 ++-- > drivers/net/ethernet/netronome/nfp/bpf/main.c | 5 +- > drivers/net/ethernet/netronome/nfp/bpf/main.h | 9 ++- > .../net/ethernet/netronome/nfp/bpf/offload.c | 63 +++ > drivers/net/ethernet/netronome/nfp/nfp_app.c | 2 + > drivers/net/ethernet/netronome/nfp/nfp_app.h | 17 + > .../ethernet/netronome/nfp/nfp_net_common.c | 40 +++- > .../net/ethernet/netronome/nfp/nfp_net_ctrl.h | 1 + > 9 files changed, 125 insertions(+), 49 deletions(-) > Applied to bpf-next, thanks Jakub!