Gmail Calendar Documents Reader Web more »
Recently Visited Groups | Help | Sign in
Google Groups Home
2.6.30: hibernation/swsusp lockup due to acpi-cpufreq
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  12 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Johannes Stezenbach  
View profile  
 More options Jun 15, 7:30 pm
Newsgroups: linux.kernel
From: Johannes Stezenbach <j...@sig21.net>
Date: Tue, 16 Jun 2009 01:30:10 +0200
Local: Mon, Jun 15 2009 7:30 pm
Subject: 2.6.30: hibernation/swsusp lockup due to acpi-cpufreq
Hi,

on my aging Thinkpad T42p resume from hibernation
fails in 2.6.30. There is a backtrace on suspend prior
to writing out the disk image, but I cannot capture
it due to lack of a serial port on the T42p. On
resume the machine is dead after reading the image
from disk.

I've bisected this to:

 commit 01599fca6758d2cd133e78f87426fc851c9ea725
 Author: Andrew Morton <a...@linux-foundation.org>
 Date:   Mon Apr 13 10:27:49 2009 -0700

    cpufreq: use smp_call_function_[single|many]() in acpi-cpufreq.c

I see in git log that this commit is known broken, but the
resume on my machine is still broken in 2.6.30.

If I disable CONFIG_X86_ACPI_CPUFREQ suspend/resume works in 2.6.30.

I include lspci and dmesg below.

Johannes

00:00.0 Host bridge: Intel Corporation 82855PM Processor to I/O Controller (rev 03)
00:01.0 PCI bridge: Intel Corporation 82855PM Processor to AGP Controller (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)
00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)
00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)
00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)
00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)
01:00.0 VGA compatible controller: ATI Technologies Inc M10 NT [FireGL Mobility T2] (rev 80)
02:00.0 CardBus bridge: Texas Instruments PCI4520 PC card Cardbus Controller (rev 01)
02:00.1 CardBus bridge: Texas Instruments PCI4520 PC card Cardbus Controller (rev 01)
02:01.0 Ethernet controller: Intel Corporation 82540EP Gigabit Ethernet Controller (Mobile) (rev 03)
02:02.0 Ethernet controller: Atheros Communications Inc. AR5212 802.11abg NIC (rev 01)

Linux version 2.6.30 (root@void) (gcc version 4.3.3 (Debian 4.3.3-11) ) #3 PREEMPT Tue Jun 16 00:17:11 CEST 2009
KERNEL supported cpus:
  Intel GenuineIntel
  AMD AuthenticAMD
  NSC Geode by NSC
  Cyrix CyrixInstead
  Centaur CentaurHauls
  Transmeta GenuineTMx86
  Transmeta TransmetaCPU
  UMC UMC UMC UMC
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
 BIOS-e820: 000000000009f000 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000dc000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000003ff60000 (usable)
 BIOS-e820: 000000003ff60000 - 000000003ff77000 (ACPI data)
 BIOS-e820: 000000003ff77000 - 000000003ff79000 (ACPI NVS)
 BIOS-e820: 000000003ff80000 - 0000000040000000 (reserved)
 BIOS-e820: 00000000ff800000 - 0000000100000000 (reserved)
DMI present.
last_pfn = 0x3ff60 max_arch_pfn = 0x100000
MTRR default type: uncachable
MTRR fixed ranges enabled:
  00000-9FFFF write-back
  A0000-BFFFF uncachable
  C0000-CFFFF write-protect
  D0000-DBFFF uncachable
  DC000-DFFFF write-back
  E0000-FFFFF write-protect
MTRR variable ranges enabled:
  0 base 000000000 mask FC0000000 write-back
  1 base 03FF80000 mask FFFF80000 uncachable
  2 disabled
  3 disabled
  4 disabled
  5 disabled
  6 disabled
  7 disabled
PAT not supported by CPU.
Warning only 895MB will be used.
Use a HIGHMEM enabled kernel.
init_memory_mapping: 0000000000000000-0000000037fa8000
 0000000000 - 0000400000 page 4k
 0000400000 - 0037c00000 page 2M
 0037c00000 - 0037fa8000 page 4k
