From 869a5693d1357c92254d270500eea798ef7d95ef Mon Sep 17 00:00:00 2001 From: "Jonathan R. Madsen" Date: Tue, 25 Jun 2024 02:51:41 -0500 Subject: [PATCH] Remove fatal error when callback and buffer tracing API in one context (#952) - one context for callback and buffer tracing of same API produces erroneous fatal error -- this is a valid use case [ROCm/rocprofiler-sdk commit: b62ba5f0960519daf47b853cb8b2246f953794cf] --- .../source/lib/rocprofiler-sdk/hip/hip.cpp | 3 - .../source/lib/rocprofiler-sdk/hsa/hsa.cpp | 3 - .../lib/rocprofiler-sdk/marker/marker.cpp | 3 - .../lib/rocprofiler-sdk/tracing/tracing.hpp | 88 ------------------- 4 files changed, 97 deletions(-) diff --git a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hip/hip.cpp b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hip/hip.cpp index e2eee9211b..8920246cad 100644 --- a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hip/hip.cpp +++ b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hip/hip.cpp @@ -222,9 +222,6 @@ hip_api_impl::functor(Args... args) return; } - ROCP_FATAL_IF(external_corr_ids.size() < (callback_contexts.size() + buffered_contexts.size())) - << "missing external correlation ids"; - auto buffer_record = common::init_public_api_struct(buffered_api_data_t{}); auto tracer_data = common::init_public_api_struct(callback_api_data_t{}); auto* corr_id = tracing::correlation_service::construct(ref_count); diff --git a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/hsa.cpp b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/hsa.cpp index 694ff67158..1e5a6ca321 100644 --- a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/hsa.cpp +++ b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/hsa.cpp @@ -337,9 +337,6 @@ hsa_api_impl::functor(Args... args) return; } - ROCP_FATAL_IF(external_corr_ids.size() < (callback_contexts.size() + buffered_contexts.size())) - << "missing external correlation ids"; - auto buffer_record = common::init_public_api_struct(buffer_hsa_api_record_t{}); auto tracer_data = common::init_public_api_struct(callback_hsa_api_data_t{}); auto* corr_id = tracing::correlation_service::construct(ref_count); diff --git a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/marker/marker.cpp b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/marker/marker.cpp index 6a6de2bcaa..b6efa826c1 100644 --- a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/marker/marker.cpp +++ b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/marker/marker.cpp @@ -165,9 +165,6 @@ roctx_api_impl::functor(Args... args) return; } - ROCP_FATAL_IF(external_corr_ids.size() < (callback_contexts.size() + buffered_contexts.size())) - << "missing external correlation ids"; - auto ref_count = 2; auto buffer_record = common::init_public_api_struct(buffered_api_data_t{}); auto tracer_data = common::init_public_api_struct(callback_api_data_t{}); diff --git a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/tracing/tracing.hpp b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/tracing/tracing.hpp index 49f8863ab7..7cc214fe5f 100644 --- a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/tracing/tracing.hpp +++ b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/tracing/tracing.hpp @@ -37,94 +37,6 @@ namespace rocprofiler { namespace tracing { -// template -// bool -// context_filter(const context::context* ctx, DomainT domain, Args... args); - -// template -// void -// populate_contexts(rocprofiler_callback_tracing_kind_t callback_domain_idx, -// rocprofiler_buffer_tracing_kind_t buffered_domain_idx, -// rocprofiler_tracing_operation_t operation_idx, -// callback_context_data_vec_t& callback_contexts, -// buffered_context_data_vec_t& buffered_contexts, -// external_correlation_id_map_t& extern_corr_ids, -// ClearContainersT = ClearContainersT{}); - -// template -// void -// populate_contexts(rocprofiler_callback_tracing_kind_t callback_domain_idx, -// rocprofiler_buffer_tracing_kind_t buffered_domain_idx, -// callback_context_data_vec_t& callback_contexts, -// buffered_context_data_vec_t& buffered_contexts, -// external_correlation_id_map_t& extern_corr_ids, -// ClearContainersT = ClearContainersT{}); - -// template -// void -// populate_contexts(rocprofiler_callback_tracing_kind_t callback_domain_idx, -// rocprofiler_buffer_tracing_kind_t buffered_domain_idx, -// rocprofiler_tracing_operation_t operation_idx, -// tracing_data& data, -// ClearContainersT = ClearContainersT{}); - -// template -// void -// populate_contexts(rocprofiler_callback_tracing_kind_t callback_domain_idx, -// rocprofiler_buffer_tracing_kind_t buffered_domain_idx, -// tracing_data& data, -// ClearContainersT = ClearContainersT{}); - -// void -// populate_external_correlation_ids(external_correlation_id_map_t& external_corr_ids, -// rocprofiler_thread_id_t thr_id, -// rocprofiler_external_correlation_id_request_kind_t kind, -// rocprofiler_tracing_operation_t operation, -// uint64_t internal_corr_id); - -// void -// update_external_correlation_ids(external_correlation_id_map_t& external_corr_ids, -// rocprofiler_thread_id_t thr_id, -// rocprofiler_external_correlation_id_request_kind_t kind); - -// template -// void -// execute_phase_none_callbacks(callback_context_data_vec_t& callback_contexts, -// rocprofiler_thread_id_t thr_id, -// uint64_t internal_corr_id, -// external_correlation_id_map_t& external_corr_ids, -// rocprofiler_callback_tracing_kind_t domain, -// rocprofiler_tracing_operation_t operation, -// TracerDataT& tracer_data); - -// template -// void -// execute_phase_enter_callbacks(callback_context_data_vec_t& callback_contexts, -// rocprofiler_thread_id_t thr_id, -// uint64_t internal_corr_id, -// external_correlation_id_map_t& external_corr_ids, -// rocprofiler_callback_tracing_kind_t domain, -// rocprofiler_tracing_operation_t operation, -// TracerDataT& tracer_data); - -// template -// void -// execute_phase_exit_callbacks(callback_context_data_vec_t& callback_contexts, -// external_correlation_id_map_t& external_corr_ids, -// rocprofiler_callback_tracing_kind_t domain, -// rocprofiler_tracing_operation_t operation, -// TracerDataT& tracer_data); - -// template -// void -// execute_buffer_record_emplace(buffered_context_data_vec_t& buffered_contexts, -// rocprofiler_thread_id_t thr_id, -// uint64_t internal_corr_id, -// external_correlation_id_map_t& external_corr_ids, -// rocprofiler_buffer_tracing_kind_t domain, -// OperationT operation, -// BufferRecordT&& base_record); - template inline bool context_filter(const context::context* ctx, DomainT domain, Args... args)