Messages in this thread Patch in this message | | | Date | Sat, 30 Mar 2002 21:31:31 -0800 | From | Andrew Morton <> | Subject | [patch] fix loop deadlock |
| |
2.5 is missing a chunk from 2.4
--- 2.5.7/fs/buffer.c~loop-deadlock Sat Mar 30 21:18:13 2002 +++ 2.5.7-akpm/fs/buffer.c Sat Mar 30 21:18:22 2002 @@ -992,7 +992,7 @@ static int balance_dirty_state(void) /* First, check for the "real" dirty limit. */ if (dirty > soft_dirty_limit) { - if (dirty > hard_dirty_limit) + if (dirty > hard_dirty_limit && !(current->flags & PF_NOIO)) return 1; return 0; }
From an efficiency POV loop is looking rather hilarious:
c013da84 kmem_cache_alloc 30 0.0355 c0239bc0 __make_request 41 0.0321 c02457e0 transfer_none 90 1.2500 c0148480 create_bounce 171 0.2007 c0138a00 generic_file_write 305 0.1540 c014d558 write_some_buffers 10028 28.4886 c0151db5 .text.lock.buffer 29229 47.2197 00000000 total 40308 0.0195 Probably we can fix this using the BH_Launder bit from Andrea's kit.
- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |