Re: Keys get stuck

Pavel Machek
2008-03-14T19:35:24Z

On Fri 2008-03-14 09:30:19, Lennart Sorensen wrote:
> On Thu, Mar 13, 2008 at 06:14:26PM +0100, Pavel Machek wrote:
> > hw is proper place to implement autorepeat, and along with some
> > buffering, it has chance to work. Kernel is not real-time, and X are
> > definitely not real-time, while autorepeat is real-time operation.
> >
> > It actually mostly works in ps/2 case. Buffer in hardware means that
> > pretty big interrupt delays can be tolerated without problems.
>
> So does the keyboard events generate something like this then:
>
> KEY_x_DOWN
> KEY_x_REPEAT
> KEY_x_UP

Yes, kernel<->user interface is something like that. Try evtest to see
it.

> If so then X certainly could get all the keyboard information I imagine
> it needs from the kernel, but otherwise I am not sure how it could.
> A
> repeated series of key down events are not enough since some keys you
> don't want repeated you just want to know when the key is held down and
> when it isn't.

PS/2 keyboard sends both ups and downs. "down down down up" means
autorepeat. It is not actually ambiguous.

BTW this is what I use to generate huge latencies and cause X
problems:

void
main(void)
{
int i;
iopl(3);
while (1) {
asm volatile("cli");
// for (i=0; i<20000000; i++)
for (i=0; i<1000000000; i++)
asm volatile("");
asm volatile("sti");
sleep(1);
}
}

...run it once per core.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html