[GIT PULL 00/58] LightNVM updates for 4.15

From: Matias BjÃrling
Date: Fri Oct 13 2017 - 09:03:06 EST


Hi Jens,

A couple of patches for 4.15.

Javier has improved garbage collection, statistics, memory pool usage,
and added support for single LUN configurations. He also made a lot of
bug fixes and cleanup patches.

Rakesh have been fixing up a lot of subsystem bugs with respect to
loading and unloading pblk, cleanup of memory pools, and a couple of
fixes spread across the lightnvm subsystem and pblk.

Hans has been looking into garbage collection, and shutting it
down gracefully when pblk is unloaded.

Please pull from the for-4.15/for-jens branch or apply the patches
posted with this thread:

https://github.com/OpenChannelSSD/linux.git for-4.15/for-jens

Thanks,
Matias

Hans Holmberg (10):
lightnvm: pblk: prevent gc kicks when gc is not operational
lightnvm: pblk: recover partially written lines correctly
lightnvm: pblk: free full lines during recovery
lightnvm: pblk: start gc if needed during init
lightnvm: pblk: consider bad sectors in emeta during recovery
lightnvm: pblk: shut down gc gracefully during exit
lightnvm: pblk: add l2p crc debug printouts
lightnvm: pblk: gc all lines in the pipeline before exit
lightnvm: pblk: correct valid lba count calculation
lightnvm: pblk: remove spinlock when freeing line metadata

Javier GonzÃlez (31):
lightnvm: pblk: initialize debug stat counter
lightnvm: pblk: use right flag for GC allocation
lightnvm: pblk: free padded entries in write buffer
lightnvm: pblk: fix write I/O sync stat
lightnvm: pblk: avoid deadlock on low LUN config
lightnvm: pblk: fix min size for page mempool
lightnvm: pblk: simplify work_queue mempool
lightnvm: pblk: decouple read/erase mempools
lightnvm: pblk: do not use a mempool for line bitmaps
lightnvm: pblk: remove checks on mempool alloc.
lightnvm: pblk: use constant for GC max inflight
lightnvm: pblk: normalize ppa namings
lightnvm: pblk: refactor read lba sanity check
lightnvm: pblk: simplify data validity check on GC
lightnvm: pblk: refactor read path on GC
lightnvm: pblk: put bio on bio completion
lightnvm: pblk: simplify path on REQ_PREFLUSH
lightnvm: pblk: allocate bio size more accurately
lightnvm: pblk: improve naming for internal req.
lightnvm: pblk: refactor rqd alloc/free
lightnvm: pblk: use rqd->end_io for completion
lightnvm: pblk: check lba sanity on read path
lightnvm: pblk: guarantee line integrity on reads
lightnvm: pblk: remove redundant check on read path
lightnvm: pblk: remove I/O dependency on write path
lightnvm: pblk: enable 1 LUN configuration
lightnvm: pblk: ensure right bad block calculation
lightnvm: pblk: cleanup unused and static functions
lightnvm: pblk: avoid being reported as hung on rated GC
lightnvm: fail fast on passthrough commands
lightnvm: implement generic path for sync I/O

Rakesh Pandit (17):
lightnvm: prevent target type module removal when in use
lightnvm: prevent bd removal if busy
lightnvm: protect target type list with correct locks
lightnvm: remove already calculated nr_chnls
lightnvm: pblk: fix error path in pblk_lines_alloc_metadata
lightnvm: include NVM Express driver if OCSSD is selected for build
lightnvm: pblk: protect line bitmap while submitting meta io
lightnvm: pblk: fix message if L2P MAP is in device
lightnvm: pblk: improve error message if down_timeout fails
lightnvm: pblk: print incompatible line version correctly
lightnvm: pblk: reuse pblk_gc_should_kick
lightnvm: pblk: fix changing GC group list for a line
lightnvm: pblk: remove useless line
lightnvm: remove unused argument from nvm_set_tgt_bb_tbl
lightnvm: remove stale extern and unused exported symbols
lightnvm: pblk: reduce arguments in __pblk_rb_update_l2p
lightnvm: pblk: fix releases of kmem cache in error path

drivers/lightnvm/Kconfig | 3 +-
drivers/lightnvm/core.c | 190 +++++++-------
drivers/lightnvm/pblk-cache.c | 24 +-
drivers/lightnvm/pblk-core.c | 516 ++++++++++++++++++++-------------------
drivers/lightnvm/pblk-gc.c | 311 ++++++++++++-----------
drivers/lightnvm/pblk-init.c | 197 +++++++++------
drivers/lightnvm/pblk-map.c | 28 ++-
drivers/lightnvm/pblk-rb.c | 30 +--
drivers/lightnvm/pblk-read.c | 274 ++++++++++++---------
drivers/lightnvm/pblk-recovery.c | 131 ++++------
drivers/lightnvm/pblk-rl.c | 43 +---
drivers/lightnvm/pblk-sysfs.c | 2 +-
drivers/lightnvm/pblk-write.c | 229 +++++++----------
drivers/lightnvm/pblk.h | 137 +++++++----
drivers/nvme/host/lightnvm.c | 72 ++++--
include/linux/lightnvm.h | 11 +-
16 files changed, 1172 insertions(+), 1026 deletions(-)

--
2.9.3