public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: david@lang.hm, linux-kernel@vger.kernel.org,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Pavel Machek <pavel@ucw.cz>, "Huang, Ying" <ying.huang@intel.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-pm@lists.linux-foundation.org,
	Jeremy Maitin-Shepard <jbms@cmu.edu>
Subject: Re: [PATCH 0/2] Kexec jump: The first step to kexec base hibernation
Date: Fri, 13 Jul 2007 23:08:23 +0200	[thread overview]
Message-ID: <200707132308.24323.rjw@sisk.pl> (raw)
In-Reply-To: <Pine.LNX.4.44L0.0707131402001.2684-100000@iolanthe.rowland.org>

On Friday, 13 July 2007 20:15, Alan Stern wrote:
> On Fri, 13 Jul 2007, Eric W. Biederman wrote:
> 
> > > I doubt that re-probing devices will work.  The probe routine won't 
> > > expect there to be any registered children, so it will try to 
> > > re-register them.
> > 
> > So really unregister the children.  All we really need to do is disassociate
> > the drivers from the devices (to reuse the existing code) we don't
> > need to rescan for the devices.  The associating the device drivers
> > with devices takes human measurable amount of time.  The only thing
> > that takes time is waiting on hardware.  Maybe things will suck
> > and associating the drivers with the device tree with take a whole
> > second on a bad day, I don't think that is enough time to add
> > complicated new code paths for the drivers to maintain.
> 
> This would be even worse!
> 
> Suppose you unbind (or unregister, either way) a disk driver.  It's 
> unbind method will unregister the gendisk structure, thereby deleting 
> all the partitions and block devices associated with the disk.  This 
> will leave any and all memory mappings dangling in the breeze.  When 
> the kernel resumes from hibernation, nothing will work.
> 
> > > On the other hand, post_restore methods could be written to expect 
> > > something like this.
> > 
> > Please Please Plaese do not start with the existing software suspend
> > to disk code and thinking.
> 
> Ha!  Gotcha.  You evidently haven't been reading the linux-pm mailing 
> list for the last few months.  :-)
> 
>      1. post_restore isn't "existing software suspend to disk code"
> 	(you're supposed to call it "hibernation" now, BTW).
> 
>      2. post_restore isn't new.  It has already been proposed and
> 	generally accepted.  It is part of the movement to untangle
> 	and separate the suspend and hibernate code paths.
> 
>      3. post_restore hasn't been implemented yet.  It's barely past
> 	the proposal stage.
> 
>      4. Maybe _you_ like to discuss complicated issues such as this
> 	one without thinking, but the rest of us prefer a little 
> 	cerebration.
> 
> >  We are not implementing suspend to ram
> > here or anything like it.
> 
> One of the topics in this discussion has been "suspend-to-both", which
> includes suspend-to-RAM.  
> 
> But anyway, so what?  I wasn't talking about suspend-to-RAM; I was
> talking about hibernation.
> 
> >  We already have proven code paths that
> > know how to quiesce hardware.  We already have proven code paths
> > that know how to take quite hardware and make it run.  Please let's
> > just use them.  At least until we can see that they are insufficient
> > to the task.
> 
> Was this request directed at me or at Rafael?  It's hard to tell.

Yeah.

Anyway, IMO, unregistering of devices in the hibernated kernel won't work,
because it doesn't know how to register them back after the restore.  Sure,
we can teach it do do that, but I think it's simpler to just keep devices
registered and have a .post_restore() or .reprobe() callbacks for handling
the reinitialization of hardware.

And yes, we've discussed this in detail for many times on linux-pm.

Greetings,
Rafael


-- 
"Premature optimization is the root of all evil." - Donald Knuth

       reply	other threads:[~2007-07-13 21:08 UTC|newest]

Thread overview: 98+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <Pine.LNX.4.44L0.0707131402001.2684-100000@iolanthe.rowland.org>
2007-07-13 21:08 ` Rafael J. Wysocki [this message]
     [not found] <9D7649D18729DE4BB2BD7B494F7FEDC236CF66@pdsmsx415.ccr.corp.intel.com>
2007-07-24 15:27 ` [PATCH 0/2] Kexec jump: The first step to kexec base hibernation Rafael J. Wysocki
     [not found] <200707151249.26148.rjw@sisk.pl>
2007-07-24 14:00 ` Huang, Ying
     [not found] <Pine.LNX.4.44L0.0707131146340.2555-100000@iolanthe.rowland.org>
2007-07-13 16:54 ` Eric W. Biederman
2007-07-13 18:15   ` Alan Stern
2007-07-13 20:55 ` Rafael J. Wysocki
2007-07-11 15:30 Huang, Ying
2007-07-11 11:13 ` Pavel Machek
2007-07-12  0:22 ` Andrew Morton
2007-07-12  5:48   ` Jeremy Fitzhardinge
     [not found]   ` <4695C096.5080400@goop.org>
2007-07-12  6:43     ` david
2007-07-12 12:46       ` Rafael J. Wysocki
     [not found]       ` <200707121446.14170.rjw@sisk.pl>
2007-07-12 13:51         ` Mark Lord
2007-07-12 18:42         ` david
     [not found]         ` <469631FA.2070405@rtr.ca>
2007-07-12 14:49           ` Pavel Machek
2007-07-12 15:35           ` Rafael J. Wysocki
     [not found]           ` <200707121735.40077.rjw@sisk.pl>
2007-07-12 16:03             ` Mark Lord
     [not found]             ` <469650DE.4000901@rtr.ca>
2007-07-12 16:35               ` Mark Lord
     [not found]               ` <46965837.8030907@rtr.ca>
2007-07-12 20:05                 ` Jeremy Maitin-Shepard
     [not found]                 ` <87y7hl2xro.fsf@jbms.ath.cx>
2007-07-13  2:38                   ` Mark Lord
2007-07-12 18:49           ` david
     [not found]         ` <Pine.LNX.4.64.0707121138140.25614@asgard.lang.hm>
     [not found]           ` <200707122120.19662.rjw@sisk.pl>
2007-07-12 19:14             ` david
     [not found]             ` <Pine.LNX.4.64.0707121210210.25614@asgard.lang.hm>
2007-07-12 19:45               ` Rafael J. Wysocki
2007-07-12 19:20           ` Rafael J. Wysocki
     [not found]     ` <1184260174.9346.85.camel@caritas-dev.intel.com>
2007-07-12 12:47       ` Rafael J. Wysocki
2007-07-12 17:09     ` Huang, Ying
2007-07-12 12:38   ` Rafael J. Wysocki
2007-07-12 14:43   ` Huang, Ying
     [not found]   ` <1184251423.9346.55.camel@caritas-dev.intel.com>
2007-07-12  7:03     ` david
2007-07-12 12:53     ` Rafael J. Wysocki
2007-07-12 16:32     ` Eric W. Biederman
     [not found]     ` <Pine.LNX.4.64.0707112345250.28090@asgard.lang.hm>
     [not found]       ` <1184260683.9346.91.camel@caritas-dev.intel.com>
2007-07-12 10:10         ` david
2007-07-12 13:01           ` Rafael J. Wysocki
     [not found]           ` <200707121501.03016.rjw@sisk.pl>
2007-07-12 13:22             ` jimmy bahuleyan
2007-07-12 19:03             ` david
2007-07-12 13:55           ` Mark Lord
2007-07-12 19:05             ` david
2007-07-12 14:06           ` Pavel Machek
2007-07-12 17:18       ` Huang, Ying
     [not found]     ` <200707121453.49616.rjw@sisk.pl>
2007-07-12 18:57       ` david
     [not found]       ` <Pine.LNX.4.64.0707121150460.25614@asgard.lang.hm>
2007-07-12 19:34         ` Rafael J. Wysocki
     [not found]         ` <200707122134.29991.rjw@sisk.pl>
2007-07-12 19:55           ` Jeremy Maitin-Shepard
2007-07-13  3:06           ` david
2007-07-13  9:29             ` Rafael J. Wysocki
     [not found]             ` <200707131129.34974.rjw@sisk.pl>
2007-07-13  9:38               ` david
2007-07-13 11:59                 ` Rafael J. Wysocki
2007-07-13 15:12                   ` Jeremy Maitin-Shepard
     [not found]                   ` <87abu01gnv.fsf@jbms.ath.cx>
2007-07-13 15:45                     ` Rafael J. Wysocki
     [not found]                     ` <200707131745.43055.rjw@sisk.pl>
2007-07-13 15:50                       ` Alan Stern
2007-07-13 16:48                       ` Jeremy Maitin-Shepard
2007-07-13 21:23                         ` Rafael J. Wysocki
2007-07-14  7:12                   ` david
     [not found]             ` <1184347974.4523.30.camel@caritas-dev.intel.com>
2007-07-13 12:01               ` Rafael J. Wysocki
2007-07-13 17:32             ` Huang, Ying
     [not found]           ` <877ip54cti.fsf@jbms.ath.cx>
2007-07-12 20:45             ` Rafael J. Wysocki
2007-07-13  3:12             ` david
     [not found]             ` <Pine.LNX.4.64.0707122008550.25614@asgard.lang.hm>
2007-07-13  9:17               ` Rafael J. Wysocki
2007-07-13  9:25                 ` david
2007-07-13 11:41                   ` Rafael J. Wysocki
     [not found]                   ` <200707131341.35801.rjw@sisk.pl>
2007-07-14  7:51                     ` david
     [not found]                     ` <Pine.LNX.4.64.0707140017560.25614@asgard.lang.hm>
2007-07-14  8:33                       ` david
     [not found]                       ` <Pine.LNX.4.64.0707140128210.25614@asgard.lang.hm>
2007-07-14  9:24                         ` Rafael J. Wysocki
2007-07-14 20:00                       ` Rafael J. Wysocki
2007-07-14 20:34                         ` david
     [not found]                         ` <Pine.LNX.4.64.0707141257290.14672@asgard.lang.hm>
2007-07-14 21:06                           ` Rafael J. Wysocki
     [not found]                           ` <200707142306.33783.rjw@sisk.pl>
2007-07-14 21:13                             ` david
2007-07-15 10:31                               ` Rafael J. Wysocki
     [not found]                               ` <200707151231.27410.rjw@sisk.pl>
2007-07-15 19:23                                 ` david
2007-07-15 22:59                                   ` Rafael J. Wysocki
     [not found]                                   ` <200707160059.08277.rjw@sisk.pl>
2007-07-15 23:22                                     ` david
     [not found]                                     ` <Pine.LNX.4.64.0707151549200.25614@asgard.lang.hm>
2007-07-16 12:17                                       ` Rafael J. Wysocki
     [not found]                                       ` <200707161417.50166.rjw@sisk.pl>
2007-07-16 14:42                                         ` Huang, Ying
     [not found]                                         ` <1184596950.24143.28.camel@caritas-dev.intel.com>
2007-07-16 15:40                                           ` Rafael J. Wysocki
     [not found]                                           ` <200707161740.26703.rjw@sisk.pl>
2007-07-17  4:18                                             ` david
2007-07-17 11:46                                               ` Rafael J. Wysocki
2007-07-14 21:34                         ` david
2007-07-15 10:39                           ` Rafael J. Wysocki
     [not found]                           ` <200707151239.28400.rjw@sisk.pl>
2007-07-15 19:33                             ` david
     [not found]                             ` <Pine.LNX.4.64.0707151224160.25614@asgard.lang.hm>
2007-07-15 23:11                               ` Rafael J. Wysocki
     [not found]                               ` <200707160111.16805.rjw@sisk.pl>
2007-07-15 23:33                                 ` david
     [not found]     ` <m14pk9fuqa.fsf@ebiederm.dsl.xmission.com>
2007-07-12 19:09       ` david
2007-07-12 19:49         ` Eric W. Biederman
     [not found]       ` <1184368525.1069.68.camel@caritas-dev.intel.com>
2007-07-13 16:43         ` Eric W. Biederman
     [not found]         ` <m1k5t4dzl4.fsf@ebiederm.dsl.xmission.com>
2007-07-14  5:48           ` Huang, Ying
     [not found]           ` <1184392129.1898.69.camel@caritas-dev.intel.com>
2007-07-14  9:59             ` Rafael J. Wysocki
2007-07-14 10:55               ` Huang, Ying
     [not found]               ` <1184410554.1898.84.camel@caritas-dev.intel.com>
2007-07-14 19:16                 ` Rafael J. Wysocki
     [not found]                 ` <200707142116.10237.rjw@sisk.pl>
2007-07-15  9:30                   ` Huang, Ying
     [not found]                   ` <1184491804.1898.121.camel@caritas-dev.intel.com>
2007-07-15 10:49                     ` Rafael J. Wysocki
2007-07-17  8:13                     ` david
     [not found]                     ` <Pine.LNX.4.64.0707170101010.19248@asgard.lang.hm>
2007-07-17 11:59                       ` Rafael J. Wysocki
2007-07-17 12:48                       ` Huang, Ying
     [not found]                       ` <1184676518.10998.34.camel@caritas-dev.intel.com>
2007-07-17 14:22                         ` Rafael J. Wysocki
2007-07-18  0:25                           ` david
2007-07-13 23:15       ` Huang, Ying
     [not found] ` <20070711111350.GI7091@elf.ucw.cz>
     [not found]   ` <1184257734.9346.76.camel@caritas-dev.intel.com>
2007-07-12  8:54     ` Pavel Machek
     [not found]     ` <20070712085428.GA1866@elf.ucw.cz>
2007-07-13 23:18       ` Huang, Ying
2007-07-12 16:28   ` Huang, Ying

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=200707132308.24323.rjw@sisk.pl \
    --to=rjw@sisk.pl \
    --cc=akpm@linux-foundation.org \
    --cc=david@lang.hm \
    --cc=ebiederm@xmission.com \
    --cc=jbms@cmu.edu \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=pavel@ucw.cz \
    --cc=stern@rowland.harvard.edu \
    --cc=ying.huang@intel.com \
    /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