|
|
|
|
|
|
|
|
|
|
xen-devel
RE: [Xen-devel] Re: system freeze when processor.ko is loaded
To: |
Jan Beulich <JBeulich@xxxxxxxxxx> |
Subject: |
RE: [Xen-devel] Re: system freeze when processor.ko is loaded |
From: |
"Wang, Winston L" <winston.l.wang@xxxxxxxxx> |
Date: |
Tue, 12 Apr 2011 10:27:44 -0700 |
Accept-language: |
en-US |
Acceptlanguage: |
en-US |
Cc: |
"Liu, Jinsong" <jinsong.liu@xxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, KeirFraser <keir@xxxxxxx>, "Jiang, Yunhong" <yunhong.jiang@xxxxxxxxx>, "Dugger, Donald D" <donald.d.dugger@xxxxxxxxx>, "Li, Xin" <xin.li@xxxxxxxxx> |
Delivery-date: |
Tue, 12 Apr 2011 10:28:20 -0700 |
Envelope-to: |
www-data@xxxxxxxxxxxxxxxxxxx |
In-reply-to: |
<4DA41545020000780003B00F@xxxxxxxxxxxxxxxxxx> |
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> |
References: |
<d6cfc1ce-e4b3-47dc-ae83-8d0c341988b3@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> <54B2EB610B7F1340BB6A0D4CA04A4F1001008E2FED@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> <4DA41545020000780003B00F@xxxxxxxxxxxxxxxxxx> |
Sender: |
xen-devel-bounces@xxxxxxxxxxxxxxxxxxx |
Thread-index: |
Acv434fPUq/eLJyURCKFLpbh3P64bAAU1Xmg |
Thread-topic: |
[Xen-devel] Re: system freeze when processor.ko is loaded |
> >>> On 12.04.11 at 00:35, "Wang, Winston L" <winston.l.wang@xxxxxxxxx>
> wrote:
> > I think restore only the lower 32bit TSC is good enough, why do we
> need to touch upper 32 bit TSC?
>
> You just can't: A wrmsr to this MSR always updates the full 64-bits,
> just that on some CPUs this update implies the upper 32 bits getting
> zeroed.
You are right, just can't only write lower 32 bit without updating 32 bit since
TSC is always 64 bits:(
So we have to give up the deep C state for those old processors since we still
need to maintain TSC all the time for SMP support.
The solution should go with your patch: re-validate the processor boot with "
X86_FEATURE_TSC_RELIABLE" to see upper 32 bit TSC MSR is writeable at
init_xen_time or not , then decide if allow deep_cstate. This is a better idea
than only allow the processor going to the deep c state with
"x86_FEATURE_CONSTANT_TSC but !X86_FEATURE_NONSTOP_TSC CPUs".
Would you double test patch before pulling in? we need to check both the old
failed processor and the current one. And what's the power idle power impact.
>
> And even if you could, it wouldn't be easy to deal with the situation
> where the update would carry into the upper 32 bits.
>
> Jan
>
> > 1. I would not think if any processor's deep c-state wakeup from idle
> can
> > more than 100 ms.
> > 2. For 3GHZ processor lower 32bit TSC wrapper around time is ~2.83
> Sec.
> > 3. The platform timer (22bit ACPI timer) wrapper around is 2.34 sec
> (this is
> > used for counting the delta before enter deep_cstate and before
> wakeup)
> > Just need to change cstate_restore_tsc() and only patch back the
> delta time
> > to the lower 32 bit TSC to make that simple?
> >
> > Winston,
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|