Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4f4c93fd authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "sched: improve the scheduler"

parents bcebdcd3 4e13d112
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1777,7 +1777,7 @@ struct task_struct {
	u32 init_load_pct;
	u64 last_wake_ts;
	u64 last_switch_out_ts;
	u64 last_cpu_selected_ts;
	u64 last_enqueued_ts;
	struct related_thread_group *grp;
	struct list_head grp_list;
	u64 cpu_cycles;
+1 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ extern unsigned int sysctl_sched_use_walt_task_util;
extern unsigned int sysctl_sched_boost;
extern unsigned int sysctl_sched_group_upmigrate_pct;
extern unsigned int sysctl_sched_group_downmigrate_pct;
extern unsigned int sysctl_sched_walt_rotate_big_tasks;

extern int
walt_proc_update_handler(struct ctl_table *table, int write,
+7 −4
Original line number Diff line number Diff line
@@ -596,8 +596,8 @@ DEFINE_EVENT(sched_cpu_load, sched_cpu_load_lb,

TRACE_EVENT(sched_load_to_gov,

	TP_PROTO(struct rq *rq, u64 aggr_grp_load, u32 tt_load, u64 freq_aggr_thresh, u64 load, int policy),
	TP_ARGS(rq, aggr_grp_load, tt_load, freq_aggr_thresh, load, policy),
	TP_PROTO(struct rq *rq, u64 aggr_grp_load, u32 tt_load, u64 freq_aggr_thresh, u64 load, int policy, int big_task_rotation),
	TP_ARGS(rq, aggr_grp_load, tt_load, freq_aggr_thresh, load, policy, big_task_rotation),

	TP_STRUCT__entry(
		__field(	int,	cpu			)
@@ -612,6 +612,7 @@ TRACE_EVENT(sched_load_to_gov,
		__field(	u64,	grp_nt_ps		)
		__field(	u64,	pl			)
		__field(	u64,    load			)
		__field(	int,    big_task_rotation	)
	),

	TP_fast_assign(
@@ -627,13 +628,15 @@ TRACE_EVENT(sched_load_to_gov,
		__entry->grp_nt_ps	= rq->grp_time.nt_prev_runnable_sum;
		__entry->pl		= rq->walt_stats.pred_demands_sum;
		__entry->load		= load;
		__entry->big_task_rotation = big_task_rotation;
	),

	TP_printk("cpu=%d policy=%d ed_task_pid=%d aggr_grp_load=%llu freq_aggr_thresh=%llu tt_load=%llu rq_ps=%llu grp_rq_ps=%llu nt_ps=%llu grp_nt_ps=%llu pl=%llu load=%llu",
	TP_printk("cpu=%d policy=%d ed_task_pid=%d aggr_grp_load=%llu freq_aggr_thresh=%llu tt_load=%llu rq_ps=%llu grp_rq_ps=%llu nt_ps=%llu grp_nt_ps=%llu pl=%llu load=%llu big_task_rotation=%d",
		__entry->cpu, __entry->policy, __entry->ed_task_pid,
		__entry->aggr_grp_load, __entry->freq_aggr_thresh,
		__entry->tt_load, __entry->rq_ps, __entry->grp_rq_ps,
		__entry->nt_ps, __entry->grp_nt_ps, __entry->pl, __entry->load)
		__entry->nt_ps, __entry->grp_nt_ps, __entry->pl, __entry->load,
		__entry->big_task_rotation)
);
#endif

+1 −0
Original line number Diff line number Diff line
@@ -775,6 +775,7 @@ static inline void enqueue_task(struct rq *rq, struct task_struct *p, int flags)
	if (!(flags & ENQUEUE_RESTORE))
		sched_info_queued(rq, p);
	p->sched_class->enqueue_task(rq, p, flags);
	walt_update_last_enqueue(p);
	trace_sched_enq_deq_task(p, 1, cpumask_bits(&p->cpus_allowed)[0]);
}

+2 −1
Original line number Diff line number Diff line
/* Copyright (c) 2014-2017, The Linux Foundation. All rights reserved.
/* Copyright (c) 2014-2018, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -482,6 +482,7 @@ static void update_running_avg(void)

	sched_get_nr_running_avg(&avg, &iowait_avg, &big_avg,
				 &max_nr, &big_max_nr);
	walt_rotation_checkpoint(big_avg);

	spin_lock_irqsave(&state_lock, flags);
	for_each_cluster(cluster, index) {
Loading