diff options
| author | Tejun Heo <[email protected]> | 2016-10-28 16:58:10 +0000 |
|---|---|---|
| committer | Ingo Molnar <[email protected]> | 2017-01-14 10:30:04 +0000 |
| commit | 10ab56434f2f633a51e432ee8b7c29e12438e163 (patch) | |
| tree | 12407831c0c8d7001ed3220510eff75e9d77979e /fs/jbd2/commit.c | |
| parent | sched/core: move IO scheduling accounting from io_schedule_timeout() into sch... (diff) | |
| download | kernel-10ab56434f2f633a51e432ee8b7c29e12438e163.tar.gz kernel-10ab56434f2f633a51e432ee8b7c29e12438e163.zip | |
sched/core: Separate out io_schedule_prepare() and io_schedule_finish()
Now that IO schedule accounting is done inside __schedule(),
io_schedule() can be split into three steps - prep, schedule, and
finish - where the schedule part doesn't need any special annotation.
This allows marking a sleep as iowait by simply wrapping an existing
blocking function with io_schedule_prepare() and io_schedule_finish().
Because task_struct->in_iowait is single bit, the caller of
io_schedule_prepare() needs to record and the pass its state to
io_schedule_finish() to be safe regarding nesting. While this isn't
the prettiest, these functions are mostly gonna be used by core
functions and we don't want to use more space for ->in_iowait.
While at it, as it's simple to do now, reimplement io_schedule()
without unnecessarily going through io_schedule_timeout().
Signed-off-by: Tejun Heo <[email protected]>
Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: Jens Axboe <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Mike Galbraith <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'fs/jbd2/commit.c')
0 files changed, 0 insertions, 0 deletions
