[GIT PULL] Test: Introduce duration scale for upper timing bounds - #1634
Open
zeehha wants to merge 4 commits into
Open
[GIT PULL] Test: Introduce duration scale for upper timing bounds#1634zeehha wants to merge 4 commits into
zeehha wants to merge 4 commits into
Conversation
added 4 commits
September 3, 2026 15:24
On slow platforms like Qemu, upper timing bounds may be exceeded. Introduce a helper function to use an environment variable 'LIBURING_DURATION_SCALE' (specifying a float) for scaling the upper timing boundaries. A default value of 1.0 is specified in the test runner script leaving the current timing behavior unchanged. Signed-off-by: Chris Gellermann <christian.gellermann@codasip.com>
The testcase min-timeout-wait checks for a variety of io_uring_wait_cqes_min_timeout calls that the ellapsed time is within the bounds min_t and max_t. Scale max_t (if LIBURING_DURATION_SCALE > 1) to relax the timing on slow platforms. Signed-off-by: Chris Gellermann <christian.gellermann@codasip.com>
Scale the upper timing expectation for the thread exit to account for slow platforms. Signed-off-by: Chris Gellermann <christian.gellermann@codasip.com>
Scale the period at which the signal handler to detect a hang runs to account for slow platforms. Signed-off-by: Chris Gellermann <christian.gellermann@codasip.com>
Collaborator
|
I don't see a problem with this approach, but given that you need to touch the individual tests, I think it would also be fine and simpler to just increase the timeout of the failing tests, when confirmed the VM slowness it the real culprit for the failure. Either way, looks good. One thing, IIRC, runtests also has a global timeout for the tests. does that fail as well? does it need to be scaled? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Hey there,
as we run the tests on slower platforms like Qemu, we've introduced an environment variable
LIBURING_DURATION_SCALEthat specifies a factor to scale upper time bounds of tests where we ran into timing issues. A default factor of1.0is specified, so the timing of the tests stays as is.I'm sending here a first patch set that introduces the test library function and the scaling for a few tests. We have a few more of these patches that we could follow up with.
Best,
Chris
git request-pull output:
Click to show/hide pull request guidelines
Pull Request Guidelines
notification, use
[GIT PULL]as a prefix in your PR title.Commit message format rules:
Signed-off-bytag with your real name and email. For example:The description should be word-wrapped at 72 chars. Some things should
not be word-wrapped. They may be some kind of quoted text - long
compiler error messages, oops reports, Link, etc. (things that have a
certain specific format).
Note that all of this goes in the commit message, not in the pull
request text. The pull request text should introduce what this pull
request does, and each commit message should explain the rationale for
why that particular change was made. The git tree is canonical source
of truth, not github.
Each patch should do one thing, and one thing only. If you find yourself
writing an explanation for why a patch is fixing multiple issues, that's
a good indication that the change should be split into separate patches.
If the commit is a fix for an issue, add a
Fixestag with the issueURL.
Don't use GitHub anonymous email like this as the commit author:
Use a real email address!
Commit message example:
By submitting this pull request, I acknowledge that: