• Eric Dumazet's avatar
    tg3: provide frags as skb head · 8d4057a9
    Eric Dumazet authored
    This patch converts tg3 driver, one of our reference drivers, to use new
    build_skb() api in frag mode.
    
    Instead of using kmalloc() to allocate the memory block that will be
    used by build_skb() as skb->head, we use a page fragment.
    
    This is a followup of patch "net: allow skb->head to be a page fragment"
    
    This allows GRO, TCP coalescing, and splice() to be more efficient.
    
    Incidentally, this also removes SLUB slow path contention in kfree()
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Cc: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Cc: Maciej Żenczykowski <maze@google.com>
    Cc: Neal Cardwell <ncardwell@google.com>
    Cc: Tom Herbert <therbert@google.com>
    Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Cc: Ben Hutchings <bhutchings@solarflare.com>
    Cc: Matt Carlson <mcarlson@broadcom.com>
    Cc: Michael Chan <mchan@broadcom.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    8d4057a9
tg3.c 420 KB