Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
117 commits
Select commit Hold shift + click to select a range
cb7b514
Add java/lang/StringUTF16.newBytesFor to alwaysWorthInlining list
fjeremic Mar 12, 2020
3f904de
Improve JITServer test diagnostic messages
ymanton Feb 25, 2020
b93c66b
Handle quoted strings for JITServer test sub-procs
ymanton Mar 6, 2020
8339fd3
Loop compilation activity in JITServer tests
ymanton Feb 22, 2020
5116404
Re-enable JITServer functional tests
ymanton Mar 19, 2020
8fdc25a
Enable --enable-jitserver for all xlinux and plinux
pshipton Mar 20, 2020
7017671
Remove final from fields being set in native methods
babsingh Mar 20, 2020
16fbbc2
added if clause for persistent logging, retrieved clientUID info
XuechunHou Jan 23, 2020
4b45584
Merge branch 'master' of https://github.com/eclipse/openj9 into dynam…
XuechunHou Mar 26, 2020
1024582
Add code for terminating JITServer
Mar 23, 2020
3cb5801
Add query method for class whose instances are zero initializable
hzongaro Mar 26, 2020
d676f0e
Merge branch 'master' into dynamic_load_cassandra
Apr 1, 2020
6f5db47
Prevent increasing the scratchSpaceLimit on low virtual memory
mpirvu Apr 2, 2020
aa5bcee
Add new AOT not supported exceptions
dsouzai Apr 1, 2020
c33a120
Abort ILGen for non supported features in AOT
dsouzai Apr 1, 2020
b61f2c8
Use _binaryBufferStart as reference for offset calculations
harryyu1994 Apr 2, 2020
5b2b56e
Fix known object table update at the server
Apr 2, 2020
161bf2a
Enable if present, the miscellaneous-instruction-extention facility 2
PushkarBettadpur Mar 31, 2020
25ecf55
Merge branch 'master' of https://github.com/eclipse/openj9 into dynam…
XuechunHou Apr 2, 2020
06545b9
Fist address freedback stuff
Apr 2, 2020
9fccda8
IL Generation for withfield bytecode instruction
Feb 19, 2020
e9c156e
Remove unused & obsolete reflect implemention
DanHeidinga Apr 2, 2020
15ca068
made error messages consistent
XuechunHou Apr 2, 2020
87d9b75
Merge branch 'master' of https://github.com/eclipse/openj9 into addre…
XuechunHou Apr 2, 2020
b7d61dd
Convert sprintf to snprintf
Apr 2, 2020
ee078d2
Convert sprintf to snprintf
Apr 2, 2020
f814554
resolved conflicts
XuechunHou Apr 3, 2020
2a47fcf
Fix copyrights
DanHeidinga Apr 3, 2020
a602362
Merge pull request #9100 from DanHeidinga/djh/reflect
pshipton Apr 3, 2020
0b462ba
Merge pull request #9094 from a7ehuo/fix-knot-update-server
mpirvu Apr 3, 2020
ffece8e
Merge pull request #9090 from harryyu1994/fixPatchingAddr
mpirvu Apr 3, 2020
d3f9ce6
Handle race condition in outOfLineINL
babsingh Apr 1, 2020
dade504
Remove the obsolete APIs in known object table
Mar 30, 2020
469242d
Fix default flag initialization
gacholio Apr 3, 2020
de25968
Include sanity.openjdk for AIX, Windows, Mac
pshipton Apr 3, 2020
361acd7
Merge pull request #8844 from ashu-mehra/jitserver_shutdown
mpirvu Apr 3, 2020
00c13bc
General cleanup
gacholio Apr 3, 2020
1e292ea
Merge pull request #9096 from PushkarBettadpur/facilities_guard
fjeremic Apr 3, 2020
ead872f
Merge pull request #9114 from gacholio/cleanup
DanHeidinga Apr 3, 2020
763c464
Merge pull request #9071 from dsouzai/condyPrimitiveAOT
andrewcraik Apr 3, 2020
a0fe813
Merge pull request #9098 from cathyzhyi/withfield
andrewcraik Apr 3, 2020
7a2fc8a
Merge pull request #9013 from hzongaro/unflattened-query
andrewcraik Apr 3, 2020
b18e4c9
Protect including Listener.hpp by J9VM_OPT_JITSERVER
Apr 3, 2020
de9f1f2
Merge pull request #9121 from ashu-mehra/fix_build_error
gacholio Apr 3, 2020
0d779ef
Merge pull request #9111 from gacholio/default
pshipton Apr 3, 2020
7b9fa4f
Enable c99 interfaces on zos
Apr 2, 2020
625a486
Merge pull request #9076 from babsingh/outoflineinl_race_condition
gacholio Apr 3, 2020
ccfb10c
Reduce number of VM_getClassFromSignature messages
mpirvu Apr 4, 2020
a490572
Move FrontEnd noMultipleConcreteClasses into ClassEnv
Apr 1, 2020
958d2f9
Merge pull request #9067 from chrisc66/dev_numConcreteClasses
mpirvu Apr 4, 2020
263f12d
Changing compare and branch for unresolved snippets within FieldWatch
Apr 2, 2020
2f4b050
Consolidate jitdump functionality into JitDump.cpp
fjeremic Apr 1, 2020
967753c
Merge pull request #9125 from mpirvu/getClassFromSignature
ymanton Apr 6, 2020
ad97b5d
Merge pull request #8775 from ymanton/jitaas-tests
mpirvu Apr 6, 2020
103a3ad
Remove ";" from the interpreter goto statements
babsingh Apr 6, 2020
695bc21
Merge pull request #9138 from babsingh/fix_goto_interpreter
pshipton Apr 6, 2020
8c150cc
Merge pull request #8935 from babsingh/final_fields
gacholio Apr 6, 2020
47c5ee7
Merge pull request #9130 from AlenBadel/andifix
fjeremic Apr 6, 2020
35b018c
Revert "Remove final from fields being set in native methods"
gacholio Apr 6, 2020
9566789
Merge pull request #9140 from eclipse/revert-8935-final_fields
gacholio Apr 6, 2020
3131f2f
CMake: move -qnortti to platform flags on aix
Apr 6, 2020
f4aed50
Merge pull request #8845 from fjeremic/newBytesFor
andrewcraik Apr 6, 2020
8340185
Merge pull request #9143 from dnakamura/qnortti
pshipton Apr 7, 2020
0b24740
Merge pull request #9112 from pshipton/moreopenjdk
Apr 7, 2020
7f35141
Fix ClassEnv::containesZeroOrOneConcreteClass implementation
mpirvu Apr 7, 2020
beda9dd
CMake: Add missing config optiopns to aix cache
Apr 6, 2020
9b3e6da
CMake: Generate debug info on xlc
Apr 7, 2020
a9d0ee2
Enable DDR tests for AArch64 again
knn-k Apr 7, 2020
8fe089b
AArch64: Call arm64CodeSync() in Trampoline.cpp
knn-k Apr 7, 2020
3fbb20c
Merge pull request #9075 from a7ehuo/knot-remove-getIndex
mpirvu Apr 7, 2020
4cb4101
Merge pull request #9145 from mpirvu/containesZeroOrOneConcreteClassFix
fjeremic Apr 7, 2020
e3f353a
Include sanity.openjdk for XL platforms
pshipton Apr 7, 2020
cfba852
Merge pull request #9154 from pshipton/moreopenjdk
Apr 7, 2020
9d9d05d
CMake: Enable omrsig
Apr 7, 2020
8a875e0
Merge pull request #9142 from dnakamura/aix_cache
pshipton Apr 7, 2020
ad7c3f0
Merge pull request #9148 from knn-k/aarch64playlist3
pshipton Apr 7, 2020
ebc967e
Change location for OpenJ9 bootjdks on AIX
Apr 7, 2020
56da1fa
Merge pull request #9152 from jdekonin/master
pshipton Apr 7, 2020
9561b44
Merge pull request #9156 from dnakamura/omrsig
pshipton Apr 7, 2020
608d97b
Eliminate storeValidationRecordIfNecessary messages
dmitry-ten Apr 3, 2020
985300d
Merge pull request #9146 from dnakamura/xlc_debug
keithc-ca Apr 7, 2020
af69312
Minimize includes in JitDump.cpp/hpp and reinstate extern "C"
fjeremic Apr 7, 2020
a235102
Merge pull request #9149 from knn-k/aarch64trampoline1
0xdaryl Apr 7, 2020
25184bf
Clear peeking ilgen callNode from callsite
Apr 6, 2020
3a61eca
Reduce CompInfo_isCompiled message from the server
Apr 7, 2020
726e4b2
Clean up DTFJ code
keithc-ca Apr 7, 2020
8a1b779
Fix typo in function name containesZeroOrOneConcreteClass
Apr 7, 2020
0eb5f12
Merge pull request #9119 from dmitry-ten/aot-improve
mpirvu Apr 7, 2020
4bf4d03
Use _regionBytesAllocated to enforce scratch space limit
Apr 6, 2020
460de2c
Support PR builds from non-default repos
AdamBrousseau Apr 3, 2020
da9324c
AArch64: Return 64 as L1 data cache line size when info unavailable
knn-k Apr 7, 2020
540eb30
Assume java.base for the module of a null caller class
JasonFengJ9 Apr 1, 2020
0d8aa06
Merge pull request #9166 from chrisc66/dev_fixFunctionName
mpirvu Apr 8, 2020
e7bbc55
AArch64: Exclude testSoftMxUserScenario
knn-k Apr 8, 2020
64256c2
Merge pull request #9165 from keithc-ca/dtfj_cleanup
pshipton Apr 8, 2020
f347ec2
AArch64: Fix jitCalleeSavedRegisterList
Apr 7, 2020
293cbbd
Merge pull request #9088 from mpirvu/scratchlimit30
vijaysun-omr Apr 8, 2020
a286546
Merge pull request #9155 from knn-k/aarch64cacheline2
DanHeidinga Apr 8, 2020
443422e
Merge pull request #9134 from fjeremic/jitdump-improvements-9133
mpirvu Apr 8, 2020
fe8d9d5
Merge pull request #9091 from dnakamura/c99
DanHeidinga Apr 8, 2020
a33cd99
Merge pull request #9162 from JasonFengJ9/jninpe
gacholio Apr 8, 2020
db74e21
Merge pull request #9153 from ashu-mehra/scratchsegment_alloc_fix
mpirvu Apr 8, 2020
5705b09
ACMP support for value types
tajila Nov 12, 2019
0109183
Merge pull request #9176 from knn-k/aarch64playlist4
pshipton Apr 8, 2020
23b61bc
Merge pull request #9173 from AdamBrousseau/internal_prs
pshipton Apr 8, 2020
5ca16a9
Merge pull request #9158 from cathyzhyi/inliner
andrewcraik Apr 8, 2020
fe71875
Merge pull request #9101 from tajila/vt2
gacholio Apr 8, 2020
a76ec7b
pull from persistent_logging_implementation
XuechunHou Apr 8, 2020
4b13fdb
Merge branch 'master' of https://github.com/eclipse/openj9 into addre…
XuechunHou Apr 8, 2020
ef484e6
Merge pull request #9179 from Akira1Saitoh/aarch64JitCalleeSavedRegis…
knn-k Apr 8, 2020
5c46748
Merge pull request #9160 from a7ehuo/reduce-iscompiled
mpirvu Apr 8, 2020
9f1262a
Merge pull request #8191 from pshipton/enablejitserver2
mpirvu Apr 9, 2020
5cd0ba6
Enable DDR tests for AArch64 again
knn-k Mar 6, 2020
7c558d4
addressed feedback
XuechunHou Apr 9, 2020
c6b594b
Merge pull request #8764 from knn-k/aarch64playlist2
pshipton Apr 9, 2020
81dfd12
replaced time function from time.h with omr time function from j9.h
XuechunHou Apr 9, 2020
80b92f3
Merge branch 'master' of https://github.com/eclipse/openj9 into addre…
XuechunHou Apr 9, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions buildenv/jenkins/common/build.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -113,17 +113,17 @@ def checkout_pullrequest() {
// Cannot depend on a change from the same repo as the source repo
def SOURCE_REPO_MESSAGE
switch (params.ghprbGhRepository) {
case "eclipse/openj9-omr":
case ~/.*\/openj9-omr/:
omr_bool = true
OMR_PR = params.ghprbPullId
SOURCE_REPO_MESSAGE = "PullRequest source repo appears to be OpenJ9-OMR"
break
case "eclipse/openj9":
case ~/.*\/openj9/:
openj9_bool = true
OPENJ9_PR = params.ghprbPullId
SOURCE_REPO_MESSAGE = "PullRequest source repo appears to be OpenJ9"
break
case ~/ibmruntimes(.*)/:
case ~/.*openj9-openjdk-jdk.*/:
openjdk_bool = true
OPENJDK_PR = params.ghprbPullId
SOURCE_REPO_MESSAGE = "PullRequest source repo appears to be OpenJDK"
Expand Down Expand Up @@ -198,7 +198,7 @@ def checkout_pullrequest() {
checkout_pullrequest(OPENJDK_PR, "ibmruntimes/openj9-openjdk-jdk${JDK_REPO_SUFFIX}")
}

sh "bash ./get_source.sh ${EXTRA_GETSOURCE_OPTIONS}"
sh "bash ./get_source.sh ${EXTRA_GETSOURCE_OPTIONS} ${OPENJ9_REPO_OPTION} ${OPENJ9_BRANCH_OPTION} ${OPENJ9_SHA_OPTION} ${OMR_REPO_OPTION} ${OMR_BRANCH_OPTION} ${OMR_SHA_OPTION}"

// Checkout dependent PRs, if any were specified
if (openj9_bool) {
Expand All @@ -225,6 +225,8 @@ def checkout_pullrequest(ID, REPO) {
fetchRef("pull/${ID}/merge", "pr/${ID}/merge" )
checkoutRef ("pr/${ID}/merge")
} catch (e) {
// If merge ref doesn't exist, checkout PR base branch.
// Not going to fix this to work for internal PRs.
def JSONFILE = ""
def BASEREF = ""
def URL = "https://api.github.com/repos/${REPO}/pulls/${ID}"
Expand Down
7 changes: 6 additions & 1 deletion buildenv/jenkins/common/pipeline-functions.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -714,14 +714,19 @@ def setup_pull_request_single_comment(parsedComment) {
// Setup JDK VERSIONS
switch (ghprbGhRepository) {
case ~/.*openj9-openjdk-jdk.*/:
// <org>/openj9-openjdk-jdk<version>(-zos)?
def tmp_version = ghprbGhRepository.substring(ghprbGhRepository.indexOf('-jdk')+4)
if ("${tmp_version}" == "") {
tmp_version = 'next'
}
if (tmp_version.contains('-')) {
// Strip off '-zos'
tmp_version = tmp_version.substring(0, tmp_version.indexOf('-'))
}
RELEASES.add(tmp_version)
minCommentSize = 3
break
case "eclipse/openj9":
case ~/.*\/openj9(-omr)?/:
def tmpVersions = parsedComment[3+offset].tokenize(',')
tmpVersions.each { version ->
echo "VERSION:'${version}'"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,8 @@ SHORT_NAMES = ['all' : ['ppc64le_linux','ppc64le_linux_xl','s390x_linux','s390x_
'osxxl' : ['x86-64_mac_xl'],
'alinux64' : ['aarch64_linux'],
'alinux64xl' : ['aarch64_linux_xl'],
'alinux64largeheap' : ['aarch64_linux_xl']]
'alinux64largeheap' : ['aarch64_linux_xl'],
'zos' : ['s390x_zos']]

// Initialize all PARAMETERS (params) to Groovy Variables even if they are not passed
echo "Initialize all PARAMETERS..."
Expand Down Expand Up @@ -191,14 +192,14 @@ echo "SCM_REPO:'${SCM_REPO}'"
SCM_BRANCH = 'refs/heads/master'
if (params.SCM_BRANCH) {
SCM_BRANCH = params.SCM_BRANCH
} else if (ghprbPullId && ghprbGhRepository == 'eclipse/openj9') {
} else if (ghprbPullId && ghprbGhRepository ==~ /.*\/openj9/) {
SCM_BRANCH = sha1
}
echo "SCM_BRANCH:'${SCM_BRANCH}'"
SCM_REFSPEC = ''
if (params.SCM_REFSPEC) {
SCM_REFSPEC = params.SCM_REFSPEC
} else if (ghprbPullId && ghprbGhRepository == 'eclipse/openj9') {
} else if (ghprbPullId && ghprbGhRepository ==~ /.*\/openj9/) {
SCM_REFSPEC = "+refs/pull/${ghprbPullId}/merge:refs/remotes/origin/pr/${ghprbPullId}/merge"
}
echo "SCM_REFSPEC:'${SCM_REFSPEC}'"
Expand Down
37 changes: 7 additions & 30 deletions buildenv/jenkins/variables/defaults.yml
Original file line number Diff line number Diff line change
Expand Up @@ -183,8 +183,7 @@ ppc64le_linux:
node_labels:
build: 'ci.role.build && hw.arch.ppc64le && sw.os.ubuntu'
extra_configure_options:
8: '--enable-jitserver'
11: '--enable-jitserver'
all: '--enable-jitserver'
build_env:
vars: 'PATH+GCC7=/usr/local/gcc-7.5.0/bin LD_LIBRARY_PATH=/usr/local/gcc-7.5.0/lib64:$LD_LIBRARY_PATH'
#========================================#
Expand All @@ -199,10 +198,8 @@ ppc64le_linux_xl:
extends: ['ppc64le_linux', 'largeheap']
excluded_tests:
8:
- sanity.openjdk
- special.system
11:
- sanity.openjdk
- special.system
#========================================#
# Linux PPCLE 64bits Compressed Pointers /w JITSERVER
Expand Down Expand Up @@ -237,10 +234,7 @@ s390x_linux:
s390x_linux_xl:
extends: ['s390x_linux', 'largeheap']
excluded_tests:
8:
- sanity.openjdk
11:
- sanity.openjdk
11:
- special.system
#========================================#
# Linux S390 64bits Compressed Pointers /w JITSERVER
Expand All @@ -253,10 +247,10 @@ s390x_linux_jit:
ppc64_aix:
extends: ['debuginfo', 'freemarker', 'openjdk_reference_repo', 'openssl']
boot_jdk:
8: '/usr/java7'
11: '/usr/java11_64'
14: '/usr/java13_64'
next: '/usr/java13_64'
8: '/opt/java7'
11: '/opt/java11_64'
14: '/opt/java13_64'
next: '/opt/java13_64'
release:
all: 'aix-ppc64-server-release'
8: 'aix-ppc64-normal-server-release'
Expand All @@ -276,10 +270,6 @@ ppc64_aix:
14: 'PATH+XLC=/opt/IBM/xlC/16.1.0/bin:/opt/IBM/xlc/16.1.0/bin CC=xlclang CXX=xlclang++'
next: 'PATH+XLC=/opt/IBM/xlC/16.1.0/bin:/opt/IBM/xlc/16.1.0/bin CC=xlclang CXX=xlclang++'
excluded_tests:
8:
- sanity.openjdk
11:
- sanity.openjdk
- special.system
#========================================#
# Linux x86 64bits Compressed Pointers
Expand All @@ -298,8 +288,7 @@ x86-64_linux:
node_labels:
build: 'ci.role.build && hw.arch.x86 && sw.os.cent.6'
extra_configure_options:
8: '--enable-jitserver'
11: '--enable-jitserver'
all: '--enable-jitserver'
build_env:
cmd: 'source /home/jenkins/set_gcc7.5.0_env'
vars: 'OPENJ9_JAVA_OPTIONS=-Xdump:system+java:events=systhrow,filter=java/lang/ClassCastException,request=exclusive+prepwalk+preempt'
Expand All @@ -323,10 +312,7 @@ x86-64_linux_xl:
extends: ['x86-64_linux', 'largeheap']
excluded_tests:
8:
- sanity.openjdk
- special.system
11:
- sanity.openjdk
#========================================#
# Linux x86 64bits Compressed Pointers / Valhalla
#========================================#
Expand Down Expand Up @@ -375,10 +361,7 @@ x86-64_windows:
build_env:
vars: 'PATH+TOOLS=/cygdrive/c/openjdk/LLVM64/bin:/cygdrive/c/openjdk/nasm-2.13.03'
excluded_tests:
8:
- sanity.openjdk
11:
- sanity.openjdk
- special.system
#========================================#
# Windows x86 64bits Large Heap
Expand All @@ -405,10 +388,7 @@ x86-32_windows:
8: 'PATH+TOOLS=/cygdrive/c/openjdk/LLVM32/bin:/cygdrive/c/openjdk/nasm-2.13.03'
excluded_tests:
8:
- sanity.openjdk
- special.system
11:
- sanity.openjdk
#========================================#
# OSX x86 64bits Compressed Pointers
#========================================#
Expand Down Expand Up @@ -436,10 +416,7 @@ x86-64_mac:
all: 'OPENJ9_JAVA_OPTIONS=-Xdump:system+java:events=systhrow,filter=java/lang/ClassCastException,request=exclusive+prepwalk+preempt'
8: 'MACOSX_DEPLOYMENT_TARGET=10.9.0 SDKPATH=/Users/jenkins/Xcode4/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk'
excluded_tests:
8:
- sanity.openjdk
11:
- sanity.openjdk
- special.system
#========================================#
# OSX x86 64bits Large Heap
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -429,7 +429,10 @@ public class JITRegMap {
0x11, /* jit_r17 */
0x12, /* jit_r18 */
0x13, /* jit_r19 */
0x14 /* jit_r20 */
0x14, /* jit_r20 */
0x1D, /* jit_r29 */
0x1E, /* jit_r30 */
0x1F /* jit_r31 */
};

jitCalleeSavedRegisterList = new int[] {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2009, 2019 IBM Corp. and others
* Copyright (c) 2009, 2020 IBM Corp. and others
*
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which accompanies this
Expand Down Expand Up @@ -293,10 +293,6 @@ public FrameCallbackResult jitWalkStackFrames(WalkState walkState)
walkState.arg0EA = walkState.i2jState.a0();
returnSP = walkState.i2jState.returnSP();
walkState.previousFrameFlags = new UDATA(0);
if (returnSP.anyBitsIn(J9_STACK_FLAGS_ARGS_ALIGNED)) {
swPrintf(walkState, 2, "I2J args were copied for alignment");
walkState.previousFrameFlags = new UDATA(J9_STACK_FLAGS_JIT_ARGS_ALIGNED);
}
walkState.walkSP = returnSP.untag(3L);
swPrintf(walkState, 2, "I2J values: PC = {0}, A0 = {1}, walkSP = {2}, literals = {3}, JIT PC = {4}, pcAddress = {5}, decomp = {6}",
walkState.pc.getHexAddress(),
Expand Down
19 changes: 18 additions & 1 deletion doc/compiler/memory/MemoryManager.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!--
Copyright (c) 2017, 2018 IBM Corp. and others
Copyright (c) 2017, 2020 IBM Corp. and others

This program and the accompanying materials are made available under
the terms of the Eclipse Public License 2.0 which accompanies this
Expand Down Expand Up @@ -224,3 +224,20 @@ calling it `TR::PersistentSegmentProvider`, and have it use
`TR::PersistentAllocator`. The `TR::Region` would then be provided this
`TR::PersistentSegmentProvider` object.

The mechanism for limiting the memory usage during compilation can be summarized as:

Default size of system segments allocatd by `J9::SystemSegmentProvider` is 16 MB.
These system segments are then carved into smaller segments based on the size requested
which is rounded up to 64 KB. The cumulative memory usage of these system segments is limited
by the value of the option `scratchSpaceLimit`. When the scratch space limit is not a multiple
of system segment size, it is possible that the total memory allocated using system segments
would go beyond the scratch space limit. However, the logic in `J9::SystemSegmentProvider::request`
would ensures that the compiler does not touch memory beyond the scratch space limit.
So the physical memory usage due to scratch space stays with the limit specified.
If a request is made that would cause physical memory usage to go beyond the limit,
then `J9::SystemSegmentProvider::request` would throw `std::bad_alloc`.

When allocating a new system segment `J9::SegmentAllocator::allocate` also checks that the system
has enough free physical memory. This is done by verifying that the free physical memory is more
than the system segment size (=16 MB) plus an additional buffer, which is governed by the
option `safeReservePhysicalMemoryValue`. If this condition fails, then the compilation thread is suspended.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
package com.ibm.oti.reflect;

/*******************************************************************************
* Copyright (c) 2010, 2017 IBM Corp. and others
* Copyright (c) 2010, 2020 IBM Corp. and others
*
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which accompanies this
Expand All @@ -25,6 +25,9 @@

import java.lang.annotation.Annotation;
import java.nio.ByteBuffer;
import java.lang.reflect.Method;
import java.lang.reflect.Field;
import java.lang.reflect.Constructor;
/*[IF Sidecar19-SE]
import jdk.internal.reflect.ConstantPool;
/*[ELSE]*/
Expand All @@ -33,23 +36,23 @@

public class AnnotationParser {

public static Annotation[] parseAnnotations(java.lang.reflect.Field field) {
public static Annotation[] parseAnnotations(Field field) {
return parseAnnotations(getAnnotationsData(field), field.getDeclaringClass());
}

public static Annotation[] parseAnnotations(java.lang.reflect.Constructor constructor) {
public static Annotation[] parseAnnotations(Constructor constructor) {
return parseAnnotations(getAnnotationsData(constructor), constructor.getDeclaringClass());
}

public static Annotation[] parseAnnotations(java.lang.reflect.Method method) {
public static Annotation[] parseAnnotations(Method method) {
return parseAnnotations(getAnnotationsData(method), method.getDeclaringClass());
}

public static Annotation[][] parseParameterAnnotations(java.lang.reflect.Constructor constructor) {
public static Annotation[][] parseParameterAnnotations(Constructor constructor) {
return parseParameterAnnotations(getParameterAnnotationsData(constructor), constructor.getDeclaringClass(), constructor.getParameterTypes().length);
}

public static Annotation[][] parseParameterAnnotations(java.lang.reflect.Method method) {
public static Annotation[][] parseParameterAnnotations(Method method) {
return parseParameterAnnotations(getParameterAnnotationsData(method), method.getDeclaringClass(), method.getParameterTypes().length);
}

Expand All @@ -65,7 +68,7 @@ public static byte[] getAnnotationsData(java.lang.Class clazz) {
return result;
};

public static Object parseDefaultValue(java.lang.reflect.Method method) {
public static Object parseDefaultValue(Method method) {
byte[] elementValueData = getDefaultValueData(method);
if (elementValueData == null) return null;
ByteBuffer buf = ByteBuffer.wrap(elementValueData);
Expand Down Expand Up @@ -103,12 +106,12 @@ public static Annotation[] parseAnnotations(byte[] annotationsData, Class clazz)
clazz));
}

private static native byte[] getAnnotationsData(java.lang.reflect.Field field);
private static native byte[] getAnnotationsData(java.lang.reflect.Constructor constructor);
private static native byte[] getAnnotationsData(java.lang.reflect.Method method);
private static native byte[] getParameterAnnotationsData(java.lang.reflect.Constructor constructor);
private static native byte[] getParameterAnnotationsData(java.lang.reflect.Method method);
private static native byte[] getDefaultValueData(java.lang.reflect.Method method);
private static native byte[] getAnnotationsData(Field field);
private static native byte[] getAnnotationsData(Constructor constructor);
private static native byte[] getAnnotationsData(Method method);
private static native byte[] getParameterAnnotationsData(Constructor constructor);
private static native byte[] getParameterAnnotationsData(Method method);
private static native byte[] getDefaultValueData(Method method);
static native ConstantPool getConstantPool(Class clazz);
private static native byte[] getAnnotationsDataImpl(java.lang.Class clazz);

Expand Down

This file was deleted.

Loading