* Re: [Nouveau] [PATCH] drm/nouveau/kms: Implement KDB debug hooks for nouveau KMS.
[not found] ` <1285164387.3159.10.camel@maxim-laptop>
@ 2010-09-22 17:07 ` Maxim Levitsky
2010-09-24 20:50 ` Maxim Levitsky
0 siblings, 1 reply; 10+ messages in thread
From: Maxim Levitsky @ 2010-09-22 17:07 UTC (permalink / raw)
To: Jason Wessel
Cc: Chris Ball, David Airlie, kgdb-bugreport, Jesse Barnes,
linux-input
On Wed, 2010-09-22 at 16:06 +0200, Maxim Levitsky wrote:
> On Wed, 2010-09-22 at 16:03 +0200, Maxim Levitsky wrote:
> > On Wed, 2010-09-22 at 03:42 +0200, Maxim Levitsky wrote:
> > > On Thu, 2010-09-02 at 13:46 +0300, Maxim Levitsky wrote:
> > > > On Wed, 2010-09-01 at 06:35 -0500, Jason Wessel wrote:
> > > > > On 09/01/2010 04:56 AM, Maxim Levitsky wrote:
> > > > > > On Thu, 2010-08-19 at 13:55 -0400, Chris Ball wrote:
> > > > > >
> > > > > >> Hi,
> > > > > >>
> > > > > >> Here's a patch to add support for KMS debugging to Nouveau, along the
> > > > > >> style of the previous patches for Intel¹ and Radeon². I'm only able
> > > > > >> to test on nv50 here, so a test on nv04 would be much appreciated,
> > > > > >> and I've published instructions on how to test here³. Thanks!
> > > > > >>
> > > > > >> - Chris.
> > > > > >>
> > > > > >
> > > > > > Hi,
> > > > > >
> > > > > > I just tried that patch, but unfortunately nether with nor without it
> > > > > > kdb seems not to work.
> > > > > > It could be id10t error from my side, but I did test the kdb in the past
> > > > > > with few KMS patches, and it seemed to work.
> > > > > >
> > > > > > Now I can't even get its prompt on the console.
> > > > > >
> > > > > > This is what I do:
> > > > > >
> > > > > > echo kbd | sudo tee /sys/module/kgdboc/parameters/kgdboc
> > > > > > (also tried booting with kgdboc=kbd)
> > > > > >
> > > > >
> > > > > Try changing it to kgdboc=kms,kbd or the "echo kms,kbd"
> > > > >
> > > > > When you use only the kbd, the kms feature is not activated.
> > > > This doesn't help.
> > > >
> > > > I am afraid that this bug isn't related to kms, but rather is generic.
> > >
> > > I turns out that it was the NMI watchdog that I had enabled.
> > > Without it kdb works very well, including the kms support.
> > Please disregard this. kdb works with nmi watchdog now as well.
> > Probably something was fixed, maybe unrelated to it.
> >
> > >
> > > It would be better if you were to detect kms instead of adding an
> > > explicit param to kgdboc cmd line.
> > >
> > > Also found out that after a debug session with Alt+SysRQ+g and X
> > > running, these keys aren't released. I had to press on all of them to
> > > make them release.
> > > It makes sense as kgdboc in that case reads directly from keyboard port.
> > And I see that kgdb actually has a code that works that around.
> > I suspect that what happens is that keys are released before X continues
> > running, and therefore it doesn't pick these events up.
>
> However an evtest on input event running on kernel tty, still only picks
> release of the alt key.
[Dropped nouveau list, because this is offtopic there]
I pretty much got to the bottom of this.
There are 2 separate issues:
1. SysRq handler is now a input 'filter', which means that it can 'eat'
input events, so they don't show up on input bus.
It does so while sysrq key is down.
So sysrq and 'g' events never reach the kernel kbd driver and therefore
the hack to release them doesn't work.
2. The kbd_clear_keys_helper injects the keyup events alright, but it
doesn't inject SYN events, and therefore X evdev driver doesn't pick
these injected events untill next SYN event.
This patch makes key release work in expense of showing sysrq key to userspace, which isn't that good,
because now Alt+SysRQ causes a screen capture by default.
In my opinion the sysrq filter should stay.
We should just make kdb hook into atkbd and do the key release there.
This should both result in cleaner/more robust code, and make this issue disappear.
I'll look at doing that.
diff --git a/drivers/char/keyboard.c b/drivers/char/keyboard.c
index 0c6c641..7df6af5 100644
--- a/drivers/char/keyboard.c
+++ b/drivers/char/keyboard.c
@@ -368,6 +368,7 @@ static int kbd_clear_keys_helper(struct input_handle *handle, void *data)
{
unsigned int *keycode = data;
input_inject_event(handle, EV_KEY, *keycode, 0);
+ input_inject_event(handle, EV_SYN, SYN_REPORT, 0);
return 0;
}
diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c
index ef31bb8..db1eb12 100644
--- a/drivers/char/sysrq.c
+++ b/drivers/char/sysrq.c
@@ -601,7 +601,7 @@ static bool sysrq_filter(struct input_handle *handle, unsigned int type,
}
out:
- return sysrq_down;
+ return 0;
}
static int sysrq_connect(struct input_handler *handler,
Best regards,
Maxim Levitsky
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [Nouveau] [PATCH] drm/nouveau/kms: Implement KDB debug hooks for nouveau KMS.
2010-09-22 17:07 ` [Nouveau] [PATCH] drm/nouveau/kms: Implement KDB debug hooks for nouveau KMS Maxim Levitsky
@ 2010-09-24 20:50 ` Maxim Levitsky
2010-09-24 20:58 ` Jason Wessel
0 siblings, 1 reply; 10+ messages in thread
From: Maxim Levitsky @ 2010-09-24 20:50 UTC (permalink / raw)
To: Jason Wessel; +Cc: David Airlie, kgdb-bugreport, Jesse Barnes, linux-input
On Wed, 2010-09-22 at 19:07 +0200, Maxim Levitsky wrote:
> On Wed, 2010-09-22 at 16:06 +0200, Maxim Levitsky wrote:
> > On Wed, 2010-09-22 at 16:03 +0200, Maxim Levitsky wrote:
> > > On Wed, 2010-09-22 at 03:42 +0200, Maxim Levitsky wrote:
> > > > On Thu, 2010-09-02 at 13:46 +0300, Maxim Levitsky wrote:
> > > > > On Wed, 2010-09-01 at 06:35 -0500, Jason Wessel wrote:
> > > > > > On 09/01/2010 04:56 AM, Maxim Levitsky wrote:
> > > > > > > On Thu, 2010-08-19 at 13:55 -0400, Chris Ball wrote:
> > > > > > >
> > > > > > >> Hi,
> > > > > > >>
> > > > > > >> Here's a patch to add support for KMS debugging to Nouveau, along the
> > > > > > >> style of the previous patches for Intel¹ and Radeon². I'm only able
> > > > > > >> to test on nv50 here, so a test on nv04 would be much appreciated,
> > > > > > >> and I've published instructions on how to test here³. Thanks!
> > > > > > >>
> > > > > > >> - Chris.
> > > > > > >>
> > > > > > >
> > > > > > > Hi,
> > > > > > >
> > > > > > > I just tried that patch, but unfortunately nether with nor without it
> > > > > > > kdb seems not to work.
> > > > > > > It could be id10t error from my side, but I did test the kdb in the past
> > > > > > > with few KMS patches, and it seemed to work.
> > > > > > >
> > > > > > > Now I can't even get its prompt on the console.
> > > > > > >
> > > > > > > This is what I do:
> > > > > > >
> > > > > > > echo kbd | sudo tee /sys/module/kgdboc/parameters/kgdboc
> > > > > > > (also tried booting with kgdboc=kbd)
> > > > > > >
> > > > > >
> > > > > > Try changing it to kgdboc=kms,kbd or the "echo kms,kbd"
> > > > > >
> > > > > > When you use only the kbd, the kms feature is not activated.
> > > > > This doesn't help.
> > > > >
> > > > > I am afraid that this bug isn't related to kms, but rather is generic.
> > > >
> > > > I turns out that it was the NMI watchdog that I had enabled.
> > > > Without it kdb works very well, including the kms support.
> > > Please disregard this. kdb works with nmi watchdog now as well.
> > > Probably something was fixed, maybe unrelated to it.
> > >
> > > >
> > > > It would be better if you were to detect kms instead of adding an
> > > > explicit param to kgdboc cmd line.
> > > >
> > > > Also found out that after a debug session with Alt+SysRQ+g and X
> > > > running, these keys aren't released. I had to press on all of them to
> > > > make them release.
> > > > It makes sense as kgdboc in that case reads directly from keyboard port.
> > > And I see that kgdb actually has a code that works that around.
> > > I suspect that what happens is that keys are released before X continues
> > > running, and therefore it doesn't pick these events up.
> >
> > However an evtest on input event running on kernel tty, still only picks
> > release of the alt key.
>
> [Dropped nouveau list, because this is offtopic there]
>
> I pretty much got to the bottom of this.
> There are 2 separate issues:
>
>
> 1. SysRq handler is now a input 'filter', which means that it can 'eat'
> input events, so they don't show up on input bus.
> It does so while sysrq key is down.
> So sysrq and 'g' events never reach the kernel kbd driver and therefore
> the hack to release them doesn't work.
>
> 2. The kbd_clear_keys_helper injects the keyup events alright, but it
> doesn't inject SYN events, and therefore X evdev driver doesn't pick
> these injected events untill next SYN event.
>
> This patch makes key release work in expense of showing sysrq key to userspace, which isn't that good,
> because now Alt+SysRQ causes a screen capture by default.
> In my opinion the sysrq filter should stay.
> We should just make kdb hook into atkbd and do the key release there.
> This should both result in cleaner/more robust code, and make this issue disappear.
> I'll look at doing that.
>
>
> diff --git a/drivers/char/keyboard.c b/drivers/char/keyboard.c
> index 0c6c641..7df6af5 100644
> --- a/drivers/char/keyboard.c
> +++ b/drivers/char/keyboard.c
> @@ -368,6 +368,7 @@ static int kbd_clear_keys_helper(struct input_handle *handle, void *data)
> {
> unsigned int *keycode = data;
> input_inject_event(handle, EV_KEY, *keycode, 0);
> + input_inject_event(handle, EV_SYN, SYN_REPORT, 0);
> return 0;
> }
>
> diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c
> index ef31bb8..db1eb12 100644
> --- a/drivers/char/sysrq.c
> +++ b/drivers/char/sysrq.c
> @@ -601,7 +601,7 @@ static bool sysrq_filter(struct input_handle *handle, unsigned int type,
> }
>
> out:
> - return sysrq_down;
> + return 0;
> }
>
> static int sysrq_connect(struct input_handler *handler,
>
>
> Best regards,
> Maxim Levitsky
>
Ping.
Maxim Levitsky
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Kgdb-bugreport mailing list
Kgdb-bugreport@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kgdb-bugreport
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Nouveau] [PATCH] drm/nouveau/kms: Implement KDB debug hooks for nouveau KMS.
2010-09-24 20:50 ` Maxim Levitsky
@ 2010-09-24 20:58 ` Jason Wessel
2010-09-25 0:14 ` Maxim Levitsky
0 siblings, 1 reply; 10+ messages in thread
From: Jason Wessel @ 2010-09-24 20:58 UTC (permalink / raw)
To: Maxim Levitsky; +Cc: David Airlie, kgdb-bugreport, Jesse Barnes, linux-input
On 09/24/2010 03:50 PM, Maxim Levitsky wrote:
>
>> [Dropped nouveau list, because this is offtopic there]
>>
>> I pretty much got to the bottom of this.
>> There are 2 separate issues:
>>
>>
>> 1. SysRq handler is now a input 'filter', which means that it can 'eat'
>> input events, so they don't show up on input bus.
>> It does so while sysrq key is down.
>> So sysrq and 'g' events never reach the kernel kbd driver and therefore
>> the hack to release them doesn't work.
>>
>> 2. The kbd_clear_keys_helper injects the keyup events alright, but it
>> doesn't inject SYN events, and therefore X evdev driver doesn't pick
>> these injected events untill next SYN event.
>>
>> This patch makes key release work in expense of showing sysrq key to userspace, which isn't that good,
>> because now Alt+SysRQ causes a screen capture by default.
>> In my opinion the sysrq filter should stay.
>> We should just make kdb hook into atkbd and do the key release there.
>> This should both result in cleaner/more robust code, and make this issue disappear.
>> I'll look at doing that.
>>
>>
>> diff --git a/drivers/char/keyboard.c b/drivers/char/keyboard.c
>> index 0c6c641..7df6af5 100644
>> --- a/drivers/char/keyboard.c
>> +++ b/drivers/char/keyboard.c
>> @@ -368,6 +368,7 @@ static int kbd_clear_keys_helper(struct input_handle *handle, void *data)
>> {
>> unsigned int *keycode = data;
>> input_inject_event(handle, EV_KEY, *keycode, 0);
>> + input_inject_event(handle, EV_SYN, SYN_REPORT, 0);
>> return 0;
>> }
>>
>> diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c
>> index ef31bb8..db1eb12 100644
>> --- a/drivers/char/sysrq.c
>> +++ b/drivers/char/sysrq.c
>> @@ -601,7 +601,7 @@ static bool sysrq_filter(struct input_handle *handle, unsigned int type,
>> }
>>
>> out:
>> - return sysrq_down;
>> + return 0;
>> }
>>
>> static int sysrq_connect(struct input_handler *handler,
>>
>>
>> Best regards,
>> Maxim Levitsky
>>
>>
Hi Maxim,
Is it the case that this patch takes care of masking the sysrq event
from user space?
Originally before it became an input filter I had a patch to the
keyboard.c to completely consume the keypress of the sysrq-g.
I have been less than successful at getting the keyboard changes
upstreamed, and I was probably going to ping AKPM, because on that front
I had not received any kind of response either (linux-input that is).
Certainly I can carry your patch in my branch until we can determine a
final upstream design.
Thanks,
Jason.
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Nouveau] [PATCH] drm/nouveau/kms: Implement KDB debug hooks for nouveau KMS.
2010-09-24 20:58 ` Jason Wessel
@ 2010-09-25 0:14 ` Maxim Levitsky
2010-09-25 4:08 ` Dmitry Torokhov
0 siblings, 1 reply; 10+ messages in thread
From: Maxim Levitsky @ 2010-09-25 0:14 UTC (permalink / raw)
To: Jason Wessel; +Cc: David Airlie, kgdb-bugreport, Jesse Barnes, linux-input
On Fri, 2010-09-24 at 15:58 -0500, Jason Wessel wrote:
> On 09/24/2010 03:50 PM, Maxim Levitsky wrote:
> >
> >> [Dropped nouveau list, because this is offtopic there]
> >>
> >> I pretty much got to the bottom of this.
> >> There are 2 separate issues:
> >>
> >>
> >> 1. SysRq handler is now a input 'filter', which means that it can 'eat'
> >> input events, so they don't show up on input bus.
> >> It does so while sysrq key is down.
> >> So sysrq and 'g' events never reach the kernel kbd driver and therefore
> >> the hack to release them doesn't work.
> >>
> >> 2. The kbd_clear_keys_helper injects the keyup events alright, but it
> >> doesn't inject SYN events, and therefore X evdev driver doesn't pick
> >> these injected events untill next SYN event.
> >>
> >> This patch makes key release work in expense of showing sysrq key to userspace, which isn't that good,
> >> because now Alt+SysRQ causes a screen capture by default.
> >> In my opinion the sysrq filter should stay.
> >> We should just make kdb hook into atkbd and do the key release there.
> >> This should both result in cleaner/more robust code, and make this issue disappear.
> >> I'll look at doing that.
> >>
> >>
> >> diff --git a/drivers/char/keyboard.c b/drivers/char/keyboard.c
> >> index 0c6c641..7df6af5 100644
> >> --- a/drivers/char/keyboard.c
> >> +++ b/drivers/char/keyboard.c
> >> @@ -368,6 +368,7 @@ static int kbd_clear_keys_helper(struct input_handle *handle, void *data)
> >> {
> >> unsigned int *keycode = data;
> >> input_inject_event(handle, EV_KEY, *keycode, 0);
> >> + input_inject_event(handle, EV_SYN, SYN_REPORT, 0);
> >> return 0;
> >> }
> >>
> >> diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c
> >> index ef31bb8..db1eb12 100644
> >> --- a/drivers/char/sysrq.c
> >> +++ b/drivers/char/sysrq.c
> >> @@ -601,7 +601,7 @@ static bool sysrq_filter(struct input_handle *handle, unsigned int type,
> >> }
> >>
> >> out:
> >> - return sysrq_down;
> >> + return 0;
> >> }
> >>
> >> static int sysrq_connect(struct input_handler *handler,
> >>
> >>
> >> Best regards,
> >> Maxim Levitsky
> >>
> >>
>
> Hi Maxim,
>
> Is it the case that this patch takes care of masking the sysrq event
> from user space?
>
> Originally before it became an input filter I had a patch to the
> keyboard.c to completely consume the keypress of the sysrq-g.
>
> I have been less than successful at getting the keyboard changes
> upstreamed, and I was probably going to ping AKPM, because on that front
> I had not received any kind of response either (linux-input that is).
>
> Certainly I can carry your patch in my branch until we can determine a
> final upstream design.
Its an option, but bear in the mind that my 'patch' causes very
unpleasant regression.
The regression is that now Alt+SysRQ is reported to userspace and
treated as a PrintScreen which in gnome is treated as a launcher for
screenshot application.
So after you pressed it, you will end up with an army of
gnome-screenshots poping up.
So I think that tty kbd driver is wrong place for key release.
The right solution in my opinion is to make atkbd register with kgdb and
provide to it, the polling keyboard IO services, and also take care of
releasing the keys as soon as debug mode is entered or exited.
Btw, can a driver register a hook into kgdb to be executed on
enter/leave of the debug mode?
If so the atkbd driver should just do that.
I am also aware of the fact that atkbd doesn't talk to hardware
directly.
Thus 'the' proper fix is also to add a polled serio handlers, make atkbd
use them
if available and if so, register with the kgdb.
Best regards,
Maxim Levitsky
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Nouveau] [PATCH] drm/nouveau/kms: Implement KDB debug hooks for nouveau KMS.
2010-09-25 0:14 ` Maxim Levitsky
@ 2010-09-25 4:08 ` Dmitry Torokhov
2010-10-05 20:56 ` Jason Wessel
0 siblings, 1 reply; 10+ messages in thread
From: Dmitry Torokhov @ 2010-09-25 4:08 UTC (permalink / raw)
To: Maxim Levitsky
Cc: Jason Wessel, Chris Ball, David Airlie, kgdb-bugreport,
Jesse Barnes, linux-input
On Sat, Sep 25, 2010 at 02:14:32AM +0200, Maxim Levitsky wrote:
> On Fri, 2010-09-24 at 15:58 -0500, Jason Wessel wrote:
> > On 09/24/2010 03:50 PM, Maxim Levitsky wrote:
> > >
> > >> [Dropped nouveau list, because this is offtopic there]
> > >>
> > >> I pretty much got to the bottom of this.
> > >> There are 2 separate issues:
> > >>
> > >>
> > >> 1. SysRq handler is now a input 'filter', which means that it can 'eat'
> > >> input events, so they don't show up on input bus.
> > >> It does so while sysrq key is down.
> > >> So sysrq and 'g' events never reach the kernel kbd driver and therefore
> > >> the hack to release them doesn't work.
> > >>
> > >> 2. The kbd_clear_keys_helper injects the keyup events alright, but it
> > >> doesn't inject SYN events, and therefore X evdev driver doesn't pick
> > >> these injected events untill next SYN event.
> > >>
> > >> This patch makes key release work in expense of showing sysrq key to userspace, which isn't that good,
> > >> because now Alt+SysRQ causes a screen capture by default.
> > >> In my opinion the sysrq filter should stay.
> > >> We should just make kdb hook into atkbd and do the key release there.
> > >> This should both result in cleaner/more robust code, and make this issue disappear.
> > >> I'll look at doing that.
> > >>
> > >>
> > >> diff --git a/drivers/char/keyboard.c b/drivers/char/keyboard.c
> > >> index 0c6c641..7df6af5 100644
> > >> --- a/drivers/char/keyboard.c
> > >> +++ b/drivers/char/keyboard.c
> > >> @@ -368,6 +368,7 @@ static int kbd_clear_keys_helper(struct input_handle *handle, void *data)
> > >> {
> > >> unsigned int *keycode = data;
> > >> input_inject_event(handle, EV_KEY, *keycode, 0);
> > >> + input_inject_event(handle, EV_SYN, SYN_REPORT, 0);
> > >> return 0;
> > >> }
> > >>
> > >> diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c
> > >> index ef31bb8..db1eb12 100644
> > >> --- a/drivers/char/sysrq.c
> > >> +++ b/drivers/char/sysrq.c
> > >> @@ -601,7 +601,7 @@ static bool sysrq_filter(struct input_handle *handle, unsigned int type,
> > >> }
> > >>
> > >> out:
> > >> - return sysrq_down;
> > >> + return 0;
> > >> }
> > >>
> > >> static int sysrq_connect(struct input_handler *handler,
> > >>
> > >>
> > >> Best regards,
> > >> Maxim Levitsky
> > >>
> > >>
> >
> > Hi Maxim,
> >
> > Is it the case that this patch takes care of masking the sysrq event
> > from user space?
> >
> > Originally before it became an input filter I had a patch to the
> > keyboard.c to completely consume the keypress of the sysrq-g.
> >
> > I have been less than successful at getting the keyboard changes
> > upstreamed, and I was probably going to ping AKPM, because on that front
> > I had not received any kind of response either (linux-input that is).
> >
> > Certainly I can carry your patch in my branch until we can determine a
> > final upstream design.
>
> Its an option, but bear in the mind that my 'patch' causes very
> unpleasant regression.
> The regression is that now Alt+SysRQ is reported to userspace and
> treated as a PrintScreen which in gnome is treated as a launcher for
> screenshot application.
> So after you pressed it, you will end up with an army of
> gnome-screenshots poping up.
> So I think that tty kbd driver is wrong place for key release.
>
Agree.
> The right solution in my opinion is to make atkbd register with kgdb and
> provide to it, the polling keyboard IO services, and also take care of
> releasing the keys as soon as debug mode is entered or exited.
Disagree. We may support different keyboard devices with kdb or use one
keyboard (USB) to drop into debugger and then switch to atkbd...
I think we need to move Jason's code from drivers/char/keyboard.c to
drivers/char/sysrq.c and have it track keys that have been kept pressed
before entering sysrq mode and release them when leaving the mode.
We also need to teach sysrq that some handlers need resetting of the
keyboard state.
>
> Btw, can a driver register a hook into kgdb to be executed on
> enter/leave of the debug mode?
> If so the atkbd driver should just do that.
>
> I am also aware of the fact that atkbd doesn't talk to hardware
> directly.
> Thus 'the' proper fix is also to add a polled serio handlers, make atkbd
> use them
> if available and if so, register with the kgdb.
The issue is not that interrupts are not available but that we are
holding too many locks...
--
Dmitry
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Nouveau] [PATCH] drm/nouveau/kms: Implement KDB debug hooks for nouveau KMS.
2010-09-25 4:08 ` Dmitry Torokhov
@ 2010-10-05 20:56 ` Jason Wessel
2010-10-14 2:34 ` Maxim Levitsky
0 siblings, 1 reply; 10+ messages in thread
From: Jason Wessel @ 2010-10-05 20:56 UTC (permalink / raw)
To: Dmitry Torokhov, Maxim Levitsky; +Cc: Chris Ball, kgdb-bugreport, linux-input
[-- Attachment #1: Type: text/plain, Size: 3749 bytes --]
On 09/24/2010 11:08 PM, Dmitry Torokhov wrote:
> On Sat, Sep 25, 2010 at 02:14:32AM +0200, Maxim Levitsky wrote:
>
>> On Fri, 2010-09-24 at 15:58 -0500, Jason Wessel wrote:
>>
>>> On 09/24/2010 03:50 PM, Maxim Levitsky wrote:
>>>
>>>>
>>>>
>>>>> [Dropped nouveau list, because this is offtopic there]
>>>>>
>>>>> I pretty much got to the bottom of this.
>>>>> There are 2 separate issues:
>>>>>
>>>>>
>>>>> 1. SysRq handler is now a input 'filter', which means that it can 'eat'
>>>>> input events, so they don't show up on input bus.
>>>>> It does so while sysrq key is down.
>>>>> So sysrq and 'g' events never reach the kernel kbd driver and therefore
>>>>> the hack to release them doesn't work.
>>>>>
>>>>> 2. The kbd_clear_keys_helper injects the keyup events alright, but it
>>>>> doesn't inject SYN events, and therefore X evdev driver doesn't pick
>>>>> these injected events untill next SYN event.
>>>>>
>>>>> This patch makes key release work in expense of showing sysrq key to userspace, which isn't that good,
>>>>> because now Alt+SysRQ causes a screen capture by default.
>>>>> In my opinion the sysrq filter should stay.
>>>>> We should just make kdb hook into atkbd and do the key release there.
>>>>> This should both result in cleaner/more robust code, and make this issue disappear.
>>>>> I'll look at doing that.
>>>>>
>>>>>
>>>>> diff --git a/drivers/char/keyboard.c b/drivers/char/keyboard.c
>>>>> index 0c6c641..7df6af5 100644
>>>>> --- a/drivers/char/keyboard.c
>>>>> +++ b/drivers/char/keyboard.c
>>>>> @@ -368,6 +368,7 @@ static int kbd_clear_keys_helper(struct input_handle *handle, void *data)
>>>>> {
>>>>> unsigned int *keycode = data;
>>>>> input_inject_event(handle, EV_KEY, *keycode, 0);
>>>>> + input_inject_event(handle, EV_SYN, SYN_REPORT, 0);
>>>>> return 0;
>>>>> }
>>>>>
So I kept this piece, in the 0002 patch which is attached. I revised
the keyboard/input series at:
http://git.kernel.org/?p=linux/kernel/git/jwessel/linux-2.6-kgdb.git;a=shortlog;h=refs/heads/for_input
>>>>>
>>>>> diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c
>>>>> index ef31bb8..db1eb12 100644
>>>>> --- a/drivers/char/sysrq.c
>>>>> +++ b/drivers/char/sysrq.c
>>>>> @@ -601,7 +601,7 @@ static bool sysrq_filter(struct input_handle *handle, unsigned int type,
>>>>> }
>>>>>
>>>>> out:
>>>>> - return sysrq_down;
>>>>> + return 0;
>>>>> }
>>>>>
I took some time to look more closely at the problem, and I believe we
still want to filter out all these input events.
>
>> The right solution in my opinion is to make atkbd register with kgdb and
>> provide to it, the polling keyboard IO services, and also take care of
>> releasing the keys as soon as debug mode is entered or exited.
>>
>
> Disagree. We may support different keyboard devices with kdb or use one
> keyboard (USB) to drop into debugger and then switch to atkbd...
>
> I think we need to move Jason's code from drivers/char/keyboard.c to
> drivers/char/sysrq.c and have it track keys that have been kept pressed
> before entering sysrq mode and release them when leaving the mode.
>
> We also need to teach sysrq that some handlers need resetting of the
> keyboard state.
>
>
I found the root of the problem was the low level keyboard bit mask
getting out of sync in the input layer. Perhaps Dmitry can have a look
at the 3rd patch in the series, which addresses the problem.
I also put these patches into kgdb-next.
I believe it fixes the problems Maxim encountered, or at least the
problems I observed independently with stuck keys and the lack of the
ability to correctly use alt-PrintScreen.
If you are willing Maxim, can you give these patches a go?
Thanks,
Jason.
[-- Attachment #2: 0001-keyboard-kgdboc-Allow-key-release-on-kernel-resume.patch --]
[-- Type: text/x-diff, Size: 4152 bytes --]
>From ed6fb201ca864e977c6a4fcf345014fd1d4ebed4 Mon Sep 17 00:00:00 2001
From: Jason Wessel <jason.wessel@windriver.com>
Date: Sun, 26 Sep 2010 06:33:36 -0500
Subject: [PATCH 1/3] keyboard,kgdboc: Allow key release on kernel resume
When using a keyboard with kdb, a hook point to free all the
keystrokes is required for resuming kernel operations.
This is mainly because there is no way to force the end user to hold
down the original keys that were pressed prior to entering kdb when
resuming the kernel.
The kgdboc driver will call kbd_dbg_clear_keys() just prior to
resuming the kernel execution which will schedule a callback to clear
any keys which were depressed prior to the entering the kernel
debugger.
CC: Dmitry Torokhov <dmitry.torokhov@gmail.com>
CC: Greg Kroah-Hartman <gregkh@suse.de>
CC: linux-input@vger.kernel.org
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
---
drivers/char/keyboard.c | 37 +++++++++++++++++++++++++++++++++++++
drivers/serial/kgdboc.c | 13 +++++++++++++
include/linux/kbd_kern.h | 1 +
3 files changed, 51 insertions(+), 0 deletions(-)
diff --git a/drivers/char/keyboard.c b/drivers/char/keyboard.c
index a7ca752..0c6c641 100644
--- a/drivers/char/keyboard.c
+++ b/drivers/char/keyboard.c
@@ -363,6 +363,43 @@ static void to_utf8(struct vc_data *vc, uint c)
}
}
+#ifdef CONFIG_KDB_KEYBOARD
+static int kbd_clear_keys_helper(struct input_handle *handle, void *data)
+{
+ unsigned int *keycode = data;
+ input_inject_event(handle, EV_KEY, *keycode, 0);
+ return 0;
+}
+
+static void kbd_clear_keys_callback(struct work_struct *dummy)
+{
+ unsigned int i, j, k;
+
+ for (i = 0; i < ARRAY_SIZE(key_down); i++) {
+ if (!key_down[i])
+ continue;
+
+ k = i * BITS_PER_LONG;
+
+ for (j = 0; j < BITS_PER_LONG; j++, k++) {
+ if (!test_bit(k, key_down))
+ continue;
+ input_handler_for_each_handle(&kbd_handler, &k,
+ kbd_clear_keys_helper);
+ }
+ }
+}
+
+static DECLARE_WORK(kbd_clear_keys_work, kbd_clear_keys_callback);
+
+/* Called to clear any key presses after resuming the kernel. */
+void kbd_dbg_clear_keys(void)
+{
+ schedule_work(&kbd_clear_keys_work);
+}
+EXPORT_SYMBOL_GPL(kbd_dbg_clear_keys);
+#endif /* CONFIG_KDB_KEYBOARD */
+
/*
* Called after returning from RAW mode or when changing consoles - recompute
* shift_down[] and shift_state from key_down[] maybe called when keymap is
diff --git a/drivers/serial/kgdboc.c b/drivers/serial/kgdboc.c
index 39f9a1a..62b6edc 100644
--- a/drivers/serial/kgdboc.c
+++ b/drivers/serial/kgdboc.c
@@ -18,6 +18,7 @@
#include <linux/tty.h>
#include <linux/console.h>
#include <linux/vt_kern.h>
+#include <linux/kbd_kern.h>
#define MAX_CONFIG_LEN 40
@@ -37,12 +38,16 @@ static struct tty_driver *kgdb_tty_driver;
static int kgdb_tty_line;
#ifdef CONFIG_KDB_KEYBOARD
+static bool kgdboc_use_kbd;
+
static int kgdboc_register_kbd(char **cptr)
{
+ kgdboc_use_kbd = false;
if (strncmp(*cptr, "kbd", 3) == 0) {
if (kdb_poll_idx < KDB_POLL_FUNC_MAX) {
kdb_poll_funcs[kdb_poll_idx] = kdb_get_kbd_char;
kdb_poll_idx++;
+ kgdboc_use_kbd = true;
if (cptr[0][3] == ',')
*cptr += 4;
else
@@ -65,9 +70,16 @@ static void kgdboc_unregister_kbd(void)
}
}
}
+
+static inline void kgdboc_clear_kbd(void)
+{
+ if (kgdboc_use_kbd)
+ kbd_dbg_clear_keys(); /* Release all pressed keys */
+}
#else /* ! CONFIG_KDB_KEYBOARD */
#define kgdboc_register_kbd(x) 0
#define kgdboc_unregister_kbd()
+#define kgdboc_clear_kbd()
#endif /* ! CONFIG_KDB_KEYBOARD */
static int kgdboc_option_setup(char *opt)
@@ -231,6 +243,7 @@ static void kgdboc_post_exp_handler(void)
dbg_restore_graphics = 0;
con_debug_leave();
}
+ kgdboc_clear_kbd();
}
static struct kgdb_io kgdboc_io_ops = {
diff --git a/include/linux/kbd_kern.h b/include/linux/kbd_kern.h
index 506ad20..ae87c0a 100644
--- a/include/linux/kbd_kern.h
+++ b/include/linux/kbd_kern.h
@@ -144,6 +144,7 @@ struct console;
int getkeycode(unsigned int scancode);
int setkeycode(unsigned int scancode, unsigned int keycode);
void compute_shiftstate(void);
+void kbd_dbg_clear_keys(void);
/* defkeymap.c */
--
1.6.3.3
[-- Attachment #3: 0002-keyboard-kdb-inject-SYN-events-in-kbd_clear_keys_hel.patch --]
[-- Type: text/x-diff, Size: 1036 bytes --]
>From 43eb157cdf4213e8b7792746e7d11afec2309205 Mon Sep 17 00:00:00 2001
From: Maxim Levitsky <maximlevitsky@gmail.com>
Date: Wed, 22 Sep 2010 10:07:05 -0700
Subject: [PATCH 2/3] keyboard,kdb: inject SYN events in kbd_clear_keys_helper
The kbd_clear_keys_helper injects the keyup events alright, but it
doesn't inject SYN events, and therefore X evdev driver doesn't pick
these injected events untill next SYN event.
Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
---
drivers/char/keyboard.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/char/keyboard.c b/drivers/char/keyboard.c
index 0c6c641..7df6af5 100644
--- a/drivers/char/keyboard.c
+++ b/drivers/char/keyboard.c
@@ -368,6 +368,7 @@ static int kbd_clear_keys_helper(struct input_handle *handle, void *data)
{
unsigned int *keycode = data;
input_inject_event(handle, EV_KEY, *keycode, 0);
+ input_inject_event(handle, EV_SYN, SYN_REPORT, 0);
return 0;
}
--
1.6.3.3
[-- Attachment #4: 0003-sysrq-keyboard-properly-deal-with-alt-sysrq-in-sysrq.patch --]
[-- Type: text/x-diff, Size: 3892 bytes --]
>From 33dea0e730e03814f0cd71c604185ba1c7fad51d Mon Sep 17 00:00:00 2001
From: Jason Wessel <jason.wessel@windriver.com>
Date: Tue, 5 Oct 2010 14:38:36 -0500
Subject: [PATCH 3/3] sysrq,keyboard: properly deal with alt-sysrq in sysrq input filter
This patch addresses 2 problems:
1) You should still be able to use alt-PrintScreen to capture a grab
of a single window when the sysrq filter is active.
2) The sysrq filter should reset the low level key mask so that future
key presses will not show up as a repeated key. The problem was
that when you executed alt-sysrq g and then resumed the kernel, you
would have to press 'g' twice to get it working again.
CC: Dmitry Torokhov <dmitry.torokhov@gmail.com>
CC: Greg Kroah-Hartman <gregkh@suse.de>
CC: linux-input@vger.kernel.org
Reported-by: Maxim Levitsky <maximlevitsky@gmail.com>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
---
drivers/char/sysrq.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 61 insertions(+), 3 deletions(-)
diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c
index ef31bb8..9b97aad 100644
--- a/drivers/char/sysrq.c
+++ b/drivers/char/sysrq.c
@@ -566,6 +566,57 @@ static const unsigned char sysrq_xlate[KEY_MAX + 1] =
static bool sysrq_down;
static int sysrq_alt_use;
static int sysrq_alt;
+static bool sysrq_kbd_triggered;
+
+/*
+ * This function was a copy of input_pass_event but modified to allow
+ * by-passing a specific filter, to allow for injected events without
+ * filter recursion.
+ */
+static void input_pass_event_ignore(struct input_dev *dev,
+ unsigned int type, unsigned int code, int value,
+ struct input_handle *ignore_handle)
+{
+ struct input_handler *handler;
+ struct input_handle *handle;
+
+ rcu_read_lock();
+
+ handle = rcu_dereference(dev->grab);
+ if (handle)
+ handle->handler->event(handle, type, code, value);
+ else {
+ bool filtered = false;
+
+ list_for_each_entry_rcu(handle, &dev->h_list, d_node) {
+ if (!handle->open || handle == ignore_handle)
+ continue;
+ handler = handle->handler;
+ if (!handler->filter) {
+ if (filtered)
+ break;
+
+ handler->event(handle, type, code, value);
+
+ } else if (handler->filter(handle, type, code, value))
+ filtered = true;
+ }
+ }
+
+ rcu_read_unlock();
+}
+
+/*
+ * Pass along alt-print_screen, if there was no sysrq processing by
+ * sending a key press down and then passing the key up event.
+ */
+static void simulate_alt_sysrq(struct input_handle *handle)
+{
+ input_pass_event_ignore(handle->dev, EV_KEY, KEY_SYSRQ, 1, handle);
+ input_pass_event_ignore(handle->dev, EV_SYN, SYN_REPORT, 0, handle);
+ input_pass_event_ignore(handle->dev, EV_KEY, KEY_SYSRQ, 0, handle);
+ input_pass_event_ignore(handle->dev, EV_SYN, SYN_REPORT, 0, handle);
+}
static bool sysrq_filter(struct input_handle *handle, unsigned int type,
unsigned int code, int value)
@@ -580,9 +631,11 @@ static bool sysrq_filter(struct input_handle *handle, unsigned int type,
if (value)
sysrq_alt = code;
else {
- if (sysrq_down && code == sysrq_alt_use)
+ if (sysrq_down && code == sysrq_alt_use) {
sysrq_down = false;
-
+ if (!sysrq_kbd_triggered)
+ simulate_alt_sysrq(handle);
+ }
sysrq_alt = 0;
}
break;
@@ -590,13 +643,18 @@ static bool sysrq_filter(struct input_handle *handle, unsigned int type,
case KEY_SYSRQ:
if (value == 1 && sysrq_alt) {
sysrq_down = true;
+ sysrq_kbd_triggered = false;
sysrq_alt_use = sysrq_alt;
}
break;
default:
- if (sysrq_down && value && value != 2)
+ if (sysrq_down && value && value != 2 && !sysrq_kbd_triggered) {
+ sysrq_kbd_triggered = true;
__handle_sysrq(sysrq_xlate[code], true);
+ /* Clear any handled keys from being flagged as a repeated stroke */
+ __clear_bit(code, handle->dev->key);
+ }
break;
}
--
1.6.3.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [Nouveau] [PATCH] drm/nouveau/kms: Implement KDB debug hooks for nouveau KMS.
2010-10-05 20:56 ` Jason Wessel
@ 2010-10-14 2:34 ` Maxim Levitsky
2010-10-20 16:01 ` sysrq filter and stuck keys [ was Re: [Nouveau] [PATCH] drm/nouveau/kms: Implement KDB debug hooks for nouveau KMS.] Jason Wessel
0 siblings, 1 reply; 10+ messages in thread
From: Maxim Levitsky @ 2010-10-14 2:34 UTC (permalink / raw)
To: Jason Wessel; +Cc: kgdb-bugreport, Dmitry Torokhov, linux-input
On Tue, 2010-10-05 at 15:56 -0500, Jason Wessel wrote:
> On 09/24/2010 11:08 PM, Dmitry Torokhov wrote:
> > On Sat, Sep 25, 2010 at 02:14:32AM +0200, Maxim Levitsky wrote:
> >
> >> On Fri, 2010-09-24 at 15:58 -0500, Jason Wessel wrote:
> >>
> >>> On 09/24/2010 03:50 PM, Maxim Levitsky wrote:
> >>>
> >>>>
> >>>>
> >>>>> [Dropped nouveau list, because this is offtopic there]
> >>>>>
> >>>>> I pretty much got to the bottom of this.
> >>>>> There are 2 separate issues:
> >>>>>
> >>>>>
> >>>>> 1. SysRq handler is now a input 'filter', which means that it can 'eat'
> >>>>> input events, so they don't show up on input bus.
> >>>>> It does so while sysrq key is down.
> >>>>> So sysrq and 'g' events never reach the kernel kbd driver and therefore
> >>>>> the hack to release them doesn't work.
> >>>>>
> >>>>> 2. The kbd_clear_keys_helper injects the keyup events alright, but it
> >>>>> doesn't inject SYN events, and therefore X evdev driver doesn't pick
> >>>>> these injected events untill next SYN event.
> >>>>>
> >>>>> This patch makes key release work in expense of showing sysrq key to userspace, which isn't that good,
> >>>>> because now Alt+SysRQ causes a screen capture by default.
> >>>>> In my opinion the sysrq filter should stay.
> >>>>> We should just make kdb hook into atkbd and do the key release there.
> >>>>> This should both result in cleaner/more robust code, and make this issue disappear.
> >>>>> I'll look at doing that.
> >>>>>
Nope, still same problem.
Maybe more keys were released, but still
pressing Alt+SysRQ+g second time doesn't break to the debugger.
I pulled your kgdb-next branch which does contain these patches.
Best regards,
Maxim Levitsky
------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3.
Spend less time writing and rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
^ permalink raw reply [flat|nested] 10+ messages in thread
* sysrq filter and stuck keys [ was Re: [Nouveau] [PATCH] drm/nouveau/kms: Implement KDB debug hooks for nouveau KMS.]
2010-10-14 2:34 ` Maxim Levitsky
@ 2010-10-20 16:01 ` Jason Wessel
2010-10-23 2:29 ` Maxim Levitsky
0 siblings, 1 reply; 10+ messages in thread
From: Jason Wessel @ 2010-10-20 16:01 UTC (permalink / raw)
To: Maxim Levitsky; +Cc: Dmitry Torokhov, Chris Ball, kgdb-bugreport, linux-input
On 10/13/2010 09:34 PM, Maxim Levitsky wrote:
>
> Nope, still same problem.
> Maybe more keys were released, but still
> pressing Alt+SysRQ+g second time doesn't break to the debugger.
>
>
Thanks for trying this out Maxim.
I have to wonder if part of the problem is the way that raw events can
propagate directly via the old keyboard interface vs the input layer.
I had noticed something somewhat similar with an xorg.conf which
appeared to be using both the raw keyboard and the input layer for
input. I was having all sorts of problems until I changed the xorg.conf
settings to use the input layer. I noticed that even pressing the up
arrow in an xterm was invoking the screen shot mechanism for example.
Perhaps you can provide some more data to see if this is a similar
problem or not.
On the Fedora 13 test system I made sure the following were commented
out in the xorg.conf file.
# InputDevice "Keyboard0" "CoreKeyboard"
# Option "AllowEmptyInput" "off"
This had resolved the issue at least for the system with the Intel
graphics chip and non-usb keyboard.
The next step might be to have you run with an instrumented kernel if
this is not the issue, and of course if you are willing to help further
debug this.
Thanks,
Jason.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: sysrq filter and stuck keys [ was Re: [Nouveau] [PATCH] drm/nouveau/kms: Implement KDB debug hooks for nouveau KMS.]
2010-10-20 16:01 ` sysrq filter and stuck keys [ was Re: [Nouveau] [PATCH] drm/nouveau/kms: Implement KDB debug hooks for nouveau KMS.] Jason Wessel
@ 2010-10-23 2:29 ` Maxim Levitsky
2010-10-27 12:51 ` Jason Wessel
0 siblings, 1 reply; 10+ messages in thread
From: Maxim Levitsky @ 2010-10-23 2:29 UTC (permalink / raw)
To: Jason Wessel; +Cc: Dmitry Torokhov, Chris Ball, kgdb-bugreport, linux-input
On Wed, 2010-10-20 at 11:01 -0500, Jason Wessel wrote:
> On 10/13/2010 09:34 PM, Maxim Levitsky wrote:
> >
> > Nope, still same problem.
> > Maybe more keys were released, but still
> > pressing Alt+SysRQ+g second time doesn't break to the debugger.
> >
> >
>
> Thanks for trying this out Maxim.
>
> I have to wonder if part of the problem is the way that raw events can
> propagate directly via the old keyboard interface vs the input layer.
> I had noticed something somewhat similar with an xorg.conf which
> appeared to be using both the raw keyboard and the input layer for
> input. I was having all sorts of problems until I changed the xorg.conf
> settings to use the input layer. I noticed that even pressing the up
> arrow in an xterm was invoking the screen shot mechanism for example.
>
> Perhaps you can provide some more data to see if this is a similar
> problem or not.
Jardon, I already found the root cause of the problem.
First of all, note that I use xorg's evdev driver.
The in-kernel tty kbd driver is only used for virtual consoles.
The root cause is that in-kernel kbd driver beeing a client of the input
subsystem just doesn't see the sysrq keys because they are filtered,
therefore it can't release them.
The right solution is to somehow hook at the atkbd driver , tell it that
kbd tampered with its hardware, and make it release the keys.
But that is easy to say, not that easy to do...
the in-kernel kbd driver just isn't the right place for the job.
Best regards,
Maxim Levitsky
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: sysrq filter and stuck keys [ was Re: [Nouveau] [PATCH] drm/nouveau/kms: Implement KDB debug hooks for nouveau KMS.]
2010-10-23 2:29 ` Maxim Levitsky
@ 2010-10-27 12:51 ` Jason Wessel
0 siblings, 0 replies; 10+ messages in thread
From: Jason Wessel @ 2010-10-27 12:51 UTC (permalink / raw)
To: Maxim Levitsky; +Cc: Dmitry Torokhov, Chris Ball, kgdb-bugreport, linux-input
On 10/22/2010 09:29 PM, Maxim Levitsky wrote:
> Jason, I already found the root cause of the problem.
> First of all, note that I use xorg's evdev driver.
> The in-kernel tty kbd driver is only used for virtual consoles.
>
>
I would like to clarify where you observed the problem. Was it only on
the tty console in X or both places?
> The root cause is that in-kernel kbd driver beeing a client of the input
> subsystem just doesn't see the sysrq keys because they are filtered,
> therefore it can't release them.
>
>
With the 3 patches to the input layer in kgdb-next I cannot duplicate
the problem at all. If I remove the last patch in the series, and use
the tty console, I can definitely see the behavior you mention. I had
added a change to the sysrq input filter (which is consumes the key
strokes) that also resets the key mask in the tty keyboard driver
Specifically in
+ /* Clear handled keys from being flagged as a
repeated stroke */
+ __clear_bit(code, handle->dev->key);
Else drivers that use these bits for autorepeat (like the atkbd driver)
will end up with stuck keys.
> The right solution is to somehow hook at the atkbd driver , tell it that
> kbd tampered with its hardware, and make it release the keys.
>
>
I don't think we need to do that because the input filter should be able
to actually "properly" filter state to all its clients. As a last
resort of course the HW state could be tracked and updated, but ideally
I'd like to avoid it.
Jason.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2010-10-27 12:51 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <m3iq9yqd7w.fsf@pullcord.laptop.org>
[not found] ` <4C5ACF3F.8050409@windriver.com>
[not found] ` <m3hbj0fju3.fsf_-_@pullcord.laptop.org>
[not found] ` <m3aaoimqrp.fsf_-_@pullcord.laptop.org>
[not found] ` <1283335002.2741.5.camel@maxim-laptop>
[not found] ` <4C7E3A73.5070503@windriver.com>
[not found] ` <1283424363.2736.1.camel@maxim-laptop>
[not found] ` <1285119735.5949.5.camel@maxim-laptop>
[not found] ` <1285164198.3159.8.camel@maxim-laptop>
[not found] ` <1285164387.3159.10.camel@maxim-laptop>
2010-09-22 17:07 ` [Nouveau] [PATCH] drm/nouveau/kms: Implement KDB debug hooks for nouveau KMS Maxim Levitsky
2010-09-24 20:50 ` Maxim Levitsky
2010-09-24 20:58 ` Jason Wessel
2010-09-25 0:14 ` Maxim Levitsky
2010-09-25 4:08 ` Dmitry Torokhov
2010-10-05 20:56 ` Jason Wessel
2010-10-14 2:34 ` Maxim Levitsky
2010-10-20 16:01 ` sysrq filter and stuck keys [ was Re: [Nouveau] [PATCH] drm/nouveau/kms: Implement KDB debug hooks for nouveau KMS.] Jason Wessel
2010-10-23 2:29 ` Maxim Levitsky
2010-10-27 12:51 ` Jason Wessel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).