public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: linux-pm@lists.linux-foundation.org
Subject: Re: shrinking memory for suspend?
Date: Mon, 30 Apr 2007 21:57:32 +0200	[thread overview]
Message-ID: <200704302157.33000.rjw@sisk.pl> (raw)
In-Reply-To: <1177945758.5102.96.camel@johannes.berg>

On Monday, 30 April 2007 17:09, Johannes Berg wrote:
> Hi,
> 
> > I don't think it's related to the freezing of user space.  You can allocate
> > memory with all of the user space frozen just fine.  I'd say it's related to
> > the freezing of kernel threads, rather.
> 
> Ah, true, of course.
> 
> > > Why do we freeze userspace anyway?
> > 
> > Well, let me quote Linus:
> > 
> > "I _do_ realize the IO request queue issues, and that we cannot actually do 
> > s2ram with some devices in the middle of a DMA. So we want to be able to 
> > avoid *that*, there's no question about that. And I suspect that stopping 
> > user threads and then waiting for a sync is practically one of the easier 
> > ways to do so."
> 
> Hmm, yeah. Does this apply to kernel threads too? Actually, I guess
> device drivers should wait for suspend and reject commands to devices
> that are suspended already?

Kernel threads that belong to device drivers are frozen too (well, not exactly
all of them, but let's omit the ugly details for now), because they generally
need to be synchronized with the drivers' .suspend() and .resume() routines
and IMO it's easier to freeze them than handle that in any other way.

After .suspend() and before .resume() any commands should not be sent to the
device.

> Can it actually happen that we schedule to userspace while calling all the
> suspend issues etc? 

No, the user space is frozen (ie. in TASK_UNINTERRUPTIBLE) at that time.

Greetings,
Rafael

  reply	other threads:[~2007-04-30 19:57 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-30 14:24 shrinking memory for suspend? Johannes Berg
2007-04-30 15:09 ` Alan Stern
2007-04-30 15:10 ` Rafael J. Wysocki
2007-04-30 15:09   ` Johannes Berg
2007-04-30 19:57     ` Rafael J. Wysocki [this message]
2007-05-02 11:29 ` Pavel Machek
2007-05-02 14:02   ` Johannes Berg
2007-05-03 10:17     ` Rafael J. Wysocki
2007-05-03 10:34       ` Paul Mackerras
2007-05-03 10:45         ` Rafael J. Wysocki
2007-05-03 12:51           ` Paul Mackerras
2007-05-03 13:15             ` Rafael J. Wysocki
2007-05-03 16:34             ` Pavel Machek
2007-05-03 14:34           ` Alan Stern
2007-05-03 16:39             ` Rafael J. Wysocki
2007-05-03 23:32             ` Paul Mackerras
2007-05-04  9:02               ` Rafael J. Wysocki
2007-05-04 10:49                 ` Paul Mackerras
2007-05-04 12:11                   ` Rafael J. Wysocki
2007-05-04 15:05               ` Alan Stern
2007-05-03 11:33       ` Johannes Berg
2007-05-03 12:56         ` Rafael J. Wysocki
2007-05-04 10:48           ` Johannes Berg

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=200704302157.33000.rjw@sisk.pl \
    --to=rjw@sisk.pl \
    --cc=johannes@sipsolutions.net \
    --cc=linux-pm@lists.linux-foundation.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