[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200709202354.42557.rjw@sisk.pl>
Date: Thu, 20 Sep 2007 23:54:41 +0200
From: "Rafael J. Wysocki" <rjw@...k.pl>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Thomas Gleixner <tglx@...utronix.de>,
Andrew Morton <akpm@...ux-foundation.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Jaroslav Kysela <perex@...e.cz>, Takashi Iwai <tiwai@...e.de>,
linux-usb-devel@...ts.sourceforge.net,
Venkatesh Pallipadi <venkatesh.pallipadi@...el.com>,
Ingo Molnar <mingo@...e.hu>, miklos@...redi.hu,
Len Brown <len.brown@...el.com>
Subject: Re: 2.6.23-rc6-mm1: failure to boot on HP nx6325, no sound when booted, USB-related WARNING
On Thursday, 20 September 2007 23:35, Linus Torvalds wrote:
>
> On Thu, 20 Sep 2007, Thomas Gleixner wrote:
> >
> > In meantime I figured out what's happening. The ordering in
> > hibernate_snapshot() is wrong. It does:
Actually, this is incorrect. Please read my reply to Thomas, just sent.
> Hmm. This is close to the ordering we have in STR too.
>
> I have some dim memory of there being some ACPI reason why it had to be
> done that way.
Yes. We're executing _INI from the CPU initialization code and that shouldn't
be done after _WAK, which is called from platform_finish().
> In fact, this was done in commit e3c7db621bed4afb8e231cb005057f2feb5db557,
> long ago, by Rafael:
>
> As indicated in a recent thread on Linux-PM, it's necessary to call
> pm_ops->finish() before devce_resume(), but enable_nonboot_cpus() has to be
> called before pm_ops->finish() (cf.
> http://lists.osdl.org/pipermail/linux-pm/2006-November/004164.html). For
> consistency, it seems reasonable to call disable_nonboot_cpus() after
> device_suspend().
>
> This way the suspend code will remain symmetrical with respect to the resume
> code and it may allow us to speed up things in the future by suspending and
> resuming devices and/or saving the suspend image in many threads.
>
> The following series of patches reorders the suspend and resume code so that
> nonboot CPUs are disabled after devices have been suspended and enabled before
> the devices are resumed. It also causes pm_ops->finish() to be called after
> enable_nonboot_cpus() wherever necessary.
>
> Hmm?
>
> It's entirely possible that that commit was simply just buggy, and we
> should indeed move the CPU down/up to be early/late - we've fixed other
> ordering issues since that commit went in. But this whole area is very
> murky.
>
> (Btw, the above commit message points to just my response with a testing
> patch to the real email: the actual explanation of the INSANE ordering is
> from Len Brown in
>
> https://lists.linux-foundation.org/pipermail/linux-pm/2006-November/004161.html
>
> and there Len claims that we *must* wake up CPU's early).
>
> I personally think that the whole ACPI ordering requirements are just
> insane, but the point of this email is to point these different
> requirements out, and hopefully we can get something that works for
> everybody.
Sure.
Greetings,
Rafael
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists