Bug 10984

Summary: MMC print trace information when resume from suspend
Product: Power Management Reporter: Jie Luo (clotho67)
Component: Hibernation/SuspendAssignee: Rafael J. Wysocki (rjw)
Severity: normal CC: bunk, lenb, pierre-bugzilla
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.26-rc8 Subsystem:
Regression: No Bisected commit-id:
Bug Depends on:    
Bug Blocks: 7216    
Attachments: dmesg
dmesg with PM debug enabled
dmesg with PM debug and MMC debug enabled

Description Jie Luo 2008-06-26 01:15:08 UTC
Latest working kernel version: 2.6.25
Earliest failing kernel version: 2.6.26-rc6
Distribution: Gentoo
Hardware Environment: ThinkPad X60
Software Environment:
Problem Description:

When resume mmc cause kernel to print trace information, but I still can use my sdcard. It is a regression from 2.6.25.

Steps to reproduce: 

1. boot with sdcard inserted.
2. suspend
3. resume
Comment 1 Jie Luo 2008-06-26 01:16:53 UTC
Created attachment 16632 [details]
Comment 2 Pierre Ossman 2008-06-26 01:55:11 UTC
This looks like a driver core issue. The problem is that it is adding a new device (the redetected card), to a parent that hasn't resumed yet. That shouldn't be possible though, as the redetection is put on a delayed workqueue by the parent's resume routine. And AFAIK, we're single CPU and not preemptible during resume, so the workqueue shouldn't run until the parent has finished resuming.

Jiu Lou, if you could retest with PM debugging enabled, that would probably help as it'll print when each device gets resumed.
Comment 3 Jie Luo 2008-06-26 10:33:23 UTC
Created attachment 16638 [details]
dmesg with PM debug enabled
Comment 4 Jie Luo 2008-06-26 10:53:42 UTC
Created attachment 16639 [details]
dmesg with PM debug and MMC debug enabled
Comment 5 Rafael J. Wysocki 2008-07-06 10:54:22 UTC
Handled-By : Pierre Ossman <mailto:drzeus-bugzilla@drzeus.cx>
Comment 6 Pierre Ossman 2008-07-06 11:03:31 UTC
Huh? I wouldn't know how to debug this. The PM core is complaining even though the traces show that the parent got resumed way earlier. So at this point I don't see how this is a MMC problem.
Comment 7 Rafael J. Wysocki 2008-07-06 11:11:19 UTC

Not-Handled-By : Pierre Ossman <mailto:drzeus-bugzilla@drzeus.cx>
Comment 8 Rafael J. Wysocki 2008-07-07 15:19:56 UTC
Sorry, I should have looked more closely at this entry.

In fact, the issue is known and the warning is harmless.  It is a consequence of an intentional change supposed to catch suspend ordering violations, which works correctly, because the MMC driver violates the suspend ordering.  However, it does that in a way which doesn't lead to any real breakage.

We are going to fix the driver in the future, after we've changed the suspend-resume core, which is supposed to happen in 2.6.27.
Comment 9 Rafael J. Wysocki 2008-07-07 15:20:36 UTC
Dropping from the list of regressions.
Comment 10 Zhang Rui 2009-03-18 19:24:34 UTC
Rafael, what's the status of this bug? :)
Comment 11 Jie Luo 2009-03-24 01:02:24 UTC
(In reply to comment #10)
> Rafael, what's the status of this bug? :)
I think it got fixed, I didn't see it with recent kernel.