rocprofiler-sdk/buffer_tracing.h Source File

rocprofiler-sdk/buffer_tracing.h Source File#

Rocprofiler SDK Developer API: rocprofiler-sdk/buffer_tracing.h Source File
Rocprofiler SDK Developer API 0.5.0
ROCm Profiling API and tools
buffer_tracing.h
Go to the documentation of this file.
1// MIT License
2//
3// Copyright (c) 2023 Advanced Micro Devices, Inc. All rights reserved.
4//
5// Permission is hereby granted, free of charge, to any person obtaining a copy
6// of this software and associated documentation files (the "Software"), to deal
7// in the Software without restriction, including without limitation the rights
8// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9// copies of the Software, and to permit persons to whom the Software is
10// furnished to do so, subject to the following conditions:
11//
12// The above copyright notice and this permission notice shall be included in all
13// copies or substantial portions of the Software.
14//
15// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21// SOFTWARE.
22
23#pragma once
24
27#include <rocprofiler-sdk/fwd.h>
28
29#include <stdint.h>
30
31ROCPROFILER_EXTERN_C_INIT
32
33/**
34 * @defgroup BUFFER_TRACING_SERVICE Asynchronous Tracing Service
35 * @brief Receive callbacks for batches of records from an internal (background) thread
36 *
37 * @{
38 */
39
40/**
41 * @brief Page migration triggers
42 *
43 */
53
54/**
55 * @brief Page migration triggers causing the queue to suspend
56 *
57 */
69
70/**
71 * @brief Page migration triggers causing an unmap from the GPU
72 *
73 */
82
83/**
84 * @brief ROCProfiler Buffer HSA API Tracer Record.
85 */
86typedef struct
87{
88 uint64_t size; ///< size of this struct
91 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
92 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
93 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
94 rocprofiler_thread_id_t thread_id; ///< id for thread generating this record
95
96 /// @var kind
97 /// @brief ::ROCPROFILER_CALLBACK_TRACING_HSA_CORE_API,
98 /// ::ROCPROFILER_CALLBACK_TRACING_HSA_AMD_EXT_API,
99 /// ::ROCPROFILER_CALLBACK_TRACING_HSA_IMAGE_EXT_API, or
100 /// ::ROCPROFILER_CALLBACK_TRACING_HSA_FINALIZE_EXT_API
101 /// @var operation
102 /// @brief Specification of the API function, e.g., ::rocprofiler_hsa_core_api_id_t,
103 /// ::rocprofiler_hsa_amd_ext_api_id_t, ::rocprofiler_hsa_image_ext_api_id_t, or
104 /// ::rocprofiler_hsa_finalize_ext_api_id_t
106
107/**
108 * @brief ROCProfiler Buffer HIP API Tracer Record.
109 */
110typedef struct
111{
112 uint64_t size; ///< size of this struct
115 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
116 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
117 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
118 rocprofiler_thread_id_t thread_id; ///< id for thread generating this record
119
120 /// @var kind
121 /// @brief ::ROCPROFILER_CALLBACK_TRACING_HIP_RUNTIME_API or
122 /// ::ROCPROFILER_CALLBACK_TRACING_HIP_COMPILER_API
123 /// @var operation
124 /// @brief Specification of the API function, e.g., ::rocprofiler_hip_runtime_api_id_t or
125 /// ::rocprofiler_hip_compiler_api_id_t
127
128/**
129 * @brief ROCProfiler Buffer Marker Tracer Record.
130 */
131typedef struct
132{
133 uint64_t size; ///< size of this struct
136 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
137 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
138 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
139 rocprofiler_thread_id_t thread_id; ///< id for thread generating this record
140
141 /// @var kind
142 /// @brief ::ROCPROFILER_CALLBACK_TRACING_MARKER_CORE_API,
143 /// ::ROCPROFILER_CALLBACK_TRACING_MARKER_CONTROL_API, or
144 /// ::ROCPROFILER_CALLBACK_TRACING_MARKER_NAME_API
145 /// @brief Specification of the API function, e.g., ::rocprofiler_marker_core_api_id_t,
146 /// ::rocprofiler_marker_control_api_id_t, or
147 /// ::rocprofiler_marker_name_api_id_t
149
150/**
151 * @brief ROCProfiler Buffer Memory Copy Tracer Record.
152 */
153typedef struct
154{
155 uint64_t size; ///< size of this struct
158 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
159 rocprofiler_thread_id_t thread_id; ///< id for thread that triggered copy
160 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
161 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
162 rocprofiler_agent_id_t dst_agent_id; ///< destination agent of copy
163 rocprofiler_agent_id_t src_agent_id; ///< source agent of copy
164 uint64_t bytes; ///< bytes copied
165
166 /// @var kind
167 /// @brief ::ROCPROFILER_BUFFER_TRACING_MEMORY_COPY
168 /// @var operation
169 /// @brief Specification of the memory copy direction (@see
170 /// ::rocprofiler_memory_copy_operation_t)
172
173/**
174 * @brief ROCProfiler Buffer Kernel Dispatch Tracer Record.
175 */
177{
178 uint64_t size; ///< size of this struct
179 rocprofiler_buffer_tracing_kind_t kind; ///< ::ROCPROFILER_BUFFER_TRACING_KERNEL_DISPATCH
181 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
182 rocprofiler_thread_id_t thread_id; ///< id for thread that launched kernel
183 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
184 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
186
187 /// @var operation
188 /// @brief Kernel dispatch buffer records only report the ::ROCPROFILER_KERNEL_DISPATCH_COMPLETE
189 /// operation because there are no "real" wrapper around the enqueuing of an individual kernel
190 /// dispatch
192
193typedef struct
194{
195 uint8_t read_fault : 1; ///< Is the fault due to a read or a write
196 uint8_t migrated : 1;
197 uint32_t node_id; ///< GPU or CPU node ID which reports a page fault
198 uint64_t address; ///< Address access that caused the page fault
200
201typedef struct
202{
203 uint64_t start_addr; ///< Start address of the page being migrated
204 uint64_t end_addr; ///< End address of the page being migrated
205 uint32_t from_node; ///< Source node
206 uint32_t to_node; ///< Destination node
207 uint32_t prefetch_node; ///< Node from which page was prefetched
208 uint32_t preferred_node; ///< Preferred destinaion node
211
212typedef struct
213{
214 uint8_t rescheduled : 1;
215 uint32_t node_id; ///< GPU node from which the queue was suspended
218
219typedef struct
220{
221 uint32_t node_id; ///< Node ID from which page was unmapped
222 uint64_t start_addr; ///< Start address of unmapped page
223 uint64_t end_addr; ///< End address of unmapped page
226
227/**
228 * @brief ROCProfiler Buffer Page Migration Tracer Record
229 */
251
252/**
253 * @brief ROCProfiler Buffer Scratch Memory Tracer Record
254 */
255typedef struct
256{
257 uint64_t size; ///< size of this struct
258 rocprofiler_buffer_tracing_kind_t kind; ///< ::ROCPROFILER_BUFFER_TRACING_SCRATCH_MEMORY
259 rocprofiler_scratch_memory_operation_t operation; ///< specification of the kind
260 rocprofiler_agent_id_t agent_id; ///< agent kernel was dispatched on
261 rocprofiler_queue_id_t queue_id; ///< queue kernel was dispatched on
262 rocprofiler_thread_id_t thread_id; ///< id for thread generating this record
263 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
264 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
265 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
268
269/**
270 * @brief ROCProfiler Buffer Correlation ID Retirement Tracer Record.
271 */
272typedef struct
273{
274 uint64_t size; ///< size of this struct
278
279 /// @var kind
280 /// @brief ::ROCPROFILER_BUFFER_TRACING_CORRELATION_ID_RETIREMENT
281 /// @var timestamp
282 /// @brief Timestamp (in nanosec) of when rocprofiler detected the correlation ID could be
283 /// retired. Due to clock skew between the CPU and GPU, this may at times, *appear* to be before
284 /// the kernel or memory copy completed but the reality is that if this ever occurred, the API
285 /// would report a FATAL error
286 /// @var internal_correlation_id
287 /// @brief Only internal correlation ID is provided
289
290/**
291 * @brief Callback function for mapping @ref rocprofiler_buffer_tracing_kind_t ids to
292 * string names. @see rocprofiler_iterate_buffer_trace_kind_names.
293 */
295 void* data);
296
297/**
298 * @brief Callback function for mapping the operations of a given @ref
299 * rocprofiler_buffer_tracing_kind_t to string names. @see
300 * rocprofiler_iterate_buffer_trace_kind_operation_names.
301 */
305 void* data);
306
307/**
308 * @brief Configure Buffer Tracing Service.
309 *
310 * @param [in] context_id Associated context to control activation of service
311 * @param [in] kind Buffer tracing category
312 * @param [in] operations Array of specific operations (if desired)
313 * @param [in] operations_count Number of specific operations (if non-null set of operations)
314 * @param [in] buffer_id Buffer to store the records in
315 * @return ::rocprofiler_status_t
316 * @retval ::ROCPROFILER_STATUS_ERROR_CONFIGURATION_LOCKED ::rocprofiler_configure initialization
317 * phase has passed
318 * @retval ::ROCPROFILER_STATUS_ERROR_CONTEXT_NOT_FOUND context is not valid
319 * @retval ::ROCPROFILER_STATUS_ERROR_SERVICE_ALREADY_CONFIGURED Context has already been configured
320 * for the ::rocprofiler_buffer_tracing_kind_t kind
321 * @retval ::ROCPROFILER_STATUS_ERROR_KIND_NOT_FOUND Invalid ::rocprofiler_buffer_tracing_kind_t
322 * @retval ::ROCPROFILER_STATUS_ERROR_OPERATION_NOT_FOUND Invalid operation id for
323 * ::rocprofiler_buffer_tracing_kind_t kind was found
324 *
325 */
329 const rocprofiler_tracing_operation_t* operations,
330 size_t operations_count,
331 rocprofiler_buffer_id_t buffer_id) ROCPROFILER_API;
332
333/**
334 * @brief Query the name of the buffer tracing kind. The name retrieved from this function is a
335 * string literal that is encoded in the read-only section of the binary (i.e. it is always
336 * "allocated" and never "deallocated").
337 *
338 * @param [in] kind Buffer tracing domain
339 * @param [out] name If non-null and the name is a constant string that does not require dynamic
340 * allocation, this paramter will be set to the address of the string literal, otherwise it will
341 * be set to nullptr
342 * @param [out] name_len If non-null, this will be assigned the length of the name (regardless of
343 * the name is a constant string or requires dynamic allocation)
344 * @return ::rocprofiler_status_t
345 * @retval ::ROCPROFILER_STATUS_ERROR_KIND_NOT_FOUND Returned if the domain id is not valid
346 * @retval ::ROCPROFILER_STATUS_SUCCESS Returned if a valid domain, regardless if there is a
347 * constant string or not.
348 */
351 const char** name,
352 uint64_t* name_len) ROCPROFILER_API;
353
354/**
355 * @brief Query the name of the buffer tracing kind. The name retrieved from this function is a
356 * string literal that is encoded in the read-only section of the binary (i.e. it is always
357 * "allocated" and never "deallocated").
358 *
359 * @param [in] kind Buffer tracing domain
360 * @param [in] operation Enumeration id value which maps to a specific API function or event type
361 * @param [out] name If non-null and the name is a constant string that does not require dynamic
362 * allocation, this paramter will be set to the address of the string literal, otherwise it will
363 * be set to nullptr
364 * @param [out] name_len If non-null, this will be assigned the length of the name (regardless of
365 * the name is a constant string or requires dynamic allocation)
366 * @return ::rocprofiler_status_t
367 * @retval ::ROCPROFILER_STATUS_ERROR_KIND_NOT_FOUND An invalid domain id
368 * @retval ::ROCPROFILER_STATUS_ERROR_OPERATION_NOT_FOUND The operation number is not recognized for
369 * the given domain
370 * @retval ::ROCPROFILER_STATUS_ERROR_NOT_IMPLEMENTED Rocprofiler does not support providing the
371 * operation name within this domain
372 * @retval ::ROCPROFILER_STATUS_SUCCESS Valid domain and operation, regardless of whether there is a
373 * constant string or not.
374 */
378 const char** name,
379 uint64_t* name_len) ROCPROFILER_API;
380
381/**
382 * @brief Iterate over all the buffer tracing kinds and invokes the callback for each buffer tracing
383 * kind.
384 *
385 * This is typically used to invoke ::rocprofiler_iterate_buffer_tracing_kind_operations for each
386 * buffer tracing kind.
387 *
388 * @param [in] callback Callback function invoked for each enumeration value in @ref
389 * rocprofiler_buffer_tracing_kind_t with the exception of the `NONE` and `LAST` values.
390 * @param [in] data User data passed back into the callback
391 */
394 void* data) ROCPROFILER_API ROCPROFILER_NONNULL(1);
395
396/**
397 * @brief Iterates over all the operations for a given @ref
398 * rocprofiler_buffer_tracing_kind_t and invokes the callback with the kind and operation
399 * id. This is useful to build a map of the operation names during tool initialization instead of
400 * querying rocprofiler everytime in the callback hotpath.
401 *
402 * @param [in] kind which buffer tracing kind operations to iterate over
403 * @param [in] callback Callback function invoked for each operation associated with @ref
404 * rocprofiler_buffer_tracing_kind_t with the exception of the `NONE` and `LAST` values.
405 * @param [in] data User data passed back into the callback
406 */
411 void* data) ROCPROFILER_API ROCPROFILER_NONNULL(2);
412
413/** @} */
414
415ROCPROFILER_EXTERN_C_FINI
int32_t rocprofiler_tracing_operation_t
Tracing Operation ID. Depending on the kind, operations can be determined. If the value is equal to z...
Definition fwd.h:448
rocprofiler_scratch_memory_operation_t
Scratch event kind.
Definition fwd.h:322
rocprofiler_memory_copy_operation_t
Memory Copy Operation.
Definition fwd.h:214
rocprofiler_scratch_alloc_flag_t
Allocation flags for.
Definition fwd.h:334
rocprofiler_status_t
Status codes.
Definition fwd.h:55
uint64_t rocprofiler_thread_id_t
Thread ID. Value will be equivalent to syscall(__NR_gettid)
Definition fwd.h:439
rocprofiler_buffer_tracing_kind_t
Service Buffer Tracing Kind.
Definition fwd.h:179
rocprofiler_kernel_dispatch_operation_t
ROCProfiler Kernel Dispatch Tracing Operation Types.
Definition fwd.h:242
uint64_t rocprofiler_timestamp_t
ROCProfiler Timestamp.
Definition fwd.h:429
Agent Identifier.
Definition fwd.h:541
Context ID.
Definition fwd.h:502
ROCProfiler Record Correlation ID.
Definition fwd.h:518
ROCProfiler kernel dispatch information.
Definition fwd.h:653
rocprofiler_thread_id_t thread_id
id for thread that launched kernel
rocprofiler_thread_id_t thread_id
id for thread generating this record
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_CALLBACK_TRACING_MARKER_CORE_API, ROCPROFILER_CALLBACK_TRACING_MARKER_CONTROL_API,...
rocprofiler_page_migration_queue_suspend_trigger_t trigger
Cause of queue suspension.
rocprofiler_correlation_id_t correlation_id
correlation ids for record
rocprofiler_timestamp_t timestamp
Timestamp (in nanosec) of when rocprofiler detected the correlation ID could be retired....
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_agent_id_t dst_agent_id
destination agent of copy
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_BUFFER_TRACING_SCRATCH_MEMORY
rocprofiler_thread_id_t thread_id
id for thread that triggered copy
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_correlation_id_t correlation_id
correlation ids for record
uint64_t end_addr
End address of the page being migrated.
uint32_t prefetch_node
Node from which page was prefetched.
rocprofiler_agent_id_t agent_id
agent kernel was dispatched on
rocprofiler_correlation_id_t correlation_id
correlation ids for record
rocprofiler_agent_id_t src_agent_id
source agent of copy
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
uint32_t node_id
GPU node from which the queue was suspended.
rocprofiler_page_migration_unmap_from_gpu_trigger_t trigger
Cause of unmap.
rocprofiler_page_migration_trigger_t trigger
Cause of migration.
rocprofiler_thread_id_t thread_id
id for thread generating this record
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_CALLBACK_TRACING_HSA_CORE_API, ROCPROFILER_CALLBACK_TRACING_HSA_AMD_EXT_API,...
uint32_t node_id
GPU or CPU node ID which reports a page fault.
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_BUFFER_TRACING_CORRELATION_ID_RETIREMENT
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
uint64_t address
Address access that caused the page fault.
rocprofiler_tracing_operation_t operation
Specification of the API function, e.g., rocprofiler_hsa_core_api_id_t, rocprofiler_hsa_amd_ext_api_i...
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_BUFFER_TRACING_KERNEL_DISPATCH
uint8_t read_fault
Is the fault due to a read or a write.
rocprofiler_kernel_dispatch_operation_t operation
Kernel dispatch buffer records only report the ROCPROFILER_KERNEL_DISPATCH_COMPLETE operation because...
rocprofiler_scratch_memory_operation_t operation
specification of the kind
uint64_t start_addr
Start address of the page being migrated.
rocprofiler_memory_copy_operation_t operation
Specification of the memory copy direction (.
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_CALLBACK_TRACING_HIP_RUNTIME_API or ROCPROFILER_CALLBACK_TRACING_HIP_COMPILER_API
rocprofiler_correlation_id_t correlation_id
correlation ids for record
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_BUFFER_TRACING_PAGE_MIGRATION.
rocprofiler_correlation_id_t correlation_id
correlation ids for record
rocprofiler_thread_id_t thread_id
id for thread generating this record
rocprofiler_thread_id_t thread_id
id for thread generating this record
rocprofiler_kernel_dispatch_info_t dispatch_info
Dispatch info.
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_correlation_id_t correlation_id
correlation ids for record
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_BUFFER_TRACING_MEMORY_COPY
rocprofiler_queue_id_t queue_id
queue kernel was dispatched on
uint32_t node_id
Node ID from which page was unmapped.
rocprofiler_tracing_operation_t operation
rocprofiler_tracing_operation_t operation
Specification of the API function, e.g., rocprofiler_hip_runtime_api_id_t or rocprofiler_hip_compiler...
uint64_t internal_correlation_id
Only internal correlation ID is provided.
int(* rocprofiler_buffer_tracing_kind_operation_cb_t)(rocprofiler_buffer_tracing_kind_t kind, rocprofiler_tracing_operation_t operation, void *data)
Callback function for mapping the operations of a given rocprofiler_buffer_tracing_kind_t to string n...
rocprofiler_status_t rocprofiler_iterate_buffer_tracing_kinds(rocprofiler_buffer_tracing_kind_cb_t callback, void *data)
Iterate over all the buffer tracing kinds and invokes the callback for each buffer tracing kind.
rocprofiler_page_migration_queue_suspend_trigger_t
Page migration triggers causing the queue to suspend.
rocprofiler_page_migration_trigger_t
Page migration triggers.
int(* rocprofiler_buffer_tracing_kind_cb_t)(rocprofiler_buffer_tracing_kind_t kind, void *data)
Callback function for mapping rocprofiler_buffer_tracing_kind_t ids to string names.
rocprofiler_status_t rocprofiler_configure_buffer_tracing_service(rocprofiler_context_id_t context_id, rocprofiler_buffer_tracing_kind_t kind, const rocprofiler_tracing_operation_t *operations, unsigned long operations_count, rocprofiler_buffer_id_t buffer_id)
Configure Buffer Tracing Service.
rocprofiler_status_t rocprofiler_query_buffer_tracing_kind_name(rocprofiler_buffer_tracing_kind_t kind, const char **name, uint64_t *name_len)
Query the name of the buffer tracing kind. The name retrieved from this function is a string literal ...
rocprofiler_status_t rocprofiler_query_buffer_tracing_kind_operation_name(rocprofiler_buffer_tracing_kind_t kind, rocprofiler_tracing_operation_t operation, const char **name, uint64_t *name_len)
Query the name of the buffer tracing kind. The name retrieved from this function is a string literal ...
rocprofiler_status_t rocprofiler_iterate_buffer_tracing_kind_operations(rocprofiler_buffer_tracing_kind_t kind, rocprofiler_buffer_tracing_kind_operation_cb_t callback, void *data)
Iterates over all the operations for a given rocprofiler_buffer_tracing_kind_t and invokes the callba...
rocprofiler_page_migration_unmap_from_gpu_trigger_t
Page migration triggers causing an unmap from the GPU.
@ ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_USERPTR
@ ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_CRIU_RESTORE
@ ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_TTM
@ ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_SUSPEND
@ ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_LAST
@ ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_SVM
@ ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_NONE
@ ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_CRIU_CHECKPOINT
@ ROCPROFILER_PAGE_MIGRATION_TRIGGER_TTM_EVICTION
@ ROCPROFILER_PAGE_MIGRATION_TRIGGER_PREFETCH
@ ROCPROFILER_PAGE_MIGRATION_TRIGGER_PAGEFAULT_CPU
@ ROCPROFILER_PAGE_MIGRATION_TRIGGER_NONE
@ ROCPROFILER_PAGE_MIGRATION_TRIGGER_LAST
@ ROCPROFILER_PAGE_MIGRATION_TRIGGER_PAGEFAULT_GPU
@ ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_UNMAP_FROM_CPU
@ ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_LAST
@ ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_NONE
@ ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_MMU_NOTIFY
@ ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_MMU_NOTIFY_MIGRATE
ROCProfiler Buffer Correlation ID Retirement Tracer Record.
ROCProfiler Buffer HIP API Tracer Record.
ROCProfiler Buffer HSA API Tracer Record.
ROCProfiler Buffer Kernel Dispatch Tracer Record.
ROCProfiler Buffer Marker Tracer Record.
ROCProfiler Buffer Memory Copy Tracer Record.
ROCProfiler Buffer Page Migration Tracer Record.
ROCProfiler Buffer Scratch Memory Tracer Record.