[PATCH] cputime: Fix omitted ticks passed in parameter (was: Re: [tip:sched/urgent] sched/cputime: Fix steal time accounting)

From: Frederic Weisbecker
Date: Thu Aug 11 2016 - 08:58:33 EST


Commit f9bcf1e0e0145323ba2cf72ecad5264ff3883eb1
("sched/cputime: Fix steal time accounting") fixes a leak on steal time
accounting but forgets to account the ticks passed in parameters,
assuming there is only one to take into account.

Let's consider that parameter back.

Cc: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Radim <rkrcmar@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
---
kernel/sched/cputime.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c
index 8b9bcc5..9858266 100644
--- a/kernel/sched/cputime.c
+++ b/kernel/sched/cputime.c
@@ -509,12 +509,13 @@ void account_process_tick(struct task_struct *p, int user_tick)
void account_idle_ticks(unsigned long ticks)
{
cputime_t cputime, steal;
+
if (sched_clock_irqtime) {
irqtime_account_idle_ticks(ticks);
return;
}

- cputime = cputime_one_jiffy;
+ cputime = jiffies_to_cputime(ticks);
steal = steal_account_process_time(cputime);

if (steal >= cputime)
--
2.7.0