Messages in this thread | | | Date | Tue, 29 Mar 2011 13:54:58 -0400 | From | Vivek Goyal <> | Subject | Re: [PATCH] block: eliminate ELEVATOR_INSERT_REQUEUE (was: Re: elevator private data for REQ_FLUSH) |
| |
On Tue, Mar 29, 2011 at 10:13:05AM -0400, Jeff Moyer wrote: > Mike Snitzer <snitzer@redhat.com> 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@redhat.com> > > 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
| |