OpenJDK / valhalla / valhalla9
changeset 1377:c053f9a0aa72
8072774: bigapps/Weblogic+medrec/nowarnings fails due to CodeHeap 'profiled nmethods' exhaustion
Summary: Store profiled code in the non-profiled code heap (and vice versa) if the code cache is really full.
Reviewed-by: kvn, iveresov
author | thartmann |
---|---|
date | Mon, 23 Feb 2015 08:48:19 +0100 |
parents | 6bfd6ad07c7b |
children | 2caf1c113570 |
files | test/lib/sun/hotspot/code/BlobType.java |
diffstat | 1 files changed, 16 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/test/lib/sun/hotspot/code/BlobType.java Mon Feb 16 12:25:56 2015 +0100 +++ b/test/lib/sun/hotspot/code/BlobType.java Mon Feb 23 08:48:19 2015 +0100 @@ -32,15 +32,28 @@ public enum BlobType { // Execution level 1 and 4 (non-profiled) nmethods (including native nmethods) - MethodNonProfiled(0, "CodeHeap 'non-profiled nmethods'", "NonProfiledCodeHeapSize"), + MethodNonProfiled(0, "CodeHeap 'non-profiled nmethods'", "NonProfiledCodeHeapSize") { + @Override + public boolean allowTypeWhenOverflow(BlobType type) { + return super.allowTypeWhenOverflow(type) + || type == BlobType.MethodProfiled; + } + }, // Execution level 2 and 3 (profiled) nmethods - MethodProfiled(1, "CodeHeap 'profiled nmethods'", "ProfiledCodeHeapSize"), + MethodProfiled(1, "CodeHeap 'profiled nmethods'", "ProfiledCodeHeapSize") { + @Override + public boolean allowTypeWhenOverflow(BlobType type) { + return super.allowTypeWhenOverflow(type) + || type == BlobType.MethodNonProfiled; + } + }, // Non-nmethods like Buffers, Adapters and Runtime Stubs NonNMethod(2, "CodeHeap 'non-nmethods'", "NonNMethodCodeHeapSize") { @Override public boolean allowTypeWhenOverflow(BlobType type) { return super.allowTypeWhenOverflow(type) - || type == BlobType.MethodNonProfiled; + || type == BlobType.MethodNonProfiled + || type == BlobType.MethodProfiled; } }, // All types (No code cache segmentation)