From: "Javier González" <jg@lightnvm.io>
To: mb@lightnvm.io, axboe@fb.com
Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
"Javier González" <javier@cnexlabs.com>
Subject: [PATCH 00/20] LightNVM: pblk patches for 4.13
Date: Mon, 26 Jun 2017 11:57:09 +0200 [thread overview]
Message-ID: <1498471049-25505-1-git-send-email-javier@cnexlabs.com> (raw)
Hi Matias,
Here you have the pblk patchset for this window.
Apart from small fixes for LightNVM core and pblk, there are three
relevant changes:
- Metadata for each line is no longer issued on a separate workqueue,
but instead, all I/Os are scheduled on the write thread. This allows
to have more control over LUN collisions. The result is that we can
use the full bandwidth of the device for user data. In the 4.12 pblk,
we use ~25% of the bandwidth for metadata.
- The rate-limiter and GC have been tuned to keep the GC writer busy.
Also, capacity per line is guaranteed for GC I/O as we reach
capacity.
- We have now a FTL state machine. This allows to fail gracefully to
user space in case of irrecoverable errors. This state machine will
be the base for the pblk's FTL log.
The patches apply into your for-4.13/core. You can also find them in:
https://github.com/OpenChannelSSD/linux.git pblk.for-4.13
Thanks,
Javier
Javier González (20):
lightnvm: re-convert ppa format on I/O failure
lightnvm: propagate right error code to target
lightnvm: pblk: spare double cpu_to_le64 calc.
lightnvm: pblk: add debug stat for read cache hits
lightnvm: pblk: expose max sec per write on sysfs
lightnvm: pblk: generalize erase path
lightnvm: pblk: rename read request pool
lightnvm: pblk: sched. metadata on write thread
lightnvm: pblk: delete redundant debug line stat
lightnvm: pblk: delete redundant buffer pointer
lightnvm: pblk: issue multiplane reads if possible
lightnvm: pblk: simplify meta. memory allocation
lightnvm: pblk: decouple bad block from line alloc
lightnvm: pblk: choose optimal victim GC line
lightnvm: pblk: set metadata list for all I/Os
lightnvm: pblk: cleanup unnecessary code
lightnvm: pblk: add lock assertions on helpers
lightnvm: pblk: redesign GC algorithm
lightnvm: pblk: set mempool and workqueue params.
lightnvm: pblk: fail gracefully on irrec. error
drivers/lightnvm/core.c | 8 +-
drivers/lightnvm/pblk-cache.c | 8 +-
drivers/lightnvm/pblk-core.c | 606 ++++++++++++++++++++++++++-------------
drivers/lightnvm/pblk-gc.c | 488 ++++++++++++++++++-------------
drivers/lightnvm/pblk-init.c | 358 ++++++++++++++---------
drivers/lightnvm/pblk-map.c | 73 +++--
drivers/lightnvm/pblk-rb.c | 79 +++--
drivers/lightnvm/pblk-read.c | 82 +++---
drivers/lightnvm/pblk-recovery.c | 130 +++++----
drivers/lightnvm/pblk-rl.c | 88 ++++--
drivers/lightnvm/pblk-sysfs.c | 114 ++++----
drivers/lightnvm/pblk-write.c | 350 +++++++++++++++++-----
drivers/lightnvm/pblk.h | 275 +++++++++++++-----
drivers/nvme/host/lightnvm.c | 2 +-
14 files changed, 1763 insertions(+), 898 deletions(-)
--
2.7.4
next reply other threads:[~2017-06-26 9:59 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-26 9:57 Javier González [this message]
2017-06-26 9:57 ` [PATCH 01/20] lightnvm: re-convert ppa format on I/O failure Javier González
2017-06-26 9:57 ` [PATCH 02/20] lightnvm: propagate right error code to target Javier González
2017-06-26 9:57 ` [PATCH 03/20] lightnvm: pblk: spare double cpu_to_le64 calc Javier González
2017-06-26 9:57 ` [PATCH 04/20] lightnvm: pblk: add debug stat for read cache hits Javier González
2017-06-26 9:57 ` [PATCH 05/20] lightnvm: pblk: expose max sec per write on sysfs Javier González
2017-06-26 9:57 ` [PATCH 06/20] lightnvm: pblk: generalize erase path Javier González
2017-06-26 9:57 ` [PATCH 07/20] lightnvm: pblk: rename read request pool Javier González
2017-06-26 9:57 ` [PATCH 08/20] lightnvm: pblk: sched. metadata on write thread Javier González
2017-09-20 18:28 ` Rakesh Pandit
2017-09-20 19:25 ` Rakesh Pandit
2017-06-26 9:57 ` [PATCH 09/20] lightnvm: pblk: delete redundant debug line stat Javier González
2017-06-26 9:57 ` [PATCH 10/20] lightnvm: pblk: delete redundant buffer pointer Javier González
2017-06-26 9:57 ` [PATCH 11/20] lightnvm: pblk: issue multiplane reads if possible Javier González
2017-06-26 9:57 ` [PATCH 12/20] lightnvm: pblk: simplify meta. memory allocation Javier González
2017-06-26 9:57 ` [PATCH 13/20] lightnvm: pblk: decouple bad block from line alloc Javier González
2017-06-26 9:57 ` [PATCH 14/20] lightnvm: pblk: choose optimal victim GC line Javier González
2017-06-26 9:57 ` [PATCH 15/20] lightnvm: pblk: set metadata list for all I/Os Javier González
2017-06-26 9:57 ` [PATCH 16/20] lightnvm: pblk: cleanup unnecessary code Javier González
2017-06-26 9:57 ` [PATCH 17/20] lightnvm: pblk: add lock assertions on helpers Javier González
2017-06-26 9:57 ` [PATCH 18/20] lightnvm: pblk: redesign GC algorithm Javier González
2017-06-26 9:57 ` [PATCH 19/20] lightnvm: pblk: set mempool and workqueue params Javier González
2017-06-26 9:57 ` [PATCH 20/20] lightnvm: pblk: fail gracefully on irrec. error Javier González
2017-06-26 22:29 ` [PATCH 00/20] LightNVM: pblk patches for 4.13 Jens Axboe
2017-06-27 8:00 ` 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=1498471049-25505-1-git-send-email-javier@cnexlabs.com \
--to=jg@lightnvm.io \
--cc=axboe@fb.com \
--cc=javier@cnexlabs.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.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 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®