summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKalesh Singh <kaleshsingh@google.com>2021-07-27 15:17:29 +0000
committerKalesh Singh <kaleshsingh@google.com>2021-07-28 13:45:15 +0000
commitb9ba8cf2eb8519ede72176d1541599d194f1dfd1 (patch)
treec3210c5dcaad605fc2cecd58900eaca379e3a45d
parent2c7d7d9680fcd7d12c7a6bea4537c858bfd2ea1a (diff)
downloadnative-b9ba8cf2eb8519ede72176d1541599d194f1dfd1.tar.gz
mm_events: Add knob to remove mm_event tracing instance
Only create mm_event tracing instance if persist.mm_events.enabled=true. This saves ~5.5MB on low memory devices that don't enable mm_events. The memory saved is slab memory that would be allocated for the ftrace instance's inode/dentry objects. Set the per-CPU trace buffer sizes to 1KB by default to minimize trace buffer memory usage if perfetto isn't started. Also disable tracing by default, traced_probes will enable as needed. Bug: 194156702 Test: boot; ls /sys/kernel/tracing/instances -> No mm_events Test: setprop persist.mm_events.enabled true; boot; ls /sys/kernel/tracing/instances -> mm_events Change-Id: I89d7e5e1cd0d32b5612bc419b1a1c4b8c3c8ade6
-rw-r--r--cmds/atrace/atrace.rc13
1 files changed, 12 insertions, 1 deletions
diff --git a/cmds/atrace/atrace.rc b/cmds/atrace/atrace.rc
index 37fc9a9356..e3c4edebbd 100644
--- a/cmds/atrace/atrace.rc
+++ b/cmds/atrace/atrace.rc
@@ -266,7 +266,10 @@ on late-init
chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu15/trace
chmod 0666 /sys/kernel/tracing/per_cpu/cpu15/trace
-on post-fs-data
+# Only create the tracing instance if persist.mm_events.enabled
+# Attempting to remove the tracing instance after it has been created
+# will likely fail with EBUSY as it would be in use by traced_probes.
+on post-fs-data && property:persist.mm_events.enabled=true
# Create MM Events Tracing Instance for Kmem Activity Trigger
mkdir /sys/kernel/debug/tracing/instances/mm_events 0755 system system
mkdir /sys/kernel/tracing/instances/mm_events 0755 system system
@@ -275,10 +278,18 @@ on post-fs-data
chmod 0666 /sys/kernel/debug/tracing/instances/mm_events/buffer_size_kb
chmod 0666 /sys/kernel/tracing/instances/mm_events/buffer_size_kb
+# Set the default buffer size to the minimum
+ write /sys/kernel/debug/tracing/instances/mm_events/buffer_size_kb 1
+ write /sys/kernel/tracing/instances/mm_events/buffer_size_kb 1
+
# Read and enable tracing
chmod 0666 /sys/kernel/debug/tracing/instances/mm_events/tracing_on
chmod 0666 /sys/kernel/tracing/instances/mm_events/tracing_on
+# Tracing disabled by default
+ write /sys/kernel/debug/tracing/instances/mm_events/tracing_on 0
+ write /sys/kernel/tracing/instances/mm_events/tracing_on 0
+
# Read and truncate kernel trace
chmod 0666 /sys/kernel/debug/tracing/instances/mm_events/trace
chmod 0666 /sys/kernel/tracing/instances/mm_events/trace