All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Willy Tarreau <w@1wt.eu>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>,
	Daniel Barkalow <barkalow@iabervon.org>,
	nigel@nigel.suspend2.net, Robert Hancock <hancockr@shaw.ca>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Jeff Garzik <jeff@garzik.org>, Pavel Machek <pavel@ucw.cz>,
	pm list <linux-pm@lists.osdl.org>
Subject: Re: [PATCH] Re: NAK new drivers without proper power management?
Date: Sun, 11 Feb 2007 15:36:19 +0100	[thread overview]
Message-ID: <200702111536.20871.rjw@sisk.pl> (raw)
In-Reply-To: <20070211135708.GC1868@1wt.eu>

On Sunday, 11 February 2007 14:57, Willy Tarreau wrote:
> On Sun, Feb 11, 2007 at 02:50:48PM +0100, Rafael J. Wysocki wrote:
> > On Sunday, 11 February 2007 14:37, Willy Tarreau wrote:
> > > On Sun, Feb 11, 2007 at 01:19:57PM +0000, Matthew Garrett wrote:
> > > > On Sun, Feb 11, 2007 at 02:09:43PM +0100, Willy Tarreau wrote:
> > > > 
> > > > > Then change the PCI layer to do the basic PM only for known compatible
> > > > > drivers, and modify only the known-compatible drivers to mark them
> > > > > explicitly compatible. IMHO, it generally is a bad idea to require that
> > > > > any driver explicitly states what it *does not* support. It's the reason
> > > > > why users encounter problem on new features with old drivers. For instance,
> > > > > do you know if the old ISA NE2000 driver breaks suspend ? I don't know,
> > > > > but I would at least expect it not to support it by default. It's best
> > > > > to announce what *is* supported and consider everything unimplemented
> > > > > otherwise explicitly stated.
> > > > 
> > > > This ignores the reality of the situation, which is that many drivers 
> > > > support suspend and resume despite the lack of any explicit 
> > > > implementation. Changing things so they're flagged as broken when 
> > > > they're not would be a regression.
> > > 
> > > Those which are identified as OK should be flagged OK. Only those for
> > > which we have no idea should be flagged broken.
> > 
> > I think we don't need to flag the drivers identified as OK.  Let's flag only
> > the suspicious ones.
> > 
> > Whatever we finally come up with, I'd like to avoid modifying drivers that are
> > known good.
> 
> I understand your concerns, but the problem is not *current* drivers, but
> what will happen to *new* drivers. If we make it implicit that a driver
> is compatible, then new drivers will be promoted as good even if nothing
> has been done for this.

The problem is it was made implicit long ago.  The design is "optimistic", so
to speak, and I think we have the following choices:

1) Change the design to make the kernel refuse to suspend if there are any
drivers not explicitly flagged as "suspend/resume-safe".  [This looks like a
lot of work to me, but it is generally doable provided that someone has enough
time to do it.  Unfortunately it has to be done in one shot for all of the
known good drivers to avoid user-observable regressions.]

2) Require the authors of new drivers to _either_ ensure that their drivers
will be suspend/resume-safe (and I mean both STR and STD here), _or_ explicitly
flag the drivers as "suspend/resume-unsafe", for example by impelenting
.suspend() routines returning -ENOSYS.  [The existing drivers can be modified
to follow this convention gradually.]

Now IMO 1) has some disadvantages:
- Potential for introducing some regressions (eg. if we omit a known-good
driver)
- Necessity to review a lot of drivers simultaneously
- Problem what to do with drivers that work for some people and don't work
for the others (ie. if we don't flag them as known good, we will break the
setups in which they work)

The advantage of 1), however, is that we can differentiate drivers that are
safe only with respect to the suspend to disk from those that are safe with
respect to the suspend to RAM too (there are some).

I'd prefer 2), because it's simpler to make happen.

Greetings,
Rafael

WARNING: multiple messages have this Message-ID (diff)
From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Willy Tarreau <w@1wt.eu>
Cc: Robert Hancock <hancockr@shaw.ca>,
	Matthew Garrett <mjg59@srcf.ucam.org>,
	Pavel Machek <pavel@ucw.cz>, Jeff Garzik <jeff@garzik.org>,
	Daniel Barkalow <barkalow@iabervon.org>,
	pm list <linux-pm@lists.osdl.org>,
	linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] Re: NAK new drivers without proper power management?
Date: Sun, 11 Feb 2007 15:36:19 +0100	[thread overview]
Message-ID: <200702111536.20871.rjw@sisk.pl> (raw)
In-Reply-To: <20070211135708.GC1868@1wt.eu>

On Sunday, 11 February 2007 14:57, Willy Tarreau wrote:
> On Sun, Feb 11, 2007 at 02:50:48PM +0100, Rafael J. Wysocki wrote:
> > On Sunday, 11 February 2007 14:37, Willy Tarreau wrote:
> > > On Sun, Feb 11, 2007 at 01:19:57PM +0000, Matthew Garrett wrote:
> > > > On Sun, Feb 11, 2007 at 02:09:43PM +0100, Willy Tarreau wrote:
> > > > 
> > > > > Then change the PCI layer to do the basic PM only for known compatible
> > > > > drivers, and modify only the known-compatible drivers to mark them
> > > > > explicitly compatible. IMHO, it generally is a bad idea to require that
> > > > > any driver explicitly states what it *does not* support. It's the reason
> > > > > why users encounter problem on new features with old drivers. For instance,
> > > > > do you know if the old ISA NE2000 driver breaks suspend ? I don't know,
> > > > > but I would at least expect it not to support it by default. It's best
> > > > > to announce what *is* supported and consider everything unimplemented
> > > > > otherwise explicitly stated.
> > > > 
> > > > This ignores the reality of the situation, which is that many drivers 
> > > > support suspend and resume despite the lack of any explicit 
> > > > implementation. Changing things so they're flagged as broken when 
> > > > they're not would be a regression.
> > > 
> > > Those which are identified as OK should be flagged OK. Only those for
> > > which we have no idea should be flagged broken.
> > 
> > I think we don't need to flag the drivers identified as OK.  Let's flag only
> > the suspicious ones.
> > 
> > Whatever we finally come up with, I'd like to avoid modifying drivers that are
> > known good.
> 
> I understand your concerns, but the problem is not *current* drivers, but
> what will happen to *new* drivers. If we make it implicit that a driver
> is compatible, then new drivers will be promoted as good even if nothing
> has been done for this.

The problem is it was made implicit long ago.  The design is "optimistic", so
to speak, and I think we have the following choices:

1) Change the design to make the kernel refuse to suspend if there are any
drivers not explicitly flagged as "suspend/resume-safe".  [This looks like a
lot of work to me, but it is generally doable provided that someone has enough
time to do it.  Unfortunately it has to be done in one shot for all of the
known good drivers to avoid user-observable regressions.]

2) Require the authors of new drivers to _either_ ensure that their drivers
will be suspend/resume-safe (and I mean both STR and STD here), _or_ explicitly
flag the drivers as "suspend/resume-unsafe", for example by impelenting
.suspend() routines returning -ENOSYS.  [The existing drivers can be modified
to follow this convention gradually.]

Now IMO 1) has some disadvantages:
- Potential for introducing some regressions (eg. if we omit a known-good
driver)
- Necessity to review a lot of drivers simultaneously
- Problem what to do with drivers that work for some people and don't work
for the others (ie. if we don't flag them as known good, we will break the
setups in which they work)

The advantage of 1), however, is that we can differentiate drivers that are
safe only with respect to the suspend to disk from those that are safe with
respect to the suspend to RAM too (there are some).

I'd prefer 2), because it's simpler to make happen.

