linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
To: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Dave Hansen <dave@linux.vnet.ibm.com>,
	Yasunori Goto <y-goto@jp.fujitsu.com>,
	Nigel Cunningham <ncunningham@crca.org.au>,
	Matt Tolentino <matthew.e.tolentino@intel.com>,
	linux-pm@lists.osdl.org, Dave Hansen <haveblue@us.ibm.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org, pavel@suse.cz,
	Mel Gorman <mel@skynet.ie>, Andy Whitcroft <apw@shadowen.org>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [linux-pm] [PATCH] hibernation should work ok with memory hotplug
Date: Thu, 6 Nov 2008 09:14:41 +0900	[thread overview]
Message-ID: <20081106091441.6517c072.kamezawa.hiroyu@jp.fujitsu.com> (raw)
In-Reply-To: <200811051208.26628.rjw@sisk.pl>

On Wed, 5 Nov 2008 12:08:25 +0100
"Rafael J. Wysocki" <rjw@sisk.pl> wrote:

> On Wednesday, 5 of November 2008, KAMEZAWA Hiroyuki wrote:
> > On Tue, 04 Nov 2008 08:59:05 -0800
> > Dave Hansen <dave@linux.vnet.ibm.com> wrote:
> > 
> > > On Tue, 2008-11-04 at 17:34 +0100, Rafael J. Wysocki wrote:
> > > > Now, I need to do one more thing, which is to check how much memory has to be
> > > > freed before creating the image.  For this purpose I need to lock memory
> > > > hotplug temporarily, count pages to free and unlock it.  What interface should
> > > > I use for this purpose? 
> > > > 
> > > > [I'll also need to lock memory hotplug temporarily during resume.]
> > > 
> > > We currently don't have any big switch to disable memory hotplug, like
> > > lock_memory_hotplug() or something. :)
> > > 
> > > If you are simply scanning and counting pages, I think the best thing to
> > > use would be the zone_span_seq*() seqlock stuff.  Do your count inside
> > > the seqlock's while loop.  That covers detecting a zone changing while
> > > it is being scanned.
> > > 
> > > The other case to detect is when a new zone gets added.  These are
> > > really rare.  Rare enough that we actually use a stop_machine() call in
> > > build_all_zonelists() to do it.  All you would have to do is detect when
> > > one of these calls gets made.  I think that's a good application for a
> > > new seq_lock.
> > > 
> > > I've attached an utterly untested patch that should do the trick.
> > > Yasunori and KAME should probably take a look at it since the node
> > > addition code is theirs.
> > > 
> > 
> > Hmm ? I think there is no real requirement for doing hibernation while
> > memory is under hotplug.
> > 
> > Assume following.
> >  - memory hotplug can be triggerred by
> >     1. interrupt from system.
> >     2. "probe" interface in sysfs.
> >  - ONLINE/OFFLINE is only trigerred by sysfs interface.
> > 
> > I believe we can't block "1", but "1" cannot be raised while hibernation.
> > (If it happens, it's mistake of the firmware.)
> > 
> > "probe" interface can be triggered from userland. Then it may be worth to be
> > blocked. How about to add device_pm_lock() to following place ?
> 
> This is not necessary as long as we freeze the userland before hibernation.
> Still, this is one thing to remeber that the freezing is needed for. :-)
> 
> 1. seems to be problematic, though, since we rely on zones remaining
> unchanged while we're counting memory pages to free before hibernation
> and this happens before the calling ->suspend() methods of device drivers.
> Of course we can count free pages in a different way, but that will be a
> substantial modification (I think).
> 
> How's the firmware supposed to be notified that hibernation is going to happen?
> 

Ok, please consider "when memory hotplug happens." 

In general, it happens when
  1. memory is inserted to slot.
  2. the firmware notifes the system to enable already inserted memory.

To trigger "1", you have to open cover of server/pc. Do you open pc while the system
starts hibernation ? for usual people, no.

To trigger "2", the user have special console to tell firmware "enable this memory".
Such firmware console or users have to know "the system works well." And, more important,
when the system is suspended, the firmware can't do hotplug because the kernel is sleeping.
So, such firmware console or operator have to know the system status.

