aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/neighbour.c
diff options
context:
space:
mode:
authorPeter Oskolkov <posk@google.com>2018-12-04 11:55:56 -0800
committerDavid S. Miller <davem@davemloft.net>2018-12-05 20:18:41 -0800
commitd66280b12bd7ad6345df4dee2ee1c20f5902242d (patch)
tree888236ef605669fde8635a6a1c5e52af173e9b8f /net/core/neighbour.c
parentMerge branch 'net-bridge-convert-multicast-to-generic-rhashtable' (diff)
downloadlinux-dev-d66280b12bd7ad6345df4dee2ee1c20f5902242d.tar.xz
linux-dev-d66280b12bd7ad6345df4dee2ee1c20f5902242d.zip
net: netem: use a list in addition to rbtree
When testing high-bandwidth TCP streams with large windows, high latency, and low jitter, netem consumes a lot of CPU cycles doing rbtree rebalancing. This patch uses a linear list/queue in addition to the rbtree: if an incoming packet is past the tail of the linear queue, it is added there, otherwise it is inserted into the rbtree. Without this patch, perf shows netem_enqueue, netem_dequeue, and rb_* functions among the top offenders. With this patch, only netem_enqueue is noticeable if jitter is low/absent. Suggested-by: Eric Dumazet <edumazet@google.com> Signed-off-by: Peter Oskolkov <posk@google.com> Reviewed-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/neighbour.c')
0 files changed, 0 insertions, 0 deletions