linux/drivers/lightnvm
Javier González 8da10cce7c lightnvm: pblk: avoid being reported as hung on rated GC
The amount of GC I/O on the write buffer is managed by the rate-limiter,
which is calculated as a function of the number of available free
blocks. When reaching the stable point, we risk having scheduled more
I/Os for GC than are allowed on the write buffer. This would result on
the GC semaphore balancing the outstanding read GC I/Os to be reported
as "hung", though the behavior is normal.

Solve this by allowing to schedule when we detect that the read GC path
is not moving forward.

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 stale extern and unused exported symbols 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 path on REQ_PREFLUSH 2017-10-13 08:34:57 -06:00
pblk-core.c lightnvm: pblk: cleanup unused and static functions 2017-10-13 08:34:57 -06:00
pblk-gc.c lightnvm: pblk: avoid being reported as hung on rated GC 2017-10-13 08:34:57 -06:00
pblk-init.c lightnvm: pblk: remove spinlock when freeing line metadata 2017-10-13 08:34:57 -06:00
pblk-map.c lightnvm: pblk: correct valid lba count calculation 2017-10-13 08:34:57 -06:00
pblk-rb.c lightnvm: pblk: reduce arguments in __pblk_rb_update_l2p 2017-10-13 08:34:57 -06:00
pblk-read.c lightnvm: pblk: remove redundant check on read path 2017-10-13 08:34:57 -06:00
pblk-recovery.c lightnvm: pblk: consider bad sectors in emeta during recovery 2017-10-13 08:34:57 -06:00
pblk-rl.c lightnvm: pblk: cleanup unused and static functions 2017-10-13 08:34:57 -06:00
pblk-sysfs.c lightnvm: pblk: gc all lines in the pipeline before exit 2017-10-13 08:34:57 -06:00
pblk-write.c lightnvm: pblk: remove I/O dependency on write path 2017-10-13 08:34:57 -06:00
pblk.h lightnvm: pblk: cleanup unused and static functions 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