RFR: 8318098: Update jfr tests with corresponding requires flags [v2]

Leonid Mesnik lmesnik at openjdk.org
Tue Nov 19 18:14:55 UTC 2024


On Tue, 19 Nov 2024 17:09:00 GMT, Leonid Mesnik <lmesnik at openjdk.org> wrote:

>> There are few JFR tests are failing with -Xcomp and compiler stress flags. 
>> I added requires tag when tests are incompatible with corresponding mode:
>> 1) huge stacks and DeoptimieALot cause timeout
>> 2) WB controlled compilation doesn't work with Xcomp
>> 3) Arguments tests might be sensitive to aby flags and should be flagless
>> and excluded a 2 groups of tests failing with Xcomp for further invesitigation.
>> 
>> The drivers for these are following bug escapes because of JFR was not tested with VM flags:
>> https://bugs.openjdk.org/browse/JDK-8340586
>> https://bugs.openjdk.org/browse/JDK-8344199
>> https://bugs.openjdk.org/browse/JDK-8340826
>> https://bugs.openjdk.org/browse/JDK-8343893
>> 
>> 
>> So now jfr tests support all flags used for testing  in CI with them.
>> The bug
>> https://bugs.openjdk.org/browse/JDK-8318098
>> has a linked all the product issues found by running JFR tests with flags and explanation why is it needed.
>
> Leonid Mesnik has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains four commits:
> 
>  - Merge branch 'master' of https://github.com/openjdk/jdk into 8318098
>  - 8318098: Update jfr tests with corresponding requires flags
>  - Merge branch 'master' of https://github.com/lmesnik/jdk
>  - 8344051

The jfr keyword has been used by internal Oracle system only because there were now way to control VM flags by jtreg 10 years ago. 
This is why I haven't mentioned it in the PR. 

There is a requires tag has been introduced to mark the tests that don't accept certain or any  vm flags. It is used in many areas to mark flags sensitive tests so they are not executed for some or any combinations.

So anyone who executes openjdk  jtreg tests, either in Adhoc/locally or using their CI expects that tests are correctly configured and incompatible options are not selected.The only exception is JFR tests .  The 'jfr' keyword is not documented and there is no formal and easy way saying to run all SVC tests with ZGC.

So using requires tag just makes jfr test consistent with all other JDK tests. 

Most of JFR tests don't set very specific combinations and might be executed with all VM flags. So need to mark on incompatible combination. There is no requirement to spent a lot of time trying to improve test for all Compiler/GC combinations,  just mark tests that are too specific. And as I mention in the description there are real Hotspot issues that were found by running jfr tests with different options.

Saying that I believe it makes sense to change how we run JFR tests. So we have the same way for ALL JDK tests.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/22249#issuecomment-2486417959


More information about the hotspot-dev mailing list