From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Re: Calculating real cpu usage of Xen domains correctly! Date: Wed, 23 Feb 2005 21:10:05 -0600 Message-ID: <421D458D.2090906@us.ibm.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit In-Reply-To: Sender: xen-devel-admin@lists.sourceforge.net Errors-To: xen-devel-admin@lists.sourceforge.net List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , List-Archive: To: Ian Pratt Cc: Jerone Young , xen-devel , ian.pratt@cl.cam.ac.uk List-Id: xen-devel@lists.xenproject.org Ian Pratt wrote: >I would expect it to return the cumulative total CPU time in ns that the >domain has received. > > I think what's happening is that cpu_time is being updated even if the domain is blocked. Looking in xen/common/schedule.c:__enter_scheduler(), the update to cpu_time is still being updated even if SCHED_OP(do_block, prev) is invoked. Honestly, I don't understand this code that well but I made the following change: --- schedule.c~ 2005-02-21 22:19:31.000000000 -0600 +++ schedule.c 2005-02-23 19:44:52.000000000 -0600 @@ -389,13 +389,15 @@ { /* This check is needed to avoid a race condition. */ if ( event_pending(prev) ) + { clear_bit(EDF_BLOCKED, &prev->ed_flags); - else + prev->cpu_time += now - prev->lastschd; + } else SCHED_OP(do_block, prev); + } else { + prev->cpu_time += now - prev->lastschd; } - prev->cpu_time += now - prev->lastschd; - /* get policy-specific decision on scheduling... */ next_slice = ops.do_schedule(now); And cpu_time contained what it should contain. Before, if I ran a simple infinite loop in a domU (while true; do true; done), it would report dom0 and domU both using 99% of the CPU. Now it shows domU using 99% of the CPU and dom0 using 1%. This is probably the wrong way to fix this problem but hopefully it makes the right solution obvious to someone who knows this code better. Regards, Anthony Liguori Signed-off-by: Anthony Liguori >If it doesn't I'd regard it as a bug. > >Seperately, we should make sure we store a total cumulative time that >each CPU has been executing domains (other than idle). > >Ian > > > ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click