From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752006AbcFNL0s (ORCPT ); Tue, 14 Jun 2016 07:26:48 -0400 Received: from terminus.zytor.com ([198.137.202.10]:33944 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751324AbcFNL0p (ORCPT ); Tue, 14 Jun 2016 07:26:45 -0400 Date: Tue, 14 Jun 2016 04:26:15 -0700 From: tip-bot for Wanpeng Li Message-ID: Cc: rkrcmar@redhat.com, peterz@infradead.org, mingo@kernel.org, tglx@linutronix.de, linux-kernel@vger.kernel.org, hpa@zytor.com, john.stultz@linaro.org, efault@gmx.de, fweisbec@gmail.com, wanpeng.li@hotmail.com, torvalds@linux-foundation.org, pbonzini@redhat.com, riel@redhat.com Reply-To: pbonzini@redhat.com, wanpeng.li@hotmail.com, torvalds@linux-foundation.org, riel@redhat.com, linux-kernel@vger.kernel.org, tglx@linutronix.de, efault@gmx.de, fweisbec@gmail.com, john.stultz@linaro.org, hpa@zytor.com, rkrcmar@redhat.com, mingo@kernel.org, peterz@infradead.org In-Reply-To: <1465813966-3116-2-git-send-email-wanpeng.li@hotmail.com> References: <1465813966-3116-2-git-send-email-wanpeng.li@hotmail.com> To: linux-tip-commits@vger.kernel.org Subject: [tip:sched/core] KVM: Fix steal clock warp during guest CPU hotplug Git-Commit-ID: 2348140d58f4f4245e9635ea8f1a77e940a4d877 X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: 2348140d58f4f4245e9635ea8f1a77e940a4d877 Gitweb: http://git.kernel.org/tip/2348140d58f4f4245e9635ea8f1a77e940a4d877 Author: Wanpeng Li AuthorDate: Mon, 13 Jun 2016 18:32:44 +0800 Committer: Ingo Molnar CommitDate: Tue, 14 Jun 2016 11:13:14 +0200 KVM: Fix steal clock warp during guest CPU hotplug Sometimes, after CPU hotplug you can observe a spike in stolen time (100%) followed by the CPU being marked as 100% idle when it's actually busy with a CPU hog task. The trace looks like the following: cpuhp/1-12 [001] d.h1 167.461657: account_process_tick: steal = 1291385514, prev_steal_time = 0 cpuhp/1-12 [001] d.h1 167.461659: account_process_tick: steal_jiffies = 1291 -0 [001] d.h1 167.462663: account_process_tick: steal = 18732255, prev_steal_time = 1291000000 -0 [001] d.h1 167.462664: account_process_tick: steal_jiffies = 18446744072437 The sudden decrease of "steal" causes steal_jiffies to underflow. The root cause is kvm_steal_time being reset to 0 after hot-plugging back in a CPU. Instead, the preexisting value can be used, which is what the core scheduler code expects. John Stultz also reported a similar issue after guest S3. Suggested-by: Paolo Bonzini Signed-off-by: Wanpeng Li Signed-off-by: Peter Zijlstra (Intel) Acked-by: Paolo Bonzini Cc: Frederic Weisbecker Cc: John Stultz Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Radim Krčmář Cc: Rik van Riel Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1465813966-3116-2-git-send-email-wanpeng.li@hotmail.com Signed-off-by: Ingo Molnar --- arch/x86/kernel/kvm.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c index eea2a6f..1ef5e48 100644 --- a/arch/x86/kernel/kvm.c +++ b/arch/x86/kernel/kvm.c @@ -301,8 +301,6 @@ static void kvm_register_steal_time(void) if (!has_steal_clock) return; - memset(st, 0, sizeof(*st)); - wrmsrl(MSR_KVM_STEAL_TIME, (slow_virt_to_phys(st) | KVM_MSR_ENABLED)); pr_info("kvm-stealtime: cpu %d, msr %llx\n", cpu, (unsigned long long) slow_virt_to_phys(st));