From: Philipp Hahn <hahn@univention.de>
To: qemu-devel@nongnu.org
Cc: al pat <alps.oss@gmail.com>
Subject: Re: [Qemu-devel] Question on kvm_clock working ...
Date: Tue, 13 Sep 2011 08:49:55 +0200 [thread overview]
Message-ID: <201109130850.00106.hahn@univention.de> (raw)
In-Reply-To: <CAF9p441=2OLHCrZ126_StWV8FWVH52Us7O_QJAccxqvUtrPbjQ@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2358 bytes --]
Hello Al,
I just debugged a kvmclock bug, so I claim to have some knowledge in this area
now, but please take my answer with a grain of doubt.
On Monday 12 September 2011 15:21:25 al pat wrote:
> Still seeking your guidance on this. Appreciate any pointers you may have.
You have to distiguish between the real-time-clock (RTC), which in hardware is
a battery powered clock running even when your PC is powered off. Since it's
slow to access, most Linux distributions read out its value once during boot
using "hwclock --hctosys --utc" and than don't care about that clock any more
until shutdown, when they write back the system time to the RTC
using "... --systohc ...".
During runtime, other methods are used for time keeping: Either by counting
regular interrupts, using the ACPI-PM clock, or the High Performance Event
Timer (HPET), or the Time Stamp Counter (TSC) register, or ...;
see /sys/devices/system/clocksource/clocksource0/available_clocksource for a
list of available clock sources.
For virtual machines there is an additional clock source named "kvmclock",
which uses the host clock and the TSC: The host exports its current system
time (plus some configurable offset) and a snapshot value of TSC register
when doing so. Than the guest can interpolate the current time by using the
exported_system_time + scale * (current_TSC_value-snapshot_TSC_value). This
kvmclock doesn't have anything to do with the RTC clock as far as I know.
Now to your problem: You should check the value
of /sys/devices/system/clocksource/clocksource0/current_clocksource in your
guest. If it is somethong other than kvmclock, you should if
using "hwclock --hctosys --utc" re-synchronizes your guest clock to the host.
Sincerely
Philipp
--
Philipp Hahn Open Source Software Engineer hahn@univention.de
Univention GmbH Linux for Your Business fon: +49 421 22 232- 0
Mary-Somerville-Str.1 D-28359 Bremen fax: +49 421 22 232-99
http://www.univention.de/
----------------------------------------------------------------------------
Treffen Sie Univention auf der IT&Business vom 20. bis 22. September 2011
auf dem Gemeinschaftsstand der Open Source Business Alliance in Stuttgart in
Halle 3 Stand 3D27-7.
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 197 bytes --]
next prev parent reply other threads:[~2011-09-13 6:50 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-09 15:28 Question on kvm_clock working al pat
2011-09-09 15:28 ` [Qemu-devel] " al pat
2011-09-12 13:21 ` al pat
2011-09-13 6:49 ` Philipp Hahn [this message]
2011-09-13 11:38 ` al pat
2011-09-13 13:08 ` Jan Kiszka
2011-09-15 13:48 ` al pat
2011-09-26 17:47 ` Ronen Hod
2011-09-26 17:47 ` [Qemu-devel] " Ronen Hod
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=201109130850.00106.hahn@univention.de \
--to=hahn@univention.de \
--cc=alps.oss@gmail.com \
--cc=qemu-devel@nongnu.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.