[#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 - https://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