linux/drivers/lightnvm
Javier González d340121eb7 lightnvm: pblk: simplify data validity check on GC
When a line is selected for recycling by the garbage collector (GC), the
line state changes and the invalid bitmap is frozen, preventing
invalidations from happening. Throughout the GC, the L2P map is checked
to verify that not data being recycled has been updated. The last check
is done before the new map is being stored on the L2P table. Though
this algorithm works, it requires a number of corner cases to be checked
each time the L2P table is being updated. This complicates readability
and is error prone in case that the recycling algorithm is modified.

Instead, this patch makes the invalid bitmap accessible even when the
line is being recycled. When recycled data is being remapped, it is
enough to check the invalid bitmap for the line before updating the L2P
table.

Signed-off-by: Javier González <javier@cnexlabs.com>
Signed-off-by: Matias Bjørling <m@bjorling.me>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2017-10-13 08:34:57 -06:00
..
core.c lightnvm: remove already calculated nr_chnls 2017-10-13 08:34:57 -06:00
Kconfig lightnvm: include NVM Express driver if OCSSD is selected for build 2017-10-13 08:34:57 -06:00
Makefile lightnvm: physical block device (pblk) target 2017-04-16 10:06:33 -06:00
pblk-cache.c lightnvm: pblk: simplify data validity check on GC 2017-10-13 08:34:57 -06:00
pblk-core.c lightnvm: pblk: simplify data validity check on GC 2017-10-13 08:34:57 -06:00
pblk-gc.c lightnvm: pblk: simplify data validity check on GC 2017-10-13 08:34:57 -06:00
pblk-init.c lightnvm: pblk: do not use a mempool for line bitmaps 2017-10-13 08:34:57 -06:00
pblk-map.c lightnvm: pblk: fix bad le64 assignations 2017-06-30 11:08:18 -06:00
pblk-rb.c lightnvm: pblk: simplify data validity check on GC 2017-10-13 08:34:57 -06:00
pblk-read.c lightnvm: pblk: simplify data validity check on GC 2017-10-13 08:34:57 -06:00
pblk-recovery.c lightnvm: pblk: remove checks on mempool alloc. 2017-10-13 08:34:57 -06:00
pblk-rl.c lightnvm: pblk: avoid deadlock on low LUN config 2017-10-13 08:34:57 -06:00
pblk-sysfs.c lightnvm: pblk: remove unused return variable 2017-06-30 11:08:18 -06:00
pblk-write.c lightnvm: pblk: remove checks on mempool alloc. 2017-10-13 08:34:57 -06:00
pblk.h lightnvm: pblk: simplify data validity check on GC 2017-10-13 08:34:57 -06:00
rrpc.c blk: remove bio_set arg from blk_queue_split() 2017-06-18 12:40:59 -06:00
rrpc.h lightnvm: use end_io callback instead of instance 2017-01-31 08:32:13 -07:00