diff options
author | Javier González <jg@lightnvm.io> | 2017-06-26 11:57:28 +0200 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2017-06-27 00:27:39 +0200 |
commit | ef5764946b1314e0aa1ab261493de6b9aa482ff9 (patch) | |
tree | 20994287473b382deffea5f0877f1da8277d772f /drivers/lightnvm/pblk-write.c | |
parent | lightnvm: pblk: redesign GC algorithm (diff) | |
download | linux-ef5764946b1314e0aa1ab261493de6b9aa482ff9.tar.xz linux-ef5764946b1314e0aa1ab261493de6b9aa482ff9.zip |
lightnvm: pblk: set mempool and workqueue params.
Make constants to define sizes for internal mempools and workqueues. In
this process, adjust the values to be more meaningful given the internal
constrains of the FTL. In order to do this for workqueues, separate the
current auxiliary workqueue into two dedicated workqueues to manage
lines being closed and bad blocks.
Signed-off-by: Javier González <javier@cnexlabs.com>
Signed-off-by: Matias Bjørling <matias@cnexlabs.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/lightnvm/pblk-write.c')
-rw-r--r-- | drivers/lightnvm/pblk-write.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/lightnvm/pblk-write.c b/drivers/lightnvm/pblk-write.c index a50bfbd12c32..f071fb79e199 100644 --- a/drivers/lightnvm/pblk-write.c +++ b/drivers/lightnvm/pblk-write.c @@ -150,7 +150,7 @@ static void pblk_end_w_fail(struct pblk *pblk, struct nvm_rq *rqd) } INIT_WORK(&recovery->ws_rec, pblk_submit_rec); - queue_work(pblk->kw_wq, &recovery->ws_rec); + queue_work(pblk->close_wq, &recovery->ws_rec); out: pblk_complete_write(pblk, rqd, c_ctx); @@ -198,7 +198,8 @@ static void pblk_end_io_write_meta(struct nvm_rq *rqd) sync = atomic_add_return(rqd->nr_ppas, &emeta->sync); if (sync == emeta->nr_entries) - pblk_line_run_ws(pblk, line, NULL, pblk_line_close_ws); + pblk_line_run_ws(pblk, line, NULL, pblk_line_close_ws, + pblk->close_wq); bio_put(rqd->bio); pblk_free_rqd(pblk, rqd, READ); |