From: Johan Hovold <johan@kernel.org>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: Johan Hovold <johan@kernel.org>, Pavel Machek <pavel@ucw.cz>,
linux-serial@vger.kernel.org,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-kernel@vger.kernel.org,
Jacek Anaszewski <jacek.anaszewski@gmail.com>,
kernel@pengutronix.de, Jiri Slaby <jslaby@suse.com>,
linux-leds@vger.kernel.org, Dan Murphy <dmurphy@ti.com>
Subject: Re: [PATCH v7 3/3] leds: trigger: implement a tty trigger
Date: Wed, 22 Jul 2020 10:34:25 +0200 [thread overview]
Message-ID: <20200722083425.GF3634@localhost> (raw)
In-Reply-To: <20200721194815.mmkqccrkbgrly4xz@pengutronix.de>
[-- Attachment #1: Type: text/plain, Size: 1528 bytes --]
On Tue, Jul 21, 2020 at 09:48:15PM +0200, Uwe Kleine-König wrote:
> Hello Johan,
>
> On Tue, Jul 14, 2020 at 09:13:55AM +0200, Johan Hovold wrote:
> > On Tue, Jul 07, 2020 at 06:59:58PM +0200, Uwe Kleine-König wrote:
> > > + while (firstrun ||
> > > + icount.rx != trigger_data->rx ||
> > > + icount.tx != trigger_data->tx) {
> > > +
> > > + led_set_brightness(trigger_data->led_cdev, LED_ON);
> > > +
> > > + msleep(100);
> > > +
> > > + led_set_brightness(trigger_data->led_cdev, LED_OFF);
> > > +
> > > + trigger_data->rx = icount.rx;
> > > + trigger_data->tx = icount.tx;
> > > + firstrun = false;
> > > +
> > > + ret = tty_get_icount(trigger_data->tty, &icount);
> > > + if (ret)
> > > + return;
> > > + }
> >
> > Haven't looked at the latest proposal in detail, but this looks broken
> > as you can potentially loop indefinitely in a worker thread, and with no
> > way to stop the trigger (delayed work).
>
> I don't think that potentially looping indefinitely is a problem, but
> indeed it should drop the lock during each iteration. Will think about
> how to adapt.
You musn't queue work that can run for long on the global shared
workqueue as it affects flushing:
* system_wq is the one used by schedule[_delayed]_work[_on]().
* Multi-CPU multi-threaded. There are users which expect relatively
* short queue flush time. Don't queue works which can run for too
* long.
Work that potentially run indefinitely is an absolute no-no. :)
Johan
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
prev parent reply other threads:[~2020-07-22 8:34 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-07 16:59 [PATCH v7 0/3] leds: trigger: implement a tty trigger Uwe Kleine-König
2020-07-07 16:59 ` [PATCH v7 1/3] tty: rename tty_kopen() and add new function tty_kopen_shared() Uwe Kleine-König
2020-07-07 16:59 ` [PATCH v7 2/3] tty: new helper function tty_get_icount() Uwe Kleine-König
2020-07-07 16:59 ` [PATCH v7 3/3] leds: trigger: implement a tty trigger Uwe Kleine-König
2020-07-12 8:24 ` Pavel Machek
2020-07-12 8:43 ` Greg Kroah-Hartman
2020-07-12 8:50 ` Pavel Machek
2020-07-12 9:02 ` Greg Kroah-Hartman
2020-07-12 9:07 ` Pavel Machek
2020-07-12 9:31 ` Greg Kroah-Hartman
2020-07-13 10:26 ` Uwe Kleine-König
2020-07-14 7:13 ` Johan Hovold
2020-07-21 19:48 ` Uwe Kleine-König
2020-07-22 8:34 ` Johan Hovold [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200722083425.GF3634@localhost \
--to=johan@kernel.org \
--cc=dmurphy@ti.com \
--cc=gregkh@linuxfoundation.org \
--cc=jacek.anaszewski@gmail.com \
--cc=jslaby@suse.com \
--cc=kernel@pengutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=pavel@ucw.cz \
--cc=u.kleine-koenig@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.