[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 |