Btrfs: reduce CPU usage in the extent_state tree
authorChris Mason <chris.mason@oracle.com>
Wed, 2 Sep 2009 17:24:36 +0000 (13:24 -0400)
committerChris Mason <chris.mason@oracle.com>
Fri, 11 Sep 2009 17:31:06 +0000 (13:31 -0400)
commit1edbb734b4e010974c41d2859d22a43d04f5f1cf
tree4f43aea677f7206707540dd8622fa4cac099057a
parente48c465bb366c0169f7908bfe62ae7080874ee7d
Btrfs: reduce CPU usage in the extent_state tree

Btrfs is currently mirroring some of the page state bits into
its extent state tree.  The goal behind this was to use it in supporting
blocksizes other than the page size.

But, we don't currently support that, and we're using quite a lot of CPU
on the rb tree and its spin lock.  This commit starts a series of
cleanups to reduce the amount of work done in the extent state tree as
part of each IO.

This commit:

* Adds the ability to lock an extent in the state tree and also set
other bits.  The idea is to do locking and delalloc in one call

* Removes the EXTENT_WRITEBACK and EXTENT_DIRTY bits.  Btrfs is using
a combination of the page bits and the ordered write code for this
instead.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/extent_io.c
fs/btrfs/extent_io.h
fs/btrfs/file.c