All of lore.kernel.org
 help / color / mirror / Atom feed
* io_size usage
@ 2015-12-09  2:50 Jun He
  2015-12-10  6:56 ` Sitsofe Wheeler
  0 siblings, 1 reply; 3+ messages in thread
From: Jun He @ 2015-12-09  2:50 UTC (permalink / raw)
  To: fio

Hi all,
I think there is a bug for io_size. 

For example, I want to write 16KB data to a file of size 8KB (so each block is
written twice) and I have the following job file:

[global]
ioengine=sync
rw=write
bs=4kb
size=8kb
io_size=32kb

[job1]
write_iolog=iolog.1


After running, iolog.1 will contain the following contents:

fio version 2 iolog
job1.0.0 add
job1.0.0 open
job1.0.0 write 0 4096
job1.0.0 write 4096 4096
job1.0.0 close

This shows that each block has been only written once. 

If I change the ioengine to libaio, iolog.1 will contain:

fio version 2 iolog
job1.0.0 add
job1.0.0 open
job1.0.0 write 0 4096
job1.0.0 write 4096 4096
job1.0.0 close
job1.0.0 open
job1.0.0 write 0 4096
job1.0.0 write 4096 4096
job1.0.0 close
job1.0.0 open
job1.0.0 write 0 4096
job1.0.0 write 4096 4096
job1.0.0 close
job1.0.0 open
job1.0.0 write 0 4096
job1.0.0 write 4096 4096
job1.0.0 close


Bug or wrong usage?

Thanks,
Jun




^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: io_size usage
  2015-12-09  2:50 io_size usage Jun He
@ 2015-12-10  6:56 ` Sitsofe Wheeler
  2015-12-10 15:14   ` Jun He
  0 siblings, 1 reply; 3+ messages in thread
From: Sitsofe Wheeler @ 2015-12-10  6:56 UTC (permalink / raw)
  To: Jun He; +Cc: fio

Hi,

Your job sets and io_size four times that of "size" of the disk that
you are using. This will force your I/O to wrap abound to the start of
the region (why not use loops?). Are you saying that you think the
sync job's iolog is wrong because it only says it performed one loop?

On 9 December 2015 at 02:50, Jun He <jhe@cs.wisc.edu> wrote:
> Hi all,
> I think there is a bug for io_size.
>
> For example, I want to write 16KB data to a file of size 8KB (so each block is
> written twice) and I have the following job file:
>
> [global]
> ioengine=sync
> rw=write
> bs=4kb
> size=8kb
> io_size=32kb
>
> [job1]
> write_iolog=iolog.1
>
>
> After running, iolog.1 will contain the following contents:
>
> fio version 2 iolog
> job1.0.0 add
> job1.0.0 open
> job1.0.0 write 0 4096
> job1.0.0 write 4096 4096
> job1.0.0 close
>
> This shows that each block has been only written once.
>
> If I change the ioengine to libaio, iolog.1 will contain:
>
> fio version 2 iolog
> job1.0.0 add
> job1.0.0 open
> job1.0.0 write 0 4096
> job1.0.0 write 4096 4096
> job1.0.0 close
> job1.0.0 open
> job1.0.0 write 0 4096
> job1.0.0 write 4096 4096
> job1.0.0 close
> job1.0.0 open
> job1.0.0 write 0 4096
> job1.0.0 write 4096 4096
> job1.0.0 close
> job1.0.0 open
> job1.0.0 write 0 4096
> job1.0.0 write 4096 4096
> job1.0.0 close
>
>
> Bug or wrong usage?
>
> Thanks,
> Jun
>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe fio" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Sitsofe | http://sucs.org/~sits/

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: io_size usage
  2015-12-10  6:56 ` Sitsofe Wheeler
@ 2015-12-10 15:14   ` Jun He
  0 siblings, 0 replies; 3+ messages in thread
From: Jun He @ 2015-12-10 15:14 UTC (permalink / raw)
  To: Sitsofe Wheeler; +Cc: fio

Thanks for the mentioning the 'loops' option.

But still, it is weird that by changing ioengine, iolog will report differently.
I think either sync mistakenly performs only one loop, or the IO is done
correctly but iolog report is wrong.

I think the expected behavior is that iolog is the same for both sync and
libaio. And both of them should follow the HOW:

"if 'size' is set to 21G, and 'io_size' is set to 40G, then fio will do 40G of
IO within the 0..20G region."


Jun




On Thu, Dec 10, 2015 at 12:56 AM, Sitsofe Wheeler <sitsofe@gmail.com> wrote:
> Hi,
>
> Your job sets and io_size four times that of "size" of the disk that
> you are using. This will force your I/O to wrap abound to the start of
> the region (why not use loops?). Are you saying that you think the
> sync job's iolog is wrong because it only says it performed one loop?
>
> On 9 December 2015 at 02:50, Jun He <jhe@cs.wisc.edu> wrote:
>> Hi all,
>> I think there is a bug for io_size.
>>
>> For example, I want to write 16KB data to a file of size 8KB (so each block is
>> written twice) and I have the following job file:
>>
>> [global]
>> ioengine=sync
>> rw=write
>> bs=4kb
>> size=8kb
>> io_size=32kb
>>
>> [job1]
>> write_iolog=iolog.1
>>
>>
>> After running, iolog.1 will contain the following contents:
>>
>> fio version 2 iolog
>> job1.0.0 add
>> job1.0.0 open
>> job1.0.0 write 0 4096
>> job1.0.0 write 4096 4096
>> job1.0.0 close
>>
>> This shows that each block has been only written once.
>>
>> If I change the ioengine to libaio, iolog.1 will contain:
>>
>> fio version 2 iolog
>> job1.0.0 add
>> job1.0.0 open
>> job1.0.0 write 0 4096
>> job1.0.0 write 4096 4096
>> job1.0.0 close
>> job1.0.0 open
>> job1.0.0 write 0 4096
>> job1.0.0 write 4096 4096
>> job1.0.0 close
>> job1.0.0 open
>> job1.0.0 write 0 4096
>> job1.0.0 write 4096 4096
>> job1.0.0 close
>> job1.0.0 open
>> job1.0.0 write 0 4096
>> job1.0.0 write 4096 4096
>> job1.0.0 close
>>
>>
>> Bug or wrong usage?
>>
>> Thanks,
>> Jun
>>
>>
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe fio" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
>
>
> --
> Sitsofe | http://sucs.org/~sits/

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-12-10 15:15 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-09  2:50 io_size usage Jun He
2015-12-10  6:56 ` Sitsofe Wheeler
2015-12-10 15:14   ` Jun He

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.