[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] 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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |