Sanitizer Callback API


Data Structures

struct  Sanitizer_BatchMemopData
 Data passed into a batch memop callback function. More...
struct  Sanitizer_CallbackData
 Data passed into a runtime or driver API callback function. More...
struct  Sanitizer_EventData
 Data passed into an event callback function. More...
struct  Sanitizer_ExternalMemoryData
 Data passed into an external memory callback function. More...
struct  Sanitizer_GraphExecData
 Data passed into a graphexec creation callback function. More...
struct  Sanitizer_GraphLaunchData
 Data passed into a graph launch callback function. More...
struct  Sanitizer_GraphNodeLaunchData
 Data passed into a graph node launch callback function. More...
struct  Sanitizer_LaunchData
 Data passed into a launch callback function. More...
struct  Sanitizer_MemcpyData
 Data passed into a memcpy callback function. More...
struct  Sanitizer_MemsetData
 Data passed into a memset callback function. More...
struct  Sanitizer_ResourceArrayData
 Data passed into a CUDA array callback function. More...
struct  Sanitizer_ResourceContextData
 Data passed into a context resource callback function. More...
struct  Sanitizer_ResourceFunctionsLazyLoadedData
 Data passed into a CUDA function callback function. More...
struct  Sanitizer_ResourceMemoryData
 Data passed into a memory resource callback function. More...
struct  Sanitizer_ResourceMempoolData
 Data passed into a mempool resource callback function. More...
struct  Sanitizer_ResourceModuleData
 Data passed into a module resource callback function. More...
struct  Sanitizer_ResourceStreamData
 Data passed into a stream resource callback function. More...
struct  Sanitizer_ResourceVirtualRange
 Data passed into a VA reservation callback function. More...
struct  Sanitizer_SynchronizeData
 Data passed into a synchronization callback function. More...
struct  Sanitizer_UvmData
 Data passed into a managed memory callback function. More...

Typedefs

typedef void(SANITIZERAPI * Sanitizer_CallbackFunc )(void *userdata, Sanitizer_CallbackDomain domain, Sanitizer_CallbackId cbid, const void *cbdata)
 Function type for a callback.
typedef uint32_t Sanitizer_CallbackId
 Callback ID.
typedef struct
Sanitizer_Subscriber_st * 
Sanitizer_SubscriberHandle
 A callback subscriber.

Enumerations

enum  Sanitizer_ApiCallbackSite {
  SANITIZER_API_ENTER = 0,
  SANITIZER_API_EXIT = 1
}
 Specifies the point in an API call that a callback is issued. More...
enum  Sanitizer_BatchMemopType {
  SANITIZER_BATCH_MEMOP_TYPE_32B = 0,
  SANITIZER_BATCH_MEMOP_TYPE_64B = 1
}
 Specifies the type of batch memory operation. More...
enum  Sanitizer_CallackIdSync {
  SANITIZER_CBID_SYNCHRONIZE_INVALID = 0,
  SANITIZER_CBID_SYNCHRONIZE_STREAM_SYNCHRONIZED = 1,
  SANITIZER_CBID_SYNCHRONIZE_CONTEXT_SYNCHRONIZED = 2
}
 Callback IDs for synchronization domain. More...
enum  Sanitizer_CallbackDomain {
  SANITIZER_CB_DOMAIN_INVALID = 0,
  SANITIZER_CB_DOMAIN_DRIVER_API = 1,
  SANITIZER_CB_DOMAIN_RUNTIME_API = 2,
  SANITIZER_CB_DOMAIN_RESOURCE = 3,
  SANITIZER_CB_DOMAIN_SYNCHRONIZE = 4,
  SANITIZER_CB_DOMAIN_LAUNCH = 5,
  SANITIZER_CB_DOMAIN_MEMCPY = 6,
  SANITIZER_CB_DOMAIN_MEMSET = 7,
  SANITIZER_CB_DOMAIN_BATCH_MEMOP = 8,
  SANITIZER_CB_DOMAIN_UVM = 9,
  SANITIZER_CB_DOMAIN_GRAPHS = 10,
  SANITIZER_CB_DOMAIN_EVENTS = 11,
  SANITIZER_CB_DOMAIN_EXTERNAL_MEMORY = 12
}
 Callback domains. More...
enum  Sanitizer_CallbackIdBatchMemop {
  SANITIZER_CBID_BATCH_MEMOP_INVALID = 0,
  SANITIZER_CBID_BATCH_MEMOP_WRITE = 1
}
 Callback IDs for batch memop domain. More...
