/system/sepolicy/prebuilts/api/33.0/private/ |
D | simpleperf.te | 1 # Domain used when running /system/bin/simpleperf to profile a specific app. 5 typeattribute simpleperf coredomain; 8 # Define apps that can be marked debuggable/profileable and be profiled by simpleperf. 17 domain_auto_trans({ simpleperf_profileable_apps -runas_app }, simpleperf_exec, simpleperf) 19 # When running in this domain, simpleperf is scoped to profiling an individual 21 # consistent if simpleperf is marked as an app domain as well (as, for example, 23 app_domain(simpleperf) 24 untrusted_app_domain(simpleperf) 28 allow simpleperf simpleperf_profileable_apps:process ptrace; 31 allow simpleperf self:perf_event { open read write kernel }; [all …]
|
D | runas_app.te | 9 # when using run-as on a debuggable app. Used to run lldb/ndk-gdb/simpleperf, 13 # Allow lldb/ndk-gdb/simpleperf to read maps of debuggable app processes. 16 # Allow lldb/ndk-gdb/simpleperf to ptrace attach to debuggable app processes. 20 # Allow executing system image simpleperf without a domain transition. 23 # Suppress denial logspam when simpleperf is trying to find a matching process
|
/system/sepolicy/private/ |
D | simpleperf.te | 1 # Domain used when running /system/bin/simpleperf to profile a specific app. 5 typeattribute simpleperf coredomain; 8 # Define apps that can be marked debuggable/profileable and be profiled by simpleperf. 17 domain_auto_trans({ simpleperf_profileable_apps -runas_app }, simpleperf_exec, simpleperf) 19 # When running in this domain, simpleperf is scoped to profiling an individual 21 # consistent if simpleperf is marked as an app domain as well (as, for example, 23 app_domain(simpleperf) 24 untrusted_app_domain(simpleperf) 28 allow simpleperf simpleperf_profileable_apps:process ptrace; 31 allow simpleperf self:perf_event { open read write kernel }; [all …]
|
D | runas_app.te | 9 # when using run-as on a debuggable app. Used to run lldb/ndk-gdb/simpleperf, 13 # Allow lldb/ndk-gdb/simpleperf to read maps of debuggable app processes. 16 # Allow lldb/ndk-gdb/simpleperf to ptrace attach to debuggable app processes. 20 # Allow executing system image simpleperf without a domain transition. 23 # Suppress denial logspam when simpleperf is trying to find a matching process
|
/system/sepolicy/prebuilts/api/32.0/private/ |
D | simpleperf.te | 1 # Domain used when running /system/bin/simpleperf to profile a specific app. 5 typeattribute simpleperf coredomain; 8 domain_auto_trans({ untrusted_app_all -runas_app }, simpleperf_exec, simpleperf) 10 # When running in this domain, simpleperf is scoped to profiling an individual 12 # consistent if simpleperf is marked as an app domain as well (as, for example, 14 app_domain(simpleperf) 15 untrusted_app_domain(simpleperf) 19 allow simpleperf untrusted_app_all:process ptrace; 22 allow simpleperf self:perf_event { open read write kernel }; 26 r_dir_file(simpleperf, untrusted_app_all) [all …]
|
D | runas_app.te | 9 # when using run-as on a debuggable app. Used to run lldb/ndk-gdb/simpleperf, 13 # Allow lldb/ndk-gdb/simpleperf to read maps of debuggable app processes. 16 # Allow lldb/ndk-gdb/simpleperf to ptrace attach to debuggable app processes. 20 # Allow executing system image simpleperf without a domain transition. 23 # Suppress denial logspam when simpleperf is trying to find a matching process
|
/system/sepolicy/prebuilts/api/31.0/private/ |
D | simpleperf.te | 1 # Domain used when running /system/bin/simpleperf to profile a specific app. 5 typeattribute simpleperf coredomain; 8 domain_auto_trans({ untrusted_app_all -runas_app }, simpleperf_exec, simpleperf) 10 # When running in this domain, simpleperf is scoped to profiling an individual 12 # consistent if simpleperf is marked as an app domain as well (as, for example, 14 app_domain(simpleperf) 15 untrusted_app_domain(simpleperf) 19 allow simpleperf untrusted_app_all:process ptrace; 22 allow simpleperf self:perf_event { open read write kernel }; 26 r_dir_file(simpleperf, untrusted_app_all) [all …]
|
D | runas_app.te | 9 # when using run-as on a debuggable app. Used to run lldb/ndk-gdb/simpleperf, 13 # Allow lldb/ndk-gdb/simpleperf to read maps of debuggable app processes. 16 # Allow lldb/ndk-gdb/simpleperf to ptrace attach to debuggable app processes. 20 # Allow executing system image simpleperf without a domain transition. 23 # Suppress denial logspam when simpleperf is trying to find a matching process
|
/system/sepolicy/prebuilts/api/30.0/private/ |
D | simpleperf.te | 1 # Domain used when running /system/bin/simpleperf to profile a specific app. 5 typeattribute simpleperf coredomain; 8 domain_auto_trans({ untrusted_app_all -runas_app }, simpleperf_exec, simpleperf) 10 # When running in this domain, simpleperf is scoped to profiling an individual 12 # consistent if simpleperf is marked as an app domain as well (as, for example, 14 app_domain(simpleperf) 15 untrusted_app_domain(simpleperf) 19 allow simpleperf untrusted_app_all:process ptrace; 22 allow simpleperf self:perf_event { open read write kernel }; 26 r_dir_file(simpleperf, untrusted_app_all) [all …]
|
D | runas_app.te | 9 # when using run-as on a debuggable app. Used to run lldb/ndk-gdb/simpleperf, 13 # Allow lldb/ndk-gdb/simpleperf to read maps of debuggable app processes. 16 # Allow lldb/ndk-gdb/simpleperf to ptrace attach to debuggable app processes. 20 # Allow executing system image simpleperf without a domain transition. 23 # Suppress denial logspam when simpleperf is trying to find a matching process
|
/system/extras/simpleperf/doc/ |
D | executable_commands_reference.md | 5 ## How simpleperf works 13 exposes all events to userspace via the perf_event_open system call, which is used by simpleperf. 19 1. Given user options, simpleperf enables profiling by making a system call to the kernel. 21 3. After profiling, simpleperf reads counters from the kernel, and reports a counter summary. 24 1. Given user options, simpleperf enables profiling by making a system call to the kernel. 25 2. Simpleperf creates mapped buffers between simpleperf and the kernel. 39 The debug-unwind command: debug/test dwarf based offline unwinding, used for debugging simpleperf. 40 The dump command: dumps content in perf.data, used for debugging simpleperf. 47 simpleperf in Android Studio. 56 $ simpleperf --help [all …]
|
D | android_platform_profiling.md | 9 1. After running `adb root`, simpleperf can be used to profile any process or system wide. 10 2. It is recommended to use the latest simpleperf available in AOSP main, if you are not working 11 on the current main branch. Scripts are in `system/extras/simpleperf/scripts`, binaries are in 12 `system/extras/simpleperf/scripts/bin/android`. 30 # Doing recording with app_profiler.py or simpleperf on device, and generates perf.data on host. 42 ## Start simpleperf from system_server process 45 we can add code starting simpleperf at the point where the situation is detected. 47 1. Disable selinux by `adb shell setenforce 0`. Because selinux only allows simpleperf running 58 Runtime.getRuntime().exec("/system/bin/simpleperf record -g -p " + String.valueOf(Process.myPid()) 61 Slog.e(TAG, "error while running simpleperf"); [all …]
|
D | debug_dwarf_unwinding.md | 3 Dwarf unwinding is the default way of getting call graphs in simpleperf. In this process, 4 simpleperf asks the kernel to add stack and register data to each sample. Then it uses 9 By default, `simpleperf record` unwinds a sample before saving it to disk, to reduce space consumed 19 and be able to reproduce them. simpleperf record cmd has two options for this: 30 simpleperf I cmd_record.cpp:762] Samples recorded: 22026. Samples lost: 0. 33 $ simpleperf debug-unwind --generate-report -o report.txt 44 $ simpleperf debug-unwind --unwind-sample --sample-time 256666343213301 47 $ simpleperf debug-unwind --generate-test-file --sample-time 256666343213301 --keep-binaries-in-tes… 58 $ simpleperf record --app com.example.android.displayingbitmaps -g --duration 10 \ 61 simpleperf I cmd_record.cpp:762] Samples recorded: 9923. Samples lost: 0. [all …]
|
D | README.md | 5 profile both Java and C++ code on Android. The simpleperf executable can run on Android >=L, 9 …ource code is [here](https://android.googlesource.com/platform/system/extras/+/master/simpleperf/). 10 … [here](https://android.googlesource.com/platform/system/extras/+/master/simpleperf/doc/README.md). 18 Simpleperf contains two parts: the simpleperf executable and Python scripts. 20 The simpleperf executable works similar to linux-tools-perf, but has some specific features for 24 report on the host", simpleperf not only collects samples in profiling data, but also collects 28 1) When recording dwarf based call graph, simpleperf unwinds the stack before writing a sample 44 simpleperf executables can be pushed on any Android device and used to record profiling data. 50 Detailed documentation for the simpleperf executable is [here](#executable-commands-reference). 63 ## Tools in simpleperf [all …]
|
/system/extras/simpleperf/ |
D | Android.bp | 307 // simpleperf shipped in system image 309 name: "simpleperf", 325 init_rc: ["simpleperf.rc"], 366 // simpleperf released in ndk 373 targets: ["simpleperf"], 395 dir: "simpleperf/android/arm", 400 dir: "simpleperf/android/arm64", 405 dir: "simpleperf/android/x86", 410 dir: "simpleperf/android/x86_64", 415 dir: "simpleperf/darwin/x86", [all …]
|
D | test_util.cpp | 54 const simpleperf::EventType* type = simpleperf::FindEventTypeByName("instructions", false); in HasNonZeroInstructionEventCount() 87 const simpleperf::EventType* type = simpleperf::FindEventTypeByName("cpu-cycles", false); in HasHardwareCounter() 111 auto callback = [&](const simpleperf::EventType& event_type) { in HasPmuCounter() 118 simpleperf::EventTypeManager::Instance().ForEachType(callback); in HasPmuCounter()
|
D | simpleperf.rc | 2 on zygote-start && property:ro.debuggable=1 && property:persist.simpleperf.boot_record=* 3 …exec_background /system/bin/simpleperf boot-record --log-to-android-buffer --record "${persist.sim…
|
D | Android.mk | 34 $(hide) $(SOONG_ZIP) -d -o $@ -C system/extras/simpleperf $(SIMPLEPERF_SCRIPT_LIST) 38 $(call dist-for-goals,simpleperf,$(SIMPLEPERF_SCRIPT_PATH):simpleperf/simpleperf_script.zip)
|
/system/sepolicy/prebuilts/api/28.0/public/ |
D | perfprofd.te | 19 # perfprofd checks for the existence of and then invokes simpleperf; 20 # simpleperf retains perfprofd domain after exec 45 # simpleperf reads kernel notes. 53 # simpleperf writes to perf_event_paranoid under /proc. 59 # simpleperf uses ioctl() to turn on kernel perf events measurements 62 # simpleperf needs to examine /proc to collect task/thread info 65 # simpleperf needs to access /proc/<pid>/exec 69 # simpleperf needs open/read any file that turns up in a profile 80 # simpleperf will set security.perf_harden to enable access to perf_event_open() 83 # simpleperf examines debugfs on startup to collect tracepoint event types [all …]
|
/system/sepolicy/prebuilts/api/29.0/public/ |
D | perfprofd.te | 19 # perfprofd checks for the existence of and then invokes simpleperf; 20 # simpleperf retains perfprofd domain after exec 45 # simpleperf reads kernel notes. 53 # simpleperf writes to perf_event_paranoid under /proc. 59 # simpleperf uses ioctl() to turn on kernel perf events measurements 62 # simpleperf needs to examine /proc to collect task/thread info 65 # simpleperf needs to access /proc/<pid>/exec 69 # simpleperf needs open/read any file that turns up in a profile 82 # simpleperf will set security.perf_harden to enable access to perf_event_open() 85 # simpleperf examines debugfs on startup to collect tracepoint event types [all …]
|
/system/extras/simpleperf/testdata/ |
D | perf_with_jit_symbol.foldedstack_with_pid | 2 BusyThread-7601;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.d… 3 BusyThread-7601;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.d… 4 BusyThread-7601;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.d… 5 BusyThread-7601;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.d… 6 BusyThread-7601;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.d… 7 BusyThread-7601;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.d… 8 BusyThread-7601;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.d… 9 BusyThread-7601;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.d… 10 BusyThread-7601;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.d…
|
D | perf_with_jit_symbol.foldedstack | 2 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 3 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 4 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 5 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 6 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 7 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 8 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 9 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 10 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg…
|
D | perf_with_jit_symbol.foldedstack_with_tid | 2 …__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debuggable.MainA… 3 …__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debuggable.MainA… 4 …__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debuggable.MainA… 5 …__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debuggable.MainA… 6 …__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debuggable.MainA… 7 …__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debuggable.MainA… 8 …__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debuggable.MainA… 9 …__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debuggable.MainA… 10 …__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debuggable.MainA…
|
D | perf_with_jit_symbol.foldedstack_with_kernel | 2 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 3 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 4 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 5 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 6 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 7 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 8 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 9 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 10 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg…
|
D | perf_with_jit_symbol.foldedstack_addrs | 2 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 3 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 4 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 5 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 6 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 7 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 8 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 9 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg… 10 BusyThread;__start_thread;__pthread_start(void*);java.lang.Thread.run;com.android.simpleperf.debugg…
|