From: kernel test robot <lkp@intel.com>
To: Baoquan He <bhe@redhat.com>, linux-kernel@vger.kernel.org
Cc: oe-kbuild-all@lists.linux.dev, akpm@linux-foundation.org,
catalin.marinas@arm.com, thunder.leizhen@huawei.com,
dyoung@redhat.com, prudo@redhat.com, samuel.holland@sifive.com,
kexec@lists.infradead.org, linux-arm-kernel@lists.infradead.org,
x86@kernel.org, Baoquan He <bhe@redhat.com>
Subject: Re: [PATCH v2 6/8] x86: kdump: use generic interface to simplify crashkernel reservation code
Date: Wed, 30 Aug 2023 09:49:27 +0800 [thread overview]
Message-ID: <202308300910.e0i4piJT-lkp@intel.com> (raw)
In-Reply-To: <20230829121610.138107-7-bhe@redhat.com>
Hi Baoquan,
kernel test robot noticed the following build errors:
[auto build test ERROR on arm64/for-next/core]
[also build test ERROR on tip/x86/core powerpc/next powerpc/fixes v6.5]
[cannot apply to linus/master next-20230829]
[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/crash_core-c-remove-unnecessary-parameter-of-function/20230829-201942
base: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core
patch link: https://lore.kernel.org/r/20230829121610.138107-7-bhe%40redhat.com
patch subject: [PATCH v2 6/8] x86: kdump: use generic interface to simplify crashkernel reservation code
config: x86_64-randconfig-r022-20230830 (https://download.01.org/0day-ci/archive/20230830/202308300910.e0i4piJT-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230830/202308300910.e0i4piJT-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/202308300910.e0i4piJT-lkp@intel.com/
All errors (new ones prefixed by >>):
ld: vmlinux.o: in function `reserve_crashkernel_low':
kernel/crash_core.c:369: undefined reference to `crashk_low_res'
ld: kernel/crash_core.c:369: undefined reference to `crashk_low_res'
ld: kernel/crash_core.c:370: undefined reference to `crashk_low_res'
ld: kernel/crash_core.c:369: undefined reference to `crashk_low_res'
ld: kernel/crash_core.c:370: undefined reference to `crashk_low_res'
ld: vmlinux.o:kernel/crash_core.c:371: more undefined references to `crashk_low_res' follow
ld: vmlinux.o: in function `reserve_crashkernel_generic':
>> kernel/crash_core.c:453: undefined reference to `crashk_res'
>> ld: kernel/crash_core.c:453: undefined reference to `crashk_res'
ld: kernel/crash_core.c:454: undefined reference to `crashk_res'
>> ld: kernel/crash_core.c:453: undefined reference to `crashk_res'
ld: kernel/crash_core.c:454: undefined reference to `crashk_res'
ld: vmlinux.o:kernel/crash_core.c:454: more undefined references to `crashk_res' follow
vim +453 kernel/crash_core.c
71d2bcec2d4d69 Philipp Rudo 2021-12-24 353
6bee83d29d2e09 Baoquan He 2023-08-29 354 #ifdef CONFIG_ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION
6bee83d29d2e09 Baoquan He 2023-08-29 355 static int __init reserve_crashkernel_low(unsigned long long low_size)
6bee83d29d2e09 Baoquan He 2023-08-29 356 {
6bee83d29d2e09 Baoquan He 2023-08-29 357 #ifdef CONFIG_64BIT
6bee83d29d2e09 Baoquan He 2023-08-29 358 unsigned long long low_base;
6bee83d29d2e09 Baoquan He 2023-08-29 359
6bee83d29d2e09 Baoquan He 2023-08-29 360 low_base = memblock_phys_alloc_range(low_size, CRASH_ALIGN, 0, CRASH_ADDR_LOW_MAX);
6bee83d29d2e09 Baoquan He 2023-08-29 361 if (!low_base) {
6bee83d29d2e09 Baoquan He 2023-08-29 362 pr_err("cannot allocate crashkernel low memory (size:0x%llx).\n", low_size);
6bee83d29d2e09 Baoquan He 2023-08-29 363 return -ENOMEM;
6bee83d29d2e09 Baoquan He 2023-08-29 364 }
6bee83d29d2e09 Baoquan He 2023-08-29 365
6bee83d29d2e09 Baoquan He 2023-08-29 366 pr_info("crashkernel low memory reserved: 0x%08llx - 0x%08llx (%lld MB)\n",
6bee83d29d2e09 Baoquan He 2023-08-29 367 low_base, low_base + low_size, low_size >> 20);
6bee83d29d2e09 Baoquan He 2023-08-29 368
6bee83d29d2e09 Baoquan He 2023-08-29 @369 crashk_low_res.start = low_base;
6bee83d29d2e09 Baoquan He 2023-08-29 370 crashk_low_res.end = low_base + low_size - 1;
6bee83d29d2e09 Baoquan He 2023-08-29 371 insert_resource(&iomem_resource, &crashk_low_res);
6bee83d29d2e09 Baoquan He 2023-08-29 372 #endif
6bee83d29d2e09 Baoquan He 2023-08-29 373 return 0;
6bee83d29d2e09 Baoquan He 2023-08-29 374 }
6bee83d29d2e09 Baoquan He 2023-08-29 375
6bee83d29d2e09 Baoquan He 2023-08-29 376 void __init reserve_crashkernel_generic(char *cmdline,
6bee83d29d2e09 Baoquan He 2023-08-29 377 unsigned long long crash_size,
6bee83d29d2e09 Baoquan He 2023-08-29 378 unsigned long long crash_base,
6bee83d29d2e09 Baoquan He 2023-08-29 379 unsigned long long crash_low_size,
6bee83d29d2e09 Baoquan He 2023-08-29 380 bool high)
6bee83d29d2e09 Baoquan He 2023-08-29 381 {
6bee83d29d2e09 Baoquan He 2023-08-29 382 unsigned long long search_end = CRASH_ADDR_LOW_MAX, search_base = 0;
6bee83d29d2e09 Baoquan He 2023-08-29 383 bool fixed_base = false;
6bee83d29d2e09 Baoquan He 2023-08-29 384
6bee83d29d2e09 Baoquan He 2023-08-29 385 /* User specifies base address explicitly. */
6bee83d29d2e09 Baoquan He 2023-08-29 386 if (crash_base) {
6bee83d29d2e09 Baoquan He 2023-08-29 387 fixed_base = true;
6bee83d29d2e09 Baoquan He 2023-08-29 388 search_base = crash_base;
6bee83d29d2e09 Baoquan He 2023-08-29 389 search_end = crash_base + crash_size;
6bee83d29d2e09 Baoquan He 2023-08-29 390 }
6bee83d29d2e09 Baoquan He 2023-08-29 391
6bee83d29d2e09 Baoquan He 2023-08-29 392 if (high) {
6bee83d29d2e09 Baoquan He 2023-08-29 393 search_base = CRASH_ADDR_LOW_MAX;
6bee83d29d2e09 Baoquan He 2023-08-29 394 search_end = CRASH_ADDR_HIGH_MAX;
6bee83d29d2e09 Baoquan He 2023-08-29 395 }
6bee83d29d2e09 Baoquan He 2023-08-29 396
6bee83d29d2e09 Baoquan He 2023-08-29 397 retry:
6bee83d29d2e09 Baoquan He 2023-08-29 398 crash_base = memblock_phys_alloc_range(crash_size, CRASH_ALIGN,
6bee83d29d2e09 Baoquan He 2023-08-29 399 search_base, search_end);
6bee83d29d2e09 Baoquan He 2023-08-29 400 if (!crash_base) {
6bee83d29d2e09 Baoquan He 2023-08-29 401 /*
6bee83d29d2e09 Baoquan He 2023-08-29 402 * For crashkernel=size[KMG]@offset[KMG], print out failure
6bee83d29d2e09 Baoquan He 2023-08-29 403 * message if can't reserve the specified region.
6bee83d29d2e09 Baoquan He 2023-08-29 404 */
6bee83d29d2e09 Baoquan He 2023-08-29 405 if (fixed_base) {
6bee83d29d2e09 Baoquan He 2023-08-29 406 pr_warn("crashkernel reservation failed - memory is in use.\n");
6bee83d29d2e09 Baoquan He 2023-08-29 407 return;
6bee83d29d2e09 Baoquan He 2023-08-29 408 }
6bee83d29d2e09 Baoquan He 2023-08-29 409
6bee83d29d2e09 Baoquan He 2023-08-29 410 /*
6bee83d29d2e09 Baoquan He 2023-08-29 411 * For crashkernel=size[KMG], if the first attempt was for
6bee83d29d2e09 Baoquan He 2023-08-29 412 * low memory, fall back to high memory, the minimum required
6bee83d29d2e09 Baoquan He 2023-08-29 413 * low memory will be reserved later.
6bee83d29d2e09 Baoquan He 2023-08-29 414 */
6bee83d29d2e09 Baoquan He 2023-08-29 415 if (!high && search_end == CRASH_ADDR_LOW_MAX) {
6bee83d29d2e09 Baoquan He 2023-08-29 416 search_end = CRASH_ADDR_HIGH_MAX;
6bee83d29d2e09 Baoquan He 2023-08-29 417 search_base = CRASH_ADDR_LOW_MAX;
6bee83d29d2e09 Baoquan He 2023-08-29 418 crash_low_size = DEFAULT_CRASH_KERNEL_LOW_SIZE;
6bee83d29d2e09 Baoquan He 2023-08-29 419 goto retry;
6bee83d29d2e09 Baoquan He 2023-08-29 420 }
6bee83d29d2e09 Baoquan He 2023-08-29 421
6bee83d29d2e09 Baoquan He 2023-08-29 422 /*
6bee83d29d2e09 Baoquan He 2023-08-29 423 * For crashkernel=size[KMG],high, if the first attempt was
6bee83d29d2e09 Baoquan He 2023-08-29 424 * for high memory, fall back to low memory.
6bee83d29d2e09 Baoquan He 2023-08-29 425 */
6bee83d29d2e09 Baoquan He 2023-08-29 426 if (high && search_end == CRASH_ADDR_HIGH_MAX) {
6bee83d29d2e09 Baoquan He 2023-08-29 427 search_end = CRASH_ADDR_LOW_MAX;
6bee83d29d2e09 Baoquan He 2023-08-29 428 search_base = 0;
6bee83d29d2e09 Baoquan He 2023-08-29 429 goto retry;
6bee83d29d2e09 Baoquan He 2023-08-29 430 }
6bee83d29d2e09 Baoquan He 2023-08-29 431 pr_warn("cannot allocate crashkernel (size:0x%llx)\n",
6bee83d29d2e09 Baoquan He 2023-08-29 432 crash_size);
6bee83d29d2e09 Baoquan He 2023-08-29 433 return;
6bee83d29d2e09 Baoquan He 2023-08-29 434 }
6bee83d29d2e09 Baoquan He 2023-08-29 435
6bee83d29d2e09 Baoquan He 2023-08-29 436 if ((crash_base > CRASH_ADDR_LOW_MAX) &&
6bee83d29d2e09 Baoquan He 2023-08-29 437 crash_low_size && reserve_crashkernel_low(crash_low_size)) {
6bee83d29d2e09 Baoquan He 2023-08-29 438 memblock_phys_free(crash_base, crash_size);
6bee83d29d2e09 Baoquan He 2023-08-29 439 return;
6bee83d29d2e09 Baoquan He 2023-08-29 440 }
6bee83d29d2e09 Baoquan He 2023-08-29 441
6bee83d29d2e09 Baoquan He 2023-08-29 442 pr_info("crashkernel reserved: 0x%016llx - 0x%016llx (%lld MB)\n",
6bee83d29d2e09 Baoquan He 2023-08-29 443 crash_base, crash_base + crash_size, crash_size >> 20);
6bee83d29d2e09 Baoquan He 2023-08-29 444
6bee83d29d2e09 Baoquan He 2023-08-29 445 /*
6bee83d29d2e09 Baoquan He 2023-08-29 446 * The crashkernel memory will be removed from the kernel linear
6bee83d29d2e09 Baoquan He 2023-08-29 447 * map. Inform kmemleak so that it won't try to access it.
6bee83d29d2e09 Baoquan He 2023-08-29 448 */
6bee83d29d2e09 Baoquan He 2023-08-29 449 kmemleak_ignore_phys(crash_base);
6bee83d29d2e09 Baoquan He 2023-08-29 450 if (crashk_low_res.end)
6bee83d29d2e09 Baoquan He 2023-08-29 451 kmemleak_ignore_phys(crashk_low_res.start);
6bee83d29d2e09 Baoquan He 2023-08-29 452
6bee83d29d2e09 Baoquan He 2023-08-29 @453 crashk_res.start = crash_base;
6bee83d29d2e09 Baoquan He 2023-08-29 454 crashk_res.end = crash_base + crash_size - 1;
6bee83d29d2e09 Baoquan He 2023-08-29 455 insert_resource(&iomem_resource, &crashk_res);
6bee83d29d2e09 Baoquan He 2023-08-29 456 }
6bee83d29d2e09 Baoquan He 2023-08-29 457 #endif
6bee83d29d2e09 Baoquan He 2023-08-29 458
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2023-08-30 1:50 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-29 12:16 [PATCH v2 0/8] kdump: use generic functions to simplify crashkernel reservation in arch Baoquan He
2023-08-29 12:16 ` [PATCH v2 1/8] crash_core.c: remove unnecessary parameter of function Baoquan He
2023-08-31 1:25 ` Leizhen (ThunderTown)
2023-08-29 12:16 ` [PATCH v2 2/8] crash_core: change the prototype of function parse_crashkernel() Baoquan He
2023-08-31 2:30 ` Leizhen (ThunderTown)
2023-08-29 12:16 ` [PATCH v2 3/8] crash_core: change parse_crashkernel() to support crashkernel=,high|low parsing Baoquan He
2023-08-31 2:56 ` Leizhen (ThunderTown)
2023-09-01 9:49 ` Baoquan He
2023-09-04 2:47 ` Leizhen (ThunderTown)
2023-09-05 8:29 ` Baoquan He
2023-09-06 9:07 ` Leizhen (ThunderTown)
2023-09-11 2:11 ` Baoquan He
2023-08-29 12:16 ` [PATCH v2 4/8] crash_core: add generic function to do reservation Baoquan He
2023-08-31 3:23 ` Leizhen (ThunderTown)
2023-09-01 10:08 ` Baoquan He
2023-08-29 12:16 ` [PATCH v2 5/8] crash_core.h: include <asm/crash_core.h> if generic reservation is needed Baoquan He
2023-08-29 12:16 ` [PATCH v2 6/8] x86: kdump: use generic interface to simplify crashkernel reservation code Baoquan He
2023-08-29 21:37 ` kernel test robot
2023-08-30 1:49 ` kernel test robot [this message]
2023-08-30 11:39 ` Baoquan He
2023-08-31 3:43 ` Leizhen (ThunderTown)
2023-09-01 10:10 ` Baoquan He
2023-08-29 12:16 ` [PATCH v2 7/8] arm64: kdump: use generic interface to simplify crashkernel reservation Baoquan He
2023-08-31 3:51 ` Leizhen (ThunderTown)
2023-08-29 12:16 ` [PATCH v2 8/8] crash_core.c: remove unneeded functions Baoquan He
2023-08-31 3:51 ` Leizhen (ThunderTown)
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=202308300910.e0i4piJT-lkp@intel.com \
--to=lkp@intel.com \
--cc=akpm@linux-foundation.org \
--cc=bhe@redhat.com \
--cc=catalin.marinas@arm.com \
--cc=dyoung@redhat.com \
--cc=kexec@lists.infradead.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=prudo@redhat.com \
--cc=samuel.holland@sifive.com \
--cc=thunder.leizhen@huawei.com \
--cc=x86@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox