Messages in this thread | | | Date | Fri, 31 Jan 2020 16:47:35 +0100 | From | Michal Hocko <> | Subject | Re: [PATCH v2] mm: Allocate shrinker_map on appropriate NUMA node |
| |
On Fri 31-01-20 18:00:51, Kirill Tkhai wrote: [...] > @@ -333,8 +333,9 @@ static int memcg_expand_one_shrinker_map(struct mem_cgroup *memcg, > /* Not yet online memcg */ > if (!old) > return 0; > - > - new = kvmalloc(sizeof(*new) + size, GFP_KERNEL); > + /* See comment in alloc_mem_cgroup_per_node_info()*/ > + tmp = node_state(nid, N_NORMAL_MEMORY) ? nid : NUMA_NO_NODE; > + new = kvmalloc_node(sizeof(*new) + size, GFP_KERNEL, tmp); > if (!new) > return -ENOMEM;
I do not think this is a good pattern to copy. Why cannot you simply use kvmalloc_node with the given node? The allocator should fallback to the closest node if the given one doesn't have any memory. -- Michal Hocko SUSE Labs
| |