diff --git a/Android.bp b/Android.bp
index 044ca75..eb3d1ef 100644
--- a/Android.bp
+++ b/Android.bp
@@ -7660,6 +7660,7 @@
     "src/trace_processor/dynamic/connected_flow_generator.cc",
     "src/trace_processor/dynamic/descendant_slice_generator.cc",
     "src/trace_processor/dynamic/describe_slice_generator.cc",
+    "src/trace_processor/dynamic/experimental_annotated_stack_generator.cc",
     "src/trace_processor/dynamic/experimental_counter_dur_generator.cc",
     "src/trace_processor/dynamic/experimental_flamegraph_generator.cc",
     "src/trace_processor/dynamic/experimental_sched_upid_generator.cc",
diff --git a/BUILD b/BUILD
index b936730..df6e2d4 100644
--- a/BUILD
+++ b/BUILD
@@ -1144,6 +1144,8 @@
         "src/trace_processor/dynamic/descendant_slice_generator.h",
         "src/trace_processor/dynamic/describe_slice_generator.cc",
         "src/trace_processor/dynamic/describe_slice_generator.h",
+        "src/trace_processor/dynamic/experimental_annotated_stack_generator.cc",
+        "src/trace_processor/dynamic/experimental_annotated_stack_generator.h",
         "src/trace_processor/dynamic/experimental_counter_dur_generator.cc",
         "src/trace_processor/dynamic/experimental_counter_dur_generator.h",
         "src/trace_processor/dynamic/experimental_flamegraph_generator.cc",
diff --git a/buildtools/BUILD.gn b/buildtools/BUILD.gn
index 3e2df10..a59c492 100644
--- a/buildtools/BUILD.gn
+++ b/buildtools/BUILD.gn
@@ -1040,8 +1040,10 @@
     "//gn/standalone:visibility_hidden",
   ]
   cflags = [ "-DFAKE_LOG_DEVICE=1" ]
-  configs += [ "//gn/standalone:c++17" ]
-  public_configs = [ ":libunwindstack_config" ]
+  public_configs = [
+    ":libunwindstack_config",
+    "//gn/standalone:c++17",
+  ]
 }
 
 config("bionic_kernel_uapi_headers") {
diff --git a/protos/perfetto/metrics/android/startup_metric.proto b/protos/perfetto/metrics/android/startup_metric.proto
index c1ac949..0aff2cd 100644
--- a/protos/perfetto/metrics/android/startup_metric.proto
+++ b/protos/perfetto/metrics/android/startup_metric.proto
@@ -119,7 +119,10 @@
   message Activity {
     optional string name = 1;
     optional string method = 2;
-    optional Slice slice = 3;
+    optional int64 ts_method_start = 4;
+
+    // Field 3 contained Slice with a sum of durations for matching slices.
+    reserved 3;
   }
 
   // Metrics with information about the status of odex files and the outcome
diff --git a/protos/perfetto/metrics/perfetto_merged_metrics.proto b/protos/perfetto/metrics/perfetto_merged_metrics.proto
index a7e2f37..447e81c 100644
--- a/protos/perfetto/metrics/perfetto_merged_metrics.proto
+++ b/protos/perfetto/metrics/perfetto_merged_metrics.proto
@@ -819,7 +819,10 @@
   message Activity {
     optional string name = 1;
     optional string method = 2;
-    optional Slice slice = 3;
+    optional int64 ts_method_start = 4;
+
+    // Field 3 contained Slice with a sum of durations for matching slices.
+    reserved 3;
   }
 
   // Metrics with information about the status of odex files and the outcome
diff --git a/src/profiling/memory/heapprofd_end_to_end_test.cc b/src/profiling/memory/heapprofd_end_to_end_test.cc
index d406ace..97c9876 100644
--- a/src/profiling/memory/heapprofd_end_to_end_test.cc
+++ b/src/profiling/memory/heapprofd_end_to_end_test.cc
@@ -1752,7 +1752,7 @@
 #error "Need to start daemons for Linux test."
 #endif
 
-INSTANTIATE_TEST_CASE_P(Run,
+INSTANTIATE_TEST_CASE_P(DISABLED_Run,
                         HeapprofdEndToEnd,
                         Values(std::make_tuple(TestMode::kStatic,
                                                AllocatorMode::kCustom)),
diff --git a/src/profiling/perf/unwinding.cc b/src/profiling/perf/unwinding.cc
index 533de7d..46dfc6b 100644
--- a/src/profiling/perf/unwinding.cc
+++ b/src/profiling/perf/unwinding.cc
@@ -323,7 +323,7 @@
         : error_code(e), warnings(w), frames(std::move(f)) {}
     UnwindResult(const UnwindResult&) = delete;
     UnwindResult& operator=(const UnwindResult&) = delete;
-    UnwindResult(UnwindResult&&) = default;
+    UnwindResult(UnwindResult&&) __attribute__((unused)) = default;
     UnwindResult& operator=(UnwindResult&&) = default;
   };
   auto attempt_unwind = [&sample, unwind_state, pid_unwound_before,
diff --git a/src/trace_processor/BUILD.gn b/src/trace_processor/BUILD.gn
index ece05ed..2dba9e1 100644
--- a/src/trace_processor/BUILD.gn
+++ b/src/trace_processor/BUILD.gn
@@ -309,6 +309,8 @@
       "dynamic/descendant_slice_generator.h",
       "dynamic/describe_slice_generator.cc",
       "dynamic/describe_slice_generator.h",
+      "dynamic/experimental_annotated_stack_generator.cc",
+      "dynamic/experimental_annotated_stack_generator.h",
       "dynamic/experimental_counter_dur_generator.cc",
       "dynamic/experimental_counter_dur_generator.h",
       "dynamic/experimental_flamegraph_generator.cc",
diff --git a/src/trace_processor/dynamic/experimental_annotated_stack_generator.cc b/src/trace_processor/dynamic/experimental_annotated_stack_generator.cc
new file mode 100644
index 0000000..1af5ad1
--- /dev/null
+++ b/src/trace_processor/dynamic/experimental_annotated_stack_generator.cc
@@ -0,0 +1,280 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "src/trace_processor/dynamic/experimental_annotated_stack_generator.h"
+
+#include "perfetto/ext/base/optional.h"
+#include "src/trace_processor/storage/trace_storage.h"
+#include "src/trace_processor/tables/profiler_tables.h"
+#include "src/trace_processor/types/trace_processor_context.h"
+
+#include "perfetto/ext/base/string_utils.h"
+
+namespace perfetto {
+namespace trace_processor {
+
+namespace {
+
+enum class MapType {
+  kArtInterp,
+  kArtJit,
+  kArtAot,
+  kNativeLibart,
+  kNativeOther,
+  kOther
+};
+
+// Mapping examples:
+//   /system/lib64/libc.so
+//   /system/framework/framework.jar
+//   /memfd:jit-cache (deleted)
+//   [vdso]
+// TODO(rsavitski): consider moving this to a hidden column on
+// stack_profile_mapping, once this logic is sufficiently stable.
+MapType ClassifyMap(NullTermStringView map) {
+  if (map.empty())
+    return MapType::kOther;
+
+  // Primary mapping where modern ART puts jitted code.
+  // TODO(rsavitski): look into /memfd:jit-zygote-cache.
+  if (!strncmp(map.c_str(), "/memfd:jit-cache", 16))
+    return MapType::kArtJit;
+
+  size_t last_slash_pos = map.rfind('/');
+  if (last_slash_pos != NullTermStringView::npos) {
+    if (!strncmp(map.c_str() + last_slash_pos, "/libart.so", 10))
+      return MapType::kNativeLibart;
+    if (!strncmp(map.c_str() + last_slash_pos, "/libartd.so", 11))
+      return MapType::kNativeLibart;
+  }
+
+  size_t extension_pos = map.rfind('.');
+  if (extension_pos != NullTermStringView::npos) {
+    if (!strncmp(map.c_str() + extension_pos, ".so", 3))
+      return MapType::kNativeOther;
+    // dex with verification speedup info, produced by dex2oat
+    if (!strncmp(map.c_str() + extension_pos, ".vdex", 5))
+      return MapType::kArtInterp;
+    // possibly uncompressed dex in a jar archive
+    if (!strncmp(map.c_str() + extension_pos, ".jar", 4))
+      return MapType::kArtInterp;
+    // ahead of time compiled ELFs
+    if (!strncmp(map.c_str() + extension_pos, ".oat", 4))
+      return MapType::kArtAot;
+    // older/alternative name for .oat
+    if (!strncmp(map.c_str() + extension_pos, ".odex", 5))
+      return MapType::kArtAot;
+  }
+  return MapType::kOther;
+}
+
+uint32_t GetConstraintColumnIndex(TraceProcessorContext* context) {
+  // The dynamic table adds two columns on top of the callsite table. Last
+  // column is the hidden constrain (i.e. input arg) column.
+  return context->storage->stack_profile_callsite_table().GetColumnCount() + 1;
+}
+
+}  // namespace
+
+std::string ExperimentalAnnotatedStackGenerator::TableName() {
+  return "experimental_annotated_callstack";
+}
+
+Table::Schema ExperimentalAnnotatedStackGenerator::CreateSchema() {
+  auto schema = tables::StackProfileCallsiteTable::Schema();
+  schema.columns.push_back(Table::Schema::Column{
+      "annotation", SqlValue::Type::kString, /* is_id = */ false,
+      /* is_sorted = */ false, /* is_hidden = */ false});
+  schema.columns.push_back(Table::Schema::Column{
+      "start_id", SqlValue::Type::kLong, /* is_id = */ false,
+      /* is_sorted = */ false, /* is_hidden = */ true});
+  return schema;
+}
+
+util::Status ExperimentalAnnotatedStackGenerator::ValidateConstraints(
+    const QueryConstraints& qc) {
+  const auto& cs = qc.constraints();
+  int column = static_cast<int>(GetConstraintColumnIndex(context_));
+
+  auto id_fn = [column](const QueryConstraints::Constraint& c) {
+    return c.column == column && c.op == SQLITE_INDEX_CONSTRAINT_EQ;
+  };
+  bool has_id_cs = std::find_if(cs.begin(), cs.end(), id_fn) != cs.end();
+  return has_id_cs ? util::OkStatus()
+                   : util::ErrStatus("Failed to find required constraints");
+}
+
+std::unique_ptr<Table> ExperimentalAnnotatedStackGenerator::ComputeTable(
+    const std::vector<Constraint>& cs,
+    const std::vector<Order>&) {
+  const auto& cs_table = context_->storage->stack_profile_callsite_table();
+  const auto& f_table = context_->storage->stack_profile_frame_table();
+  const auto& m_table = context_->storage->stack_profile_mapping_table();
+
+  // Input (id of the callsite leaf) is the constraint on the hidden |start_id|
+  // column.
+  uint32_t constraint_col = GetConstraintColumnIndex(context_);
+  auto constraint_it =
+      std::find_if(cs.begin(), cs.end(), [constraint_col](const Constraint& c) {
+        return c.col_idx == constraint_col && c.op == FilterOp::kEq;
+      });
+  PERFETTO_DCHECK(constraint_it != cs.end());
+
+  auto start_id = static_cast<uint32_t>(constraint_it->value.AsLong());
+  base::Optional<uint32_t> start_row =
+      cs_table.id().IndexOf(CallsiteId(start_id));
+  if (!start_row)
+    return nullptr;
+
+  // Iteratively walk the parent_id chain to construct the list of callstack
+  // entries, each pointing at a frame.
+  std::vector<uint32_t> cs_rows;
+  cs_rows.push_back(*start_row);
+  base::Optional<CallsiteId> maybe_parent_id = cs_table.parent_id()[*start_row];
+  while (maybe_parent_id) {
+    uint32_t parent_row = cs_table.id().IndexOf(*maybe_parent_id).value();
+    cs_rows.push_back(parent_row);
+    maybe_parent_id = cs_table.parent_id()[parent_row];
+  }
+
+  // Walk the callsites root-to-leaf, annotating:
+  // * managed frames with their execution state (interpreted/jit/aot)
+  // * common ART frames, which are usually not relevant
+  //
+  // This is not a per-frame decision, because we do not want to filter out ART
+  // frames immediately after a JNI transition (such frames are often relevant).
+  //
+  // As a consequence of the logic being based on a root-to-leaf walk, a given
+  // callsite will always have the same annotation, as the parent path is always
+  // the same, and children callsites do not affect their parents' annotations.
+  //
+  // This could also be implemented as a hidden column on the callsite table
+  // (populated at import time), but we want to be more flexible for now.
+  StringId art_jni_trampoline =
+      context_->storage->InternString("art_jni_trampoline");
+
+  StringId common_frame = context_->storage->InternString("common-frame");
+  StringId art_interp = context_->storage->InternString("interp");
+  StringId art_jit = context_->storage->InternString("jit");
+  StringId art_aot = context_->storage->InternString("aot");
+
+  // Annotation FSM states:
+  // * kInitial: default, native-only callstacks never leave this state.
+  // * kEraseLibart: we've seen a managed frame, and will now "erase" (i.e. tag
+  //                 as a common-frame) frames belonging to the ART runtime.
+  // * kKeepNext: we've seen a special JNI trampoline for managed->native
+  //              transition, keep the immediate child (even if it is in ART),
+  //              and then go back to kEraseLibart.
+  // Regardless of the state, managed frames get annotated with their execution
+  // mode, based on the mapping.
+  enum class State { kInitial, kEraseLibart, kKeepNext };
+  State annotation_state = State::kInitial;
+
+  std::vector<StringPool::Id> annotations_reversed;
+  for (auto it = cs_rows.rbegin(); it != cs_rows.rend(); ++it) {
+    FrameId frame_id = cs_table.frame_id()[*it];
+    uint32_t frame_row = f_table.id().IndexOf(frame_id).value();
+
+    MappingId map_id = f_table.mapping()[frame_row];
+    uint32_t map_row = m_table.id().IndexOf(map_id).value();
+
+    // Keep immediate callee of a JNI trampoline, but keep tagging all
+    // successive libart frames as common.
+    if (annotation_state == State::kKeepNext) {
+      annotations_reversed.push_back(kNullStringId);
+      annotation_state = State::kEraseLibart;
+      continue;
+    }
+
+    // Special-case "art_jni_trampoline" frames, keeping their immediate callee
+    // even if it is in libart, as it could be a native implementation of a
+    // managed method. Example for "java.lang.reflect.Method.Invoke":
+    //   art_jni_trampoline
+    //   art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)
+    //
+    // Simpleperf also relies on this frame name, so it should be fairly stable.
+    // TODO(rsavitski): consider detecting standard JNI upcall entrypoints -
+    // _JNIEnv::Call*. These are sometimes inlined into other DSOs, so erasing
+    // only the libart frames does not clean up all of the JNI-related frames.
+    StringId fname_id = f_table.name()[frame_row];
+    if (fname_id == art_jni_trampoline) {
+      annotations_reversed.push_back(common_frame);
+      annotation_state = State::kKeepNext;
+      continue;
+    }
+
+    NullTermStringView map_view =
+        context_->storage->GetString(m_table.name()[map_row]);
+    MapType map_type = ClassifyMap(map_view);
+
+    // Annotate managed frames.
+    if (map_type == MapType::kArtInterp ||  //
+        map_type == MapType::kArtJit ||     //
+        map_type == MapType::kArtAot) {
+      if (map_type == MapType::kArtInterp)
+        annotations_reversed.push_back(art_interp);
+      else if (map_type == MapType::kArtJit)
+        annotations_reversed.push_back(art_jit);
+      else if (map_type == MapType::kArtAot)
+        annotations_reversed.push_back(art_aot);
+
+      // Now know to be in a managed callstack - erase subsequent ART frames.
+      if (annotation_state == State::kInitial)
+        annotation_state = State::kEraseLibart;
+      continue;
+    }
+
+    if (annotation_state == State::kEraseLibart &&
+        map_type == MapType::kNativeLibart) {
+      annotations_reversed.push_back(common_frame);
+      continue;
+    }
+
+    annotations_reversed.push_back(kNullStringId);
+  }
+
+  // Build the dynamic table.
+  auto base_rowmap = RowMap(std::move(cs_rows));
+
+  PERFETTO_DCHECK(base_rowmap.size() == annotations_reversed.size());
+  std::unique_ptr<NullableVector<StringPool::Id>> annotation_vals(
+      new NullableVector<StringPool::Id>());
+  for (auto it = annotations_reversed.rbegin();
+       it != annotations_reversed.rend(); ++it) {
+    annotation_vals->Append(*it);
+  }
+
+  // Hidden column - always the input, i.e. the callsite leaf.
+  std::unique_ptr<NullableVector<uint32_t>> start_id_vals(
+      new NullableVector<uint32_t>());
+  for (uint32_t i = 0; i < base_rowmap.size(); i++)
+    start_id_vals->Append(start_id);
+
+  return std::unique_ptr<Table>(new Table(
+      cs_table.Apply(std::move(base_rowmap))
+          .ExtendWithColumn("annotation", std::move(annotation_vals),
+                            TypedColumn<StringPool::Id>::default_flags())
+          .ExtendWithColumn("start_id", std::move(start_id_vals),
+                            TypedColumn<uint32_t>::default_flags() |
+                                TypedColumn<uint32_t>::kHidden)));
+}
+
+uint32_t ExperimentalAnnotatedStackGenerator::EstimateRowCount() {
+  return 1;
+}
+
+}  // namespace trace_processor
+}  // namespace perfetto
diff --git a/src/trace_processor/dynamic/experimental_annotated_stack_generator.h b/src/trace_processor/dynamic/experimental_annotated_stack_generator.h
new file mode 100644
index 0000000..7e6a62d
--- /dev/null
+++ b/src/trace_processor/dynamic/experimental_annotated_stack_generator.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef SRC_TRACE_PROCESSOR_DYNAMIC_EXPERIMENTAL_ANNOTATED_STACK_GENERATOR_H_
+#define SRC_TRACE_PROCESSOR_DYNAMIC_EXPERIMENTAL_ANNOTATED_STACK_GENERATOR_H_
+
+#include "src/trace_processor/sqlite/db_sqlite_table.h"
+
+namespace perfetto {
+namespace trace_processor {
+
+class TraceProcessorContext;
+
+// The "experimental_annotated_callstack" dynamic table.
+//
+// Given a leaf callsite id, returns the full callstack (including the leaf),
+// with optional (currently Android-specific) annotations. A given callsite will
+// always have the same annotation.
+class ExperimentalAnnotatedStackGenerator
+    : public DbSqliteTable::DynamicTableGenerator {
+ public:
+  ExperimentalAnnotatedStackGenerator(TraceProcessorContext* context)
+      : context_(context) {}
+
+  Table::Schema CreateSchema() override;
+  std::string TableName() override;
+  uint32_t EstimateRowCount() override;
+  util::Status ValidateConstraints(const QueryConstraints&) override;
+  std::unique_ptr<Table> ComputeTable(const std::vector<Constraint>& cs,
+                                      const std::vector<Order>& ob) override;
+
+ private:
+  TraceProcessorContext* context_ = nullptr;
+};
+
+}  // namespace trace_processor
+}  // namespace perfetto
+
+#endif  // SRC_TRACE_PROCESSOR_DYNAMIC_EXPERIMENTAL_ANNOTATED_STACK_GENERATOR_H_
diff --git a/src/trace_processor/importers/systrace/systrace_parser.cc b/src/trace_processor/importers/systrace/systrace_parser.cc
index 02f1d14..607b2ba 100644
--- a/src/trace_processor/importers/systrace/systrace_parser.cc
+++ b/src/trace_processor/importers/systrace/systrace_parser.cc
@@ -55,13 +55,21 @@
                                     uint32_t pid,
                                     int32_t flag,
                                     base::StringView name,
-                                    uint32_t tgid,
+                                    uint32_t /* tgid */,
                                     int64_t value) {
   systrace_utils::SystraceTracePoint point{};
   point.name = name;
-  point.tgid = tgid;
   point.value = static_cast<double>(value);
 
+  // Hardcode the tgid to 0 (i.e. no tgid available) because zero events can
+  // come from kernel threads and as we group kernel threads into the kthreadd
+  // process, we would want |point.tgid == kKthreaddPid|. However, we don't have
+  // acces to the ppid of this process so we have to not associate to any
+  // process and leave the resolution of process to other events.
+  // TODO(lalitm): remove this hack once we move kernel thread grouping to
+  // the UI.
+  point.tgid = 0;
+
   // The value of these constants can be found in the msm-google kernel.
   constexpr int32_t kSystraceEventBegin = 1 << 0;
   constexpr int32_t kSystraceEventEnd = 1 << 1;
diff --git a/src/trace_processor/metrics/android/android_startup.sql b/src/trace_processor/metrics/android/android_startup.sql
index 364a635..27537db 100644
--- a/src/trace_processor/metrics/android/android_startup.sql
+++ b/src/trace_processor/metrics/android/android_startup.sql
@@ -230,13 +230,13 @@
     ),
     'activities', (
       SELECT RepeatedField(AndroidStartupMetric_Activity(
-        'name', (SELECT STR_SPLIT(s.name, ':', 1)),
-        'method', (SELECT STR_SPLIT(s.name, ':', 0)),
-        'slice', s.slice_proto
+        'name', (SELECT STR_SPLIT(s.slice_name, ':', 1)),
+        'method', (SELECT STR_SPLIT(s.slice_name, ':', 0)),
+        'ts_method_start', s.slice_ts
       ))
-      FROM main_process_slice s
+      FROM main_process_slice_unaggregated s
       WHERE s.launch_id = launches.id
-      AND (name LIKE 'performResume:%' OR name LIKE 'performCreate:%')
+      AND (slice_name LIKE 'performResume:%' OR slice_name LIKE 'performCreate:%')
     ),
     'zygote_new_process', EXISTS(SELECT TRUE FROM zygote_forks_by_id WHERE id = launches.id),
     'activity_hosting_process_count', (
diff --git a/src/trace_processor/python/perfetto/trace_processor/metrics.descriptor b/src/trace_processor/python/perfetto/trace_processor/metrics.descriptor
index 32c8092..a988962 100644
--- a/src/trace_processor/python/perfetto/trace_processor/metrics.descriptor
+++ b/src/trace_processor/python/perfetto/trace_processor/metrics.descriptor
Binary files differ
diff --git a/src/trace_processor/trace_processor_impl.cc b/src/trace_processor/trace_processor_impl.cc
index ca74685..8893144 100644
--- a/src/trace_processor/trace_processor_impl.cc
+++ b/src/trace_processor/trace_processor_impl.cc
@@ -27,6 +27,7 @@
 #include "src/trace_processor/dynamic/connected_flow_generator.h"
 #include "src/trace_processor/dynamic/descendant_slice_generator.h"
 #include "src/trace_processor/dynamic/describe_slice_generator.h"
+#include "src/trace_processor/dynamic/experimental_annotated_stack_generator.h"
 #include "src/trace_processor/dynamic/experimental_counter_dur_generator.h"
 #include "src/trace_processor/dynamic/experimental_flamegraph_generator.h"
 #include "src/trace_processor/dynamic/experimental_sched_upid_generator.h"
@@ -766,6 +767,8 @@
                                          storage->thread_table())));
   RegisterDynamicTable(std::unique_ptr<ThreadStateGenerator>(
       new ThreadStateGenerator(&context_)));
+  RegisterDynamicTable(std::unique_ptr<ExperimentalAnnotatedStackGenerator>(
+      new ExperimentalAnnotatedStackGenerator(&context_)));
 
   // New style db-backed tables.
   RegisterDbTable(storage->arg_table());
diff --git a/test/trace_processor/dynamic/annotated_callstack.sql b/test/trace_processor/dynamic/annotated_callstack.sql
new file mode 100644
index 0000000..a23f3cc
--- /dev/null
+++ b/test/trace_processor/dynamic/annotated_callstack.sql
@@ -0,0 +1,25 @@
+--
+-- Copyright 2021 The Android Open Source Project
+--
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+--
+--     https://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+
+select eac.id, eac.depth, eac.frame_id, eac.annotation,
+       spf.name
+from experimental_annotated_callstack eac
+join perf_sample ps
+  on (eac.start_id == ps.callsite_id)
+join stack_profile_frame spf
+  on (eac.frame_id == spf.id)
+order by eac.start_id asc, eac.depth asc;
+
diff --git a/test/trace_processor/dynamic/index b/test/trace_processor/dynamic/index
index 8e76690..3c5953b 100644
--- a/test/trace_processor/dynamic/index
+++ b/test/trace_processor/dynamic/index
@@ -7,4 +7,7 @@
 relationship_tables.textproto descendant_slice.sql descendant_slice.out
 
 # Connected/Following/Perceeding flow table.
