[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080314193534.GB24646@elf.ucw.cz>
Date: Fri, 14 Mar 2008 20:35:34 +0100
From: Pavel Machek <pavel@....cz>
To: Lennart Sorensen <lsorense@...lub.uwaterloo.ca>
Cc: David Newall <davidn@...idnewall.com>,
Jiri Kosina <jkosina@...e.cz>, "Fred ." <eldmannen@...il.com>,
linux-kernel@...r.kernel.org
Subject: Re: Keys get stuck
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists