bring up: add vendor hook android_rvh_place_entity for kernel6.6 [1/1]

PD#SWPL-151469

Problem:
vendor hook android_rvh_place_entity do not exist in kernel6.6. Add it
in autopatch temporarily.

Solution:
add vendor hook android_rvh_place_entity for scheduler optimize
when debug

Verify:
local

Change-Id: I1c58b88090fd1e4ab8aff907532f417bc84971f8
Signed-off-by: Dezhen Wang <dezhen.wang@amlogic.com>
This commit is contained in:
Dezhen Wang
2023-12-29 10:44:30 +00:00
committed by Wanwei Jiang
parent b9ca09ab85
commit cf74d1cb69
@@ -0,0 +1,64 @@
From 2cc4d1389d3091ceee53ea2519eba59b23643044 Mon Sep 17 00:00:00 2001
From: Dezhen Wang <dezhen.wang@amlogic.com>
Date: Fri, 29 Dec 2023 10:42:03 +0000
Subject: [PATCH] bring up: add vendor hook for kernel6.6 [1/1]
PD#SWPL-151469
Problem:
loss vendor hook
Solution:
add vendor hook
Verify:
SC2/AH212
Change-Id: I8b4f50d05814d67d8d60949aad59d15013bb3f3a
Signed-off-by: Dezhen Wang <dezhen.wang@amlogic.com>
---
include/trace/hooks/sched.h | 5 +++++
kernel/sched/fair.c | 1 +
kernel/sched/vendor_hooks.c | 1 +
3 files changed, 7 insertions(+)
diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h
index 20255a477947..e847bf56f295 100644
--- a/include/trace/hooks/sched.h
+++ b/include/trace/hooks/sched.h
@@ -255,6 +255,11 @@ DECLARE_HOOK(android_vh_set_wake_flags,
TP_PROTO(int *wake_flags, unsigned int *mode),
TP_ARGS(wake_flags, mode));
+struct sched_entity;
+DECLARE_RESTRICTED_HOOK(android_rvh_place_entity,
+ TP_PROTO(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial, u64 *vruntime),
+ TP_ARGS(cfs_rq, se, initial, vruntime), 1);
+
/* macro versions of hooks are no longer required */
#endif /* _TRACE_HOOK_SCHED_H */
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 0e144aa8188a..614d30e452ae 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -5094,6 +5094,7 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int flags)
* EEVDF: vd_i = ve_i + r_i/w_i
*/
se->deadline = se->vruntime + vslice;
+ trace_android_rvh_place_entity(cfs_rq, se, flags, &vruntime);
}
static void check_enqueue_throttle(struct cfs_rq *cfs_rq);
diff --git a/kernel/sched/vendor_hooks.c b/kernel/sched/vendor_hooks.c
index 0838a1b58ac4..53d0ea40c22d 100644
--- a/kernel/sched/vendor_hooks.c
+++ b/kernel/sched/vendor_hooks.c
@@ -67,3 +67,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_update_topology_flags_workfn);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_thermal_stats);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_wake_up_sync);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_wake_flags);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_place_entity);
--
2.43.0