Subject: Re: [PATCH v6 1/4] x86: kdump: move reserve_crashkernel_low() into crash_core.c

From: kbuild test robot <[email-masked]>
Date: Sun, 1 Sep 2019 07:12:08 +0800

Hi Chen,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[cannot apply to v5.3-rc6 next-20190830]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Chen-Zhou/support-reserving-crashkernel-above-4G-on-arm64-kdump/20190901-053351
config: x86_64-randconfig-s0-09010004 (attached as .config)
compiler: gcc-7 (Debian 7.4.0-11) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <[email-masked]>

All errors (new ones prefixed by >>):

   ld: kernel/crash_core.o: in function `reserve_crashkernel_low':
>> kernel/crash_core.c:354: undefined reference to `crashk_low_res'
>> ld: kernel/crash_core.c:355: undefined reference to `crashk_low_res'

vim +354 kernel/crash_core.c

   296	
   297	int __init reserve_crashkernel_low(void)
   298	{
   299	#if defined(CONFIG_X86_64) || defined(CONFIG_ARM64)
   300		unsigned long long base, low_base = 0, low_size = 0;
   301		unsigned long total_low_mem;
   302		int ret;
   303	
   304		total_low_mem = memblock_mem_size(1UL << (32 - PAGE_SHIFT));
   305	
   306		/* crashkernel=Y,low */
   307		ret = parse_crashkernel_low(boot_command_line, total_low_mem, &low_size,
   308				&base);
   309		if (ret) {
   310	#ifdef CONFIG_X86_64
   311			/*
   312			 * two parts from lib/swiotlb.c:
   313			 * -swiotlb size: user-specified with swiotlb= or default.
   314			 *
   315			 * -swiotlb overflow buffer: now hardcoded to 32k. We round it
   316			 * to 8M for other buffers that may need to stay low too. Also
   317			 * make sure we allocate enough extra low memory so that we
   318			 * don't run out of DMA buffers for 32-bit devices.
   319			 */
   320			low_size = max(swiotlb_size_or_default() + (8UL << 20),
   321					256UL << 20);
   322	#else
   323			/*
   324			 * in arm64, reserve low memory if and only if crashkernel=X,low
   325			 * specified.
   326			 */
   327			return -EINVAL;
   328	#endif
   329		} else {
   330			/* passed with crashkernel=0,low ? */
   331			if (!low_size)
   332				return 0;
   333		}
   334	
   335		low_base = memblock_find_in_range(0, 1ULL << 32, low_size, CRASH_ALIGN);
   336		if (!low_base) {
   337			pr_err("Cannot reserve %ldMB crashkernel low memory, please try smaller size.\n",
   338			       (unsigned long)(low_size >> 20));
   339			return -ENOMEM;
   340		}
   341	
   342		ret = memblock_reserve(low_base, low_size);
   343		if (ret) {
   344			pr_err("%s: Error reserving crashkernel low memblock.\n",
   345					__func__);
   346			return ret;
   347		}
   348	
   349		pr_info("Reserving %ldMB of low memory at %ldMB for crashkernel (System low RAM: %ldMB)\n",
   350			(unsigned long)(low_size >> 20),
   351			(unsigned long)(low_base >> 20),
   352			(unsigned long)(total_low_mem >> 20));
   353	
 > 354		crashk_low_res.start = low_base;
 > 355		crashk_low_res.end   = low_base + low_size - 1;
   356	#endif
   357		return 0;
   358	}
   359	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
_______________________________________________
linux-arm-kernel mailing list
[email-masked]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel