mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Matias Bjørling" <mb@lightnvm.io>
To: axboe@fb.com
Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
	"Igor Konopko" <igor.j.konopko@intel.com>,
	"Matias Bjørling" <mb@lightnvm.io>
Subject: [GIT PULL 19/21] lightnvm: disable interleaved metadata
Date: Tue, 11 Dec 2018 20:16:25 +0100	[thread overview]
Message-ID: <20181211191627.15542-20-mb@lightnvm.io> (raw)
In-Reply-To: <20181211191627.15542-1-mb@lightnvm.io>

From: Igor Konopko <igor.j.konopko@intel.com>

Currently pblk only check the size of I/O metadata and does not take
into account if this metadata is in a separate buffer or interleaved
in a single metadata buffer.

In reality only the first scenario is supported, where second mode will
break pblk functionality during any IO operation.

This patch prevents pblk to be instantiated in case device only
supports interleaved metadata.

Reviewed-by: Javier González <javier@cnexlabs.com>
Signed-off-by: Igor Konopko <igor.j.konopko@intel.com>
Signed-off-by: Matias Bjørling <mb@lightnvm.io>
---
 drivers/lightnvm/pblk-init.c | 6 ++++++
 drivers/nvme/host/lightnvm.c | 1 +
 include/linux/lightnvm.h     | 1 +
 3 files changed, 8 insertions(+)

diff --git a/drivers/lightnvm/pblk-init.c b/drivers/lightnvm/pblk-init.c
index ff6a6df369c3..e8055b796381 100644
--- a/drivers/lightnvm/pblk-init.c
+++ b/drivers/lightnvm/pblk-init.c
@@ -1175,6 +1175,12 @@ static void *pblk_init(struct nvm_tgt_dev *dev, struct gendisk *tdisk,
 		return ERR_PTR(-EINVAL);
 	}
 
+	if (geo->ext) {
+		pblk_err(pblk, "extended metadata not supported\n");
+		kfree(pblk);
+		return ERR_PTR(-EINVAL);
+	}
+
 	spin_lock_init(&pblk->resubmit_lock);
 	spin_lock_init(&pblk->trans_lock);
 	spin_lock_init(&pblk->lock);
diff --git a/drivers/nvme/host/lightnvm.c b/drivers/nvme/host/lightnvm.c
index ba268d7cf141..f145fc0220d6 100644
--- a/drivers/nvme/host/lightnvm.c
+++ b/drivers/nvme/host/lightnvm.c
@@ -990,6 +990,7 @@ int nvme_nvm_register(struct nvme_ns *ns, char *disk_name, int node)
 	geo = &dev->geo;
 	geo->csecs = 1 << ns->lba_shift;
 	geo->sos = ns->ms;
+	geo->ext = ns->ext;
 
 	dev->q = q;
 	memcpy(dev->name, disk_name, DISK_NAME_LEN);
diff --git a/include/linux/lightnvm.h b/include/linux/lightnvm.h
index 7afedaddbd15..5d865a5d5cdc 100644
--- a/include/linux/lightnvm.h
+++ b/include/linux/lightnvm.h
@@ -357,6 +357,7 @@ struct nvm_geo {
 	u32	clba;		/* sectors per chunk */
 	u16	csecs;		/* sector size */
 	u16	sos;		/* out-of-band area size */
+	bool	ext;		/* metadata in extended data buffer */
 
 	/* device write constrains */
 	u32	ws_min;		/* minimum write size */
-- 
2.17.1


  parent reply	other threads:[~2018-12-11 19:17 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-11 19:16 [GIT PULL 00/21] lightnvm updates for 4.21 Matias Bjørling
2018-12-11 19:16 ` [GIT PULL 01/21] lightnvm: pblk: ignore the smeta oob area scan Matias Bjørling
2018-12-11 19:16 ` [GIT PULL 02/21] lightnvm: Fix uninitialized return value in nvm_get_chunk_meta() Matias Bjørling
2018-12-11 19:16 ` [GIT PULL 03/21] lightnvm: pblk: fix chunk close trace event check Matias Bjørling
2018-12-11 19:16 ` [GIT PULL 04/21] lightnvm: pblk: fix resubmission of overwritten write err lbas Matias Bjørling
2018-12-11 19:16 ` [GIT PULL 05/21] lightnvm: pblk: account for write error sectors in emeta Matias Bjørling
2018-12-11 19:16 ` [GIT PULL 06/21] lightnvm: pblk: stop writes gracefully when running out of lines Matias Bjørling
2018-12-11 19:16 ` [GIT PULL 07/21] lightnvm: pblk: set conservative threshold for user writes Matias Bjørling
2018-12-11 19:16 ` [GIT PULL 08/21] lightnvm: pblk: remove unused macro Matias Bjørling
2018-12-11 19:16 ` [GIT PULL 09/21] lightnvm: pblk: fix pblk_lines_init error handling path Matias Bjørling
2018-12-11 19:16 ` [GIT PULL 10/21] lightnvm: pblk: remove dead code in pblk_recov_l2p Matias Bjørling
2018-12-11 19:16 ` [GIT PULL 11/21] lightnvm: pblk: fix spelling in comment Matias Bjørling
2018-12-11 19:16 ` [GIT PULL 12/21] lightnvm: pblk: add lock protection to list operations Matias Bjørling
2018-12-11 19:16 ` [GIT PULL 13/21] lightnvm: pblk: add comments wrt locking in recovery path Matias Bjørling
2018-12-11 19:16 ` [GIT PULL 14/21] lightnvm: simplify geometry enumeration Matias Bjørling
2018-12-11 19:16 ` [GIT PULL 15/21] lightnvm: pblk: avoid ref warning on cache creation Matias Bjørling
2018-12-11 19:16 ` [GIT PULL 16/21] lightnvm: pblk: move lba list to partial read context Matias Bjørling
2018-12-11 19:16 ` [GIT PULL 17/21] lightnvm: pblk: add helpers for OOB metadata Matias Bjørling
2018-12-11 19:16 ` [GIT PULL 18/21] lightnvm: dynamic DMA pool entry size Matias Bjørling
2018-12-11 19:16 ` Matias Bjørling [this message]
2018-12-11 19:16 ` [GIT PULL 20/21] lightnvm: pblk: support packed metadata Matias Bjørling
2018-12-11 19:16 ` [GIT PULL 21/21] lightnvm: pblk: do not overwrite ppa list with meta list Matias Bjørling
2018-12-11 19:23 ` [GIT PULL 00/21] lightnvm updates for 4.21 Jens Axboe

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=20181211191627.15542-20-mb@lightnvm.io \
    --to=mb@lightnvm.io \
    --cc=axboe@fb.com \
    --cc=igor.j.konopko@intel.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®