From: Fabrice Bellard <fabrice@bellard.org>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] Timer/clock for Linux
Date: Tue, 25 Apr 2006 23:10:51 +0200 [thread overview]
Message-ID: <444E905B.5050703@bellard.org> (raw)
In-Reply-To: <20060425001645.GA9761@mail.shareable.org>
Jamie Lokier wrote:
> Fabrice Bellard wrote:
>
>>Can other people confirm that it is better to always use /dev/rtc on
>>Linux ? Is there a way to get the real resolution of the host timer ?
>
>
> Yes, on recent Linux kernels you can do
> clock_getres(CLOCK_MONOTONIC,&ts) [or CLOCK_REALTIME], and it will
> return the length of a timer tick. On my kernel it's 4.00025 ms. On
> other x86 kernels it can be ~10ms or ~1ms.
>
> Also the recent Linux kernels (more recent) offer "high-resolution
> timers"; you can guess what that means. They should be more accurate
> than /dev/rtc when they're available, because they reprogram the timer
> chip, though I have never tried them. I'd guess that kernels
> featuring them would return a small value from clock_getres().
Using clock_getres() seems a good idea if I can test that it is
supported. If it is not supported then /dev/rtc will be used in any case.
> It's unfortunate that even on kernels where the kernel tick time is
> 1ms, setitimer() will cost you a 2ms delay. But: why should that make
> Windows run slower? Doesn't qemu read the kernel clock to determine
> that the guest is due approx. 2 timer interrupts for each host wakeup?
> Naturally you can't let that count increase indefinitely, if the
> emulator is too slow to run the guest at full speed, but it might be
> an idea to count up to a small number, so that short pauses in host
> kernel scheduling won't cause a guest to lose time.
QEMU reads the clock at each host wakeup, but it cannot compensate if
the guest OS requires a higher frequency than the host timer frequency.
Having a 1 ms period is definitively better to be able to run a wide
range of guest OSes.
Fabrice.
next prev parent reply other threads:[~2006-04-25 21:16 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-12 2:10 [Qemu-devel] [PATCH] Timer/clock for Linux Kazu
[not found] ` <443E93A3.5060508@weilnetz.de>
2006-04-13 18:11 ` [Qemu-devel] [PATCH] Fix message in configure Stefan Weil
2006-04-24 21:41 ` [Qemu-devel] [PATCH] Timer/clock for Linux Fabrice Bellard
2006-04-25 0:16 ` Jamie Lokier
2006-04-25 21:10 ` Fabrice Bellard [this message]
2006-04-25 21:34 ` Jamie Lokier
2006-04-25 21:49 ` Paul Brook
2006-04-26 13:01 ` Jamie Lokier
2006-04-26 14:21 ` Paul Brook
2006-04-26 17:26 ` Jamie Lokier
2006-04-25 11:04 ` NyOS
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=444E905B.5050703@bellard.org \
--to=fabrice@bellard.org \
--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).