On Mon, Oct 27, 2014 at 09:33:45AM -0500, Derek Foreman wrote: > A couple of questions on this one: > Is it ok to limit logging to 10 messages like this?
IMO yes. > Should I be doing that on a per device basis instead of globally? you are doing it per-device here, I'm not sure what you mean with the question, sorry. > > (I'm totally unattached to the specifics of the log text, I believe X > says something clever about how it's not the X server's fault to avoid > silly bug reports...) that's a different error message, caused when the server-internal EQ overflows. and the reason for the message is because the backtrace that X prints then shows the input code as culprit, when the real issue is 5-6 stack frames up the stack. this wouldn't be necessary here, though we could theoretically run into the same issue: if rendering delays reading from the input fds for too long, we can trigger SYN_DROPPED. Cheers, Peter > On 27/10/14 09:26 AM, 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; > > 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 */ > > > _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel