Esempio n. 1
0
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 thread_options *o = &td->o;

	if (!o->verify_pattern_bytes) {
		dprint(FD_VERIFY, "fill random bytes len=%u\n", len);

		if (use_seed)
			__fill_random_buf_percentage(seed, p, o->compress_percentage, len, len, o->buffer_pattern, o->buffer_pattern_bytes);
		else {
			struct frand_state *fs = &td->verify_state;

			io_u->rand_seed = fill_random_buf_percentage(fs, p, o->compress_percentage, len, len, o->buffer_pattern, o->buffer_pattern_bytes);
		}
		return;
	}

	if (io_u->buf_filled_len >= len) {
		dprint(FD_VERIFY, "using already filled verify pattern b=%d len=%u\n",
			o->verify_pattern_bytes, len);
		return;
	}

	fill_pattern(p, len, o->verify_pattern, o->verify_pattern_bytes);
	io_u->buf_filled_len = len;
}
Esempio n. 2
0
File: rand.c Progetto: chjs/fio
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)
{
    unsigned long r = __rand(fs);

    if (sizeof(int) != sizeof(long *))
        r *= (unsigned long) __rand(fs);

    __fill_random_buf_percentage(r, buf, percentage, segment, len,
                                 pattern, pbytes);
    return r;
}
Esempio n. 3
0
void __fill_buffer(struct thread_options *o, unsigned long seed, void *p,
		   unsigned int len)
{
	__fill_random_buf_percentage(seed, p, o->compress_percentage, len, len, o->buffer_pattern, o->buffer_pattern_bytes);
}