Remove SERVICE_ from ROCPROFILER_SERVICE_* enum vals (#168)

- these are unnecessary and are inconsistent with the name convention of everything else related to callback tracing

[ROCm/rocprofiler-sdk commit: 033fd941e0]
This commit is contained in:
Jonathan R. Madsen
2023-10-31 15:06:03 -05:00
committed by GitHub
orang tua e4ebd5a22a
melakukan 57ed1bcfd3
11 mengubah file dengan 98 tambahan dan 103 penghapusan
@@ -150,7 +150,7 @@ get_buffer_tracing_names()
[](rocprofiler_service_buffer_tracing_kind_t kindv, uint32_t operation, void* data_v) { [](rocprofiler_service_buffer_tracing_kind_t kindv, uint32_t operation, void* data_v) {
auto* name_info_v = static_cast<buffer_name_info*>(data_v); auto* name_info_v = static_cast<buffer_name_info*>(data_v);
if(kindv == ROCPROFILER_SERVICE_BUFFER_TRACING_HSA_API) if(kindv == ROCPROFILER_BUFFER_TRACING_HSA_API)
{ {
const char* name = nullptr; const char* name = nullptr;
ROCPROFILER_CALL(rocprofiler_query_buffer_tracing_kind_operation_name( ROCPROFILER_CALL(rocprofiler_query_buffer_tracing_kind_operation_name(
@@ -172,7 +172,7 @@ get_buffer_tracing_names()
"query buffer tracing kind operation name"); "query buffer tracing kind operation name");
if(name) name_info_v->kind_names[kind] = name; if(name) name_info_v->kind_names[kind] = name;
if(kind == ROCPROFILER_SERVICE_BUFFER_TRACING_HSA_API) if(kind == ROCPROFILER_BUFFER_TRACING_HSA_API)
{ {
ROCPROFILER_CALL(rocprofiler_iterate_buffer_tracing_kind_operations( ROCPROFILER_CALL(rocprofiler_iterate_buffer_tracing_kind_operations(
kind, tracing_kind_operation_cb, static_cast<void*>(data)), kind, tracing_kind_operation_cb, static_cast<void*>(data)),
@@ -220,7 +220,7 @@ tool_tracing_callback(rocprofiler_context_id_t context,
throw std::runtime_error{"rocprofiler_record_header_t (category | kind) != hash"}; throw std::runtime_error{"rocprofiler_record_header_t (category | kind) != hash"};
} }
else if(header->category == ROCPROFILER_BUFFER_CATEGORY_TRACING && else if(header->category == ROCPROFILER_BUFFER_CATEGORY_TRACING &&
header->kind == ROCPROFILER_SERVICE_BUFFER_TRACING_HSA_API) header->kind == ROCPROFILER_BUFFER_TRACING_HSA_API)
{ {
auto* record = auto* record =
static_cast<rocprofiler_buffer_tracing_hsa_api_record_t*>(header->payload); static_cast<rocprofiler_buffer_tracing_hsa_api_record_t*>(header->payload);
@@ -312,10 +312,9 @@ tool_init(rocprofiler_client_finalize_t fini_func, void* tool_data)
&client_buffer), &client_buffer),
"buffer creation failed"); "buffer creation failed");
ROCPROFILER_CALL( ROCPROFILER_CALL(rocprofiler_configure_buffer_tracing_service(
rocprofiler_configure_buffer_tracing_service( client_ctx, ROCPROFILER_BUFFER_TRACING_HSA_API, nullptr, 0, client_buffer),
client_ctx, ROCPROFILER_SERVICE_BUFFER_TRACING_HSA_API, nullptr, 0, client_buffer), "buffer tracing service failed to configure");
"buffer tracing service failed to configure");
auto client_thread = rocprofiler_callback_thread_t{}; auto client_thread = rocprofiler_callback_thread_t{};
ROCPROFILER_CALL(rocprofiler_create_callback_thread(&client_thread), ROCPROFILER_CALL(rocprofiler_create_callback_thread(&client_thread),
@@ -147,7 +147,7 @@ get_callback_id_names()
[](rocprofiler_service_callback_tracing_kind_t kindv, uint32_t operation, void* data_v) { [](rocprofiler_service_callback_tracing_kind_t kindv, uint32_t operation, void* data_v) {
auto* name_info_v = static_cast<callback_name_info*>(data_v); auto* name_info_v = static_cast<callback_name_info*>(data_v);
if(kindv == ROCPROFILER_SERVICE_CALLBACK_TRACING_HSA_API) if(kindv == ROCPROFILER_CALLBACK_TRACING_HSA_API)
{ {
const char* name = nullptr; const char* name = nullptr;
ROCPROFILER_CALL(rocprofiler_query_callback_tracing_kind_operation_name( ROCPROFILER_CALL(rocprofiler_query_callback_tracing_kind_operation_name(
@@ -169,7 +169,7 @@ get_callback_id_names()
"query callback tracing kind operation name"); "query callback tracing kind operation name");
if(name) name_info_v->kind_names[kind] = name; if(name) name_info_v->kind_names[kind] = name;
if(kind == ROCPROFILER_SERVICE_CALLBACK_TRACING_HSA_API) if(kind == ROCPROFILER_CALLBACK_TRACING_HSA_API)
{ {
ROCPROFILER_CALL(rocprofiler_iterate_callback_tracing_kind_operations( ROCPROFILER_CALL(rocprofiler_iterate_callback_tracing_kind_operations(
kind, tracing_kind_operation_cb, static_cast<void*>(data)), kind, tracing_kind_operation_cb, static_cast<void*>(data)),
@@ -194,7 +194,7 @@ tool_tracing_callback(rocprofiler_callback_tracing_record_t record,
auto now = std::chrono::steady_clock::now().time_since_epoch().count(); auto now = std::chrono::steady_clock::now().time_since_epoch().count();
uint64_t dt = 0; uint64_t dt = 0;
if(record.phase == ROCPROFILER_SERVICE_CALLBACK_PHASE_ENTER) if(record.phase == ROCPROFILER_CALLBACK_PHASE_ENTER)
user_data->value = now; user_data->value = now;
else else
dt = (now - user_data->value); dt = (now - user_data->value);
@@ -273,7 +273,7 @@ tool_init(rocprofiler_client_finalize_t fini_func, void* tool_data)
ROCPROFILER_CALL( ROCPROFILER_CALL(
rocprofiler_configure_callback_tracing_service(client_ctx, rocprofiler_configure_callback_tracing_service(client_ctx,
ROCPROFILER_SERVICE_CALLBACK_TRACING_HSA_API, ROCPROFILER_CALLBACK_TRACING_HSA_API,
nullptr, nullptr,
0, 0,
tool_tracing_callback, tool_tracing_callback,
@@ -104,16 +104,14 @@ typedef enum // NOLINT(performance-enum-size)
*/ */
typedef enum // NOLINT(performance-enum-size) typedef enum // NOLINT(performance-enum-size)
{ {
ROCPROFILER_SERVICE_CALLBACK_PHASE_NONE = 0, ///< Callback has no phase ROCPROFILER_CALLBACK_PHASE_NONE = 0, ///< Callback has no phase
ROCPROFILER_SERVICE_CALLBACK_PHASE_ENTER, ///< Callback invoked prior to function execution ROCPROFILER_CALLBACK_PHASE_ENTER, ///< Callback invoked prior to function execution
ROCPROFILER_SERVICE_CALLBACK_PHASE_LOAD = ROCPROFILER_CALLBACK_PHASE_LOAD =
ROCPROFILER_SERVICE_CALLBACK_PHASE_ENTER, ///< Callback invoked prior to code object ROCPROFILER_CALLBACK_PHASE_ENTER, ///< Callback invoked prior to code object loading
///< loading ROCPROFILER_CALLBACK_PHASE_EXIT, ///< Callback invoked after to function execution
ROCPROFILER_SERVICE_CALLBACK_PHASE_EXIT, ///< Callback invoked after to function execution ROCPROFILER_CALLBACK_PHASE_UNLOAD =
ROCPROFILER_SERVICE_CALLBACK_PHASE_UNLOAD = ROCPROFILER_CALLBACK_PHASE_EXIT, ///< Callback invoked prior to code object unloading
ROCPROFILER_SERVICE_CALLBACK_PHASE_EXIT, ///< Callback invoked prior to code object ROCPROFILER_CALLBACK_PHASE_LAST,
///< unloading
ROCPROFILER_SERVICE_CALLBACK_PHASE_LAST,
} rocprofiler_service_callback_phase_t; } rocprofiler_service_callback_phase_t;
/** /**
@@ -121,13 +119,13 @@ typedef enum // NOLINT(performance-enum-size)
*/ */
typedef enum // NOLINT(performance-enum-size) typedef enum // NOLINT(performance-enum-size)
{ {
ROCPROFILER_SERVICE_CALLBACK_TRACING_NONE = 0, ROCPROFILER_CALLBACK_TRACING_NONE = 0,
ROCPROFILER_SERVICE_CALLBACK_TRACING_HSA_API, ///< Callbacks for HSA functions ROCPROFILER_CALLBACK_TRACING_HSA_API, ///< Callbacks for HSA functions
ROCPROFILER_SERVICE_CALLBACK_TRACING_HIP_API, ///< Callbacks for HIP functions ROCPROFILER_CALLBACK_TRACING_HIP_API, ///< Callbacks for HIP functions
ROCPROFILER_SERVICE_CALLBACK_TRACING_MARKER_API, ///< Callbacks for ROCTx functions ROCPROFILER_CALLBACK_TRACING_MARKER_API, ///< Callbacks for ROCTx functions
ROCPROFILER_SERVICE_CALLBACK_TRACING_CODE_OBJECT, ///< Callbacks for code object info ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT, ///< Callbacks for code object info
ROCPROFILER_SERVICE_CALLBACK_TRACING_KERNEL_DISPATCH, ///< Callbacks for kernel dispatches ROCPROFILER_CALLBACK_TRACING_KERNEL_DISPATCH, ///< Callbacks for kernel dispatches
ROCPROFILER_SERVICE_CALLBACK_TRACING_LAST, ROCPROFILER_CALLBACK_TRACING_LAST,
} rocprofiler_service_callback_tracing_kind_t; } rocprofiler_service_callback_tracing_kind_t;
/** /**
@@ -135,18 +133,18 @@ typedef enum // NOLINT(performance-enum-size)
*/ */
typedef enum // NOLINT(performance-enum-size) typedef enum // NOLINT(performance-enum-size)
{ {
ROCPROFILER_SERVICE_BUFFER_TRACING_NONE = 0, ROCPROFILER_BUFFER_TRACING_NONE = 0,
ROCPROFILER_SERVICE_BUFFER_TRACING_HSA_API, ///< Buffer HSA function calls ROCPROFILER_BUFFER_TRACING_HSA_API, ///< Buffer HSA function calls
ROCPROFILER_SERVICE_BUFFER_TRACING_HIP_API, ///< Buffer HIP function calls ROCPROFILER_BUFFER_TRACING_HIP_API, ///< Buffer HIP function calls
ROCPROFILER_SERVICE_BUFFER_TRACING_MARKER_API, ///< Buffer ROCTx function calls ROCPROFILER_BUFFER_TRACING_MARKER_API, ///< Buffer ROCTx function calls
ROCPROFILER_SERVICE_BUFFER_TRACING_MEMORY_COPY, ///< Buffer memory copy info ROCPROFILER_BUFFER_TRACING_MEMORY_COPY, ///< Buffer memory copy info
ROCPROFILER_SERVICE_BUFFER_TRACING_KERNEL_DISPATCH, ///< Buffer kernel dispatch info ROCPROFILER_BUFFER_TRACING_KERNEL_DISPATCH, ///< Buffer kernel dispatch info
ROCPROFILER_SERVICE_BUFFER_TRACING_PAGE_MIGRATION, ///< Buffer page migration info ROCPROFILER_BUFFER_TRACING_PAGE_MIGRATION, ///< Buffer page migration info
ROCPROFILER_SERVICE_BUFFER_TRACING_SCRATCH_MEMORY, ///< Buffer scratch memory reclaimation info ROCPROFILER_BUFFER_TRACING_SCRATCH_MEMORY, ///< Buffer scratch memory reclaimation info
ROCPROFILER_SERVICE_BUFFER_TRACING_EXTERNAL_CORRELATION, ///< Buffer external correlation info ROCPROFILER_BUFFER_TRACING_EXTERNAL_CORRELATION, ///< Buffer external correlation info
// To determine if this is possible to implement? // To determine if this is possible to implement?
// ROCPROFILER_SERVICE_BUFFER_TRACING_QUEUE_SCHEDULING, // ROCPROFILER_BUFFER_TRACING_QUEUE_SCHEDULING,
ROCPROFILER_SERVICE_BUFFER_TRACING_LAST, ROCPROFILER_BUFFER_TRACING_LAST,
} rocprofiler_service_buffer_tracing_kind_t; } rocprofiler_service_buffer_tracing_kind_t;
/** /**
@@ -356,7 +354,7 @@ typedef struct rocprofiler_callback_tracing_record_t
* rocprofiler_record_header_t* header = headers[i]; * rocprofiler_record_header_t* header = headers[i];
* *
* if(header->category == ROCPROFILER_BUFFER_CATEGORY_TRACING && * if(header->category == ROCPROFILER_BUFFER_CATEGORY_TRACING &&
* header->kind == ROCPROFILER_SERVICE_BUFFER_TRACING_HSA_API) * header->kind == ROCPROFILER_BUFFER_TRACING_HSA_API)
* { * {
* // cast to rocprofiler_buffer_tracing_hsa_api_record_t which * // cast to rocprofiler_buffer_tracing_hsa_api_record_t which
* // is type associated with this category + kind * // is type associated with this category + kind
@@ -48,7 +48,7 @@ namespace
{ {
#define ROCPROFILER_BUFFER_TRACING_KIND_STRING(CODE) \ #define ROCPROFILER_BUFFER_TRACING_KIND_STRING(CODE) \
template <> \ template <> \
struct buffer_tracing_kind_string<ROCPROFILER_SERVICE_BUFFER_TRACING_##CODE> \ struct buffer_tracing_kind_string<ROCPROFILER_BUFFER_TRACING_##CODE> \
{ \ { \
static constexpr auto value = \ static constexpr auto value = \
std::pair<const char*, size_t>{#CODE, std::string_view{#CODE}.length()}; \ std::pair<const char*, size_t>{#CODE, std::string_view{#CODE}.length()}; \
@@ -131,7 +131,7 @@ rocprofiler_query_buffer_tracing_kind_name(rocprofiler_service_buffer_tracing_ki
uint64_t* name_len) uint64_t* name_len)
{ {
auto&& val = rocprofiler::buffer_tracing::get_kind_name( auto&& val = rocprofiler::buffer_tracing::get_kind_name(
kind, std::make_index_sequence<ROCPROFILER_SERVICE_BUFFER_TRACING_LAST>{}); kind, std::make_index_sequence<ROCPROFILER_BUFFER_TRACING_LAST>{});
if(name) *name = val.first; if(name) *name = val.first;
if(name_len) *name_len = val.second; if(name_len) *name_len = val.second;
@@ -145,11 +145,10 @@ rocprofiler_query_buffer_tracing_kind_operation_name(rocprofiler_service_buffer_
const char** name, const char** name,
uint64_t* name_len) uint64_t* name_len)
{ {
if(kind < ROCPROFILER_SERVICE_BUFFER_TRACING_NONE || if(kind < ROCPROFILER_BUFFER_TRACING_NONE || kind >= ROCPROFILER_BUFFER_TRACING_LAST)
kind >= ROCPROFILER_SERVICE_BUFFER_TRACING_LAST)
return ROCPROFILER_STATUS_ERROR_KIND_NOT_FOUND; return ROCPROFILER_STATUS_ERROR_KIND_NOT_FOUND;
if(kind == ROCPROFILER_SERVICE_BUFFER_TRACING_HSA_API) if(kind == ROCPROFILER_BUFFER_TRACING_HSA_API)
{ {
const auto* val = rocprofiler::hsa::name_by_id(operation); const auto* val = rocprofiler::hsa::name_by_id(operation);
@@ -173,7 +172,7 @@ rocprofiler_query_buffer_tracing_kind_operation_name(rocprofiler_service_buffer_
rocprofiler_status_t rocprofiler_status_t
rocprofiler_iterate_buffer_tracing_kinds(rocprofiler_buffer_tracing_kind_cb_t callback, void* data) rocprofiler_iterate_buffer_tracing_kinds(rocprofiler_buffer_tracing_kind_cb_t callback, void* data)
{ {
for(uint32_t i = 0; i < ROCPROFILER_SERVICE_BUFFER_TRACING_LAST; ++i) for(uint32_t i = 0; i < ROCPROFILER_BUFFER_TRACING_LAST; ++i)
{ {
auto _success = callback(static_cast<rocprofiler_service_buffer_tracing_kind_t>(i), data); auto _success = callback(static_cast<rocprofiler_service_buffer_tracing_kind_t>(i), data);
if(_success != 0) break; if(_success != 0) break;
@@ -188,7 +187,7 @@ rocprofiler_iterate_buffer_tracing_kind_operations(
rocprofiler_buffer_tracing_kind_operation_cb_t callback, rocprofiler_buffer_tracing_kind_operation_cb_t callback,
void* data) void* data)
{ {
if(kind == ROCPROFILER_SERVICE_BUFFER_TRACING_HSA_API) if(kind == ROCPROFILER_BUFFER_TRACING_HSA_API)
{ {
auto ops = rocprofiler::hsa::get_ids(); auto ops = rocprofiler::hsa::get_ids();
for(const auto& itr : ops) for(const auto& itr : ops)
@@ -47,7 +47,7 @@ namespace
{ {
#define ROCPROFILER_CALLBACK_TRACING_KIND_STRING(CODE) \ #define ROCPROFILER_CALLBACK_TRACING_KIND_STRING(CODE) \
template <> \ template <> \
struct callback_tracing_kind_string<ROCPROFILER_SERVICE_CALLBACK_TRACING_##CODE> \ struct callback_tracing_kind_string<ROCPROFILER_CALLBACK_TRACING_##CODE> \
{ \ { \
static constexpr auto value = \ static constexpr auto value = \
std::pair<const char*, size_t>{#CODE, std::string_view{#CODE}.length()}; \ std::pair<const char*, size_t>{#CODE, std::string_view{#CODE}.length()}; \
@@ -122,7 +122,7 @@ rocprofiler_query_callback_tracing_kind_name(rocprofiler_service_callback_tracin
uint64_t* name_len) uint64_t* name_len)
{ {
auto&& val = rocprofiler::callback_tracing::get_kind_name( auto&& val = rocprofiler::callback_tracing::get_kind_name(
kind, std::make_index_sequence<ROCPROFILER_SERVICE_CALLBACK_TRACING_LAST>{}); kind, std::make_index_sequence<ROCPROFILER_CALLBACK_TRACING_LAST>{});
if(name) *name = val.first; if(name) *name = val.first;
if(name_len) *name_len = val.second; if(name_len) *name_len = val.second;
@@ -137,11 +137,10 @@ rocprofiler_query_callback_tracing_kind_operation_name(
const char** name, const char** name,
uint64_t* name_len) uint64_t* name_len)
{ {
if(kind < ROCPROFILER_SERVICE_CALLBACK_TRACING_NONE || if(kind < ROCPROFILER_CALLBACK_TRACING_NONE || kind >= ROCPROFILER_CALLBACK_TRACING_LAST)
kind >= ROCPROFILER_SERVICE_CALLBACK_TRACING_LAST)
return ROCPROFILER_STATUS_ERROR_KIND_NOT_FOUND; return ROCPROFILER_STATUS_ERROR_KIND_NOT_FOUND;
if(kind == ROCPROFILER_SERVICE_CALLBACK_TRACING_HSA_API) if(kind == ROCPROFILER_CALLBACK_TRACING_HSA_API)
{ {
const auto* val = rocprofiler::hsa::name_by_id(operation); const auto* val = rocprofiler::hsa::name_by_id(operation);
@@ -166,7 +165,7 @@ rocprofiler_status_t
rocprofiler_iterate_callback_tracing_kinds(rocprofiler_callback_tracing_kind_cb_t callback, rocprofiler_iterate_callback_tracing_kinds(rocprofiler_callback_tracing_kind_cb_t callback,
void* data) void* data)
{ {
for(uint32_t i = 0; i < ROCPROFILER_SERVICE_CALLBACK_TRACING_LAST; ++i) for(uint32_t i = 0; i < ROCPROFILER_CALLBACK_TRACING_LAST; ++i)
{ {
auto _success = callback(static_cast<rocprofiler_service_callback_tracing_kind_t>(i), data); auto _success = callback(static_cast<rocprofiler_service_callback_tracing_kind_t>(i), data);
if(_success != 0) break; if(_success != 0) break;
@@ -181,7 +180,7 @@ rocprofiler_iterate_callback_tracing_kind_operations(
rocprofiler_callback_tracing_kind_operation_cb_t callback, rocprofiler_callback_tracing_kind_operation_cb_t callback,
void* data) void* data)
{ {
if(kind == ROCPROFILER_SERVICE_CALLBACK_TRACING_HSA_API) if(kind == ROCPROFILER_CALLBACK_TRACING_HSA_API)
{ {
auto ops = rocprofiler::hsa::get_ids(); auto ops = rocprofiler::hsa::get_ids();
for(const auto& itr : ops) for(const auto& itr : ops)
@@ -201,7 +200,7 @@ rocprofiler_iterate_callback_tracing_kind_operation_args(
rocprofiler_callback_tracing_operation_args_cb_t callback, rocprofiler_callback_tracing_operation_args_cb_t callback,
void* user_data) void* user_data)
{ {
if(record.kind == ROCPROFILER_SERVICE_CALLBACK_TRACING_HSA_API) if(record.kind == ROCPROFILER_CALLBACK_TRACING_HSA_API)
{ {
rocprofiler::hsa::iterate_args( rocprofiler::hsa::iterate_args(
record.operation, record.operation,
@@ -43,16 +43,16 @@ struct domain_info;
template <> template <>
struct domain_info<rocprofiler_service_callback_tracing_kind_t> struct domain_info<rocprofiler_service_callback_tracing_kind_t>
{ {
static constexpr size_t none = ROCPROFILER_SERVICE_CALLBACK_TRACING_NONE; static constexpr size_t none = ROCPROFILER_CALLBACK_TRACING_NONE;
static constexpr size_t last = ROCPROFILER_SERVICE_CALLBACK_TRACING_LAST; static constexpr size_t last = ROCPROFILER_CALLBACK_TRACING_LAST;
static constexpr auto padding = domain_ops_padding; static constexpr auto padding = domain_ops_padding;
}; };
template <> template <>
struct domain_info<rocprofiler_service_buffer_tracing_kind_t> struct domain_info<rocprofiler_service_buffer_tracing_kind_t>
{ {
static constexpr size_t none = ROCPROFILER_SERVICE_BUFFER_TRACING_NONE; static constexpr size_t none = ROCPROFILER_BUFFER_TRACING_NONE;
static constexpr size_t last = ROCPROFILER_SERVICE_BUFFER_TRACING_LAST; static constexpr size_t last = ROCPROFILER_BUFFER_TRACING_LAST;
static constexpr auto padding = domain_ops_padding; static constexpr auto padding = domain_ops_padding;
}; };
@@ -88,8 +88,8 @@
template <> \ template <> \
struct hsa_api_info<HSA_API_ID> \ struct hsa_api_info<HSA_API_ID> \
{ \ { \
static constexpr auto callback_domain_idx = ROCPROFILER_SERVICE_CALLBACK_TRACING_HSA_API; \ static constexpr auto callback_domain_idx = ROCPROFILER_CALLBACK_TRACING_HSA_API; \
static constexpr auto buffered_domain_idx = ROCPROFILER_SERVICE_BUFFER_TRACING_HSA_API; \ static constexpr auto buffered_domain_idx = ROCPROFILER_BUFFER_TRACING_HSA_API; \
static constexpr auto table_idx = HSA_TABLE; \ static constexpr auto table_idx = HSA_TABLE; \
static constexpr auto operation_idx = HSA_API_ID; \ static constexpr auto operation_idx = HSA_API_ID; \
static constexpr auto name = #HSA_FUNC; \ static constexpr auto name = #HSA_FUNC; \
@@ -160,8 +160,8 @@
template <> \ template <> \
struct hsa_api_info<HSA_API_ID> \ struct hsa_api_info<HSA_API_ID> \
{ \ { \
static constexpr auto callback_domain_idx = ROCPROFILER_SERVICE_CALLBACK_TRACING_HSA_API; \ static constexpr auto callback_domain_idx = ROCPROFILER_CALLBACK_TRACING_HSA_API; \
static constexpr auto buffered_domain_idx = ROCPROFILER_SERVICE_BUFFER_TRACING_HSA_API; \ static constexpr auto buffered_domain_idx = ROCPROFILER_BUFFER_TRACING_HSA_API; \
static constexpr auto table_idx = HSA_TABLE; \ static constexpr auto table_idx = HSA_TABLE; \
static constexpr auto operation_idx = HSA_API_ID; \ static constexpr auto operation_idx = HSA_API_ID; \
static constexpr auto name = #HSA_FUNC; \ static constexpr auto name = #HSA_FUNC; \
@@ -263,7 +263,7 @@ hsa_api_impl<Idx>::functor(Args&&... args)
corr_id, corr_id,
info_type::callback_domain_idx, info_type::callback_domain_idx,
info_type::operation_idx, info_type::operation_idx,
ROCPROFILER_SERVICE_CALLBACK_PHASE_ENTER, ROCPROFILER_CALLBACK_PHASE_ENTER,
static_cast<void*>(&tracer_data)}; static_cast<void*>(&tracer_data)};
auto& callback_info = auto& callback_info =
@@ -305,7 +305,7 @@ hsa_api_impl<Idx>::functor(Args&&... args)
auto& record = itr.record; auto& record = itr.record;
auto& user_data = itr.user_data; auto& user_data = itr.user_data;
record.phase = ROCPROFILER_SERVICE_CALLBACK_PHASE_EXIT; record.phase = ROCPROFILER_CALLBACK_PHASE_EXIT;
record.payload = static_cast<void*>(&tracer_data); record.payload = static_cast<void*>(&tracer_data);
auto& callback_info = auto& callback_info =
@@ -172,8 +172,8 @@ QueueController::init(CoreApiTable& core_table, AmdExtTable& ext_table)
} }
else if(itr->buffered_tracer) else if(itr->buffered_tracer)
{ {
if(itr->buffered_tracer->domains(ROCPROFILER_SERVICE_BUFFER_TRACING_KERNEL_DISPATCH) || if(itr->buffered_tracer->domains(ROCPROFILER_BUFFER_TRACING_KERNEL_DISPATCH) ||
itr->buffered_tracer->domains(ROCPROFILER_SERVICE_BUFFER_TRACING_MEMORY_COPY)) itr->buffered_tracer->domains(ROCPROFILER_BUFFER_TRACING_MEMORY_COPY))
{ {
enable_intercepter = true; enable_intercepter = true;
break; break;
@@ -93,10 +93,10 @@ tool_tracing_callback(rocprofiler_callback_tracing_record_t record,
cb_data->client_callback_count++; cb_data->client_callback_count++;
static auto first = std::once_flag{}; static auto first = std::once_flag{};
std::call_once( std::call_once(first,
first, [record]() { EXPECT_EQ(record.phase, ROCPROFILER_SERVICE_CALLBACK_PHASE_ENTER); }); [record]() { EXPECT_EQ(record.phase, ROCPROFILER_CALLBACK_PHASE_ENTER); });
if(record.phase == ROCPROFILER_SERVICE_CALLBACK_PHASE_ENTER) if(record.phase == ROCPROFILER_CALLBACK_PHASE_ENTER)
{ {
EXPECT_EQ(cb_data->client_correlation.find(internal_corr_id), EXPECT_EQ(cb_data->client_correlation.find(internal_corr_id),
cb_data->client_correlation.end()) cb_data->client_correlation.end())
@@ -169,7 +169,7 @@ tool_tracing_buffered(rocprofiler_context_id_t context,
auto hash = rocprofiler_record_header_compute_hash(header->category, header->kind); auto hash = rocprofiler_record_header_compute_hash(header->category, header->kind);
EXPECT_EQ(header->hash, hash); EXPECT_EQ(header->hash, hash);
EXPECT_TRUE(header->category == ROCPROFILER_BUFFER_CATEGORY_TRACING && EXPECT_TRUE(header->category == ROCPROFILER_BUFFER_CATEGORY_TRACING &&
header->kind == ROCPROFILER_SERVICE_BUFFER_TRACING_HSA_API); header->kind == ROCPROFILER_BUFFER_TRACING_HSA_API);
v_records.emplace_back( v_records.emplace_back(
static_cast<rocprofiler_buffer_tracing_hsa_api_record_t*>(header->payload)); static_cast<rocprofiler_buffer_tracing_hsa_api_record_t*>(header->payload));
@@ -242,14 +242,14 @@ TEST(rocprofiler_lib, callback_external_correlation)
ROCPROFILER_CALL(rocprofiler_create_context(&cb_data->client_ctx), ROCPROFILER_CALL(rocprofiler_create_context(&cb_data->client_ctx),
"failed to create context"); "failed to create context");
ROCPROFILER_CALL(rocprofiler_configure_callback_tracing_service( ROCPROFILER_CALL(
cb_data->client_ctx, rocprofiler_configure_callback_tracing_service(cb_data->client_ctx,
ROCPROFILER_SERVICE_CALLBACK_TRACING_HSA_API, ROCPROFILER_CALLBACK_TRACING_HSA_API,
nullptr, nullptr,
0, 0,
tool_tracing_callback, tool_tracing_callback,
client_data), client_data),
"callback tracing service failed to configure"); "callback tracing service failed to configure");
int valid_ctx = 0; int valid_ctx = 0;
ROCPROFILER_CALL(rocprofiler_context_is_valid(cb_data->client_ctx, &valid_ctx), ROCPROFILER_CALL(rocprofiler_context_is_valid(cb_data->client_ctx, &valid_ctx),
@@ -392,7 +392,7 @@ TEST(rocprofiler_lib, buffered_external_correlation)
ROCPROFILER_CALL( ROCPROFILER_CALL(
rocprofiler_configure_buffer_tracing_service(cb_data->client_ctx, rocprofiler_configure_buffer_tracing_service(cb_data->client_ctx,
ROCPROFILER_SERVICE_BUFFER_TRACING_HSA_API, ROCPROFILER_BUFFER_TRACING_HSA_API,
nullptr, nullptr,
0, 0,
cb_data->client_buffer), cb_data->client_buffer),
@@ -92,7 +92,7 @@ get_callback_tracing_names()
[](rocprofiler_service_callback_tracing_kind_t kindv, uint32_t operation, void* data_v) { [](rocprofiler_service_callback_tracing_kind_t kindv, uint32_t operation, void* data_v) {
auto* name_info_v = static_cast<callback_name_info*>(data_v); auto* name_info_v = static_cast<callback_name_info*>(data_v);
if(kindv == ROCPROFILER_SERVICE_CALLBACK_TRACING_HSA_API) if(kindv == ROCPROFILER_CALLBACK_TRACING_HSA_API)
{ {
const char* name = nullptr; const char* name = nullptr;
ROCPROFILER_CALL(rocprofiler_query_callback_tracing_kind_operation_name( ROCPROFILER_CALL(rocprofiler_query_callback_tracing_kind_operation_name(
@@ -114,7 +114,7 @@ get_callback_tracing_names()
"query callback tracing kind operation name"); "query callback tracing kind operation name");
if(name) name_info_v->kind_names[kind] = name; if(name) name_info_v->kind_names[kind] = name;
if(kind == ROCPROFILER_SERVICE_CALLBACK_TRACING_HSA_API) if(kind == ROCPROFILER_CALLBACK_TRACING_HSA_API)
{ {
ROCPROFILER_CALL(rocprofiler_iterate_callback_tracing_kind_operations( ROCPROFILER_CALL(rocprofiler_iterate_callback_tracing_kind_operations(
kind, tracing_kind_operation_cb, static_cast<void*>(data)), kind, tracing_kind_operation_cb, static_cast<void*>(data)),
@@ -151,7 +151,7 @@ get_buffer_tracing_names()
[](rocprofiler_service_buffer_tracing_kind_t kindv, uint32_t operation, void* data_v) { [](rocprofiler_service_buffer_tracing_kind_t kindv, uint32_t operation, void* data_v) {
auto* name_info_v = static_cast<buffer_name_info*>(data_v); auto* name_info_v = static_cast<buffer_name_info*>(data_v);
if(kindv == ROCPROFILER_SERVICE_BUFFER_TRACING_HSA_API) if(kindv == ROCPROFILER_BUFFER_TRACING_HSA_API)
{ {
const char* name = nullptr; const char* name = nullptr;
ROCPROFILER_CALL(rocprofiler_query_buffer_tracing_kind_operation_name( ROCPROFILER_CALL(rocprofiler_query_buffer_tracing_kind_operation_name(
@@ -173,7 +173,7 @@ get_buffer_tracing_names()
"query buffer tracing kind operation name"); "query buffer tracing kind operation name");
if(name) name_info_v->kind_names[kind] = name; if(name) name_info_v->kind_names[kind] = name;
if(kind == ROCPROFILER_SERVICE_BUFFER_TRACING_HSA_API) if(kind == ROCPROFILER_BUFFER_TRACING_HSA_API)
{ {
ROCPROFILER_CALL(rocprofiler_iterate_buffer_tracing_kind_operations( ROCPROFILER_CALL(rocprofiler_iterate_buffer_tracing_kind_operations(
kind, tracing_kind_operation_cb, static_cast<void*>(data)), kind, tracing_kind_operation_cb, static_cast<void*>(data)),
@@ -199,15 +199,15 @@ tool_tracing_callback(rocprofiler_callback_tracing_record_t record,
return std::chrono::steady_clock::now().time_since_epoch().count(); return std::chrono::steady_clock::now().time_since_epoch().count();
}; };
if(record.phase == ROCPROFILER_SERVICE_CALLBACK_PHASE_ENTER && cb_data->current_depth == 0) if(record.phase == ROCPROFILER_CALLBACK_PHASE_ENTER && cb_data->current_depth == 0)
{ {
user_data->value = get_timestamp(); user_data->value = get_timestamp();
} }
static auto name_map = get_callback_tracing_names(); static auto name_map = get_callback_tracing_names();
EXPECT_EQ(name_map.kind_names.size(), ROCPROFILER_SERVICE_CALLBACK_TRACING_LAST); EXPECT_EQ(name_map.kind_names.size(), ROCPROFILER_CALLBACK_TRACING_LAST);
EXPECT_EQ(name_map.operation_names.at(ROCPROFILER_SERVICE_CALLBACK_TRACING_HSA_API).size(), EXPECT_EQ(name_map.operation_names.at(ROCPROFILER_CALLBACK_TRACING_HSA_API).size(),
ROCPROFILER_HSA_API_ID_LAST); ROCPROFILER_HSA_API_ID_LAST);
std::cout << "[" << __FILE__ << ":" << __LINE__ << "] " std::cout << "[" << __FILE__ << ":" << __LINE__ << "] "
@@ -215,11 +215,11 @@ tool_tracing_callback(rocprofiler_callback_tracing_record_t record,
<< std::flush; << std::flush;
cb_data->client_callback_count++; cb_data->client_callback_count++;
if(record.phase == ROCPROFILER_SERVICE_CALLBACK_PHASE_ENTER) if(record.phase == ROCPROFILER_CALLBACK_PHASE_ENTER)
{ {
cb_data->current_depth++; cb_data->current_depth++;
} }
else if(record.phase == ROCPROFILER_SERVICE_CALLBACK_PHASE_EXIT) else if(record.phase == ROCPROFILER_CALLBACK_PHASE_EXIT)
{ {
cb_data->max_depth = std::max(cb_data->current_depth, cb_data->max_depth); cb_data->max_depth = std::max(cb_data->current_depth, cb_data->max_depth);
cb_data->current_depth--; cb_data->current_depth--;
@@ -256,7 +256,7 @@ tool_tracing_callback(rocprofiler_callback_tracing_record_t record,
ROCPROFILER_CALL(rocprofiler_iterate_callback_tracing_kind_operation_args( ROCPROFILER_CALL(rocprofiler_iterate_callback_tracing_kind_operation_args(
record, info_data_cb, static_cast<void*>(&info_data_v)), record, info_data_cb, static_cast<void*>(&info_data_v)),
"Failure iterating trace operation args"); "Failure iterating trace operation args");
if(record.kind == ROCPROFILER_SERVICE_CALLBACK_TRACING_HSA_API && if(record.kind == ROCPROFILER_CALLBACK_TRACING_HSA_API &&
!(record.operation == ROCPROFILER_HSA_API_ID_hsa_init || !(record.operation == ROCPROFILER_HSA_API_ID_hsa_init ||
record.operation == ROCPROFILER_HSA_API_ID_hsa_shut_down)) record.operation == ROCPROFILER_HSA_API_ID_hsa_shut_down))
{ {
@@ -264,7 +264,7 @@ tool_tracing_callback(rocprofiler_callback_tracing_record_t record,
<< name_map.operation_names[record.kind][record.operation] << info_data_v.arg_ss.str(); << name_map.operation_names[record.kind][record.operation] << info_data_v.arg_ss.str();
} }
if(record.phase == ROCPROFILER_SERVICE_CALLBACK_PHASE_EXIT && cb_data->current_depth == 0) if(record.phase == ROCPROFILER_CALLBACK_PHASE_EXIT && cb_data->current_depth == 0)
{ {
cb_data->client_elapsed += (get_timestamp() - user_data->value); cb_data->client_elapsed += (get_timestamp() - user_data->value);
} }
@@ -282,8 +282,8 @@ tool_tracing_buffered(rocprofiler_context_id_t context,
static auto name_map = get_buffer_tracing_names(); static auto name_map = get_buffer_tracing_names();
EXPECT_EQ(name_map.kind_names.size(), ROCPROFILER_SERVICE_BUFFER_TRACING_LAST); EXPECT_EQ(name_map.kind_names.size(), ROCPROFILER_BUFFER_TRACING_LAST);
EXPECT_EQ(name_map.operation_names.at(ROCPROFILER_SERVICE_BUFFER_TRACING_HSA_API).size(), EXPECT_EQ(name_map.operation_names.at(ROCPROFILER_BUFFER_TRACING_HSA_API).size(),
ROCPROFILER_HSA_API_ID_LAST); ROCPROFILER_HSA_API_ID_LAST);
auto v_records = std::vector<rocprofiler_buffer_tracing_hsa_api_record_t*>{}; auto v_records = std::vector<rocprofiler_buffer_tracing_hsa_api_record_t*>{};
@@ -297,7 +297,7 @@ tool_tracing_buffered(rocprofiler_context_id_t context,
auto hash = rocprofiler_record_header_compute_hash(header->category, header->kind); auto hash = rocprofiler_record_header_compute_hash(header->category, header->kind);
EXPECT_EQ(header->hash, hash); EXPECT_EQ(header->hash, hash);
EXPECT_TRUE(header->category == ROCPROFILER_BUFFER_CATEGORY_TRACING && EXPECT_TRUE(header->category == ROCPROFILER_BUFFER_CATEGORY_TRACING &&
header->kind == ROCPROFILER_SERVICE_BUFFER_TRACING_HSA_API); header->kind == ROCPROFILER_BUFFER_TRACING_HSA_API);
v_records.emplace_back( v_records.emplace_back(
static_cast<rocprofiler_buffer_tracing_hsa_api_record_t*>(header->payload)); static_cast<rocprofiler_buffer_tracing_hsa_api_record_t*>(header->payload));
@@ -393,14 +393,14 @@ TEST(rocprofiler_lib, callback_registration_lambda_with_result)
ROCPROFILER_CALL(rocprofiler_create_context(&cb_data->client_ctx), ROCPROFILER_CALL(rocprofiler_create_context(&cb_data->client_ctx),
"failed to create context"); "failed to create context");
ROCPROFILER_CALL(rocprofiler_configure_callback_tracing_service( ROCPROFILER_CALL(
cb_data->client_ctx, rocprofiler_configure_callback_tracing_service(cb_data->client_ctx,
ROCPROFILER_SERVICE_CALLBACK_TRACING_HSA_API, ROCPROFILER_CALLBACK_TRACING_HSA_API,
nullptr, nullptr,
0, 0,
tool_tracing_callback, tool_tracing_callback,
client_data), client_data),
"callback tracing service failed to configure"); "callback tracing service failed to configure");
int valid_ctx = 0; int valid_ctx = 0;
ROCPROFILER_CALL(rocprofiler_context_is_valid(cb_data->client_ctx, &valid_ctx), ROCPROFILER_CALL(rocprofiler_context_is_valid(cb_data->client_ctx, &valid_ctx),
@@ -533,7 +533,7 @@ TEST(rocprofiler_lib, buffer_registration_lambda_with_result)
ROCPROFILER_CALL( ROCPROFILER_CALL(
rocprofiler_configure_buffer_tracing_service(cb_data->client_ctx, rocprofiler_configure_buffer_tracing_service(cb_data->client_ctx,
ROCPROFILER_SERVICE_BUFFER_TRACING_HSA_API, ROCPROFILER_BUFFER_TRACING_HSA_API,
nullptr, nullptr,
0, 0,
cb_data->client_buffer), cb_data->client_buffer),