Skip to content

Commit

Permalink
Merge branch 'master' into alwaysPreTouch
Browse files Browse the repository at this point in the history
  • Loading branch information
pmhayward authored Oct 1, 2020
2 parents caa89d4 + ffcfabd commit 31d47ef
Show file tree
Hide file tree
Showing 2,262 changed files with 28,359 additions and 18,623 deletions.
4 changes: 3 additions & 1 deletion docs/allocator.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@ See [Garbage collection](gc.md) for more information about the GC.

The Allocator assigns areas of the Java heap for Java objects. Objects are considered as *live* when they have a chain of references to them that start from root references, such as those found in thread stacks. When that reference or pointer no longer exists, the objects are considered as *garbage*.

The Allocator is a component of memory management that is typically overshadowed by the task of garbage collection. However, it is a critical, if not small part, of the overall process. The Allocator manages pools of free memory and how the free memory is consumed. It is also responsible for allocating areas of storage in the Java heap for objects at the request of applications, class libraries, or the VM. Every allocation requires a *heap lock* to stop concurrent threads trying to access the same area of memory at the same time. When an object is allocated, the heap lock is released. If there is insufficient space to allocate the object, allocation fails, the heap lock is released, and the GC is called. If the GC manages to recover some space on the heap, the Allocator can resume operations. If the GC does not recover enough space, it returns an `OutOfMemoryError` exception.
The Allocator manages pools of free memory and how the free memory is consumed. It is also responsible for allocating areas of storage in the Java heap for objects at the request of applications, class libraries, or the VM.

Every allocation requires a *heap lock* to stop concurrent threads trying to access the same area of memory at the same time. When an object is allocated, the heap lock is released. If there is insufficient space to allocate the object, allocation fails, the heap lock is released, and the GC is called. If the GC manages to recover some space on the heap, the Allocator can resume operations. If the GC does not recover enough space, it returns an `OutOfMemoryError` exception.

Acquiring a heap lock for every allocation would be an intensive operation with a knock on impact to performance. To get around this problem, small objects are allocated to thread local heaps (TLH).

Expand Down
2 changes: 1 addition & 1 deletion docs/api-jdk11.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,6 @@
# OpenJ9 JDK 11 API documentation

