[lkml]   [2009]   [Sep]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Regression in suspend to ram in 2.6.31-rc kernels
Christoph Hellwig <> writes:

> On Fri, Sep 04, 2009 at 12:29:04AM +0200, Zdenek Kabelac wrote:
>> Ok - another bisect game played - and unexpected winner is:
>> (fat: add ->sync_fs)
>> f83d6d46e7adf241a064a4a425e5cd8a8fd8925f
>> Reverting this commit with current -rc8 kernel makes the system happy
>> during the suspend/resume cycle. Obviously it has it price :) so just
>> plain revert is probably not a good solution so the problem looks
>> 'more serious' (fat is not the only fs with this patch) thus adding
>> original author to this thread.

From it, I suspect the possible reason seems to read mmc after remove
event. I.e. the following sequence or something

sync fs process
removed mmc event
fat_sync_fs() <- sync again?
sb_bread() <- read block on removed mmc

Can you add dump_stack() to the top of fat_sync_fs()? I hope it tells
why fat_sync_fs() is called (it is called from device unplug event?).

Well, that commit seems a bit strange. It calls fat_clusters_flush()
unconditionally without checking sb->s_dirt. However, if my guess is
right, "sync after removed event" itself sounds like the issue in
suspend process.


> Note that when you rever this patch on a current kernel you do actually
> get different behvaviour than when going back to before this commit.
> In 2.6.30 we called ->write_super in the various sync functions and
> then ->sync_fs, in 2.6.31-rc8 you would not call any syncing at all
> anymore. I think this patch might just be a symptom for a situation
> where the suspend code causes a sync and the mmc driver can't handle
> it anymore.
OGAWA Hirofumi <>

 \ /
  Last update: 2009-09-04 02:51    [W:0.139 / U:0.044 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site