Message ID | 1536163184-26356-15-git-send-email-rppt@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | mm: remove bootmem allocator | expand |
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). > Signed-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com> > --- > 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 >
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@linux.vnet.ibm.com> > > --- > > 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 >
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; }
With the align parameter memblock_alloc_node() can be used as drop in replacement for alloc_bootmem_pages_node(). Signed-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com> --- include/linux/bootmem.h | 4 ++-- mm/sparse.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-)