From: Vojtech Pavlik <vojtech@suse.cz>
To: Dmitry Torokhov <dtor_core@ameritech.net>
Cc: linux-kernel@vger.kernel.org, Andrew Morton <akpm@osdl.org>,
eric.valette@free.fr
Subject: Re: 2.6.6-mm2 : Hitting Num Lock kills keyboard
Date: Fri, 14 May 2004 11:10:13 +0200 [thread overview]
Message-ID: <20040514091013.GA30526@ucw.cz> (raw)
In-Reply-To: <200405140032.52636.dtor_core@ameritech.net>
On Fri, May 14, 2004 at 12:32:52AM -0500, Dmitry Torokhov wrote:
> > > 3) They light up a led on the keyboard,
> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >
> > atkbd tries to switch leds but one tasklet can not interrupt another so
> > it deadlocks...
> >
> > You need to revert just the patch below, not entire bk-input
>
> Guys,
>
> I need some guidance. The issue can be resolved in several ways but I am not
> sure which one is better:
>
> - just revert the patch and continue doing everything in IRQ context;
> - move IRQ/tasklet split higher, into atkbd and psmouse-base respectively.
> Every device would have it's own ring buffer, tasklet will be fired off
> for incoming data only (i.e. ACKs and command response will be processed
> right there in IRQ context);
> - move drivers/char/keyboard.c from tasklet to schedule_work. Need also
> take care of others who are using keyboard_tasklet (qtronix, scan_keyb,
> ec3104_keyb);
> - have atkbd use schedule_work to do LED and repeat rate setting.
>
> What would you suggest?
Now that I'm considering it all, I think serio->interrupt function
should indeed be called within an interrupt context. The name should be
a big enough warning not to do too much processing (and definitely no
communication with the device other than doing something with the
received byte) there.
The input core and the handlers were intended to be lightweight enough
so that they could be executed from an interrupt handler as well.
Are we really spending too much time in the interrupt there? It's well
possible, but it'd be good if it could be evaluated. It should be rather
easy to add a rdtsc before an after the invocation of serio->interrupt
from i8042.c.
That should give us the answer about what to do - which parts of the
input processing can stay in the interrupt (because that is simple), and
what needs to be postponed to a tasklet or schedule_work().
Each of your options seems reasonable. I think moving keyboard.c to
schedule_work is a definitely good idea, but we may want to do more than
that.
--
Vojtech Pavlik
SuSE Labs, SuSE CR
next prev parent reply other threads:[~2004-05-14 9:09 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-05-13 19:15 2.6.6-mm2 : suddent lost of keyboard. Everything else OK Eric Valette
2004-05-13 19:42 ` 2.6.6-mm2 : Hitting Num Lock kills keyboard Eric Valette
2004-05-13 19:57 ` Andrew Morton
2004-05-13 20:16 ` Mathieu Segaud
2004-05-13 20:48 ` Luiz Fernando N. Capitulino
[not found] ` <40A3E39C.2090603@sun.com>
2004-05-13 21:13 ` Luiz Fernando N. Capitulino
2004-05-13 21:41 ` Eric Valette
2004-05-13 22:45 ` Dmitry Torokhov
2004-05-14 5:32 ` Dmitry Torokhov
2004-05-14 9:10 ` Vojtech Pavlik [this message]
2004-05-16 18:07 ` USB optical mouse is also jumpy Eric Valette
2004-05-13 19:52 ` 2.6.6-mm2 : suddent lost of keyboard. Everything else OK Ramón Rey Vicente
2004-05-13 20:25 ` Luiz Fernando N. Capitulino
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20040514091013.GA30526@ucw.cz \
--to=vojtech@suse.cz \
--cc=akpm@osdl.org \
--cc=dtor_core@ameritech.net \
--cc=eric.valette@free.fr \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox