git: kernel/syscons - Fix excessive cpu latency during scrolling
Matthew Dillon
dillon at crater.dragonflybsd.org
Fri Jun 19 09:30:02 PDT 2015
commit 7ae6dbf032d21ff5d054ee0841f774c177c59523
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Fri Jun 19 09:21:55 2015 -0700
kernel/syscons - Fix excessive cpu latency during scrolling
* Scrolling a high-resolution (e.g. 4K monitor) kms console with the syscons
spinlock held can prevent the cpu from being able to service interrupts
for very long periods of time, enough to cause clicking and other audio
issues.
* The previous hack tried to fix this by allowing yields inside the render
loop, but this was not stable and did not completely solve the clicking.
* The new solution is to shove large screen updates off to a cothread which
will then run the update lockless, allowing interrupts. Minor frame buffer
corruption can occur during scrolling but will be quickly cleaned up.
This feature is disabled if the system is in the middle of a panic or
shutdown.
Summary of changes:
sys/dev/misc/syscons/sckmsrndr.c | 17 +---
sys/dev/misc/syscons/scmouse.c | 8 +-
sys/dev/misc/syscons/scvgarndr.c | 16 ++--
sys/dev/misc/syscons/syscons.c | 192 +++++++++++++++++++++++----------------
sys/dev/misc/syscons/syscons.h | 14 +--
5 files changed, 137 insertions(+), 110 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/7ae6dbf032d21ff5d054ee0841f774c177c59523
--
DragonFly BSD source repository
More information about the Commits
mailing list