Daniel Phillips | 5 Mar 11:15

Test code: make-many-files.c

Here is the test code Marcin found on the web.  It makes a three level
deep tree of directories containing 405,000 files, with 15,000 files
per directory.  Make the directory tree, and then rm -r.  Repeat.  Bad
things happen, especially if the partition is about 4GB, which is 1GB
less than the space required to complete the run.

After a successful rm -r (it doesn't always succeed) then umount takes
an unreasonably long time, which looks like an interaction between VFS
and Tux3 where inode table blocks are getting re-dirtied and written
out over and over again.  This may have something to so with an
explicit test in generic_flush_sb_inodes for whether it is the blockdev
being flushed, which no long functions for us since we no longer use
the blockdev, but a regular inode for our metadata blocks.  The
correct solution is probably to write our one inode flusher along the
lines of generic_flush_sb_inodes, but doing exactly what we need it to
do.

Regards,

Daniel
Attachment (make-many-files.c): text/x-csrc, 777 bytes
_______________________________________________
Tux3 mailing list
Tux3 <at> tux3.org
http://mailman.tux3.org/cgi-bin/mailman/listinfo/tux3

Gmane