6.0 (revision 14673)
Typedefs | Enumerations
SCOREP_SubstrateEvents.h File Reference

Description of the substrate plugin events header. For information on how to use substrate plugins, please refer to section 'Substrate Plugins'. More...

#include <stdbool.h>
#include <stddef.h>
#include <scorep/SCOREP_MetricTypes.h>
#include <scorep/SCOREP_PublicTypes.h>
#include <scorep/SCOREP_PublicHandles.h>

Go to the source code of this file.

Typedefs

typedef void(* SCOREP_Substrates_Callback) (void)
 
typedef void(* SCOREP_Substrates_CallingContextEnterCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_CallingContextHandle callingContext, SCOREP_CallingContextHandle previousCallingContext, uint32_t unwindDistance, uint64_t *metricValues)
 
typedef void(* SCOREP_Substrates_CallingContextExitCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_CallingContextHandle callingContext, SCOREP_CallingContextHandle previousCallingContext, uint32_t unwindDistance, uint64_t *metricValues)
 
typedef void(* SCOREP_Substrates_DisableRecordingCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RegionHandle regionHandle, uint64_t *metricValues)
 
typedef void(* SCOREP_Substrates_EnableRecordingCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RegionHandle regionHandle, uint64_t *metricValues)
 
typedef void(* SCOREP_Substrates_EnterRegionCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RegionHandle regionHandle, uint64_t *metricValues)
 
typedef void(* SCOREP_Substrates_EnterRewindRegionCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RegionHandle regionHandle)
 
typedef void(* SCOREP_Substrates_ExitRegionCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RegionHandle regionHandle, uint64_t *metricValues)
 
typedef void(* SCOREP_Substrates_ExitRewindRegionCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RegionHandle regionHandle, bool doRewind)
 
typedef void(* SCOREP_Substrates_IoChangeStatusFlagsCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoHandleHandle handle, SCOREP_IoStatusFlag statusFlags)
 
typedef void(* SCOREP_Substrates_IoCreateHandleCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoHandleHandle handle, SCOREP_IoAccessMode mode, SCOREP_IoCreationFlag creationFlags, SCOREP_IoStatusFlag statusFlags)
 
typedef void(* SCOREP_Substrates_IoDeleteFileCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoParadigmType ioParadigm, SCOREP_IoFileHandle ioFile)
 
typedef void(* SCOREP_Substrates_IoDestroyHandleCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoHandleHandle handle)
 
typedef void(* SCOREP_Substrates_IoDuplicateHandleCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoHandleHandle oldHandle, SCOREP_IoHandleHandle newHandle, SCOREP_IoStatusFlag statusFlags)
 
typedef void(* SCOREP_Substrates_IoOperationBeginCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoHandleHandle handle, SCOREP_IoOperationMode mode, SCOREP_IoOperationFlag operationFlags, uint64_t bytesRequest, uint64_t matchingId)
 
typedef void(* SCOREP_Substrates_IoOperationCancelledCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoHandleHandle handle, uint64_t matchingId)
 
typedef void(* SCOREP_Substrates_IoOperationCompleteCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoHandleHandle handle, SCOREP_IoOperationMode mode, uint64_t bytesResult, uint64_t matchingId)
 
typedef void(* SCOREP_Substrates_IoOperationIssuedCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoHandleHandle handle, uint64_t matchingId)
 
typedef void(* SCOREP_Substrates_IoOperationTestCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoHandleHandle handle, uint64_t matchingId)
 
typedef void(* SCOREP_Substrates_IoSeekCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoHandleHandle handle, int64_t offsetRequest, SCOREP_IoSeekOption whence, uint64_t offsetResult)
 
typedef void(* SCOREP_Substrates_MpiCollectiveBeginCb) (struct SCOREP_Location *location, uint64_t timestamp)
 
typedef void(* SCOREP_Substrates_MpiCollectiveEndCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_InterimCommunicatorHandle communicatorHandle, SCOREP_MpiRank rootRank, SCOREP_CollectiveType collectiveType, uint64_t bytesSent, uint64_t bytesReceived)
 
typedef void(* SCOREP_Substrates_MpiIrecvCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_MpiRank sourceRank, SCOREP_InterimCommunicatorHandle communicatorHandle, uint32_t tag, uint64_t bytesReceived, SCOREP_MpiRequestId requestId)
 
typedef void(* SCOREP_Substrates_MpiIrecvRequestCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_MpiRequestId requestId)
 
typedef void(* SCOREP_Substrates_MpiIsendCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_MpiRank destinationRank, SCOREP_InterimCommunicatorHandle communicatorHandle, uint32_t tag, uint64_t bytesSent, SCOREP_MpiRequestId requestId)
 
typedef void(* SCOREP_Substrates_MpiIsendCompleteCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_MpiRequestId requestId)
 
typedef void(* SCOREP_Substrates_MpiRecvCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_MpiRank sourceRank, SCOREP_InterimCommunicatorHandle communicatorHandle, uint32_t tag, uint64_t bytesReceived)
 
typedef void(* SCOREP_Substrates_MpiRequestCancelledCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_MpiRequestId requestId)
 
typedef void(* SCOREP_Substrates_MpiRequestTestedCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_MpiRequestId requestId)
 
typedef void(* SCOREP_Substrates_MpiSendCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_MpiRank destinationRank, SCOREP_InterimCommunicatorHandle communicatorHandle, uint32_t tag, uint64_t bytesSent)
 
typedef void(* SCOREP_Substrates_OnTracingBufferFlushBeginCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RegionHandle regionHandle, uint64_t *metricValues)
 
typedef void(* SCOREP_Substrates_OnTracingBufferFlushEndCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RegionHandle regionHandle, uint64_t *metricValues)
 
typedef void(* SCOREP_Substrates_RmaAcquireLockCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle, uint32_t remote, uint64_t lockId, SCOREP_LockType lockType)
 
typedef void(* SCOREP_Substrates_RmaAtomicCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle, uint32_t remote, SCOREP_RmaAtomicType type, uint64_t bytesSent, uint64_t bytesReceived, uint64_t matchingId)
 
typedef void(* SCOREP_Substrates_RmaCollectiveBeginCb) (struct SCOREP_Location *location, uint64_t timestamp)
 
typedef void(* SCOREP_Substrates_RmaCollectiveEndCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_CollectiveType collectiveOp, SCOREP_RmaSyncLevel syncLevel, SCOREP_RmaWindowHandle windowHandle, uint32_t root, uint64_t bytesSent, uint64_t bytesReceived)
 
typedef void(* SCOREP_Substrates_RmaGroupSyncCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaSyncLevel syncLevel, SCOREP_RmaWindowHandle windowHandle, SCOREP_GroupHandle groupHandle)
 
typedef void(* SCOREP_Substrates_RmaOpCompleteRemoteCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle, uint64_t matchingId)
 
typedef void(* SCOREP_Substrates_RmaOpTestCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle, uint64_t matchingId)
 
typedef void(* SCOREP_Substrates_RmaReleaseLockCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle, uint32_t remote, uint64_t lockId)
 
typedef void(* SCOREP_Substrates_RmaRequestLockCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle, uint32_t remote, uint64_t lockId, SCOREP_LockType lockType)
 
typedef void(* SCOREP_Substrates_RmaSyncCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle, uint32_t remote, SCOREP_RmaSyncType syncType)
 
typedef void(* SCOREP_Substrates_RmaTryLockCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle, uint32_t remote, uint64_t lockId, SCOREP_LockType lockType)
 
typedef void(* SCOREP_Substrates_RmaWaitChangeCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle)
 
typedef void(* SCOREP_Substrates_RmaWinCreateCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle)
 
typedef void(* SCOREP_Substrates_RmaWinDestroyCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle)
 
typedef void(* SCOREP_Substrates_SampleCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_CallingContextHandle callingContext, SCOREP_CallingContextHandle previousCallingContext, uint32_t unwindDistance, SCOREP_InterruptGeneratorHandle interruptGeneratorHandle, uint64_t *metricValues)
 
typedef void(* SCOREP_Substrates_ThreadForkJoinForkCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_ParadigmType paradigm, uint32_t nRequestedThreads, uint32_t forkSequenceCount)
 
typedef void(* SCOREP_Substrates_ThreadForkJoinJoinCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_ParadigmType paradigm)
 
typedef void(* SCOREP_Substrates_ThreadForkJoinTaskCreateCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_ParadigmType paradigm, SCOREP_InterimCommunicatorHandle threadTeam, uint32_t threadId, uint32_t generationNumber)
 
