Re: [RFC PATCH 14/29] memblock: add align parameter to memblock_alloc_node()

From: Mike Rapoport
Date: Thu Sep 06 2018 - 08:50:00 EST


On Thu, Sep 06, 2018 at 10:06:14AM +0200, Michal Hocko wrote:
> On Wed 05-09-18 18:59:29, Mike Rapoport wrote:
> > With the align parameter memblock_alloc_node() can be used as drop in
> > replacement for alloc_bootmem_pages_node().
>
> Why do we need an additional translation later? Sparse code which is the
> only one to use it already uses memblock_alloc_try_nid elsewhere
> (sparse_mem_map_populate).

It is also used in later patches to replace alloc_bootmem* in several
places and most of them explicitly set the alignment.

> > Signed-off-by: Mike Rapoport <rppt@xxxxxxxxxxxxxxxxxx>
> > ---
> > include/linux/bootmem.h | 4 ++--
> > mm/sparse.c | 2 +-
> > 2 files changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/include/linux/bootmem.h b/include/linux/bootmem.h
> > index 7d91f0f..3896af2 100644
> > --- a/include/linux/bootmem.h
> > +++ b/include/linux/bootmem.h
> > @@ -157,9 +157,9 @@ static inline void * __init memblock_alloc_from_nopanic(
> > }
> >
> > static inline void * __init memblock_alloc_node(
> > - phys_addr_t size, int nid)
> > + phys_addr_t size, phys_addr_t align, int nid)
> > {
> > - return memblock_alloc_try_nid(size, 0, BOOTMEM_LOW_LIMIT,
> > + return memblock_alloc_try_nid(size, align, BOOTMEM_LOW_LIMIT,
> > BOOTMEM_ALLOC_ACCESSIBLE, nid);
> > }
> >
> > diff --git a/mm/sparse.c b/mm/sparse.c
> > index 04e97af..509828f 100644
> > --- a/mm/sparse.c
> > +++ b/mm/sparse.c
> > @@ -68,7 +68,7 @@ static noinline struct mem_section __ref *sparse_index_alloc(int nid)
> > if (slab_is_available())
> > section = kzalloc_node(array_size, GFP_KERNEL, nid);
> > else
> > - section = memblock_alloc_node(array_size, nid);
> > + section = memblock_alloc_node(array_size, 0, nid);
> >
> > return section;
> > }
> > --
> > 2.7.4
> >
>
> --
> Michal Hocko
> SUSE Labs
>

--
Sincerely yours,
Mike.