From e34f461ec7c85fc504ddd4a1d924e39c74c2018c Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Fri, 14 Oct 2016 08:47:18 +1100 Subject: [PATCH 36/80] Remove use of rq_last_ran as it is now only checked locally or under lock --- kernel/sched/MuQSS.c | 14 +++++++------- kernel/sched/MuQSS.h | 1 - 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/kernel/sched/MuQSS.c b/kernel/sched/MuQSS.c index a589ebe..3f3e64a 100644 --- a/kernel/sched/MuQSS.c +++ b/kernel/sched/MuQSS.c @@ -2199,7 +2199,7 @@ void wake_up_new_task(struct task_struct *p) * modified within schedule() so it is always equal to * current->deadline. */ - p->last_ran = rq->rq_last_ran; + p->last_ran = rq_curr->last_ran; if (likely(rq_curr->policy != SCHED_FIFO)) { rq_curr->time_slice /= 2; if (unlikely(rq_curr->time_slice < RESCHED_US)) { @@ -3009,7 +3009,7 @@ static void pc_user_time(struct rq *rq, struct task_struct *p, static void update_cpu_clock_tick(struct rq *rq, struct task_struct *p) { - long account_ns = rq->clock_task - rq->rq_last_ran; + long account_ns = rq->clock_task - p->last_ran; struct task_struct *idle = rq->idle; unsigned long account_pc; @@ -3039,7 +3039,7 @@ ts_account: p->time_slice -= NS_TO_US(time_diff); } - rq->rq_last_ran = rq->clock_task; + p->last_ran = rq->clock_task; rq->timekeep_clock = rq->clock; } @@ -3051,7 +3051,7 @@ ts_account: static void update_cpu_clock_switch(struct rq *rq, struct task_struct *p) { - long account_ns = rq->clock_task - rq->rq_last_ran; + long account_ns = rq->clock_task - p->last_ran; struct task_struct *idle = rq->idle; unsigned long account_pc; @@ -3076,7 +3076,7 @@ ts_account: p->time_slice -= NS_TO_US(time_diff); } - rq->rq_last_ran = rq->clock_task; + p->last_ran = rq->clock_task; rq->timekeep_clock = rq->clock; } @@ -3097,7 +3097,7 @@ static inline u64 do_task_delta_exec(struct task_struct *p, struct rq *rq) */ if (p == rq->curr && task_on_rq_queued(p)) { update_rq_clock(rq); - ns = rq->clock_task - rq->rq_last_ran; + ns = rq->clock_task - p->last_ran; if (unlikely((s64)ns < 0)) ns = 0; } @@ -3641,7 +3641,7 @@ static inline void schedule_debug(struct task_struct *prev) static inline void set_rq_task(struct rq *rq, struct task_struct *p) { rq->rq_deadline = p->deadline; - rq->rq_last_ran = p->last_ran = rq->clock_task; + p->last_ran = rq->clock_task; rq->rq_prio = p->prio; #ifdef CONFIG_SMT_NICE rq->rq_mm = p->mm; diff --git a/kernel/sched/MuQSS.h b/kernel/sched/MuQSS.h index 34f1ec1..9966740 100644 --- a/kernel/sched/MuQSS.h +++ b/kernel/sched/MuQSS.h @@ -22,7 +22,6 @@ struct rq { /* Stored data about rq->curr to work outside rq lock */ u64 rq_deadline; - u64 rq_last_ran; int rq_prio; unsigned long last_scheduler_tick; /* Last jiffy this RQ ticked */ -- 2.7.4