From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Winchell Subject: Re: [PATCH] Add a timer mode that disables pending missed ticks Date: Wed, 07 Nov 2007 09:39:00 -0500 Message-ID: <4731CE04.6050105@virtualiron.com> References: <472F2A7B.4020308@virtualiron.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------020700000803030308010602" Return-path: In-Reply-To: <472F2A7B.4020308@virtualiron.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser Cc: "Dong, Eddie" , Dave Winchell , "Shan, Haitao" , xen-devel@lists.xensource.com, "Jiang, Yunhong" List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------020700000803030308010602 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Keir, Attached is a fix for pt_process_missed_ticks(). Without this fix, systems run very erratically and some guests panic on boot complaining that timer interrupts are not working. As you can imagine. Also, I have some longer term measurements of the accuracy of the sync and async methods. The hardware is an eight cpu AMD box. Two eight vcpu guests, rh4u4-64 and sles9sp3-64. All vcpus running loads. Method Test duration Clock errors SYNC 56000 sec 6.4, 6.7 sec (.012%) ASYNC 52000 sec 13, 19 sec (.036%) More testing should be done to validate the significance of this difference. regards, Dave Dave Winchell wrote: > > Keir Fraser wrote: > >> On 3/11/07 21:17, "Dave Winchell" wrote: >> >> >> >>> Thanks for applying the fixes in the last submit. >>> In moving the test for no_missed_tick_accounting into >>> pt_process_missed_ticks() >>> you forgot to add the scheduling part. >>> >> >> >> Actually it was deliberate, but clearly it was one code >> simplification too >> far: thanks for spotting it! I'll go the async route, but we do need >> to set >> pending_intr_nr to 1. We can't leave that out -- the point of the async >> route is to send a tick to the vcpu immediately, since it hasn't had >> one for >> more than a tick period. If we wait for the timeout to do that then >> we have >> to wait a whole extra period after the vcpu is re-scheduled. >> >> Attached is my proposed patch. I think it's quite neat. :-) >> >> > It looks good to me. > > thanks, > Dave > >> -- Keir >> >> >> > --------------020700000803030308010602 Content-Type: text/plain; name="vpt.patch.11.07" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="vpt.patch.11.07" diff -r dfe9c0c10a2c xen/arch/x86/hvm/vpt.c --- a/xen/arch/x86/hvm/vpt.c Mon Nov 05 13:23:55 2007 +0000 +++ b/xen/arch/x86/hvm/vpt.c Wed Nov 07 08:55:45 2007 -0500 @@ -59,7 +59,7 @@ static void pt_process_missed_ticks(stru if ( mode_is(pt->vcpu->domain, no_missed_tick_accounting) ) { pt->pending_intr_nr = 1; - pt->scheduled = now + pt->scheduled; + pt->scheduled = now + pt->period; } else { --------------020700000803030308010602 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------020700000803030308010602--