public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Baoquan He <bhe@redhat.com>
To: Stephen Boyd <swboyd@chromium.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	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>, Vivek Goyal <vgoyal@redhat.com>,
	kexec@lists.infradead.org
Subject: Re: [PATCH v5 03/13] buildid: Stash away kernels build ID on init
Date: Wed, 28 Apr 2021 18:02:29 +0800	[thread overview]
Message-ID: <20210428100229.GA8374@localhost.localdomain> (raw)
In-Reply-To: <20210420215003.3510247-4-swboyd@chromium.org>

On 04/20/21 at 02:49pm, Stephen Boyd wrote:
> 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           | 15 +++++++++++++++
>  3 files changed, 19 insertions(+)
> 
> diff --git a/include/linux/buildid.h b/include/linux/buildid.h
> index ebce93f26d06..f375900cf9ed 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[BUILD_ID_SIZE_MAX];
> +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 6aea1c4e5e85..1103ed46214f 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>
> @@ -172,3 +173,17 @@ 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 - Compute and stash the 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);
> +}

LGTM, thx.

Acked-by: Baoquan He <bhe@redhat.com>


  reply	other threads:[~2021-04-28 10:03 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-20 21:49 [PATCH v5 00/13] Add build ID to stacktraces Stephen Boyd
2021-04-20 21:49 ` [PATCH v5 01/13] buildid: Only consider GNU notes for build ID parsing Stephen Boyd
2021-04-20 21:49 ` [PATCH v5 02/13] buildid: Add API to parse build ID out of buffer Stephen Boyd
2021-04-20 21:49 ` [PATCH v5 03/13] buildid: Stash away kernels build ID on init Stephen Boyd
2021-04-28 10:02   ` Baoquan He [this message]
2021-04-20 21:49 ` [PATCH v5 04/13] dump_stack: Add vmlinux build ID to stack traces Stephen Boyd
2021-04-26 11:04   ` Petr Mladek
2021-04-26 23:40     ` Stephen Boyd
2021-04-20 21:49 ` [PATCH v5 05/13] module: Add printk formats to add module build ID to stacktraces Stephen Boyd
2021-04-21 11:49   ` Andy Shevchenko
2021-04-22 23:46     ` Stephen Boyd
2021-04-23 13:24       ` Andy Shevchenko
2021-04-23 13:45         ` Rasmus Villemoes
2021-04-23 14:08           ` Andy Shevchenko
2021-04-26 23:42         ` Stephen Boyd
2021-04-20 21:49 ` [PATCH v5 06/13] arm64: stacktrace: Use %pSb for backtrace printing Stephen Boyd
2021-04-21  9:58   ` Catalin Marinas
2021-04-20 21:49 ` [PATCH v5 07/13] x86/dumpstack: Use %pSb/%pBb " Stephen Boyd
2021-04-20 21:49 ` [PATCH v5 08/13] scripts/decode_stacktrace.sh: Support debuginfod Stephen Boyd
2021-04-20 21:49 ` [PATCH v5 09/13] scripts/decode_stacktrace.sh: Silence stderr messages from addr2line/nm Stephen Boyd
2021-04-20 21:50 ` [PATCH v5 10/13] scripts/decode_stacktrace.sh: Indicate 'auto' can be used for base path Stephen Boyd
2021-04-20 21:50 ` [PATCH v5 11/13] buildid: Mark some arguments const Stephen Boyd
2021-04-20 21:50 ` [PATCH v5 12/13] buildid: Fix kernel-doc notation Stephen Boyd
2021-04-20 21:50 ` [PATCH v5 13/13] kdump: Use vmlinux_build_id to simplify Stephen Boyd
2021-04-28 10:13   ` Baoquan He
2021-04-28 23:14     ` Stephen Boyd
2021-05-07  3:54       ` Baoquan He
2021-05-07  4:04         ` Baoquan He

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=20210428100229.GA8374@localhost.localdomain \
    --to=bhe@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=ast@kernel.org \
    --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=swboyd@chromium.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: 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