Re: [LSF/MM TOPIC][LSF/MM ATTEND] NAPI polling for block drivers
From: Sagi Grimberg <sagi@grimberg.me>
Date: 2017-01-18 15:14:36
Also in:
linux-nvme, linux-scsi
From: Sagi Grimberg <sagi@grimberg.me>
Date: 2017-01-18 15:14:36
Also in:
linux-nvme, linux-scsi
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.I think you missed: http://git.infradead.org/nvme.git/commit/49c91e3e09dc3c9dd1718df85112a8cce3ab7007