From: Dan Magenheimer <dan.magenheimer@oracle.com>
To: Bei Guan <gbtju85@gmail.com>
Cc: Xen Devel <xen-devel@lists.xensource.com>,
"Andrei E. Warkentin" <andrey.warkentin@gmail.com>
Subject: Re: Questions on the PIT and APIC timer in Xen
Date: Thu, 29 Mar 2012 08:08:43 -0700 (PDT) [thread overview]
Message-ID: <d3fe0cb1-4d8c-4715-b1fe-0d6c85878c66@default> (raw)
In-Reply-To: <CAEQjb-RyY1XU6_u+wCKtAb36x0zb7J=ym7oB=Hiwsm0NpqYroA@mail.gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 3625 bytes --]
(sorry all for the top post... it's hard to reply to HTML properly in my mailer)
Hi Ben -
On recent Linux kernels, setting "clocksource=tsc tsc=reliable" as guest kernel parameters should be faster than pvclock because pvclock reads the tsc to drive its algorithm.
CMOS timer is very very slow. If you are not familiar with virtual time issues, you should read the VMware paper. Xen virtual time management is a little different (because VMware can do binary translation) but most of the concepts are the same and this paper also is a very good explanation of all the different clock/timer hardware:
http://www.vmware.com/files/pdf/Timekeeping-In-VirtualMachines.pdf
From: Bei Guan [mailto:gbtju85@gmail.com]
Sent: Wednesday, March 28, 2012 7:45 PM
To: Dan Magenheimer
Cc: Xen Devel; Andrei E. Warkentin
Subject: Re: [Xen-devel] Questions on the PIT and APIC timer in Xen
2012/3/28 Dan Magenheimer <HYPERLINK "mailto:dan.magenheimer@oracle.com"dan.magenheimer@oracle.com>
Both the PIT and APIC (as well as HPET) timers are emulated by Xen for an HVM guest. However there have always been rare hard-to-reproduce problems when guests use them. At one time, there were workarounds that required a special parameter "timer_mode" to be selected for HVM guests. If I recall correctly, different timer modes overcame different limitations of different timer emulations (or maybe mismatches between guest "bugs" exposed by virtual time and true hypervisor emulation). These timer_mode workarounds may or may not work with more recent Linux and Windows guests. And there are still periodic bug fixes being applied for timers in the hypervisor emulation code.
At 4.0, full TSC emulation was added in an attempt to provide a high-resolution guaranteed monotonic timer. However, most legacy HVM guests cannot or refuse to use TSC as a timer. (And there may be lurking bugs there as well.)
For most PV guest OS's, the pvclock algorithm is used so PIT/APIC/HPET emulation should be unnecessary (and, if used, is likely buggy). And actually pvclock should be superceded by using TSC, which is always faster, but for most workloads the performance difference doesn't matter.
If you are interested in a good (but difficult) Xen project, "virtual time" still needs work and documentation. I would be happy to provide lots of background documentation but can't volunteer to help much more than that right now.
Hi Dan,
Thank you for your detailed reply and your kindness.
So, you mean the pvclock algorithm is very faster than any Xen emulated timer, while a TSC timer is very faster than the pvclock for some workloads, right?
Is it possible that Xen initial its timer from the hardware now, such as CMOS timer? Why PV guest OS doesn't use this timer instead of using the timer from the pv clock algorithm? If there is any problem with my question, please correct me.
Thank you very much.
Bei
Hope that helps,
Dan
From: Bei Guan [mailto:HYPERLINK "mailto:gbtju85@gmail.com" \ngbtju85@gmail.com]
Sent: Wednesday, March 28, 2012 1:32 AM
To: Xen Devel
Cc: Andrei E. Warkentin
Subject: [Xen-devel] Questions on the PIT and APIC timer in Xen
Hi,
I wonder whether the PIT/APIC timer for HVM Guest OS is emulated by Xen or not.
What's difference between setting the boot PIT/APIC timer for a PV Guest OS and HVM Guest OS?
I would appreciate any reply for my question.
--
Best Regards,
Bei Guan
--
Best Regards,
Bei Guan
[-- Attachment #1.2: Type: text/html, Size: 11582 bytes --]
[-- Attachment #2: Type: text/plain, Size: 126 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
prev parent reply other threads:[~2012-03-29 15:08 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-28 7:31 Questions on the PIT and APIC timer in Xen Bei Guan
2012-03-28 13:00 ` Jan Beulich
2012-03-28 13:50 ` Bei Guan
2012-03-28 13:58 ` Jan Beulich
2012-03-28 14:31 ` Bei Guan
2012-03-28 15:46 ` Dan Magenheimer
2012-03-29 1:45 ` Bei Guan
2012-03-29 15:08 ` Dan Magenheimer [this message]
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=d3fe0cb1-4d8c-4715-b1fe-0d6c85878c66@default \
--to=dan.magenheimer@oracle.com \
--cc=andrey.warkentin@gmail.com \
--cc=gbtju85@gmail.com \
--cc=xen-devel@lists.xensource.com \
/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;
as well as URLs for NNTP newsgroup(s).