• Eric Dumazet's avatar
    net: skb_shared_info optimization · 042a53a9
    Eric Dumazet authored
    skb_dma_unmap() is quite expensive for small packets,
    because we use two different cache lines from skb_shared_info.
    
    One to access nr_frags, one to access dma_maps[0]
    
    Instead of dma_maps being an array of MAX_SKB_FRAGS + 1 elements,
    let dma_head alone in a new dma_head field, close to nr_frags,
    to reduce cache lines misses.
    
    Tested on my dev machine (bnx2 & tg3 adapters), nice speedup !
    Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    042a53a9
skb_dma_map.c 1.39 KB