[#5406] kernel can not wake up from mem when sleep time is shorter than 10 sec

Document created by Aaronwu Employee on Sep 4, 2013
Version 1Show Document
  • View in full screen mode

[#5406] kernel can not wake up from mem when sleep time is shorter than 10 sec

Submitted By: Vivi Li

Open Date

2009-07-29 04:43:41     Close Date

2009-07-30 07:08:09

Priority:

Medium     Assignee:

Michael Hennerich

Status:

Closed     Fixed In Release:

N/A

Found In Release:

N/A     Release:

Category:

Drivers     Board:

N/A

Processor:

ALL     Silicon Revision:

Is this bug repeatable?:

Yes     Resolution:

Rejected

Uboot version or rev.:

    Toolchain version or rev.:

gcc4.1_2009r1-rc9

App binary format:

N/A     

Summary: kernel can not wake up from mem when sleep time is shorter than 10 sec

Details:

 

For bf527-ezkit/bf537-stamp, kernel can not wake up from mem when sleep time is shorter than 10 sec.

But if press reset button once, it can wake up.

 

Bellow is the log on bf527-ezkit:

--

Linux version 2.6.28.10-ADI-2009R1-svn7084 (test@uboot30-527ezkit) (gcc version 4.1.2 (ADI svn)) #89 Wed Jul 29 11:04:39 GMT 2009

bootconsole [early_shadow0] enabled

bootconsole [early_BFuart0] enabled

early printk enabled on early_BFuart0

Board Memory: 64MB

Kernel Managed Memory: 64MB

Memory map:

  fixedcode = 0x00000400-0x00000490

  text      = 0x00001000-0x00129660

  rodata    = 0x00129660-0x00185484

  bss       = 0x00186000-0x00197284

  data      = 0x00197284-0x001a8000

    stack   = 0x001a6000-0x001a8000

  init      = 0x001a8000-0x007b0000

  available = 0x007b0000-0x03dff000

  DMA Zone  = 0x03e00000-0x04000000

Hardware Trace Active and Enabled

Boot Mode: 1

Blackfin support (C) 2004-2009 Analog Devices, Inc.

Compiled for ADSP-BF527 Rev 0.2

Blackfin Linux support by http://blackfin.uclinux.org/

Processor Speed: 525 MHz core clock and 131 MHz System Clock

NOMPU: setting up cplb tables

Instruction Cache Enabled for CPU0

Data Cache Enabled for CPU0 (write-back)

Built 1 zonelists in Zone order, mobility grouping off.  Total pages: 15747

Kernel command line: root=/dev/mtdblock0 rw clkin_hz=25000000 earlyprintk=serial,uart1,57600 console=tty0 console=ttyBF0,57600 if

Configuring Blackfin Priority Driven Interrupts

PID hash table entries: 256 (order: 8, 1024 bytes)

console handover:boot [early_BFuart0] boot [early_shadow0]  -> real [ttyBF0]

Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)

Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)

Memory available: 55044k/65536k RAM, (6176k init code, 1185k kernel code, 507k data, 2048k dma, 572k reserved)

Calibrating delay loop... 1046.52 BogoMIPS (lpj=2093056)

Security Framework initialized

Mount-cache hash table entries: 512

Blackfin Scratchpad data SRAM: 4 KB

Blackfin L1 Data A SRAM: 16 KB (15 KB free)

Blackfin L1 Data B SRAM: 16 KB (16 KB free)

Blackfin L1 Instruction SRAM: 48 KB (42 KB free)

net_namespace: 288 bytes

NET: Registered protocol family 16

Blackfin DMA Controller

ezkit_init(): registering device resources

SCSI subsystem initialized

NET: Registered protocol family 2

IP route cache hash table entries: 1024 (order: 0, 4096 bytes)

TCP established hash table entries: 2048 (order: 2, 16384 bytes)

TCP bind hash table entries: 2048 (order: 1, 8192 bytes)

TCP: Hash tables configured (established 2048 bind 2048)

TCP reno registered

NET: Registered protocol family 1

msgmni has been set to 107

io scheduler noop registered

io scheduler anticipatory registered (default)

io scheduler cfq registered

bfin-t350mcqb: 320x240 24-bit RGB FrameBuffer initializing...

dma_alloc_init: dma_page @ 0x03a25000 - 512 pages at 0x03e00000

bfin-otp: initialized

Serial: Blackfin serial driver

bfin-uart.1: ttyBF0 at MMIO 0xffc02000 (irq = 31) is a BFIN-UART

brd: module loaded

Driver 'sd' needs updating - please use bus_type methods

rtc-bfin rtc-bfin: rtc core: registered rtc-bfin as rtc0

bfin-wdt: initialized: timeout=20 sec (nowayout=0)

Advanced Linux Sound Architecture Driver Version 1.0.18rc3.

ALSA device list:

  No soundcards found.

TCP cubic registered

NET: Registered protocol family 17

rtc-bfin rtc-bfin: setting system clock to 1970-01-04 06:40:26 UTC (283226)

IP-Config: Device `eth0' not found.

Freeing unused kernel memory: 6176k freed

                           _____________________________________

        a8888b.           / Welcome to the uClinux distribution \

       d888888b.         /       _     _                         \

       8P"YP"Y88        /       | |   |_|            __  __ (TM)  |

       8|o||o|88  _____/        | |    _ ____  _   _ \ \/ /       |

       8'    .88       \        | |   | |  _ \| | | | \  /        |

       8`._.' Y8.       \       | |__ | | | | | |_| | /  \        |

      d/      `8b.       \      \____||_|_| |_|\____|/_/\_\       |

     dP   .    Y8b.       \   For embedded processors including   |

    d8:'  "  `::88b        \    the Analog Devices Blackfin      /

   d8"         'Y88b        \___________________________________/

  :8P    '      :888

   8a.   :     _a88P         For further information, check out:

