linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] DIO rewrite
@ 2013-12-03 22:00 Kent Overstreet
  2013-12-03 22:00 ` [PATCH 01/11] block: Make generic_make_request handle arbitrary sized bios Kent Overstreet
                   ` (10 more replies)
  0 siblings, 11 replies; 18+ messages in thread
From: Kent Overstreet @ 2013-12-03 22:00 UTC (permalink / raw)
  To: axboe, linux-kernel, linux-fsdevel; +Cc: hch, clm, viro, zab, shaggy

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

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2013-12-06 19:57 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-03 22:00 [PATCH] DIO rewrite Kent Overstreet
2013-12-03 22:00 ` [PATCH 01/11] block: Make generic_make_request handle arbitrary sized bios Kent Overstreet
2013-12-03 22:00 ` [PATCH 02/11] block: Gut bio_add_page() Kent Overstreet
2013-12-03 22:00 ` [PATCH 03/11] btrfs: generic_make_request() handles arbitrary size bios now Kent Overstreet
2013-12-03 22:00 ` [PATCH 04/11] btrfs: convert to bio_for_each_segment() Kent Overstreet
2013-12-03 22:00 ` [PATCH 05/11] iov_iter: Move iov_iter to uio.h Kent Overstreet
2013-12-06 11:09   ` Christoph Hellwig
2013-12-03 22:00 ` [PATCH 06/11] iov_iter: Kill iov_iter_single_seg_count() Kent Overstreet
2013-12-06 11:11   ` Christoph Hellwig
2013-12-03 22:00 ` [PATCH 07/11] iov_iter: Kill written arg to iov_iter_init() Kent Overstreet
2013-12-06 11:14   ` Christoph Hellwig
2013-12-03 22:00 ` [PATCH 08/11] block: convert to iov_iter Kent Overstreet
2013-12-06 19:50   ` Christoph Hellwig
2013-12-03 22:00 ` [PATCH 09/11] block: iov_count_pages() Kent Overstreet
2013-12-06 19:53   ` Christoph Hellwig
2013-12-03 22:00 ` [PATCH 10/11] block: Add bio_get_user_pages() Kent Overstreet
2013-12-06 19:57   ` Christoph Hellwig
2013-12-03 22:00 ` [PATCH 11/11] direct-io: Rewrite based on immutable biovecs Kent Overstreet

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).