Re: Regarding posted scsi midlyaer patchsets

James Bottomley
2005-04-19T14:18:32Z

On Tue, 2005-04-19 at 14:34 +0200, Jens Axboe wrote:
> On Mon, Apr 18 2005, Tejun Heo wrote:
> > And, James, regarding REQ_SOFTBARRIER, if the REQ_SOFTBARRIER thing can
> > be removed from SCSI midlayer, do you agree to change REQ_SPECIAL to
> > mean special requests? If so, I have three proposals.
> >
> > * move REQ_SOFTBARRIER setting to right after the allocation of
> > scsi_cmnd in scsi_prep_fn(). This will be the only place where
> > REQ_SOFTBARRIER is used in SCSI midlayer, making it less pervasive.
> > * Or, make another API which sets REQ_SOFTBARRIER on requeue. maybe
> > blk_requeue_ordered_request()?
> > * Or, make blk_insert_request() not set REQ_SPECIAL on requeue. IMHO,
> > this is a bit too subtle.
> >
> > I like #1 or #2. Jens, what do you think? Do you agree to remove
> > requeue feature from blk_insert_request()?
>
> #2 is the best, imho. We really want to maintain ordering on requeue
> always, marking it softbarrier automatically in the block layer means
> the io schedulers don't have to do anything specific to handle it.

This is my preference too. In general, block is the only one that
should care what the REQ_SOFTBARRIER flag actually means. SCSI only
cares that it submits a non mergeable request.

I'm happy to separate the meaning of REQ_SPECIAL from req->special.

> I have no problem with removing the requeue stuff from
> blk_insert_request(). That function is horribly weird as it is, it is
> supposed to look generic but is really just a scsi special case.

heh .. would this be because no other driver uses the block layer for
requeuing ... ?

James