• Eric Dumazet's avatar
    net_sched: sch_sfq: better struct layouts · eda83e3b
    Eric Dumazet authored
    Here is a respin of patch.
    
    I'll send a short patch to make SFQ more fair in presence of large
    packets as well.
    
    Thanks
    
    [PATCH v3 net-next-2.6] net_sched: sch_sfq: better struct layouts
    
    This patch shrinks sizeof(struct sfq_sched_data)
    from 0x14f8 (or more if spinlocks are bigger) to 0x1180 bytes, and
    reduce text size as well.
    
       text    data     bss     dec     hex filename
       4821     152       0    4973    136d old/net/sched/sch_sfq.o
       4627     136       0    4763    129b new/net/sched/sch_sfq.o
    
    All data for a slot/flow is now grouped in a compact and cache friendly
    structure, instead of being spreaded in many different points.
    
    struct sfq_slot {
            struct sk_buff  *skblist_next;
            struct sk_buff  *skblist_prev;
            sfq_index       qlen; /* number of skbs in skblist */
            sfq_index       next; /* next slot in sfq chain */
            struct sfq_head dep; /* anchor in dep[] chains */
            unsigned short  hash; /* hash value (index in ht[]) */
            short           allot; /* credit for this slot */
    };
    Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
    Cc: Jarek Poplawski <jarkao2@gmail.com>
    Cc: Patrick McHardy <kaber@trash.net>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    eda83e3b
sch_sfq.c 15.6 KB