Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 74f8e4b2 authored by Peter Zijlstra's avatar Peter Zijlstra Committed by Ingo Molnar
Browse files

sched: Remove rq argument to sched_class::task_waking()



In preparation of calling this without rq->lock held, remove the
dependency on the rq argument.

Reviewed-by: default avatarFrank Rowand <frank.rowand@am.sony.com>
Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Nick Piggin <npiggin@kernel.dk>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Link: http://lkml.kernel.org/r/20110405152729.071474242@chello.nl


Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 7608dec2
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -1048,8 +1048,12 @@ struct sched_domain;
#define WF_FORK		0x02		/* child wakeup after fork */

#define ENQUEUE_WAKEUP		1
#define ENQUEUE_WAKING		2
#define ENQUEUE_HEAD		4
#define ENQUEUE_HEAD		2
#ifdef CONFIG_SMP
#define ENQUEUE_WAKING		4	/* sched_class::task_waking was called */
#else
#define ENQUEUE_WAKING		0
#endif

#define DEQUEUE_SLEEP		1

@@ -1071,7 +1075,7 @@ struct sched_class {

	void (*pre_schedule) (struct rq *this_rq, struct task_struct *task);
	void (*post_schedule) (struct rq *this_rq);
	void (*task_waking) (struct rq *this_rq, struct task_struct *task);
	void (*task_waking) (struct task_struct *task);
	void (*task_woken) (struct rq *this_rq, struct task_struct *task);

	void (*set_cpus_allowed)(struct task_struct *p,
+1 −1
Original line number Diff line number Diff line
@@ -2531,7 +2531,7 @@ static int try_to_wake_up(struct task_struct *p, unsigned int state,
	p->state = TASK_WAKING;

	if (p->sched_class->task_waking) {
		p->sched_class->task_waking(rq, p);
		p->sched_class->task_waking(p);
		en_flags |= ENQUEUE_WAKING;
	}

+3 −1
Original line number Diff line number Diff line
@@ -1372,11 +1372,13 @@ static void dequeue_task_fair(struct rq *rq, struct task_struct *p, int flags)

#ifdef CONFIG_SMP

static void task_waking_fair(struct rq *rq, struct task_struct *p)
static void task_waking_fair(struct task_struct *p)
{
	struct sched_entity *se = &p->se;
	struct cfs_rq *cfs_rq = cfs_rq_of(se);

	lockdep_assert_held(&task_rq(p)->lock);

	se->vruntime -= cfs_rq->min_vruntime;
}