f93db4b827
This CL adds a trigger and a service so that Systrace can be used for tracing events during boot. persist.debug.atrace.boottrace property is used for switching on and off tracing during boot. /data/misc/boottrace/categories file is used for specifying the categories to be traced. These property and file are rewritten by Systrace when the newly added option --boot is specified. Here is an example of tracing events of am and wm catetories during boot. $ external/chromium-trace/systrace am wm --boot This command will cause the device to reboot. Once the device has booted up, the trace report is created by hitting Ctrl+C. As written in readme.txt, this mechanism relies on persistent property, so tracing events that are emitted before that are not recorded. This is enough for tracing events after zygote is launched though. This only works on userdebug or eng build for security reason. BUG: 21739901 Change-Id: I03f2963d77a678f47eab5e3e29fc7e91bc9ca3a4
43 lines
2.1 KiB
Text
43 lines
2.1 KiB
Text
## Permissions to allow system-wide tracing to the kernel trace buffer.
|
|
##
|
|
on boot
|
|
|
|
# Allow writing to the kernel trace log.
|
|
chmod 0222 /sys/kernel/debug/tracing/trace_marker
|
|
|
|
# Allow the shell group to enable (some) kernel tracing.
|
|
chown root shell /sys/kernel/debug/tracing/trace_clock
|
|
chown root shell /sys/kernel/debug/tracing/buffer_size_kb
|
|
chown root shell /sys/kernel/debug/tracing/options/overwrite
|
|
chown root shell /sys/kernel/debug/tracing/options/print-tgid
|
|
chown root shell /sys/kernel/debug/tracing/events/sched/sched_switch/enable
|
|
chown root shell /sys/kernel/debug/tracing/events/sched/sched_wakeup/enable
|
|
chown root shell /sys/kernel/debug/tracing/events/power/cpu_frequency/enable
|
|
chown root shell /sys/kernel/debug/tracing/events/power/cpu_idle/enable
|
|
chown root shell /sys/kernel/debug/tracing/events/power/clock_set_rate/enable
|
|
chown root shell /sys/kernel/debug/tracing/events/cpufreq_interactive/enable
|
|
chown root shell /sys/kernel/debug/tracing/tracing_on
|
|
|
|
chmod 0664 /sys/kernel/debug/tracing/trace_clock
|
|
chmod 0664 /sys/kernel/debug/tracing/buffer_size_kb
|
|
chmod 0664 /sys/kernel/debug/tracing/options/overwrite
|
|
chmod 0664 /sys/kernel/debug/tracing/options/print-tgid
|
|
chmod 0664 /sys/kernel/debug/tracing/events/sched/sched_switch/enable
|
|
chmod 0664 /sys/kernel/debug/tracing/events/sched/sched_wakeup/enable
|
|
chmod 0664 /sys/kernel/debug/tracing/events/power/cpu_frequency/enable
|
|
chmod 0664 /sys/kernel/debug/tracing/events/power/cpu_idle/enable
|
|
chmod 0664 /sys/kernel/debug/tracing/events/power/clock_set_rate/enable
|
|
chmod 0664 /sys/kernel/debug/tracing/events/cpufreq_interactive/enable
|
|
chmod 0664 /sys/kernel/debug/tracing/tracing_on
|
|
|
|
# Allow only the shell group to read and truncate the kernel trace.
|
|
chown root shell /sys/kernel/debug/tracing/trace
|
|
chmod 0660 /sys/kernel/debug/tracing/trace
|
|
|
|
on property:persist.debug.atrace.boottrace=1
|
|
start boottrace
|
|
|
|
# Run atrace with the categories written in a file
|
|
service boottrace /system/bin/atrace --async_start -f /data/misc/boottrace/categories
|
|
disabled
|
|
oneshot
|