Re: fio parsing issue when trying to use latency_target and latency_window

Vincent Fu <[email protected]> Thu, 12 Mar 2026 10:37:50 -0400
Newsgroups org.kernel.vger.fio
Message-ID <CAOp=CX=qEYiGLUepFc5myXaUVZFv4CdPRt9g2WzVe-ARBr6_ng@mail.gmail.com>
On Thu, Mar 12, 2026 at 12:03=E2=80=AFAM Mark Erdos <[email protected]> =
wrote:
>
> Hello,
>
> I am more and more convinced that this is a bug, but I will be the happie=
st to learn if it isn't as it would be a shorter path to fix. I believe the=
 below is some parsing bug or misinterpretation of the manual by me.
>
> Using fio-3.41 now, but the experience is similar in fio-3.35 I used prio=
r.
>
> I am running an openshift KubeVirt VM environment with NVMe/TCP block sto=
rage backend using portworx free CSI and Pure FlashArray. There is a master=
 and 3 VMs as the fio workers.
>
> Output (attached):
> It is definitely an issue that in the output "latency   : target=3D5000, =
window=3D5000000, percentile=3D99.00%, depth=3D1" there are no time units u=
sed, so it is difficult to know how my changes in the input affect the outp=
ut.
>
> Input (attached):
> Per the manual https://fio.readthedocs.io/en/latest/fio_doc.html#i-o-late=
ncy, latency_target and latency_window both should be in microseconds if un=
it is omitted. However, as in this example, input latency_target=3D5 produc=
es in the output target=3D5000, while input latency_window=3D5000000 produc=
es window=3D5000000 in the output. So the two are not handled the same. I t=
ested using units usec, msec, us, ms, s, I was not able to find one that I =
was sure about what is happening, especially as the output is void of unit =
after the number. I can only indirectly infer, looking at the storage laten=
cy from the storage GUI, but that is not very scientific and has not yielde=
d yet.
>
> I found some reference here, https://github.com/axboe/fio/discussions/200=
6, but it suggested the issue is solved. Not sure how to use, or not solved=
.
>
> Can you please guide me or let me know if I should file a bug (or two) on=
 git?
>
> Sincerely, thank you,
>
> --
> Mark
> [email protected]

Would everything make sense if the output had these units?

     latency   : target=3D5000ns, window=3D5000000us, percentile=3D90.00%, =
depth=3D1

Internally it looks like latency_target is stored as nsec and
latency_window is stored as usec.

Vincent