All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Keith Busch <keith.busch@linux.intel.com>
Cc: Christoph Hellwig <hch@lst.de>,
	linux-nvme@lists.infradead.org, Jens Axboe <axboe@kernel.dk>,
	Keith Busch <keith.busch@intel.com>,
	linux-block@vger.kernel.org, Sagi Grimberg <sagi@grimberg.me>,
	Hannes Reinecke <hare@suse.de>
Subject: Re: [PATCH 13/14] nvme: use the changed namespaces list log to clear ns data changed AENs
Date: Tue, 5 Jun 2018 06:47:33 +0200	[thread overview]
Message-ID: <20180605044733.GA29448@lst.de> (raw)
In-Reply-To: <20180604195908.GC8205@localhost.localdomain>

On Mon, Jun 04, 2018 at 01:59:09PM -0600, Keith Busch wrote:
> > Per section 5.2 we need to issue the corresponding log page to clear an
> > AEN, so for a namespace data changed AEN we need to read the changed
> > namespace list log.  And once we read that log anyway we might as well
> > use it to optimize the rescan.
> > 
> > Signed-off-by: Christoph Hellwig <hch@lst.de>
> 
> I'm a little concerned about this. Userspace might be reading the same
> log page. Since the contents of the page may change each time its read,
> it's possible the driver will see only a subset of changed namespaces
> at the point it gets to read the log page, missing a chance to
> revalidate others.

I agree with the concern, but I don't think it really is uniqueue here.
We allow userspace to send all kind sof harmful commands, even queue
for queue creation and deletion.

But let's assume we don't want to use the list due to this concern:
we'd still have to read the log page, as per the NVMe spec the only
think clearing a pending AEN is reading the associated log page.
We'd then need to still do the full scan using identify.  Is this what
we want?  If you think this is important for reliability we could
just ignore the log page.

WARNING: multiple messages have this Message-ID (diff)
From: hch@lst.de (Christoph Hellwig)
Subject: [PATCH 13/14] nvme: use the changed namespaces list log to clear ns data changed AENs
Date: Tue, 5 Jun 2018 06:47:33 +0200	[thread overview]
Message-ID: <20180605044733.GA29448@lst.de> (raw)
In-Reply-To: <20180604195908.GC8205@localhost.localdomain>

On Mon, Jun 04, 2018@01:59:09PM -0600, Keith Busch wrote:
> > Per section 5.2 we need to issue the corresponding log page to clear an
> > AEN, so for a namespace data changed AEN we need to read the changed
> > namespace list log.  And once we read that log anyway we might as well
> > use it to optimize the rescan.
> > 
> > Signed-off-by: Christoph Hellwig <hch at lst.de>
> 
> I'm a little concerned about this. Userspace might be reading the same
> log page. Since the contents of the page may change each time its read,
> it's possible the driver will see only a subset of changed namespaces
> at the point it gets to read the log page, missing a chance to
> revalidate others.

I agree with the concern, but I don't think it really is uniqueue here.
We allow userspace to send all kind sof harmful commands, even queue
for queue creation and deletion.

