Re: [RFC 1/2] mm, slub: prevent kmalloc_node crashes and memory leaks
From: Srikar Dronamraju <hidden>
Date: 2020-03-20 07:46:50
Also in:
linux-mm
* Vlastimil Babka [off-list ref] [2020-03-19 15:10:19]:
On 3/19/20 3:05 PM, Srikar Dronamraju wrote:quoted
* Vlastimil Babka [off-list ref] [2020-03-19 14:47:58]:quoted
----8<----diff --git a/mm/slub.c b/mm/slub.c index 17dc00e33115..7113b1f9cd77 100644 --- a/mm/slub.c +++ b/mm/slub.c@@ -1973,8 +1973,6 @@ static void *get_partial(struct kmem_cache *s, gfp_t flags, int node, if (node == NUMA_NO_NODE) searchnode = numa_mem_id(); - else if (!node_present_pages(node)) - searchnode = node_to_mem_node(node); object = get_partial_node(s, get_node(s, searchnode), c, flags);Are we okay with passing a node to get_partial_node with !NUMA_NO_NODE and !N_MEMORY including possible nodes?No, but AFAICS, such node values are already handled in ___slab_alloc, and cannot reach get_partial(). If you see something I missed, please do tell.
Ah I probably got confused with your previous version where alloc_slab_page() was modified. I see no problems with this version. Sorry for the noise. A question just for my better understanding, How worse would it be to set node to numa_mem_id() instead of NUMA_NODE_ID when the current node is !N_NORMAL_MEMORY?
quoted
quoted
if (object || node != NUMA_NO_NODE)
-- Thanks and Regards Srikar Dronamraju