#!/usr/bin/perl # # Copyright 2007 Red Hat Inc # Author Steven Rostedt # # This software may be used and distributed according to the terms # of the GNU General Public License version 2, incorporated herein by reference. # # First find all the versions by using the rt-migrate result files. my $pwd = `pwd`; chomp $pwd; my $result_dir = "$pwd/results"; die "$result_dir not found" if (! -d $result_dir); my @ls = `ls $result_dir/results-rt-migrate-test*.out`; my @versions; my $vanilla; foreach my $file (@ls) { chomp $file; if ($file =~ /results-rt-migrate-test-(.*)\.out/) { my $ver = $1; $versions[$#versions+1] = $ver; # the smallest version name is the plain vanilla kernel. if (!defined($vanilla) || length $vanilla > length $ver) { $vanilla = $ver; } } } @versions = sort @versions; open (OUT, ">index.html") || die "Can't open index.html"; print OUT << "EOF";

Benchmarks on RT Balancing.

This web page script
Generate hackbench plot script
Generate kernel builds plot
script
Generate rt migrate plot
script
Generate rt migrate high only plot
script
Generate rt migrate high migrate plot average
script
Generate preempt test plot
script

Grub counter start script
Control test boot startup script
CFS debug boot startup script
Run hackbench script
Run migrate script
Run kernel builds script
Run looping RT tasks script

Kernels and System Information

EOF foreach $ver (@versions) { print OUT ""; } print OUT "\n"; print OUT << "EOF"; EOF my $imgdir = "$pwd/imgs"; if (! -d $imgdir) { mkdir $imgdir || die "cant create directory $imgdir"; } chdir $imgdir; foreach $ver (@versions) { `../tools/plot-rt-migrate.pl ../results/results-rt-migrate-test-$ver.out`; `gnuplot results-rt-migrate-test-$ver.out.plt`; print OUT "\n"; } print OUT "
$ver
System Information"; print OUT ""; print OUT "System Info
"; print OUT ""; print OUT "Info Script

"; print OUT "config
"; print OUT "git commit
"; if ($ver ne $vanilla) { my $tmp = $ver; $tmp =~ s/$vanilla-//; print OUT ""; print OUT "git-diff output
"; print OUT ""; print OUT "patch queue
"; } print OUT ""; print OUT ""; print OUT "
"; print OUT ""; print OUT "Raw Data
"; print OUT "
\n"; # hackbench results `../tools/plot-hackbench.pl ../results`; `gnuplot results-hackbench.plt`; # kernel build results `../tools/plot-kernel.pl ../results`; `gnuplot results-kernel-builds.plt`; # rt-migrate test results `../tools/plot-rt-migrate-hi-only-hist.pl ../results`; `gnuplot results-rt-migrate-hist.plt`; rename "results-rt-migrate-hist.png", "results-rt-migrate-hist-all.png"; # rt-migrate test results (exclude vanilla) my $ex = ""; foreach my $ver (@versions) { if ($ver !~ /-[sg]/) { $ex .= "-x results-rt-migrate-test-$ver.out "; } } `../tools/plot-rt-migrate-hi-only-hist.pl $ex ../results`; `gnuplot results-rt-migrate-hist.plt`; # preempt test results `../tools/plot-preempt-test.pl ../results`; `gnuplot results-preempt-test.plt`; @ls = `ls *.png`; foreach my $file (@ls) { chomp $file; next if ($file =~ /-sm\.png$/); my $sm = $file; $sm =~ s/\.png$/-sm.png/; `convert -resize 200 $file $sm`; } print OUT << "EOF";

General Test Results

EOF my @tests = ("hackbench", "kernel-builds", "rt-migrate-hist-all", "rt-migrate-hist", "preempt-test"); my @testfiles = ("hackbench", "kernel-build", "rt-migrate-test", "rt-migrate-test", "preempt-test"); my @srcs = ("hackbench.c", "run-compiles", "rt-migrate-test.c", "rt-migrate-test.c", "../preempt-test-v4/"); for (my $i=0; $i <= $#tests; $i++) { print OUT "\n"; } print OUT << "EOF";
Hack bench Kernel Builds RT Migrate Results RT Migrate Results w/o Vanilla Preempt Test
Test Results"; print OUT "Test Source\n"; print OUT ""; print OUT "
"; foreach my $ver (@versions) { print OUT ""; print OUT "Raw Data for $ver
\n"; } print OUT "
EOF # The End! print OUT << "EOF"; EOF close OUT