WSL2-Linux-Kernel/drivers/lightnvm
Javier González d672d92d9c lightnvm: pblk: guarantee mw_cunits on read buffer
OCSSD 2.0 defines the amount of data that the host must buffer per chunk
to guarantee reads through the geometry field mw_cunits. This value is
the base that pblk uses to determine the size of its read buffer.
Currently, this size is set to be the closes power-of-2 to mw_cunits
times the number of parallel units available to the pblk instance for
each open line (currently one). When an entry (4KB) is put in the
buffer, the L2P table points to it. As the buffer wraps up, the L2P is
updated to point to addresses on the device, thus guaranteeing mw_cunits
at a chunk level.

However, given that pblk cannot write to the device under ws_min
(normally ws_opt), there might be a window in which the buffer starts
wrapping up and updating L2P entries before the mw_cunits value in a
chunk has been surpassed.

In order not to violate the mw_cunits constrain in this case, account
for ws_opt on the read buffer creation.

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
..
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
core.c lightnvm: introduce nvm_rq_to_ppa_list 2018-10-09 08:25:07 -06:00
pblk-cache.c lightnvm: pblk: add SPDX license tag 2018-10-09 08:25:08 -06:00
pblk-core.c lightnvm: pblk: fix race on sysfs line state 2018-10-09 08:25:08 -06:00
pblk-gc.c lightnvm: pblk: add SPDX license tag 2018-10-09 08:25:08 -06:00
pblk-init.c lightnvm: pblk: guarantee mw_cunits on read buffer 2018-10-09 08:25:08 -06:00
pblk-map.c lightnvm: pblk: add SPDX license tag 2018-10-09 08:25:08 -06:00
pblk-rb.c lightnvm: pblk: move ring buffer alloc/free rb init 2018-10-09 08:25:08 -06:00
pblk-read.c lightnvm: pblk: add SPDX license tag 2018-10-09 08:25:08 -06:00
pblk-recovery.c lightnvm: pblk: add SPDX license tag 2018-10-09 08:25:08 -06:00
pblk-rl.c lightnvm: pblk: add SPDX license tag 2018-10-09 08:25:08 -06:00
pblk-sysfs.c lightnvm: pblk: fix race on sysfs line state 2018-10-09 08:25:08 -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 rb pointer operations 2018-10-09 08:25:08 -06:00
pblk.h lightnvm: pblk: move ring buffer alloc/free rb init 2018-10-09 08:25:08 -06:00