Merge "sched/walt: Remove fixup_walt_sched_stats sched_class method"

This commit is contained in:
qctecmdr 2020-04-30 13:38:47 -07:00 • committed by Gerrit - the friendly Code Review server
commit 2a8de75724
10 changed files with 380 additions and 501 deletions

View file

@ -998,11 +998,11 @@ TRACE_EVENT(sched_task_util,
TP_PROTO(struct task_struct *p, unsigned long candidates,
int best_energy_cpu, bool sync, int need_idle, int fastpath,
bool placement_boost, u64 start_t,
bool stune_boosted, bool is_rtg, bool rtg_skip_min,
bool uclamp_boosted, bool is_rtg, bool rtg_skip_min,
int start_cpu),
TP_ARGS(p, candidates, best_energy_cpu, sync, need_idle, fastpath,
placement_boost, start_t, stune_boosted, is_rtg, rtg_skip_min,
placement_boost, start_t, uclamp_boosted, is_rtg, rtg_skip_min,
start_cpu),
TP_STRUCT__entry(
@ -1018,7 +1018,7 @@ TRACE_EVENT(sched_task_util,
__field(int, placement_boost)
__field(int, rtg_cpu)
__field(u64, latency)
__field(bool, stune_boosted)
__field(bool, uclamp_boosted)
__field(bool, is_rtg)
__field(bool, rtg_skip_min)
__field(int, start_cpu)
@ -1039,7 +1039,7 @@ TRACE_EVENT(sched_task_util,
__entry->fastpath = fastpath;
__entry->placement_boost = placement_boost;
__entry->latency = (sched_clock() - start_t);
__entry->stune_boosted = stune_boosted;
__entry->uclamp_boosted = uclamp_boosted;
__entry->is_rtg = is_rtg;
__entry->rtg_skip_min = rtg_skip_min;
__entry->start_cpu = start_cpu;
@ -1061,7 +1061,7 @@ TRACE_EVENT(sched_task_util,
__entry->pid, __entry->comm, __entry->util, __entry->prev_cpu,
__entry->candidates, __entry->best_energy_cpu, __entry->sync,
__entry->need_idle, __entry->fastpath, __entry->placement_boost,
__entry->latency, __entry->stune_boosted,
__entry->latency, __entry->uclamp_boosted,
__entry->is_rtg, __entry->rtg_skip_min, __entry->start_cpu,
__entry->unfilter, __entry->cpus_allowed, __entry->task_boost)
)
@ -1073,12 +1073,13 @@ TRACE_EVENT(sched_find_best_target,
TP_PROTO(struct task_struct *tsk,
unsigned long min_util, int start_cpu,
int best_idle, int best_active, int most_spare_cap,
int target, int backup),
int best_idle, int most_spare_cap, int target,
int order_index, int end_index,
int skip, bool running),
TP_ARGS(tsk, min_util, start_cpu,
best_idle, best_active, most_spare_cap,
target, backup),
best_idle, most_spare_cap, target,
order_index, end_index, skip, running),
TP_STRUCT__entry(
__array(char, comm, TASK_COMM_LEN)
@ -1086,10 +1087,12 @@ TRACE_EVENT(sched_find_best_target,
__field(unsigned long, min_util)
__field(int, start_cpu)
__field(int, best_idle)
__field(int, best_active)
__field(int, most_spare_cap)
__field(int, target)
__field(int, backup)
__field(int, order_index)
__field(int, end_index)
__field(int, skip)
__field(bool, running)
),
TP_fast_assign(
@ -1098,18 +1101,24 @@ TRACE_EVENT(sched_find_best_target,
__entry->min_util = min_util;
__entry->start_cpu = start_cpu;
__entry->best_idle = best_idle;
__entry->best_active = best_active;
__entry->most_spare_cap = most_spare_cap;
__entry->target = target;
__entry->backup = backup;
__entry->order_index = order_index;
__entry->end_index = end_index;
__entry->skip = skip;
__entry->running = running;
),
TP_printk("pid=%d comm=%s start_cpu=%d best_idle=%d best_active=%d most_spare_cap=%d target=%d backup=%d",
TP_printk("pid=%d comm=%s start_cpu=%d best_idle=%d most_spare_cap=%d target=%d order_index=%d end_index=%d skip=%d running=%d",
__entry->pid, __entry->comm,
__entry->start_cpu,
__entry->best_idle, __entry->best_active,
__entry->best_idle,
__entry->most_spare_cap,
__entry->target, __entry->backup)
__entry->target,
__entry->order_index,
__entry->end_index,
__entry->skip,
__entry->running)
);
#endif /* CONFIG_SMP */

View file

@ -924,7 +924,7 @@ config FAIR_GROUP_SCHED
config CFS_BANDWIDTH
bool "CPU bandwidth provisioning for FAIR_GROUP_SCHED"
depends on FAIR_GROUP_SCHED
depends on FAIR_GROUP_SCHED && !SCHED_WALT
default n
help
This option allows users to define CPU bandwidth rates (limits) for

View file

@ -2469,9 +2469,6 @@ const struct sched_class dl_sched_class = {
.switched_to = switched_to_dl,
.update_curr = update_curr_dl,
#ifdef CONFIG_SCHED_WALT
.fixup_walt_sched_stats = fixup_walt_sched_stats_common,
#endif
};
int sched_dl_global_validate(void)

File diff suppressed because it is too large Load diff

View file

@ -90,11 +90,6 @@ SCHED_FEAT(WA_BIAS, true)
*/
SCHED_FEAT(UTIL_EST, true)
/*
* Fast pre-selection of CPU candidates for EAS.
*/
SCHED_FEAT(FIND_BEST_TARGET, true)
/*
* Request max frequency from schedutil whenever a RT task is running.
*/

View file

@ -2674,10 +2674,6 @@ const struct sched_class rt_sched_class = {
#ifdef CONFIG_UCLAMP_TASK
.uclamp_enabled = 1,
#endif
#ifdef CONFIG_SCHED_WALT
.fixup_walt_sched_stats = fixup_walt_sched_stats_common,
#endif
};
#ifdef CONFIG_RT_GROUP_SCHED

View file

@ -1905,12 +1905,6 @@ struct sched_class {
#ifdef CONFIG_FAIR_GROUP_SCHED
void (*task_change_group)(struct task_struct *p, int type);
#endif
#ifdef CONFIG_SCHED_WALT
void (*fixup_walt_sched_stats)(struct rq *rq, struct task_struct *p,
u16 updated_demand_scaled,
u16 updated_pred_demand_scaled);
#endif
};
@ -2881,7 +2875,6 @@ struct related_thread_group {
extern struct sched_cluster *sched_cluster[NR_CPUS];
extern unsigned int __weak sched_disable_window_stats;
extern unsigned int max_possible_capacity;
extern unsigned int __weak min_max_possible_capacity;
extern unsigned int __read_mostly __weak sched_init_task_load_windows;
@ -3135,13 +3128,6 @@ static inline bool is_min_capacity_cluster(struct sched_cluster *cluster)
{
return is_min_capacity_cpu(cluster_first_cpu(cluster));
}
extern void walt_fixup_sched_stats_fair(struct rq *rq,
struct task_struct *p,
u16 updated_demand_scaled,
u16 updated_pred_demand_scaled);
extern void walt_fixup_nr_big_tasks(struct rq *rq, struct task_struct *p,
int delta, bool inc);
#else /* CONFIG_SCHED_WALT */
struct walt_sched_stats;

View file

@ -148,7 +148,4 @@ const struct sched_class stop_sched_class = {
.prio_changed = prio_changed_stop,
.switched_to = switched_to_stop,
.update_curr = update_curr_stop,
#ifdef CONFIG_SCHED_WALT
.fixup_walt_sched_stats = fixup_walt_sched_stats_common,
#endif
};

View file

@ -172,12 +172,6 @@ bool __weak early_detection_notify(struct rq *rq, u64 wallclock)
void __weak note_task_waking(struct task_struct *p, u64 wallclock) { }
void __weak walt_fixup_sched_stats_fair(struct rq *rq, struct task_struct *p,
u16 updated_demand_scaled, u16 updated_pred_demand_scaled) { }
void __weak walt_fixup_nr_big_tasks(struct rq *rq, struct task_struct *p,
int delta, bool inc) { }
int __weak group_balance_cpu_not_isolated(struct sched_group *sg)
{
return group_balance_cpu(sg);
@ -191,13 +185,6 @@ void __weak attach_tasks_core(struct list_head *tasks, struct rq *rq) { }
void __weak walt_update_task_ravg(struct task_struct *p, struct rq *rq,
int event, u64 wallclock, u64 irqtime) { }
void __weak fixup_walt_sched_stats_common(struct rq *rq, struct task_struct *p,
u16 updated_demand_scaled, u16 updated_pred_demand_scaled) { }
void __weak inc_rq_walt_stats(struct rq *rq, struct task_struct *p) { }
void __weak dec_rq_walt_stats(struct rq *rq, struct task_struct *p) { }
void __weak fixup_busy_time(struct task_struct *p, int new_cpu) { }
void __weak init_new_task_load(struct task_struct *p) { }

View file

@ -14,7 +14,8 @@
#define EXITING_TASK_MARKER 0xdeaddead
extern unsigned int __weak walt_rotation_enabled;
extern int __read_mostly __weak num_sched_clusters;
extern cpumask_t __read_mostly __weak **cpu_array;
extern void
walt_update_task_ravg(struct task_struct *p, struct rq *rq, int event,
u64 wallclock, u64 irqtime);
@ -24,9 +25,6 @@ fixup_cumulative_runnable_avg(struct walt_sched_stats *stats,
s64 demand_scaled_delta,
s64 pred_demand_scaled_delta)
{
if (sched_disable_window_stats)
return;
stats->cumulative_runnable_avg_scaled += demand_scaled_delta;
BUG_ON((s64)stats->cumulative_runnable_avg_scaled < 0);
@ -37,9 +35,6 @@ fixup_cumulative_runnable_avg(struct walt_sched_stats *stats,
static inline void
walt_inc_cumulative_runnable_avg(struct rq *rq, struct task_struct *p)
{
if (sched_disable_window_stats)
return;
fixup_cumulative_runnable_avg(&rq->walt_stats, p->ravg.demand_scaled,
p->ravg.pred_demand_scaled);
@ -57,9 +52,6 @@ walt_inc_cumulative_runnable_avg(struct rq *rq, struct task_struct *p)
static inline void
walt_dec_cumulative_runnable_avg(struct rq *rq, struct task_struct *p)
{
if (sched_disable_window_stats)
return;
fixup_cumulative_runnable_avg(&rq->walt_stats,
-(s64)p->ravg.demand_scaled,
-(s64)p->ravg.pred_demand_scaled);
@ -73,12 +65,32 @@ walt_dec_cumulative_runnable_avg(struct rq *rq, struct task_struct *p)
walt_fixup_cum_window_demand(rq, -(s64)p->ravg.demand_scaled);
}
extern void
fixup_walt_sched_stats_common(struct rq *rq, struct task_struct *p,
u16 updated_demand_scaled,
u16 updated_pred_demand_scaled);
extern void inc_rq_walt_stats(struct rq *rq, struct task_struct *p);
extern void dec_rq_walt_stats(struct rq *rq, struct task_struct *p);
static inline void walt_adjust_nr_big_tasks(struct rq *rq, int delta, bool inc)
{
sched_update_nr_prod(cpu_of(rq), 0, true);
rq->walt_stats.nr_big_tasks += inc ? delta : -delta;
BUG_ON(rq->walt_stats.nr_big_tasks < 0);
}
static inline void inc_rq_walt_stats(struct rq *rq, struct task_struct *p)
{
if (p->misfit)
rq->walt_stats.nr_big_tasks++;
walt_inc_cumulative_runnable_avg(rq, p);
}
static inline void dec_rq_walt_stats(struct rq *rq, struct task_struct *p)
{
if (p->misfit)
rq->walt_stats.nr_big_tasks--;
BUG_ON(rq->walt_stats.nr_big_tasks < 0);
walt_dec_cumulative_runnable_avg(rq, p);
}
extern void fixup_busy_time(struct task_struct *p, int new_cpu);
extern void init_new_task_load(struct task_struct *p);
extern void mark_task_starting(struct task_struct *p);
@ -239,13 +251,6 @@ inc_rq_walt_stats(struct rq *rq, struct task_struct *p) { }
static inline void
dec_rq_walt_stats(struct rq *rq, struct task_struct *p) { }
static inline void
fixup_walt_sched_stats_common(struct rq *rq, struct task_struct *p,
u16 updated_demand_scaled,
u16 updated_pred_demand_scaled)
{
}
static inline u64 sched_irqload(int cpu)
{
return 0;