linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: Pavel Machek <pavel@ucw.cz>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Octavian Purdila <octavian.purdila@intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	"Tirdea, Irina" <irina.tirdea@intel.com>,
	Oliver Neukum <oneukum@suse.com>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
	"linux-input@vger.kernel.org" <linux-input@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Brown, Len" <len.brown@intel.com>
Subject: Re: [RFC PATCH] PM / Runtime: runtime: Add sysfs option for forcing runtime suspend
Date: Mon, 21 Sep 2015 13:56:30 -0700	[thread overview]
Message-ID: <20150921205630.GL17389@dtor-ws> (raw)
In-Reply-To: <Pine.LNX.4.44L0.1509211552310.1713-100000@iolanthe.rowland.org>

On Mon, Sep 21, 2015 at 04:02:01PM -0400, Alan Stern wrote:
> On Mon, 21 Sep 2015, Dmitry Torokhov wrote:
> 
> > > What happens if the "inhibit" control is turned on and the driver puts 
> > > the device into runtime suspend, but then an I/O request arrives?
> > > 
> > > 	If the I/O request originated from userspace, it means the
> > > 	user is violating the terms of the "inhibit" control.  Should
> > > 	the request simply fail?
> > 
> > What user? User that inhibited it or user that tried to use the device?
> 
> Normally they would be the same.  But even if they aren't, someone has 
> violated the kernel interface: The first user told the kernel a 
> particular device wasn't going to be used, and then the second user 
> tried to use it.
> 
> Of course, this issue doesn't arise for devices that merely report 
> external events.
> 
> > > 	What if the I/O request originated from somewhere in the
> > > 	kernel, not from the user?
> > 
> > I think we should treat in-kernel users as all other users.
> > 
> > > 
> > > 	Or maybe the driver would want to carry out the request,
> > > 	overriding the "inhibit" control temporarily.  Does it simply
> > > 	turn off the control, meaning that the device won't go back
> > > 	into runtime suspend until userspace turns the control on
> > > 	again?
> > > 
> > > 	Or if the driver doesn't turn off the "inhibit" control, then
> > > 	how does it know when it can safely put the device back into
> > > 	runtime suspend?
> > > 
> > > Qustions like these make me think that this mechanism is best suited 
> > > for a kind of device that doesn't handle I/O requests.  In other words, 
> > > something that just reports events as they occur -- which is another 
> > > way of describing an input device!
> > 
> > Or maybe IIO device. Or hwmon. Or something else. I think if we allow
> > drivers (or subsystems) to opt in into this mechanism it will solve much
> > of worries about disks and similar devices that indeed not very suitable
> > for such mechanism.
> 
> Should the mechanism really be per-device?  Or would it be more useful 
> to have a single "inhibit" setting that affected all the relevant 
> devices at once?

Definitely per device. Consider your laptop with external monitor and
keyboard connected. When you close the lid you want to inhibit internal
keyboard, touchpad and touchscreen while leaving external keyboard and
mouse working.

That's just one scenario.

Thanks.

-- 
Dmitry

  reply	other threads:[~2015-09-21 20:56 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-07 20:42 [RFC PATCH] PM / Runtime: runtime: Add sysfs option for forcing runtime suspend Irina Tirdea
2015-09-07 21:20 ` Rafael J. Wysocki
2015-09-08  1:10   ` Tirdea, Irina
2015-09-08  7:35     ` Oliver Neukum
2015-09-08 20:56       ` Rafael J. Wysocki
2015-09-08 22:25         ` Ulf Hansson
2015-09-08 23:50           ` Rafael J. Wysocki
2015-09-09 11:13             ` Octavian Purdila
2015-09-09 12:22               ` Rafael J. Wysocki
2015-09-09 13:55                 ` Oliver Neukum
2015-09-09 15:02                   ` Octavian Purdila
2015-09-09 20:25                     ` Rafael J. Wysocki
2015-09-10  9:38                       ` Oliver Neukum
2015-09-21 12:29                       ` Pavel Machek
2015-09-09 15:20                 ` Alan Stern
2015-09-09 20:35                   ` Rafael J. Wysocki
2015-09-09 20:16                     ` Colin Cross
2015-09-21 12:30                   ` Pavel Machek
2015-09-21 14:38                     ` Alan Stern
2015-09-21 16:16                       ` Dmitry Torokhov
2015-09-21 16:34                         ` Alan Stern
2015-09-21 16:59                           ` Dmitry Torokhov
2015-09-21 17:32                             ` Alan Stern
2015-09-21 18:00                               ` Dmitry Torokhov
2015-09-21 20:02                                 ` Alan Stern
2015-09-21 20:56                                   ` Dmitry Torokhov [this message]
2015-09-22 12:05                                   ` Oliver Neukum
2015-09-22 14:15                                     ` Alan Stern
2015-09-22 14:31                                       ` Oliver Neukum
2015-09-22 15:22                                         ` Alan Stern
2015-09-23  3:03                                           ` Oliver Neukum
2015-09-23  7:27                                             ` Octavian Purdila
2015-09-23 14:55                                             ` Alan Stern
2015-09-25  0:43                                               ` Rafael J. Wysocki
2015-09-25 14:29                                                 ` Alan Stern
2015-09-25 20:15                                                   ` Rafael J. Wysocki
2015-09-25 21:13                                                     ` Alan Stern
2015-09-25 21:52                                                       ` Rafael J. Wysocki
2015-09-25 23:04                                                         ` Rafael J. Wysocki
2015-09-26 15:20                                                           ` Alan Stern
2015-09-27 13:41                                                             ` Rafael J. Wysocki
2015-09-27 14:27                                                               ` Alan Stern
2015-09-28 13:41                                                                 ` Rafael J. Wysocki
2015-09-28 14:29                                                                   ` Alan Stern
2015-09-28 20:03                                                                     ` Rafael J. Wysocki
2015-09-28 20:23                                                                       ` Alan Stern
2015-10-04 15:16                                                                         ` Pavel Machek
2015-09-27 17:02                                                               ` Pavel Machek
2015-09-28 13:47                                                                 ` Rafael J. Wysocki
2015-09-21 20:20                       ` Pavel Machek
2015-09-08 14:44     ` Alan Stern
2015-09-08 15:15       ` Rafael J. Wysocki
2015-09-08 15:00         ` Alan Stern
2015-09-08 20:28           ` Rafael J. Wysocki
2015-09-09 15:22             ` Alan Stern
2015-09-09  6:26       ` Oliver Neukum
2015-09-09 14:33         ` Alan Stern

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=20150921205630.GL17389@dtor-ws \
    --to=dmitry.torokhov@gmail.com \
    --cc=irina.tirdea@intel.com \
    --cc=len.brown@intel.com \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=octavian.purdila@intel.com \
    --cc=oneukum@suse.com \
    --cc=pavel@ucw.cz \
    --cc=rafael@kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=stern@rowland.harvard.edu \
    --cc=ulf.hansson@linaro.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).