From: Dave Winchell <dwinchell@virtualiron.com>
To: Keir Fraser <Keir.Fraser@cl.cam.ac.uk>
Cc: "Dong, Eddie" <eddie.dong@intel.com>,
Dave Winchell <dwinchell@virtualiron.com>,
xen-devel@lists.xensource.com, "Shan,
Haitao" <haitao.shan@intel.com>,
"Jiang, Yunhong" <yunhong.jiang@intel.com>
Subject: Re: [PATCH] Add a timer mode that disables pending missed ticks
Date: Fri, 02 Nov 2007 11:51:14 -0400 [thread overview]
Message-ID: <472B4772.8070109@virtualiron.com> (raw)
In-Reply-To: <C350A115.17D26%Keir.Fraser@cl.cam.ac.uk>
Keir,
I agree with removing the check.
Sorry, I was a bit vague with the rounding term.
My experiments show that delivering clock interrupts
in a constant N*period time space results in a .4% improvement
in accuracy over delivering interrupts at context switch (in) time
and resetting the N*period time space.
Lets call the former technique method S (synch) and the later AS
(async).
Now I will offer an explanation without proof.
If you would like proof, I can instrument the hypervisor to see
if this explanation is correct.
Let D be the time that the clock vcpu is descheduled and P be
the clock period. When D < P, I think there is an issue.
The reason is that Linux's offset calculation, which affects the
last clock interrupt tsc that is recorded, doesn't kick in if the
time since the last interrupt is less than P. In this case it sets
offset to zero. Linux records the tsc of the current (last) clock interrupt
as (current tsc - offset).
Interrupt delivery method AS delivers a clock interrupt
at context switch (in) time. When D < P, Linux records the
interrupt delivery time as current tsc and bumps jiffies.
This results in a gain of time equal to P-D over wall time.
For method S this never happens because the interrupt isn't
delivered until the next boundary.
regards,
Dave
Keir Fraser wrote:
>On 1/11/07 21:14, "Dave Winchell" <dwinchell@virtualiron.com> wrote:
>
>
>
>>1. Increase missed ticks threshold to 100 seconds. Per the comment in
>>the patch,
>>
>>
>
>I assume that's the magic number 100000 in the patch? I think removing the
>check entirely would be better than an arbitrarily high threshold that we're
>baiscally hoping will never trigger.
>
>
>
>
>>3. Call pt_process_missed_ticks() unconditionally and place the
>> test for no_missed_tick_accounting inside pt_process_missed_ticks().
>> This returns the calculation for the next timer expiration
>> to the original method. The original method is important
>> as it sets up a theoretical time space at t=0 where expirations
>> occur only at n*period, where n is any integer. This, in turn, removes
>> rounding errors.
>>
>>
>
>Why do 'rounding errors' matter? I thought that no_missed_tick_accounting
>was for guests which sampled the TSC on tick interrupt and used that to
>determine elapsed wall time, in which case why would it matter when exactly
>the tick interrupt is delivered?
>
>
> -- Keir
>
>
>
>
next prev parent reply other threads:[~2007-11-02 15:51 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-30 14:28 [PATCH] Add a timer mode that disables pending missed ticks Shan, Haitao
2007-10-30 16:12 ` Keir Fraser
2007-10-30 21:16 ` Dave Winchell
2007-10-31 7:09 ` Keir Fraser
2007-11-01 21:14 ` Dave Winchell
2007-11-01 21:21 ` Dave Winchell
2007-11-02 9:40 ` Keir Fraser
2007-11-02 15:51 ` Dave Winchell [this message]
2007-11-02 16:14 ` Keir Fraser
2007-11-02 16:35 ` Keir Fraser
2007-11-02 18:05 ` Dave Winchell
2007-11-03 21:17 ` Dave Winchell
2007-11-03 22:31 ` Keir Fraser
2007-11-05 14:36 ` Dave Winchell
2007-11-07 14:39 ` Dave Winchell
2007-11-07 14:39 ` Keir Fraser
2007-11-07 16:23 ` Dave Winchell
2007-11-07 17:10 ` Keir Fraser
2007-11-07 17:29 ` Keir Fraser
2007-11-07 17:47 ` Keir Fraser
2007-11-07 19:38 ` Dave Winchell
2007-11-08 8:07 ` Keir Fraser
2007-11-08 14:43 ` Dave Winchell
2007-11-08 14:53 ` Keir Fraser
2007-11-08 15:08 ` Dave Winchell
2007-11-09 19:22 ` Dave Winchell
2007-11-10 10:55 ` Keir Fraser
2007-11-12 15:37 ` Dave Winchell
2007-11-26 20:57 ` Dave Winchell
2007-12-06 11:57 ` Keir Fraser
2007-12-19 18:57 ` Dan Magenheimer
2007-12-19 19:32 ` Dave Winchell
2008-01-03 22:57 ` Dan Magenheimer
2008-01-03 23:24 ` Dave Winchell
2008-01-04 23:24 ` Dave Winchell
2008-01-08 14:33 ` Keir Fraser
2008-01-09 16:53 ` Dave Winchell
2008-01-09 17:19 ` Dan Magenheimer
2008-01-09 19:14 ` Keir Fraser
2008-01-25 23:50 ` Dan Magenheimer
2008-01-27 21:21 ` Dave Winchell
2008-01-28 0:29 ` Dan Magenheimer
2008-01-28 15:21 ` Dave Winchell
2008-01-29 22:34 ` Dan Magenheimer
2008-01-30 15:25 ` Dave Winchell
2008-01-30 21:04 ` Deepak Patel
2008-01-30 21:44 ` Dave Winchell
2008-02-01 22:31 ` Dan Magenheimer
2008-02-04 20:07 ` Dave Winchell
2008-02-08 21:21 ` Dave Winchell
2008-02-11 16:52 ` Dave Winchell
2008-02-14 15:59 ` Dave Winchell
2008-02-14 16:21 ` Dan Magenheimer
2008-02-14 17:55 ` Dave Winchell
2008-02-15 16:46 ` Dan Magenheimer
2008-02-15 17:28 ` Dave Winchell
2008-02-19 15:26 ` Dave Winchell
2008-02-19 17:55 ` Dan Magenheimer
2008-02-19 19:29 ` Keir Fraser
2008-02-19 20:50 ` Dave Winchell
2008-02-19 23:38 ` Dan Magenheimer
2008-02-20 23:40 ` Dan Magenheimer
2008-02-25 16:42 ` Dan Magenheimer
2008-02-25 20:01 ` (progress on hpet accuracy) and " Dave Winchell
2008-02-26 8:26 ` Keir Fraser
2008-02-26 14:45 ` Dave Winchell
2008-02-26 14:56 ` Keir Fraser
2008-02-26 15:49 ` Dave Winchell
2008-03-05 15:06 ` Dave Winchell
2008-03-05 15:20 ` Keir Fraser
2008-03-05 17:25 ` Dave Winchell
2008-03-05 17:21 ` Keir Fraser
2008-03-05 17:42 ` Dave Winchell
2008-03-05 17:53 ` Dan Magenheimer
2008-03-06 23:36 ` Dan Magenheimer
2007-12-19 19:40 ` Dave Winchell
2007-11-08 14:57 ` Dave Winchell
2007-10-31 3:10 ` Shan, Haitao
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=472B4772.8070109@virtualiron.com \
--to=dwinchell@virtualiron.com \
--cc=Keir.Fraser@cl.cam.ac.uk \
--cc=eddie.dong@intel.com \
--cc=haitao.shan@intel.com \
--cc=xen-devel@lists.xensource.com \
--cc=yunhong.jiang@intel.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.