From: Kent Overstreet <kmo@daterainc.com>
To: axboe@kernel.dk, linux-kernel@vger.kernel.org,
linux-fsdevel@vger.kernel.org
Cc: hch@infradead.org, clm@fb.com, viro@zeniv.linux.org.uk,
zab@redhat.com, shaggy@kernel.org
Subject: [PATCH] DIO rewrite
Date: Tue, 3 Dec 2013 14:00:06 -0800 [thread overview]
Message-ID: <1386108017-27964-1-git-send-email-kmo@daterainc.com> (raw)
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
next reply other threads:[~2013-12-03 22:00 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-03 22:00 Kent Overstreet [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1386108017-27964-1-git-send-email-kmo@daterainc.com \
--to=kmo@daterainc.com \
--cc=axboe@kernel.dk \
--cc=clm@fb.com \
--cc=hch@infradead.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=shaggy@kernel.org \
--cc=viro@zeniv.linux.org.uk \
--cc=zab@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).