rocprofiler-sdk/intercept_table.h Source File#
Rocprofiler SDK Developer API 0.4.0
ROCm Profiling API and tools
|
intercept_table.h
Go to the documentation of this file.
37 * function calls to collect information. When this capability is used alongside the rocprofiler API
38 * tracing, tools will wrap the rocprofiler wrappers of the API function, e.g. if the tool installs
41 * library, the "real" implementation of the `hsa_init` invokes a function called `real_hsa_init`,
43 * `hsa_init` -> `tool_hsa_init` -> `rocp_hsa_init` -> `real_hsa_init`. The return sequence will be
57 * @param [in] lib_instance The number of times this runtime library has been registered previously
79 * invocation of one of their public API functions), these runtimes will provide a table of function
81 * `rocprofiler_configure` symbol is visible in the application's symbol table. The vast majority of
84 * these callbacks and those tools should use the @ref rocprofiler_at_intercept_table_registration
86 * function can be invoked but it will return ::ROCPROFILER_STATUS_ERROR_CONFIGURATION_LOCKED if it
90 * recommendation is that if @ref rocprofiler_at_intercept_table_registration is invoked in one of
91 * these locations, rocprofiler can guarantee that the tool will be passed the API table because, at
92 * the first instance of a runtime registering it's API table, rocprofiler will ensure that, in the
99 * invoked outside of these recommended places, even if it is done before the `main` function starts
101 * ROCm-aware MPI, caused the HIP and HSA runtime libraries to be initialized when that library was
102 * loaded. In this aforementioned scenario, if the ROCm-aware MPI library library init/constructor
104 * processed the API table and will not provide the API table to the tool due to the fact that the
105 * API may already be in use and, thus, any modifications to the table might result in thread-safety
121 * specified libraries does not have support for API intercept tables (which should not be the case
rocprofiler_intercept_table_t
Enumeration for specifying intercept tables supported by rocprofiler. This enumeration is used for in...
Definition fwd.h:361
void(* rocprofiler_intercept_library_cb_t)(rocprofiler_intercept_table_t type, uint64_t lib_version, uint64_t lib_instance, void **tables, uint64_t num_tables, void *user_data)
Callback type when a new runtime library is loaded.
Definition intercept_table.h:63
rocprofiler_status_t rocprofiler_at_intercept_table_registration(rocprofiler_intercept_library_cb_t callback, int libs, void *data)
Generated by 1.9.8