Received: by 2002:a05:6a10:a841:0:0:0:0 with SMTP id d1csp5037997pxy; Tue, 27 Apr 2021 19:25:33 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxxqtFllxjXSsaiZjdUEoIu+plwoKEglTu2CXHA/69oUuy5l1UHngy5y543aoLCHSgclrXi X-Received: by 2002:a17:902:6ac3:b029:e6:c6a3:a697 with SMTP id i3-20020a1709026ac3b02900e6c6a3a697mr28029462plt.2.1619576733735; Tue, 27 Apr 2021 19:25:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619576733; cv=none; d=google.com; s=arc-20160816; b=fOhLln7jl/GuCxhMKNdWD4EA/z4Ml2aTm9SvtPeCHFBJY6mBSSrU4bA49TlIU7HbcM 4rXoGK+4wBgzyNUg1y5J5drHpaJfufYqiMFc+Yd8Vz1EoDErIkxDn8dQbxQ488nncqvj 10uIyYJ0bNkCHt3kvXlq3nKw/keM14y9q4JSSgg8mIpZeh6MnzfxODVwl8V6lJziDjIF casQdzWL6S8RumBsNqXVp4d62U4OpXUSBxH6+0L6lySJ958q3mttw9LqbA1wBsZyYABy qcDooNhsky2rE/Wfdvfh08pRaUyrfsVh/UGEc+h+gMjOZ5ckXCy/l6p+iNPb4D9as2v+ JjHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from; bh=FUEor3z/RKTXtTEyPFI9zVARJ7nJNRRt0o8cQBP4aeQ=; b=MyR0fBgdRW4/MHlYf3QQ8PeeFhpOEqtnibPmBpUnwk7lqyplhsJu7p4Xj1ou9ypSsZ 6MvcItlyqHIQaf4mdV8YvYJJTj5mwCNidOO5nOAkYfPlpiJFYXM2A/oG33MrQ+My1ZBh QUhUYuPdM7rZBmpsitlwcQAz22IQ2twnK5FtIK2a+cpMAUJD86WG3H+nF8ektYjR1GAc 31iTaKng2vIkVg81wej5jcBl4GSzIr8OmQmVHOSl4fbtPJ4tKzf0IiZ5eShJ+rvL9WtA MbjwGZT39LH+yADsnJ3RJhgDb4f/LurmNeJWwf09gLS1yJg7pl1laU2zpK5UzqpgBkpY kI9Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d4si5299839pfl.94.2021.04.27.19.25.19; Tue, 27 Apr 2021 19:25:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239561AbhD1CWr (ORCPT + 99 others); Tue, 27 Apr 2021 22:22:47 -0400 Received: from out30-54.freemail.mail.aliyun.com ([115.124.30.54]:40121 "EHLO out30-54.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235422AbhD1CWr (ORCPT ); Tue, 27 Apr 2021 22:22:47 -0400 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R101e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e01424;MF=zelin.deng@linux.alibaba.com;NM=1;PH=DS;RN=6;SR=0;TI=SMTPD_---0UX10nnq_1619576521; Received: from localhost(mailfrom:zelin.deng@linux.alibaba.com fp:SMTPD_---0UX10nnq_1619576521) by smtp.aliyun-inc.com(127.0.0.1); Wed, 28 Apr 2021 10:22:01 +0800 From: Zelin Deng To: Paolo Bonzini , Sean Christopherson , Wanpeng Li Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org, x86@kernel.org Subject: [PATCH] Guest system time jumps when new vCPUs is hot-added Date: Wed, 28 Apr 2021 10:22:00 +0800 Message-Id: <1619576521-81399-1-git-send-email-zelin.deng@linux.alibaba.com> X-Mailer: git-send-email 1.8.3.1 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, I have below VM configuration: ... 2 ... After VM has been up for a few minutes, I use "virsh setvcpus" to hot-add second vCPU into VM, below dmesg is observed: [ 53.273484] CPU1 has been hot-added [ 85.067135] SMP alternatives: switching to SMP code [ 85.078409] x86: Booting SMP configuration: [ 85.079027] smpboot: Booting Node 0 Processor 1 APIC 0x1 [ 85.080240] kvm-clock: cpu 1, msr 77601041, secondary cpu clock [ 85.080450] smpboot: CPU 1 Converting physical 0 to logical die 1 [ 85.101228] TSC ADJUST compensate: CPU1 observed 169175101528 warp. Adjust: 169175101528 [ 141.513496] TSC ADJUST compensate: CPU1 observed 166 warp. Adjust: 169175101694 [ 141.513496] TSC synchronization [CPU#0 -> CPU#1]: [ 141.513496] Measured 235 cycles TSC warp between CPUs, turning off TSC clock. [ 141.513496] tsc: Marking TSC unstable due to check_tsc_sync_source failed [ 141.543996] KVM setup async PF for cpu 1 [ 141.544281] kvm-stealtime: cpu 1, msr 13bd2c080 [ 141.549381] Will online and init hotplugged CPU: 1 System time jumps from 85.101228 to 141.51.3496. Guest: KVM ----- ------ check_tsc_sync_target() wrmsrl(MSR_IA32_TSC_ADJUST,...) kvm_set_msr_common(vcpu,...) adjust_tsc_offset_guest(vcpu,...) //tsc_offset jumped vcpu_enter_guest(vcpu) //tsc_timestamp was not changed ... rdtsc() jumped, system time jumped tsc_timestamp must be updated before go back to guest. --- Zelin Deng (1): KVM: x86: Update vCPU's hv_clock before back to guest when tsc_offset is adjusted arch/x86/kvm/x86.c | 4 ++++ 1 file changed, 4 insertions(+) -- 1.8.3.1