enum  Sanitizer_CallbackIdEvents {
  SANITIZER_CBID_EVENTS_INVALID = 0,
  SANITIZER_CBID_EVENTS_CREATED = 1,
  SANITIZER_CBID_EVENTS_DESTROYED = 2,
  SANITIZER_CBID_EVENTS_RECORD = 3,
  SANITIZER_CBID_EVENTS_STREAM_WAIT = 4,
  SANITIZER_CBID_EVENTS_SYNCHRONIZE = 5
}
 Callback IDs for events domain. More...
enum  Sanitizer_CallbackIdExternalMemory {
  SANITIZER_CBID_EXTERNAL_MEMORY_INVALID = 0,
  SANITIZER_CBID_EXTERNAL_MEMORY_IMPORT = 1,
  SANITIZER_CBID_EXTERNAL_MEMORY_MAPPED = 2,
  SANITIZER_CBID_EXTERNAL_MEMORY_DESTROYED = 3
}
 Callback IDs for external memory domain. More...
enum  Sanitizer_CallbackIdGraphs {
  SANITIZER_CBID_GRAPHS_INVALID = 0,
  SANITIZER_CBID_GRAPHS_GRAPHEXEC_CREATING = 1,
  SANITIZER_CBID_GRAPHS_GRAPHEXEC_CREATED = 2,
  SANITIZER_CBID_GRAPHS_GRAPHEXEC_DESTROYING = 3,
  SANITIZER_CBID_GRAPHS_NODE_LAUNCH_BEGIN = 4,
  SANITIZER_CBID_GRAPHS_NODE_LAUNCH_END = 5,
  SANITIZER_CBID_GRAPHS_LAUNCH_BEGIN = 6,
  SANITIZER_CBID_GRAPHS_LAUNCH_END = 7
}
 Callback IDs for graphs domain. More...
enum  Sanitizer_CallbackIdLaunch {
  SANITIZER_CBID_LAUNCH_INVALID = 0,
  SANITIZER_CBID_LAUNCH_BEGIN = 1,
  SANITIZER_CBID_LAUNCH_AFTER_SYSCALL_SETUP = 2,
  SANITIZER_CBID_LAUNCH_END = 3
}
 Callback IDs for launch domain. More...
enum  Sanitizer_CallbackIdMemcpy {
  SANITIZER_CBID_MEMCPY_INVALID = 0,
  SANITIZER_CBID_MEMCPY_STARTING = 1
}
 Callback IDs for memcpy domain. More...
enum  Sanitizer_CallbackIdMemset {
  SANITIZER_CBID_MEMSET_INVALID = 0,
  SANITIZER_CBID_MEMSET_STARTING = 1
}
 Callback IDs for memset domain. More...
enum  Sanitizer_CallbackIdResource {
  SANITIZER_CBID_RESOURCE_INVALID = 0,
  SANITIZER_CBID_RESOURCE_INIT_FINISHED = 1,
  SANITIZER_CBID_RESOURCE_CONTEXT_CREATION_STARTING = 2,
  SANITIZER_CBID_RESOURCE_CONTEXT_CREATION_FINISHED = 3,
  SANITIZER_CBID_RESOURCE_CONTEXT_DESTROY_STARTING = 4,
  SANITIZER_CBID_RESOURCE_CONTEXT_DESTROY_FINISHED = 5,
  SANITIZER_CBID_RESOURCE_STREAM_CREATED = 6,
  SANITIZER_CBID_RESOURCE_STREAM_DESTROY_STARTING = 7,
  SANITIZER_CBID_RESOURCE_STREAM_DESTROY_FINISHED = 8,
  SANITIZER_CBID_RESOURCE_MODULE_LOADED = 9,
  SANITIZER_CBID_RESOURCE_MODULE_UNLOAD_STARTING = 10,
  SANITIZER_CBID_RESOURCE_DEVICE_MEMORY_ALLOC = 11,
  SANITIZER_CBID_RESOURCE_DEVICE_MEMORY_FREE = 12,
  SANITIZER_CBID_RESOURCE_HOST_MEMORY_ALLOC = 13,
  SANITIZER_CBID_RESOURCE_HOST_MEMORY_FREE = 14,
  SANITIZER_CBID_RESOURCE_MEMORY_ALLOC_ASYNC = 15,
  SANITIZER_CBID_RESOURCE_MEMORY_FREE_ASYNC = 16,
  SANITIZER_CBID_RESOURCE_MEMORY_FREE_ASYNC_DONE = 17,
  SANITIZER_CBID_RESOURCE_MEMPOOL_CREATED = 18,
  SANITIZER_CBID_RESOURCE_MEMPOOL_DESTROYING = 19,
  SANITIZER_CBID_RESOURCE_MEMPOOL_PEER_ACCESS_ENABLED = 20,
  SANITIZER_CBID_RESOURCE_MEMPOOL_PEER_ACCESS_DISABLING = 21,
  SANITIZER_CBID_RESOURCE_ARRAY_CREATED = 22,
  SANITIZER_CBID_RESOURCE_ARRAY_DESTROYED = 23,
  SANITIZER_CBID_RESOURCE_FUNCTIONS_LAZY_LOADED = 24,
  SANITIZER_CBID_RESOURCE_FUNCTIONS_LAZY_PATCHED = 25,
  SANITIZER_CBID_RESOURCE_VIRTUAL_RESERVE = 26,
  SANITIZER_CBID_RESOURCE_VIRTUAL_RELEASE = 27,
  SANITIZER_CBID_RESOURCE_MEMPOOL_IMPORT_POINTER = 28
}
 Callback IDs for resource domain. More...
