[PATCH libinput] evdev: Log evdev event queue overflows
Derek Foreman
derekf at osg.samsung.com
Mon Oct 27 07:26:39 PDT 2014
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.
---
src/evdev.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/evdev.c b/src/evdev.c
index 1b4ce10..c786537 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -912,6 +912,7 @@ evdev_sync_device(struct evdev_device *device)
static void
evdev_device_dispatch(void *data)
{
+ static int overflows = 0;
struct evdev_device *device = data;
struct libinput *libinput = device->base.seat->libinput;
struct input_event ev;
@@ -924,6 +925,15 @@ evdev_device_dispatch(void *data)
rc = libevdev_next_event(device->evdev,
LIBEVDEV_READ_FLAG_NORMAL, &ev);
if (rc == LIBEVDEV_READ_STATUS_SYNC) {
+ if (overflows < 10) {
+ overflows++;
+ log_info(libinput, "Kernel evdev event queue "
+ "overflow for %s\n", device->devname);
+ if (overflows == 10)
+ log_info(libinput, "No longer logging "
+ "evdev event queue overflows\n");
+ }
+
/* send one more sync event so we handle all
currently pending events before we sync up
to the current state */
--
2.1.1
More information about the wayland-devel
mailing list