LLVM OpenMP 22.0.0git
omptest::OmptCallbackHandler Class Reference

Handler class to do whatever is needed to be done when a callback is invoked by the OMP runtime Supports a RecordAndReplay mechanism in which all OMPT events are recorded and then replayed. More...

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/openmp/tools/omptest/include/OmptCallbackHandler.h"

Public Member Functions

 ~OmptCallbackHandler ()=default
void subscribe (OmptListener *Listener)
 Subscribe a listener to be notified for OMPT events.
void clearSubscribers ()
 Remove all subscribers.
void replay ()
 When the record and replay mechanism is enabled this replays all OMPT events.
void handleAssertionSyncPoint (const std::string &SyncPointName)
 Special asserter callback which checks that upon encountering the synchronization point, all expected events have been processed.
void handleThreadBegin (ompt_thread_t ThreadType, ompt_data_t *ThreadData)
void handleThreadEnd (ompt_data_t *ThreadData)
void handleTaskCreate (ompt_data_t *EncounteringTaskData, const ompt_frame_t *EncounteringTaskFrame, ompt_data_t *NewTaskData, int Flags, int HasDependences, const void *CodeptrRA)
void handleTaskSchedule (ompt_data_t *PriorTaskData, ompt_task_status_t PriorTaskStatus, ompt_data_t *NextTaskData)
void handleImplicitTask (ompt_scope_endpoint_t Endpoint, ompt_data_t *ParallelData, ompt_data_t *TaskData, unsigned int ActualParallelism, unsigned int Index, int Flags)
void handleParallelBegin (ompt_data_t *EncounteringTaskData, const ompt_frame_t *EncounteringTaskFrame, ompt_data_t *ParallelData, unsigned int RequestedParallelism, int Flags, const void *CodeptrRA)
void handleParallelEnd (ompt_data_t *ParallelData, ompt_data_t *EncounteringTaskData, int Flags, const void *CodeptrRA)
void handleDeviceInitialize (int DeviceNum, const char *Type, ompt_device_t *Device, ompt_function_lookup_t LookupFn, const char *DocumentationStr)
void handleDeviceFinalize (int DeviceNum)
void handleTarget (ompt_target_t Kind, ompt_scope_endpoint_t Endpoint, int DeviceNum, ompt_data_t *TaskData, ompt_id_t TargetId, const void *CodeptrRA)
void handleTargetEmi (ompt_target_t Kind, ompt_scope_endpoint_t Endpoint, int DeviceNum, ompt_data_t *TaskData, ompt_data_t *TargetTaskData, ompt_data_t *TargetData, const void *CodeptrRA)
void handleTargetSubmit (ompt_id_t TargetId, ompt_id_t HostOpId, unsigned int RequestedNumTeams)
void handleTargetSubmitEmi (ompt_scope_endpoint_t Endpoint, ompt_data_t *TargetData, ompt_id_t *HostOpId, unsigned int RequestedNumTeams)
void handleTargetDataOp (ompt_id_t TargetId, ompt_id_t HostOpId, ompt_target_data_op_t OpType, void *SrcAddr, int SrcDeviceNum, void *DstAddr, int DstDeviceNum, size_t Bytes, const void *CodeptrRA)
void handleTargetDataOpEmi (ompt_scope_endpoint_t Endpoint, ompt_data_t *TargetTaskData, ompt_data_t *TargetData, ompt_id_t *HostOpId, ompt_target_data_op_t OpType, void *SrcAddr, int SrcDeviceNum, void *DstAddr, int DstDeviceNum, size_t Bytes, const void *CodeptrRA)
void handleDeviceLoad (int DeviceNum, const char *Filename, int64_t OffsetInFile, void *VmaInFile, size_t Bytes, void *HostAddr, void *DeviceAddr, uint64_t ModuleId)
void handleDeviceUnload (int DeviceNum, uint64_t ModuleId)
void handleBufferRequest (int DeviceNum, ompt_buffer_t **Buffer, size_t *Bytes)
void handleBufferComplete (int DeviceNum, ompt_buffer_t *Buffer, size_t Bytes, ompt_buffer_cursor_t Begin, int BufferOwned)
void handleBufferRecord (ompt_record_ompt_t *Record)
void handleBufferRecordDeallocation (ompt_buffer_t *Buffer)
void handleWork (ompt_work_t WorkType, ompt_scope_endpoint_t Endpoint, ompt_data_t *ParallelData, ompt_data_t *TaskData, uint64_t Count, const void *CodeptrRA)
 Not needed for a conforming minimal OMPT implementation.
void handleDispatch (ompt_data_t *ParallelData, ompt_data_t *TaskData, ompt_dispatch_t Kind, ompt_data_t Instance)
void handleSyncRegion (ompt_sync_region_t Kind, ompt_scope_endpoint_t Endpoint, ompt_data_t *ParallelData, ompt_data_t *TaskData, const void *CodeptrRA)

Static Public Member Functions

static OmptCallbackHandlerget ()
 Singleton handler.

Detailed Description

Handler class to do whatever is needed to be done when a callback is invoked by the OMP runtime Supports a RecordAndReplay mechanism in which all OMPT events are recorded and then replayed.

This is so that a test can assert on, e.g., a device initialize event, even though this would occur before a unit test is actually executed.

Definition at line 32 of file OmptCallbackHandler.h.

Constructor & Destructor Documentation

◆ ~OmptCallbackHandler()

omptest::OmptCallbackHandler::~OmptCallbackHandler ( )
default

References Index().

Member Function Documentation

◆ clearSubscribers()

void OmptCallbackHandler::clearSubscribers ( )

Remove all subscribers.

Definition at line 31 of file OmptCallbackHandler.cpp.

References replay().

Referenced by TestCase::exec(), testing::OmptTestCase::TearDown(), and testing::OmptTestCaseXFail::TearDown().

◆ get()

◆ handleAssertionSyncPoint()

void OmptCallbackHandler::handleAssertionSyncPoint ( const std::string & SyncPointName)

Special asserter callback which checks that upon encountering the synchronization point, all expected events have been processed.

That is: there are currently no remaining expected events for any asserter.

Definition at line 430 of file OmptCallbackHandler.cpp.

References omptest::OmptAssertEvent::AssertionSyncPoint(), omptest::Generated, and S.

◆ handleBufferComplete()

void OmptCallbackHandler::handleBufferComplete ( int DeviceNum,
ompt_buffer_t * Buffer,
size_t Bytes,
ompt_buffer_cursor_t Begin,
int BufferOwned )

◆ handleBufferRecord()

void OmptCallbackHandler::handleBufferRecord ( ompt_record_ompt_t * Record)

◆ handleBufferRecordDeallocation()

void OmptCallbackHandler::handleBufferRecordDeallocation ( ompt_buffer_t * Buffer)

◆ handleBufferRequest()

void OmptCallbackHandler::handleBufferRequest ( int DeviceNum,
ompt_buffer_t ** Buffer,
size_t * Bytes )

◆ handleDeviceFinalize()

void OmptCallbackHandler::handleDeviceFinalize ( int DeviceNum)

◆ handleDeviceInitialize()

void OmptCallbackHandler::handleDeviceInitialize ( int DeviceNum,
const char * Type,
ompt_device_t * Device,
ompt_function_lookup_t LookupFn,
const char * DocumentationStr )

◆ handleDeviceLoad()

void OmptCallbackHandler::handleDeviceLoad ( int DeviceNum,
const char * Filename,
int64_t OffsetInFile,
void * VmaInFile,
size_t Bytes,
void * HostAddr,
void * DeviceAddr,
uint64_t ModuleId )

◆ handleDeviceUnload()

void OmptCallbackHandler::handleDeviceUnload ( int DeviceNum,
uint64_t ModuleId )

◆ handleDispatch()

void OmptCallbackHandler::handleDispatch ( ompt_data_t * ParallelData,
ompt_data_t * TaskData,
ompt_dispatch_t Kind,
ompt_data_t Instance )

◆ handleImplicitTask()

void OmptCallbackHandler::handleImplicitTask ( ompt_scope_endpoint_t Endpoint,
ompt_data_t * ParallelData,
ompt_data_t * TaskData,
unsigned int ActualParallelism,
unsigned int Index,
int Flags )

◆ handleParallelBegin()

void OmptCallbackHandler::handleParallelBegin ( ompt_data_t * EncounteringTaskData,
const ompt_frame_t * EncounteringTaskFrame,
ompt_data_t * ParallelData,
unsigned int RequestedParallelism,
int Flags,
const void * CodeptrRA )

