aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/init_task.h1
-rw-r--r--include/linux/plist.h9
-rw-r--r--include/linux/sched.h7
3 files changed, 13 insertions, 4 deletions
diff --git a/include/linux/init_task.h b/include/linux/init_task.h
index ea0ea1a4c36f..fd2b11f59077 100644
--- a/include/linux/init_task.h
+++ b/include/linux/init_task.h
@@ -148,6 +148,7 @@ extern struct cred init_cred;
148 .nr_cpus_allowed = NR_CPUS, \ 148 .nr_cpus_allowed = NR_CPUS, \
149 }, \ 149 }, \
150 .tasks = LIST_HEAD_INIT(tsk.tasks), \ 150 .tasks = LIST_HEAD_INIT(tsk.tasks), \
151 .pushable_tasks = PLIST_NODE_INIT(tsk.pushable_tasks, MAX_PRIO), \
151 .ptraced = LIST_HEAD_INIT(tsk.ptraced), \ 152 .ptraced = LIST_HEAD_INIT(tsk.ptraced), \
152 .ptrace_entry = LIST_HEAD_INIT(tsk.ptrace_entry), \ 153 .ptrace_entry = LIST_HEAD_INIT(tsk.ptrace_entry), \
153 .real_parent = &tsk, \ 154 .real_parent = &tsk, \
diff --git a/include/linux/plist.h b/include/linux/plist.h
index 85de2f055874..45926d77d6ac 100644
--- a/include/linux/plist.h
+++ b/include/linux/plist.h
@@ -96,6 +96,10 @@ struct plist_node {
96# define PLIST_HEAD_LOCK_INIT(_lock) 96# define PLIST_HEAD_LOCK_INIT(_lock)
97#endif 97#endif
98 98
99#define _PLIST_HEAD_INIT(head) \
100 .prio_list = LIST_HEAD_INIT((head).prio_list), \
101 .node_list = LIST_HEAD_INIT((head).node_list)
102
99/** 103/**
100 * PLIST_HEAD_INIT - static struct plist_head initializer 104 * PLIST_HEAD_INIT - static struct plist_head initializer
101 * @head: struct plist_head variable name 105 * @head: struct plist_head variable name
@@ -103,8 +107,7 @@ struct plist_node {
103 */ 107 */
104#define PLIST_HEAD_INIT(head, _lock) \ 108#define PLIST_HEAD_INIT(head, _lock) \
105{ \ 109{ \
106 .prio_list = LIST_HEAD_INIT((head).prio_list), \ 110 _PLIST_HEAD_INIT(head), \
107 .node_list = LIST_HEAD_INIT((head).node_list), \
108 PLIST_HEAD_LOCK_INIT(&(_lock)) \ 111 PLIST_HEAD_LOCK_INIT(&(_lock)) \
109} 112}
110 113
@@ -116,7 +119,7 @@ struct plist_node {
116#define PLIST_NODE_INIT(node, __prio) \ 119#define PLIST_NODE_INIT(node, __prio) \
117{ \ 120{ \
118 .prio = (__prio), \ 121 .prio = (__prio), \
119 .plist = PLIST_HEAD_INIT((node).plist, NULL), \ 122 .plist = { _PLIST_HEAD_INIT((node).plist) }, \
120} 123}
121 124
122/** 125/**
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 2127e959e0f4..61d9b6c1ebc9 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -981,6 +981,7 @@ struct sched_class {
981 struct rq *busiest, struct sched_domain *sd, 981 struct rq *busiest, struct sched_domain *sd,
982 enum cpu_idle_type idle); 982 enum cpu_idle_type idle);
983 void (*pre_schedule) (struct rq *this_rq, struct task_struct *task); 983 void (*pre_schedule) (struct rq *this_rq, struct task_struct *task);
984 int (*needs_post_schedule) (struct rq *this_rq);
984 void (*post_schedule) (struct rq *this_rq); 985 void (*post_schedule) (struct rq *this_rq);
985 void (*task_wake_up) (struct rq *this_rq, struct task_struct *task); 986 void (*task_wake_up) (struct rq *this_rq, struct task_struct *task);
986 987
@@ -1035,6 +1036,10 @@ struct sched_entity {
1035 u64 last_wakeup; 1036 u64 last_wakeup;
1036 u64 avg_overlap; 1037 u64 avg_overlap;
1037 1038
1039 u64 start_runtime;
1040 u64 avg_wakeup;
1041 u64 nr_migrations;
1042
1038#ifdef CONFIG_SCHEDSTATS 1043#ifdef CONFIG_SCHEDSTATS
1039 u64 wait_start; 1044 u64 wait_start;
1040 u64 wait_max; 1045 u64 wait_max;
@@ -1050,7 +1055,6 @@ struct sched_entity {
1050 u64 exec_max; 1055 u64 exec_max;
1051 u64 slice_max; 1056 u64 slice_max;
1052 1057
1053 u64 nr_migrations;
1054 u64 nr_migrations_cold; 1058 u64 nr_migrations_cold;
1055 u64 nr_failed_migrations_affine; 1059 u64 nr_failed_migrations_affine;
1056 u64 nr_failed_migrations_running; 1060 u64 nr_failed_migrations_running;
@@ -1147,6 +1151,7 @@ struct task_struct {
1147#endif 1151#endif
1148 1152
1149 struct list_head tasks; 1153 struct list_head tasks;
1154 struct plist_node pushable_tasks;
1150 1155
1151 struct mm_struct *mm, *active_mm; 1156 struct mm_struct *mm, *active_mm;
1152 1157