From: Dor Laor <dlaor@redhat.com>
To: Espen Berg <espen@monsternett.no>
Cc: kvm@vger.kernel.org
Subject: Re: Timedrift in KVM guests after livemigration.
Date: Sun, 18 Apr 2010 12:22:54 +0300 [thread overview]
Message-ID: <4BCACF6E.4010108@redhat.com> (raw)
In-Reply-To: <4BCA4296.2080608@monsternett.no>
On 04/18/2010 02:21 AM, Espen Berg wrote:
> Den 17.04.2010 22:17, skrev Michael Tokarev:
>>>> We have three KVM hosts that supports live-migration between them, but
>>>> one of our problems is time drifting. The three frontends has different
>>>> CPU frequency and the KVM guests adopt the frequency from the host
>>>> machine where it was first started.
>> What do you mean by "adopts" ? Note that the cpu frequency
>> means nothing for all the modern operating systems, at least
>> since the days of common usage of MS-DOS which relied on CPU
>> frequency for its time functions. All interesting things are
>> now done using timers instead, and timers (which don't depend
>> on CPU frequency again) usually work quite well.
>
> The assumption that frequency of the ticks was calculated by the hosts
> MHz, was based on the fact that grater clock frequency differences
> caused higher time drift. 60 MHz difference caused about 24min drift,
> 332 MHz difference caused about 2h25min drift.
>
>
>> What complicates things is that the most cheap and accurate
>> enough time source is TSC (time stamp counter register in
>> the CPU), but it will definitely be different on each
>> machine. For that, 0.12.3 kvm and 2.6.32 kernel (I think)
>> introduced a compensation. See for example -tdf kvm option.
>
> Ah, nice to know. :)
That's two different things here:
The issue that Espen is reporting is that the hosts have different
frequency and guests that relay on the tsc as a source clock will notice
that post migration. The is indeed a problem that -tdf does not solve.
-tdf only adds compensation for the RTC clock emulation.
What's the guest type and what's the guest's source clock?
Using tsc directly as a source clock is not recommended because of this
migration issue (that is not solveable until we trap every rdtsc by the
guest). Using pv kvmclock in Linux mitigates this issue since it exposes
both the tsc and the host clock so guests can adjust themselves.
Several months ago a pvclock migration fix was added to pass the pvclock
MSRs reading to the destination: 1a03675db146dfc760b3b48b3448075189f142cc
>
>>> Since this is a cluster in production, I'm not able to try the latest
>>> version either.
>> Well, that's difficult one, no? It either works or not.
>> If you can't try anything else, why to ask? :)
>
> What I tried to say was that there are many important virtual servers
> running on this cluster at the moment, so "trial by error" was not an
> option. The last time we tried 0.12.x (during the initial tests of the
> cluster) there where a lot of stability issues, crashes during migration
> etc.
>
> Regards, Espen
>
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2010-04-18 9:21 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-15 7:35 Timedrift in KVM guests after livemigration Espen Berg
2010-04-17 19:52 ` Espen Berg
2010-04-17 20:17 ` Michael Tokarev
2010-04-17 23:21 ` Espen Berg
2010-04-18 9:22 ` Dor Laor [this message]
2010-04-18 9:33 ` Espen Berg
2010-04-22 7:40 ` Thomas Treutner
2010-04-18 9:56 ` Gleb Natapov
2010-04-19 9:21 ` Espen Berg
2010-04-19 9:29 ` Gleb Natapov
2010-04-19 11:57 ` Dor Laor
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4BCACF6E.4010108@redhat.com \
--to=dlaor@redhat.com \
--cc=espen@monsternett.no \
--cc=kvm@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox