linux/drivers/lightnvm
Javier González 253babc3f6 lightnvm: pblk: take write semaphore on metadata
pblk guarantees write ordering at a chunk level through a per open chunk
semaphore. At this point, since we only have an open I/O stream for both
user and GC data, the semaphore is per parallel unit.

For the metadata I/O that is synchronous, the semaphore is not needed as
ordering is guaranteed. However, if the metadata scheme changes or
multiple streams are open, this guarantee might not be preserved.

This patch makes sure that all writes go through the semaphore, even for
synchronous I/O. This is consistent with pblk's write I/O model. It also
simplifies maintenance since changes in the metadata scheme could cause
ordering issues.

Signed-off-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-10-09 08:25:08 -06:00
..
core.c lightnvm: introduce nvm_rq_to_ppa_list 2018-10-09 08:25:07 -06:00
Kconfig lightnvm: remove dependencies on BLK_DEV_NVME and PCI 2018-10-09 08:25:05 -06:00
Makefile lightnvm: remove rrpc 2018-01-05 08:50:12 -07:00
pblk-cache.c block: Add and use op_stat_group() for indexing disk_stat fields. 2018-07-18 08:44:20 -06:00
pblk-core.c lightnvm: pblk: take write semaphore on metadata 2018-10-09 08:25:08 -06:00
pblk-gc.c lightnvm: pblk: refactor metadata paths 2018-10-09 08:25:07 -06:00
pblk-init.c lightnvm: use internal allocation for chunk log page 2018-10-09 08:25:07 -06:00
pblk-map.c lightnvm: pblk: remove debug from pblk_[down/up]_page 2018-10-09 08:25:07 -06:00
pblk-rb.c lightnvm: pblk: improve line helpers 2018-10-09 08:25:06 -06:00
pblk-read.c lightnvm: pblk: encapsulate rqd dma allocations 2018-10-09 08:25:07 -06:00
pblk-recovery.c lightnvm: pblk: refactor metadata paths 2018-10-09 08:25:07 -06:00
pblk-rl.c lightnvm: pblk: unify vector max req constants 2018-10-09 08:25:06 -06:00
pblk-sysfs.c lightnvm: pblk: fix write amplificiation calculation 2018-10-09 08:25:07 -06:00
pblk-trace.h lightnvm: pblk: add tracing for chunk resets 2018-10-09 08:25:07 -06:00
pblk-write.c lightnvm: pblk: encapsulate rqd dma allocations 2018-10-09 08:25:07 -06:00
pblk.h lightnvm: pblk: take write semaphore on metadata 2018-10-09 08:25:08 -06:00