From: Nigel Cunningham <ncunningham@cyclades.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: "Pavel Machek" <pavel@ucw.cz>, "Andrew Morton" <akpm@osdl.org>,
"Linus Torvalds" <torvalds@osdl.org>,
"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
"Benjamin Herrenschmidt" <benh@kernel.crashing.org>,
linux-pm@osdl.org,
"Martin MOKREJŠ" <mmokrejs@ribosome.natur.cuni.cz>,
"Zlatko Calusic" <zlatko.calusic@iskon.hr>,
"José Luis Domingo López" <jdomingo@24x7linux.com>,
john@illhostit.com, sjordet@gmail.com, fastboot@lists.osdl.org,
linux-kernel@24x7linux.com, "Greg KH" <greg@kroah.com>
Subject: Re: FYI: device_suspend(...) in kernel_power_off().
Date: Wed, 10 Aug 2005 07:29:39 +1000 [thread overview]
Message-ID: <1123622979.4370.216.camel@localhost> (raw)
In-Reply-To: <m1pssnvx84.fsf@ebiederm.dsl.xmission.com>
Hi.
On Wed, 2005-08-10 at 03:25, Eric W. Biederman wrote:
> Pavel Machek <pavel@ucw.cz> writes:
>
> > Hi!
> >
> >> >> There as been a fair amount of consensus that calling
> >> >> device_suspend(...) in the reboot path was inappropriate now, because
> >> >> the device suspend code was too immature. With this latest
> >> >> piece of evidence it seems to me that introducing device_suspend(...)
> >> >> in kernel_power_off, kernel_halt, kernel_reboot, or kernel_kexec
> >> >> can never be appropriate.
> >> >
> >> > Code is not ready now => it can never be fixed? Thats quite a strange
> >> > conclusion to make.
> >>
> >> It seems there is an fundamental incompatibility with ACPI power off.
> >> As best as I can tell the normal case of device_suspend(PMSG_SUSPEND)
> >> works reasonably well in 2.6.x.
> >
> > Powerdown is going to have the same problems as the powerdown at the
> > end of suspend-to-disk. Can you ask people reporting broken shutdown
> > to try suspend-to-disk?
>
> Everyone I know of who is affected has been copied on this thread.
> However your request is just nonsense. There is a device_resume in
> the code before we get to the device_shutdown so there should be no
> effect at all. Are we looking at the same kernel?
My poweroff after suspend-to-disk was broken during 2.6.13-rcs, and came
right in rc6.
> >> >From what I can tell there are some fairly fundamental semantic
> >> differences, on that code path. The most peculiar problem I tracked
> >> is someone had a machine that would go into power off state and then
> >> wake right back up because of the device_suspend(PMSG_SUSPEND)
> >> change.
> >
> > So something is wrong with ACPI wakeup GPEs. It would hurt in
> > suspend-to-disk case, too.
>
> Something was wrong. I can't possibly see how the suspend-to-disk
> case would be affected.
>
> >> I won't call it impossible to resolve the problems, but the people
> >
> > Good.
>
> Nope. Now that I have read the code I would just call it nonsense.
>
> >> So yes without a darn good argument as to why it should work. I will
> >> go with the experimental evidence that it fails miserably and
> >> trivially because of semantic incompatibility and can therefore
> >> never be fixed.
> >
> > I do not think any "semantic" issues exist. We need to pass detailed
> > info down to the drivers that care, and we need to fix all the bugs in
> > the drivers. That should be pretty much it.
>
> Given that acpi and other platform firmware is involved there are
> pieces we cannot fix. We either match the spec or we are incorrect.
>
> I haven't a clue how suspend/resume is expected to interact with
> things in suspend to disk scenario. Reading through the code
> the power message is PMSG_FREEZE not PMSG_SUSPEND (as you
> implemented). All of the hardware is actually resumed before
> we device_shutdown() is called.
>
> I want to see the correlation between device_suspend(PMSG_FREEZE) and
> the code in device_shutdown(), but I don't see it.
> device_suspend(...) is all about allowing the state of a device to be
> preserved. device_shutdown() is really about stopping it. These are
> really quite different operations.
Agreed here.
> With the pm_suspend_disk calling kernel_power_off it appears that we
> currently have complete code reuse of the relevant code on that path.
>
> Currently I see no true redundancy between the two cases at all.
> The methods do different things for different purposes. Which is
> about the largest semantic difference I can think of. The fact
> that the methods at first glance look like they do the same
> thing is probably the real surprise.
If the suspend to disk code called kernel_power_off, it should be
exactly what it sounds like. We've already written the image and we now
went to simply power down the machine. Just as with a 'normal'
powerdown, we should do everything necessary to ensure all data
submitted to hard drives is really flushed and that emergency head
parking isn't done, and then power down (or reboot). This should, so far
as I can see, be exactly the same in both cases.
Regards,
Nigel
> Calling device_suspend(...) from kernel_power_off, kernel_halt,
> kernel_kexec, or kernel_restart seems pointless, useless and silly.
>
> Eric
--
Evolution.
Enumerate the requirements.
Consider the interdependencies.
Calculate the probabilities.
next prev parent reply other threads:[~2005-08-09 21:30 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-26 17:19 [PATCH 0/23] reboot-fixes Eric W. Biederman
2005-07-26 17:21 ` [PATCH 1/23] Add missing device_suspsend(PMSG_FREEZE) calls Eric W. Biederman
2005-07-26 17:24 ` [PATCH 2/23] Refactor sys_reboot into reusable parts Eric W. Biederman
2005-07-26 17:27 ` [PATCH 3/23] Make ctrl_alt_del call kernel_restart to get a proper reboot Eric W. Biederman
2005-07-26 17:29 ` [PATCH 4/23] Add emergency_restart() Eric W. Biederman
2005-07-26 17:32 ` [PATCH 5/23] Fix the arguments to machine_restart on cris Eric W. Biederman
2005-07-26 17:36 ` [PATCH 6/23] Don't export machine_restart, machine_halt, or machine_power_off Eric W. Biederman
2005-07-26 17:41 ` [PATCH 7/23] i386: Implement machine_emergency_reboot Eric W. Biederman
2005-07-26 17:44 ` [PATCH 8/23] x86_64: Fix reboot_force Eric W. Biederman
2005-07-26 17:45 ` [PATCH 9/23] x86_64: Implemenent machine_emergency_restart Eric W. Biederman
2005-07-26 17:47 ` [PATCH 10/23] Use kernel_power_off in sysrq-o Eric W. Biederman
2005-07-26 17:49 ` [PATCH 11/23] Call emergency_reboot from panic Eric W. Biederman
2005-07-26 17:51 ` [PATCH 12/23] Update sysrq-B to use emergency_restart() Eric W. Biederman
2005-07-26 17:53 ` [PATCH 13/23] Fix watchdog drivers to call emergency_reboot() Eric W. Biederman
2005-07-26 17:55 ` [PATCH 14/23] In hangcheck-timer.c call emergency_restart() Eric W. Biederman
2005-07-26 17:59 ` [PATCH 15/23] 68328serial: sysrq should use emergency_reboot Eric W. Biederman
2005-07-26 18:01 ` [PATCH 16/23] swpsuspend: Have suspend to disk use factors of sys_reboot Eric W. Biederman
2005-07-26 18:03 ` [PATCH 17/23] pcwd.c: Call kernel_power_off not machine_power_off Eric W. Biederman
2005-07-26 18:07 ` [PATCH 18/23] machine_shutdown: Typo fix to actually allow specifying which cpu to reboot on Eric W. Biederman
2005-07-26 18:08 ` [PATCH 19/23] i386 machine_power_off cleanup Eric W. Biederman
2005-07-26 18:10 ` [PATCH 20/23] APM: Remove redundant call to set_cpus_allowed Eric W. Biederman
2005-07-26 18:14 ` [PATCH 21/23] x86_64 sync machine_power_off with i386 Eric W. Biederman
2005-07-26 18:16 ` [PATCH 22/23] acpi_power_off: Don't switch to the boot cpu Eric W. Biederman
2005-07-26 18:17 ` [PATCH 23/23] acpi: Don't call acpi_sleep_prepare from acpi_power_off Eric W. Biederman
2005-07-26 20:57 ` [PATCH 16/23] swpsuspend: Have suspend to disk use factors of sys_reboot Andrew Morton
2005-07-26 21:02 ` Pavel Machek
2005-07-26 23:55 ` [PATCH 6/23] Don't export machine_restart, machine_halt, or machine_power_off Marc Ballarin
2005-07-27 0:20 ` Eric W. Biederman
2005-07-27 0:26 ` Andrew Morton
2005-07-27 0:31 ` Linus Torvalds
2005-07-26 17:54 ` [PATCH 1/23] Add missing device_suspsend(PMSG_FREEZE) calls Nigel Cunningham
2005-07-28 1:12 ` Eric W. Biederman
2005-07-28 2:21 ` [linux-pm] " david-b
2005-07-28 2:44 ` Shaohua Li
2005-07-26 20:08 ` [PATCH 0/23] reboot-fixes Pavel Machek
2005-07-27 9:59 ` Andrew Morton
2005-07-27 15:32 ` Eric W. Biederman
2005-07-27 15:56 ` Eric W. Biederman
2005-07-27 17:41 ` Andrew Morton
2005-07-27 18:15 ` Eric W. Biederman
2005-07-27 18:17 ` Eric W. Biederman
2005-07-27 18:29 ` Andrew Morton
2005-07-27 18:43 ` Eric W. Biederman
2005-07-27 22:47 ` Pavel Machek
2005-07-27 22:51 ` Andrew Morton
2005-07-27 22:54 ` Pavel Machek
2005-08-04 3:24 ` Nigel Cunningham
2005-08-04 21:45 ` Pavel Machek
[not found] ` <m1ackah4r3.fsf@ebiederm.dsl.xmission.com>
[not found] ` <20050725161548.274d3d67.akpm@osdl.org>
[not found] ` <dnpst4v5px.fsf@magla.zg.iskon.hr>
[not found] ` <m1oe8o9stl.fsf@ebiederm.dsl.xmission.com>
[not found] ` <dny87s6oe9.fsf@magla.zg.iskon.hr>
[not found] ` <m1r7dk82a4.fsf@ebiederm.dsl.xmission.com>
[not found] ` <42E8439E.9030103@ribosome.natur.cuni.cz>
[not found] ` <20050727193911.2cb4df88.akpm@osdl.org>
[not found] ` <42F121CD.5070903@ribosome.natur.cuni.cz>
[not found] ` <20050803200514.3ddb8195.akpm@osdl.org>
[not found] ` <20050805140837.GA5556@localhost>
[not found] ` <42F52AC5.1060109@ribosome.natur.cuni.cz>
2005-08-04 22:16 ` Nigel Cunningham
2005-08-07 12:48 ` FYI: device_suspend(...) in kernel_power_off() Eric W. Biederman
2005-08-07 19:02 ` Pavel Machek
2005-08-07 19:46 ` Eric W. Biederman
2005-08-07 21:11 ` Pavel Machek
2005-08-09 17:25 ` Eric W. Biederman
2005-08-09 21:29 ` Nigel Cunningham [this message]
2005-08-10 13:08 ` Pavel Machek
2005-07-27 22:51 ` [PATCH 0/23] reboot-fixes Linus Torvalds
2005-07-27 22:53 ` Pavel Machek
2005-07-27 23:20 ` Eric W. Biederman
2005-07-28 7:43 ` Pavel Machek
2005-07-28 14:54 ` Eric W. Biederman
2005-07-29 3:11 ` Eric W. Biederman
2005-07-27 23:07 ` Eric W. Biederman
2005-07-28 7:42 ` Pavel Machek
2005-07-29 3:12 ` Eric W. Biederman
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=1123622979.4370.216.camel@localhost \
--to=ncunningham@cyclades.com \
--cc=akpm@osdl.org \
--cc=benh@kernel.crashing.org \
--cc=ebiederm@xmission.com \
--cc=fastboot@lists.osdl.org \
--cc=greg@kroah.com \
--cc=jdomingo@24x7linux.com \
--cc=john@illhostit.com \
--cc=linux-kernel@24x7linux.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@osdl.org \
--cc=mmokrejs@ribosome.natur.cuni.cz \
--cc=pavel@ucw.cz \
--cc=sjordet@gmail.com \
--cc=torvalds@osdl.org \
--cc=zlatko.calusic@iskon.hr \
/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