Re: [PATCH] mm: kill is_memblock_offlined()

From: Anshuman Khandual
Date: Thu Sep 01 2022 - 05:08:12 EST




On 8/27/22 16:50, Kefeng Wang wrote:
> Directly check state of struct memory_block, no need a single function.
>
> Signed-off-by: Kefeng Wang <wangkefeng.wang@xxxxxxxxxx>
> ---

Reviewed-by: Anshuman Khandual <anshuman.khandual@xxxxxxx>

> drivers/base/memory.c | 6 ------
> include/linux/memory_hotplug.h | 2 --
> mm/memory_hotplug.c | 3 +--
> 3 files changed, 1 insertion(+), 10 deletions(-)
>
> diff --git a/drivers/base/memory.c b/drivers/base/memory.c
> index bc60c9cd3230..9aa0da991cfb 100644
> --- a/drivers/base/memory.c
> +++ b/drivers/base/memory.c
> @@ -869,12 +869,6 @@ void remove_memory_block_devices(unsigned long start, unsigned long size)
> }
> }
>
> -/* return true if the memory block is offlined, otherwise, return false */
> -bool is_memblock_offlined(struct memory_block *mem)
> -{
> - return mem->state == MEM_OFFLINE;
> -}
> -
> static struct attribute *memory_root_attrs[] = {
> #ifdef CONFIG_ARCH_MEMORY_PROBE
> &dev_attr_probe.attr,
> diff --git a/include/linux/memory_hotplug.h b/include/linux/memory_hotplug.h
> index 409196ef8038..de87545eabe9 100644
> --- a/include/linux/memory_hotplug.h
> +++ b/include/linux/memory_hotplug.h
> @@ -11,7 +11,6 @@ struct page;
> struct zone;
> struct pglist_data;
> struct mem_section;
> -struct memory_block;
> struct memory_group;
> struct resource;
> struct vmem_altmap;
> @@ -352,7 +351,6 @@ extern void move_pfn_range_to_zone(struct zone *zone, unsigned long start_pfn,
> extern void remove_pfn_range_from_zone(struct zone *zone,
> unsigned long start_pfn,
> unsigned long nr_pages);
> -extern bool is_memblock_offlined(struct memory_block *mem);
> extern int sparse_add_section(int nid, unsigned long pfn,
> unsigned long nr_pages, struct vmem_altmap *altmap,
> struct dev_pagemap *pgmap);
> diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
> index 2fd45ccbce45..9ae1f98548b1 100644
> --- a/mm/memory_hotplug.c
> +++ b/mm/memory_hotplug.c
> @@ -1969,11 +1969,10 @@ int __ref offline_pages(unsigned long start_pfn, unsigned long nr_pages,
>
> static int check_memblock_offlined_cb(struct memory_block *mem, void *arg)
> {
> - int ret = !is_memblock_offlined(mem);
> int *nid = arg;
>
> *nid = mem->nid;
> - if (unlikely(ret)) {
> + if (unlikely(mem->state != MEM_OFFLINE)) {
> phys_addr_t beginpa, endpa;
>
> beginpa = PFN_PHYS(section_nr_to_pfn(mem->start_section_nr));