verify: decouple seed generation from buffer fill
authorAlexey Dobriyan <adobriyan@gmail.com>
Thu, 21 May 2020 23:17:12 +0000 (02:17 +0300)
committerJens Axboe <axboe@kernel.dk>
Thu, 21 May 2020 23:23:06 +0000 (17:23 -0600)
It is nicer this way and there will be more code in this area
with ZBD verification.

Signed-off-by: Alexey Dobriyan (SK hynix) <adobriyan@gmail.com>
Reviewed-by: Damien Le Moal <damien.lemoal@wdc.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
backend.c
verify.c

index f519728c2131f073f55869ed765118fbbeafe8b9..0075a733ffca7b2c5fd727f53d56d95e69592c17 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -1006,12 +1006,6 @@ static void do_io(struct thread_data *td, uint64_t *bytes_done)
                if (td->o.verify != VERIFY_NONE && io_u->ddir == DDIR_READ &&
                    ((io_u->flags & IO_U_F_VER_LIST) || !td_rw(td))) {
 
-                       if (!td->o.verify_pattern_bytes) {
-                               io_u->rand_seed = __rand(&td->verify_state);
-                               if (sizeof(int) != sizeof(long *))
-                                       io_u->rand_seed *= __rand(&td->verify_state);
-                       }
-
                        if (verify_state_should_stop(td, io_u)) {
                                put_io_u(td, io_u);
                                break;
index cf299ebf9643b3a07896f48ef47efb6c2e6583e9..b7fa6693068d851f2ffb4c48a3044cfe4eb11f34 100644 (file)
--- a/verify.c
+++ b/verify.c
@@ -46,15 +46,6 @@ static void __fill_buffer(struct thread_options *o, uint64_t seed, void *p,
        __fill_random_buf_percentage(seed, p, o->compress_percentage, len, len, o->buffer_pattern, o->buffer_pattern_bytes);
 }
 
-static uint64_t fill_buffer(struct thread_data *td, void *p,
-                           unsigned int len)
-{
-       struct frand_state *fs = &td->verify_state;
-       struct thread_options *o = &td->o;
-
-       return fill_random_buf_percentage(fs, p, o->compress_percentage, len, len, o->buffer_pattern, o->buffer_pattern_bytes);
-}
-
 void fill_verify_pattern(struct thread_data *td, void *p, unsigned int len,
                         struct io_u *io_u, uint64_t seed, int use_seed)
 {
@@ -63,10 +54,13 @@ void fill_verify_pattern(struct thread_data *td, void *p, unsigned int len,
        if (!o->verify_pattern_bytes) {
                dprint(FD_VERIFY, "fill random bytes len=%u\n", len);
 
-               if (use_seed)
-                       __fill_buffer(o, seed, p, len);
-               else
-                       io_u->rand_seed = fill_buffer(td, p, len);
+               if (!use_seed) {
+                       seed = __rand(&td->verify_state);
+                       if (sizeof(int) != sizeof(long *))
+                               seed *= (unsigned long)__rand(&td->verify_state);
+               }
+               io_u->rand_seed = seed;
+               __fill_buffer(o, seed, p, len);
                return;
        }