From: Jean Delvare <jdelvare@suse.de>
To: Chris Packham <Chris.Packham@alliedtelesis.co.nz>
Cc: Guenter Roeck <linux@roeck-us.net>,
Joshua Scott <Joshua.Scott@alliedtelesis.co.nz>,
linux-hwmon@vger.kernel.org
Subject: Re: [PATCH] hwmon: adt7470: Allow faster removal
Date: Fri, 2 Sep 2016 16:55:29 +0200 [thread overview]
Message-ID: <20160902165529.18aac4da@endymion> (raw)
In-Reply-To: <c295f9ed1a744f35823c067b7434591b@svr-chch-ex1.atlnz.lc>
Hi Chris,
On Thu, 1 Sep 2016 21:08:54 +0000, Chris Packham wrote:
> On 09/02/2016 12:12 AM, Guenter Roeck wrote:
> > This puts a heavy burden on the system, forcing it to run every ms, just for
> > the unlikely case of driver removal. Why is quick removal so important ?
> > If it is, we'll have to find a better solution.
>
> The particular use case we have is a chassis based system with an
> adt7470 on a removable fan-tray. The problem is that when the fan tray
> is removed it takes auto_update_interval/1000 seconds for the update
> thread to stop and the i2c device to be removed. In the intervening time
> a new fan-tray could have been installed.
Thanks for the clarification. An actual use case makes it easier to
think about solutions.
> On 09/01/2016 08:18 PM, Jean Delvare wrote:
> >
> > This change looks terribly costly to me. In order to shorten the
> > duration of a rare event (you don't "rmmod adt7470" on a regular basis,
> > do you?)
>
> It's worse than that. We're not doing rmmod, hardware is physically
> being removed.
I wouldn't call it "worse", it's pretty much the same to me.
> > you increase the cost of a kernel thread which runs all the
> > time. I'm afraid this msleep_interruptible(1) is going to prevent the
> > CPU from entering low power states at all, leading to an increased
> > system temperature and power consumption. Have you compared the output
> > of "powertop" (specifically the "Idle stats" section) before and after
> > your patch?
> >
> > Is there no way to voluntarily interrupt this long msleep_interruptible?
>
> If there is I'd like to know. That would be the ideal solution for us.
I've never done that before myself so I don't know more than you.
stackoverflow has a few promising pointers though:
http://stackoverflow.com/questions/26050745/is-there-a-way-inside-the-kernel-of-killing-a-kernel-kthread-just-like-kill-9
http://stackoverflow.com/questions/36344295/wakeup-a-kernel-thread-that-is-in-sleep-using-msleep
My own research suggests that maybe calling
wake_up_process(data->auto_update) right after kthread_stop() may work.
Have you tried that? I only find it suspect that nobody else in the
kernel is doing that.
--
Jean Delvare
SUSE L3 Support
next prev parent reply other threads:[~2016-09-02 14:55 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-01 5:17 [PATCH] hwmon: adt7470: Allow faster removal Joshua Scott
2016-09-01 8:17 ` Jean Delvare
2016-09-01 12:10 ` Guenter Roeck
2016-09-01 21:08 ` Chris Packham
2016-09-02 14:55 ` Jean Delvare [this message]
-- strict thread matches above, loose matches on Subject: below --
2016-09-06 22:49 Joshua Scott
2016-09-09 4:17 ` Guenter Roeck
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=20160902165529.18aac4da@endymion \
--to=jdelvare@suse.de \
--cc=Chris.Packham@alliedtelesis.co.nz \
--cc=Joshua.Scott@alliedtelesis.co.nz \
--cc=linux-hwmon@vger.kernel.org \
--cc=linux@roeck-us.net \
/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).