Signed-off-by: MORITA Kazutaka <morita.kazut...@lab.ntt.co.jp>
---
 script/vditest |   44 +++++++++++++++++++-------------------------
 1 files changed, 19 insertions(+), 25 deletions(-)

diff --git a/script/vditest b/script/vditest
index b4f7f0f..c24f8e0 100755
--- a/script/vditest
+++ b/script/vditest
@@ -313,16 +313,15 @@ sub vdi_main {
     my $roffset = $offset;
     my $woffset = $offset;
     my $i = 1;
-    my ($sec, $microsec, $cur_time, $start_time, $end_time, $hbeat_time);
+    my ($cur_time, $start_time, $end_time, $hbeat_time);
 
-    ($sec, $microsec) = gettimeofday();
-    $start_time = $sec * 1000000 + $microsec;
+    $start_time = $cur_time = get_current_time();
     $hbeat_time = $start_time + $hbeat * 1000000;
     $end_time = $start_time + $runtime * 1000000;
 
     srand($seed);
 
-    while (1) {
+    while ($cur_time < $end_time) {
        my $length = get_aligned_blk($lblk, $hblk);
 
        while ($nr_outstanding_aio >= $concurrency) {
@@ -359,37 +358,32 @@ sub vdi_main {
 
        vdi_flush() if $flush_interval > 0 && $i % $flush_interval == 0;
 
-       ($sec, $microsec) = gettimeofday();
-       $cur_time = $sec * 1000000 + $microsec;
+       $cur_time = get_current_time();
        if ($hbeat > 0 && $hbeat_time <= $cur_time) {
-           if ($rrate) {
-               printf "Heartbeat read throughput: %.1fB/s (%s/s), IOPS 
%.1f/s.\n",
-               $rd_bytes / $hbeat, to_str($rd_bytes / $hbeat), $rd_ops / 
$hbeat;
-           }
-           if ($wrate) {
-               printf "Heartbeat write throughput: %.1fB/s (%s/s), IOPS 
%.1f/s.\n",
-               $wr_bytes / $hbeat, to_str($wr_bytes / $hbeat), $wr_ops / 
$hbeat;
-           }
+           print_result('Heartbeat read', $rd_bytes, $rd_ops, $hbeat) if 
$rrate;
+           print_result('Heartbeat write', $wr_bytes, $wr_ops, $hbeat) if 
$wrate;
 
            $rd_ops = $wr_ops = 0;
            $rd_bytes = $wr_bytes = 0;
 
            $hbeat_time += $hbeat * 1000000;
        }
-       last if ($end_time <= $cur_time);
        $i++;
     }
 
-    if ($rrate) {
-       printf "Total read throughput: %.1fB/s (%s/s), IOPS %.1f/s.\n",
-       $total_rd_bytes / $runtime, to_str($total_rd_bytes / $runtime),
-       $total_rd_ops / $runtime;
-    }
-    if ($wrate) {
-       printf "Total write throughput: %.1fB/s (%s/s), IOPS %.1f/s.\n",
-       $total_wr_bytes / $runtime, to_str($total_wr_bytes / $runtime),
-       $total_wr_ops / $runtime;
-    }
+    print_result('Total read', $total_rd_bytes, $total_rd_ops, $runtime) if 
$rrate;
+    print_result('Total write', $total_wr_bytes, $total_wr_ops, $runtime) if 
$wrate;
+}
+
+sub get_current_time {
+    my ($sec, $microsec) = gettimeofday();
+    return $sec * 1000000 + $microsec;
+}
+
+sub print_result {
+    my ($label, $bytes, $ops, $t) = @_;
+    printf "$label throughput: %.1fB/s (%s/s), IOPS %.1f/s.\n",
+          $bytes / $t, to_str($bytes / $t), $ops / $t;
 }
 
 sub help {
-- 
1.7.2.5

-- 
sheepdog mailing list
sheepdog@lists.wpkg.org
http://lists.wpkg.org/mailman/listinfo/sheepdog

Reply via email to