All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matt Redfearn <matt.redfearn@mips.com>
To: Serge Semin <fancer.lancer@gmail.com>, <ralf@linux-mips.org>,
	<miodrag.dinic@mips.com>, <jhogan@kernel.org>,
	<goran.ferenc@mips.com>, <david.daney@cavium.com>,
	<paul.gortmaker@windriver.com>, <paul.burton@mips.com>,
	<alex.belits@cavium.com>, <Steven.Hill@cavium.com>
Cc: <alexander.sverdlin@nokia.com>, <kumba@gentoo.org>,
	<marcin.nowakowski@mips.com>, <James.hogan@mips.com>,
	<Peter.Wotton@mips.com>, <Sergey.Semin@t-platforms.ru>,
	<linux-mips@linux-mips.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 14/15] MIPS: memblock: Discard bootmem from SGI IP27 code
Date: Tue, 13 Feb 2018 14:17:21 +0000	[thread overview]
Message-ID: <4de8dba6-64bb-599f-c67e-e6fb97db87de@mips.com> (raw)
In-Reply-To: <20180202035458.30456-15-fancer.lancer@gmail.com>

Hi Serge,

On 02/02/18 03:54, Serge Semin wrote:
> SGI IP27 got its own code to set the early memory allocator up since it's
> NUMA-based system. So in order to be compatible with NO_BOOTMEM config
> we need to discard the bootmem allocator initialization and insert the
> memblock reservation method. Although in my opinion the code isn't
> working anyway since I couldn't find a place where prom_meminit() called
> and kernel memory isn't reserved. It must have been untested since the
> time the arch/mips/mips-boards/generic code was in the kernel.

I don't have access to an IP27, but the change looks sensible to me.

Reviewed-by: Matt Redfearn <matt.redfearn@mips.com>

> 
> Signed-off-by: Serge Semin <fancer.lancer@gmail.com>
> ---
>   arch/mips/sgi-ip27/ip27-memory.c | 9 ++-------
>   1 file changed, 2 insertions(+), 7 deletions(-)
> 
> diff --git a/arch/mips/sgi-ip27/ip27-memory.c b/arch/mips/sgi-ip27/ip27-memory.c
> index 59133d0abc83..c480ee3eca96 100644
> --- a/arch/mips/sgi-ip27/ip27-memory.c
> +++ b/arch/mips/sgi-ip27/ip27-memory.c
> @@ -389,7 +389,6 @@ static void __init node_mem_init(cnodeid_t node)
>   {
>   	unsigned long slot_firstpfn = slot_getbasepfn(node, 0);
>   	unsigned long slot_freepfn = node_getfirstfree(node);
> -	unsigned long bootmap_size;
>   	unsigned long start_pfn, end_pfn;
>   
>   	get_pfn_range_for_nid(node, &start_pfn, &end_pfn);
> @@ -400,7 +399,6 @@ static void __init node_mem_init(cnodeid_t node)
>   	__node_data[node] = __va(slot_freepfn << PAGE_SHIFT);
>   	memset(__node_data[node], 0, PAGE_SIZE);
>   
> -	NODE_DATA(node)->bdata = &bootmem_node_data[node];
>   	NODE_DATA(node)->node_start_pfn = start_pfn;
>   	NODE_DATA(node)->node_spanned_pages = end_pfn - start_pfn;
>   
> @@ -409,12 +407,9 @@ static void __init node_mem_init(cnodeid_t node)
>   	slot_freepfn += PFN_UP(sizeof(struct pglist_data) +
>   			       sizeof(struct hub_data));
>   
> -	bootmap_size = init_bootmem_node(NODE_DATA(node), slot_freepfn,
> -					start_pfn, end_pfn);
>   	free_bootmem_with_active_regions(node, end_pfn);
> -	reserve_bootmem_node(NODE_DATA(node), slot_firstpfn << PAGE_SHIFT,
> -		((slot_freepfn - slot_firstpfn) << PAGE_SHIFT) + bootmap_size,
> -		BOOTMEM_DEFAULT);
> +	memblock_reserve(slot_firstpfn << PAGE_SHIFT,
> +		((slot_freepfn - slot_firstpfn) << PAGE_SHIFT));

How about PFN_PHYS()? In fact, that could be used throughout the series 
to tidy up some of the shifting by PAGE_SIZE.

Thanks,
Matt

>   	sparse_memory_present_with_active_regions(node);
>   }
>   
> 

