src/share/vm/trace/tracetypes.xml

Wed, 27 Apr 2016 01:25:04 +0800

author
aoqi
date
Wed, 27 Apr 2016 01:25:04 +0800
changeset 0
f90c822e73f8
child 6876
710a3c8b516e
permissions
-rw-r--r--

Initial load
http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/
changeset: 6782:28b50d07f6f8
tag: jdk8u25-b17

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <!--
     3  Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
     4  DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     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.
    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).
    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.
    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 -->
    25 <!DOCTYPE types SYSTEM "trace.dtd">
    27 <!--
    29 Content types (complex) should create constant pool data
    30 in the recording.
    31 Currently at least, there is _NO_ verification that whatever
    32 writer you have is actually writing correctly. So BE CAREFUL!
    34 Declared with the 'content_type' tag.
    36 <type> is the ID type, i.e the integer type that resolves this. Most often
    37 U4 or U8, but for example really small number constants, like GCTYPE uses U1.
    39 <content-type> is where it gets interesting. 'builtin_type' means we're
    40 defining how we resolve one of the trace built-in types (Class, Thread etc),
    41 jvm_type means defining a new one for our own use.
    43 Example: (GcMode)
    45 <content_type id="GCMode" hr_name="GC mode" type="U1" jvm_type="GCMODE">
    46   <value type="UTF8" field="desc" description="Description"/>
    47 </content_type>
    49 This creates a content type CONTENT_TYPE_GCMODE
    50 The field type referencing it is u1 (U1), and the constant pool struct has one field, the name.
    52 Before we can use it we need also define a primary field data type:
    54 <primary_type symbol="GCMODE" datatype="U1" contenttype="NONE"
    55               type="u8" sizeop="sizeof(u1)"/>
    57 Now we can use the content + data type in declaring event fields.
    58  -->
    60  <types>
    61   <content_types>
    62     <content_type id="Thread" hr_name="Thread"
    63                   type="U4" builtin_type="OSTHREAD">
    64       <value type="UTF8" field="name" label="Thread name"/>
    65     </content_type>
    67     <content_type id="VMThread" hr_name="VM Thread"
    68                   type="U8" jvm_type="VMTHREAD">
    69       <value type="OSTHREAD" field="thread" label="VM Thread"/>
    70     </content_type>
    72     <content_type id="JavaThread" hr_name="Java thread"
    73                   type="U8" builtin_type="JAVALANGTHREAD">
    74       <value type="OSTHREAD" field="thread" label="OS Thread ID"/>
    75       <value type="BYTES64" field="allocInsideTla"
    76              label="Allocated bytes inside TLAs"/>
    77       <value type="BYTES64" field="allocOutsideTla"
    78              label="Allocated bytes outside TLAs"/>
    79       <value type="THREADGROUP" field="group" label="Java Thread Group"/>
    80     </content_type>
    82     <content_type id="ThreadGroup" hr_name="Thread group"
    83                   type="U4" jvm_type="THREADGROUP">
    84       <value type="THREADGROUP" field="parent" label="Parent"/>
    85       <value type="UTF8" field="name" label="Name"/>
    86     </content_type>
    88     <content_type id="Class" hr_name="Java class"
    89                   type="U8" builtin_type="CLASS">
    90       <value type="CLASS" field="loaderClass" label="ClassLoader"/>
    91       <value type="SYMBOL" field="name" label="Name"/>
    92       <value type="SHORT" field="modifiers" label="Access modifiers"/>
    93     </content_type>
    95     <content_type id="Method" hr_name="Java method"
    96                   type="U8" jvm_type="METHOD">
    97       <value type="CLASS" field="class" label="Class"/>
    98       <value type="SYMBOL" field="name" label="Name"/>
    99       <value type="SYMBOL" field="signature" label="Signature"/>
   100       <value type="SHORT" field="modifiers" label="Access modifiers"/>
   101     </content_type>
   103     <content_type id="UTFConstant" hr_name="UTF constant"
   104                   type="U8" jvm_type="SYMBOL">
   105       <value type="UTF8" field="utf8" label="UTF8 data"/>
   106     </content_type>
   108     <content_type id="ThreadState" hr_name="Java Thread State"
   109                   type="U2" jvm_type="THREADSTATE">
   110       <value type="UTF8" field="name" label="Name"/>
   111     </content_type>
   113     <content_type id="GCName" hr_name="GC Name"
   114                   type="U1" jvm_type="GCNAME">
   115       <value type="UTF8" field="name" label="name" />
   116     </content_type>
   118     <content_type id="GCCause" hr_name="GC Cause"
   119                   type="U2" jvm_type="GCCAUSE">
   120       <value type="UTF8" field="cause" label="cause" />
   121     </content_type>
   123     <content_type id="GCWhen" hr_name="GC When"
   124                   type="U1" jvm_type="GCWHEN">
   125       <value type="UTF8" field="when" label="when" />
   126     </content_type>
   128     <content_type id="G1YCType" hr_name="G1 YC Type"
   129                   type="U1" jvm_type="G1YCTYPE">
   130       <value type="UTF8" field="type" label="type" />
   131     </content_type>
   133     <content_type id="GCThresholdUpdater" hr_name="GC Treshold Updater"
   134                   type="U1" jvm_type="GCTHRESHOLDUPDATER">
   135       <value type="UTF8" field="updater" label="updater" />
   136     </content_type>
   138     <content_type id="ReferenceType" hr_name="Reference Type"
   139                   type="U1" jvm_type="REFERENCETYPE">
   140       <value type="UTF8" field="type" label="type" />
   141     </content_type>
   143     <content_type id="MetadataType" hr_name="Metadata Type"
   144                   type="U1" jvm_type="METADATATYPE">
   145       <value type="UTF8" field="type" label="type" />
   146     </content_type>
   148     <content_type id="MetaspaceObjectType" hr_name="Metaspace Object Type"
   149                   type="U1" jvm_type="METASPACEOBJTYPE">
   150       <value type="UTF8" field="type" label="type" />
   151     </content_type>
   153     <content_type id="NARROW_OOP_MODE" hr_name="Narrow Oop Mode"
   154                   type="U1" jvm_type="NARROWOOPMODE">
   155       <value type="UTF8" field="mode" label="mode" />
   156     </content_type>
   158     <content_type id="VMOperationType" hr_name="VM Operation Type"
   159                   type="U2" jvm_type="VMOPERATIONTYPE">
   160       <value type="UTF8" field="type" label="type" />
   161     </content_type>
   163     <content_type id="CompilerPhaseType" hr_name="Compiler Phase Type"
   164                   type="U1" jvm_type="COMPILERPHASETYPE">
   165       <value type="UTF8" field="phase" label="phase" />
   166     </content_type>
   168     <content_type id="FlagValueOrigin" hr_name="Flag Value Origin"
   169                   type="U1" jvm_type="FLAGVALUEORIGIN">
   170       <value type="UTF8" field="origin" label="origin" />
   171     </content_type>
   173   </content_types>
   176   <primary_types>
   177     <!--
   178       - primary_type takes these attributes:
   179       -   symbol      INTEGER, LONG etc
   180       -   datatype    The trace datatype, see enum DataType
   181       -   contenttype Either resolved content type or the semantic meaning
   182       -   type        The actual type as used in structures etc
   183       -   sizeop      A function/macro that can be applied on a single
   184       -               struct value of type "type" and yield the factual byte
   185       -               size we need to write.  The % is replaced by the value
   186       -->
   188     <!-- SIGNED 64bit -->
   189     <primary_type symbol="LONG" datatype="LONG" contenttype="NONE"
   190                   type="s8" sizeop="sizeof(s8)"/>
   192     <!-- UNSIGNED 64bit -->
   193     <primary_type symbol="ULONG" datatype="U8" contenttype="NONE"
   194                   type="u8" sizeop="sizeof(u8)"/>
   196     <!-- SIGNED 32bit -->
   197     <primary_type symbol="INTEGER" datatype="INT" contenttype="NONE"
   198                   type="s4" sizeop="sizeof(s4)"/>
   200     <!-- UNSIGNED 32bit -->
   201     <primary_type symbol="UINT" datatype="U4" contenttype="NONE"
   202                   type="unsigned" sizeop="sizeof(unsigned)"/>
   204     <!-- UNSIGNED 16bit -->
   205     <primary_type symbol="USHORT" datatype="U2" contenttype="NONE"
   206                   type="u2" sizeop="sizeof(u2)"/>
   208     <!--  SIGNED 16bit -->
   209     <primary_type symbol="SHORT" datatype="SHORT" contenttype="NONE"
   210                   type="s2" sizeop="sizeof(s2)"/>
   212     <!--  SIGNED 8bit -->
   213     <primary_type symbol="BYTE" datatype="BYTE" contenttype="NONE"
   214                   type="s1" sizeop="sizeof(s1)"/>
   216     <!--  UNSIGNED 8bit -->
   217     <primary_type symbol="UBYTE" datatype="U1" contenttype="NONE"
   218                   type="u1" sizeop="sizeof(u1)"/>
   220     <!--  float 32bit -->
   221     <primary_type symbol="FLOAT" datatype="FLOAT" contenttype="NONE"
   222                   type="float" sizeop="sizeof(float)"/>
   224     <!--  float 64bit -->
   225     <primary_type symbol="DOUBLE" datatype="DOUBLE" contenttype="NONE"
   226                   type="double" sizeop="sizeof(double)"/>
   228     <!-- boolean type (1-byte) -->
   229     <primary_type symbol="BOOLEAN" datatype="BOOLEAN" contenttype="NONE"
   230                   type="bool" sizeop="1"/>
   232     <!-- 32-bit unsigned integer, SEMANTIC value BYTES -->
   233     <primary_type symbol="BYTES" datatype="U4" contenttype="BYTES"
   234                   type="u4" sizeop="sizeof(u4)"/>
   236     <primary_type symbol="IOBYTES" datatype="U4" contenttype="BYTES"
   237                   type="u4" sizeop="sizeof(u4)"/>
   239     <!-- 64-bit unsigned integer, SEMANTIC value BYTES -->
   240     <primary_type symbol="BYTES64" datatype="U8" contenttype="BYTES"
   241                   type="u8" sizeop="sizeof(u8)"/>
   243     <!-- 64-bit unsigned integer, SEMANTIC value ABSOLUTE MILLISECONDS -->
   244     <primary_type symbol="EPOCHMILLIS" datatype="LONG" contenttype="EPOCHMILLIS"
   245                   type="s8" sizeop="sizeof(s8)"/>
   247     <!-- 64-bit unsigned integer, SEMANTIC value RELATIVE MILLISECONDS -->
   248     <primary_type symbol="MILLIS" datatype="LONG" contenttype="MILLIS"
   249                   type="s8" sizeop="sizeof(s8)"/>
   251     <!-- 64-bit unsigned integer, SEMANTIC value RELATIVE NANOSECONDS -->
   252     <primary_type symbol="NANOS" datatype="LONG" contenttype="NANOS"
   253                   type="s8" sizeop="sizeof(s8)"/>
   255     <!-- 64-bit signed integer, SEMANTIC value TICKS -->
   256     <primary_type symbol="TICKS" datatype="LONG" contenttype="TICKS"
   257                   type="Ticks" sizeop="sizeof(s8)"/>
   259     <!-- 64-bit signed integer, SEMANTIC value TICKS duration -->
   260     <primary_type symbol="TICKSPAN" datatype="LONG" contenttype="TICKS"
   261                   type="Tickspan" sizeop="sizeof(s8)"/>
   263     <!-- 64-bit unsigned integer, SEMANTIC value ADDRESS (mem loc) -->
   264     <primary_type symbol="ADDRESS" datatype="U8" contenttype="ADDRESS"
   265                   type="u8" sizeop="sizeof(u8)"/>
   267     <!-- 32-bit float, SEMANTIC value PERCENTAGE (0.0-1.0) -->
   268     <primary_type symbol="PERCENT" datatype="FLOAT" contenttype="PERCENTAGE"
   269                   type="float" sizeop="sizeof(float)"/>
   271     <!-- UTF-encoded string, max length 64k -->
   272     <primary_type symbol="UTF8" datatype="UTF8" contenttype="NONE"
   273                   type="const char *" sizeop="sizeof_utf(%)"/>
   275     <!-- UTF-16 encoded (Unicode) string, max length maxjuint -->
   276     <primary_type symbol="STRING" datatype="STRING" contenttype="NONE"
   277                   type="TraceUnicodeString*" sizeop="sizeof_unicode(%)"/>
   279     <!-- Symbol* constant. Note that this may currently ONLY be used by
   280           classes, methods fields.  This restriction might be lifted. -->
   281     <primary_type symbol="SYMBOL" datatype="U8" contenttype="SYMBOL"
   282                   type="Symbol *" sizeop="sizeof(u8)"/>
   284     <!-- A Klass *. The actual class is marked as "used" and will
   285          eventually be written into the recording constant pool -->
   286     <primary_type symbol="CLASS" datatype="U8" contenttype="CLASS"
   287                   type="Klass *" sizeop="sizeof(u8)"/>
   289     <!-- A Method *. The method is marked as "used" and will eventually be
   290          written into the recording constant pool. -->
   291     <primary_type symbol="METHOD" datatype="U8" contenttype="METHOD"
   292                   type="Method *" sizeop="sizeof(u8)"/>
   294     <!--  The type for stacktraces in the recording. Shoudl not be used by
   295           events explicitly -->
   296     <primary_type symbol="STACKTRACE" datatype="U8" contenttype="STACKTRACE"
   297                   type="u8" sizeop="sizeof(u8)"/>
   299     <!-- OS Thread ID -->
   300     <primary_type symbol="OSTHREAD" datatype="U4" contenttype="OSTHREAD"
   301                   type="u4" sizeop="sizeof(u4)"/>
   303     <!-- VM Thread ID Note: changed from U2 to U8 for hotspot -->
   304     <primary_type symbol="VMTHREAD" datatype="U8" contenttype="VMTHREAD"
   305                   type="u8"  sizeop="sizeof(u8)"/>
   307     <!-- Java Thread ID -->
   308     <primary_type symbol="JAVALANGTHREAD" datatype="LONG"
   309                   contenttype="JAVALANGTHREAD" type="s8"
   310                   sizeop="sizeof(s8)"/>
   312     <!-- Threadgroup THIS TYPE MAY NOT BE USED IN NORMAL EVENTS (ATM). Only
   313           for thread constant pool // KK TODO: u8 should be ObjectP -->
   314     <primary_type symbol="THREADGROUP" datatype="U4" contenttype="THREADGROUP"
   315                   type="u8"
   316                   sizeop="sizeof(u4)"/>
   318     <!-- FRAMETYPE enum -->
   319     <primary_type symbol="FRAMETYPE" datatype="U1" contenttype="FRAMETYPE"
   320                   type="u1" sizeop="sizeof(u1)"/>
   322     <!-- THREADSTATE enum -->
   323     <primary_type symbol="THREADSTATE" datatype="U2" contenttype="THREADSTATE"
   324                   type="u2" sizeop="sizeof(u2)"/>
   326     <!-- GCName -->
   327     <primary_type symbol="GCNAME" datatype="U1" contenttype="GCNAME"
   328                   type="u1" sizeop="sizeof(u1)" />
   330     <!-- GCCAUSE -->
   331     <primary_type symbol="GCCAUSE" datatype="U2" contenttype="GCCAUSE"
   332                   type="u2" sizeop="sizeof(u2)" />
   334     <!-- GCWHEN -->
   335     <primary_type symbol="GCWHEN" datatype="U1" contenttype="GCWHEN"
   336                   type="u1" sizeop="sizeof(u1)" />
   338     <!-- G1YCType -->
   339     <primary_type symbol="G1YCTYPE" datatype="U1" contenttype="G1YCTYPE"
   340                   type="u1" sizeop="sizeof(u1)" />
   342     <!-- GCTHRESHOLDUPDATER -->
   343     <primary_type symbol="GCTHRESHOLDUPDATER" datatype="U1" contenttype="GCTHRESHOLDUPDATER"
   344                   type="u1" sizeop="sizeof(u1)" />
   346     <!-- REFERENCETYPE -->
   347     <primary_type symbol="REFERENCETYPE" datatype="U1"
   348                   contenttype="REFERENCETYPE" type="u1" sizeop="sizeof(u1)" />
   350     <!-- METADATATYPE -->
   351     <primary_type symbol="METADATATYPE" datatype="U1"
   352                   contenttype="METADATATYPE" type="u1" sizeop="sizeof(u1)" />
   354     <!-- METADATAOBJTYPE -->
   355     <primary_type symbol="METASPACEOBJTYPE" datatype="U1"
   356                   contenttype="METASPACEOBJTYPE" type="u1" sizeop="sizeof(u1)" />
   358     <!-- NARROWOOPMODE -->
   359     <primary_type symbol="NARROWOOPMODE" datatype="U1"
   360                   contenttype="NARROWOOPMODE" type="u1" sizeop="sizeof(u1)" />
   362     <!-- COMPILERPHASETYPE -->
   363     <primary_type symbol="COMPILERPHASETYPE" datatype="U1"
   364                   contenttype="COMPILERPHASETYPE" type="u1" sizeop="sizeof(u1)" />
   366     <!-- VMOPERATIONTYPE -->
   367     <primary_type symbol="VMOPERATIONTYPE" datatype="U2" contenttype="VMOPERATIONTYPE"
   368                   type="u2" sizeop="sizeof(u2)" />
   370     <!-- FLAGVALUEORIGIN -->
   371     <primary_type symbol="FLAGVALUEORIGIN" datatype="U1"
   372                   contenttype="FLAGVALUEORIGIN" type="u1" sizeop="sizeof(u1)" />
   374   </primary_types>
   375 </types>

mercurial