Received: by 2002:a05:6a10:eb17:0:0:0:0 with SMTP id hx23csp2741897pxb; Mon, 6 Sep 2021 04:30:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz+9/UyYGyi4LpYU2fSruUSlDKYFVydLcrbsyN1VoOMpF99XUbaaiwFyyTfDYqz4muzQUK3 X-Received: by 2002:a17:906:7847:: with SMTP id p7mr12978765ejm.335.1630927836645; Mon, 06 Sep 2021 04:30:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1630927836; cv=none; d=google.com; s=arc-20160816; b=i9k9e+anZZYkb8xV9H8fQufc16TwW1AMWGjQhO8ch4PpvYuonzJcC9GzFvmZG7Wyr3 Yc5v6FGMh/kNSurmK3f892N4JEhP1XBvgp0hsLfqTHO9SkMKAIdnJZVvbf+aRjbjr9ST kEq4qL44xIgYctOYN95gh+zs1X6iTL+mgDVqUssJ3YGQPX4BNn55NuFWAO2gWf1aDZQs p7hEAhTb1VOaVqS3hLmehNKQQvayyLE/7PkOxax+GhmdSx05u/xfHuLvk3WOsZpEesrG PHaXj1SnBcyjRkKqbo85Ub4NRuBJn3FlJ52lhS8SE3YF9MEVrhAc6Ow1wxntse3lfnAP rnlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject:dkim-signature; bh=BGwfvEWhPcux+PIUI2boLtU32tDpQ6UGvcizmy6RoBs=; b=eEvipPg/5aSk1E11Cfd/03M9cYdErPWvGvQEzIHKQ5hxlaT/pEn2ElADjUYmC9tuhw f9IZA9AxROCJUzq/e6YCLwD++XWasLfxjbGSRoKiHpk5BzzDHu0vekYxw7GnGpzR+7kA 5DJBwhMYb42+tHQFO0UR8BKc8hZGqIdggbZbEI39yRFjSHVna7E3apna8Bo910PdtbPV u22F//eAdEE+JYNnuiyTM0Ry3YlYAM/t466G2CE8LL+WpI8wVvFhiTkdRaAPfS7IwU6j tO9yzvDCtzjicwK41fewTQlrufaI44WsrBRp6BxRQgGc2fpJkJmB+BQZsOxQro4XK/0b UHHw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Xf3VUCk3; 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=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id jw27si8020385ejc.440.2021.09.06.04.30.13; Mon, 06 Sep 2021 04:30:36 -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; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Xf3VUCk3; 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=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238694AbhIFLX7 (ORCPT + 99 others); Mon, 6 Sep 2021 07:23:59 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:37555 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232819AbhIFLX6 (ORCPT ); Mon, 6 Sep 2021 07:23:58 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1630927373; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=BGwfvEWhPcux+PIUI2boLtU32tDpQ6UGvcizmy6RoBs=; b=Xf3VUCk33hXgQeeNrYbj2YNedmdCq6xvVWxUE633Od+KaZuWV7vjU3Zjvm3QZ7Jygak6Xm /RpZFTR2Cx6MMRXVjpTAE8iQhmEB4lkhsd3KVJvdDjUUv5dKTv6DnIvpMQ1cSV4R9eLh7W v7dXTlVutBjgVmqD3q4R47grE0gPTOI= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-149-Fgxd_fp8PcahquibTSa92g-1; Mon, 06 Sep 2021 07:22:52 -0400 X-MC-Unique: Fgxd_fp8PcahquibTSa92g-1 Received: by mail-wm1-f69.google.com with SMTP id 5-20020a1c00050000b02902e67111d9f0so2217871wma.4 for ; Mon, 06 Sep 2021 04:22:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=BGwfvEWhPcux+PIUI2boLtU32tDpQ6UGvcizmy6RoBs=; b=osQjDVIdgjmDO4NbBjoe31dQ15TC4fp0PLVOxo2N9UyDY0nmNpVkFanz95XuXbVfbc Gjp8to9NKSY8PmG+Ls9bLUqn3UC6Gj/Mzp7uZAFvd/aAJrgXR3fB+EwhG/ikQDmMOhJ8 9pzFdD8H8KBWsGphLKYi/K3TcjSBeYddjpMd8T2rEnxYZqnmW5TSBtNU1tih0nk4sUBi Z/eniAzO0YnUtlOOQUOTXiuWLps9I5Q/ntNV0gytHl55gevaQ66S3DkDeZz8/Rx9XIae Nelsc9H58VFl58O1vmAcP82PKUrSkfbUSL+iuZhMYAraTVduibxC1tkxMKz4QWaiO4WK NSFQ== X-Gm-Message-State: AOAM5314JqU1P8p8sPErJJsTOZ+YgSjygroB807gFqUN3JMUvLezXo5L QrTe8dZkK2+DST/ULvsm5bAjaSnZ2/u/uWljeLeTt0W4nCECmuOm0H60TGCFC4/O/1yLZZ0pFyA IaxJ7fhoDtkpjwBkOc20k3Q8W X-Received: by 2002:a7b:c18c:: with SMTP id y12mr10782045wmi.3.1630927370853; Mon, 06 Sep 2021 04:22:50 -0700 (PDT) X-Received: by 2002:a7b:c18c:: with SMTP id y12mr10782032wmi.3.1630927370638; Mon, 06 Sep 2021 04:22:50 -0700 (PDT) Received: from ?IPv6:2001:b07:6468:f312:c8dd:75d4:99ab:290a? ([2001:b07:6468:f312:c8dd:75d4:99ab:290a]) by smtp.gmail.com with ESMTPSA id w20sm4933082wrg.1.2021.09.06.04.22.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 06 Sep 2021 04:22:50 -0700 (PDT) Subject: Re: [PATCH] Guest system time jumps when new vCPUs is hot-added To: Zelin Deng , Sean Christopherson , Wanpeng Li Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org, x86@kernel.org References: <1619576521-81399-1-git-send-email-zelin.deng@linux.alibaba.com> From: Paolo Bonzini Message-ID: <9f0d0543-db41-fbb0-019c-7df5b9319c33@redhat.com> Date: Mon, 6 Sep 2021 13:22:49 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <1619576521-81399-1-git-send-email-zelin.deng@linux.alibaba.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 28/04/21 04:22, Zelin Deng wrote: > 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(+) > While Thomas is right in general, what you found is indeed a bug with the KVM->userspace API to set up the vCPU TSC adjust. So I'm queueing the patch for 5.15. Thanks, Paolo