Misc API cleanup and consistency fixes (#1023)

- ROCPROFILER_API after function
- use rocprofiler_tracing_operation_t in lieu of uint32_t where appropriate
- rocprofiler_tracing_operation_t is not int32_t typedef (formerly uint32_t)
- use const T* instead of T* where appropriate

[ROCm/rocprofiler-sdk commit: bb25376480]
This commit is contained in:
Jonathan R. Madsen
2024-08-20 01:06:12 -05:00
committed by GitHub
parent 82a089ac0a
commit 264c48fa69
32 changed files with 185 additions and 176 deletions
@@ -121,7 +121,7 @@ tool_tracing_callback(rocprofiler_callback_tracing_record_t record,
<< ", dt_nsec=" << std::setw(6) << dt;
auto info_data_cb = [](rocprofiler_callback_tracing_kind_t,
uint32_t,
rocprofiler_tracing_operation_t,
uint32_t arg_num,
const void* const arg_value_addr,
int32_t indirection_count,
@@ -165,7 +165,7 @@ rocprofiler_status_t
rocprofiler_att_parse_data(rocprofiler_att_parser_se_data_callback_t se_data_callback,
rocprofiler_att_parser_trace_callback_t trace_callback,
rocprofiler_att_parser_isa_callback_t isa_callback,
void* userdata);
void* userdata) ROCPROFILER_API;
/** @} */
@@ -74,14 +74,15 @@ typedef void (*rocprofiler_buffer_tracing_cb_t)(rocprofiler_context_id_t co
* @param [out] buffer_id Identification handle for buffer
* @return ::rocprofiler_status_t
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_create_buffer(rocprofiler_context_id_t context,
size_t size,
size_t watermark,
rocprofiler_buffer_policy_t policy,
rocprofiler_buffer_tracing_cb_t callback,
void* callback_data,
rocprofiler_buffer_id_t* buffer_id) ROCPROFILER_NONNULL(5, 7);
rocprofiler_buffer_id_t* buffer_id) ROCPROFILER_API
ROCPROFILER_NONNULL(5, 7);
/**
* @brief Destroy buffer.
@@ -92,8 +93,8 @@ rocprofiler_create_buffer(rocprofiler_context_id_t context,
* Note: This will destroy the buffer even if it is not empty. The user can
* call @ref ::rocprofiler_flush_buffer before it to make sure the buffer is empty.
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_destroy_buffer(rocprofiler_buffer_id_t buffer_id);
rocprofiler_status_t
rocprofiler_destroy_buffer(rocprofiler_buffer_id_t buffer_id) ROCPROFILER_API;
/**
* @brief Flush buffer.
@@ -101,8 +102,8 @@ rocprofiler_destroy_buffer(rocprofiler_buffer_id_t buffer_id);
* @param [in] buffer_id
* @return ::rocprofiler_status_t
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_flush_buffer(rocprofiler_buffer_id_t buffer_id);
rocprofiler_status_t
rocprofiler_flush_buffer(rocprofiler_buffer_id_t buffer_id) ROCPROFILER_API;
/** @} */
@@ -301,7 +301,7 @@ typedef int (*rocprofiler_buffer_tracing_kind_cb_t)(rocprofiler_buffer_tracing_k
*/
typedef int (*rocprofiler_buffer_tracing_kind_operation_cb_t)(
rocprofiler_buffer_tracing_kind_t kind,
uint32_t operation,
rocprofiler_tracing_operation_t operation,
void* data);
/**
@@ -324,10 +324,10 @@ typedef int (*rocprofiler_buffer_tracing_kind_operation_cb_t)(
*
*/
rocprofiler_status_t
rocprofiler_configure_buffer_tracing_service(rocprofiler_context_id_t context_id,
rocprofiler_buffer_tracing_kind_t kind,
rocprofiler_tracing_operation_t* operations,
size_t operations_count,
rocprofiler_configure_buffer_tracing_service(rocprofiler_context_id_t context_id,
rocprofiler_buffer_tracing_kind_t kind,
const rocprofiler_tracing_operation_t* operations,
size_t operations_count,
rocprofiler_buffer_id_t buffer_id) ROCPROFILER_API;
/**
@@ -374,7 +374,7 @@ rocprofiler_query_buffer_tracing_kind_name(rocprofiler_buffer_tracing_kind_t kin
*/
rocprofiler_status_t
rocprofiler_query_buffer_tracing_kind_operation_name(rocprofiler_buffer_tracing_kind_t kind,
uint32_t operation,
rocprofiler_tracing_operation_t operation,
const char** name,
uint64_t* name_len) ROCPROFILER_API;
@@ -233,7 +233,7 @@ typedef int (*rocprofiler_callback_tracing_kind_cb_t)(rocprofiler_callback_traci
*/
typedef int (*rocprofiler_callback_tracing_kind_operation_cb_t)(
rocprofiler_callback_tracing_kind_t kind,
uint32_t operation,
rocprofiler_tracing_operation_t operation,
void* data);
/**
@@ -256,7 +256,7 @@ typedef int (*rocprofiler_callback_tracing_kind_operation_cb_t)(
*/
typedef int (*rocprofiler_callback_tracing_operation_args_cb_t)(
rocprofiler_callback_tracing_kind_t kind,
uint32_t operation,
rocprofiler_tracing_operation_t operation,
uint32_t arg_number,
const void* const arg_value_addr,
int32_t arg_indirection_count,
@@ -295,13 +295,13 @@ typedef int (*rocprofiler_callback_tracing_operation_args_cb_t)(
* other words, we do not support overriding or combining the operations in separate function calls.
*
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_configure_callback_tracing_service(rocprofiler_context_id_t context_id,
rocprofiler_callback_tracing_kind_t kind,
rocprofiler_tracing_operation_t* operations,
size_t operations_count,
rocprofiler_callback_tracing_cb_t callback,
void* callback_args);
rocprofiler_status_t
rocprofiler_configure_callback_tracing_service(rocprofiler_context_id_t context_id,
rocprofiler_callback_tracing_kind_t kind,
const rocprofiler_tracing_operation_t* operations,
size_t operations_count,
rocprofiler_callback_tracing_cb_t callback,
void* callback_args) ROCPROFILER_API;
/**
* @brief Query the name of the callback tracing kind. The name retrieved from this function is a
@@ -340,9 +340,9 @@ rocprofiler_query_callback_tracing_kind_name(rocprofiler_callback_tracing_kind_t
*/
rocprofiler_status_t
rocprofiler_query_callback_tracing_kind_operation_name(rocprofiler_callback_tracing_kind_t kind,
uint32_t operation,
const char** name,
uint64_t* name_len) ROCPROFILER_API;
rocprofiler_tracing_operation_t operation,
const char** name,
uint64_t* name_len) ROCPROFILER_API;
/**
* @brief Iterate over all the mappings of the callback tracing kinds and get a callback for each
@@ -353,9 +353,9 @@ rocprofiler_query_callback_tracing_kind_operation_name(rocprofiler_callback_trac
* @param [in] data User data passed back into the callback
* @return ::rocprofiler_status_t
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_iterate_callback_tracing_kinds(rocprofiler_callback_tracing_kind_cb_t callback,
void* data) ROCPROFILER_NONNULL(1);
void* data) ROCPROFILER_API ROCPROFILER_NONNULL(1);
/**
* @brief Iterates over all the mappings of the operations for a given @ref
@@ -370,11 +370,11 @@ rocprofiler_iterate_callback_tracing_kinds(rocprofiler_callback_tracing_kind_cb_
* @retval ::ROCPROFILER_STATUS_ERROR_KIND_NOT_FOUND Invalid domain id
* @retval ::ROCPROFILER_STATUS_SUCCESS Valid domain
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_iterate_callback_tracing_kind_operations(
rocprofiler_callback_tracing_kind_t kind,
rocprofiler_callback_tracing_kind_operation_cb_t callback,
void* data) ROCPROFILER_NONNULL(2);
void* data) ROCPROFILER_API ROCPROFILER_NONNULL(2);
/**
* @brief Iterates over all the arguments for the traced function (when available). This is
@@ -433,12 +433,12 @@ rocprofiler_iterate_callback_tracing_kind_operations(
* uninitialized pointers do not cause segmentation faults.
* @param[in] user_data Data to be passed to each invocation of the callback
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_iterate_callback_tracing_kind_operation_args(
rocprofiler_callback_tracing_record_t record,
rocprofiler_callback_tracing_operation_args_cb_t callback,
int32_t max_dereference_count,
void* user_data) ROCPROFILER_NONNULL(2);
void* user_data) ROCPROFILER_API ROCPROFILER_NONNULL(2);
/** @} */
@@ -46,8 +46,9 @@ ROCPROFILER_EXTERN_C_INIT
* @param [out] context_id Context identifier
* @return ::rocprofiler_status_t
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_create_context(rocprofiler_context_id_t* context_id) ROCPROFILER_NONNULL(1);
rocprofiler_status_t
rocprofiler_create_context(rocprofiler_context_id_t* context_id) ROCPROFILER_API
ROCPROFILER_NONNULL(1);
/**
* @brief Start context.
@@ -55,8 +56,8 @@ rocprofiler_create_context(rocprofiler_context_id_t* context_id) ROCPROFILER_NON
* @param [in] context_id Identifier for context to be activated
* @return ::rocprofiler_status_t
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_start_context(rocprofiler_context_id_t context_id);
rocprofiler_status_t
rocprofiler_start_context(rocprofiler_context_id_t context_id) ROCPROFILER_API;
/**
* @brief Stop context.
@@ -64,8 +65,8 @@ rocprofiler_start_context(rocprofiler_context_id_t context_id);
* @param [in] context_id Identifier for context to be deactivated
* @return ::rocprofiler_status_t
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_stop_context(rocprofiler_context_id_t context_id);
rocprofiler_status_t
rocprofiler_stop_context(rocprofiler_context_id_t context_id) ROCPROFILER_API;
/**
* @brief Query whether context is currently active.
@@ -77,8 +78,8 @@ rocprofiler_stop_context(rocprofiler_context_id_t context_id);
* @retval ::ROCPROFILER_STATUS_ERROR_CONTEXT_NOT_FOUND The input context id did not identify a
* registered context
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_context_is_active(rocprofiler_context_id_t context_id, int* status)
rocprofiler_status_t
rocprofiler_context_is_active(rocprofiler_context_id_t context_id, int* status) ROCPROFILER_API
ROCPROFILER_NONNULL(2);
/**
@@ -88,8 +89,8 @@ rocprofiler_context_is_active(rocprofiler_context_id_t context_id, int* status)
* @param [out] status If context is invalid, this will be a nonzero value
* @return ::rocprofiler_status_t
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_context_is_valid(rocprofiler_context_id_t context_id, int* status)
rocprofiler_status_t
rocprofiler_context_is_valid(rocprofiler_context_id_t context_id, int* status) ROCPROFILER_API
ROCPROFILER_NONNULL(2);
/** @} */
@@ -42,9 +42,10 @@ ROCPROFILER_EXTERN_C_INIT
* @return ::rocprofiler_status_t
* @retval ROCPROFILER_STATUS_SUCCESS if id decoded
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_query_record_counter_id(rocprofiler_counter_instance_id_t id,
rocprofiler_counter_id_t* counter_id) ROCPROFILER_NONNULL(2);
rocprofiler_counter_id_t* counter_id) ROCPROFILER_API
ROCPROFILER_NONNULL(2);
/**
* @brief Query dimension position from record_id. If the dimension does not exist
@@ -57,10 +58,10 @@ rocprofiler_query_record_counter_id(rocprofiler_counter_instance_id_t id,
* @return ::rocprofiler_status_t
* @retval ROCPROFILER_STATUS_SUCCESS if dimension decoded
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_query_record_dimension_position(rocprofiler_counter_instance_id_t id,
rocprofiler_counter_dimension_id_t dim,
size_t* pos) ROCPROFILER_NONNULL(3);
size_t* pos) ROCPROFILER_API ROCPROFILER_NONNULL(3);
/**
* @brief Callback that gives a list of available dimensions for a counter
@@ -90,10 +91,10 @@ typedef rocprofiler_status_t (*rocprofiler_available_dimensions_cb_t)(
* @retval ROCPROFILER_STATUS_ERROR_COUNTER_NOT_FOUND if counter is not found
* @retval ROCPROFILER_STATUS_ERROR_DIM_NOT_FOUND if counter does not have this dimension
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_iterate_counter_dimensions(rocprofiler_counter_id_t id,
rocprofiler_available_dimensions_cb_t info_cb,
void* user_data);
void* user_data) ROCPROFILER_API;
/**
* @brief Query Counter info such as name or description.
@@ -107,10 +108,10 @@ rocprofiler_iterate_counter_dimensions(rocprofiler_counter_id_t id,
* @retval ROCPROFILER_STATUS_ERROR_COUNTER_NOT_FOUND if counter not found
* @retval ROCPROFILER_STATUS_ERROR_INCOMPATIBLE_ABI Version is not supported
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_query_counter_info(rocprofiler_counter_id_t counter_id,
rocprofiler_counter_info_version_id_t version,
void* info) ROCPROFILER_NONNULL(3);
void* info) ROCPROFILER_API ROCPROFILER_NONNULL(3);
/**
* @brief This call returns the number of instances specific counter contains.
@@ -122,10 +123,11 @@ rocprofiler_query_counter_info(rocprofiler_counter_id_t counter_id,
* @retval ROCPROFILER_STATUS_SUCCESS if counter found
* @retval ROCPROFILER_STATUS_ERROR_COUNTER_NOT_FOUND if counter not found
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_query_counter_instance_count(rocprofiler_agent_id_t agent_id,
rocprofiler_counter_id_t counter_id,
size_t* instance_count) ROCPROFILER_NONNULL(3);
size_t* instance_count) ROCPROFILER_API
ROCPROFILER_NONNULL(3);
/**
* @brief Callback that gives a list of counters available on an agent. The
@@ -154,10 +156,11 @@ typedef rocprofiler_status_t (*rocprofiler_available_counters_cb_t)(
* @retval ROCPROFILER_STATUS_SUCCESS if counters found for agent
* @retval ROCPROFILER_STATUS_ERROR if no counters found for agent
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_iterate_agent_supported_counters(rocprofiler_agent_id_t agent_id,
rocprofiler_available_counters_cb_t cb,
void* user_data) ROCPROFILER_NONNULL(2);
void* user_data) ROCPROFILER_API
ROCPROFILER_NONNULL(2);
/** @} */
@@ -109,16 +109,17 @@ get_callback_tracing_names()
//
// callback for each kind operation
//
static auto tracing_kind_operation_cb =
[](rocprofiler_callback_tracing_kind_t kindv, uint32_t operation, void* data_v) {
auto* name_info_v = static_cast<callback_name_info_t<Tp>*>(data_v);
static auto tracing_kind_operation_cb = [](rocprofiler_callback_tracing_kind_t kindv,
rocprofiler_tracing_operation_t operation,
void* data_v) {
auto* name_info_v = static_cast<callback_name_info_t<Tp>*>(data_v);
const char* name = nullptr;
auto status = rocprofiler_query_callback_tracing_kind_operation_name(
kindv, operation, &name, nullptr);
if(status == success_v && name) name_info_v->emplace(kindv, operation, name);
return 0;
};
const char* name = nullptr;
auto status = rocprofiler_query_callback_tracing_kind_operation_name(
kindv, operation, &name, nullptr);
if(status == success_v && name) name_info_v->emplace(kindv, operation, name);
return 0;
};
//
// callback for each buffer kind (i.e. domain)
@@ -147,16 +148,17 @@ get_buffer_tracing_names()
//
// callback for each kind operation
//
static auto tracing_kind_operation_cb =
[](rocprofiler_buffer_tracing_kind_t kindv, uint32_t operation, void* data_v) {
auto* name_info_v = static_cast<buffer_name_info_t<Tp>*>(data_v);
static auto tracing_kind_operation_cb = [](rocprofiler_buffer_tracing_kind_t kindv,
rocprofiler_tracing_operation_t operation,
void* data_v) {
auto* name_info_v = static_cast<buffer_name_info_t<Tp>*>(data_v);
const char* name = nullptr;
auto status = rocprofiler_query_buffer_tracing_kind_operation_name(
kindv, operation, &name, nullptr);
if(status == success_v && name) name_info_v->emplace(kindv, operation, name);
return 0;
};
const char* name = nullptr;
auto status =
rocprofiler_query_buffer_tracing_kind_operation_name(kindv, operation, &name, nullptr);
if(status == success_v && name) name_info_v->emplace(kindv, operation, name);
return 0;
};
//
// callback for each buffer kind (i.e. domain)
@@ -129,12 +129,12 @@ typedef void (*rocprofiler_profile_counting_record_callback_t)(
* @param [in] callback_data_args callback data
* @return ::rocprofiler_status_t
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_configure_buffered_dispatch_profile_counting_service(
rocprofiler_context_id_t context_id,
rocprofiler_buffer_id_t buffer_id,
rocprofiler_profile_counting_dispatch_callback_t callback,
void* callback_data_args);
void* callback_data_args) ROCPROFILER_API;
/**
* @brief Configure buffered dispatch profile Counting Service.
@@ -148,13 +148,13 @@ rocprofiler_configure_buffered_dispatch_profile_counting_service(
* @param [in] record_callback_args Callback args for record callback
* @return ::rocprofiler_status_t
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_configure_callback_dispatch_profile_counting_service(
rocprofiler_context_id_t context_id,
rocprofiler_profile_counting_dispatch_callback_t dispatch_callback,
void* dispatch_callback_args,
rocprofiler_profile_counting_record_callback_t record_callback,
void* record_callback_args);
void* record_callback_args) ROCPROFILER_API;
/** @} */
ROCPROFILER_EXTERN_C_FINI
@@ -94,7 +94,7 @@ typedef int (*rocprofiler_external_correlation_id_request_cb_t)(
rocprofiler_thread_id_t thread_id,
rocprofiler_context_id_t context_id,
rocprofiler_external_correlation_id_request_kind_t kind,
uint32_t operation,
rocprofiler_tracing_operation_t operation,
uint64_t internal_corr_id_value,
rocprofiler_user_data_t* external_corr_id_value,
void* data);
@@ -121,10 +121,10 @@ typedef int (*rocprofiler_external_correlation_id_request_cb_t)(
*/
rocprofiler_status_t
rocprofiler_configure_external_correlation_id_request_service(
rocprofiler_context_id_t context_id,
rocprofiler_external_correlation_id_request_kind_t* kinds,
size_t kinds_count,
rocprofiler_external_correlation_id_request_cb_t callback,
rocprofiler_context_id_t context_id,
const rocprofiler_external_correlation_id_request_kind_t* kinds,
size_t kinds_count,
rocprofiler_external_correlation_id_request_cb_t callback,
void* callback_args) ROCPROFILER_API ROCPROFILER_NONNULL(4);
/**
@@ -445,7 +445,7 @@ typedef uint64_t rocprofiler_thread_id_t;
* for that partiular operation. i.e: For ROCProfiler enumeration of HSA AMD Extended API tracing
* operations, look at source/include/rocprofiler-sdk/hsa/amd_ext_api_id.h
*/
typedef uint32_t rocprofiler_tracing_operation_t;
typedef int32_t rocprofiler_tracing_operation_t;
/**
* @brief Kernel identifier type
@@ -579,7 +579,7 @@ typedef struct rocprofiler_callback_tracing_record_t
rocprofiler_thread_id_t thread_id;
rocprofiler_correlation_id_t correlation_id;
rocprofiler_callback_tracing_kind_t kind;
uint32_t operation;
rocprofiler_tracing_operation_t operation;
rocprofiler_callback_phase_t phase;
void* payload;
} rocprofiler_callback_tracing_record_t;
@@ -74,11 +74,11 @@ typedef void (*rocprofiler_internal_thread_library_cb_t)(rocprofiler_runtime_lib
* @retval ::ROCPROFILER_STATUS_SUCCESS There are currently no conditions which result in any other
* value, even if internal threads have already been created
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_at_internal_thread_create(rocprofiler_internal_thread_library_cb_t precreate,
rocprofiler_internal_thread_library_cb_t postcreate,
int libs,
void* data);
void* data) ROCPROFILER_API;
/**
* @brief opaque handle to an internal thread identifier which delivers callbacks for buffers
@@ -102,8 +102,8 @@ typedef struct
* post-initialization
* @retval ::ROCPROFILER_STATUS_ERROR Failed to create thread
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_create_callback_thread(rocprofiler_callback_thread_t* cb_thread_id)
rocprofiler_status_t
rocprofiler_create_callback_thread(rocprofiler_callback_thread_t* cb_thread_id) ROCPROFILER_API
ROCPROFILER_NONNULL(1);
/**
@@ -123,9 +123,9 @@ rocprofiler_create_callback_thread(rocprofiler_callback_thread_t* cb_thread_id)
* @retval ::ROCPROFILER_STATUS_ERROR_BUFFER_NOT_FOUND Buffer identifier did not match any of the
* buffers registered with rocprofiler
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_assign_callback_thread(rocprofiler_buffer_id_t buffer_id,
rocprofiler_callback_thread_t cb_thread_id);
rocprofiler_callback_thread_t cb_thread_id) ROCPROFILER_API;
/** @} */
@@ -111,13 +111,13 @@ ROCPROFILER_EXTERN_C_INIT
* @retval ::ROCPROFILER_STATUS_ERROR_CONTEXT_CONFLICT counter collection service already
* setup in the context
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_configure_pc_sampling_service(rocprofiler_context_id_t context_id,
rocprofiler_agent_id_t agent_id,
rocprofiler_pc_sampling_method_t method,
rocprofiler_pc_sampling_unit_t unit,
uint64_t interval,
rocprofiler_buffer_id_t buffer_id);
rocprofiler_buffer_id_t buffer_id) ROCPROFILER_API;
/**
* @brief PC sampling configuration supported by a GPU agent.
@@ -188,11 +188,11 @@ typedef rocprofiler_status_t (*rocprofiler_available_pc_sampling_configurations_
* @retval ::ROCPROFILER_STATUS_ERROR a general error caused by the amdgpu driver
* @retval ::ROCPROFILER_STATUS_SUCCESS @p cb successfully finished
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_query_pc_sampling_agent_configurations(
rocprofiler_agent_id_t agent_id,
rocprofiler_available_pc_sampling_configurations_cb_t cb,
void* user_data) ROCPROFILER_NONNULL(2, 3);
void* user_data) ROCPROFILER_API ROCPROFILER_NONNULL(2, 3);
/**
* @brief The header of the @ref rocprofiler_pc_sampling_record_t, indicating
@@ -57,11 +57,11 @@ ROCPROFILER_EXTERN_C_INIT
* @retval ROCPROFILER_STATUS_ERROR if profile could not be created
*
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_create_profile_config(rocprofiler_agent_id_t agent_id,
rocprofiler_counter_id_t* counters_list,
size_t counters_count,
rocprofiler_profile_config_id_t* config_id)
rocprofiler_profile_config_id_t* config_id) ROCPROFILER_API
ROCPROFILER_NONNULL(4);
/**
@@ -72,8 +72,8 @@ rocprofiler_create_profile_config(rocprofiler_agent_id_t agent_id,
* @retval ROCPROFILER_STATUS_SUCCESS if profile destroyed
* @retval ROCPROFILER_STATUS_ERROR if profile could not be destroyed
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_destroy_profile_config(rocprofiler_profile_config_id_t config_id);
rocprofiler_status_t
rocprofiler_destroy_profile_config(rocprofiler_profile_config_id_t config_id) ROCPROFILER_API;
/** @} */
@@ -43,11 +43,11 @@ ROCPROFILER_EXTERN_C_INIT
* @param [in] interval
* @return ::rocprofiler_status_t
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_configure_spm_service(rocprofiler_context_id_t context_id,
rocprofiler_buffer_id_t buffer_id,
rocprofiler_profile_config_id_t profile_config,
uint64_t interval);
uint64_t interval) ROCPROFILER_API;
/** @} */
@@ -415,8 +415,8 @@ write_otf2(tool_table* tool
for(auto agent : itr)
agent_memcpy_info[tid].emplace(agent, location_base{pid, tid, agent});
for(auto [tid, itr] : agent_queue_ids)
for(auto [agent, qitr] : itr)
for(const auto& [tid, itr] : agent_queue_ids)
for(const auto& [agent, qitr] : itr)
for(auto queue : qitr)
agent_dispatch_info[tid][agent].emplace(queue,
location_base{pid, tid, agent, queue});
@@ -28,7 +28,7 @@
#include "rocprofiler-sdk/fwd.h"
extern "C" {
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_configure_agent_profile_counting_service(rocprofiler_context_id_t context_id,
rocprofiler_buffer_id_t buffer_id,
rocprofiler_agent_id_t agent_id,
@@ -39,7 +39,7 @@ rocprofiler_configure_agent_profile_counting_service(rocprofiler_context_id_t co
context_id, buffer_id, agent_id, cb, user_data);
}
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_sample_agent_profile_counting_service(rocprofiler_context_id_t context_id,
rocprofiler_user_data_t user_data,
rocprofiler_counter_flag_t flags)
@@ -98,11 +98,11 @@ get_kind_name(rocprofiler_buffer_tracing_kind_t kind, std::index_sequence<Idx, T
extern "C" {
rocprofiler_status_t
rocprofiler_configure_buffer_tracing_service(rocprofiler_context_id_t context_id,
rocprofiler_buffer_tracing_kind_t kind,
rocprofiler_tracing_operation_t* operations,
size_t operations_count,
rocprofiler_buffer_id_t buffer_id)
rocprofiler_configure_buffer_tracing_service(rocprofiler_context_id_t context_id,
rocprofiler_buffer_tracing_kind_t kind,
const rocprofiler_tracing_operation_t* operations,
size_t operations_count,
rocprofiler_buffer_id_t buffer_id)
{
if(rocprofiler::registration::get_init_status() > -1)
return ROCPROFILER_STATUS_ERROR_CONFIGURATION_LOCKED;
@@ -160,7 +160,7 @@ rocprofiler_query_buffer_tracing_kind_name(rocprofiler_buffer_tracing_kind_t kin
rocprofiler_status_t
rocprofiler_query_buffer_tracing_kind_operation_name(rocprofiler_buffer_tracing_kind_t kind,
uint32_t operation,
rocprofiler_tracing_operation_t operation,
const char** name,
uint64_t* name_len)
{
@@ -95,12 +95,12 @@ get_kind_name(rocprofiler_callback_tracing_kind_t kind, std::index_sequence<Idx,
extern "C" {
rocprofiler_status_t
rocprofiler_configure_callback_tracing_service(rocprofiler_context_id_t context_id,
rocprofiler_callback_tracing_kind_t kind,
rocprofiler_tracing_operation_t* operations,
size_t operations_count,
rocprofiler_callback_tracing_cb_t callback,
void* callback_args)
rocprofiler_configure_callback_tracing_service(rocprofiler_context_id_t context_id,
rocprofiler_callback_tracing_kind_t kind,
const rocprofiler_tracing_operation_t* operations,
size_t operations_count,
rocprofiler_callback_tracing_cb_t callback,
void* callback_args)
{
if(rocprofiler::registration::get_init_status() > -1)
return ROCPROFILER_STATUS_ERROR_CONFIGURATION_LOCKED;
@@ -144,9 +144,9 @@ rocprofiler_query_callback_tracing_kind_name(rocprofiler_callback_tracing_kind_t
rocprofiler_status_t
rocprofiler_query_callback_tracing_kind_operation_name(rocprofiler_callback_tracing_kind_t kind,
uint32_t operation,
const char** name,
uint64_t* name_len)
rocprofiler_tracing_operation_t operation,
const char** name,
uint64_t* name_len)
{
if(kind < ROCPROFILER_CALLBACK_TRACING_NONE || kind >= ROCPROFILER_CALLBACK_TRACING_LAST)
return ROCPROFILER_STATUS_ERROR_KIND_NOT_FOUND;
@@ -647,7 +647,7 @@ run_reduce_test(
}
}
}
}; // namespace
} // namespace
TEST(evaluate_ast, counter_reduction_sum)
{
@@ -38,7 +38,7 @@ extern "C" {
* @param [in] profile profile config to use for dispatch
* @return ::rocprofiler_status_t
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_configure_buffered_dispatch_profile_counting_service(
rocprofiler_context_id_t context_id,
rocprofiler_buffer_id_t buffer_id,
@@ -61,7 +61,7 @@ rocprofiler_configure_buffered_dispatch_profile_counting_service(
* @param [in] record_callback_args Callback args for record callback
* @return ::rocprofiler_status_t
*/
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_configure_callback_dispatch_profile_counting_service(
rocprofiler_context_id_t context_id,
rocprofiler_profile_counting_dispatch_callback_t dispatch_callback,
@@ -225,11 +225,11 @@ external_correlation::invoke_callback(rocprofiler_thread_id_t thr_id,
extern "C" {
rocprofiler_status_t
rocprofiler_configure_external_correlation_id_request_service(
rocprofiler_context_id_t context_id,
rocprofiler_external_correlation_id_request_kind_t* kinds,
size_t kinds_count,
rocprofiler_external_correlation_id_request_cb_t callback,
void* callback_args)
rocprofiler_context_id_t context_id,
const rocprofiler_external_correlation_id_request_kind_t* kinds,
size_t kinds_count,
rocprofiler_external_correlation_id_request_cb_t callback,
void* callback_args)
{
auto* ctx = rocprofiler::context::get_mutable_registered_context(context_id);
if(!ctx) return ROCPROFILER_STATUS_ERROR_CONTEXT_NOT_FOUND;
@@ -79,7 +79,7 @@ enum pcsample_arb_issue_state
ISSUE_BRMSG,
ISSUE_LAST
};
}; // namespace PCSAMPLE
} // namespace PCSAMPLE
union pcsample_header_v1_t
{
@@ -120,21 +120,22 @@ get_callback_tracing_names()
//
// callback for each kind operation
//
static auto tracing_kind_operation_cb =
[](rocprofiler_callback_tracing_kind_t kindv, uint32_t operation, void* data_v) {
auto* name_info_v = static_cast<callback_name_info*>(data_v);
static auto tracing_kind_operation_cb = [](rocprofiler_callback_tracing_kind_t kindv,
rocprofiler_tracing_operation_t operation,
void* data_v) {
auto* name_info_v = static_cast<callback_name_info*>(data_v);
if(supported_kinds.count(kindv) > 0)
{
const char* name = nullptr;
ROCPROFILER_CALL(rocprofiler_query_callback_tracing_kind_operation_name(
kindv, operation, &name, nullptr),
"query callback tracing kind operation name");
EXPECT_TRUE(name != nullptr) << "kind=" << kindv << ", operation=" << operation;
if(name) name_info_v->operation_names[kindv][operation] = name;
}
return 0;
};
if(supported_kinds.count(kindv) > 0)
{
const char* name = nullptr;
ROCPROFILER_CALL(rocprofiler_query_callback_tracing_kind_operation_name(
kindv, operation, &name, nullptr),
"query callback tracing kind operation name");
EXPECT_TRUE(name != nullptr) << "kind=" << kindv << ", operation=" << operation;
if(name) name_info_v->operation_names[kindv][operation] = name;
}
return 0;
};
//
// callback for each callback kind (i.e. domain)
@@ -194,21 +195,22 @@ get_buffer_tracing_names()
//
// callback for each kind operation
//
static auto tracing_kind_operation_cb =
[](rocprofiler_buffer_tracing_kind_t kindv, uint32_t operation, void* data_v) {
auto* name_info_v = static_cast<buffer_name_info*>(data_v);
static auto tracing_kind_operation_cb = [](rocprofiler_buffer_tracing_kind_t kindv,
rocprofiler_tracing_operation_t operation,
void* data_v) {
auto* name_info_v = static_cast<buffer_name_info*>(data_v);
if(supported_kinds.count(kindv) > 0)
{
const char* name = nullptr;
ROCPROFILER_CALL(rocprofiler_query_buffer_tracing_kind_operation_name(
kindv, operation, &name, nullptr),
"query buffer tracing kind operation name");
EXPECT_TRUE(name != nullptr) << "kind=" << kindv << ", operation=" << operation;
if(name) name_info_v->operation_names[kindv][operation] = name;
}
return 0;
};
if(supported_kinds.count(kindv) > 0)
{
const char* name = nullptr;
ROCPROFILER_CALL(rocprofiler_query_buffer_tracing_kind_operation_name(
kindv, operation, &name, nullptr),
"query buffer tracing kind operation name");
EXPECT_TRUE(name != nullptr) << "kind=" << kindv << ", operation=" << operation;
if(name) name_info_v->operation_names[kindv][operation] = name;
}
return 0;
};
//
// callback for each buffer kind (i.e. domain)
@@ -189,10 +189,11 @@ TEST(rocprofiler_lib, intercept_table_and_callback_tracing)
ROCPROFILER_CALL(rocprofiler_create_context(&cb_data->client_hsa_ctx),
"failed to create context");
auto operations = std::vector<uint32_t>{ROCPROFILER_HSA_CORE_API_ID_hsa_init,
ROCPROFILER_HSA_CORE_API_ID_hsa_iterate_agents,
ROCPROFILER_HSA_CORE_API_ID_hsa_agent_get_info,
ROCPROFILER_HSA_CORE_API_ID_hsa_shut_down};
auto operations = std::vector<rocprofiler_tracing_operation_t>{
ROCPROFILER_HSA_CORE_API_ID_hsa_init,
ROCPROFILER_HSA_CORE_API_ID_hsa_iterate_agents,
ROCPROFILER_HSA_CORE_API_ID_hsa_agent_get_info,
ROCPROFILER_HSA_CORE_API_ID_hsa_shut_down};
ROCPROFILER_CALL(rocprofiler_configure_callback_tracing_service(
cb_data->client_hsa_ctx,
@@ -338,10 +339,11 @@ TEST(rocprofiler_lib, intercept_table_and_callback_tracing_disable_context)
ROCPROFILER_CALL(rocprofiler_create_context(&cb_data->client_hsa_ctx),
"failed to create context");
auto operations = std::vector<uint32_t>{ROCPROFILER_HSA_CORE_API_ID_hsa_init,
ROCPROFILER_HSA_CORE_API_ID_hsa_iterate_agents,
ROCPROFILER_HSA_CORE_API_ID_hsa_agent_get_info,
ROCPROFILER_HSA_CORE_API_ID_hsa_shut_down};
auto operations = std::vector<rocprofiler_tracing_operation_t>{
ROCPROFILER_HSA_CORE_API_ID_hsa_init,
ROCPROFILER_HSA_CORE_API_ID_hsa_iterate_agents,
ROCPROFILER_HSA_CORE_API_ID_hsa_agent_get_info,
ROCPROFILER_HSA_CORE_API_ID_hsa_shut_down};
ROCPROFILER_CALL(rocprofiler_configure_callback_tracing_service(
cb_data->client_hsa_ctx,
@@ -88,7 +88,7 @@ tool_tracing_callback(rocprofiler_callback_tracing_record_t record,
} info_data_v;
auto info_data_cb = [](rocprofiler_callback_tracing_kind_t,
uint32_t,
rocprofiler_tracing_operation_t,
uint32_t arg_num,
const void* const arg_value_addr,
int32_t arg_indir_cnt,
@@ -165,7 +165,7 @@ tool_tracing_callback(rocprofiler_callback_tracing_record_t record,
} info_data_v;
auto info_data_cb = [](rocprofiler_callback_tracing_kind_t,
uint32_t,
rocprofiler_tracing_operation_t,
uint32_t arg_num,
const void* const arg_value_addr,
int32_t arg_indir_cnt,
@@ -197,6 +197,5 @@ initialize(HsaApiTable* table);
void
finalize();
}; // namespace thread_trace
} // namespace thread_trace
} // namespace rocprofiler
@@ -179,11 +179,11 @@ se_data_callback(int* seid, uint8_t** buffer, uint64_t* buffer_size, void* userd
return table.se_data(seid, buffer, buffer_size, table.user);
}
}; // namespace att_parser
}; // namespace rocprofiler
} // namespace att_parser
} // namespace rocprofiler
extern "C" {
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_att_parse_data(rocprofiler_att_parser_se_data_callback_t user_se_data_callback,
rocprofiler_att_parser_trace_callback_t user_trace_callback,
rocprofiler_att_parser_isa_callback_t user_isa_callback,
@@ -34,7 +34,7 @@ using DispatchThreadTracer = rocprofiler::thread_trace::DispatchThreadTracer;
using AgentThreadTracer = rocprofiler::thread_trace::AgentThreadTracer;
extern "C" {
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_configure_dispatch_thread_trace_service(
rocprofiler_context_id_t context_id,
rocprofiler_att_parameter_t* parameters,
@@ -95,7 +95,7 @@ rocprofiler_configure_dispatch_thread_trace_service(
return ROCPROFILER_STATUS_SUCCESS;
}
rocprofiler_status_t ROCPROFILER_API
rocprofiler_status_t
rocprofiler_configure_agent_thread_trace_service(
rocprofiler_context_id_t context_id,
rocprofiler_att_parameter_t* parameters,
@@ -121,6 +121,5 @@ callbacks_init();
void
callbacks_fini();
}; // namespace Callbacks
}; // namespace ATTTest
} // namespace Callbacks
} // namespace ATTTest
@@ -240,7 +240,7 @@ consume_args(Args&&...)
int
save_args(rocprofiler_callback_tracing_kind_t domain_idx,
uint32_t op_idx,
rocprofiler_tracing_operation_t op_idx,
uint32_t arg_num,
const void* const arg_value_addr,
int32_t arg_indirection_count,