RFR: 8325482: Test that distinct seeds produce distinct traces for compiler stress flags [v2]
Damon Fenacci
dfenacci at openjdk.org
Mon Aug 4 08:32:55 UTC 2025
On Fri, 1 Aug 2025 11:30:13 GMT, Saranya Natarajan <snatarajan at openjdk.org> wrote:
>> The existing test (`compiler/debug/TestStress.java`) verifies that compiler stress options produce consistent traces when using the same seed. However, there is currently no test to ensure that different seeds result in different traces.
>>
>> ### Solution
>> Added a test case to assess the distinctness of traces generated from different seeds. This fix addresses the fragility concern highlighted in [JDK-8325482](https://bugs.openjdk.org/browse/JDK-8325482) by verifying that traces produced using N (in this case 10) distinct seeds are all not identical.
>>
>> ### Changes to `compiler/debug/TestStress.java`
>> While investigating this issue, I observed that in `compiler/debug/TestStress.java`, the stress options for macro expansion and macro elimination were not being triggered because there were fewer than 2 macro nodes. Note that the `shuffle_macro_nodes()` in` compile.cpp` is only meaningful when there are more than two macro nodes. The generated traces for macro expansion and macro elimination in `TestStress.java` were empty. I have proposed changes to address this problem.
>
> Saranya Natarajan has updated the pull request incrementally with two additional commits since the last revision:
>
> - changing N to 5
> - Adding test for same seed --> same result for N = 10
Thanks for looking into this @sarannat! I just left a couple of inline comments.
test/hotspot/jtreg/compiler/debug/TestStressDistinctSeed.java line 34:
> 32: /*
> 33: * @test
> 34: * @key stress randomness
Is the test actually "randomised"?
test/hotspot/jtreg/compiler/debug/TestStressDistinctSeed.java line 99:
> 97: if (args.length == 0) {
> 98: for (int s = 0; s < 5; s++) {
> 99: igvntrace = igvnTrace(s);
Did you choose the 0-4 seeds to be sure that there are at least a couple of different traces? I guess it wouldn't be so easy to exclude that with random values, right?
-------------
PR Review: https://git.openjdk.org/jdk/pull/26554#pullrequestreview-3083165080
PR Review Comment: https://git.openjdk.org/jdk/pull/26554#discussion_r2250785876
PR Review Comment: https://git.openjdk.org/jdk/pull/26554#discussion_r2250752204
More information about the hotspot-compiler-dev
mailing list