1
0
Fork 0
alistair23-linux/drivers/nvme/host
Matias Bjørling aff3fb18f9 lightnvm: move bad block and chunk state logic to core
pblk implements two data paths for recovery line state. One for 1.2
and another for 2.0, instead of having pblk implement these, combine
them in the core to reduce complexity and make available to other
targets.

The new interface will adhere to the 2.0 chunk definition,
including managing open chunks with an active write pointer. To provide
this interface, a 1.2 device recovers the state of the chunks by
manually detecting if a chunk is either free/open/close/offline, and if
open, scanning the flash pages sequentially to find the next writeable
page. This process takes on average ~10 seconds on a device with 64 dies,
1024 blocks and 60us read access time. The process can be parallelized
but is left out for maintenance simplicity, as the 1.2 specification is
deprecated. For 2.0 devices, the logic is maintained internally in the
drive and retrieved through the 2.0 interface.

Signed-off-by: Matias Bjørling <mb@lightnvm.io>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2018-10-09 08:25:06 -06:00
..
Kconfig IB: Revert "remove redundant INFINIBAND kconfig dependencies" 2018-05-28 10:40:16 -06:00
Makefile nvme: Add fault injection feature 2018-03-26 08:53:43 -06:00
core.c nvme: take node locality into account when selecting a path 2018-10-01 14:16:14 -07:00
fabrics.c nvme: call nvme_complete_rq when nvmf_check_ready fails for mpath I/O 2018-10-01 14:16:13 -07:00
fabrics.h nvme: if_ready checks to fail io to deleting controller 2018-07-24 13:44:40 +02:00
fault_inject.c nvme: Add fault injection feature 2018-03-26 08:53:43 -06:00
fc.c nvme_fc: add 'nvme_discovery' sysfs attribute to fc transport device 2018-10-01 14:16:11 -07:00
lightnvm.c lightnvm: move bad block and chunk state logic to core 2018-10-09 08:25:06 -06:00
multipath.c nvme: take node locality into account when selecting a path 2018-10-01 14:16:14 -07:00
nvme.h nvme: take node locality into account when selecting a path 2018-10-01 14:16:14 -07:00
pci.c nvme-pci: add a memory barrier to nvme_dbbuf_update_and_check_event 2018-08-28 08:40:42 +02:00
rdma.c Merge branch 'linus/master' into rdma.git for-next 2018-08-16 14:21:29 -06:00
trace.c nvme: add disk name to trace events 2018-07-24 15:55:48 +02:00
trace.h nvme-core: add async event trace helper 2018-10-01 14:16:12 -07:00