fix: io_uring sqpoll issue_time empty when kernel not yet read sq
authorJueji Yang <jueji.yang@gmail.com>
Thu, 6 Jul 2023 12:07:28 +0000 (20:07 +0800)
committerGitHub <noreply@github.com>
Thu, 6 Jul 2023 12:07:28 +0000 (20:07 +0800)
commit10bad6b9a15f56a4eefb1a12a0ebb7f43c9d4a42
tree7f8e0e36cd412abee39ac6aaf7720308ea294881
parent8e2b81b854286f32eae7951a434dddebd968f9d5
fix: io_uring sqpoll issue_time empty when kernel not yet read sq

In io_uring sqpoll mode, when kernel side thread has not yet read
the sqring before second fio_ioring_commit() called, the
sq_ring.head will remain the same. The second
fio_ioring_commit() will initialize the wrong io_u's issue_time.
The old(in head) io_u‘s issue_time will to be initialized twice and
new(in tail - 1) io_u's issue_time will not to be initialized.
This problem will cause clat is weird, sometimes larger than lat.

Signed-off-by: Jueji Yang <jueji.yang@gmail.com>
engines/io_uring.c