<div id="api" data-role="content">
<iframe src="../api/jdk11/index.html?view=embed" title="API viewer" name="apiframe" allow="autoplay *; fullscreen *; encrypted-media *" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true" style="min-height:80vh; width: 100%;">
<iframe src="../api/jdk11/index.html?view=embed" title="API viewer" name="classFrame" allow="autoplay *; fullscreen *; encrypted-media *" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true" style="min-height:80vh; width: 100%;">
</iframe>
</div>
74 changes: 49 additions & 25 deletions docs/api/jdk11/allclasses-index.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@
<!--[if IE]>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
</head>
<body>
Expand Down Expand Up @@ -651,7 +650,7 @@ <h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
<tr id="i108" class="altColor">
<td class="colFirst"><a href="openj9.zosconditionhandling/com/ibm/le/conditionhandling/ConditionException.html" title="class in com.ibm.le.conditionhandling">ConditionException</a></td>
<th class="colLast" scope="row">
<div class="block">A ConditionException is used to represent a z/OS Language Environment condition in Java.</div>
<div class="block">A ConditionException is used to represent a z/OS Language Environment condition.</div>
</th>
</tr>
<tr id="i109" class="rowColor">
Expand Down Expand Up @@ -720,7 +719,8 @@ <h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
<tr id="i120" class="altColor">
<td class="colFirst"><a href="jdk.management/com/ibm/lang/management/CpuLoadCalculationConstants.html" title="interface in com.ibm.lang.management">CpuLoadCalculationConstants</a></td>
<th class="colLast" scope="row">
<div class="block">Constants used by getProcessCpuLoad() and getSystemCpuLoad() methods.</div>
<div class="block">Constants used by <code>com.ibm.lang.managementOperatingSystemMXBean#getProcessCpuLoad()</code> and
<a href="jdk.management/com/ibm/lang/management/OperatingSystemMXBean.html#getSystemCpuLoad()"><code>OperatingSystemMXBean.getSystemCpuLoad()</code></a> methods.</div>
</th>
</tr>
<tr id="i121" class="rowColor">
Expand Down Expand Up @@ -1246,7 +1246,7 @@ <h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
<tr id="i210" class="altColor">
<td class="colFirst"><a href="jdk.management/com/ibm/lang/management/GarbageCollectorMXBean.html" title="interface in com.ibm.lang.management">GarbageCollectorMXBean</a></td>
<th class="colLast" scope="row">
<div class="block">The IBM-specific interface for managing and monitoring the virtual machine's
<div class="block">The OpenJ9 extension interface for managing and monitoring the virtual machine's
garbage collection functionality.</div>
</th>
</tr>
Expand Down Expand Up @@ -1404,7 +1404,7 @@ <h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
<tr id="i236" class="altColor">
<td class="colFirst"><a href="jdk.management/com/sun/management/HotSpotDiagnosticMXBean.html" title="interface in com.sun.management">HotSpotDiagnosticMXBean</a></td>
<th class="colLast" scope="row">
<div class="block">Stub class to compile OpenJDK diagnostic management, see openj9.lang.management and com.ibm.lang.management packages instead.</div>
<div class="block">Stub to compile OpenJDK diagnostic management, see <a href="jdk.management/openj9/lang/management/package-summary.html"><code>openj9.lang.management</code></a> and <a href="jdk.management/com/ibm/lang/management/package-summary.html"><code>com.ibm.lang.management</code></a> packages instead.</div>
</th>
</tr>
<tr id="i237" class="rowColor">
Expand Down Expand Up @@ -2584,7 +2584,7 @@ <h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
<tr id="i468" class="altColor">
<td class="colFirst"><a href="jdk.management/com/ibm/lang/management/MemoryMXBean.html" title="interface in com.ibm.lang.management">MemoryMXBean</a></td>
<th class="colLast" scope="row">
<div class="block">The IBM-specific interface for monitoring the virtual machine's memory
<div class="block">The OpenJ9 extension interface for monitoring the virtual machine's memory
management system.</div>
</th>
</tr>
Expand Down Expand Up @@ -2802,7 +2802,20 @@ <h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
</tr>
<tr id="i515" class="rowColor">
<td class="colFirst"><a href="openj9.dtfj/com/ibm/jvm/j9/dump/indexsupport/NodeGPF.html" title="class in com.ibm.jvm.j9.dump.indexsupport">NodeGPF</a></td>
<th class="colLast" scope="row">&nbsp;</th>
<th class="colLast" scope="row">
<div class="block">Example:
&lt;gpf failingThread="0x806a600" nativeFailingThread="0xb7e286c0"&gt;
J9Generic_Signal_Number=00000004 Signal_Number=0000000b Error_Value=00000000 Signal_Code=00000001
Handler1=B7DADB8F Handler2=B7D7B0C6 InaccessibleAddress=FFFFFFFB
EDI=083639B0 ESI=09010101 EAX=96C5879E EBX=082EACDC
ECX=00000000 EDX=00000000
EIP=96C587A1 ES=C010007B DS=C010007B ESP=BFAB3634
EFlags=00210246 CS=00000073 SS=0000007B EBP=BFAB3634
Module=/tmp/rtj_jextract/jre/bin/libgptest.so
Module_base_address=96C58000 Symbol=Java_VMBench_GPTests_GPTest_gpWrite
Symbol_address=96C5879E
&lt;/gpf&gt;</div>
</th>
</tr>
<tr id="i516" class="altColor">
<td class="colFirst"><a href="openj9.dtfj/com/ibm/jvm/j9/dump/indexsupport/NodeHeader.html" title="class in com.ibm.jvm.j9.dump.indexsupport">NodeHeader</a></td>
Expand All @@ -2822,11 +2835,17 @@ <h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
</tr>
<tr id="i520" class="altColor">
<td class="colFirst"><a href="openj9.dtfj/com/ibm/jvm/j9/dump/indexsupport/NodeJ9Dump.html" title="class in com.ibm.jvm.j9.dump.indexsupport">NodeJ9Dump</a></td>
<th class="colLast" scope="row">&nbsp;</th>
<th class="colLast" scope="row">
<div class="block">Example:
&lt;j9dump endian="little" size="32" version="2.3" stamp="20060714_07189_lHdSMR" uuid="16994021750723430015" format="1.1" arch="x86" cpus="2" memory="1593016320" osname="Linux" osversion="2.6.15-1-686-smp" environ="0x80569c0"&gt;</div>
</th>
</tr>
<tr id="i521" class="rowColor">
<td class="colFirst"><a href="openj9.dtfj/com/ibm/jvm/j9/dump/indexsupport/NodeJavaVM.html" title="class in com.ibm.jvm.j9.dump.indexsupport">NodeJavaVM</a></td>
<th class="colLast" scope="row">&nbsp;</th>
<th class="colLast" scope="row">
<div class="block">Example:
&lt;javavm id="0x805fd90"&gt;</div>
</th>
</tr>
<tr id="i522" class="altColor">
<td class="colFirst"><a href="openj9.dtfj/com/ibm/jvm/j9/dump/indexsupport/NodeJavaVMInitArgs.html" title="class in com.ibm.jvm.j9.dump.indexsupport">NodeJavaVMInitArgs</a></td>
Expand Down Expand Up @@ -2968,7 +2987,7 @@ <h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
<tr id="i552" class="altColor">
<td class="colFirst"><a href="jdk.management/com/ibm/lang/management/OperatingSystemMXBean.html" title="interface in com.ibm.lang.management">OperatingSystemMXBean</a></td>
<th class="colLast" scope="row">
<div class="block">IBM specific platform management interface for the Operating System on which the Java Virtual Machine is running.</div>
<div class="block">OpenJ9 platform management extension interface for the Operating System on which the Java Virtual Machine is running.</div>
</th>
</tr>
<tr id="i553" class="rowColor">
Expand Down Expand Up @@ -3343,13 +3362,13 @@ <h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
<tr id="i625" class="rowColor">
<td class="colFirst"><a href="jdk.management/com/ibm/lang/management/RuntimeMXBean.html" title="interface in com.ibm.lang.management">RuntimeMXBean</a></td>
<th class="colLast" scope="row">
<div class="block">The IBM-specific interface for the runtime system of the virtual machine.</div>
<div class="block">The OpenJ9 extension interface for the runtime system of the virtual machine.</div>
</th>
</tr>
<tr id="i626" class="altColor">
<td class="colFirst"><a href="jdk.management/com/ibm/lang/management/RuntimeMXBean.VMIdleStates.html" title="enum in com.ibm.lang.management">RuntimeMXBean.VMIdleStates</a></td>
<th class="colLast" scope="row">
<div class="block">enum type defines the different states of the VM Idle</div>
<div class="block">Defines the different states of <a href="jdk.management/com/ibm/lang/management/RuntimeMXBean.html#getVMIdleState()"><code>RuntimeMXBean.getVMIdleState()</code></a>.</div>
</th>
</tr>
<tr id="i627" class="rowColor">
Expand Down Expand Up @@ -3466,7 +3485,8 @@ <h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
<tr id="i648" class="altColor">
<td class="colFirst"><a href="openj9.sharedclasses/com/ibm/oti/shared/SharedClassHelper.html" title="interface in com.ibm.oti.shared">SharedClassHelper</a></td>
<th class="colLast" scope="row">
<div class="block">The SharedClassHelper superinterface defines functions that are common to all class helpers.</div>
<div class="block">The SharedClassHelper superinterface defines functions that are common
to all class helpers.</div>
</th>
</tr>
<tr id="i649" class="rowColor">
Expand Down Expand Up @@ -3655,13 +3675,15 @@ <h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
<td class="colFirst"><a href="openj9.jvm/com/ibm/jvm/Stats.html" title="class in com.ibm.jvm">Stats</a></td>
<th class="colLast" scope="row">
<div class="block">This class is used provide the following java heap and system statistics:
committed heap memory
used heap memory
max heap memory
softmx heap memory
free physical memory
total physical memory
All this info is retrieved without any allocation of new objects</div>

