Re: [PATCH v9 0/6] drm/log: Introduce a new boot logger to draw the kmsg on the screen

From: Geert Uytterhoeven
Date: Tue Dec 17 2024 - 09:57:20 EST


Hi Jocelyn.

On Tue, Dec 17, 2024 at 3:46 PM Jocelyn Falempe <jfalempe@xxxxxxxxxx> wrote:
> On 17/12/2024 15:19, Geert Uytterhoeven wrote:
> > On Wed, Dec 4, 2024 at 6:41 PM Jocelyn Falempe <jfalempe@xxxxxxxxxx> wrote:
> >> drm_log is a simple logger that uses the drm_client API to print the kmsg boot log on the screen.
> >> This is not a full replacement to fbcon, as it will only print the kmsg.
> >> It will never handle user input, or a terminal because this is better done in userspace.
> >>
> >> If you're curious on how it looks like, I've put a small demo here:
> >> https://people.redhat.com/jfalempe/drm_log/drm_log_draft_boot_v2.mp4
> >>
> >> Design decisions:
> >> * It uses the drm_client API, so it should work on all drm drivers from the start.
> >> * It doesn't scroll the message, that way it doesn't need to redraw the whole screen for each new message.
> >> It also means it doesn't have to keep drawn messages in memory, to redraw them when scrolling.
> >> * It uses the new non-blocking console API, so it should work well with PREEMPT_RT
> >
> > I gave this a try on Koelsch (R-Car M2-W), using rcar-du.
> > Unfortunately I don't see any kernel messages, and my monitor complains
> > about no signal. Does this require special support from the driver?
>
> It doesn't require a special support from the driver. But as it is the
> first drm client other than fbdev emulation, I'm not surprised it's
> broken on some driver.
> I know it works on virtio-gpu, nouveau, amdgpu, and even on a OnePlus 6
> (Qualcomm SDM845/freedreno), without requiring driver changes.
>
> Do you have a serial console on this device, to check if there is
> something in kmsg?

Nothing interesting to see. Compared to the fbdev client:

rcar-du feb00000.display: [drm] Registered 2 planes with drm panic
[drm] Initialized rcar-du 1.0.0 for feb00000.display on minor 0
rcar-du feb00000.display: [drm] Device feb00000.display probed
-Console: switching to colour frame buffer device 240x67
-rcar-du feb00000.display: [drm] fb0: rcar-dudrmfb frame buffer device

I did verify (by adding my own debug prints) that the code does
get to the success case in drm_log_register().
Thanks!

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds