[PATCH libinput] evdev: Log evdev event queue overflows

Peter Hutterer peter.hutterer at who-t.net
Mon Oct 27 17:15:59 PDT 2014


On Mon, Oct 27, 2014 at 09:26:39AM -0500, Derek Foreman wrote:
> 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;

tbh, I'd prefer some naming like syn_dropped_received or somesuch.
'overflow' has a lot of different meanings, syn_dropped means exactly one
thing.

same goes for the message, if you put SYN_DROPPED in there it's really easy
to google for it (e.g. libevdev has a page that details what happens).
"Kernel evdev event queue overflow" is harder to figure out, so we'd have to
explain it more often to peopl on the lists.

ack to the rest.

Cheers,
   Peter


>  	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
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
> 


More information about the wayland-devel mailing list