]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - tools/tools/netrate/tcpp/runit.pl
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / tools / tools / netrate / tcpp / runit.pl
1 #!/usr/bin/perl
2 #
3 # $FreeBSD$
4 #
5
6 if ($#ARGV != 0) {
7         print "runit.pl kernelname\n";
8         exit(-1);
9 }
10
11 $tcpp_dir = "/rwatson/svn/base/head/tools/tools/netrate/tcpp";
12
13 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
14 $mon++;
15 $year += 1900;
16 $date = sprintf("%04d%02d%02d", $year, $mon, $mday);
17
18 $kernel = $ARGV[0];
19 $outfile = $date."_".$kernel.".csv";
20 unlink($outfile);
21 open(OUTFILE, ">".$outfile) || die $outfile;
22 print OUTFILE "# $kernel $date\n";
23 print OUTFILE "# hydra1: ".`ssh root\@hydra1 uname -a`."\n";
24 print OUTFILE "# hydra2: ".`ssh root\@hydra2 uname -a`."\n";
25 print OUTFILE "#\n";
26 print OUTFILE "kernel,tso,lro,mtu,cores,trial,";
27 print OUTFILE "bytes,seconds,conns,bandwidth,user,nice,sys,intr,idle\n";
28 close(OUTFILE);
29
30 system("ssh root\@hydra1 killall tcpp");
31 system("ssh root\@hydra2 killall tcpp");
32 sleep(1);
33 system("ssh root\@hydra2 ${tcpp_dir}/tcpp -s -p 8&");
34 sleep(1);
35
36 sub test {
37         my ($kernel, $tso, $lro, $mtu) = @_;
38
39         $prefix = "$kernel,$tso,$lro,$mtu";
40         print "Configuring $prefix\n";
41
42         system("ssh root\@hydra1 ifconfig cxgb0 $tso $lro mtu $mtu");
43
44         system("ssh root\@hydra2 ifconfig cxgb0 $tso $lro mtu $mtu");
45
46         print "Running $prefix\n";
47         system("ssh root\@hydra1 '(cd $tcpp_dir ; csh parallelism.csh ".
48             "$outfile $prefix)'");
49 }
50
51 # Frobbing MTU requires resetting the host cache, which we don't do,
52 # so don't frob MTU.
53 @mtu_options = ("1500");
54 @tso_options = ("tso", "-tso");
55 @lro_options = ("lro", "-lro");
56
57 foreach $mtu (@mtu_options) {
58         foreach $tso (@tso_options) {
59                 foreach $lro (@lro_options) {
60                         sleep(5);
61                         test($kernel, $tso, $lro, $mtu);
62                 }
63         }
64 }