|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] Calculating real cpu usage of Xen domains correctly!
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
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel
|
|
|
|
|