WARNING: multiple messages have this Message-ID (diff)
From: Matt Redfearn <matt.redfearn@mips.com>
To: Serge Semin <fancer.lancer@gmail.com>,
	ralf@linux-mips.org, miodrag.dinic@mips.com, jhogan@kernel.org,
	goran.ferenc@mips.com, david.daney@cavium.com,
	paul.gortmaker@windriver.com, paul.burton@mips.com,
	alex.belits@cavium.com, Steven.Hill@cavium.com
Cc: alexander.sverdlin@nokia.com, kumba@gentoo.org,
	marcin.nowakowski@mips.com, James.hogan@mips.com,
	Peter.Wotton@mips.com, Sergey.Semin@t-platforms.ru,
	linux-mips@linux-mips.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 14/15] MIPS: memblock: Discard bootmem from SGI IP27 code
Date: Tue, 13 Feb 2018 14:17:21 +0000	[thread overview]
Message-ID: <4de8dba6-64bb-599f-c67e-e6fb97db87de@mips.com> (raw)
Message-ID: <20180213141721.c0l2dyATIoztvlJwXiQzZYGzBlSH_MEPkyYhu-zY9Rw@z> (raw)
In-Reply-To: <20180202035458.30456-15-fancer.lancer@gmail.com>

Hi Serge,

On 02/02/18 03:54, Serge Semin wrote:
> SGI IP27 got its own code to set the early memory allocator up since it's
> NUMA-based system. So in order to be compatible with NO_BOOTMEM config
> we need to discard the bootmem allocator initialization and insert the
> memblock reservation method. Although in my opinion the code isn't
> working anyway since I couldn't find a place where prom_meminit() called
> and kernel memory isn't reserved. It must have been untested since the
> time the arch/mips/mips-boards/generic code was in the kernel.

I don't have access to an IP27, but the change looks sensible to me.

Reviewed-by: Matt Redfearn <matt.redfearn@mips.com>

> 
> Signed-off-by: Serge Semin <fancer.lancer@gmail.com>
> ---
>   arch/mips/sgi-ip27/ip27-memory.c | 9 ++-------
>   1 file changed, 2 insertions(+), 7 deletions(-)
> 
> diff --git a/arch/mips/sgi-ip27/ip27-memory.c b/arch/mips/sgi-ip27/ip27-memory.c
> index 59133d0abc83..c480ee3eca96 100644
> --- a/arch/mips/sgi-ip27/ip27-memory.c
> +++ b/arch/mips/sgi-ip27/ip27-memory.c
> @@ -389,7 +389,6 @@ static void __init node_mem_init(cnodeid_t node)
>   {
>   	unsigned long slot_firstpfn = slot_getbasepfn(node, 0);
>   	unsigned long slot_freepfn = node_getfirstfree(node);
> -	unsigned long bootmap_size;
>   	unsigned long start_pfn, end_pfn;
>   
>   	get_pfn_range_for_nid(node, &start_pfn, &end_pfn);
> @@ -400,7 +399,6 @@ static void __init node_mem_init(cnodeid_t node)
>   	__node_data[node] = __va(slot_freepfn << PAGE_SHIFT);
>   	memset(__node_data[node], 0, PAGE_SIZE);
>   
> -	NODE_DATA(node)->bdata = &bootmem_node_data[node];
>   	NODE_DATA(node)->node_start_pfn = start_pfn;
>   	NODE_DATA(node)->node_spanned_pages = end_pfn - start_pfn;
>   
> @@ -409,12 +407,9 @@ static void __init node_mem_init(cnodeid_t node)
>   	slot_freepfn += PFN_UP(sizeof(struct pglist_data) +
>   			       sizeof(struct hub_data));
>   
> -	bootmap_size = init_bootmem_node(NODE_DATA(node), slot_freepfn,
> -					start_pfn, end_pfn);
>   	free_bootmem_with_active_regions(node, end_pfn);
> -	reserve_bootmem_node(NODE_DATA(node), slot_firstpfn << PAGE_SHIFT,
> -		((slot_freepfn - slot_firstpfn) << PAGE_SHIFT) + bootmap_size,
> -		BOOTMEM_DEFAULT);
> +	memblock_reserve(slot_firstpfn << PAGE_SHIFT,
> +		((slot_freepfn - slot_firstpfn) << PAGE_SHIFT));

How about PFN_PHYS()? In fact, that could be used throughout the series 
to tidy up some of the shifting by PAGE_SIZE.

Thanks,
Matt

>   	sparse_memory_present_with_active_regions(node);
>   }
>   
> 

  reply	other threads:[~2018-02-13 14:24 UTC|newest]

