]> asedeno.scripts.mit.edu Git - linux.git/commit
sch_cake: Make gso-splitting configurable from userspace
authorDave Taht <dave.taht@gmail.com>
Fri, 27 Jul 2018 02:45:10 +0000 (19:45 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 27 Jul 2018 20:38:20 +0000 (13:38 -0700)
commit2db6dc2662bab14e59517ab4b86a164cc4d2db42
tree8c8ae0fda8d997c5db8a1d27aff675dad5d433db
parent27defe9d8f6a548e26cd8d9029e5d002163ba854
sch_cake: Make gso-splitting configurable from userspace

This patch restores cake's deployed behavior at line rate to always
split gso, and makes gso splitting configurable from userspace.

running cake unlimited (unshaped) at 1gigE, local traffic:

no-split-gso bql limit: 131966
split-gso bql limit:   ~42392-45420

On this 4 stream test splitting gso apart results in halving the
observed interpacket latency at no loss in throughput.

Summary of tcp_nup test run 'gso-split' (at 2018-07-26 16:03:51.824728):

 Ping (ms) ICMP :         0.83         0.81 ms              341
 TCP upload avg :       235.43       235.39 Mbits/s         301
 TCP upload sum :       941.71       941.56 Mbits/s         301
 TCP upload::1  :       235.45       235.43 Mbits/s         271
 TCP upload::2  :       235.45       235.41 Mbits/s         289
 TCP upload::3  :       235.40       235.40 Mbits/s         288
 TCP upload::4  :       235.41       235.40 Mbits/s         291

verses

Summary of tcp_nup test run 'no-split-gso' (at 2018-07-26 16:37:23.563960):

                           avg       median          # data pts
 Ping (ms) ICMP :         1.67         1.73 ms              348
 TCP upload avg :       234.56       235.37 Mbits/s         301
 TCP upload sum :       938.24       941.49 Mbits/s         301
 TCP upload::1  :       234.55       235.38 Mbits/s         285
 TCP upload::2  :       234.57       235.37 Mbits/s         286
 TCP upload::3  :       234.58       235.37 Mbits/s         274
 TCP upload::4  :       234.54       235.42 Mbits/s         288

Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_cake.c