linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/4] MIPS: Modify mem= and memmap= parameter
@ 2022-02-28  6:31 Tiezhu Yang
  2022-02-28  6:31 ` [PATCH v2 1/4] MIPS: Refactor early_parse_mem() to fix mem= parameter Tiezhu Yang
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Tiezhu Yang @ 2022-02-28  6:31 UTC (permalink / raw)
  To: Thomas Bogendoerfer, Mike Rapoport, Andrew Morton
  Cc: Xuefeng Li, linux-mips, linux-mm, linux-kernel

In the current code, the kernel command-line parameter mem= and memmap=
can not work well on MIPS, this patchset refactors the related code to
fix them.

For kdump on MIPS, if the users want to limit the memory region for the
capture kernel to avoid corrupting the memory image of the panic kernel,
use the parameter memmap=limit@base is the proper way, I will submit a
patch to use memmap=limit@base for kexec-tools after this patchset is
applied.

v2: Add some new patches to support memmap=limit@base

Tiezhu Yang (4):
  MIPS: Refactor early_parse_mem() to fix mem= parameter
  memblock: Introduce memblock_mem_range_remove_map()
  MIPS: Refactor early_parse_memmap() to fix memmap= parameter
  MIPS: Remove not used variable usermem

 arch/mips/kernel/setup.c | 71 ++++++++++++------------------------------------
 include/linux/memblock.h |  1 +
 mm/memblock.c            |  9 ++++--
 3 files changed, 25 insertions(+), 56 deletions(-)

-- 
2.1.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2 1/4] MIPS: Refactor early_parse_mem() to fix mem= parameter
  2022-02-28  6:31 [PATCH v2 0/4] MIPS: Modify mem= and memmap= parameter Tiezhu Yang
@ 2022-02-28  6:31 ` Tiezhu Yang
  2022-02-28 17:34   ` kernel test robot
  2022-02-28  6:31 ` [PATCH v2 2/4] memblock: Introduce memblock_mem_range_remove_map() Tiezhu Yang
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 7+ messages in thread
From: Tiezhu Yang @ 2022-02-28  6:31 UTC (permalink / raw)
  To: Thomas Bogendoerfer, Mike Rapoport, Andrew Morton
  Cc: Xuefeng Li, linux-mips, linux-mm, linux-kernel

According to Documentation/admin-guide/kernel-parameters.txt,
the kernel command-line parameter mem= means "Force usage of
a specific amount of memory", but when add "mem=3G" to the
command-line, kernel boot hangs in sparse_init().

This commit is similar with the implementation of the other
archs such as arm64, powerpc and riscv, refactor the function
early_parse_mem() and then use memblock_enforce_memory_limit()
to limit the memory size.

With this patch, when add "mem=3G" to the command-line, the
kernel boots successfully, we can see the following messages:

  [    0.000000] Memory limited to 3072MB
  ...
  [    0.000000] Early memory node ranges
  [    0.000000]   node   0: [mem 0x0000000000200000-0x000000000effffff]
  [    0.000000]   node   0: [mem 0x0000000090200000-0x00000000ffffffff]
  [    0.000000]   node   0: [mem 0x0000000120000000-0x00000001613fffff]
  ...
  [    0.000000] Memory: 3005280K/3145728K available (...)

After login, the output of free command is consistent with the
above log.

Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---
 arch/mips/kernel/setup.c | 26 +++++++++-----------------
 1 file changed, 9 insertions(+), 17 deletions(-)

diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index f979adf..6b6d718 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -339,27 +339,15 @@ static void __init bootmem_init(void)
 #endif	/* CONFIG_SGI_IP27 */
 
 static int usermem __initdata;
+static phys_addr_t memory_limit;
 
 static int __init early_parse_mem(char *p)
 {
-	phys_addr_t start, size;
-
-	/*
-	 * If a user specifies memory size, we
-	 * blow away any automatically generated
-	 * size.
-	 */
-	if (usermem == 0) {
-		usermem = 1;
-		memblock_remove(memblock_start_of_DRAM(),
-			memblock_end_of_DRAM() - memblock_start_of_DRAM());
-	}
-	start = 0;
-	size = memparse(p, &p);
-	if (*p == '@')
-		start = memparse(p + 1, &p);
+	if (!p)
+		return 1;
 
-	memblock_add(start, size);
+	memory_limit = memparse(p, &p) & PAGE_MASK;
+	pr_notice("Memory limited to %lldMB\n", memory_limit >> 20);
 
 	return 0;
 }
@@ -678,6 +666,10 @@ static void __init arch_mem_init(char **cmdline_p)
 	memblock_reserve(__pa_symbol(&__nosave_begin),
 		__pa_symbol(&__nosave_end) - __pa_symbol(&__nosave_begin));
 
+	/* Limit the memory. */
+	memblock_enforce_memory_limit(memory_limit);
+	memblock_allow_resize();
+
 	early_memtest(PFN_PHYS(ARCH_PFN_OFFSET), PFN_PHYS(max_low_pfn));
 }
 
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 2/4] memblock: Introduce memblock_mem_range_remove_map()
  2022-02-28  6:31 [PATCH v2 0/4] MIPS: Modify mem= and memmap= parameter Tiezhu Yang
  2022-02-28  6:31 ` [PATCH v2 1/4] MIPS: Refactor early_parse_mem() to fix mem= parameter Tiezhu Yang
@ 2022-02-28  6:31 ` Tiezhu Yang
  2022-02-28  6:31 ` [PATCH v2 3/4] MIPS: Refactor early_parse_memmap() to fix memmap= parameter Tiezhu Yang
  2022-02-28  6:31 ` [PATCH v2 4/4] MIPS: Remove not used variable usermem Tiezhu Yang
  3 siblings, 0 replies; 7+ messages in thread
From: Tiezhu Yang @ 2022-02-28  6:31 UTC (permalink / raw)
  To: Thomas Bogendoerfer, Mike Rapoport, Andrew Morton
  Cc: Xuefeng Li, linux-mips, linux-mm, linux-kernel

This is preparation for supporting memmap=limit@base parameter,
no functionality change.

Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---
 include/linux/memblock.h | 1 +
 mm/memblock.c            | 9 +++++++--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/include/linux/memblock.h b/include/linux/memblock.h
index 50ad196..e558d2c 100644
--- a/include/linux/memblock.h
+++ b/include/linux/memblock.h
@@ -482,6 +482,7 @@ phys_addr_t memblock_end_of_DRAM(void);
 void memblock_enforce_memory_limit(phys_addr_t memory_limit);
 void memblock_cap_memory_range(phys_addr_t base, phys_addr_t size);
 void memblock_mem_limit_remove_map(phys_addr_t limit);
+void memblock_mem_range_remove_map(phys_addr_t base, phys_addr_t limit);
 bool memblock_is_memory(phys_addr_t addr);
 bool memblock_is_map_memory(phys_addr_t addr);
 bool memblock_is_region_memory(phys_addr_t base, phys_addr_t size);
diff --git a/mm/memblock.c b/mm/memblock.c
index 1018e50..2476d15d 100644
--- a/mm/memblock.c
+++ b/mm/memblock.c
@@ -1723,7 +1723,7 @@ void __init memblock_cap_memory_range(phys_addr_t base, phys_addr_t size)
 			base + size, PHYS_ADDR_MAX);
 }
 
-void __init memblock_mem_limit_remove_map(phys_addr_t limit)
+void __init memblock_mem_range_remove_map(phys_addr_t base, phys_addr_t limit)
 {
 	phys_addr_t max_addr;
 
@@ -1736,7 +1736,12 @@ void __init memblock_mem_limit_remove_map(phys_addr_t limit)
 	if (max_addr == PHYS_ADDR_MAX)
 		return;
 
-	memblock_cap_memory_range(0, max_addr);
+	memblock_cap_memory_range(base, max_addr);
+}
+
+void __init memblock_mem_limit_remove_map(phys_addr_t limit)
+{
+	memblock_mem_range_remove_map(0, limit);
 }
 
 static int __init_memblock memblock_search(struct memblock_type *type, phys_addr_t addr)
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 3/4] MIPS: Refactor early_parse_memmap() to fix memmap= parameter
  2022-02-28  6:31 [PATCH v2 0/4] MIPS: Modify mem= and memmap= parameter Tiezhu Yang
  2022-02-28  6:31 ` [PATCH v2 1/4] MIPS: Refactor early_parse_mem() to fix mem= parameter Tiezhu Yang
  2022-02-28  6:31 ` [PATCH v2 2/4] memblock: Introduce memblock_mem_range_remove_map() Tiezhu Yang
