Hello everyone, I've pushed out my current patch queue so that I can start merging in all those pending patches. It has some really experimental stuff in there, and it disables data file checksums for now. Don't pull from the hg tree unless you want to delete your files once checksums go back in (I'll put in a -o nocsum mount option too so you can still read things). The big change is using my extent based page cache code to manage file data pages. This makes for much less cpu time used during reads and writes on big extents because btrfs_search_slot is called much much less often. It also made delayed allocation fairly simple, and I've changed file_write, truncate, and mmap to use delayed allocation. This means extents aren't allocated until just before the IO is done, and it's a pretty huge win, especially on workloads that would frequently append onto existing bytes in the file. If you're waiting for me to merge something you've already sent, I'll do the merging here tomorrow. -chris
On Mon, 27 Aug 2007 16:55:46 -0400 Chris Mason <chris.mason@oracle.com> wrote:> Hello everyone, > > I've pushed out my current patch queue so that I can start merging in > all those pending patches. It has some really experimental stuff in > there, and it disables data file checksums for now. Don't pull from > the hg tree unless you want to delete your files once checksums go > back in (I'll put in a -o nocsum mount option too so you can still > read things).And one more push, which has everything I've been sent recently integrated. This includes Josef's /sys/fs/btrfs/<device> stuff to expose details about blocks used in each root. If you want to look at the block accounting, you will want to pull the related changesets from the btrfs-progs tree as well. I modified Yan Zheng's port of Christoph's mount-into-subdir patch. If you mount a btrfs volume, you will end up in the default subvolume by default. You can mount as many subvolumes as you want: mount -t btrfs -o subvol=name /dev/xxxx /mount_point Note the -t btrfs, mount needs it if you've already got something mounted from that device. You can create snapshots right off the mount points: btrfsctl -s snapname /mount_point But to create a new subvolume, you have to mount the tree root: mount -t btrfs -o subvol=. /dev/xxx /mount_point Which will give you the same directory tree btrfs used to have at its root. -chris