]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd: fix bench-write
authorSage Weil <sage@redhat.com>
Tue, 18 Aug 2015 20:05:29 +0000 (16:05 -0400)
committerSage Weil <sage@redhat.com>
Wed, 19 Aug 2015 21:03:57 +0000 (17:03 -0400)
Make each IO get a unique offset!

Signed-off-by: Sage Weil <sage@redhat.com>
src/rbd.cc

index f8eedb02ff357a4e49d22a40ace59b740569dc5f..79a7a04f8a47064a5a983b9eb8cbdd727e8cd334 100755 (executable)
@@ -1049,15 +1049,7 @@ static int do_bench_write(librbd::Image& image, uint64_t io_size,
   for (off = 0; off < io_bytes; ) {
     b.wait_for(io_threads - 1);
     i = 0;
-    while (i < io_threads && off < io_bytes &&
-          b.start_write(io_threads, thread_offset[i], io_size, bl, op_flags)) {
-      ++i;
-      ++ios;
-      off += io_size;
-
-      ++cur_ios;
-      cur_off += io_size;
-
+    while (i < io_threads && off < io_bytes) {
       if (pattern == "rand") {
         thread_offset[i] = (rand() % (size / io_size)) * io_size;
       } else {
@@ -1065,6 +1057,16 @@ static int do_bench_write(librbd::Image& image, uint64_t io_size,
         if (thread_offset[i] + io_size > size)
           thread_offset[i] = 0;
       }
+
+      if (!b.start_write(io_threads, thread_offset[i], io_size, bl, op_flags))
+       break;
+
+      ++i;
+      ++ios;
+      off += io_size;
+
+      ++cur_ios;
+      cur_off += io_size;
     }
 
     utime_t now = ceph_clock_now(NULL);