temporary freezes when pressing capslock / numlock
Rick C. Petty
rick-freebsd at kiwi-computer.com
Tue May 27 22:42:58 UTC 2008
On Tue, May 27, 2008 at 02:28:26PM -0700, Maksim Yevmenkin wrote:
> well, i just took a brief look at atkbd(4). specifically one function
> - wait_while_controller_busy(). this function polls status every
> KBDC_DELAYTIME (20) usec with retry count of 5000. so, just this
> function alone can give up to 100 msec delay. keep in mind that
> wait_while_controller_busy() is apparently called every time driver
> need to talk to the hardware. i can see how we could delay kernel for
> 400 msec or even more.
I'm not sure why we retry 5000 times. 100ms seems like a long time to
block the entire kernel. Is there any reason we can't spawn a kernel
thread to deal with the waits? I recommend that we also reduce the
timeouts to at most twice what the spec states.
How come this doesn't happen when other keys are pressed? Just when the
console is flipped. Perhaps because it tries to set the LEDs first?
-- Rick C. Petty
More information about the freebsd-hackers