Re: [PATCH 16/17] nvme: implement multipath access to nvme subsystems

2017-11-02 Thread Christoph Hellwig
On Mon, Oct 30, 2017 at 11:37:55AM +0800, Guan Junxiong wrote: > > + head->disk->flags = GENHD_FL_EXT_DEVT; > > + sprintf(head->disk->disk_name, "nvme%dn%d", > > + ctrl->subsys->instance, nsid); > > Is it okay to use head->instance instead of nsid for disk name nvme#n# ? > Be

Re: [PATCH 16/17] nvme: implement multipath access to nvme subsystems

2017-10-29 Thread Guan Junxiong
On 2017/10/23 22:51, Christoph Hellwig wrote: > @@ -2427,20 +2681,46 @@ static struct nvme_ns_head *nvme_alloc_ns_head(struct > nvme_ctrl *ctrl, > if (ret) { > dev_err(ctrl->device, > "duplicate IDs for nsid %d\n", nsid); > - goto out_free_he

Re: [PATCH 16/17] nvme: implement multipath access to nvme subsystems

2017-10-27 Thread Christoph Hellwig
> Sure this works? It does. > nvme_req_needs_retry() checks blk_noretry_request(): > The original idea here was to _set_ these bits on multipath path devices > so that they won't attempt any retry, but rather forward the I/O error > to the multipath device itself for failover. > So if these bits

Re: [PATCH 16/17] nvme: implement multipath access to nvme subsystems

2017-10-24 Thread Hannes Reinecke
On 10/23/2017 04:51 PM, Christoph Hellwig wrote: > This patch adds native multipath support to the nvme driver. For each > namespace we create only single block device node, which can be used > to access that namespace through any of the controllers that refer to it. > The gendisk for each control

Re: [PATCH 16/17] nvme: implement multipath access to nvme subsystems

2017-10-23 Thread Sagi Grimberg
static inline bool nvme_req_needs_retry(struct request *req) { if (blk_noretry_request(req)) @@ -143,6 +204,11 @@ static inline bool nvme_req_needs_retry(struct request *req) void nvme_complete_rq(struct request *req) { if (unlikely(nvme_req(req)->status && nvme_req_need

Re: [PATCH 16/17] nvme: implement multipath access to nvme subsystems

2017-10-23 Thread Christoph Hellwig
On Mon, Oct 23, 2017 at 06:32:47PM +0300, Sagi Grimberg wrote: >> struct nvme_queue *nvmeq = hctx->driver_data; >> + printk_ratelimited("%s: called\n", __func__); >> + > > This must be a left-over... Indeed, it is a left-over debug statement..

Re: [PATCH 16/17] nvme: implement multipath access to nvme subsystems

2017-10-23 Thread Sagi Grimberg
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index 7735571ffc9a..bbece5edabff 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -1050,6 +1050,8 @@ static int nvme_poll(struct blk_mq_hw_ctx *hctx, unsigned int tag) { struct nvme_queue *nvmeq = hctx

[PATCH 16/17] nvme: implement multipath access to nvme subsystems

2017-10-23 Thread Christoph Hellwig
This patch adds native multipath support to the nvme driver. For each namespace we create only single block device node, which can be used to access that namespace through any of the controllers that refer to it. The gendisk for each controllers path to the name space still exists inside the kerne

[PATCH 16/17] nvme: implement multipath access to nvme subsystems

2017-10-18 Thread Christoph Hellwig
This patch adds native multipath support to the nvme driver. For each namespace we create only single block device node, which can be used to access that namespace through any of the controllers that refer to it. The gendisk for each controllers path to the name space still exists inside the kerne