diff options
author | Peter Zijlstra <peterz@infradead.org> | 2019-05-29 16:36:41 -0400 |
---|---|---|
committer | Peter Zijlstra <peterz@infradead.org> | 2019-08-08 03:09:31 -0400 |
commit | 03b7fad167efca3b7abbbb39733933f9df56e79c (patch) | |
tree | 504ea9f63d5badf1559e6d430f69e56259c32dfe /kernel/sched/sched.h | |
parent | 10e7071b2f491b0fb981717ea0a585c441906ede (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.h | 7 |
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 | ||
1758 | static inline void set_curr_task(struct rq *rq, struct task_struct *curr) | 1758 | static 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 |