[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190904155445.GD21302@localhost.localdomain>
Date: Wed, 4 Sep 2019 09:54:45 -0600
From: Keith Busch <kbusch@...nel.org>
To: Christoph Hellwig <hch@....de>
Cc: Jens Axboe <axboe@...com>, Hannes Reinecke <hare@...e.com>,
Sagi Grimberg <sagi@...mberg.me>,
"Martin K . Petersen" <martin.petersen@...cle.com>,
linux-kernel@...r.kernel.org, linux-nvme@...ts.infradead.org,
Keith Busch <keith.busch@...el.com>,
Logan Gunthorpe <logang@...tatee.com>
Subject: Re: [PATCH] nvme-core: Fix subsystem instance mismatches
On Wed, Sep 04, 2019 at 05:42:15PM +0200, Christoph Hellwig wrote:
> On Wed, Sep 04, 2019 at 08:44:27AM -0600, Keith Busch wrote:
> > Let me step through an example:
> >
> > Ctrl A gets instance 0.
> >
> > Its subsystem gets the same instance, and takes ref count on it:
> > all namespaces in this subsystem will use '0'.
> >
> > Ctrl B gets instance 1, and it's in the same subsystem as Ctrl A so
> > no new subsytem is allocated.
> >
> > Ctrl A is disconnected, dropping its ref on instance 0, but the
> > subsystem still has its refcount, making it unavailable.
> >
> > Ctrl A is reconnected, and allocates instance 2 because 0 is still in
> > use.
> >
> > Now all the namespaces in this subsystem are prefixed with nvme0, but no
> > controller exists with the same prefix. We still have inevitable naming
> > mismatch, right?
>
> I think th major confusion was that we can use the same handle for
> and unrelated subsystem vs controller, and that would avoid it.
>
> I don't see how we can avoid the controller is entirely different
> from namespace problem ever.
Can we just ensure there is never a matching controller then? This
patch will accomplish that and simpler than wrapping the instance in a
refcount'ed object:
http://lists.infradead.org/pipermail/linux-nvme/2019-May/024142.html
Powered by blists - more mailing lists