-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
read stats for backlog verifies not reported for time-expired workloads #1515
Comments
A secondary issue associated with the same root cause of the issue above is incorrect read stats results for the case of a non-timed execution. For example:
Produces wildly inaccurate read results, owing to the fact that the reads for the backlog verifies aren't being sampled for the stats but the reads for the post-workload verify are (do_verify), but there are no verifies to perform since the backlog completed them, thus the result is wildly inaccurate read stats since the completion time of do_verify() is near zero:
Here's the output of the above run with the same correction from #1514:
|
When verify_backlog is used on a write-only workload with a runtime= value and the runtime expires before the workload has written its full dataset, the read stats for the backlog verifies are not reported, resulting in a stat result showing only the workload writes (ie, the "read:" results section is completely missing from fio's stats output) The logic in thread_main() fails to call update_runtime() for DDIR_READ because the existing call to update_runtime() for DDIR_READ on write-only workloads is currently only done after do_verify() is complete, which wont be called in this scenario because td->terminate is true due to the expiration of the runtime. Link: #1515 Signed-off-by: Adam Horshack (horshack@live.com)
The only caveat with this fix is that when verify_backlog=n is used the read workflow timer starts at the beginning of the write workflow and not when the first verify read actually occurs. For large values of verify_backlog this can lead to printing of lower average read bandwidths than expected. For example, with verify_backlog=8m it can be several minutes before the first verify read occurs but the read data rate is averaged over the entire run. |
@george-eldridge, Thanks. That aspect was discussed in the pull request thread that included a fix: Btw the scenario you described occurs in other areas as well. For example, |
Please acknowledge the following before creating a ticket
Description of the bug:
When verify_backlog is used on a write-only workload with a runtime= value and the runtime expires before the workload has written its full dataset, the read stats for the backlog verifies are not reported, resulting in a stat result showing only the workload writes (ie, the "read:" results section is completely missing from fio's stats output)
Environment: Ubuntu 22.04.1 LTS
fio version: 3.33, tip of master
Reproduction steps
Output with fix applied:
#1514
The text was updated successfully, but these errors were encountered: