mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 21:07:02 +09:00
ANDROID: sched: add em_cpu_energy vendor hook
We add a vendor hook for util to freq calculation in schedutil, so we need to do corresponding change for energy calculation. android_vh_em_cpu_energy adjust energy calculation Bug: 178022444 Signed-off-by: Yun Hsiang <yun.hsiang@mediatek.com> Change-Id: Iae772cf07881602eea3f27aeb75fba753e7c2635
This commit is contained in:
committed by
Quentin Perret
parent
36cfd6f81a
commit
b5a8eefc03
@@ -116,3 +116,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_misfit_status);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpu_cgroup_attach);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpu_cgroup_can_attach);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_map_util_freq);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_em_cpu_energy);
|
||||
|
||||
@@ -198,6 +198,13 @@ DECLARE_HOOK(android_vh_map_util_freq,
|
||||
TP_PROTO(unsigned long util, unsigned long freq,
|
||||
unsigned long cap, unsigned long *next_freq),
|
||||
TP_ARGS(util, freq, cap, next_freq));
|
||||
|
||||
struct em_perf_domain;
|
||||
DECLARE_HOOK(android_vh_em_cpu_energy,
|
||||
TP_PROTO(struct em_perf_domain *pd,
|
||||
unsigned long max_util, unsigned long sum_util,
|
||||
unsigned long *energy),
|
||||
TP_ARGS(pd, max_util, sum_util, energy));
|
||||
#endif /* _TRACE_HOOK_SCHED_H */
|
||||
/* This part must be outside protection */
|
||||
#include <trace/define_trace.h>
|
||||
|
||||
@@ -6532,6 +6532,7 @@ compute_energy(struct task_struct *p, int dst_cpu, struct perf_domain *pd)
|
||||
struct cpumask *pd_mask = perf_domain_span(pd);
|
||||
unsigned long cpu_cap = arch_scale_cpu_capacity(cpumask_first(pd_mask));
|
||||
unsigned long max_util = 0, sum_util = 0;
|
||||
unsigned long energy = 0;
|
||||
int cpu;
|
||||
|
||||
/*
|
||||
@@ -6568,7 +6569,11 @@ compute_energy(struct task_struct *p, int dst_cpu, struct perf_domain *pd)
|
||||
max_util = max(max_util, cpu_util);
|
||||
}
|
||||
|
||||
return em_cpu_energy(pd->em_pd, max_util, sum_util);
|
||||
trace_android_vh_em_cpu_energy(pd->em_pd, max_util, sum_util, &energy);
|
||||
if (!energy)
|
||||
energy = em_cpu_energy(pd->em_pd, max_util, sum_util);
|
||||
|
||||
return energy;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user