]> git.karo-electronics.de Git - karo-tx-linux.git/commit
bcache: Incremental gc
authorKent Overstreet <kmo@daterainc.com>
Wed, 11 Sep 2013 02:07:00 +0000 (19:07 -0700)
committerKent Overstreet <kmo@daterainc.com>
Wed, 11 Sep 2013 02:07:00 +0000 (19:07 -0700)
commit444c00fcb3de3f0e72a45b0707979efae402b1f3
tree9c57ded2604b6578996dd3a223a90ab4fa5b346b
parentd51f38088418a6f76d106a1da4cea61c14e7ce82
bcache: Incremental gc

Big garbage collection rewrite; now, garbage collection uses the same
mechanisms as used elsewhere for inserting/updating btree node pointers,
instead of rewriting interior btree nodes in place.

This makes the code significantly cleaner and less fragile, and means we
can now make garbage collection incremental - it doesn't have to hold a
write lock on the root of the btree for the entire duration of garbage
collection.

This means that there's less of a latency hit for doing garbage
collection, which means we can gc more frequently (and do a better job
of reclaiming from the cache), and we can coalesce across more btree
nodes (improving our space efficiency).

Signed-off-by: Kent Overstreet <kmo@daterainc.com>
drivers/md/bcache/bcache.h
drivers/md/bcache/btree.c
drivers/md/bcache/btree.h
drivers/md/bcache/sysfs.c