linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kent Overstreet <kmo@daterainc.com>
To: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	axboe@kernel.dk
Subject: [PATCH] Make generic_make_request() handle arbitrary size bios
Date: Mon, 25 Nov 2013 14:30:28 -0800	[thread overview]
Message-ID: <1385418633-9753-1-git-send-email-kmo@daterainc.com> (raw)

This builds off of immutable biovecs; it's a small enough patch series that I'd
like to try to get it into 3.14 but it is a pretty significant change in
behaviour for the block layer so it should definitely be considered separately
from that series.

What the series does is pretty simple - like the title says, you can now pass
generic_make_request arbitrary size bios - you no longer have to care about
device limits, and we can start deleting a ton of code.

This is done by splitting bios as needed. The idea is to push the splitting
lower and lower over time, and in many cases we eventually won't have to
actually split the bios at all - it'll happen implicitly - for now though, we do
it the simple easy way, with a new function (blk_queue_split()) that mimics the
old behaviour of bio_add_page().

This series only starts with the obvious easy things - bio_add_page(), and the
stuff in blk-lib.c. There's a lot more coming - with the new bio_split() that
can split arbitrary size bios the various virtual block drivers (md, dm, drbd,
etc.) should all either be capable of handling arbitrary size bios now or mostly
need minor changes, so we can delete merge_bvec_fn.

This patch series doesn't with REQ_TYPE_BLOCK_PC bios - bio_add_pc_page() and
the blk_execute_rq() codepath are unchanged. I'd like to get rid of direct
request submission eventually, but that is a different patch series.


             reply	other threads:[~2013-11-25 22:30 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-25 22:30 Kent Overstreet [this message]
2013-11-25 22:30 ` [PATCH 1/5] block: Make generic_make_request handle arbitrary sized bios Kent Overstreet
2013-11-26  6:09   ` Christoph Hellwig
2013-11-26  7:21     ` Kent Overstreet
2013-11-25 22:30 ` [PATCH 2/5] mtip32xx: handle arbitrary size bios Kent Overstreet
2013-11-26  6:10   ` Christoph Hellwig
2013-11-26  7:32     ` Kent Overstreet
2013-11-25 22:30 ` [PATCH 3/5] block: Gut bio_add_page() Kent Overstreet
2013-11-25 22:30 ` [PATCH 4/5] blk-lib.c: generic_make_request() handles large bios now Kent Overstreet
2013-11-27 12:54   ` Christoph Hellwig
2013-11-27 21:34     ` Kent Overstreet
2013-11-25 22:30 ` [PATCH 5/5] bcache: " 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=1385418633-9753-1-git-send-email-kmo@daterainc.com \
    --to=kmo@daterainc.com \
    --cc=axboe@kernel.dk \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /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).