From: Eric DeVolder <eric.devolder@oracle.com>
To: kernel test robot <lkp@intel.com>
Cc: oe-kbuild-all@lists.linux.dev,
Andrew Morton <akpm@linux-foundation.org>,
Linux Memory Management List <linux-mm@kvack.org>,
Baoquan He <bhe@redhat.com>
Subject: Re: [akpm-mm:mm-unstable 62/89] include/linux/kexec.h:41:2: error: #error KEXEC_SOURCE_MEMORY_LIMIT not defined
Date: Mon, 3 Jul 2023 10:31:34 -0500 [thread overview]
Message-ID: <3e8eecd1-a277-2cfb-690e-5de2eb7b988e@oracle.com> (raw)
In-Reply-To: <202307031404.Mjmo2JK6-lkp@intel.com>
All,
Not sure if I should reply to this or not (so please point me in the correct direction if needed).
The problem identified here existed before this patch series. The problem manifests because the
CRASH_DUMP can be enabled without enabling KEXEC. Or perhaps stated differently, CRASH_DUMP does not
select KEXEC, and so they are independent of one another, even though CRASH_DUMP clearly needs KEXEC.
CONFIG_CRASH_CORE=y
CONFIG_KEXEC_CORE=y
# CONFIG_KEXEC is not set
CONFIG_CRASH_DUMP=y
In this patch series, I only sought to preserve existing behavior, which is why this problem shows
here as well. This particular problem can be fixed by having CRASH_DUMP select KEXEC. Here is
original CRASH_DUMP definition (notice no dependencies listed):
config CRASH_DUMP
bool "Build kdump crash kernel (EXPERIMENTAL)"
help
...
Here are three possible courses of action:
- do nothing; preserve existing behavior as intended by the series (even though problems like this
can occur)
- fix it with CRASH_DUMP selecting KEXEC to eliminate the problem
- do not fix it but document the reason why this problem occurs in the commit message
Let me know if there is a preference.
Thank you!
eric
On 7/3/23 01:31, kernel test robot wrote:
> Hi Eric,
>
> FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant.
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-unstable
> head: f30ee81787a5abee6c7c72b0fcc30d428319c449
> commit: c717f7a0e6b98a52da146e1c09e4c5d92934ca41 [62/89] arm/kexec: refactor for kernel/Kconfig.kexec
> config: arm-randconfig-r046-20230703 (https://download.01.org/0day-ci/archive/20230703/202307031404.Mjmo2JK6-lkp@intel.com/config)
> compiler: arm-linux-gnueabi-gcc (GCC) 12.3.0
> reproduce: (https://download.01.org/0day-ci/archive/20230703/202307031404.Mjmo2JK6-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/202307031404.Mjmo2JK6-lkp@intel.com/
>
> All errors (new ones prefixed by >>):
>
> In file included from drivers/misc/pvpanic/pvpanic-mmio.c:12:
>>> include/linux/kexec.h:41:2: error: #error KEXEC_SOURCE_MEMORY_LIMIT not defined
> 41 | #error KEXEC_SOURCE_MEMORY_LIMIT not defined
> | ^~~~~
>>> include/linux/kexec.h:45:2: error: #error KEXEC_DESTINATION_MEMORY_LIMIT not defined
> 45 | #error KEXEC_DESTINATION_MEMORY_LIMIT not defined
> | ^~~~~
>>> include/linux/kexec.h:49:2: error: #error KEXEC_CONTROL_MEMORY_LIMIT not defined
> 49 | #error KEXEC_CONTROL_MEMORY_LIMIT not defined
> | ^~~~~
>>> include/linux/kexec.h:57:2: error: #error KEXEC_CONTROL_PAGE_SIZE not defined
> 57 | #error KEXEC_CONTROL_PAGE_SIZE not defined
> | ^~~~~
>>> include/linux/kexec.h:61:2: error: #error KEXEC_ARCH not defined
> 61 | #error KEXEC_ARCH not defined
> | ^~~~~
> --
> In file included from kernel/panic.c:25:
>>> include/linux/kexec.h:41:2: error: #error KEXEC_SOURCE_MEMORY_LIMIT not defined
> 41 | #error KEXEC_SOURCE_MEMORY_LIMIT not defined
> | ^~~~~
>>> include/linux/kexec.h:45:2: error: #error KEXEC_DESTINATION_MEMORY_LIMIT not defined
> 45 | #error KEXEC_DESTINATION_MEMORY_LIMIT not defined
> | ^~~~~
>>> include/linux/kexec.h:49:2: error: #error KEXEC_CONTROL_MEMORY_LIMIT not defined
> 49 | #error KEXEC_CONTROL_MEMORY_LIMIT not defined
> | ^~~~~
>>> include/linux/kexec.h:57:2: error: #error KEXEC_CONTROL_PAGE_SIZE not defined
> 57 | #error KEXEC_CONTROL_PAGE_SIZE not defined
> | ^~~~~
>>> include/linux/kexec.h:61:2: error: #error KEXEC_ARCH not defined
> 61 | #error KEXEC_ARCH not defined
> | ^~~~~
> kernel/panic.c: In function '__warn':
> kernel/panic.c:666:17: warning: function '__warn' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format]
> 666 | vprintk(args->fmt, args->args);
> | ^~~~~~~
> --
> In file included from kernel/kexec_core.c:15:
>>> include/linux/kexec.h:41:2: error: #error KEXEC_SOURCE_MEMORY_LIMIT not defined
> 41 | #error KEXEC_SOURCE_MEMORY_LIMIT not defined
> | ^~~~~
>>> include/linux/kexec.h:45:2: error: #error KEXEC_DESTINATION_MEMORY_LIMIT not defined
> 45 | #error KEXEC_DESTINATION_MEMORY_LIMIT not defined
> | ^~~~~
>>> include/linux/kexec.h:49:2: error: #error KEXEC_CONTROL_MEMORY_LIMIT not defined
> 49 | #error KEXEC_CONTROL_MEMORY_LIMIT not defined
> | ^~~~~
>>> include/linux/kexec.h:57:2: error: #error KEXEC_CONTROL_PAGE_SIZE not defined
> 57 | #error KEXEC_CONTROL_PAGE_SIZE not defined
> | ^~~~~
>>> include/linux/kexec.h:61:2: error: #error KEXEC_ARCH not defined
> 61 | #error KEXEC_ARCH not defined
> | ^~~~~
> kernel/kexec_core.c: In function 'sanity_check_segment_list':
>>> kernel/kexec_core.c:179:29: error: 'KEXEC_DESTINATION_MEMORY_LIMIT' undeclared (first use in this function); did you mean 'KEXEC_CRASH_CONTROL_MEMORY_LIMIT'?
> 179 | if (mend >= KEXEC_DESTINATION_MEMORY_LIMIT)
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> | KEXEC_CRASH_CONTROL_MEMORY_LIMIT
> kernel/kexec_core.c:179:29: note: each undeclared identifier is reported only once for each function it appears in
> kernel/kexec_core.c: In function 'kimage_alloc_normal_control_pages':
>>> kernel/kexec_core.c:388:31: error: 'KEXEC_CONTROL_MEMORY_LIMIT' undeclared (first use in this function); did you mean 'KEXEC_CONTROL_MEMORY_GFP'?
> 388 | if ((epfn >= (KEXEC_CONTROL_MEMORY_LIMIT >> PAGE_SHIFT)) ||
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~
> | KEXEC_CONTROL_MEMORY_GFP
> kernel/kexec_core.c: In function 'kimage_alloc_crash_control_pages':
>>> include/linux/kexec.h:65:42: error: 'KEXEC_CONTROL_MEMORY_LIMIT' undeclared (first use in this function); did you mean 'KEXEC_CONTROL_MEMORY_GFP'?
> 65 | #define KEXEC_CRASH_CONTROL_MEMORY_LIMIT KEXEC_CONTROL_MEMORY_LIMIT
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~
> kernel/kexec_core.c:454:32: note: in expansion of macro 'KEXEC_CRASH_CONTROL_MEMORY_LIMIT'
> 454 | if (hole_end > KEXEC_CRASH_CONTROL_MEMORY_LIMIT)
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> kernel/kexec_core.c: In function 'kimage_alloc_page':
>>> kernel/kexec_core.c:721:34: error: 'KEXEC_SOURCE_MEMORY_LIMIT' undeclared (first use in this function); did you mean 'KEXEC_CRASH_CONTROL_MEMORY_LIMIT'?
> 721 | (KEXEC_SOURCE_MEMORY_LIMIT >> PAGE_SHIFT)) {
> | ^~~~~~~~~~~~~~~~~~~~~~~~~
> | KEXEC_CRASH_CONTROL_MEMORY_LIMIT
> kernel/kexec_core.c: In function '__crash_kexec':
>>> kernel/kexec_core.c:1061:25: error: implicit declaration of function 'crash_setup_regs' [-Werror=implicit-function-declaration]
> 1061 | crash_setup_regs(&fixed_regs, regs);
> | ^~~~~~~~~~~~~~~~
> cc1: some warnings being treated as errors
>
>
> vim +41 include/linux/kexec.h
>
> dc009d92435f99 Eric W. Biederman 2005-06-25 39
> dc009d92435f99 Eric W. Biederman 2005-06-25 40 #ifndef KEXEC_SOURCE_MEMORY_LIMIT
> dc009d92435f99 Eric W. Biederman 2005-06-25 @41 #error KEXEC_SOURCE_MEMORY_LIMIT not defined
> dc009d92435f99 Eric W. Biederman 2005-06-25 42 #endif
> dc009d92435f99 Eric W. Biederman 2005-06-25 43
> dc009d92435f99 Eric W. Biederman 2005-06-25 44 #ifndef KEXEC_DESTINATION_MEMORY_LIMIT
> dc009d92435f99 Eric W. Biederman 2005-06-25 @45 #error KEXEC_DESTINATION_MEMORY_LIMIT not defined
> dc009d92435f99 Eric W. Biederman 2005-06-25 46 #endif
> dc009d92435f99 Eric W. Biederman 2005-06-25 47
> dc009d92435f99 Eric W. Biederman 2005-06-25 48 #ifndef KEXEC_CONTROL_MEMORY_LIMIT
> dc009d92435f99 Eric W. Biederman 2005-06-25 @49 #error KEXEC_CONTROL_MEMORY_LIMIT not defined
> dc009d92435f99 Eric W. Biederman 2005-06-25 50 #endif
> dc009d92435f99 Eric W. Biederman 2005-06-25 51
> 7e01b5acd88b3f Martin Schwidefsky 2015-04-16 52 #ifndef KEXEC_CONTROL_MEMORY_GFP
> dc5cccacf4272d Russell King 2016-08-02 53 #define KEXEC_CONTROL_MEMORY_GFP (GFP_KERNEL | __GFP_NORETRY)
> 7e01b5acd88b3f Martin Schwidefsky 2015-04-16 54 #endif
> 7e01b5acd88b3f Martin Schwidefsky 2015-04-16 55
> 163f6876f5c3ff Huang Ying 2008-08-15 56 #ifndef KEXEC_CONTROL_PAGE_SIZE
> 163f6876f5c3ff Huang Ying 2008-08-15 @57 #error KEXEC_CONTROL_PAGE_SIZE not defined
> dc009d92435f99 Eric W. Biederman 2005-06-25 58 #endif
> dc009d92435f99 Eric W. Biederman 2005-06-25 59
> dc009d92435f99 Eric W. Biederman 2005-06-25 60 #ifndef KEXEC_ARCH
> dc009d92435f99 Eric W. Biederman 2005-06-25 @61 #error KEXEC_ARCH not defined
> dc009d92435f99 Eric W. Biederman 2005-06-25 62 #endif
> dc009d92435f99 Eric W. Biederman 2005-06-25 63
> 3d214faea6e4f9 Michael Holzheu 2011-10-30 64 #ifndef KEXEC_CRASH_CONTROL_MEMORY_LIMIT
> 3d214faea6e4f9 Michael Holzheu 2011-10-30 @65 #define KEXEC_CRASH_CONTROL_MEMORY_LIMIT KEXEC_CONTROL_MEMORY_LIMIT
> 3d214faea6e4f9 Michael Holzheu 2011-10-30 66 #endif
> 3d214faea6e4f9 Michael Holzheu 2011-10-30 67
>
> :::::: The code at line 41 was first introduced by commit
> :::::: dc009d92435f99498cbc579ce76bf28e837e2c14 [PATCH] kexec: add kexec syscalls
>
> :::::: TO: Eric W. Biederman <ebiederm@xmission.com>
> :::::: CC: Linus Torvalds <torvalds@ppc970.osdl.org>
>
next prev parent reply other threads:[~2023-07-03 15:31 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-03 6:31 kernel test robot
2023-07-03 15:31 ` Eric DeVolder [this message]
2023-07-03 16:31 ` Andrew Morton
2023-07-03 18:34 ` Eric DeVolder
2023-07-03 20:17 ` Andrew Morton
2023-07-05 14:21 ` Eric DeVolder
2023-07-05 21:15 ` Eric DeVolder
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=3e8eecd1-a277-2cfb-690e-5de2eb7b988e@oracle.com \
--to=eric.devolder@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=bhe@redhat.com \
--cc=linux-mm@kvack.org \
--cc=lkp@intel.com \
--cc=oe-kbuild-all@lists.linux.dev \
/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