@ 2022-02-28  6:31 ` Tiezhu Yang
  2022-02-28  6:50   ` Mike Rapoport
  2022-02-28  6:31 ` [PATCH v2 4/4] MIPS: Remove not used variable usermem Tiezhu Yang
  3 siblings, 1 reply; 7+ messages in thread
From: Tiezhu Yang @ 2022-02-28  6:31 UTC (permalink / raw)
  To: Thomas Bogendoerfer, Mike Rapoport, Andrew Morton
  Cc: Xuefeng Li, linux-mips, linux-mm, linux-kernel

According to Documentation/admin-guide/kernel-parameters.txt,
the kernel command-line parameter memmap= means "Force usage
of a specific region of memory", but when add "memmap=3G@64M"
to the command-line, kernel boot hangs in sparse_init().

In order to support memmap=limit@base, refactor the function
early_parse_memmap() and then use memblock_mem_range_remove_map()
to limit the memory region.

With this patch, when add "memmap=3G@64M" to the command-line,
the kernel boots successfully, we can see the following messages:

  [    0.000000] Memory limited to 64MB-3136MB
  ...
  [    0.000000] Early memory node ranges
  [    0.000000]   node   0: [mem 0x0000000004000000-0x000000000effffff]
  [    0.000000]   node   0: [mem 0x0000000090200000-0x00000000ffffffff]
  [    0.000000]   node   0: [mem 0x0000000120000000-0x00000001653fffff]
  ...
  [    0.000000] Memory: 3070816K/3147776K available (...)

When add "memmap=128M@64M nr_cpus=1 init 3" to the command-line,
the kernel also boots successfully, we can see the following messages:

  [    0.000000] Memory limited to 64MB-192MB
  ...
  [    0.000000] Early memory node ranges
  [    0.000000]   node   0: [mem 0x0000000004000000-0x000000000c1fffff]
  ...
  [    0.000000] Memory: 95312K/133120K available (...)

After login, the output of free command is consistent with the
above log.

By the way, this commit only supports memmap=limit@base format,
the other formats such as memmap=limit#base, memmap=limit$base
and memmap=limit!base can be added if they are necessary in the
future.

Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---
 arch/mips/kernel/setup.c | 42 +++++++++---------------------------------
 1 file changed, 9 insertions(+), 33 deletions(-)

diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index 6b6d718..e3b1f2e 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -340,6 +340,7 @@ static void __init bootmem_init(void)
 
 static int usermem __initdata;
 static phys_addr_t memory_limit;
+static phys_addr_t memory_base;
 
 static int __init early_parse_mem(char *p)
 {
@@ -355,42 +356,17 @@ early_param("mem", early_parse_mem);
 
 static int __init early_parse_memmap(char *p)
 {
-	char *oldp;
-	u64 start_at, mem_size;
-
 	if (!p)
-		return -EINVAL;
+		return 1;
 
-	if (!strncmp(p, "exactmap", 8)) {
-		pr_err("\"memmap=exactmap\" invalid on MIPS\n");
-		return 0;
-	}
+	memory_limit = memparse(p, &p) & PAGE_MASK;
+	if (*p == '@')
+		memory_base = memparse(p + 1, &p) & PAGE_MASK;
 
-	oldp = p;
-	mem_size = memparse(p, &p);
-	if (p == oldp)
-		return -EINVAL;
-
-	if (*p == '@') {
-		start_at = memparse(p+1, &p);
-		memblock_add(start_at, mem_size);
-	} else if (*p == '#') {
-		pr_err("\"memmap=nn#ss\" (force ACPI data) invalid on MIPS\n");
-		return -EINVAL;
-	} else if (*p == '$') {
-		start_at = memparse(p+1, &p);
-		memblock_add(start_at, mem_size);
-		memblock_reserve(start_at, mem_size);
-	} else {
-		pr_err("\"memmap\" invalid format!\n");
-		return -EINVAL;
-	}
+	pr_notice("Memory limited to %lldMB-%lldMB\n",
+		  memory_base >> 20, (memory_base + memory_limit) >> 20);
 
-	if (*p == '\0') {
-		usermem = 1;
-		return 0;
-	} else
-		return -EINVAL;
+	return 0;
 }
 early_param("memmap", early_parse_memmap);
 
@@ -667,7 +643,7 @@ static void __init arch_mem_init(char **cmdline_p)
 		__pa_symbol(&__nosave_end) - __pa_symbol(&__nosave_begin));
 
 	/* Limit the memory. */
-	memblock_enforce_memory_limit(memory_limit);
+	memblock_mem_range_remove_map(memory_base, memory_limit);
 	memblock_allow_resize();
 
 	early_memtest(PFN_PHYS(ARCH_PFN_OFFSET), PFN_PHYS(max_low_pfn));
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 4/4] MIPS: Remove not used variable usermem
  2022-02-28  6:31 [PATCH v2 0/4] MIPS: Modify mem= and memmap= parameter Tiezhu Yang
                   ` (2 preceding siblings ...)
  2022-02-28  6:31 ` [PATCH v2 3/4] MIPS: Refactor early_parse_memmap() to fix memmap= parameter Tiezhu Yang
@ 2022-02-28  6:31 ` Tiezhu Yang
  3 siblings, 0 replies; 7+ messages in thread
