diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/sched.h | 9 | ||||
| -rw-r--r-- | include/linux/sched/sysctl.h | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h index 59eb23e73fa0..6d43a9cb8757 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1260,6 +1260,7 @@ struct sched_statistics { #endif #define RAVG_HIST_SIZE_MAX 5 +#define NUM_BUSY_BUCKETS 10 /* ravg represents frequency scaled cpu-demand of tasks */ struct ravg { @@ -1284,6 +1285,11 @@ struct ravg { * * 'prev_window' represents task's contribution to cpu busy time * statistics (rq->prev_runnable_sum) in previous window + * + * 'pred_demand' represents task's current predicted cpu busy time + * + * 'busy_buckets' groups historical busy time into different buckets + * used for prediction */ u64 mark_start; u32 sum, demand; @@ -1291,6 +1297,8 @@ struct ravg { #ifdef CONFIG_SCHED_FREQ_INPUT u32 curr_window, prev_window; u16 active_windows; + u32 pred_demand; + u8 busy_buckets[NUM_BUSY_BUCKETS]; #endif }; @@ -2134,6 +2142,7 @@ extern void thread_group_cputime_adjusted(struct task_struct *p, cputime_t *ut, struct sched_load { unsigned long prev_load; unsigned long new_task_load; + unsigned long predicted_load; }; #if defined(CONFIG_SCHED_FREQ_INPUT) diff --git a/include/linux/sched/sysctl.h b/include/linux/sched/sysctl.h index 676502dec830..437314e569be 100644 --- a/include/linux/sched/sysctl.h +++ b/include/linux/sched/sysctl.h @@ -72,6 +72,7 @@ extern unsigned int sysctl_sched_enable_colocation; extern unsigned int sysctl_sched_restrict_cluster_spill; #if defined(CONFIG_SCHED_FREQ_INPUT) extern unsigned int sysctl_sched_new_task_windows; +extern unsigned int sysctl_sched_pred_alert_freq; #endif #else /* CONFIG_SCHED_HMP */ |
