xref: /netbsd-src/external/gpl3/binutils.old/dist/gprofng/common/gp-experiment.h (revision c42dbd0ed2e61fe6eda8590caa852ccf34719964)
1*c42dbd0eSchristos /* Copyright (C) 2021 Free Software Foundation, Inc.
2*c42dbd0eSchristos    Contributed by Oracle.
3*c42dbd0eSchristos 
4*c42dbd0eSchristos    This file is part of GNU Binutils.
5*c42dbd0eSchristos 
6*c42dbd0eSchristos    This program is free software; you can redistribute it and/or modify
7*c42dbd0eSchristos    it under the terms of the GNU General Public License as published by
8*c42dbd0eSchristos    the Free Software Foundation; either version 3, or (at your option)
9*c42dbd0eSchristos    any later version.
10*c42dbd0eSchristos 
11*c42dbd0eSchristos    This program is distributed in the hope that it will be useful,
12*c42dbd0eSchristos    but WITHOUT ANY WARRANTY; without even the implied warranty of
13*c42dbd0eSchristos    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14*c42dbd0eSchristos    GNU General Public License for more details.
15*c42dbd0eSchristos 
16*c42dbd0eSchristos    You should have received a copy of the GNU General Public License
17*c42dbd0eSchristos    along with this program; if not, write to the Free Software
18*c42dbd0eSchristos    Foundation, 51 Franklin Street - Fifth Floor, Boston,
19*c42dbd0eSchristos    MA 02110-1301, USA.  */
20*c42dbd0eSchristos 
21*c42dbd0eSchristos #ifndef _EXPERIMENT_H
22*c42dbd0eSchristos #define _EXPERIMENT_H
23*c42dbd0eSchristos 
24*c42dbd0eSchristos /* version numbers define experiment format */
25*c42dbd0eSchristos #define SUNPERF_VERNUM          12
26*c42dbd0eSchristos #define SUNPERF_VERNUM_MINOR    4
27*c42dbd0eSchristos 
28*c42dbd0eSchristos /* backward compatibility down to: */
29*c42dbd0eSchristos #define SUNPERF_VERNUM_LEAST    12
30*c42dbd0eSchristos 
31*c42dbd0eSchristos #include "Emsgnum.h" /* for COL_ERROR_*, etc. symbols */
32*c42dbd0eSchristos 
33*c42dbd0eSchristos #define SP_REMOTE_PROTOCOL_VERSION "12.4.1"
34*c42dbd0eSchristos 
35*c42dbd0eSchristos #define SP_GROUP_HEADER         "#analyzer experiment group"
36*c42dbd0eSchristos 
37*c42dbd0eSchristos /* Experiment name macro definitions */
38*c42dbd0eSchristos 
39*c42dbd0eSchristos /* for descendant experiments */
40*c42dbd0eSchristos #define DESCENDANT_EXPT_KEY     ".er/_"
41*c42dbd0eSchristos #define IS_DESC_EXPT(exptname)  (strstr(exptname,DESCENDANT_EXPT_KEY) != NULL)
42*c42dbd0eSchristos #define IS_FNDR_EXPT(exptname)  (strstr(exptname,DESCENDANT_EXPT_KEY) == NULL)
43*c42dbd0eSchristos 
44*c42dbd0eSchristos /* File name definitions */
45*c42dbd0eSchristos #define SP_ARCHIVES_DIR         "archives"
46*c42dbd0eSchristos #define SP_ARCHIVE_LOG_FILE     "archive.log"
47*c42dbd0eSchristos #define SP_LOG_FILE             "log.xml"
48*c42dbd0eSchristos #define SP_NOTES_FILE           "notes"
49*c42dbd0eSchristos #define SP_IFREQ_FILE           "ifreq"
50*c42dbd0eSchristos #define SP_MAP_FILE             "map.xml"
51*c42dbd0eSchristos #define SP_LABELS_FILE          "labels.xml"
52*c42dbd0eSchristos #define SP_DYNTEXT_FILE         "dyntext"
53*c42dbd0eSchristos #define SP_OVERVIEW_FILE        "overview"
54*c42dbd0eSchristos #define SP_PROFILE_FILE         "profile"
55*c42dbd0eSchristos #define SP_SYNCTRACE_FILE       "synctrace"
56*c42dbd0eSchristos #define SP_IOTRACE_FILE         "iotrace"
57*c42dbd0eSchristos #define SP_OMPTRACE_FILE        "omptrace"
58*c42dbd0eSchristos #define SP_MPVIEW_FILE          "mpview.dat3"
59*c42dbd0eSchristos #define SP_HWCNTR_FILE          "hwcounters"
60*c42dbd0eSchristos #define SP_HEAPTRACE_FILE       "heaptrace"
61*c42dbd0eSchristos #define SP_JCLASSES_FILE        "jclasses"
62*c42dbd0eSchristos #define SP_DYNAMIC_CLASSES      "jdynclasses"
63*c42dbd0eSchristos #define SP_RACETRACE_FILE       "dataraces"
64*c42dbd0eSchristos #define SP_DEADLOCK_FILE        "deadlocks"
65*c42dbd0eSchristos #define SP_FRINFO_FILE          "frameinfo"
66*c42dbd0eSchristos #define SP_WARN_FILE            "warnings.xml"
67*c42dbd0eSchristos 
68*c42dbd0eSchristos #define SP_LIBCOLLECTOR_NAME    "libgp-collector.so"
69*c42dbd0eSchristos #define SP_LIBAUDIT_NAME        "libcollect-ng.so"
70*c42dbd0eSchristos 
71*c42dbd0eSchristos /* XML tags */
72*c42dbd0eSchristos #define SP_TAG_COLLECTOR        "collector"
73*c42dbd0eSchristos #define SP_TAG_CPU              "cpu"
74*c42dbd0eSchristos #define SP_TAG_DATAPTR          "dataptr"
75*c42dbd0eSchristos #define SP_TAG_EVENT            "event"
76*c42dbd0eSchristos #define SP_TAG_EXPERIMENT       "experiment"
77*c42dbd0eSchristos #define SP_TAG_FIELD            "field"
78*c42dbd0eSchristos #define SP_TAG_PROCESS          "process"
79*c42dbd0eSchristos #define SP_TAG_PROFILE          "profile"
80*c42dbd0eSchristos #define SP_TAG_PROFDATA         "profdata"
81*c42dbd0eSchristos #define SP_TAG_PROFPCKT         "profpckt"
82*c42dbd0eSchristos #define SP_TAG_SETTING          "setting"
83*c42dbd0eSchristos #define SP_TAG_STATE            "state"
84*c42dbd0eSchristos #define SP_TAG_SYSTEM           "system"
85*c42dbd0eSchristos #define SP_TAG_POWERM           "powerm"
86*c42dbd0eSchristos #define SP_TAG_FREQUENCY        "frequency"
87*c42dbd0eSchristos #define SP_TAG_DTRACEFATAL      "dtracefatal"
88*c42dbd0eSchristos 
89*c42dbd0eSchristos /* records for log and loadobjects files */
90*c42dbd0eSchristos /* note that these are in alphabetical order */
91*c42dbd0eSchristos #define SP_JCMD_ARCH            "architecture"
92*c42dbd0eSchristos #define SP_JCMD_ARCHIVE         "archive_run"
93*c42dbd0eSchristos #define SP_JCMD_ARGLIST         "arglist"
94*c42dbd0eSchristos #define SP_JCMD_BLKSZ           "blksz"
95*c42dbd0eSchristos #define SP_JCMD_CERROR          "cerror"
96*c42dbd0eSchristos #define SP_JCMD_CLASS_LOAD      "class_load"
97*c42dbd0eSchristos #define SP_JCMD_CLASS_UNLOAD    "class_unload"
98*c42dbd0eSchristos #define SP_JCMD_COLLENV         "collenv"
99*c42dbd0eSchristos #define SP_JCMD_COMMENT         "comment"
100*c42dbd0eSchristos #define SP_JCMD_CPUID           "cpuid"
101*c42dbd0eSchristos #define SP_JCMD_CWARN           "cwarn"
102*c42dbd0eSchristos #define SP_JCMD_CWD             "cwd"
103*c42dbd0eSchristos #define SP_JCMD_CVERSION        "cversion"
104*c42dbd0eSchristos #define SP_JCMD_DATARACE        "datarace"
105*c42dbd0eSchristos #define SP_JCMD_DEADLOCK        "deadlock"
106*c42dbd0eSchristos #define SP_JCMD_DELAYSTART      "delay_start"
107*c42dbd0eSchristos #define SP_JCMD_DESC_START      "desc_start"
108*c42dbd0eSchristos #define SP_JCMD_DESC_STARTED    "desc_started"
109*c42dbd0eSchristos #define SP_JCMD_DVERSION        "dversion"
110*c42dbd0eSchristos #define SP_JCMD_EXEC_START      "exec_start"
111*c42dbd0eSchristos #define SP_JCMD_EXEC_ERROR      "exec_error"
112*c42dbd0eSchristos #define SP_JCMD_EXIT            "exit"
113*c42dbd0eSchristos #define SP_JCMD_EXPT_DURATION   "exp_duration"
114*c42dbd0eSchristos #define SP_JCMD_FAKETIME        "faketime"
115*c42dbd0eSchristos #define SP_JCMD_FN_LOAD         "fn_load"
116*c42dbd0eSchristos #define SP_JCMD_FN_UNLOAD       "fn_unload"
117*c42dbd0eSchristos #define SP_JCMD_FUN_MAP         "fun_map"
118*c42dbd0eSchristos #define SP_JCMD_FUN_UNMAP       "fun_unmap"
119*c42dbd0eSchristos #define SP_JCMD_HEAPTRACE       "heaptrace"
120*c42dbd0eSchristos #define SP_JCMD_HOSTNAME        "hostname"
121*c42dbd0eSchristos #define SP_JCMD_HWC_DEFAULT     "hwc_default"
122*c42dbd0eSchristos #define SP_JCMD_HW_COUNTER      "hwcounter"
123*c42dbd0eSchristos #define SP_JCMD_HW_SIM_CTR      "hwsimctr"
124*c42dbd0eSchristos #define SP_JCMD_IOTRACE         "iotrace"
125*c42dbd0eSchristos #define SP_JCMD_JCM_LOAD        "jcm_load"
126*c42dbd0eSchristos #define SP_JCMD_JCM_UNLOAD      "jcm_unload"
127*c42dbd0eSchristos #define SP_JCMD_JCM_MAP         "jcm_map"
128*c42dbd0eSchristos #define SP_JCMD_JCM_UNMAP       "jcm_unmap"
129*c42dbd0eSchristos #define SP_JCMD_JTHREND         "jthread_end"
130*c42dbd0eSchristos #define SP_JCMD_JTHRSTART       "jthread_start"
131*c42dbd0eSchristos #define SP_JCMD_GCEND           "gc_end"
132*c42dbd0eSchristos #define SP_JCMD_GCSTART         "gc_start"
133*c42dbd0eSchristos #define SP_JCMD_JVERSION        "jversion"
134*c42dbd0eSchristos //#define SP_JCMD_KPROFILE        "kprofile"    /* TBR */
135*c42dbd0eSchristos #define SP_JCMD_LIMIT           "limit"
136*c42dbd0eSchristos #define SP_JCMD_LINETRACE       "linetrace"
137*c42dbd0eSchristos #define SP_JCMD_LO_OPEN         "lo_open"
138*c42dbd0eSchristos #define SP_JCMD_LO_CLOSE        "lo_close"
139*c42dbd0eSchristos #define SP_JCMD_MOD_OPEN        "mod_open"
140*c42dbd0eSchristos #define SP_JCMD_MPIEXP          "MPIexperiment"
141*c42dbd0eSchristos #define SP_JCMD_MPI_NO_TRACE    "MPI_no_trace"
142*c42dbd0eSchristos #define SP_JCMD_MPIOMPVER       "mpi_openmpi_version"
143*c42dbd0eSchristos #define SP_JCMD_MPITRACEVER     "mpi_trace_version"
144*c42dbd0eSchristos #define SP_JCMD_MPIPP           "mpipp"
145*c42dbd0eSchristos #define SP_JCMD_MPIPPERR        "mpipp_err"
146*c42dbd0eSchristos #define SP_JCMD_MPIPPWARN       "mpipp_warn"
147*c42dbd0eSchristos #define SP_JCMD_MPISTATE        "mpistate"
148*c42dbd0eSchristos #define SP_JCMD_MPITRACE        "mpitrace" /* backwards compat only */
149*c42dbd0eSchristos #define SP_JCMD_MPVIEW          "mpview"
150*c42dbd0eSchristos #define SP_JCMD_MSGTRACE        "msgtrace"
151*c42dbd0eSchristos #define SP_JCMD_NOIDLE          "noidle"
152*c42dbd0eSchristos #define SP_JCMD_OMPTRACE        "omptrace"
153*c42dbd0eSchristos #define SP_JCMD_OS              "os"
154*c42dbd0eSchristos #define SP_JCMD_PAGESIZE        "pagesize"
155*c42dbd0eSchristos #define SP_JCMD_PAUSE           "pause"
156*c42dbd0eSchristos #define SP_JCMD_PAUSE_SIG       "pause_signal"
157*c42dbd0eSchristos #define SP_JCMD_PROFILE         "profile"
158*c42dbd0eSchristos #define SP_JCMD_RESUME          "resume"
159*c42dbd0eSchristos #define SP_JCMD_RUN             "run"
160*c42dbd0eSchristos #define SP_JCMD_SAMPLE          "sample"
161*c42dbd0eSchristos #define SP_JCMD_SAMPLE_PERIOD   "sample_period"
162*c42dbd0eSchristos #define SP_JCMD_SAMPLE_SIG      "sample_signal"
163*c42dbd0eSchristos #define SP_JCMD_SEGMENT_MAP     "seg_map"
164*c42dbd0eSchristos #define SP_JCMD_SEGMENT_UNMAP   "seg_unmap"
165*c42dbd0eSchristos #define SP_JCMD_SRCHPATH        "search_path"
166*c42dbd0eSchristos #define SP_JCMD_STACKBASE       "stackbase"
167*c42dbd0eSchristos #define SP_JCMD_SUNPERF         "sunperf"
168*c42dbd0eSchristos #define SP_JCMD_SYNCTRACE       "synctrace"
169*c42dbd0eSchristos #define SP_JCMD_TERMINATE       "terminate"
170*c42dbd0eSchristos #define SP_JCMD_THREAD_PAUSE    "thread_pause"
171*c42dbd0eSchristos #define SP_JCMD_THREAD_RESUME   "thread_resume"
172*c42dbd0eSchristos #define SP_JCMD_USERNAME        "username"
173*c42dbd0eSchristos #define SP_JCMD_VERSION         "version"
174*c42dbd0eSchristos #define SP_JCMD_WSIZE           "wsize"
175*c42dbd0eSchristos 
176*c42dbd0eSchristos /* strings naming memory-segments */
177*c42dbd0eSchristos #define SP_MAP_ANON             "Anon"
178*c42dbd0eSchristos #define SP_MAP_HEAP             "Heap"
179*c42dbd0eSchristos #define SP_MAP_STACK            "Stack"
180*c42dbd0eSchristos #define SP_MAP_SHMEM            "SHMid"
181*c42dbd0eSchristos #define SP_MAP_UNRESOLVABLE     "Unresolvable"
182*c42dbd0eSchristos 
183*c42dbd0eSchristos #define SP_UNKNOWN_NAME         "(unknown)"
184*c42dbd0eSchristos 
185*c42dbd0eSchristos #define MAX_STACKDEPTH 2048
186*c42dbd0eSchristos #endif /* _EXPERIMENT_H */
187