Re: [RFC PATCH 16/29] memblock: replace __alloc_bootmem_node with appropriate memblock_ API

From: Michal Hocko
Date: Thu Sep 06 2018 - 04:38:46 EST


On Wed 05-09-18 18:59:31, Mike Rapoport wrote:
> Use memblock_alloc_try_nid whenever goal (i.e. mininal address is
> specified) and memblock_alloc_node otherwise.

I suspect you wanted to say (i.e. minimal address) is specified

> Signed-off-by: Mike Rapoport <rppt@xxxxxxxxxxxxxxxxxx>

Acked-by: Michal Hocko <mhocko@xxxxxxxx>

One note below

> ---
> arch/ia64/mm/discontig.c | 6 ++++--
> arch/ia64/mm/init.c | 2 +-
> arch/powerpc/kernel/setup_64.c | 6 ++++--
> arch/sparc/kernel/setup_64.c | 10 ++++------
> arch/sparc/kernel/smp_64.c | 4 ++--
> 5 files changed, 15 insertions(+), 13 deletions(-)
>
> diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c
> index 1928d57..918dda9 100644
> --- a/arch/ia64/mm/discontig.c
> +++ b/arch/ia64/mm/discontig.c
> @@ -451,8 +451,10 @@ static void __init *memory_less_node_alloc(int nid, unsigned long pernodesize)
> if (bestnode == -1)
> bestnode = anynode;
>
> - ptr = __alloc_bootmem_node(pgdat_list[bestnode], pernodesize,
> - PERCPU_PAGE_SIZE, __pa(MAX_DMA_ADDRESS));
> + ptr = memblock_alloc_try_nid(pernodesize, PERCPU_PAGE_SIZE,
> + __pa(MAX_DMA_ADDRESS),
> + BOOTMEM_ALLOC_ACCESSIBLE,
> + bestnode);
>
> return ptr;
> }
> diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c
> index ffcc358..2169ca5 100644
> --- a/arch/ia64/mm/init.c
> +++ b/arch/ia64/mm/init.c
> @@ -459,7 +459,7 @@ int __init create_mem_map_page_table(u64 start, u64 end, void *arg)
> pte = pte_offset_kernel(pmd, address);
>
> if (pte_none(*pte))
> - set_pte(pte, pfn_pte(__pa(memblock_alloc_node(PAGE_SIZE, PAGE_SIZE, node))) >> PAGE_SHIFT,
> + set_pte(pte, pfn_pte(__pa(memblock_alloc_node(PAGE_SIZE, PAGE_SIZE, node)) >> PAGE_SHIFT,
> PAGE_KERNEL));

This doesn't seem to belong to the patch, right?

> }
> return 0;
--
Michal Hocko
SUSE Labs