Hi all, because I got bitten by this multiple times I decided to give this patch a try :) Current implementation of offset calculation when offset_increment is in effect uses global thread_number as follows: f->file_offset = td->o.start_offset + (td->thread_number - 1) * td->o.offset_increment; The thread number gets incremented for every job (subjob) so even you have multiple jobs with different filenames, the offset calculation is shared. I find this very unintuitive, especially in cases the offsets gets past the device/file. For example, if one wants to run sequential read test in 16 threads of multiple devices (/dev/sd{b,c,d}) in one group, which are of 1TB size, and to eliminate caching effect he wants each read to start at different offset, the config could look like following: [seq-read-16threads-/dev/sdb] rw=read numjobs=16 offset_increment=50g bs=512k filename=/dev/sdb [seq-read-16threads-/dev/sdc] rw=read numjobs=16 offset_increment=50g bs=512k filename=/dev/sdc [seq-read-16threads-/dev/sdd] rw=read numjobs=16 offset_increment=50g bs=512k filename=/dev/sdd The result will be that only /dev/sdb is full tested, three threads will be run against /dev/sdc and /dev/sdd does not receive any IO at all. The proposed patch add new option "reset_offset_increment" that causes the offset calculation to be started again from zero. The idea behind is similar to patch proposed here (http://www.spinics.net/lists/fio/msg01213.html) but is more flexible. The patch applies against 2.1.9 tag. Regards Jiri Horky