trace_processor: remove ref and ref_type from slice table
Change-Id: I78129aac3c64258fd0dc8cad6fe455f37b06bdd4
diff --git a/src/trace_processor/export_json_unittest.cc b/src/trace_processor/export_json_unittest.cc
index ded2e75..02fe44d 100644
--- a/src/trace_processor/export_json_unittest.cc
+++ b/src/trace_processor/export_json_unittest.cc
@@ -119,11 +119,8 @@
context_.args_tracker->Flush(); // Flush track args.
StringId cat_id = context_.storage->InternString(base::StringView(kCategory));
StringId name_id = context_.storage->InternString(base::StringView(kName));
- StringId ref_type_id = context_.storage->InternString(
- GetRefTypeStringMap()[static_cast<uint32_t>(RefType::kRefUtid)]);
- context_.storage->mutable_slice_table()->Insert({kTimestamp, kDuration, track,
- utid, ref_type_id, cat_id,
- name_id, 0, 0, 0});
+ context_.storage->mutable_slice_table()->Insert(
+ {kTimestamp, kDuration, track, cat_id, name_id, 0, 0, 0});
context_.storage->mutable_thread_slices()->AddThreadSlice(
0, kThreadTimestamp, kThreadDuration, kThreadInstructionCount,
kThreadInstructionDelta);
@@ -169,11 +166,8 @@
context_.args_tracker->Flush(); // Flush track args.
StringId cat_id = context_.storage->InternString(base::StringView(kCategory));
StringId name_id = context_.storage->InternString(base::StringView(kName));
- StringId ref_type_id = context_.storage->InternString(
- GetRefTypeStringMap()[static_cast<uint32_t>(RefType::kRefUtid)]);
- context_.storage->mutable_slice_table()->Insert({kTimestamp, kDuration, track,
- utid, ref_type_id, cat_id,
- name_id, 0, 0, 0});
+ context_.storage->mutable_slice_table()->Insert(
+ {kTimestamp, kDuration, track, cat_id, name_id, 0, 0, 0});
context_.storage->mutable_thread_slices()->AddThreadSlice(
0, kThreadTimestamp, kThreadDuration, kThreadInstructionCount,
kThreadInstructionDelta);
@@ -234,10 +228,8 @@
StringId cat_id = context_.storage->InternString("cat");
StringId name_id = context_.storage->InternString("name");
- StringId ref_type_id = context_.storage->InternString(
- GetRefTypeStringMap()[static_cast<uint32_t>(RefType::kRefTrack)]);
context_.storage->mutable_slice_table()->Insert(
- {0, 0, track, track, ref_type_id, cat_id, name_id, 0, 0, 0});
+ {0, 0, track, cat_id, name_id, 0, 0, 0});
base::TempFile temp_file = base::TempFile::Create();
FILE* output = fopen(temp_file.path().c_str(), "w+");
@@ -408,10 +400,8 @@
context_.args_tracker->Flush(); // Flush track args.
StringId cat_id = context_.storage->InternString(base::StringView(kCategory));
StringId name_id = context_.storage->InternString(base::StringView(kName));
- StringId ref_type_id = context_.storage->InternString(
- GetRefTypeStringMap()[static_cast<uint32_t>(RefType::kRefUtid)]);
context_.storage->mutable_slice_table()->Insert(
- {0, 0, track, utid, ref_type_id, cat_id, name_id, 0, 0, 0});
+ {0, 0, track, cat_id, name_id, 0, 0, 0});
StringId arg_key_id = context_.storage->InternString(
base::StringView("task.posted_from.file_name"));
@@ -455,12 +445,9 @@
context_.args_tracker->Flush(); // Flush track args.
StringId cat_id = storage->InternString(base::StringView(kCategory));
StringId name_id = storage->InternString(base::StringView(kName));
- StringId ref_type_id = context_.storage->InternString(
- GetRefTypeStringMap()[static_cast<uint32_t>(RefType::kRefUtid)]);
RowId row_id = TraceStorage::CreateRowId(
- kNestableSlices,
- storage->mutable_slice_table()->Insert(
- {0, 0, track, utid, ref_type_id, cat_id, name_id, 0, 0, 0}));
+ kNestableSlices, storage->mutable_slice_table()->Insert(
+ {0, 0, track, cat_id, name_id, 0, 0, 0}));
auto add_arg = [&](const char* key, Variadic value) {
StringId key_id = storage->InternString(key);
@@ -507,10 +494,8 @@
context_.args_tracker->Flush(); // Flush track args.
StringId cat_id = context_.storage->InternString(base::StringView(kCategory));
StringId name_id = context_.storage->InternString(base::StringView(kName));
- StringId ref_type_id = context_.storage->InternString(
- GetRefTypeStringMap()[static_cast<uint32_t>(RefType::kRefUtid)]);
context_.storage->mutable_slice_table()->Insert(
- {0, 0, track, utid, ref_type_id, cat_id, name_id, 0, 0, 0});
+ {0, 0, track, cat_id, name_id, 0, 0, 0});
StringId arg_flat_key_id = context_.storage->InternString(
base::StringView("debug.draw_duration_ms"));
@@ -559,10 +544,8 @@
context_.args_tracker->Flush(); // Flush track args.
StringId cat_id = context_.storage->InternString(base::StringView(kCategory));
StringId name_id = context_.storage->InternString(base::StringView(kName));
- StringId ref_type_id = context_.storage->InternString(
- GetRefTypeStringMap()[static_cast<uint32_t>(RefType::kRefUtid)]);
context_.storage->mutable_slice_table()->Insert(
- {0, 0, track, utid, ref_type_id, cat_id, name_id, 0, 0, 0});
+ {0, 0, track, cat_id, name_id, 0, 0, 0});
StringId arg_key0_id =
context_.storage->InternString(base::StringView("arg0"));
@@ -607,10 +590,8 @@
context_.args_tracker->Flush(); // Flush track args.
StringId cat_id = context_.storage->InternString(base::StringView(kCategory));
StringId name_id = context_.storage->InternString(base::StringView(kName));
- StringId ref_type_id = context_.storage->InternString(
- GetRefTypeStringMap()[static_cast<uint32_t>(RefType::kRefUtid)]);
context_.storage->mutable_slice_table()->Insert(
- {0, 0, track, utid, ref_type_id, cat_id, name_id, 0, 0, 0});
+ {0, 0, track, cat_id, name_id, 0, 0, 0});
StringId arg_flat_key_id =
context_.storage->InternString(base::StringView("a.b"));
@@ -658,10 +639,8 @@
context_.args_tracker->Flush(); // Flush track args.
StringId cat_id = context_.storage->InternString(base::StringView(kCategory));
StringId name_id = context_.storage->InternString(base::StringView(kName));
- StringId ref_type_id = context_.storage->InternString(
- GetRefTypeStringMap()[static_cast<uint32_t>(RefType::kRefUtid)]);
context_.storage->mutable_slice_table()->Insert(
- {0, 0, track, utid, ref_type_id, cat_id, name_id, 0, 0, 0});
+ {0, 0, track, cat_id, name_id, 0, 0, 0});
StringId arg_flat_key_id =
context_.storage->InternString(base::StringView("a"));
@@ -709,10 +688,8 @@
context_.args_tracker->Flush(); // Flush track args.
StringId cat_id = context_.storage->InternString(base::StringView(kCategory));
StringId name_id = context_.storage->InternString(base::StringView(kName));
- StringId ref_type_id = context_.storage->InternString(
- GetRefTypeStringMap()[static_cast<uint32_t>(RefType::kRefUtid)]);
context_.storage->mutable_slice_table()->Insert(
- {0, 0, track, utid, ref_type_id, cat_id, name_id, 0, 0, 0});
+ {0, 0, track, cat_id, name_id, 0, 0, 0});
StringId arg_key_id = context_.storage->InternString(base::StringView("a"));
StringId arg_value_id =
@@ -749,9 +726,8 @@
context_.args_tracker->Flush(); // Flush track args.
StringId cat_id = context_.storage->InternString(base::StringView(kCategory));
StringId name_id = context_.storage->InternString(base::StringView(kName));
- StringId ref_type_id = context_.storage->InternString(base::StringView());
context_.storage->mutable_slice_table()->Insert(
- {kTimestamp, 0, track, 0, ref_type_id, cat_id, name_id, 0, 0, 0});
+ {kTimestamp, 0, track, cat_id, name_id, 0, 0, 0});
base::TempFile temp_file = base::TempFile::Create();
FILE* output = fopen(temp_file.path().c_str(), "w+");
@@ -782,10 +758,8 @@
context_.args_tracker->Flush(); // Flush track args.
StringId cat_id = context_.storage->InternString(base::StringView(kCategory));
StringId name_id = context_.storage->InternString(base::StringView(kName));
- StringId ref_type_id = context_.storage->InternString(
- GetRefTypeStringMap()[static_cast<uint32_t>(RefType::kRefUtid)]);
context_.storage->mutable_slice_table()->Insert(
- {kTimestamp, 0, track, utid, ref_type_id, cat_id, name_id, 0, 0, 0});
+ {kTimestamp, 0, track, cat_id, name_id, 0, 0, 0});
base::TempFile temp_file = base::TempFile::Create();
FILE* output = fopen(temp_file.path().c_str(), "w+");
@@ -817,8 +791,6 @@
UniquePid upid = context_.storage->AddEmptyProcess(kProcessID);
StringId cat_id = context_.storage->InternString(base::StringView(kCategory));
StringId name_id = context_.storage->InternString(base::StringView(kName));
- StringId ref_type_id = context_.storage->InternString(
- GetRefTypeStringMap()[static_cast<uint32_t>(RefType::kRefTrack)]);
constexpr int64_t kSourceId = 235;
TrackId track = context_.track_tracker->InternLegacyChromeAsyncTrack(
@@ -826,9 +798,8 @@
/*source_scope=*/0);
context_.args_tracker->Flush(); // Flush track args.
- context_.storage->mutable_slice_table()->Insert({kTimestamp, kDuration, track,
- track, ref_type_id, cat_id,
- name_id, 0, 0, 0});
+ context_.storage->mutable_slice_table()->Insert(
+ {kTimestamp, kDuration, track, cat_id, name_id, 0, 0, 0});
StringId arg_key_id =
context_.storage->InternString(base::StringView(kArgName));
TraceStorage::Args::Arg arg;
@@ -883,8 +854,6 @@
UniquePid upid = context_.storage->AddEmptyProcess(kProcessID);
StringId cat_id = context_.storage->InternString(base::StringView(kCategory));
StringId name_id = context_.storage->InternString(base::StringView(kName));
- StringId ref_type_id = context_.storage->InternString(
- GetRefTypeStringMap()[static_cast<uint32_t>(RefType::kRefTrack)]);
constexpr int64_t kSourceId = 235;
TrackId track = context_.track_tracker->InternLegacyChromeAsyncTrack(
@@ -893,8 +862,7 @@
context_.args_tracker->Flush(); // Flush track args.
auto slice_id = context_.storage->mutable_slice_table()->Insert(
- {kTimestamp, kDuration, track, track, ref_type_id, cat_id, name_id, 0, 0,
- 0});
+ {kTimestamp, kDuration, track, cat_id, name_id, 0, 0, 0});
context_.storage->mutable_virtual_track_slices()->AddVirtualTrackSlice(
slice_id, kThreadTimestamp, kThreadDuration, 0, 0);
@@ -941,8 +909,6 @@
UniquePid upid = context_.storage->AddEmptyProcess(kProcessID);
StringId cat_id = context_.storage->InternString(base::StringView(kCategory));
StringId name_id = context_.storage->InternString(base::StringView(kName));
- StringId ref_type_id = context_.storage->InternString(
- GetRefTypeStringMap()[static_cast<uint32_t>(RefType::kRefTrack)]);
constexpr int64_t kSourceId = 235;
TrackId track = context_.track_tracker->InternLegacyChromeAsyncTrack(
@@ -951,8 +917,7 @@
context_.args_tracker->Flush(); // Flush track args.
auto slice_id = context_.storage->mutable_slice_table()->Insert(
- {kTimestamp, kDuration, track, track, ref_type_id, cat_id, name_id, 0, 0,
- 0});
+ {kTimestamp, kDuration, track, cat_id, name_id, 0, 0, 0});
context_.storage->mutable_virtual_track_slices()->AddVirtualTrackSlice(
slice_id, kThreadTimestamp, kThreadDuration, 0, 0);
@@ -987,8 +952,6 @@
UniquePid upid = context_.storage->AddEmptyProcess(kProcessID);
StringId cat_id = context_.storage->InternString(base::StringView(kCategory));
StringId name_id = context_.storage->InternString(base::StringView(kName));
- StringId ref_type_id = context_.storage->InternString(
- GetRefTypeStringMap()[static_cast<uint32_t>(RefType::kRefTrack)]);
constexpr int64_t kSourceId = 235;
TrackId track = context_.track_tracker->InternLegacyChromeAsyncTrack(
@@ -997,7 +960,7 @@
context_.args_tracker->Flush(); // Flush track args.
context_.storage->mutable_slice_table()->Insert(
- {kTimestamp, 0, track, track, ref_type_id, cat_id, name_id, 0, 0, 0});
+ {kTimestamp, 0, track, cat_id, name_id, 0, 0, 0});
StringId arg_key_id =
context_.storage->InternString(base::StringView("arg_name"));
TraceStorage::Args::Arg arg;
@@ -1250,15 +1213,12 @@
StringId arg1_id = context_.storage->InternString(base::StringView("arg1"));
StringId arg2_id = context_.storage->InternString(base::StringView("arg2"));
StringId val_id = context_.storage->InternString(base::StringView("val"));
- StringId ref_type_id = context_.storage->InternString(
- GetRefTypeStringMap()[static_cast<uint32_t>(RefType::kRefUtid)]);
std::array<RowId, 3> slice_ids;
for (size_t i = 0; i < name_ids.size(); i++) {
slice_ids[i] = TraceStorage::CreateRowId(
- kNestableSlices,
- context_.storage->mutable_slice_table()->Insert(
- {0, 0, track, utid, ref_type_id, cat_id, name_ids[i], 0, 0, 0}));
+ kNestableSlices, context_.storage->mutable_slice_table()->Insert(
+ {0, 0, track, cat_id, name_ids[i], 0, 0, 0}));
}
for (RowId row : slice_ids) {
@@ -1358,15 +1318,11 @@
context_.args_tracker->Flush(); // Flush track args.
StringId cat_id = context_.storage->InternString(base::StringView(kCategory));
StringId name_id = context_.storage->InternString(base::StringView(kName));
- StringId ref_type_id = context_.storage->InternString(
- GetRefTypeStringMap()[static_cast<uint32_t>(RefType::kRefUtid)]);
- context_.storage->mutable_slice_table()->Insert({kTimestamp1, kDuration,
- track, utid, ref_type_id,
- cat_id, name_id, 0, 0, 0});
- context_.storage->mutable_slice_table()->Insert({kTimestamp2, kDuration,
- track, utid, ref_type_id,
- cat_id, name_id, 0, 0, 0});
+ context_.storage->mutable_slice_table()->Insert(
+ {kTimestamp1, kDuration, track, cat_id, name_id, 0, 0, 0});
+ context_.storage->mutable_slice_table()->Insert(
+ {kTimestamp2, kDuration, track, cat_id, name_id, 0, 0, 0});
auto label_filter = [](const char* label_name) {
return strcmp(label_name, "traceEvents") == 0;
diff --git a/src/trace_processor/importers/fuchsia/fuchsia_trace_parser.cc b/src/trace_processor/importers/fuchsia/fuchsia_trace_parser.cc
index a362d8e..ad98daf 100644
--- a/src/trace_processor/importers/fuchsia/fuchsia_trace_parser.cc
+++ b/src/trace_processor/importers/fuchsia/fuchsia_trace_parser.cc
@@ -319,7 +319,7 @@
procs->UpdateThread(static_cast<uint32_t>(tinfo.tid),
static_cast<uint32_t>(tinfo.pid));
TrackId track_id = context_->track_tracker->InternThreadTrack(utid);
- slices->Begin(ts, track_id, utid, RefType::kRefUtid, cat, name);
+ slices->Begin(ts, track_id, cat, name);
break;
}
case kDurationEnd: {
@@ -349,8 +349,7 @@
procs->UpdateThread(static_cast<uint32_t>(tinfo.tid),
static_cast<uint32_t>(tinfo.pid));
TrackId track_id = context_->track_tracker->InternThreadTrack(utid);
- slices->Scoped(ts, track_id, utid, RefType::kRefUtid, cat, name,
- duration);
+ slices->Scoped(ts, track_id, cat, name, duration);
break;
}
case kAsyncBegin: {
@@ -361,7 +360,7 @@
}
TrackId track_id = context_->track_tracker->InternFuchsiaAsyncTrack(
name, correlation_id);
- slices->Begin(ts, track_id, track_id, RefType::kRefTrack, cat, name);
+ slices->Begin(ts, track_id, cat, name);
break;
}
case kAsyncInstant: {
diff --git a/src/trace_processor/importers/json/json_trace_parser.cc b/src/trace_processor/importers/json/json_trace_parser.cc
index e4a7ea1..7a59c63 100644
--- a/src/trace_processor/importers/json/json_trace_parser.cc
+++ b/src/trace_processor/importers/json/json_trace_parser.cc
@@ -89,8 +89,7 @@
switch (phase) {
case 'B': { // TRACE_EVENT_BEGIN.
TrackId track_id = context_->track_tracker->InternThreadTrack(utid);
- slice_tracker->Begin(timestamp, track_id, utid, RefType::kRefUtid, cat_id,
- name_id);
+ slice_tracker->Begin(timestamp, track_id, cat_id, name_id);
break;
}
case 'E': { // TRACE_EVENT_END.
@@ -104,8 +103,8 @@
if (!opt_dur.has_value())
return;
TrackId track_id = context_->track_tracker->InternThreadTrack(utid);
- slice_tracker->Scoped(timestamp, track_id, utid, RefType::kRefUtid,
- cat_id, name_id, opt_dur.value());
+ slice_tracker->Scoped(timestamp, track_id, cat_id, name_id,
+ opt_dur.value());
break;
}
case 'M': { // Metadata events (process and thread names).
diff --git a/src/trace_processor/importers/proto/graphics_event_parser.cc b/src/trace_processor/importers/proto/graphics_event_parser.cc
index fff48ed..066f5d6 100644
--- a/src/trace_processor/importers/proto/graphics_event_parser.cc
+++ b/src/trace_processor/importers/proto/graphics_event_parser.cc
@@ -250,7 +250,7 @@
TrackId track_id =
gpu_hw_queue_ids_[static_cast<size_t>(event.hw_queue_id())];
const auto slice_id = context_->slice_tracker->Scoped(
- ts, track_id, track_id, RefType::kRefTrack, 0 /* cat */, stage_name,
+ ts, track_id, 0 /* cat */, stage_name,
static_cast<int64_t>(event.duration()), args_callback);
context_->storage->mutable_gpu_slice_table()->Insert(
@@ -326,8 +326,7 @@
TrackId track_id = context_->track_tracker->InternGpuTrack(track);
const auto slice_id = context_->slice_tracker->Scoped(
- timestamp, track_id, track_id, RefType::kRefTrack, 0 /* cat */,
- event_name_id, duration,
+ timestamp, track_id, 0 /* cat */, event_name_id, duration,
[this, layer_name_id](ArgsTracker* args_tracker, RowId row_id) {
args_tracker->AddArg(row_id, layer_name_key_id_, layer_name_key_id_,
Variadic::String(layer_name_id));
@@ -400,8 +399,7 @@
present_event_name_id_ =
context_->storage->InternString(present_frame_name_.GetStringView());
const auto present_slice_id = context_->slice_tracker->Begin(
- timestamp, present_track_id_, present_track_id_, RefType::kRefTrack,
- 0 /* cat */, present_event_name_id_);
+ timestamp, present_track_id_, 0 /* cat */, present_event_name_id_);
if (present_slice_id) {
tables::GpuSliceTable::Row row;
@@ -623,8 +621,7 @@
? log_severity_ids_[static_cast<size_t>(event.severity())]
: log_severity_ids_[log_severity_ids_.size() - 1];
const auto slice_id = context_->slice_tracker->Scoped(
- ts, track_id, track_id, RefType::kRefTrack, 0 /* cat */, severity_id,
- 0 /* duration */, args_callback);
+ ts, track_id, 0 /* cat */, severity_id, 0 /* duration */, args_callback);
tables::GpuSliceTable::Row row;
row.slice_id = slice_id.value();
diff --git a/src/trace_processor/importers/proto/proto_trace_parser.cc b/src/trace_processor/importers/proto/proto_trace_parser.cc
index e6d3e35..29551e9 100644
--- a/src/trace_processor/importers/proto/proto_trace_parser.cc
+++ b/src/trace_processor/importers/proto/proto_trace_parser.cc
@@ -570,8 +570,8 @@
name_id = context_->storage->InternString(fallback);
}
TrackId track_id = context_->track_tracker->InternThreadTrack(utid);
- context_->slice_tracker->Scoped(ts, track_id, utid, RefType::kRefUtid,
- cat_id, name_id, event.event_duration_ns());
+ context_->slice_tracker->Scoped(ts, track_id, cat_id, name_id,
+ event.event_duration_ns());
} else if (event.has_counter_id()) {
auto cid = event.counter_id();
if (cid < metatrace::COUNTERS_MAX) {
diff --git a/src/trace_processor/importers/proto/proto_trace_parser_unittest.cc b/src/trace_processor/importers/proto/proto_trace_parser_unittest.cc
index 23a1f68..4d9150d 100644
--- a/src/trace_processor/importers/proto/proto_trace_parser_unittest.cc
+++ b/src/trace_processor/importers/proto/proto_trace_parser_unittest.cc
@@ -208,11 +208,9 @@
public:
MockSliceTracker(TraceProcessorContext* context) : SliceTracker(context) {}
- MOCK_METHOD7(Begin,
+ MOCK_METHOD5(Begin,
base::Optional<uint32_t>(int64_t timestamp,
TrackId track_id,
- int64_t ref,
- RefType ref_type,
StringId cat,
StringId name,
SetArgsCallback args_callback));
@@ -222,11 +220,9 @@
StringId cat,
StringId name,
SetArgsCallback args_callback));
- MOCK_METHOD8(Scoped,
+ MOCK_METHOD6(Scoped,
base::Optional<uint32_t>(int64_t timestamp,
TrackId track_id,
- int64_t ref,
- RefType ref_type,
StringId cat,
StringId name,
int64_t duration,
@@ -816,16 +812,15 @@
constexpr TrackId track = 0u;
InSequence in_sequence; // Below slices should be sorted by timestamp.
- EXPECT_CALL(*slice_, Scoped(1005000, track, 1, RefType::kRefUtid,
- kNullStringId, kNullStringId, 23000, _))
+ EXPECT_CALL(*slice_,
+ Scoped(1005000, track, kNullStringId, kNullStringId, 23000, _))
.WillOnce(DoAll(
- InvokeArgument<7>(
+ InvokeArgument<5>(
&args, TraceStorage::CreateRowId(TableId::kNestableSlices, 0u)),
Return(0u)));
- EXPECT_CALL(*slice_, Begin(1010000, track, 1, RefType::kRefUtid,
- kNullStringId, kNullStringId, _))
+ EXPECT_CALL(*slice_, Begin(1010000, track, kNullStringId, kNullStringId, _))
.WillOnce(DoAll(
- InvokeArgument<6>(
+ InvokeArgument<4>(
&args, TraceStorage::CreateRowId(TableId::kNestableSlices, 1u)),
Return(1u)));
EXPECT_CALL(*slice_, End(1020000, track, kNullStringId, kNullStringId, _))
@@ -909,16 +904,15 @@
constexpr TrackId track = 0u;
InSequence in_sequence; // Below slices should be sorted by timestamp.
- EXPECT_CALL(*slice_, Begin(1010000, track, 1, RefType::kRefUtid,
- kNullStringId, kNullStringId, _))
+ EXPECT_CALL(*slice_, Begin(1010000, track, kNullStringId, kNullStringId, _))
.WillOnce(DoAll(
- InvokeArgument<6>(
+ InvokeArgument<4>(
&args, TraceStorage::CreateRowId(TableId::kNestableSlices, 0u)),
Return(0u)));
- EXPECT_CALL(*slice_, Scoped(1015000, track, 1, RefType::kRefUtid,
- kNullStringId, kNullStringId, 0, _))
+ EXPECT_CALL(*slice_,
+ Scoped(1015000, track, kNullStringId, kNullStringId, 0, _))
.WillOnce(DoAll(
- InvokeArgument<7>(
+ InvokeArgument<5>(
&args, TraceStorage::CreateRowId(TableId::kNestableSlices, 1u)),
Return(1u)));
EXPECT_CALL(*slice_, End(1020000, track, kNullStringId, kNullStringId, _))
@@ -1070,19 +1064,19 @@
RowId first_slice_row_id =
TraceStorage::CreateRowId(TableId::kNestableSlices, 0u);
- EXPECT_CALL(*slice_, Scoped(1005000, thread_1_track, 1, RefType::kRefUtid,
- StringId(1), StringId(2), 23000, _))
+ EXPECT_CALL(*slice_, Scoped(1005000, thread_1_track, StringId(1), StringId(2),
+ 23000, _))
.WillOnce(
- DoAll(InvokeArgument<7>(&args, first_slice_row_id), Return(0u)));
+ DoAll(InvokeArgument<5>(&args, first_slice_row_id), Return(0u)));
EXPECT_CALL(
args, AddArg(first_slice_row_id, _, _, Variadic::UnsignedInteger(9999u)));
EXPECT_CALL(args, AddArg(first_slice_row_id, _, _, Variadic::Boolean(true)));
EXPECT_CALL(args, AddArg(first_slice_row_id, _, _, _));
- EXPECT_CALL(*slice_, Begin(1010000, thread_1_track, 1, RefType::kRefUtid,
- StringId(3), StringId(4), _))
+ EXPECT_CALL(*slice_,
+ Begin(1010000, thread_1_track, StringId(3), StringId(4), _))
.WillOnce(DoAll(
- InvokeArgument<6>(
+ InvokeArgument<4>(
&args, TraceStorage::CreateRowId(TableId::kNestableSlices, 1u)),
Return(1u)));
@@ -1093,18 +1087,18 @@
&args, TraceStorage::CreateRowId(TableId::kNestableSlices, 1u)),
Return(1u)));
- EXPECT_CALL(*slice_, Scoped(1040000, thread_1_track, 1, RefType::kRefUtid,
- StringId(3), StringId(4), 0, _))
+ EXPECT_CALL(*slice_,
+ Scoped(1040000, thread_1_track, StringId(3), StringId(4), 0, _))
.WillOnce(DoAll(
- InvokeArgument<7>(
+ InvokeArgument<5>(
&args, TraceStorage::CreateRowId(TableId::kNestableSlices, 2u)),
Return(2u)));
RowId last_slice_row_id =
TraceStorage::CreateRowId(TableId::kNestableSlices, 3u);
- EXPECT_CALL(*slice_, Scoped(1050000, process_2_track, 2, RefType::kRefUpid,
- StringId(3), StringId(4), 0, _))
- .WillOnce(DoAll(InvokeArgument<7>(&args, last_slice_row_id), Return(3u)));
+ EXPECT_CALL(*slice_,
+ Scoped(1050000, process_2_track, StringId(3), StringId(4), 0, _))
+ .WillOnce(DoAll(InvokeArgument<5>(&args, last_slice_row_id), Return(3u)));
// Second slice should have a legacy_event.original_tid arg.
EXPECT_CALL(args, AddArg(last_slice_row_id, _, _, Variadic::Integer(16)));
@@ -1249,17 +1243,13 @@
InSequence in_sequence; // Below slices should be sorted by timestamp.
- EXPECT_CALL(*slice_, Begin(1010000, 1, 1, RefType::kRefTrack, StringId(1),
- StringId(2), _))
+ EXPECT_CALL(*slice_, Begin(1010000, 1, StringId(1), StringId(2), _))
.WillOnce(Return(0u));
- EXPECT_CALL(*slice_, Scoped(1015000, 1, 1, RefType::kRefTrack, StringId(1),
- StringId(4), 0, _));
- EXPECT_CALL(*slice_, Scoped(1018000, 2, 2, RefType::kRefTrack, StringId(3),
- StringId(4), 0, _));
+ EXPECT_CALL(*slice_, Scoped(1015000, 1, StringId(1), StringId(4), 0, _));
+ EXPECT_CALL(*slice_, Scoped(1018000, 2, StringId(3), StringId(4), 0, _));
EXPECT_CALL(*slice_, End(1020000, 1, StringId(1), StringId(2), _))
.WillOnce(Return(0u));
- EXPECT_CALL(*slice_, Scoped(1030000, 3, 3, RefType::kRefTrack, StringId(3),
- StringId(4), 0, _));
+ EXPECT_CALL(*slice_, Scoped(1030000, 3, StringId(3), StringId(4), 0, _));
context_.sorter->ExtractEventsForced();
@@ -1443,24 +1433,21 @@
.WillOnce(Return(1));
EXPECT_CALL(*storage_, InternString(base::StringView("ev1")))
.WillOnce(Return(2));
- EXPECT_CALL(*slice_, Begin(1010000, 1, 1, RefType::kRefTrack, StringId(1),
- StringId(2), _))
+ EXPECT_CALL(*slice_, Begin(1010000, 1, StringId(1), StringId(2), _))
.WillOnce(Return(0u));
EXPECT_CALL(*storage_, InternString(base::StringView("cat2")))
.WillOnce(Return(3));
EXPECT_CALL(*storage_, InternString(base::StringView("ev2")))
.WillOnce(Return(4));
- EXPECT_CALL(*slice_, Scoped(1015000, 0, 1, RefType::kRefUtid, StringId(3),
- StringId(4), 0, _))
+ EXPECT_CALL(*slice_, Scoped(1015000, 0, StringId(3), StringId(4), 0, _))
.WillOnce(Return(1u));
EXPECT_CALL(*storage_, InternString(base::StringView("cat3")))
.WillOnce(Return(5));
EXPECT_CALL(*storage_, InternString(base::StringView("ev3")))
.WillOnce(Return(6));
- EXPECT_CALL(*slice_, Scoped(1016000, 2, 2, RefType::kRefUtid, StringId(5),
- StringId(6), 0, _))
+ EXPECT_CALL(*slice_, Scoped(1016000, 2, StringId(5), StringId(6), 0, _))
.WillOnce(Return(2u));
EXPECT_CALL(*slice_, End(1020000, 1, StringId(0), StringId(0), _))
@@ -1522,7 +1509,7 @@
Tokenize();
- EXPECT_CALL(*slice_, Begin(_, _, _, _, _, _, _)).Times(0);
+ EXPECT_CALL(*slice_, Begin(_, _, _, _, _)).Times(0);
context_.sorter->ExtractEventsForced();
}
@@ -1546,7 +1533,7 @@
Tokenize();
- EXPECT_CALL(*slice_, Begin(_, _, _, _, _, _, _)).Times(0);
+ EXPECT_CALL(*slice_, Begin(_, _, _, _, _)).Times(0);
context_.sorter->ExtractEventsForced();
}
@@ -1648,8 +1635,7 @@
constexpr TrackId track = 0u;
InSequence in_sequence; // Below slices should be sorted by timestamp.
- EXPECT_CALL(*slice_, Begin(1010000, track, 1, RefType::kRefUtid,
- kNullStringId, kNullStringId, _));
+ EXPECT_CALL(*slice_, Begin(1010000, track, kNullStringId, kNullStringId, _));
EXPECT_CALL(*slice_, End(2010000, track, kNullStringId, kNullStringId, _));
context_.sorter->ExtractEventsForced();
@@ -1772,10 +1758,10 @@
constexpr TrackId thread_1_track = 1u;
InSequence in_sequence; // Below slices should be sorted by timestamp.
- EXPECT_CALL(*slice_, Begin(1005000, thread_2_track, 2, RefType::kRefUtid,
- StringId(1), StringId(2), _));
- EXPECT_CALL(*slice_, Begin(1010000, thread_1_track, 1, RefType::kRefUtid,
- StringId(1), StringId(3), _));
+ EXPECT_CALL(*slice_,
+ Begin(1005000, thread_2_track, StringId(1), StringId(2), _));
+ EXPECT_CALL(*slice_,
+ Begin(1010000, thread_1_track, StringId(1), StringId(3), _));
EXPECT_CALL(*slice_,
End(1015000, thread_2_track, StringId(1), StringId(2), _));
EXPECT_CALL(*slice_,
@@ -1956,9 +1942,8 @@
constexpr TrackId track = 0u;
InSequence in_sequence; // Below slices should be sorted by timestamp.
- EXPECT_CALL(*slice_, Begin(1010000, track, 1, RefType::kRefUtid, StringId(1),
- StringId(2), _))
- .WillOnce(DoAll(InvokeArgument<6>(&args, 1u), Return(1u)));
+ EXPECT_CALL(*slice_, Begin(1010000, track, StringId(1), StringId(2), _))
+ .WillOnce(DoAll(InvokeArgument<4>(&args, 1u), Return(1u)));
EXPECT_CALL(args, AddArg(1u, StringId(3), StringId(3),
Variadic::UnsignedInteger(10u)));
@@ -2048,9 +2033,8 @@
.WillOnce(Return(1));
EXPECT_CALL(*storage_, InternString(base::StringView("ev1")))
.WillOnce(Return(2));
- EXPECT_CALL(*slice_, Begin(1010000, track, 1, RefType::kRefUtid, StringId(1),
- StringId(2), _))
- .WillOnce(DoAll(InvokeArgument<6>(&args, 1u), Return(1u)));
+ EXPECT_CALL(*slice_, Begin(1010000, track, StringId(1), StringId(2), _))
+ .WillOnce(DoAll(InvokeArgument<4>(&args, 1u), Return(1u)));
EXPECT_CALL(*storage_, InternString(base::StringView("file1")))
.WillOnce(Return(3));
EXPECT_CALL(*storage_, InternString(base::StringView("func1")))
@@ -2129,9 +2113,8 @@
EXPECT_CALL(*storage_, InternString(base::StringView("ev1")))
.WillOnce(Return(2));
- EXPECT_CALL(*slice_, Scoped(1010000, track, 1, RefType::kRefUtid, StringId(1),
- StringId(2), 0, _))
- .WillOnce(DoAll(InvokeArgument<7>(&args, 1u), Return(1u)));
+ EXPECT_CALL(*slice_, Scoped(1010000, track, StringId(1), StringId(2), 0, _))
+ .WillOnce(DoAll(InvokeArgument<5>(&args, 1u), Return(1u)));
EXPECT_CALL(*storage_, InternString(base::StringView("body1")))
.WillOnce(Return(3));
@@ -2306,8 +2289,7 @@
InSequence in_sequence; // Below slices should be sorted by timestamp.
// Timestamp should be adjusted to trace time (BOOTTIME).
- EXPECT_CALL(*slice_, Begin(10000, track, 1, RefType::kRefUtid, kNullStringId,
- kNullStringId, _));
+ EXPECT_CALL(*slice_, Begin(10000, track, kNullStringId, kNullStringId, _));
context_.sorter->ExtractEventsForced();
}
diff --git a/src/trace_processor/importers/proto/track_event_parser.cc b/src/trace_processor/importers/proto/track_event_parser.cc
index 9f0560f..85507b3 100644
--- a/src/trace_processor/importers/proto/track_event_parser.cc
+++ b/src/trace_processor/importers/proto/track_event_parser.cc
@@ -522,9 +522,8 @@
return;
}
- auto opt_slice_id =
- slice_tracker->Begin(ts, track_id, *utid, RefType::kRefUtid,
- category_id, name_id, args_callback);
+ auto opt_slice_id = slice_tracker->Begin(ts, track_id, category_id,
+ name_id, args_callback);
if (opt_slice_id.has_value()) {
auto* thread_slices = storage->mutable_thread_slices();
PERFETTO_DCHECK(!thread_slices->slice_count() ||
@@ -563,8 +562,7 @@
if (duration_ns < 0)
return;
auto opt_slice_id = slice_tracker->Scoped(
- ts, track_id, *utid, RefType::kRefUtid, category_id, name_id,
- duration_ns, args_callback);
+ ts, track_id, category_id, name_id, duration_ns, args_callback);
if (opt_slice_id.has_value()) {
auto* thread_slices = storage->mutable_thread_slices();
PERFETTO_DCHECK(!thread_slices->slice_count() ||
@@ -587,10 +585,8 @@
switch (legacy_event.instant_event_scope()) {
case LegacyEvent::SCOPE_UNSPECIFIED:
case LegacyEvent::SCOPE_THREAD: {
- // TODO(lalitm): Associate thread slices with track instead.
auto opt_slice_id = slice_tracker->Scoped(
- ts, track_id, *utid, RefType::kRefUtid, category_id, name_id,
- duration_ns, args_callback);
+ ts, track_id, category_id, name_id, duration_ns, args_callback);
if (opt_slice_id.has_value()) {
auto* thread_slices = storage->mutable_thread_slices();
PERFETTO_DCHECK(!thread_slices->slice_count() ||
@@ -602,14 +598,12 @@
break;
}
case LegacyEvent::SCOPE_GLOBAL: {
- slice_tracker->Scoped(ts, track_id, /*ref=*/0, RefType::kRefNoRef,
- category_id, name_id, duration_ns,
+ slice_tracker->Scoped(ts, track_id, category_id, name_id, duration_ns,
args_callback);
break;
}
case LegacyEvent::SCOPE_PROCESS: {
- slice_tracker->Scoped(ts, track_id, *upid, RefType::kRefUpid,
- category_id, name_id, duration_ns,
+ slice_tracker->Scoped(ts, track_id, category_id, name_id, duration_ns,
args_callback);
break;
}
@@ -622,9 +616,8 @@
break;
}
case 'b': { // TRACE_EVENT_PHASE_NESTABLE_ASYNC_BEGIN
- auto opt_slice_id =
- slice_tracker->Begin(ts, track_id, track_id, RefType::kRefTrack,
- category_id, name_id, args_callback);
+ auto opt_slice_id = slice_tracker->Begin(ts, track_id, category_id,
+ name_id, args_callback);
// For the time beeing, we only create vtrack slice rows if we need to
// store thread timestamps/counters.
if (legacy_event.use_async_tts() && opt_slice_id.has_value()) {
@@ -654,8 +647,7 @@
int64_t duration_ns = 0;
int64_t tidelta = 0;
auto opt_slice_id = slice_tracker->Scoped(
- ts, track_id, track_id, RefType::kRefTrack, category_id, name_id,
- duration_ns, args_callback);
+ ts, track_id, category_id, name_id, duration_ns, args_callback);
if (legacy_event.use_async_tts() && opt_slice_id.has_value()) {
auto* vtrack_slices = storage->mutable_virtual_track_slices();
PERFETTO_DCHECK(!vtrack_slices->slice_count() ||
diff --git a/src/trace_processor/importers/systrace/systrace_parser.cc b/src/trace_processor/importers/systrace/systrace_parser.cc
index 66dc3e7..3063411 100644
--- a/src/trace_processor/importers/systrace/systrace_parser.cc
+++ b/src/trace_processor/importers/systrace/systrace_parser.cc
@@ -103,8 +103,7 @@
StringId name_id = context_->storage->InternString(point.name);
UniqueTid utid = context_->process_tracker->UpdateThread(pid, point.tgid);
TrackId track_id = context_->track_tracker->InternThreadTrack(utid);
- context_->slice_tracker->Begin(ts, track_id, utid, RefType::kRefUtid,
- 0 /* cat */, name_id);
+ context_->slice_tracker->Begin(ts, track_id, 0 /* cat */, name_id);
break;
}
@@ -137,8 +136,7 @@
TrackId track_id = context_->track_tracker->InternAndroidAsyncTrack(
name_id, upid, cookie);
if (point.phase == 'S') {
- context_->slice_tracker->Begin(ts, track_id, track_id,
- RefType::kRefTrack, 0, name_id);
+ context_->slice_tracker->Begin(ts, track_id, 0, name_id);
} else {
context_->slice_tracker->End(ts, track_id);
}
diff --git a/src/trace_processor/metrics/android/android_startup.sql b/src/trace_processor/metrics/android/android_startup.sql
index f1484e4..142d142 100644
--- a/src/trace_processor/metrics/android/android_startup.sql
+++ b/src/trace_processor/metrics/android/android_startup.sql
@@ -22,20 +22,20 @@
-- Slices for forked processes. Never present in hot starts.
-- Prefer this over process start_ts, since the process might have
-- been preforked.
-CREATE VIEW zygote_fork_slices AS
-SELECT slices.ts, slices.dur, STR_SPLIT(slices.name, ": ", 1) AS process_name
-FROM slices WHERE name LIKE 'Start proc: %';
+CREATE VIEW zygote_fork_slice AS
+SELECT slice.ts, slice.dur, STR_SPLIT(slice.name, ": ", 1) AS process_name
+FROM slice WHERE name LIKE 'Start proc: %';
CREATE TABLE zygote_forks_by_id AS
SELECT
launches.id,
- zygote_fork_slices.ts,
- zygote_fork_slices.dur
-FROM zygote_fork_slices
+ zygote_fork_slice.ts,
+ zygote_fork_slice.dur
+FROM zygote_fork_slice
JOIN launches
-ON (launches.ts < zygote_fork_slices.ts
- AND zygote_fork_slices.ts + zygote_fork_slices.dur < launches.ts_end
- AND zygote_fork_slices.process_name = launches.package
+ON (launches.ts < zygote_fork_slice.ts
+ AND zygote_fork_slice.ts + zygote_fork_slice.dur < launches.ts_end
+ AND zygote_fork_slice.process_name = launches.package
);
CREATE VIEW launch_main_threads AS
@@ -61,18 +61,19 @@
GROUP BY 1, 2;
-- Tracks all slices for the main process threads
-CREATE TABLE main_process_slices AS
+CREATE TABLE main_process_slice AS
SELECT
launches.id AS launch_id,
- slices.name AS name,
- AndroidStartupMetric_Slice('dur_ns', SUM(slices.dur)) AS slice_proto
+ slice.name AS name,
+ AndroidStartupMetric_Slice('dur_ns', SUM(slice.dur)) AS slice_proto
FROM launches
JOIN launch_processes ON (launches.id = launch_processes.launch_id)
JOIN thread ON (launch_processes.upid = thread.upid)
-JOIN slices ON (
- slices.utid = thread.utid
- AND slices.ts BETWEEN launches.ts AND launches.ts + launches.dur)
-WHERE slices.name IN (
+JOIN thread_track USING (utid)
+JOIN slice ON (
+ slice.track_id = thread_track.id
+ AND slice.ts BETWEEN launches.ts AND launches.ts + launches.dur)
+WHERE slice.name IN (
'ActivityThreadMain',
'bindApplication',
'activityStart',
@@ -135,23 +136,23 @@
)
),
'time_activity_thread_main', (
- SELECT slice_proto FROM main_process_slices
+ SELECT slice_proto FROM main_process_slice
WHERE launch_id = launches.id AND name = 'ActivityThreadMain'
),
'time_bind_application', (
- SELECT slice_proto FROM main_process_slices
+ SELECT slice_proto FROM main_process_slice
WHERE launch_id = launches.id AND name = 'bindApplication'
),
'time_activity_start', (
- SELECT slice_proto FROM main_process_slices
+ SELECT slice_proto FROM main_process_slice
WHERE launch_id = launches.id AND name = 'activityStart'
),
'time_activity_resume', (
- SELECT slice_proto FROM main_process_slices
+ SELECT slice_proto FROM main_process_slice
WHERE launch_id = launches.id AND name = 'activityResume'
),
'time_choreographer', (
- SELECT slice_proto FROM main_process_slices
+ SELECT slice_proto FROM main_process_slice
WHERE launch_id = launches.id AND name = 'Choreographer#doFrame'
),
'time_before_start_process', (
diff --git a/src/trace_processor/metrics/android/android_startup_launches.sql b/src/trace_processor/metrics/android/android_startup_launches.sql
index e714d4c..63b38ac 100644
--- a/src/trace_processor/metrics/android/android_startup_launches.sql
+++ b/src/trace_processor/metrics/android/android_startup_launches.sql
@@ -24,7 +24,7 @@
FROM args
WHERE string_value LIKE '%|launching: %';
--- TODO: Replace with proper async slices once available
+-- TODO: Replace with proper async slice once available
-- The start of the launching event corresponds to the end of the AM handling
-- the startActivity intent, whereas the end corresponds to the first frame drawn.
-- Only successful app launches have a launching event.
@@ -44,13 +44,13 @@
-- Marks the beginning of the trace and is equivalent to when the statsd launch
-- logging begins.
CREATE VIEW activity_intent_received AS
-SELECT ts FROM slices
+SELECT ts FROM slice
WHERE name = 'MetricsLogger:launchObserverNotifyIntentStarted';
-- Successful activity launch. The end of the 'launching' event is not related
-- to whether it actually succeeded or not.
CREATE VIEW activity_intent_launch_successful AS
-SELECT ts FROM slices
+SELECT ts FROM slice
WHERE name = 'MetricsLogger:launchObserverNotifyActivityLaunchFinished';
-- We partition the trace into spans based on posted activity intents.
diff --git a/src/trace_processor/slice_tracker.cc b/src/trace_processor/slice_tracker.cc
index 39d4058..f811f04 100644
--- a/src/trace_processor/slice_tracker.cc
+++ b/src/trace_processor/slice_tracker.cc
@@ -40,8 +40,6 @@
base::Optional<uint32_t> SliceTracker::Begin(int64_t timestamp,
TrackId track_id,
- int64_t ref,
- RefType ref_type,
StringId category,
StringId name,
SetArgsCallback args_callback) {
@@ -53,14 +51,12 @@
prev_timestamp_ = timestamp;
MaybeCloseStack(timestamp, &stacks_[track_id]);
- return StartSlice(timestamp, kPendingDuration, track_id, ref, ref_type,
- category, name, args_callback);
+ return StartSlice(timestamp, kPendingDuration, track_id, category, name,
+ args_callback);
}
base::Optional<uint32_t> SliceTracker::Scoped(int64_t timestamp,
TrackId track_id,
- int64_t ref,
- RefType ref_type,
StringId category,
StringId name,
int64_t duration,
@@ -74,16 +70,14 @@
PERFETTO_DCHECK(duration >= 0);
MaybeCloseStack(timestamp, &stacks_[track_id]);
- return StartSlice(timestamp, duration, track_id, ref, ref_type, category,
- name, args_callback);
+ return StartSlice(timestamp, duration, track_id, category, name,
+ args_callback);
}
base::Optional<uint32_t> SliceTracker::StartSlice(
int64_t timestamp,
int64_t duration,
TrackId track_id,
- int64_t ref,
- RefType ref_type,
StringId category,
StringId name,
SetArgsCallback args_callback) {
@@ -98,11 +92,8 @@
int64_t parent_stack_id =
depth == 0 ? 0 : slices->stack_id()[stack->back().first];
- StringId ref_type_id = context_->storage->InternString(
- GetRefTypeStringMap()[static_cast<uint32_t>(ref_type)]);
-
- tables::SliceTable::Row row(timestamp, duration, track_id, ref, ref_type_id,
- category, name, depth, 0, parent_stack_id);
+ tables::SliceTable::Row row(timestamp, duration, track_id, category, name,
+ depth, 0, parent_stack_id);
uint32_t slice_idx = slices->Insert(row);
stack->emplace_back(std::make_pair(slice_idx, ArgsTracker(context_)));
diff --git a/src/trace_processor/slice_tracker.h b/src/trace_processor/slice_tracker.h
index 2347aea..9ffd529 100644
--- a/src/trace_processor/slice_tracker.h
+++ b/src/trace_processor/slice_tracker.h
@@ -38,8 +38,6 @@
virtual base::Optional<uint32_t> Begin(
int64_t timestamp,
TrackId track_id,
- int64_t ref,
- RefType ref_type,
StringId category,
StringId name,
SetArgsCallback args_callback = SetArgsCallback());
@@ -48,8 +46,6 @@
virtual base::Optional<uint32_t> Scoped(
int64_t timestamp,
TrackId track_id,
- int64_t ref,
- RefType ref_type,
StringId category,
StringId name,
int64_t duration,
@@ -72,8 +68,6 @@
base::Optional<uint32_t> StartSlice(int64_t timestamp,
int64_t duration,
TrackId track_id,
- int64_t ref,
- RefType ref_type,
StringId category,
StringId name,
SetArgsCallback args_callback);
diff --git a/src/trace_processor/slice_tracker_unittest.cc b/src/trace_processor/slice_tracker_unittest.cc
index 3b709ce..f4f3c64 100644
--- a/src/trace_processor/slice_tracker_unittest.cc
+++ b/src/trace_processor/slice_tracker_unittest.cc
@@ -56,8 +56,7 @@
SliceTracker tracker(&context);
constexpr TrackId track = 22u;
- tracker.Begin(2 /*ts*/, track, 42 /*ref*/, RefType::kRefUtid, 0 /*cat*/,
- 1 /*name*/);
+ tracker.Begin(2 /*ts*/, track, 0 /*cat*/, 1 /*name*/);
tracker.End(10 /*ts*/, track, 0 /*cat*/, 1 /*name*/);
const auto& slices = context.storage->slice_table();
@@ -67,9 +66,6 @@
EXPECT_EQ(slices.track_id()[0], track);
EXPECT_EQ(slices.category()[0], 0u);
EXPECT_EQ(slices.name()[0], 1u);
- EXPECT_EQ(slices.ref()[0], 42);
- EXPECT_EQ(slices.ref_type().GetString(0),
- GetRefTypeStringMap()[static_cast<uint32_t>(RefType::kRefUtid)]);
EXPECT_EQ(slices.depth()[0], 0u);
EXPECT_EQ(slices.arg_set_id()[0], kInvalidArgSetId);
}
@@ -80,8 +76,8 @@
SliceTracker tracker(&context);
constexpr TrackId track = 22u;
- tracker.Begin(2 /*ts*/, track, 42 /*ref*/, RefType::kRefUtid, 0 /*cat*/,
- 1 /*name*/, [](ArgsTracker* args_tracker, RowId row) {
+ tracker.Begin(2 /*ts*/, track, 0 /*cat*/, 1 /*name*/,
+ [](ArgsTracker* args_tracker, RowId row) {
args_tracker->AddArg(row, /*flat_key=*/1, /*key=*/2,
/*value=*/Variadic::Integer(10));
});
@@ -98,9 +94,6 @@
EXPECT_EQ(slices.track_id()[0], track);
EXPECT_EQ(slices.category()[0], 0u);
EXPECT_EQ(slices.name()[0], 1u);
- EXPECT_EQ(slices.ref()[0], 42);
- EXPECT_EQ(slices.ref_type().GetString(0),
- GetRefTypeStringMap()[static_cast<uint32_t>(RefType::kRefUtid)]);
EXPECT_EQ(slices.depth()[0], 0u);
auto set_id = slices.arg_set_id()[0];
@@ -121,10 +114,8 @@
SliceTracker tracker(&context);
constexpr TrackId track = 22u;
- tracker.Begin(2 /*ts*/, track, 42 /*ref*/, RefType::kRefUtid, 0 /*cat*/,
- 1 /*name*/);
- tracker.Begin(3 /*ts*/, track, 42 /*ref*/, RefType::kRefUtid, 0 /*cat*/,
- 2 /*name*/);
+ tracker.Begin(2 /*ts*/, track, 0 /*cat*/, 1 /*name*/);
+ tracker.Begin(3 /*ts*/, track, 0 /*cat*/, 2 /*name*/);
tracker.End(5 /*ts*/, track);
tracker.End(10 /*ts*/, track);
@@ -138,9 +129,6 @@
EXPECT_EQ(slices.track_id()[idx], track);
EXPECT_EQ(slices.category()[idx], 0u);
EXPECT_EQ(slices.name()[idx], 1u);
- EXPECT_EQ(slices.ref()[idx], 42);
- EXPECT_EQ(slices.ref_type().GetString(idx),
- GetRefTypeStringMap()[static_cast<uint32_t>(RefType::kRefUtid)]);
EXPECT_EQ(slices.depth()[idx++], 0u);
EXPECT_EQ(slices.ts()[idx], 3);
@@ -148,9 +136,6 @@
EXPECT_EQ(slices.track_id()[idx], track);
EXPECT_EQ(slices.category()[idx], 0u);
EXPECT_EQ(slices.name()[idx], 2u);
- EXPECT_EQ(slices.ref()[idx], 42);
- EXPECT_EQ(slices.ref_type().GetString(idx),
- GetRefTypeStringMap()[static_cast<uint32_t>(RefType::kRefUtid)]);
EXPECT_EQ(slices.depth()[idx], 1u);
EXPECT_EQ(slices.parent_stack_id()[0], 0);
@@ -164,9 +149,9 @@
SliceTracker tracker(&context);
constexpr TrackId track = 22u;
- tracker.Begin(0 /*ts*/, track, 42 /*ref*/, RefType::kRefUtid, 0, 0);
- tracker.Begin(1 /*ts*/, track, 42 /*ref*/, RefType::kRefUtid, 0, 0);
- tracker.Scoped(2 /*ts*/, track, 42 /*ref*/, RefType::kRefUtid, 0, 0, 6);
+ tracker.Begin(0 /*ts*/, track, 0, 0);
+ tracker.Begin(1 /*ts*/, track, 0, 0);
+ tracker.Scoped(2 /*ts*/, track, 0, 0, 6);
tracker.End(9 /*ts*/, track);
tracker.End(10 /*ts*/, track);
@@ -181,8 +166,7 @@
SliceTracker tracker(&context);
constexpr TrackId track = 22u;
- tracker.Begin(2 /*ts*/, track, 42 /*ref*/, RefType::kRefUtid, 5 /*cat*/,
- 1 /*name*/);
+ tracker.Begin(2 /*ts*/, track, 5 /*cat*/, 1 /*name*/);
tracker.End(3 /*ts*/, track, 1 /*cat*/, 1 /*name*/);
tracker.End(4 /*ts*/, track, 0 /*cat*/, 2 /*name*/);
tracker.End(5 /*ts*/, track, 5 /*cat*/, 1 /*name*/);
@@ -200,14 +184,10 @@
// from being closed, leading to an inconsistency when we try to insert the
// final slice and it doesn't intersect with the still pending first slice.
constexpr TrackId track = 22u;
- tracker.Scoped(2 /*ts*/, track, 42 /*ref*/, RefType::kRefUtid, 0 /*cat*/,
- 1 /*name*/, 10 /* dur */);
- tracker.Scoped(2 /*ts*/, track, 42 /*ref*/, RefType::kRefUtid, 0 /*cat*/,
- 1 /*name*/, 0 /* dur */);
- tracker.Scoped(12 /*ts*/, track, 42 /*ref*/, RefType::kRefUtid, 0 /*cat*/,
- 1 /*name*/, 1 /* dur */);
- tracker.Scoped(13 /*ts*/, track, 42 /*ref*/, RefType::kRefUtid, 0 /*cat*/,
- 1 /*name*/, 1 /* dur */);
+ tracker.Scoped(2 /*ts*/, track, 0 /*cat*/, 1 /*name*/, 10 /* dur */);
+ tracker.Scoped(2 /*ts*/, track, 0 /*cat*/, 1 /*name*/, 0 /* dur */);
+ tracker.Scoped(12 /*ts*/, track, 0 /*cat*/, 1 /*name*/, 1 /* dur */);
+ tracker.Scoped(13 /*ts*/, track, 0 /*cat*/, 1 /*name*/, 1 /* dur */);
auto slices = ToSliceInfo(context.storage->slice_table());
EXPECT_THAT(slices, ElementsAre(SliceInfo{2, 10}, SliceInfo{2, 0},
@@ -221,9 +201,9 @@
constexpr TrackId track_a = 22u;
constexpr TrackId track_b = 23u;
- tracker.Begin(0 /*ts*/, track_a, 42 /*ref*/, RefType::kRefUtid, 0, 0);
- tracker.Scoped(2 /*ts*/, track_b, 42 /*ref*/, RefType::kRefUtid, 0, 0, 6);
- tracker.Scoped(3 /*ts*/, track_b, 42 /*ref*/, RefType::kRefUtid, 0, 0, 4);
+ tracker.Begin(0 /*ts*/, track_a, 0, 0);
+ tracker.Scoped(2 /*ts*/, track_b, 0, 0, 6);
+ tracker.Scoped(3 /*ts*/, track_b, 0, 0, 4);
tracker.End(10 /*ts*/, track_a);
tracker.FlushPendingSlices();
@@ -245,28 +225,22 @@
SliceTracker tracker(&context);
constexpr TrackId track = 22u;
- tracker.Scoped(50 /*ts*/, track, 42 /*ref*/, RefType::kRefUtid, 11 /*cat*/,
- 21 /*name*/, 100 /*dur*/);
- tracker.Begin(100 /*ts*/, track, 42 /*ref*/, RefType::kRefUtid, 12 /*cat*/,
- 22 /*name*/);
- tracker.Scoped(450 /*ts*/, track, 42 /*ref*/, RefType::kRefUtid, 12 /*cat*/,
- 22 /*name*/, 100 /*dur*/);
+ tracker.Scoped(50 /*ts*/, track, 11 /*cat*/, 21 /*name*/, 100 /*dur*/);
+ tracker.Begin(100 /*ts*/, track, 12 /*cat*/, 22 /*name*/);
+ tracker.Scoped(450 /*ts*/, track, 12 /*cat*/, 22 /*name*/, 100 /*dur*/);
tracker.End(500 /*ts*/, track, 12 /*cat*/, 22 /*name*/);
// This slice should now have depth 0.
- tracker.Begin(800 /*ts*/, track, 42 /*ref*/, RefType::kRefUtid, 13 /*cat*/,
- 23 /*name*/);
+ tracker.Begin(800 /*ts*/, track, 13 /*cat*/, 23 /*name*/);
// Null cat and name matches everything.
tracker.End(1000 /*ts*/, track, 0 /*cat*/, 0 /*name*/);
// Slice will not close if category is different.
- tracker.Begin(1100 /*ts*/, track, 42 /*ref*/, RefType::kRefUtid, 11 /*cat*/,
- 21 /*name*/);
+ tracker.Begin(1100 /*ts*/, track, 11 /*cat*/, 21 /*name*/);
tracker.End(1200 /*ts*/, track, 12 /*cat*/, 21 /*name*/);
// Slice will not close if name is different.
- tracker.Begin(1300 /*ts*/, track, 42 /*ref*/, RefType::kRefUtid, 11 /*cat*/,
- 21 /*name*/);
+ tracker.Begin(1300 /*ts*/, track, 11 /*cat*/, 21 /*name*/);
tracker.End(1400 /*ts*/, track, 11 /*cat*/, 22 /*name*/);
tracker.FlushPendingSlices();
diff --git a/src/trace_processor/syscall_tracker.h b/src/trace_processor/syscall_tracker.h
index f367309..09cf772 100644
--- a/src/trace_processor/syscall_tracker.h
+++ b/src/trace_processor/syscall_tracker.h
@@ -52,8 +52,7 @@
StringId name = SyscallNumberToStringId(syscall_num);
if (!name.is_null()) {
TrackId track_id = context_->track_tracker->InternThreadTrack(utid);
- context_->slice_tracker->Begin(ts, track_id, utid, RefType::kRefUtid,
- 0 /* cat */, name);
+ context_->slice_tracker->Begin(ts, track_id, 0 /* cat */, name);
}
}
diff --git a/src/trace_processor/syscall_tracker_unittest.cc b/src/trace_processor/syscall_tracker_unittest.cc
index 70bf075..a659a64 100644
--- a/src/trace_processor/syscall_tracker_unittest.cc
+++ b/src/trace_processor/syscall_tracker_unittest.cc
@@ -32,11 +32,9 @@
MockSliceTracker(TraceProcessorContext* context) : SliceTracker(context) {}
virtual ~MockSliceTracker() = default;
- MOCK_METHOD7(Begin,
+ MOCK_METHOD5(Begin,
base::Optional<uint32_t>(int64_t timestamp,
TrackId track_id,
- int64_t ref,
- RefType ref_type,
StringId cat,
StringId name,
SetArgsCallback args_callback));
@@ -69,9 +67,8 @@
constexpr TrackId track = 0u;
StringId begin_name = 0;
StringId end_name = 0;
- EXPECT_CALL(*slice_tracker,
- Begin(100, track, 42, RefType::kRefUtid, kNullStringId, _, _))
- .WillOnce(DoAll(SaveArg<5>(&begin_name), Return(base::nullopt)));
+ EXPECT_CALL(*slice_tracker, Begin(100, track, kNullStringId, _, _))
+ .WillOnce(DoAll(SaveArg<3>(&begin_name), Return(base::nullopt)));
EXPECT_CALL(*slice_tracker, End(110, track, kNullStringId, _, _))
.WillOnce(DoAll(SaveArg<3>(&end_name), Return(base::nullopt)));
@@ -83,7 +80,7 @@
TEST_F(SyscallTrackerTest, IgnoreWriteSyscalls) {
context.syscall_tracker->SetArchitecture(kAarch64);
- EXPECT_CALL(*slice_tracker, Begin(_, _, _, _, _, _, _)).Times(0);
+ EXPECT_CALL(*slice_tracker, Begin(_, _, _, _, _)).Times(0);
EXPECT_CALL(*slice_tracker, End(_, _, _, _, _)).Times(0);
context.syscall_tracker->Enter(100 /*ts*/, 42 /*utid*/, 64 /*sys_write*/);
@@ -94,9 +91,8 @@
constexpr TrackId track = 0u;
StringId begin_name = 0;
StringId end_name = 0;
- EXPECT_CALL(*slice_tracker,
- Begin(100, track, 42, RefType::kRefUtid, kNullStringId, _, _))
- .WillOnce(DoAll(SaveArg<5>(&begin_name), Return(base::nullopt)));
+ EXPECT_CALL(*slice_tracker, Begin(100, track, kNullStringId, _, _))
+ .WillOnce(DoAll(SaveArg<3>(&begin_name), Return(base::nullopt)));
EXPECT_CALL(*slice_tracker, End(110, track, kNullStringId, _, _))
.WillOnce(DoAll(SaveArg<3>(&end_name), Return(base::nullopt)));
@@ -111,9 +107,8 @@
constexpr TrackId track = 0u;
StringId begin_name = 0;
StringId end_name = 0;
- EXPECT_CALL(*slice_tracker,
- Begin(100, track, 42, RefType::kRefUtid, kNullStringId, _, _))
- .WillOnce(DoAll(SaveArg<5>(&begin_name), Return(base::nullopt)));
+ EXPECT_CALL(*slice_tracker, Begin(100, track, kNullStringId, _, _))
+ .WillOnce(DoAll(SaveArg<3>(&begin_name), Return(base::nullopt)));
EXPECT_CALL(*slice_tracker, End(110, track, kNullStringId, _, _))
.WillOnce(DoAll(SaveArg<3>(&end_name), Return(base::nullopt)));
@@ -125,7 +120,7 @@
}
TEST_F(SyscallTrackerTest, SyscallNumberTooLarge) {
- EXPECT_CALL(*slice_tracker, Begin(_, _, _, _, _, _, _)).Times(0);
+ EXPECT_CALL(*slice_tracker, Begin(_, _, _, _, _)).Times(0);
EXPECT_CALL(*slice_tracker, End(_, _, _, _, _)).Times(0);
context.syscall_tracker->SetArchitecture(kAarch64);
context.syscall_tracker->Enter(100 /*ts*/, 42 /*utid*/, 9999);
diff --git a/src/trace_processor/tables/slice_tables.h b/src/trace_processor/tables/slice_tables.h
index d4485fb..4d2be49 100644
--- a/src/trace_processor/tables/slice_tables.h
+++ b/src/trace_processor/tables/slice_tables.h
@@ -29,8 +29,6 @@
C(int64_t, ts, Column::Flag::kSorted) \
C(int64_t, dur) \
C(uint32_t, track_id) \
- C(int64_t, ref) \
- C(StringPool::Id, ref_type) \
C(StringPool::Id, category) \
C(StringPool::Id, name) \
C(uint32_t, depth) \
diff --git a/src/trace_processor/trace_database_integrationtest.cc b/src/trace_processor/trace_database_integrationtest.cc
index b96e628..5fc550f 100644
--- a/src/trace_processor/trace_database_integrationtest.cc
+++ b/src/trace_processor/trace_database_integrationtest.cc
@@ -131,8 +131,10 @@
#if PERFETTO_BUILDFLAG(PERFETTO_TP_JSON_IMPORT)
TEST_F(TraceProcessorIntegrationTest, Sfgate) {
ASSERT_TRUE(LoadTrace("sfgate.json", strlen("{\"traceEvents\":[")).ok());
- auto it =
- Query("select count(*), max(ts) - min(ts) from slices where utid != 0");
+ auto it = Query(
+ "select count(*), max(ts) - min(ts) "
+ "from slice s inner join thread_track t "
+ "on s.track_id = t.id where utid != 0");
ASSERT_TRUE(it.Next());
ASSERT_EQ(it.Get(0).type, SqlValue::kLong);
ASSERT_EQ(it.Get(0).long_value, 39828);
@@ -144,7 +146,7 @@
TEST_F(TraceProcessorIntegrationTest, UnsortedTrace) {
ASSERT_TRUE(
LoadTrace("unsorted_trace.json", strlen("{\"traceEvents\":[")).ok());
- auto it = Query("select ts, depth from slices order by ts");
+ auto it = Query("select ts, depth from slice order by ts");
ASSERT_TRUE(it.Next());
ASSERT_EQ(it.Get(0).type, SqlValue::kLong);
ASSERT_EQ(it.Get(0).long_value, 50000);
diff --git a/src/trace_processor/trace_processor_impl.cc b/src/trace_processor/trace_processor_impl.cc
index b0fe758..e47806d 100644
--- a/src/trace_processor/trace_processor_impl.cc
+++ b/src/trace_processor/trace_processor_impl.cc
@@ -178,11 +178,7 @@
"SELECT "
" *, "
" category AS cat, "
- " id AS slice_id, "
- " CASE ref_type "
- " WHEN 'utid' THEN ref "
- " ELSE NULL "
- " END AS utid "
+ " id AS slice_id "
"FROM internal_slice;",
0, 0, &error);
if (error) {