Thread overview: 101+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-17 22:22 [PATCH 00/14] MIPS: memblock: Switch arch code to NO_BOOTMEM Serge Semin
2018-01-17 22:22 ` [PATCH 01/14] MIPS: memblock: Add RESERVED_NOMAP memory flag Serge Semin
2018-01-17 22:23 ` [PATCH 02/14] MIPS: memblock: Surely map BSS kernel memory section Serge Semin
2018-01-22 16:35   ` Matt Redfearn
2018-01-22 16:35     ` Matt Redfearn
2018-01-22 21:47     ` Serge Semin
2018-01-23 11:03       ` Matt Redfearn
2018-01-23 11:03         ` Matt Redfearn
2018-01-23 19:27         ` Serge Semin
2018-01-24  9:49           ` Matt Redfearn
2018-01-24  9:49             ` Matt Redfearn
2018-01-24 10:03             ` Serge Semin
2018-01-17 22:23 ` [PATCH 03/14] MIPS: memblock: Reserve initrd memory in memblock Serge Semin
2018-01-17 22:23 ` [PATCH 04/14] MIPS: memblock: Discard bootmem initialization Serge Semin
2018-01-17 22:23 ` [PATCH 05/14] MIPS: memblock: Add reserved memory regions to memblock Serge Semin
2018-01-17 22:23 ` [PATCH 06/14] MIPS: memblock: Reserve kdump/crash regions in memblock Serge Semin
2018-01-17 22:23 ` [PATCH 07/14] MIPS: memblock: Mark present sparsemem sections Serge Semin
2018-01-24  6:13   ` Marcin Nowakowski
2018-01-24  6:13     ` Marcin Nowakowski
2018-01-24  7:27     ` Serge Semin
2018-01-17 22:23 ` [PATCH 08/14] MIPS: memblock: Simplify DMA contiguous reservation Serge Semin
2018-01-17 22:23 ` [PATCH 09/14] MIPS: memblock: Allow memblock regions resize Serge Semin
2018-01-17 22:23 ` [PATCH 10/14] MIPS: memblock: Perform early low memory test Serge Semin
2018-01-17 22:23 ` [PATCH 11/14] MIPS: memblock: Print out kernel virtual mem layout Serge Semin
2018-01-18 20:03   ` Florian Fainelli
2018-01-18 20:18     ` Serge Semin
2018-01-19  7:59       ` Matt Redfearn
2018-01-19  7:59         ` Matt Redfearn
2018-01-19 14:27         ` Serge Semin
2018-01-23 15:35           ` Matt Redfearn
2018-01-23 15:35             ` Matt Redfearn
2018-01-23 19:10             ` Serge Semin
2018-01-24  9:46               ` Matt Redfearn
2018-01-24  9:46                 ` Matt Redfearn
2018-01-24 10:08                 ` Serge Semin
2018-01-17 22:23 ` [PATCH 12/14] MIPS: memblock: Discard bootmem from Loongson3 code Serge Semin
2018-01-23 22:28   ` Jiaxun Yang
2018-01-23 19:36     ` Serge Semin
2018-01-17 22:23 ` [PATCH 13/14] MIPS: memblock: Discard bootmem from SGI IP27 code Serge Semin
2018-01-17 22:23 ` [PATCH 14/14] MIPS: memblock: Deactivate bootmem allocator Serge Semin
2018-01-23 23:59   ` James Hogan
2018-01-24  8:28     ` Serge Semin
2018-01-22 16:33 ` [PATCH] MIPS: KASLR: Drop relocatable fixup from reservation_init Matt Redfearn
2018-01-22 16:33   ` Matt Redfearn
2018-01-22 21:54   ` Serge Semin
2018-01-22 16:36 ` [PATCH 00/14] MIPS: memblock: Switch arch code to NO_BOOTMEM Matt Redfearn
2018-01-22 16:36   ` Matt Redfearn
2018-01-22 21:33   ` Serge Semin
2018-01-23 11:29   ` Mathieu Malaterre
2018-01-23 14:01     ` Matt Redfearn
2018-01-23 14:01       ` Matt Redfearn
2018-01-25 17:58 ` Alexander Sverdlin
2018-01-25 17:58   ` Alexander Sverdlin
2018-01-25 20:17   ` Serge Semin
2018-01-31  0:21 ` Serge Semin
2018-02-02  3:54 ` [PATCH v2 00/15] " Serge Semin
2018-02-02  3:54   ` [PATCH v2 01/15] MIPS: memblock: Add RESERVED_NOMAP memory flag Serge Semin
2018-02-13 11:21     ` Matt Redfearn
2018-02-13 11:21       ` Matt Redfearn
2018-02-02  3:54   ` [PATCH v2 02/15] MIPS: memblock: Surely map BSS kernel memory section Serge Semin
2018-02-13 11:22     ` Matt Redfearn
2018-02-13 11:22       ` Matt Redfearn
2018-02-02  3:54   ` [PATCH v2 03/15] MIPS: memblock: Reserve initrd memory in memblock Serge Semin
2018-02-13 11:22     ` Matt Redfearn
2018-02-13 11:22       ` Matt Redfearn
2018-02-02  3:54   ` [PATCH v2 04/15] MIPS: memblock: Discard bootmem initialization Serge Semin
2018-02-13 11:28     ` Matt Redfearn
2018-02-13 11:28       ` Matt Redfearn
2018-02-02  3:54   ` [PATCH v2 05/15] MIPS: KASLR: Drop relocatable fixup from reservation_init Serge Semin
2018-02-13 11:30     ` Matt Redfearn
2018-02-13 11:30       ` Matt Redfearn
2018-02-02  3:54   ` [PATCH v2 06/15] MIPS: memblock: Add reserved memory regions to memblock Serge Semin
2018-02-13 13:44     ` Matt Redfearn
2018-02-13 13:44       ` Matt Redfearn
2018-02-02  3:54   ` [PATCH v2 07/15] MIPS: memblock: Reserve kdump/crash regions in memblock Serge Semin
2018-02-13 13:45     ` Matt Redfearn
2018-02-13 13:45       ` Matt Redfearn
2018-02-02  3:54   ` [PATCH v2 08/15] MIPS: memblock: Mark present sparsemem sections Serge Semin
2018-02-13 13:50     ` Matt Redfearn
2018-02-13 13:50       ` Matt Redfearn
2018-02-02  3:54   ` [PATCH v2 09/15] MIPS: memblock: Simplify DMA contiguous reservation Serge Semin
2018-02-13 13:51     ` Matt Redfearn
2018-02-13 13:51       ` Matt Redfearn
2018-02-02  3:54   ` [PATCH v2 10/15] MIPS: memblock: Allow memblock regions resize Serge Semin
2018-02-13 13:55     ` Matt Redfearn
2018-02-13 13:55       ` Matt Redfearn
2018-02-02  3:54   ` [PATCH v2 11/15] MIPS: memblock: Perform early low memory test Serge Semin
2018-02-13 14:01     ` Matt Redfearn
2018-02-13 14:01       ` Matt Redfearn
2018-02-02  3:54   ` [PATCH v2 12/15] MIPS: memblock: Print out kernel virtual mem layout Serge Semin
2018-02-13 14:05     ` Matt Redfearn
2018-02-13 14:05       ` Matt Redfearn
2018-02-02  3:54   ` [PATCH v2 13/15] MIPS: memblock: Discard bootmem from Loongson3 code Serge Semin
2018-02-13 14:09     ` Matt Redfearn
2018-02-13 14:09       ` Matt Redfearn
2018-02-02  3:54   ` [PATCH v2 14/15] MIPS: memblock: Discard bootmem from SGI IP27 code Serge Semin
2018-02-13 14:17     ` Matt Redfearn [this message]
2018-02-13 14:17       ` Matt Redfearn
2018-02-02  3:54   ` [PATCH v2 15/15] MIPS: memblock: Deactivate bootmem allocator Serge Semin
2018-02-13 14:18     ` Matt Redfearn
2018-02-13 14:18       ` Matt Redfearn

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=4de8dba6-64bb-599f-c67e-e6fb97db87de@mips.com \
    --to=matt.redfearn@mips.com \
    --cc=James.hogan@mips.com \
    --cc=Peter.Wotton@mips.com \
    --cc=Sergey.Semin@t-platforms.ru \
    --cc=Steven.Hill@cavium.com \
    --cc=alex.belits@cavium.com \
    --cc=alexander.sverdlin@nokia.com \
    --cc=david.daney@cavium.com \
    --cc=fancer.lancer@gmail.com \
    --cc=goran.ferenc@mips.com \
    --cc=jhogan@kernel.org \
    --cc=kumba@gentoo.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@linux-mips.org \
    --cc=marcin.nowakowski@mips.com \
    --cc=miodrag.dinic@mips.com \
    --cc=paul.burton@mips.com \
    --cc=paul.gortmaker@windriver.com \
    --cc=ralf@linux-mips.org \
    /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.