|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 25/27] ts-bench-hostcmp-post: add plotting facilities
From: Dario Faggioli <raistlin@xxxxxxxx>
in order to have an additional graph, comparing host and
guests performance when running unixbench.
Signed-off-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx>
Cc: Wei Liu <wei.liu2@xxxxxxxxxx>
Cc: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
Cc: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
---
Osstest/Benchmarking.pm | 22 ++++++++++++++++------
sg-run-job | 2 +-
ts-bench-hostcmp-post | 43 ++++++++++++++++++++++++++++++++++++++++++-
ts-unixbench-reslts | 6 +++---
4 files changed, 62 insertions(+), 11 deletions(-)
diff --git a/Osstest/Benchmarking.pm b/Osstest/Benchmarking.pm
index ff45766..301af08 100644
--- a/Osstest/Benchmarking.pm
+++ b/Osstest/Benchmarking.pm
@@ -96,21 +96,31 @@ set boxwidth 1 absolute
EOF
sub unixbench_plot_results ($$$) {
- my ($dataf,$num_cols,$pfile)= @_;
- my $h= new IO::File "> $pfile.gp" or die "$!";
+ my ($dfiles,$num_cols,$pfile)= @_;
+ my $f= keys @$dfiles;
+ my $s= join(' ',@$dfiles);
- printf $h <<EOF;
+ my $h= new IO::File "> $pfile.gp" or die "$!";
+ print $h <<EOF;
set terminal png enhanced font
"/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf" 8 size 800,600
set output '$pfile.png'
set title 'Unixbench INDEXes for $flight.$job'
$common_plot_opts
set bmargin 13
set rmargin 14
+NDATA=$num_cols
+NHOSTS=$f
SKIP_COL=1
-NCOL=$num_cols
+NCOL=1*(NHOSTS*NDATA)
HWIDTH=1.0/(NCOL+1.0)
-plot for [c=SKIP_COL+1:SKIP_COL+NCOL] '$dataf' using c:xtic(1) with histograms
title columnhead, \\
- for [c=SKIP_COL+1:SKIP_COL+NCOL]'' every ::1 using 0:c:c with labels
notitle offset first -HWIDTH*(NCOL/2.0)+HWIDTH/2.0+(c-(SKIP_COL+1))*HWIDTH,
character 2 rotate by 90
+cols=''
+do for [h=0:NHOSTS-1] {
+ do for
[c=1+h*(NDATA+SKIP_COL)+SKIP_COL:1+h*(NDATA+SKIP_COL)+SKIP_COL+NDATA-1] {
+ cols = cols . sprintf("\%d ", c);
+ }
+}
+plot for [c in cols] '< paste $s' using int(c):xtic(1) with histograms title
columnhead, \\
+ for [i=1:words(cols)] '' every ::1 using
0:int(word(cols,i)):int(word(cols,i)) with labels notitle offset first
-HWIDTH*(NCOL/2.0)+HWIDTH/2.0+(i-1)*HWIDTH, character 2 rotate by 90
EOF
close($h);
diff --git a/sg-run-job b/sg-run-job
index 5954032..b16584a 100755
--- a/sg-run-job
+++ b/sg-run-job
@@ -406,7 +406,7 @@ proc run-job/bench-hostcmp-unixbench {} {
run-ts . = ts-bench-hostcmp-host-prep
run-ts . = ts-host-reboot
bench-unixbench-host
- run-ts . = ts-bench-hostcmp-post
+ run-ts . = ts-bench-hostcmp-post + host unixbench
run-ts . = ts-host-reboot
}
diff --git a/ts-bench-hostcmp-post b/ts-bench-hostcmp-post
index 26a67f4..383bac0 100755
--- a/ts-bench-hostcmp-post
+++ b/ts-bench-hostcmp-post
@@ -20,13 +20,53 @@ use DBI;
use Osstest;
use Osstest::Debian;
use Osstest::TestSupport;
+use Osstest::Benchmarking;
+use IO::File;
tsreadconfig();
-our ($whhost) = @ARGV;
+# what we expect as argument list is:
+# host=<somehost> <somebench>
+our $whhost= $ARGV[0];
+our $bn= $ARGV[1];
+
+#our ($whhost,$gn,$bn) = @ARGV;
$whhost ||= 'host';
our $ho= selecthost($whhost);
+sub plot_hostcmp () {
+ opendir my $dir, "$stash" or die "$!";
+
+ my @dfiles = grep(/.*-DATA$/,readdir($dir));
+ closedir($dir);
+
+ # Mangle the data file a bit, so each data set is marked
+ # with the name of the box (either host or a VM) where
+ # the bench did run.
+ my ($fhi,$fho,$ncols);
+ foreach my $i (0 .. $#dfiles) {
+ $_= $dfiles[$i];
+ my $host= m/(\w*)(\.|--).*/;$host= $1;
+ $dfiles[$i]= "$stash/$dfiles[$i]";
+
+ open FH, "<", "$dfiles[$i]" or die "!";
+ my @lines= <FH>;
+ close FH;
+
+ open FH, ">", "$dfiles[$i]" or die "!";
+ foreach my $line (@lines) {
+ if ($line eq $lines[0]) {
+ $line =~ s/"([^"]*\w*[^"]*)"/"$host $1"/g if $line !~ "$host";
+ }
+ print FH $line;
+ # Figure out the number of data columns, for plotting
+ $ncols= () = $line =~ /(\d+\.\d+)/g;
+ }
+ close FH;
+ }
+ unixbench_plot_results(\@dfiles,$ncols,"$stash/$job-PLOT") if $bn eq
"unixbench";
+}
+
sub resetboot () {
my ($xenhopt,@hooks)= host_bootxen_setup($ho);
my $want_kernver = get_runvar('kernel_ver',$r{'kernbuildjob'});
@@ -36,4 +76,5 @@ sub resetboot () {
logm("host reset to booting Xen");
}
+plot_hostcmp();
resetboot();
diff --git a/ts-unixbench-reslts b/ts-unixbench-reslts
index b480d15..6c3e0a3 100755
--- a/ts-unixbench-reslts
+++ b/ts-unixbench-reslts
@@ -69,15 +69,15 @@ END
sub process () {
my $resf= "$stash/$gho->{Name}--$lresfile";
- my $dataf= "$resf-DATA";
+ my @dataf= "$resf-DATA";
my $plotf= "$resf-PLOT";
unixbench_process_results(\$results,$resf);
- unixbench_print_results($results,$dataf);
+ unixbench_print_results($results,$dataf[0]);
# For plotting we need to know the number of data columns
my $ncols= keys $results->{'Double-Precision Whetstone'}{Index};
- unixbench_plot_results($dataf,$ncols,$plotf);
+ unixbench_plot_results(\@dataf,$ncols,$plotf);
}
fetch();
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |