|
@@ -752,17 +752,23 @@ static void set_load_weight(struct task_struct *p)
|
|
|
|
|
|
|
|
static inline void enqueue_task(struct rq *rq, struct task_struct *p, int flags)
|
|
static inline void enqueue_task(struct rq *rq, struct task_struct *p, int flags)
|
|
|
{
|
|
{
|
|
|
- update_rq_clock(rq);
|
|
|
|
|
|
|
+ if (!(flags & ENQUEUE_NOCLOCK))
|
|
|
|
|
+ update_rq_clock(rq);
|
|
|
|
|
+
|
|
|
if (!(flags & ENQUEUE_RESTORE))
|
|
if (!(flags & ENQUEUE_RESTORE))
|
|
|
sched_info_queued(rq, p);
|
|
sched_info_queued(rq, p);
|
|
|
|
|
+
|
|
|
p->sched_class->enqueue_task(rq, p, flags);
|
|
p->sched_class->enqueue_task(rq, p, flags);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
static inline void dequeue_task(struct rq *rq, struct task_struct *p, int flags)
|
|
static inline void dequeue_task(struct rq *rq, struct task_struct *p, int flags)
|
|
|
{
|
|
{
|
|
|
- update_rq_clock(rq);
|
|
|
|
|
|
|
+ if (!(flags & DEQUEUE_NOCLOCK))
|
|
|
|
|
+ update_rq_clock(rq);
|
|
|
|
|
+
|
|
|
if (!(flags & DEQUEUE_SAVE))
|
|
if (!(flags & DEQUEUE_SAVE))
|
|
|
sched_info_dequeued(rq, p);
|
|
sched_info_dequeued(rq, p);
|
|
|
|
|
+
|
|
|
p->sched_class->dequeue_task(rq, p, flags);
|
|
p->sched_class->dequeue_task(rq, p, flags);
|
|
|
}
|
|
}
|
|
|
|
|
|