raid5: make_request does less prepare wait
authorShaohua Li <shli@kernel.org>
Wed, 9 Apr 2014 03:25:47 +0000 (11:25 +0800)
committerNeilBrown <neilb@suse.de>
Wed, 9 Apr 2014 04:42:38 +0000 (14:42 +1000)
commit27c0f68f0745218cec70f19ba7560c8c5fc3f817
treec8f8fcefca0ced4a5e990a94094c2c2b70ee2c55
parente2f23b606b94f28a8febd5aa715df697d80b018e
raid5: make_request does less prepare wait

In NUMA machine, prepare_to_wait/finish_wait in make_request exposes a
lot of contention for sequential workload (or big request size
workload). For such workload, each bio includes several stripes. So we
can just do prepare_to_wait/finish_wait once for the whold bio instead
of every stripe.  This reduces the lock contention completely for such
workload. Random workload might have the similar lock contention too,
but I didn't see it yet, maybe because my stroage is still not fast
enough.

Signed-off-by: Shaohua Li <shli@fusionio.com>
Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/raid5.c