All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Jürgen Groß" <jgross@suse.com>
To: James Bottomley <James.Bottomley@HansenPartnership.com>,
	Sasha Levin <sashal@kernel.org>,
	Jiri Slaby <jirislaby@kernel.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>,
	Richard Weinberger <richard@nod.at>,
	Linus Torvalds <torvalds@linuxfoundation.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Konstantin Ryabitsev <konstantin@linuxfoundation.org>,
	ksummit <ksummit@lists.linux.dev>,
	laurent pinchart <laurent.pinchart@ideasonboard.com>,
	Thorsten Leemhuis <linux@leemhuis.info>,
	Steven Rostedt <rostedt@goodmis.org>, users <users@kernel.org>
Subject: Re: [RFC] kallsyms: embed source file:line info in kernel stack traces
Date: Tue, 3 Mar 2026 14:08:43 +0100	[thread overview]
Message-ID: <0c0064d6-eda5-4e94-8546-9b605fa327df@suse.com> (raw)
In-Reply-To: <5c6e89540a55521f622f820e92ef370e82e285f4.camel@HansenPartnership.com>


[-- Attachment #1.1.1: Type: text/plain, Size: 2794 bytes --]

On 03.03.26 13:58, James Bottomley wrote:
> On Tue, 2026-03-03 at 07:47 -0500, Sasha Levin wrote:
>> On Tue, Mar 03, 2026 at 10:31:46AM +0100, Jiri Slaby wrote:
>>> On 03. 03. 26, 9:11, Geert Uytterhoeven wrote:
>>>> On Tue, 3 Mar 2026 at 07:26, Richard Weinberger <richard@nod.at>
>>>> wrote:
>>>>>> Von: "Sasha Levin" <sashal@kernel.org>
>>>>>> Add CONFIG_KALLSYMS_LINEINFO, which embeds a compact address-
>>>>>> to-line
>>>>>> lookup table in the kernel image so stack traces directly
>>>>>> print source
>>>>>> file and line number information:
>>>>
>>>>>> Memory footprint measured with a simple KVM guest x86_64
>>>>>> config:
>>>>>>
>>>>>>   Table: 4,597,583 entries from 4,841 source files
>>>>>>     lineinfo_addrs[]     4,597,583 x u32  = 17.5 MiB
>>>>>>     lineinfo_file_ids[]  4,597,583 x u16  =  8.8 MiB
>>>>>>     lineinfo_lines[]     4,597,583 x u32  = 17.5 MiB
>>>>>>     file_offsets + filenames              ~  0.1 MiB
>>>>>>     Total .rodata increase:              ~ 44.0 MiB
>>>>>>
>>>>>>   vmlinux (stripped):  529 MiB -> 573 MiB  (+44 MiB / +8.3%)
>>>>>
>>>>> Hm, that's a significant increase.
>>>>
>>>> Other random idea: this data is only needed in case of a crash.
>>>> Perhaps it can be stored compressed, and only be decompressed
>>>> when needed, or even during look-up?
>>>
>>> But obviously not when dumping OOM stack traces :P.
>>
>> Right - I really wanted to avoid memory allocations or disk I/O here.
>>
>> I'm sure we can come up with more efficient ways to store this
>> information - I wanted to keep the initial version simple and easy
>> for review.
> 
> When the system is crashing, efficiency (at least as long as the user
> doesn't notice) isn't typically required, so if you did a linear search
> instead of a binary one you could use compressed data that's amenable
> to decompression using a stream algorithm (i.e. only requires a fixed
> length buffer, not decompression of the entire thing), then you stream
> through the compressed data a chunk at a time looking for the match.

And for this data the compression algorithm could be quite simple:

Build chunks of e.g. 1000 entries, allowing to do a quick search for
finding the correct chunk, then scan through the chunk to find the
entry.

Put the start address at the beginning of each chunk, then use a lsb128
coded offset for each entry (offset always relative to last entry, so
most entries would need only 1 byte additional address information).

I guess file ids are fine as u16.

Line numbers could be lsb128 encoded, too, limiting most entries to
2 bytes of additional information.

This simple scheme would already save roughly 50% of the needed space.


Juergen

[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3743 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]

  reply	other threads:[~2026-03-03 13:08 UTC|newest]

Thread overview: 117+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-10  4:48 kernel.org tooling update Konstantin Ryabitsev
2025-12-10  8:11 ` Mauro Carvalho Chehab
2025-12-10 13:30 ` Thorsten Leemhuis
2025-12-11  3:04   ` Theodore Tso
2025-12-12 23:48   ` Stephen Hemminger
2025-12-12 23:54     ` Randy Dunlap
2025-12-16 16:21 ` Lukas Wunner
2025-12-16 20:33   ` Jeff Johnson
2025-12-17  0:47     ` Mario Limonciello
2025-12-18 13:37       ` Jani Nikula
2025-12-18 14:09         ` Mario Limonciello
2026-01-23  9:19 ` Web of Trust work [Was: kernel.org tooling update] Uwe Kleine-König
2026-01-23  9:29   ` Greg KH
2026-01-23 11:47     ` Mauro Carvalho Chehab
2026-01-23 11:58       ` Greg KH
2026-01-23 12:24         ` Mauro Carvalho Chehab
2026-01-23 12:29           ` Greg KH
2026-01-23 13:57         ` Konstantin Ryabitsev
2026-01-23 16:24     ` James Bottomley
2026-01-23 16:33       ` Greg KH
2026-01-23 16:42         ` Joe Perches
2026-01-23 17:00           ` Steven Rostedt
2026-01-23 17:23         ` James Bottomley
2026-01-23 18:23           ` Konstantin Ryabitsev
2026-01-23 21:12             ` Uwe Kleine-König
2026-01-26 16:23               ` Konstantin Ryabitsev
2026-01-26 17:32                 ` Uwe Kleine-König
2026-01-26 21:01                   ` Konstantin Ryabitsev
2026-01-26 23:23                   ` James Bottomley
2026-01-27  8:39                     ` Uwe Kleine-König
2026-01-27 21:08                       ` Linus Torvalds
2026-02-04 10:49                         ` Uwe Kleine-König
2026-02-05 10:14                           ` James Bottomley
2026-02-05 18:07                             ` Uwe Kleine-König
2026-02-05 18:23                               ` Konstantin Ryabitsev
2026-01-26 23:33                   ` Mauro Carvalho Chehab
2026-01-26 23:06                 ` Mauro Carvalho Chehab
2026-01-23 21:38             ` James Bottomley
2026-01-23 22:55             ` Mauro Carvalho Chehab
2026-01-23 16:38       ` Konstantin Ryabitsev
2026-01-23 17:02         ` Paul Moore
2026-03-08  7:21     ` Uwe Kleine-König
2026-03-08 10:24       ` Greg KH
2026-03-18 14:02         ` Greg KH
2026-01-23 18:42 ` kernel.org tooling update Randy Dunlap
2026-02-26  8:44 ` slowly decommission bugzilla? (was: Re: kernel.org tooling update) Thorsten Leemhuis
2026-02-26 14:40   ` Andrew G. Morgan
2026-02-26 17:04   ` Andrew Morton
2026-02-27 11:07     ` Jani Nikula
2026-02-27 15:16     ` Steven Rostedt
2026-02-27 15:18       ` Mark Brown
2026-02-27 15:44         ` Steven Rostedt
2026-02-27 15:18       ` slowly decommission bugzilla? Sven Peter
2026-02-27 15:35       ` slowly decommission bugzilla? (was: Re: kernel.org tooling update) Richard Weinberger
2026-02-27 16:00         ` Geert Uytterhoeven
2026-02-27 16:22           ` Richard Weinberger
2026-02-27 16:29             ` Peter Zijlstra
2026-02-27 17:07               ` James Bottomley
2026-02-28 13:41             ` slowly decommission bugzilla? Thorsten Leemhuis
2026-02-28 15:17               ` Richard Weinberger
2026-02-28 17:40                 ` Linus Torvalds
2026-02-28 18:29                   ` Richard Weinberger
2026-02-28 20:26                     ` Steven Rostedt
2026-02-28 20:28                       ` Richard Weinberger
2026-02-28 20:56                         ` Steven Rostedt
2026-03-01 15:23                           ` Sasha Levin
2026-03-01 15:35                             ` Laurent Pinchart
2026-03-01 15:42                               ` Sasha Levin
2026-03-01 16:13                                 ` Laurent Pinchart
2026-03-01 16:27                                   ` Sasha Levin
2026-03-06 15:01                                     ` Laurent Pinchart
2026-03-07 16:19                                       ` Sasha Levin
2026-03-01 16:15                               ` James Bottomley
2026-03-01 16:49                                 ` Laurent Pinchart
2026-03-02  8:55                                 ` Mauro Carvalho Chehab
2026-03-01 17:33                               ` Linus Torvalds
2026-03-02 20:28                                 ` [RFC] kallsyms: embed source file:line info in kernel stack traces Sasha Levin
2026-03-03  5:39                                   ` Alexey Dobriyan
2026-03-03 12:44                                     ` Sasha Levin
2026-03-03 13:17                                     ` Steven Rostedt
2026-03-03 16:35                                       ` Sasha Levin
2026-03-06 15:22                                         ` Laurent Pinchart
2026-03-03 19:09                                       ` Alexey Dobriyan
2026-03-03  6:26                                   ` Richard Weinberger
2026-03-03  6:48                                     ` Tomasz Figa
2026-03-03  9:04                                       ` Vlastimil Babka (SUSE)
2026-03-03 12:45                                         ` Sasha Levin
2026-03-03  8:11                                     ` Geert Uytterhoeven
2026-03-03  9:31                                       ` Jiri Slaby
2026-03-03 12:47                                         ` Sasha Levin
2026-03-03 12:58                                           ` James Bottomley
2026-03-03 13:08                                             ` Jürgen Groß [this message]
2026-03-03  8:09                                   ` Geert Uytterhoeven
2026-03-03 22:44                                   ` Helge Deller
2026-03-03 22:47                                     ` Sasha Levin
2026-03-01 16:01                             ` slowly decommission bugzilla? James Bottomley
2026-03-01 16:16                               ` Sasha Levin
2026-03-01 16:25                                 ` James Bottomley
2026-03-01 16:33                                   ` Sasha Levin
2026-03-06 10:37                 ` Richard Weinberger
2026-03-06 10:44                   ` Geert Uytterhoeven
2026-03-15 14:58                     ` Richard Weinberger
2026-03-16 11:28                       ` Greg KH
2026-03-16 21:56                         ` Richard Weinberger
2026-03-17  7:51                           ` Greg Kroah-Hartman
2026-04-02  4:59   ` slowly decommission bugzilla? (was: Re: kernel.org tooling update) Konstantin Ryabitsev
2026-04-02 13:07     ` Theodore Tso
2026-04-02 13:28       ` Konstantin Ryabitsev
2026-04-02 14:08         ` Theodore Tso
2026-04-02 14:21           ` Konstantin Ryabitsev
2026-04-02 14:49         ` Steven Rostedt
2026-04-02 13:51       ` James Bottomley
2026-04-02 13:42     ` slowly decommission bugzilla? Thorsten Leemhuis
2026-04-02 14:04       ` Konstantin Ryabitsev
2026-04-02 14:15         ` Richard Weinberger
2026-04-02 15:45       ` Laurent Pinchart
2026-04-02 16:04         ` Thorsten Leemhuis

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=0c0064d6-eda5-4e94-8546-9b605fa327df@suse.com \
    --to=jgross@suse.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=akpm@linux-foundation.org \
    --cc=geert@linux-m68k.org \
    --cc=jirislaby@kernel.org \
    --cc=konstantin@linuxfoundation.org \
    --cc=ksummit@lists.linux.dev \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux@leemhuis.info \
    --cc=richard@nod.at \
    --cc=rostedt@goodmis.org \
    --cc=sashal@kernel.org \
    --cc=torvalds@linuxfoundation.org \
    --cc=users@kernel.org \
    /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 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.