[PATCH] DIO rewrite

From: Kent Overstreet
Date: Tue Dec 03 2013 - 17:00:45 EST


This is the dio rewrite based on immutable biovecs that I've been working on
off and on for quite some time now; I think it's getting close to ready.

It passes xfstests with xfs and CONFIG_XFS_DEBUG=y, though it definitely needs
more review and outside testing. It doesn't quite work with btrfs but I think
with a bit of help from the btrfs people that one will be easy to figure out.

This this cuts fs/direct-io.c almost in half by lines of code, makes it
_vastly_ easier to understand, and roughly halves the cpu overhead of the dio
code in the profiles I've looked at. It's only stage one of my master plan,
though.

Eventually, the goal is to get the filesystem direct_IO() method to take bios
(at which point it'll be analagous to a make_request fn, probably) - that'll
have a lot of benefits I won't go into here but it's going to take some
delicate surgery to get here. This code starts to restructure things in that
direction, doing about as much as I could without going outside of
fs/direct-io.c.

The patch series is on top of Jens' for-3.14/core branch, and includes all the
prereqs that haven't gone in yet. It's available in my git repo:

git://evilpiepirate.org/~kent/linux-bcache.git dio

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/