]> www.infradead.org Git - users/hch/fsqual.git/commitdiff
Randomize append order
authorAvi Kivity <avi@scylladb.com>
Sun, 19 Jun 2016 17:50:09 +0000 (20:50 +0300)
committerAvi Kivity <avi@scylladb.com>
Sun, 19 Jun 2016 17:50:09 +0000 (20:50 +0300)
fsqual.cc

index 39e4048a3a43f15f6390c9b22f364ab0a99dffbe..976608dcbcfb7dec97f479336dd75c96b682d06b 100644 (file)
--- a/fsqual.cc
+++ b/fsqual.cc
@@ -15,6 +15,7 @@
 #include <functional>
 #include <vector>
 #include <algorithm>
+#include <random>
 #include <stdint.h>
 
 template <typename Counter, typename Func>
@@ -50,12 +51,14 @@ void test_concurrent_append(io_context_t ioctx, int fd, unsigned iodepth, std::s
     auto iocbps = std::vector<iocb*>(iodepth);
     std::iota(iocbps.begin(), iocbps.end(), iocbs.data());
     auto ioevs = std::vector<io_event>(iodepth);
+    std::random_device random_device;
     while (completed < nr) {
         auto i = unsigned(0);
         while (initiated < nr && current_depth < iodepth) {
             io_prep_pwrite(&iocbs[i++], fd, buf, bufsize, bufsize*initiated++);
             ++current_depth;
         }
+        std::shuffle(iocbs.begin(), iocbs.begin() + i, random_device);
         if (i) {
             with_ctxsw_counting(ctxsw, [&] {
                 io_submit(ioctx, i, iocbps.data());