[PATCH 2/3] sched/cputime: code cleanup in irqtime_account_process_tick

From: Alex Shi
Date: Thu Jan 02 2020 - 05:08:13 EST


In this func, since account_system_time() considers guest time account
and other system time. we could fold the account_guest_time into
account_system_time() to simply the code.

Signed-off-by: Alex Shi <alex.shi@xxxxxxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Cc: Anna-Maria Gleixner <anna-maria@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
---
kernel/sched/cputime.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c
index cff3e656566d..46b837e94fce 100644
--- a/kernel/sched/cputime.c
+++ b/kernel/sched/cputime.c
@@ -381,13 +381,10 @@ static void irqtime_account_process_tick(struct task_struct *p, int user_tick,
account_system_index_time(p, cputime, CPUTIME_SOFTIRQ);
} else if (user_tick) {
account_user_time(p, cputime);
- } else if (p == this_rq()->idle) {
+ } else if ((p != this_rq()->idle) || (irq_count() != HARDIRQ_OFFSET))
+ account_system_time(p, HARDIRQ_OFFSET, cputime);
+ else
account_idle_time(cputime);
- } else if (p->flags & PF_VCPU) { /* System time or guest time */
- account_guest_time(p, cputime);
- } else {
- account_system_index_time(p, cputime, CPUTIME_SYSTEM);
- }
}

static void irqtime_account_idle_ticks(int ticks)
--
1.8.3.1