[PATCH] jffs2_gcd_mtd3, Stopping kernel threads timed out
Uli Luckas
u.luckas at road-gmbh.de
Tue Jun 12 08:13:07 EDT 2007
Hi
We experience the following problem when our board tries to suspend:
Jun 7 18:32:21 constin kernel: [ 2085.350000] Stopping tasks ...
Jun 7 18:32:21 constin kernel: [ 2105.410000] Stopping kernel threads timed
out after 20 seconds (1 tasks refusing to freeze):
Jun 7 18:32:21 constin kernel: [ 2105.410000] jffs2_gcd_mtd3
Jun 7 18:32:21 constin kernel: [ 2105.410000] Restarting tasks ... <4>
Strange, jffs2_gcd_mtd3 not stopped
Jun 7 18:32:21 constin kernel: [ 2105.440000] done.
The problem seems to happen, when suspend kicks in, after the call to
try_to_freeze and before the while loop in jffs2_garbage_collect_thread.
The pending freeze will cause signal_pending to return true until the
attempted suspend is over and thereby the while loop won't terminate until
the suspend times out.
This patch will call try_to_freeze from within the while loop and adds an
extra check for jffs2_thread_should_wake before we actually do the GC to
avoid calling jffs2_garbage_collect_pass at every wakeup.
If there are no objections, please apply and push to mainline.
Signed-off-by: Uli Luckas <u.luckas at road.de>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: freeze_gc_thread.c
Type: text/x-csrc
Size: 1123 bytes
Desc: not available
Url : http://lists.infradead.org/pipermail/linux-mtd/attachments/20070612/c7e3a0ce/attachment-0001.bin
More information about the linux-mtd
mailing list