net: allow large number of tx queues
authorEric Dumazet <edumazet@google.com>
Thu, 20 Jun 2013 08:15:51 +0000 (01:15 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 24 Jun 2013 06:56:55 +0000 (23:56 -0700)
commit60877a32bce00041528576e6b8df5abe9251fa73
treec949fd23e9a57d33a1597db4ad100ac2227fa19b
parentb0b02c77d7aa9ebeea5d4ea7e4f3fd745ad7f81c
net: allow large number of tx queues

netif_alloc_netdev_queues() uses kcalloc() to allocate memory
for the "struct netdev_queue *_tx" array.

For large number of tx queues, kcalloc() might fail, so this
patch does a fallback to vzalloc().

As vmalloc() adds overhead on a critical network path, add __GFP_REPEAT
to kzalloc() flags to do this fallback only when really needed.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/dev.c