From: Tiezhu Yang @ 2022-02-28  6:31 UTC (permalink / raw)
  To: Thomas Bogendoerfer, Mike Rapoport, Andrew Morton
  Cc: Xuefeng Li, linux-mips, linux-mm, linux-kernel

Now, the variable usermem is not used any more, just remove it.

Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---
 arch/mips/kernel/setup.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index e3b1f2e..a65d0b28 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -338,7 +338,6 @@ static void __init bootmem_init(void)
 
 #endif	/* CONFIG_SGI_IP27 */
 
-static int usermem __initdata;
 static phys_addr_t memory_limit;
 static phys_addr_t memory_base;
 
@@ -596,10 +595,6 @@ static void __init arch_mem_init(char **cmdline_p)
 	*cmdline_p = command_line;
 
 	parse_early_param();
-
-	if (usermem)
-		pr_info("User-defined physical RAM map overwrite\n");
-
 	check_kernel_sections_mem();
 
 	early_init_fdt_reserve_self();
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 3/4] MIPS: Refactor early_parse_memmap() to fix memmap= parameter
  2022-02-28  6:31 ` [PATCH v2 3/4] MIPS: Refactor early_parse_memmap() to fix memmap= parameter Tiezhu Yang
@ 2022-02-28  6:50   ` Mike Rapoport
  0 siblings, 0 replies; 7+ messages in thread
From: Mike Rapoport @ 2022-02-28  6:50 UTC (permalink / raw)
  To: Tiezhu Yang
  Cc: Thomas Bogendoerfer, Andrew Morton, Xuefeng Li, linux-mips,
	linux-mm, linux-kernel

On Mon, Feb 28, 2022 at 02:31:05PM +0800, Tiezhu Yang wrote:
> According to Documentation/admin-guide/kernel-parameters.txt,
> the kernel command-line parameter memmap= means "Force usage
> of a specific region of memory", but when add "memmap=3G@64M"
> to the command-line, kernel boot hangs in sparse_init().
> 
> In order to support memmap=limit@base, refactor the function
> early_parse_memmap() and then use memblock_mem_range_remove_map()
> to limit the memory region.
> 
> With this patch, when add "memmap=3G@64M" to the command-line,
> the kernel boots successfully, we can see the following messages:
> 
>   [    0.000000] Memory limited to 64MB-3136MB
>   ...
>   [    0.000000] Early memory node ranges
>   [    0.000000]   node   0: [mem 0x0000000004000000-0x000000000effffff]
>   [    0.000000]   node   0: [mem 0x0000000090200000-0x00000000ffffffff]
>   [    0.000000]   node   0: [mem 0x0000000120000000-0x00000001653fffff]
>   ...
>   [    0.000000] Memory: 3070816K/3147776K available (...)
> 
> When add "memmap=128M@64M nr_cpus=1 init 3" to the command-line,
> the kernel also boots successfully, we can see the following messages:
> 
>   [    0.000000] Memory limited to 64MB-192MB
>   ...
>   [    0.000000] Early memory node ranges
>   [    0.000000]   node   0: [mem 0x0000000004000000-0x000000000c1fffff]
>   ...
>   [    0.000000] Memory: 95312K/133120K available (...)
> 
> After login, the output of free command is consistent with the
> above log.
> 
> By the way, this commit only supports memmap=limit@base format,
> the other formats such as memmap=limit#base, memmap=limit$base
> and memmap=limit!base can be added if they are necessary in the
> future.
> 
> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
> ---
>  arch/mips/kernel/setup.c | 42 +++++++++---------------------------------
>  1 file changed, 9 insertions(+), 33 deletions(-)
> 
> diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
> index 6b6d718..e3b1f2e 100644
> --- a/arch/mips/kernel/setup.c
> +++ b/arch/mips/kernel/setup.c
> @@ -340,6 +340,7 @@ static void __init bootmem_init(void)
>  
>  static int usermem __initdata;
>  static phys_addr_t memory_limit;
> +static phys_addr_t memory_base;
>  
>  static int __init early_parse_mem(char *p)
>  {
> @@ -355,42 +356,17 @@ early_param("mem", early_parse_mem);
>  
>  static int __init early_parse_memmap(char *p)
>  {
> -	char *oldp;
> -	u64 start_at, mem_size;
> -
>  	if (!p)
> -		return -EINVAL;
> +		return 1;
>  
> -	if (!strncmp(p, "exactmap", 8)) {
> -		pr_err("\"memmap=exactmap\" invalid on MIPS\n");
> -		return 0;
> -	}
> +	memory_limit = memparse(p, &p) & PAGE_MASK;
> +	if (*p == '@')
> +		memory_base = memparse(p + 1, &p) & PAGE_MASK;
>  
> -	oldp = p;
> -	mem_size = memparse(p, &p);
> -	if (p == oldp)
> -		return -EINVAL;
> -
> -	if (*p == '@') {
> -		start_at = memparse(p+1, &p);
> -		memblock_add(start_at, mem_size);
> -	} else if (*p == '#') {
> -		pr_err("\"memmap=nn#ss\" (force ACPI data) invalid on MIPS\n");
> -		return -EINVAL;
> -	} else if (*p == '$') {
> -		start_at = memparse(p+1, &p);
> -		memblock_add(start_at, mem_size);
> -		memblock_reserve(start_at, mem_size);
> -	} else {
> -		pr_err("\"memmap\" invalid format!\n");
> -		return -EINVAL;

This breaks backward compatibility for systems that use memmap=X#Y and
memmap=X$Y.

For your use case it is enough to implement "memmap=exactmap" that will
drop memory provided by the firmware and only use ranges supplied in
memmap=

> -	}
> +	pr_notice("Memory limited to %lldMB-%lldMB\n",
> +		  memory_base >> 20, (memory_base + memory_limit) >> 20);
>  
> -	if (*p == '\0') {
> -		usermem = 1;
> -		return 0;
> -	} else
> -		return -EINVAL;
> +	return 0;
>  }
>  early_param("memmap", early_parse_memmap);
>  
> @@ -667,7 +643,7 @@ static void __init arch_mem_init(char **cmdline_p)
>  		__pa_symbol(&__nosave_end) - __pa_symbol(&__nosave_begin));
>  
>  	/* Limit the memory. */
> -	memblock_enforce_memory_limit(memory_limit);
> +	memblock_mem_range_remove_map(memory_base, memory_limit);
>  	memblock_allow_resize();
>  
>  	early_memtest(PFN_PHYS(ARCH_PFN_OFFSET), PFN_PHYS(max_low_pfn));
> -- 
> 2.1.0
> 

-- 
Sincerely yours,
Mike.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 1/4] MIPS: Refactor early_parse_mem() to fix mem= parameter
  2022-02-28  6:31 ` [PATCH v2 1/4] MIPS: Refactor early_parse_mem() to fix mem= parameter Tiezhu Yang
@ 2022-02-28 17:34   ` kernel test robot
  0 siblings, 0 replies; 7+ messages in thread
