WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH] Add a timer mode that disables pending missed ti

To: Dave Winchell <dwinchell@xxxxxxxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] Add a timer mode that disables pending missed ticks
From: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
Date: Wed, 07 Nov 2007 17:10:40 +0000
Cc: "Dong, Eddie" <eddie.dong@xxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx, "Shan, Haitao" <haitao.shan@xxxxxxxxx>, "Jiang, Yunhong" <yunhong.jiang@xxxxxxxxx>
Delivery-date: Wed, 07 Nov 2007 09:11:27 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <4731E679.9000307@xxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcghYR9BXczCso1UEdyy3wAX8io7RQ==
Thread-topic: [Xen-devel] [PATCH] Add a timer mode that disables pending missed ticks
User-agent: Microsoft-Entourage/11.3.6.070618
On 7/11/07 16:23, "Dave Winchell" <dwinchell@xxxxxxxxxxxxxxx> wrote:

> I'm concerned about the way delay is blown off in the final calculation
> 
>             vxtime.last_tsc = tsc -
>                 (((long) offset << 32) / vxtime.tsc_quot) - 1;
> 
> If an interrupt is right on time, and the delay is the same as last time,
> then the offset should be zero in my mind. In the code above, offset will
> equal delay for this example.
> 
> What do you think?

I don't think this code likes the ASYNC method *at all*. The reason is that
it estimates how late the tick interrupt is by reading the PIT counter. It
knows the interrupt should have been triggered when the counter wrapped at
zero. But of course, if we are delivering ticks in ASYNC mode then quickly
the time we deliver an interrupt has *nothing* to do with the current PIT
counter value! Hence the lines that effectively fold max(offset, delay) into
last_tsc are just not going to work properly, because delay is a uniform
random variable, and hence we probably lose time.

Let me see if I can come up with a patch that gets the best of ASYNC and
SYNC in one handy mode...

 -- Keir



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>