mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-02-04 09:20:29 +01:00
evdev: Log evdev event queue overflows
Log a message when the kernel event queue overflows and events are dropped. After 10 messages logging stops to avoid flooding the logs if the condition is persistent. Signed-off-by: Derek Foreman <derekf@osg.samsung.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
2cef5a26cd
commit
84d59fe8e6
2 changed files with 15 additions and 0 deletions
11
src/evdev.c
11
src/evdev.c
|
|
@ -924,6 +924,17 @@ evdev_device_dispatch(void *data)
|
|||
rc = libevdev_next_event(device->evdev,
|
||||
LIBEVDEV_READ_FLAG_NORMAL, &ev);
|
||||
if (rc == LIBEVDEV_READ_STATUS_SYNC) {
|
||||
if (device->syn_drops_received < 10) {
|
||||
device->syn_drops_received++;
|
||||
log_info(libinput, "SYN_DROPPED event from "
|
||||
"\"%s\" - some input events have "
|
||||
"been lost.\n", device->devname);
|
||||
if (device->syn_drops_received == 10)
|
||||
log_info(libinput, "No longer logging "
|
||||
"SYN_DROPPED events for "
|
||||
"\"%s\"\n", device->devname);
|
||||
}
|
||||
|
||||
/* send one more sync event so we handle all
|
||||
currently pending events before we sync up
|
||||
to the current state */
|
||||
|
|
|
|||
|
|
@ -135,6 +135,10 @@ struct evdev_device {
|
|||
/* Checks if buttons are down and commits the setting */
|
||||
void (*change_to_left_handed)(struct evdev_device *device);
|
||||
} buttons;
|
||||
|
||||
/* The number of times libevdev processes a SYN_DROPPED, so we can
|
||||
* stop logging them to avoid flooding the logs. */
|
||||
int syn_drops_received;
|
||||
};
|
||||
|
||||
#define EVDEV_UNHANDLED_DEVICE ((struct evdev_device *) 1)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue