diff options
author | Magnus Karlsson | 2020-08-28 10:26:24 +0200 |
---|---|---|
committer | Daniel Borkmann | 2020-08-31 21:15:04 +0200 |
commit | 9647c57b11e563f5b33a49ef72b347753917c21c (patch) | |
tree | b0f10d39c70160b836327b848855499a0594931c /net/xdp | |
parent | 8ef4e27eb3f03edfbfbe5657b8061f2a47757037 (diff) |
xsk: i40e: ice: ixgbe: mlx5: Test for dma_need_sync earlier for better performance
Test for dma_need_sync earlier to increase
performance. xsk_buff_dma_sync_for_cpu() takes an xdp_buff as
parameter and from that the xsk_buff_pool reference is dug out. Perf
shows that this dereference causes a lot of cache misses. But as the
buffer pool is now sent down to the driver at zero-copy initialization
time, we might as well use this pointer directly, instead of going via
the xsk_buff and we can do so already in xsk_buff_dma_sync_for_cpu()
instead of in xp_dma_sync_for_cpu. This gets rid of these cache
misses.
Throughput increases with 3% for the xdpsock l2fwd sample application
on my machine.
Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Björn Töpel <bjorn.topel@intel.com>
Link: https://lore.kernel.org/bpf/1598603189-32145-11-git-send-email-magnus.karlsson@intel.com
Diffstat (limited to 'net/xdp')
0 files changed, 0 insertions, 0 deletions