Re: [PATCH 06/17] block: introduce GENHD_FL_HIDDEN

2017-10-29 Thread Guan Junxiong
Hi Christoph, Mike and Hannes On 2017/10/29 18:01, Hannes Reinecke wrote: > After all, Linux is about choice, not about forcing users to do things > in one way only. I have added an option CONFIG_NVME_SHOW_CTRL_BLK_DEV to show per-controller block devices nodes. It is tested simply that dm-multi

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 06/17] block: introduce GENHD_FL_HIDDEN

2017-10-28 Thread Guan Junxiong
On 2017/10/28 15:42, Christoph Hellwig wrote: > On Sat, Oct 28, 2017 at 03:20:07PM +0800, Guan Junxiong wrote: >> Think of some current advanced features of DM-Multipath combined with >> multipath-tools >> such as path-latency priority grouping, intermittent IO error ac

Re: [PATCH 06/17] block: introduce GENHD_FL_HIDDEN

2017-10-28 Thread Guan Junxiong
Hi Christoph, On 2017/10/28 14:38, Christoph Hellwig wrote: > On Tue, Oct 24, 2017 at 05:40:00PM -0400, Mike Snitzer wrote: >> Having the NVme driver go to such lengths to hide its resources from >> upper layers is certainly the work of an evil genius experiencing some >> serious territorial issue

Re: nvme multipath support V4

2017-10-22 Thread Guan Junxiong
Hi Christoph, On 2017/10/19 0:52, Christoph Hellwig wrote: > Hi all, > > this series adds support for multipathing, that is accessing nvme > namespaces through multiple controllers to the nvme core driver. > > It is a very thin and efficient implementation that relies on > close cooperation wit

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

2017-08-29 Thread Guan Junxiong
On 2017/8/24 1:58, Christoph Hellwig wrote: > -static inline bool nvme_req_needs_retry(struct request *req) > +static bool nvme_failover_rq(struct request *req) > { > - if (blk_noretry_request(req)) > + struct nvme_ns *ns = req->q->queuedata; > + unsigned long flags; > + > + /* >

Re: [PATCH 07/10] nvme: track shared namespaces

2017-08-28 Thread Guan Junxiong
t;nguid, sizeof(new->nguid))) || memcmp() -> !memcmp > +(memchr_inv(new->eui64, 0, sizeof(new->eui64)) && > + memcmp(&new->eui64, &h->eui64, sizeof(new->eui64 memcmp() -> !memcmp Otherwise in this patch, looks good. Reviewed-by: Guan Junxiong

Re: [PATCH 07/10] nvme: track shared namespaces

2017-08-28 Thread Guan Junxiong
Hi, Christoph On 2017/8/28 22:30, Christoph Hellwig wrote: > On Mon, Aug 28, 2017 at 08:41:23PM +0800, Guan Junxiong wrote: >> If a namespace can be accessed by another subsystem, the above line >> will ignore such namespace. > And that's intentional. > As for the __

Re: [PATCH 07/10] nvme: track shared namespaces

2017-08-28 Thread Guan Junxiong
space. Or does the NVMe/NVMf specification constrain that any namespace can only be accessed by a subsystem? More comments after testing will be sent later. Thanks Guan Junxiong