Nouveau DRM_Panic Being Worked On For Linux "Blue Screen Of Death" Type Situations
Merged for Linux 6.10 is DRM_Panic as a kernel panic screen for situations akin to Windows' well known "Blue Screen of Death". This is a kernel-based panic screen as an alternative to systemd's recent systemd-bsod. Patches have been posted by Red Hat for allowing the open-source NVIDIA "Nouveau" Direct Rendering Manager driver to work with DRM Panic.
The DRM panic code is intended to be able to display a message when a kernel panic occurs. With the Linux 6.10 kernel, the DRM panic code is only wired up for supporting the SimpleDRM, MGA200, IMX, and AST DRM display drivers. Patches posted this week allow for the DRM panic handler integration with the Nouveau driver.
Jocelyn Falempe of Red Hat posted the patches wiring up DRM_Panic for this open-source NVIDIA kernel driver. Jocelyn explained:
Those interested can find the initial DRM panic code for Nouveau on the dri-devel list. It's too late for Linux v6.10 but we'll see if it's ready come v6.11 or another near-term kernel as well as what other Direct Rendering Manager drivers see DRM panic handler integration.
The DRM panic code is intended to be able to display a message when a kernel panic occurs. With the Linux 6.10 kernel, the DRM panic code is only wired up for supporting the SimpleDRM, MGA200, IMX, and AST DRM display drivers. Patches posted this week allow for the DRM panic handler integration with the Nouveau driver.
Jocelyn Falempe of Red Hat posted the patches wiring up DRM_Panic for this open-source NVIDIA kernel driver. Jocelyn explained:
This series adds basic drm_panic support for nouveau. Patches 1-4 Add missing bits in drm_panic (ABGR2101010, set_pixel() for tiling, ...) Patch 5 registers nouveau to drm_panic, and handle tiling. I've tested on a GTX1650, while running Gnome/Wayland desktop.
I didn't find documentation about nVidia tiling, so it may not work on other GPU than GTX1650.
To test it, you need to build your kernel with CONFIG_DRM_PANIC=y, and run
echo c > /proc/sysrq-trigger
or you can enable CONFIG_DRM_PANIC_DEBUG and run
echo 1 > /sys/kernel/debug/dri/0/drm_panic_plane_0
Those interested can find the initial DRM panic code for Nouveau on the dri-devel list. It's too late for Linux v6.10 but we'll see if it's ready come v6.11 or another near-term kernel as well as what other Direct Rendering Manager drivers see DRM panic handler integration.
6 Comments