All of lore.kernel.org
 help / color / mirror / Atom feed
From: Palmer Dabbelt <palmer@dabbelt.com>
To: wangkefeng.wang@huawei.com
Cc: linux-riscv@lists.infradead.org,
	Paul Walmsley <paul.walmsley@sifive.com>,
	 wangkefeng.wang@huawei.com
Subject: Re: [PATCH 2/2] riscv: Add mem kernel parameter support
Date: Fri, 11 Jun 2021 14:18:58 -0700 (PDT)	[thread overview]
Message-ID: <mhng-979cc98c-d1b7-4710-92b5-3d041bd27ce7@palmerdabbelt-glaptop> (raw)
In-Reply-To: <20210602085517.127481-2-wangkefeng.wang@huawei.com>

On Wed, 02 Jun 2021 01:55:17 PDT (-0700), wangkefeng.wang@huawei.com wrote:
> The memblock_enforce_memory_limit() could change the memblock
> range, so move the dram_end assignment after it in bootmem_init(),
> then support mem= cmdline.
>
> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
> ---
>  arch/riscv/mm/init.c | 29 +++++++++++++++++++++++++----
>  1 file changed, 25 insertions(+), 4 deletions(-)
>
> diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
> index 17f2e1da2b3d..ce61510a08c0 100644
> --- a/arch/riscv/mm/init.c
> +++ b/arch/riscv/mm/init.c
> @@ -127,19 +127,39 @@ void __init mem_init(void)
>  	print_vm_layout();
>  }
>
> +/*
> + * The default maximal physical memory size is -PAGE_OFFSET,
> + * limit the memory size via mem.
> + */
> +static phys_addr_t memory_limit = -PAGE_OFFSET;
> +
> +static int __init early_mem(char *p)
> +{
> +	u64 size;
> +
> +	if (!p)
> +		return 1;
> +
> +	size = memparse(p, &p) & PAGE_MASK;
> +	memory_limit = min_t(u64, size, memory_limit);
> +
> +	pr_notice("Memory limited to %lldMB\n", (u64)memory_limit >> 20);
> +
> +	return 0;
> +}
> +early_param("mem", early_mem);
> +
>  void __init setup_bootmem(void)
>  {
>  	phys_addr_t vmlinux_end = __pa_symbol(&_end);
>  	phys_addr_t vmlinux_start = __pa_symbol(&_start);
> -	phys_addr_t dram_end = memblock_end_of_DRAM();
>  	phys_addr_t max_mapped_addr = __pa(~(ulong)0);
> +	phys_addr_t dram_end;
>
>  #ifdef CONFIG_XIP_KERNEL
>  	vmlinux_start = __pa_symbol(&_sdata);
>  #endif
> -
> -	/* The maximal physical memory size is -PAGE_OFFSET. */
> -	memblock_enforce_memory_limit(-PAGE_OFFSET);
> +	memblock_enforce_memory_limit(memory_limit);
>
>  	/*
>  	 * Reserve from the start of the kernel to the end of the kernel
> @@ -154,6 +174,7 @@ void __init setup_bootmem(void)
>  #endif
>  	memblock_reserve(vmlinux_start, vmlinux_end - vmlinux_start);
>
> +	dram_end = memblock_end_of_DRAM();
>  	/*
>  	 * memblock allocator is not aware of the fact that last 4K bytes of
>  	 * the addressable memory can not be mapped because of IS_ERR_VALUE

I'm not sure why, but this patch won't apply.  I've applied it manually, 
it's on for-next (along with the #1).

Thanks!

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

      reply	other threads:[~2021-06-11 21:19 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-02  8:55 [PATCH 1/2] riscv: Only initialize swiotlb when necessary Kefeng Wang
2021-06-02  8:55 ` [PATCH 2/2] riscv: Add mem kernel parameter support Kefeng Wang
2021-06-11 21:18   ` Palmer Dabbelt [this message]

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=mhng-979cc98c-d1b7-4710-92b5-3d041bd27ce7@palmerdabbelt-glaptop \
    --to=palmer@dabbelt.com \
    --cc=linux-riscv@lists.infradead.org \
    --cc=paul.walmsley@sifive.com \
    --cc=wangkefeng.wang@huawei.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.