On 2014-06-30 16:09, Abutalib Aghayev wrote: > > On Mon, Jun 30 2014 at 17:50 PM, Jens Axboe wrote: >> On 2014-06-29 11:43, Abutalib Aghayev wrote: >>> >>> This is a quick and dirty patch to log offsets of I/O operations as >>> well. It is useful if you would like to make offset vs latency plot for >>> random I/O, which may not be interesting to many people, so feel free to >>> ignore it. >> >> I can definitely see this being useful. But adding 8 bytes to every log >> entry complicates things, as fio is already memory intensive there when >> logging longer runs. >> >> I'd suggest having two logging types: >> >> struct io_sample { >> uint64_t time; >> uint64_t val; >> uint32_t ddir; >> uint32_t bs; >> uint64_t offset; > > I assume you didn't mean offset being here as well. Ah no, of course not. >> struct io_sample_offset { >> struct io_sample s; >> uint64_t offset; >> }; >> >> and using the right type for what you are logging. This means you'd need >> an option to switch on the offset logging, and that you'd need to store >> this in the iolog struct (whether to log offset or not) and use the >> appropriate size for allocating and extending the log entries when needed. >> >> Make sense? > > Yes, let me rework the patch. Thanks! Note that you also need to handle the client/server part. Half-assed attempt attached, not tested at all. Still needs the client part update. -- Jens Axboe