Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1620604 > unrolled thread
| Started by | "Javier González" <jg@lightnvm.io> |
|---|---|
| First post | 2017-04-10 20:40 +0200 |
| Last post | 2017-04-11 15:50 +0200 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH v4] lightnvm: pblk "Javier González" <jg@lightnvm.io> - 2017-04-10 20:40 +0200
Re: [PATCH v4] lightnvm: pblk Javier Gonzalez <javier@cnexlabs.com> - 2017-04-11 15:50 +0200
| From | "Javier González" <jg@lightnvm.io> |
|---|---|
| Date | 2017-04-10 20:40 +0200 |
| Subject | [PATCH v4] lightnvm: pblk |
| Message-ID | <tuMoh-4s3-5@gated-at.bofh.it> |
This patch introduces pblk, a new target for LightNVM implementing a full host-based FTL. Details on the commit message. Changes since v3: * Apply Bart's feedback [1] * Implement dynamic L2P optimizations for > 32-bit physical media * geometry (from Matias Bjørling) * Fix memory leak on GC (Reported by Simon A. F. Lund) * 8064 is a perfectly round number of lines :) [1] https://lkml.org/lkml/2017/4/8/172 Changes since v2: * Rebase on top of Matias' for-4.12/core * Implement L2P scan recovery to recover L2P table in case of power failure. * Re-design disk format to be more flexible in future versions (from Matias Bjørling) * Implement per-instance uuid to allow correct recovery without forcing line erases (from Matias Bjørling) * Re-design GC threading to have several GC readers and a single writer that places data on the write buffer. This allows to maximize the GC write buffer budget without having unnecessary GC writers competing for the write buffer lock. * Simplify sysfs interface. * Refactoring and several code improvements (together with Matias Bjørling) Changes since v1: * Rebase on top of Matias' for-4.12/core * Move from per-LUN block allocation to a line model. This means that a whole lines across all LUNs is allocated at a time. Data is still stripped in a round-robin fashion at a page granurality. * Implement new disk format scheme, where metadata is stored per line instead of per LUN. This allows for space optimizations. * Improvements on GC workqueue management and victim selection. * Implement sysfs interface to query pblk's operation and statistics. * Implement a user - GC I/O rate-limiter * Various bug fixes Javier González (1): lightnvm: physical block device (pblk) target Documentation/lightnvm/pblk.txt | 21 + drivers/lightnvm/Kconfig | 9 + drivers/lightnvm/Makefile | 5 + drivers/lightnvm/pblk-cache.c | 114 +++ drivers/lightnvm/pblk-core.c | 1658 ++++++++++++++++++++++++++++++++++++++ drivers/lightnvm/pblk-gc.c | 555 +++++++++++++ drivers/lightnvm/pblk-init.c | 948 ++++++++++++++++++++++ drivers/lightnvm/pblk-map.c | 134 +++ drivers/lightnvm/pblk-rb.c | 856 ++++++++++++++++++++ drivers/lightnvm/pblk-read.c | 529 ++++++++++++ drivers/lightnvm/pblk-recovery.c | 1003 +++++++++++++++++++++++ drivers/lightnvm/pblk-rl.c | 182 +++++ drivers/lightnvm/pblk-sysfs.c | 502 ++++++++++++ drivers/lightnvm/pblk-write.c | 412 ++++++++++ drivers/lightnvm/pblk.h | 1136 ++++++++++++++++++++++++++ 15 files changed, 8064 insertions(+) create mode 100644 Documentation/lightnvm/pblk.txt create mode 100644 drivers/lightnvm/pblk-cache.c create mode 100644 drivers/lightnvm/pblk-core.c create mode 100644 drivers/lightnvm/pblk-gc.c create mode 100644 drivers/lightnvm/pblk-init.c create mode 100644 drivers/lightnvm/pblk-map.c create mode 100644 drivers/lightnvm/pblk-rb.c create mode 100644 drivers/lightnvm/pblk-read.c create mode 100644 drivers/lightnvm/pblk-recovery.c create mode 100644 drivers/lightnvm/pblk-rl.c create mode 100644 drivers/lightnvm/pblk-sysfs.c create mode 100644 drivers/lightnvm/pblk-write.c create mode 100644 drivers/lightnvm/pblk.h -- 2.7.4
[toc] | [next] | [standalone]
| From | Javier Gonzalez <javier@cnexlabs.com> |
|---|---|
| Date | 2017-04-11 15:50 +0200 |
| Message-ID | <tv4ld-7FU-45@gated-at.bofh.it> |
| In reply to | #1620604 |
[Multipart message — attachments visible in raw view] — view raw
Hi Bart, > On 10 Apr 2017, at 22.35, Bart Van Assche <bart.vanassche@sandisk.com> wrote: > > On 04/10/2017 11:36 AM, Javier González wrote: >> Changes since v3: >> * Apply Bart's feedback [1] > > Thanks for having addressed these comments. But please also make sure > that the pblk driver builds cleanly with W=1 C=2. When running "make > M=drivers/lightnvm W=1 C=2" several warnings are reported that should be > reviewed. At least the endianness warnings should be addressed. An example: > > CHECK drivers/lightnvm/pblk-gc.c > drivers/lightnvm/pblk-gc.c:254:18: warning: incorrect type in assignment > (different base types) > drivers/lightnvm/pblk-gc.c:254:18: expected unsigned long long > [usertype] *lba_list > drivers/lightnvm/pblk-gc.c:254:18: got restricted __le64 [usertype] * > > Please also review the warnings reported by smatch (make > M=drivers/lightnvm C=2 CHECK="smatch -p=kernel"). A few examples that > most likely indicate bugs: > > CHECK drivers/lightnvm/pblk-init.c > drivers/lightnvm/pblk-init.c:915: pblk_init() error: passing non > negative 1 to ERR_PTR > drivers/lightnvm/pblk-rb.c:782: pblk_rb_tear_down_check() error: we > previously assumed 'rb->entries' could be null (see line 778) CHECK > drivers/lightnvm/pblk-read.c > drivers/lightnvm/pblk-read.c:486: pblk_submit_read_gc() error: 'bio' > dereferencing possible ERR_PTR() I'll submit a v5 later today where these are addressed. Thanks. > > Thanks, > > Bart. Javier
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web