But let's assume we don't want to use the list due to this concern:
we'd still have to read the log page, as per the NVMe spec the only
think clearing a pending AEN is reading the associated log page.
We'd then need to still do the full scan using identify.  Is this what
we want?  If you think this is important for reliability we could
just ignore the log page.

  reply	other threads:[~2018-06-05  4:47 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-26 10:27 nvme/nvmet AEN and log page fixups Christoph Hellwig
2018-05-26 10:27 ` Christoph Hellwig
2018-05-26 10:27 ` [PATCH 01/14] block: unexport check_disk_size_change Christoph Hellwig
2018-05-26 10:27   ` Christoph Hellwig
2018-05-28  6:33   ` Johannes Thumshirn
2018-05-28  6:33     ` Johannes Thumshirn
2018-05-26 10:27 ` [PATCH 02/14] block: don't print a message when the device went away Christoph Hellwig
2018-05-26 10:27   ` Christoph Hellwig
2018-05-28  6:34   ` Johannes Thumshirn
2018-05-28  6:34     ` Johannes Thumshirn
2018-05-26 10:27 ` [PATCH 03/14] nvme.h: untangle AEN notice definitions Christoph Hellwig
2018-05-26 10:27   ` Christoph Hellwig
2018-05-28  6:35   ` Johannes Thumshirn
2018-05-28  6:35     ` Johannes Thumshirn
2018-05-26 10:27 ` [PATCH 04/14] nvme.h: add the changed namespace list log Christoph Hellwig
2018-05-26 10:27   ` Christoph Hellwig
2018-05-28  6:35   ` Johannes Thumshirn
2018-05-28  6:35     ` Johannes Thumshirn
2018-05-26 10:27 ` [PATCH 05/14] nvme.h: add AER configuration symbols Christoph Hellwig
2018-05-26 10:27   ` Christoph Hellwig
2018-05-28  6:35   ` Johannes Thumshirn
2018-05-28  6:35     ` Johannes Thumshirn
2018-05-26 10:27 ` [PATCH 06/14] nvmet: add a new nvmet_zero_sgl helper Christoph Hellwig
2018-05-26 10:27   ` Christoph Hellwig
2018-05-28  6:36   ` Johannes Thumshirn
2018-05-28  6:36     ` Johannes Thumshirn
2018-05-29  8:13     ` Christoph Hellwig
2018-05-29  8:13       ` Christoph Hellwig
2018-05-26 10:27 ` [PATCH 07/14] nvmet: split log page implementation Christoph Hellwig
2018-05-26 10:27   ` Christoph Hellwig
2018-05-28  6:38   ` Johannes Thumshirn
2018-05-28  6:38     ` Johannes Thumshirn
2018-05-26 10:27 ` [PATCH 08/14] nvmet: implement the changed namespaces log Christoph Hellwig
2018-05-26 10:27   ` Christoph Hellwig
2018-05-28  6:53   ` Johannes Thumshirn
2018-05-28  6:53     ` Johannes Thumshirn
2018-05-29  8:17     ` Christoph Hellwig
2018-05-29  8:17       ` Christoph Hellwig
2018-05-29  8:16       ` Johannes Thumshirn
2018-05-29  8:16         ` Johannes Thumshirn
2018-05-29  8:24         ` Christoph Hellwig
2018-05-29  8:24           ` Christoph Hellwig
2018-05-29 16:59   ` Verkamp, Daniel
2018-05-29 16:59     ` Verkamp, Daniel
2018-05-29 17:24     ` Christoph Hellwig
2018-05-29 17:24       ` Christoph Hellwig
2018-05-29 20:44       ` Daniel Verkamp
2018-05-29 20:44         ` Daniel Verkamp
2018-05-26 10:27 ` [PATCH 09/14] nvmet: Add AEN configuration support Christoph Hellwig
2018-05-26 10:27   ` Christoph Hellwig
2018-05-28  6:54   ` Johannes Thumshirn
2018-05-28  6:54     ` Johannes Thumshirn
2018-05-29 17:15   ` Verkamp, Daniel
2018-05-29 17:15     ` Verkamp, Daniel
2018-05-29 17:29     ` Christoph Hellwig
2018-05-29 17:29       ` Christoph Hellwig
2018-05-29 17:35       ` Verkamp, Daniel
2018-05-29 17:35         ` Verkamp, Daniel
2018-05-29 17:45         ` Christoph Hellwig
2018-05-29 17:45           ` Christoph Hellwig
2018-05-26 10:27 ` [PATCH 10/14] nvmet: mask pending AERs Christoph Hellwig
2018-05-26 10:27   ` Christoph Hellwig
2018-05-28  6:56   ` Johannes Thumshirn
2018-05-28  6:56     ` Johannes Thumshirn
2018-05-26 10:27 ` [PATCH 11/14] nvme: submit AEN event configuration on startup Christoph Hellwig
2018-05-26 10:27   ` Christoph Hellwig
2018-05-28  6:56   ` Johannes Thumshirn
2018-05-28  6:56     ` Johannes Thumshirn
2018-05-26 10:27 ` [PATCH 12/14] nvme: mark nvme_queue_scan static Christoph Hellwig
2018-05-26 10:27   ` Christoph Hellwig
2018-05-28  6:57   ` Johannes Thumshirn
2018-05-28  6:57     ` Johannes Thumshirn
2018-05-26 10:27 ` [PATCH 13/14] nvme: use the changed namespaces list log to clear ns data changed AENs Christoph Hellwig
2018-05-26 10:27   ` Christoph Hellwig
2018-05-26 12:05   ` Popuri, Sriram
2018-05-26 12:05     ` Popuri, Sriram
2018-05-26 12:21     ` Christoph Hellwig
2018-05-26 12:21       ` Christoph Hellwig
2018-05-26 13:02       ` Knight, Frederick
2018-05-28  6:59   ` Johannes Thumshirn
2018-05-28  6:59     ` Johannes Thumshirn
2018-06-04 19:59   ` Keith Busch
2018-06-04 19:59     ` Keith Busch
2018-06-05  4:47     ` Christoph Hellwig [this message]
2018-06-05  4:47       ` Christoph Hellwig
2018-06-05 14:37       ` Keith Busch
2018-06-05 14:37         ` Keith Busch
2018-05-26 10:27 ` [PATCH 14/14] nvme: limit warnings from nvme_identify_ns Christoph Hellwig
2018-05-26 10:27   ` Christoph Hellwig
2018-05-28  7:00   ` Johannes Thumshirn
2018-05-28  7:00     ` Johannes Thumshirn

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=20180605044733.GA29448@lst.de \
    --to=hch@lst.de \
    --cc=axboe@kernel.dk \
    --cc=hare@suse.de \
    --cc=keith.busch@intel.com \
    --cc=keith.busch@linux.intel.com \
    --cc=linux-block@vger.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.