summaryrefslogtreecommitdiff
path: root/drivers/net/tun.c
diff options
context:
space:
mode:
authorPankaj Gupta <pagupta@redhat.com>2015-01-12 11:41:28 +0530
committerDavid S. Miller <davem@davemloft.net>2015-01-12 17:05:05 -0500
commit1059590254fa9dce9cafc4f07d1103dbec415e76 (patch)
tree3763c2aa7f8dbe895102a627cffe1c063926b2c0 /drivers/net/tun.c
parente350a96ec9e6c74f06235ded93ef3155f71c6c6b (diff)
net: allow large number of rx queues
netif_alloc_rx_queues() uses kcalloc() to allocate memory for "struct netdev_queue *_rx" array. If we are doing large rx queue allocation kcalloc() might fail, so this patch does a fallback to vzalloc(). Similar implementation is done for tx queue allocation in netif_alloc_netdev_queues(). We avoid failure of high order memory allocation with the help of vzalloc(), this allows us to do large rx and tx queue allocation which in turn helps us to increase the number of queues in tun. As vmalloc() adds overhead on a critical network path, __GFP_REPEAT flag is used with kzalloc() to do this fallback only when really needed. Signed-off-by: Pankaj Gupta <pagupta@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: David Gibson <dgibson@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/tun.c')
0 files changed, 0 insertions, 0 deletions