From: Pavel Machek <pavel-AlSwsSmVLrQ@public.gmane.org>
To: Benjamin Herrenschmidt
<benh-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>
Cc: Patrick Mochel <mochel-3NddpPZAyC0@public.gmane.org>,
Lyle <lwspm-RAHWjsxJnJUdnm+yROfE0A@public.gmane.org>,
acpi-devel-pyega4qmqnRoyOMFzWx49A@public.gmane.org
Subject: Re: suspend.c vs driver-model.txt
Date: Mon, 29 Jul 2002 20:31:44 +0200 [thread overview]
Message-ID: <20020729183143.GA13729@elf.ucw.cz> (raw)
In-Reply-To: <20020729173302.30557-Q0ErXNX1RuY/GWcAdfcqrQ@public.gmane.org>
Hi!
> >Discussing with who?
>
> We had a Power Management BOF there, among others, Patrick Mochel,
> Greg KH, Andy, Paulus, Jeff Garzik, ...
Oops... I guess I should have been there :-(. Sorry.
> >Its rather simple: free half of memory, stop everything, save device
> >state, copy used memory into free memory, continue devices, save data
> >from "free" memory into swap.
>
> Ok, so you first push as much as you can to swap to free half
> of memory. Then, when you say you copy used memory, I assume you copy
> all of RAM including kernel memory (kernel data structures etc...)
> right ?
Yes.
> What do you mean by "stop everything" ? Stop user processes ? Kernel
> threads ? both ?
Stop all user processes and all kernel processes that could cause
trouble. Don't stop kapm-idled (for example) but be sure to stop
ext3-commitd (or how is that beast called).
> Then, you only save device state (and then suspend
> devices) after you have "stopped everything" ?
Yes.
Code looks like this:
void do_software_suspend(void)
{
arch_prepare_suspend();
if (prepare_suspend_console())
printk( "%sCan't allocate a console... proceeding\n", name_suspend);
if (!prepare_suspend_processes()) {
/* At this point, all user processes and "dangerous"
kernel threads are stopped. Free some memory, as we
need half of memory free. */
free_some_memory();
/* No need to invalidate any vfsmnt list -- they will be valid after resume, anyway.
*
* We sync here -- so you have consistent filesystem state when things go wrong.
* -- so that noone writes to disk after we do atomic copy of data.
*/
PRINTK("Syncing disks before copy\n");
do_suspend_sync();
/* Save state of all device drivers, and stop them. */
if(drivers_suspend()==0)
/* If stopping device drivers worked, we proceed basically into
* suspend_save_image.
*
* do_magic(0) returns after system is resumed.
*
* do_magic() copies all "used" memory to "free" memory, then
* unsuspends all device drivers, and writes memory to disk
* using normal kernel mechanism.
*/
do_magic(0);
PRINTK("Restarting processes...\n");
thaw_processes();
}
software_suspend_enabled = 1;
MDELAY(1000);
restore_console ();
}
(Most comments were added 5 minutes ago).
Does it look understendable now?
Pavel
--
Worst form of spam? Adding advertisment signatures ala sourceforge.net.
What goes next? Inserting advertisment *into* email?
-------------------------------------------------------
This sf.net email is sponsored by: Dice - The leading online job board
for high-tech professionals. Search and apply for tech jobs today!
http://seeker.dice.com/seeker.epl?rel_code=31
next prev parent reply other threads:[~2002-07-29 18:31 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <mochel@osdl.org>
[not found] ` <Pine.LNX.4.44.0207240843090.954-100000-yZQdDDOm3n9ZQn2sFP3R7eTW4wlIGRCZ@public.gmane.org>
2002-07-24 16:37 ` suspend.c vs driver-model.txt Lyle
[not found] ` <20020724163701.D99F714808-RAHWjsxJnJUdnm+yROfE0A@public.gmane.org>
2002-07-24 18:25 ` Patrick Mochel
[not found] ` <Pine.LNX.4.44.0207241100080.954-100000-yZQdDDOm3n9ZQn2sFP3R7eTW4wlIGRCZ@public.gmane.org>
2002-07-24 17:38 ` Benjamin Herrenschmidt
[not found] ` <20020724173809.10194-Q0ErXNX1RuY/GWcAdfcqrQ@public.gmane.org>
2002-07-29 9:00 ` Pavel Machek
[not found] ` <20020729090041.GB115-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2002-07-29 15:08 ` Benjamin Herrenschmidt
[not found] ` <20020729150807.3604-Q0ErXNX1RuY/GWcAdfcqrQ@public.gmane.org>
2002-07-29 17:56 ` Pavel Machek
[not found] ` <20020729175650.GA1233-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2002-07-29 17:33 ` Benjamin Herrenschmidt
[not found] ` <20020729173302.30557-Q0ErXNX1RuY/GWcAdfcqrQ@public.gmane.org>
2002-07-29 18:31 ` Pavel Machek [this message]
[not found] ` <20020729183143.GA13729-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2002-07-29 18:05 ` Benjamin Herrenschmidt
[not found] ` <20020729180547.20998-Q0ErXNX1RuY/GWcAdfcqrQ@public.gmane.org>
2002-07-29 19:11 ` Pavel Machek
[not found] ` <20020729191146.GE13729-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2002-07-30 7:57 ` Benjamin Herrenschmidt
2002-07-29 22:36 ` Patrick Mochel
2002-07-24 17:56 ` Lyle
2002-07-30 0:25 Grover, Andrew
[not found] <20020729180037.GB1233@elf.ucw.cz>
[not found] ` <20020729180037.GB1233-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2002-07-29 17:55 ` Benjamin Herrenschmidt
[not found] ` <20020729175556.13645-Q0ErXNX1RuY/GWcAdfcqrQ@public.gmane.org>
2002-07-29 19:02 ` Pavel Machek
[not found] ` <20020729190219.GD13729-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2002-07-30 7:53 ` Benjamin Herrenschmidt
[not found] ` <20020730075329.26474-Q0ErXNX1RuY/GWcAdfcqrQ@public.gmane.org>
2002-07-30 18:29 ` Pavel Machek
[not found] ` <20020730182921.GD7567-jyMamyUUXNJG4ohzP4jBZS1Fcj925eT/@public.gmane.org>
2002-07-30 18:18 ` Benjamin Herrenschmidt
[not found] ` <20020730181810.30687-Q0ErXNX1RuY/GWcAdfcqrQ@public.gmane.org>
2002-07-30 19:38 ` Pavel Machek
[not found] ` <20020730193857.GC12091-jyMamyUUXNJG4ohzP4jBZS1Fcj925eT/@public.gmane.org>
2002-07-30 18:39 ` Benjamin Herrenschmidt
[not found] ` <20020730183941.6386-Q0ErXNX1RuY/GWcAdfcqrQ@public.gmane.org>
2002-07-30 19:51 ` Pavel Machek
[not found] ` <20020730195149.GI12091-jyMamyUUXNJG4ohzP4jBZS1Fcj925eT/@public.gmane.org>
2002-07-30 18:50 ` Benjamin Herrenschmidt
2002-07-30 18:47 ` Patrick Mochel
[not found] ` <Pine.LNX.4.44.0207301136050.22697-100000-yZQdDDOm3n9ZQn2sFP3R7eTW4wlIGRCZ@public.gmane.org>
2002-07-30 18:54 ` Pavel Machek
2002-07-30 8:04 ` Benjamin Herrenschmidt
[not found] ` <20020730080418.11907-Q0ErXNX1RuY/GWcAdfcqrQ@public.gmane.org>
2002-07-30 18:22 ` Pavel Machek
[not found] ` <20020730182255.GC7567-jyMamyUUXNJG4ohzP4jBZS1Fcj925eT/@public.gmane.org>
2002-07-30 18:32 ` Patrick Mochel
[not found] ` <Pine.LNX.4.44.0207301125370.22697-100000-yZQdDDOm3n9ZQn2sFP3R7eTW4wlIGRCZ@public.gmane.org>
2002-07-30 18:44 ` Pavel Machek
[not found] ` <20020730184442.GE7567-jyMamyUUXNJG4ohzP4jBZS1Fcj925eT/@public.gmane.org>
2002-07-30 18:22 ` Benjamin Herrenschmidt
[not found] ` <20020730182219.13608-Q0ErXNX1RuY/GWcAdfcqrQ@public.gmane.org>
2002-07-30 19:42 ` Pavel Machek
[not found] ` <20020730194214.GD12091-jyMamyUUXNJG4ohzP4jBZS1Fcj925eT/@public.gmane.org>
2002-07-30 18:43 ` Benjamin Herrenschmidt
[not found] ` <20020730184305.23369-Q0ErXNX1RuY/GWcAdfcqrQ@public.gmane.org>
2002-07-30 19:56 ` Pavel Machek
[not found] ` <20020730195655.GK12091-jyMamyUUXNJG4ohzP4jBZS1Fcj925eT/@public.gmane.org>
2002-07-30 18:57 ` Benjamin Herrenschmidt
[not found] ` <20020730185730.615-Q0ErXNX1RuY/GWcAdfcqrQ@public.gmane.org>
2002-07-30 20:06 ` Pavel Machek
[not found] ` <20020730200634.GA16297-jyMamyUUXNJG4ohzP4jBZS1Fcj925eT/@public.gmane.org>
2002-07-30 21:21 ` Patrick Mochel
[not found] ` <Pine.LNX.4.44.0207301406440.22697-100000-yZQdDDOm3n9ZQn2sFP3R7eTW4wlIGRCZ@public.gmane.org>
2002-07-31 21:44 ` Pavel Machek
2002-07-30 22:33 ` Benjamin Herrenschmidt
2002-07-30 18:51 ` Patrick Mochel
[not found] ` <Pine.LNX.4.44.0207301148350.22697-100000-yZQdDDOm3n9ZQn2sFP3R7eTW4wlIGRCZ@public.gmane.org>
2002-07-30 18:25 ` Benjamin Herrenschmidt
[not found] ` <20020730182552.1477-Q0ErXNX1RuY/GWcAdfcqrQ@public.gmane.org>
2002-07-30 19:47 ` Pavel Machek
2002-07-30 19:00 ` Pavel Machek
[not found] ` <20020730190041.GH7567-jyMamyUUXNJG4ohzP4jBZS1Fcj925eT/@public.gmane.org>
2002-07-30 18:27 ` Benjamin Herrenschmidt
2002-07-30 19:03 ` Patrick Mochel
[not found] ` <Pine.LNX.4.44.0207301202250.22697-100000-yZQdDDOm3n9ZQn2sFP3R7eTW4wlIGRCZ@public.gmane.org>
2002-07-30 19:11 ` Pavel Machek
[not found] ` <20020730191127.GB11531-jyMamyUUXNJG4ohzP4jBZS1Fcj925eT/@public.gmane.org>
2002-07-30 19:12 ` Patrick Mochel
2002-07-30 20:46 ` Alan Cox
[not found] ` <1028061979.7974.40.camel-MMxVpc8zpTQVh3rx8e9g/fyykp6/JSeS3vcXtXqGYxw@public.gmane.org>
2002-07-30 18:34 ` Benjamin Herrenschmidt
[not found] ` <20020730183448.20582-Q0ErXNX1RuY/GWcAdfcqrQ@public.gmane.org>
2002-07-30 19:53 ` Pavel Machek
[not found] ` <20020730195348.GJ12091-jyMamyUUXNJG4ohzP4jBZS1Fcj925eT/@public.gmane.org>
2002-07-30 18:51 ` Benjamin Herrenschmidt
2002-07-30 20:11 ` Alan Cox
-- strict thread matches above, loose matches on Subject: below --
2002-07-24 19:43 Grover, Andrew
[not found] ` <59885C5E3098D511AD690002A5072D3C07990D78-OU+JdkIUtvcLll3ZsUKC9FDQ4js95KgL@public.gmane.org>
2002-07-29 22:50 ` Patrick Mochel
[not found] <lwspm@o-o.yi.org>
[not found] ` <20020724133821.5598714808-RAHWjsxJnJUdnm+yROfE0A@public.gmane.org>
2002-07-24 13:47 ` Lyle
[not found] ` <20020724134715.6060914808-RAHWjsxJnJUdnm+yROfE0A@public.gmane.org>
2002-07-24 15:51 ` Patrick Mochel
2002-07-24 17:07 ` Pavel Machek
2002-07-24 13:38 Lyle
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=20020729183143.GA13729@elf.ucw.cz \
--to=pavel-alswssmvlrq@public.gmane.org \
--cc=acpi-devel-pyega4qmqnRoyOMFzWx49A@public.gmane.org \
--cc=benh-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org \
--cc=lwspm-RAHWjsxJnJUdnm+yROfE0A@public.gmane.org \
--cc=mochel-3NddpPZAyC0@public.gmane.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