Thread (7 messages) 7 messages, 5 authors, 2012-09-22

Re: Tracking down suspend/resume ext3/mmc issues on imx233

From: Shawn Guo <hidden>
Date: 2012-09-07 06:05:44
Also in: linux-arm-kernel, linux-mmc, lkml

Copy a few more lists to get wider audience ...

Regards,
Shawn

On Thu, Sep 06, 2012 at 10:03:35PM -0700, Mike Thompson wrote:
Hi,

I'm working on adding power management support for the imx233 on
3.6-rc2.  In general I'm working on porting the pm.c file from the
Freescale 2.6.35 kernel for both "standby" and "mem" suspend/resume.
I'm making pretty good progress on porting the code, but I'm running
into an issue outside the immediate code I'm working on.

Right now I'm just testing out imx233 suspend/resume functionality by
implementing a dummy "standby" function that just returns rather than
putting the SoC into a low power state.  I believe this should have
the kernel go through suspend operations, hit my dummy function which
does nothing and then go through resume operations.  Unfortunately,
upon resume I'm getting ext3 file system errors in that nothing can be
read from the root file system on the SD card.  A trace of the
suspend/resume cycle is show below:

root@olinuxino:~# echo standby > /sys/power/state
[   90.080000] PM: Syncing filesystems ... done.
[   90.110000] mmc0: card aaaa removed
[   90.330000] Freezing user space processes ... (elapsed 0.01 seconds) done.
[   90.360000] Freezing remaining freezable tasks ... (elapsed 0.01
seconds) done.
[   90.400000] mxs_mmc_suspend()
[   90.400000] PM: suspend of devices complete after 19.531 msecs
[   90.410000] PM: late suspend of devices complete after 2.843 msecs
[   90.420000] PM: noirq suspend of devices complete after 4.531 msecs
[   90.430000] PM: noirq resume of devices complete after 1.906 msecs
[   90.440000] PM: early resume of devices complete after 1.843 msecs
[   90.450000] mxs_mmc_resume()
[   90.500000] PM: resume of devices complete after 51.062 msecs
[   90.510000] Restarting tasks ... done.
[   90.640000] mmc0: host does not support reading read-only switch.
assuming write-enable.
[   90.650000] mmc0: new high speed SD card at address aaaa
[   90.670000] mmcblk0: mmc0:aaaa SU02G 1.84 GiB
[   90.680000]  mmcblk0: p1 p2
[   90.700000] EXT3-fs error (device mmcblk0p2): ext3_find_entry:
reading directory #15970 offset 0
[   90.710000] Aborting journal on device mmcblk0p2.
[   90.720000] JBD: Error -5 detected when updating journal superblock
for mmcblk0p2.
[   90.730000] EXT3-fs (mmcblk0p2): error: remounting filesystem read-only
[   90.730000] EXT3-fs (mmcblk0p2): I/O error while writing superblock
[   90.740000] EXT3-fs error (device mmcblk0p2): ext3_find_entry:
reading directory #2 offset 0
udevd[1309]: failed to execute '/sbin/modprobe' '/sbin/modprobe -b
mmc:block': No such file or directory
[   90.790000] EXT3-fs error (device mmcblk0p2): ext3_find_entry:
reading directory #15970 offset 0
udevd[1310]: failed to execute '/sbin/blkid' '/sbin/blkid -o udev -p
/dev/.tmp-block-179:8': No such file or directory
udevd[1311]: failed to execute '/sbin/blkid' '/sbin/blkid -o udev -p
/dev/.tmp-block-179:10': No such file or directory
udevd[1312]: failed to execute '/sbin/blkid' '/sbin/blkid -o udev -p
/dev/.tmp-block-179:9': No such file or directory
root@olinuxino:~#
root@olinuxino:~# ls
[  432.780000] EXT3-fs error (device mmcblk0p2): ext3_find_entry:
reading directory #55890 offset 0
[  432.790000] EXT3-fs error (device mmcblk0p2): ext3_find_entry:
reading directory #55891 offset 0
[  432.800000] EXT3-fs error (device mmcblk0p2): ext3_find_entry:
reading directory #55890 offset 0
[  432.810000] EXT3-fs error (device mmcblk0p2): ext3_find_entry:
reading directory #15970 offset 0
[  432.820000] EXT3-fs error (device mmcblk0p2): ext3_find_entry:
reading directory #7985 offset 0
[  432.840000] EXT3-fs error (device mmcblk0p2): ext3_find_entry:
reading directory #55890 offset 0
-bash: ls: command not found
root@olinuxino:~#

The first reported error is in the ext3 filesystem buffer code where
the file system buffers aren't being filled by the underlying block
device.  At least that's how I'm interpreting the portion of the ext3
file system code that is failing.  However, the mmc device is
correctly reporting finding p1 and p2 partitions on the device which
it would indicate the partition data is being read from the SD card.

I'm hoping others might have suggestions on how I should go about
tracking down why the ext3 file system can no longer read from the mmc
device upon resume.  For instance, useful places to put some tracing
code to understand what might be failing, or how to determine what
differences there might be before suspend and after resume that might
point to the failure.

Thanks,

Mike Thompson

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help