ANDROID: arch_topology: Add vendor hook

Add a vendor hook in the path of topology determination. This is needed
to implement Qualcomm's proprietary load tracking scheme, WALT via
vendor modules.

This change reverts commit 834285e43d (Revert "ANDROID: sched: Add vendor
hooks for update_topology") and further refactors the revert to fit in the
current mainline. Change was originally reverted due to conflicts with
upstream merges.

Bug: 244323113
Signed-off-by: Sai Harshini Nimmala <quic_snimmala@quicinc.com>
Change-Id: I752b2fe25e1389fcdec4f364d606913963a3e4d2
This commit is contained in:
Sai Harshini Nimmala
2022-08-18 05:28:49 -07:00
committed by Todd Kjos
parent 7072205886
commit 285daa8b39
3 changed files with 9 additions and 0 deletions

View File

@@ -23,6 +23,9 @@
#define CREATE_TRACE_POINTS
#include <trace/events/thermal_pressure.h>
#undef CREATE_TRACE_POINTS
#include <trace/hooks/sched.h>
static DEFINE_PER_CPU(struct scale_freq_data __rcu *, sft_data);
static struct cpumask scale_freq_counters_mask;
static bool scale_freq_invariant;
@@ -255,6 +258,7 @@ static void update_topology_flags_workfn(struct work_struct *work)
{
update_topology = 1;
rebuild_sched_domains();
trace_android_vh_update_topology_flags_workfn(NULL);
pr_debug("sched_domain hierarchy rebuilt, flags updated\n");
update_topology = 0;
}

View File

@@ -313,6 +313,10 @@ DECLARE_HOOK(android_vh_setscheduler_uclamp,
TP_PROTO(struct task_struct *tsk, int clamp_id, unsigned int value),
TP_ARGS(tsk, clamp_id, value));
DECLARE_HOOK(android_vh_update_topology_flags_workfn,
TP_PROTO(void *unused),
TP_ARGS(unused));
/* macro versions of hooks are no longer required */
#endif /* _TRACE_HOOK_SCHED_H */

View File

@@ -80,3 +80,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_fork_init);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ttwu_cond);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_schedule_bug);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_exec);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_update_topology_flags_workfn);