Hi! This set adds a small batching and cache mechanism to the driver. Map dumps require two operations per element - get next, and lookup. Each of those needs a round trip to the device, and on a loaded system scheduling out and in of the dumping process. This set makes the driver request a number of entries at the same time, and if no operation which would modify the map happens from the host side those entries are used to serve lookup requests for up to 250us, at which point they are considered stale.
This set has been measured to provide almost 4x dumping speed improvement, Jaco says: OLD dump times 500 000 elements: 26.1s 1 000 000 elements: 54.5s NEW dump times 500 000 elements: 7.6s 1 000 000 elements: 16.5s Jakub Kicinski (2): nfp: bpf: rework MTU checking nfp: bpf: add simple map op cache drivers/net/ethernet/netronome/nfp/bpf/cmsg.c | 187 ++++++++++++++++-- drivers/net/ethernet/netronome/nfp/bpf/fw.h | 1 + drivers/net/ethernet/netronome/nfp/bpf/main.c | 33 ++++ drivers/net/ethernet/netronome/nfp/bpf/main.h | 24 +++ .../net/ethernet/netronome/nfp/bpf/offload.c | 3 + drivers/net/ethernet/netronome/nfp/nfp_net.h | 2 +- .../ethernet/netronome/nfp/nfp_net_common.c | 9 +- 7 files changed, 239 insertions(+), 20 deletions(-) -- 2.21.0