]> git.baikalelectronics.ru Git - kernel.git/commit
htb: refactor struct htb_sched fields for performance
authorEric Dumazet <edumazet@google.com>
Sat, 15 Jun 2013 10:30:10 +0000 (03:30 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 20 Jun 2013 06:06:52 +0000 (23:06 -0700)
commit590d25b8d2971259e833cc6d845337314d7218dd
tree4ea94902a65b0f3ca46ec82652da39b0dea59d55
parent891d27a67115a6294d2d2a40b1cccdc407239c3f
htb: refactor struct htb_sched fields for performance

htb_sched structures are big, and source of false sharing on SMP.

Every time a packet is queued or dequeue, many cache lines must be
touched because structures are not lay out properly.

By carefully splitting htb_sched in two parts, and define sub structures
to increase data locality, we can improve performance dramatically on
SMP.

New htb_prio structure can also be used in htb_class to increase data
locality.

I got 26 % performance increase on a 24 threads machine, with 200
concurrent netperf in TCP_RR mode, using a HTB hierarchy of 4 classes.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Tom Herbert <therbert@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_htb.c