| Summary: | TDMTSAK/TSAK (Secure login dialog support) cause key-presses to be eaten, stuck and modifiers to blocks. | ||
|---|---|---|---|
| Product: | TDE | Reporter: | Pavel Pisa <ppisa4lists> |
| Component: | tdebase | Assignee: | Slávek Banko <slavek.banko> |
| Status: | RESOLVED FIXED | ||
| Severity: | blocker | CC: | bugwatch, kb9vqf, midenok, slavek.banko |
| Priority: | P5 | ||
| Version: | R14.0.0 [Trinity] | ||
| Hardware: | amd64 | ||
| OS: | Debian Wheezy | ||
| Compiler Version: | TDE Version String: | ||
| Application Version: | Application Name: | ||
| Attachments: | Fix looping in replication EV_MSC events | ||
|
Description
Pavel Pisa
2013-03-24 03:39:59 CDT
Today I tested TDE 3.5.13.2 on Ubuntu Raring and I have observed very similar behavior. I noticed that after login into TDE two processes tsak together produce load on a CPU.
With gdb I found that is constantly replicated events between keyboards, although nobody touches to one present keyboard.
#0 0x00007feb42c77af0 in __read_nocancel () at ../sysdeps/unix/syscall-template.S:81
#1 0x00000000004032de in main (argc=1, argv=0x7fff331219a8)
at /tmp/buildd/kdebase-trinity-3.5.13/tsak/main.cpp:613
With Ubuntu Quantal and Debian Squeeze (with kernel from backports) on the same machine the problem does not occur.
(In reply to comment #1) > Today I tested TDE 3.5.13.2 on Ubuntu Raring and I have observed very similar > behavior. I noticed that after login into TDE two processes tsak together > produce load on a CPU. > > With gdb I found that is constantly replicated events between keyboards, > although nobody touches to one present keyboard. > > #0 0x00007feb42c77af0 in __read_nocancel () at > ../sysdeps/unix/syscall-template.S:81 > #1 0x00000000004032de in main (argc=1, argv=0x7fff331219a8) > at /tmp/buildd/kdebase-trinity-3.5.13/tsak/main.cpp:613 > > With Ubuntu Quantal and Debian Squeeze (with kernel from backports) on the same > machine the problem does not occur. Yes, I am noticing the problem myself on Debian Wheezy with some hardware combinations. Something has definitely changed in the kernel or evdev! The effect on one Wheezy test system is even worse; pressing a single key, then pressing a second key while the first is still depressed causes both keystrokes to disappear and not be passed on to X11. I will be looking into this as soon as I have time. Tim Created attachment 1129 [details]
Fix looping in replication EV_MSC events
I noticed that when replicating EV_LED events from virtual to physical keyboards are also replicated EV_MSC events. But when copying events from physical keyboard to virtual, are excluded only EV_LED events == EV_MSC events thus causing an infinite loop.
Please check the attached patch. For me the problem with CPU overhead is solved. And I not observe any regression.
(In reply to comment #3) > Created attachment 1129 [details] > Fix looping in replication EV_MSC events > > I noticed that when replicating EV_LED events from virtual to physical > keyboards are also replicated EV_MSC events. But when copying events from > physical keyboard to virtual, are excluded only EV_LED events == EV_MSC events > thus causing an infinite loop. > > Please check the attached patch. For me the problem with CPU overhead is > solved. And I not observe any regression. This resolves the problems experienced here as well. Good work! Slightly modified and pushed to GIT in hash 86cc65c, along with a few other improvements. |