enum  Sanitizer_CallbackIdUvm {
  SANITIZER_CBID_UVM_INVALID = 0,
  SANITIZER_CBID_UVM_ATTACH_MEM = 1
}
 Callback IDs for managed memory domain. More...
enum  Sanitizer_MemcpyDirection {
  SANITIZER_MEMCPY_DIRECTION_UNKNOWN = 0,
  SANITIZER_MEMCPY_DIRECTION_HOST_TO_HOST = 1,
  SANITIZER_MEMCPY_DIRECTION_HOST_TO_DEVICE = 2,
  SANITIZER_MEMCPY_DIRECTION_DEVICE_TO_HOST = 3,
  SANITIZER_MEMCPY_DIRECTION_DEVICE_TO_DEVICE = 4
}
 Memcpy direction. More...
enum  Sanitizer_MemoryVisibility {
  SANITIZER_MEMORY_VISIBILITY_INVALID = 0,
  SANITIZER_MEMORY_VISIBILITY_GLOBAL = 1,
  SANITIZER_MEMORY_VISIBILITY_HOST = 2,
  SANITIZER_MEMORY_VISIBILITY_STREAM = 3
}
 Specifies the visibility of an allocation. More...
enum  Sanitizer_ResourceMemoryFlags {
  SANITIZER_MEMORY_FLAG_NONE = 0,
  SANITIZER_MEMORY_FLAG_MODULE = 0x1,
  SANITIZER_MEMORY_FLAG_MANAGED = 0x2,
  SANITIZER_MEMORY_FLAG_HOST_MAPPED = 0x4,
  SANITIZER_MEMORY_FLAG_HOST_PINNED = 0x8,
  SANITIZER_MEMORY_FLAG_PEER = 0x10,
  SANITIZER_MEMORY_FLAG_PEER_ATOMIC = 0x20,
  SANITIZER_MEMORY_FLAG_CG_RUNTIME = 0x40,
  SANITIZER_MEMORY_FLAG_CNP = 0x80
}
 Flags describing a memory allocation. More...
enum  Sanitizer_ResourceMemoryPermissions {
  SANITIZER_MEMORY_PERMISSION_NONE = 0,
  SANITIZER_MEMORY_PERMISSION_READ = 0x1,
  SANITIZER_MEMORY_PERMISSION_WRITE = 0x2,
  SANITIZER_MEMORY_PERMISSION_ATOMIC = 0x4,
  SANITIZER_MEMORY_PERMISSION_ALL = 0x7
}
 Permissions for a memory allocation. More...

Functions

SanitizerResult SANITIZERAPI sanitizerEnableAllDomains (uint32_t enable, Sanitizer_SubscriberHandle subscriber)
 Enable or disable all callbacks in all domains.
SanitizerResult SANITIZERAPI sanitizerEnableCallback (uint32_t enable, Sanitizer_SubscriberHandle subscriber, Sanitizer_CallbackDomain domain, Sanitizer_CallbackId cbid)
 Enable or disable callbacks for a specific domain and callback ID.
SanitizerResult SANITIZERAPI sanitizerEnableDomain (uint32_t enable, Sanitizer_SubscriberHandle subscriber, Sanitizer_CallbackDomain domain)
 Enable or disable all callbacks for a specific domain.
