summaryrefslogtreecommitdiffstats
path: root/kernel/sched/sched.h
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2019-05-29 16:36:41 -0400
committerPeter Zijlstra <peterz@infradead.org>2019-08-08 03:09:31 -0400
commit03b7fad167efca3b7abbbb39733933f9df56e79c (patch)
tree504ea9f63d5badf1559e6d430f69e56259c32dfe /kernel/sched/sched.h
parent10e7071b2f491b0fb981717ea0a585c441906ede (diff)
sched: Add task_struct pointer to sched_class::set_curr_task
In preparation of further separating pick_next_task() and set_curr_task() we have to pass the actual task into it, while there, rename the thing to better pair with put_prev_task(). Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Aaron Lu <aaron.lwe@gmail.com> Cc: Valentin Schneider <valentin.schneider@arm.com> Cc: mingo@kernel.org Cc: Phil Auld <pauld@redhat.com> Cc: Julien Desfossez <jdesfossez@digitalocean.com> Cc: Nishanth Aravamudan <naravamudan@digitalocean.com> Link: https://lkml.kernel.org/r/a96d1bcdd716db4a4c5da2fece647a1456c0ed78.1559129225.git.vpillai@digitalocean.com
Diffstat (limited to 'kernel/sched/sched.h')
-rw-r--r--kernel/sched/sched.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index b3449d0dd7f0..f3c50445bf22 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -1707,6 +1707,7 @@ struct sched_class {
1707 struct task_struct *prev, 1707 struct task_struct *prev,
1708 struct rq_flags *rf); 1708 struct rq_flags *rf);
1709 void (*put_prev_task)(struct rq *rq, struct task_struct *p); 1709 void (*put_prev_task)(struct rq *rq, struct task_struct *p);
1710 void (*set_next_task)(struct rq *rq, struct task_struct *p);
1710 1711
1711#ifdef CONFIG_SMP 1712#ifdef CONFIG_SMP
1712 int (*select_task_rq)(struct task_struct *p, int task_cpu, int sd_flag, int flags); 1713 int (*select_task_rq)(struct task_struct *p, int task_cpu, int sd_flag, int flags);
@@ -1721,7 +1722,6 @@ struct sched_class {
1721 void (*rq_offline)(struct rq *rq); 1722 void (*rq_offline)(struct rq *rq);
1722#endif 1723#endif
1723 1724
1724 void (*set_curr_task)(struct rq *rq);
1725 void (*task_tick)(struct rq *rq, struct task_struct *p, int queued); 1725 void (*task_tick)(struct rq *rq, struct task_struct *p, int queued);
1726 void (*task_fork)(struct task_struct *p); 1726 void (*task_fork)(struct task_struct *p);
1727 void (*task_dead)(struct task_struct *p); 1727 void (*task_dead)(struct task_struct *p);
@@ -1755,9 +1755,10 @@ static inline void put_prev_task(struct rq *rq, struct task_struct *prev)
1755 prev->sched_class->put_prev_task(rq, prev); 1755 prev->sched_class->put_prev_task(rq, prev);
1756} 1756}
1757 1757
1758static inline void set_curr_task(struct rq *rq, struct task_struct *curr) 1758static inline void set_next_task(struct rq *rq, struct task_struct *next)
1759{ 1759{
1760 curr->sched_class->set_curr_task(rq); 1760 WARN_ON_ONCE(rq->curr != next);
1761 next->sched_class->set_next_task(rq, next);
1761} 1762}
1762 1763
1763#ifdef CONFIG_SMP 1764#ifdef CONFIG_SMP