From: Stephen Boyd <swboyd@chromium.org> To: Andrew Morton <akpm@linux-foundation.org> Cc: linux-kernel@vger.kernel.org, Jiri Olsa <jolsa@kernel.org>, Alexei Starovoitov <ast@kernel.org>, Jessica Yu <jeyu@kernel.org>, Evan Green <evgreen@chromium.org>, Hsin-Yi Wang <hsinyi@chromium.org>, Dave Young <dyoung@redhat.com>, Baoquan He <bhe@redhat.com>, Vivek Goyal <vgoyal@redhat.com>, kexec@lists.infradead.org Subject: [PATCH v3 02/12] buildid: Stash away kernels build ID on init Date: Tue, 30 Mar 2021 20:05:10 -0700 [thread overview] Message-ID: <20210331030520.3816265-3-swboyd@chromium.org> (raw) In-Reply-To: <20210331030520.3816265-1-swboyd@chromium.org> Parse the kernel's build ID at initialization so that other code can print a hex format string representation of the running kernel's build ID. This will be used in the kdump and dump_stack code so that developers can easily locate the vmlinux debug symbols for a crash/stacktrace. Cc: Jiri Olsa <jolsa@kernel.org> Cc: Alexei Starovoitov <ast@kernel.org> Cc: Jessica Yu <jeyu@kernel.org> Cc: Evan Green <evgreen@chromium.org> Cc: Hsin-Yi Wang <hsinyi@chromium.org> Cc: Dave Young <dyoung@redhat.com> Cc: Baoquan He <bhe@redhat.com> Cc: Vivek Goyal <vgoyal@redhat.com> Cc: <kexec@lists.infradead.org> Signed-off-by: Stephen Boyd <swboyd@chromium.org> --- include/linux/buildid.h | 3 +++ init/main.c | 1 + lib/buildid.c | 17 +++++++++++++++++ 3 files changed, 21 insertions(+) diff --git a/include/linux/buildid.h b/include/linux/buildid.h index ebce93f26d06..0312660089c3 100644 --- a/include/linux/buildid.h +++ b/include/linux/buildid.h @@ -10,4 +10,7 @@ int build_id_parse(struct vm_area_struct *vma, unsigned char *build_id, __u32 *size); int build_id_parse_buf(const void *buf, unsigned char *build_id, u32 buf_size); +extern unsigned char vmlinux_build_id[]; +void init_vmlinux_build_id(void); + #endif diff --git a/init/main.c b/init/main.c index 53b278845b88..eaede2f41327 100644 --- a/init/main.c +++ b/init/main.c @@ -857,6 +857,7 @@ asmlinkage __visible void __init __no_sanitize_address start_kernel(void) set_task_stack_end_magic(&init_task); smp_setup_processor_id(); debug_objects_early_init(); + init_vmlinux_build_id(); cgroup_init_early(); diff --git a/lib/buildid.c b/lib/buildid.c index 010ab0674cb9..b939bbc59233 100644 --- a/lib/buildid.c +++ b/lib/buildid.c @@ -1,6 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 #include <linux/buildid.h> +#include <linux/cache.h> #include <linux/elf.h> #include <linux/kernel.h> #include <linux/pagemap.h> @@ -171,3 +172,19 @@ int build_id_parse_buf(const void *buf, unsigned char *build_id, u32 buf_size) { return parse_build_id_buf(build_id, NULL, buf, buf_size); } + +unsigned char vmlinux_build_id[BUILD_ID_SIZE_MAX] __ro_after_init; + +/** + * init_vmlinux_build_id - Get the running kernel's build ID + * + * Return: Running kernel's build ID + */ +void __init init_vmlinux_build_id(void) +{ + extern const void __start_notes __weak; + extern const void __stop_notes __weak; + unsigned int size = &__stop_notes - &__start_notes; + + build_id_parse_buf(&__start_notes, vmlinux_build_id, size); +} -- https://chromeos.dev
WARNING: multiple messages have this Message-ID (diff)
From: Stephen Boyd <swboyd@chromium.org> To: Andrew Morton <akpm@linux-foundation.org> Cc: linux-kernel@vger.kernel.org, Jiri Olsa <jolsa@kernel.org>, Alexei Starovoitov <ast@kernel.org>, Jessica Yu <jeyu@kernel.org>, Evan Green <evgreen@chromium.org>, Hsin-Yi Wang <hsinyi@chromium.org>, Dave Young <dyoung@redhat.com>, Baoquan He <bhe@redhat.com>, Vivek Goyal <vgoyal@redhat.com>, kexec@lists.infradead.org Subject: [PATCH v3 02/12] buildid: Stash away kernels build ID on init Date: Tue, 30 Mar 2021 20:05:10 -0700 [thread overview] Message-ID: <20210331030520.3816265-3-swboyd@chromium.org> (raw) In-Reply-To: <20210331030520.3816265-1-swboyd@chromium.org> Parse the kernel's build ID at initialization so that other code can print a hex format string representation of the running kernel's build ID. This will be used in the kdump and dump_stack code so that developers can easily locate the vmlinux debug symbols for a crash/stacktrace. Cc: Jiri Olsa <jolsa@kernel.org> Cc: Alexei Starovoitov <ast@kernel.org> Cc: Jessica Yu <jeyu@kernel.org> Cc: Evan Green <evgreen@chromium.org> Cc: Hsin-Yi Wang <hsinyi@chromium.org> Cc: Dave Young <dyoung@redhat.com> Cc: Baoquan He <bhe@redhat.com> Cc: Vivek Goyal <vgoyal@redhat.com> Cc: <kexec@lists.infradead.org> Signed-off-by: Stephen Boyd <swboyd@chromium.org> --- include/linux/buildid.h | 3 +++ init/main.c | 1 + lib/buildid.c | 17 +++++++++++++++++ 3 files changed, 21 insertions(+) diff --git a/include/linux/buildid.h b/include/linux/buildid.h index ebce93f26d06..0312660089c3 100644 --- a/include/linux/buildid.h +++ b/include/linux/buildid.h @@ -10,4 +10,7 @@ int build_id_parse(struct vm_area_struct *vma, unsigned char *build_id, __u32 *size); int build_id_parse_buf(const void *buf, unsigned char *build_id, u32 buf_size); +extern unsigned char vmlinux_build_id[]; +void init_vmlinux_build_id(void); + #endif diff --git a/init/main.c b/init/main.c index 53b278845b88..eaede2f41327 100644 --- a/init/main.c +++ b/init/main.c @@ -857,6 +857,7 @@ asmlinkage __visible void __init __no_sanitize_address start_kernel(void) set_task_stack_end_magic(&init_task); smp_setup_processor_id(); debug_objects_early_init(); + init_vmlinux_build_id(); cgroup_init_early(); diff --git a/lib/buildid.c b/lib/buildid.c index 010ab0674cb9..b939bbc59233 100644 --- a/lib/buildid.c +++ b/lib/buildid.c @@ -1,6 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 #include <linux/buildid.h> +#include <linux/cache.h> #include <linux/elf.h> #include <linux/kernel.h> #include <linux/pagemap.h> @@ -171,3 +172,19 @@ int build_id_parse_buf(const void *buf, unsigned char *build_id, u32 buf_size) { return parse_build_id_buf(build_id, NULL, buf, buf_size); } + +unsigned char vmlinux_build_id[BUILD_ID_SIZE_MAX] __ro_after_init; + +/** + * init_vmlinux_build_id - Get the running kernel's build ID + * + * Return: Running kernel's build ID + */ +void __init init_vmlinux_build_id(void) +{ + extern const void __start_notes __weak; + extern const void __stop_notes __weak; + unsigned int size = &__stop_notes - &__start_notes; + + build_id_parse_buf(&__start_notes, vmlinux_build_id, size); +} -- https://chromeos.dev _______________________________________________ kexec mailing list kexec@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kexec
next prev parent reply other threads:[~2021-03-31 3:06 UTC|newest] Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-03-31 3:05 [PATCH v3 00/12] Add build ID to stacktraces Stephen Boyd 2021-03-31 3:05 ` Stephen Boyd 2021-03-31 3:05 ` Stephen Boyd 2021-03-31 3:05 ` [PATCH v3 01/12] buildid: Add API to parse build ID out of buffer Stephen Boyd 2021-03-31 3:05 ` Stephen Boyd [this message] 2021-03-31 3:05 ` [PATCH v3 02/12] buildid: Stash away kernels build ID on init Stephen Boyd 2021-04-08 12:05 ` Jessica Yu 2021-04-08 12:05 ` Jessica Yu 2021-04-08 18:52 ` Stephen Boyd 2021-04-08 18:52 ` Stephen Boyd 2021-03-31 3:05 ` [PATCH v3 03/12] dump_stack: Add vmlinux build ID to stack traces Stephen Boyd 2021-04-07 13:42 ` Petr Mladek 2021-04-08 5:44 ` Stephen Boyd 2021-04-07 14:03 ` Petr Mladek 2021-04-08 1:14 ` Stephen Boyd 2021-04-08 6:20 ` Stephen Boyd 2021-04-08 10:13 ` Petr Mladek 2021-04-08 19:52 ` Stephen Boyd 2021-04-08 21:08 ` Stephen Boyd 2021-04-09 9:19 ` Petr Mladek 2021-03-31 3:05 ` [PATCH v3 04/12] module: Add printk format to add module build ID to stacktraces Stephen Boyd 2021-04-07 14:54 ` Petr Mladek 2021-04-07 15:07 ` Andy Shevchenko 2021-04-07 15:03 ` Petr Mladek 2021-04-07 15:37 ` Andy Shevchenko 2021-04-08 6:58 ` Stephen Boyd 2021-04-08 13:44 ` Jessica Yu 2021-04-08 14:05 ` Andy Shevchenko 2021-04-08 19:57 ` Stephen Boyd 2021-03-31 3:05 ` [PATCH v3 05/12] arm64: stacktrace: Use %pSb for backtrace printing Stephen Boyd 2021-03-31 3:05 ` Stephen Boyd 2021-03-31 3:05 ` [PATCH v3 06/12] x86/dumpstack: " Stephen Boyd 2021-03-31 3:05 ` [PATCH v3 07/12] scripts/decode_stacktrace.sh: Support debuginfod Stephen Boyd 2021-03-31 3:05 ` [PATCH v3 08/12] scripts/decode_stacktrace.sh: Silence stderr messages from addr2line/nm Stephen Boyd 2021-03-31 3:05 ` [PATCH v3 09/12] scripts/decode_stacktrace.sh: Indicate 'auto' can be used for base path Stephen Boyd 2021-03-31 3:05 ` [PATCH v3 10/12] buildid: Mark some arguments const Stephen Boyd 2021-03-31 3:05 ` [PATCH v3 11/12] buildid: Fix kernel-doc notation Stephen Boyd 2021-03-31 3:05 ` [PATCH v3 12/12] kdump: Use vmlinux_build_id to simplify Stephen Boyd 2021-03-31 3:05 ` Stephen Boyd 2021-04-07 17:03 ` Petr Mladek 2021-04-07 17:03 ` Petr Mladek 2021-04-08 5:36 ` Stephen Boyd 2021-04-08 5:36 ` Stephen Boyd 2021-04-08 10:17 ` Baoquan He 2021-04-08 10:17 ` Baoquan He 2021-04-08 19:58 ` Stephen Boyd 2021-04-08 19:58 ` Stephen Boyd
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=20210331030520.3816265-3-swboyd@chromium.org \ --to=swboyd@chromium.org \ --cc=akpm@linux-foundation.org \ --cc=ast@kernel.org \ --cc=bhe@redhat.com \ --cc=dyoung@redhat.com \ --cc=evgreen@chromium.org \ --cc=hsinyi@chromium.org \ --cc=jeyu@kernel.org \ --cc=jolsa@kernel.org \ --cc=kexec@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=vgoyal@redhat.com \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.