I think runtime defrag could yield really good benefits. In
particular it would allow us to find_group_dir(), and always
put directories in the same blockgroup as their parent (big
speedups for the `untar-a-kernel-tree' workload).
There's a patch at
http://www.zip.com.au/~akpm/linux/patches/2.4/2.4.19-pre10/ext3-reloc-page.patch
which provides a simple `relocate page' ioctl for ext3 files. It
relocates a page's blocks. The operation is fully journalled and
pagecache-coherent. So you can turn off the power in the middle
of a defrag operation and the fs will come back just fine. It doesn't
make any attempt to relocate inodes. If the page relocation attempt fails
then it just returns -EAGAIN and userspace gets to worry about what
to do.
I simply have not had the time to do anything about the userspace
program which drives that ioctl. So if there's anyone out there
who has a little time on their hands...
-
-
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/