> -----Original Message----- > From: Phillip Chen [mailto:phillip.a.chen@xxxxxxxxxxx] > Sent: Thursday, May 26, 2022 4:50 PM > To: fio@xxxxxxxxxxxxxxx > Subject: Global filename/job filename interaction > > Hello, > I was surprised to find that global filenames are added to job filenames > rather than being replaced by job filenames. For instance, running > fio --ioengine=libaio --io_size=40k --readwrite=randread -- > filename=/dev/sdd --direct=1 --exitall --debug=io -- > name=sdb_randread_1_4k --filename=/dev/sdb > with fio-3.30 will show reads to both /dev/sdb and /dev/sdd. Is this > expected behaviour? And are there other parameters that work in this > way? I couldn't find anything in the job file parameters documentation > mentioning this behaviour, but perhaps I was looking in the wrong place > or missed it. > Thank you for your attention, > Phillip Chen > > Seagate Internal options.c:str_filename_cb parses the filename option. Since fio allows users to specify multiple files by separating names with a colon, for each filename specified the function calls add_file() to add the new file to the job's file array. I believe what is happening is that sdd was added to the job's file array when the [global] section was parsed and then sdb was added to the file array when the [sdb_randread_1_4k] section was parsed. So the job ran as if you had specified filename=/dev/sdd:/dev/sdb. Unless someone wants to change this behavior perhaps the thing to do is to document it.