SanitizerResult SANITIZERAPI sanitizerGetCallbackState (uint32_t *enable, Sanitizer_SubscriberHandle subscriber, Sanitizer_CallbackDomain domain, Sanitizer_CallbackId cbid)
 Get the current enabled/disabled state of a callback for a specific domain and function ID.
SanitizerResult SANITIZERAPI sanitizerSubscribe (Sanitizer_SubscriberHandle *subscriber, Sanitizer_CallbackFunc callback, void *userdata)
 Initialize a callback subscriber with a callback function and user data.
SanitizerResult SANITIZERAPI sanitizerUnsubscribe (Sanitizer_SubscriberHandle subscriber)
 Unregister a callback subscriber.

Detailed Description

Functions, types, and enums that implement the Sanitizer Callback API.

Typedef Documentation

typedef void(SANITIZERAPI * Sanitizer_CallbackFunc)(void *userdata, Sanitizer_CallbackDomain domain, Sanitizer_CallbackId cbid, const void *cbdata)

Function type for a callback. The type of the data passed to the callback in cbdata depends on the domain. If domain is SANITIZER_CB_DOMAIN_DRIVER_API or SANITIZER_CB_DOMAIN_RUNTIME_API the type of cbdata will be Sanitizer_CallbackData. If domain is SANITIZER_CB_DOMAIN_RESOURCE the type of cbdata will be dependent on cbid. Refer to Sanitizer_ResourceContextData, Sanitizer_ResourceStreamData, Sanitizer_ResourceModuleData and Sanitizer_ResourceMemoryFlags documentations. If domain is SANITIZER_CB_DOMAIN_SYNCHRONIZE the type of cbdata will be Sanitizer_SynchronizeData. If domain is SANITIZER_CB_DOMAIN_LAUNCH the type of cbdata will be Sanitizer_LaunchData. If domain is SANITIZER_CB_DOMAIN_MEMCPY the type of cbdata will be Sanitizer_MemcpyData. If domain is SANITIZER_CB_DOMAIN_MEMSET the type of cbdata will be Sanitizer_MemsetData. If domain is SANITIZER_CB_DOMAIN_BATCH_MEMOP the type of cbdata will be Sanitizer_BatchMemopData.


Enumeration Type Documentation

Specifies the point in an API that a callback is issued. This value is communicated to the callback function via Sanitizer_CallbackData::CallbackSize.

Enumerator:
SANITIZER_API_ENTER  This callback is at API entry.
SANITIZER_API_EXIT  This callback is at API exit.

Specifies the type of batch memory operation reported by a callback in domain SANITIZER_CB_DOMAIN_BATCH_MEMOP. This value is communicated to the callback function via Sanitizer_BatchMemopData::type.

Enumerator:
SANITIZER_BATCH_MEMOP_TYPE_32B  Batch memory operation size is 32 bits.
SANITIZER_BATCH_MEMOP_TYPE_64B  Batch memory operation size is 64 bits.

Callback IDs for resource domain SANITIZER_CB_DOMAIN_SYNCHRONIZE. This value is communicated to the callback function via the cbid parameter.

Enumerator:
SANITIZER_CBID_SYNCHRONIZE_INVALID  Invalid synchronize callback ID.
SANITIZER_CBID_SYNCHRONIZE_STREAM_SYNCHRONIZED  Stream synchronization has completed for a given stream.
SANITIZER_CBID_SYNCHRONIZE_CONTEXT_SYNCHRONIZED  Context synchronization has completed for a given context.

Callback domain. Each domain represents callback points for a group of related API functions or CUDA driver activity.

Enumerator:
SANITIZER_CB_DOMAIN_INVALID  Invalid domain.
SANITIZER_CB_DOMAIN_DRIVER_API  Domain containing callback points for all driver API functions.
SANITIZER_CB_DOMAIN_RUNTIME_API  Domain containing callback points for all runtime API functions.
SANITIZER_CB_DOMAIN_RESOURCE  Domain containing callback points for CUDA resource tracking.
SANITIZER_CB_DOMAIN_SYNCHRONIZE  Domain containing callback points for CUDA synchronization.
SANITIZER_CB_DOMAIN_LAUNCH  Domain containing callback points for CUDA grid launches.
SANITIZER_CB_DOMAIN_MEMCPY  Domain containing callback points for CUDA memcpy operations.
SANITIZER_CB_DOMAIN_MEMSET  Domain containing callback points for CUDA memset operations.
SANITIZER_CB_DOMAIN_BATCH_MEMOP  Domain containing callback points for CUDA batch memop operations.
SANITIZER_CB_DOMAIN_UVM  Domain containing callback points for CUDA managed memory operations.
SANITIZER_CB_DOMAIN_GRAPHS  Domain containing callback points for CUDA graphs operations.
SANITIZER_CB_DOMAIN_EVENTS  Domain containing callback points for CUDA events.
SANITIZER_CB_DOMAIN_EXTERNAL_MEMORY  Domain containing callback points for CUDA external memory.

Callback IDs for resource domain SANITIZER_CB_DOMAIN_BATCH_MEMOP. This value is communicated to the callback function via the cbid parameter.

Enumerator:
SANITIZER_CBID_BATCH_MEMOP_INVALID  Invalid batch memop callback ID.
SANITIZER_CBID_BATCH_MEMOP_WRITE  A batch memory operation was initiated.

Callback IDs for resource domain SANITIZER_CB_DOMAIN_EVENTS. This value is communicated to the callback function via the cbid parameter. Available with a driver version of 515 or newer.

Enumerator:
SANITIZER_CBID_EVENTS_INVALID  Invalid event callback ID.
SANITIZER_CBID_EVENTS_CREATED  An event was created.
SANITIZER_CBID_EVENTS_DESTROYED  An event was destroyed.
SANITIZER_CBID_EVENTS_RECORD  An event was recorded.
SANITIZER_CBID_EVENTS_STREAM_WAIT  A stream was synchronized to an event.
SANITIZER_CBID_EVENTS_SYNCHRONIZE  An event was synchronized.

Callback IDs for resource domain SANITIZER_CB_DOMAIN_EXTERNA_MEMORY. This value is communicated to the callback function via the cbid parameter. Available with a driver version of 535 or newer.

Enumerator:
SANITIZER_CBID_EXTERNAL_MEMORY_INVALID  Invalid external memory callback ID.
SANITIZER_CBID_EXTERNAL_MEMORY_IMPORT  External memory was imported.
SANITIZER_CBID_EXTERNAL_MEMORY_MAPPED  External memory was mapped.
SANITIZER_CBID_EXTERNAL_MEMORY_DESTROYED  External memory was destroyed.

Callback IDs for resource domain SANITIZER_CB_DOMAIN_GRAPHS. This value is communicated to the callback function via the cbid parameter.

Enumerator:
SANITIZER_CBID_GRAPHS_INVALID  Invalid graphs callback ID.
SANITIZER_CBID_GRAPHS_GRAPHEXEC_CREATING  A new graphexec is being created.
SANITIZER_CBID_GRAPHS_GRAPHEXEC_CREATED  A new graphexec is created.
SANITIZER_CBID_GRAPHS_GRAPHEXEC_DESTROYING  A graphexec is being destroyed
SANITIZER_CBID_GRAPHS_NODE_LAUNCH_BEGIN  A node launch was initiated.
SANITIZER_CBID_GRAPHS_NODE_LAUNCH_END  A node launch is complete.
SANITIZER_CBID_GRAPHS_LAUNCH_BEGIN  A graph launch was initiated.
SANITIZER_CBID_GRAPHS_LAUNCH_END  A graph launch is complete.

Callback IDs for resource domain SANITIZER_CB_DOMAIN_LAUNCH. This value is communicated to the callback function via the cbid parameter.

Enumerator:
SANITIZER_CBID_LAUNCH_INVALID  Invalid launch callback ID.
SANITIZER_CBID_LAUNCH_BEGIN  A grid launch was initiated.
SANITIZER_CBID_LAUNCH_AFTER_SYSCALL_SETUP  A grid launch has completed syscalls setup.
SANITIZER_CBID_LAUNCH_END  The grid launch is complete.

Callback IDs for resource domain SANITIZER_CB_DOMAIN_MEMCPY. This value is communicated to the callback function via the cbid parameter.

Enumerator:
SANITIZER_CBID_MEMCPY_INVALID  Invalid memcpy callback ID.
SANITIZER_CBID_MEMCPY_STARTING  A memcpy operation was initiated.

Callback IDs for resource domain SANITIZER_CB_DOMAIN_MEMSET. This value is communicated to the callback function via the cbid parameter.

Enumerator:
SANITIZER_CBID_MEMSET_INVALID  Invalid memset callback ID.
SANITIZER_CBID_MEMSET_STARTING  A memset operation was initiated.

