virtio_net: Defer skb allocation in receive path Date: Wed, 13 Jan 2010 12:53:38...
authorShirley Ma <mashirle@us.ibm.com>
Fri, 29 Jan 2010 03:20:04 +0000 (03:20 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 2 Feb 2010 23:55:42 +0000 (15:55 -0800)
commit9ab86bbcf8be755256f0a5e994e0b38af6b4d399
tree6de61af79e9892d192acb5ba215b9331d88c8212
parentf9bfbebf34eab707b065116cdc9699d25ba4252a
virtio_net: Defer skb allocation in receive path Date: Wed, 13 Jan 2010 12:53:38 -0800

virtio_net receives packets from its pre-allocated vring buffers, then it
delivers these packets to upper layer protocols as skb buffs. So it's not
necessary to pre-allocate skb for each mergable buffer, then frees extra
skbs when buffers are merged into a large packet. This patch has deferred
skb allocation in receiving packets for both big packets and mergeable buffers
to reduce skb pre-allocations and skb frees. It frees unused buffers by calling
detach_unused_buf in vring, so recv skb queue is not needed.

Signed-off-by: Shirley Ma <xma@us.ibm.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/virtio_net.c