From: Anthony Liguori <anthony@codemonkey.ws>
To: Marcelo Tosatti <mtosatti@redhat.com>
Cc: Avi Kivity <avi@qumranet.com>, kvm@vger.kernel.org
Subject: Re: [patch 0/7] force the TSC unreliable by reporting C2 state
Date: Wed, 18 Jun 2008 16:02:39 -0500 [thread overview]
Message-ID: <485977EF.3090002@codemonkey.ws> (raw)
In-Reply-To: <20080618204042.GA15981@dmt.cnet>
Marcelo Tosatti wrote:
> On Wed, Jun 18, 2008 at 03:09:41PM -0500, Anthony Liguori wrote:
>
>> Marcelo Tosatti wrote:
>>
>>> Avi, I don't think this causes such a huge performance regression. NOHZ
>>> makes the frequency of timer reads go down significantly.
>>>
>>>
>> Have we yet determined why the TSC is so unstable in the first place?
>> In theory, it should be relatively stable on single-node Intel and
>> Barcelona chips.
>>
>
> If the host enters C2/C3, or changes CPU frequency, it becomes
> unreliable as a clocksource and there's no guarantee the guest will
> detect that.
>
On Intel, the TSC should be fixed-frequency for basically all shipping
processors supporting VT. Starting with 10h (Barcelona), I believe AMD
also has a fixed frequency TSC.
> Also, as mentioned earlier, large systems with clustered APIC have
> unstable TSC.
>
Right, that's why I qualified with single-node.
> We _could_ hook this fake-C2-state thing to the host TSC reliability:
>
> 1) Hook into Linux's mark_tsc_unstable().
> 2) On migration check if the destination host is using the TSC, if not,
> force a faked-C2-state.
>
> Problem with 2) is that not all guests honour the ACPI _CST package
> notification (which would change C2's latency time from an unusable
> value to something usable). And now I don't think assuming the _CST
> notification to work is a good thing (after we found out that for ex.
> Ubuntu 7.10 kernel ignores it).
>
I think that for hosts with a known unstable TSC, we should do something
like this. But I also think we have a bug with TSC synchronization for
AMD although I don't at all know what the source of it is.
Regards,
Anthony Liguori
next prev parent reply other threads:[~2008-06-18 21:03 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-18 16:42 [patch 0/7] force the TSC unreliable by reporting C2 state Marcelo Tosatti
2008-06-18 16:42 ` [patch 1/7] kvm: qemu: inform valid C2 state in ACPI table Marcelo Tosatti
2008-06-18 16:42 ` [patch 2/7] kvm: qemu: disable c2 via _CST notification Marcelo Tosatti
2008-06-18 16:42 ` [patch 3/7] libkvm: in-kernel C2 halt interface Marcelo Tosatti
2008-06-18 16:42 ` [patch 4/7] libkvm: handle_io return handler value Marcelo Tosatti
2008-06-18 16:42 ` [patch 5/7] qemu: kvm: unhalt vcpu0 on pit irq Marcelo Tosatti
2008-06-18 16:42 ` [patch 6/7] kvm: qemu: enable in-kernel C2 emulation / userspace emulation Marcelo Tosatti
2008-06-18 16:42 ` [patch 7/7] KVM: in-kernel ACPI C2 idle emulation Marcelo Tosatti
2008-06-23 3:01 ` Avi Kivity
2008-06-18 20:09 ` [patch 0/7] force the TSC unreliable by reporting C2 state Anthony Liguori
2008-06-18 20:40 ` Marcelo Tosatti
2008-06-18 21:02 ` Anthony Liguori [this message]
2008-06-18 21:21 ` Marcelo Tosatti
2008-06-18 21:42 ` Anthony Liguori
2008-06-18 22:41 ` Marcelo Tosatti
2008-06-18 22:57 ` john stultz
2008-06-18 23:08 ` Nakajima, Jun
2008-06-20 14:07 ` Andi Kleen
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=485977EF.3090002@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=avi@qumranet.com \
--cc=kvm@vger.kernel.org \
--cc=mtosatti@redhat.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 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.