Fix default scrambling of buffers
authorJens Axboe <axboe@fb.com>
Sat, 20 Dec 2014 21:42:56 +0000 (14:42 -0700)
committerJens Axboe <axboe@fb.com>
Sat, 20 Dec 2014 21:44:45 +0000 (14:44 -0700)
Commit 1bf2498d3111 inadvertently made us not scramble by default.
The logic was a bit convoluted, so clear it up and scramble if:

- Asked so by adding scramble_buffers=1
- Or, if not asked to explicitly, but zero_buffers not set to 1.

Reported-by: Chris Wilson <Chris.Wilson@nutanix.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
init.c

diff --git a/init.c b/init.c
index 427768c3531669999f04b044fa991764dbce2d76..d3dec0a17ebe91d52540cd196f26fb1592a6c9b3 100644 (file)
--- a/init.c
+++ b/init.c
@@ -933,12 +933,16 @@ static void init_flags(struct thread_data *td)
        if (o->refill_buffers)
                td->flags |= TD_F_REFILL_BUFFERS;
        /*
        if (o->refill_buffers)
                td->flags |= TD_F_REFILL_BUFFERS;
        /*
-        * Scramble by default, but not if zero_buffer is true and has been
-        * set. But if scramble_buffers has been set, always scramble.
+        * Always scramble buffers if asked to
         */
         */
-       if (o->scramble_buffers && ((!o->zero_buffers &&
-           fio_option_is_set(o, zero_buffers)) ||
-           fio_option_is_set(o, scramble_buffers)))
+       if (o->scramble_buffers && fio_option_is_set(o, scramble_buffers))
+               td->flags |= TD_F_SCRAMBLE_BUFFERS;
+       /*
+        * But also scramble buffers, unless we were explicitly asked
+        * to zero them.
+        */
+       if (o->scramble_buffers && !(o->zero_buffers &&
+           fio_option_is_set(o, zero_buffers)))
                td->flags |= TD_F_SCRAMBLE_BUFFERS;
        if (o->verify != VERIFY_NONE)
                td->flags |= TD_F_VER_NONE;
                td->flags |= TD_F_SCRAMBLE_BUFFERS;
        if (o->verify != VERIFY_NONE)
                td->flags |= TD_F_VER_NONE;