-connected_flow_data.json connected_flow.sql connected_flow.out
\ No newline at end of file
+connected_flow_data.json connected_flow.sql connected_flow.out
+
+# Annotated callstacks.
+../../data/perf_sample_sc.pb annotated_callstack.sql perf_sample_sc_annotated_callstack.out
diff --git a/test/trace_processor/dynamic/perf_sample_sc_annotated_callstack.out b/test/trace_processor/dynamic/perf_sample_sc_annotated_callstack.out
new file mode 100644
index 0000000..633c97e
--- /dev/null
+++ b/test/trace_processor/dynamic/perf_sample_sc_annotated_callstack.out
@@ -0,0 +1,96 @@
+"id","depth","frame_id","annotation","name"
+0,0,0,"[NULL]","__start_thread"
+1,1,1,"[NULL]","_ZL15__pthread_startPv"
+2,2,2,"[NULL]","_ZN13thread_data_t10trampolineEPKS_"
+3,3,3,"[NULL]","_ZN7android14AndroidRuntime15javaThreadShellEPv"
+4,4,4,"[NULL]","_ZN7android6Thread11_threadLoopEPv"
+5,5,5,"[NULL]","_ZN7android10PoolThread10threadLoopEv"
+6,6,6,"[NULL]","_ZN7android14IPCThreadState14joinThreadPoolEb"
+7,7,7,"[NULL]","_ZN7android14IPCThreadState14executeCommandEi"
+8,8,8,"[NULL]","_ZN7android7BBinder8transactEjRKNS_6ParcelEPS1_j"
+9,9,9,"[NULL]","_ZN11JavaBBinder10onTransactEjRKN7android6ParcelEPS1_j"
+10,10,10,"[NULL]","_ZN7_JNIEnv17CallBooleanMethodEP8_jobjectP10_jmethodIDz"
+11,11,11,"[NULL]","_ZN3art3JNIILb0EE18CallBooleanMethodVEP7_JNIEnvP8_jobjectP10_jmethodIDSt9__va_list"
+12,12,12,"[NULL]","_ZN3art35InvokeVirtualOrInterfaceWithVarArgsIPNS_9ArtMethodEEENS_6JValueERKNS_33ScopedObjectAccessAlreadyRunnableEP8_jobjectT_St9__va_list"
+13,13,13,"[NULL]","art_quick_invoke_stub"
+14,14,14,"aot","android.os.Binder.execTransact"
+15,15,15,"aot","android.os.Binder.execTransactInternal"
+16,16,16,"aot","com.android.server.wm.Session.onTransact"
+17,17,17,"jit","android.view.IWindowSession$Stub.onTransact"
+18,18,18,"aot","com.android.server.wm.Session.sendWallpaperCommand"
+19,19,19,"aot","com.android.server.ThreadPriorityBooster.boost"
+20,20,20,"common-frame","art_jni_trampoline"
+21,21,21,"[NULL]","_Z36android_os_Process_getThreadPriorityP7_JNIEnvP8_jobjecti"
+22,22,22,"[NULL]","getpriority"
+23,23,23,"[NULL]","__getpriority"
+0,0,0,"[NULL]","__start_thread"
+1,1,1,"[NULL]","_ZL15__pthread_startPv"
+2,2,2,"[NULL]","_ZN13thread_data_t10trampolineEPKS_"
+3,3,3,"[NULL]","_ZN7android14AndroidRuntime15javaThreadShellEPv"
+24,4,24,"[NULL]","_ZN7android6Thread11_threadLoopEPv"
+25,5,25,"[NULL]","_ZN7android12_GLOBAL__N_115InputThreadImpl10threadLoopEv"
+26,6,26,"[NULL]","_ZN7android15inputdispatcher15InputDispatcher12dispatchOnceEv"
+27,7,27,"[NULL]","_ZN7android15inputdispatcher15InputDispatcher23dispatchOnceInnerLockedEPl"
+28,8,28,"[NULL]","_ZN7android15inputdispatcher15InputDispatcher20dispatchMotionLockedElNSt3__110shared_ptrINS0_11MotionEntryEEEPNS1_10DropReasonEPl"
+29,9,29,"[NULL]","_ZN7android15inputdispatcher15InputDispatcher19dispatchEventLockedElNSt3__110shared_ptrINS0_10EventEntryEEERKNS2_6vectorINS0_11InputTargetENS2_9allocatorIS7_EEEE"
+30,10,30,"[NULL]","_ZN7android15inputdispatcher15InputDispatcher26prepareDispatchCycleLockedElRKNS_2spINS0_10ConnectionEEENSt3__110shared_ptrINS0_10EventEntryEEERKNS0_11InputTargetE"
+31,11,31,"[NULL]","_ZN7android15inputdispatcher15InputDispatcher28enqueueDispatchEntriesLockedElRKNS_2spINS0_10ConnectionEEENSt3__110shared_ptrINS0_10EventEntryEEERKNS0_11InputTargetE"
+32,12,32,"[NULL]","_ZN7android15inputdispatcher15InputDispatcher24startDispatchCycleLockedElRKNS_2spINS0_10ConnectionEEE"
+33,13,33,"[NULL]","_ZN7android15inputdispatcher15InputDispatcher29reportTouchEventForStatisticsERKNS0_11MotionEntryE"
+34,14,34,"[NULL]","_ZN7android17LatencyStatistics12shouldReportEv"
+0,0,0,"[NULL]","__start_thread"
+1,1,1,"[NULL]","_ZL15__pthread_startPv"
+2,2,2,"[NULL]","_ZN13thread_data_t10trampolineEPKS_"
+3,3,3,"[NULL]","_ZN7android14AndroidRuntime15javaThreadShellEPv"
+4,4,4,"[NULL]","_ZN7android6Thread11_threadLoopEPv"
+35,5,35,"[NULL]","_ZThn32_N7android13SensorService10threadLoopEv"
+36,6,36,"[NULL]","_ZN7android13SensorService10threadLoopEv"
+37,7,37,"[NULL]","_ZN7android12SensorDevice7pollFmqEP15sensors_event_tm"
+38,8,38,"[NULL]","_ZN7android8hardware9EventFlag10waitHelperEjPjl"
+39,9,39,"[NULL]","syscall"
+0,0,0,"[NULL]","__start_thread"
+1,1,1,"[NULL]","_ZL15__pthread_startPv"
+2,2,2,"[NULL]","_ZN13thread_data_t10trampolineEPKS_"
+3,3,3,"[NULL]","_ZN7android14AndroidRuntime15javaThreadShellEPv"
+24,4,24,"[NULL]","_ZN7android6Thread11_threadLoopEPv"
+25,5,25,"[NULL]","_ZN7android12_GLOBAL__N_115InputThreadImpl10threadLoopEv"
+26,6,26,"[NULL]","_ZN7android15inputdispatcher15InputDispatcher12dispatchOnceEv"
+27,7,27,"[NULL]","_ZN7android15inputdispatcher15InputDispatcher23dispatchOnceInnerLockedEPl"
+28,8,28,"[NULL]","_ZN7android15inputdispatcher15InputDispatcher20dispatchMotionLockedElNSt3__110shared_ptrINS0_11MotionEntryEEEPNS1_10DropReasonEPl"
+29,9,29,"[NULL]","_ZN7android15inputdispatcher15InputDispatcher19dispatchEventLockedElNSt3__110shared_ptrINS0_10EventEntryEEERKNS2_6vectorINS0_11InputTargetENS2_9allocatorIS7_EEEE"
+30,10,30,"[NULL]","_ZN7android15inputdispatcher15InputDispatcher26prepareDispatchCycleLockedElRKNS_2spINS0_10ConnectionEEENSt3__110shared_ptrINS0_10EventEntryEEERKNS0_11InputTargetE"
+31,11,31,"[NULL]","_ZN7android15inputdispatcher15InputDispatcher28enqueueDispatchEntriesLockedElRKNS_2spINS0_10ConnectionEEENSt3__110shared_ptrINS0_10EventEntryEEERKNS0_11InputTargetE"
+40,12,40,"[NULL]","_ZN7android15inputdispatcher15InputDispatcher24startDispatchCycleLockedElRKNS_2spINS0_10ConnectionEEE"
+41,13,41,"[NULL]","_ZN7android15inputdispatcher34verifiedMotionEventFromMotionEntryERKNS0_11MotionEntryE"
+0,0,0,"[NULL]","__start_thread"
+1,1,1,"[NULL]","_ZL15__pthread_startPv"
+2,2,2,"[NULL]","_ZN13thread_data_t10trampolineEPKS_"
+3,3,3,"[NULL]","_ZN7android14AndroidRuntime15javaThreadShellEPv"
+24,4,24,"[NULL]","_ZN7android6Thread11_threadLoopEPv"
+25,5,25,"[NULL]","_ZN7android12_GLOBAL__N_115InputThreadImpl10threadLoopEv"
+26,6,26,"[NULL]","_ZN7android15inputdispatcher15InputDispatcher12dispatchOnceEv"
+27,7,27,"[NULL]","_ZN7android15inputdispatcher15InputDispatcher23dispatchOnceInnerLockedEPl"
+42,8,42,"[NULL]","_ZN7android15inputdispatcher15InputDispatcher20dispatchMotionLockedElNSt3__110shared_ptrINS0_11MotionEntryEEEPNS1_10DropReasonEPl"
+43,9,43,"[NULL]","_ZN7android15inputdispatcher15InputDispatcher30findTouchedWindowTargetsLockedElRKNS0_11MotionEntryERNSt3__16vectorINS0_11InputTargetENS5_9allocatorIS7_EEEEPlPb"
+44,10,44,"[NULL]","_ZNK7android15inputdispatcher15InputDispatcher29hasResponsiveConnectionLockedERNS_17InputWindowHandleE"
+45,11,45,"[NULL]","_ZNK7android7RefBase9incStrongEPKv"
+0,0,0,"[NULL]","__start_thread"
+1,1,1,"[NULL]","_ZL15__pthread_startPv"
+46,2,46,"[NULL]","_ZN3art6Thread14CreateCallbackEPv"
+47,3,47,"[NULL]","_ZN3art35InvokeVirtualOrInterfaceWithJValuesIPNS_9ArtMethodEEENS_6JValueERKNS_33ScopedObjectAccessAlreadyRunnableEP8_jobjectT_PK6jvalue"
+48,4,48,"[NULL]","_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc"
+49,5,13,"[NULL]","art_quick_invoke_stub"
+50,6,49,"aot","com.android.server.UiThread.run"
+51,7,50,"aot","android.os.HandlerThread.run"
+52,8,51,"aot","android.os.Looper.loop"
+53,9,52,"aot","android.os.Looper.loopOnce"
+54,10,53,"aot","android.os.MessageQueue.next"
+55,11,54,"common-frame","art_jni_trampoline"
+56,12,55,"[NULL]","_ZN7androidL38android_os_MessageQueue_nativePollOnceEP7_JNIEnvP8_jobjectli"
+57,13,56,"[NULL]","_ZN7android6Looper8pollOnceEiPiS1_PPv"
+58,14,57,"[NULL]","_ZN7android6Looper9pollInnerEi"
+59,15,58,"[NULL]","_ZN7android24NativeInputEventReceiver11handleEventEiiPv"
+60,16,59,"[NULL]","_ZN7android24NativeInputEventReceiver13consumeEventsEP7_JNIEnvblPb"
+61,17,60,"common-frame","_ZN3art3JNIILb0EE9FindClassEP7_JNIEnvPKc"
+62,18,61,"common-frame","_ZN3art11ClassLinker9FindClassEPNS_6ThreadEPKcNS_6HandleINS_6mirror11ClassLoaderEEE"
+63,19,62,"common-frame",""
diff --git a/test/trace_processor/profiling/index b/test/trace_processor/profiling/index
index 58a7282..60166f5 100644
--- a/test/trace_processor/profiling/index
+++ b/test/trace_processor/profiling/index
@@ -45,8 +45,9 @@
 heap_graph_closest_proc.textproto java_heap_stats heap_stats_closest_proc.out
 heap_graph.textproto java_heap_histogram java_heap_histogram.out
 
