Mahendra Kutare
2010-Nov-24 15:41 UTC
[Xen-devel] How does xentop.c code gets previous sample to calculate CPU utilization ?
Hi,
I am creating my sample code which takes most of the cpu utilization code
from xentop.c under tools/xenstat/ for cpu and memory utilization
calculation.
I see somehow the cpu utilization always shows zero because it always sees *
prev_node* as *zero *of the following -
475 /* Computes the CPU percentage used for a specified domain */
476 static double get_cpu_pct(xenstat_domain *domain)
477 {
478 xenstat_domain *old_domain;
479 double us_elapsed;
480
* 481 /* Can''t calculate CPU percentage without a previous sample.
*/
** 482 if(prev_node == NULL)
483 return 0.0;
* 484
485 old_domain = xenstat_node_domain(prev_node,
xenstat_domain_id(domain));
* 486 if(old_domain == NULL)
487 return 0.0;
* 488
489 /* Calculate the time elapsed in microseconds */
490 us_elapsed = ((curtime.tv_sec-oldtime.tv_sec)*1000000.0
491 +(curtime.tv_usec - oldtime.tv_usec));
492
493 /* In the following, nanoseconds must be multiplied by 1000.0 to
494 * convert to microseconds, then divided by 100.0 to get a
percentage,
495 * resulting in a multiplication by 10.0 */
496 return ((xenstat_domain_cpu_ns(domain)
497 -xenstat_domain_cpu_ns(old_domain))/10.0)/us_elapsed;
498 }
I have looked around in tools/xenstats/xentop.c code and have used the same
functions with same code. But somehow I am missing something here. It is
clearly mentioned in above code on line 481 that it requires previous
samples and somehow in my code I am not supplying that and xentop is doing
it.
I am trying to figure out how does xentop.c provides the previous sample for
CPU utilization...so that I can do the same in my code but no luck so far
after I have looked and used the same code.
Any pointers would be useful ?
Thanks
Mahendra
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel