All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Javier González" <jg@lightnvm.io>
To: mb@lightnvm.io
Cc: linux-block@vger.kernel.org,
	"Javier González" <javier@cnexlabs.com>,
	linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org
Subject: [PATCH 16/19] lightnvm: define chunk states
Date: Mon, 26 Feb 2018 14:17:15 +0100	[thread overview]
Message-ID: <1519651038-16845-17-git-send-email-javier@cnexlabs.com> (raw)
In-Reply-To: <1519651038-16845-1-git-send-email-javier@cnexlabs.com>

RGVmaW5lIGNodW5rIHN0YXRlcyBhcyBnaXZlbiBpbiB0aGUgMi4wIHNwZWMuIEFsc28sIGFkZCBh
biBleHRyYSBjaHVuawpzdGF0ZSB0aGF0IHNpZ25hbHMgdGhhdCB0aGUgY2h1bmsgaXMgaW4gdXNl
IGJ5IHRoZSBob3N0LiBUaGlzIGFsbG93cyBmb3IKdGhlIGNodW5rIG1ldGFkYXRhIHRvIGJlICJv
d25lZCIgYnkgYSB0YXJnZXQgd2hlbiBhY3RpdmUsIHRodXMKY29tcGxldGluZyB0aGUgY2h1bmsg
c3RhdGUgbWFjaGluZSBmcm9tIHRoZSBob3N0IHBlcnNwZWN0aXZlIGFuZApmYWNpbGl0YXRpbmcg
c2FuaXR5IGNoZWNrcy4gVGhpcyBzdGF0ZSBpcyB0cmFuc3BhcmVudCBmb3IgdGhlIGRldmljZS4K
ClNpZ25lZC1vZmYtYnk6IEphdmllciBHb256w6FsZXogPGphdmllckBjbmV4bGFicy5jb20+Ci0t
LQogaW5jbHVkZS9saW51eC9saWdodG52bS5oIHwgMTQgKysrKysrKysrKysrKysKIDEgZmlsZSBj
aGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9saWdo
dG52bS5oIGIvaW5jbHVkZS9saW51eC9saWdodG52bS5oCmluZGV4IDc3NmZmZGMyZTEzNy4uNzQ4
MzBkNWRiZDZlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2xpZ2h0bnZtLmgKKysrIGIvaW5j
bHVkZS9saW51eC9saWdodG52bS5oCkBAIC0yMzIsNiArMjMyLDIwIEBAIHN0cnVjdCBudm1fYWRk
cl9mb3JtYXQgewogCXU2NAlyc3ZfbWFza1syXTsKIH07CiAKK2VudW0geworCS8qIENodW5rIHN0
YXRlcyAqLworCU5WTV9DSEtfU1RfRlJFRSA9CTEgPDwgMCwKKwlOVk1fQ0hLX1NUX0NMT1NFRCA9
CTEgPDwgMSwKKwlOVk1fQ0hLX1NUX09QRU4gPQkxIDw8IDIsCisJTlZNX0NIS19TVF9PRkZMSU5F
ID0JMSA8PCAzLAorCU5WTV9DSEtfU1RfSE9TVF9VU0UgPQkxIDw8IDcsCisKKwkvKiBDaHVuayB0
eXBlcyAqLworCU5WTV9DSEtfVFBfV19TRVEgPQkxIDw8IDAsCisJTlZNX0NIS19UUF9XX1JBTiA9
CTEgPDwgMSwKKwlOVk1fQ0hLX1RQX1NaX1NQRUMgPQkxIDw8IDQsCit9OworCiAvKgogICogTm90
ZTogVGhlIHN0cnVjdHVyZSBzaXplIGlzIGxpbmtlZCB0byBudm1lX252bV9jaGtfbWV0YSBzdWNo
IHRoYXQgdGhlIHNhbWUKICAqIGJ1ZmZlciBjYW4gYmUgdXNlZCB3aGVuIGNvbnZlcnRpbmcgZnJv
bSBsaXR0bGUgZW5kaWFuIHRvIGNwdSBhZGRyZXNzaW5nLgotLSAKMi43LjQKCgpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1udm1lIG1haWxpbmcg
bGlzdApMaW51eC1udm1lQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh
ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1udm1lCg==

WARNING: multiple messages have this Message-ID (diff)
From: "Javier González" <jg@lightnvm.io>
To: mb@lightnvm.io
Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-nvme@lists.infradead.org,
	"Javier González" <javier@cnexlabs.com>
Subject: [PATCH 16/19] lightnvm: define chunk states
Date: Mon, 26 Feb 2018 14:17:15 +0100	[thread overview]
Message-ID: <1519651038-16845-17-git-send-email-javier@cnexlabs.com> (raw)
In-Reply-To: <1519651038-16845-1-git-send-email-javier@cnexlabs.com>

Define chunk states as given in the 2.0 spec. Also, add an extra chunk
state that signals that the chunk is in use by the host. This allows for
the chunk metadata to be "owned" by a target when active, thus
completing the chunk state machine from the host perspective and
facilitating sanity checks. This state is transparent for the device.

Signed-off-by: Javier González <javier@cnexlabs.com>
---
 include/linux/lightnvm.h | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/include/linux/lightnvm.h b/include/linux/lightnvm.h
index 776ffdc2e137..74830d5dbd6e 100644
--- a/include/linux/lightnvm.h
+++ b/include/linux/lightnvm.h
@@ -232,6 +232,20 @@ struct nvm_addr_format {
 	u64	rsv_mask[2];
 };
 
