1 <?xml version="1.0" encoding="utf-8"?>
   2 <!--
   3  Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
   4  DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   5 
   6  This code is free software; you can redistribute it and/or modify it
   7  under the terms of the GNU General Public License version 2 only, as
   8  published by the Free Software Foundation.
   9 
  10  This code is distributed in the hope that it will be useful, but WITHOUT
  11  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  12  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  13  version 2 for more details (a copy is included in the LICENSE file that
  14  accompanied this code).
  15 
  16  You should have received a copy of the GNU General Public License version
  17  2 along with this work; if not, write to the Free Software Foundation,
  18  Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  19 
  20  Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  21  or visit www.oracle.com if you need additional information or have any
  22  questions.
  23 
  24 -->
  25 
  26 
  27 <!DOCTYPE events SYSTEM "trace.dtd">
  28 
  29 <events>
  30 
  31 <!--
  32 
  33 Events in the JVM are by default timed (it's more common)
  34 Perhaps a little strange. Might change.
  35 
  36 EVENTS
  37 
  38 Declard with the 'event' tag.
  39 
  40 <value fields> can be one or more of
  41    value            - a simple primitive or constant type value
  42    structvalue      - value is a sub-struct. This type must be previously defined
  43                       with 'struct'
  44 All these require you to declare type, field and label of the field. They also accept
  45 an optional description of the field. If the meaning of the field is not obvious
  46 from the label you should provide a description. If an event however is not actually
  47 meant for end-users, you should probably _not_ write descriptions at all, since you
  48 might just add more concepts the user has no notion of/interest in.
  49 
  50 Events should be modeled after what conceptual process you are expressing, _NOT_
  51 from whatever data structures you might use inside the JVM for expressing a process.
  52 
  53 
  54 STRUCT
  55 
  56 Declared with the 'struct' tag.
  57 
  58 Declares a structure type that can be used in other events.
  59 
  60 -->
  61 
  62   <event id="ThreadStart" path="java/thread_start" label="Java Thread Start"
  63          has_thread="true" is_instant="true">
  64     <value type="THREAD" field="thread" label="Java Thread"/>
  65   </event>
  66 
  67   <event id="ThreadEnd" path="java/thread_end" label="Java Thread End"
  68          has_thread="true" is_instant="true">
  69     <value type="THREAD" field="thread" label="Java Thread"/>
  70   </event>
  71 
  72   <event id="ThreadSleep" path="java/thread_sleep" label="Java Thread Sleep"
  73           has_thread="true" has_stacktrace="true" is_instant="false">
  74     <value type="MILLIS" field="time" label="Sleep Time"/>
  75   </event>
  76 
  77   <event id="ThreadPark" path="java/thread_park" label="Java Thread Park"
  78           has_thread="true" has_stacktrace="true" is_instant="false">
  79     <value type="CLASS" field="klass" label="Class Parked On"/>
  80     <value type="MILLIS" field="timeout" label="Park Timeout"/>
  81     <value type="ADDRESS" field="address" label="Address of Object Parked" relation="JAVA_MONITOR_ADDRESS"/>
  82   </event>
  83 
  84   <event id="JavaMonitorEnter" path="java/monitor_enter" label="Java Monitor Blocked"
  85           has_thread="true" has_stacktrace="true" is_instant="false">
  86     <value type="CLASS" field="klass" label="Monitor Class"/>
  87     <value type="THREAD" field="previousOwner" label="Previous Monitor Owner"/>
  88     <value type="ADDRESS" field="address" label="Monitor Address" relation="JAVA_MONITOR_ADDRESS"/>
  89   </event>
  90 
  91   <event id="JavaMonitorWait" path="java/monitor_wait" label="Java Monitor Wait" description="Waiting on a Java monitor"
  92           has_thread="true" has_stacktrace="true" is_instant="false">
  93     <value type="CLASS" field="klass" label="Monitor Class" description="Class of object waited on"/>
  94     <value type="THREAD" field="notifier" label="Notifier Thread" description="Notifying Thread"/>
  95     <value type="MILLIS" field="timeout" label="Timeout" description="Maximum wait time"/>
  96     <value type="BOOLEAN" field="timedOut" label="Timed Out" description="Wait has been timed out"/>
  97     <value type="ADDRESS" field="address" label="Monitor Address" description="Address of object waited on" relation="JAVA_MONITOR_ADDRESS"/>
  98   </event>
  99 
 100   <event id="JavaMonitorInflate" path="java/monitor_inflate" label="Java Monitor Inflated"
 101          has_thread="true" has_stacktrace="true" is_instant="false">
 102     <value type="CLASS" field="klass" label="Monitor Class"/>
 103     <value type="ADDRESS" field="address" label="Monitor Address" relation="JAVA_MONITOR_ADDRESS"/>
 104     <value type="INFLATECAUSE" field="cause" label="Cause" description="Cause of inflation"/>
 105   </event>
 106 
 107   <event id="ReservedStackActivation" path="java/reserved_stack_activation" label="Reserved Stack Activation" description="Activation of Reserved Stack Area caused by stack overflow with ReservedStackAccess annotated method in call stack"
 108           has_thread="true" has_stacktrace="true" is_instant="true">
 109       <value type="METHOD" field="method" label="Java Method"/>
 110   </event>
 111 
 112   <event id="ClassLoad" path="vm/class/load" label="Class Load"
 113           has_thread="true" has_stacktrace="true" is_instant="false">
 114     <value type="CLASS" field="loadedClass" label="Loaded Class"/>
 115     <value type="CLASS" field="definingClassLoader" label="Defining Class Loader"/>
 116     <value type="CLASS" field="initiatingClassLoader" label="Initiating Class Loader"/>
 117   </event>
 118 
 119   <event id="ClassUnload" path="vm/class/unload" label="Class Unload"
 120       has_thread="true" is_instant="true">
 121     <value type="CLASS" field="unloadedClass" label="Unloaded Class"/>
 122     <value type="CLASS" field="definingClassLoader" label="Defining Class Loader"/>
 123   </event>
 124 
 125   <event id="IntFlagChanged" path="vm/flag/int_changed" label="Int Flag Changed"
 126         is_instant="true">
 127     <value type="UTF8" field="name" label="Name" />
 128     <value type="INTEGER" field="old_value" label="Old Value" />
 129     <value type="INTEGER" field="new_value" label="New Value" />
 130     <value type="FLAGVALUEORIGIN" field="origin" label="Origin" />
 131   </event>
 132 
 133   <event id="UnsignedIntFlagChanged" path="vm/flag/uint_changed" label="Unsigned Int Flag Changed"
 134         is_instant="true">
 135     <value type="UTF8" field="name" label="Name" />
 136     <value type="UINT" field="old_value" label="Old Value" />
 137     <value type="UINT" field="new_value" label="New Value" />
 138     <value type="FLAGVALUEORIGIN" field="origin" label="Origin" />
 139   </event>
 140 
 141   <event id="LongFlagChanged" path="vm/flag/long_changed" label="Long Flag Changed"
 142         is_instant="true">
 143     <value type="UTF8" field="name" label="Name" />
 144     <value type="LONG" field="old_value" label="Old Value" />
 145     <value type="LONG" field="new_value" label="New Value" />
 146     <value type="FLAGVALUEORIGIN" field="origin" label="Origin" />
 147   </event>
 148 
 149   <event id="UnsignedLongFlagChanged" path="vm/flag/ulong_changed" label="Unsigned Long Flag Changed"
 150         is_instant="true">
 151     <value type="UTF8" field="name" label="Name" />
 152     <value type="ULONG" field="old_value" label="Old Value" />
 153     <value type="ULONG" field="new_value" label="New Value" />
 154     <value type="FLAGVALUEORIGIN" field="origin" label="Origin" />
 155   </event>
 156 
 157   <event id="DoubleFlagChanged" path="vm/flag/double_changed" label="Double Flag Changed"
 158        is_instant="true">
 159     <value type="UTF8" field="name" label="Name" />
 160     <value type="DOUBLE" field="old_value" label="Old Value" />
 161     <value type="DOUBLE" field="new_value" label="New Value" />
 162     <value type="FLAGVALUEORIGIN" field="origin" label="Origin" />
 163   </event>
 164 
 165   <event id="BooleanFlagChanged" path="vm/flag/boolean_changed" label="Boolean Flag Changed"
 166        is_instant="true">
 167     <value type="UTF8" field="name" label="Name" />
 168     <value type="BOOLEAN" field="old_value" label="Old Value" />
 169     <value type="BOOLEAN" field="new_value" label="New Value" />
 170     <value type="FLAGVALUEORIGIN" field="origin" label="Origin" />
 171   </event>
 172 
 173   <event id="StringFlagChanged" path="vm/flag/string_changed" label="String Flag Changed"
 174        is_instant="true">
 175     <value type="UTF8" field="name" label="Name" />
 176     <value type="UTF8" field="old_value" label="Old Value" />
 177     <value type="UTF8" field="new_value" label="New Value" />
 178     <value type="FLAGVALUEORIGIN" field="origin" label="Origin" />
 179   </event>
 180 
 181   <struct id="VirtualSpace">
 182     <value type="ADDRESS" field="start" label="Start Address" description="Start address of the virtual space" />
 183     <value type="ADDRESS" field="committedEnd" label="Committed End Address" description="End address of the committed memory for the virtual space" />
 184     <value type="BYTES64" field="committedSize" label="Committed Size" description="Size of the committed memory for the virtual space" />
 185     <value type="ADDRESS" field="reservedEnd" label="Reserved End Address" description="End address of the reserved memory for the virtual space" />
 186     <value type="BYTES64" field="reservedSize" label="Reserved Size" description="Size of the reserved memory for the virtual space" />
 187   </struct>
 188 
 189   <struct id="ObjectSpace">
 190     <value type="ADDRESS" field="start" label="Start Address" description="Start address of the space" />
 191     <value type="ADDRESS" field="end" label="End Address" description="End address of the space" />
 192     <value type="BYTES64" field="used" label="Used" description="Bytes allocated by objects in the space" />
 193     <value type="BYTES64" field="size" label="Size" description="Size of the space" />
 194   </struct>
 195 
 196   <event id="GCHeapSummary" path="vm/gc/heap/summary" label="Heap Summary" is_instant="true">
 197     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
 198     <value type="GCWHEN" field="when" label="When" />
 199     <structvalue type="VirtualSpace" field="heapSpace" label="Heap Space"/>
 200     <value type="BYTES64" field="heapUsed" label="Heap Used" description="Bytes allocated by objects in the heap"/>
 201   </event>
 202 
 203   <struct id="MetaspaceSizes">
 204     <value type="BYTES64" field="committed" label="Committed" description="Committed memory for this space" />
 205     <value type="BYTES64" field="used" label="Used" description="Bytes allocated by objects in the space" />
 206     <value type="BYTES64" field="reserved" label="Reserved" description="Reserved memory for this space" />
 207   </struct>
 208 
 209   <event id="MetaspaceSummary" path="vm/gc/heap/metaspace_summary" label="Metaspace Summary" is_instant="true">
 210     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
 211     <value type="GCWHEN" field="when" label="When" />
 212     <value type="BYTES64" field="gcThreshold" label="GC Threshold" />
 213     <structvalue type="MetaspaceSizes" field="metaspace" label="Total"/>
 214     <structvalue type="MetaspaceSizes" field="dataSpace" label="Data"/>
 215     <structvalue type="MetaspaceSizes" field="classSpace" label="Class"/>
 216   </event>
 217 
 218   <event id="MetaspaceGCThreshold" path="vm/gc/metaspace/gc_threshold" label="Metaspace GC Threshold" is_instant="true">
 219     <value type="BYTES64" field="oldValue" label="Old Value" />
 220     <value type="BYTES64" field="newValue" label="New Value" />
 221     <value type="GCTHRESHOLDUPDATER" field="updater" label="Updater" />
 222   </event>
 223 
 224   <event id="MetaspaceAllocationFailure" path="vm/gc/metaspace/allocation_failure" label="Metaspace Allocation Failure" is_instant="true" has_stacktrace="true">
 225     <value type="CLASS" field="classLoader" label="Class Loader" />
 226     <value type="BOOLEAN" field="anonymousClassLoader" label="Anonymous Class Loader" />
 227     <value type="BYTES64" field="size" label="Size" />
 228     <value type="METADATATYPE" field="metadataType" label="Metadata Type" />
 229     <value type="METASPACEOBJTYPE" field="metaspaceObjectType" label="Metaspace Object Type" />
 230   </event>
 231 
 232   <event id="MetaspaceOOM" path="vm/gc/metaspace/out_of_memory" label="Metaspace Out of Memory" is_instant="true" has_stacktrace="true">
 233     <value type="CLASS" field="classLoader" label="Class Loader" />
 234     <value type="BOOLEAN" field="anonymousClassLoader" label="Anonymous Class Loader" />
 235     <value type="BYTES64" field="size" label="Size" />
 236     <value type="METADATATYPE" field="metadataType" label="Metadata Type" />
 237     <value type="METASPACEOBJTYPE" field="metaspaceObjectType" label="Metaspace Object Type" />
 238   </event>
 239 
 240   <event id="MetaspaceChunkFreeListSummary" path="vm/gc/metaspace/chunk_free_list_summary" label="Metaspace Chunk Free List Summary" is_instant="true">
 241     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
 242     <value type="GCWHEN" field="when" label="When" />
 243     <value type="METADATATYPE" field="metadataType" label="Metadata Type" />
 244     <value type="ULONG" field="specializedChunks" label="Specialized Chunks" />
 245     <value type="BYTES64" field="specializedChunksTotalSize" label="Specialized Chunks Total Size" />
 246     <value type="ULONG" field="smallChunks" label="Small Chunks" />
 247     <value type="BYTES64" field="smallChunksTotalSize" label="Small Chunks Total Size" />
 248     <value type="ULONG" field="mediumChunks" label="Medium Chunks" />
 249     <value type="BYTES64" field="mediumChunksTotalSize" label="Medium Chunks Total Size" />
 250     <value type="ULONG" field="humongousChunks" label="Humongous Chunks" />
 251     <value type="BYTES64" field="humongousChunksTotalSize" label="Humongous Chunks Total Size" />
 252   </event>
 253 
 254   <event id="PSHeapSummary" path="vm/gc/heap/ps_summary" label="Parallel Scavenge Heap Summary" is_instant="true">
 255     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
 256     <value type="GCWHEN" field="when" label="When" />
 257 
 258     <structvalue type="VirtualSpace" field="oldSpace" label="Old Space"/>
 259     <structvalue type="ObjectSpace" field="oldObjectSpace" label="Old Object Space"/>
 260 
 261     <structvalue type="VirtualSpace" field="youngSpace" label="Young Space"/>
 262     <structvalue type="ObjectSpace" field="edenSpace" label="Eden Space"/>
 263     <structvalue type="ObjectSpace" field="fromSpace" label="From Space"/>
 264     <structvalue type="ObjectSpace" field="toSpace" label="To Space"/>
 265   </event>
 266 
 267   <event id="G1HeapSummary" path="vm/gc/heap/g1_summary" label="G1 Heap Summary" is_instant="true">
 268     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
 269     <value type="GCWHEN" field="when" label="When" />
 270 
 271     <value type="BYTES64" field="edenUsedSize" label="Eden Used Size" />
 272     <value type="BYTES64" field="edenTotalSize" label="Eden Total Size" />
 273     <value type="BYTES64" field="survivorUsedSize" label="Survivor Used Size" />
 274     <value type="UINT" field="numberOfRegions" label="Number of Regions" />
 275   </event>
 276 
 277   <event id="GCGarbageCollection" path="vm/gc/collector/garbage_collection" label="Garbage Collection"
 278          description="Garbage collection performed by the JVM">
 279     <value type="UINT" field="gcId"  label="GC ID" relation="GC_ID" />
 280     <value type="GCNAME" field="name" label="Name" description="The name of the Garbage Collector" />
 281     <value type="GCCAUSE" field="cause" label="Cause" description="The reason for triggering this Garbage Collection" />
 282     <value type="TICKSPAN" field="sumOfPauses" label="Sum of Pauses" description="Sum of all the times in which Java execution was paused during the garbage collection" />
 283     <value type="TICKSPAN" field="longestPause" label="Longest Pause" description="Longest individual pause during the garbage collection" />
 284   </event>
 285 
 286   <event id="GCParallelOld" path="vm/gc/collector/parold_garbage_collection" label="Parallel Old Garbage Collection"
 287          description="Extra information specific to Parallel Old Garbage Collections">
 288     <value type="UINT" field="gcId"  label="GC ID" relation="GC_ID" />
 289     <value type="ADDRESS" field="densePrefix" label="Dense Prefix" description="The address of the dense prefix, used when compacting" />
 290   </event>
 291 
 292   <event id="GCYoungGarbageCollection" path="vm/gc/collector/young_garbage_collection" label="Young Garbage Collection"
 293          description="Extra information specific to Young Garbage Collections">
 294     <value type="UINT" field="gcId"  label="GC ID" relation="GC_ID" />
 295     <value type="UINT" field="tenuringThreshold" label="Tenuring Threshold" />
 296   </event>
 297 
 298   <event id="GCOldGarbageCollection" path="vm/gc/collector/old_garbage_collection" label="Old Garbage Collection"
 299          description="Extra information specific to Old Garbage Collections">
 300     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
 301   </event>
 302 
 303   <event id="GCG1GarbageCollection" path="vm/gc/collector/g1_garbage_collection" label="G1 Garbage Collection"
 304          description="Extra information specific to G1 Garbage Collections">
 305     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
 306     <value type="G1YCTYPE" field="type" label="Type" />
 307   </event>
 308 
 309   <event id="GCG1MMU" path="vm/gc/detailed/g1_mmu_info" label="G1 MMU Information" is_instant="true">
 310     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
 311     <value type="DOUBLE" field="timeSlice" label="Time slice used to calculate MMU"/>
 312     <value type="DOUBLE" field="gcTime" label="Time spent on GC during last time slice"/>
 313     <value type="DOUBLE" field="maxGcTime" label="Max time allowed to be spent on GC during last time slice"/>
 314   </event>
 315 
 316   <event id="EvacuationInfo" path="vm/gc/detailed/evacuation_info" label="Evacuation Information" is_instant="true">
 317     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
 318     <value type="UINT" field="cSetRegions" label="Collection Set Regions"/>
 319     <value type="BYTES64" field="cSetUsedBefore" label="Collection Set Before" description="Memory usage before GC in the collection set regions"/>
 320     <value type="BYTES64" field="cSetUsedAfter" label="Collection Set After" description="Memory usage after GC in the collection set regions"/>
 321     <value type="UINT" field="allocationRegions" label="Allocation Regions" description="Regions chosen as allocation regions during evacuation (includes survivors and old space regions)"/>
 322     <value type="BYTES64" field="allocRegionsUsedBefore" label="Alloc Regions Before" description="Memory usage before GC in allocation regions"/>
 323     <value type="BYTES64" field="allocRegionsUsedAfter" label="Alloc Regions After" description="Memory usage after GC in allocation regions"/>
 324     <value type="BYTES64" field="bytesCopied" label="Bytes Copied"/>
 325     <value type="UINT" field="regionsFreed" label="Regions Freed"/>
 326   </event>
 327 
 328   <event id="GCReferenceStatistics" path="vm/gc/reference/statistics"
 329          label="GC Reference Statistics" is_instant="true"
 330          description="Total count of processed references during GC">
 331     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
 332     <value type="REFERENCETYPE" field="type" label="Type" />
 333     <value type="ULONG" field="count" label="Total Count" />
 334   </event>
 335 
 336   <struct id="CopyFailed">
 337     <value type="ULONG" field="objectCount" label="Object Count"/>
 338     <value type="BYTES64" field="firstSize" label="First Failed Object Size"/>
 339     <value type="BYTES64" field="smallestSize" label="Smallest Failed Object Size"/>
 340     <value type="BYTES64" field="totalSize" label="Total Object Size"/>
 341   </struct>
 342 
 343   <event id="ObjectCountAfterGC" path="vm/gc/detailed/object_count_after_gc" is_instant="true" label="Object Count after GC">
 344     <value type="UINT" field="gcId"  label="GC ID" relation="GC_ID" />
 345     <value type="CLASS" field="class" label="Class" />
 346     <value type="LONG" field="count" label="Count" />
 347     <value type="BYTES64" field="totalSize" label="Total Size" />
 348   </event>
 349 
 350   <struct id="G1EvacStats">
 351     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
 352     <value type="BYTES64" field="allocated" label="Allocated" description="Total memory allocated by PLABs"/>
 353     <value type="BYTES64" field="wasted" label="Wasted" description="Total memory wasted within PLABs due to alignment or refill"/>
 354     <value type="BYTES64" field="used" label="Used" description="Total memory occupied by objects within PLABs"/>
 355     <value type="BYTES64" field="undoWaste" label="Undo Wasted" description="Total memory wasted due to allocation undo within PLABs"/>
 356     <value type="BYTES64" field="regionEndWaste" label="Region End Wasted" description="Total memory wasted at the end of regions due to refill"/>
 357     <value type="UINT" field="regionsRefilled" label="Region Refills" description="Total memory wasted at the end of regions due to refill"/>
 358     <value type="BYTES64" field="directAllocated" label="Allocated (direct)" description="Total memory allocated using direct allocation outside of PLABs"/>
 359     <value type="BYTES64" field="failureUsed" label="Used (failure)" description="Total memory occupied by objects in regions where evacuation failed"/>
 360     <value type="BYTES64" field="failureWaste" label="Wasted (failure)" description="Total memory left unused in regions where evacuation failed"/>
 361   </struct>
 362 
 363   <event id="GCG1EvacuationYoungStatistics" path="vm/gc/detailed/g1_evac_young_stats" label="G1 Evacuation Statistics for Young" is_instant="true"
 364          description="Memory related evacuation statistics during GC for the young generation">
 365     <structvalue type="G1EvacStats" field="stats" label="Evacuation statistics"/>
 366   </event>
 367 
 368   <event id="GCG1EvacuationOldStatistics" path="vm/gc/detailed/g1_evac_old_stats" label="G1 Evacuation Memory Statistics for Old" is_instant="true"
 369          description="Memory related evacuation statistics during GC for the old generation">
 370     <structvalue type="G1EvacStats" field="stats" label="Evacuation statistics"/>
 371   </event>
 372 
 373   <event id="GCG1BasicIHOP" path="vm/gc/detailed/g1_basic_ihop_status" label="G1 Basic IHOP statistics" is_instant="true"
 374          description="Basic statistics related to current IHOP calculation">
 375     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
 376     <value type="BYTES64" field="threshold" label="Current IHOP threshold" description="Current IHOP threshold in bytes"/>
 377     <value type="PERCENTAGE" field="thresholdPercentage" label="Current IHOP threshold in percent" description="Current IHOP threshold in percent of old gen"/>
 378     <value type="BYTES64" field="targetOccupancy" label="Target occupancy" description="Target old gen occupancy to reach at the start of mixed GC in bytes"/>
 379     <value type="BYTES64" field="currentOccupancy" label="Current occupancy" description="Current old gen occupancy in bytes"/>
 380     <value type="BYTES64" field="lastAllocationSize" label="Last mutator allocation size" description="Mutator allocation during mutator operation since last GC in bytes"/>
 381     <value type="DOUBLE" field="lastAllocationDuration" label="Last mutator operation duration" description="Time the mutator ran since last GC in seconds"/>
 382     <value type="DOUBLE" field="lastAllocationRate" label="Last mutator allocation rate" description="Allocation rate of the mutator since last GC in bytes/second"/>
 383     <value type="DOUBLE" field="lastMarkingLength" label="Last mutator time from initial mark to first mixed GC" description="Last time from the end of the last initial mark to the first mixed GC in seconds"/>
 384   </event>
 385 
 386   <event id="GCG1AdaptiveIHOP" path="vm/gc/detailed/g1_adaptive_ihop_status" label="G1 Adaptive IHOP statistics" is_instant="true"
 387          description="Statistics related to current adaptive IHOP calculation">
 388     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
 389     <value type="BYTES64" field="threshold" label="Current IHOP threshold" description="Current IHOP threshold in bytes"/>
 390     <value type="PERCENTAGE" field="thresholdPercentage" label="Current IHOP threshold in percent" description="Current IHOP threshold in percent of the internal target occupancy"/>
 391     <value type="BYTES64" field="internalTargetOccupancy" label="Target occupancy" description="Internal target old gen occupancy to reach at the start of mixed GC in bytes"/>
 392     <value type="BYTES64" field="currentOccupancy" label="Current occupancy" description="Current old gen occupancy in bytes"/>
 393     <value type="BYTES64" field="additionalBufferSize" label="Additional buffer size" description="Additional buffer size in bytes"/>
 394     <value type="DOUBLE" field="predictedAllocationRate" label="Predicted mutator allocation rate" description="Current predicted allocation rate for the mutator in bytes/second"/>
 395     <value type="DOUBLE" field="predictedMarkingLength" label="Predicted time from initial mark to first mixed GC" description="Current predicted time from the end of the last initial mark to the first mixed GC in seconds"/>
 396     <value type="BOOLEAN" field="predictionActive" label="Prediction active" description="Indicates whether the adaptive IHOP prediction is active"/>
 397   </event>
 398 
 399   <!-- Promotion events, Supported GCs are Parallel Scavange, G1 and CMS with Parallel New. -->
 400   <event id="PromoteObjectInNewPLAB" path="vm/gc/detailed/object_promotion_in_new_PLAB" label="Promotion in new PLAB"
 401       description="Object survived scavenge and was copied to a new Promotion Local Allocation Buffer (PLAB). Supported GCs are Parallel Scavange, G1 and CMS with Parallel New. Due to promotion being done in parallel an object might be reported multiple times as the GC threads race to copy all objects." 
 402          has_thread="true" has_stacktrace="false" is_instant="true">
 403     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID" description="ID of GC during which the object was promoted"/>
 404     <value type="CLASS" field="class" label="Class" description="Class of promoted object"/>
 405     <value type="BYTES64" field="objectSize" label="Object Size" description="Size of promoted object"/>
 406     <value type="UINT" field="tenuringAge" label="Object Tenuring Age" description="Tenuring age of a surviving object before being copied. The tenuring age of an object is a value between 0-15 and is incremented each scavange the object survives. Newly allocated objects have tenuring age 0."/>
 407     <value type="BOOLEAN" field="tenured" label="Tenured" description="True if object was promoted to Old space, otherwise the object was aged and copied to a Survivor space"/>
 408     <value type="BYTES64" field="plabSize" label="PLAB Size" description="Size of the allocated PLAB to which the object was copied"/>
 409   </event>
 410   
 411   <event id="PromoteObjectOutsidePLAB" path="vm/gc/detailed/object_promotion_outside_PLAB" label="Promotion outside PLAB"
 412       description="Object survived scavenge and was copied directly to the heap. Supported GCs are Parallel Scavange, G1 and CMS with Parallel New. Due to promotion being done in parallel an object might be reported multiple times as the GC threads race to copy all objects." 
 413          has_thread="true" has_stacktrace="false" is_instant="true">
 414     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID" description="ID of GC during which the object was promoted"/>
 415     <value type="CLASS" field="class" label="Class" description="Class of promoted object"/>
 416     <value type="BYTES64" field="objectSize" label="Object Size" description="Size of promoted object"/>
 417     <value type="UINT" field="tenuringAge" label="Object Tenuring Age" description="Tenuring age of a surviving object before being copied. The tenuring age of an object is a value between 0-15 and is incremented each scavange the object survives. Newly allocated objects have tenuring age 0."/>
 418     <value type="BOOLEAN" field="tenured" label="Tenured" description="True if object was promoted to Old space, otherwise the object was aged and copied to a Survivor space"/>
 419   </event>
 420 
 421   <event id="PromotionFailed" path="vm/gc/detailed/promotion_failed" label="Promotion Failed" is_instant="true"
 422          description="Promotion of an object failed">
 423     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
 424     <structvalue type="CopyFailed" field="data" label="Data"/>
 425     <value type="THREAD" field="thread" label="Running thread"/>
 426   </event>
 427 
 428   <event id="EvacuationFailed" path="vm/gc/detailed/evacuation_failed" label="Evacuation Failed" is_instant="true"
 429          description="Evacuation of an object failed">
 430     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
 431     <structvalue type="CopyFailed" field="data" label="Data"/>
 432   </event>
 433 
 434   <event id="ConcurrentModeFailure" path="vm/gc/detailed/concurrent_mode_failure" label="Concurrent Mode Failure"
 435          is_instant="true" description="Concurrent Mode failed">
 436     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
 437   </event>
 438 
 439   <event id="GCPhasePause" path="vm/gc/phases/pause" label="GC Phase Pause" has_thread="true">
 440     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
 441     <value type="UTF8" field="name" label="Name" />
 442   </event>
 443 
 444   <event id="GCPhasePauseLevel1" path="vm/gc/phases/pause_level_1" label="GC Phase Pause Level 1" has_thread="true">
 445     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
 446     <value type="UTF8" field="name" label="Name" />
 447   </event>
 448 
 449   <event id="GCPhasePauseLevel2" path="vm/gc/phases/pause_level_2" label="GC Phase Pause Level 2" has_thread="true">
 450     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
 451     <value type="UTF8" field="name" label="Name" />
 452   </event>
 453 
 454   <event id="GCPhasePauseLevel3" path="vm/gc/phases/pause_level_3" label="GC Phase Pause Level 3" has_thread="true">
 455     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
 456     <value type="UTF8" field="name" label="Name" />
 457   </event>
 458 
 459   <event id="GCPhaseConcurrent" path="vm/gc/phases/concurrent" label="GC Phase Concurrent" has_thread="true">
 460     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
 461     <value type="UTF8" field="name" label="Name" />
 462   </event>
 463 
 464   <event id="AllocationRequiringGC" path="vm/gc/detailed/allocation_requiring_gc" label="Allocation Requiring GC"
 465          has_thread="true" has_stacktrace="true"  is_instant="true">
 466     <value type="UINT" field="gcId"  label="Pending GC ID" relation="GC_ID" />
 467     <value type="BYTES64" field="size" label="Allocation Size" />
 468   </event>
 469 
 470   <event id="TenuringDistribution" path="vm/gc/detailed/tenuring_distribution" label="Tenuring Distribution"
 471          is_instant="true">
 472     <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
 473     <value type="UINT" field="age" label="Age" />
 474     <value type="BYTES64" field="size" label="Size" />
 475   </event>
 476 
 477   <event id="G1HeapRegionTypeChange" path="vm/gc/detailed/g1_heap_region_type_change" label="G1 Heap Region Type Change"
 478          description="Information about a G1 heap region type change." is_instant="true">
 479     <value type="UINT" field="index" label="Index" />
 480     <value type="G1HEAPREGIONTYPE" field="from" label="From Type" />
 481     <value type="G1HEAPREGIONTYPE" field="to" label="To Type" />
 482     <value type="ADDRESS" field="start" label="Start" />
 483     <value type="BYTES64" field="used" label="Used" />
 484     <value type="UINT" field="allocContext" label="Allocation Context" />
 485   </event>
 486 
 487   <event id="VMError" path="vm/runtime/vm_error" label="VM Error"
 488          description="VM shutdown due to an error" has_stacktrace="true" has_thread="true">
 489     <value type="BOOLEAN" field="out_of_java_memory" label="Java Out Of Memory"/>
 490   </event>
 491 
 492   <!-- Compiler events -->
 493 
 494   <event id="Compilation" path="vm/compiler/compilation" label="Compilation"
 495        has_thread="true" is_requestable="false" is_constant="false">
 496     <value type="METHOD" field="method" label="Java Method"/>
 497     <value type="UINT" field="compileID" label="Compilation ID" relation="COMP_ID"/>
 498     <value type="USHORT" field="compileLevel" label="Compilation Level"/>
 499     <value type="BOOLEAN" field="succeded" label="Succeeded"/>
 500     <value type="BOOLEAN" field="isOsr" label="On Stack Replacement"/>
 501     <value type="BYTES" field="codeSize" label="Compiled Code Size"/>
 502     <value type="BYTES" field="inlinedBytes" label="Inlined Code Size"/>
 503   </event>
 504 
 505   <event id="CompilerPhase" path="vm/compiler/phase" label="Compiler Phase"
 506           has_thread="true" is_requestable="false" is_constant="false">
 507     <value type="COMPILERPHASETYPE" field="phase" label="Compile Phase"/>
 508     <value type="UINT" field="compileID" label="Compilation ID" relation="COMP_ID"/>
 509     <value type="USHORT" field="phaseLevel" label="Phase Level"/>
 510   </event>
 511 
 512   <event id="CompilerFailure" path="vm/compiler/failure" label="Compilation Failure"
 513           has_thread="true" is_requestable="false" is_constant="false" is_instant="true">
 514     <value type="UTF8" field="failure" label="Message"/>
 515     <value type="UINT" field="compileID" label="Compilation ID" relation="COMP_ID"/>
 516   </event>
 517 
 518   <struct id="CiMethod">
 519     <value type="UTF8" field="class" label="Class name"/>
 520     <value type="UTF8" field="name" label="Method name"/>
 521     <value type="UTF8" field="signature" label="Method signature"/>
 522   </struct>
 523 
 524   <event id="CompilerInlining" path="vm/compiler/optimization/inlining" label="Method Inlining"
 525        has_thread="true" is_instant="true">
 526     <value type="UINT" field="compileID" label="Compilation ID" relation="COMP_ID"/>
 527     <value type="METHOD" field="caller" label="Caller Method"/>
 528     <structvalue type="CiMethod" field="callee" label="Callee Method"/>
 529     <value type="BOOLEAN" field="succeeded" label="Succeeded"/>
 530     <value type="UTF8" field="message" label="Message"/>
 531     <value type="INTEGER" field="bci" label="Byte Code Index"/>
 532   </event>
 533 
 534   <!-- Code sweeper events -->
 535 
 536   <event id="SweepCodeCache" path="vm/code_sweeper/sweep" label="Sweep Code Cache"
 537      has_thread="true" is_requestable="false" is_constant="false">
 538     <value type="INTEGER" field="sweepIndex" label="Sweep Index" relation="SWEEP_ID"/>
 539     <value type="UINT" field="sweptCount" label="Methods Swept"/>
 540     <value type="UINT" field="flushedCount" label="Methods Flushed"/>
 541     <value type="UINT" field="zombifiedCount" label="Methods Zombified"/>
 542   </event>
 543 
 544   <!-- Code cache events -->
 545 
 546   <event id="CodeCacheFull" path="vm/code_cache/full" label="Code Cache Full"
 547        has_thread="true" is_requestable="false" is_constant="false" is_instant="true">
 548     <value type="CODEBLOBTYPE" field="codeBlobType" label="Code Heap"/>
 549     <value type="ADDRESS" field="startAddress" label="Start Address"/>
 550     <value type="ADDRESS" field="commitedTopAddress" label="Commited Top"/>
 551     <value type="ADDRESS" field="reservedTopAddress" label="Reserved Top"/>
 552     <value type="INTEGER" field="entryCount" label="Entries"/>
 553     <value type="INTEGER" field="methodCount" label="Methods"/>
 554     <value type="INTEGER" field="adaptorCount" label="Adaptors"/>
 555     <value type="BYTES64" field="unallocatedCapacity" label="Unallocated"/>
 556     <value type="INTEGER" field="fullCount" label="Full Count"/>
 557   </event>
 558 
 559   <event id="SafepointBegin" path="vm/runtime/safepoint/begin" label="Safepoint Begin"
 560          description="Safepointing begin" has_thread="true">
 561     <value type="INTEGER" field="safepointId" label="Safepoint ID" relation="SAFEPOINT_ID"/>
 562     <value type="INTEGER" field="totalThreadCount" label="Total Threads" description="The total number of threads at the start of safe point"/>
 563     <value type="INTEGER" field="jniCriticalThreadCount" label="JNI Critical Threads" description="The number of threads in JNI critical sections"/>
 564   </event>
 565 
 566   <event id="SafepointStateSync" path="vm/runtime/safepoint/statesync" label="Safepoint State Sync"
 567          description="Synchronize run state of threads" has_thread="true">
 568     <value type="INTEGER" field="safepointId" label="Safepoint ID" relation="SAFEPOINT_ID"/>
 569     <value type="INTEGER" field="initialThreadCount" label="Initial Threads" description="The number of threads running at the beginning of state check"/>
 570     <value type="INTEGER" field="runningThreadCount" label="Running Threads" description="The number of threads still running"/>
 571     <value type="INTEGER" field="iterations" label="Iterations" description="Number of state check iterations"/>
 572   </event>
 573 
 574   <event id="SafepointWaitBlocked" path="vm/runtime/safepoint/waitblocked" label="Safepoint Wait Blocked"
 575          description="Safepointing begin waiting on running threads to block" has_thread="true">
 576     <value type="INTEGER" field="safepointId" label="Safepoint ID" relation="SAFEPOINT_ID"/>
 577     <value type="INTEGER" field="runningThreadCount" label="Running Threads" description="The number running of threads wait for safe point"/>
 578   </event>
 579 
 580   <event id="SafepointCleanup" path="vm/runtime/safepoint/cleanup" label="Safepoint Cleanup"
 581          description="Safepointing begin running cleanup tasks" has_thread="true">
 582     <value type="INTEGER" field="safepointId" label="Safepoint ID" relation="SAFEPOINT_ID"/>
 583   </event>
 584 
 585   <event id="SafepointCleanupTask" path="vm/runtime/safepoint/cleanuptask" label="Safepoint Cleanup Task"
 586          description="Safepointing begin running cleanup tasks" has_thread="true">
 587     <value type="INTEGER" field="safepointId" label="Safepoint ID" relation="SAFEPOINT_ID"/>
 588     <value type="UTF8" field="name" label="Task Name" description="The task name"/>
 589   </event>
 590 
 591   <event id="SafepointEnd" path="vm/runtime/safepoint/end" label="Safepoint End"
 592          description="Safepointing end" has_thread="true">
 593     <value type="INTEGER" field="safepointId" label="Safepoint ID" relation="SAFEPOINT_ID"/>
 594   </event>
 595 
 596   <event id="ExecuteVMOperation" path="vm/runtime/execute_vm_operation" label="VM Operation"
 597       description="Execution of a VM Operation" has_thread="true">
 598     <value type="VMOPERATIONTYPE" field="operation" label="Operation" />
 599     <value type="BOOLEAN" field="safepoint" label="At Safepoint" description="If the operation occured at a safepoint."/>
 600     <value type="BOOLEAN" field="blocking" label="Caller Blocked" description="If the calling thread was blocked until the operation was complete."/>
 601     <value type="THREAD" field="caller" label="Caller" transition="FROM" description="Thread requesting operation. If non-blocking, will be set to 0 indicating thread is unknown."/>
 602     <value type="INTEGER" field="safepointId" label="Safepoint ID" description="The safepoint (if any) under which this operation was completed." relation="SAFEPOINT_ID"/>
 603   </event>
 604 
 605   <!-- Allocation events -->
 606   <event id="AllocObjectInNewTLAB" path="java/object_alloc_in_new_TLAB" label="Allocation in new TLAB"
 607       description="Allocation in new Thread Local Allocation Buffer" has_thread="true" has_stacktrace="true" is_instant="true">
 608     <value type="CLASS" field="class" label="Class" description="Class of allocated object"/>
 609     <value type="BYTES64" field="allocationSize" label="Allocation Size"/>
 610     <value type="BYTES64" field="tlabSize" label="TLAB Size"/>
 611   </event>
 612 
 613   <event id="AllocObjectOutsideTLAB" path="java/object_alloc_outside_TLAB" label="Allocation outside TLAB"
 614       description="Allocation outside Thread Local Allocation Buffers" has_thread="true" has_stacktrace="true" is_instant="true">
 615     <value type="CLASS" field="class" label="Class" description="Class of allocated object"/>
 616     <value type="BYTES64" field="allocationSize" label="Allocation Size"/>
 617   </event>
 618 </events>