xen-devel
RE: [Xen-devel] rdtscP and xen (and maybe the app-tsc answer I've been l
To: |
Keir Fraser <keir.fraser@xxxxxxxxxxxxx>, Jan Beulich <JBeulich@xxxxxxxxxx> |
Subject: |
RE: [Xen-devel] rdtscP and xen (and maybe the app-tsc answer I've been looking for) |
From: |
Dan Magenheimer <dan.magenheimer@xxxxxxxxxx> |
Date: |
Mon, 21 Sep 2009 09:55:22 -0700 (PDT) |
Cc: |
JeremyFitzhardinge <jeremy@xxxxxxxx>, "Xen-Devel \(E-mail\)" <xen-devel@xxxxxxxxxxxxxxxxxxx>, kurt.hackel@xxxxxxxxxx, "Langsdorf, Mark" <mark.langsdorf@xxxxxxx>, "Nakajima, Jun" <jun.nakajima@xxxxxxxxx>, Alex Williamson <alex.williamson@xxxxxx> |
Delivery-date: |
Mon, 21 Sep 2009 09:56:00 -0700 |
Envelope-to: |
www-data@xxxxxxxxxxxxxxxxxxx |
In-reply-to: |
<C6DD6002.15457%keir.fraser@xxxxxxxxxxxxx> |
List-help: |
<mailto:xen-devel-request@lists.xensource.com?subject=help> |
List-id: |
Xen developer discussion <xen-devel.lists.xensource.com> |
List-post: |
<mailto:xen-devel@lists.xensource.com> |
List-subscribe: |
<http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe> |
List-unsubscribe: |
<http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe> |
Sender: |
xen-devel-bounces@xxxxxxxxxxxxxxxxxxx |
> >> Keir, is there any reason that consistent_tscs shouldn't
> >> default to enabled?
>
> There is a question mark over this, since it's not really
> clear what the
> CONSTANT_TSC feature flag actually means. For example, it is set if
> CPUID:0x80000007:EDX:8 is set, and that flag merely means that this
> particular core's TSC rate is invariant across all Cx/Px/Tx
> power-saving
> states. It doesn't directly say anything about TSC
> consistency across cores
> or sockets unless we are prepared to assume a couple of
> things: primarily
> that all packages run their TSCs at the same rate, and that
> they are clocked
> from the same mainboard oscillator. Is that reasonable to
> assume? We at
> least know the latter is not likely to be true for big-iron
> NUMA systems,
> across NUMA nodes.
Both Intel and AMD have confirmed that constant_tsc means
that TSC is consistent across all cores and even across
multiple sockets; and at least one major system vendor (HP)
with multi-enclosure "big iron" AMD-based NUMA systems has
confirmed that TSC is consistent across all nodes. So
by applying the Xen rendezvous-sync algorithm (that writes
tsc every second) on such machines, Xen has actually been
creating a tsc-sync problem, not alleviating one!
I've cc'ed key AMD/Intel/HP experts who can confirm or
correct/clarify any misassumptions I might have.
I *think* "CPU reports tsc_is_constant but it's not
really constant across all sockets/enclosures/nodes" does
exist, but may be limited to a few older exceptions such
as IBM Summit systems. Upstream Linux now assumes that
constant_tsc applies across all CPUs unless the kernel
is compiled with CONFIG_X86_NUMAQ (note NOT CONFIG_X86_NUMA),
so Linux has now embraced constant_tsc.
So I'm thinking we should treat consistent_tscs as the
rule rather than the exception, and place the onus on
"broken" systems to disable consistent_tscs with the
boot option when necessary. To be extremely safe,
we could also add some code in
time_calibration_std_rendezvous() to check
for "signficant" tsc differences and report it (and
maybe even auto-disable consistent_tscs).
(One minor correction also: constant_tsc does NOT
guarantee tsc continues to increment across deep-C-
states... that requires nonstop_tsc. But Xen already
has the logic to correct deep-C-states in
cstate_restore_tsc().)
Dan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
RE: [Xen-devel] rdtscP and xen (and maybe the app-tsc answer I've been looking for), Jan Beulich
- RE: [Xen-devel] rdtscP and xen (and maybe the app-tsc answer I've been looking for), Dan Magenheimer
- RE: [Xen-devel] rdtscP and xen (and maybe the app-tsc answer I've been looking for), Jan Beulich
- RE: [Xen-devel] rdtscP and xen (and maybe the app-tsc answer I've been looking for), Dan Magenheimer
- Re: [Xen-devel] rdtscP and xen (and maybe the app-tsc answer I've been looking for), Keir Fraser
- Re: [Xen-devel] rdtscP and xen (and maybe the app-tsc answer I've been looking for), Keir Fraser
- RE: [Xen-devel] rdtscP and xen (and maybe the app-tsc answer I've been looking for),
Dan Magenheimer <=
- Re: [Xen-devel] rdtscP and xen (and maybe the app-tsc answer I've been looking for), Keir Fraser
- RE: [Xen-devel] rdtscP and xen (and maybe the app-tsc answer I've been looking for), Dan Magenheimer
- Re: [Xen-devel] rdtscP and xen (and maybe the app-tsc answer I've been looking for), Keir Fraser
- RE: [Xen-devel] rdtscP and xen (and maybe the app-tsc answer I've been looking for), Dan Magenheimer
RE: [Xen-devel] rdtscP and xen (and maybe the app-tsc answer I've been looking for), Jan Beulich
|
|
|