Messages in this thread Patch in this message | | | From | Vlastimil Babka <> | Subject | [RFC v2 4/4] mm: fallback for offline nodes in alloc_pages_node | Date | Fri, 24 Jul 2015 16:45:26 +0200 |
| |
alloc_pages_node() now warns when an offline node is passed. Make it fallback to the local (or nearest) node as if NUMA_NO_NODE nid is passed, but keep the VM_WARN_ON warning.
Suggested-by: David Rientjes <rientjes@google.com> Signed-off-by: Vlastimil Babka <vbabka@suse.cz> --- David's suggested if(VM_WARN_ON(...)) doesn't work that way, hence this more involved and awkward syntax.
include/linux/gfp.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/include/linux/gfp.h b/include/linux/gfp.h index 531c72d..104a027 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h @@ -321,8 +321,12 @@ static inline struct page *alloc_pages_node(int nid, gfp_t gfp_mask, unsigned int order) { /* Unknown node is current (or closest) node */ - if (nid == NUMA_NO_NODE) + if (nid == NUMA_NO_NODE) { nid = numa_mem_id(); + } else if (!node_online(nid)) { + VM_WARN_ON(!node_online(nid)); + nid = numa_mem_id(); + } return __alloc_pages_node(nid, gfp_mask, order); } -- 2.4.6
| |