On 03/12/2015 08:32 AM, Urs Schaltegger wrote:
fio always writes null bytes whatever I do. I need random data to avoid interference of deduplication solutions (within SSDs or using ZFS). Windows 8.1 Enterprise x64 fio-2.2.6 (also tried 2.2.0/2.2.1/2.2.3) fio --section=fiorandom --runtime=60 <FIOFile> <FIOFile>: [global] ioengine=windowsaio thread group_reporting time_based clocksource=clock_gettime direct=1 refill_buffers size=1g [fiorandom] readwrite=randwrite numjobs=4 iodepth=1 blocksize=8k directory=D\:\
Hmm yes, that looks like a regression. Does the attached work? -- Jens Axboe
diff --git a/io_u.c b/io_u.c index 6567e10a5be2..33b8ac347437 100644 --- a/io_u.c +++ b/io_u.c @@ -1895,8 +1895,13 @@ void fill_io_buffer(struct thread_data *td, void *buf, unsigned int min_write, } while (left); } else if (o->buffer_pattern_bytes) fill_buffer_pattern(td, buf, max_bs); - else + else if (o->zero_buffers) memset(buf, 0, max_bs); + else { + struct frand_state *rs = get_buf_state(td); + + fill_random_buf(rs, buf, max_bs); + } } /*