Am I missing some ? Current linux can know PCI/USB hotplug while the system is suspended ?


Thanks,
-Kame







--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2008-11-06  0:15 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20081029105956.GA16347@atrey.karlin.mff.cuni.cz>
     [not found] ` <200810291325.01481.rjw@sisk.pl>
2008-11-03 20:51   ` Andrew Morton
2008-11-03 21:18     ` [linux-pm] " Nigel Cunningham
2008-11-03 21:21     ` Dave Hansen
2008-11-03 22:24       ` Rafael J. Wysocki
2008-11-03 22:34         ` Dave Hansen
2008-11-03 23:05           ` Rafael J. Wysocki
2008-11-03 23:10             ` Dave Hansen
2008-11-04  0:29               ` Rafael J. Wysocki
2008-11-04  0:52                 ` Dave Hansen
2008-11-03 23:39           ` Andy Whitcroft
2008-11-04  4:02           ` [linux-pm] " Nigel Cunningham
2008-11-04  7:08             ` Rafael J. Wysocki
2008-11-04  7:36               ` Dave Hansen
2008-11-04  8:54                 ` Rafael J. Wysocki
2008-11-04 15:21                   ` Dave Hansen
2008-11-04 15:35                     ` Rafael J. Wysocki
2008-11-04 15:39                       ` Dave Hansen
2008-11-04 16:34                         ` Rafael J. Wysocki
2008-11-04 16:59                           ` Dave Hansen
2008-11-05  0:38                             ` KAMEZAWA Hiroyuki
2008-11-05 11:08                               ` Rafael J. Wysocki
2008-11-06  0:14                                 ` KAMEZAWA Hiroyuki [this message]
2008-11-06  0:28                                   ` Dave Hansen
2008-11-06  0:53                                     ` KAMEZAWA Hiroyuki
2008-11-06  2:03                                       ` Nigel Cunningham
2008-11-06  2:13                                         ` KAMEZAWA Hiroyuki
2008-11-06 14:47                                       ` Alan Stern
2008-11-07  1:09                                         ` KAMEZAWA Hiroyuki
2008-11-06  8:47                                     ` Pavel Machek
2008-11-06  1:17                                   ` KAMEZAWA Hiroyuki
2008-11-06  1:43                                     ` Nigel Cunningham
2008-11-06  1:54                                       ` KAMEZAWA Hiroyuki
2008-11-06  1:59                                         ` KAMEZAWA Hiroyuki
2008-11-06  2:00                                         ` Nigel Cunningham
2008-11-06  2:07                                           ` KAMEZAWA Hiroyuki
2008-11-06  3:12                                             ` KAMEZAWA Hiroyuki
2008-11-06  3:28                                               ` Yasunori Goto
2008-11-06  6:04                                                 ` KAMEZAWA Hiroyuki
2008-11-06 14:48                                           ` Alan Stern
2008-11-06 20:46                                             ` Nigel Cunningham
2008-11-06  9:12                                     ` Pavel Machek
2008-11-06  9:12                                       ` KAMEZAWA Hiroyuki
2008-11-06  9:26                                         ` Nigel Cunningham
2008-11-06 14:43                                   ` Alan Stern
2008-11-04  7:09             ` Dave Hansen
2008-11-04  7:30               ` Nigel Cunningham
2008-11-04  7:53                 ` Dave Hansen
2008-11-05  9:10                   ` Nigel Cunningham
2008-11-05 10:58                     ` Rafael J. Wysocki
2008-11-05 16:23                     ` Dave Hansen
2008-11-06 12:28     ` Pavel Machek

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=20081106091441.6517c072.kamezawa.hiroyu@jp.fujitsu.com \
    --to=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=akpm@linux-foundation.org \
    --cc=apw@shadowen.org \
    --cc=dave@linux.vnet.ibm.com \
    --cc=haveblue@us.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-pm@lists.osdl.org \
    --cc=matthew.e.tolentino@intel.com \
    --cc=mel@skynet.ie \
    --cc=ncunningham@crca.org.au \
    --cc=pavel@suse.cz \
    --cc=rjw@sisk.pl \
    --cc=y-goto@jp.fujitsu.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