Re: [PATCH v2] printk: Add a short description string to kmsg_dump()

From: Jocelyn Falempe
Date: Wed Jul 03 2024 - 12:40:27 EST




On 03/07/2024 18:27, Kees Cook wrote:
On Wed, Jul 03, 2024 at 10:22:11AM +0200, Petr Mladek wrote:
On Wed 2024-07-03 09:57:26, Jocelyn Falempe wrote:


On 02/07/2024 22:29, Kees Cook wrote:
On Tue, Jul 02, 2024 at 02:26:04PM +0200, Jocelyn Falempe wrote:
kmsg_dump doesn't forward the panic reason string to the kmsg_dumper
callback.
This patch adds a new struct kmsg_dump_detail, that will hold the
reason and description, and pass it to the dump() callback.

Thanks! I like this much better. :)


To avoid updating all kmsg_dump() call, it adds a kmsg_dump_desc()
function and a macro for backward compatibility.

I've written this for drm_panic, but it can be useful for other
kmsg_dumper.
It allows to see the panic reason, like "sysrq triggered crash"
or "VFS: Unable to mount root fs on xxxx" on the drm panic screen.

v2:
* Use a struct kmsg_dump_detail to hold the reason and description
pointer, for more flexibility if we want to add other parameters.
(Kees Cook)
* Fix powerpc/nvram_64 build, as I didn't update the forward
declaration of oops_to_nvram()

The versioning history commonly goes after the "---".

ok, I was not aware of this.

[...]
diff --git a/include/linux/kmsg_dump.h b/include/linux/kmsg_dump.h
index 906521c2329c..65f5a47727bc 100644
--- a/include/linux/kmsg_dump.h
+++ b/include/linux/kmsg_dump.h
@@ -39,6 +39,17 @@ struct kmsg_dump_iter {
u64 next_seq;
};
+/**
+ *struct kmsg_dump_detail - kernel crash detail

Is kern-doc happy with this? I think there is supposed to be a space
between the "*" and the first word:

/**
* struct kmsg...


Good catch, yes there is a space missing.

I just checked with "make htmldocs", and in fact include/linux/kmsg_dump.h
is not indexed for kernel documentation.
And you can't find the definition of struct kmsg_dumper in the online doc.
https://www.kernel.org/doc/html/latest/search.html?q=kmsg_dumper

Otherwise looks good to me!


Thanks.

As this patch touches different subsystems, do you know on which tree it
should land ?

Andrew usually takes patches against kernel/panic.c.

Or you could take it via the DRM tree, especially if you already have the code
using the string.

If it's not taken in Andrew's tree next week, I will see if I can push it to the drm-misc tree. I think there is a very low chance of conflicts.


Also I could take it via the printk tree. The only complication is
that I am going to be away the following two weeks and would come
back in the middle of the merge window. I do not expect much problems
with this change but...

If DRM doesn't want to carry it, I can put it in through the pstore
tree. Let me know! :)


Thanks for the proposition, I will see how it goes, it would be nice to have it in time for the v6.11 merge window.

Best regards,

--

Jocelyn