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