[PATCH v3 2/2] nvme: enable generic interface (/dev/ngXnY) for unknown command sets
Joel Granados
j.granados at samsung.com
Fri Jun 24 03:21:48 PDT 2022
On Thu, Jun 23, 2022 at 08:57:29AM -0600, Keith Busch wrote:
> On Thu, Jun 23, 2022 at 10:39:18AM +0200, Joel Granados wrote:
> > On Wed, Jun 22, 2022 at 02:20:05PM -0600, Keith Busch wrote:
> > > On Wed, Jun 22, 2022 at 03:55:56PM +0200, Joel Granados wrote:
> > > > static void nvme_validate_or_alloc_ns(struct nvme_ctrl *ctrl, unsigned nsid)
> > > > {
> > > > struct nvme_ns_ids ids = { };
> > > > - struct nvme_id_ns_cs_indep *id;
> > > > + struct nvme_id_ns_cs_indep *id_indep;
> > > > struct nvme_ns *ns;
> > > > - bool ready = true;
> > > >
> > > > if (nvme_identify_ns_descs(ctrl, nsid, &ids))
> > > > return;
> > > >
> > > > + if (nvme_identify_ns_cs_indep(ctrl, nsid, &id_indep))
> > > > + return;
> > > > +
> > >
> > > There's no check that the command-set-independent namespace identification is
> > > supported, so an error should be expected for many controllers instead of
> > > abandoning the namespace.
> > good catch. But is the error really necessary?
> > If the controller supports NVM or ZNS then we can continue with the
> > normal (command-set-dependent) namespace identification.
> >
> > I see two situations:
> >
> > 1. When we are dealing with NVM or ZNS command sets:
> > 1.1 Should bring up a block device regardless of supporting command-set-
> > independent namespace identification
> > 1.2 Time-to-ready will be used only if command-set-independent is
> > supported
> >
> > 2. When we are dealing with something that is not NVM nor ZNS:
> > 2.1 Should bring up a char device iff the command-set-independent
> > namespace identification is supported.
> > 2.2 Should abandon the namespace with a dev_warn if the
> > command-set-independent namespace identification is not supported.
> >
> > Am I missing something?
>
> I think your description sounds like what we want to happen, but that's not
> what the code does. When validating NVM or ZNS namespace, but the controller
> doesn't support CNS 8h, the code returns early instead of allocating the
> namespace.
Will update in V4 so it reflects required behavior. Just wanted to make
sure that the error was not necessary.
Thx
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-nvme/attachments/20220624/8838d4f3/attachment.sig>
More information about the Linux-nvme
mailing list