diff --git a/dumpstate/DumpstateDevice.cpp b/dumpstate/DumpstateDevice.cpp index 16a39ff9..3040f5b3 100755 --- a/dumpstate/DumpstateDevice.cpp +++ b/dumpstate/DumpstateDevice.cpp @@ -264,6 +264,8 @@ Return DumpstateDevice::dumpstateBoard(const hidl_handle& handle) { DumpFileToFd(fd, "ipc-local-ports", "/d/msm_ipc_router/dump_local_ports"); DumpTouch(fd); RunCommandToFd(fd, "USB Device Descriptors", {"/vendor/bin/sh", "-c", "cd /sys/bus/usb/devices/1-1 && cat product && cat bcdDevice; cat descriptors | od -t x1 -w16 -N96"}); + DumpFileToFd(fd, "Pixel trace", "/d/tracing/instances/pixel-trace/trace"); + // Timeout after 3s RunCommandToFd(fd, "QSEE logs", {"/vendor/bin/sh", "-c", "/vendor/bin/timeout 3 cat /d/tzdbg/qsee_log"}); RunCommandToFd(fd, "Power supply properties", {"/vendor/bin/sh", "-c", "for f in /sys/class/power_supply/*/uevent ; do echo \"\n------ $f\" ; cat $f ; done"}); diff --git a/init.hardware.rc b/init.hardware.rc index d622b8fa..5fd6e009 100644 --- a/init.hardware.rc +++ b/init.hardware.rc @@ -858,3 +858,24 @@ on property:sys.retaildemo.enabled=1 setprop persist.vendor.charge.stop.level 35 setprop persist.vendor.charge.start.level 30 +on property:sys.boot_completed=1 + # Create pixel-trace. + # At this moment, only mm_event is available. If others want to put more, + # it should get hard review from pixel-perf-team. + + mkdir /sys/kernel/debug/tracing/instances/pixel-trace 600 + write /sys/kernel/debug/tracing/instances/pixel-trace/buffer_size_kb 64 + write /sys/kernel/debug/tracing/instances/pixel-trace/events/mm_event/enable 1 + +# turns off tracing right before bugreporting to keep more traces +on property:init.svc.dumpstatez=running + write /d/tracing/instances/pixel-trace/tracing_on 0 + +on property:init.svc.dumpstatez=stopped + write /d/tracing/instances/pixel-trace/tracing_on 1 + +on property:init.svc.bugreport=running + write /d/tracing/instances/pixel-trace/tracing_on 0 + +on property:init.svc.bugreport=stopped + write /d/tracing/instances/pixel-trace/tracing_on 1 diff --git a/sepolicy/vendor/hal_dumpstate_impl.te b/sepolicy/vendor/hal_dumpstate_impl.te index 39a89957..5ebd7350 100644 --- a/sepolicy/vendor/hal_dumpstate_impl.te +++ b/sepolicy/vendor/hal_dumpstate_impl.te @@ -8,6 +8,10 @@ init_daemon_domain(hal_dumpstate_impl) allow hal_dumpstate_impl vendor_shell_exec:file rx_file_perms; allow hal_dumpstate_impl vendor_toolbox_exec:file rx_file_perms; +# Allow to read pixel-trace trace file +allow hal_dumpstate_impl debugfs_tracing_instances:dir search; +allow hal_dumpstate_impl debugfs_tracing_instances:file r_file_perms; + userdebug_or_eng(` # smlog_dump domain_auto_trans(hal_dumpstate_impl, smlog_dump_exec, smlog_dump) diff --git a/sepolicy/vendor/vendor_init.te b/sepolicy/vendor/vendor_init.te index 2783eed6..5cd77c98 100644 --- a/sepolicy/vendor/vendor_init.te +++ b/sepolicy/vendor/vendor_init.te @@ -30,3 +30,6 @@ set_prop(vendor_init, vendor_charge_prop) dontaudit vendor_init unlabeled:dir getattr; dontaudit vendor_init unlabeled:file getattr; + +allow vendor_init debugfs_tracing_instances:dir create_dir_perms; +allow vendor_init debugfs_tracing_instances:file w_file_perms;