Tracking down suspend/resume ext3/mmc issues on imx233

Shawn Guo shawn.guo at linaro.org
Fri Sep 7 02:05:54 EDT 2012


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 at 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 at olinuxino:~#
> root at 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 at 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 at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel



More information about the linux-arm-kernel mailing list