Flexible I/O Tester development
 help / color / mirror / Atom feed
* Timing information between I/Os in iolog replay
@ 2013-02-19  7:36 Alireza Haghdoost
  2013-02-19  7:46 ` Jens Axboe
  0 siblings, 1 reply; 2+ messages in thread
From: Alireza Haghdoost @ 2013-02-19  7:36 UTC (permalink / raw)
  To: fio

Hi,

I am trying to understand how fio respect timing information between
consecutive IOs in a read_iolog job, However the logic is not very
clear for me , specially in the following function:

static int read_iolog2(struct thread_data *td, FILE *f)
{
...
r = sscanf(p, "%256s %256s %llu %u", fname, act, &offset,
									&bytes);
...
			if (!strcmp(act, "wait"))
				rw = DDIR_WAIT;
...
		if (rw == DDIR_WAIT) {
			ipo->delay = offset;
...
		queue_io_piece(td, ipo);
}

Here is my two questions about this function:
First, I can not see any "wait" command in a typical iolog file
(collected with write_iolog=str job option). Should I set special
parameter in job file to collect iolog with respect to IO timing
information.
Second, Why request offset assigned to ipo->delay ? I was thinking
that ipo->delay should get some timing value which represent
inter-submission time delay. However, In this case  ipo->delay get LBA
offset which just a byte address in my point view.

Your input is highly appreciated,


Thanks
Alireza

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

* Re: Timing information between I/Os in iolog replay
  2013-02-19  7:36 Timing information between I/Os in iolog replay Alireza Haghdoost
@ 2013-02-19  7:46 ` Jens Axboe
  0 siblings, 0 replies; 2+ messages in thread
From: Jens Axboe @ 2013-02-19  7:46 UTC (permalink / raw)
  To: Alireza Haghdoost; +Cc: fio

On Tue, Feb 19 2013, Alireza Haghdoost wrote:
> Hi,
> 
> I am trying to understand how fio respect timing information between
> consecutive IOs in a read_iolog job, However the logic is not very
> clear for me , specially in the following function:
> 
> static int read_iolog2(struct thread_data *td, FILE *f)
> {
> ...
> r = sscanf(p, "%256s %256s %llu %u", fname, act, &offset,
> 									&bytes);
> ...
> 			if (!strcmp(act, "wait"))
> 				rw = DDIR_WAIT;
> ...
> 		if (rw == DDIR_WAIT) {
> 			ipo->delay = offset;
> ...
> 		queue_io_piece(td, ipo);
> }
> 
> Here is my two questions about this function:
> First, I can not see any "wait" command in a typical iolog file
> (collected with write_iolog=str job option). Should I set special
> parameter in job file to collect iolog with respect to IO timing
> information.
> Second, Why request offset assigned to ipo->delay ? I was thinking
> that ipo->delay should get some timing value which represent
> inter-submission time delay. However, In this case  ipo->delay get LBA
> offset which just a byte address in my point view.

That is the format of a delay line, instead of an LBA it has a timing
parameter. Normally you don't have delays at all, it's only for replay
and record of blktraces that would be a factor.

-- 
Jens Axboe


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

end of thread, other threads:[~2013-02-19  7:47 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-02-19  7:36 Timing information between I/Os in iolog replay Alireza Haghdoost
2013-02-19  7:46 ` Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox