From 32bc33978959cf6a3aecef9dc241466aba814a0c Mon Sep 17 00:00:00 2001 From: "Jonathan R. Madsen" Date: Thu, 18 Apr 2024 03:58:10 -0500 Subject: [PATCH] Simplify json-tool JSON schema for callback records (#790) - formerly, the rocprofiler_callback_tracing_record_t data was stored in itr["record"], e.g. itr["record"]["correlation_id"] - dropped "record" key, e.g. itr["correlation_id"] --- tests/async-copy-tracing/validate.py | 16 +++++++--------- tests/kernel-tracing/validate.py | 16 +++++++--------- tests/page-migration/validate.py | 18 ++++++++---------- tests/scratch-memory-tracing/validate.py | 21 +++++++++------------ tests/tools/json-tool.cpp | 14 +++++++------- 5 files changed, 38 insertions(+), 47 deletions(-) diff --git a/tests/async-copy-tracing/validate.py b/tests/async-copy-tracing/validate.py index 1742722964..f8ccf4f0f4 100644 --- a/tests/async-copy-tracing/validate.py +++ b/tests/async-copy-tracing/validate.py @@ -82,8 +82,8 @@ def test_timestamps(input_data): cb_end = {} for titr in ["hsa_api_traces", "marker_api_traces", "hip_api_traces"]: for itr in sdk_data["callback_records"][titr]: - cid = itr["record"]["correlation_id"]["internal"] - phase = itr["record"]["phase"] + cid = itr["correlation_id"]["internal"] + phase = itr["phase"] if phase == 1: cb_start[cid] = itr["timestamp"] elif phase == 2: @@ -126,7 +126,7 @@ def test_internal_correlation_ids(input_data): api_corr_ids = [] for titr in ["hsa_api_traces", "marker_api_traces", "hip_api_traces"]: for itr in sdk_data["callback_records"][titr]: - api_corr_ids.append(itr["record"]["correlation_id"]["internal"]) + api_corr_ids.append(itr["correlation_id"]["internal"]) for itr in sdk_data["buffer_records"][titr]: api_corr_ids.append(itr["correlation_id"]["internal"]) @@ -152,11 +152,9 @@ def test_external_correlation_ids(input_data): extern_corr_ids = [] for titr in ["hsa_api_traces", "marker_api_traces", "hip_api_traces"]: for itr in sdk_data["callback_records"][titr]: - assert itr["record"]["correlation_id"]["external"] > 0 - assert ( - itr["record"]["thread_id"] == itr["record"]["correlation_id"]["external"] - ) - extern_corr_ids.append(itr["record"]["correlation_id"]["external"]) + assert itr["correlation_id"]["external"] > 0 + assert itr["thread_id"] == itr["correlation_id"]["external"] + extern_corr_ids.append(itr["correlation_id"]["external"]) extern_corr_ids = list(set(sorted(extern_corr_ids))) for titr in ["hsa_api_traces", "marker_api_traces", "hip_api_traces"]: @@ -180,7 +178,7 @@ def test_kernel_ids(input_data): symbol_info = {} for itr in sdk_data["callback_records"]["kernel_symbols"]: - phase = itr["record"]["phase"] + phase = itr["phase"] payload = itr["payload"] kern_id = payload["kernel_id"] diff --git a/tests/kernel-tracing/validate.py b/tests/kernel-tracing/validate.py index 686c473c34..b5d967fc5c 100644 --- a/tests/kernel-tracing/validate.py +++ b/tests/kernel-tracing/validate.py @@ -82,8 +82,8 @@ def test_timestamps(input_data): cb_end = {} for titr in ["hsa_api_traces", "marker_api_traces", "hip_api_traces"]: for itr in sdk_data["callback_records"][titr]: - cid = itr["record"]["correlation_id"]["internal"] - phase = itr["record"]["phase"] + cid = itr["correlation_id"]["internal"] + phase = itr["phase"] if phase == 1: cb_start[cid] = itr["timestamp"] elif phase == 2: @@ -140,7 +140,7 @@ def test_internal_correlation_ids(input_data): api_corr_ids = [] for titr in ["hsa_api_traces", "marker_api_traces", "hip_api_traces"]: for itr in sdk_data["callback_records"][titr]: - api_corr_ids.append(itr["record"]["correlation_id"]["internal"]) + api_corr_ids.append(itr["correlation_id"]["internal"]) for itr in sdk_data["buffer_records"][titr]: api_corr_ids.append(itr["correlation_id"]["internal"]) @@ -212,11 +212,9 @@ def test_external_correlation_ids(input_data): extern_corr_ids = [] for titr in ["hsa_api_traces", "marker_api_traces", "hip_api_traces"]: for itr in sdk_data["callback_records"][titr]: - assert itr["record"]["correlation_id"]["external"] > 0 - assert ( - itr["record"]["thread_id"] == itr["record"]["correlation_id"]["external"] - ) - extern_corr_ids.append(itr["record"]["correlation_id"]["external"]) + assert itr["correlation_id"]["external"] > 0 + assert itr["thread_id"] == itr["correlation_id"]["external"] + extern_corr_ids.append(itr["correlation_id"]["external"]) extern_corr_ids = list(set(sorted(extern_corr_ids))) for titr in ["hsa_api_traces", "marker_api_traces", "hip_api_traces"]: @@ -240,7 +238,7 @@ def test_kernel_ids(input_data): symbol_info = {} for itr in sdk_data["callback_records"]["kernel_symbols"]: - phase = itr["record"]["phase"] + phase = itr["phase"] payload = itr["payload"] kern_id = payload["kernel_id"] diff --git a/tests/page-migration/validate.py b/tests/page-migration/validate.py index 2443f2fa08..131e9c8435 100644 --- a/tests/page-migration/validate.py +++ b/tests/page-migration/validate.py @@ -104,8 +104,8 @@ def test_timestamps(input_data): cb_end = {} for titr in ["hsa_api_traces", "marker_api_traces", "hip_api_traces"]: for itr in sdk_data["callback_records"][titr]: - cid = itr["record"]["correlation_id"]["internal"] - phase = itr["record"]["phase"] + cid = itr["correlation_id"]["internal"] + phase = itr["phase"] if phase == 1: cb_start[cid] = itr["timestamp"] elif phase == 2: @@ -140,7 +140,7 @@ def test_internal_correlation_ids(input_data): api_corr_ids = [] for titr in ["hsa_api_traces", "marker_api_traces", "hip_api_traces"]: for itr in sdk_data["callback_records"][titr]: - api_corr_ids.append(itr["record"]["correlation_id"]["internal"]) + api_corr_ids.append(itr["correlation_id"]["internal"]) for itr in sdk_data["buffer_records"][titr]: api_corr_ids.append(itr["correlation_id"]["internal"]) @@ -166,11 +166,9 @@ def test_external_correlation_ids(input_data): extern_corr_ids = [] for titr in ["hsa_api_traces", "marker_api_traces", "hip_api_traces"]: for itr in sdk_data["callback_records"][titr]: - assert itr["record"]["correlation_id"]["external"] > 0 - assert ( - itr["record"]["thread_id"] == itr["record"]["correlation_id"]["external"] - ) - extern_corr_ids.append(itr["record"]["correlation_id"]["external"]) + assert itr["correlation_id"]["external"] > 0 + assert itr["thread_id"] == itr["correlation_id"]["external"] + extern_corr_ids.append(itr["correlation_id"]["external"]) extern_corr_ids = list(set(sorted(extern_corr_ids))) for titr in ["hsa_api_traces", "marker_api_traces", "hip_api_traces"]: @@ -195,7 +193,7 @@ def test_kernel_ids(input_data): symbol_info = {} for itr in sdk_data["callback_records"]["kernel_symbols"]: - phase = itr["record"]["phase"] + phase = itr["phase"] payload = itr["payload"] kern_id = payload["kernel_id"] @@ -268,7 +266,7 @@ def get_allocated_pages(callback_records): host_register_record = [] for r in hip_api_traces: if ( - r["record"]["operation"] == op_key + r["operation"] == op_key and "sizeBytes" in r["args"] and "hostPtr" in r["args"] ): diff --git a/tests/scratch-memory-tracing/validate.py b/tests/scratch-memory-tracing/validate.py index 0ffcaab10a..ca94c270f3 100755 --- a/tests/scratch-memory-tracing/validate.py +++ b/tests/scratch-memory-tracing/validate.py @@ -61,8 +61,8 @@ def test_timestamps(input_data): cb_end = {} for titr in ["hsa_api_traces", "hip_api_traces"]: for itr in sdk_data["callback_records"][titr]: - cid = itr["record"]["correlation_id"]["internal"] - phase = itr["record"]["phase"] + cid = itr["correlation_id"]["internal"] + phase = itr["phase"] if phase == 1: cb_start[cid] = itr["timestamp"] elif phase == 2: @@ -106,7 +106,7 @@ def test_internal_correlation_ids(input_data): api_corr_ids = [] for titr in ["hsa_api_traces", "hip_api_traces"]: for itr in sdk_data["callback_records"][titr]: - api_corr_ids.append(itr["record"]["correlation_id"]["internal"]) + api_corr_ids.append(itr["correlation_id"]["internal"]) for itr in sdk_data["buffer_records"][titr]: api_corr_ids.append(itr["correlation_id"]["internal"]) @@ -132,11 +132,9 @@ def test_external_correlation_ids(input_data): extern_corr_ids = [] for titr in ["hsa_api_traces", "hip_api_traces"]: for itr in sdk_data["callback_records"][titr]: - assert itr["record"]["correlation_id"]["external"] > 0 - assert ( - itr["record"]["thread_id"] == itr["record"]["correlation_id"]["external"] - ) - extern_corr_ids.append(itr["record"]["correlation_id"]["external"]) + assert itr["correlation_id"]["external"] > 0 + assert itr["thread_id"] == itr["correlation_id"]["external"] + extern_corr_ids.append(itr["correlation_id"]["external"]) extern_corr_ids = list(set(sorted(extern_corr_ids))) for titr in ["hsa_api_traces", "hip_api_traces"]: @@ -224,8 +222,8 @@ def test_scratch_memory_tracking(input_data): # fetch node["payload"] pl = lambda x: x["payload"] - # fetch node["record"] - rc = lambda x: x["record"] + # fetch node + rc = lambda x: x for node in scratch_callback_data: cb_threads[rc(node)["thread_id"]].append(node) @@ -256,8 +254,7 @@ def test_scratch_memory_tracking(input_data): # alloc has more data vs free and async reclaim scratch_alloc_node = ( - this_node["record"]["operation"] - == scratch_cb_op_map["SCRATCH_MEMORY_ALLOC"] + this_node["operation"] == scratch_cb_op_map["SCRATCH_MEMORY_ALLOC"] ) if scratch_alloc_node: assert ( diff --git a/tests/tools/json-tool.cpp b/tests/tools/json-tool.cpp index 8267524fba..d6d2e9968a 100644 --- a/tests/tools/json-tool.cpp +++ b/tests/tools/json-tool.cpp @@ -431,7 +431,7 @@ struct code_object_callback_record_t void save(ArchiveT& ar) const { ar(cereal::make_nvp("timestamp", timestamp)); - ar(cereal::make_nvp("record", record)); + cereal::save(ar, record); ar(cereal::make_nvp("payload", payload)); } }; @@ -446,7 +446,7 @@ struct kernel_symbol_callback_record_t void save(ArchiveT& ar) const { ar(cereal::make_nvp("timestamp", timestamp)); - ar(cereal::make_nvp("record", record)); + cereal::save(ar, record); ar(cereal::make_nvp("payload", payload)); } }; @@ -462,7 +462,7 @@ struct hsa_api_callback_record_t void save(ArchiveT& ar) const { ar(cereal::make_nvp("timestamp", timestamp)); - ar(cereal::make_nvp("record", record)); + cereal::save(ar, record); ar(cereal::make_nvp("payload", payload)); serialize_args(ar, args); } @@ -479,7 +479,7 @@ struct hip_api_callback_record_t void save(ArchiveT& ar) const { ar(cereal::make_nvp("timestamp", timestamp)); - ar(cereal::make_nvp("record", record)); + cereal::save(ar, record); ar(cereal::make_nvp("payload", payload)); serialize_args(ar, args); } @@ -496,7 +496,7 @@ struct marker_api_callback_record_t void save(ArchiveT& ar) const { ar(cereal::make_nvp("timestamp", timestamp)); - ar(cereal::make_nvp("record", record)); + cereal::save(ar, record); ar(cereal::make_nvp("payload", payload)); serialize_args(ar, args); } @@ -512,7 +512,7 @@ struct kernel_dispatch_callback_record_t void save(ArchiveT& ar) const { ar(cereal::make_nvp("timestamp", timestamp)); - ar(cereal::make_nvp("record", record)); + cereal::save(ar, record); ar(cereal::make_nvp("payload", payload)); } }; @@ -527,7 +527,7 @@ struct scratch_memory_callback_record_t void save(ArchiveT& ar) const { ar(cereal::make_nvp("timestamp", timestamp)); - ar(cereal::make_nvp("record", record)); + cereal::save(ar, record); ar(cereal::make_nvp("payload", payload)); if constexpr(std::is_same::value ||