All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Knight, Frederick" <Frederick.Knight@netapp.com>
To: "Meneghini, John" <John.Meneghini@netapp.com>,
	"hch@lst.de" <hch@lst.de>,
	 "George, Martin" <Martin.George@netapp.com>
Cc: "kbusch@kernel.org" <kbusch@kernel.org>,
	Hannes Reinecke <hare@suse.com>,
	"sagi@grimberg.me" <sagi@grimberg.me>,
	"linux-nvme@lists.infradead.org" <linux-nvme@lists.infradead.org>
Subject: RE: [PATCH] nvme-core: update NS Attr Changed AEN handling for ANA group
Date: Mon, 23 Nov 2020 15:27:35 +0000	[thread overview]
Message-ID: <DM5PR0601MB362496D2C29A18B3B1B77A61F1FC0@DM5PR0601MB3624.namprd06.prod.outlook.com> (raw)
In-Reply-To: <185CE0F5-617A-4446-A5C6-86A832D5A188@netapp.com>

Here is what I would expect to:
A) create a namespace in existing ANA group:
	1) NS Attribute Changed AEN (because the NS List returned has changed)
	2) Host gets the list - discovers the NEW NS
		Including: Determine which ANAGRPID that NS belongs to (for which the host already knows the state).

B) create a namespace in a NEW ANA group
	1) NS Attribute Changed AEN (because the NS List returned has changed)
	2) Host gets the list - discovers the new NS
		Including: Determine there is a BRAND NEW ANAGRPID that the host knows NOTHING about.
		Since the host knows NOTHING about that ANAGRPID, it seems the host should go look.

It seems that the existing text says there is NO ANA AEN for a "new" namespace.  John quoted the text:

A controller shall not send this event if:
a)	the change is due to the creation of a namespace (refer to section 5.20); or
b)	the change is due to the deletion of a namespace (refer to section 5.20),
as the Namespace Attribute Changed event is sent for these changes.

Christoph claims that the ANA AEN should be send before the NS Attribute Changed AEN.  And, that could be true for an ANAGRPID that changed (although, I don't see text describing any precedence or order requirements for delivery of AENs), but the NS creation case is explicitly excluded.  FWIW – Christoph was one of the people that requested this exclusion to prevent spaming the host with multiple AENs for the same event (a NS create).

	Fred

-----Original Message-----
From: Meneghini, John <John.Meneghini@netapp.com> 
Sent: Monday, November 23, 2020 9:36 AM
To: hch@lst.de; George, Martin <Martin.George@netapp.com>
Cc: kbusch@kernel.org; linux-nvme@lists.infradead.org; sagi@grimberg.me; Meneghini, John <John.Meneghini@netapp.com>; Knight, Frederick <Frederick.Knight@netapp.com>; Hannes Reinecke <hare@suse.com>
Subject: Re: [PATCH] nvme-core: update NS Attr Changed AEN handling for ANA group

On 11/20/20, 4:49 AM, "Linux-nvme on behalf of mailto:hch@lst.de" <mailto:linux-nvme-bounces@lists.infradead.org on behalf of hch@lst.de> wrote:

    On Wed, Nov 18, 2020 at 08:09:43PM +0000, George, Martin wrote:
    > > How can the namespace reference an ANA group that we haven't been
    > > notified about using the NVME_AEN_CFG_ANA_CHANGE AEN before?
    >
    > Well, I think that could be possible for a newly created namespace,
    > which happens to belong to a new ANA group. To quote the 1.4 spec in
    > context of Asymmetric Namespace Access Change under the Asynchronous
    > Event Information - Notice (Figure 147):
    >
    > "A controller shall not send this event if:
    > a) the change is due to the creation of a namespace (refer to section
    > 5.20); or
    > b) the change is due to the deletion of a namespace (refer to section
    > 5.20),
    > as the Namespace Attribute Changed event is sent for these changes."
    >
    > So it looks the NVME_AEN_CFG_ANA_CHANGE AEN is not required here for
    > such cases, but instead the NVME_AEN_CFG_NS_ATTR AEN would do.

    For the newly created namespace to beong to a newly created ANA group
    the controller first needs to send NVME_AEN_CFG_ANA_CHANGE to announce
    the ANA group, it then send NVME_AEN_CFG_NS_ATTR to announce the
    new namespaces.  But the new namespace can't reference an ANA group
    that didn't exist, that is a separate event.

I remember discussing this at length when we wrote this text for TP-4004.   We explicitly restricted  NVME_AEN_CFG_ANA_CHANGE AENs to ANA state change events, and ANAGRPID change events.  And we restricted NVME_AEN_CFG_NS_ATTR AENs so that ANA state/ANAGRPID change events would not generate an NVME_AEN_CFG_NS_ATTR.  We did this so as to avoid duplicate AENs. The discovery of new ANAGRP IDs was always supposed to take place as a part of namespace discovery.  

/John

Figure 49: Asynchronous Event Information - Notice

Namespace Attribute Changed:
...
A controller shall not send this event if:
   a) Namespace Utilization (refer to Figure 114) has changed, as this is a frequent event that does not require action by the host;
   b) the ANAGRPID field (refer to Figure 114) has changed; or
   c) capacity information (i.e., the NUSE field and the NVMCAP field) returned in the Identify Namespace Data Structure (refer to Figure 114) changed as a result of an ANA state change.
...

Asymmetric Namespace Access Change: 

The Asymmetric Namespace Access information (refer to section 5.14.1.12) related to an ANA Group that contains namespaces attached to this controller has changed (e.g., an ANA state has changed, an ANAGRPID has changed). The current Asymmetric Namespace Access information for attached namespaces is indicated in the Asymmetric Namespace Access log page (refer to section 5.14.1.12). To clear this event, the host issues a Get Log Page with Retain Asynchronous Event cleared to ‘0’ for the Asymmetric Namespace Access Log.

A controller shall not send this event if:
   a) the change is due to the creation of a namespace (refer to section 5.20); or
   b) the change is due to the deletion of a namespace (refer to section 5.20), as the Namespace Attribute Changed event is sent for these changes.

    _______________________________________________
    Linux-nvme mailing list
    mailto:Linux-nvme@lists.infradead.org
    http://lists.infradead.org/mailman/listinfo/linux-nvme


_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

  reply	other threads:[~2020-11-23 15:27 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20201118114859.7985-1-marting@netapp.com>
2020-11-18 16:24 ` [PATCH] nvme-core: update NS Attr Changed AEN handling for ANA group Christoph Hellwig
2020-11-18 20:09   ` George, Martin
2020-11-20  9:44     ` hch
2020-11-23 14:35       ` Meneghini, John
2020-11-23 15:27         ` Knight, Frederick [this message]
2020-11-23 15:54           ` Meneghini, John
2020-12-07 15:25           ` hch
2020-12-08 15:21             ` Knight, Frederick
2020-12-08 17:40               ` Keith Busch
2020-12-08 18:15                 ` Knight, Frederick
2020-12-08 18:34                   ` Keith Busch
2020-12-08 19:13                     ` Knight, Frederick
2020-12-08 21:46                       ` Keith Busch
2020-12-09  0:07                         ` Knight, Frederick
2020-12-09  0:20                           ` Keith Busch
2020-12-09  7:26                             ` Hannes Reinecke
2020-12-09  0:13                         ` Knight, Frederick
2020-12-09  7:28                           ` hch
2020-12-09 15:20                             ` Knight, Frederick
2020-12-09 15:53                               ` Keith Busch
2020-12-09 16:02                                 ` Hannes Reinecke
2020-12-09 16:19                                   ` Keith Busch
2020-12-09 17:04                                     ` Hannes Reinecke
2020-12-09 17:39                                       ` Keith Busch
2020-12-09 17:47                                         ` hch
2020-12-09 20:58                                           ` Knight, Frederick
2020-12-09 21:34                                             ` Keith Busch
2020-12-10  8:51                                               ` hch
2020-12-10  9:13                                                 ` Hannes Reinecke
2020-12-10 13:34                                                   ` Keith Busch
2021-01-14  3:09                                                     ` Sagi Grimberg
2021-01-14 22:59                                                       ` Knight, Frederick
2021-01-14 23:16                                                         ` Keith Busch
2021-01-15  7:15                                                         ` Hannes Reinecke
2020-11-23 17:36       ` Keith Busch
2020-11-23 19:16         ` Sagi Grimberg
2020-11-23 19:29           ` George, Martin
2020-11-23 19:43             ` Keith Busch
2020-11-26 16:16               ` George, Martin
2020-12-04 14:40                 ` Hannes Reinecke
2020-11-18 16:51 ` Sagi Grimberg
2020-11-18 20:16   ` George, Martin
2020-11-20  9:46   ` Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DM5PR0601MB362496D2C29A18B3B1B77A61F1FC0@DM5PR0601MB3624.namprd06.prod.outlook.com \
    --to=frederick.knight@netapp.com \
    --cc=John.Meneghini@netapp.com \
    --cc=Martin.George@netapp.com \
    --cc=hare@suse.com \
    --cc=hch@lst.de \
    --cc=kbusch@kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=sagi@grimberg.me \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.