kernel direct mapping tables up to 37fa8000 @ 7000-c000
RAMDISK: 37c44000 - 37fefe13
Allocated new RAMDISK: 00653000 - 009fee13
Move RAMDISK from 0000000037c44000 - 0000000037fefe12 to 00653000 - 009fee12
ACPI: RSDP 000f6d70 00024 (v02 IBM   )
ACPI: XSDT 3ff6a672 0004C (v01 IBM    TP-1R    00003230  LTP 00000000)
ACPI: FACP 3ff6a700 000F4 (v03 IBM    TP-1R    00003230 IBM  00000001)
ACPI Warning (tbfadt-0531): 32/64X length mismatch in Gpe1Block: 0/32 [20090320]
ACPI Warning (tbfadt-0562): Optional field Gpe1Block has zero address or length: 000000000000102C/0 [20090320]
ACPI: DSDT 3ff6a8e7 0C530 (v01 IBM    TP-1R    00003230 MSFT 0100000E)
ACPI: FACS 3ff78000 00040
ACPI: SSDT 3ff6a8b4 00033 (v01 IBM    TP-1R    00003230 MSFT 0100000E)
ACPI: ECDT 3ff76e17 00052 (v01 IBM    TP-1R    00003230 IBM  00000001)
ACPI: TCPA 3ff76e69 00032 (v01 IBM    TP-1R    00003230 PTL  00000001)
ACPI: BOOT 3ff76fd8 00028 (v01 IBM    TP-1R    00003230  LTP 00000001)
895MB LOWMEM available.
  mapped low ram: 0 - 37fa8000
  low ram: 0 - 37fa8000
  node 0 low ram: 00000000 - 37fa8000
  node 0 bootmap 00008000 - 0000eff8
(7 early reservations) ==> bootmem [0000000000 - 0037fa8000]
  #0 [0000000000 - 0000001000]   BIOS data page ==> [0000000000 - 0000001000]
  #1 [0000100000 - 000064f098]    TEXT DATA BSS ==> [0000100000 - 000064f098]
  #2 [000009f000 - 0000100000]    BIOS reserved ==> [000009f000 - 0000100000]
  #3 [0000650000 - 0000652128]              BRK ==> [0000650000 - 0000652128]
  #4 [0000007000 - 0000008000]          PGTABLE ==> [0000007000 - 0000008000]
  #5 [0000653000 - 00009fee13]      NEW RAMDISK ==> [0000653000 - 00009fee13]
  #6 [0000008000 - 000000f000]          BOOTMAP ==> [0000008000 - 000000f000]
Zone PFN ranges:
  DMA      0x00000000 -> 0x00001000
  Normal   0x00001000 -> 0x00037fa8
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
    0: 0x00000000 -> 0x0000009f
    0: 0x00000100 -> 0x00037fa8
On node 0 totalpages: 229191
free_area_init_node: node 0, pgdat c0590410, node_mem_map c1000000
  DMA zone: 32 pages used for memmap
  DMA zone: 0 pages reserved
  DMA zone: 3967 pages, LIFO batch:0
  Normal zone: 1760 pages used for memmap
  Normal zone: 223432 pages, LIFO batch:31
Using APIC driver default
ACPI: PM-Timer IO Port: 0x1008
Local APIC disabled by BIOS -- you can enable it with "lapic"
nr_irqs_gsi: 16
PM: Registered nosave memory: 000000000009f000 - 00000000000a0000
PM: Registered nosave memory: 00000000000a0000 - 00000000000dc000
PM: Registered nosave memory: 00000000000dc000 - 0000000000100000
Allocating PCI resources starting at 50000000 (gap: 40000000:bf800000)
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 227399
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Initializing CPU#0
NR_IRQS:288
PID hash table entries: 4096 (order: 12, 16384 bytes)
Extended CMOS year: 2000
Fast TSC calibration using PIT
Detected 1794.244 MHz processor.
Console: colour VGA+ 80x34
console [tty0] enabled
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 899432k/917152k available (3160k kernel code, 17272k reserved, 1552k data, 296k init, 0k highmem)
virtual kernel memory layout:
    fixmap  : 0xfffaa000 - 0xfffff000   ( 340 kB)
    vmalloc : 0xf87a8000 - 0xfffa8000   ( 120 MB)
    lowmem  : 0xc0000000 - 0xf7fa8000   ( 895 MB)
      .init : 0xc059e000 - 0xc05e8000   ( 296 kB)
      .data : 0xc041619f - 0xc059a2bc   (1552 kB)
      .text : 0xc0100000 - 0xc041619f   (3160 kB)
