[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87im46n5b5.ffs@nanos.tec.linutronix.de>
Date: Wed, 28 Apr 2021 11:09:50 +0200
From: Thomas Gleixner <tglx@...utronix.de>
To: Zelin Deng <zelin.deng@...ux.alibaba.com>,
Paolo Bonzini <pbonzini@...hat.com>,
Sean Christopherson <seanjc@...gle.com>,
Wanpeng Li <wanpengli@...cent.com>
Cc: linux-kernel@...r.kernel.org, kvm@...r.kernel.org, x86@...nel.org
Subject: Re: [PATCH] Guest system time jumps when new vCPUs is hot-added
On Wed, Apr 28 2021 at 11:00, Thomas Gleixner wrote:
> On Wed, Apr 28 2021 at 10:22, Zelin Deng wrote:
>
>> Hello,
>> I have below VM configuration:
>> ...
>> <vcpu placement='static' current='1'>2</vcpu>
>> <cpu mode='host-passthrough'>
>> </cpu>
>> <clock offset='utc'>
>> <timer name='tsc' frequency='3000000000'/>
>> </clock>
>> ...
>> 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
>
> Why is TSC_ADJUST on CPU1 different from CPU0 in the first place?
>
> That's broken.
Aside of that the TSC synchronization check in guests cannot work
reliably at all. Simply because there is no guarantee that vCPU0 and
vCPU1 are running in parallel.
Thanks,
tglx
Powered by blists - more mailing lists