linux/drivers/lightnvm
Javier González b84ae4a8b8 lightnvm: pblk: simplify work_queue mempool
In pblk, we have a mempool to allocate a generic structure that we
pass along workqueues. This is heavily used in the GC path in order
to have enough inflight reads and fully utilize the GC bandwidth.

However, the current GC path copies data to the host memory and puts it
back into the write buffer. This requires a vmalloc allocation for the
data and a memory copy. Thus, guaranteeing the allocation by using a
mempool for the structure in itself does not give us much. Until we
implement support for vector copy to avoid moving data through the host,
just allocate the workqueue structure using kmalloc.

This allows us to have a much smaller mempool.

Reported-by: Jens Axboe <axboe@kernel.dk>
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 already calculated nr_chnls 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: fail gracefully on irrec. error 2017-06-26 16:27:39 -06:00
pblk-core.c lightnvm: pblk: simplify work_queue mempool 2017-10-13 08:34:57 -06:00
pblk-gc.c lightnvm: pblk: simplify work_queue mempool 2017-10-13 08:34:57 -06:00
pblk-init.c lightnvm: pblk: simplify work_queue mempool 2017-10-13 08:34:57 -06:00
pblk-map.c lightnvm: pblk: fix bad le64 assignations 2017-06-30 11:08:18 -06:00
pblk-rb.c lightnvm: pblk: advance bio according to lba index 2017-07-28 08:06:00 -06:00
pblk-read.c lightnvm: pblk: fix min size for page mempool 2017-10-13 08:34:57 -06:00
pblk-recovery.c lightnvm: pblk: print incompatible line version correctly 2017-10-13 08:34:57 -06:00
pblk-rl.c lightnvm: pblk: avoid deadlock on low LUN config 2017-10-13 08:34:57 -06:00
pblk-sysfs.c lightnvm: pblk: remove unused return variable 2017-06-30 11:08:18 -06:00
pblk-write.c lightnvm: pblk: simplify work_queue mempool 2017-10-13 08:34:57 -06:00
pblk.h lightnvm: pblk: simplify work_queue mempool 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