Checking if this processor honours the WP bit even in supervisor mode...Ok.
Calibrating delay loop (skipped), value calculated using timer frequency.. 3588.48 BogoMIPS (lpj=17942440)
Mount-cache hash table entries: 512
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 2048K
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU: Intel(R) Pentium(R) M processor 1.80GHz stepping 06
Checking 'hlt' instruction... OK.
ACPI: Core revision 20090320
ACPI: setting ELCR to 0200 (from 0800)
net_namespace: 720 bytes
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: PCI BIOS revision 2.10 entry at 0xfd8d6, last bus=8
PCI: Using configuration type 1 for base access
bio: create slab <bio-0> at 0
ACPI: EC: EC description table is found, configuring boot EC
ACPI: EC: non-query interrupt received, switching to interrupt mode
ACPI: Interpreter enabled
ACPI: (supports S0 S3 S4 S5)
ACPI: Using PIC for interrupt routing
ACPI: EC: GPE = 0x1c, I/O: command/status = 0x66, data = 0x62
ACPI: EC: driver started in interrupt mode
ACPI: Power Resource [PUBS] (on)
ACPI: PCI Root Bridge [PCI0] (0000:00)
pci 0000:00:00.0: reg 10 32bit mmio: [0xd0000000-0xdfffffff]
pci 0000:00:1d.0: reg 20 io port: [0x1800-0x181f]
pci 0000:00:1d.1: reg 20 io port: [0x1820-0x183f]
pci 0000:00:1d.2: reg 20 io port: [0x1840-0x185f]
pci 0000:00:1d.7: reg 10 32bit mmio: [0xc0000000-0xc00003ff]
pci 0000:00:1d.7: PME# supported from D0 D3hot D3cold
pci 0000:00:1d.7: PME# disabled
pci 0000:00:1f.0: quirk: region 1000-107f claimed by ICH4 ACPI/GPIO/TCO
pci 0000:00:1f.0: quirk: region 1180-11bf claimed by ICH4 GPIO
pci 0000:00:1f.1: reg 10 io port: [0x00-0x07]
pci 0000:00:1f.1: reg 14 io port: [0x00-0x03]
pci 0000:00:1f.1: reg 18 io port: [0x00-0x07]
pci 0000:00:1f.1: reg 1c io port: [0x00-0x03]
pci 0000:00:1f.1: reg 20 io port: [0x1860-0x186f]
pci 0000:00:1f.1: reg 24 32bit mmio: [0x000000-0x0003ff]
pci 0000:00:1f.3: reg 20 io port: [0x1880-0x189f]
pci 0000:00:1f.5: reg 10 io port: [0x1c00-0x1cff]
pci 0000:00:1f.5: reg 14 io port: [0x18c0-0x18ff]
pci 0000:00:1f.5: reg 18 32bit mmio: [0xc0000c00-0xc0000dff]
pci 0000:00:1f.5: reg 1c 32bit mmio: [0xc0000800-0xc00008ff]
pci 0000:00:1f.5: PME# supported from D0 D3hot D3cold
pci 0000:00:1f.5: PME# disabled
pci 0000:00:1f.6: reg 10 io port: [0x2400-0x24ff]
pci 0000:00:1f.6: reg 14 io port: [0x2000-0x207f]
pci 0000:00:1f.6: PME# supported from D0 D3hot D3cold
pci 0000:00:1f.6: PME# disabled
pci 0000:01:00.0: reg 10 32bit mmio: ...

read more »


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Rafael J. Wysocki  
View profile  
 More options Jun 15, 8:20 pm
Newsgroups: linux.kernel
From: "Rafael J. Wysocki" <r...@sisk.pl>
Date: Tue, 16 Jun 2009 02:20:07 +0200
Local: Mon, Jun 15 2009 8:20 pm
Subject: Re: 2.6.30: hibernation/swsusp lockup due to acpi-cpufreq
On Tuesday 16 June 2009, Johannes Stezenbach wrote:

Thanks a lot for bisecting this!

Is it the reason for the enabling of interrupts during cpufreq_suspend()?

/me wonders

Is there anything we can do to fix this quickly?

Rafael
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Johannes Stezenbach  
View profile  
 More options Jun 16, 10:30 am
Newsgroups: linux.kernel
From: Johannes Stezenbach <j...@sig21.net>
Date: Tue, 16 Jun 2009 16:30:14 +0200
Local: Tues, Jun 16 2009 10:30 am
Subject: Re: 2.6.30: hibernation/swsusp lockup due to acpi-cpufreq

I think your guess was right. The patch below fixes the
problem for me (hang after resume and backtrace on suspend).

Johannes
-----------------------------

Fix swsusp failure on !SMP

Commit 01599fca6758d2cd133e78f87426fc851c9ea725 introduced
a regression which caused a backtrace on suspend and
a hang on resume on a Thinkpad T42p (Pentium M CPU).

Signed-off-by: Johannes Stezenbach <j...@sig21.net>

