Merge "Add shmempages to mm_counters + deal with future unknowns"
diff --git a/src/trace_processor/proto_trace_parser.cc b/src/trace_processor/proto_trace_parser.cc
index 260075c..21b5652 100644
--- a/src/trace_processor/proto_trace_parser.cc
+++ b/src/trace_processor/proto_trace_parser.cc
@@ -149,7 +149,9 @@
rss_members_.emplace_back(
context->storage->InternString("rss_stat.mm_swapents"));
rss_members_.emplace_back(
- context->storage->InternString("rss_stat.nr_mm_counters"));
+ context->storage->InternString("rss_stat.mm_shmempages"));
+ rss_members_.emplace_back(
+ context->storage->InternString("rss_stat.unknown")); // Keep this last.
using MemCounters = protos::ProcessStats::MemCounters;
proc_mem_counter_names_[MemCounters::kVmSizeKbFieldNumber] =
@@ -662,7 +664,8 @@
uint32_t pid,
TraceBlobView view) {
ProtoDecoder decoder(view.data(), view.length());
- uint32_t member = 0;
+ const auto kRssStatUnknown = static_cast<uint32_t>(rss_members_.size()) - 1;
+ uint32_t member = kRssStatUnknown;
uint32_t size = 0;
for (auto fld = decoder.ReadField(); fld.id != 0; fld = decoder.ReadField()) {
switch (fld.id) {
@@ -675,8 +678,8 @@
}
}
if (member >= rss_members_.size()) {
- PERFETTO_ELOG("Unknown member field %" PRIu32 " in rss_stat event", member);
- return;
+ // TODO(lalitm): this import error should be exposed in the stats.
+ member = kRssStatUnknown;
}
UniqueTid utid = context_->process_tracker->UpdateThread(timestamp, pid, 0);