blob: d151c446cdd9b1f19fefd086a910594c644cf13c [file] [log] [blame]
#!/bin/sh
#
# smpalloc.sh: simple script to generate data from smpalloc.
# Note: no attempt is made to generate statistically
# defensible data!
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# Copyright (c) 2006 Paul E. McKenney, IBM.
maxt=2
for ((nt = 1; nt <= $maxt; nt++))
do
rm smpalloc.$nt.dat
touch smpalloc.$nt.dat
for ((nb = 1; nb < 25; nb++))
do
./smpalloc $nt $nb >> smpalloc.$nt.dat
sleep 1 # Quick Quiz: why is this needed?
done
done
for ((nt = 1; nt <= $maxt; nt++))
do
awk '{ print $2, $4/1000000. }' < smpalloc.$nt.dat > smpalloc-af.$nt.dat
done
fontsize=10
plotsize=0.5
gnuplot << ---EOF---
set term pbm medium
set output "smpalloc.pbm"
set xlabel "Allocation Run Length"
set ylabel "Allocations/Frees Per Microsecond"
#set yrange [1:10000]
set nokey
# set label 1 "rcu" at 0.1,10 left
# set label 2 "spinlock" at 0.5,3.0 left
# set label 3 "brlock" at 0.4,0.6 left
# set label 4 "rwlock" at 0.3,1.6 left
# set label 5 "refcnt" at 0.15,2.8 left
plot "smpalloc-af.1.dat", "smpalloc-af.2.dat"
set term postscript portrait ${fontsize} enhanced "NimbusSanL-Regu" fontfile "../../fonts/uhvr8a.pfb"
set size square ${plotsize},${plotsize}
set output "| ../../utilities/gnuplotepsfix > smpalloc.eps"
replot
---EOF---
ppmtogif smpalloc.pbm > smpalloc.gif 2> /dev/null