]> git.baikalelectronics.ru Git - kernel.git/commit
net: sched: explicit locking in gso_cpu fallback
authorJohn Fastabend <john.fastabend@gmail.com>
Thu, 7 Dec 2017 17:55:45 +0000 (09:55 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 8 Dec 2017 18:32:25 +0000 (13:32 -0500)
commit323970d93e4ffab4fda9e448a41ed503bc1028de
tree7003db6a43cb7a0853a497ce33e64333756e4b87
parentf7bddafad2d021027aa34d0759aa3ac8c8d9b67a
net: sched: explicit locking in gso_cpu fallback

This work is preparing the qdisc layer to support egress lockless
qdiscs. If we are running the egress qdisc lockless in the case we
overrun the netdev, for whatever reason, the netdev returns a busy
error code and the skb is parked on the gso_skb pointer. With many
cores all hitting this case at once its possible to have multiple
sk_buffs here so we turn gso_skb into a queue.

This should be the edge case and if we see this frequently then
the netdev/qdisc layer needs to back off.

Signed-off-by: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/sch_generic.h
net/sched/sch_generic.c