[armel-dove] hibernation failed to resume

Bug #509006 reported by Eric Miao
38
This bug affects 6 people
Affects Status Importance Assigned to Milestone
linux-mvl-dove (Ubuntu)
Fix Released
High
Eric Miao
Lucid
Fix Released
High
Eric Miao

Bug Description

Hibernation is suspended OK but resume failed. By turning
PM verbose debug enabled, it reveals that it's stuck somewhere
within swsusp_arch_resume(). See attached log.

(* resume_target_kernel: <N> is the added printk to identify
where it's being stuck).

This bug is specific to Marvell Arm-based Dove platforms. Please file a new bug if this is not the platform you are working on.

Revision history for this message
Eric Miao (eric.y.miao) wrote :
Eric Miao (eric.y.miao)
Changed in linux-mvl-dove (Ubuntu):
assignee: nobody → Eric Miao (eric.y.miao)
importance: Undecided → High
milestone: none → lucid-alpha-3
status: New → Confirmed
Revision history for this message
Andy Whitcroft (apw) wrote :

Alpha-3 is officially frozen so moving this out to -beta-1

Changed in linux-mvl-dove (Ubuntu):
milestone: lucid-alpha-3 → ubuntu-10.04-beta-1
Revision history for this message
Tobin Davis (gruemaster) wrote :

I may have some new info on this bug. While trying to hibernate with kernel 2.6.32-201.11, I saw a kernel oops while going into hibernation. Attached is the serial console output from that.

tags: added: kernel-series-unknown
Paul Larson (pwlars)
Changed in linux-mvl-dove (Ubuntu Lucid):
milestone: ubuntu-10.04-beta-1 → ubuntu-10.04
Revision history for this message
Eric Miao (eric.y.miao) wrote : Re: [Bug 509006] Re: [dove] hibernation failed to resume

On Fri, Mar 12, 2010 at 3:59 AM, Tobin Davis <email address hidden> wrote:
> I may have some new info on this bug.  While trying to hibernate with
> kernel 2.6.32-201.11, I saw a kernel oops while going into hibernation.
> Attached is the serial console output from that.
>

Tobin, that's because you have enabled "no_console_suspend" on the kernel
command line. Yet this is not relevant to the problem of hibernation resume
being failed.

Revision history for this message
Saeed Bishara (saeed-marvell) wrote : Re: [dove] hibernation failed to resume

Eric, Beta2 worked for me when added "resume=/dev/sda5" to the boot.scr

Revision history for this message
Saeed Bishara (saeed-marvell) wrote :
Andy Whitcroft (apw)
Changed in linux-mvl-dove (Ubuntu Lucid):
milestone: ubuntu-10.04 → lucid-updates
Revision history for this message
Bert Haskins (bhaskins) wrote :

04.10 total failure of resume from either suspend or hibernation.
"Moon" light turns on backlight stays on.
Laptop must be powered off and back on to restore to operation.

Paul Larson (pwlars)
tags: added: armel
Revision history for this message
Eric Miao (eric.y.miao) wrote :

Bert Haskins,

Are you talking about DoveDB or some other boards?

Saeed,

I can confirm putting resume=/dev/sda5 explicitly in the command line will do the magic.
While comparing the two logs showed that difference is the time point where the
resume is being performed:

1. with explicit 'resume=/dev/sda5' in command line, resuming happens in the kernel
2. without 'resume=/dev/sda5', resume is actually triggered in initramfs by writing the correct swap device to /sys/power/resume (which is /bin/resume - within klibc-utils package if anyone is interested)

Yet it's really hard at this moment to deduct what's going wrong if the resume is postponed. Maybe a JTAG debugging is required.

Revision history for this message
Eric Miao (eric.y.miao) wrote :

After several rounds of error and trial with JTAG debugging, it turned out this may be related to the page table being corrupted during hibernation resume. With explicit 'resume=/dev/sda5' in kernel command line, the resume happens earlier as the kernel is still running as swapper (or idle) process, and the page table is placed somewhere safe (PHYS == 0x0000_4000 if you are interested), and the content will not be overwritten during the RAM content restoration. While resume triggered by initramfs, it's actually running a user space program (i.e. /bin/resume from klibc-utils), with the page table for this specific process being potentially overwritten. This apparently affects all ARM variants, and we need a patch to avoid such overwrite.

Revision history for this message
Eric Miao (eric.y.miao) wrote :

OK, solved. By temporarily using a safer page table swapper_pg_dir during memory content restoration, it's now OK to resume from hibernation even with initramfs. Patch attached. A built package is available at: http://people.canonical.com/~ycmiao/lp509006/linux-image-2.6.32-204-dove_2.6.32-204.16_armel.deb.

Revision history for this message
Tobin Davis (gruemaster) wrote :

Kernel tested ok so far. hibernate/resume a couple of times successfully with no reported issues in dmesg.

Revision history for this message
Bert Haskins (bhaskins) wrote :

I did a clean install of the release versions of both desktop 10.4 and Mythbuntu 10.4
Suspend ( Fn + F12 ) now appears to be OK
Hibernation ( Fn + F4 ) is still broken.
"Moon" light turns on backlight stays on ( not good ).
Laptop must be powered off and back on to restore to operation.
This is a regression.. it was fine in 9.10 and several previous versions
Equipment is three different IBM Thinkpads

Revision history for this message
Oliver Grawert (ogra) wrote :

note that this bug talks about a bug in the kernel for Marvell "dove" ARM development boards, not hardware with intel architecture

Revision history for this message
Martin Pitt (pitti) wrote : Please test proposed package

Accepted linux-mvl-dove into lucid-proposed, the package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Changed in linux-mvl-dove (Ubuntu Lucid):
status: Confirmed → Fix Committed
tags: added: verification-needed
Tobin Davis (gruemaster)
tags: added: verification-done
removed: verification-needed
Revision history for this message
Tobin Davis (gruemaster) wrote : Re: [dove] hibernation failed to resume

Verified. This now works as it should. Thanks.

Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (27.3 KiB)

This bug was fixed in the package linux-mvl-dove - 2.6.32-206.19

---------------
linux-mvl-dove (2.6.32-206.19) lucid-proposed; urgency=low

  [ Andy Whitcroft ]

  * rebase to Ubuntu-2.6.32-23.37
  * ehci: follow changes to echi cache handling
    - LP: #583414

  [ Eric Miao ]

  * [Config]: sync with Dove LSP 5.1.1
    - LP: #576257
  * SAUCE: dove: avoid page table overwrite when resuming from hibernation
    - LP: #509006

  [ Upstream Kernel Changes ]

  * ARM: fix highmem with VIPT cache and DMA
    - LP: #576257
  * dove: disable the 2G user/kernel space split and enable HIGHMEM as the
    highmem issue fixed
    - LP: #576257
  * ubifs: fix hang bug when doing suspend to disk and rootfs is over ubifs
    - LP: #576257
  * Fix issue:suspend/resume,TSC cannot work
    - LP: #576257
  * (1) Fix fail to display after resume. (2) Prepare works for KG2
    Application mode
    - LP: #576257
  * Fix bug: Not clear color key enable bit in configure process
    - LP: #576257
  * Fix bug: read wrong register. This might cause problem in A0 chip. No
    effect for Y0/Y1/X0.
    - LP: #576257
  * Fix X0 L2 way 7-4 been turned off and X0 WCO setting Wrong
    - LP: #576257
  * Revise for X0 WCO setting
    - LP: #576257
  * Fix suspend/resume issues with GC600
    - LP: #576257
  * Fix: gpio driver can't use mpp0 as interrupt pin
    - LP: #576257
  * Fix hardware cursor issue with suspend/resume
    - LP: #576257
  * Fixed audio recording failed after suspend/resume
    - LP: #576257
  * Fix Power Button event reverse error
    - LP: #576257
  * Fix GC600 driver crash when entering hibernation
    - LP: #576257
  * dove pm: restore cp15 Marvell Auxiliary Function and PMC register
    - LP: #591249
  * dove: fix build issues when MV_HAL_DRIVERS_SUPPORT disabled
    - LP: #591249
  * dove: register the usb as host mode when HAL drivers disabled
    - LP: #591249
  * Fix wrong stride issue for RGB565 on overlay
    - LP: #591249
  * Refine alogrithm of filling yuv pitch length and do correction when
    input pitch value <= 0.
    - LP: #591249
  * Nand: fix PIO support for 8bit devices.
    - LP: #591249
  * MRVL BMM module update
    - LP: #591249
  * BMM module: remove ioremap_xxx for kernel space VA mapping
    - LP: #591249
  * fix spi flash type to mx2513205d for AVD1 rev2
    - LP: #591249
  * Fix colorkey issue with PM
    - LP: #591249

  [ Ubuntu: 2.6.32-23.37 ]

  * SAUCE: drm/radeon/kms/atom: fix dual-link DVI on DCE3.2/4.0
    - LP: #564559
  * [Config] ports -- build in dm-mod to enable LVM boot
    - LP: #560717
  * tools -- fix perf version extraction for multi-part flavours
    - LP: #555130
  * [Config] enforce -- ensure dm_mod is built-in for LVM
    - LP: #560717
  * update to ubuntu-debian:7e708d33054c373faf41da23b73e8b48c342d958
    - LP: #570500, #576274
  * Revert "(pre-stable): input: ALPS - Add signature for HP Pavilion dm3
    laptops"
    - LP: #550625
  * Enable ftrace function profiler
    - LP: #570389
  * enforce CONFIG_TMPFS_POSIX_ACL=y
    - LP: #575940
  * Revert "staging/comdi -- disable"
    - LP: #563436
  * [Config] Enable multicast routing for sparc
    - LP: #416266
  * [Config] Add ahci.ko to virtual sub-f...

Changed in linux-mvl-dove (Ubuntu Lucid):
status: Fix Committed → Fix Released
rolfman (rolfman)
description: updated
description: updated
Revision history for this message
rolfman (rolfman) wrote :

On my asus F3JC i have the same problem...

Hybernate and pause are working...but when i wake up the laptop the screen is on low brightness and the system is a bit strange..

how can i help?

Revision history for this message
Loïc Minier (lool) wrote :

rofman, file another bug; this bug is about Dove hardware, which is ARM; your laptop is x86.

Revision history for this message
rolfman (rolfman) wrote : Re: [Bug 509006] Re: [dove] hibernation failed to resume

hi........im working with ububntu for a few months now and would like to
help.......
im working with pc for more 20 years.....

2010/7/15 Loïc Minier <email address hidden>

> rofman, file another bug; this bug is about Dove hardware, which is ARM;
> your laptop is x86.
>
> --
> [dove] hibernation failed to resume
> https://bugs.launchpad.net/bugs/509006
> You received this bug notification because you are a direct subscriber
> of the bug.
>
> Status in “linux-mvl-dove” package in Ubuntu: Confirmed
> Status in “linux-mvl-dove” source package in Lucid: Fix Released
>
> Bug description:
> Hibernation is suspended OK but resume failed. By turning
> PM verbose debug enabled, it reveals that it's stuck somewhere
> within swsusp_arch_resume(). See attached log.
>
> (* resume_target_kernel: <N> is the added printk to identify
> where it's being stuck).
>
>
>
>
>
> To unsubscribe from this bug, go to:
>
> https://bugs.launchpad.net/ubuntu/+source/linux-mvl-dove/+bug/509006/+subscribe
>

--
namaste
http://rolfman.blogspot.com/
http://soundcloud.com/rolfman
http://alvor.biz/
http://nl-economie.blogspot.com/
http://rolfmangallerie.blogspot.com/
http://rolfmani-pad.blogspot.com/
...
:)

Tobin Davis (gruemaster)
summary: - [dove] hibernation failed to resume
+ [armel-dove] hibernation failed to resume
description: updated
Revision history for this message
Tobin Davis (gruemaster) wrote :

This bug is specific to Arm architecture, specifically the Marvell Dove development boards.
This bug was fixed and closed on June 30, 2010 with kernel package linux-image-2.6.32-206-dove_2.6.32-206.19_armel.deb.

Unless you are using this exact hardware, please file a new bug. Thank you.

Changed in linux-mvl-dove (Ubuntu):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.