Merge branch 'net-group-together-hot-data'
Eric Dumazet says: ==================== net: group together hot data While our recent structure reorganizations were focused on increasing max throughput, there is still an area where improvements are much needed. In many cases, a cpu handles one packet at a time, instead of a nice batch. Hardware interrupt. -> Software interrupt. -> Network/Protocol stacks. If the cpu was idle or busy in other layers, it has to pull many cache lines. This series adds a new net_hotdata structure, where some critical (and read-mostly) data used in rx and tx path is packed in a small number of cache lines. Synthetic benchmarks will not see much difference, but latency of single packet should improve. net_hodata current size on 64bit is 416 bytes, but might grow in the future. Also move RPS definitions to a new include file. ==================== Link: https://lore.kernel.org/r/20240306160031.874438-1-edumazet@google.com Signed-off-by:Jakub Kicinski <kuba@kernel.org>
Showing
- drivers/net/ethernet/intel/ice/ice_arfs.c 1 addition, 0 deletionsdrivers/net/ethernet/intel/ice/ice_arfs.c
- drivers/net/ethernet/mellanox/mlx4/en_netdev.c 1 addition, 0 deletionsdrivers/net/ethernet/mellanox/mlx4/en_netdev.c
- drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c 1 addition, 0 deletionsdrivers/net/ethernet/mellanox/mlx5/core/en_arfs.c
- drivers/net/ethernet/sfc/rx_common.c 1 addition, 0 deletionsdrivers/net/ethernet/sfc/rx_common.c
- drivers/net/ethernet/sfc/siena/rx_common.c 1 addition, 0 deletionsdrivers/net/ethernet/sfc/siena/rx_common.c
- drivers/net/tun.c 1 addition, 0 deletionsdrivers/net/tun.c
- include/linux/netdevice.h 0 additions, 88 deletionsinclude/linux/netdevice.h
- include/linux/skbuff.h 0 additions, 1 deletioninclude/linux/skbuff.h
- include/net/gro.h 2 additions, 3 deletionsinclude/net/gro.h
- include/net/hotdata.h 52 additions, 0 deletionsinclude/net/hotdata.h
- include/net/protocol.h 3 additions, 0 deletionsinclude/net/protocol.h
- include/net/rps.h 125 additions, 0 deletionsinclude/net/rps.h
- include/net/sock.h 0 additions, 35 deletionsinclude/net/sock.h
- kernel/bpf/cpumap.c 3 additions, 1 deletionkernel/bpf/cpumap.c
- net/bpf/test_run.c 3 additions, 1 deletionnet/bpf/test_run.c
- net/core/Makefile 1 addition, 0 deletionsnet/core/Makefile
- net/core/dev.c 22 additions, 36 deletionsnet/core/dev.c
- net/core/dev.h 0 additions, 3 deletionsnet/core/dev.h
- net/core/gro.c 6 additions, 9 deletionsnet/core/gro.c
- net/core/gro_cells.c 2 additions, 1 deletionnet/core/gro_cells.c
Please register or sign in to comment