typedef void(* SCOREP_Substrates_ThreadForkJoinTaskSwitchCb) (struct SCOREP_Location *location, uint64_t timestamp, uint64_t *metricValues, SCOREP_ParadigmType paradigm, SCOREP_InterimCommunicatorHandle threadTeam, uint32_t threadId, uint32_t generationNumber, SCOREP_TaskHandle taskHandle)
 
typedef void(* SCOREP_Substrates_TrackAllocCb) (struct SCOREP_Location *location, uint64_t timestamp, uint64_t addrAllocated, size_t bytesAllocated, void *substrateData[], size_t bytesAllocatedMetric, size_t bytesAllocatedProcess)
 
typedef void(* SCOREP_Substrates_TrackFreeCb) (struct SCOREP_Location *location, uint64_t timestamp, uint64_t addrFreed, size_t bytesFreed, void *substrateData[], size_t bytesAllocatedMetric, size_t bytesAllocatedProcess)
 
typedef void(* SCOREP_Substrates_TrackReallocCb) (struct SCOREP_Location *location, uint64_t timestamp, uint64_t oldAddr, size_t oldBytesAllocated, void *oldSubstrateData[], uint64_t newAddr, size_t newBytesAllocated, void *newSubstrateData[], size_t bytesAllocatedMetric, size_t bytesAllocatedProcess)
 
typedef void(* SCOREP_Substrates_TriggerParameterStringCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_ParameterHandle parameterHandle, SCOREP_StringHandle string_handle)
 
typedef void(* SCOREP_Substrates_WriteMetricsCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_SamplingSetHandle samplingSet, const uint64_t *metricValues)
 
typedef void(* SCOREP_Substrates_RmaPutCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle, uint32_t remote, uint64_t bytes, uint64_t matchingId)
 
typedef void(* SCOREP_Substrates_RmaOpCompleteBlockingCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle, uint64_t matchingId)
 
typedef void(* SCOREP_Substrates_ThreadAcquireLockCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_ParadigmType paradigm, uint32_t lockId, uint32_t acquisitionOrder)
 
typedef void(* SCOREP_Substrates_TriggerCounterInt64Cb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_SamplingSetHandle counterHandle, int64_t value)
 
typedef void(* SCOREP_Substrates_TriggerParameterInt64Cb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_ParameterHandle parameterHandle, int64_t value)
 
typedef void(* SCOREP_Substrates_ThreadForkJoinTeamBeginCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_ParadigmType paradigm, SCOREP_InterimCommunicatorHandle threadTeam)
 
typedef void(* SCOREP_Substrates_ThreadForkJoinTaskBeginCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RegionHandle regionHandle, uint64_t *metricValues, SCOREP_ParadigmType paradigm, SCOREP_InterimCommunicatorHandle threadTeam, uint32_t threadId, uint32_t generationNumber, SCOREP_TaskHandle taskHandle)
 
typedef void(* SCOREP_Substrates_ThreadCreateWaitCreateCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_ParadigmType paradigm, SCOREP_InterimCommunicatorHandle threadTeam, uint32_t createSequenceCount)
 
typedef void(* SCOREP_Substrates_IoAcquireLockCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoHandleHandle handle, SCOREP_LockType lockType)
 

Enumerations

enum  SCOREP_Substrates_EventType {
  SCOREP_EVENT_ENABLE_RECORDING = 0,
  SCOREP_EVENT_DISABLE_RECORDING,
  SCOREP_EVENT_ON_TRACING_BUFFER_FLUSH_BEGIN,
  SCOREP_EVENT_ON_TRACING_BUFFER_FLUSH_END,
  SCOREP_EVENT_ENTER_REGION,
  SCOREP_EVENT_EXIT_REGION,
  SCOREP_EVENT_SAMPLE,
  SCOREP_EVENT_CALLING_CONTEXT_ENTER,
  SCOREP_EVENT_CALLING_CONTEXT_EXIT,
  SCOREP_EVENT_ENTER_REWIND_REGION,
  SCOREP_EVENT_EXIT_REWIND_REGION,
  SCOREP_EVENT_MPI_SEND,
  SCOREP_EVENT_MPI_RECV,
  SCOREP_EVENT_MPI_COLLECTIVE_BEGIN,
  SCOREP_EVENT_MPI_COLLECTIVE_END,
  SCOREP_EVENT_MPI_ISEND_COMPLETE,
  SCOREP_EVENT_MPI_IRECV_REQUEST,
  SCOREP_EVENT_MPI_REQUEST_TESTED,
  SCOREP_EVENT_MPI_REQUEST_CANCELLED,
  SCOREP_EVENT_MPI_ISEND,
  SCOREP_EVENT_MPI_IRECV,
  SCOREP_EVENT_RMA_WIN_CREATE,
  SCOREP_EVENT_RMA_WIN_DESTROY,
  SCOREP_EVENT_RMA_COLLECTIVE_BEGIN,
  SCOREP_EVENT_RMA_COLLECTIVE_END,
  SCOREP_EVENT_RMA_TRY_LOCK,
  SCOREP_EVENT_RMA_ACQUIRE_LOCK,
  SCOREP_EVENT_RMA_REQUEST_LOCK,
  SCOREP_EVENT_RMA_RELEASE_LOCK,
  SCOREP_EVENT_RMA_SYNC,
  SCOREP_EVENT_RMA_GROUP_SYNC,
  SCOREP_EVENT_RMA_PUT,
  SCOREP_EVENT_RMA_GET,
  SCOREP_EVENT_RMA_ATOMIC,
  SCOREP_EVENT_RMA_WAIT_CHANGE,
  SCOREP_EVENT_RMA_OP_COMPLETE_BLOCKING,
  SCOREP_EVENT_RMA_OP_COMPLETE_NON_BLOCKING,
  SCOREP_EVENT_RMA_OP_TEST,
  SCOREP_EVENT_RMA_OP_COMPLETE_REMOTE,
  SCOREP_EVENT_THREAD_ACQUIRE_LOCK,
  SCOREP_EVENT_THREAD_RELEASE_LOCK,
  SCOREP_EVENT_TRIGGER_COUNTER_INT64,
  SCOREP_EVENT_TRIGGER_COUNTER_UINT64,
  SCOREP_EVENT_TRIGGER_COUNTER_DOUBLE,
  SCOREP_EVENT_TRIGGER_PARAMETER_INT64,
  SCOREP_EVENT_TRIGGER_PARAMETER_UINT64,
  SCOREP_EVENT_TRIGGER_PARAMETER_STRING,
  SCOREP_EVENT_THREAD_FORK_JOIN_FORK,
  SCOREP_EVENT_THREAD_FORK_JOIN_JOIN,
  SCOREP_EVENT_THREAD_FORK_JOIN_TEAM_BEGIN,
  SCOREP_EVENT_THREAD_FORK_JOIN_TEAM_END,
  SCOREP_EVENT_THREAD_FORK_JOIN_TASK_CREATE,
  SCOREP_EVENT_THREAD_FORK_JOIN_TASK_SWITCH,
  SCOREP_EVENT_THREAD_FORK_JOIN_TASK_BEGIN,
  SCOREP_EVENT_THREAD_FORK_JOIN_TASK_END,
  SCOREP_EVENT_THREAD_CREATE_WAIT_CREATE,
  SCOREP_EVENT_THREAD_CREATE_WAIT_WAIT,
  SCOREP_EVENT_THREAD_CREATE_WAIT_BEGIN,
  SCOREP_EVENT_THREAD_CREATE_WAIT_END,
  SCOREP_EVENT_TRACK_ALLOC,
  SCOREP_EVENT_TRACK_REALLOC,
  SCOREP_EVENT_TRACK_FREE,
  SCOREP_EVENT_WRITE_POST_MORTEM_METRICS,
  SCOREP_EVENT_PROGRAM_BEGIN,
  SCOREP_EVENT_PROGRAM_END,
  SCOREP_EVENT_IO_CREATE_HANDLE,
  SCOREP_EVENT_IO_DESTROY_HANDLE,
  SCOREP_EVENT_IO_DUPLICATE_HANDLE,
  SCOREP_EVENT_IO_SEEK,
  SCOREP_EVENT_IO_CHANGE_STATUS_FLAGS,
  SCOREP_EVENT_IO_DELETE_FILE,
  SCOREP_EVENT_IO_OPERATION_BEGIN,
  SCOREP_EVENT_IO_OPERATION_ISSUED,
  SCOREP_EVENT_IO_OPERATION_TEST,
  SCOREP_EVENT_IO_OPERATION_COMPLETE,
  SCOREP_EVENT_IO_OPERATION_CANCELLED,
  SCOREP_EVENT_IO_ACQUIRE_LOCK,
  SCOREP_EVENT_IO_RELEASE_LOCK,
  SCOREP_EVENT_IO_TRY_LOCK,
  SCOREP_SUBSTRATES_NUM_EVENTS
}
 Substrate events. Lists every event that is going to be used by the substrate mechanism. More details can be found in the respective functions. To maintain API stability, new events need to be added at the end of the enum. More...
 