Callback IDs for resource domain SANITIZER_CB_DOMAIN_RESOURCE. This value is communicated to the callback function via the cbid parameter.

Enumerator:
SANITIZER_CBID_RESOURCE_INVALID  Invalid resource callback ID.
SANITIZER_CBID_RESOURCE_INIT_FINISHED  Driver initialization is finished.
SANITIZER_CBID_RESOURCE_CONTEXT_CREATION_STARTING  A new context is about to be created.
SANITIZER_CBID_RESOURCE_CONTEXT_CREATION_FINISHED  A new context was created.
SANITIZER_CBID_RESOURCE_CONTEXT_DESTROY_STARTING  A context is about to be destroyed.
SANITIZER_CBID_RESOURCE_CONTEXT_DESTROY_FINISHED  A context was destroyed.
SANITIZER_CBID_RESOURCE_STREAM_CREATED  A new stream was created.
SANITIZER_CBID_RESOURCE_STREAM_DESTROY_STARTING  A stream is about to be destroyed.
SANITIZER_CBID_RESOURCE_STREAM_DESTROY_FINISHED  A stream was destroyed.
SANITIZER_CBID_RESOURCE_MODULE_LOADED  A module was loaded.
SANITIZER_CBID_RESOURCE_MODULE_UNLOAD_STARTING  A module is about to be unloaded.
SANITIZER_CBID_RESOURCE_DEVICE_MEMORY_ALLOC  Device memory was allocated.
SANITIZER_CBID_RESOURCE_DEVICE_MEMORY_FREE  Device memory was freed.
SANITIZER_CBID_RESOURCE_HOST_MEMORY_ALLOC  Pinned host memory was allocated.
SANITIZER_CBID_RESOURCE_HOST_MEMORY_FREE  Pinned host memory was freed.
SANITIZER_CBID_RESOURCE_MEMORY_ALLOC_ASYNC  Memory was allocated asynchronously.
SANITIZER_CBID_RESOURCE_MEMORY_FREE_ASYNC  Memory was freed asynchronously.
SANITIZER_CBID_RESOURCE_MEMORY_FREE_ASYNC_DONE  Memory freed asynchronously was released, only happens if a regular allocation (cudaMalloc) is free'd asynchronously (cudaFreeAsync).

See CUDA runtime documentation for cudaFreeAsync

SANITIZER_CBID_RESOURCE_MEMPOOL_CREATED  A new mempool was created.
SANITIZER_CBID_RESOURCE_MEMPOOL_DESTROYING  A mempool is about to be destroyed.
SANITIZER_CBID_RESOURCE_MEMPOOL_PEER_ACCESS_ENABLED  A mempool is now accessible from a peer device.
SANITIZER_CBID_RESOURCE_MEMPOOL_PEER_ACCESS_DISABLING  A mempool is no longer accessible from a peer device.
SANITIZER_CBID_RESOURCE_ARRAY_CREATED  A CUDA array was created.
SANITIZER_CBID_RESOURCE_ARRAY_DESTROYED  A CUDA array was destroyed.
SANITIZER_CBID_RESOURCE_FUNCTIONS_LAZY_LOADED  CUDA functions were loaded lazily and are fully loaded.
SANITIZER_CBID_RESOURCE_FUNCTIONS_LAZY_PATCHED  CUDA lazily loaded functions were patched.
SANITIZER_CBID_RESOURCE_VIRTUAL_RESERVE  The CUDA driver reserved a virtual address range.
SANITIZER_CBID_RESOURCE_VIRTUAL_RELEASE  The CUDA driver released a virtual address range.
SANITIZER_CBID_RESOURCE_MEMPOOL_IMPORT_POINTER  A memory pool allocation was imported.

Callback IDs for resource domain SANITIZER_CB_DOMAIN_UVM. This value is communicated to the callback function via the cbid parameter.

Enumerator:
SANITIZER_CBID_UVM_INVALID  Invalid managed memory callback ID.
SANITIZER_CBID_UVM_ATTACH_MEM  Modify the stream association of an allocation (see cudaStreamAttachMemAsync)

Indicates the direction of a memcpy, passed inside Sanitizer_Memcpydata.

