trace_processor: migrate thread and process tables to db tables
Change-Id: I63a119630063ca66b009414e32b7dbca33b53806
diff --git a/src/trace_processor/export_json_unittest.cc b/src/trace_processor/export_json_unittest.cc
index 58b03fb..e572d67 100644
--- a/src/trace_processor/export_json_unittest.cc
+++ b/src/trace_processor/export_json_unittest.cc
@@ -27,6 +27,7 @@
#include "perfetto/ext/base/temp_file.h"
#include "src/trace_processor/args_tracker.h"
#include "src/trace_processor/metadata_tracker.h"
+#include "src/trace_processor/process_tracker.h"
#include "src/trace_processor/trace_processor_context.h"
#include "src/trace_processor/track_tracker.h"
@@ -70,6 +71,7 @@
context_.storage.reset(new TraceStorage());
context_.track_tracker.reset(new TrackTracker(&context_));
context_.metadata_tracker.reset(new MetadataTracker(&context_));
+ context_.process_tracker.reset(new ProcessTracker(&context_));
}
std::string ToJson(ArgumentFilterPredicate argument_filter = nullptr,
@@ -116,7 +118,7 @@
const char* kCategory = "cat";
const char* kName = "name";
- UniqueTid utid = context_.storage->AddEmptyThread(kThreadID);
+ UniqueTid utid = context_.process_tracker->GetOrCreateThread(kThreadID);
TrackId track =
context_.track_tracker->GetOrCreateDescriptorTrackForThread(utid);
context_.args_tracker->Flush(); // Flush track args.
@@ -163,7 +165,7 @@
const char* kCategory = "cat";
const char* kName = "name";
- UniqueTid utid = context_.storage->AddEmptyThread(kThreadID);
+ UniqueTid utid = context_.process_tracker->GetOrCreateThread(kThreadID);
TrackId track =
context_.track_tracker->GetOrCreateDescriptorTrackForThread(utid);
context_.args_tracker->Flush(); // Flush track args.
@@ -203,9 +205,9 @@
const int64_t kThreadID = 100;
const char* kName = "thread";
- UniqueTid utid = context_.storage->AddEmptyThread(kThreadID);
- StringId name_id = context_.storage->InternString(base::StringView(kName));
- context_.storage->GetMutableThread(utid)->name_id = name_id;
+ tables::ThreadTable::Row row(kThreadID);
+ row.name = context_.storage->InternString(base::StringView(kName));
+ context_.storage->mutable_thread_table()->Insert(row);
base::TempFile temp_file = base::TempFile::Create();
FILE* output = fopen(temp_file.path().c_str(), "w+");
@@ -403,7 +405,7 @@
const char* kName = "name";
const char* kSrc = "source_file.cc";
- UniqueTid utid = context_.storage->AddEmptyThread(0);
+ UniqueTid utid = context_.process_tracker->GetOrCreateThread(0);
TrackId track =
context_.track_tracker->GetOrCreateDescriptorTrackForThread(utid);
context_.args_tracker->Flush(); // Flush track args.
@@ -448,7 +450,7 @@
TraceStorage* storage = context_.storage.get();
- UniqueTid utid = storage->AddEmptyThread(0);
+ UniqueTid utid = context_.process_tracker->GetOrCreateThread(0);
TrackId track =
context_.track_tracker->GetOrCreateDescriptorTrackForThread(utid);
context_.args_tracker->Flush(); // Flush track args.
@@ -498,7 +500,7 @@
const char* kName = "name";
double kValues[] = {1.234, 2.345};
- UniqueTid utid = context_.storage->AddEmptyThread(0);
+ UniqueTid utid = context_.process_tracker->GetOrCreateThread(0);
TrackId track =
context_.track_tracker->GetOrCreateDescriptorTrackForThread(utid);
context_.args_tracker->Flush(); // Flush track args.
@@ -547,7 +549,7 @@
uint64_t kValue0 = 1;
uint64_t kValue1 = std::numeric_limits<uint64_t>::max();
- UniqueTid utid = context_.storage->AddEmptyThread(0);
+ UniqueTid utid = context_.process_tracker->GetOrCreateThread(0);
TrackId track =
context_.track_tracker->GetOrCreateDescriptorTrackForThread(utid);
context_.args_tracker->Flush(); // Flush track args.
@@ -592,7 +594,7 @@
const char* kName = "name";
int kValues[] = {123, 234};
- UniqueTid utid = context_.storage->AddEmptyThread(0);
+ UniqueTid utid = context_.process_tracker->GetOrCreateThread(0);
TrackId track =
context_.track_tracker->GetOrCreateDescriptorTrackForThread(utid);
context_.args_tracker->Flush(); // Flush track args.
@@ -640,7 +642,7 @@
const char* kName = "name";
int kValues[] = {123, 234};
- UniqueTid utid = context_.storage->AddEmptyThread(0);
+ UniqueTid utid = context_.process_tracker->GetOrCreateThread(0);
TrackId track =
context_.track_tracker->GetOrCreateDescriptorTrackForThread(utid);
context_.args_tracker->Flush(); // Flush track args.
@@ -688,7 +690,7 @@
const char* kCategory = "cat";
const char* kName = "name";
- UniqueTid utid = context_.storage->AddEmptyThread(0);
+ UniqueTid utid = context_.process_tracker->GetOrCreateThread(0);
TrackId track =
context_.track_tracker->GetOrCreateDescriptorTrackForThread(utid);
context_.args_tracker->Flush(); // Flush track args.
@@ -758,7 +760,7 @@
const char* kCategory = "cat";
const char* kName = "name";
- UniqueTid utid = context_.storage->AddEmptyThread(kThreadID);
+ UniqueTid utid = context_.process_tracker->GetOrCreateThread(kThreadID);
TrackId track =
context_.track_tracker->GetOrCreateDescriptorTrackForThread(utid);
context_.args_tracker->Flush(); // Flush track args.
@@ -795,7 +797,7 @@
const char* kArgName = "arg_name";
const int kArgValue = 123;
- UniquePid upid = context_.storage->AddEmptyProcess(kProcessID);
+ UniquePid upid = context_.process_tracker->GetOrCreateProcess(kProcessID);
StringId cat_id = context_.storage->InternString(base::StringView(kCategory));
StringId name_id = context_.storage->InternString(base::StringView(kName));
StringId name2_id = context_.storage->InternString(base::StringView(kName2));
@@ -887,7 +889,7 @@
const char* kCategory = "cat";
const char* kName = "name";
- UniquePid upid = context_.storage->AddEmptyProcess(kProcessID);
+ UniquePid upid = context_.process_tracker->GetOrCreateProcess(kProcessID);
StringId cat_id = context_.storage->InternString(base::StringView(kCategory));
StringId name_id = context_.storage->InternString(base::StringView(kName));
@@ -942,7 +944,7 @@
const char* kCategory = "cat";
const char* kName = "name";
- UniquePid upid = context_.storage->AddEmptyProcess(kProcessID);
+ UniquePid upid = context_.process_tracker->GetOrCreateProcess(kProcessID);
StringId cat_id = context_.storage->InternString(base::StringView(kCategory));
StringId name_id = context_.storage->InternString(base::StringView(kName));
@@ -985,7 +987,7 @@
const char* kArgName = "arg_name";
const int kArgValue = 123;
- UniquePid upid = context_.storage->AddEmptyProcess(kProcessID);
+ UniquePid upid = context_.process_tracker->GetOrCreateProcess(kProcessID);
StringId cat_id = context_.storage->InternString(base::StringView(kCategory));
StringId name_id = context_.storage->InternString(base::StringView(kName));
@@ -1046,9 +1048,9 @@
TraceStorage* storage = context_.storage.get();
- UniquePid upid = storage->AddEmptyProcess(kProcessID);
- UniqueTid utid = storage->AddEmptyThread(kThreadID);
- storage->GetMutableThread(utid)->upid = upid;
+ UniqueTid utid = context_.process_tracker->GetOrCreateThread(kThreadID);
+ UniquePid upid = context_.process_tracker->GetOrCreateProcess(kProcessID);
+ context_.storage->mutable_thread_table()->mutable_upid()->Set(utid, upid);
uint32_t row = storage->mutable_raw_events()->AddRawEvent(
kTimestamp, storage->InternString("track_event.legacy_event"), /*cpu=*/0,
@@ -1169,9 +1171,9 @@
TraceStorage* storage = context_.storage.get();
- UniquePid upid = storage->AddEmptyProcess(kProcessID);
- UniqueTid utid = storage->AddEmptyThread(kThreadID);
- storage->GetMutableThread(utid)->upid = upid;
+ UniqueTid utid = context_.process_tracker->GetOrCreateThread(kThreadID);
+ UniquePid upid = context_.process_tracker->GetOrCreateProcess(kProcessID);
+ context_.storage->mutable_thread_table()->mutable_upid()->Set(utid, upid);
auto module_id_1 = storage->mutable_stack_profile_mapping_table()->Insert(
{storage->InternString("foo_module_id"), 0, 0, 0, 0, 0,
@@ -1238,7 +1240,7 @@
}
TEST_F(ExportJsonTest, ArgumentFilter) {
- UniqueTid utid = context_.storage->AddEmptyThread(0);
+ UniqueTid utid = context_.process_tracker->GetOrCreateThread(0);
TrackId track =
context_.track_tracker->GetOrCreateDescriptorTrackForThread(utid);
context_.args_tracker->Flush(); // Flush track args.
@@ -1351,7 +1353,7 @@
const char* kCategory = "cat";
const char* kName = "name";
- UniqueTid utid = context_.storage->AddEmptyThread(kThreadID);
+ UniqueTid utid = context_.process_tracker->GetOrCreateThread(kThreadID);
TrackId track =
context_.track_tracker->GetOrCreateDescriptorTrackForThread(utid);
context_.args_tracker->Flush(); // Flush track args.