Atomicity in KMS panic notifier
One Thousand Gnomes
gnomes at lxorguk.ukuu.org.uk
Wed May 7 09:15:23 PDT 2014
> Imo trying to fix the current mess and making ->set_config work in
> atomic contexts is pointless. drm_can_sleep is trying to make that
> possible in some ways, and it's horrible since using it means
> busy-loops in atomic contexts outside of panic handlers won't get
> reported any more. Also the interactions with the console_lock (which
> due to some bonghits is protecting almost everything in fbcon/fbdev
> nowadays) would also be almost completely removed.
Unfortunately years ago some Finnish student didn't design his console
driver to be lock friendly and then fbcon/fbdev inherited it.
If you are writing a new console driver please don't use fbcon, use a
text console that writes to a simple n x m text framebuffer with dirty
bits and wakes a waitqueue or work queue of some sort when it changes.
Then just redraw updated bits every vblank frame if its actually changed.
Not only will the lock problems go away it'll blow away the existing
scrolling text performance on any DRM driver except gma500.
More information about the dri-devel