Re: [patch 0/3] synchronized TSC between vcpu's on SMP guests

Michael Tokarev
2008-12-09T22:48:37Z

> On Tue, Dec 09, 2008 at 02:38:08PM +0300, Michael Tokarev wrote:
>> Marcelo Tosatti wrote:
>>> Most Intel hosts are supposed to have their TSC's synchronized. This
>>> patchset attempts to fix the sites which overwrite the TSC making them
>>> appear unsynchronized to the guest.
>> By the way, phenoms are also supposed to have synced TSCs, at least
>> the host reports TSC syncronization works. But guests still thinks
>> TSC is unstable, even on uniprocessor guests using kvm_clock...
>
> On uniprocessor guests? Perhaps, if the guest uses the vmmouse for
> example. In such case, is the TSC reported unstable right after boot?

Hm. I see "TSC unsyncronized" messages on a bare linux-2.6.27 guests,
without anything but virtio_{blk,net} loaded. "Uniprocessor guests" -
I mean, a guest that has only one CPU, not necessary kernel that only
supports one CPU.

Here are some lines from dmesg when booting a guest
on a phenom machine:

Dec 4 19:17:42 iserv kernel: kvm-clock: cpu 0, msr 0:3d0801, boot clock

Dec 4 19:17:42 iserv kernel: SMP: Allowing 8 CPUs, 7 hotplug CPUs

Dec 4 19:17:42 iserv kernel: NR_CPUS: 8, nr_cpu_ids: 8, nr_node_ids 1
Dec 4 19:17:42 iserv kernel: kvm-clock: cpu 0, msr 0:180b801, primary cpu clock

Dec 4 19:17:42 iserv kernel: TSC: Unable to calibrate against PIT
Dec 4 19:17:42 iserv kernel: TSC: using PMTIMER reference calibration

Dec 4 19:17:42 iserv kernel: SMP alternatives: switching to UP code

Dec 4 19:17:42 iserv kernel: Booting paravirtualized kernel on KVM

Dec 4 19:17:42 iserv kernel: Processing INITRAMFS
Dec 4 19:17:42 iserv kernel: loading module virtio_pci

Dec 4 19:17:42 iserv kernel: EXT3 FS on vda, internal journal

Dec 4 19:26:24 iserv kernel: Clocksource tsc unstable (delta = -126732353 ns)

(Note the time difference between last and all previous lines.

At this time, there are only 5 user processes running. Like this:

1 ? Ss 0:04 init [2]
791 ? Ss 0:00 /sbin/syslogd
800 ? Ss 0:00 /sbin/klogd -x
845 ? Ss 0:00 /usr/sbin/unbound
6423 tty1 Ss+ 0:00 /sbin/getty 38400 tty1

(it's not real example but close).

Linux iserv 2.6.27-i686smp #2.6.27.7 SMP Fri Nov 21 13:24:19 MSK 2008 i686 GNU/Linux
kvm-79.

Thanks!

/mjt