Skip to contentSkip to conversation

Patch "sched/cputime: Fix prev steal time accouting during CPU hotplug" has been added to the 4.7-stable tree

PATCH [email protected] 1 participant 1 message Oct 4, 2016

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

sched/cputime: Fix prev steal time accouting during CPU hotplug

to the 4.7-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
sched-cputime-fix-prev-steal-time-accouting-during-cpu-hotplug.patch
and it can be found in the queue-4.7 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 3d89e5478bf550a50c99e93adf659369798263b0 Mon Sep 17 00:00:00 2001

From: Wanpeng Li <[email protected]>
Date: Mon, 13 Jun 2016 18:32:45 +0800
Subject: sched/cputime: Fix prev steal time accouting during CPU hotplug
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Wanpeng Li <[email protected]>

commit 3d89e5478bf550a50c99e93adf659369798263b0 upstream.

Commit:

e9532e69b8d1 ("sched/cputime: Fix steal time accounting vs. CPU hotplug")

... set rq->prev_* to 0 after a CPU hotplug comes back, in order to fix the case where (after CPU hotplug) steal time is smaller than rq->prev_steal_time.

However, this should never happen. Steal time was only smaller because of the KVM-specific bug fixed by the previous patch. Worse, the previous patch triggers a bug on CPU hot-unplug/plug operation: because rq->prev_steal_time is cleared, all of the CPU's past steal time will be accounted again on hot-plug.

Since the root cause has been fixed, we can just revert commit e9532e69b8d1.

Cc Frederic Weisbecker <[email protected]>
Cc Linus Torvalds <[email protected]>
Cc Mike Galbraith <[email protected]>
Cc Peter Zijlstra <[email protected]>
Cc Radim Krčmář <[email protected]>
Cc Rik van Riel <[email protected]>
Cc Thomas Gleixner <[email protected]>
Fixes 'commit e9532e69b8d1 ("sched/cputime: Fix steal time accounting vs. CPU hotplug")'
---
 kernel/sched/core.c  |    1 -
 kernel/sched/sched.h |   13 -------------
 2 files changed, 14 deletions(-)
kernel/sched/core.c +0 -1
@@ -7255,7 +7255,6 @@ static void sched_rq_cpu_starting(unsign
 	struct rq *rq = cpu_rq(cpu);
 
 	rq->calc_load_update = calc_load_update;
-	account_reset_rq(rq);
 	update_max_interval();
 }
 
kernel/sched/sched.h +0 -13
@@ -1809,16 +1809,3 @@ static inline void cpufreq_trigger_updat
 #else /* arch_scale_freq_capacity */
 #define arch_scale_freq_invariant()	(false)
 #endif
-
-static inline void account_reset_rq(struct rq *rq)
-{
-#ifdef CONFIG_IRQ_TIME_ACCOUNTING
-	rq->prev_irq_time = 0;
-#endif
-#ifdef CONFIG_PARAVIRT
-	rq->prev_steal_time = 0;
-#endif
-#ifdef CONFIG_PARAVIRT_TIME_ACCOUNTING
-	rq->prev_steal_time_rq = 0;
-#endif
-}

Patches currently in stable-queue which might be from [email protected] are

queue-4.7/sched-cputime-fix-prev-steal-time-accouting-during-cpu-hotplug.patch