raid5: make_request use batch stripe release
authorShaohua Li <shli@kernel.org>
Wed, 1 Aug 2012 22:33:00 +0000 (08:33 +1000)
committerNeilBrown <neilb@suse.de>
Wed, 1 Aug 2012 22:33:00 +0000 (08:33 +1000)
commit8811b5968f6216e97ccb9fe7b9883af39e339921
tree9693073f6cb1bcd8743d429d7d3330018bc0ce6d
parent74018dc3063a2c729fc73041c0a9f03aac995920
raid5: make_request use batch stripe release

make_request() does stripe release for every stripe and the stripe usually has
count 1, which makes previous release_stripe() optimization not work. In my
test, this release_stripe() becomes the heaviest pleace to take
conf->device_lock after previous patches applied.

Below patch makes stripe release batch. All the stripes will be released in
unplug. The STRIPE_ON_UNPLUG_LIST bit is to protect concurrent access stripe
lru.

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