veth: try harder when allocating queue memory
authorJakub Kicinski <kuba@kernel.org>
Fri, 23 Feb 2024 23:59:08 +0000 (15:59 -0800)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 27 Feb 2024 12:56:54 +0000 (13:56 +0100)
commit1ce7d306ea63f3e379557c79abd88052e0483813
treee9750feeb73e768cf28b8dc84374d3e5b5246554
parent237274fa215753bcb5c4d32fe16f386d6b370e52
veth: try harder when allocating queue memory

struct veth_rq is pretty large, 832B total without debug
options enabled. Since commit under Fixes we try to pre-allocate
enough queues for every possible CPU. Miao Wang reports that
this may lead to order-5 allocations which will fail in production.

Let the allocation fallback to vmalloc() and try harder.
These are the same flags we pass to netdev queue allocation.

Reported-and-tested-by: Miao Wang <shankerwangmiao@gmail.com>
Fixes: 9d3684c24a52 ("veth: create by default nr_possible_cpus queues")
Link: https://lore.kernel.org/all/5F52CAE2-2FB7-4712-95F1-3312FBBFA8DD@gmail.com/
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://lore.kernel.org/r/20240223235908.693010-1-kuba@kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/veth.c