Messages in this thread | | | Date | Mon, 28 Aug 2000 17:43:16 +0200 (CEST) | From | Mike Galbraith <> | Subject | Re: kernel 2.4 status page - loopback mount option still has problems even in 2.4.0-test7-final. |
| |
On Sun, 27 Aug 2000, William Stearns wrote:
> Good day, Ted and all, > The loopback mount option is still not 100% there for me in > 2.4.0-test7; there appears to be some kind of deadlock still there (thenks > arjan and cesarb!). Here's the line from your 2.4 status page: > > - Loop device hangs (Peter Enderborg can duplicate by writing large file > to dosfs mounted via loop device; Steve Dodd reports deadlock issues; > Linus says fixed in test6) > > I do quite a bit of work with creating a 50-200M file, making an > ext2 filesystem on it, then loading it with rpms for User Mode Linux. On > a 256M machine with other apps running, I find I can do this 3 to 5 times > before the machine hangs (no oops, some apps still run, nothing from > dmesg, apps stuck in the "D" state according to ps, unable to shutdown or > halt, unable to unmount the loopback'ed filesystem).
Hi,
I tried your script many times today and was unable to induce deadlock with or without other things running.. iozone, updatedb etc.
However :-) you want to see something really odd? The below reliably fails in a 1024 blocksize fs but passes fine in a 4096 blocksize fs. I can't see anything inside the driver that can possibly cause this weird failure. With a 1k blocksize, it always begins to choke as swap kicks in. It works fine as a single process compile regardless of blocksize.
-Mike
#!/bin/bash
# Run with PWD in 1024 blocksize fs.. then try it with 4096 blocksize. # Adjust $KICKMEBEATMEMAKEMEBLEED to swap heartily.. but not insanely. # 30 works well on my 128mb box, YMMV.
KICKMEBEATMEMAKEMEBLEED=30
cleanup() { umount /mnt 2>/dev/null rm -f ./canned_fs exit 1 }
if [ ! -d /mnt ]; then mkdir /mnt ; fi umount /mnt 2>/dev/null
# look down mkdir ./cheezy_blocksize_check || exit 1 BLOCKSIZE=$((`/bin/ls -ds ./cheezy_blocksize_check|cut -c4` * 1024)) rmdir ./cheezy_blocksize_check # HERE. (the hand is quicker than the eye ;-)
echo "Testing loopback filesystem of blocksize $BLOCKSIZE"
dd if=/dev/zero of=./canned_fs bs=1024k count=200 || cleanup mke2fs -F ./canned_fs -b $BLOCKSIZE || cleanup
mount -o loop ./canned_fs /mnt || cleanup ( cd /mnt && cp -a /usr/src/linux . && cd linux && \ make dep && make -j $KICKMEBEATMEMAKEMEBLEED bzImage ) >/dev/null 2>&1 && \ echo "Yup.. $BLOCKSIZE works." || echo "Bugger.. $BLOCKSIZE fails!" cleanup
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
| |