public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Glauber de Oliveira Costa
	<glommer-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: kvm-devel
	<kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>,
	Jeremy Fitzhardinge <jeremy-TSDbQ3PG+2Y@public.gmane.org>,
	Hollis Blanchard
	<hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>,
	Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
Subject: Re: [RFC] Paravirt timer for KVM
Date: Tue, 16 Oct 2007 09:40:42 +0200	[thread overview]
Message-ID: <47146AFA.3060104@redhat.com> (raw)
In-Reply-To: <5d6222a80710151100p63e8e9aata79b006b43f6c37e-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

Glauber de Oliveira Costa wrote:
> Well, my previous understanding was that if the CPU marks the tsc as
> stable, it _won't_ stop even in C3, and it was done this way exactly
> to make sure there are a stable source for timing.

Other way around:  Kernel can mark the TSC unstable if it figures it
does not tick on a constant rate (or if the kernel knows for certain
hardware it will not ...).

C3 on Intel hardware seems to be a known unstable case:

zweiblum kraxel ~# grep -A2 -B2 C3
/export/git/linux-2.6/arch/x86_64/kernel/tsc.c
        if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) {
#ifdef CONFIG_ACPI
                /* But TSC doesn't tick in C3 so don't use it there */
                if (acpi_gbl_FADT.header.length > 0 &&
                    acpi_gbl_FADT.C3latency < 1000)
                        return 1;
#endif


> But it does not really matter. We have two options:
> * Not considering tsc stable at all if sleeps, and then using the tsc
> just for adjustments.

Using the tsc for adjustments should do fine.

Xen updates the guest paravirt time with both systime and corrosponding
tsc timestamp, and the guest then uses the tsc delta to get more precise
time without having to ask the hypervisor each time.

If we take that scheme and additionally take care to update paravirt
time before re-running the guest after it went sleep for a while (and
thus the host might have been in C3) we should be set, right?

> * Considering the tsc stable, but taking the time the cpu spend
> sleeping into account, and returning some sorf of "return tsc +
> total_time_spent_sleeping_in_so_deep_sleep_states_such_as_C3" . I
> specially liked the naming.

I suspect that scheme would quickly becomes quite complex.  For starters
consider that the TSC-stops-in-C3 behavior seems to apply to Intel
Hardware only ...

cheers,
  Gerd



-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/

  parent reply	other threads:[~2007-10-16  7:40 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-12 16:08 [RFC] Paravirt timer for KVM Glauber de Oliveira Costa
     [not found] ` <5d6222a80710120908s6b1f5845head84e7b7a463cd1-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-10-12 18:10   ` Anthony Liguori
     [not found]     ` <470FB8AB.9030101-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-10-15 16:58       ` Glauber de Oliveira Costa
     [not found]         ` <5d6222a80710150958y31338c2ag3a391390b13788da-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-10-15 17:07           ` Avi Kivity
     [not found]             ` <47139E6F.7030704-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-10-15 18:09               ` Glauber de Oliveira Costa
     [not found]                 ` <5d6222a80710151109m5376449foc6be5b687c469a2b-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-10-16  7:31                   ` Avi Kivity
2007-10-12 18:39   ` Jeremy Fitzhardinge
     [not found]     ` <470FBF58.2080701-TSDbQ3PG+2Y@public.gmane.org>
2007-10-12 18:58       ` Anthony Liguori
2007-10-15 17:15       ` Glauber de Oliveira Costa
2007-10-12 19:48   ` Hollis Blanchard
2007-10-12 20:02     ` Anthony Liguori
     [not found]       ` <470FD2CA.1000702-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-10-12 21:55         ` Hollis Blanchard
2007-10-12 22:07           ` Anthony Liguori
     [not found]             ` <470FF036.6080803-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-10-15  4:04               ` Dong, Eddie
     [not found]                 ` <10EA09EFD8728347A513008B6B0DA77A023A6DCE-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-10-15 16:01                   ` Hollis Blanchard
2007-10-15 16:47                     ` Avi Kivity
     [not found]                       ` <47139994.4030606-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-10-15 23:05                         ` Hollis Blanchard
2007-10-16  8:15                           ` Gerd Hoffmann
     [not found]                             ` <4714731D.4040408-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2007-10-16 10:27                               ` Avi Kivity
2007-10-16  9:45                           ` Avi Kivity
     [not found]                             ` <4714882C.2050504-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-10-16 10:03                               ` Dong, Eddie
2007-10-15 17:52                   ` Glauber de Oliveira Costa
     [not found]                     ` <5d6222a80710151052j37f0561dn6dbb5b07f6f697d1-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-10-16  7:17                       ` Avi Kivity
2007-10-15 17:38           ` Glauber de Oliveira Costa
2007-10-15  8:41         ` Gerd Hoffmann
     [not found]           ` <471327C7.8060304-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2007-10-15  9:07             ` Avi Kivity
     [not found]               ` <47132DCF.3060906-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-10-15  9:56                 ` Gerd Hoffmann
     [not found]                   ` <47133957.20508-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2007-10-15 10:14                     ` Gildas
2007-10-15 11:02                     ` Carsten Otte
     [not found]                       ` <471348B1.30300-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-10-15 16:31                         ` Jeremy Fitzhardinge
2007-10-15 18:03                         ` Glauber de Oliveira Costa
2007-10-15 18:00                     ` Glauber de Oliveira Costa
     [not found]                       ` <5d6222a80710151100p63e8e9aata79b006b43f6c37e-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-10-16  7:20                         ` Avi Kivity
2007-10-16  7:40                         ` Gerd Hoffmann [this message]
2007-10-15 17:53                 ` Glauber de Oliveira Costa
     [not found]     ` <5d6222a80710151029y288fc65bs3d325d5c8d1f039c@mail.gmail.com>
     [not found]       ` <1192489814.22523.36.camel@basalt>
2007-10-16  1:26         ` Glauber de Oliveira Costa
2007-10-12 22:09   ` Hollis Blanchard
2007-10-15 17:48     ` Glauber de Oliveira Costa
     [not found]       ` <5d6222a80710151048t22e747l42106a6507c811c6-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-10-15 22:54         ` Hollis Blanchard
2007-10-16  1:15           ` Glauber de Oliveira Costa
     [not found]             ` <5d6222a80710151815m2330c8b7ocf4fc352954a551c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-10-16  9:47               ` Avi Kivity
2007-10-16  7:14         ` Avi Kivity
2007-10-16  8:41   ` Dong, Eddie

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=47146AFA.3060104@redhat.com \
    --to=kraxel-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
    --cc=avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org \
    --cc=glommer-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org \
    --cc=jeremy-TSDbQ3PG+2Y@public.gmane.org \
    --cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox