linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kent Gibson <warthog618@gmail.com>
To: Bartosz Golaszewski <brgl@bgdev.pl>
Cc: Linus Walleij <linus.walleij@linaro.org>,
	linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org,
	Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Subject: Re: [PATCH 5/5] gpiolib: notify user-space about in-kernel line state changes
Date: Sat, 5 Oct 2024 15:46:35 +0800	[thread overview]
Message-ID: <20241005074635.GA174602@rigel> (raw)
In-Reply-To: <20241004-gpio-notify-in-kernel-events-v1-5-8ac29e1df4fe@linaro.org>

On Fri, Oct 04, 2024 at 04:43:26PM +0200, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
>
> We currently only notify user-space about line config changes that are
> made from user-space. Any kernel config changes are not signalled.
>
> Let's improve the situation by emitting the events closer to the source.
> To that end let's call the relevant notifier chain from the functions
> setting direction, gpiod_set_config(), gpiod_set_consumer_name() and
> gpiod_toggle_active_low(). This covers all the options that we can
> inform the user-space about.
>
> There is a problem with gpiod_direction_output/input(), namely the fact
> that they can be called both from sleeping as well as atomic context. We
> cannot call the blocking notifier from atomic and we cannot switch to
> atomic notifier because the pinctrl functions we call higher up the stack
> take a mutex. Let's instead use a workqueue and schedule a task to emit
> the event from process context on the unbound system queue for minimal
> latencies.
>

So now there is a race between the state of the desc changing and the
notified reading it?

Cheers,
Kent.

> In tests, I typically get around 5 microseconds between scheduling the
> work and it being executed. That could of course differ during heavy
> system load but in general it should be enough to not miss direction
> change events which typically are not in hot paths.
>
> Let's also add non-notifying wrappers around the direction setters in
> order to not emit superfluous reconfigure events when requesting the
> lines.
>
> We can also now make gpiod_line_state_notify() static.
>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

  reply	other threads:[~2024-10-05  7:46 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-04 14:43 [PATCH 0/5] gpio: notify user-space about config changes in the kernel Bartosz Golaszewski
2024-10-04 14:43 ` [PATCH 1/5] gpiolib: use v2 defines for line state change events Bartosz Golaszewski
2024-10-04 14:43 ` [PATCH 2/5] gpiolib: unify two loops initializing GPIO descriptors Bartosz Golaszewski
2024-10-09 16:09   ` Linus Walleij
2024-10-04 14:43 ` [PATCH 3/5] gpio: cdev: update flags at once when reconfiguring from user-space Bartosz Golaszewski
2024-10-09 16:10   ` Linus Walleij
2024-10-04 14:43 ` [PATCH 4/5] gpiolib: simplify notifying user-space about line requests Bartosz Golaszewski
2024-10-05  3:46   ` Kent Gibson
2024-10-05  9:34     ` Bartosz Golaszewski
2024-10-05  9:49       ` Kent Gibson
2024-10-04 14:43 ` [PATCH 5/5] gpiolib: notify user-space about in-kernel line state changes Bartosz Golaszewski
2024-10-05  7:46   ` Kent Gibson [this message]
2024-10-05  9:42     ` Bartosz Golaszewski
2024-10-05  9:54       ` Kent Gibson
2024-10-05 18:45         ` Bartosz Golaszewski
2024-10-05 19:11           ` Kent Gibson
2024-10-06 13:29 ` [PATCH 0/5] gpio: notify user-space about config changes in the kernel Kent Gibson
2024-10-08  8:22 ` (subset) " Bartosz Golaszewski

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=20241005074635.GA174602@rigel \
    --to=warthog618@gmail.com \
    --cc=bartosz.golaszewski@linaro.org \
    --cc=brgl@bgdev.pl \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).