enum  SCOREP_Substrates_Mode {
  SCOREP_SUBSTRATES_RECORDING_ENABLED = 0,
  SCOREP_SUBSTRATES_RECORDING_DISABLED,
  SCOREP_SUBSTRATES_NUM_MODES
}
 

Detailed Description

Description of the substrate plugin events header. For information on how to use substrate plugins, please refer to section 'Substrate Plugins'.

Typedef Documentation

typedef void( * SCOREP_Substrates_Callback) (void)

Advice

Do not include this file directly, but include SCOREP_SubstratePlugins.h Generic void function pointer for substrate functions.

Examples:
print_regions.c.
typedef void( * SCOREP_Substrates_CallingContextEnterCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_CallingContextHandle callingContext, SCOREP_CallingContextHandle previousCallingContext, uint32_t unwindDistance, uint64_t *metricValues)

called when entering a region via a instrumentation adapter and Score-P is recording calling contexts (i.e., unwinding is enabled), alternative to SCOREP_Substrates_EnterRegionCb

Parameters
locationlocation which creates this event
timestamptimestamp for this event
callingContextcallstack at timestamp
previousCallingContextcalling context of the last SCOREP_Substrates_SampleCb
unwindDistancenumber of stack levels changed since the last sample
metricValuessynchronous metrics at timestamp The synchronous metric belong to the last sampling set definition whose metric occurrence is SCOREP_METRIC_OCCURRENCE_SYNCHRONOUS_STRICT and whose class is SCOREP_SAMPLING_SET_CPU
typedef void( * SCOREP_Substrates_CallingContextExitCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_CallingContextHandle callingContext, SCOREP_CallingContextHandle previousCallingContext, uint32_t unwindDistance, uint64_t *metricValues)

called when exiting a region via a instrumentation adapter and Score-P is recording calling contexts (i.e., unwinding is enabled). alternative to SCOREP_Substrates_ExitRegionCb

See also
SCOREP_Substrates_CallingContextEnterCb
typedef void( * SCOREP_Substrates_DisableRecordingCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RegionHandle regionHandle, uint64_t *metricValues)

called when disabling the recording on a process and its sub-locations This is triggered by user instrumentation and can not be called when in parallel This event will be generated for SCOREP_Substrates_Mode ENABLED, right before the disabling starts. It is currently not called for SCOREP_Substrates_Mode DISABLED. This might change in the future.

See also
SCOREP_Substrates_EnableRecordingCb
typedef void( * SCOREP_Substrates_EnableRecordingCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RegionHandle regionHandle, uint64_t *metricValues)

called when enabling the recording on a process and its sub-locations This is triggered by user instrumentation and can not be called when in parallel The default mode is enabled. If the default mode is set to disabled by user instrumentation, an enabled event is called before the substrate is finalized. This event will be generated for SCOREP_Substrates_Mode ENABLED, right after the enabling finished. It is currently not called for SCOREP_Substrates_Mode DISABLED. This might change in the future.

Parameters
locationlocation which creates this event.
timestamptimestamp for this event
regionHandle"MEASUREMENT OFF" region
metricValuessynchronous metrics at timestamp
typedef void( * SCOREP_Substrates_EnterRegionCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RegionHandle regionHandle, uint64_t *metricValues)

called when entering a region via some instrumentation adapter. If unwinding is enabled, the event CALLING_CONTEXT_ENTER will be called instead.

Parameters
locationlocation which creates this event
timestamptimestamp for this event
regionHandleregion that is entered
metricValuessynchronous metrics at timestamp. The synchronous metric belong to the last sampling set definition whose metric occurrence is SCOREP_METRIC_OCCURRENCE_SYNCHRONOUS_STRICT and whose class is SCOREP_SAMPLING_SET_CPU
typedef void( * SCOREP_Substrates_EnterRewindRegionCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RegionHandle regionHandle)

called when the user adapter enters a rewind region. The recording of the region and any following region information after this should be discarded when the next SCOREP_Substrates_ExitRewindRegionCb for this regionHandle is called with do_rewind == true

Parameters
locationlocation which creates this event
timestamptimestamp for this event
regionHandleregion that is entered
typedef void( * SCOREP_Substrates_ExitRegionCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RegionHandle regionHandle, uint64_t *metricValues)

called when exiting a region via some instrumentation adapter If unwinding is enabled, the event CALLING_CONTEXT_EXIT will be called instead.

See also
SCOREP_Substrates_EnterRegionCb
typedef void( * SCOREP_Substrates_ExitRewindRegionCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RegionHandle regionHandle, bool doRewind)

called when the user adapter exits a rewind region. The recording of the region and any previous regions since SCOREP_Substrates_ExitRewindRegionCb for this regionHandle should be discarded if do_rewind == true

Parameters
locationlocation which creates this event
timestamptimestamp for this event
regionHandleregion that is entered
doRewindwhether to discard previously recorded data or not
typedef void( * SCOREP_Substrates_IoAcquireLockCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoHandleHandle handle, SCOREP_LockType lockType)

Process I/O lock events (e.g., apply or remove a POSIX advisory lock on an open file)

