From: Mike Rapoport <rppt@kernel.org>
To: Michal Hocko <mhocko@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
linux-mm@kvack.org, LKML <linux-kernel@vger.kernel.org>,
David Hildenbrand <david@redhat.com>,
Alexey Makhalov <amakhalov@vmware.com>,
Dennis Zhou <dennis@kernel.org>,
Eric Dumazet <eric.dumazet@gmail.com>,
Oscar Salvador <osalvador@suse.de>, Tejun Heo <tj@kernel.org>,
Christoph Lameter <cl@linux.com>, Nico Pache <npache@redhat.com>,
Wei Yang <richard.weiyang@gmail.com>,
Rafael Aquini <raquini@redhat.com>,
Michal Hocko <mhocko@suse.com>
Subject: Re: [PATCH 3/6] mm, memory_hotplug: drop arch_free_nodedata
Date: Thu, 27 Jan 2022 15:37:56 +0200 [thread overview]
Message-ID: <YfKgNEgv8mIUxqRD@kernel.org> (raw)
In-Reply-To: <20220127085305.20890-4-mhocko@kernel.org>
On Thu, Jan 27, 2022 at 09:53:02AM +0100, Michal Hocko wrote:
> From: Michal Hocko <mhocko@suse.com>
>
> Prior to "mm: handle uninitialized numa nodes gracefully" memory hotplug
> used to allocate pgdat when memory has been added to a node
> (hotadd_init_pgdat) arch_free_nodedata has been only used in the
> failure path because once the pgdat is exported (to be visible
> by NODA_DATA(nid)) it cannot really be freed because there is no
> synchronization available for that.
>
> pgdat is allocated for each possible nodes now so the memory hotplug
> doesn't need to do the ever use arch_free_nodedata so drop it.
>
> This patch doesn't introduce any functional change.
>
> Acked-by: Rafael Aquini <raquini@redhat.com>
> Signed-off-by: Michal Hocko <mhocko@suse.com>
Acked-by: Mike Rapoport <rppt@linux.ibm.com>
> ---
> arch/ia64/mm/discontig.c | 5 -----
> include/linux/memory_hotplug.h | 3 ---
> mm/memory_hotplug.c | 10 ----------
> 3 files changed, 18 deletions(-)
>
> diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c
> index dd0cf4834eaa..73d0db36edb6 100644
> --- a/arch/ia64/mm/discontig.c
> +++ b/arch/ia64/mm/discontig.c
> @@ -615,11 +615,6 @@ pg_data_t * __init arch_alloc_nodedata(int nid)
> return memblock_alloc(size, SMP_CACHE_BYTES);
> }
>
> -void arch_free_nodedata(pg_data_t *pgdat)
> -{
> - kfree(pgdat);
> -}
> -
> void arch_refresh_nodedata(int update_node, pg_data_t *update_pgdat)
> {
> pgdat_list[update_node] = update_pgdat;
> diff --git a/include/linux/memory_hotplug.h b/include/linux/memory_hotplug.h
> index cdd66bfdf855..60f09d3ebb3d 100644
> --- a/include/linux/memory_hotplug.h
> +++ b/include/linux/memory_hotplug.h
> @@ -24,17 +24,14 @@ struct vmem_altmap;
> * node_data[nid] = kzalloc() works well. But it depends on the architecture.
> *
> * In general, generic_alloc_nodedata() is used.
> - * Now, arch_free_nodedata() is just defined for error path of node_hot_add.
> *
> */
> extern pg_data_t *arch_alloc_nodedata(int nid);
> -extern void arch_free_nodedata(pg_data_t *pgdat);
> extern void arch_refresh_nodedata(int nid, pg_data_t *pgdat);
>
> #else /* CONFIG_HAVE_ARCH_NODEDATA_EXTENSION */
>
> #define arch_alloc_nodedata(nid) generic_alloc_nodedata(nid)
> -#define arch_free_nodedata(pgdat) generic_free_nodedata(pgdat)
>
> #ifdef CONFIG_NUMA
> /*
> diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
> index fc991831d296..875cdc7ffa58 100644
> --- a/mm/memory_hotplug.c
> +++ b/mm/memory_hotplug.c
> @@ -1217,16 +1217,6 @@ static pg_data_t __ref *hotadd_init_pgdat(int nid)
> return pgdat;
> }
>
> -static void rollback_node_hotadd(int nid)
> -{
> - pg_data_t *pgdat = NODE_DATA(nid);
> -
> - arch_refresh_nodedata(nid, NULL);
> - free_percpu(pgdat->per_cpu_nodestats);
> - arch_free_nodedata(pgdat);
> -}
> -
> -
> /*
> * __try_online_node - online a node if offlined
> * @nid: the node ID
> --
> 2.30.2
>
--
Sincerely yours,
Mike.
next prev parent reply other threads:[~2022-01-27 13:38 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20220127085305.20890-1-mhocko@kernel.org>
[not found] ` <20220127085305.20890-2-mhocko@kernel.org>
2022-01-27 12:27 ` [PATCH 1/6] mm, memory_hotplug: make arch_alloc_nodedata independent on CONFIG_MEMORY_HOTPLUG David Hildenbrand
2022-01-27 13:36 ` Mike Rapoport
2022-01-28 6:18 ` Oscar Salvador
2022-02-01 2:13 ` Wei Yang
[not found] ` <20220127085305.20890-3-mhocko@kernel.org>
2022-01-27 12:41 ` [PATCH 2/6] mm: handle uninitialized numa nodes gracefully David Hildenbrand
2022-01-27 14:50 ` Michal Hocko
2022-01-27 13:37 ` Mike Rapoport
2022-01-27 14:47 ` Michal Hocko
2022-01-27 15:04 ` Mike Rapoport
2022-02-01 2:41 ` Wei Yang
2022-02-01 9:54 ` Michal Hocko
2022-02-03 0:21 ` Wei Yang
2022-02-03 7:23 ` Mike Rapoport
2022-02-03 8:27 ` David Hildenbrand
2022-02-03 9:08 ` Mike Rapoport
2022-02-03 9:11 ` David Hildenbrand
2022-02-03 9:19 ` Michal Hocko
2022-02-03 9:21 ` David Hildenbrand
2022-02-03 8:39 ` Michal Hocko
2022-02-04 22:54 ` Andrew Morton
2022-01-28 6:27 ` Oscar Salvador
2022-01-31 10:34 ` Michal Hocko
[not found] ` <20220127085305.20890-5-mhocko@kernel.org>
2022-01-27 12:46 ` [PATCH 4/6] mm, memory_hotplug: reorganize new pgdat initialization David Hildenbrand
2022-01-27 14:44 ` Michal Hocko
2022-02-17 10:40 ` Oscar Salvador
2022-01-27 13:39 ` Mike Rapoport
2022-01-27 14:45 ` Michal Hocko
2022-01-28 10:51 ` Oscar Salvador
2022-02-01 2:42 ` Wei Yang
[not found] ` <20220127085305.20890-4-mhocko@kernel.org>
2022-01-27 12:42 ` [PATCH 3/6] mm, memory_hotplug: drop arch_free_nodedata David Hildenbrand
2022-01-27 13:37 ` Mike Rapoport [this message]
2022-01-28 6:29 ` Oscar Salvador
2022-02-01 2:41 ` Wei Yang
[not found] ` <20220127085305.20890-6-mhocko@kernel.org>
2022-01-27 12:47 ` [PATCH 5/6] mm: make free_area_init_node aware of memory less nodes David Hildenbrand
2022-01-27 13:34 ` Mike Rapoport
2022-01-28 10:59 ` Oscar Salvador
2022-02-01 2:43 ` Wei Yang
[not found] ` <20220127085305.20890-7-mhocko@kernel.org>
2022-01-27 12:50 ` [PATCH 6/6] memcg: do not tweak node in alloc_mem_cgroup_per_node_info David Hildenbrand
2022-01-28 11:01 ` Oscar Salvador
2022-02-01 2:45 ` Wei Yang
2022-02-01 9:51 ` Michal Hocko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YfKgNEgv8mIUxqRD@kernel.org \
--to=rppt@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=amakhalov@vmware.com \
--cc=cl@linux.com \
--cc=david@redhat.com \
--cc=dennis@kernel.org \
--cc=eric.dumazet@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@kernel.org \
--cc=mhocko@suse.com \
--cc=npache@redhat.com \
--cc=osalvador@suse.de \
--cc=raquini@redhat.com \
--cc=richard.weiyang@gmail.com \
--cc=tj@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.