Re: [PATCH 4/8] bio: actually inline inline bvecs into bio

From: Jens Axboe
Date: Wed Apr 01 2009 - 08:47:35 EST


On Wed, Apr 01 2009, Tejun Heo wrote:
> Impact: cleanup
>
> BIO_INLINE_VECS bvecs are inlined into bio to avoid bvec allocation
> for small transfers. This was achieved by declaring zero sized bvec
> array at the end of bio and allocating bio with extra bytes at the
> end. As BIO_INLINE_VECS is constant, there is no reason to do this
> allocation trick. This patch simply defines BIO_INLINE_VECS sized
> bvec array at the end. This will help fixing bio_kmalloc().

I don't like this, it's much nicer to do it with a zero sized array. If
you don't need a bio_vec, then you don't consume the extra space. I
guess for that to really work, we'd need one more slab and mempool
though. At least for non-stack bio's. I also fear that direct uses of
->bi_inline_vecs[] will then crop up, making it harder to go back.

--
Jens Axboe

--
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/