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