On 03/09/2025 10:19, Maxime Ripard wrote:
On Wed, Sep 03, 2025 at 09:30:23AM +0200, Jocelyn Falempe wrote:
On 02/09/2025 18:58, Maxime Ripard wrote:
On Mon, Sep 01, 2025 at 03:04:26PM +0200, Jocelyn Falempe wrote:
On 27/08/2025 12:45, Thomas Zimmermann wrote:
Hi
Am 21.08.25 um 11:49 schrieb Jocelyn Falempe:
This is a bit hacky, but very handy if you want to customize the
panic screen.
It allows to dump the generated images to the logs, and then a python
script can convert it to .png files. It makes it easy to check how
the panic screen will look on different resolutions, without having
to crash a VM.
To not pollute the logs, it uses a monochrome framebuffer, compress
it with zlib, and base64 encode it.
May I suggest to export the raw image via debugfs? Debugfs can also
export additional information in additional files, such as width/height/
stride/format. This could provide the real/last image on the fly, simply
by reading the files. No workarounds or encodings needed.
I'm looking into that. The difficulty is to get the debugfs content outside
of the test kernel. As I'm using a uml kernel for testing, I will need a
special initrd, and a way to share files with the host.
Yeah, I agree that it's not very practical. If only because the test
context doesn't stick around once it's been executed, so you would
effectively leak an arbritrarily long buffer with no hope of getting
back its memory.
I've made a prototype with debugfs, a small ramdisk with busybox, and using
hostfs to mount the host filesystem in the uml kernel, and it allows to dump
the raw panic buffer easily.
Even if it's a bit more complex to setup, I think this use case is not
really a kunit test, so it's probably better that way.
Let me a few days to clean that up, and I will send a v2 of the kunit tests,
and a new series to add a debugfs interface.
Thanks for your reviews,
We also have to think about how it's going to be shipped and used. If
your debugfs integration has to be disabled everytime we're running
kunit through uml, qemu, and in CI (because we can't retrieve the
result), on a live system (because it would leak memory indefinitely),
how is it useful?
There is already a kconfig for this:
CONFIG_DRM_PANIC_DEBUG
Also I have an implementation that doesn't leak memory. (memory is freed
when the debugfs file is closed).
It's also more flexible, as you can change the parameters, and test any
color format, and check the binary result.
I think the goal of this is not to test for regression, but to help
building a new panic screen.
The diagnostic lines are part of the test result, are in the logs, and
can be distributed. You're having all those problems solved already,
without having any additional work to do.
I feel sending an image through log is not really efficient, and I don't
want to pollute all the CI with that.
I will send the v2 soon.
Best regards,
--
Jocelyn
Maxime