Re: [PATCH] drivers: virtio_blk: notify blk-core when hw-queue number changes

From: Paolo Bonzini
Date: Sat Jun 18 2016 - 18:10:44 EST




On 13/06/2016 11:58, Bob Liu wrote:
> A guest might be migrated to other hosts with different num_queues, the
> blk-core should aware of that else the reference of &vblk->vqs[qid] may be wrong.
>
> Signed-off-by: Bob Liu <bob.liu@xxxxxxxxxx>
> ---
> drivers/block/virtio_blk.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
> index 42758b5..c169238 100644
> --- a/drivers/block/virtio_blk.c
> +++ b/drivers/block/virtio_blk.c
> @@ -819,6 +819,9 @@ static int virtblk_restore(struct virtio_device *vdev)
> if (ret)
> return ret;
>
> + if (vblk->num_vqs != vblk->tag_set.nr_hw_queues)
> + blk_mq_update_nr_hw_queues(&vblk->tag_set, vblk->num_vqs);
> +
> virtio_device_ready(vdev);
>
> blk_mq_start_stopped_hw_queues(vblk->disk->queue, true);
>

This should never happen; it'd be a configuration problem.

Paolo