committed heap memory
used heap memory
max heap memory
softmx heap memory
free physical memory
total physical memory

All this info is retrieved without any allocation of new objects.</div>
</th>
</tr>
<tr id="i684" class="altColor">
Expand Down Expand Up @@ -3717,7 +3739,7 @@ <h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
<tr id="i693" class="rowColor">
<td class="colFirst"><a href="jdk.management/com/ibm/lang/management/ThreadMXBean.html" title="interface in com.ibm.lang.management">ThreadMXBean</a></td>
<th class="colLast" scope="row">
<div class="block">Class represents IBM specific interface to the ThreadMXBean.</div>
<div class="block">The OpenJ9 extension interface to <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/ThreadMXBean.html?is-external=true" title="class or interface in java.lang.management" class="externalLink" target="_blank"><code>ThreadMXBean</code></a>.</div>
</th>
</tr>
<tr id="i694" class="altColor">
Expand Down Expand Up @@ -3803,7 +3825,9 @@ <h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
</tr>
<tr id="i710" class="altColor">
<td class="colFirst"><a href="openj9.dtfj/com/ibm/dtfj/java/j9/TraceBuffer.html" title="class in com.ibm.dtfj.java.j9">TraceBuffer</a></td>
<th class="colLast" scope="row">&nbsp;</th>
<th class="colLast" scope="row">
<div class="block">A container for the information that is described by the &lt;trace&gt; data in the XML index.</div>
</th>
</tr>
<tr id="i711" class="rowColor">
<td class="colFirst"><a href="openj9.traceformat/com/ibm/jvm/trace/format/api/TraceContext.html" title="class in com.ibm.jvm.trace.format.api">TraceContext</a></td>
Expand Down Expand Up @@ -3847,7 +3871,7 @@ <h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
<tr id="i718" class="altColor">
<td class="colFirst"><a href="openj9.traceformat/com/ibm/jvm/traceformat/TraceFormat.html" title="class in com.ibm.jvm.traceformat">TraceFormat</a></td>
<th class="colLast" scope="row">
<div class="block">!!!</div>
<div class="block">Support for converting binary trace files to a human readable form.</div>
</th>
</tr>
<tr id="i719" class="rowColor">
Expand Down Expand Up @@ -4092,7 +4116,7 @@ <h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small><a href="https://www.eclipse.org/openj9/" target="_blank">Eclipse OpenJ9 documentation.</a><br> To raise a bug report or suggest an improvement create an <a href="https://github.com/eclipse/openj9/issues" target="_blank">Eclipse Openj9 issue.</a><br> Copyright &copy; 1998, 2020, IBM Corp. and others.</small></p>
<p class="legalCopy"><small><a href="https://www.eclipse.org/openj9/" target="_blank">Eclipse OpenJ9 website.</a><br> To raise a bug report or suggest an improvement create an <a href="https://github.com/eclipse/openj9/issues" target="_blank">Eclipse Openj9 issue.</a><br> Copyright &copy; 1998, 2020, IBM Corp. and others.</small></p>
</footer>
</body>
</html>
3 changes: 1 addition & 2 deletions docs/api/jdk11/allclasses.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@
<!--[if IE]>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
</head>
<body>
Expand Down
22 changes: 14 additions & 8 deletions docs/api/jdk11/allpackages-index.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@
<!--[if IE]>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
</head>
<body>
Expand Down Expand Up @@ -316,7 +315,9 @@ <h1 title="All&amp;nbsp;Packages" class="title">All&nbsp;Packages</h1>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="openj9.jvm/com/ibm/jvm/package-summary.html">com.ibm.jvm</a></th>
<td class="colLast">&nbsp;</td>
<td class="colLast">
<div class="block">Classes to support creation of diagnostic dumps and tracing, as well as getting and setting -Xlog options.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="openj9.dtfjview/com/ibm/jvm/dtfjview/package-summary.html">com.ibm.jvm.dtfjview</a></th>
Expand Down Expand Up @@ -393,7 +394,7 @@ <h1 title="All&amp;nbsp;Packages" class="title">All&nbsp;Packages</h1>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="openj9.traceformat/com/ibm/jvm/trace/format/api/package-summary.html">com.ibm.jvm.trace.format.api</a></th>
<td class="colLast">
<div class="block">This API is used to process trace buffers generated by the IBM JVM.</div>
<div class="block">This API is used to process trace buffers generated by OpenJ9.</div>
</td>
</tr>
<tr class="rowColor">
Expand All @@ -412,11 +413,16 @@ <h1 title="All&amp;nbsp;Packages" class="title">All&nbsp;Packages</h1>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="openj9.zosconditionhandling/com/ibm/le/conditionhandling/package-summary.html">com.ibm.le.conditionhandling</a></th>
<td class="colLast">&nbsp;</td>
<td class="colLast">
<div class="block">Support for z/OS Language Environment condition handling.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="openj9.sharedclasses/com/ibm/oti/shared/package-summary.html">com.ibm.oti.shared</a></th>
<td class="colLast">&nbsp;</td>
<td class="colLast">
<div class="block">The OpenJ9 shared classes API, a persistent share which can contain classes, precompiled code (AOT),
JIT data, and other data used to improve start up performance and reduce memory footprint.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="openj9.sharedclasses/com/ibm/oti/shared/provider/package-summary.html">com.ibm.oti.shared.provider</a></th>
Expand All @@ -436,7 +442,7 @@ <h1 title="All&amp;nbsp;Packages" class="title">All&nbsp;Packages</h1>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="jdk.management/com/sun/management/package-summary.html">com.sun.management</a></th>
<td class="colLast">
<div class="block">These are the classes within this package modified by OpenJ9.</div>
<div class="block">Extensions of <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/package-summary.html?is-external=true" class="externalLink" target="_blank"><code>java.lang.management</code></a>.</div>
</td>
</tr>
<tr class="altColor">
Expand Down Expand Up @@ -506,7 +512,7 @@ <h1 title="All&amp;nbsp;Packages" class="title">All&nbsp;Packages</h1>
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small><a href="https://www.eclipse.org/openj9/" target="_blank">Eclipse OpenJ9 documentation.</a><br> To raise a bug report or suggest an improvement create an <a href="https://github.com/eclipse/openj9/issues" target="_blank">Eclipse Openj9 issue.</a><br> Copyright &copy; 1998, 2020, IBM Corp. and others.</small></p>
<p class="legalCopy"><small><a href="https://www.eclipse.org/openj9/" target="_blank">Eclipse OpenJ9 website.</a><br> To raise a bug report or suggest an improvement create an <a href="https://github.com/eclipse/openj9/issues" target="_blank">Eclipse Openj9 issue.</a><br> Copyright &copy; 1998, 2020, IBM Corp. and others.</small></p>
</footer>
</body>
</html>
Loading

0 comments on commit 31d47ef

Please sign in to comment.