Message ID | 20180807174433.8374-7-ming.lei@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | SCSI: introduce per-host admin queue & enable runtime PM | expand |
On Wed, 2018-08-08 at 01:44 +0800, Ming Lei wrote: > diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c > index 435347f58328..52e498fb6280 100644 > --- a/drivers/scsi/scsi_lib.c > +++ b/drivers/scsi/scsi_lib.c > @@ -1971,10 +1971,9 @@ static unsigned int scsi_mq_sgl_size(struct Scsi_Host *shost) > sizeof(struct scatterlist); > } > > -static int scsi_mq_prep_fn(struct request *req) > +static int scsi_mq_prep_fn(struct scsi_device *sdev, struct request *req) > { > struct scsi_cmnd *cmd = blk_mq_rq_to_pdu(req); > - struct scsi_device *sdev = req->q->queuedata; > struct Scsi_Host *shost = sdev->host; > struct scatterlist *sg; > > @@ -2070,7 +2069,7 @@ static blk_status_t scsi_queue_rq(struct blk_mq_hw_ctx *hctx, > goto out_dec_target_busy; > > if (!(req->rq_flags & RQF_DONTPREP)) { > - ret = prep_to_mq(scsi_mq_prep_fn(req)); > + ret = prep_to_mq(scsi_mq_prep_fn(sdev, req)); > if (ret != BLK_STS_OK) > goto out_dec_host_busy; > req->rq_flags |= RQF_DONTPREP; This patch looks useful to me since it probably realizes a (small) performance improvement. I think this patch does not depend on any of the previous patches in this series. Is that correct? Bart.
On Tue, Aug 07, 2018 at 11:24:06PM +0000, Bart Van Assche wrote: > On Wed, 2018-08-08 at 01:44 +0800, Ming Lei wrote: > > diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c > > index 435347f58328..52e498fb6280 100644 > > --- a/drivers/scsi/scsi_lib.c > > +++ b/drivers/scsi/scsi_lib.c > > @@ -1971,10 +1971,9 @@ static unsigned int scsi_mq_sgl_size(struct Scsi_Host *shost) > > sizeof(struct scatterlist); > > } > > > > -static int scsi_mq_prep_fn(struct request *req) > > +static int scsi_mq_prep_fn(struct scsi_device *sdev, struct request *req) > > { > > struct scsi_cmnd *cmd = blk_mq_rq_to_pdu(req); > > - struct scsi_device *sdev = req->q->queuedata; > > struct Scsi_Host *shost = sdev->host; > > struct scatterlist *sg; > > > > @@ -2070,7 +2069,7 @@ static blk_status_t scsi_queue_rq(struct blk_mq_hw_ctx *hctx, > > goto out_dec_target_busy; > > > > if (!(req->rq_flags & RQF_DONTPREP)) { > > - ret = prep_to_mq(scsi_mq_prep_fn(req)); > > + ret = prep_to_mq(scsi_mq_prep_fn(sdev, req)); > > if (ret != BLK_STS_OK) > > goto out_dec_host_busy; > > req->rq_flags |= RQF_DONTPREP; > > This patch looks useful to me since it probably realizes a (small) performance > improvement. I think this patch does not depend on any of the previous patches > in this series. Is that correct? Yes, it is. Thanks, Ming
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 435347f58328..52e498fb6280 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -1971,10 +1971,9 @@ static unsigned int scsi_mq_sgl_size(struct Scsi_Host *shost) sizeof(struct scatterlist); } -static int scsi_mq_prep_fn(struct request *req) +static int scsi_mq_prep_fn(struct scsi_device *sdev, struct request *req) { struct scsi_cmnd *cmd = blk_mq_rq_to_pdu(req); - struct scsi_device *sdev = req->q->queuedata; struct Scsi_Host *shost = sdev->host; struct scatterlist *sg; @@ -2070,7 +2069,7 @@ static blk_status_t scsi_queue_rq(struct blk_mq_hw_ctx *hctx, goto out_dec_target_busy; if (!(req->rq_flags & RQF_DONTPREP)) { - ret = prep_to_mq(scsi_mq_prep_fn(req)); + ret = prep_to_mq(scsi_mq_prep_fn(sdev, req)); if (ret != BLK_STS_OK) goto out_dec_host_busy; req->rq_flags |= RQF_DONTPREP;
This patchset will introduce per-host admin queue, so it may not to get 'scsi_device' via q->queuedata. Cc: Alan Stern <stern@rowland.harvard.edu> Cc: Christoph Hellwig <hch@lst.de> Cc: Bart Van Assche <bart.vanassche@wdc.com> Cc: Jianchao Wang <jianchao.w.wang@oracle.com> Cc: Hannes Reinecke <hare@suse.de> Cc: Johannes Thumshirn <jthumshirn@suse.de> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: "James E.J. Bottomley" <jejb@linux.vnet.ibm.com> Cc: "Martin K. Petersen" <martin.petersen@oracle.com> Cc: linux-scsi@vger.kernel.org Signed-off-by: Ming Lei <ming.lei@redhat.com> --- drivers/scsi/scsi_lib.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)