◆ handleParallelEnd()

void OmptCallbackHandler::handleParallelEnd ( ompt_data_t * ParallelData,
ompt_data_t * EncounteringTaskData,
int Flags,
const void * CodeptrRA )

◆ handleSyncRegion()

void OmptCallbackHandler::handleSyncRegion ( ompt_sync_region_t Kind,
ompt_scope_endpoint_t Endpoint,
ompt_data_t * ParallelData,
ompt_data_t * TaskData,
const void * CodeptrRA )

◆ handleTarget()

void OmptCallbackHandler::handleTarget ( ompt_target_t Kind,
ompt_scope_endpoint_t Endpoint,
int DeviceNum,
ompt_data_t * TaskData,
ompt_id_t TargetId,
const void * CodeptrRA )

◆ handleTargetDataOp()

void OmptCallbackHandler::handleTargetDataOp ( ompt_id_t TargetId,
ompt_id_t HostOpId,
ompt_target_data_op_t OpType,
void * SrcAddr,
int SrcDeviceNum,
void * DstAddr,
int DstDeviceNum,
size_t Bytes,
const void * CodeptrRA )

◆ handleTargetDataOpEmi()

void OmptCallbackHandler::handleTargetDataOpEmi ( ompt_scope_endpoint_t Endpoint,
ompt_data_t * TargetTaskData,
ompt_data_t * TargetData,
ompt_id_t * HostOpId,
ompt_target_data_op_t OpType,
void * SrcAddr,
int SrcDeviceNum,
void * DstAddr,
int DstDeviceNum,
size_t Bytes,
const void * CodeptrRA )

◆ handleTargetEmi()

void OmptCallbackHandler::handleTargetEmi ( ompt_target_t Kind,
ompt_scope_endpoint_t Endpoint,
int DeviceNum,
ompt_data_t * TaskData,
ompt_data_t * TargetTaskData,
ompt_data_t * TargetData,
const void * CodeptrRA )

◆ handleTargetSubmit()

void OmptCallbackHandler::handleTargetSubmit ( ompt_id_t TargetId,
ompt_id_t HostOpId,
unsigned int RequestedNumTeams )

◆ handleTargetSubmitEmi()

void OmptCallbackHandler::handleTargetSubmitEmi ( ompt_scope_endpoint_t Endpoint,
ompt_data_t * TargetData,
ompt_id_t * HostOpId,
unsigned int RequestedNumTeams )

◆ handleTaskCreate()

void OmptCallbackHandler::handleTaskCreate ( ompt_data_t * EncounteringTaskData,
const ompt_frame_t * EncounteringTaskFrame,
ompt_data_t * NewTaskData,
int Flags,
int HasDependences,
const void * CodeptrRA )

◆ handleTaskSchedule()

void OmptCallbackHandler::handleTaskSchedule ( ompt_data_t * PriorTaskData,
ompt_task_status_t PriorTaskStatus,
ompt_data_t * NextTaskData )

◆ handleThreadBegin()

void OmptCallbackHandler::handleThreadBegin ( ompt_thread_t ThreadType,
ompt_data_t * ThreadData )

◆ handleThreadEnd()

void OmptCallbackHandler::handleThreadEnd ( ompt_data_t * ThreadData)

◆ handleWork()

void OmptCallbackHandler::handleWork ( ompt_work_t WorkType,
ompt_scope_endpoint_t Endpoint,
ompt_data_t * ParallelData,
ompt_data_t * TaskData,
uint64_t Count,
const void * CodeptrRA )

Not needed for a conforming minimal OMPT implementation.

Definition at line 377 of file OmptCallbackHandler.cpp.

References omptest::Generated, S, and omptest::OmptAssertEvent::Work().

Referenced by on_ompt_callback_work().

◆ replay()

void OmptCallbackHandler::replay ( )

When the record and replay mechanism is enabled this replays all OMPT events.

Definition at line 37 of file OmptCallbackHandler.cpp.

References S.

Referenced by clearSubscribers().

◆ subscribe()

void OmptCallbackHandler::subscribe ( OmptListener * Listener)

Subscribe a listener to be notified for OMPT events.

Definition at line 27 of file OmptCallbackHandler.cpp.

Referenced by TestCase::exec(), ompt_initialize(), and testing::OmptTestCase::SetUp().


The documentation for this class was generated from the following files: