From: Konstantin Khlebnikov Date: Fri, 2 Oct 2015 10:18:22 +0000 (+0300) Subject: ovs: do not allocate memory from offline numa node X-Git-Tag: v3.16.35~1171 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=67f4c396bd8e9161b78fbb4686584ed3aa65c131;p=thirdparty%2Fkernel%2Fstable.git ovs: do not allocate memory from offline numa node commit 598c12d0ba6de9060f04999746eb1e015774044b upstream. When openvswitch tries allocate memory from offline numa node 0: stats = kmem_cache_alloc_node(flow_stats_cache, GFP_KERNEL | __GFP_ZERO, 0) It catches VM_BUG_ON(nid < 0 || nid >= MAX_NUMNODES || !node_online(nid)) [ replaced with VM_WARN_ON(!node_online(nid)) recently ] in linux/gfp.h This patch disables numa affinity in this case. Signed-off-by: Konstantin Khlebnikov Acked-by: Pravin B Shelar Signed-off-by: David S. Miller Signed-off-by: Luis Henriques --- diff --git a/net/openvswitch/flow_table.c b/net/openvswitch/flow_table.c index 740041a09b9d7..7a797ffd75a0d 100644 --- a/net/openvswitch/flow_table.c +++ b/net/openvswitch/flow_table.c @@ -90,7 +90,8 @@ struct sw_flow *ovs_flow_alloc(void) /* Initialize the default stat node. */ stats = kmem_cache_alloc_node(flow_stats_cache, - GFP_KERNEL | __GFP_ZERO, 0); + GFP_KERNEL | __GFP_ZERO, + node_online(0) ? 0 : NUMA_NO_NODE); if (!stats) goto err;