All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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: link
Be 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.