Loading include/linux/sched.h +1 −1 Original line number Diff line number Diff line Loading @@ -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; Loading include/linux/sched/sysctl.h +1 −0 Original line number Diff line number Diff line Loading @@ -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, Loading include/trace/events/sched.h +7 −4 Original line number Diff line number Diff line Loading @@ -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 ) Loading @@ -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( Loading @@ -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 Loading kernel/sched/core.c +1 −0 Original line number Diff line number Diff line Loading @@ -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]); } Loading kernel/sched/core_ctl.c +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 Loading Loading @@ -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 Loading
include/linux/sched.h +1 −1 Original line number Diff line number Diff line Loading @@ -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; Loading
include/linux/sched/sysctl.h +1 −0 Original line number Diff line number Diff line Loading @@ -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, Loading
include/trace/events/sched.h +7 −4 Original line number Diff line number Diff line Loading @@ -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 ) Loading @@ -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( Loading @@ -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 Loading
kernel/sched/core.c +1 −0 Original line number Diff line number Diff line Loading @@ -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]); } Loading
kernel/sched/core_ctl.c +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 Loading Loading @@ -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