From: Michal Hocko <mhocko@kernel.org> To: Mike Rapoport <rppt@linux.vnet.ibm.com> Cc: linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>, "David S. Miller" <davem@davemloft.net>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Ingo Molnar <mingo@redhat.com>, Michael Ellerman <mpe@ellerman.id.au>, Paul Burton <paul.burton@mips.com>, Thomas Gleixner <tglx@linutronix.de>, Tony Luck <tony.luck@intel.com>, linux-ia64@vger.kernel.org, linux-mips@linux-mips.org, linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [RFC PATCH 27/29] mm: remove nobootmem Date: Thu, 6 Sep 2018 11:08:17 +0200 [thread overview] Message-ID: <20180906090817.GL14951@dhcp22.suse.cz> (raw) In-Reply-To: <1536163184-26356-28-git-send-email-rppt@linux.vnet.ibm.com> On Wed 05-09-18 18:59:42, Mike Rapoport wrote: > Move a few remaining functions from nobootmem.c to memblock.c and remove > nobootmem > > Signed-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com> Acked-by: Michal Hocko <mhocko@suse.com> > --- > mm/Makefile | 1 - > mm/memblock.c | 104 ++++++++++++++++++++++++++++++++++++++++++++++ > mm/nobootmem.c | 128 --------------------------------------------------------- > 3 files changed, 104 insertions(+), 129 deletions(-) > delete mode 100644 mm/nobootmem.c > > diff --git a/mm/Makefile b/mm/Makefile > index 0a3e72e..fb96c45 100644 > --- a/mm/Makefile > +++ b/mm/Makefile > @@ -42,7 +42,6 @@ obj-y := filemap.o mempool.o oom_kill.o fadvise.o \ > debug.o $(mmu-y) > > obj-y += init-mm.o > -obj-y += nobootmem.o > obj-y += memblock.o > > ifdef CONFIG_MMU > diff --git a/mm/memblock.c b/mm/memblock.c > index 55d7d50..3f76d40 100644 > --- a/mm/memblock.c > +++ b/mm/memblock.c > @@ -82,6 +82,16 @@ > * initialization compltes. > */ > > +#ifndef CONFIG_NEED_MULTIPLE_NODES > +struct pglist_data __refdata contig_page_data; > +EXPORT_SYMBOL(contig_page_data); > +#endif > + > +unsigned long max_low_pfn; > +unsigned long min_low_pfn; > +unsigned long max_pfn; > +unsigned long long max_possible_pfn; > + > static struct memblock_region memblock_memory_init_regions[INIT_MEMBLOCK_REGIONS] __initdata_memblock; > static struct memblock_region memblock_reserved_init_regions[INIT_MEMBLOCK_REGIONS] __initdata_memblock; > #ifdef CONFIG_HAVE_MEMBLOCK_PHYS_MAP > @@ -1959,6 +1969,100 @@ static int __init early_memblock(char *p) > } > early_param("memblock", early_memblock); > > +static void __init __free_pages_memory(unsigned long start, unsigned long end) > +{ > + int order; > + > + while (start < end) { > + order = min(MAX_ORDER - 1UL, __ffs(start)); > + > + while (start + (1UL << order) > end) > + order--; > + > + memblock_free_pages(pfn_to_page(start), start, order); > + > + start += (1UL << order); > + } > +} > + > +static unsigned long __init __free_memory_core(phys_addr_t start, > + phys_addr_t end) > +{ > + unsigned long start_pfn = PFN_UP(start); > + unsigned long end_pfn = min_t(unsigned long, > + PFN_DOWN(end), max_low_pfn); > + > + if (start_pfn >= end_pfn) > + return 0; > + > + __free_pages_memory(start_pfn, end_pfn); > + > + return end_pfn - start_pfn; > +} > + > +static unsigned long __init free_low_memory_core_early(void) > +{ > + unsigned long count = 0; > + phys_addr_t start, end; > + u64 i; > + > + memblock_clear_hotplug(0, -1); > + > + for_each_reserved_mem_region(i, &start, &end) > + reserve_bootmem_region(start, end); > + > + /* > + * We need to use NUMA_NO_NODE instead of NODE_DATA(0)->node_id > + * because in some case like Node0 doesn't have RAM installed > + * low ram will be on Node1 > + */ > + for_each_free_mem_range(i, NUMA_NO_NODE, MEMBLOCK_NONE, &start, &end, > + NULL) > + count += __free_memory_core(start, end); > + > + return count; > +} > + > +static int reset_managed_pages_done __initdata; > + > +void reset_node_managed_pages(pg_data_t *pgdat) > +{ > + struct zone *z; > + > + for (z = pgdat->node_zones; z < pgdat->node_zones + MAX_NR_ZONES; z++) > + z->managed_pages = 0; > +} > + > +void __init reset_all_zones_managed_pages(void) > +{ > + struct pglist_data *pgdat; > + > + if (reset_managed_pages_done) > + return; > + > + for_each_online_pgdat(pgdat) > + reset_node_managed_pages(pgdat); > + > + reset_managed_pages_done = 1; > +} > + > +/** > + * memblock_free_all - release free pages to the buddy allocator > + * > + * Return: the number of pages actually released. > + */ > +unsigned long __init memblock_free_all(void) > +{ > + unsigned long pages; > + > + reset_all_zones_managed_pages(); > + > + pages = free_low_memory_core_early(); > + totalram_pages += pages; > + > + return pages; > +} > + > #if defined(CONFIG_DEBUG_FS) && !defined(CONFIG_ARCH_DISCARD_MEMBLOCK) > > static int memblock_debug_show(struct seq_file *m, void *private) > diff --git a/mm/nobootmem.c b/mm/nobootmem.c > deleted file mode 100644 > index 9608bc5..0000000 > --- a/mm/nobootmem.c > +++ /dev/null > @@ -1,128 +0,0 @@ > -// SPDX-License-Identifier: GPL-2.0 > -/* > - * bootmem - A boot-time physical memory allocator and configurator > - * > - * Copyright (C) 1999 Ingo Molnar > - * 1999 Kanoj Sarcar, SGI > - * 2008 Johannes Weiner > - * > - * Access to this subsystem has to be serialized externally (which is true > - * for the boot process anyway). > - */ > -#include <linux/init.h> > -#include <linux/pfn.h> > -#include <linux/slab.h> > -#include <linux/export.h> > -#include <linux/kmemleak.h> > -#include <linux/range.h> > -#include <linux/memblock.h> > -#include <linux/bootmem.h> > - > -#include <asm/bug.h> > -#include <asm/io.h> > - > -#include "internal.h" > - > -#ifndef CONFIG_NEED_MULTIPLE_NODES > -struct pglist_data __refdata contig_page_data; > -EXPORT_SYMBOL(contig_page_data); > -#endif > - > -unsigned long max_low_pfn; > -unsigned long min_low_pfn; > -unsigned long max_pfn; > -unsigned long long max_possible_pfn; > - > -static void __init __free_pages_memory(unsigned long start, unsigned long end) > -{ > - int order; > - > - while (start < end) { > - order = min(MAX_ORDER - 1UL, __ffs(start)); > - > - while (start + (1UL << order) > end) > - order--; > - > - memblock_free_pages(pfn_to_page(start), start, order); > - > - start += (1UL << order); > - } > -} > - > -static unsigned long __init __free_memory_core(phys_addr_t start, > - phys_addr_t end) > -{ > - unsigned long start_pfn = PFN_UP(start); > - unsigned long end_pfn = min_t(unsigned long, > - PFN_DOWN(end), max_low_pfn); > - > - if (start_pfn >= end_pfn) > - return 0; > - > - __free_pages_memory(start_pfn, end_pfn); > - > - return end_pfn - start_pfn; > -} > - > -static unsigned long __init free_low_memory_core_early(void) > -{ > - unsigned long count = 0; > - phys_addr_t start, end; > - u64 i; > - > - memblock_clear_hotplug(0, -1); > - > - for_each_reserved_mem_region(i, &start, &end) > - reserve_bootmem_region(start, end); > - > - /* > - * We need to use NUMA_NO_NODE instead of NODE_DATA(0)->node_id > - * because in some case like Node0 doesn't have RAM installed > - * low ram will be on Node1 > - */ > - for_each_free_mem_range(i, NUMA_NO_NODE, MEMBLOCK_NONE, &start, &end, > - NULL) > - count += __free_memory_core(start, end); > - > - return count; > -} > - > -static int reset_managed_pages_done __initdata; > - > -void reset_node_managed_pages(pg_data_t *pgdat) > -{ > - struct zone *z; > - > - for (z = pgdat->node_zones; z < pgdat->node_zones + MAX_NR_ZONES; z++) > - z->managed_pages = 0; > -} > - > -void __init reset_all_zones_managed_pages(void) > -{ > - struct pglist_data *pgdat; > - > - if (reset_managed_pages_done) > - return; > - > - for_each_online_pgdat(pgdat) > - reset_node_managed_pages(pgdat); > - > - reset_managed_pages_done = 1; > -} > - > -/** > - * memblock_free_all - release free pages to the buddy allocator > - * > - * Return: the number of pages actually released. > - */ > -unsigned long __init memblock_free_all(void) > -{ > - unsigned long pages; > - > - reset_all_zones_managed_pages(); > - > - pages = free_low_memory_core_early(); > - totalram_pages += pages; > - > - return pages; > -} > -- > 2.7.4 > -- Michal Hocko SUSE Labs
WARNING: multiple messages have this Message-ID (diff)
From: Michal Hocko <mhocko@kernel.org> To: Mike Rapoport <rppt@linux.vnet.ibm.com> Cc: linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>, "David S. Miller" <davem@davemloft.net>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Ingo Molnar <mingo@redhat.com>, Michael Ellerman <mpe@ellerman.id.au>, Paul Burton <paul.burton@mips.com>, Thomas Gleixner <tglx@linutronix.de>, Tony Luck <tony.luck@intel.com>, linux-ia64@vger.kernel.org, linux-mips@linux-mips.org, linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [RFC PATCH 27/29] mm: remove nobootmem Date: Thu, 06 Sep 2018 09:08:17 +0000 [thread overview] Message-ID: <20180906090817.GL14951@dhcp22.suse.cz> (raw) In-Reply-To: <1536163184-26356-28-git-send-email-rppt@linux.vnet.ibm.com> On Wed 05-09-18 18:59:42, Mike Rapoport wrote: > Move a few remaining functions from nobootmem.c to memblock.c and remove > nobootmem > > Signed-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com> Acked-by: Michal Hocko <mhocko@suse.com> > --- > mm/Makefile | 1 - > mm/memblock.c | 104 ++++++++++++++++++++++++++++++++++++++++++++++ > mm/nobootmem.c | 128 --------------------------------------------------------- > 3 files changed, 104 insertions(+), 129 deletions(-) > delete mode 100644 mm/nobootmem.c > > diff --git a/mm/Makefile b/mm/Makefile > index 0a3e72e..fb96c45 100644 > --- a/mm/Makefile > +++ b/mm/Makefile > @@ -42,7 +42,6 @@ obj-y := filemap.o mempool.o oom_kill.o fadvise.o \ > debug.o $(mmu-y) > > obj-y += init-mm.o > -obj-y += nobootmem.o > obj-y += memblock.o > > ifdef CONFIG_MMU > diff --git a/mm/memblock.c b/mm/memblock.c > index 55d7d50..3f76d40 100644 > --- a/mm/memblock.c > +++ b/mm/memblock.c > @@ -82,6 +82,16 @@ > * initialization compltes. > */ > > +#ifndef CONFIG_NEED_MULTIPLE_NODES > +struct pglist_data __refdata contig_page_data; > +EXPORT_SYMBOL(contig_page_data); > +#endif > + > +unsigned long max_low_pfn; > +unsigned long min_low_pfn; > +unsigned long max_pfn; > +unsigned long long max_possible_pfn; > + > static struct memblock_region memblock_memory_init_regions[INIT_MEMBLOCK_REGIONS] __initdata_memblock; > static struct memblock_region memblock_reserved_init_regions[INIT_MEMBLOCK_REGIONS] __initdata_memblock; > #ifdef CONFIG_HAVE_MEMBLOCK_PHYS_MAP > @@ -1959,6 +1969,100 @@ static int __init early_memblock(char *p) > } > early_param("memblock", early_memblock); > > +static void __init __free_pages_memory(unsigned long start, unsigned long end) > +{ > + int order; > + > + while (start < end) { > + order = min(MAX_ORDER - 1UL, __ffs(start)); > + > + while (start + (1UL << order) > end) > + order--; > + > + memblock_free_pages(pfn_to_page(start), start, order); > + > + start += (1UL << order); > + } > +} > + > +static unsigned long __init __free_memory_core(phys_addr_t start, > + phys_addr_t end) > +{ > + unsigned long start_pfn = PFN_UP(start); > + unsigned long end_pfn = min_t(unsigned long, > + PFN_DOWN(end), max_low_pfn); > + > + if (start_pfn >= end_pfn) > + return 0; > + > + __free_pages_memory(start_pfn, end_pfn); > + > + return end_pfn - start_pfn; > +} > + > +static unsigned long __init free_low_memory_core_early(void) > +{ > + unsigned long count = 0; > + phys_addr_t start, end; > + u64 i; > + > + memblock_clear_hotplug(0, -1); > + > + for_each_reserved_mem_region(i, &start, &end) > + reserve_bootmem_region(start, end); > + > + /* > + * We need to use NUMA_NO_NODE instead of NODE_DATA(0)->node_id > + * because in some case like Node0 doesn't have RAM installed > + * low ram will be on Node1 > + */ > + for_each_free_mem_range(i, NUMA_NO_NODE, MEMBLOCK_NONE, &start, &end, > + NULL) > + count += __free_memory_core(start, end); > + > + return count; > +} > + > +static int reset_managed_pages_done __initdata; > + > +void reset_node_managed_pages(pg_data_t *pgdat) > +{ > + struct zone *z; > + > + for (z = pgdat->node_zones; z < pgdat->node_zones + MAX_NR_ZONES; z++) > + z->managed_pages = 0; > +} > + > +void __init reset_all_zones_managed_pages(void) > +{ > + struct pglist_data *pgdat; > + > + if (reset_managed_pages_done) > + return; > + > + for_each_online_pgdat(pgdat) > + reset_node_managed_pages(pgdat); > + > + reset_managed_pages_done = 1; > +} > + > +/** > + * memblock_free_all - release free pages to the buddy allocator > + * > + * Return: the number of pages actually released. > + */ > +unsigned long __init memblock_free_all(void) > +{ > + unsigned long pages; > + > + reset_all_zones_managed_pages(); > + > + pages = free_low_memory_core_early(); > + totalram_pages += pages; > + > + return pages; > +} > + > #if defined(CONFIG_DEBUG_FS) && !defined(CONFIG_ARCH_DISCARD_MEMBLOCK) > > static int memblock_debug_show(struct seq_file *m, void *private) > diff --git a/mm/nobootmem.c b/mm/nobootmem.c > deleted file mode 100644 > index 9608bc5..0000000 > --- a/mm/nobootmem.c > +++ /dev/null > @@ -1,128 +0,0 @@ > -// SPDX-License-Identifier: GPL-2.0 > -/* > - * bootmem - A boot-time physical memory allocator and configurator > - * > - * Copyright (C) 1999 Ingo Molnar > - * 1999 Kanoj Sarcar, SGI > - * 2008 Johannes Weiner > - * > - * Access to this subsystem has to be serialized externally (which is true > - * for the boot process anyway). > - */ > -#include <linux/init.h> > -#include <linux/pfn.h> > -#include <linux/slab.h> > -#include <linux/export.h> > -#include <linux/kmemleak.h> > -#include <linux/range.h> > -#include <linux/memblock.h> > -#include <linux/bootmem.h> > - > -#include <asm/bug.h> > -#include <asm/io.h> > - > -#include "internal.h" > - > -#ifndef CONFIG_NEED_MULTIPLE_NODES > -struct pglist_data __refdata contig_page_data; > -EXPORT_SYMBOL(contig_page_data); > -#endif > - > -unsigned long max_low_pfn; > -unsigned long min_low_pfn; > -unsigned long max_pfn; > -unsigned long long max_possible_pfn; > - > -static void __init __free_pages_memory(unsigned long start, unsigned long end) > -{ > - int order; > - > - while (start < end) { > - order = min(MAX_ORDER - 1UL, __ffs(start)); > - > - while (start + (1UL << order) > end) > - order--; > - > - memblock_free_pages(pfn_to_page(start), start, order); > - > - start += (1UL << order); > - } > -} > - > -static unsigned long __init __free_memory_core(phys_addr_t start, > - phys_addr_t end) > -{ > - unsigned long start_pfn = PFN_UP(start); > - unsigned long end_pfn = min_t(unsigned long, > - PFN_DOWN(end), max_low_pfn); > - > - if (start_pfn >= end_pfn) > - return 0; > - > - __free_pages_memory(start_pfn, end_pfn); > - > - return end_pfn - start_pfn; > -} > - > -static unsigned long __init free_low_memory_core_early(void) > -{ > - unsigned long count = 0; > - phys_addr_t start, end; > - u64 i; > - > - memblock_clear_hotplug(0, -1); > - > - for_each_reserved_mem_region(i, &start, &end) > - reserve_bootmem_region(start, end); > - > - /* > - * We need to use NUMA_NO_NODE instead of NODE_DATA(0)->node_id > - * because in some case like Node0 doesn't have RAM installed > - * low ram will be on Node1 > - */ > - for_each_free_mem_range(i, NUMA_NO_NODE, MEMBLOCK_NONE, &start, &end, > - NULL) > - count += __free_memory_core(start, end); > - > - return count; > -} > - > -static int reset_managed_pages_done __initdata; > - > -void reset_node_managed_pages(pg_data_t *pgdat) > -{ > - struct zone *z; > - > - for (z = pgdat->node_zones; z < pgdat->node_zones + MAX_NR_ZONES; z++) > - z->managed_pages = 0; > -} > - > -void __init reset_all_zones_managed_pages(void) > -{ > - struct pglist_data *pgdat; > - > - if (reset_managed_pages_done) > - return; > - > - for_each_online_pgdat(pgdat) > - reset_node_managed_pages(pgdat); > - > - reset_managed_pages_done = 1; > -} > - > -/** > - * memblock_free_all - release free pages to the buddy allocator > - * > - * Return: the number of pages actually released. > - */ > -unsigned long __init memblock_free_all(void) > -{ > - unsigned long pages; > - > - reset_all_zones_managed_pages(); > - > - pages = free_low_memory_core_early(); > - totalram_pages += pages; > - > - return pages; > -} > -- > 2.7.4 > -- Michal Hocko SUSE Labs
next prev parent reply other threads:[~2018-09-06 9:08 UTC|newest] Thread overview: 167+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-09-05 15:59 [RFC PATCH 00/29] mm: remove bootmem allocator Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-05 15:59 ` [RFC PATCH 01/29] mips: switch to NO_BOOTMEM Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-05 15:59 ` [RFC PATCH 02/29] mm: remove CONFIG_NO_BOOTMEM Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-05 15:59 ` [RFC PATCH 03/29] mm: remove CONFIG_HAVE_MEMBLOCK Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-19 9:04 ` Jonathan Cameron 2018-09-19 9:04 ` Jonathan Cameron 2018-09-19 9:04 ` Jonathan Cameron 2018-09-19 10:34 ` Mike Rapoport 2018-09-19 10:34 ` Mike Rapoport 2018-09-19 10:34 ` Mike Rapoport 2018-09-19 10:34 ` Mike Rapoport 2018-09-19 10:45 ` Jonathan Cameron 2018-09-19 10:45 ` Jonathan Cameron 2018-09-19 10:45 ` Jonathan Cameron 2018-09-19 10:55 ` Mike Rapoport 2018-09-19 10:55 ` Mike Rapoport 2018-09-05 15:59 ` [RFC PATCH 04/29] mm: remove bootmem allocator implementation Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 7:30 ` Michal Hocko 2018-09-06 7:30 ` Michal Hocko 2018-09-06 8:31 ` Michal Hocko 2018-09-06 8:31 ` Michal Hocko 2018-09-05 15:59 ` [RFC PATCH 05/29] mm: nobootmem: remove dead code Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-05 15:59 ` [RFC PATCH 06/29] memblock: rename memblock_alloc{_nid,_try_nid} to memblock_phys_alloc* Mike Rapoport 2018-09-05 15:59 ` [RFC PATCH 06/29] memblock: rename memblock_alloc{_nid, _try_nid} " Mike Rapoport 2018-09-05 15:59 ` [RFC PATCH 06/29] memblock: rename memblock_alloc{_nid,_try_nid} " Mike Rapoport 2018-09-06 7:35 ` Michal Hocko 2018-09-06 7:35 ` [RFC PATCH 06/29] memblock: rename memblock_alloc{_nid, _try_nid} " Michal Hocko 2018-09-06 7:35 ` [RFC PATCH 06/29] memblock: rename memblock_alloc{_nid,_try_nid} " Michal Hocko 2018-09-05 15:59 ` [RFC PATCH 07/29] memblock: remove _virt from APIs returning virtual address Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-05 17:04 ` Rob Herring 2018-09-05 17:04 ` Rob Herring 2018-09-05 17:20 ` Mike Rapoport 2018-09-05 17:20 ` Mike Rapoport 2018-09-06 7:28 ` Michal Hocko 2018-09-06 7:28 ` Michal Hocko 2018-09-06 12:43 ` Mike Rapoport 2018-09-06 12:43 ` Mike Rapoport 2018-09-06 13:01 ` Michal Hocko 2018-09-06 13:01 ` Michal Hocko 2018-09-06 13:39 ` Mike Rapoport 2018-09-06 13:39 ` Mike Rapoport 2018-09-06 13:46 ` Michal Hocko 2018-09-06 13:46 ` Michal Hocko 2018-09-07 8:42 ` Mike Rapoport 2018-09-07 8:42 ` Mike Rapoport 2018-09-07 8:47 ` Michal Hocko 2018-09-07 8:47 ` Michal Hocko 2018-09-07 9:19 ` Mike Rapoport 2018-09-07 9:19 ` Mike Rapoport 2018-09-05 15:59 ` [RFC PATCH 08/29] memblock: replace alloc_bootmem_align with memblock_alloc Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 7:39 ` Michal Hocko 2018-09-06 7:39 ` Michal Hocko 2018-09-05 15:59 ` [RFC PATCH 09/29] memblock: replace alloc_bootmem_low with memblock_alloc_low Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 7:41 ` Michal Hocko 2018-09-06 7:41 ` Michal Hocko 2018-09-05 15:59 ` [RFC PATCH 10/29] memblock: replace __alloc_bootmem_node_nopanic with memblock_alloc_try_nid_nopanic Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 7:49 ` Michal Hocko 2018-09-06 7:49 ` [RFC PATCH 10/29] memblock: replace __alloc_bootmem_node_nopanic with memblock_alloc_try_nid_nop Michal Hocko 2018-09-05 15:59 ` [RFC PATCH 11/29] memblock: replace alloc_bootmem_pages_nopanic with memblock_alloc_nopanic Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 7:53 ` Michal Hocko 2018-09-06 7:53 ` Michal Hocko 2018-09-05 15:59 ` [RFC PATCH 12/29] memblock: replace alloc_bootmem_low with memblock_alloc_low Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 7:55 ` Michal Hocko 2018-09-06 7:55 ` Michal Hocko 2018-09-05 15:59 ` [RFC PATCH 13/29] memblock: replace __alloc_bootmem_nopanic with memblock_alloc_from_nopanic Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 7:57 ` Michal Hocko 2018-09-06 7:57 ` Michal Hocko 2018-09-06 12:44 ` Mike Rapoport 2018-09-06 12:44 ` Mike Rapoport 2018-09-05 15:59 ` [RFC PATCH 14/29] memblock: add align parameter to memblock_alloc_node() Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 8:06 ` Michal Hocko 2018-09-06 8:06 ` Michal Hocko 2018-09-06 12:49 ` Mike Rapoport 2018-09-06 12:49 ` Mike Rapoport 2018-09-05 15:59 ` [RFC PATCH 15/29] memblock: replace alloc_bootmem_pages_node with memblock_alloc_node Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 8:08 ` Michal Hocko 2018-09-06 8:08 ` Michal Hocko 2018-09-05 15:59 ` [RFC PATCH 16/29] memblock: replace __alloc_bootmem_node with appropriate memblock_ API Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 8:38 ` Michal Hocko 2018-09-06 8:38 ` Michal Hocko 2018-09-06 12:50 ` Mike Rapoport 2018-09-06 12:50 ` Mike Rapoport 2018-09-05 15:59 ` [RFC PATCH 17/29] memblock: replace alloc_bootmem_node with memblock_alloc_node Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 8:41 ` Michal Hocko 2018-09-06 8:41 ` Michal Hocko 2018-09-05 15:59 ` [RFC PATCH 18/29] memblock: replace alloc_bootmem_low_pages with memblock_alloc_low Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 8:43 ` Michal Hocko 2018-09-06 8:43 ` Michal Hocko 2018-09-05 15:59 ` [RFC PATCH 19/29] memblock: replace alloc_bootmem_pages with memblock_alloc Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 8:44 ` Michal Hocko 2018-09-06 8:44 ` Michal Hocko 2018-09-05 15:59 ` [RFC PATCH 20/29] memblock: replace __alloc_bootmem with memblock_alloc_from Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 8:52 ` Michal Hocko 2018-09-06 8:52 ` Michal Hocko 2018-09-06 12:58 ` Mike Rapoport 2018-09-06 12:58 ` Mike Rapoport 2018-09-05 15:59 ` [RFC PATCH 21/29] memblock: replace alloc_bootmem with memblock_alloc Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 8:55 ` Michal Hocko 2018-09-06 8:55 ` Michal Hocko 2018-09-06 13:14 ` Mike Rapoport 2018-09-06 13:14 ` Mike Rapoport 2018-09-05 15:59 ` [RFC PATCH 22/29] mm: nobootmem: remove bootmem allocation APIs Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 8:56 ` Michal Hocko 2018-09-06 8:56 ` Michal Hocko 2018-09-05 15:59 ` [RFC PATCH 23/29] memblock: replace free_bootmem{_node} with memblock_free Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 8:57 ` Michal Hocko 2018-09-06 8:57 ` Michal Hocko 2018-09-05 15:59 ` [RFC PATCH 24/29] memblock: replace free_bootmem_late with memblock_free_late Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 9:02 ` Michal Hocko 2018-09-06 9:02 ` Michal Hocko 2018-09-05 15:59 ` [RFC PATCH 25/29] memblock: rename free_all_bootmem to memblock_free_all Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 9:04 ` Michal Hocko 2018-09-06 9:04 ` Michal Hocko 2018-09-05 15:59 ` [RFC PATCH 26/29] memblock: rename __free_pages_bootmem to memblock_free_pages Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 9:06 ` Michal Hocko 2018-09-06 9:06 ` Michal Hocko 2018-09-05 15:59 ` [RFC PATCH 27/29] mm: remove nobootmem Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 9:08 ` Michal Hocko [this message] 2018-09-06 9:08 ` Michal Hocko 2018-09-05 15:59 ` [RFC PATCH 28/29] memblock: replace BOOTMEM_ALLOC_* with MEMBLOCK variants Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 9:08 ` Michal Hocko 2018-09-06 9:08 ` Michal Hocko 2018-09-05 15:59 ` [RFC PATCH 29/29] mm: remove include/linux/bootmem.h Mike Rapoport 2018-09-05 15:59 ` Mike Rapoport 2018-09-06 2:33 ` [RFC PATCH 00/29] mm: remove bootmem allocator Greentime Hu 2018-09-06 2:33 ` Greentime Hu 2018-09-06 2:33 ` Greentime Hu 2018-09-06 13:30 ` Mike Rapoport 2018-09-06 13:30 ` Mike Rapoport 2018-09-06 13:30 ` Mike Rapoport 2018-09-06 9:15 ` Michal Hocko 2018-09-06 9:15 ` Michal Hocko 2018-09-06 13:04 ` Pasha Tatashin 2018-09-06 13:04 ` Pasha Tatashin 2018-09-06 13:04 ` Pasha Tatashin 2018-09-06 13:21 ` Mike Rapoport 2018-09-06 13:21 ` Mike Rapoport 2018-09-06 13:16 ` Mike Rapoport 2018-09-06 13:16 ` Mike Rapoport
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=20180906090817.GL14951@dhcp22.suse.cz \ --to=mhocko@kernel.org \ --cc=akpm@linux-foundation.org \ --cc=davem@davemloft.net \ --cc=gregkh@linuxfoundation.org \ --cc=linux-ia64@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mips@linux-mips.org \ --cc=linux-mm@kvack.org \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=mingo@redhat.com \ --cc=mpe@ellerman.id.au \ --cc=paul.burton@mips.com \ --cc=rppt@linux.vnet.ibm.com \ --cc=sparclinux@vger.kernel.org \ --cc=tglx@linutronix.de \ --cc=tony.luck@intel.com \ /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: linkBe 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.