On 9/5/21 7:50 PM, Shin'ichiro Kawasaki wrote: > The thinktime option allows stalling a job for a specified amount of > time. Using the thinktime_blocks option, periodic stalls can be added > every thinktime_blocks IOs. However, with this option, the periodic > stall may not be repeated at equal time intervals as the time to execute > thinktime_blocks IOs may vary. > > To control the thinktime interval by time, introduce the option > thinktime_iotime. With this new option, the thinktime stall is repeated > after IOs are executed for thinktime_iotime. If this option is used > together with the thinktime_blocks option, the thinktime pause is > repeated after thinktime_iotime or after thinktime_blocks IOs, whichever > happens first. > > To support the new option, add a new member thinktime_iotime in the > struct thread_options and the struct thread_options_pack. Avoid size > increase of the struct thread_options_pack by replacing a padding 'pad5' > with the new member. To keep thinktime related members close, move the > members near the position where the padding was placed. Make same > changes to the struct thread_option also for consistency. > > To track the time and IO block count at the last stall, add > last_thinktime variable and last_thinktime_blocks variable to struct > thread_data. Also, introduce the helper function init_thinktime() > to group thinktime related preparations. Applied, thanks. -- Jens Axboe