From: kernel test robot @ 2022-02-28 17:34 UTC (permalink / raw)
  To: Tiezhu Yang, Thomas Bogendoerfer, Mike Rapoport, Andrew Morton
  Cc: kbuild-all, Linux Memory Management List, Xuefeng Li, linux-mips,
	linux-kernel

Hi Tiezhu,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on hnaz-mm/master]
[also build test WARNING on linus/master v5.17-rc6 next-20220225]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Tiezhu-Yang/MIPS-Modify-mem-and-memmap-parameter/20220228-143251
base:   https://github.com/hnaz/linux-mm master
config: mips-allyesconfig (https://download.01.org/0day-ci/archive/20220228/202202281751.WKuGplhT-lkp@intel.com/config)
compiler: mips-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/ed304f835ff384c8fe9b788e13d3ec4d93878416
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Tiezhu-Yang/MIPS-Modify-mem-and-memmap-parameter/20220228-143251
        git checkout ed304f835ff384c8fe9b788e13d3ec4d93878416
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=mips SHELL=/bin/bash arch/mips/kernel/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   In file included from include/asm-generic/bug.h:22,
                    from arch/mips/include/asm/bug.h:42,
                    from include/linux/bug.h:5,
                    from include/linux/mmdebug.h:5,
                    from include/linux/mm.h:6,
                    from include/linux/memblock.h:12,
                    from arch/mips/kernel/setup.c:17:
   arch/mips/kernel/setup.c: In function 'early_parse_mem':
>> include/linux/kern_levels.h:5:25: warning: format '%lld' expects argument of type 'long long int', but argument 2 has type 'phys_addr_t' {aka 'unsigned int'} [-Wformat=]
       5 | #define KERN_SOH        "\001"          /* ASCII Start Of Header */
         |                         ^~~~~~
   include/linux/printk.h:418:25: note: in definition of macro 'printk_index_wrap'
     418 |                 _p_func(_fmt, ##__VA_ARGS__);                           \
         |                         ^~~~
   include/linux/printk.h:509:9: note: in expansion of macro 'printk'
     509 |         printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
         |         ^~~~~~
   include/linux/kern_levels.h:13:25: note: in expansion of macro 'KERN_SOH'
      13 | #define KERN_NOTICE     KERN_SOH "5"    /* normal but significant condition */
         |                         ^~~~~~~~
   include/linux/printk.h:509:16: note: in expansion of macro 'KERN_NOTICE'
     509 |         printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
         |                ^~~~~~~~~~~
   arch/mips/kernel/setup.c:350:9: note: in expansion of macro 'pr_notice'
     350 |         pr_notice("Memory limited to %lldMB\n", memory_limit >> 20);
         |         ^~~~~~~~~


vim +5 include/linux/kern_levels.h

314ba3520e513a Joe Perches 2012-07-30  4  
04d2c8c83d0e3a Joe Perches 2012-07-30 @5  #define KERN_SOH	"\001"		/* ASCII Start Of Header */
04d2c8c83d0e3a Joe Perches 2012-07-30  6  #define KERN_SOH_ASCII	'\001'
04d2c8c83d0e3a Joe Perches 2012-07-30  7  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-02-28 17:49 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-28  6:31 [PATCH v2 0/4] MIPS: Modify mem= and memmap= parameter Tiezhu Yang
2022-02-28  6:31 ` [PATCH v2 1/4] MIPS: Refactor early_parse_mem() to fix mem= parameter Tiezhu Yang
2022-02-28 17:34   ` kernel test robot
2022-02-28  6:31 ` [PATCH v2 2/4] memblock: Introduce memblock_mem_range_remove_map() Tiezhu Yang
2022-02-28  6:31 ` [PATCH v2 3/4] MIPS: Refactor early_parse_memmap() to fix memmap= parameter Tiezhu Yang
2022-02-28  6:50   ` Mike Rapoport
2022-02-28  6:31 ` [PATCH v2 4/4] MIPS: Remove not used variable usermem Tiezhu Yang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).