net: convert gro_count to bitmask
authorLi RongQing <lirongqing@baidu.com>
Fri, 13 Jul 2018 06:41:36 +0000 (14:41 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 16 Jul 2018 20:40:54 +0000 (13:40 -0700)
commitd9f37d01e294e5338aa3e9d3b2eda61b59b619df
tree9755e0a61d4dab5761a4d015745b58f79947e8cc
parent48559af3454c262543fe28d4730a92234f887881
net: convert gro_count to bitmask

gro_hash size is 192 bytes, and uses 3 cache lines, if there is few
flows, gro_hash may be not fully used, so it is unnecessary to iterate
all gro_hash in napi_gro_flush(), to occupy unnecessary cacheline.

convert gro_count to a bitmask, and rename it as gro_bitmask, each bit
represents a element of gro_hash, only flush a gro_hash element if the
related bit is set, to speed up napi_gro_flush().

and update gro_bitmask only if it will be changed, to reduce cache
update

Suggested-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Li RongQing <lirongqing@baidu.com>
Cc: Stefano Brivio <sbrivio@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netdevice.h
net/core/dev.c