Commit 323ebb61e32b ("net: use listified RX for handling GRO_NORMAL skbs") have introduced a sysctl variable gro_normal_batch for defining a limit for listified Rx of GRO_NORMAL skbs. The initial value of 8 is purely arbitrary and has been chosen, I believe, as a minimal safe default. However, several tests show that it's rather suboptimal and doesn't allow to take a full advantage of listified processing. The best and the most balanced results have been achieved with a batches of 16 skbs per flush. So double the default value to give a yet another boost for Rx path. It remains configurable via sysctl anyway, so may be fine-tuned for each hardware.
Signed-off-by: Alexander Lobakin <aloba...@dlink.ru> --- net/core/dev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/core/dev.c b/net/core/dev.c index a33f56b439ce..4f60444bb766 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -4189,7 +4189,7 @@ int dev_weight_tx_bias __read_mostly = 1; /* bias for output_queue quota */ int dev_rx_weight __read_mostly = 64; int dev_tx_weight __read_mostly = 64; /* Maximum number of GRO_NORMAL skbs to batch up for list-RX */ -int gro_normal_batch __read_mostly = 8; +int gro_normal_batch __read_mostly = 16; /* Called with irq disabled */ static inline void ____napi_schedule(struct softnet_data *sd, -- 2.23.0