diff options
author | Edward Cree <ecree@solarflare.com> | 2019-08-06 14:53:55 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-08-08 18:22:29 -0700 |
commit | 323ebb61e32b478e2432c5a3cbf9e2ca678a9609 (patch) | |
tree | 8a644610f9b44ed5ebf658bf23c7745b66c015a7 /net/bpf | |
parent | 67270136949e1d55e1a614b0a2e053b7762384ef (diff) | |
download | linux-323ebb61e32b478e2432c5a3cbf9e2ca678a9609.tar.bz2 |
net: use listified RX for handling GRO_NORMAL skbs
When GRO decides not to coalesce a packet, in napi_frags_finish(), instead
of passing it to the stack immediately, place it on a list in the napi
struct. Then, at flush time (napi_complete_done(), napi_poll(), or
napi_busy_loop()), call netif_receive_skb_list_internal() on the list.
We'd like to do that in napi_gro_flush(), but it's not called if
!napi->gro_bitmask, so we have to do it in the callers instead. (There are
a handful of drivers that call napi_gro_flush() themselves, but it's not
clear why, or whether this will affect them.)
Because a full 64 packets is an inefficiently large batch, also consume the
list whenever it exceeds gro_normal_batch, a new net/core sysctl that
defaults to 8.
Signed-off-by: Edward Cree <ecree@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bpf')
0 files changed, 0 insertions, 0 deletions