-# perf_sample table (traced_perf trace as an input).
-../../data/perf_sample.pb perf_sample.sql perf_sample_perf_sample.out
+# perf_sample table (traced_perf) with android R and S trace inputs.
+../../data/perf_sample.pb perf_sample.sql perf_sample_rvc.out
+../../data/perf_sample_sc.pb perf_sample.sql perf_sample_sc.out
 
 # this uses llvm-symbolizer to test the offline symbolization built into
 # trace_processor_shell.
diff --git a/test/trace_processor/profiling/perf_sample.sql b/test/trace_processor/profiling/perf_sample.sql
index 362f6ff..5c0f1b4 100644
--- a/test/trace_processor/profiling/perf_sample.sql
+++ b/test/trace_processor/profiling/perf_sample.sql
@@ -13,30 +13,19 @@
 -- See the License for the specific language governing permissions and
 -- limitations under the License.
 --
-select perf_sample.ts, thread.tid, perf_sample.cpu, perf_sample.cpu_mode,
-       perf_sample.unwind_error, concatenated_callsite.frames_str
-from perf_sample
+
+select ps.ts, ps.cpu, ps.cpu_mode, ps.unwind_error, ps.perf_session_id,
+       pct.name cntr_name, pct.is_timebase,
+       thread.tid,
+       spf.name
+from experimental_annotated_callstack eac
+join perf_sample ps
+  on (eac.start_id == ps.callsite_id)
+join perf_counter_track pct
+  using(perf_session_id, cpu)
 join thread
   using(utid)