--- linux-2.6.30/kernel/up.c.orig       2009-06-16 15:56:28.000000000 +0200
+++ linux-2.6.30/kernel/up.c    2009-06-16 15:57:27.000000000 +0200
@@ -10,11 +10,13 @@
 int smp_call_function_single(int cpu, void (*func) (void *info), void *info,
                                int wait)
 {
+       unsigned long flags;
+
        WARN_ON(cpu != 0);

-       local_irq_disable();
+       local_irq_save(flags);
        (func)(info);
-       local_irq_enable();
+       local_irq_restore(flags);

        return 0;
 }
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Andrew Morton  
View profile  
 More options Jun 16, 3:00 pm
Newsgroups: linux.kernel
From: Andrew Morton <a...@linux-foundation.org>
Date: Tue, 16 Jun 2009 21:00:17 +0200
Local: Tues, Jun 16 2009 3:00 pm
Subject: Re: 2.6.30: hibernation/swsusp lockup due to acpi-cpufreq
On Tue, 16 Jun 2009 16:22:17 +0200

ok, what's going on here?  The patch implies that someone (presumably
acpi-cpufreq) is calling smp_call_function_single() with local
interrupts disabled.  That's a bug on SMP kernels.  And it'll generate
a trace if it happens:

        /* Can deadlock when called with interrupts disabled */
        WARN_ON_ONCE(irqs_disabled() && !oops_in_progress);

but nobody has reported such a trace AFAIK?

Also, prior to 01599fca6758d2cd133e78f87426fc851c9ea725, acpi-cpufreq
was using work_on_cpu().  If it was calling work_on_cpu() with local
interrupts disabled then that would have been a bug too, which could
generate might_sleep() or scheduling-while-atomic warnings.

Because it is a bug to call the SMP version of
smp_call_function_single() with local interrupts disabled, I don't
think we should need to apply the above patch.

But I don't know what we _should_ do because I don't know what the bug
is.  Are you able to get us a copy of that stack trace?

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Johannes Stezenbach  
View profile  
 More options Jun 16, 4:00 pm
Newsgroups: linux.kernel
From: Johannes Stezenbach <j...@sig21.net>
Date: Tue, 16 Jun 2009 22:00:14 +0200
Local: Tues, Jun 16 2009 4:00 pm
Subject: Re: 2.6.30: hibernation/swsusp lockup due to acpi-cpufreq

This problem apparently only exists on !SMP kernels...

> Also, prior to 01599fca6758d2cd133e78f87426fc851c9ea725, acpi-cpufreq
> was using work_on_cpu().  If it was calling work_on_cpu() with local
> interrupts disabled then that would have been a bug too, which could
> generate might_sleep() or scheduling-while-atomic warnings.

On !SMP, work_on_cpu() is just a function call:
http://lxr.linux.no/linux+v2.6.30/include/linux/workqueue.h#L261

> Because it is a bug to call the SMP version of
> smp_call_function_single() with local interrupts disabled, I don't
> think we should need to apply the above patch.

and on SMP, smp_call_function_single() also uses
local_irq_save/restore() iff  cpu == this_cpu:
http://lxr.linux.no/linux+v2.6.30/kernel/smp.c#L272

> But I don't know what we _should_ do because I don't know what the bug
> is.  Are you able to get us a copy of that stack trace?

Unfortunately my laptop doesn't have a serial port, and the
stack trace is large and scrolls off the screen, I can only
see the last part of it and I would need to find someone with
a camera to take a picture...

Johannes
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Pallipadi, Venkatesh  
View profile  
 More options Jun 16, 4:30 pm
Newsgroups: linux.kernel
From: "Pallipadi, Venkatesh" <venkatesh.pallip...@intel.com>
Date: Tue, 16 Jun 2009 22:30:12 +0200
Local: Tues, Jun 16 2009 4:30 pm
Subject: Re: 2.6.30: hibernation/swsusp lockup due to acpi-cpufreq

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.

Thanks,
Venki

diff --git a/kernel/up.c b/kernel/up.c
index 1ff27a2..a4318ff 100644
--- a/kernel/up.c
+++ b/kernel/up.c
@@ -10,11 +10,15 @@
 int smp_call_function_single(int cpu, void (*func) (void *info), void *info,
                                int wait)
 {
+       unsigned long flags;
+
        WARN_ON(cpu != 0);

-       local_irq_disable();
+       WARN_ON(irqs_disabled());
+
+       local_irq_save(flags);
        (func)(info);
-       local_irq_enable();
+       local_irq_restore(flags);

        return 0;
 }
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Johannes Stezenbach  
View profile  
 More options Jun 16, 4:50 pm
Newsgroups: linux.kernel
From: Johannes Stezenbach <j...@sig21.net>
Date: Tue, 16 Jun 2009 22:50:07 +0200
Local: Tues, Jun 16 2009 4:50 pm
Subject: Re: 2.6.30: hibernation/swsusp lockup due to acpi-cpufreq

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 ]---                                                                            

Johannes
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Johannes Stezenbach  
View profile  
 More options Jun 16, 4:50 pm
Newsgroups: linux.kernel
From: Johannes Stezenbach <j...@sig21.net>
Date: Tue, 16 Jun 2009 22:50:13 +0200
Local: Tues, Jun 16 2009 4:50 pm
Subject: Re: 2.6.30: hibernation/swsusp lockup due to acpi-cpufreq

PS: It seems like a good idea to apply this patch with
the warning even if the root cause of the hibernate problem
is elsewhere, for better debuggability of such issues?

Johannes
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Andrew Morton  
View profile  
 More options Jun 16, 5:20 pm
Newsgroups: linux.kernel
From: Andrew Morton <a...@linux-foundation.org>
Date: Tue, 16 Jun 2009 23:20:14 +0200
Local: Tues, Jun 16 2009 5:20 pm
Subject: Re: 2.6.30: hibernation/swsusp lockup due to acpi-cpufreq
On Tue, 16 Jun 2009 22:40:39 +0200

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?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Pallipadi, Venkatesh  
View profile  
 More options Jun 16, 5:30 pm
Newsgroups: linux.kernel
From: "Pallipadi, Venkatesh" <venkatesh.pallip...@intel.com>
Date: Tue, 16 Jun 2009 23:30:12 +0200
Local: Tues, Jun 16 2009 5:30 pm
Subject: Re: 2.6.30: hibernation/swsusp lockup due to acpi-cpufreq

We surely do not need cross CPU cal at this point as all secondary cpus
will be offline at this point.

> 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?

That was what I was wondering as well. Looks like this part of
cpufreq_suspend came from

commit 42d4dc3f4e1ec1396371aac89d0dccfdd977191b
Author: Benjamin Herrenschmidt <b...@kernel.crashing.org>
Date:   Fri Apr 29 07:40:12 2005 -0700

    [PATCH] Add suspend method to cpufreq core

    In order to properly fix some issues with cpufreq vs. sleep on
    PowerBooks, I had to add a suspend callback to the pmac_cpufreq
driver.
    I must force a switch to full speed before sleep and I switch back
to
    previous speed on resume.

    I also added a driver flag to disable the warnings in suspend/resume
    since it is expected in this case to have different speed (and I
want it
    to fixup the jiffies properly).

    Signed-off-by: Benjamin Herrenschmidt <b...@kernel.crashing.org>
    Signed-off-by: Andrew Morton <a...@osdl.org>
    Signed-off-by: Linus Torvalds <torva...@osdl.org>

benh: Do you think we still need this cpufreq_driver->get() and return
error on (!cur_freq || !cpu_policy->cur) stuff?
May be we should all the checks only if CPUFREQ_PM_NO_WARN is set?

Thanks,
Venki

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Rafael J. Wysocki  
View profile  
 More options Jun 16, 5:40 pm
Newsgroups: linux.kernel
From: "Rafael J. Wysocki" <r...@sisk.pl>
Date: Tue, 16 Jun 2009 23:40:12 +0200
Local: Tues, Jun 16 2009 5:40 pm
Subject: Re: 2.6.30: hibernation/swsusp lockup due to acpi-cpufreq
On Tuesday 16 June 2009, Pallipadi, Venkatesh wrote:

In fact, we need to do this entire thing differently.

The basic problem is that cpufreq_suspend() is a sysdev thing, so it will
always be called with iterrupts off and *only* for CPU0.  So, it looks like
the majority of things we do there is just unnecessary (at least).

Best,
Rafael

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Johannes Stezenbach  
View profile  
 More options Jun 16, 6:50 pm
Newsgroups: linux.kernel
From: Johannes Stezenbach <j...@sig21.net>
Date: Wed, 17 Jun 2009 00:50:06 +0200
Local: Tues, Jun 16 2009 6:50 pm
Subject: Re: 2.6.30: hibernation/swsusp lockup due to acpi-cpufreq

On Tue, Jun 16, 2009 at 02:09:23PM -0700, Andrew Morton wrote:

> 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?

smp_call_function_single() enables irqs and hibernate doesn't like that?

BTW, I have no other UP machine to test with, but I reported
in another thread that a !SMP kernel (or a SMP kernel
with maxcpus=0 parameter) does not boot at all on
my destop machine, see
http://lkml.org/lkml/2009/6/12/468

No idea if I should be worried about this since the
SMP kernel now works fine, another hibernate problem
was solved in
http://lkml.org/lkml/2009/6/14/156

Johannes
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google