Re: Wyland is a disaster

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jan 31, 2018 at 10:18:14PM +0000, Tomasz Kłoczko wrote:
> On 31 January 2018 at 22:09, Tomasz Kłoczko <kloczko.tomasz@xxxxxxxxx>
> wrote:
> [..]
> 
> > Why I think that it may be related to libinput? Because in logs I see as
> > well another type of entries:
> >
> > #  journalctl -xe | grep libinput
> > Jan 31 21:55:18 domek org.gnome.Shell.desktop[2153]: libinput error:
> > libinput bug: timer event5 debounce: offset negative (-354ms)
> > Jan 31 21:55:18 domek org.gnome.Shell.desktop[2153]: libinput error:
> > libinput bug: timer event5 debounce short: offset negative (-368ms)
> > Jan 31 21:56:27 domek org.gnome.Shell.desktop[2153]: libinput error:
> > libinput bug: timer event5 debounce: offset negative (-1107ms)
> > Jan 31 21:56:27 domek org.gnome.Shell.desktop[2153]: libinput error:
> > libinput bug: timer event5 debounce short: offset negative (-1120ms)
> > Jan 31 22:05:12 domek org.gnome.Shell.desktop[2153]: libinput error:
> > libinput bug: timer event4 keyboard: offset negative (-331ms)
> > Jan 31 22:06:05 domek org.gnome.Shell.desktop[2153]: libinput error:
> > libinput bug: timer event4 keyboard: offset negative (-750ms)
> > Jan 31 22:06:05 domek org.gnome.Shell.desktop[2153]: libinput error:
> > libinput bug: timer event4 keyboard: offset negative (-413ms)

timer offset bugs almost always mean that libinput_dispatch() isn't called
quickly enough when its fd triggers. We rely on the compositor for that, so
you can blame gnome shell here.

Internally, libinput uses event timestamps and uses them for timers (e.g.
tap timer, debouncing, etc.). Let's assume an event happens, our timeout is
150ms but it takes 500ms after the event before calling libinput_dispatch(),
the timer offset is now 350ms in the past - that's what libinput warns about.

It's not a killer but it does mean that whatever libinput was trying to do
won't work correctly. In your case, the 'keyboard' timer is the one used in
disable-while-typing. So expect that not to work correctly.

Also: the keyboard timer is 500ms, and you have a neg. offset of 750ms. This
is a delay of 1250ms, that's crazy! Something's hogging gnome shell here and
it doesn't get to handle input.

> Correction:
> 
> # libinput list-devices | grep ^Device -A1
> Device:           Video Bus
> Kernel:           /dev/input/event7
> --
> Device:           Sony Vaio Jogdial
> Kernel:           /dev/input/event9
> --
> Device:           Sony Vaio Keys
> Kernel:           /dev/input/event8
> --
> Device:           Video Bus
> Kernel:           /dev/input/event6
> --
> Device:           Power Button
> Kernel:           /dev/input/event1
> --
> Device:           Lid Switch
> Kernel:           /dev/input/event0
> --
> Device:           USB 2.0 Camera: USB Camera
> Kernel:           /dev/input/event13
> --
> Device:           HDA Intel PCH Headphone
> Kernel:           /dev/input/event10
> --
> Device:           HDA Intel PCH HDMI/DP,pcm=3
> Kernel:           /dev/input/event11
> --
> Device:           HDA Intel PCH HDMI/DP,pcm=7
> Kernel:           /dev/input/event12
> --
> Device:           Logitech M185
> Kernel:           /dev/input/event5
> --
> Device:           CD002 CD002
> Kernel:           /dev/input/event3
> --
> Device:           AT Translated Set 2 keyboard
> Kernel:           /dev/input/event2
> --
> Device:           AlpsPS/2 ALPS GlidePoint
> Kernel:           /dev/input/event4
> 
> So event4 it is in my case touch pad and event5  it is Logitech M185 mouse.
> In other words: those "libinput bug" log entries looks like are not related
> to emitting those short bursts of repeating keystrokes.
 
not directly, but they indicate where the issue is: key repeat is handled in
the clients, not in libinput. With delays like this it's easy to see why you
would get key repeat - if your key release event is delayed by 300ms or more
the client will handle repeats before it gets the events.

But the real cause of the issue is that you're getting crazy delays because
gnome-shell is too busy with something else. The rest is fallout from that.

Cheers,
   Peter
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux