summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Galo <carlosgalo@google.com>2023-09-20 20:12:54 +0000
committerCarlos Galo <carlosgalo@google.com>2024-03-05 16:20:56 -0800
commit2f2b36091603fe7e822cf64dc8f619480a9f9c02 (patch)
tree89690cc970f6d6eb0b48af941598e378d039168f
parentba7e112894767567e99e444a7b10c3d5d17ccb80 (diff)
downloadproto_logging-2f2b36091603fe7e822cf64dc8f619480a9f9c02.tar.gz
oom: report out-of-memory kills to statsd
Test: statsd_testdrive 754 Bug: 301548034 Bug: 244232958 Change-Id: I9e39024815bf467ea98f8c304dadf9af39211dcf Signed-off-by: Carlos Galo <carlosgalo@google.com> Merged-In: I9e39024815bf467ea98f8c304dadf9af39211dcf
-rw-r--r--stats/atoms.proto1
-rw-r--r--stats/atoms/kernel/kernel_extension_atoms.proto52
2 files changed, 53 insertions, 0 deletions
diff --git a/stats/atoms.proto b/stats/atoms.proto
index ba303bd4..3e15acb6 100644
--- a/stats/atoms.proto
+++ b/stats/atoms.proto
@@ -1061,6 +1061,7 @@ message Atom {
extensions 739; // ThreadnetworkTopoEntryRepeated threadnetwork_topo_entry_repeated
extensions 740; // ThreadnetworkDeviceInfoReported threadnetwork_device_info_reported
extensions 752; // StatsSocketLossReported stats_socket_loss_reported
+ extensions 754; // KernelOomKillOccurred kernel_oom_kill_occurred
extensions 760; // IkeLivenessCheckSessionValidated ike_liveness_check_session_validated
extensions 762; // CronetEngineBuilderInitialized cronet_engine_builder_initialized
extensions 763; // CronetHttpFlagsInitialized cronet_http_flags_initialized
diff --git a/stats/atoms/kernel/kernel_extension_atoms.proto b/stats/atoms/kernel/kernel_extension_atoms.proto
new file mode 100644
index 00000000..6383df02
--- /dev/null
+++ b/stats/atoms/kernel/kernel_extension_atoms.proto
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2023 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.
+ */
+
+syntax = "proto2";
+
+package android.os.statsd.kernel;
+
+import "frameworks/proto_logging/stats/atoms.proto";
+import "frameworks/proto_logging/stats/atom_field_options.proto";
+
+option java_package = "com.android.os.kernel";
+option java_multiple_files = true;
+
+extend Atom {
+ optional KernelOomKillOccurred kernel_oom_kill_occurred = 754
+ [(module) = "frameworks"];
+}
+
+/**
+ * Logs each time the kernel's out-of-memory (OOM) killer claims a victim.
+ * Logged from:
+ * frameworks/base/services/core/java/com/android/server/am/OomStatsReporter.java
+ */
+message KernelOomKillOccurred {
+ // The uid if available. -1 means not available.
+ optional int32 uid = 1 [(is_uid) = true];
+
+ // The pid if available. -1 means not available.
+ optional int32 pid = 2;
+
+ // Recorded oom score when getting killed.
+ optional int32 oom_score_adj = 3;
+
+ // Millisecond timestamp of when the kill was detected by the memhealth driver.
+ optional int64 timestamp_millis = 4;
+
+ // Name of the killed process.
+ optional string process_name = 5;
+}