On Mon, 20 Nov 2006, Mingming Cao wrote: > > So there is only one writer at the moment the hang was happening? I expect there were multiple writers when the task which hangs first entered its ext2_prepare_write (it's a make -j20 build on that ext2 filesystem); but by the time I come to look at the hang, there's only that one writer active - everything else would be waiting on that part of the build to complete (well, your question makes me realize that I didn't look down the whole "ps" listing to see what was waiting; but the hanging task is the only one I see running on on any cpu, each time I break in). > > hmm, is the filesystem relatively all being used or reserved, i.e, the > free bits are all being reserved? There is one extreme case that may > cause starvation. If filesystem free blocks are all being reserved, when > a new writer need a free block, it has to go through the entire > filesystems, try to reserve a space, which will repeatly calling > rsv_window_add and rsv_window_remove, since. Finally give up and fall > back to allocation without reservation. But this is all theory, not sure > fits your case here. I can understand that there may be a worst case like that: but I hope it wouldn't take 20 hours to find a free block on a default 340MB ext2 filesystem! And unless something else has gone wrong, this build would not be filling the filesystem to that extent: it's probably around 80% full at this stage, and shouldn't get fuller than 98% in the end. Any suggestions for what I might check, next time it happens? Hugh - To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html