linux_dsm_epyc7002/drivers/lightnvm
Javier González a44f53faf4 lightnvm: pblk: fix erase counters on error fail
When block erases fail, these blocks are marked bad. The number of valid
blocks in the line was not updated, which could cause an infinite loop
on the erase path.

Fix this atomic counter and, in order to avoid taking an irq lock on the
interrupt context, make the erase counters atomic too.

Also, in the case that a significant number of blocks become bad in a
line, the result is the double shared metadata buffer (emeta) to stop
the pipeline until all metadata is flushed to the media. Increase the
number of metadata lines from 2 to 4 to avoid this case.

Fixes: a4bd217b43 "lightnvm: physical block device (pblk) target"

Signed-off-by: Javier González <javier@cnexlabs.com>
Reviewed-by: Matias Bjørling <matias@cnexlabs.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
2017-04-23 16:57:52 -06:00
..
core.c lightnvm: propagate pblk_init return to userspace 2017-04-21 12:40:41 -06:00
Kconfig lightnvm: physical block device (pblk) target 2017-04-16 10:06:33 -06:00
Makefile lightnvm: physical block device (pblk) target 2017-04-16 10:06:33 -06:00
pblk-cache.c lightnvm: physical block device (pblk) target 2017-04-16 10:06:33 -06:00
pblk-core.c lightnvm: pblk: fix erase counters on error fail 2017-04-23 16:57:52 -06:00
pblk-gc.c lightnvm: pblk: fix erase counters on error fail 2017-04-23 16:57:52 -06:00
pblk-init.c lightnvm: pblk: fix erase counters on error fail 2017-04-23 16:57:52 -06:00
pblk-map.c lightnvm: pblk: fix erase counters on error fail 2017-04-23 16:57:52 -06:00
pblk-rb.c lightnvm: physical block device (pblk) target 2017-04-16 10:06:33 -06:00
pblk-read.c lightnvm: don't print a warning for ADDR_EMPTY 2017-04-21 16:49:56 -06:00
pblk-recovery.c lightnvm: fix some WARN() messages 2017-04-16 10:06:34 -06:00
pblk-rl.c lightnvm: pblk: fix erase counters on error fail 2017-04-23 16:57:52 -06:00
pblk-sysfs.c lightnvm: physical block device (pblk) target 2017-04-16 10:06:33 -06:00
pblk-write.c lightnvm: pblk: fix erase counters on error fail 2017-04-23 16:57:52 -06:00
pblk.h lightnvm: pblk: fix erase counters on error fail 2017-04-23 16:57:52 -06:00
rrpc.c lightnvm: fix type checks on rrpc 2017-04-16 10:06:25 -06:00
rrpc.h lightnvm: use end_io callback instead of instance 2017-01-31 08:32:13 -07:00