[PATCH] jffs2_gcd_mtd3, Stopping kernel threads timed out

Uli Luckas u.luckas at road.de
Tue Jun 12 08:58:02 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>
-- 

------- ROAD ...the handyPC Company - - -  ) ) )

Uli Luckas
Software Development

ROAD GmbH
Bennigsenstr. 14 | 12159 Berlin | Germany
fon: +49 (30) 230069 - 64 | fax: +49 (30) 230069 - 69
url: www.road.de

Amtsgericht Charlottenburg: HRB 96688 B
Managing directors: Hans-Peter Constien, Hubertus von Streit
-------------- 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/2885b7d7/attachment-0001.bin 


More information about the linux-mtd mailing list