Message ID | 20240119145241.769622-12-bhe@redhat.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Split crash out from kexec and clean up related config items | expand |
Hi Baoquan,
kernel test robot noticed the following build errors:
[auto build test ERROR on linus/master]
[cannot apply to tip/x86/core arm64/for-next/core powerpc/next powerpc/fixes v6.7 next-20240119]
[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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Baoquan-He/kexec-split-crashkernel-reservation-code-out-from-crash_core-c/20240119-225820
base: linus/master
patch link: https://lore.kernel.org/r/20240119145241.769622-12-bhe%40redhat.com
patch subject: [PATCH v2 11/14] arm, crash: wrap crash dumping code into crash related ifdefs
config: arm-randconfig-001-20240120 (https://download.01.org/0day-ci/archive/20240120/202401202057.aPg08Eh8-lkp@intel.com/config)
compiler: clang version 18.0.0git (https://github.com/llvm/llvm-project d92ce344bf641e6bb025b41b3f1a77dd25e2b3e9)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240120/202401202057.aPg08Eh8-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202401202057.aPg08Eh8-lkp@intel.com/
All errors (new ones prefixed by >>):
>> arch/arm/kernel/setup.c:1036:49: error: use of undeclared identifier 'SECTION_SIZE'
1036 | start = memblock_phys_alloc_range(crash_size, SECTION_SIZE,
| ^
1 error generated.
vim +/SECTION_SIZE +1036 arch/arm/kernel/setup.c
3c57fb43c8fcbe Mika Westerberg 2010-05-10 995
3c57fb43c8fcbe Mika Westerberg 2010-05-10 996 /**
3c57fb43c8fcbe Mika Westerberg 2010-05-10 997 * reserve_crashkernel() - reserves memory are for crash kernel
3c57fb43c8fcbe Mika Westerberg 2010-05-10 998 *
3c57fb43c8fcbe Mika Westerberg 2010-05-10 999 * This function reserves memory area given in "crashkernel=" kernel command
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1000 * line parameter. The memory reserved is used by a dump capture kernel when
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1001 * primary kernel is crashing.
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1002 */
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1003 static void __init reserve_crashkernel(void)
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1004 {
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1005 unsigned long long crash_size, crash_base;
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1006 unsigned long long total_mem;
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1007 int ret;
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1008
8f460484669cba Baoquan He 2024-01-19 1009 if (!IS_ENABLED(CONFIG_CRASH_RESERVE))
8f460484669cba Baoquan He 2024-01-19 1010 return;
8f460484669cba Baoquan He 2024-01-19 1011
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1012 total_mem = get_total_mem();
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1013 ret = parse_crashkernel(boot_command_line, total_mem,
a9e1a3d84e4a0e Baoquan He 2023-09-14 1014 &crash_size, &crash_base,
a9e1a3d84e4a0e Baoquan He 2023-09-14 1015 NULL, NULL);
9d17f337230642 Austin Kim 2022-04-01 1016 /* invalid value specified or crashkernel=0 */
9d17f337230642 Austin Kim 2022-04-01 1017 if (ret || !crash_size)
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1018 return;
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1019
61603016e2122b Russell King 2016-03-14 1020 if (crash_base <= 0) {
d0506a2395eb07 Russell King 2016-04-01 1021 unsigned long long crash_max = idmap_to_phys((u32)~0);
67556d7a851c20 Russell King 2017-07-19 1022 unsigned long long lowmem_max = __pa(high_memory - 1) + 1;
67556d7a851c20 Russell King 2017-07-19 1023 if (crash_max > lowmem_max)
67556d7a851c20 Russell King 2017-07-19 1024 crash_max = lowmem_max;
a7259df7670240 Mike Rapoport 2021-09-02 1025
a7259df7670240 Mike Rapoport 2021-09-02 1026 crash_base = memblock_phys_alloc_range(crash_size, CRASH_ALIGN,
a7259df7670240 Mike Rapoport 2021-09-02 1027 CRASH_ALIGN, crash_max);
61603016e2122b Russell King 2016-03-14 1028 if (!crash_base) {
61603016e2122b Russell King 2016-03-14 1029 pr_err("crashkernel reservation failed - No suitable area found.\n");
61603016e2122b Russell King 2016-03-14 1030 return;
61603016e2122b Russell King 2016-03-14 1031 }
61603016e2122b Russell King 2016-03-14 1032 } else {
a7259df7670240 Mike Rapoport 2021-09-02 1033 unsigned long long crash_max = crash_base + crash_size;
61603016e2122b Russell King 2016-03-14 1034 unsigned long long start;
61603016e2122b Russell King 2016-03-14 1035
a7259df7670240 Mike Rapoport 2021-09-02 @1036 start = memblock_phys_alloc_range(crash_size, SECTION_SIZE,
a7259df7670240 Mike Rapoport 2021-09-02 1037 crash_base, crash_max);
a7259df7670240 Mike Rapoport 2021-09-02 1038 if (!start) {
61603016e2122b Russell King 2016-03-14 1039 pr_err("crashkernel reservation failed - memory is in use.\n");
61603016e2122b Russell King 2016-03-14 1040 return;
61603016e2122b Russell King 2016-03-14 1041 }
61603016e2122b Russell King 2016-03-14 1042 }
61603016e2122b Russell King 2016-03-14 1043
1b0f6681fcbc0e Olof Johansson 2013-12-05 1044 pr_info("Reserving %ldMB of memory at %ldMB for crashkernel (System RAM: %ldMB)\n",
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1045 (unsigned long)(crash_size >> 20),
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1046 (unsigned long)(crash_base >> 20),
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1047 (unsigned long)(total_mem >> 20));
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1048
f7f0b7dc720f81 Russell King 2016-08-02 1049 /* The crashk resource must always be located in normal mem */
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1050 crashk_res.start = crash_base;
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1051 crashk_res.end = crash_base + crash_size - 1;
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1052 insert_resource(&iomem_resource, &crashk_res);
f7f0b7dc720f81 Russell King 2016-08-02 1053
f7f0b7dc720f81 Russell King 2016-08-02 1054 if (arm_has_idmap_alias()) {
f7f0b7dc720f81 Russell King 2016-08-02 1055 /*
f7f0b7dc720f81 Russell King 2016-08-02 1056 * If we have a special RAM alias for use at boot, we
f7f0b7dc720f81 Russell King 2016-08-02 1057 * need to advertise to kexec tools where the alias is.
f7f0b7dc720f81 Russell King 2016-08-02 1058 */
f7f0b7dc720f81 Russell King 2016-08-02 1059 static struct resource crashk_boot_res = {
f7f0b7dc720f81 Russell King 2016-08-02 1060 .name = "Crash kernel (boot alias)",
f7f0b7dc720f81 Russell King 2016-08-02 1061 .flags = IORESOURCE_BUSY | IORESOURCE_MEM,
f7f0b7dc720f81 Russell King 2016-08-02 1062 };
f7f0b7dc720f81 Russell King 2016-08-02 1063
f7f0b7dc720f81 Russell King 2016-08-02 1064 crashk_boot_res.start = phys_to_idmap(crash_base);
f7f0b7dc720f81 Russell King 2016-08-02 1065 crashk_boot_res.end = crashk_boot_res.start + crash_size - 1;
f7f0b7dc720f81 Russell King 2016-08-02 1066 insert_resource(&iomem_resource, &crashk_boot_res);
f7f0b7dc720f81 Russell King 2016-08-02 1067 }
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1068 }
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1069
Hi Baoquan,
kernel test robot noticed the following build errors:
[auto build test ERROR on linus/master]
[cannot apply to tip/x86/core arm64/for-next/core powerpc/next powerpc/fixes v6.7 next-20240119]
[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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Baoquan-He/kexec-split-crashkernel-reservation-code-out-from-crash_core-c/20240119-225820
base: linus/master
patch link: https://lore.kernel.org/r/20240119145241.769622-12-bhe%40redhat.com
patch subject: [PATCH v2 11/14] arm, crash: wrap crash dumping code into crash related ifdefs
config: arm-allnoconfig (https://download.01.org/0day-ci/archive/20240120/202401202159.9a6W0aOH-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240120/202401202159.9a6W0aOH-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202401202159.9a6W0aOH-lkp@intel.com/
All errors (new ones prefixed by >>):
arch/arm/kernel/setup.c: In function 'reserve_crashkernel':
>> arch/arm/kernel/setup.c:1036:63: error: 'SECTION_SIZE' undeclared (first use in this function); did you mean 'SECTIONS_SHIFT'?
1036 | start = memblock_phys_alloc_range(crash_size, SECTION_SIZE,
| ^~~~~~~~~~~~
| SECTIONS_SHIFT
arch/arm/kernel/setup.c:1036:63: note: each undeclared identifier is reported only once for each function it appears in
In file included from arch/arm/include/asm/efi.h:12,
from arch/arm/kernel/setup.c:37:
arch/arm/include/asm/fixmap.h: At top level:
arch/arm/include/asm/fixmap.h:39:35: warning: '__end_of_fixed_addresses' defined but not used [-Wunused-const-variable=]
39 | static const enum fixed_addresses __end_of_fixed_addresses =
| ^~~~~~~~~~~~~~~~~~~~~~~~
vim +1036 arch/arm/kernel/setup.c
3c57fb43c8fcbe Mika Westerberg 2010-05-10 995
3c57fb43c8fcbe Mika Westerberg 2010-05-10 996 /**
3c57fb43c8fcbe Mika Westerberg 2010-05-10 997 * reserve_crashkernel() - reserves memory are for crash kernel
3c57fb43c8fcbe Mika Westerberg 2010-05-10 998 *
3c57fb43c8fcbe Mika Westerberg 2010-05-10 999 * This function reserves memory area given in "crashkernel=" kernel command
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1000 * line parameter. The memory reserved is used by a dump capture kernel when
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1001 * primary kernel is crashing.
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1002 */
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1003 static void __init reserve_crashkernel(void)
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1004 {
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1005 unsigned long long crash_size, crash_base;
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1006 unsigned long long total_mem;
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1007 int ret;
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1008
8f460484669cba Baoquan He 2024-01-19 1009 if (!IS_ENABLED(CONFIG_CRASH_RESERVE))
8f460484669cba Baoquan He 2024-01-19 1010 return;
8f460484669cba Baoquan He 2024-01-19 1011
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1012 total_mem = get_total_mem();
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1013 ret = parse_crashkernel(boot_command_line, total_mem,
a9e1a3d84e4a0e Baoquan He 2023-09-14 1014 &crash_size, &crash_base,
a9e1a3d84e4a0e Baoquan He 2023-09-14 1015 NULL, NULL);
9d17f337230642 Austin Kim 2022-04-01 1016 /* invalid value specified or crashkernel=0 */
9d17f337230642 Austin Kim 2022-04-01 1017 if (ret || !crash_size)
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1018 return;
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1019
61603016e2122b Russell King 2016-03-14 1020 if (crash_base <= 0) {
d0506a2395eb07 Russell King 2016-04-01 1021 unsigned long long crash_max = idmap_to_phys((u32)~0);
67556d7a851c20 Russell King 2017-07-19 1022 unsigned long long lowmem_max = __pa(high_memory - 1) + 1;
67556d7a851c20 Russell King 2017-07-19 1023 if (crash_max > lowmem_max)
67556d7a851c20 Russell King 2017-07-19 1024 crash_max = lowmem_max;
a7259df7670240 Mike Rapoport 2021-09-02 1025
a7259df7670240 Mike Rapoport 2021-09-02 1026 crash_base = memblock_phys_alloc_range(crash_size, CRASH_ALIGN,
a7259df7670240 Mike Rapoport 2021-09-02 1027 CRASH_ALIGN, crash_max);
61603016e2122b Russell King 2016-03-14 1028 if (!crash_base) {
61603016e2122b Russell King 2016-03-14 1029 pr_err("crashkernel reservation failed - No suitable area found.\n");
61603016e2122b Russell King 2016-03-14 1030 return;
61603016e2122b Russell King 2016-03-14 1031 }
61603016e2122b Russell King 2016-03-14 1032 } else {
a7259df7670240 Mike Rapoport 2021-09-02 1033 unsigned long long crash_max = crash_base + crash_size;
61603016e2122b Russell King 2016-03-14 1034 unsigned long long start;
61603016e2122b Russell King 2016-03-14 1035
a7259df7670240 Mike Rapoport 2021-09-02 @1036 start = memblock_phys_alloc_range(crash_size, SECTION_SIZE,
a7259df7670240 Mike Rapoport 2021-09-02 1037 crash_base, crash_max);
a7259df7670240 Mike Rapoport 2021-09-02 1038 if (!start) {
61603016e2122b Russell King 2016-03-14 1039 pr_err("crashkernel reservation failed - memory is in use.\n");
61603016e2122b Russell King 2016-03-14 1040 return;
61603016e2122b Russell King 2016-03-14 1041 }
61603016e2122b Russell King 2016-03-14 1042 }
61603016e2122b Russell King 2016-03-14 1043
1b0f6681fcbc0e Olof Johansson 2013-12-05 1044 pr_info("Reserving %ldMB of memory at %ldMB for crashkernel (System RAM: %ldMB)\n",
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1045 (unsigned long)(crash_size >> 20),
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1046 (unsigned long)(crash_base >> 20),
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1047 (unsigned long)(total_mem >> 20));
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1048
f7f0b7dc720f81 Russell King 2016-08-02 1049 /* The crashk resource must always be located in normal mem */
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1050 crashk_res.start = crash_base;
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1051 crashk_res.end = crash_base + crash_size - 1;
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1052 insert_resource(&iomem_resource, &crashk_res);
f7f0b7dc720f81 Russell King 2016-08-02 1053
f7f0b7dc720f81 Russell King 2016-08-02 1054 if (arm_has_idmap_alias()) {
f7f0b7dc720f81 Russell King 2016-08-02 1055 /*
f7f0b7dc720f81 Russell King 2016-08-02 1056 * If we have a special RAM alias for use at boot, we
f7f0b7dc720f81 Russell King 2016-08-02 1057 * need to advertise to kexec tools where the alias is.
f7f0b7dc720f81 Russell King 2016-08-02 1058 */
f7f0b7dc720f81 Russell King 2016-08-02 1059 static struct resource crashk_boot_res = {
f7f0b7dc720f81 Russell King 2016-08-02 1060 .name = "Crash kernel (boot alias)",
f7f0b7dc720f81 Russell King 2016-08-02 1061 .flags = IORESOURCE_BUSY | IORESOURCE_MEM,
f7f0b7dc720f81 Russell King 2016-08-02 1062 };
f7f0b7dc720f81 Russell King 2016-08-02 1063
f7f0b7dc720f81 Russell King 2016-08-02 1064 crashk_boot_res.start = phys_to_idmap(crash_base);
f7f0b7dc720f81 Russell King 2016-08-02 1065 crashk_boot_res.end = crashk_boot_res.start + crash_size - 1;
f7f0b7dc720f81 Russell King 2016-08-02 1066 insert_resource(&iomem_resource, &crashk_boot_res);
f7f0b7dc720f81 Russell King 2016-08-02 1067 }
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1068 }
3c57fb43c8fcbe Mika Westerberg 2010-05-10 1069
On 01/20/24 at 08:13pm, kernel test robot wrote: > Hi Baoquan, > > kernel test robot noticed the following build errors: > > [auto build test ERROR on linus/master] > [cannot apply to tip/x86/core arm64/for-next/core powerpc/next powerpc/fixes v6.7 next-20240119] > [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#_base_tree_information] > > url: https://github.com/intel-lab-lkp/linux/commits/Baoquan-He/kexec-split-crashkernel-reservation-code-out-from-crash_core-c/20240119-225820 > base: linus/master > patch link: https://lore.kernel.org/r/20240119145241.769622-12-bhe%40redhat.com > patch subject: [PATCH v2 11/14] arm, crash: wrap crash dumping code into crash related ifdefs > config: arm-randconfig-001-20240120 (https://download.01.org/0day-ci/archive/20240120/202401202057.aPg08Eh8-lkp@intel.com/config) > compiler: clang version 18.0.0git (https://github.com/llvm/llvm-project d92ce344bf641e6bb025b41b3f1a77dd25e2b3e9) > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240120/202401202057.aPg08Eh8-lkp@intel.com/reproduce) > > If you fix the issue in a separate patch/commit (i.e. not just a new version of > the same patch/commit), kindly add following tags > | Reported-by: kernel test robot <lkp@intel.com> > | Closes: https://lore.kernel.org/oe-kbuild-all/202401202057.aPg08Eh8-lkp@intel.com/ Thanks for reporting this, I can reproduce it. In the provided config, it has: # CONFIG_MMU is not set and all kexec/kdump related config items are unset. The if (!IS_ENABLED(CONFIG_CRASH_RESERVE)) checking will cause funciton reserve_crashkernel() is compiled, but not built in. With CONFIG_MMU=no, SECTION_SIZE is undefined on arm. So fix it by wrapping up reserve_crashkernel() inside CONFIG_CRASH_RESERVE ifdeffery scope. From d580b65f6aa042233e228aab45609c3de88ab29e Mon Sep 17 00:00:00 2001 From: Baoquan He <bhe@redhat.com> Date: Mon, 15 Jan 2024 22:32:19 -0500 Subject: [PATCH] arm, crash: wrap crash dumping code into crash related ifdefs Content-type: text/plain Now crash codes under kernel/ folder has been split out from kexec code, crash dumping can be separated from kexec reboot in config items on arm with some adjustments. Here use CONFIG_CRASH_RESERVE ifdef to replace CONFIG_KEXEC ifdef. Signed-off-by: Baoquan He <bhe@redhat.com> --- arch/arm/kernel/setup.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index ff2299ce1ad7..7b33b157fca0 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c @@ -979,7 +979,7 @@ static int __init init_machine_late(void) } late_initcall(init_machine_late); -#ifdef CONFIG_KEXEC +#ifdef CONFIG_CRASH_RESERVE /* * The crash region must be aligned to 128MB to avoid * zImage relocating below the reserved region. @@ -1066,7 +1066,7 @@ static void __init reserve_crashkernel(void) } #else static inline void reserve_crashkernel(void) {} -#endif /* CONFIG_KEXEC */ +#endif /* CONFIG_CRASH_RESERVE*/ void __init hyp_mode_check(void) {
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index ff2299ce1ad7..cf0b3798179f 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c @@ -979,7 +979,6 @@ static int __init init_machine_late(void) } late_initcall(init_machine_late); -#ifdef CONFIG_KEXEC /* * The crash region must be aligned to 128MB to avoid * zImage relocating below the reserved region. @@ -1007,6 +1006,9 @@ static void __init reserve_crashkernel(void) unsigned long long total_mem; int ret; + if (!IS_ENABLED(CONFIG_CRASH_RESERVE)) + return; + total_mem = get_total_mem(); ret = parse_crashkernel(boot_command_line, total_mem, &crash_size, &crash_base, @@ -1064,9 +1066,6 @@ static void __init reserve_crashkernel(void) insert_resource(&iomem_resource, &crashk_boot_res); } } -#else -static inline void reserve_crashkernel(void) {} -#endif /* CONFIG_KEXEC */ void __init hyp_mode_check(void) {
Now crash codes under kernel/ folder has been split out from kexec code, crash dumping can be separated from kexec reboot in config items on arm with some adjustments. Here use IS_ENABLED(CONFIG_CRASH_RESERVE) check to decide if compiling in the crashkernel reservation code. Signed-off-by: Baoquan He <bhe@redhat.com> --- arch/arm/kernel/setup.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)