Parameters
locationThe location where this event happened.
timestampThe time when this event happened.
handleAn active I/O handle.
lockTypeType of the lock (e.g., exclusive or shared.
typedef void( * SCOREP_Substrates_IoChangeStatusFlagsCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoHandleHandle handle, SCOREP_IoStatusFlag statusFlags)

Records a change to the status flags associated with an active I/O handle.

Parameters
locationThe location where this event happened.
timestampThe time when this event happened.
handleAn active I/O handle.
statusFlagsSet flags (e.g., close-on-exec, append, etc.).
typedef void( * SCOREP_Substrates_IoCreateHandleCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoHandleHandle handle, SCOREP_IoAccessMode mode, SCOREP_IoCreationFlag creationFlags, SCOREP_IoStatusFlag statusFlags)

Records the creation of a new active I/O handle that can be used by subsequent I/O operation events. An IoHandle is active between a pair of consecutive IoCreateHandle and IoDestroyHandle events. All locations of a location group have access to an active IoHandle.

Parameters
locationThe location which creates this event.
timestampThe timestamp, when the event event occurred.
handleA reference to the affected I/O handle which will be activated by this record.
modeDetermines which I/O operations can be applied to this I/O handle (e.g., read-only, write-only, read-write)
creationFlagsRequested I/O handle creation flags (e.g., create, exclusive, etc.).
statusFlagsI/O handle status flags which will be associated with the handle attribute (e.g., append, create, close-on-exec, async, etc).
typedef void( * SCOREP_Substrates_IoDeleteFileCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoParadigmType ioParadigm, SCOREP_IoFileHandle ioFile)

Records the deletion of an I/O file.

Parameters
locationThe location where this event happened.
timestampThe time when this event happened.
ioParadigmThe I/O paradigm which induced the deletion.
ioFileFile identifier.
typedef void( * SCOREP_Substrates_IoDestroyHandleCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoHandleHandle handle)

Records the end of an active I/O handle's lifetime.

Parameters
locationThe location where this event happened.
timestampThe time when this event happened.
handleA reference to the affected I/O handle which will be activated by this record.
typedef void( * SCOREP_Substrates_IoDuplicateHandleCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoHandleHandle oldHandle, SCOREP_IoHandleHandle newHandle, SCOREP_IoStatusFlag statusFlags)

Records the duplication of an already existing active I/O handle.

Parameters
locationThe location where this event happened.
timestampThe time when this event happened.
oldHandleAn active I/O handle.
newHandleA previously inactive I/O handle which will be activated by this record.
statusFlagsThe status flag for the new I/O handle newHandle. No status flags will be inherited from the I/O handle oldHandle.
typedef void( * SCOREP_Substrates_IoOperationBeginCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoHandleHandle handle, SCOREP_IoOperationMode mode, SCOREP_IoOperationFlag operationFlags, uint64_t bytesRequest, uint64_t matchingId)

Records the begin of a file operation (read, write, etc.).

Parameters
locationThe location where this event happened.
timestampThe time when this event happened.
handleAn active I/O handle.
modeMode of an I/O handle operation (e.g., read or write).
operationFlagsSpecial semantic of this operation.
bytesRequestRequested bytes to write/read.
matchingIdIdentifier used to correlate associated event records of an I/O operation. This identifier is unique for the referenced I/O handle.
typedef void( * SCOREP_Substrates_IoOperationCancelledCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoHandleHandle handle, uint64_t matchingId)

Records the successful cancellation of a non-blocking operation (read, write etc.) on an active I/O handle.

Parameters
locationThe location where this event happened.
timestampThe time when this event happened.
handleAn active I/O handle.
matchingIdIdentifier used to correlate associated event records of an I/O operation. This identifier is unique for the referenced I/O handle.
typedef void( * SCOREP_Substrates_IoOperationCompleteCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoHandleHandle handle, SCOREP_IoOperationMode mode, uint64_t bytesResult, uint64_t matchingId)

Records the end of a file operation (read, write etc.) on an active I/O handle.

Parameters
locationThe location where this event happened.
timestampThe time when this event happened.
handleAn active I/O handle.
modeMode of an I/O handle operation (e.g., read or write).
bytesResultNumber of actual transferred bytes.
matchingIdIdentifier used to correlate associated event records of an I/O operation. This identifier is unique for the referenced I/O handle.
typedef void( * SCOREP_Substrates_IoOperationIssuedCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoHandleHandle handle, uint64_t matchingId)

Records the successful initiation of a non-blocking operation (read, write etc.) on an active I/O handle.

Parameters
locationThe location where this event happened.
timestampThe time when this event happened.
handleAn active I/O handle.
matchingIdIdentifier used to correlate associated event records of an I/O operation. This identifier is unique for the referenced I/O handle.
typedef void( * SCOREP_Substrates_IoOperationTestCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoHandleHandle handle, uint64_t matchingId)

Records an unsuccessful test whether an I/O operation has already finished.

Parameters
locationThe location where this event happened.
timestampThe time when this event happened.
handleAn active I/O handle.
matchingIdIdentifier used to correlate associated event records of an I/O operation. This identifier is unique for the referenced I/O handle.
typedef void( * SCOREP_Substrates_IoSeekCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_IoHandleHandle handle, int64_t offsetRequest, SCOREP_IoSeekOption whence, uint64_t offsetResult)

Records a change of the position, e.g., within a file.

Parameters
locationThe location where this event happened.
timestampThe time when this event happened.
handleAn active I/O handle.
offsetRequestRequested offset.
whencePosition inside the file from where offsetRequest should be applied (e.g., absolute from the start or end, relative to the current position).
offsetResultResulting offset, e.g., within the file relative to the beginning of the file.
typedef void( * SCOREP_Substrates_MpiCollectiveBeginCb) (struct SCOREP_Location *location, uint64_t timestamp)

Called when an MPI collective is recognized by the MPI adapter before it is started. See also the MPI specifications at https://www.mpi-forum.org/docs/ More information on the type is passed with the SCOREP_Substrates_MpiCollectiveEndCb callback

Parameters
locationlocation which creates this event
timestamptimestamp for this event
typedef void( * SCOREP_Substrates_MpiCollectiveEndCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_InterimCommunicatorHandle communicatorHandle, SCOREP_MpiRank rootRank, SCOREP_CollectiveType collectiveType, uint64_t bytesSent, uint64_t bytesReceived)

called when an MPI collective is recognized by the MPI adapter after it is finished. see also the MPI specifications at https://www.mpi-forum.org/docs/

Parameters
locationlocation which creates this event
timestamptimestamp for this event
communicatorHandlecommunicator handle to which the location rank and the destinationRank belong
rootRankrank that sent the message that is to be received
tagprovided MPI tag for this message
bytesSentnumber of bytes received with this message
bytesReceivednumber of bytes received with this message
typedef void( * SCOREP_Substrates_MpiIrecvCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_MpiRank sourceRank, SCOREP_InterimCommunicatorHandle communicatorHandle, uint32_t tag, uint64_t bytesReceived, SCOREP_MpiRequestId requestId)

Finishes an MpiIrecvRequest see also the MPI specifications at https://www.mpi-forum.org/docs/

Parameters
locationlocation which sends an MPI message
timestamptimestamp for this event
sourceRankrank that sent the message
communicatorHandlecommunicator of this location and the source rank
tagMPI tag
bytesReceivednumber of bytes received with this message
requestIdrequest ID of the non blocking communication to be canceled (see MPI standard)
typedef void( * SCOREP_Substrates_MpiIrecvRequestCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_MpiRequestId requestId)

Called from MPI adapter when an MPI_Irecv is initialized see also the MPI specifications at https://www.mpi-forum.org/docs/ Previously there should be a SCOREP_Substrates_MpiIrecvCb with the same requestId

Parameters
locationlocation which creates this event
timestamptimestamp for this event
requestIdrequest ID of the MPI_Irecv (see MPI standard)
typedef void( * SCOREP_Substrates_MpiIsendCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_MpiRank destinationRank, SCOREP_InterimCommunicatorHandle communicatorHandle, uint32_t tag, uint64_t bytesSent, SCOREP_MpiRequestId requestId)

Initialize a non blocking send via MPI see also the MPI specifications at https://www.mpi-forum.org/docs/

Parameters
locationlocation which creates this event
timestamptimestamp for this event
destinationRankrank that will receive the message
communicatorHandlecommunicator of this location and the target rank
tagMPI tag
bytesSentnumber of sent bytes
requestIdrequest ID of the non blocking communication to be canceled (see MPI standard)
typedef void( * SCOREP_Substrates_MpiIsendCompleteCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_MpiRequestId requestId)

Called from MPI adapter when an MPI_Isend is completed see also the MPI specifications at https://www.mpi-forum.org/docs/ Previously there should be a SCOREP_Substrates_MpiIsendCb with the same requestId

Parameters
locationlocation which creates this event
timestamptimestamp for this event
requestIdrequest ID of the MPI_Isend (see MPI standard)
typedef void( * SCOREP_Substrates_MpiRecvCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_MpiRank sourceRank, SCOREP_InterimCommunicatorHandle communicatorHandle, uint32_t tag, uint64_t bytesReceived)

called when an MPI_Recv is recognized by the MPI adapter see also the MPI specifications at https://www.mpi-forum.org/docs/ There should be a SCOREP_Substrates_MpiSendCb call on the location of the sourceRank.

Parameters
locationlocation which creates this event
timestamptimestamp for this event
sourceRankrank that sent the message that is to be received
communicatorHandlecommunicator handle to which the location rank and the destinationRank belong
tagprovided MPI tag for this message
bytesReceivednumber of bytes received with this message
typedef void( * SCOREP_Substrates_MpiRequestCancelledCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_MpiRequestId requestId)

Called from MPI adapter when a non-blocking communication is cancelled see also the MPI specifications at https://www.mpi-forum.org/docs/ Previously there should be an initialization of the non-blocking communication with the same requestId

Parameters
locationlocation which creates this event
timestamptimestamp for this event
requestIdrequest ID of the non blocking communication to be canceled (see MPI standard)
typedef void( * SCOREP_Substrates_MpiRequestTestedCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_MpiRequestId requestId)

Called from MPI adapter when the status of a non-blocking communication is tested see also the MPI specifications at https://www.mpi-forum.org/docs/ Previously there should be an initialization of the non-blocking communication with the same requestId

Parameters
locationlocation which creates this event
timestamptimestamp for this event
requestIdrequest ID of the non blocking communication to be tested (see MPI standard)
typedef void( * SCOREP_Substrates_MpiSendCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_MpiRank destinationRank, SCOREP_InterimCommunicatorHandle communicatorHandle, uint32_t tag, uint64_t bytesSent)

called when an MPI_Send is recognized by the MPI adapter see also the MPI specifications at https://www.mpi-forum.org/docs/ There should be a SCOREP_Substrates_MpiRecvCb call on the location of the destinationRank.

Parameters
locationlocation which creates this event
timestamptimestamp for this event
destinationRankrank that should receive the message
communicatorHandlecommunicator handle to which the location rank and the destinationRank belong
tagprovided MPI tag for this message
bytesSentnumber of bytes sent with this message
typedef void( * SCOREP_Substrates_OnTracingBufferFlushBeginCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RegionHandle regionHandle, uint64_t *metricValues)

called when flushing the tracing buffer of a location

Parameters
locationlocation which creates this event
timestamptimestamp for this event
regionHandle"TRACE BUFFER FLUSH" region
metricValuessynchronous metrics at timestamp
typedef void( * SCOREP_Substrates_OnTracingBufferFlushEndCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RegionHandle regionHandle, uint64_t *metricValues)

called after flushing the tracing buffer of a location,

See also
SCOREP_Substrates_OnTracingBufferFlushBeginCb
typedef void( * SCOREP_Substrates_RmaAcquireLockCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle, uint32_t remote, uint64_t lockId, SCOREP_LockType lockType)

Marks the time that a lock is granted. This is the typical situation. It has to be followed by a matching SCOREP_Substrates_RmaRequestLockCb record later on.

Parameters
locationlocation which creates this event
timestamptimestamp for this event
windowHandleMemory window.
remoteRank of target in context of window.
lockIdLock id in context of window.
lockTypeType of lock (shared vs. exclusive).
typedef void( * SCOREP_Substrates_RmaAtomicCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle, uint32_t remote, SCOREP_RmaAtomicType type, uint64_t bytesSent, uint64_t bytesReceived, uint64_t matchingId)

The atomic RMA operations are similar to the get and put operations. As an additional field they provide the type of operation. Depending on the type, data may be received, sent, or both, therefore, the sizes are specified separately. Matching the local and optionally remote completion works the same way as for get and put operations.

Parameters
locationlocation which creates this event
timestamptimestamp for this event
windowHandleWindow.
remoteRank of target in context of window.
typeType of atomic operation (see SCOREP_RmaAtomicType).
bytesSentNumber of bytes transferred to remote target.
bytesReceivedNumber of bytes transferred from remote target.
matchingIdMatching number.
typedef void( * SCOREP_Substrates_RmaCollectiveBeginCb) (struct SCOREP_Location *location, uint64_t timestamp)

begin a collective operation on an MPI remote memory access window see also the MPI specifications at https://www.mpi-forum.org/docs/ More information is passed with the next call SCOREP_Substrates_RmaCollectiveEndCb

Parameters
locationlocation which creates this event
timestamptimestamp for this event
typedef void( * SCOREP_Substrates_RmaCollectiveEndCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_CollectiveType collectiveOp, SCOREP_RmaSyncLevel syncLevel, SCOREP_RmaWindowHandle windowHandle, uint32_t root, uint64_t bytesSent, uint64_t bytesReceived)

end a collective operation on an MPI remote memory access window see also the MPI specifications at https://www.mpi-forum.org/docs/

Parameters
locationlocation which creates this event
timestamptimestamp for this event
collectiveOptype of the collective operation
syncLevelsynchronization level
windowHandlethe previously defined and created window handle
rootRoot process/rank if there is one
bytesSentnumber of bytes sent
bytesReceivednumber of bytes received
typedef void( * SCOREP_Substrates_RmaGroupSyncCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaSyncLevel syncLevel, SCOREP_RmaWindowHandle windowHandle, SCOREP_GroupHandle groupHandle)

This record marks the synchronization of a sub-group of the locations associated with the given memory window. It needs to be recorded for all participating locations.

Parameters
locationlocation which creates this event
timestamptimestamp for this event
syncLevelSynchronization level.
windowHandleMemory window.
groupHandleGroup of participating processes or threads.
typedef void( * SCOREP_Substrates_RmaOpCompleteBlockingCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle, uint64_t matchingId)

The completion records mark the end of RMA operations. Local completion for every RMA operation (get, put, or atomic operation) always has to be marked with either SCOREP_Substrates_RmaOpCompleteBlockingCb or SCOREP_Substrates_RmaOpCompleteNonBlockingCb using the same matching number as the RMA operation record. An RMA operation is blocking when the operation completes locally before leaving the call, for non-blocking operations local completion has to be ensured by a subsequent call.

Parameters
locationlocation which creates this event
timestamptimestamp for this event
windowHandleMemory window.
matchingIdMatching number.
typedef void( * SCOREP_Substrates_RmaOpCompleteRemoteCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle, uint64_t matchingId)

An optional remote completion point can be specified with SCOREP_Substrates_RmaOpCompleteRemoteCb. It is recorded on the same location as the RMA operation itself. Again, multiple RMA operations may map to the same SCOREP_Substrates_RmaOpCompleteRemoteCb. The target locations are not explicitly specified but implicitly as all those that were referenced in matching RMA operations.

Parameters
locationlocation which creates this event
timestamptimestamp for this event
windowHandleMemory window.
matchingIdMatching number.
typedef void( * SCOREP_Substrates_RmaOpTestCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle, uint64_t matchingId)

This record indicates a test for completion. It is only useful for non-blocking RMA calls where the API supports such a test. The test record stands for a negative outcome, otherwise a completion record is written (see SCOREP_Substrates_RmaOpCompleteRemoteCb).

Parameters
locationlocation which creates this event
timestamptimestamp for this event
windowHandleMemory window.
matchingIdMatching number.
typedef void( * SCOREP_Substrates_RmaPutCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle, uint32_t remote, uint64_t bytes, uint64_t matchingId)

The get and put operations access remote memory addresses. The corresponding get and put records mark when they are issued. The actual start and the completion may happen later.

Parameters
locationlocation which creates this event
timestamptimestamp for this event
windowHandleMemory window.
remoteRank of target in context of window.
bytesNumber of bytes transferred.
matchingIdMatching number.
Note
The matching number allows to reference the point of completion of the operation. It will reappear in a completion record on the same location.
typedef void( * SCOREP_Substrates_RmaReleaseLockCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle, uint32_t remote, uint64_t lockId)

Marks the time the lock is freed. It contains all fields that are necessary to match it to either an earlier SCOREP_Substrates_RmaAcquireLockCb or SCOREP_Substrates_RmaRequestLockCb event and is required to follow either of the two.

Parameters
locationlocation which creates this event
timestamptimestamp for this event
windowHandleMemory window.
remoteRank of target in context of window.
lockIdLock id in context of window.
typedef void( * SCOREP_Substrates_RmaRequestLockCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle, uint32_t remote, uint64_t lockId, SCOREP_LockType lockType)

This record marks the time that a request for a lock is issued where the RMA model ensures that the lock is granted eventually without further notification. As of now this is specific for MPI. In this case, the SCOREP_RmaAcquireLock event is not present.

Parameters
locationlocation which creates this event
timestamptimestamp for this event
winMemory window.
remoteRank of target in context of window.
lockIdLock id in context of window.
lockTypeType of lock (shared vs. exclusive).
typedef void( * SCOREP_Substrates_RmaSyncCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle, uint32_t remote, SCOREP_RmaSyncType syncType)

This record marks a simple pairwise synchronization.

Parameters
locationlocation which creates this event
timestamptimestamp for this event
windowHandleMemory window.
remoteRank of target in context of window.
syncTypeType of direct RMA synchronization call (e.g. SCOREP_RMA_SYNC_TYPE_MEMORY, SCOREP_RMA_SYNC_TYPE_NOTIFY_IN, SCOREP_RMA_SYNC_TYPE_NOTIFY_OUT).
typedef void( * SCOREP_Substrates_RmaTryLockCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle, uint32_t remote, uint64_t lockId, SCOREP_LockType lockType)

An attempt to acquire a lock which turns out negative can be marked with SCOREP_Substrates_RmaTryLockCb. In this case, no release record may follow. With this a series of unsuccessful locking attempts can be identified. If an lock attempt is successful, it is marked with SCOREP_Substrates_RmaAcquireLockCb right away instead of a pair of SCOREP_Substrates_RmaTryLockCb and @ SCOREP_Substrates_RmaAcquireLockCb. see also the MPI specifications at https://www.mpi-forum.org/docs/

Parameters
locationlocation which creates this event
timestamptimestamp for this event
windowHandlethe previously defined and created window handle
remoteRank of target in context of window
lockIdLock id in context of window.
lockTypeType of lock (shared vs. exclusive).
typedef void( * SCOREP_Substrates_RmaWaitChangeCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle)

The SCOREP_EVENT_RMA_WAIT_CHANGE event marks a synchronization point that blocks until a remote operation modifies a given memory field. This event marks the beginning of the waiting period. The memory field in question is part of the specified window.

Parameters
locationlocation which creates this event
timestamptimestamp for this event
windowHandleMemory window.
typedef void( * SCOREP_Substrates_RmaWinCreateCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle)

create a remote memory access window see also the MPI specifications at https://www.mpi-forum.org/docs/

Parameters
locationlocation which creates this event
timestamptimestamp for this event
windowHandlepreviously defined window handle
typedef void( * SCOREP_Substrates_RmaWinDestroyCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RmaWindowHandle windowHandle)

destroy a remote memory access window see also the MPI specifications at https://www.mpi-forum.org/docs/

Parameters
locationlocation which creates this event
timestamptimestamp for this event
windowHandlepreviously defined and created window handle
typedef void( * SCOREP_Substrates_SampleCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_CallingContextHandle callingContext, SCOREP_CallingContextHandle previousCallingContext, uint32_t unwindDistance, SCOREP_InterruptGeneratorHandle interruptGeneratorHandle, uint64_t *metricValues)

called when a sampling adapter interrupts the workload and records a sample. Called from a signal handler, so used functions should be async-signal safe. If a function is not signal safe, but is interrupted by a signal (i.e., a sample event) and used within the signal context, its behavior is unpredictable.

Parameters
locationlocation which creates this event
timestamptimestamp for this event
callingContextcallstack at timestamp
previousCallingContextcalling context of the last SCOREP_Substrates_SampleCb
unwindDistancenumber of stack levels changed since the last sample
interruptGeneratorHandlesource that interrupted the workload
metricValuessynchronous metrics at timestamp The synchronous metric belong to the last sampling set definition whose metric occurrence is SCOREP_METRIC_OCCURRENCE_SYNCHRONOUS_STRICT and whose class is SCOREP_SAMPLING_SET_CPU
typedef void( * SCOREP_Substrates_ThreadAcquireLockCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_ParadigmType paradigm, uint32_t lockId, uint32_t acquisitionOrder)

Process a thread acquire/release lock event in the measurement system.

Parameters
locationlocation which creates this event
timestamptimestamp for this event
paradigmthe underlying parallelization paradigm of the lock
lockIdA unique ID to identify the lock, maintained by the caller.
acquisitionOrderA monotonically increasing id to determine the order of lock acquisitions. Same for corresponding acquire-release events.
typedef void( * SCOREP_Substrates_ThreadCreateWaitCreateCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_ParadigmType paradigm, SCOREP_InterimCommunicatorHandle threadTeam, uint32_t createSequenceCount)

process a thread event for a create/wait thread model instrumentation adapter e.g., pthreads

Parameters
locationlocation which creates this event
timestamptimestamp for this event
paradigmOne of the predefined threading models.
threadTeampreviously defined thread team
createSequenceCounta process unique increasing number that is increased at every SCOREP_Substrates_ThreadCreateWaitCreateCb and SCOREP_Substrates_ThreadForkJoinForkCb
typedef void( * SCOREP_Substrates_ThreadForkJoinForkCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_ParadigmType paradigm, uint32_t nRequestedThreads, uint32_t forkSequenceCount)

called from threading instrumentation adapters before a thread team is forked, e.g., before an OpenMP parallel region

Parameters
locationlocation which creates this event
timestamptimestamp for this event
paradigmthreading paradigm
nRequestedThreadsnumber of threads to be forked. Note that this does not necessarily represent actual threads but threads can also be reused, e..g, in OpenMP runtimes.
forkSequenceCountan increasing number, unique for each process that allows to identify a parallel region
typedef void( * SCOREP_Substrates_ThreadForkJoinJoinCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_ParadigmType paradigm)

called from threading instrumentation after a thread team is joined, e.g., after an OpenMP parallel region

Parameters
locationlocation which creates this event
timestamptimestamp for this event
paradigmthreading paradigm
typedef void( * SCOREP_Substrates_ThreadForkJoinTaskBeginCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_RegionHandle regionHandle, uint64_t *metricValues, SCOREP_ParadigmType paradigm, SCOREP_InterimCommunicatorHandle threadTeam, uint32_t threadId, uint32_t generationNumber, SCOREP_TaskHandle taskHandle)

Process a task begin/end event

Parameters
locationlocation which creates this event
timestamptimestamp for this event
metricValuessynchronous metrics
paradigmOne of the predefined threading models.
regionHandleRegion handle of the task region.
threadTeampreviously defined thread team
threadIdId of the this thread within the team of threads that constitute the parallel region.
generationNumberThe sequence number for this task. Each task created gets a thread private generation number attached. Combined with the threadId, this constitutes a unique task ID inside the parallel region.
taskHandleA handle to the executed task
typedef void( * SCOREP_Substrates_ThreadForkJoinTaskCreateCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_ParadigmType paradigm, SCOREP_InterimCommunicatorHandle threadTeam, uint32_t threadId, uint32_t generationNumber)

Process a task create event in the measurement system.

Parameters
locationlocation which creates this event
timestamptimestamp for this event
paradigmOne of the predefined threading models.
threadTeampreviously defined thread team
threadIdId of the this thread within the team of threads that constitute the parallel region.
generationNumberThe sequence number for this task. Each task gets a thread private generation number of the creating thread attached. Combined with the threadId, this constitutes a unique task ID inside the parallel region.
typedef void( * SCOREP_Substrates_ThreadForkJoinTaskSwitchCb) (struct SCOREP_Location *location, uint64_t timestamp, uint64_t *metricValues, SCOREP_ParadigmType paradigm, SCOREP_InterimCommunicatorHandle threadTeam, uint32_t threadId, uint32_t generationNumber, SCOREP_TaskHandle taskHandle)

Process a task switch event

Parameters
locationlocation which creates this event
timestamptimestamp for this event
metricValuessynchronous metrics
paradigmOne of the predefined threading models.
threadTeampreviously defined thread team
threadIdId of the this thread within the team of threads that constitute the parallel region.
generationNumberThe sequence number for this task. Each task gets a thread private generation number of the creating thread attached. Combined with the threadId, this constitutes a unique task ID inside the parallel region.
taskHandleA handle to the resumed task.
typedef void( * SCOREP_Substrates_ThreadForkJoinTeamBeginCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_ParadigmType paradigm, SCOREP_InterimCommunicatorHandle threadTeam)

called from threading instrumentation after a thread team is created/before it is joined.

Parameters
locationlocation which creates this event
timestamptimestamp for this event
paradigmthreading paradigm
threadTeampreviously defined thread team
typedef void( * SCOREP_Substrates_TrackAllocCb) (struct SCOREP_Location *location, uint64_t timestamp, uint64_t addrAllocated, size_t bytesAllocated, void *substrateData[], size_t bytesAllocatedMetric, size_t bytesAllocatedProcess)

Event for allocating memory using malloc/calloc

Parameters
locationlocation which creates this event
timestamptimestamp for this event
addrAllocatedallocated address, should be converted to void*
bytesAllocatednumber of bytes allocated
substrateDataInternal substrates may register data for this address. They should use their substrate id to access their specific item. Substrate plugins should NOT access this variable.
bytesAllocatedMetricThe total size of the metric. E.g., all memory regions tracked with the memory adapters count into a specific metric
bytesAllocatedProcesstotal number of bytes allocated in the process
typedef void( * SCOREP_Substrates_TrackFreeCb) (struct SCOREP_Location *location, uint64_t timestamp, uint64_t addrFreed, size_t bytesFreed, void *substrateData[], size_t bytesAllocatedMetric, size_t bytesAllocatedProcess)

Event for freeing memory using free

Parameters
locationlocation which creates this event
timestamptimestamp for this event
addrFreedaddress passed to free
bytesFreednumber of bytes freed
substrateDataInternal substrates get previously registered data for addrFreed. They should use their substrate id to access their specific item. Substrate plugins should NOT access this variable.
bytesAllocatedMetricThe total size of the metric. E.g., all memory regions tracked with the memory adapters count into a specific metric
bytesAllocatedProcesstotal number of bytes allocated in the process
typedef void( * SCOREP_Substrates_TrackReallocCb) (struct SCOREP_Location *location, uint64_t timestamp, uint64_t oldAddr, size_t oldBytesAllocated, void *oldSubstrateData[], uint64_t newAddr, size_t newBytesAllocated, void *newSubstrateData[], size_t bytesAllocatedMetric, size_t bytesAllocatedProcess)

Event for allocating/freeing memory using realloc

Parameters
locationlocation which creates this event
timestamptimestamp for this event
oldAddraddress passed to realloc
oldBytesAllocatedsize allocated to oldAddr before calling realloc
oldSubstrateDataInternal substrates get their previously registered data for oldAddr. They should use their substrate id to access their specific item. Substrate plugins should NOT access this variable.
newAddraddress gained from realloc
newBytesAllocatedsize of object at newAddr after realloc
newSubstrateDataInternal substrates can register data for newAddr. They should use their substrate id to access their specific item. Substrate plugins should NOT access this variable.
bytesAllocatedMetricThe total size of the metric. E.g., all memory regions tracked with the memory adapters count into a specific metric
bytesAllocatedProcesstotal number of bytes allocated in the process
typedef void( * SCOREP_Substrates_TriggerCounterInt64Cb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_SamplingSetHandle counterHandle, int64_t value)

Trigger a counter, which represents more or less a metric

See also
also SCOREP_User_TriggerMetricInt64 SCOREP_User_TriggerMetricUint64 SCOREP_User_TriggerMetricDouble
Parameters
locationlocation which creates this event
timestamptimestamp for this event
counterHandlepreviously defined counter handle
valuevalue of the counter when triggered. The datatype depends on the called function
typedef void( * SCOREP_Substrates_TriggerParameterInt64Cb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_ParameterHandle parameterHandle, int64_t value)

Trigger a user defined parameter with a specific value

See also
also SCOREP_User_ParameterInt64 SCOREP_User_ParameterUint64
Parameters
locationlocation which creates this event
timestamptimestamp for this event
parameterHandlepreviously defined parameter handle
valuevalue of the parameter when triggered. The datatype depends on the called function
typedef void( * SCOREP_Substrates_TriggerParameterStringCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_ParameterHandle parameterHandle, SCOREP_StringHandle string_handle)

Trigger a user defined parameter with a specific value

See also
also SCOREP_User_ParameterString
Parameters
locationlocation which creates this event
timestamptimestamp for this event
parameterHandlepreviously defined parameter handle
string_handlepreviously defined string when the parameter is triggered.
typedef void( * SCOREP_Substrates_WriteMetricsCb) (struct SCOREP_Location *location, uint64_t timestamp, SCOREP_SamplingSetHandle samplingSet, const uint64_t *metricValues)

Used to record metrics. Provided by substrates as arguments to SCOREP_Metric_WriteStrictlySynchronousMetrics(), SCOREP_Metric_WriteSynchronousMetrics(), and SCOREP_Metric_WriteAsynchronousMetrics(). These functions are supposed to be called during following events: [CallingContext]Enter, [CallingContext]Exit, Sample. Will also be used for writing post mortem asynchronous metrics during SCOREP_EVENT_WRITE_POST_MORTEM_METRICS.

Parameters
locationA pointer to the thread location data of the thread that executed the metric event.
timestampThe timestamp, when the metric event occurred.
samplingSetThe sampling set with metrics
metricValuesArray of the metric values.

Enumeration Type Documentation

Substrate events. Lists every event that is going to be used by the substrate mechanism. More details can be found in the respective functions. To maintain API stability, new events need to be added at the end of the enum.

Enumerator
SCOREP_EVENT_ENABLE_RECORDING 

enable recording of events, see SCOREP_Substrates_EnableRecordingCb()

SCOREP_EVENT_DISABLE_RECORDING 

disable recording of events, see SCOREP_Substrates_DisableRecordingCb()

SCOREP_EVENT_ON_TRACING_BUFFER_FLUSH_BEGIN 

start flushing trace buffer to disk, see SCOREP_Substrates_OnTracingBufferFlushBeginCb()

SCOREP_EVENT_ON_TRACING_BUFFER_FLUSH_END 

end flushing trace buffer to disk, see SCOREP_Substrates_OnTracingBufferFlushEndCb()

SCOREP_EVENT_ENTER_REGION 

enter an instrumented region, see SCOREP_Substrates_EnterRegionCb()

SCOREP_EVENT_EXIT_REGION 

exit an instrumented region, see SCOREP_Substrates_ExitRegionCb()

SCOREP_EVENT_SAMPLE 

record a calling context from sampling, see SCOREP_Substrates_SampleCb()

SCOREP_EVENT_CALLING_CONTEXT_ENTER 

enter an instrumented region with calling context information, replaces SCOREP_EVENT_ENTER_REGION when unwinding is enabled, see SCOREP_Substrates_CallingContextEnterCb()

SCOREP_EVENT_CALLING_CONTEXT_EXIT 

exit an instrumented region with calling context information, replaces SCOREP_EVENT_EXIT_REGION when unwinding is enabled, see SCOREP_Substrates_CallingContextExitCb()

SCOREP_EVENT_ENTER_REWIND_REGION 

enter rewinding, see SCOREP_Substrates_EnterRewindRegionCb()

SCOREP_EVENT_EXIT_REWIND_REGION 

exit rewinding, see SCOREP_Substrates_ExitRewindRegionCb()

SCOREP_EVENT_MPI_SEND 

MPI_Send, see SCOREP_Substrates_MpiSendCb()

SCOREP_EVENT_MPI_RECV 

MPI_Recv, see SCOREP_Substrates_MpiRecvCb()

SCOREP_EVENT_MPI_COLLECTIVE_BEGIN 

starts an MPI collective, see SCOREP_Substrates_MpiCollectiveBeginCb()

SCOREP_EVENT_MPI_COLLECTIVE_END 

ends an MPI collective, see SCOREP_Substrates_MpiCollectiveEndCb()

SCOREP_EVENT_MPI_ISEND_COMPLETE 

marks the completion of an MPI_Isend, see SCOREP_Substrates_MpiIsendCompleteCb()

SCOREP_EVENT_MPI_IRECV_REQUEST 

marks the request for an MPI_Irecv, see SCOREP_Substrates_MpiIrecvRequestCb()

SCOREP_EVENT_MPI_REQUEST_TESTED 

marks the test of an MPI request (e.g., in an MPI_Waitsome(...) ), see SCOREP_Substrates_MpiRequestTestedCb()

SCOREP_EVENT_MPI_REQUEST_CANCELLED 

marks the cancellation of an MPI request (e.g., an MPI_Test_cancelled(...) call that returned true in its second parameter), see SCOREP_Substrates_MpiRequestCancelledCb()

SCOREP_EVENT_MPI_ISEND 

marks the start of an MPI_ISend, see SCOREP_Substrates_MpiIsendCb()

SCOREP_EVENT_MPI_IRECV 

marks the start of an MPI_IRecv, see SCOREP_Substrates_MpiIrecvCb()

SCOREP_EVENT_RMA_WIN_CREATE 

marks the creation of an RMA window (used by cuda, opencl, and shmem), see SCOREP_Substrates_RmaWinCreateCb()

SCOREP_EVENT_RMA_WIN_DESTROY 

marks the destruction of an RMA window (used by cuda, opencl, and shmem), see SCOREP_Substrates_RmaWinDestroyCb()

SCOREP_EVENT_RMA_COLLECTIVE_BEGIN 

marks the start of an RMA collective (used by shmem), see SCOREP_Substrates_RmaCollectiveBeginCb()

SCOREP_EVENT_RMA_COLLECTIVE_END 

marks the start of an RMA collective (used by shmem), see SCOREP_Substrates_RmaCollectiveEndCb()

SCOREP_EVENT_RMA_TRY_LOCK 

marks an RMA trylock (used by shmem), see SCOREP_Substrates_RmaTryLockCb()

SCOREP_EVENT_RMA_ACQUIRE_LOCK 

marks the acquisition of an RMA lock (used by shmem), see SCOREP_Substrates_RmaAcquireLockCb()

SCOREP_EVENT_RMA_REQUEST_LOCK 

marks a request for an RMA lock (used by shmem), see SCOREP_Substrates_RmaRequestLockCb()

SCOREP_EVENT_RMA_RELEASE_LOCK 

marks a release of an RMA lock (used by shmem), see SCOREP_Substrates_RmaReleaseLockCb()

SCOREP_EVENT_RMA_SYNC 

marks a simple pairwise RMA synchronization, see SCOREP_Substrates_RmaSyncCb()

SCOREP_EVENT_RMA_GROUP_SYNC 

marks an RMA synchronization of a sub-group of locations on a given window, see SCOREP_Substrates_RmaGroupSyncCb()

SCOREP_EVENT_RMA_PUT 

marks a put operation to an RMA memory (used by cuda, opencl, and shmem), see SCOREP_Substrates_RmaPutCb()

SCOREP_EVENT_RMA_GET 

marks a get operation from an RMA memory (used by cuda, opencl, and shmem), see SCOREP_Substrates_RmaGetCb()

SCOREP_EVENT_RMA_ATOMIC 

marks an atomic RMA operation (used by shmem), see SCOREP_Substrates_RmaAtomicCb()

SCOREP_EVENT_RMA_WAIT_CHANGE 

marks a blocks until a remote operation modifies a given RMA memory field (used by shmem), see SCOREP_Substrates_RmaWaitChangeCb()

SCOREP_EVENT_RMA_OP_COMPLETE_BLOCKING 

marks completion of a blocking RMA operation (used by cuda, opencl, and shmem), see SCOREP_Substrates_RmaOpCompleteBlockingCb()

SCOREP_EVENT_RMA_OP_COMPLETE_NON_BLOCKING 

marks completion of a non-blocking RMA operation, see SCOREP_Substrates_RmaOpCompleteNonBlockingCb()

SCOREP_EVENT_RMA_OP_TEST 

marks a test for completion of a non-blocking RMA operation, see SCOREP_Substrates_RmaOpTestCb()

SCOREP_EVENT_RMA_OP_COMPLETE_REMOTE 

marks a remote completion point, see SCOREP_Substrates_RmaOpCompleteRemoteCb()

SCOREP_EVENT_THREAD_ACQUIRE_LOCK 

marks when a thread acquires a lock (pthreads, explicit and implicit OpenMP locks), see SCOREP_Substrates_ThreadAcquireLockCb()

SCOREP_EVENT_THREAD_RELEASE_LOCK 

marks when a thread releases a lock (pthreads, explicit and implicit OpenMP locks), see SCOREP_Substrates_ThreadreleaseLockCb()

SCOREP_EVENT_TRIGGER_COUNTER_INT64 

called when an int64 counter is triggered, see SCOREP_Substrates_TriggerCounterInt64Cb()

SCOREP_EVENT_TRIGGER_COUNTER_UINT64 

called when an uint64 counter is triggered, see SCOREP_Substrates_TriggerCounterUint64Cb()

SCOREP_EVENT_TRIGGER_COUNTER_DOUBLE 

called when an double counter is triggered, see SCOREP_Substrates_TriggerCounterDoubleCb()

SCOREP_EVENT_TRIGGER_PARAMETER_INT64 

called when an int64 parameter is triggered, called from user instrumentation, see SCOREP_Substrates_TriggerParameterInt64Cb()

SCOREP_EVENT_TRIGGER_PARAMETER_UINT64 

called when an uint64 parameter is triggered, called from user instrumentation, see SCOREP_Substrates_TriggerParameterUint64Cb()

SCOREP_EVENT_TRIGGER_PARAMETER_STRING 

called when an string parameter is triggered, called from user instrumentation, see SCOREP_Substrates_TriggerParameterStringCb()

SCOREP_EVENT_THREAD_FORK_JOIN_FORK 

called before a fork-join based thread-parallel programming model (e.g., OpenMP) forks its threads logically, see SCOREP_Substrates_ThreadForkJoinForkCb()

SCOREP_EVENT_THREAD_FORK_JOIN_JOIN 

called after a fork-join based thread-parallel programming model (e.g., OpenMP) joins its threads logically, see SCOREP_Substrates_ThreadForkJoinJoinCb()

SCOREP_EVENT_THREAD_FORK_JOIN_TEAM_BEGIN 

begin of a parallel execution on a thread created by either SCOREP_ThreadForkJoin_Fork, is called by all created threads, see SCOREP_Substrates_ThreadForkJoinTeamBeginCb()

SCOREP_EVENT_THREAD_FORK_JOIN_TEAM_END 

end of a parallel execution on a thread created by either SCOREP_ThreadForkJoin_Fork, is called by all created threads, see SCOREP_Substrates_ThreadForkJoinTeamBeginCb()

SCOREP_EVENT_THREAD_FORK_JOIN_TASK_CREATE 

creation of a task in a fork-join based thread-parallel programming model (e.g., OpenMP), see SCOREP_Substrates_ThreadForkJoinTaskCreateCb()

SCOREP_EVENT_THREAD_FORK_JOIN_TASK_SWITCH 

switching of tasks in a fork-join based thread-parallel programming model (e.g., OpenMP), see SCOREP_Substrates_ThreadForkJoinTaskSwitchCb()

SCOREP_EVENT_THREAD_FORK_JOIN_TASK_BEGIN 

begin of a task in a fork-join based thread-parallel programming model (e.g., OpenMP), see SCOREP_Substrates_ThreadForkJoinTaskBeginCb()

SCOREP_EVENT_THREAD_FORK_JOIN_TASK_END 

end of a task in a fork-join based thread-parallel programming model (e.g., OpenMP), see SCOREP_Substrates_ThreadForkJoinTaskEndCb()

SCOREP_EVENT_THREAD_CREATE_WAIT_CREATE 

create a new thread in a create-wait based thread-parallel programming model (e.g., pthreads), called by parent, see SCOREP_Substrates_ThreadCreateWaitCreateCb()

SCOREP_EVENT_THREAD_CREATE_WAIT_WAIT 

wait and join a thread in a create-wait based thread-parallel programming model (e.g., pthreads), usually called by parent, see SCOREP_Substrates_ThreadCreateWaitWaitCb()

SCOREP_EVENT_THREAD_CREATE_WAIT_BEGIN 

begin a new thread in a create-wait based thread-parallel programming model (e.g., pthreads), called by new thread, see SCOREP_Substrates_ThreadCreateWaitBeginCb()

SCOREP_EVENT_THREAD_CREATE_WAIT_END 

end a thread in a create-wait based thread-parallel programming model (e.g., pthreads), see SCOREP_Substrates_ThreadCreateWaitEndCb()

SCOREP_EVENT_TRACK_ALLOC 

track malloc/calloc memory allocation, see SCOREP_Substrates_TrackAllocCb()

SCOREP_EVENT_TRACK_REALLOC 

track realloc memory (de-)allocation, see SCOREP_Substrates_TrackReallocCb()

SCOREP_EVENT_TRACK_FREE 

track realloc memory deallocation, see SCOREP_Substrates_TrackFreeCb()

SCOREP_EVENT_WRITE_POST_MORTEM_METRICS 

write post mortem metrics before unify, see SCOREP_Substrates_WriteMetricsCb()

SCOREP_EVENT_PROGRAM_BEGIN 

begin of program and measurement, see SCOREP_Substrates_ProgramBeginCb()

SCOREP_EVENT_PROGRAM_END 

end of program and measurement, see SCOREP_Substrates_ProgramEndCb()

SCOREP_EVENT_IO_CREATE_HANDLE 

marks the creation of a new I/O handle, the handle gets active and can be used in subsequent I/O operations, see SCOREP_Substrates_IoCreateHandleCb

SCOREP_EVENT_IO_DESTROY_HANDLE 

marks the deletion of a, the I/O handle can't be used in subsequent I/O operations any longer, see SCOREP_Substrates_IoDestroyHandleCb

SCOREP_EVENT_IO_DUPLICATE_HANDLE 

marks the duplication of an already existing I/O handle, the new one gets active and can be used in subsequent I/O operations, see SCOREP_Substrates_IoDuplicateHandleCb

SCOREP_EVENT_IO_SEEK 

marks a seek operation, sets the file position indicator, see SCOREP_Substrates_IoSeekCb

SCOREP_EVENT_IO_CHANGE_STATUS_FLAGS 

called when status information of an I/O handle are changed, see SCOREP_Substrates_IoChangeStatusFlagsCb

SCOREP_EVENT_IO_DELETE_FILE 

marks the deletion of a file, see SCOREP_Substrates_IoDeleteFileCb

SCOREP_EVENT_IO_OPERATION_BEGIN 

marks the begin of an I/O operation, see SCOREP_Substrates_IoOperationBeginCb

SCOREP_EVENT_IO_OPERATION_ISSUED 

called when an asynchronous I/O operation is submitted to the I/O subssystem, see SCOREP_Substrates_IoOperationIssuedCb

SCOREP_EVENT_IO_OPERATION_TEST 

called when an asynchronous I/O operation is tested for completion but is not finished yet, see SCOREP_Substrates_IoOperationTestCb

SCOREP_EVENT_IO_OPERATION_COMPLETE 

called when an asynchronous I/O operation is successfully tested for completion, see SCOREP_Substrates_IoOperationCompleteCb

SCOREP_EVENT_IO_OPERATION_CANCELLED 

called when an asynchronous I/O operation is aborted, see SCOREP_Substrates_IoOperationCancelledCb

SCOREP_EVENT_IO_ACQUIRE_LOCK 

marks the acquisition of an I/O lock, see SCOREP_Substrates_IoAcquireLockCb

SCOREP_EVENT_IO_RELEASE_LOCK 

marks the release of an I/O lock, see SCOREP_Substrates_IoReleaseLockCb

SCOREP_EVENT_IO_TRY_LOCK 

called when , see SCOREP_Substrates_IoTryLockCb

SCOREP_SUBSTRATES_NUM_EVENTS 

Non-ABI, marks the end of the currently supported events and can change with different versions of Score-P (increases with increasing Score-P version)

Substrates need to provide two sets of callbacks for the modes SCOREP_SUBSTATES_RECORDING_ENABLED and SCOREP_SUBSTRATES_RECORDING_DISABLED. This enum is used as an array index.

Enumerator
SCOREP_SUBSTRATES_RECORDING_ENABLED 

The recording of events is enabled (default)

SCOREP_SUBSTRATES_RECORDING_DISABLED 

The recording of events is disabled

SCOREP_SUBSTRATES_NUM_MODES 

Non-ABI