Fixing Perfetto & CTF plugins for ROCtx
Change-Id: I575dcfcac6ced4dd5973f037137f1386a684e08b
[ROCm/rocprofiler commit: 2591d37add]
Cette révision appartient à :
@@ -136,9 +136,8 @@ class RocTxEventRecord final : public TracerEventRecord<barectf_roctx_ctx> {
|
||||
explicit RocTxEventRecord(const rocprofiler_record_tracer_t& record,
|
||||
const rocprofiler_session_id_t session_id)
|
||||
: TracerEventRecord<barectf_roctx_ctx>{record, GetRecordBeginClockVal(record)},
|
||||
id_{record.operation_id.id},
|
||||
msg_{
|
||||
rocprofiler::cxx_demangle(reinterpret_cast<const char*>(record.api_data_handle.handle))} {
|
||||
id_{record.operation_id.id} {
|
||||
msg_ = record.name ? record.name : "";
|
||||
}
|
||||
|
||||
void Write(barectf_roctx_ctx& barectf_ctx) const override {
|
||||
|
||||
@@ -260,13 +260,14 @@ class file_plugin_t {
|
||||
}
|
||||
}
|
||||
if (tracer_record.domain == ACTIVITY_DOMAIN_ROCTX) {
|
||||
*output_file << " timestamp(" << tracer_record.timestamps.begin.value << "),";
|
||||
*output_file << " timestamp(" << tracer_record.timestamps.begin.value << ")";
|
||||
} else if (tracer_record.phase == ROCPROFILER_PHASE_EXIT ||
|
||||
tracer_record.phase == ROCPROFILER_PHASE_NONE) {
|
||||
*output_file << " Begin(" << tracer_record.timestamps.begin.value << "), End("
|
||||
<< tracer_record.timestamps.end.value << "),";
|
||||
<< tracer_record.timestamps.end.value << ")";
|
||||
}
|
||||
*output_file << " Correlation_ID(" << tracer_record.correlation_id.value << ")";
|
||||
if (tracer_record.domain != ACTIVITY_DOMAIN_ROCTX)
|
||||
*output_file << ", Correlation_ID(" << tracer_record.correlation_id.value << ")";
|
||||
*output_file << std::endl;
|
||||
}
|
||||
|
||||
|
||||
@@ -425,7 +425,7 @@ class perfetto_plugin_t {
|
||||
}
|
||||
auto& roctx_track = roctx_track_it->second;
|
||||
roctx_id = tracer_record.operation_id.id;
|
||||
roctx_message = std::string(reinterpret_cast<const char*>(tracer_record.name));
|
||||
roctx_message = tracer_record.name ? tracer_record.name : "";
|
||||
if (tracer_record.operation_id.id == 1) {
|
||||
perfetto::StaticString roctx_message_pft(
|
||||
(!roctx_message.empty() ? roctx_message.c_str() : ""));
|
||||
|
||||
@@ -161,7 +161,7 @@ struct roctx_trace_entry_t {
|
||||
: valid(rocprofiler::TRACE_ENTRY_INIT) {
|
||||
record = tracer_record;
|
||||
record.name = roctx_message_str ? strdup(roctx_message_str) : nullptr;
|
||||
record.api_data_handle.handle = roctx_message_str;
|
||||
record.api_data_handle.handle = record.name;
|
||||
}
|
||||
~roctx_trace_entry_t() {
|
||||
if (record.name != nullptr) free(const_cast<char*>(record.name));
|
||||
|
||||
Référencer dans un nouveau ticket
Bloquer un utilisateur