Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/mingnus/fio
Browse files Browse the repository at this point in the history
* 'master' of https://github.com/mingnus/fio:
  rand: fix truncated rand_seed on Windows
  • Loading branch information
axboe committed Apr 17, 2019
2 parents ef32da6 + 9781c08 commit 96416da
Show file tree
Hide file tree
Showing 11 changed files with 30 additions and 30 deletions.
2 changes: 1 addition & 1 deletion filesetup.c
Original file line number Diff line number Diff line change
Expand Up @@ -1287,7 +1287,7 @@ bool init_random_map(struct thread_data *td)
return false;

if (td->o.random_generator == FIO_RAND_GEN_LFSR) {
unsigned long seed;
uint64_t seed;

seed = td->rand_seeds[FIO_RAND_BLOCK_OFF];

Expand Down
2 changes: 1 addition & 1 deletion fio.h
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ struct thread_data {
void *iolog_buf;
FILE *iolog_f;

unsigned long rand_seeds[FIO_RAND_NR_OFFS];
uint64_t rand_seeds[FIO_RAND_NR_OFFS];

struct frand_state bsrange_state[DDIR_RWDIR_CNT];
struct frand_state verify_state;
Expand Down
2 changes: 1 addition & 1 deletion init.c
Original file line number Diff line number Diff line change
Expand Up @@ -1217,7 +1217,7 @@ static void init_flags(struct thread_data *td)

static int setup_random_seeds(struct thread_data *td)
{
unsigned long seed;
uint64_t seed;
unsigned int i;

if (!td->o.rand_repeatable && !fio_option_is_set(&td->o, rand_seed)) {
Expand Down
6 changes: 3 additions & 3 deletions lib/lfsr.c
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ static int prepare_spin(struct fio_lfsr *fl, unsigned int spin)
return 0;
}

int lfsr_reset(struct fio_lfsr *fl, unsigned long seed)
int lfsr_reset(struct fio_lfsr *fl, uint64_t seed)
{
uint64_t bitmask = (fl->cached_bit << 1) - 1;

Expand All @@ -246,8 +246,8 @@ int lfsr_reset(struct fio_lfsr *fl, unsigned long seed)
return 0;
}

int lfsr_init(struct fio_lfsr *fl, uint64_t nums, unsigned long seed,
unsigned int spin)
int lfsr_init(struct fio_lfsr *fl, uint64_t nums, uint64_t seed,
unsigned int spin)
{
uint8_t *taps;

Expand Down
4 changes: 2 additions & 2 deletions lib/lfsr.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ struct fio_lfsr {

int lfsr_next(struct fio_lfsr *fl, uint64_t *off);
int lfsr_init(struct fio_lfsr *fl, uint64_t size,
unsigned long seed, unsigned int spin);
int lfsr_reset(struct fio_lfsr *fl, unsigned long seed);
uint64_t seed, unsigned int spin);
int lfsr_reset(struct fio_lfsr *fl, uint64_t seed);

#endif
20 changes: 10 additions & 10 deletions lib/rand.c
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ void init_rand_seed(struct frand_state *state, unsigned int seed, bool use64)
__init_rand64(&state->state64, seed);
}

void __fill_random_buf(void *buf, unsigned int len, unsigned long seed)
void __fill_random_buf(void *buf, unsigned int len, uint64_t seed)
{
void *ptr = buf;

Expand All @@ -122,10 +122,10 @@ void __fill_random_buf(void *buf, unsigned int len, unsigned long seed)
}
}

unsigned long fill_random_buf(struct frand_state *fs, void *buf,
unsigned int len)
uint64_t fill_random_buf(struct frand_state *fs, void *buf,
unsigned int len)
{
unsigned long r = __rand(fs);
uint64_t r = __rand(fs);

if (sizeof(int) != sizeof(long *))
r *= (unsigned long) __rand(fs);
Expand All @@ -134,7 +134,7 @@ unsigned long fill_random_buf(struct frand_state *fs, void *buf,
return r;
}

void __fill_random_buf_percentage(unsigned long seed, void *buf,
void __fill_random_buf_percentage(uint64_t seed, void *buf,
unsigned int percentage,
unsigned int segment, unsigned int len,
char *pattern, unsigned int pbytes)
Expand Down Expand Up @@ -183,12 +183,12 @@ void __fill_random_buf_percentage(unsigned long seed, void *buf,
}
}

unsigned long fill_random_buf_percentage(struct frand_state *fs, void *buf,
unsigned int percentage,
unsigned int segment, unsigned int len,
char *pattern, unsigned int pbytes)
uint64_t fill_random_buf_percentage(struct frand_state *fs, void *buf,
unsigned int percentage,
unsigned int segment, unsigned int len,
char *pattern, unsigned int pbytes)
{
unsigned long r = __rand(fs);
uint64_t r = __rand(fs);

if (sizeof(int) != sizeof(long *))
r *= (unsigned long) __rand(fs);
Expand Down
8 changes: 4 additions & 4 deletions lib/rand.h
Original file line number Diff line number Diff line change
Expand Up @@ -150,9 +150,9 @@ static inline uint64_t rand_between(struct frand_state *state, uint64_t start,

extern void init_rand(struct frand_state *, bool);
extern void init_rand_seed(struct frand_state *, unsigned int seed, bool);
extern void __fill_random_buf(void *buf, unsigned int len, unsigned long seed);
extern unsigned long fill_random_buf(struct frand_state *, void *buf, unsigned int len);
extern void __fill_random_buf_percentage(unsigned long, void *, unsigned int, unsigned int, unsigned int, char *, unsigned int);
extern unsigned long fill_random_buf_percentage(struct frand_state *, void *, unsigned int, unsigned int, unsigned int, char *, unsigned int);
extern void __fill_random_buf(void *buf, unsigned int len, uint64_t seed);
extern uint64_t fill_random_buf(struct frand_state *, void *buf, unsigned int len);
extern void __fill_random_buf_percentage(uint64_t, void *, unsigned int, unsigned int, unsigned int, char *, unsigned int);
extern uint64_t fill_random_buf_percentage(struct frand_state *, void *, unsigned int, unsigned int, unsigned int, char *, unsigned int);

#endif
2 changes: 1 addition & 1 deletion os/os-windows.h
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ static inline int gettid(void)
return GetCurrentThreadId();
}

static inline int init_random_seeds(unsigned long *rand_seeds, int size)
static inline int init_random_seeds(uint64_t *rand_seeds, int size)
{
HCRYPTPROV hCryptProv;

Expand Down
2 changes: 1 addition & 1 deletion os/os.h
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,7 @@ static inline int blockdev_size(struct fio_file *f, unsigned long long *bytes)
#endif

#ifdef FIO_USE_GENERIC_INIT_RANDOM_STATE
static inline int init_random_seeds(unsigned long *rand_seeds, int size)
static inline int init_random_seeds(uint64_t *rand_seeds, int size)
{
int fd;

Expand Down
10 changes: 5 additions & 5 deletions verify.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,14 @@ void fill_buffer_pattern(struct thread_data *td, void *p, unsigned int len)
(void)cpy_pattern(td->o.buffer_pattern, td->o.buffer_pattern_bytes, p, len);
}

static void __fill_buffer(struct thread_options *o, unsigned long seed, void *p,
static void __fill_buffer(struct thread_options *o, uint64_t seed, void *p,
unsigned int len)
{
__fill_random_buf_percentage(seed, p, o->compress_percentage, len, len, o->buffer_pattern, o->buffer_pattern_bytes);
}

static unsigned long fill_buffer(struct thread_data *td, void *p,
unsigned int len)
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;
Expand All @@ -55,7 +55,7 @@ static unsigned long fill_buffer(struct thread_data *td, void *p,
}

void fill_verify_pattern(struct thread_data *td, void *p, unsigned int len,
struct io_u *io_u, unsigned long seed, int use_seed)
struct io_u *io_u, uint64_t seed, int use_seed)
{
struct thread_options *o = &td->o;

Expand Down Expand Up @@ -100,7 +100,7 @@ static unsigned int get_hdr_inc(struct thread_data *td, struct io_u *io_u)
}

static void fill_pattern_headers(struct thread_data *td, struct io_u *io_u,
unsigned long seed, int use_seed)
uint64_t seed, int use_seed)
{
unsigned int hdr_inc, header_num;
struct verify_header *hdr;
Expand Down
2 changes: 1 addition & 1 deletion verify.h
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ extern void populate_verify_io_u(struct thread_data *, struct io_u *);
extern int __must_check get_next_verify(struct thread_data *td, struct io_u *);
extern int __must_check verify_io_u(struct thread_data *, struct io_u **);
extern int verify_io_u_async(struct thread_data *, struct io_u **);
extern void fill_verify_pattern(struct thread_data *td, void *p, unsigned int len, struct io_u *io_u, unsigned long seed, int use_seed);
extern void fill_verify_pattern(struct thread_data *td, void *p, unsigned int len, struct io_u *io_u, uint64_t seed, int use_seed);
extern void fill_buffer_pattern(struct thread_data *td, void *p, unsigned int len);
extern void fio_verify_init(struct thread_data *td);

Expand Down

0 comments on commit 96416da

Please sign in to comment.