Re: [PATCH 2/2] block: defer the use of inline biovecs for discardrequests

From: FUJITA Tomonori
Date: Mon Jun 28 2010 - 11:16:48 EST


On Mon, 28 Jun 2010 08:29:55 -0400
Mike Snitzer <snitzer@xxxxxxxxxx> wrote:

> On Mon, Jun 28 2010 at 6:33am -0400,
> FUJITA Tomonori <fujita.tomonori@xxxxxxxxxxxxx> wrote:
>
> > On Sat, 26 Jun 2010 15:56:51 -0400
> > Mike Snitzer <snitzer@xxxxxxxxxx> wrote:
> >
> > > Don't alloc discard bio with a biovec in blkdev_issue_discard. Doing so
> > > means bio_has_data() will not be true until the SCSI layer adds the
> > > payload to the discard request via blk_add_request_payload.
> > >
> > > bio_{enable,disable}_inline_vecs are not expected to be widely used so
> > > they were exported using EXPORT_SYMBOL_GPL.
> > >
> > > This patch avoids the need for the following VM accounting fix for
> > > discards: http://lkml.org/lkml/2010/6/23/361
> >
> > Why do we need to avoid the above fix?
>
> We don't _need_ to. We avoid the need for it as a side-effect of the
> cleanup that my patch provides.
>
> > Surely, the above fix is hacky but much simpler than this patch.
>
> My patch wasn't meant as an alternative to Tao Ma's patch. Again, it
> just obviates the need for it.
>
> Your tolerance for "hacky" is difficult to understand. On the one-hand
> (PATCH 1/2) you have no tolerance for "hacky" fixes for leaks (that
> introduce a short-term SCSI layering violation).

Sorry, if not clear enough.

- SCSI layering violation is bad.

- A 'short term' solution always turns out to be a long solution. We
should have a clean solution from the start.

- Complicating the SCSI I/O completion is bad (already complicated
enough).

...

And the 'leaks' bug is still in -next. No need to fix it in a hacky
way. We can just drop it from -next.


> But in this case
> you're perfectly fine with BIO_RW_DISCARD special casing?

BIO_RW_DISCARD special is already everywhere in the block layer. I
prefer to have the less. However as long as it's in the block layer, I
can live with it. After all, that's the block layer thing.

At least, it looks much better this patch. This patch is really hacky
(as Jens said).
--
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/