All of lore.kernel.org
 help / color / mirror / Atom feed
From: Charlie Jenkins <charlie@rivosinc.com>
To: Yunhui Cui <cuiyunhui@bytedance.com>
Cc: paul.walmsley@sifive.com, palmer@dabbelt.com,
	aou@eecs.berkeley.edu, alexghiti@rivosinc.com,
	akpm@linux-foundation.org, bhe@redhat.com, rppt@kernel.org,
	dawei.li@shingroup.cn, jszhang@kernel.org, namcao@linutronix.de,
	chenjiahao16@huawei.com, bjorn@rivosinc.com,
	vishal.moola@gmail.com, linux-riscv@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] RISC-V: cmdline: Add support for 'memmap' parameter
Date: Thu, 20 Jun 2024 18:03:42 -0700	[thread overview]
Message-ID: <ZnTRbptoowL+1GOP@ghost> (raw)
In-Reply-To: <20240618120842.15159-1-cuiyunhui@bytedance.com>

On Tue, Jun 18, 2024 at 08:08:42PM +0800, Yunhui Cui wrote:
> Implement support for parsing 'memmap' kernel command line parameter.
> 
> This patch covers parsing of the following two formats for 'memmap'
> parameter values:
> 
> - nn[KMG]@ss[KMG]
> - nn[KMG]$ss[KMG]
> 
> ([KMG] = K M or G (kilo, mega, giga))
> 
> These two allowed formats for parameter value are already documented
> in file kernel-parameters.txt in Documentation/admin-guide folder.
> Some architectures already support them, but Mips did not prior to

Copy-paste from a Mips patch? Should say riscv :)

It looks like this code is duplicated from xtensa and is effectively the
same as mips. Can this code be placed in a generic file so that the code
can be shared between mips, riscv, and xtensa -- maybe a new config that
gets selected by mips/riscv/xtensa?

- Charlie

> this patch.
> 
> Excerpt from Documentation/admin-guide/kernel-parameters.txt:
> 
> memmap=nn[KMG]@ss[KMG]
> [KNL] Force usage of a specific region of memory.
> Region of memory to be used is from ss to ss+nn.
> 
> memmap=nn[KMG]$ss[KMG]
> Mark specific memory as reserved.
> Region of memory to be reserved is from ss to ss+nn.
> Example: Exclude memory from 0x18690000-0x1869ffff
> memmap=64K$0x18690000
> or
> memmap=0x10000$0x18690000
> 
> There is no need to update this documentation file with respect to
> this patch.
> 
> Signed-off-by: Yunhui Cui <cuiyunhui@bytedance.com>
> ---
>  arch/riscv/mm/init.c | 50 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 50 insertions(+)
> 
> diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
> index e3405e4b99af..7be7ec3092ad 100644
> --- a/arch/riscv/mm/init.c
> +++ b/arch/riscv/mm/init.c
> @@ -208,6 +208,56 @@ static int __init early_mem(char *p)
>  }
>  early_param("mem", early_mem);
>  
> +static void __init parse_memmap_one(char *p)
> +{
> +	char *oldp;
> +	unsigned long start_at, mem_size;
> +
> +	if (!p)
> +		return;
> +
> +	oldp = p;
> +	mem_size = memparse(p, &p);
> +	if (p == oldp)
> +		return;
> +
> +	switch (*p) {
> +	case '@':
> +		start_at = memparse(p + 1, &p);
> +		memblock_add(start_at, mem_size);
> +		break;
> +
> +	case '$':
> +		start_at = memparse(p + 1, &p);
> +		memblock_reserve(start_at, mem_size);
> +		break;
> +
> +	case 0:
> +		memblock_reserve(mem_size, -mem_size);
> +		break;
> +
> +	default:
> +		pr_warn("Unrecognized memmap syntax: %s\n", p);
> +		break;
> +	}
> +}
> +
> +static int __init parse_memmap_opt(char *str)
> +{
> +	while (str) {
> +		char *k = strchr(str, ',');
> +
> +		if (k)
> +			*k++ = 0;
> +
> +		parse_memmap_one(str);
> +		str = k;
> +	}
> +
> +	return 0;
> +}
> +early_param("memmap", parse_memmap_opt);
> +
>  static void __init setup_bootmem(void)
>  {
>  	phys_addr_t vmlinux_end = __pa_symbol(&_end);
> -- 
> 2.20.1
> 
> 
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv

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

WARNING: multiple messages have this Message-ID (diff)
From: Charlie Jenkins <charlie@rivosinc.com>
To: Yunhui Cui <cuiyunhui@bytedance.com>
Cc: paul.walmsley@sifive.com, palmer@dabbelt.com,
	aou@eecs.berkeley.edu, alexghiti@rivosinc.com,
	akpm@linux-foundation.org, bhe@redhat.com, rppt@kernel.org,
	dawei.li@shingroup.cn, jszhang@kernel.org, namcao@linutronix.de,
	chenjiahao16@huawei.com, bjorn@rivosinc.com,
	vishal.moola@gmail.com, linux-riscv@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] RISC-V: cmdline: Add support for 'memmap' parameter
