Bcache: a block layer SSD cache Does writethrough and writeback, handles unclean shutdown, and has various other nifty features. See the wiki and the documentation for more: http://bcache.evilpiepirate.org Over the Christmas break I finally got the tree into a self contained state that ought to be suitable for merging; this tree is fairly close to the previous stable tree that people have been running on production servers for awhile (and that I've been running on this workstation), So, I think this is ready for mainline and I'd like to get it in. I should've tried to push it ages ago, but I was hoping to get in various block layer cleanups first; I finally deided to work around them in the meantime since I haven't had time to finish the block layer stuff. Not everything has been addressed since I last posted for review feedback - notably the closure code was controversial and for now I've just moved that into drivers/block/bcache (though I've been refactoring stuff to make it less asynchronous lately; most of that work is in the testing/dev branches). The bigger issue IMO is the userspace interface - I'd like to finish the md integration so it doesn't need userspace stuff for probing/bootup. So, I'd be fine with it going into staging if that's the consensus, but it's stable tested code. The code is available at http://evilpiepirate.org/git/linux-bcache.git bcache-for-upstream This latest branch is on top of v3.8-rc3: ---------------------------------------------------------------- Kent Overstreet (5): Revert "rw_semaphore: remove up/down_read_non_owner" Export get_random_int() Export blk_fill_rwbs() Export __lockdep_no_validate__ bcache: A block layer cache Documentation/ABI/testing/sysfs-block-bcache | 156 ++ Documentation/bcache.txt | 343 ++++ drivers/char/random.c | 1 + drivers/md/Kconfig | 2 + drivers/md/Makefile | 1 + drivers/md/bcache/Kconfig | 41 + drivers/md/bcache/Makefile | 14 + drivers/md/bcache/alloc.c | 612 +++++++ drivers/md/bcache/bcache.h | 1207 +++++++++++++ drivers/md/bcache/bset.c | 1175 ++++++++++++ drivers/md/bcache/bset.h | 378 ++++ drivers/md/bcache/btree.c | 2497 ++++++++++++++++++++++++++ drivers/md/bcache/btree.h | 412 +++++ drivers/md/bcache/closure.c | 347 ++++ drivers/md/bcache/closure.h | 670 +++++++ drivers/md/bcache/debug.c | 550 ++++++ drivers/md/bcache/debug.h | 54 + drivers/md/bcache/io.c | 383 ++++ drivers/md/bcache/journal.c | 703 ++++++++ drivers/md/bcache/journal.h | 159 ++ drivers/md/bcache/movinggc.c | 245 +++ drivers/md/bcache/request.c | 1370 ++++++++++++++ drivers/md/bcache/request.h | 61 + drivers/md/bcache/stats.c | 239 +++ drivers/md/bcache/stats.h | 58 + drivers/md/bcache/super.c | 1952 ++++++++++++++++++++ drivers/md/bcache/sysfs.c | 807 +++++++++ drivers/md/bcache/sysfs.h | 98 + drivers/md/bcache/trace.c | 26 + drivers/md/bcache/util.c | 382 ++++ drivers/md/bcache/util.h | 587 ++++++ drivers/md/bcache/writeback.c | 406 +++++ include/linux/cgroup_subsys.h | 6 + include/linux/rwsem.h | 10 + include/linux/sched.h | 4 + include/trace/events/bcache.h | 271 +++ kernel/fork.c | 4 + kernel/lockdep.c | 1 + kernel/rwsem.c | 16 + kernel/trace/blktrace.c | 1 + 40 files changed, 16249 insertions(+) create mode 100644 Documentation/ABI/testing/sysfs-block-bcache create mode 100644 Documentation/bcache.txt create mode 100644 drivers/md/bcache/Kconfig create mode 100644 drivers/md/bcache/Makefile create mode 100644 drivers/md/bcache/alloc.c create mode 100644 drivers/md/bcache/bcache.h create mode 100644 drivers/md/bcache/bset.c create mode 100644 drivers/md/bcache/bset.h create mode 100644 drivers/md/bcache/btree.c create mode 100644 drivers/md/bcache/btree.h create mode 100644 drivers/md/bcache/closure.c create mode 100644 drivers/md/bcache/closure.h create mode 100644 drivers/md/bcache/debug.c create mode 100644 drivers/md/bcache/debug.h create mode 100644 drivers/md/bcache/io.c create mode 100644 drivers/md/bcache/journal.c create mode 100644 drivers/md/bcache/journal.h create mode 100644 drivers/md/bcache/movinggc.c create mode 100644 drivers/md/bcache/request.c create mode 100644 drivers/md/bcache/request.h create mode 100644 drivers/md/bcache/stats.c create mode 100644 drivers/md/bcache/stats.h create mode 100644 drivers/md/bcache/super.c create mode 100644 drivers/md/bcache/sysfs.c create mode 100644 drivers/md/bcache/sysfs.h create mode 100644 drivers/md/bcache/trace.c create mode 100644 drivers/md/bcache/util.c create mode 100644 drivers/md/bcache/util.h create mode 100644 drivers/md/bcache/writeback.c create mode 100644 include/trace/events/bcache.h -- To unsubscribe from this list: send the line "unsubscribe linux-bcache" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html