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 14:05:37 -0400 [thread overview]
Message-ID: <472B66F1.20201@virtualiron.com> (raw)
In-Reply-To: <C350FD7A.17DB6%Keir.Fraser@cl.cam.ac.uk>
oops, you're right. I missed the ( (NOW() - pt->scheduled) >= 0 ).
This means I will have to come up with another explanation.
-Dave
Keir Fraser wrote:
>Thanks for the explanation. I think you are mis-describing the current
>behaviour of vpt.c though (If I understand it correctly myself, which I may
>not!). As I understand it, we do *not* unconditionally deliver a tick and
>reset the time space when a vcpu is scheduled onto a cpu. We only do that if
>(NOW() - pt->scheduled) >= 0 -- that is if more than a tick period has
>passed. Otherwise we wait to deliver the next tick exactly one period after
>the previous tick was delivered. The remainder of your explanation seems to
>be predicated on the (impossible?) case that we deliver a tick less than one
>period after the previous one.
>
>Am I confused? :-) Also, what version of Linux are we talking about here,
>and what periodic timer, and x86/64 or i386? There are lots of different
>Linux timer-handling logics out there in the wild!
>
> -- Keir
>
>On 2/11/07 15:51, "Dave Winchell" <dwinchell@virtualiron.com> wrote:
>
>
>
>>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.
>>
>>
>
>
>
>
next prev parent reply other threads:[~2007-11-02 18:05 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
2007-11-02 16:14 ` Keir Fraser
2007-11-02 16:35 ` Keir Fraser
2007-11-02 18:05 ` Dave Winchell [this message]
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=472B66F1.20201@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.