lightnvm: pblk: handle case when mw_cunits equals to 0
authorMarcin Dziegielewski <marcin.dziegielewski@intel.com>
Fri, 13 Jul 2018 08:48:36 +0000 (10:48 +0200)
committerJens Axboe <axboe@kernel.dk>
Fri, 13 Jul 2018 14:14:29 +0000 (08:14 -0600)
commitffc03fb7a52a88f87910d2b2418fd4e3069698e1
treedbdbd0f1a6c8cc7bc8ff09d1872a8eafeca193a3
parent05814a10370b3252fe2b0898b6adac3cdd531096
lightnvm: pblk: handle case when mw_cunits equals to 0

Some devices can expose mw_cunits equal to 0, it can cause the
creation of too small write buffer and cause performance to drop
on write workloads.

Additionally, write buffer size must cover write data requirements,
such as WS_MIN and MW_CUNITS - it must be greater than or equal to
the larger one multiplied by the number of PUs. However, for
performance reasons, use the WS_OPT value to calculation instead of
WS_MIN.

Because the place where buffer size is calculated was changed, this
patch also removes pgs_in_buffer filed in pblk structure.

Signed-off-by: Marcin Dziegielewski <marcin.dziegielewski@intel.com>
Signed-off-by: Igor Konopko <igor.j.konopko@intel.com>
Reviewed-by: Javier González <javier@cnexlabs.com>
Signed-off-by: Matias Bjørling <mb@lightnvm.io>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/lightnvm/pblk-init.c
drivers/lightnvm/pblk.h