-left join (
-  select flattened_callsite.id, group_concat(spf.name) frames_str
-  from (
-    with recursive rec(id, parent_id, frame_id, depth)
-      as (
-        select id, parent_id, frame_id, depth
-        from stack_profile_callsite
-        union all
-          select rec.id, spc.parent_id, spc.frame_id, spc.depth
-          from stack_profile_callsite spc
-          join rec
-            on spc.id == rec.parent_id
-      )
-    select id, frame_id, depth
-    from rec
-    order by id asc, depth desc
-  ) as flattened_callsite
-  left join stack_profile_frame spf
-    on flattened_callsite.frame_id == spf.id
-  group by flattened_callsite.id
-) as concatenated_callsite
-  on perf_sample.callsite_id == concatenated_callsite.id;
+join stack_profile_frame spf
+  on (eac.frame_id == spf.id)
+order by ps.ts asc, eac.depth asc
+
diff --git a/test/trace_processor/profiling/perf_sample_perf_sample.out b/test/trace_processor/profiling/perf_sample_perf_sample.out
deleted file mode 100644
index 64ae205..0000000
--- a/test/trace_processor/profiling/perf_sample_perf_sample.out
+++ /dev/null
@@ -1,4 +0,0 @@
-"ts","tid","cpu","cpu_mode","unwind_error","frames_str"
-260406202383309,1102,3,"kernel","[NULL]","__ppoll,poll,_ZN8perfetto4base14UnixTaskRunner3RunEv,_ZN8perfetto11ServiceMainEiPPc,__libc_init"
-260406295220349,1102,0,"kernel","[NULL]","__connect,_ZN12_GLOBAL__N_117netdClientConnectEiPK8sockaddrj.cfi,_ZL21HandleProfilingSignaliP7siginfoPv,__kernel_rt_sigreturn,__ppoll,poll,_ZN8perfetto4base14UnixTaskRunner3RunEv,_ZN8perfetto11ServiceMainEiPPc,__libc_init"
-260406802020973,1102,2,"user","[NULL]","_ZN8perfetto3ipc25BufferedFrameDeserializer12BeginReceiveEv,_ZN8perfetto4base10UnixSocket7OnEventEv,_ZN8perfetto4base14UnixTaskRunner22RunFileDescriptorWatchEi,_ZN8perfetto4base14UnixTaskRunner26RunImmediateAndDelayedTaskEv,_ZN8perfetto4base14UnixTaskRunner3RunEv,_ZN8perfetto11ServiceMainEiPPc,__libc_init"
diff --git a/test/trace_processor/profiling/perf_sample_rvc.out b/test/trace_processor/profiling/perf_sample_rvc.out
new file mode 100644
index 0000000..00f7325
--- /dev/null
+++ b/test/trace_processor/profiling/perf_sample_rvc.out
@@ -0,0 +1,22 @@
+"ts","cpu","cpu_mode","unwind_error","perf_session_id","cntr_name","is_timebase","tid","name"
+260406202383309,3,"kernel","[NULL]",0,"cpu-clock",1,1102,"__libc_init"
+260406202383309,3,"kernel","[NULL]",0,"cpu-clock",1,1102,"_ZN8perfetto11ServiceMainEiPPc"
+260406202383309,3,"kernel","[NULL]",0,"cpu-clock",1,1102,"_ZN8perfetto4base14UnixTaskRunner3RunEv"
+260406202383309,3,"kernel","[NULL]",0,"cpu-clock",1,1102,"poll"
+260406202383309,3,"kernel","[NULL]",0,"cpu-clock",1,1102,"__ppoll"
+260406295220349,0,"kernel","[NULL]",0,"cpu-clock",1,1102,"__libc_init"
+260406295220349,0,"kernel","[NULL]",0,"cpu-clock",1,1102,"_ZN8perfetto11ServiceMainEiPPc"
+260406295220349,0,"kernel","[NULL]",0,"cpu-clock",1,1102,"_ZN8perfetto4base14UnixTaskRunner3RunEv"
+260406295220349,0,"kernel","[NULL]",0,"cpu-clock",1,1102,"poll"
+260406295220349,0,"kernel","[NULL]",0,"cpu-clock",1,1102,"__ppoll"
+260406295220349,0,"kernel","[NULL]",0,"cpu-clock",1,1102,"__kernel_rt_sigreturn"
+260406295220349,0,"kernel","[NULL]",0,"cpu-clock",1,1102,"_ZL21HandleProfilingSignaliP7siginfoPv"
+260406295220349,0,"kernel","[NULL]",0,"cpu-clock",1,1102,"_ZN12_GLOBAL__N_117netdClientConnectEiPK8sockaddrj.cfi"
+260406295220349,0,"kernel","[NULL]",0,"cpu-clock",1,1102,"__connect"
+260406802020973,2,"user","[NULL]",0,"cpu-clock",1,1102,"__libc_init"
+260406802020973,2,"user","[NULL]",0,"cpu-clock",1,1102,"_ZN8perfetto11ServiceMainEiPPc"
+260406802020973,2,"user","[NULL]",0,"cpu-clock",1,1102,"_ZN8perfetto4base14UnixTaskRunner3RunEv"
+260406802020973,2,"user","[NULL]",0,"cpu-clock",1,1102,"_ZN8perfetto4base14UnixTaskRunner26RunImmediateAndDelayedTaskEv"
+260406802020973,2,"user","[NULL]",0,"cpu-clock",1,1102,"_ZN8perfetto4base14UnixTaskRunner22RunFileDescriptorWatchEi"
+260406802020973,2,"user","[NULL]",0,"cpu-clock",1,1102,"_ZN8perfetto4base10UnixSocket7OnEventEv"
+260406802020973,2,"user","[NULL]",0,"cpu-clock",1,1102,"_ZN8perfetto3ipc25BufferedFrameDeserializer12BeginReceiveEv"
diff --git a/test/trace_processor/profiling/perf_sample_sc.out b/test/trace_processor/profiling/perf_sample_sc.out
new file mode 100644
index 0000000..4ddbb3a
--- /dev/null
+++ b/test/trace_processor/profiling/perf_sample_sc.out
@@ -0,0 +1,96 @@
+"ts","cpu","cpu_mode","unwind_error","perf_session_id","cntr_name","is_timebase","tid","name"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"__start_thread"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"_ZL15__pthread_startPv"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"_ZN13thread_data_t10trampolineEPKS_"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"_ZN7android14AndroidRuntime15javaThreadShellEPv"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"_ZN7android6Thread11_threadLoopEPv"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"_ZN7android10PoolThread10threadLoopEv"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"_ZN7android14IPCThreadState14joinThreadPoolEb"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"_ZN7android14IPCThreadState14executeCommandEi"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"_ZN7android7BBinder8transactEjRKNS_6ParcelEPS1_j"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"_ZN11JavaBBinder10onTransactEjRKN7android6ParcelEPS1_j"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"_ZN7_JNIEnv17CallBooleanMethodEP8_jobjectP10_jmethodIDz"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"_ZN3art3JNIILb0EE18CallBooleanMethodVEP7_JNIEnvP8_jobjectP10_jmethodIDSt9__va_list"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"_ZN3art35InvokeVirtualOrInterfaceWithVarArgsIPNS_9ArtMethodEEENS_6JValueERKNS_33ScopedObjectAccessAlreadyRunnableEP8_jobjectT_St9__va_list"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"art_quick_invoke_stub"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"android.os.Binder.execTransact"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"android.os.Binder.execTransactInternal"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"com.android.server.wm.Session.onTransact"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"android.view.IWindowSession$Stub.onTransact"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"com.android.server.wm.Session.sendWallpaperCommand"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"com.android.server.ThreadPriorityBooster.boost"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"art_jni_trampoline"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"_Z36android_os_Process_getThreadPriorityP7_JNIEnvP8_jobjecti"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"getpriority"
+105089621851721,7,"kernel","[NULL]",0,"cpu-clock",1,8817,"__getpriority"
+105090420158231,1,"user","[NULL]",0,"cpu-clock",1,2395,"__start_thread"
+105090420158231,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZL15__pthread_startPv"
+105090420158231,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN13thread_data_t10trampolineEPKS_"
+105090420158231,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android14AndroidRuntime15javaThreadShellEPv"
+105090420158231,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android6Thread11_threadLoopEPv"
+105090420158231,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android12_GLOBAL__N_115InputThreadImpl10threadLoopEv"
+105090420158231,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android15inputdispatcher15InputDispatcher12dispatchOnceEv"
+105090420158231,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android15inputdispatcher15InputDispatcher23dispatchOnceInnerLockedEPl"
+105090420158231,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android15inputdispatcher15InputDispatcher20dispatchMotionLockedElNSt3__110shared_ptrINS0_11MotionEntryEEEPNS1_10DropReasonEPl"
+105090420158231,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android15inputdispatcher15InputDispatcher19dispatchEventLockedElNSt3__110shared_ptrINS0_10EventEntryEEERKNS2_6vectorINS0_11InputTargetENS2_9allocatorIS7_EEEE"
+105090420158231,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android15inputdispatcher15InputDispatcher26prepareDispatchCycleLockedElRKNS_2spINS0_10ConnectionEEENSt3__110shared_ptrINS0_10EventEntryEEERKNS0_11InputTargetE"
+105090420158231,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android15inputdispatcher15InputDispatcher28enqueueDispatchEntriesLockedElRKNS_2spINS0_10ConnectionEEENSt3__110shared_ptrINS0_10EventEntryEEERKNS0_11InputTargetE"
+105090420158231,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android15inputdispatcher15InputDispatcher24startDispatchCycleLockedElRKNS_2spINS0_10ConnectionEEE"
+105090420158231,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android15inputdispatcher15InputDispatcher29reportTouchEventForStatisticsERKNS0_11MotionEntryE"
+105090420158231,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android17LatencyStatistics12shouldReportEv"
+105090420368127,3,"user","[NULL]",0,"cpu-clock",1,2379,"__start_thread"
+105090420368127,3,"user","[NULL]",0,"cpu-clock",1,2379,"_ZL15__pthread_startPv"
+105090420368127,3,"user","[NULL]",0,"cpu-clock",1,2379,"_ZN13thread_data_t10trampolineEPKS_"
+105090420368127,3,"user","[NULL]",0,"cpu-clock",1,2379,"_ZN7android14AndroidRuntime15javaThreadShellEPv"
+105090420368127,3,"user","[NULL]",0,"cpu-clock",1,2379,"_ZN7android6Thread11_threadLoopEPv"
+105090420368127,3,"user","[NULL]",0,"cpu-clock",1,2379,"_ZThn32_N7android13SensorService10threadLoopEv"
+105090420368127,3,"user","[NULL]",0,"cpu-clock",1,2379,"_ZN7android13SensorService10threadLoopEv"
+105090420368127,3,"user","[NULL]",0,"cpu-clock",1,2379,"_ZN7android12SensorDevice7pollFmqEP15sensors_event_tm"
+105090420368127,3,"user","[NULL]",0,"cpu-clock",1,2379,"_ZN7android8hardware9EventFlag10waitHelperEjPjl"
+105090420368127,3,"user","[NULL]",0,"cpu-clock",1,2379,"syscall"
+105090445130783,1,"user","[NULL]",0,"cpu-clock",1,2395,"__start_thread"
+105090445130783,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZL15__pthread_startPv"
+105090445130783,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN13thread_data_t10trampolineEPKS_"
+105090445130783,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android14AndroidRuntime15javaThreadShellEPv"
+105090445130783,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android6Thread11_threadLoopEPv"
+105090445130783,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android12_GLOBAL__N_115InputThreadImpl10threadLoopEv"
+105090445130783,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android15inputdispatcher15InputDispatcher12dispatchOnceEv"
+105090445130783,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android15inputdispatcher15InputDispatcher23dispatchOnceInnerLockedEPl"
+105090445130783,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android15inputdispatcher15InputDispatcher20dispatchMotionLockedElNSt3__110shared_ptrINS0_11MotionEntryEEEPNS1_10DropReasonEPl"
+105090445130783,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android15inputdispatcher15InputDispatcher19dispatchEventLockedElNSt3__110shared_ptrINS0_10EventEntryEEERKNS2_6vectorINS0_11InputTargetENS2_9allocatorIS7_EEEE"
+105090445130783,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android15inputdispatcher15InputDispatcher26prepareDispatchCycleLockedElRKNS_2spINS0_10ConnectionEEENSt3__110shared_ptrINS0_10EventEntryEEERKNS0_11InputTargetE"
+105090445130783,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android15inputdispatcher15InputDispatcher28enqueueDispatchEntriesLockedElRKNS_2spINS0_10ConnectionEEENSt3__110shared_ptrINS0_10EventEntryEEERKNS0_11InputTargetE"
+105090445130783,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android15inputdispatcher15InputDispatcher24startDispatchCycleLockedElRKNS_2spINS0_10ConnectionEEE"
+105090445130783,1,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android15inputdispatcher34verifiedMotionEventFromMotionEntryERKNS0_11MotionEntryE"
+105091020156148,2,"user","[NULL]",0,"cpu-clock",1,2395,"__start_thread"
+105091020156148,2,"user","[NULL]",0,"cpu-clock",1,2395,"_ZL15__pthread_startPv"
+105091020156148,2,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN13thread_data_t10trampolineEPKS_"
+105091020156148,2,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android14AndroidRuntime15javaThreadShellEPv"
+105091020156148,2,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android6Thread11_threadLoopEPv"
+105091020156148,2,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android12_GLOBAL__N_115InputThreadImpl10threadLoopEv"
+105091020156148,2,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android15inputdispatcher15InputDispatcher12dispatchOnceEv"
+105091020156148,2,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android15inputdispatcher15InputDispatcher23dispatchOnceInnerLockedEPl"
+105091020156148,2,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android15inputdispatcher15InputDispatcher20dispatchMotionLockedElNSt3__110shared_ptrINS0_11MotionEntryEEEPNS1_10DropReasonEPl"
+105091020156148,2,"user","[NULL]",0,"cpu-clock",1,2395,"_ZN7android15inputdispatcher15InputDispatcher30findTouchedWindowTargetsLockedElRKNS0_11MotionEntryERNSt3__16vectorINS0_11InputTargetENS5_9allocatorIS7_EEEEPlPb"
+105091020156148,2,"user","[NULL]",0,"cpu-clock",1,2395,"_ZNK7android15inputdispatcher15InputDispatcher29hasResponsiveConnectionLockedERNS_17InputWindowHandleE"
+105091020156148,2,"user","[NULL]",0,"cpu-clock",1,2395,"_ZNK7android7RefBase9incStrongEPKv"
+105091321851304,7,"user","[NULL]",0,"cpu-clock",1,2029,"__start_thread"
+105091321851304,7,"user","[NULL]",0,"cpu-clock",1,2029,"_ZL15__pthread_startPv"
+105091321851304,7,"user","[NULL]",0,"cpu-clock",1,2029,"_ZN3art6Thread14CreateCallbackEPv"
+105091321851304,7,"user","[NULL]",0,"cpu-clock",1,2029,"_ZN3art35InvokeVirtualOrInterfaceWithJValuesIPNS_9ArtMethodEEENS_6JValueERKNS_33ScopedObjectAccessAlreadyRunnableEP8_jobjectT_PK6jvalue"
+105091321851304,7,"user","[NULL]",0,"cpu-clock",1,2029,"_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc"
+105091321851304,7,"user","[NULL]",0,"cpu-clock",1,2029,"art_quick_invoke_stub"
+105091321851304,7,"user","[NULL]",0,"cpu-clock",1,2029,"com.android.server.UiThread.run"
+105091321851304,7,"user","[NULL]",0,"cpu-clock",1,2029,"android.os.HandlerThread.run"
+105091321851304,7,"user","[NULL]",0,"cpu-clock",1,2029,"android.os.Looper.loop"
+105091321851304,7,"user","[NULL]",0,"cpu-clock",1,2029,"android.os.Looper.loopOnce"
+105091321851304,7,"user","[NULL]",0,"cpu-clock",1,2029,"android.os.MessageQueue.next"
+105091321851304,7,"user","[NULL]",0,"cpu-clock",1,2029,"art_jni_trampoline"
+105091321851304,7,"user","[NULL]",0,"cpu-clock",1,2029,"_ZN7androidL38android_os_MessageQueue_nativePollOnceEP7_JNIEnvP8_jobjectli"
+105091321851304,7,"user","[NULL]",0,"cpu-clock",1,2029,"_ZN7android6Looper8pollOnceEiPiS1_PPv"
+105091321851304,7,"user","[NULL]",0,"cpu-clock",1,2029,"_ZN7android6Looper9pollInnerEi"
+105091321851304,7,"user","[NULL]",0,"cpu-clock",1,2029,"_ZN7android24NativeInputEventReceiver11handleEventEiiPv"
+105091321851304,7,"user","[NULL]",0,"cpu-clock",1,2029,"_ZN7android24NativeInputEventReceiver13consumeEventsEP7_JNIEnvblPb"
+105091321851304,7,"user","[NULL]",0,"cpu-clock",1,2029,"_ZN3art3JNIILb0EE9FindClassEP7_JNIEnvPKc"
+105091321851304,7,"user","[NULL]",0,"cpu-clock",1,2029,"_ZN3art11ClassLinker9FindClassEPNS_6ThreadEPKcNS_6HandleINS_6mirror11ClassLoaderEEE"
+105091321851304,7,"user","[NULL]",0,"cpu-clock",1,2029,""
diff --git a/test/trace_processor/startup/android_startup_breakdown.out b/test/trace_processor/startup/android_startup_breakdown.out
index 298773d..cebd9d0 100644
--- a/test/trace_processor/startup/android_startup_breakdown.out
+++ b/test/trace_processor/startup/android_startup_breakdown.out
@@ -53,10 +53,7 @@
     activities {
       name: "com.google.android.calendar.MainActivity"
       method: "performCreate"
-      slice {
-        dur_ns: 4000000000
-        dur_ms: 4000
-      }
+      ts_method_start: 188000000000
     }
     optimization_status {
       odex_status: "up-to-date"
diff --git a/tools/install-build-deps b/tools/install-build-deps
index 0714a44..a37d87b 100755
--- a/tools/install-build-deps
+++ b/tools/install-build-deps
@@ -232,8 +232,8 @@
     # Example traces for regression tests.
     Dependency(
         'test/data.zip',
-        'https://storage.googleapis.com/perfetto/test-data-20210331-182333.zip',
-        'a9b6afb4b33f6aa9dd7ffa0a8c84fb2853c44a10f7f4d918d626f948ef602083',
+        'https://storage.googleapis.com/perfetto/test-data-20210409-215222.zip',
+        'a06fa41e7e334cad89ba0725e0675ee8c4c9dda7b21f327aaaa58ee0ff61687a',
         'all', 'all',
     ),
 
