fix: io_uring sqpoll issue_time empty when kernel not yet read sq #1594
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Situation:
io_u_b.issue_time is never initilized.