Date: Thu, 20 Jun 2024 18:03:42 -0700	[thread overview]
Message-ID: <ZnTRbptoowL+1GOP@ghost> (raw)
In-Reply-To: <20240618120842.15159-1-cuiyunhui@bytedance.com>

On Tue, Jun 18, 2024 at 08:08:42PM +0800, Yunhui Cui wrote:
> Implement support for parsing 'memmap' kernel command line parameter.
> 
> This patch covers parsing of the following two formats for 'memmap'
> parameter values:
> 
> - nn[KMG]@ss[KMG]
> - nn[KMG]$ss[KMG]
> 
> ([KMG] = K M or G (kilo, mega, giga))
> 
> These two allowed formats for parameter value are already documented
> in file kernel-parameters.txt in Documentation/admin-guide folder.
> Some architectures already support them, but Mips did not prior to

Copy-paste from a Mips patch? Should say riscv :)

It looks like this code is duplicated from xtensa and is effectively the
same as mips. Can this code be placed in a generic file so that the code
can be shared between mips, riscv, and xtensa -- maybe a new config that
gets selected by mips/riscv/xtensa?

- Charlie

> this patch.
> 
> Excerpt from Documentation/admin-guide/kernel-parameters.txt:
> 
> memmap=nn[KMG]@ss[KMG]
> [KNL] Force usage of a specific region of memory.
> Region of memory to be used is from ss to ss+nn.
> 
> memmap=nn[KMG]$ss[KMG]
> Mark specific memory as reserved.
> Region of memory to be reserved is from ss to ss+nn.
> Example: Exclude memory from 0x18690000-0x1869ffff
> memmap=64K$0x18690000
> or
> memmap=0x10000$0x18690000
> 
> There is no need to update this documentation file with respect to
> this patch.
> 
> Signed-off-by: Yunhui Cui <cuiyunhui@bytedance.com>
> ---
>  arch/riscv/mm/init.c | 50 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 50 insertions(+)
> 
> diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
> index e3405e4b99af..7be7ec3092ad 100644
> --- a/arch/riscv/mm/init.c
> +++ b/arch/riscv/mm/init.c
> @@ -208,6 +208,56 @@ static int __init early_mem(char *p)
>  }
>  early_param("mem", early_mem);
>  
> +static void __init parse_memmap_one(char *p)
> +{
> +	char *oldp;
> +	unsigned long start_at, mem_size;
> +
> +	if (!p)
> +		return;
> +
> +	oldp = p;
> +	mem_size = memparse(p, &p);
> +	if (p == oldp)
> +		return;
> +
> +	switch (*p) {
> +	case '@':
> +		start_at = memparse(p + 1, &p);
> +		memblock_add(start_at, mem_size);
> +		break;
> +
> +	case '$':
> +		start_at = memparse(p + 1, &p);
> +		memblock_reserve(start_at, mem_size);
> +		break;
> +
> +	case 0:
> +		memblock_reserve(mem_size, -mem_size);
> +		break;
> +
> +	default:
> +		pr_warn("Unrecognized memmap syntax: %s\n", p);
> +		break;
> +	}
> +}
> +
> +static int __init parse_memmap_opt(char *str)
> +{
> +	while (str) {
> +		char *k = strchr(str, ',');
> +
> +		if (k)
> +			*k++ = 0;
> +
> +		parse_memmap_one(str);
> +		str = k;
> +	}
> +
> +	return 0;
> +}
> +early_param("memmap", parse_memmap_opt);
> +
>  static void __init setup_bootmem(void)
>  {
>  	phys_addr_t vmlinux_end = __pa_symbol(&_end);
> -- 
> 2.20.1
> 
> 
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv

  reply	other threads:[~2024-06-21  1:03 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-18 12:08 [PATCH] RISC-V: cmdline: Add support for 'memmap' parameter Yunhui Cui
2024-06-18 12:08 ` Yunhui Cui
2024-06-21  1:03 ` Charlie Jenkins [this message]
2024-06-21  1:03   ` Charlie Jenkins
2024-06-21  2:08   ` [External] " yunhui cui
2024-06-21  2:08     ` yunhui cui
2024-06-21  3:09     ` Charlie Jenkins
2024-06-21  3:09       ` Charlie Jenkins
2024-06-21  6:02       ` yunhui cui
2024-06-21  6:02         ` yunhui cui
2024-06-21  6:39         ` Charlie Jenkins
2024-06-21  6:39           ` Charlie Jenkins
2024-06-23  9:08           ` Mike Rapoport
2024-06-23  9:08             ` Mike Rapoport
2024-06-24  7:03             ` yunhui cui
2024-06-24  7:03               ` yunhui cui

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=ZnTRbptoowL+1GOP@ghost \
    --to=charlie@rivosinc.com \
    --cc=akpm@linux-foundation.org \
    --cc=alexghiti@rivosinc.com \
    --cc=aou@eecs.berkeley.edu \
    --cc=bhe@redhat.com \
    --cc=bjorn@rivosinc.com \
    --cc=chenjiahao16@huawei.com \
    --cc=cuiyunhui@bytedance.com \
    --cc=dawei.li@shingroup.cn \
    --cc=jszhang@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=namcao@linutronix.de \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    --cc=rppt@kernel.org \
    --cc=vishal.moola@gmail.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.