Try to improve parallelism of synreadbench warmup phase
authorMichael Vrable <mvrable@cs.ucsd.edu>
Wed, 16 Mar 2011 20:46:01 +0000 (13:46 -0700)
committerMichael Vrable <mvrable@cs.ucsd.edu>
Wed, 16 Mar 2011 20:46:01 +0000 (13:46 -0700)
nfs3/synreadbench.c

index 1e749fa..908363f 100644 (file)
@@ -312,12 +312,13 @@ static void submit_random_read(NFSConnection *nfs)
         if (read_size > (1 << 20)) {
             scale = read_size / (1 << 20);
         }
         if (read_size > (1 << 20)) {
             scale = read_size / (1 << 20);
         }
+        int filecount = bench_files->len;
         printf("Warming up file %d\n", warmup_counter);
         printf("Warming up file %d\n", warmup_counter);
-        if (warmup_counter >= bench_files->len * scale)
+        if (warmup_counter >= filecount * scale)
             return;
         bf = &g_array_index(bench_files, struct bench_file,
             return;
         bf = &g_array_index(bench_files, struct bench_file,
-                            warmup_counter / scale);
-        send_read_request(nfs, bf->inum, (warmup_counter % scale) << 20,
+                            warmup_counter % filecount);
+        send_read_request(nfs, bf->inum, (warmup_counter / filecount) << 20,
                           read_size > (1 << 20) ? (1 << 20) : read_size);
         warmup_counter++;
         return;
                           read_size > (1 << 20) ? (1 << 20) : read_size);
         warmup_counter++;
         return;