1209429Srwatson#!/usr/bin/perl 2209429Srwatson# 3209429Srwatson# $FreeBSD$ 4209429Srwatson# 5209429Srwatson 6209429Srwatsonif ($#ARGV != 0) { 7209429Srwatson print "runit.pl kernelname\n"; 8209429Srwatson exit(-1); 9209429Srwatson} 10209429Srwatson 11209429Srwatson$tcpp_dir = "/rwatson/svn/base/head/tools/tools/netrate/tcpp"; 12209429Srwatson 13209429Srwatson($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); 14209429Srwatson$mon++; 15209429Srwatson$year += 1900; 16209429Srwatson$date = sprintf("%04d%02d%02d", $year, $mon, $mday); 17209429Srwatson 18209429Srwatson$kernel = $ARGV[0]; 19209429Srwatson$outfile = $date."_".$kernel.".csv"; 20209429Srwatsonunlink($outfile); 21209429Srwatsonopen(OUTFILE, ">".$outfile) || die $outfile; 22209429Srwatsonprint OUTFILE "# $kernel $date\n"; 23209429Srwatsonprint OUTFILE "# hydra1: ".`ssh root\@hydra1 uname -a`."\n"; 24209429Srwatsonprint OUTFILE "# hydra2: ".`ssh root\@hydra2 uname -a`."\n"; 25209429Srwatsonprint OUTFILE "#\n"; 26209429Srwatsonprint OUTFILE "kernel,tso,lro,mtu,cores,trial,"; 27209429Srwatsonprint OUTFILE "bytes,seconds,conns,bandwidth,user,nice,sys,intr,idle\n"; 28209429Srwatsonclose(OUTFILE); 29209429Srwatson 30209429Srwatsonsystem("ssh root\@hydra1 killall tcpp"); 31209429Srwatsonsystem("ssh root\@hydra2 killall tcpp"); 32209429Srwatsonsleep(1); 33209429Srwatsonsystem("ssh root\@hydra2 ${tcpp_dir}/tcpp -s -p 8&"); 34209429Srwatsonsleep(1); 35209429Srwatson 36209429Srwatsonsub test { 37209429Srwatson my ($kernel, $tso, $lro, $mtu) = @_; 38209429Srwatson 39209429Srwatson $prefix = "$kernel,$tso,$lro,$mtu"; 40209429Srwatson print "Configuring $prefix\n"; 41209429Srwatson 42209429Srwatson system("ssh root\@hydra1 ifconfig cxgb0 $tso $lro mtu $mtu"); 43209429Srwatson 44209429Srwatson system("ssh root\@hydra2 ifconfig cxgb0 $tso $lro mtu $mtu"); 45209429Srwatson 46209429Srwatson print "Running $prefix\n"; 47209429Srwatson system("ssh root\@hydra1 '(cd $tcpp_dir ; csh parallelism.csh ". 48209429Srwatson "$outfile $prefix)'"); 49209429Srwatson} 50209429Srwatson 51209429Srwatson# Frobbing MTU requires resetting the host cache, which we don't do, 52209429Srwatson# so don't frob MTU. 53209429Srwatson@mtu_options = ("1500"); 54209429Srwatson@tso_options = ("tso", "-tso"); 55209429Srwatson@lro_options = ("lro", "-lro"); 56209429Srwatson 57209429Srwatsonforeach $mtu (@mtu_options) { 58209429Srwatson foreach $tso (@tso_options) { 59209429Srwatson foreach $lro (@lro_options) { 60209429Srwatson sleep(5); 61209429Srwatson test($kernel, $tso, $lro, $mtu); 62209429Srwatson } 63209429Srwatson } 64209429Srwatson} 65