On Tue, Jun 14, 2022 at 10:59 AM Vincent Fu <vincent.fu@xxxxxxxxxxx> wrote: > > io_uring, io_uring_cmd, and libaio record issue_time inside the ioengine > code when their commit functions are called. So we don't need to record > issue_time again for these ioengines in td_io_queue. > > If we do fill issue_time twice, then mean(slat) + mean(clat) != > mean(lat): I'm a little bit confused though why not recording issue_time again in td_io_queue is considered the right fix. By having some ioengines that record issue_time in their commit functions, and others that do not (and thus have it recorded in td_io_queue), comparing clat between two different engines isn't an apples-to-apples comparison. An ioengine that does not record issue_time in its commit gets a "discount" of sorts in its measured clat, since its issue_time is not recorded until later. Does that make sense, or am I missing something? (Has been a few months since I've been in the code in detail, so that's possible.)