summaryrefslogtreecommitdiff
path: root/drivers/md/raid5.h
diff options
context:
space:
mode:
authorShaohua Li <shli@kernel.org>2012-08-02 08:33:00 +1000
committerNeilBrown <neilb@suse.de>2012-08-02 08:33:00 +1000
commit8811b5968f6216e97ccb9fe7b9883af39e339921 (patch)
tree9693073f6cb1bcd8743d429d7d3330018bc0ce6d /drivers/md/raid5.h
parent74018dc3063a2c729fc73041c0a9f03aac995920 (diff)
downloadlwn-8811b5968f6216e97ccb9fe7b9883af39e339921.tar.gz
lwn-8811b5968f6216e97ccb9fe7b9883af39e339921.zip
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>
Diffstat (limited to 'drivers/md/raid5.h')
-rw-r--r--drivers/md/raid5.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/md/raid5.h b/drivers/md/raid5.h
index 2164021f3b5f..9a7b36f0a425 100644
--- a/drivers/md/raid5.h
+++ b/drivers/md/raid5.h
@@ -319,6 +319,7 @@ enum {
STRIPE_BIOFILL_RUN,
STRIPE_COMPUTE_RUN,
STRIPE_OPS_REQ_PENDING,
+ STRIPE_ON_UNPLUG_LIST,
};
/*