From: Anthony Liguori <anthony@codemonkey.ws>
To: Gleb Natapov <gleb@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [RESEND][PATCH 0/3] Fix guest time drift under heavy load.
Date: Thu, 06 Nov 2008 08:10:45 -0600 [thread overview]
Message-ID: <4912FAE5.9010100@codemonkey.ws> (raw)
In-Reply-To: <20081106081206.GD3820@redhat.com>
Gleb Natapov wrote:
> On Wed, Nov 05, 2008 at 10:43:46AM -0600, Anthony Liguori wrote:
>
>> Gleb Natapov wrote:
>>
>> Sorry, I mistyped. I meant to say, I don't think any of the problems
>> raised when this was initially posted have been addressed. Namely, I
>> asked for hard data on how much this helped things
>>
> Does my answer to Dor's mail provide enough data?
>
I'll try to reproduce locally. Your case would be more compelling with
a more thorough analysis but I can at least now attempt to determine how
hr timers impacts this.
>>>> How does having a
>>>> high resolution timer in the host affect the problem to begin with?
>>>>
>>>>
>>> My test machine has relatively recent kernel that use high resolution
>>> timers for time keeping. Also the problem is that guest does not receive
>>> enough time to process injected interrupt. How hr timer can help here?
>>>
>>>
>> If the host can awaken QEMU 1024 times a second and QEMU can deliver a
>> timer interrupt each time, there is no need for time drift fixing.
>>
>>
> It is not enough to wake QEMU process 1024 time a second to signal time
> interrupt. A guest should also have enough time to run between each
> interrupt to process it. If QEMU signals 1024 time interrupt a second
> and guest process only half of that a second you'll see time drift.
> And if guest asks for 1024hz frequency and guest can't provide that no
> solution for time drift exists in that case.
>
If nothing else is running on the system, the guest should get plenty of
time to run timers.
If the guest is not getting enough time on the system to be able to run
their timer ticks, then coalescing the timer ticks isn't going to help
by definition (they aren't getting enough CPU time to run these routines).
>> I would think that with high res timers on the host, you would have to
>> put the host under heavy load before drift began occurring.
>>
>>
> I see a time drift even with guest using 100hz timers and I am pretty sure
> my 2.6.25 host uses hr timers.
>
You see time drift with 100hz timers in the guest?? That makes very
little sense as even without hr timers, the host should have no problem
delivering a 10ms timer. Note, we just fixed an issue with delayed
timer deliver. There may be more bugs like this that are causing ticks
to get missed. If you have nothing else running on the host, no matter
what you do in the guest, I see absolutely no reason why time should
drift if the guest is running a 100hz timer.
Do you have an explanation for this?
>> The windows guest is supposed
>> to be able to tell the hypervisor which technique it should be using.
>>
>>
> Do you have pointer to a documentation that describe it? I am especially
> interested if old guest like windows XP and windows 2003 support this?
> Surprisingly many people are interested in those old guests, not shiny
> newer ones :)
>
http://www.microsoft.com/downloads/details.aspx?FamilyID=91e2e518-c62c-4ff2-8e50-3a37ea4100f5&DisplayLang=en
Regards,
Anthony Liguori
> --
> Gleb.
>
next prev parent reply other threads:[~2008-11-06 14:10 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-29 15:22 [Qemu-devel] [RESEND][PATCH 0/3] Fix guest time drift under heavy load Gleb Natapov
2008-10-29 15:22 ` [Qemu-devel] [PATCH 1/3] Change qemu_set_irq() to return status information Gleb Natapov
2008-10-29 15:22 ` [Qemu-devel] [PATCH 2/3] Fix time drift problem under high load when PIT is in use Gleb Natapov
2008-10-29 15:22 ` [Qemu-devel] [PATCH 3/3] Fix time drift problem under high load when RTC " Gleb Natapov
2008-11-05 12:46 ` Dor Laor
2008-10-31 19:17 ` [Qemu-devel] [RESEND][PATCH 0/3] Fix guest time drift under heavy load Anthony Liguori
2008-11-02 13:04 ` Gleb Natapov
2008-11-05 12:45 ` Dor Laor
2008-11-05 15:48 ` andrzej zaborowski
2008-11-05 16:33 ` Anthony Liguori
2008-11-06 7:16 ` Gleb Natapov
2008-11-06 9:37 ` andrzej zaborowski
2008-11-06 10:08 ` Gleb Natapov
2008-11-06 13:21 ` andrzej zaborowski
2008-11-06 14:18 ` Gleb Natapov
2008-11-06 14:35 ` andrzej zaborowski
2008-11-06 15:04 ` Gleb Natapov
2008-11-06 15:41 ` Anthony Liguori
2008-11-07 23:18 ` andrzej zaborowski
2008-11-08 8:23 ` Gleb Natapov
2008-11-06 13:44 ` Paul Brook
2008-11-05 17:43 ` Gleb Natapov
2008-11-06 17:28 ` David S. Ahern
2008-11-05 16:43 ` Anthony Liguori
2008-11-06 3:55 ` Jamie Lokier
2008-11-06 8:12 ` Gleb Natapov
2008-11-06 14:10 ` Anthony Liguori [this message]
2008-11-06 14:24 ` Paul Brook
2008-11-06 14:40 ` Anthony Liguori
2008-11-06 14:51 ` Gleb Natapov
2008-11-06 15:37 ` Anthony Liguori
2008-11-08 8:36 ` Gleb Natapov
2008-11-08 22:14 ` Dor Laor
2008-11-09 7:40 ` Gleb Natapov
2008-11-09 16:38 ` Anthony Liguori
2008-11-09 21:00 ` Avi Kivity
2008-11-09 16:36 ` Anthony Liguori
2008-11-10 14:37 ` Gleb Natapov
2008-11-10 15:24 ` Anthony Liguori
2008-11-10 15:29 ` Gleb Natapov
2008-11-10 15:46 ` Anthony Liguori
2008-11-10 15:51 ` Gleb Natapov
2008-11-11 14:43 ` Gleb Natapov
2008-11-11 17:26 ` Anthony Liguori
2008-11-11 20:17 ` Anthony Liguori
2008-11-12 11:42 ` Gleb Natapov
2008-11-12 11:54 ` Glauber Costa
2008-11-12 12:38 ` Dor Laor
2008-11-06 3:41 ` Jamie Lokier
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=4912FAE5.9010100@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=gleb@redhat.com \
--cc=qemu-devel@nongnu.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;
as well as URLs for NNTP newsgroup(s).