diff options
author | Shaohua Li <shli@kernel.org> | 2013-08-29 09:40:32 +0200 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2013-09-02 02:31:29 +0200 |
commit | bfc90cb0936f5b972706625f38f72c7cb726c20a (patch) | |
tree | 131194fdf489b6dd9eb3e165e6cd1c68bb4c629e /lib/raid6 | |
parent | md/raid5: flush out all pending requests before proceeding with reshape. (diff) | |
download | linux-bfc90cb0936f5b972706625f38f72c7cb726c20a.tar.xz 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/raid6')
0 files changed, 0 insertions, 0 deletions