Re: [LSF/MM TOPIC][LSF/MM ATTEND] NAPI polling for block drivers

Sagi Grimberg
2017-01-18T15:14:46Z

> Hannes just spotted this:
> static int nvme_queue_rq(struct blk_mq_hw_ctx *hctx,
> const struct blk_mq_queue_data *bd)
> {
> [...]
> __nvme_submit_cmd(nvmeq, &cmnd);
> nvme_process_cq(nvmeq);
> spin_unlock_irq(&nvmeq->q_lock);
> return BLK_MQ_RQ_QUEUE_OK;
> out_cleanup_iod:
> nvme_free_iod(dev, req);
> out_free_cmd:
> nvme_cleanup_cmd(req);
> return ret;
> }
>
> So we're draining the CQ on submit. This of cause makes polling for
> completions in the IRQ handler rather pointless as we already did in the
> submission path.