linux/drivers/lightnvm
Hans Holmberg 48b8d20895 lightnvm: pblk: garbage collect lines with failed writes
Write failures should not happen under normal circumstances,
so in order to bring the chunk back into a known state as soon
as possible, evacuate all the valid data out of the line and let the
fw judge if the block can be written to in the next reset cycle.

Do this by introducing a new gc list for lines with failed writes,
and ensure that the rate limiter allocates a small portion of
the write bandwidth to get the job done.

The lba list is saved in memory for use during gc as we
cannot gurantee that the emeta data is readable if a write
error occurred.

Signed-off-by: Hans Holmberg <hans.holmberg@cnexlabs.com>
Reviewed-by: Javier González <javier@cnexlabs.com>
Signed-off-by: Matias Bjørling <mb@lightnvm.io>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2018-06-01 09:02:53 -06:00
..
core.c lightnvm: pass flag on graceful teardown to targets 2018-06-01 07:43:53 -06:00
Kconfig lightnvm: remove rrpc 2018-01-05 08:50:12 -07:00
Makefile lightnvm: remove rrpc 2018-01-05 08:50:12 -07:00
pblk-cache.c lightnvm: pblk: export write amplification counters to sysfs 2018-03-29 17:29:09 -06:00
pblk-core.c lightnvm: pblk: garbage collect lines with failed writes 2018-06-01 09:02:53 -06:00
pblk-gc.c lightnvm: pblk: garbage collect lines with failed writes 2018-06-01 09:02:53 -06:00
pblk-init.c lightnvm: pblk: garbage collect lines with failed writes 2018-06-01 09:02:53 -06:00
pblk-map.c lightnvm: pblk: fail gracefully on line alloc. failure 2018-06-01 07:43:53 -06:00
pblk-rb.c lightnvm: pblk: rework write error recovery path 2018-06-01 09:02:53 -06:00
pblk-read.c lightnvm: pblk: remove unnecessary indirection 2018-06-01 07:43:53 -06:00
pblk-recovery.c lightnvm: pblk: rework write error recovery path 2018-06-01 09:02:53 -06:00
pblk-rl.c lightnvm: pblk: garbage collect lines with failed writes 2018-06-01 09:02:53 -06:00
pblk-sysfs.c lightnvm: pblk: garbage collect lines with failed writes 2018-06-01 09:02:53 -06:00
pblk-write.c lightnvm: pblk: garbage collect lines with failed writes 2018-06-01 09:02:53 -06:00
pblk.h lightnvm: pblk: garbage collect lines with failed writes 2018-06-01 09:02:53 -06:00