diff options
author | Shaohua Li <shli@kernel.org> | 2013-08-29 15:40:32 +0800 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2013-09-02 10:31:29 +1000 |
commit | bfc90cb0936f5b972706625f38f72c7cb726c20a (patch) | |
tree | 131194fdf489b6dd9eb3e165e6cd1c68bb4c629e /lib | |
parent | 4d77e3ba88d085836f1e8e475e3131844dd89d04 (diff) | |
download | linux-bfc90cb0936f5b972706625f38f72c7cb726c20a.tar.gz linux-bfc90cb0936f5b972706625f38f72c7cb726c20a.tar.bz2 linux-bfc90cb0936f5b972706625f38f72c7cb726c20a.zip |
raid5: only wakeup necessary threads
If there are not enough stripes to handle, we'd better not always
queue all available work_structs. If one worker can only handle small
or even none stripes, it will impact request merge and create lock
contention.
With this patch, the number of work_struct running will depend on
pending stripes number. Note: some statistics info used in the patch
are accessed without locking protection. This should doesn't matter,
we just try best to avoid queue unnecessary work_struct.
Signed-off-by: Shaohua Li <shli@fusionio.com>
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions