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] Align periodic vpts to reduce timer interrupts and save

To: Gary Grebus <ggrebus@xxxxxxxxxxxxxxx>
Subject: RE: [Xen-devel] Align periodic vpts to reduce timer interrupts and save power
From: "Wei, Gang" <gang.wei@xxxxxxxxx>
Date: Tue, 10 Feb 2009 22:42:37 +0800
Accept-language: en-US
Acceptlanguage: en-US
Cc: "Tian, Kevin" <kevin.tian@xxxxxxxxx>, xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>, Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
Delivery-date: Tue, 10 Feb 2009 06:43:15 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1234205013.3683.62.camel@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
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/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <8FED46E8A9CA574792FC7AACAC38FE7701CAFAEEC6@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> <1234205013.3683.62.camel@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcmK5lLXagjQeU72QbWr2BIOohpKqwAoMnKA
Thread-topic: [Xen-devel] Align periodic vpts to reduce timer interrupts and save power
On Tuesday, February 10, 2009 2:44 AM, Gary Grebus wrote:
> On Mon, 2009-02-09 at 14:26 +0800, Wei, Gang wrote:
> ...
>> Is there any objections, comments or concerns for such a enhancement?
>> 
>> BTW, current vpt code try to handle vLAPIC specially to give vLAPIC ticks a
>>     offset from other timer ticks like below: pt->scheduled = NOW() + delta;
>>     /*
>>      * Offset LAPIC ticks from other timer ticks. Otherwise guests which use
>>      * LAPIC ticks for process accounting can see long sequences of process
>>      * ticks incorrectly accounted to interrupt processing.      */
>>     if ( pt->source == PTSRC_lapic )
>>         pt->scheduled += delta >> 1;
>> 
>> But I don't think this way can really reach the offset purpose, because the
>> additional (delta >> 1) can't prevent other timers created in other time to
>> expires right before lapic ticks.  
>> 
>> Will it really bring issues if vlapic ticks and vhpet ticks were aligned?
> 
> In that case, it was the vlapic timer ticking too close to the pit.  We
> saw a userspace application getting the wrong answer because long CPU
> bound sequences appeared to run with zero CPU time.  Skewing the vlapic
> was sufficient to fix the problem.  This only showed up with old Linux
> kernels (IIRC, it was with Red Hat 3 U8).
> 
> If the effect of your proposed change is to always deliver all timer
> interrupts to the guest in immediate succession, then I think you will
> cause a regression on this problem.

Thanks for the reply. First, we have the same concern. But it's only for 
specific purpose (accounting) in specific old guest. For most other guests I am 
afraid this offset can't really resist vpit or other vpts being delivered with 
vlapic in immediate succession if guest initialize PIT or other platform timer 
a bit far away from LAPIC init. Anyway, we could mention it as the alerts for 
this feature when people'd like to save power. BTW, the range timer has similar 
effect which could nullify the offset effect too.

Second, our solution does not intend to remove this offset. We just tries to 
provide a power-saving feature via a configurable way. For such feature some 
side effect may exist but the overall gain is more power efficient. I will make 
my patch ready soon, and we can do further discussion on the implementation 
level then.

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