From: Petr Pavlu <petr.pavlu@suse.com>
To: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
Cc: akpm@linux-foundation.org, anna-maria@linutronix.de,
arnd@arndb.de, andersson@kernel.org, chrisl@kernel.org,
cl@gentwo.org, conor+dt@kernel.org, david@kernel.org,
dennis@kernel.org, devicetree@vger.kernel.org,
ehristev@kernel.org, frederic@kernel.org, mingo@redhat.com,
jstultz@google.com, corbet@lwn.net, juri.lelli@redhat.com,
kasong@tencent.com, kees@kernel.org, konradybcio@kernel.org,
krzk+dt@kernel.org, linux-arch@vger.kernel.org,
linux-arm-msm@vger.kernel.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-remoteproc@vger.kernel.org, mathieu.poirier@linaro.org,
peterz@infradead.org, pmladek@suse.com, robh@kernel.org,
saravanak@kernel.org, tj@kernel.org, tglx@kernel.org,
vincent.guittot@linaro.org, workflows@vger.kernel.org,
atomlin@atomlin.com, ast@kernel.org, aliceryhl@google.com,
linux.amoon@gmail.com, ardb@kernel.org, baoquan.he@linux.dev,
baohua@kernel.org, bsegall@google.com, jackmanb@google.com,
leitao@debian.org, brauner@kernel.org, coxu@redhat.com,
dietmar.eggemann@arm.com, dianders@chromium.org,
ebiggers@kernel.org, feng.tang@linux.alibaba.com,
yangfeng@kylinos.cn, gary@garyguo.net, guohanjun@huawei.com,
jack@suse.cz, wangjinchao600@gmail.com, joel.granados@kernel.org,
hannes@cmpxchg.org, john.ogness@linutronix.de,
jpoimboe@kernel.org, shikemeng@huaweicloud.com, kas@kernel.org,
kprateek.nayak@amd.com, liam@infradead.org, ljs@kernel.org,
elver@google.com, mgorman@suse.de, mhocko@suse.com,
ojeda@kernel.org, rppt@kernel.org, namcao@linutronix.de,
nathan@kernel.org, nphamcs@gmail.com, n.schier@fritz.com,
pasha.tatashin@soleen.com, pnina.feder@mobileye.com,
rdunlap@infradead.org, rioo.tsukatsukii@gmail.com,
senozhatsky@chromium.org, skhan@linuxfoundation.org,
sboyd@kernel.org, rostedt@goodmis.org, surenb@google.com,
thomas.weissschuh@linutronix.de, vschneid@redhat.com,
vbabka@kernel.org, youngjun.park@lge.com,
zhengyejian@huaweicloud.com, ziy@nvidia.com,
Eugen Hristev <eugen.hristev@linaro.org>
Subject: Re: [PATCH v3 26/26] meminspect: Add debug kinfo compatible driver
Date: Thu, 9 Jul 2026 15:24:54 +0200 [thread overview]
Message-ID: <84ded2aa-397f-465b-b2e5-d2fa31fc807d@suse.com> (raw)
In-Reply-To: <20260708070809.2660886-1-mukesh.ojha@oss.qualcomm.com>
On 7/8/26 9:08 AM, Mukesh Ojha wrote:
> From: Eugen Hristev <eugen.hristev@linaro.org>
>
> With this driver, the registered regions are copied to a shared memory
> zone at register time. The shared memory zone is supplied via OF. This
> driver will select only regions that are of interest, and keep only
> addresses. The format of the list is Kinfo compatible, with devices like
> Google Pixel phone. The firmware is only interested in some symbols'
> addresses.
>
> Signed-off-by: Eugen Hristev <eugen.hristev@linaro.org>
> Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
> ---
[...]
> diff --git a/kernel/meminspect/kinfo.c b/kernel/meminspect/kinfo.c
> new file mode 100644
> index 000000000000..7451c13bc316
> --- /dev/null
> +++ b/kernel/meminspect/kinfo.c
> @@ -0,0 +1,257 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + *
> + * Copyright 2002 Rusty Russell <rusty@rustcorp.com.au> IBM Corporation
> + * Copyright 2021 Google LLC
> + * Copyright 2025 Linaro Ltd. Eugen Hristev <eugen.hristev@linaro.org>
> + */
> +#include <linux/container_of.h>
> +#include <linux/kallsyms.h>
> +#include <linux/meminspect.h>
> +#include <linux/module.h>
> +#include <linux/of.h>
> +#include <linux/of_reserved_mem.h>
> +#include <linux/platform_device.h>
> +#include <linux/utsname.h>
> +
> +#define BUILD_INFO_LEN 256
> +#define DEBUG_KINFO_MAGIC 0xcceeddff
> +
> +/*
> + * Header structure must be byte-packed, since the table is provided to
> + * bootloader.
> + */
> +struct kernel_info {
> + /* For kallsyms */
> + u8 enabled_all;
> + u8 enabled_base_relative;
> + u8 enabled_absolute_percpu;
> + u8 enabled_cfi_clang;
> + u32 num_syms;
> + u16 name_len;
> + u16 bit_per_long;
> + u16 module_name_len;
> + u16 symbol_len;
> + u64 _relative_pa;
> + u64 _text_pa;
> + u64 _stext_pa;
> + u64 _etext_pa;
> + u64 _sinittext_pa;
> + u64 _einittext_pa;
> + u64 _end_pa;
> + u64 _offsets_pa;
> + u64 _names_pa;
> + u64 _token_table_pa;
> + u64 _token_index_pa;
> + u64 _markers_pa;
> + u64 _seqs_of_names_pa;
> +
> + /* For frame pointer */
> + u32 thread_size;
> +
> + /* For virt_to_phys */
> + u64 swapper_pg_dir_pa;
> +
> + /* For linux banner */
> + u8 last_uts_release[__NEW_UTS_LEN];
> +
> + /* For module kallsyms */
> + u32 enabled_modules_tree_lookup;
> + u32 mod_mem_offset;
> + u32 mod_kallsyms_offset;
> +} __packed;
Is this kinfo format documented anywhere? I was only able to find
a reference to the equivalent downstream Android driver [1] in the cover
letter. However, I don't quite understand what it is or what the
associated bootloader component does with this information. In
particular, I'm unclear about the purpose of the following
module-related fields:
module_name_len
enabled_modules_tree_lookup
mod_mem_offset
mod_kallsyms_offset
These appear to be exposed for reading the internals of the module
loader. Be aware that this data is not stable.
[1] https://android.googlesource.com/kernel/common/+/refs/heads/android-mainline/drivers/android/debug_kinfo.c
--
Thanks,
Petr
next prev parent reply other threads:[~2026-07-09 13:25 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-08 5:31 [PATCH v3 00/26] Introduce meminspect Mukesh Ojha
2026-07-08 5:31 ` [PATCH v3 01/26] kernel: " Mukesh Ojha
2026-07-08 7:38 ` Lorenzo Stoakes
2026-07-08 13:33 ` Mukesh Ojha
2026-07-08 5:31 ` [PATCH v3 02/26] init/version: Annotate static information into meminspect Mukesh Ojha
2026-07-08 5:31 ` [PATCH v3 03/26] mm/percpu: " Mukesh Ojha
2026-07-08 5:31 ` [PATCH v3 04/26] cpu: " Mukesh Ojha
2026-07-08 5:31 ` [PATCH v3 05/26] genirq/irqdesc: " Mukesh Ojha
2026-07-08 7:46 ` Lorenzo Stoakes
2026-07-08 5:31 ` [PATCH v3 06/26] timers: " Mukesh Ojha
2026-07-08 5:31 ` [PATCH v3 07/26] timekeeping: Register tk_data " Mukesh Ojha
2026-07-08 5:31 ` [PATCH v3 08/26] kernel/fork: Annotate static information " Mukesh Ojha
2026-07-08 5:31 ` [PATCH v3 09/26] mm/page_alloc: " Mukesh Ojha
2026-07-08 5:31 ` [PATCH v3 10/26] mm/show_mem: " Mukesh Ojha
2026-07-08 5:31 ` [PATCH v3 11/26] mm/swapfile: " Mukesh Ojha
2026-07-08 7:47 ` Lorenzo Stoakes
2026-07-08 19:05 ` Mukesh Ojha
2026-07-09 14:53 ` Lorenzo Stoakes
2026-07-10 4:09 ` Christoph Hellwig
2026-07-08 5:31 ` [PATCH v3 12/26] kernel/vmcore_info: Register dynamic " Mukesh Ojha
2026-07-08 5:31 ` [PATCH v3 13/26] kernel/configs: " Mukesh Ojha
2026-07-08 5:31 ` [PATCH v3 14/26] mm/init-mm: Annotate static " Mukesh Ojha
2026-07-08 7:52 ` Lorenzo Stoakes
2026-07-08 5:31 ` [PATCH v3 15/26] panic: " Mukesh Ojha
2026-07-08 5:31 ` [PATCH v3 16/26] kallsyms: " Mukesh Ojha
2026-07-08 5:31 ` [PATCH v3 17/26] mm/mm_init: " Mukesh Ojha
2026-07-08 5:31 ` [PATCH v3 18/26] sched/core: Annotate runqueues " Mukesh Ojha
2026-07-08 5:31 ` [PATCH v3 19/26] mm/numa: Register node data information " Mukesh Ojha
2026-07-08 7:55 ` Lorenzo Stoakes
2026-07-08 5:31 ` [PATCH v3 20/26] mm/sparse: Register " Mukesh Ojha
2026-07-08 5:32 ` [PATCH v3 21/26] printk: " Mukesh Ojha
2026-07-08 7:59 ` Lorenzo Stoakes
2026-07-08 18:53 ` Mukesh Ojha
2026-07-09 8:16 ` Petr Mladek
2026-07-08 5:32 ` [PATCH v3 22/26] remoteproc: qcom: Move minidump data structures into its own header Mukesh Ojha
2026-07-08 5:32 ` [PATCH v3 23/26] soc: qcom: Add minidump backend driver Mukesh Ojha
2026-07-08 5:32 ` [PATCH v3 24/26] soc: qcom: smem: Add minidump platform device Mukesh Ojha
2026-07-08 5:32 ` [PATCH v3 25/26] dt-bindings: reserved-memory: Add Google Kinfo Pixel reserved memory Mukesh Ojha
2026-07-08 7:08 ` [PATCH v3 26/26] meminspect: Add debug kinfo compatible driver Mukesh Ojha
2026-07-08 8:06 ` Lorenzo Stoakes
2026-07-08 18:46 ` Mukesh Ojha
2026-07-09 13:24 ` Petr Pavlu [this message]
2026-07-08 7:11 ` [PATCH v3 00/26] Introduce meminspect Lorenzo Stoakes
2026-07-08 8:18 ` Lorenzo Stoakes
2026-07-09 20:42 ` Mukesh Ojha
2026-07-10 1:51 ` Liam R. Howlett
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=84ded2aa-397f-465b-b2e5-d2fa31fc807d@suse.com \
--to=petr.pavlu@suse.com \
--cc=akpm@linux-foundation.org \
--cc=aliceryhl@google.com \
--cc=andersson@kernel.org \
--cc=anna-maria@linutronix.de \
--cc=ardb@kernel.org \
--cc=arnd@arndb.de \
--cc=ast@kernel.org \
--cc=atomlin@atomlin.com \
--cc=baohua@kernel.org \
--cc=baoquan.he@linux.dev \
--cc=brauner@kernel.org \
--cc=bsegall@google.com \
--cc=chrisl@kernel.org \
--cc=cl@gentwo.org \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=coxu@redhat.com \
--cc=david@kernel.org \
--cc=dennis@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dianders@chromium.org \
--cc=dietmar.eggemann@arm.com \
--cc=ebiggers@kernel.org \
--cc=ehristev@kernel.org \
--cc=elver@google.com \
--cc=eugen.hristev@linaro.org \
--cc=feng.tang@linux.alibaba.com \
--cc=frederic@kernel.org \
--cc=gary@garyguo.net \
--cc=guohanjun@huawei.com \
--cc=hannes@cmpxchg.org \
--cc=jack@suse.cz \
--cc=jackmanb@google.com \
--cc=joel.granados@kernel.org \
--cc=john.ogness@linutronix.de \
--cc=jpoimboe@kernel.org \
--cc=jstultz@google.com \
--cc=juri.lelli@redhat.com \
--cc=kas@kernel.org \
--cc=kasong@tencent.com \
--cc=kees@kernel.org \
--cc=konradybcio@kernel.org \
--cc=kprateek.nayak@amd.com \
--cc=krzk+dt@kernel.org \
--cc=leitao@debian.org \
--cc=liam@infradead.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-remoteproc@vger.kernel.org \
--cc=linux.amoon@gmail.com \
--cc=ljs@kernel.org \
--cc=mathieu.poirier@linaro.org \
--cc=mgorman@suse.de \
--cc=mhocko@suse.com \
--cc=mingo@redhat.com \
--cc=mukesh.ojha@oss.qualcomm.com \
--cc=n.schier@fritz.com \
--cc=namcao@linutronix.de \
--cc=nathan@kernel.org \
--cc=nphamcs@gmail.com \
--cc=ojeda@kernel.org \
--cc=pasha.tatashin@soleen.com \
--cc=peterz@infradead.org \
--cc=pmladek@suse.com \
--cc=pnina.feder@mobileye.com \
--cc=rdunlap@infradead.org \
--cc=rioo.tsukatsukii@gmail.com \
--cc=robh@kernel.org \
--cc=rostedt@goodmis.org \
--cc=rppt@kernel.org \
--cc=saravanak@kernel.org \
--cc=sboyd@kernel.org \
--cc=senozhatsky@chromium.org \
--cc=shikemeng@huaweicloud.com \
--cc=skhan@linuxfoundation.org \
--cc=surenb@google.com \
--cc=tglx@kernel.org \
--cc=thomas.weissschuh@linutronix.de \
--cc=tj@kernel.org \
--cc=vbabka@kernel.org \
--cc=vincent.guittot@linaro.org \
--cc=vschneid@redhat.com \
--cc=wangjinchao600@gmail.com \
--cc=workflows@vger.kernel.org \
--cc=yangfeng@kylinos.cn \
--cc=youngjun.park@lge.com \
--cc=zhengyejian@huaweicloud.com \
--cc=ziy@nvidia.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