Re: [PATCH] block: eliminate ELEVATOR_INSERT_REQUEUE (was: Re:elevator private data for REQ_FLUSH)

From: Vivek Goyal
Date: Tue Mar 29 2011 - 13:55:20 EST


On Tue, Mar 29, 2011 at 10:13:05AM -0400, Jeff Moyer wrote:
> Mike Snitzer <snitzer@xxxxxxxxxx> writes:
>
> > OK, I came up with the following patch.
> >
> > Jens, this is just a natural cleanup given the code that resulted from
> > the flush-merge and onstack plugging changes coming together.
> >
> >
> > From: Mike Snitzer <snitzer@xxxxxxxxxx>
> > Subject: block: eliminate ELEVATOR_INSERT_REQUEUE
> >
> > elv_insert() no longer has a need to differentiate between
> > ELEVATOR_INSERT_REQUEUE and ELEVATOR_INSERT_FRONT. The onstack plugging
> > changes eliminated the need to avoid unplugging the queue (via
> > ELEVATOR_INSERT_REQUEUE).
> >
> > Also, in blk_insert_flush(), use elv_insert() with ELEVATOR_INSERT_FRONT
> > rather than open-coding the equivalent.
>
> What you change by doing the call to elv_insert is that now the request
> will have REQ_SOFTBARRIER set. I don't think that affects anything,
> though (I checked). The rest looks pretty straight-forward.

What is the significance of REQ_SOFTBARRIER? Why it should be set for all
INSERT_FRONT and requeue requests.

With flush logic we got rid of all hardbarriers and hence there is no
notion of ordering as such. One has to wait for request to finish to
enforce ordering.

Should we get rid of softbarriers too?

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