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 V2 00/20] lightnvm: pblk: implement 2.0 support Date: Wed, 21 Feb 2018 10:26:38 +0100 [thread overview] Message-ID: <1519205218-26994-1-git-send-email-javier@cnexlabs.com> (raw) Changes since V1: Apply Matias' feedback: - Rebase on top of Matias' latest patches. - Use nvme_get_log_ext to submit report chunk and export it. - Re-write report chunk based on Matias' suggestions. Here, I maintained the lba interface, but it was necessary to redo the address formatting to match the chunk log page format. For pblk, this means a double address transformation, but it enables the standard path to use lbas, plus, this is not in the fast path. - Fold address format together with address transformations. - Split the generic geometry patch in different patches. - Remove refactoring of ligthnvm's core sysfs. Feedback not applied: - Not letting pblk know about 1.2 and 2.0 bad block paths. Since the interfaces for get/set bad block and report chunk are so different, moving this logic to core adds assumptions on how the targets would want to get the data back. A way of doing this is creating a logical report chunk on the 1.2 path, but this would mean that values like the wear-index are invalid, which requires the target knowledge. I'm open to suggestions here. Also: - Do some further renamings - Create a generic address format to make it explicit where we share 1.2 and 2.0 fields to avoid address formatting in the fast path. - Add new fields to sysfs to complete spec and show major/minor versions (version and subversion to respect current interface). Implement 2.0 support in pblk. This includes the address formatting and mapping paths, as well as the sysfs entries for them. Javier Javier González (20): lightnvm: simplify geometry structure. lightnvm: add controller capabilities to 2.0 lightnvm: fix capabilities for 2.0 sysfs lightnvm: add minor version to generic geometry lightnvm: rename number of channels and luns lightnvm: add shorten OCSSD version in geo lightnvm: rename sect_* to sec_* lightnvm: complete geo structure with maxoc* lightnvm: use generic identify structure lightnvm: pblk: rename ppaf* to addrf* lightnvm: pblk: check for supported version lightnvm: complete 2.0 values in sysfs lightnvm: add support for 2.0 address format lightnvm: make address conversions depend on generic device nvme: make nvme_get_log_ext available lightnvm: implement get log report chunk helpers lightnvm: define chunk states lightnvm: pblk: implement get log report chunk lightnvm: pblk: refactor init/exit sequences lightnvm: pblk: implement 2.0 support drivers/lightnvm/core.c | 205 +++++----- drivers/lightnvm/pblk-core.c | 141 +++++-- drivers/lightnvm/pblk-gc.c | 2 +- drivers/lightnvm/pblk-init.c | 787 +++++++++++++++++++++++---------------- drivers/lightnvm/pblk-read.c | 2 +- drivers/lightnvm/pblk-recovery.c | 14 +- drivers/lightnvm/pblk-rl.c | 2 +- drivers/lightnvm/pblk-sysfs.c | 130 ++++++- drivers/lightnvm/pblk-write.c | 2 +- drivers/lightnvm/pblk.h | 253 +++++++++---- drivers/nvme/host/lightnvm.c | 480 ++++++++++++++++-------- drivers/nvme/host/nvme.h | 3 + include/linux/lightnvm.h | 338 +++++++++++------ 13 files changed, 1546 insertions(+), 813 deletions(-) -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: jg@lightnvm.io (Javier González) Subject: [PATCH V2 00/20] lightnvm: pblk: implement 2.0 support Date: Wed, 21 Feb 2018 10:26:38 +0100 [thread overview] Message-ID: <1519205218-26994-1-git-send-email-javier@cnexlabs.com> (raw) Changes since V1: Apply Matias' feedback: - Rebase on top of Matias' latest patches. - Use nvme_get_log_ext to submit report chunk and export it. - Re-write report chunk based on Matias' suggestions. Here, I maintained the lba interface, but it was necessary to redo the address formatting to match the chunk log page format. For pblk, this means a double address transformation, but it enables the standard path to use lbas, plus, this is not in the fast path. - Fold address format together with address transformations. - Split the generic geometry patch in different patches. - Remove refactoring of ligthnvm's core sysfs. Feedback not applied: - Not letting pblk know about 1.2 and 2.0 bad block paths. Since the interfaces for get/set bad block and report chunk are so different, moving this logic to core adds assumptions on how the targets would want to get the data back. A way of doing this is creating a logical report chunk on the 1.2 path, but this would mean that values like the wear-index are invalid, which requires the target knowledge. I'm open to suggestions here. Also: - Do some further renamings - Create a generic address format to make it explicit where we share 1.2 and 2.0 fields to avoid address formatting in the fast path. - Add new fields to sysfs to complete spec and show major/minor versions (version and subversion to respect current interface). Implement 2.0 support in pblk. This includes the address formatting and mapping paths, as well as the sysfs entries for them. Javier Javier Gonz?lez (20): lightnvm: simplify geometry structure. lightnvm: add controller capabilities to 2.0 lightnvm: fix capabilities for 2.0 sysfs lightnvm: add minor version to generic geometry lightnvm: rename number of channels and luns lightnvm: add shorten OCSSD version in geo lightnvm: rename sect_* to sec_* lightnvm: complete geo structure with maxoc* lightnvm: use generic identify structure lightnvm: pblk: rename ppaf* to addrf* lightnvm: pblk: check for supported version lightnvm: complete 2.0 values in sysfs lightnvm: add support for 2.0 address format lightnvm: make address conversions depend on generic device nvme: make nvme_get_log_ext available lightnvm: implement get log report chunk helpers lightnvm: define chunk states lightnvm: pblk: implement get log report chunk lightnvm: pblk: refactor init/exit sequences lightnvm: pblk: implement 2.0 support drivers/lightnvm/core.c | 205 +++++----- drivers/lightnvm/pblk-core.c | 141 +++++-- drivers/lightnvm/pblk-gc.c | 2 +- drivers/lightnvm/pblk-init.c | 787 +++++++++++++++++++++++---------------- drivers/lightnvm/pblk-read.c | 2 +- drivers/lightnvm/pblk-recovery.c | 14 +- drivers/lightnvm/pblk-rl.c | 2 +- drivers/lightnvm/pblk-sysfs.c | 130 ++++++- drivers/lightnvm/pblk-write.c | 2 +- drivers/lightnvm/pblk.h | 253 +++++++++---- drivers/nvme/host/lightnvm.c | 480 ++++++++++++++++-------- drivers/nvme/host/nvme.h | 3 + include/linux/lightnvm.h | 338 +++++++++++------ 13 files changed, 1546 insertions(+), 813 deletions(-) -- 2.7.4
next reply other threads:[~2018-02-21 9:27 UTC|newest] Thread overview: 99+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-02-21 9:26 Javier González [this message] 2018-02-21 9:26 ` [PATCH V2 00/20] lightnvm: pblk: implement 2.0 support Javier González 2018-02-21 9:26 ` [PATCH 01/20] lightnvm: simplify geometry structure Javier González 2018-02-21 9:26 ` Javier González 2018-02-22 7:25 ` Matias Bjørling 2018-02-22 7:25 ` Matias Bjørling 2018-02-22 7:44 ` Javier Gonzalez 2018-02-22 7:44 ` Javier Gonzalez 2018-02-22 12:22 ` Matias Bjørling 2018-02-22 12:22 ` Matias Bjørling 2018-02-22 14:13 ` Javier Gonzalez 2018-02-22 14:13 ` Javier Gonzalez 2018-02-21 9:26 ` [PATCH 02/20] lightnvm: add controller capabilities to 2.0 Javier González 2018-02-21 9:26 ` Javier González 2018-02-22 7:26 ` Matias Bjørling 2018-02-22 7:26 ` Matias Bjørling 2018-02-21 9:26 ` [PATCH 03/20] lightnvm: fix capabilities for 2.0 sysfs Javier González 2018-02-21 9:26 ` Javier González 2018-02-22 7:28 ` Matias Bjørling 2018-02-22 7:28 ` Matias Bjørling 2018-02-22 7:47 ` Javier Gonzalez 2018-02-22 7:47 ` Javier Gonzalez 2018-02-22 9:39 ` Matias Bjørling 2018-02-22 9:39 ` Matias Bjørling 2018-02-22 10:25 ` Javier Gonzalez 2018-02-22 10:25 ` Javier Gonzalez 2018-02-22 10:25 ` Javier Gonzalez 2018-02-22 11:10 ` Matias Bjørling 2018-02-22 11:10 ` Matias Bjørling 2018-02-22 11:12 ` Javier Gonzalez 2018-02-22 11:12 ` Javier Gonzalez 2018-02-21 9:26 ` [PATCH 04/20] lightnvm: add minor version to generic geometry Javier González 2018-02-21 9:26 ` Javier González 2018-02-22 7:34 ` Matias Bjørling 2018-02-22 7:34 ` Matias Bjørling 2018-02-22 7:53 ` Javier González 2018-02-22 7:53 ` Javier González 2018-02-21 9:26 ` [PATCH 05/20] lightnvm: rename number of channels and luns Javier González 2018-02-21 9:26 ` Javier González 2018-02-21 9:26 ` [PATCH 06/20] lightnvm: add shorten OCSSD version in geo Javier González 2018-02-21 9:26 ` Javier González 2018-02-21 9:26 ` [PATCH 07/20] lightnvm: rename sect_* to sec_* Javier González 2018-02-21 9:26 ` Javier González 2018-02-22 7:43 ` Matias Bjørling 2018-02-22 7:43 ` Matias Bjørling 2018-02-21 9:26 ` [PATCH 08/20] lightnvm: complete geo structure with maxoc* Javier González 2018-02-21 9:26 ` Javier González 2018-02-22 7:45 ` Matias Bjørling 2018-02-22 7:45 ` Matias Bjørling 2018-02-22 7:55 ` Javier Gonzalez 2018-02-22 7:55 ` Javier Gonzalez 2018-02-22 9:45 ` Matias Bjørling 2018-02-22 9:45 ` Matias Bjørling 2018-02-22 9:52 ` Javier Gonzalez 2018-02-22 9:52 ` Javier Gonzalez 2018-02-22 10:00 ` Matias Bjørling 2018-02-22 10:00 ` Matias Bjørling 2018-02-22 10:03 ` Javier Gonzalez 2018-02-22 10:03 ` Javier Gonzalez 2018-02-21 9:26 ` [PATCH 09/20] lightnvm: use generic identify structure Javier González 2018-02-21 9:26 ` Javier González 2018-02-22 7:47 ` Matias Bjørling 2018-02-22 7:47 ` Matias Bjørling 2018-02-22 7:49 ` Javier González 2018-02-22 7:49 ` Javier González 2018-02-22 9:41 ` Matias Bjørling 2018-02-22 9:41 ` Matias Bjørling 2018-02-21 9:26 ` [PATCH 10/20] lightnvm: pblk: rename ppaf* to addrf* Javier González 2018-02-21 9:26 ` Javier González 2018-02-21 9:26 ` Javier González 2018-02-22 7:47 ` Matias Bjørling 2018-02-22 7:47 ` Matias Bjørling 2018-02-22 7:47 ` Matias Bjørling 2018-02-21 9:26 ` [PATCH 11/20] lightnvm: pblk: check for supported version Javier González 2018-02-21 9:26 ` Javier González 2018-02-22 7:48 ` Matias Bjørling 2018-02-22 7:48 ` Matias Bjørling 2018-02-21 9:26 ` [PATCH 12/20] lightnvm: complete 2.0 values in sysfs Javier González 2018-02-21 9:26 ` Javier González 2018-02-21 9:26 ` [PATCH 13/20] lightnvm: add support for 2.0 address format Javier González 2018-02-21 9:26 ` Javier González 2018-02-22 9:24 ` Matias Bjørling 2018-02-22 9:24 ` Matias Bjørling 2018-02-21 9:26 ` [PATCH 14/20] lightnvm: make address conversions depend on generic device Javier González 2018-02-21 9:26 ` Javier González 2018-02-21 9:26 ` [PATCH 15/20] nvme: make nvme_get_log_ext available Javier González 2018-02-21 9:26 ` Javier González 2018-02-21 9:26 ` [PATCH 16/20] lightnvm: implement get log report chunk helpers Javier González 2018-02-21 9:26 ` Javier González 2018-02-21 9:26 ` [PATCH 17/20] lightnvm: define chunk states Javier González 2018-02-21 9:26 ` Javier González 2018-02-21 9:26 ` [PATCH 18/20] lightnvm: pblk: implement get log report chunk Javier González 2018-02-21 9:26 ` Javier González 2018-02-21 9:26 ` [PATCH 19/20] lightnvm: pblk: refactor init/exit sequences Javier González 2018-02-21 9:26 ` Javier González 2018-02-21 9:26 ` [PATCH 20/20] lightnvm: pblk: implement 2.0 support Javier González 2018-02-21 9:26 ` Javier González 2018-02-21 14:30 ` Javier González 2018-02-21 14:30 ` Javier González
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=1519205218-26994-1-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: linkBe 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.