On 03/10/2014 03:12 PM, Elliott, Robert (Server Storage) wrote: > Since number_ios is checked in io_u.c account_io_completion() rather than a submission function, fio actually runs the requested number of I/Os plus iodepth - 1. > > Example: for a job specifying: > number_ios=5000 > iodepth=128 > > the results are: > read : io=20000KB, bw=222222KB/s, iops=56966, runt= 90msec > IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.2%, 16=0.3%, 32=0.6%, >=64=98.8% > issued : total=r=5127/w=0/d=0, short=r=0/w=0/d=0 > > Should that just be documented as such, or should this logic be moved to submission? > static void account_io_completion(struct thread_data *td, struct io_u *io_u, > ... > if (td->o.number_ios && !--td->o.number_ios) > td->done = 1; Can you try the attached patch and see if that makes it behave more like expected? -- Jens Axboe