[Xen-devel] Xenmon execution count problem

Marco Tizzoni
2009-09-04T08:23:55Z

Hi all,
sorry for this mail posted also to users ml.

I''ve some doubts about Xenmon utilization.

Using it in interactive mode with --excount option Xenmon displays
execution count for both 10 and 1 second slice.
In batch mode (-n option) displays something like this:

---------------------------------------------------------------------------------------------------------
# passed cpu dom cpu(tot) cpu(%) cpu/ex allocated/ex blocked(tot)
blocked(%) blocked/io waited(tot) waited(%) waited/ex ex/s io(tot)
io/ex
0.000 0 0 0.009 0.000 18786.000 30000000.000 0.000 0.000 0.000 0.001
0.000 1707.000 0.000 0.000 0.000
48.522 1 0 0.059 0.000 12312.400 30000000.000 1384.989 0.000 0.000
0.002 0.000 473.500 0.000 0.000 0.000
50.328 0 0 7800237.500 0.780 213450.105 30000000.000 992182206.180
99.218 0.000 18284.307 0.002 500.342 36.544 0.000 0.000
1049.596 1 0 1772142.542 0.177 265311.286 30000000.000 998224548.251
99.822 0.000 5285.380 0.001 791.286 6.679 0.000 0.000
1051.185 0 0 3515390.832 0.352 104289.526 30000000.000 996468369.898
99.647 0.000 15925.254 0.002 472.447 33.708 0.000 0.000
2049.436 1 0 304263.333 0.030 86106.250 30000000.000 999693618.286
99.969 0.000 1471.736 0.000 416.500 3.534 0.000 0.000
---------------------------------------------------------------------------------------------------------

Which field reports the execution count? I can guess ex/s is the right
field (as the name recall) but it''s not an integer field as it should
be.

I had a look to the code and it seems just a formatting issue. What I
cannot understand is why a counter, integer for definition, has to be
printed out as a float.

In  writelog() functions we have:
---------------------------------------------------------------------------------------------------------
 outfiles[dom].write("%.3f %d %d %.3f %.3f %.3f %.3f %.3f %.3f %.3f
%.3f %.3f %.3f %.3f %.3f %.3f\n" %
                                   (interval, cpuidx, domain_id[dom],
                                   h1[dom][0][0], h1[dom][0][1],
h1[dom][0][2],
                                   h1[dom][1],
                                   h1[dom][2][0], h1[dom][2][1],
h1[dom][2][2],
                                   h1[dom][3][0], h1[dom][3][1],
h1[dom][3][2],
                                   h1[dom][4],
                                   h1[dom][5][0], h1[dom][5][1]))
---------------------------------------------------------------------------------------------------------

h1[dom][4] seems to be the right field, and the show_livestats(cpu)
functions confirms this:
---------------------------------------------------------------------------------------------------------
              # display ex count
              if options.excount:
                  row += 1
                  col = 2
                  display_domain_id(stdscr, row, col, domain_id[dom])

                  col += 28
                  display(stdscr, row, col, "%d/s" % h2[dom][4])
                  col += 42
                  display(stdscr, row, col, "%d" % h1[dom][4])
                  col += 18
                  display(stdscr, row, col, "Execution count")
---------------------------------------------------------------------------------------------------------

Also, printing out execution count twice, as an interger and as a float, shows
the printed integer is a "truncated float".

Someone knows why execution count is a float and not an integer???

thx,
Marco

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com