From: Andrew Morton <akpm@linux-foundation.org>
To: Johannes Stezenbach <js@sig21.net>
Cc: venkatesh.pallipadi@intel.com, rjw@sisk.pl,
linux-kernel@vger.kernel.org, davej@redhat.com, pavel@ucw.cz,
linux-acpi@vger.kernel.org, lenb@kernel.org, arjan@infradead.org,
tglx@linutronix.de
Subject: Re: 2.6.30: hibernation/swsusp lockup due to acpi-cpufreq
Date: Tue, 16 Jun 2009 14:09:23 -0700 [thread overview]
Message-ID: <20090616140923.eb3ae6e3.akpm@linux-foundation.org> (raw)
In-Reply-To: <20090616204039.GA13399@sig21.net>
On Tue, 16 Jun 2009 22:40:39 +0200
Johannes Stezenbach <js@sig21.net> wrote:
> On Tue, Jun 16, 2009 at 01:25:58PM -0700, Pallipadi, Venkatesh wrote:
> >
> > Can you try the patch below (your changes + a warnon). That should give
> > the stack trace with successful suspend-resume.
> >
> > acpi-cpufreq will not directly disable interrupt and call these routines.
> > So, it will be interesting to see how we are ending up in this state.
>
> Yes, I actually had the same idea and just did it ;-)
> I also found this:
> http://lkml.org/lkml/2007/7/17/674
>
> ------------[ cut here ]------------
> WARNING: at kernel/up.c:18 smp_call_function_single+0x45/0x60()
> Hardware name: 2373Y4M
> Modules linked in: ath5k mac80211 cfg80211 uhci_hcd ehci_hcd
> Pid: 4139, comm: bash Not tainted 2.6.30 #8
> Call Trace:
> [<c011ea0d>] warn_slowpath_common+0x60/0x90
> [<c010d86c>] ? do_drv_read+0x0/0x31
> [<c011ea4a>] warn_slowpath_null+0xd/0x10
> [<c013acc1>] smp_call_function_single+0x45/0x60
> [<c010d4e5>] get_cur_val+0x62/0x6c
> [<c010d72f>] get_cur_freq_on_cpu+0x35/0x58
> [<c03786e9>] cpufreq_suspend+0x76/0xd9
> [<c0136c3b>] ? clockevents_notify+0x1e/0x68
> [<c02ff570>] sysdev_suspend+0x4e/0x182
> [<c013fd28>] hibernation_snapshot+0x89/0x16b
> [<c013fe99>] hibernate+0x8f/0x147
> [<c013ec82>] ? state_store+0x0/0xa2
> [<c013ecd7>] state_store+0x55/0xa2
> [<c013ec82>] ? state_store+0x0/0xa2
> [<c024dff5>] kobj_attr_store+0x1a/0x22
> [<c01a7164>] sysfs_write_file+0xb4/0xdf
> [<c01a70b0>] ? sysfs_write_file+0x0/0xdf
> [<c0170cf2>] vfs_write+0x8a/0x12c
> [<c0170e2d>] sys_write+0x3b/0x60
> [<c01028f4>] sysenter_do_call+0x12/0x26
> ---[ end trace 1c2172bce3982a59 ]---
Right, so it's the suspend-must-disable-local-interrupts thing. Again.
create_image()'s local_irq_disable().
It was wrong to call work_on_cpu() with lcoal interrupts disabled, and
it's now wrong to call smp_call_function_single() with local interrupts
disabled. It's just that smp_call_function_single() warns while
work_on_cpu() didn't.
That all explains the warning But afaik we still don't know why your
machine actually failed. Perhaps it is a side-efect of emitting the
warning when the console is in a weird state?
So.. what to do? Possibly we could hack cpufreq to not use
smp_call_function_single() if the call is to be done on the local CPU.
But SMP might still be broken - if it really does want to do a cross-cpu
call.
Why does cpufreq need to do a cross-CPU get_cur_freq_on_cpu() call at
suspend time _anyway_? Surely cpufreq knows the target CPU's frequency
from its internal in-main-memory state?
next prev parent reply other threads:[~2009-06-16 21:11 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-15 23:27 2.6.30: hibernation/swsusp lockup due to acpi-cpufreq Johannes Stezenbach
2009-06-16 0:16 ` Rafael J. Wysocki
2009-06-16 14:22 ` Johannes Stezenbach
2009-06-16 18:55 ` Andrew Morton
2009-06-16 19:57 ` Johannes Stezenbach
2009-06-16 20:25 ` Pallipadi, Venkatesh
2009-06-16 20:40 ` Johannes Stezenbach
2009-06-16 21:09 ` Andrew Morton [this message]
2009-06-16 21:18 ` Pallipadi, Venkatesh
2009-06-16 21:39 ` Rafael J. Wysocki
2009-06-16 22:44 ` Johannes Stezenbach
2009-06-16 20:44 ` Johannes Stezenbach
-- strict thread matches above, loose matches on Subject: below --
2009-07-04 2:32 mfwitten
[not found] <cNtMS-6Iq-11@gated-at.bofh.it>
[not found] ` <cNuzd-7VN-3@gated-at.bofh.it>
[not found] ` <cNHPT-3kB-1@gated-at.bofh.it>
[not found] ` <cNM3f-1ty-29@gated-at.bofh.it>
[not found] ` <cNMZg-2ZR-17@gated-at.bofh.it>
[not found] ` <cNNsg-3U5-3@gated-at.bofh.it>
[not found] ` <cNNLx-4kf-5@gated-at.bofh.it>
[not found] ` <cNOeG-5cB-23@gated-at.bofh.it>
[not found] ` <cNOok-5pJ-11@gated-at.bofh.it>
[not found] ` <cNOy0-5C5-23@gated-at.bofh.it>
2009-07-04 18:09 ` Michael Witten
2009-07-04 21:29 ` Rafael J. Wysocki
2009-07-06 21:20 ` Pallipadi, Venkatesh
2009-07-06 21:39 ` Rafael J. Wysocki
2009-07-06 22:16 ` Pallipadi, Venkatesh
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=20090616140923.eb3ae6e3.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=arjan@infradead.org \
--cc=davej@redhat.com \
--cc=js@sig21.net \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pavel@ucw.cz \
--cc=rjw@sisk.pl \
--cc=tglx@linutronix.de \
--cc=venkatesh.pallipadi@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.