._/"Yaa_:   .| 88P|            - http://blackfin.uclinux.org/

\    YP"    `| 8P  `.          - http://docs.blackfin.uclinux.org/

/     \.___.d|    .'           - http://www.uclinux.org/

`--..__)8888P`._.'  jgs/a:f    - http://www.analog.com/blackfin

 

Have a lot of fun...

 

 

BusyBox v1.13.4 (2009-07-28 16:02:41 GMT) built-in shell (msh)

Enter 'help' for a list of built-in commands.

 

root:/> version

kernel:    Linux release 2.6.28.10-ADI-2009R1-svn7084, build #89 Wed Jul 29 11:04:39 GMT 2009

toolchain: bfin-linux-uclibc-gcc release gcc version 4.1.2 (ADI svn)

user-dist: release svn-8591, build #21 Wed Jul 29 11:04:05 GMT 2009

root:/>

root:/> date; rtcwake -s 5 -m mem; date

Sun Jan  4 06:40:57 UTC 1970

wakeup from "mem" at Sun Jan  4 06:41:03 1970

PM: Syncing filesystems ... done.

Freezing user space processes ... (elapsed 0.00 seconds) done.

Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.

Suspending console(s) (use no_console_suspend to debug)

Restarting tasks ... done.

Sun Jan  4 06:41:08 UTC 1970

root:/>

root:/> date; rtcwake -s 5 -m mem; date

Sun Jan  4 06:41:13 UTC 1970

wakeup from "mem" at Sun Jan  4 06:41:18 1970

PM: Syncing filesystems ... done.

Freezing user space processes ... (elapsed 0.00 seconds) done.

Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.

Suspending console(s) (use no_console_suspend to debug)

 

(Wait for a long time and can not wake up)

(then, press reset button once, it can wake up now)

 

Restarting tasks ... done.

Sun Jan  4 06:42:56 UTC 1970

root:/> version

kernel:    Linux release 2.6.28.10-ADI-2009R1-svn7084, build #89 Wed Jul 29 11:04:39 GMT 2009

toolchain: bfin-linux-uclibc-gcc release gcc version 4.1.2 (ADI svn)

user-dist: release svn-8591, build #21 Wed Jul 29 11:04:05 GMT 2009

root:/>

--

 

Bellow is the log when time is 9:

--

root:/> date; rtcwake -s 9 -m mem; date

Sun Jan  4 06:53:15 UTC 1970

wakeup from "mem" at Sun Jan  4 06:53:25 1970

PM: Syncing filesystems ... done.

Freezing user space processes ... (elapsed 0.00 seconds) done.

Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.

Suspending console(s) (use no_console_suspend to debug)

Restarting tasks ... done.

Sun Jan  4 06:53:30 UTC 1970

root:/>

root:/> date; rtcwake -s 9 -m mem; date

Sun Jan  4 06:53:35 UTC 1970

wakeup from "mem" at Sun Jan  4 06:53:44 1970

PM: Syncing filesystems ... done.

Freezing user space processes ... (elapsed 0.00 seconds) done.

Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.

Suspending console(s) (use no_console_suspend to debug)

Restarting tasks ... done.

Sun Jan  4 06:53:49 UTC 1970

root:/>

root:/> date; rtcwake -s 9 -m mem; date

Sun Jan  4 06:53:55 UTC 1970

wakeup from "mem" at Sun Jan  4 06:54:05 1970

PM: Syncing filesystems ... done.

Freezing user space processes ... (elapsed 0.00 seconds) done.

Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.

Suspending console(s) (use no_console_suspend to debug)

--

 

Follow-ups

 

--- Michael Hennerich                                        2009-07-30 03:30:48

>For bf527-ezkit/bf537-stamp, kernel can not wake up from mem when sleep time

is

shorter than 10 sec. But if press reset button once, it can wake up.

 

So don't do that. There is nothing I can do for.

rtcwake sets RTC Alarm from userspace. Then the suspend process takes some

time. If the RTC Alarm (wakeup from hibernate) triggers before the system is

fully suspended it will miss the wakeup event.

 

Not a bug.

 

-Michael

 

--- Vivi Li                                                  2009-07-30 07:08:08

Ok, I see.

Close this bug.

 

--- Robin Getz                                               2009-07-30 10:57:40

Michael:

 

I'm not so sure -- sounds like a race condition -- when the RTC Alarm goes off

before we are in suspend - shouldn't we notify someone that this happened? (so

they can see on the console that they will be in sleep forever?)

 

-Robin

 

--- Mike Frysinger                                           2009-08-05 00:35:06

the race condition is in your expectations.  the notification does occur, but it

happens before actually going to sleep, so the system never wakes up as the wake

up signal has already been delivered.

 

as for whether the signal is fully processed in kernel space, delivered to

userspace, processed in userspace, output written to kernel space, and back out

the console in time is also a matter of timing -- but this is all correctly

handled.  expecting things here to be perfect from the console reading

perspective is unrealistic.

 

 

 

    Files

    Changes

    Commits

    Dependencies

    Duplicates

    Associations

    Tags

 

File Name     File Type     File Size     Posted By

config.power    application/octet-stream    33264    Vivi Li

Attachments

Outcomes