+enum {
+	/* Chunk states */
+	NVM_CHK_ST_FREE =	1 << 0,
+	NVM_CHK_ST_CLOSED =	1 << 1,
+	NVM_CHK_ST_OPEN =	1 << 2,
+	NVM_CHK_ST_OFFLINE =	1 << 3,
+	NVM_CHK_ST_HOST_USE =	1 << 7,
+
+	/* Chunk types */
+	NVM_CHK_TP_W_SEQ =	1 << 0,
+	NVM_CHK_TP_W_RAN =	1 << 1,
+	NVM_CHK_TP_SZ_SPEC =	1 << 4,
+};
+
 /*
  * Note: The structure size is linked to nvme_nvm_chk_meta such that the same
  * buffer can be used when converting from little endian to cpu addressing.
-- 
2.7.4

WARNING: multiple messages have this Message-ID (diff)
From: jg@lightnvm.io (Javier González)
Subject: [PATCH 16/19] lightnvm: define chunk states
Date: Mon, 26 Feb 2018 14:17:15 +0100	[thread overview]
Message-ID: <1519651038-16845-17-git-send-email-javier@cnexlabs.com> (raw)
In-Reply-To: <1519651038-16845-1-git-send-email-javier@cnexlabs.com>

Define chunk states as given in the 2.0 spec. Also, add an extra chunk
state that signals that the chunk is in use by the host. This allows for
the chunk metadata to be "owned" by a target when active, thus
completing the chunk state machine from the host perspective and
facilitating sanity checks. This state is transparent for the device.

Signed-off-by: Javier Gonz?lez <javier at cnexlabs.com>
---
 include/linux/lightnvm.h | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/include/linux/lightnvm.h b/include/linux/lightnvm.h
index 776ffdc2e137..74830d5dbd6e 100644
--- a/include/linux/lightnvm.h
+++ b/include/linux/lightnvm.h
@@ -232,6 +232,20 @@ struct nvm_addr_format {
 	u64	rsv_mask[2];
 };
 
+enum {
+	/* Chunk states */
+	NVM_CHK_ST_FREE =	1 << 0,
+	NVM_CHK_ST_CLOSED =	1 << 1,
+	NVM_CHK_ST_OPEN =	1 << 2,
+	NVM_CHK_ST_OFFLINE =	1 << 3,
+	NVM_CHK_ST_HOST_USE =	1 << 7,
+
+	/* Chunk types */
+	NVM_CHK_TP_W_SEQ =	1 << 0,
+	NVM_CHK_TP_W_RAN =	1 << 1,
+	NVM_CHK_TP_SZ_SPEC =	1 << 4,
+};
+
 /*
  * Note: The structure size is linked to nvme_nvm_chk_meta such that the same
  * buffer can be used when converting from little endian to cpu addressing.
-- 
2.7.4

  parent reply	other threads:[~2018-02-26 13:17 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-26 13:16 [PATCH V3 00/19] lightnvm: pblk: implement 2.0 support Javier González
2018-02-26 13:16 ` Javier González
2018-02-26 13:16 ` Javier González
2018-02-26 13:17 ` [PATCH 01/19] lightnvm: simplify geometry structure Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17 ` [PATCH 02/19] lightnvm: add controller capabilities to 2.0 Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17 ` [PATCH 03/19] lightnvm: add minor version to generic geometry Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17 ` [PATCH 04/19] lightnvm: add shorten OCSSD version in geo Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17 ` [PATCH 05/19] lightnvm: complete geo structure with maxoc* Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17 ` [PATCH 06/19] lightnvm: pblk: check for supported version Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17 ` [PATCH 07/19] lightnvm: complete 2.0 values in sysfs Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17 ` [PATCH 08/19] lightnvm: rename number of channels and luns Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17 ` [PATCH 09/19] lightnvm: rename sect_* to sec_* Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17 ` [PATCH 10/19] lightnvm: add support for 2.0 address format Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17 ` [PATCH 11/19] lightnvm: pblk: rename ppaf* to addrf* Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17 ` [PATCH 12/19] lightnvn: pblk: use generic address format Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17 ` [PATCH 13/19] lightnvm: make address conversions depend on generic device Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17 ` [PATCH 14/19] nvme: make nvme_get_log_ext available Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17 ` [PATCH 15/19] lightnvm: implement get log report chunk helpers Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17 ` Javier González [this message]
2018-02-26 13:17   ` [PATCH 16/19] lightnvm: define chunk states Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17 ` [PATCH 17/19] lightnvm: pblk: implement get log report chunk Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 19:04   ` Matias Bjørling
2018-02-26 19:04     ` Matias Bjørling
2018-02-27 14:40     ` Javier González
2018-02-27 14:40       ` Javier González
2018-02-27 18:46       ` Matias Bjørling
2018-02-27 18:46         ` Matias Bjørling
2018-02-27 19:50         ` Javier González
2018-02-27 19:50           ` Javier González
2018-02-26 13:17 ` [PATCH 18/19] lightnvm: pblk: refactor init/exit sequences Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 13:17 ` [PATCH 19/19] lightnvm: pblk: implement 2.0 support Javier González
2018-02-26 13:17   ` Javier González
2018-02-26 18:19 ` [PATCH V3 00/19] " Matias Bjørling
2018-02-26 18:19   ` Matias Bjørling
2018-02-26 18:21   ` Javier Gonzalez
2018-02-26 18:21     ` Javier Gonzalez
2018-02-26 18:24     ` Matias Bjørling
2018-02-26 18:24       ` Matias Bjørling
2018-02-26 18:27       ` Javier Gonzalez
2018-02-26 18:27         ` Javier Gonzalez
2018-02-26 18:33         ` Matias Bjørling
2018-02-26 18:33           ` Matias Bjørling

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=1519651038-16845-17-git-send-email-javier@cnexlabs.com \
    --to=jg@lightnvm.io \
    --cc=javier@cnexlabs.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=mb@lightnvm.io \
    /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.