RFR/RFC 8231503: [TESTBUG] compiler/{jvmci, aot} tests should not run with GCs that do not support JVMCI/AOT

Dmitry Samersoff dms at samersoff.net
Mon Sep 30 08:22:25 UTC 2019


Aleksey,

I get your point.

Updating all tests with long @require (and maintain it in the future)
can be a painful task.

One of possible option is to introduce vm.aot_compatible_gc and update
@require to use this new flag.

But, if you finally go to the simple way that is shown in candidate
webrev, please factor out GC selection logic into a separate function,
to have it in one place.

-Dmitry




On 30.09.19 10:50, Aleksey Shipilev wrote:
> On 9/27/19 8:52 PM, dean.long at oracle.com wrote:
>> If some GCs don't support JVMCI/AOT, maybe we should turn off the EnableJVMCI and UseAOT flags. 
>> Wouldn't that prevent the tests from running?
> 
> I believe there is a circularity in reasoning there. Tests would enable +UseAOT or +UseJVMCI after
> they get clear through @requires, and then everything goes boom. VMProps set "vm.aot" and "vm.jvmci"
> sensing the presence of jaotc and the _availability_ of UseJVMCI flag. And it is too early to sense
> if @run would set +UseAOT or +UseJVMCI.
> 
> This explains why tests still fail with Shenandoah that *does* turn off UseAOT. It does not help,
> because it happens too late, and tests fail.
> 
> I believe the only way to disallow tests to run is proper @requires. The question is how exactly to
> spell it: dropping "vm.aot"/"vm.jvmci" to "false" when unsupported GC is selected (like this patch
> is doing), or do explicit @requires for every test listing every compatible GC.
> 


More information about the hotspot-compiler-dev mailing list