From: Viresh Kumar <viresh.kumar@linaro.org>
To: Jean Delvare <jdelvare@suse.de>
Cc: Greg KH <gregkh@linuxfoundation.org>,
Wolfram Sang <wsa@the-dreams.de>,
linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org,
Johan Hovold <johan@kernel.org>, Alex Elder <elder@linaro.org>
Subject: Re: [PATCH 2/2] i2c-dev: Don't block the adapter from unregistering
Date: Mon, 25 Jul 2016 15:31:40 -0700 [thread overview]
Message-ID: <20160725223140.GE25667@ubuntu> (raw)
In-Reply-To: <20160725113913.24204d73@endymion>
Hi Jean,
On 25-07-16, 11:39, Jean Delvare wrote:
> The problem is that the patch proposed by Viresh has nothing to do with
> this. It's not adding notifications, just changing the time frame during
> which user-space holds a reference to the i2c (bus) device. The goal as
> I understand it is to allow *prepared* hot-unplug (in the form of
> "rmmod i2c-bus-device-driver" or sysfs-based offlining?) while
Not really. We are concerned about both prepared and Unprepared cases.
This *hacky* patch was useful in case of *unprepared* hot-unplug as well.
Here is the sequence of events:
- open() i2c device from userspace
- do some operations on the device read/write/ioctls() ..
- Module hot-unplugged (*unprepared*)
- Some of the ongoing i2c transactions may just fail, that is fine ..
- Kernel detected the interrupt about module removal and tries to
cleanup the devices..
- Now, kernel can not remove the i2c device, unless user application
has closed the file descriptor.
And so kernel is waiting in the driver's ->remove() callback forever.
Also, there is no way to co-ordinate (in Android) with the
Applications using the device. They can crash or fail out if they
want to, but the kernel shouldn't stop removal of a hardware module in
that case.
> user-space processes have i2c device nodes open. Unprepared hot-unplug
> will still go wrong exactly as it goes now.
> My point is that prepared hot-unplug can already be achieved today
> without any patch.
Yeah, if we have the option of stopping the applications before the
device is gone.
> Or possibly improved by adding a notification
> mechanism. But not by changing the reference holding design.
>
> Not only the proposed patch does not help and degrades the performance,
> but it breaks assumptions. For example, it would allow an application
> to open an i2c bus, then you remove its driver and load another i2c bus
> driver, which gets the same bus number, and now the application writes
> to a completely different I2C bus segment. The current reference model
> prevents that, on purpose.
>
> So, again, nack from me.
Yeah, the patch wasn't great and I knew it from the beginning. But we
are looking for a solution that can be accepted and so need advice
from you guys :)
--
viresh
next prev parent reply other threads:[~2016-07-25 22:31 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-06 2:57 [PATCH 0/2] i2c-dev: Don't let userspace block adapter Viresh Kumar
2016-07-06 2:57 ` [PATCH 1/2] i2c-dev: don't get i2c adapter via i2c_dev Viresh Kumar
2016-07-06 17:04 ` Jean Delvare
2016-07-06 17:07 ` Viresh Kumar
2016-07-07 13:16 ` Jean Delvare
2016-07-07 15:35 ` Viresh Kumar
2016-07-08 1:31 ` Wolfram Sang
2016-07-06 2:57 ` [PATCH 2/2] i2c-dev: Don't block the adapter from unregistering Viresh Kumar
2016-07-06 4:32 ` kbuild test robot
2016-07-06 4:32 ` kbuild test robot
2016-07-06 6:55 ` Wolfram Sang
2016-07-06 13:50 ` Viresh Kumar
2016-07-06 17:12 ` Jean Delvare
2016-07-06 20:55 ` Viresh Kumar
2016-07-11 12:22 ` Jean Delvare
2016-07-11 21:50 ` Greg KH
2016-07-18 20:20 ` Viresh Kumar
2016-07-25 9:39 ` Jean Delvare
2016-07-25 22:31 ` Viresh Kumar [this message]
2016-07-26 7:41 ` Jean Delvare
2016-07-26 15:18 ` Dmitry Torokhov
2016-07-06 8:22 ` Peter Rosin
2016-07-06 8:22 ` Peter Rosin
2016-07-06 14:33 ` Viresh Kumar
2016-07-06 14:43 ` Lars-Peter Clausen
2016-07-06 15:04 ` Peter Rosin
2016-07-06 15:04 ` Peter Rosin
2016-07-06 15:37 ` Viresh Kumar
2016-07-06 15:35 ` Viresh Kumar
2016-07-06 14:41 ` [PATCH 0/2] i2c-dev: Don't let userspace block adapter Lars-Peter Clausen
2016-07-06 15:34 ` Viresh Kumar
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=20160725223140.GE25667@ubuntu \
--to=viresh.kumar@linaro.org \
--cc=elder@linaro.org \
--cc=gregkh@linuxfoundation.org \
--cc=jdelvare@suse.de \
--cc=johan@kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=wsa@the-dreams.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.