Bug 105022

Summary: Lenovo P50 - Slow fine touchpad movement makes it jump
Product: Wayland Reporter: Krasi <krasi.root>
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED FIXED QA Contact:
Severity: major    
Priority: medium CC: lucian+freedesktop, peter.hutterer, tim
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: other   
Whiteboard:
i915 platform: i915 features:
Attachments: logs
Evemu recording of fine movement with jumps
nonrelevant email garbage
move.evemu
analysis of attachment 138178
analysis of attachment 138176
0001-udev-add-the-P50-to-the-T450-jumping-motion-quirks.patch
move.evemu
email garbage
dmesg_journalctl
evemu recording, a good example near the end

Description Krasi 2018-02-09 11:07:08 UTC
Created attachment 137243 [details]
logs

Fedora 27, KDE (the same on Gnome)

When trying to to do a fine movement on the touchpad it jumps making it impossible to do fine selection on small text and click small buttons.


libinput --version
1.9.4


Here is a short video 
https://www.youtube.com/watch?v=Yqeu5ZrC_p0

Let me know how can I obtain any further debug info you need.

How reproducible:
always



Device:           SynPS/2 Synaptics TouchPad
Kernel:           /dev/input/event6
Group:            8
Seat:             seat0, default
Size:             100x55mm
Capabilities:     pointer gesture
Tap-to-click:     disabled
Tap-and-drag:     enabled
Tap drag lock:    disabled
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   *two-finger edge 
Click methods:    none
Disable-w-typing: enabled
Accel profiles:   none
Rotation:         n/a



Trackpoint seems to be working fine but that is impossible to use for fine selection as well as it is not so sensitive.


when I run libinput-debug-events I see the pauses there as well, but in evemu-record I see no pauses but the SYN_REPORT seems to show some high ...ms numbers when it jumps


dmesg | grep synaptics
[45462.267789] psmouse serio2: Failed to disable mouse on synaptics-pt/serio0
[45463.917768] psmouse serio1: synaptics: queried max coordinates: x [..5676], y [..4754]
[45463.951593] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1100..]
[57186.672594] psmouse serio1: synaptics: queried max coordinates: x [..5676], y [..4754]
[57186.706204] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1100..]
[70344.182014] psmouse serio2: Failed to disable mouse on synaptics-pt/serio0
[70345.835838] psmouse serio1: synaptics: queried max coordinates: x [..5676], y [..4754]
[70345.869367] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1100..]
[71920.887255] psmouse serio2: Failed to disable mouse on synaptics-pt/serio0
[71922.547431] psmouse serio1: synaptics: queried max coordinates: x [..5676], y [..4754]
[71922.581315] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1100..]
[73774.120004] psmouse serio1: synaptics: queried max coordinates: x [..5676], y [..4754]
[73774.150886] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1100..]
[153129.909367] psmouse serio2: Failed to disable mouse on synaptics-pt/serio0
[153131.577309] psmouse serio1: synaptics: queried max coordinates: x [..5676], y [..4754]
[153131.610758] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1100..]
[189275.078662] psmouse serio2: Failed to disable mouse on synaptics-pt/serio0
[189276.740406] psmouse serio1: synaptics: queried max coordinates: x [..5676], y [..4754]
[189276.774166] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1100..]
[198254.977092] psmouse serio1: synaptics: queried max coordinates: x [..5676], y [..4754]
[198255.010772] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1100..]
Comment 1 Krasi 2018-02-18 14:12:47 UTC
bump
Comment 2 Nate Graham 2018-02-20 01:42:26 UTC
Almost certainly a dupe of Bug 98839. See if the next version of Libinput fixes it for you. If it does, that was it. If it doesn't, then please re-open the bug. Thanks!

*** This bug has been marked as a duplicate of bug 98839 ***
Comment 3 Krasi 2018-02-20 09:24:40 UTC
with 1.10 it is most certainly better, but the issue is still there.
Comment 4 Krasi 2018-02-23 21:13:30 UTC
after using it for a week now I can say this it behaves a bit differently but certainly it is not better than 1.9 , small objects and text are very difficult to select and click.

do you need anymore info to find the culprit?
Comment 5 Krasi 2018-03-02 08:30:11 UTC
bump
Comment 6 Peter Hutterer 2018-03-06 23:46:29 UTC
there's no need to bump bugs, I look at the list of open libinput bugs and unless they're closed, they're not going away. Whether I find time to work on any specific bug is a completely different question though :(
Comment 7 Krasi 2018-03-07 00:10:49 UTC
ok noted.

Just don't want it to get buried down the list.
Comment 8 L Holland 2018-03-11 10:55:35 UTC
FWIW I also see this exact issue on a thinkpad t440p. I'm running libinput 1.10.1 under Arch with a 4.15.7 kernel.
Comment 9 Peter Hutterer 2018-03-12 03:59:42 UTC
Please try libinput master 49a8bd3ca76d11b1ec or later, thanks.
Comment 10 L Holland 2018-03-12 08:00:12 UTC
Hi, I've just built and installed libinput MASTER HEAD (your build instructions are great, BTW, thanks for that. Perhaps worth noting that I had to install doxygen, check and valgrind as well to get the meson build to run)

Fine pointer motion is still rather jerky, I'm afraid. It's hard to be sure, but I think there might be a slight improvement, but it's still not smooth enough to be usable for fine work in e.g. GIMP or Inkscape. I'm going to try reverting back to 1.10.2 to see if I can discern any difference.

Let me know if you want me to submit some logs as well.
Comment 11 L Holland 2018-03-12 08:10:08 UTC
So I've switched back and forth between HEAD and 1.10.2 and if there's a difference in the fine pointer movement, it's very slight. They're both jumpy when you move really slowly across the touchpad.
Comment 12 Peter Hutterer 2018-03-12 09:55:38 UTC
I forgot to mention: git master requires a reboot because it changes udev rules for each device *and* it changes the kernel device. So basically, you'd have to reboot every time after switching. But if the jumps happen only at the slowest speeds, it's unlikely to be that issue. I'll need an evemu-record of one these movements please, thanks.
Comment 13 L Holland 2018-03-12 10:09:29 UTC
Yeah, I rebooted after each change to be sure. I'll try and sort out an evemu-record this evening. Thanks for all your work on this!
Comment 14 L Holland 2018-03-18 11:00:43 UTC
Created attachment 138176 [details]
Evemu recording of fine movement with jumps

Sorry for the delay, here's a brief evemu recording of me moving the cursor very slowly using the touchpad on my Thinkpad T440p. Hopefully this will provide some enlightenment. Let me know if there's anything else you need me to provide.
Comment 15 Krasi 2018-03-18 11:04:25 UTC
Created attachment 138177 [details]
nonrelevant email garbage

I can also provide a recording if needed. just let me know the command I need to run.

Krasi Georgiev

