diff options
| author | Tejun Heo <tj@kernel.org> | 2013-05-14 13:52:37 -0700 |
|---|---|---|
| committer | Moyster <oysterized@gmail.com> | 2016-09-18 12:46:21 +0200 |
| commit | 178939f9fdceb83f2f538b4cde8b99100bf78da7 (patch) | |
| tree | a5ae8e945d412189dd1754f4f488c0c937421de4 /scripts/kernel-doc | |
| parent | 7717363fb2f02e0f43fa7e858edf4e82c5bee915 (diff) | |
blk-throttle: implement dispatch looping
throtl_select_dispatch() only dispatches throtl_quantum bios on each
invocation. blk_throtl_dispatch_work_fn() in turn depends on
throtl_schedule_next_dispatch() scheduling the next dispatch window
immediately so that undue delays aren't incurred. This effectively
chains multiple dispatch work item executions back-to-back when there
are more than throtl_quantum bios to dispatch on a given tick.
There is no reason to finish the current work item just to repeat it
immediately. This patch makes throtl_schedule_next_dispatch() return
%false without doing anything if the current dispatch window is still
open and updates blk_throtl_dispatch_work_fn() repeat dispatching
after cpu_relax() on %false return.
This change will help implementing hierarchy support as dispatching
will be done from pending_timer and immediate reschedule of timer
function isn't supported and doesn't make much sense.
While this patch changes how dispatch behaves when there are more than
throtl_quantum bios to dispatch on a single tick, the behavior change
is immaterial.
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Vivek Goyal <vgoyal@redhat.com>
Diffstat (limited to 'scripts/kernel-doc')
0 files changed, 0 insertions, 0 deletions
