lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date: Wed, 14 Feb 2024 16:20:55 +0800
From: "zhaoyang.huang" <zhaoyang.huang@...soc.com>
To: Mel Gorman <mgorman@...hsingularity.net>,
        Peter Zijlstra
	<peterz@...radead.org>, Ingo Molnar <mingo@...hat.com>,
        Juri Lelli
	<juri.lelli@...hat.com>,
        Vincent Guittot <vincent.guittot@...aro.org>,
        <linux-kernel@...r.kernel.org>,
        Zhaoyang Huang <huangzhaoyang@...il.com>, <steve.kang@...soc.com>
Subject: [Resend PATCH 1/1] sched: make cpu_util_cfs formally visible

From: Zhaoyang Huang <zhaoyang.huang@...soc.com>

As RT, DL, IRQ time could be deemed as lost time of CFS's task, some
timing value(eg. algorithm's cost which can't disable preemption)
want to know the distribution of how these timing spread approximately
by using utilization account value (nivcsw is not enough
sometimes), OR evaluate how heavily the preemption is. However,
cpu_util_cfs is not formally visible as not in include/sched.h.

eg.
Effective part of A = Total_time * cpu_util_cfs / sched_cpu_util

Task's Timing value A
Timing start
|
|
preempted by RT, DL or IRQ
|\
| This period time is nonvoluntary CPU give up, need to know how long
|/
sched in again
|
|
|
Timing end

Signed-off-by: Zhaoyang Huang <zhaoyang.huang@...soc.com>
---
 include/linux/sched.h | 1 +
 kernel/sched/sched.h  | 1 -
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/sched.h b/include/linux/sched.h
index 77f01ac385f7..56953626526f 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -2318,6 +2318,7 @@ static inline bool owner_on_cpu(struct task_struct *owner)
 
 /* Returns effective CPU energy utilization, as seen by the scheduler */
 unsigned long sched_cpu_util(int cpu);
+unsigned long cpu_util_cfs(int cpu);
 #endif /* CONFIG_SMP */
 
 #ifdef CONFIG_RSEQ
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index 04846272409c..46110409e0f3 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -3027,7 +3027,6 @@ static inline unsigned long cpu_util_dl(struct rq *rq)
 }
 
 
-extern unsigned long cpu_util_cfs(int cpu);
 extern unsigned long cpu_util_cfs_boost(int cpu);
 
 static inline unsigned long cpu_util_rt(struct rq *rq)
-- 
2.25.1


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