Re: [RESEND PATCH] xen/blkfront: convert to blk-mq APIs

From: Konrad Rzeszutek Wilk
Date: Fri Jul 10 2015 - 15:57:57 EST


On Mon, Jul 06, 2015 at 05:56:48PM +0800, Bob Liu wrote:
> From: Arianna Avanzini <avanzini.arianna@xxxxxxxxx>
>
> This patch converts xen-blkfront driver to use the block multiqueue APIs.
> Only one hardware queue is used now, so there is no performance change.
>
> The legacy non-mq code was deleted completely which is the same as other drivers
> like virtio, mtip, and nvme.
>
> Also dropped unnecessary holding of info->io_lock when calling into blk-mq APIs.

Yeey!

Two points:

- The io_lock is now used to guard against concurrent access to the ring.
We should rename it to 'ring_lock'.

- The kick_pending_request_queues should have an extra argument - 'bool locked'.
This is so that you don't drop and immediately grab the lock from the blkif_interrupt.

See:

> @@ -1243,9 +1243,8 @@ static irqreturn_t blkif_interrupt(int irq, void *dev_id)
> } else
> info->ring.sring->rsp_event = i + 1;
>
> - kick_pending_request_queues(info);
> -
> spin_unlock_irqrestore(&info->io_lock, flags);
> + kick_pending_request_queues(info);
>
> return IRQ_HANDLED;
> }

Otherwise Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/