[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v5 13/15] block/nvme: Simplify nvme_create_queue_pair() argum
From: |
Stefano Garzarella |
Subject: |
Re: [PATCH v5 13/15] block/nvme: Simplify nvme_create_queue_pair() arguments |
Date: |
Fri, 21 Aug 2020 12:20:01 +0200 |
On Thu, Aug 20, 2020 at 06:58:59PM +0200, Philippe Mathieu-Daudé wrote:
> nvme_create_queue_pair() doesn't require BlockDriverState anymore.
> Replace it by BDRVNVMeState and AioContext to simplify.
>
> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
> block/nvme.c | 13 +++++++------
> 1 file changed, 7 insertions(+), 6 deletions(-)
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
>
> diff --git a/block/nvme.c b/block/nvme.c
> index 456fe61f5ea..1f67e888c84 100644
> --- a/block/nvme.c
> +++ b/block/nvme.c
> @@ -208,12 +208,12 @@ static void nvme_free_req_queue_cb(void *opaque)
> qemu_mutex_unlock(&q->lock);
> }
>
> -static NVMeQueuePair *nvme_create_queue_pair(BlockDriverState *bs,
> +static NVMeQueuePair *nvme_create_queue_pair(BDRVNVMeState *s,
> + AioContext *aio_context,
> int idx, int size,
> Error **errp)
> {
> int i, r;
> - BDRVNVMeState *s = bs->opaque;
> Error *local_err = NULL;
> NVMeQueuePair *q;
> uint64_t prp_list_iova;
> @@ -232,8 +232,7 @@ static NVMeQueuePair
> *nvme_create_queue_pair(BlockDriverState *bs,
> q->s = s;
> q->index = idx;
> qemu_co_queue_init(&q->free_req_queue);
> - q->completion_bh = aio_bh_new(bdrv_get_aio_context(bs),
> - nvme_process_completion_bh, q);
> + q->completion_bh = aio_bh_new(aio_context, nvme_process_completion_bh,
> q);
> r = qemu_vfio_dma_map(s->vfio, q->prp_list_pages,
> s->page_size * NVME_NUM_REQS,
> false, &prp_list_iova);
> @@ -637,7 +636,8 @@ static bool nvme_add_io_queue(BlockDriverState *bs, Error
> **errp)
> NvmeCmd cmd;
> int queue_size = NVME_QUEUE_SIZE;
>
> - q = nvme_create_queue_pair(bs, n, queue_size, errp);
> + q = nvme_create_queue_pair(s, bdrv_get_aio_context(bs),
> + n, queue_size, errp);
> if (!q) {
> return false;
> }
> @@ -683,6 +683,7 @@ static int nvme_init(BlockDriverState *bs, const char
> *device, int namespace,
> Error **errp)
> {
> BDRVNVMeState *s = bs->opaque;
> + AioContext *aio_context = bdrv_get_aio_context(bs);
> int ret;
> uint64_t cap;
> uint64_t timeout_ms;
> @@ -743,7 +744,7 @@ static int nvme_init(BlockDriverState *bs, const char
> *device, int namespace,
>
> /* Set up admin queue. */
> s->queues = g_new(NVMeQueuePair *, 1);
> - s->queues[INDEX_ADMIN] = nvme_create_queue_pair(bs, 0,
> + s->queues[INDEX_ADMIN] = nvme_create_queue_pair(s, aio_context, 0,
> NVME_QUEUE_SIZE,
> errp);
> if (!s->queues[INDEX_ADMIN]) {
> --
> 2.26.2
>
>