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@kernel.dk>
Fri, 25 Oct 2013 10:55:59 +0000 (11:55 +0100)
commite26b53d0b287056646a0dffce8bc6b0f053f3823
tree99f7f824f8123d441de534960fd85dda5d2e5385
parent098faf5805c80f951ce5e8b4a6842382ad793c38
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