On Mar 18 2018, at 1:00 pm, bugzilla-daemon@freedesktop.org wrote:
>
>
>
> Comment # 14 (https://bugs.freedesktop.org/show_bug.cgi?id=105022#c14) on bug 105022 (https://bugs.freedesktop.org/show_bug.cgi?id=105022) from L Holland (mailto:lucian+freedesktop@symposion.co.uk)
> Created attachment 138176 [details] (attachment.cgi?id=138176) [details] (attachment.cgi?id=138176&action=edit)
> Evemu recording of fine movement with jumps
>
> Sorry for the delay, here's a brief evemu recording of me moving the cursor
> very slowly using the touchpad on my Thinkpad T440p. Hopefully this will
> provide some enlightenment. Let me know if there's anything else you need me to
> provide.
> You are receiving this mail because:
> You reported the bug.
>
>
>
Comment 16 L Holland 2018-03-18 11:08:59 UTC
(In reply to Krasi from comment #15)
> 
> I can also provide a recording if needed. just let me know the command I
> need to run.
> 
I don't know whether Peter needs it or not, but all the details on how to make a recording (and generally how to report bugs against libinput) are here: https://wayland.freedesktop.org/libinput/doc/latest/reporting_bugs.html
Comment 17 Krasi 2018-03-18 11:17:20 UTC
Created attachment 138178 [details]
move.evemu

thanks , recording attached.

Krasi Georgiev

On Mar 18 2018, at 1:08 pm, bugzilla-daemon@freedesktop.org wrote:
>
>
>
> Comment # 16 (https://bugs.freedesktop.org/show_bug.cgi?id=105022#c16) on bug 105022 (https://bugs.freedesktop.org/show_bug.cgi?id=105022) from L Holland (mailto:lucian+freedesktop@symposion.co.uk)
> (In reply to Krasi from comment #15 (show_bug.cgi?id=105022#c15))
> >
> > I can also provide a recording if needed. just let me know the command I
> > need to run.
> >
> I don't know whether Peter needs it or not, but all the details on how to make
> a recording (and generally how to report bugs against libinput) are here:
> https://wayland.freedesktop.org/libinput/doc/latest/reporting_bugs.html
> You are receiving this mail because:
> You reported the bug.
>
>
>
Comment 18 Peter Hutterer 2018-03-19 05:34:01 UTC
Created attachment 138188 [details]
analysis of attachment  138178 [details]

Analysis of attachment 138178 [details], printing the deltas from event to event. you can clearly see the long stints of no updated motion data, then suddenly there's a massive jump. This is garbage data coming from the kernel (well, the device).
Comment 19 Peter Hutterer 2018-03-19 05:36:34 UTC
Created attachment 138189 [details]
analysis of attachment  138176 [details]

Analysis of attachment 138176 [details], printing the delta from event to event. You can see the sections of no movement data and then the first event (sometimes more) is a large one. That's your jump right there. This is garbage data coming from the device.
Comment 20 Peter Hutterer 2018-03-19 05:43:44 UTC
Created attachment 138190 [details] [review]
0001-udev-add-the-P50-to-the-T450-jumping-motion-quirks.patch

This one should fix the P50, not sure what to do about the T440p yet.
Comment 21 Krasi 2018-03-20 09:16:07 UTC
Created attachment 138215 [details]
move.evemu

Thank you big time.

it still jumps occasionally , but it is much better now.
sometimes it stops responding , but I guess this is because of the garbage.
it is so annoying that it works perfectly fine under windows.

recording attached.

Krasi Georgiev

On Mar 19 2018, at 7:43 am, bugzilla-daemon@freedesktop.org wrote:
>
>
>
> Comment # 20 (https://bugs.freedesktop.org/show_bug.cgi?id=105022#c20) on bug 105022 (https://bugs.freedesktop.org/show_bug.cgi?id=105022) from Peter Hutterer (mailto:peter.hutterer@who-t.net)
> Created attachment 138190 [details] [review] (attachment.cgi?id=138190) [details] (attachment.cgi?id=138190&action=edit) [review] (page.cgi?id=splinter.html&bug=105022&attachment=138190)
> 0001-udev-add-the-P50-to-the-T450-jumping-motion-quirks.patch
>
> This one should fix the P50, not sure what to do about the T440p yet.
> You are receiving this mail because:
> You reported the bug.
>
>
>
Comment 22 Peter Hutterer 2018-03-20 10:29:08 UTC
Again, please trim your email replies, just hitting reply makes bugzilla noisy.

I wonder if that one can work with RMI4. Anything in the dmesg suggesting that you can switch? Try this as root:


echo 1 > /sys/module/psmouse/parameters/synaptics_intertouch && \
echo -n rescan > /sys/bus/serio/devices/serio1/drvctl

should bring up a new touchpad device that works with the new bus that Windows has been using for years and is more reliable than the PS2 emulation.
Comment 23 Krasi 2018-03-20 11:23:30 UTC
Created attachment 138218 [details]
email garbage

I run your command but didn't see any change in the behaviour. restarted just in case.

dmesg | grep RMI4 , shows no results.
libinput list-devices
Device: Power Button
Kernel: /dev/input/event2
Group: 1
Seat: seat0, default
Capabilities: keyboard
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: n/a
Nat.scrolling: n/a
Middle emulation: n/a
Calibration: n/a
Scroll methods: none
Click methods: none
Disable-w-typing: n/a
Accel profiles: n/a
Rotation: n/a

Device: Video Bus
Kernel: /dev/input/event6
Group: 2
Seat: seat0, default
Capabilities: keyboard
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: n/a
Nat.scrolling: n/a
Middle emulation: n/a
Calibration: n/a
Scroll methods: none
Click methods: none
Disable-w-typing: n/a
Accel profiles: n/a
Rotation: n/a

Device: Video Bus
Kernel: /dev/input/event5
Group: 2
Seat: seat0, default
Capabilities: keyboard
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: n/a
Nat.scrolling: n/a
Middle emulation: n/a
Calibration: n/a
Scroll methods: none
Click methods: none
Disable-w-typing: n/a
Accel profiles: n/a
Rotation: n/a

Device: Lid Switch
Kernel: /dev/input/event0
Group: 3
Seat: seat0, default
Capabilities: switch
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: n/a
Nat.scrolling: n/a
Middle emulation: n/a
Calibration: n/a
Scroll methods: none
Click methods: none
Disable-w-typing: n/a
Accel profiles: n/a
Rotation: n/a

Device: Sleep Button
Kernel: /dev/input/event1
Group: 4
Seat: seat0, default
Capabilities: keyboard
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: n/a
Nat.scrolling: n/a
Middle emulation: n/a
Calibration: n/a
Scroll methods: none
Click methods: none
Disable-w-typing: n/a
Accel profiles: n/a
Rotation: n/a

Device: Integrated Camera: Integrated C
Kernel: /dev/input/event9
Group: 5
Seat: seat0, default
Capabilities: keyboard
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: n/a
Nat.scrolling: n/a
Middle emulation: n/a
Calibration: n/a
Scroll methods: none
Click methods: none
Disable-w-typing: n/a
Accel profiles: n/a
Rotation: n/a

Device: HDA Intel PCH Mic
Kernel: /dev/input/event10
Group: 6
Seat: seat0, default
Capabilities:
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: n/a
Nat.scrolling: n/a
Middle emulation: n/a
Calibration: n/a
Scroll methods: none
Click methods: none
Disable-w-typing: n/a
Accel profiles: n/a
Rotation: n/a

Device: HDA Intel PCH Headphone
Kernel: /dev/input/event11
Group: 6
Seat: seat0, default
Capabilities:
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: n/a
Nat.scrolling: n/a
Middle emulation: n/a
Calibration: n/a
Scroll methods: none
Click methods: none
Disable-w-typing: n/a
Accel profiles: n/a
Rotation: n/a

Device: AT Translated Set 2 keyboard
Kernel: /dev/input/event3
Group: 7
Seat: seat0, default
Capabilities: keyboard
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: n/a
Nat.scrolling: n/a
Middle emulation: n/a
Calibration: n/a
Scroll methods: none
Click methods: none
Disable-w-typing: n/a
Accel profiles: n/a
Rotation: n/a

Device: SynPS/2 Synaptics TouchPad
Kernel: /dev/input/event4
Group: 8
Seat: seat0, default
Size: 100x55mm
Capabilities: pointer gesture
Tap-to-click: disabled
Tap-and-drag: enabled
Tap drag lock: disabled
Left-handed: disabled
Nat.scrolling: disabled
Middle emulation: n/a
Calibration: n/a
Scroll methods: *two-finger edge
Click methods: none
Disable-w-typing: enabled
Accel profiles: none
Rotation: n/a

Device: TPPS/2 IBM TrackPoint
Kernel: /dev/input/event7
Group: 9
Seat: seat0, default
Capabilities: pointer
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: disabled
Nat.scrolling: disabled
Middle emulation: disabled
Calibration: n/a
Scroll methods: *button
Click methods: none
Disable-w-typing: n/a
Accel profiles: flat *adaptive
Rotation: n/a

Device: ThinkPad Extra Buttons
Kernel: /dev/input/event8
Group: 10
Seat: seat0, default
Capabilities: keyboard
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: n/a
Nat.scrolling: n/a
Middle emulation: n/a
Calibration: n/a
Scroll methods: none
Click methods: none
Disable-w-typing: n/a
Accel profiles: n/a
Rotation: n/a

Krasi Georgiev
Comment 24 Peter Hutterer 2018-03-20 23:19:32 UTC
anything in the journal/dmesg when you run it?
Comment 25 Peter Hutterer 2018-03-20 23:34:54 UTC
commit ab55302ef88c3827ecc32f3dd3dc58ca7ebfb7a9
Author: Peter Hutterer <>
Date:   Mon Mar 19 15:39:22 2018 +1000

     udev: add the P50 to the T450 jumping motion quirks


L Holland: can you please create a new bug for the T440p, whatever we need for that is different than what we have here. Thanks.
Comment 26 Peter Hutterer 2018-03-21 09:37:57 UTC
Closing, L Holland filed bug 105640 for the t440 so I think we're done here
Comment 27 Krasi 2018-03-21 14:28:59 UTC
the mouse still jumps occasionally, not as bad as before, but the issue is still there.

I tried your other suggestion for the RMI4 , but didn't make any difference is there any other way to force it so I can see if it behaves better?
Comment 28 Peter Hutterer 2018-03-22 01:29:31 UTC
right, I forgot. can you attach your dmesg please?

> restarted just in case.

That would've undone the commandline and reset to the default, so the libinput list-devices output is the same as if you hadn't run the command at all. Any messages in the journal in response to that command would be useful
Comment 29 Krasi 2018-03-22 08:02:02 UTC
dmesg logs

[73377.193428] psmouse serio1: synaptics: queried max coordinates: x [..5676], y [..4754]
[73377.224428] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1100..]
[73377.224433] psmouse serio1: synaptics: Trying to set up SMBus access
[73377.227100] psmouse serio1: synaptics: SMbus companion is not ready yet
[73377.286718] psmouse serio1: synaptics: Touchpad model: 1, fw: 8.2, id: 0x1e2b1, caps: 0xf402a3/0x940300/0x2e800/0x0, board id: 3149, fw id: 2022239
[73377.286726] psmouse serio1: synaptics: serio: Synaptics pass-through port at isa0060/serio1/input0
[73377.324326] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input33
[73377.955579] psmouse serio5: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 3/3
[73378.149648] input: TPPS/2 IBM TrackPoint as /devices/platform/i8042/serio1/serio5/input/input34




journalctl logs


-- Logs begin at Sun 2018-02-11 19:18:27 EET. --
Mar 22 09:58:10 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) config/udev: removing device TPPS/2 IBM TrackPoint
Mar 22 09:58:10 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (**) Option "fd" "163"
Mar 22 09:58:10 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) event7  - TPPS/2 IBM TrackPoint: device removed
Mar 22 09:58:10 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) UnloadModule: "libinput"
Mar 22 09:58:10 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) systemd-logind: releasing fd for 13:71
Mar 22 09:58:10 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) config/udev: removing device SynPS/2 Synaptics TouchPad
Mar 22 09:58:10 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (**) Option "fd" "152"
Mar 22 09:58:10 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) event4  - SynPS/2 Synaptics TouchPad: device removed
Mar 22 09:58:10 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) UnloadModule: "libinput"
Mar 22 09:58:10 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) systemd-logind: releasing fd for 13:68
Mar 22 09:58:11 lenovo-p50 kernel: psmouse serio1: synaptics: queried max coordinates: x [..5676], y [..4754]
Mar 22 09:58:11 lenovo-p50 kernel: psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1100..]
Mar 22 09:58:11 lenovo-p50 kernel: psmouse serio1: synaptics: Trying to set up SMBus access
Mar 22 09:58:11 lenovo-p50 kernel: psmouse serio1: synaptics: SMbus companion is not ready yet
Mar 22 09:58:11 lenovo-p50 kernel: psmouse serio1: synaptics: Touchpad model: 1, fw: 8.2, id: 0x1e2b1, caps: 0xf402a3/0x940300/0x2e800/0x0, board id: 3149, fw id: 2022239
Mar 22 09:58:11 lenovo-p50 kernel: psmouse serio1: synaptics: serio: Synaptics pass-through port at isa0060/serio1/input0
Mar 22 09:58:11 lenovo-p50 kernel: input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input36
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) config/udev: Adding input device SynPS/2 Synaptics TouchPad (/dev/input/mouse0)
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) No input driver specified, ignoring this device.
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) This device may have been added with another device file.
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[1345]: (II) config/udev: Adding input device SynPS/2 Synaptics TouchPad (/dev/input/mouse0)
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[1345]: (II) No input driver specified, ignoring this device.
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[1345]: (II) This device may have been added with another device file.
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) config/udev: Adding input device SynPS/2 Synaptics TouchPad (/dev/input/event4)
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (**) SynPS/2 Synaptics TouchPad: Applying InputClass "evdev touchpad catchall"
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (**) SynPS/2 Synaptics TouchPad: Applying InputClass "libinput touchpad catchall"
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) Using input driver 'libinput' for 'SynPS/2 Synaptics TouchPad'
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[1345]: (II) config/udev: Adding input device SynPS/2 Synaptics TouchPad (/dev/input/event4)
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[1345]: (**) SynPS/2 Synaptics TouchPad: Applying InputClass "evdev touchpad catchall"
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[1345]: (**) SynPS/2 Synaptics TouchPad: Applying InputClass "libinput touchpad catchall"
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[1345]: (II) Using input driver 'libinput' for 'SynPS/2 Synaptics TouchPad'
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[1345]: (II) systemd-logind: got fd for /dev/input/event4 13:68 fd 30 paused 1
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[1345]: (II) systemd-logind: releasing fd for 13:68
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) systemd-logind: got fd for /dev/input/event4 13:68 fd 152 paused 0
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (**) SynPS/2 Synaptics TouchPad: always reports core events
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (**) Option "Device" "/dev/input/event4"
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (**) Option "_source" "server/udev"
Mar 22 09:58:11 lenovo-p50 dbus-daemon[1065]: [system] Rejected send message, 0 matched rules; type="error", sender=":1.11" (uid=0 pid=1145 comm="/usr/lib/systemd/systemd-logind " label="system_u:system_r:systemd_logind_t:s0") interface="(unset)" member="(unset)" error name="org.freedesktop.DBus.Error.UnknownMethod" requested_reply="0" destination=":1.38" (uid=42 pid=1351 comm="/usr/libexec/Xorg vt1 -displayfd 3 -auth /run/user" label="system_u:system_r:xserver_t:s0-s0:c0.c1023")
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) event4  - SynPS/2 Synaptics TouchPad: is tagged by udev as: Touchpad
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) event4  - SynPS/2 Synaptics TouchPad: device is a touchpad
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) event4  - SynPS/2 Synaptics TouchPad: device removed
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio1/input/input36/event4"
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) XINPUT: Adding extended input device "SynPS/2 Synaptics TouchPad" (type: TOUCHPAD, id 12)
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (**) Option "AccelerationScheme" "none"
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (**) SynPS/2 Synaptics TouchPad: (accel) selected scheme none/0
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (**) SynPS/2 Synaptics TouchPad: (accel) acceleration factor: 2.000
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (**) SynPS/2 Synaptics TouchPad: (accel) acceleration threshold: 4
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) event4  - SynPS/2 Synaptics TouchPad: is tagged by udev as: Touchpad
Mar 22 09:58:11 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) event4  - SynPS/2 Synaptics TouchPad: device is a touchpad
Mar 22 09:58:11 lenovo-p50 dbus-daemon[1065]: [system] Rejected send message, 0 matched rules; type="error", sender=":1.11" (uid=0 pid=1145 comm="/usr/lib/systemd/systemd-logind " label="system_u:system_r:systemd_logind_t:s0") interface="(unset)" member="(unset)" error name="org.freedesktop.DBus.Error.UnknownMethod" requested_reply="0" destination=":1.74" (uid=1000 pid=2112 comm="/usr/libexec/Xorg vt2 -displayfd 3 -auth /run/user" label="unconfined_u:unconfined_r:xserver_t:s0-s0:c0.c1023")
Mar 22 09:58:11 lenovo-p50 kernel: psmouse serio6: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 3/3
Mar 22 09:58:12 lenovo-p50 kernel: input: TPPS/2 IBM TrackPoint as /devices/platform/i8042/serio1/serio6/input/input37
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[1345]: (II) config/udev: Adding input device TPPS/2 IBM TrackPoint (/dev/input/mouse1)
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[1345]: (II) No input driver specified, ignoring this device.
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[1345]: (II) This device may have been added with another device file.
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) config/udev: Adding input device TPPS/2 IBM TrackPoint (/dev/input/mouse1)
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) No input driver specified, ignoring this device.
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) This device may have been added with another device file.
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[1345]: (II) config/udev: Adding input device TPPS/2 IBM TrackPoint (/dev/input/event7)
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[1345]: (**) TPPS/2 IBM TrackPoint: Applying InputClass "evdev pointer catchall"
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[1345]: (**) TPPS/2 IBM TrackPoint: Applying InputClass "libinput pointer catchall"
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[1345]: (II) Using input driver 'libinput' for 'TPPS/2 IBM TrackPoint'
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) config/udev: Adding input device TPPS/2 IBM TrackPoint (/dev/input/event7)
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (**) TPPS/2 IBM TrackPoint: Applying InputClass "evdev pointer catchall"
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (**) TPPS/2 IBM TrackPoint: Applying InputClass "libinput pointer catchall"
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) Using input driver 'libinput' for 'TPPS/2 IBM TrackPoint'
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) systemd-logind: got fd for /dev/input/event7 13:71 fd 163 paused 0
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (**) TPPS/2 IBM TrackPoint: always reports core events
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (**) Option "Device" "/dev/input/event7"
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (**) Option "_source" "server/udev"
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[1345]: (II) systemd-logind: got fd for /dev/input/event7 13:71 fd 30 paused 1
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[1345]: (II) systemd-logind: releasing fd for 13:71
Mar 22 09:58:12 lenovo-p50 dbus-daemon[1065]: [system] Rejected send message, 0 matched rules; type="error", sender=":1.11" (uid=0 pid=1145 comm="/usr/lib/systemd/systemd-logind " label="system_u:system_r:systemd_logind_t:s0") interface="(unset)" member="(unset)" error name="org.freedesktop.DBus.Error.UnknownMethod" requested_reply="0" destination=":1.74" (uid=1000 pid=2112 comm="/usr/libexec/Xorg vt2 -displayfd 3 -auth /run/user" label="unconfined_u:unconfined_r:xserver_t:s0-s0:c0.c1023")
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) event7  - TPPS/2 IBM TrackPoint: is tagged by udev as: Mouse Pointingstick
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) event7  - TPPS/2 IBM TrackPoint: trackpoint device set to range 20
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) event7  - TPPS/2 IBM TrackPoint: device is a pointer
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) event7  - TPPS/2 IBM TrackPoint: device removed
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio1/serio6/input/input37/event7"
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) XINPUT: Adding extended input device "TPPS/2 IBM TrackPoint" (type: MOUSE, id 13)
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (**) Option "AccelerationScheme" "none"
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (**) TPPS/2 IBM TrackPoint: (accel) selected scheme none/0
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (**) TPPS/2 IBM TrackPoint: (accel) acceleration factor: 2.000
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (**) TPPS/2 IBM TrackPoint: (accel) acceleration threshold: 4
Mar 22 09:58:12 lenovo-p50 dbus-daemon[1065]: [system] Rejected send message, 0 matched rules; type="error", sender=":1.11" (uid=0 pid=1145 comm="/usr/lib/systemd/systemd-logind " label="system_u:system_r:systemd_logind_t:s0") interface="(unset)" member="(unset)" error name="org.freedesktop.DBus.Error.UnknownMethod" requested_reply="0" destination=":1.38" (uid=42 pid=1351 comm="/usr/libexec/Xorg vt1 -displayfd 3 -auth /run/user" label="system_u:system_r:xserver_t:s0-s0:c0.c1023")
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) event7  - TPPS/2 IBM TrackPoint: is tagged by udev as: Mouse Pointingstick
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) event7  - TPPS/2 IBM TrackPoint: trackpoint device set to range 20
Mar 22 09:58:12 lenovo-p50 /usr/libexec/gdm-x-session[2110]: (II) event7  - TPPS/2 IBM TrackPoint: device is a pointer
Comment 30 Peter Hutterer 2018-03-22 23:47:29 UTC
krasi, this is unreadable and just noise now. please *attach* your dmesg
Comment 31 Krasi 2018-03-23 08:04:28 UTC
Created attachment 138303 [details]
dmesg_journalctl
Comment 32 Krasi 2018-03-29 19:59:16 UTC
is the attachment ok?

