summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/sched.h9
-rw-r--r--include/linux/sched/sysctl.h1
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 */