sched,stats: Further simplify sched_info
authorPeter Zijlstra <peterz@infradead.org>
Wed, 12 May 2021 11:32:37 +0000 (13:32 +0200)
committerPeter Zijlstra <peterz@infradead.org>
Tue, 18 May 2021 10:53:53 +0000 (12:53 +0200)
There's no point doing delta==0 updates.

Suggested-by: Mel Gorman <mgorman@suse.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
kernel/sched/stats.h

index 33ffd41..111072e 100644 (file)
@@ -160,10 +160,11 @@ static inline void sched_info_dequeue(struct rq *rq, struct task_struct *t)
 {
        unsigned long long delta = 0;
 
-       if (t->sched_info.last_queued) {
-               delta = rq_clock(rq) - t->sched_info.last_queued;
-               t->sched_info.last_queued = 0;
-       }
+       if (!t->sched_info.last_queued)
+               return;
+
+       delta = rq_clock(rq) - t->sched_info.last_queued;
+       t->sched_info.last_queued = 0;
        t->sched_info.run_delay += delta;
 
        rq_sched_info_dequeue(rq, delta);
@@ -176,12 +177,14 @@ static inline void sched_info_dequeue(struct rq *rq, struct task_struct *t)
  */
 static void sched_info_arrive(struct rq *rq, struct task_struct *t)
 {
-       unsigned long long now = rq_clock(rq), delta = 0;
+       unsigned long long now, delta = 0;
 
-       if (t->sched_info.last_queued) {
-               delta = now - t->sched_info.last_queued;
-               t->sched_info.last_queued = 0;
-       }
+       if (!t->sched_info.last_queued)
+               return;
+
+       now = rq_clock(rq);
+       delta = now - t->sched_info.last_queued;
+       t->sched_info.last_queued = 0;
        t->sched_info.run_delay += delta;
        t->sched_info.last_arrival = now;
        t->sched_info.pcount++;