-
Notifications
You must be signed in to change notification settings - Fork 6.2k
8349192: jvmti/scenarios/contention/TC05/tc05t001 fails: ERROR: tc05t001.cpp, 281: (waitedThreadCpuTime - waitThreadCpuTime) < (EXPECTED_ACCURACY * 1000000) #28206
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
base: master
Are you sure you want to change the base?
Conversation
…tc05t001.cpp, 281: (waitedThreadCpuTime - waitThreadCpuTime) < (EXPECTED_ACCURACY * 1000000)
|
👋 Welcome back sspitsyn! A progress list of the required criteria for merging this PR into |
|
❗ This change is not yet ready to be integrated. |
Webrevs
|
| @@ -40,9 +40,9 @@ static const jlong EXPECTED_TIMEOUT = 1; | |||
| static const jlong EXPECTED_TIMEOUT_ACCURACY_NS = 300000; | |||
|
|
|||
| #if (defined(WIN32) || defined(_WIN32)) | |||
| static const jlong EXPECTED_ACCURACY = 16; // 16ms is longest clock update interval | |||
| static const jlong EXPECTED_ACCURACY = 32; // 16ms is longest clock update interval | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does the comment 16ms should be updated.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for the comment. I've decided to restore the original EXPECTED_ACCURACY on Windows.
| static const jlong EXPECTED_ACCURACY = 16; // 16ms is longest clock update interval | ||
| #else | ||
| static const jlong EXPECTED_ACCURACY = 10; // high frequency clock updates expected | ||
| static const jlong EXPECTED_ACCURACY = 32; // high frequency clock updates expected |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The comments are somewhat misleading now. We choose 16 on WIN32 because that is the smallest interval allowed. We expect better clock refinement on other platforms and therefore better accuracy. Thus 10ms was chosen. Now we have one test case that was just over 16ms. Is there a reason to believe that couldn't happen with WIN32 also. If not, then the comments should reflect that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I feel that all these checks are just a source of this test instability. :)
I'm not sure I fully understand why those are needed and what was the original design. It is always possible to have some delays in waiting time, so the original assumptions about expected accuracy are not fully correct as they are a little bit overly strong.
From this point of view, I do not see why the comments are confusing. The EXPECTED_ACCURACY values are just based on the high frequency clock updates interval but should not be equal to it.
Would you like me to change the comments to something like below ? :
high frequency clock updates expected
=>
expected accuracy is based on high frequency clock updates
I do not want to change the Windows part until any failure is observed but can update the comment for consistency.
This is fix is to increase the
EXPECTED_ACCURACYvalue in the test:hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC05/tc05t001.It is used check that the waiting time between
MonitorWaitandMonitorWaitedevent is not big. It seems that in some corner cases this time can be bigger than expected.Testing:
Progress
Issue
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/28206/head:pull/28206$ git checkout pull/28206Update a local copy of the PR:
$ git checkout pull/28206$ git pull https://git.openjdk.org/jdk.git pull/28206/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 28206View PR using the GUI difftool:
$ git pr show -t 28206Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/28206.diff
Using Webrev
Link to Webrev Comment