On Thu, 22 Oct 2020 20:35:29 GMT, Richard Reingruber <rr...@openjdk.org> wrote:

>> The following test cases try to provoke VMOutOfMemoryException during object 
>> reallocation because of JVMTI PopFrame / ForceEarlyReturn:
>> 
>> EAPopFrameNotInlinedReallocFailure
>> EAPopInlinedMethodWithScalarReplacedObjectsReallocFailure
>> EAForceEarlyReturnOfInlinedMethodWithScalarReplacedObjectsReallocFailure
>> 
>> For ZGC (so far) this is not 100% reliable.
>> 
>> Just ignoring the runs where the expected OOME was not raised was not 
>> accepted.
>> 
>> Summary of the now accepted solution:
>> 
>> - The 3 problematic test cases are skipped if ZGC is selected.
>> 
>> - They are also skipped if no OOME during object reallocation can be 
>> expected because allocations are not eliminated.
>> 
>> - In consumeAllMemory, as a last step, empty LinkedList nodes are created 
>> without long array to fill up small blocks of free memory.
>> 
>> - EATests.java is removed from the problem list for ZGC.
>
> Richard Reingruber has updated the pull request with a new target base due to 
> a merge or a rebase. The incremental webrev excludes the unrelated changes 
> brought in by the merge/rebase. The pull request contains four additional 
> commits since the last revision:
> 
>  - Skip test cases expecting OOMEs if running with ZGC.
>  - Merge branch 'master' into JDK-8255072-eatests-oom-not-thrown
>  - Make OOME more reliable and skip test cases if it is not expected because 
> scalar replacement is disabled
>  - 8255072: [TESTBUG] com/sun/jdi/EATests.java should not fail if expected 
> VMOutOfMemoryException is not thrown

Hi Richard,
It looks good to me.
One nit:
     public static final boolean DoEscapeAnalysis     = 
unbox(WB.getBooleanVMFlag("DoEscapeAnalysis"), UseJVMCICompiler);
     public static final boolean EliminateAllocations = 
unbox(WB.getBooleanVMFlag("EliminateAllocations"), UseJVMCICompiler); // read 
by debugger
     public static final boolean DeoptimizeObjectsALot   = 
WB.getBooleanVMFlag("DeoptimizeObjectsALot");                      // read by 
debugger
     public static final long BiasedLockingBulkRebiasThreshold = 
WB.getIntxVMFlag("BiasedLockingBulkRebiasThreshold");
     public static final long BiasedLockingBulkRevokeThreshold = 
WB.getIntxVMFlag("BiasedLockingBulkRevokeThreshold");
+    public static final boolean ZGCIsSelected        = GC.Z.isSelected();
There are unneeded spaces before '=' sign.

Thanks,
Serguei

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

Marked as reviewed by sspitsyn (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/775

Reply via email to