Hi, On Tue, Nov 25, 2025 at 5:06?AM Thomas Zimmermann <tzimmermann at suse.de> wrote:> > Remove the rest of the kbd support from DRM. Driver support has been > broken for years without anyone complaining. > > Kdb cannot use regular DRM mode setting, so DRM drivers have to > implement an additional hook to make it work (in theory). As outlined > by Sima in commit 9c79e0b1d096 ("drm/fb-helper: Give up on kgdb for > atomic drivers") from 2017, kdb is not compatible with DRM atomic mode > setting. Non-atomic mode setting meanwhile has become rare. > > Only 3 DRM drivers implement the hooks for kdb support. Amdgpu and > nouveau use non-atomic mode setting on older devices. But both drivers > have switched to generic fbdev emulation, which isn't compatible with > kdb. Radeon still runs kdb, but it doesn't work in practice. See the > commits in this series for details > > Therefore remove the remaining support for kdb from the DRM drivers > and from DRM fbdev emulation. Also remove the hooks from fbdev, as > there are no fbdev drivers with kdb support. > > If we ever want to address kdb support within DRM drivers, a place to > start would be the scanout buffers used by DRM's panic screen. These > use the current display mode. They can be written and flushed without > mode setting involved. > > Note: kdb over serial lines is not affected by this series and continues > to work as before. > > Thomas Zimmermann (5): > drm/amdgpu: Do not implement mode_set_base_atomic callback > drm/nouveau: Do not implement mode_set_base_atomic callback > drm/radeon: Do not implement mode_set_base_atomic callback > drm/fbdev-helper: Remove drm_fb_helper_debug_enter/_leave() > fbcon: Remove fb_debug_enter/_leave from struct fb_opsPersonally, I've never worked with kdb over anything other than serial, so this won't bother any of my normal workflows. That being said, at least as of a year ago someone on the lists was talking about using kdb with a keyboard and (presumably) a display. You can see a thread here: http://lore.kernel.org/r/20241031192350.GA26688 at lichtman.org Daniel may also have comments here? -Doug
Hi Am 25.11.25 um 16:26 schrieb Doug Anderson:> Hi, > > On Tue, Nov 25, 2025 at 5:06?AM Thomas Zimmermann <tzimmermann at suse.de> wrote: >> Remove the rest of the kbd support from DRM. Driver support has been >> broken for years without anyone complaining. >> >> Kdb cannot use regular DRM mode setting, so DRM drivers have to >> implement an additional hook to make it work (in theory). As outlined >> by Sima in commit 9c79e0b1d096 ("drm/fb-helper: Give up on kgdb for >> atomic drivers") from 2017, kdb is not compatible with DRM atomic mode >> setting. Non-atomic mode setting meanwhile has become rare. >> >> Only 3 DRM drivers implement the hooks for kdb support. Amdgpu and >> nouveau use non-atomic mode setting on older devices. But both drivers >> have switched to generic fbdev emulation, which isn't compatible with >> kdb. Radeon still runs kdb, but it doesn't work in practice. See the >> commits in this series for details >> >> Therefore remove the remaining support for kdb from the DRM drivers >> and from DRM fbdev emulation. Also remove the hooks from fbdev, as >> there are no fbdev drivers with kdb support. >> >> If we ever want to address kdb support within DRM drivers, a place to >> start would be the scanout buffers used by DRM's panic screen. These >> use the current display mode. They can be written and flushed without >> mode setting involved. >> >> Note: kdb over serial lines is not affected by this series and continues >> to work as before. >> >> Thomas Zimmermann (5): >> drm/amdgpu: Do not implement mode_set_base_atomic callback >> drm/nouveau: Do not implement mode_set_base_atomic callback >> drm/radeon: Do not implement mode_set_base_atomic callback >> drm/fbdev-helper: Remove drm_fb_helper_debug_enter/_leave() >> fbcon: Remove fb_debug_enter/_leave from struct fb_ops > Personally, I've never worked with kdb over anything other than > serial, so this won't bother any of my normal workflows. That being > said, at least as of a year ago someone on the lists was talking about > using kdb with a keyboard and (presumably) a display. You can see a > thread here: > > http://lore.kernel.org/r/20241031192350.GA26688 at lichtman.orgI wonder which driver or kernel that person was using. None of the current drivers would be working. Best regards Thomas> > Daniel may also have comments here? > > -Doug >-- -- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Frankenstr. 146, 90461 N?rnberg, Germany, www.suse.com GF: Jochen Jaser, Andrew McDonald, Werner Knoblich, (HRB 36809, AG N?rnberg)
On Tue, Nov 25, 2025 at 07:26:33AM -0800, Doug Anderson wrote:> On Tue, Nov 25, 2025 at 5:06?AM Thomas Zimmermann <tzimmermann at suse.de> wrote: > > <snip> > > Therefore remove the remaining support for kdb from the DRM drivers > > and from DRM fbdev emulation. Also remove the hooks from fbdev, as > > there are no fbdev drivers with kdb support. > > > > If we ever want to address kdb support within DRM drivers, a place to > > start would be the scanout buffers used by DRM's panic screen. These > > use the current display mode. They can be written and flushed without > > mode setting involved. > > > > Note: kdb over serial lines is not affected by this series and continues > > to work as before. > > > > Thomas Zimmermann (5): > > drm/amdgpu: Do not implement mode_set_base_atomic callback > > drm/nouveau: Do not implement mode_set_base_atomic callback > > drm/radeon: Do not implement mode_set_base_atomic callback > > drm/fbdev-helper: Remove drm_fb_helper_debug_enter/_leave() > > fbcon: Remove fb_debug_enter/_leave from struct fb_ops > > Personally, I've never worked with kdb over anything other than > serial, so this won't bother any of my normal workflows. That being > said, at least as of a year ago someone on the lists was talking about > using kdb with a keyboard and (presumably) a display. You can see a > thread here: > > http://lore.kernel.org/r/20241031192350.GA26688 at lichtman.org > > Daniel may also have comments here?TL;DR - I'm pretty relaxed about these changes... but I'd like to know how to test the changes. Like Doug I only really use kdb via serial but, since I'm maintain the thing I do occasionally test kdb works on the qemu console. I don't do it very often though because it's a manual test! I'd assume that will still work since it won't involve any of the drivers above. I'm afraid I can't double check that since patch 4 doesn't apply cleanly in v6.18-rc7 (nor to linux-next... and neither does the base-commit appear in linux-next). Anyhow, the only testing I do for kgdboc=kms,kdb is to boot an x86-64 defconfig+kgdb+kdb kernel in qemu with something like the following command line, which FWIW does still work: qemu-system-x86_64 -enable-kvm -m 1G -smp 2 \ -kernel arch/x86/boot/bzImage \ -monitor none -chardev stdio,id=mon,mux=on,signal=off \ -serial chardev:mon \ -initrd rootfs.cpio.gz \ -append " console=tty0 console=ttyS0,115200 kgdboc=kms,kbd,ttyS0 kgdbwait" The reason I'm fairly relaxed about changes here is that the kbd driver only works on PCs with legacy keyboard interfaces. If the kernel is talking to the keyboard using USB or I2C (which almost all PCs do) then kdb cannot be used anyway. So... it would be a "cool project"[1] to get kdb running on a special interrupt-free I2C mode and with the DRM panic code so you can do live analysis if your laptop/chomebook crashes. However it is simply not "real enough" to justify slowing down other developers. Daniel. [1] ... but not quite cool enough that I see myself spending time on it though!