percpu_ida: make percpu_ida percpu size/batch configurable
authorShaohua Li <shli@kernel.org>
Tue, 15 Oct 2013 01:05:01 +0000 (09:05 +0800)
committerJens Axboe <axboe@fb.com>
Mon, 30 Mar 2015 18:54:38 +0000 (12:54 -0600)
commit9d52221ba37e3f8affb2108958e2fac934183362
tree800bf45adcaf06482830289d413bda507a87fbf4
parentf79b9b23df728a691ce863da761f668d6873d010
percpu_ida: make percpu_ida percpu size/batch configurable

Make percpu_ida percpu size/batch configurable. The block-mq-tag will
use it.

After block-mq uses percpu_ida to manage tags, performance is improved.
My test is done in a 2 sockets machine, 12 process cross the 2 sockets.
So if there is lock contention or ipi, should be stressed heavily.
Testing is done for null-blk.

hw_queue_depth nopatch iops patch iops
64 ~800k/s ~1470k/s
2048 ~4470k/s ~4340k/s

Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Shaohua Li <shli@fusionio.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
include/linux/percpu_ida.h
lib/percpu_ida.c