X-Git-Url: https://yaffs.net/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=linux-tests%2Fplot_data.sh;h=59c26b085a8d8dce6a5b72d0ed7426792191d633;hp=6713f722aa5a972dd238021fa6f7b71b8bbe2f06;hb=3788df745cd72e035c0c991157cb727a8ecb1f17;hpb=6c7131b1d7c221125851a7c0bd183dd05a02d583 diff --git a/linux-tests/plot_data.sh b/linux-tests/plot_data.sh index 6713f72..59c26b0 100755 --- a/linux-tests/plot_data.sh +++ b/linux-tests/plot_data.sh @@ -1,4 +1,4 @@ -#!/bin/sh +\#!/bin/sh # Script that gathers data erased vs free data from /proc/yaffs_stats and simultaneously \ # plots it using gnuplot. @@ -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,24 @@ plot_delay=2 + + # Gathering task gather_data() { i=0; rm -f $log_file -while true; do -str=$(cat /proc/yaffs_debug) -echo "$i, $str" -echo "$i, $str" >> $log_file -let i=$i+1 -sleep $gather_delay +while [ ! -e $done_file ] ; do + erased_blocks=$(cat /proc/yaffs | grep n_erased_blocks | cut -d ' ' -f 2) + free_chunks=$(cat /proc/yaffs | grep n_free_chunks | cut -d ' ' -f 2) + + 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 +48,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 +63,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" +