[PATCHSET v6 0/4] Split iowait into two states
From: Jens Axboe
Date: Mon Aug 19 2024 - 11:43:19 EST
Hi,
This is v6 of the patchset where the current in_iowait state is split
into two parts:
1) The "task is sleeping waiting on IO", and would like cpufreq goodness
in terms of sleep and wakeup latencies.
2) The above, and also accounted as such in the iowait stats.
The current ->in_iowait covers both, this series splits it into two types
of state so that each can be controlled seperately.
Patches 1..3 are prep patches, changing the type of
task_struct->nr_iowait and adding helpers to manipulate the iowait counts.
Patch 4 does the actual splitting.
This has been sitting for a while, would be nice to get this queued up
for 6.12. Comments welcome!
arch/s390/appldata/appldata_base.c | 2 +-
arch/s390/appldata/appldata_os.c | 2 +-
block/blk-cgroup.c | 2 +-
fs/proc/stat.c | 2 +-
include/linux/sched.h | 10 ++++-
include/linux/sched/stat.h | 5 ++-
kernel/locking/mutex.c | 4 +-
kernel/locking/rtmutex_api.c | 4 +-
kernel/sched/core.c | 68 ++++++++++++++++++++++++------
kernel/sched/cputime.c | 3 +-
kernel/sched/sched.h | 5 ++-
kernel/time/tick-sched.c | 6 +--
12 files changed, 81 insertions(+), 32 deletions(-)
Since v5:
- Make nr_iowait atomic_long_t unconditionally, as 32-bit archs have
it as a 32-bit type. This avoids the ifdef stuff in sched/core.c.
Thanks to Zhang Qiao for that suggestion.
--
Jens Axboe