Re: [PATCH 1/5] block: Make generic_make_request handle arbitrary sized bios

2013-11-25 Thread Kent Overstreet
On Mon, Nov 25, 2013 at 10:09:21PM -0800, Christoph Hellwig wrote: > > + q->bio_split = bioset_create(4, 0); > > + if (!q->bio_split) > > + goto fail_id; > > How did we arrive at a mempool size of 4 to make sure we can always make > progress with arbitrarily sized bios? Shouldn't we

Re: [PATCH 1/5] block: Make generic_make_request handle arbitrary sized bios

2013-11-25 Thread Christoph Hellwig
> + q->bio_split = bioset_create(4, 0); > + if (!q->bio_split) > + goto fail_id; How did we arrive at a mempool size of 4 to make sure we can always make progress with arbitrarily sized bios? Shouldn't we document the design decision somewhere? > +static struct bio *blk_bio_d

[PATCH 1/5] block: Make generic_make_request handle arbitrary sized bios

2013-11-25 Thread Kent Overstreet
The way the block layer is currently written, it goes to great lengths to avoid having to split bios; upper layer code (such as bio_add_page()) checks what the underlying device can handle and tries to always create bios that don't need to be split. But this approach becomes unwieldy and eventuall