Skip to content
  • Eric Dumazet's avatar
    htb: refactor struct htb_sched fields for performance · c9364636
    Eric Dumazet authored
    
    
    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: default avatarEric Dumazet <edumazet@google.com>
    Cc: Tom Herbert <therbert@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c9364636