qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v11 00/13] hw/block/nvme: Support Namespace Types and Zoned N


From: Keith Busch
Subject: Re: [PATCH v11 00/13] hw/block/nvme: Support Namespace Types and Zoned Namespace Command Set
Date: Fri, 5 Feb 2021 10:59:52 -0800

On Sat, Feb 06, 2021 at 01:48:29AM +0900, Minwoo Im wrote:
> Not sure if this is okay just give ctrl->tagset for the head
> request_queue, but this patch works fine as far.

Huh, that's probably not supposed to work: bio-based drivers should
never use tagsets.

Since this is getting a little more complicated, let's take it to the
kernel mailing lists. Meanwhile, I'll work on a proposal for there.
 
> ---
> diff --git a/drivers/nvme/host/multipath.c b/drivers/nvme/host/multipath.c
> index 282b7a4ea9a9..22febc7baa36 100644
> --- a/drivers/nvme/host/multipath.c
> +++ b/drivers/nvme/host/multipath.c
> @@ -375,7 +375,7 @@ int nvme_mpath_alloc_disk(struct nvme_ctrl *ctrl, struct 
> nvme_ns_head *head)
>         if (!(ctrl->subsys->cmic & NVME_CTRL_CMIC_MULTI_CTRL) || !multipath)
>                 return 0;
>  
> -       q = blk_alloc_queue(ctrl->numa_node);
> +       q = blk_mq_init_queue(ctrl->tagset);
>         if (!q)
>                 goto out;
>         blk_queue_flag_set(QUEUE_FLAG_NONROT, q);
> @@ -677,6 +677,8 @@ void nvme_mpath_add_disk(struct nvme_ns *ns, struct 
> nvme_id_ns *id)
>         if (blk_queue_stable_writes(ns->queue) && ns->head->disk)
>                 blk_queue_flag_set(QUEUE_FLAG_STABLE_WRITES,
>                                    ns->head->disk->queue);
> +       if (blk_queue_is_zoned(ns->queue))
> +               blk_revalidate_disk_zones(ns->head->disk, NULL);
>  }
>  
>  void nvme_mpath_remove_disk(struct nvme_ns_head *head)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]