Message ID | 20191204155912.17590-9-brgl@bgdev.pl |
---|---|
State | New |
Headers | show |
Series | gpiolib: add an ioctl() for monitoring line status changes | expand |
On Wed, Dec 4, 2019 at 6:04 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > > From: Bartosz Golaszewski <bgolaszewski@baylibre.com> > > Currently if the line-event kfifo is full, we just silently drop any new > events. Add a ratelimited debug message so that we at least have some > trace in the kernel log of event overflow. > Hmm... I don't like prints in IRQ context (even threaded). Can we rather switch to trace points at some point? > @@ -975,6 +975,9 @@ static irqreturn_t lineevent_irq_thread(int irq, void *p) > ret = kfifo_in_spinlocked(&le->events, &ge, 1, &le->wait.lock); > if (ret) > wake_up_poll(&le->wait, EPOLLIN); > + else > + pr_debug_ratelimited( > + "%s: event FIFO is full - event dropped\n", __func__); > > return IRQ_HANDLED;
śr., 4 gru 2019 o 23:28 Andy Shevchenko <andy.shevchenko@gmail.com> napisał(a): > > On Wed, Dec 4, 2019 at 6:04 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > > > > From: Bartosz Golaszewski <bgolaszewski@baylibre.com> > > > > Currently if the line-event kfifo is full, we just silently drop any new > > events. Add a ratelimited debug message so that we at least have some > > trace in the kernel log of event overflow. > > > > Hmm... I don't like prints in IRQ context (even threaded). > Can we rather switch to trace points at some point? > This is something that will be very rare and unlikely - I don't see how trace points will help here with all the boiler-plate. Bart
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 43f90eca6d45..c89d297da270 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -975,6 +975,9 @@ static irqreturn_t lineevent_irq_thread(int irq, void *p) ret = kfifo_in_spinlocked(&le->events, &ge, 1, &le->wait.lock); if (ret) wake_up_poll(&le->wait, EPOLLIN); + else + pr_debug_ratelimited( + "%s: event FIFO is full - event dropped\n", __func__); return IRQ_HANDLED; }