From: Florian Fainelli <florian.fainelli@broadcom.com>
To: "Liam R. Howlett" <Liam.Howlett@oracle.com>,
linux-kernel@vger.kernel.org, Jan Kiszka <jan.kiszka@siemens.com>,
Kieran Bingham <kbingham@kernel.org>,
Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>, Dennis Zhou <dennis@kernel.org>,
Tejun Heo <tj@kernel.org>, Christoph Lameter <cl@gentwo.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Danilo Krummrich <dakr@kernel.org>,
Petr Mladek <pmladek@suse.com>,
Steven Rostedt <rostedt@goodmis.org>,
John Ogness <john.ogness@linutronix.de>,
Sergey Senozhatsky <senozhatsky@chromium.org>,
Ulf Hansson <ulf.hansson@linaro.org>,
Thomas Gleixner <tglx@linutronix.de>,
Andrey Ryabinin <ryabinin.a.a@gmail.com>,
Alexander Potapenko <glider@google.com>,
Andrey Konovalov <andreyknvl@gmail.com>,
Dmitry Vyukov <dvyukov@google.com>,
Vincenzo Frascino <vincenzo.frascino@arm.com>,
Andrew Morton <akpm@linux-foundation.org>,
Luis Chamberlain <mcgrof@kernel.org>,
Petr Pavlu <petr.pavlu@suse.com>,
Sami Tolvanen <samitolvanen@google.com>,
Daniel Gomez <da.gomez@samsung.com>,
Kent Overstreet <kent.overstreet@linux.dev>,
Anna-Maria Behnsen <anna-maria@linutronix.de>,
Frederic Weisbecker <frederic@kernel.org>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Christian Brauner <brauner@kernel.org>, Jan Kara <jack@suse.cz>,
Uladzislau Rezki <urezki@gmail.com>,
Matthew Wilcox <willy@infradead.org>,
Kuan-Ying Lee <kuan-ying.lee@canonical.com>,
Ilya Leoshkevich <iii@linux.ibm.com>,
Etienne Buira <etienne.buira@free.fr>,
Antonio Quartulli <antonio@mandelbit.com>,
Illia Ostapyshyn <illia@yshyn.com>,
"open list:COMMON CLK FRAMEWORK" <linux-clk@vger.kernel.org>,
"open list:PER-CPU MEMORY ALLOCATOR" <linux-mm@kvack.org>,
"open list:GENERIC PM DOMAINS" <linux-pm@vger.kernel.org>,
"open list:KASAN" <kasan-dev@googlegroups.com>,
"open list:MAPLE TREE" <maple-tree@lists.infradead.org>,
"open list:MODULE SUPPORT" <linux-modules@vger.kernel.org>,
"open list:PROC FILESYSTEM" <linux-fsdevel@vger.kernel.org>
Subject: Re: [PATCH 00/16] MAINTAINERS: Include GDB scripts under their relevant subsystems
Date: Thu, 26 Jun 2025 09:39:36 -0700 [thread overview]
Message-ID: <c66deb8f-774e-4981-accf-4f507943e08c@broadcom.com> (raw)
In-Reply-To: <fynmrmsglw4liexcb37ykutf724lh7zbibilcjpysbmvgtkmes@mtjrfkve4av7>
On 6/26/25 09:17, Liam R. Howlett wrote:
> * Florian Fainelli <florian.fainelli@broadcom.com> [250625 19:13]:
>> Linux has a number of very useful GDB scripts under scripts/gdb/linux/*
>> that provide OS awareness for debuggers and allows for debugging of a
>> variety of data structures (lists, timers, radix tree, mapletree, etc.)
>> as well as subsystems (clocks, devices, classes, busses, etc.).
>>
>> These scripts are typically maintained in isolation from the subsystem
>> that they parse the data structures and symbols of, which can lead to
>> people playing catch up with fixing bugs or updating the script to work
>> with updates made to the internal APIs/objects etc. Here are some
>> recents examples:
>>
>> https://lore.kernel.org/all/20250601055027.3661480-1-tony.ambardar@gmail.com/
>> https://lore.kernel.org/all/20250619225105.320729-1-florian.fainelli@broadcom.com/
>> https://lore.kernel.org/all/20250625021020.1056930-1-florian.fainelli@broadcom.com/
>>
>> This patch series is intentionally split such that each subsystem
>> maintainer can decide whether to accept the extra
>> review/maintenance/guidance that can be offered when GDB scripts are
>> being updated or added.
>
> I don't see why you think it was okay to propose this in the way you
> have gone about it. Looking at the mailing list, you've been around for
> a while.
This should probably have been posted as RFC rather than PATCH, but as I
indicate in the cover letter this is broken down to allow maintainers
like yourself to accept/reject
>
> The file you are telling me about seems to be extremely new and I needed
> to pull akpm/mm-new to discover where it came from.. because you never
> Cc'ed me on the file you are asking me to own.
Yes, that file is very new indeed, and my bad for not copying you on it.
I was not planning on burning an entire day worth of work to transition
the GDB scripts dumping the interrupt tree away from a radix tree to a
maple tree. All of which happens with the author of that conversion
having absolutely no idea that broke anything in the tree because very
few people know about the Python GDB scripts that Linux has. It is not
pleasant to be playing catch when it would have take maybe an extra
couple hours for someone intimately familiar with the maple tree to come
up with a suitable implementation replacement for mtree_load().
So having done it felt like there is a maintenance void that needs to be
filled, hence this patch set.
>
> I'm actually apposed to the filename you used for the script you want me
> to own.
Is there a different filename that you would prefer?
>
> I consider myself a low-volume email maintainer and I get enough useless
> emails about apparent trivial fixes that end up causing significant
> damage if they are not dealt with. So I take care not to sign up for
> more time erosion from meaningful forward progress on tasks I hope to
> have high impact. I suspect you know that, but I don't know you so I
> don't want to assume.
That seems entirely sane and thanks for being explicit about it.
>
> Is there anything else you might want to share to entice me to maintain
> this file? Perhaps there's a documentation pointer that shows how
> useful it is and why I should use it?
It can be as simple as spawning a QEMU instance:
qemu-system-x86_64 \
-s \
-cpu "max" \
-smp 4 \
-kernel ~/dev/linux/arch/x86/boot/bzImage \
-device pci-bridge,id=pci_bridge1,bus=pci.0,chassis_nr=1 \
-drive
file=debian.img,if=none,id=drive-virtio-disk0,format=qcow2 -device
virtio-blk-pci,scsi=off,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1
\
-nographic \
-append "root=/dev/vda1 console=ttyS0,115200 mitigations=off" \
-net nic,model=e1000 -net tap,ifname=tap0
and in another terminal running GDB with:
gdb vmlinux -ex "target remote localhost:1234" -ex "lx-interruptlist"
to obtain a dump of /proc/interrupts which is effectively a replacement
for iterating over every interrupt descriptor in the system.
>
> Right now, I have no idea what that file does or how to even check if
> that file works today, so I cannot sign on to maintain it.
>
> If you want to depend on APIs, this should probably be generated in a
> way that enables updates. And if that's the case, then why even have a
> file at all and just generate it when needed? Or, at least, half
> generated and finished by hand?
As it stands today that is not happening, there is zero coordination and
people who care about GDB scripts just play catch up. But you raise a
good point, if we are to do that, then we should be able to target
C/Rust/Python/whatever, that seems like a bigger undertaking and I am
not clear whether the kernel community as a whole is looking for
transitioning over to something like this.
>
> Maybe this is the case but scripts/gdb doesn't have any documentation in
> there, there's no Documentation/scripts or Documentation/gdb either.
>
> Can you please include more details on the uses of these files? Failing
> that, perhaps you could point to any documentation?
See the two commands above, those should give you a good environment to
play with the various GDB scripts which are all prefix with "lx-".
Thanks!
--
Florian
next prev parent reply other threads:[~2025-06-26 16:39 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-25 23:10 [PATCH 00/16] MAINTAINERS: Include GDB scripts under their relevant subsystems Florian Fainelli
2025-06-25 23:10 ` [PATCH 01/16] MAINTAINERS: Include clk.py under COMMON CLK FRAMEWORK entry Florian Fainelli
2025-07-24 21:24 ` Stephen Boyd
2025-06-25 23:10 ` [PATCH 02/16] MAINTAINERS: Include device.py under DRIVER CORE entry Florian Fainelli
2025-06-25 23:10 ` [PATCH 03/16] MAINTAINERS: Include genpd.py under GENERIC PM DOMAINS entry Florian Fainelli
2025-06-25 23:10 ` [PATCH 04/16] MAINTAINERS: Include radixtree.py under GENERIC RADIX TREE entry Florian Fainelli
2025-06-25 23:10 ` [PATCH 05/16] MAINTAINERS: Include interrupts.py under IRQ SUBSYSTEM entry Florian Fainelli
2025-06-25 23:10 ` [PATCH 06/16] MAINTAINERS: Include kasan.py under KASAN entry Florian Fainelli
2025-06-25 23:10 ` [PATCH 07/16] MAINTAINERS: Include mapletree.py under MAPLE TREE entry Florian Fainelli
2025-06-25 23:10 ` [PATCH 08/16] MAINTAINERS: Include GDB scripts under MEMORY MANAGEMENT entry Florian Fainelli
2025-06-27 17:10 ` David Hildenbrand
2025-07-24 21:27 ` Florian Fainelli
2025-06-25 23:10 ` [PATCH 09/16] MAINTAINERS: Include modules.py under MODULE SUPPORT entry Florian Fainelli
2025-06-25 23:10 ` [PATCH 10/16] MAINTAINERS: Include cpus.py under PER-CPU MEMORY ALLOCATOR entry Florian Fainelli
2025-06-25 23:10 ` [PATCH 11/16] MAINTAINERS: Include timerlist.py under POSIX CLOCKS and TIMERS entry Florian Fainelli
2025-06-25 23:10 ` [PATCH 12/16] MAINTAINERS: Include dmesg.py under PRINTK entry Florian Fainelli
2025-06-26 8:43 ` John Ogness
2025-07-24 21:27 ` Florian Fainelli
2025-06-25 23:10 ` [PATCH 13/16] MAINTAINERS: Include proc.py under PROC FILESYSTEM entry Florian Fainelli
2025-06-25 23:10 ` [PATCH 14/16] MAINTAINERS: Include vmalloc.py under VMALLOC entry Florian Fainelli
2025-06-25 23:10 ` [PATCH 15/16] MAINTAINERS: Include xarray.py under XARRAY entry Florian Fainelli
2025-06-25 23:10 ` [PATCH 16/16] MAINTAINERS: Include vfs.py under FILESYSTEMS entry Florian Fainelli
2025-06-26 16:17 ` [PATCH 00/16] MAINTAINERS: Include GDB scripts under their relevant subsystems Liam R. Howlett
2025-06-26 16:39 ` Florian Fainelli [this message]
2025-06-27 7:55 ` Jan Kara
2025-06-27 16:09 ` Florian Fainelli
2025-06-26 16:48 ` Jan Kiszka
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=c66deb8f-774e-4981-accf-4f507943e08c@broadcom.com \
--to=florian.fainelli@broadcom.com \
--cc=Liam.Howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=andreyknvl@gmail.com \
--cc=anna-maria@linutronix.de \
--cc=antonio@mandelbit.com \
--cc=brauner@kernel.org \
--cc=cl@gentwo.org \
--cc=da.gomez@samsung.com \
--cc=dakr@kernel.org \
--cc=dennis@kernel.org \
--cc=dvyukov@google.com \
--cc=etienne.buira@free.fr \
--cc=frederic@kernel.org \
--cc=glider@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=iii@linux.ibm.com \
--cc=illia@yshyn.com \
--cc=jack@suse.cz \
--cc=jan.kiszka@siemens.com \
--cc=john.ogness@linutronix.de \
--cc=kasan-dev@googlegroups.com \
--cc=kbingham@kernel.org \
--cc=kent.overstreet@linux.dev \
--cc=kuan-ying.lee@canonical.com \
--cc=linux-clk@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-modules@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=maple-tree@lists.infradead.org \
--cc=mcgrof@kernel.org \
--cc=mturquette@baylibre.com \
--cc=petr.pavlu@suse.com \
--cc=pmladek@suse.com \
--cc=rafael@kernel.org \
--cc=rostedt@goodmis.org \
--cc=ryabinin.a.a@gmail.com \
--cc=samitolvanen@google.com \
--cc=sboyd@kernel.org \
--cc=senozhatsky@chromium.org \
--cc=tglx@linutronix.de \
--cc=tj@kernel.org \
--cc=ulf.hansson@linaro.org \
--cc=urezki@gmail.com \
--cc=vincenzo.frascino@arm.com \
--cc=viro@zeniv.linux.org.uk \
--cc=willy@infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).