From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zachary Amsden Subject: Re: 2.6.35-rc1 regression with pvclock and smp guests Date: Fri, 01 Oct 2010 19:35:55 -1000 Message-ID: <4CA6C4BB.5020004@redhat.com> References: <4CA2F8A3.80400@redhat.com> <4CA30424.9030007@msgid.tls.msk.ru> <4CA30493.6090503@msgid.tls.msk.ru> <4CA392FE.5090009@xutrox.com> <4CA4427C.9090304@msgid.tls.msk.ru> <4CA45F7B.8050806@msgid.tls.msk.ru> <4CA4968F.9050402@redhat.com> <4CA4A8C5.3030407@msgid.tls.msk.ru> <4CA4AD87.8060502@redhat.com> <4CA4DBC8.6070606@xutrox.com> <20100930190507.GA1111@amt.cnet> <4CA51715.1070507@msgid.tls.msk.ru> <4CA51847.5060208@msgid.tls.msk.ru> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010307040507000902040102" Cc: Marcelo Tosatti , Arjan Koers <0h61vkll2ly8@xutrox.com>, kvm@vger.kernel.org, Avi Kivity , Glauber Costa , Andre Przywara , jeremy@xensource.com To: Michael Tokarev Return-path: Received: from mx1.redhat.com ([209.132.183.28]:5789 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751252Ab0JBFgH (ORCPT ); Sat, 2 Oct 2010 01:36:07 -0400 In-Reply-To: <4CA51847.5060208@msgid.tls.msk.ru> Sender: kvm-owner@vger.kernel.org List-ID: This is a multi-part message in MIME format. --------------010307040507000902040102 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit On 09/30/2010 01:07 PM, Michael Tokarev wrote: > 01.10.2010 03:02, Michael Tokarev wrote: > >> 30.09.2010 23:05, Marcelo Tosatti wrote: >> [] >> >>> Arjan, Michael, can you try the following: >>> >>> From 3823c018162dc708b543cbdc680a4c7d63533fee Mon Sep 17 00:00:00 2001 >>> From: Zachary Amsden >>> Date: Sat, 29 May 2010 17:52:46 -1000 >>> Subject: [KVM V2 04/25] Fix SVM VMCB reset >>> Cc: Avi Kivity, >>> Marcelo Tosatti, >>> Glauber Costa, >>> linux-kernel@vger.kernel.org >>> >>> On reset, VMCB TSC should be set to zero. Instead, code was setting >>> tsc_offset to zero, which passes through the underlying TSC. >>> >>> Signed-off-by: Zachary Amsden >>> --- >>> arch/x86/kvm/svm.c | 2 +- >>> 1 files changed, 1 insertions(+), 1 deletions(-) >>> >>> diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c >>> index 760c86e..46856d2 100644 >>> --- a/arch/x86/kvm/svm.c >>> +++ b/arch/x86/kvm/svm.c >>> @@ -781,7 +781,7 @@ static void init_vmcb(struct vcpu_svm *svm) >>> >>> control->iopm_base_pa = iopm_base; >>> control->msrpm_base_pa = __pa(svm->msrpm); >>> - control->tsc_offset = 0; >>> + guest_write_tsc(&svm->vcpu, 0); >>> control->int_ctl = V_INTR_MASKING_MASK; >>> >> This fails to compile on 2.6.35.5: >> >> arch/x86/kvm/svm.c: In function ‘init_vmcb’: >> arch/x86/kvm/svm.c:769: error: implicit declaration of function ‘guest_write_tsc’ >> >> I'll take a look tomorrow where that comes from.. hopefully ;) >> > Ok, that routine is static, defined in arch/x86/kvm/vmx.c > (not svm.c). I'm not sure it's ok to use it in svm.c > directly, as it appears to be vmx-specific. > > Thanks! > > /mjt > Can you try this patch to see if it helps? I believe it is also safe for Xen, but cc'ing to double check. --------------010307040507000902040102 Content-Type: text/plain; name="kvmclock-fix-hack-1.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="kvmclock-fix-hack-1.patch" Try to fix setup_percpu_clockdev by moving it before interrupts are enabled. Signed-off-by: Zachary Amsden diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index 8b3bfc4..40a383b 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c @@ -351,6 +351,8 @@ notrace static void __cpuinit start_secondary(void *unused) unlock_vector_lock(); ipi_call_unlock(); per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE; + x86_cpuinit.setup_percpu_clockev(); + x86_platform.nmi_init(); /* enable local interrupts */ @@ -359,8 +361,6 @@ notrace static void __cpuinit start_secondary(void *unused) /* to prevent fake stack check failure in clock setup */ boot_init_stack_canary(); - x86_cpuinit.setup_percpu_clockev(); - wmb(); cpu_idle(); } --------------010307040507000902040102--