just to confirm that the mouse still jumps. 
Less often, but the issue is still there.

I can make another recording if needed.
Comment 33 Tim Richardson 2018-04-03 00:58:19 UTC
Sadly, I agree. The mouse still jumps. Actually, I don't notice any difference. 

This is a build today from git master, and a reboot too.

Windows has a very different acceleration profile, it is a very negative acceleration factor at slow movements. If I use -0.9 for Accel Speed, I get the touchpad accuracy needed to make using it a confident experience, but then it's very slow. Windows ramps up acceleration much faster. After the recent improvements to libinput, I'm using Accel Speed 0.
Comment 34 Tim Richardson 2018-04-03 01:11:17 UTC
Created attachment 138510 [details]
evemu recording, a good example near the end
Comment 35 Tim Richardson 2018-04-03 01:14:16 UTC
dmesg | grep TouchPad
[    4.073295] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input5
[ 3513.640310] input: SynPS/2 Synaptics TouchPad as /devices/virtual/input/input13
tim@raffles:~$
Comment 36 Krasi 2018-04-05 08:43:23 UTC
btw after this patch the scrolling becomes really slow so I reverted it.
Comment 37 Peter Hutterer 2018-04-09 03:40:33 UTC
this patch should have no effect on scrolling behaviour, unless the scroll motion is very slow. Do you see this only on slow scrolling or on all scroll movements?


Tim: from your attachment:
E: 27.760187 0003 0035 3727	# EV_ABS / ABS_MT_POSITION_X    3727

then, 2s later the next X axis update at:
E: 29.537905 0003 0035 3622	# EV_ABS / ABS_MT_POSITION_X    3622

At a resolution of 44 units per mm this is a >2mm jump in input coordinates. The patch from comment 25 should have taken care of it though, provided it was active (make sure you run udevadm hwdb --update after installing it and rebooting).
Comment 38 Krasi 2018-04-09 07:47:53 UTC
It affected all scrolling. After reverting the patch it all went back to normal.
Comment 39 Tim Richardson 2018-04-09 09:41:23 UTC
Peter, thanks for your code. It's very easy to build, very easy to understand. 

I made this change, but it makes no difference

diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c
index 99cbcc56..6e75322d 100644
--- a/src/evdev-mt-touchpad.c
+++ b/src/evdev-mt-touchpad.c
@@ -1411,7 +1411,7 @@ tp_need_motion_history_reset(struct tp_dispatch *tp)
         */
        if (tp->device->model_flags & EVDEV_MODEL_LENOVO_T450_TOUCHPAD) {
                if (tp->queued & TOUCHPAD_EVENT_MOTION) {
-                       if (tp->quirks.nonmotion_event_count > 10) {
+                       if (tp->quirks.nonmotion_event_count > 0) {
                                tp->queued &= ~TOUCHPAD_EVENT_MOTION;
                                rc = true;
                        }


That large jump in cursor movement is really a problem. It is not ignored, even by the code above (which was applied when I took that recording, and I both updated and rebooted). 

It is treated as a rapid movement and accelerated. The only way I can get a good touchpad experience is an acceleration factor < -0.7

I plan to understand the acceleration logic and change it somehow, so that there must be a certain number of events before acceleration is applied, similar to the idea in the code above.
Comment 40 Peter Hutterer 2018-04-09 22:59:27 UTC
Krasi:
I've reverted the patch upstream, (commit e8cb7e4) Unsure how it can affect scrolling but at this point I'm so out of time for everything that I'll need your/someone's help debugging this any further, sorry.



Tim:
can we move this to a separate bug please? This one is too noisy to still figure out what's going on. As a general tip - when you're working on libinput, put printfs in everywhere and run either sudo ./build/libinput-debug-events (commandline) or sudo ./build/libinput-debug-gui (a GUI). No need to install and restart X just for basic testing.

If even the above makes no difference, it's likely that the model flag is never applied, put a printf in for that in evdev.c. 

> I plan to understand the acceleration logic and change it somehow, so that 
> there must be a certain number of events before acceleration is applied, 
> similar to the idea in the code above.

That's an interesting idea. We previously had code that we required N events for the pointer to start moving, but that didn't work well, too laggy. But not having acceleration for the first N events could work (N <=2, I suspect...)
Comment 41 Peter Hutterer 2018-04-13 01:42:12 UTC
Krasi: As tim said in bug 105963: "I confirm that I have no adverse side effects from the P50 rule". Please re-test with the patch and make sure that it does affect scrolling, and if it does please attach an evemu-recording of a scroll event that is affected negatively. Otherwise, I'll revert the revert and push the previous fix out again.
Comment 42 Krasi 2018-04-16 09:49:26 UTC
I installed again and can't replicate, but will monitor the next few days and will let you know if it happens again.
It might be something related to my attempt to enable RMI4 which were reverted after the restart.

This patch eliminates 80% of the jumps, but doesn't make it easier to adjust to small objects.
Windows border grabbing for resizing and text selection is the hardest. 
Sometimes needing meditation to calm down after 20 attempts to grab a window border :)

What happens now is that on small movements the mouse stops moving all together and than if I continue moving my finger it will starts moving slowly after a while, but it is unpredictable when it will start this slow motion so essentially this makes it kind if difficult to predict and selecting or adjusting to small objects is still hard. 


I would like to try your RMI4 suggestion if you have any other pointers how to enable.
Comment 43 Peter Hutterer 2018-04-17 01:50:30 UTC
> This patch eliminates 80% of the jumps, but doesn't make it easier to adjust to small objects.

Let's not mix issues because it gets too hard to track, this bug is already quite noisy. Let's fix the jumps first, then you can file a new bug for the movement-related issues.

Also note: we cannot fix everything in libinput because the device itself is giving us garbage. We can detect and work around the real jumps, but if the touchpad is only giving us a position update every 20 events, we cannot do much.

Your best option may actually be to lower the touchpad speed. This forces you to move the finger faster for everything, thus making it less likely that you get exposed to this particular bug.

You can try adding psmouse.synaptics_intertouch=1 to your kernel commandline at boot, maybe that gets around the "companion not ready yet" issue. But I doubt it, maybe your device just won't like RMI4.
Comment 44 Peter Hutterer 2018-04-18 06:17:36 UTC
re-pushed the patch as 

commit 0dccaa8a424022b7a4ed6b7022dd849e8d813225
Author: Peter Hutterer <>
Date:   Mon Mar 19 15:39:22 2018 +1000

     udev: add the P50 to the T450 jumping motion quirks

I'm considering this fixed for now because it removes the majority of jumps. For any other remaining issues, please file a separate bug because this one is getting too noisy

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.