diff options
| author | Frederic Weisbecker <frederic@kernel.org> | 2026-05-08 16:16:45 +0300 |
|---|---|---|
| committer | Thomas Gleixner <tglx@kernel.org> | 2026-06-02 22:27:26 +0300 |
| commit | 3b45b4f188f3a0ebd16ab71efd2ffcc7a16ad861 (patch) | |
| tree | b51b82e3b7602d9c72f1f69e2810fb2ff3e05de5 /include/linux/kernel_stat.h | |
| parent | 127b2eb44f36d5d7059f1af425b5800cb27440f9 (diff) | |
| download | linux-3b45b4f188f3a0ebd16ab71efd2ffcc7a16ad861.tar.xz | |
sched/cputime: Provide get_cpu_[idle|iowait]_time_us() off-case
The last reason why get_cpu_idle/iowait_time_us() may return -1 now is if
the config doesn't support nohz.
The ad-hoc replacement solution by cpufreq is to compute jiffies minus the
whole busy cputime. Although the intention should provide a coherent low
resolution estimation of the idle and iowait time, the implementation is
buggy because jiffies don't start at 0.
Just provide instead a real get_cpu_[idle|iowait]_time_us() offcase.
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Tested-by: Shrikanth Hegde <sshegde@linux.ibm.com>
Link: https://patch.msgid.link/20260508131647.43868-14-frederic@kernel.org
Diffstat (limited to 'include/linux/kernel_stat.h')
| -rw-r--r-- | include/linux/kernel_stat.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/kernel_stat.h b/include/linux/kernel_stat.h index 3680519d7b2c..512104b0ff49 100644 --- a/include/linux/kernel_stat.h +++ b/include/linux/kernel_stat.h @@ -133,6 +133,9 @@ static inline bool kcpustat_idle_dyntick(void) } #endif /* CONFIG_NO_HZ_COMMON */ +extern u64 get_cpu_idle_time_us(int cpu, u64 *last_update_time); +extern u64 get_cpu_iowait_time_us(int cpu, u64 *last_update_time); + /* Fetch cputime values when vtime is disabled on a CPU */ static inline u64 kcpustat_field_default(enum cpu_usage_stat usage, int cpu) { |
