diff --git a/source/lib/output/metadata.cpp b/source/lib/output/metadata.cpp index 1919201df7..b1b8ad4527 100644 --- a/source/lib/output/metadata.cpp +++ b/source/lib/output/metadata.cpp @@ -136,6 +136,14 @@ metadata::metadata(inprocess) for(auto itr : agents) agents_map.emplace(itr.id, itr); + + // Add kernel ID of zero + kernel_symbol_info info{}; + info.kernel_id = 0; + info.formatted_kernel_name = "0"; + info.demangled_kernel_name = "0"; + info.truncated_kernel_name = "0"; + add_kernel_symbol(std::move(info)); } void metadata::init(inprocess) diff --git a/source/lib/rocprofiler-sdk-tool/tool.cpp b/source/lib/rocprofiler-sdk-tool/tool.cpp index d19c55217e..35cc4c4f33 100644 --- a/source/lib/rocprofiler-sdk-tool/tool.cpp +++ b/source/lib/rocprofiler-sdk-tool/tool.cpp @@ -1366,6 +1366,12 @@ tool_init(rocprofiler_client_finalize_t fini_func, void* tool_data) _fut.wait_for(std::chrono::seconds{1}); // wait for a max of 1 second } + // Handle kernel id of zero + bool include = std::regex_search("0", std::regex(tool::get_config().kernel_filter_include)); + bool exclude = std::regex_search("0", std::regex(tool::get_config().kernel_filter_exclude)); + if(include && (!exclude || tool::get_config().kernel_filter_exclude.empty())) + add_kernel_target(0, tool::get_config().kernel_filter_range); + tool_metadata->process_id = getpid(); rocprofiler_get_timestamp(&(tool_metadata->process_start_ns));