[regression] 2.6.30 leaking keys on console switch

View: New views
6 Messages — Rating Filter:   Alert me  
< Prev | 1 - 2 | Next >

Re: [regression] 2.6.30 leaking keys on console switch

by Dmitry Torokhov-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wed, Oct 14, 2009 at 12:39:28AM -0700, Dmitry Torokhov wrote:

> On Wed, Oct 14, 2009 at 09:19:50AM +0200, Andi Kleen wrote:
> > > Btw, what kind of keyboard is this? I was playing today but I could not
> > > get my USB keyboards to report release of more than 1 key per report....
> >
> > The log was with a PS/2<->USB adapter, with a PS/2 keyboard connected
> > to a USB port through it.
> >
>
> Hmm, I don't think I have one of those... It is curious beast - we have
> software autorepeat for HID but PS/2 keyboards do autorepeat
> themselves... What will combination do?
>

Could you please try this incredibly stupid patch?

--
Dmitry


Input: autorepeat debug patch

From: Dmitry Torokhov <dmitry.torokhov@...>

Signed-off-by: Dmitry Torokhov <dtor@...>
---

 drivers/input/input.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)


diff --git a/drivers/input/input.c b/drivers/input/input.c
index 6ba676b..77fa3da 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -137,7 +137,7 @@ static void input_repeat_key(unsigned long data)
  if (test_bit(dev->repeat_key, dev->key) &&
     is_event_supported(dev->repeat_key, dev->keybit, KEY_MAX)) {
 
- input_pass_event(dev, EV_KEY, dev->repeat_key, 2);
+ input_pass_event(dev, EV_KEY, dev->repeat_key, 200);
 
  if (dev->sync) {
  /*
@@ -208,7 +208,15 @@ static void input_handle_event(struct input_dev *dev,
  if (is_event_supported(code, dev->keybit, KEY_MAX) &&
     !!test_bit(code, dev->key) != value) {
 
- if (value != 2) {
+ if (value == 2 || value == 200) {
+ /* autorepeat */
+ if (!test_bit(code, dev->key)) {
+ printk(KERN_ERR "%s autorepeat for released key %d\n",
+ value == 200 ? "software" : "hardware", code);
+ break;
+ }
+ value = 2;
+ } else {
  __change_bit(code, dev->key);
  if (value)
  input_start_autorepeat(dev, code);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Re: [regression] 2.6.30 leaking keys on console switch

by Dmitry Torokhov-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Thu, Jul 16, 2009 at 11:24:06AM +0200, Andi Kleen wrote:

> > Andi, are you absolutely sure that this appeared between .29 and .30 for
> > you?
>
> I only noticed it after the .30 update at least.
>
> > And if so, is there any chance you could try bisecting it?
>
> Ok.
>
> >
> > (*) have been on virtual desktop where firefox was running, switched to
> > console using Ctrl-Alt-F1, and switched back to X using F7. Firefox then
> > popped up some dialog about configuring some feature that is triggered by
> > pressing F7/AltF7, or whatever. Is that what you are seeing?
>
> Yes, I typically see it with the help screen. It also happens with
> other applications, not just firefox.
>

I don't really see the issue here, except for maybe X being stupid - it
seems that it processes release events as press+release in cases when it
did not see the press event.

Start up xev, switch to text console and then back to X (don't release
the CTRL+ALT+Fx combo). Let X switch fully and then release the combo.
Observe the 2 events reported by xev for Fx key. You may try running
evtest in other window and observe that there are no down events at the
time of 2 xev events, only autorepeats and release event (and
autorepeats are ignored by X who does it's own software autorepeat).

--
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Re: [regression] 2.6.30 leaking keys on console switch

by H. Peter Anvin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 10/14/2009 12:39 AM, Dmitry Torokhov wrote:

> On Wed, Oct 14, 2009 at 09:19:50AM +0200, Andi Kleen wrote:
>>> Btw, what kind of keyboard is this? I was playing today but I could not
>>> get my USB keyboards to report release of more than 1 key per report....
>>
>> The log was with a PS/2<->USB adapter, with a PS/2 keyboard connected
>> to a USB port through it.
>>
>
> Hmm, I don't think I have one of those... It is curious beast - we have
> software autorepeat for HID but PS/2 keyboards do autorepeat
> themselves... What will combination do?
>

Autorepeat on PS/2 keyboards is a mode setting.  I would guess the HID
adapter would turn it off if it is halfway sane.

        -hpa

--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Re: [regression] 2.6.30 leaking keys on console switch

by Pavel Machek :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wed 2009-10-14 00:39:28, Dmitry Torokhov wrote:

> On Wed, Oct 14, 2009 at 09:19:50AM +0200, Andi Kleen wrote:
> > > Btw, what kind of keyboard is this? I was playing today but I could not
> > > get my USB keyboards to report release of more than 1 key per report....
> >
> > The log was with a PS/2<->USB adapter, with a PS/2 keyboard connected
> > to a USB port through it.
> >
>
> Hmm, I don't think I have one of those... It is curious beast - we have
> software autorepeat for HID but PS/2 keyboards do autorepeat
> themselves... What will combination do?

I always wondered how that's supposed to work... on loaded system. As
linux is not realtime system, it can't, afaict.


--
(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@...
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Re: [regression] 2.6.30 leaking keys on console switch

by Dmitry Torokhov-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Mon, Oct 19, 2009 at 11:38:36PM +0200, Pavel Machek wrote:

> On Wed 2009-10-14 00:39:28, Dmitry Torokhov wrote:
> > On Wed, Oct 14, 2009 at 09:19:50AM +0200, Andi Kleen wrote:
> > > > Btw, what kind of keyboard is this? I was playing today but I could not
> > > > get my USB keyboards to report release of more than 1 key per report....
> > >
> > > The log was with a PS/2<->USB adapter, with a PS/2 keyboard connected
> > > to a USB port through it.
> > >
> >
> > Hmm, I don't think I have one of those... It is curious beast - we have
> > software autorepeat for HID but PS/2 keyboards do autorepeat
> > themselves... What will combination do?
>
> I always wondered how that's supposed to work... on loaded system. As
> linux is not realtime system, it can't, afaict.
>

What exactly requires realtime? Surely not autorepeat...

--
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Re: [regression] 2.6.30 leaking keys on console switch

by Pavel Machek :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wed 2009-10-21 01:15:30, Dmitry Torokhov wrote:

> On Mon, Oct 19, 2009 at 11:38:36PM +0200, Pavel Machek wrote:
> > On Wed 2009-10-14 00:39:28, Dmitry Torokhov wrote:
> > > On Wed, Oct 14, 2009 at 09:19:50AM +0200, Andi Kleen wrote:
> > > > > Btw, what kind of keyboard is this? I was playing today but I could not
> > > > > get my USB keyboards to report release of more than 1 key per report....
> > > >
> > > > The log was with a PS/2<->USB adapter, with a PS/2 keyboard connected
> > > > to a USB port through it.
> > > >
> > >
> > > Hmm, I don't think I have one of those... It is curious beast - we have
> > > software autorepeat for HID but PS/2 keyboards do autorepeat
> > > themselves... What will combination do?
> >
> > I always wondered how that's supposed to work... on loaded system. As
> > linux is not realtime system, it can't, afaict.
>
> What exactly requires realtime? Surely not autorepeat...

Well, ps/2 does not provide timestamps, neither does USB AFAICT. So if
you hit say interrupt latency, you'll repeat keys one too many times
or something.

[But if X does autorepeat in software, that's even worse. That means
that scheduling latency can cause autorepeat glitches, and that's
probably what I'm seeing here. And I haaaaaaaaaaaaaaate when my
tyyyyyyping goes like this just because I have background load.]

                                                                        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@...
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
< Prev | 1 - 2 | Next >