Mods for Linux 3.0 and fix a typo
[yaffs2.git] / linux-tests / plot_data.sh
index a7df698a5249298f10785e5c3ac38a1cdb899a2c..e7482bc49f8650fece50e9d9e1defffd6616fb32 100755 (executable)
@@ -7,6 +7,8 @@
 log_file=data
 gather_delay=1
 
+done_file=plot_done
+
 # Plot settings
 trunc_file=trunc_data
 plot_samples=1000
@@ -14,18 +16,39 @@ plot_delay=2
 
 
 
+
+
 # Gathering task
 
 gather_data() {
 i=0;
 rm -f $log_file
 
-while true; do
-str=$(cat /proc/yaffs_stats)
-echo "$i, $str" 
-echo "$i, $str"  >> $log_file
-let i=$i+1
-sleep $gather_delay
+while [ ! -e $done_file ] ; do
+       xx='1'
+       erased_blocks='2'
+       while [ "$xx" !=  "$erased_blocks" ] ; do
+               xx=$(cat /proc/yaffs | grep n_erased_blocks | cut -d ' ' -f 2)
+               erased_blocks=$(cat /proc/yaffs | grep n_erased_blocks | cut -d ' ' -f 2)
+               if [ -z "$xx" ] ; then
+                       xx='bad value'
+               fi
+       done
+       xx='1'
+       free_chunks='2'
+       while [ "$xx" != "$free_chunks" ] ; do
+               xx=$(cat /proc/yaffs | grep n_free_chunks | cut -d ' ' -f 2)
+               free_chunks=$(cat /proc/yaffs | grep n_free_chunks | cut -d ' ' -f 2)
+               if [ -z "$xx" ] ; then
+                       xx='bad value'
+               fi
+       done
+       erased_chunks=$(($erased_blocks*64))
+       str=" $i, 0, $free_chunks, $erased_chunks"
+       echo $str
+       echo $str  >> $log_file
+       i=$(($i+1))
+       sleep $gather_delay
 done
 }
 
@@ -40,11 +63,14 @@ tail -$plot_samples $log_file > $trunc_file
 
 plot_str=" plot '$trunc_file' using 1:3 with linespoints title 'free', '' using 1:4 with linespoints title 'erased'"
 
-echo "set title 'yaffs free space and erased space'"
+echo "set title 'yaffs free space vs erased space'"
+echo "set xlabel 'seconds'"
+echo "set ylabel 'chunks'"
+
 
 echo $plot_str
  
-while true; do
+while [ ! -e $done_file ]; do
 sleep $plot_delay
 tail -$plot_samples $log_file > $trunc_file
 echo replot
@@ -52,9 +78,15 @@ done
 }
 
 
+rm -f $done_file
+trap "touch $done_file" INT
 
 echo "Start gathering task in background"
 gather_data &
 echo "Run plotting task"
 drive_gnuplot | gnuplot
 
+wait
+
+echo "All done"
+