|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] Calculating real cpu usage of Xen domains correctly!
Oops, I indeed misread your patch -- my mistake.
However, I'm concerned that we're missing something bigger. This is my
understanding of what the BLOCKED flag (and the surrounding code) means:
1. The guest OS calls HYPERVISOR_block() (thus setting the BLOCKED flag)
whenever it wants to yield the processor because it's waiting for an
event.
2. This blocking can happen anytime -- including after the guest OS has
been running for quite some time.
3. All the "event_pending(prev)" check in __enter_scheduler() is for is to
say "whoops, an event arrived in the time between when the guest OS
blocked & right now, so I should clear the BLOCKED flag." This is so the
domain can be rescheduled at the scheduler's earliest discretion (possibly
immediately).
If these are true, then the original code was correct -- "prev->cpu_time"
should be updated during any call to the __enter_scheduler() function,
regardless of the state of the BLOCKED flag.
Which makes me wonder if something is seriously misbehaving to cause the
weird CPU usage totals you're seeing -- like a yield()ed or block()ed
domain improperly getting rescheduled immediately, or an improper
modification of the prev->lastschd counter, or the "if (prev == next)"
optimization [later in __enter_scheduler()] leaves out some crucial
accounting, or...?
JLG
-------------------------------------------------------
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
|
|
|
|
|