Greetings,
Rafael

  reply	other threads:[~2007-02-11 14:38 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <fa.xSKPgY66Q+DPCZ1pszFFfdrJ0To@ifi.uio.no>
     [not found] ` <fa.FzHdYYYH5Ru57c8/yRxLylpH0Kk@ifi.uio.no>
     [not found]   ` <fa.DuG12yQo+RR4jIjJTnoOwtKM0Ao@ifi.uio.no>
     [not found]     ` <fa.Jy0FJQtASvVEpsy8Q96uoHtyEVA@ifi.uio.no>
2007-02-10  1:50       ` NAK new drivers without proper power management? Robert Hancock
2007-02-10  1:59         ` Lee Revell
2007-02-10  2:09           ` Nigel Cunningham
2007-02-10  2:22             ` Lee Revell
2007-02-10  3:21               ` Kevin Fox
2007-02-10 20:40               ` Adrian Bunk
2007-02-10  4:35           ` Joseph Fannin
2007-02-13 21:08             ` Pavel Machek
2007-02-10 12:47           ` Stefan Richter
2007-02-10  2:05         ` Nigel Cunningham
2007-02-10  3:27           ` Dmitry Torokhov
2007-02-10  4:18             ` Nigel Cunningham
2007-02-10  3:02         ` [PATCH] " Nigel Cunningham
2007-02-10  9:34           ` Rafael J. Wysocki
2007-02-10  9:34             ` Rafael J. Wysocki
2007-02-10 10:02             ` Nigel Cunningham
2007-02-10 10:30               ` Rafael J. Wysocki
2007-02-10 10:30                 ` Rafael J. Wysocki
2007-02-10 17:52                 ` Daniel Barkalow
2007-02-10 17:52                   ` Daniel Barkalow
2007-02-10 19:50                   ` Rafael J. Wysocki
2007-02-10 19:50                     ` Rafael J. Wysocki
2007-02-11  6:54                     ` Willy Tarreau
2007-02-11  6:54                       ` Willy Tarreau
2007-02-11 12:13                       ` Matthew Garrett
2007-02-11 13:09                         ` Willy Tarreau
2007-02-11 13:09                           ` Willy Tarreau
2007-02-11 13:19                           ` Matthew Garrett
2007-02-11 13:37                             ` Willy Tarreau
2007-02-11 13:37                               ` Willy Tarreau
2007-02-11 13:50                               ` Rafael J. Wysocki
2007-02-11 13:50                                 ` Rafael J. Wysocki
2007-02-11 13:57                                 ` Willy Tarreau
2007-02-11 13:57                                   ` Willy Tarreau
2007-02-11 14:36                                   ` Rafael J. Wysocki [this message]
2007-02-11 14:36                                     ` Rafael J. Wysocki
2007-02-11 15:19                                     ` Pekka Enberg
2007-02-11 15:19                                       ` Pekka Enberg
2007-02-11 18:31                                       ` Rafael J. Wysocki
2007-02-11 18:31                                         ` Rafael J. Wysocki
2007-02-11 17:27                                     ` Daniel Barkalow
2007-02-11 18:53                                       ` Rafael J. Wysocki
2007-02-11 18:53                                         ` Rafael J. Wysocki
2007-02-11 23:06                                         ` Nigel Cunningham
2007-02-11 23:06                                           ` Nigel Cunningham
2007-02-11 23:10                                           ` Rafael J. Wysocki
2007-02-11 23:10                                             ` Rafael J. Wysocki
2007-02-11 21:04                                     ` Stefan Richter
2007-02-11 21:04                                       ` Stefan Richter
2007-02-11 21:10                           ` Pavel Machek
2007-02-11 17:36                         ` Robert Hancock
2007-02-11 22:49                         ` Nigel Cunningham
2007-02-11 19:37                   ` Pavel Machek
2007-02-11 19:37                     ` Pavel Machek
     [not found]   ` <fa.DhkemAgVI60diqZy0t9GzpwyLmk@ifi.uio.no>
     [not found]     ` <fa.E/NjHlgg0HqDg5CgZjnCHFi2AMM@ifi.uio.no>
     [not found]       ` <fa.kop49l/7yexJoUGrzk6vVeIP934@ifi.uio.no>
2007-02-10 23:20         ` Robert Hancock
2007-02-11  0:44           ` Rafael J. Wysocki
2007-02-11 17:01             ` Pavel Machek
2007-02-11 22:40             ` Nigel Cunningham
2007-02-11 23:29               ` Rafael J. Wysocki
2007-02-11 23:40                 ` Nigel Cunningham
     [not found]         ` <fa.EgQN5JpU6xrZSLyOY0kWjJ26hUM@ifi.uio.no>
2007-02-11 18:31           ` Robert Hancock
2007-02-11 21:52             ` Willy Tarreau
2007-02-11 22:26               ` Nigel Cunningham
2007-02-11 22:46                 ` Willy Tarreau
2007-02-11 23:18                   ` Nigel Cunningham
2007-02-11 23:38                     ` Willy Tarreau
2007-02-11 23:45                       ` Nigel Cunningham
2007-02-12  0:26                       ` Alan
2007-02-12  5:19                         ` Willy Tarreau
2007-02-12 20:20                           ` Rafael J. Wysocki
2007-02-12 22:36                           ` Nigel Cunningham
2007-02-11 23:23                   ` Alan
2007-02-11 23:38                   ` Rafael J. Wysocki
2007-02-11 23:41                 ` Rafael J. Wysocki
2007-02-11 23:47                   ` Nigel Cunningham
2007-02-11 23:50                     ` Rafael J. Wysocki
2007-02-11 23:55                       ` Nigel Cunningham
2007-02-12  0:09                         ` Rafael J. Wysocki
2007-02-12  0:15                           ` Nigel Cunningham
2007-02-12 12:19               ` Pavel Machek
     [not found]         ` <fa.O1YH4k5KtBGCNs5i2yB17bPvPGw@ifi.uio.no>
     [not found]           ` <fa.RfzClbTP/7B79AoEbQLNj3ABfIk@ifi.uio.no>
     [not found]             ` <fa.AaJ/ugmiUmPO8uC+y1rS9JLuuMc@ifi.uio.no>
2007-02-12  0:59               ` Robert Hancock

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=200702111536.20871.rjw@sisk.pl \
    --to=rjw@sisk.pl \
    --cc=barkalow@iabervon.org \
    --cc=hancockr@shaw.ca \
    --cc=jeff@garzik.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@lists.osdl.org \
    --cc=mjg59@srcf.ucam.org \
    --cc=nigel@nigel.suspend2.net \
    --cc=pavel@ucw.cz \
    --cc=w@1wt.eu \
    /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.