Hi Daniel, What am i doing is to simulate the ANTUTU benchmark on android 5.1. We learned that ANTUTU benchmark do the below things sequentially in the same process. 1) first sequentially write to a file with bs=8KB. the file's size is 16M. 2) after write finish, then read the same file from the begin to the end with bs=4KB. 3) after 2) finish, then sequentially overwrite to the same file with bs=4KB, total size is 16M too, and every 4096 requests do a fsync. all done with in the same process. I have construct one job file to simulate that process. like: --cut-- [antutu_io_first_write] ioengine=sync size=16m numjobs=1 bs=8k ba=4k rw=write gtod_reduce=1 disk_util=1 name=antutu_io_first_write filename=/data/antutu_test stonewall [antutu_io_first_read] ioengine=sync size=16m numjobs=1 bs=8k ba=4k rw=read gtod_reduce=1 disk_util=1 name=antutu_io_first_read filename=/data/antutu_test stonewall [antutu_io_second_write] ioengine=sync size=16m numjobs=1 bs=4k ba=4k rw=write gtod_reduce=1 disk_util=1 name=antutu_io_second_write filename=/data/antutu_test fsync=4096 stonewall --cut-- But result is: --cut-- antutu_io_first_write: (groupid=0, jobs=1): err= 0: pid=1451: Sat Feb 4 20:05:04 2012 write: io=16384KB, bw=54613KB/s, iops=6826, runt= 300msec cpu : usr=3.33%, sys=93.33%, ctx=13, majf=0, minf=25 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued : total=r=0/w=2048/d=0, short=r=0/w=0/d=0 latency : target=0, window=0, percentile=100.00%, depth=1 antutu_io_first_read: (groupid=1, jobs=1): err= 0: pid=1452: Sat Feb 4 20:05:04 2012 read : io=16384KB, bw=287439KB/s, iops=35929, runt= 57msec cpu : usr=17.86%, sys=53.57%, ctx=7, majf=0, minf=27 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued : total=r=2048/w=0/d=0, short=r=0/w=0/d=0 latency : target=0, window=0, percentile=100.00%, depth=1 antutu_io_second_write: (groupid=2, jobs=1): err= 0: pid=1453: Sat Feb 4 20:05:04 2012 write: io=16384KB, bw=45011KB/s, iops=11252, runt= 364msec cpu : usr=16.48%, sys=74.18%, ctx=34, majf=0, minf=24 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued : total=r=0/w=4096/d=0, short=r=0/w=0/d=0 latency : target=0, window=0, percentile=100.00%, depth=1 --cut-- Obviously it can not satisfy my demand. It forks 3 processes( pid=1451, pid=1452, pid=1453) to finish these jobs. I want to do all these actions in just one process. Any clue? Thanks in advance! John Gong On Thu, Jul 9, 2015 at 3:00 PM, danielabuggie . <danielabuggie@xxxxxxxxx> wrote: > Unfortunately, I don't think there is an option then that will > precisely do what you are asking then. Perhaps if you clarify more > about what you are looking to test someone can help you approximate it > better. > > Some suggestions though for you to look into: > * Use a randrw process with percentage_random set to an appropriate > value to control roughly how many blocks would be read before seeking. > > * Also a randrw process with bssplit set to a mix of small and large > blocks sizes would make "random" IO intermittently more sequential. > > Daniel > > On Wed, Jul 8, 2015 at 11:08 PM, john gong <johngong0791@xxxxxxxxx> wrote: >> hi Daniel, >> >> Thanks for your suggestion. >> >> "stonewall" can not solve my problem. "stonewall" just enforce the >> processes which do the exact jobs run sequentially. >> But what I want to do is that all things be done in one process, not >> with one jobfile. >> >> B.R. >> >> On Thu, Jul 9, 2015 at 1:21 PM, danielabuggie . <danielabuggie@xxxxxxxxx> wrote: >>> So you want to run them all with one jobfile, but sequentially and not >>> simultaneously? >>> >>> In that case, stonewall is the option you want to add. >>> >>> Daniel >>> >>> On Wed, Jul 8, 2015 at 9:02 PM, john gong <johngong0791@xxxxxxxxx> wrote: >>>> hello Kulkarni & Alireza, >>>> >>>> Thanks for your attentions. >>>> tiobench-example.fio will spawn 16 processes, each job consumes 4 processes. >>>> But what i want is all things defined in the job description be done >>>> in one process. >>>> For example, executes below job description >>>> --cut-- >>>> [global] >>>> engine=sync >>>> filename=/data/test >>>> size=100m >>>> [job1] >>>> rw=write >>>> stonewall >>>> [job2] >>>> rw=read >>>> stonewall >>>> [job3] >>>> rw=randwrite >>>> stonewall >>>> [job4] >>>> rw=randread >>>> stonewall >>>> --cut-- >>>> >>>> This job description can satisfy the demand of sequential execute, but >>>> they will be done in 4 different processes. >>>> What i want is all things be done in the same process sequentilly. >>>> >>>> B.R. >>>> >>>> John.Gong >>>> >>>> >>>> >>>> >>>> >>>> >>>> On Thu, Jul 9, 2015 at 11:19 AM, Kulkarni, Vasu <vasu.kulkarni@xxxxxxxxx> wrote: >>>>> Here's one example with 4 jobs which you can customize >>>>> https://github.com/axboe/fio/blob/master/examples/tiobench-example.fio >>>>> >>>>> >>>>> On Wed, Jul 8, 2015 at 6:55 PM, john gong <johngong0791@xxxxxxxxx> wrote: >>>>>> hello All, >>>>>> >>>>>> I wonder whether FIO can do below things in the same job? >>>>>> 1) sequential write >>>>>> 2) sequential read >>>>>> 3) randomly write >>>>>> 4) randomly read >>>>>> >>>>>> Namely FIO do not need to spawn other processes to do the things respectively. >>>>>> All things will be done in the same process. >>>>>> >>>>>> Thanks in advance! >>>>>> >>>>>> John.Gong >>>>>> -- >>>>>> To unsubscribe from this list: send the line "unsubscribe fio" in >>>>>> the body of a message to majordomo@xxxxxxxxxxxxxxx >>>>>> More majordomo info at http://vger.kernel.org/majordomo-info.html >>>>> >>>>> >>>>> >>>>> -- >>>>> A ship is safer in a harbor. But that's not what ships are built for. >>>> -- >>>> To unsubscribe from this list: send the line "unsubscribe fio" in >>>> the body of a message to majordomo@xxxxxxxxxxxxxxx >>>> More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe fio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html