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

Mark Erdos <[email protected]> Thu, 12 Mar 2026 10:21:30 -0700
Newsgroups org.kernel.vger.fio
Message-ID <CA+kyTLLmBPoB983JqBWTy_Mv8dW_QNBY8OpFauKJ1ESjx+zP+w@mail.gmail.com>
[resending in plain text mode according to the auto reply message]

Thank you so much for the very quick reply!!!

1. Your suggestion would be very helpful to better interpret the
output, especially since it might be using different units from the
default unit in input, which is documented as  microseconds in the
manual (see next point on that).
2. Do you know if your explanation is also true for the input values
in the fio profile? That would mean that the manual which describes
both as microsecond would need an update. I will start to test in my
lab around this, but if you could confirm that would be great!

Thank you, Mark


On Thu, Mar 12, 2026 at 7:38=E2=80=AFAM Vincent Fu <[email protected]> wr=
ote:
>
> 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 happ=
iest to learn if it isn't as it would be a shorter path to fix. I believe t=
he 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 pr=
ior.
> >
> > I am running an openshift KubeVirt VM environment with NVMe/TCP block s=
torage backend using portworx free CSI and Pure FlashArray. There is a mast=
er 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=
 used, so it is difficult to know how my changes in the input affect the ou=
tput.
> >
> > Input (attached):
> > Per the manual https://fio.readthedocs.io/en/latest/fio_doc.html#i-o-la=
tency, latency_target and latency_window both should be in microseconds if =
unit is omitted. However, as in this example, input latency_target=3D5 prod=
uces in the output target=3D5000, while input latency_window=3D5000000 prod=
uces window=3D5000000 in the output. So the two are not handled the same. I=
 tested 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 uni=
t after the number. I can only indirectly infer, looking at the storage lat=
ency from the storage GUI, but that is not very scientific and has not yiel=
ded yet.
> >
> > I found some reference here, https://github.com/axboe/fio/discussions/2=
006, but it suggested the issue is solved. Not sure how to use, or not solv=
ed.
> >
> > 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



--=20
Mark
[email protected]