linux/drivers/lightnvm
Javier González b4cdc4260e lightnvm: pblk: prevent stall due to wb threshold
In order to respect mw_cuinits, pblk's write buffer maintains a
backpointer to protect data not yet persisted; when writing to the write
buffer, this backpointer defines a threshold that pblk's rate-limiter
enforces.

On small PU configurations, the following scenarios might take place: (i)
the threshold is larger than the write buffer and (ii) the threshold is
smaller than the write buffer, but larger than the maximun allowed
split bio - 256KB at this moment (Note that writes are not always
split - we only do this when we the size of the buffer is smaller
than the buffer). In both cases, pblk's rate-limiter prevents the I/O to
be written to the buffer, thus stalling.

This patch fixes the original backpointer implementation by considering
the threshold both on buffer creation and on the rate-limiters path,
when bio_split is triggered (case (ii) above).

Fixes: 766c8ceb16 ("lightnvm: pblk: guarantee that backpointer is respected on writer stall")
Signed-off-by: Javier González <javier@javigon.com>
Reviewed-by: Hans Holmberg <hans.holmberg@cnexlabs.com>
Signed-off-by: Matias Bjørling <mb@lightnvm.io>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-02-11 08:18:08 -07:00
..
core.c lightnvm: dynamic DMA pool entry size 2018-12-11 12:22:35 -07: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 lightnvm: pblk: add SPDX license tag 2018-10-09 08:25:08 -06:00
pblk-core.c lightnvm: pblk: Switch to use new generic UUID API 2019-02-11 08:18:07 -07:00
pblk-gc.c lightnvm: pblk: add SPDX license tag 2018-10-09 08:25:08 -06:00
pblk-init.c lightnvm: pblk: Switch to use new generic UUID API 2019-02-11 08:18:07 -07:00
pblk-map.c lightnvm: pblk: support packed metadata 2018-12-11 12:22:35 -07:00
pblk-rb.c lightnvm: pblk: prevent stall due to wb threshold 2019-02-11 08:18:08 -07:00
pblk-read.c lightnvm: pblk: support packed metadata 2018-12-11 12:22:35 -07:00
pblk-recovery.c lightnvm: pblk: extend line wp balance check 2019-02-11 08:18:07 -07:00
pblk-rl.c lightnvm: pblk: prevent stall due to wb threshold 2019-02-11 08:18:08 -07:00
pblk-sysfs.c lightnvm: pblk: support packed metadata 2018-12-11 12:22:35 -07:00
pblk-trace.h lightnvm: pblk: fix TRACE_INCLUDE_PATH 2019-02-11 08:18:07 -07:00
pblk-write.c lightnvm: pblk: support packed metadata 2018-12-11 12:22:35 -07:00
pblk.h lightnvm: pblk: prevent stall due to wb threshold 2019-02-11 08:18:08 -07:00