Re: [PATCH 1/2] scsi_host: add support for request batching

Bart Van Assche
2019-05-30T15:36:38Z

On 5/30/19 4:28 AM, Paolo Bonzini wrote:
> +static const struct blk_mq_ops scsi_mq_ops_no_commit = {
> + .get_budget = scsi_mq_get_budget,
> + .put_budget = scsi_mq_put_budget,
> + .queue_rq = scsi_queue_rq,
> + .complete = scsi_softirq_done,
> + .timeout = scsi_timeout,
> +#ifdef CONFIG_BLK_DEBUG_FS
> + .show_rq = scsi_show_rq,
> +#endif
> + .init_request = scsi_mq_init_request,
> + .exit_request = scsi_mq_exit_request,
> + .initialize_rq_fn = scsi_initialize_rq,
> + .busy = scsi_mq_lld_busy,
> + .map_queues = scsi_map_queues,
> +};
> +
> +static void scsi_commit_rqs(struct blk_mq_hw_ctx *hctx)
> +{
> + struct request_queue *q = hctx->queue;
> + struct scsi_device *sdev = q->queuedata;
> + struct Scsi_Host *shost = sdev->host;
> +
> + shost->hostt->commit_rqs(shost, hctx->queue_num);
> +}
> +
> static const struct blk_mq_ops scsi_mq_ops = {
> .get_budget = scsi_mq_get_budget,
> .put_budget = scsi_mq_put_budget,
> .queue_rq = scsi_queue_rq,
> + .commit_rqs = scsi_commit_rqs,
> .complete = scsi_softirq_done,
> .timeout = scsi_timeout,
> #ifdef CONFIG_BLK_DEBUG_FS

Hi Paolo,

Have you considered to modify the block layer such that a single
scsi_mq_ops structure can be used for all SCSI LLD types?

Thanks,

Bart.