Bug 100346 - Typing blocks external mouse for about a second
Summary: Typing blocks external mouse for about a second
Status: RESOLVED NOTOURBUG
Alias: None
Product: xorg
Classification: Unclassified
Component: Input/evdev (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Peter Hutterer
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on: 100345
Blocks:
  Show dependency treegraph
 
Reported: 2017-03-22 18:45 UTC by Nikolaus Rath
Modified: 2017-03-27 00:34 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Nikolaus Rath 2017-03-22 18:45:16 UTC
Whenever I type something on my (internal) keyboard, and then attempt to use my external, USB mouse I have to wait about a second until the mouse responds. The touchpad is blocked as well, but that is probably a feature.

I do *not* have syndaemon running.

xinput says:

$ xinput
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ ALP000D:00 044E:120C                    	id=10	[slave  pointer  (2)]
⎜   ↳ AlpsPS/2 ALPS GlidePoint                	id=12	[slave  pointer  (2)]
⎜   ↳ Chicony Wireless Device                 	id=16	[slave  pointer  (2)]
⎜   ↳ Chicony Wireless Device                 	id=17	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=8	[slave  keyboard (3)]
    ↳ HP HD Camera                            	id=9	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=11	[slave  keyboard (3)]
    ↳ HP Wireless hotkeys                     	id=13	[slave  keyboard (3)]
    ↳ HP WMI hotkeys                          	id=14	[slave  keyboard (3)]
    ↳ Chicony Wireless Device                 	id=15	[slave  keyboard (3)]

$ xinput --list-props 16
Device 'Chicony Wireless Device':
	Device Enabled (139):	1
	Coordinate Transformation Matrix (141):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	Device Accel Profile (262):	0
	Device Accel Constant Deceleration (263):	1.000000
	Device Accel Adaptive Deceleration (264):	1.000000
	Device Accel Velocity Scaling (265):	10.000000
	Device Product ID (257):	1266, 2422
	Device Node (258):	"/dev/input/event18"
	Evdev Axis Inversion (266):	0, 0
	Evdev Axes Swap (268):	0
	Axis Labels (269):	"Rel X" (149), "Rel Y" (150), "Rel Horiz Wheel" (492)
	Button Labels (270):	"Button 0" (506), "Button Unknown" (260), "Button Unknown" (260), "Button Wheel Up" (145), "Button Wheel Down" (146), "Button Horiz Wheel Left" (147), "Button Horiz Wheel Right" (148)
	Evdev Scrolling Distance (271):	1, 1, 1
	Evdev Middle Button Emulation (272):	0
	Evdev Middle Button Timeout (273):	50
	Evdev Third Button Emulation (274):	0
	Evdev Third Button Emulation Timeout (275):	1000
	Evdev Third Button Emulation Button (276):	3
	Evdev Third Button Emulation Threshold (277):	20
	Evdev Wheel Emulation (278):	0
	Evdev Wheel Emulation Axes (279):	0, 0, 4, 5
	Evdev Wheel Emulation Inertia (280):	10
	Evdev Wheel Emulation Timeout (281):	200
	Evdev Wheel Emulation Button (282):	4
	Evdev Drag Lock Buttons (283):	0


$ xinput --list-props 17
Device 'Chicony Wireless Device':
	Device Enabled (139):	1
	Coordinate Transformation Matrix (141):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	Device Accel Profile (262):	0
	Device Accel Constant Deceleration (263):	1.000000
	Device Accel Adaptive Deceleration (264):	1.000000
	Device Accel Velocity Scaling (265):	10.000000
	Device Product ID (257):	1266, 2422
	Device Node (258):	"/dev/input/event19"
	Evdev Axis Inversion (266):	0, 0
	Evdev Axes Swap (268):	0
	Axis Labels (269):	"Rel X" (149), "Rel Y" (150), "Rel Vert Wheel" (261)
	Button Labels (270):	"Button Left" (142), "Button Middle" (143), "Button Right" (144), "Button Wheel Up" (145), "Button Wheel Down" (146), "Button Horiz Wheel Left" (147), "Button Horiz Wheel Right" (148)
	Evdev Scrolling Distance (271):	1, 1, 1
	Evdev Middle Button Emulation (272):	0
	Evdev Middle Button Timeout (273):	50
	Evdev Third Button Emulation (274):	0
	Evdev Third Button Emulation Timeout (275):	1000
	Evdev Third Button Emulation Button (276):	3
	Evdev Third Button Emulation Threshold (277):	20
	Evdev Wheel Emulation (278):	0
	Evdev Wheel Emulation Axes (279):	0, 0, 4, 5
	Evdev Wheel Emulation Inertia (280):	10
	Evdev Wheel Emulation Timeout (281):	200
	Evdev Wheel Emulation Button (282):	4
	Evdev Drag Lock Buttons (283):	0

Both the Chicony devices disappear when I disconnect the external mouse.


On startup, X11 says:

X.Org X Server 1.16.4
Release Date: 2014-12-20
[    47.139] X Protocol Version 11, Revision 0
[    47.139] Build Operating System: Linux 3.16.0-4-amd64 x86_64 Debian
[    47.139] Current Operating System: Linux thinkpad 4.9.0-0.bpo.2-amd64 #1 SMP Debian 4.9.13-1~bpo8+1 (2017-02-27) x86_64
[    47.139] Kernel command line: BOOT_IMAGE=/vmlinuz-4.9.0-0.bpo.2-amd64 root=/dev/mapper/vg0-debian ro quiet splash
[    47.139] Build Date: 11 February 2015  12:32:02AM
[    47.139] xorg-server 2:1.16.4-1 (http://www.debian.org/support) 
[    47.139] Current version of pixman: 0.32.6
[    47.139] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[...]
[    50.370] (II) config/udev: Adding input device AT Translated Set 2 keyboard (/dev/input/event0)
[    50.370] (**) AT Translated Set 2 keyboard: Applying InputClass "evdev keyboard catchall"
[    50.370] (II) Using input driver 'evdev' for 'AT Translated Set 2 keyboard'
[    50.370] (**) AT Translated Set 2 keyboard: always reports core events
[    50.370] (**) evdev: AT Translated Set 2 keyboard: Device: "/dev/input/event0"
[    50.370] (--) evdev: AT Translated Set 2 keyboard: Vendor 0x1 Product 0x1
[    50.370] (--) evdev: AT Translated Set 2 keyboard: Found keys
[    50.370] (II) evdev: AT Translated Set 2 keyboard: Configuring as keyboard
[    50.370] (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio0/input/input0/event0"
[    50.370] (II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: KEYBOARD, id 11)
[    50.370] (**) Option "xkb_rules" "evdev"
[    50.370] (**) Option "xkb_model" "pc105"
[    50.370] (**) Option "xkb_layout" "us"
Comment 1 Peter Hutterer 2017-03-22 21:42:35 UTC
evdev doesn't have any disable-while-typing mechanism and if you say syndaemon isn't running I'm not sure what happens here. Either way syndaemon shouldn't affect USB mice anyway.

Run xinput watch-props "device name" on the mouse and the touchpad and see if any of the properties change when you use the keyboard.
Comment 2 Nikolaus Rath 2017-03-23 15:58:35 UTC
Both

$ xinput watch-props 'ALP000D:00 044E:120C'
and
$ xinput watch-props 'AlpsPS/2 ALPS GlidePoint'

does not show any changes when I type, even if the touchpad clearly becomes blocked.


However, at the moment my external mouse is actually no longer blocked. Could this be related to the fact that I only plugged it in later?
Comment 3 Peter Hutterer 2017-03-23 23:19:08 UTC
run evemu-record on the kernel device for the touchpad (and/or mouse) and see if it blocks there too - if so, it's a bug in the kernel.
Comment 4 Nikolaus Rath 2017-03-24 16:00:11 UTC
I don't quite understand. You mean the mere act of running 'evemu-record' could prevent the blocking? If not, then what do you mean with "if it blocks there too".
Comment 5 Nikolaus Rath 2017-03-24 16:06:59 UTC
$ sudo evemu-record /dev/input/event17

Shows prints something whenever I use the touchpad, but there is no change when I start (or stop) typing on the keyboard,
Comment 6 Peter Hutterer 2017-03-24 21:16:33 UTC
what I meant was: if you look at the touchpad device with evemu, do the
events stop when you start typing? If so then the issue is in the hardware
or the kernel.

If you still see events from the touchpad while typing, then the issue is in
userspace somewhere.
Comment 7 Nikolaus Rath 2017-03-24 22:54:11 UTC
Ah, got it.

Yes, when I am typing (and up to about 1 second after stopping), 'evemu-record' does not show any events for the touchpad.

Do you have any suggestion where I could start to track this down in the kernel?

It's weird, it very much looks like a deliberate feature...
Comment 8 Peter Hutterer 2017-03-27 00:34:58 UTC
libinput sees the same events as evemu does, so there isn't much we can do. I suspect this is due to the device not being in proper touchpad mode and the firmware implementing some disable-while-typing. Let's track this in bug #100345.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.