Enumerator:
SANITIZER_MEMCPY_DIRECTION_UNKNOWN  Unknown memcpy direction
SANITIZER_MEMCPY_DIRECTION_HOST_TO_HOST  Memcpy from host to host.
SANITIZER_MEMCPY_DIRECTION_HOST_TO_DEVICE  Memcpy from host to device.
SANITIZER_MEMCPY_DIRECTION_DEVICE_TO_HOST  Memcpy from device to host.
SANITIZER_MEMCPY_DIRECTION_DEVICE_TO_DEVICE  Memcpy from device to device.

Specifies the visibility of an allocation. This is typically GLOBAL on allocations made via cudaMalloc, cudaHostAlloc and similar APIs. This can be GLOBAL or HOST for cudaMallocManaged allocations depending on the flags parameter. This can be changed after allocation time using cudaMemAttachSingle API (see SANITIZER_CBID_UVM_ATTACH_MEM for the corresponding callback).

Enumerator:
SANITIZER_MEMORY_VISIBILITY_INVALID  Invalid memory visibility
SANITIZER_MEMORY_VISIBILITY_GLOBAL  Memory can be accessed by any stream on any device (see cudaMemAttachGlobal)
SANITIZER_MEMORY_VISIBILITY_HOST  Memory cannot be accessed by any stream on any device (see cudaMemAttachHost)
SANITIZER_MEMORY_VISIBILITY_STREAM  Memory can only be accessed by a single stream on the associated device (see cudaMemAttachSingle)

Flags describing a memory allocation. These values are to be used in order to interpret the value of Sanitizer_ResourceMemoryData::flags

Enumerator:
SANITIZER_MEMORY_FLAG_NONE  Empty flag.
SANITIZER_MEMORY_FLAG_MODULE  Specifies that the allocation is static scoped to a module.
SANITIZER_MEMORY_FLAG_MANAGED  Specifies that the allocation is managed memory.
SANITIZER_MEMORY_FLAG_HOST_MAPPED  Species that the allocation accessible from the host.
SANITIZER_MEMORY_FLAG_HOST_PINNED  Specifies that the allocation is pinned on the host.
SANITIZER_MEMORY_FLAG_PEER  Specifies that the allocation is located on a peer GPU.
SANITIZER_MEMORY_FLAG_PEER_ATOMIC  Specifies that the allocation is located on a peer GPU supporting native atomics. This implies that SANITIZER_MEMORY_FLAG_PEER is set as well.
SANITIZER_MEMORY_FLAG_CG_RUNTIME  Specifies that the allocation is used by the Cooperative Groups runtime functions.
SANITIZER_MEMORY_FLAG_CNP  Specifies that this is an allocation used for CUDA Dynamic Parallelism purposes.

Permissions for a memory allocation. These values are to be used in order to interpret the value of Sanitizer_ResourceMemoryData::permissions

Enumerator:
SANITIZER_MEMORY_PERMISSION_NONE  No permissions.
SANITIZER_MEMORY_PERMISSION_READ  Specifies that the allocation is readable.
SANITIZER_MEMORY_PERMISSION_WRITE  Specifies that the allocation is writable.
SANITIZER_MEMORY_PERMISSION_ATOMIC  Specifies that the allocation is readable/writable with atomic operations.
SANITIZER_MEMORY_PERMISSION_ALL  Specifies that the allocation has all permissions.


Function Documentation

SanitizerResult SANITIZERAPI sanitizerEnableAllDomains ( uint32_t  enable,
Sanitizer_SubscriberHandle  subscriber 
)

Enable or disable all callbacks in all domains.

Note:
Thread-safety: a subscriber must serialize access to sanitizerGetCallbackState, sanitizerEnableCallback, sanitizerEnableDomain, and sanitizerEnableAllDomains. For example, if sanitizerGetCallbackState(sub, d, *) and sanitizerEnableAllDomains(sub) are called concurrently, the results are undefined.
Parameters:
enable New enable state for all callbacks in all domains. Zero disables all callbacks, non-zero enables all callbacks.
subscriber - Handle of the initialized subscriber
Return values:
SANITIZER_SUCCESS on success
SANITIZER_ERROR_NOT_INITIALIZED if unable to initialize the sanitizer
SANITIZER_ERROR_INVALID_PARAMETER if subscriber is invalid

SanitizerResult SANITIZERAPI sanitizerEnableCallback ( uint32_t  enable,
Sanitizer_SubscriberHandle  subscriber,
Sanitizer_CallbackDomain  domain,
Sanitizer_CallbackId  cbid 
)

Enable or disable callbacks for a subscriber for a specific domain and callback ID.

Note:
Thread-safety: a subscriber must serialize access to sanitizerGetCallbackState, sanitizerEnableCallback, sanitizerEnableDomain, and sanitizerEnableAllDomains. For example, if sanitizerGetCallbackState(sub, d, c) and sanitizerEnableCallback(sub, d, c) are called concurrently, the results are undefined.
Parameters:
enable New enable state for the callback. Zero disables the callback, non-zero enables the callback
subscriber - Handle of the initialized subscriber
domain The domain of the callback
cbid The ID of the callback
Return values:
SANITIZER_SUCCESS on success
SANITIZER_ERROR_NOT_INITIALIZED if unable to initialize the sanitizer
SANITIZER_ERROR_INVALID_PARAMETER if subscriber, domain or cbid is invalid

SanitizerResult SANITIZERAPI sanitizerEnableDomain ( uint32_t  enable,
Sanitizer_SubscriberHandle  subscriber,
Sanitizer_CallbackDomain  domain 
)

Enable or disable all callbacks for a specific domain.

Note:
Thread-safety: a subscriber must serialize access to sanitizerGetCallbackState, sanitizerEnableCallback, sanitizerEnableDomain, and sanitizerEnableAllDomains. For example, if sanitizerGetCallbackEnabled(sub, d, *) and sanitizerEnableDomain(sub, d) are called concurrently, the results are undefined.
Parameters:
enable New enable state for all callbacks in the domain. Zero disables all callbacks, non-zero enables all callbacks
subscriber - Handle of the initialized subscriber
domain The domain of the callback
Return values:
SANITIZER_SUCCESS on success
SANITIZER_ERROR_NOT_INITIALIZED if unable to initialize the sanitizer
SANITIZER_ERROR_INVALID_PARAMETER if subscriber or domain is invalid

SanitizerResult SANITIZERAPI sanitizerGetCallbackState ( uint32_t *  enable,
Sanitizer_SubscriberHandle  subscriber,
Sanitizer_CallbackDomain  domain,
Sanitizer_CallbackId  cbid 
)

Returns non-zero in *enable if the callback for a domain and callback ID is enabled, and zero if not enabled.

Note:
Thread-safety: a subscriber must serialize access to sanitizerGetCallbackState, sanitizerEnableCallback, sanitizerEnableDomain, and sanitizerEnableAllDomains. For example, if sanitizerGetCallbackState(sub, d, c) and sanitizerEnableCallback(sub, d, c) are called concurrently, the results are undefined.
Parameters:
enable Returns non-zero if callback enabled, zero if not enabled
subscriber Handle to the initialized subscriber
domain The domain of the callback
cbid The ID of the callback
Return values:
SANITIZER_SUCCESS on success
SANITIZER_ERROR_NOT_INITIALIZED if unable to initialize the sanitizer
SANITIZER_ERROR_INVALID_PARAMETER if enabled is NULL, or if subscriber, domain or cbid is invalid.

SanitizerResult SANITIZERAPI sanitizerSubscribe ( Sanitizer_SubscriberHandle subscriber,
Sanitizer_CallbackFunc  callback,
void *  userdata 
)

Initialize a callback subscriber with a callback function and (optionally) a pointer to user data. The returned subscriber handle can be used to enable and disable the callback for specific domains and callback IDs.

Note:
Only one subscriber can be registered at a time.

This function does not enable any callbacks.

Thread-safety: this function is thread safe.

Parameters:
subscriber Returns handle to initialize subscriber
callback The callback function
userdata A pointer to user data. This data will be passed to the callback function via the userdata parameter
Return values:
SANITIZER_SUCCESS on success
SANITIZER_ERROR_NOT_INITIALIZED if unable to initialize the sanitizer
SANITIZER_ERROR_MAX_LIMIT_RACHED if there is already a sanitizer subscriber
SANITIZER_ERROR_INVALID_PARAMETER if subscriber is NULL

SanitizerResult SANITIZERAPI sanitizerUnsubscribe ( Sanitizer_SubscriberHandle  subscriber  ) 

Removes a callback subscriber so that no future callback will be issued to that subscriber.

Note:
Thread-safety: this function is thread safe.
Parameters:
subscriber Handle to the initialized subscriber
Return values:
SANITIZER_SUCCESS on success
SANITIZER_ERROR_NOT_INITIALIZED if unable to initialize the sanitizer
SANITIZER_ERROR_INVALID_PARAMETER if subscriber is NULL or not initialized


Generated on Mon Apr 15 23:05:33 2024 for SanitizerApi by  doxygen 1.5.8