b9214820bb9348e54fcb5013ae7ca8cc1c793141 |
|
01-Nov-2017 |
Yabin Cui <yabinc@google.com> |
simpleperf: avoid warning for default freq. When max_freq = 1800, and run `simpleperf record -e cpu-cycles -f 1000`, it prints warning for default freq: Sample frequency 4000 is out of range [1, 1800], adjust it to 1800 This patch removes the unproper warning. Also remove AdjustSampleFrequency() because the freq will be adjusted in event_fd.cpp. Bug: http://b/29574526 Test: run `simpleperf record -e cpu-cycles -f 1000`. Test: run simpleperf_unit_test. Change-Id: Ieed106fb539b7deb9fee3208f00228c6e0520acb
/system/extras/simpleperf/event_selection_set.cpp
|
f0047d7dfc6471ed9cb9273c5d98e45dd358ef62 |
|
06-Oct-2017 |
Yabin Cui <yabinc@google.com> |
simpleperf: fix --group option. Bug: None. Test: simpleperf_unit_test. Change-Id: I970e52481e63757a37ef3aa51a724d3dba7de6f2
/system/extras/simpleperf/event_selection_set.cpp
|
6d4959c21b0fe3fb4b4ca1758d2a595a43965ee5 |
|
02-Sep-2017 |
Yabin Cui <yabinc@google.com> |
simpleperf: support --clockid option in record cmd. Setting clockid is supported in kernel 4.x. Whether it is supported by the kernel can be checked via `simpleperf list --show-features`. Bug: http://b/65214671 Test: run simpleperf_unit_test. Change-Id: I6f312cc62893af0fa5092ed91434b6df46435d7f
/system/extras/simpleperf/event_selection_set.cpp
|
b3ae56e485b4d971a909a8b04da65713a3d56872 |
|
25-Aug-2017 |
Yabin Cui <yabinc@google.com> |
simpleperf: fix check of opening perf event files. When asked to monitor a process, record/stat cmd checks if we can open perf event files for all threads successfully. However, it fails when the monitored process has an exiting thread. This makes record_cmd.duration_option test flakey, when there are exiting threads in other tests, like record_cmd.handle_SIGHUP. To fix this, only check if we can open perf event files for at least one thread for each monitored process. Bug: http://b/65047463 Test: run CtsSimpleperfTestCases. Change-Id: Ia02ed498f49c9c6c452023ad31abb01a58071152
/system/extras/simpleperf/event_selection_set.cpp
|
d8aa2eda659d69c5701281df9c767902a215d7e5 |
|
09-Aug-2017 |
Yabin Cui <yabinc@google.com> |
simpleperf: fix stat cmd. Previous CL wrongly makes kernel dump samples for stat cmd. Bug: http://b/64489160 Test: run simpleperf_unit_test. Change-Id: I4f5c08839e283b2361e47d61310e5161433824bb
/system/extras/simpleperf/event_selection_set.cpp
|
f9ed7b5507b4355021acc22adc14451e2e2d63ef |
|
08-Aug-2017 |
Yabin Cui <yabinc@google.com> |
Merge "simpleperf: allow recording events in different speed."
|
20b49f8991b55eda3309a0bbe3c18153376065da |
|
04-Aug-2017 |
Yabin Cui <yabinc@google.com> |
simpleperf: allow recording events in different speed. Currently record command interface only allows one sample freq or sample period for all events. This is not convenient when recording both non tracepoint events and tracepoint events. This CL allows setting different sample speed for different events. For example, for "-f 1000 -e cpu-cycles -c 1 sched:sched_switch", "-f 1000" applies to cpu-cycles, and "-c 1" applies to sched:sched_switch. It also fixes a bug about trace-offcpu: if "-f 1000 --trace-offcpu" is used, the sched:sched_switch is be samples with "-f 1000". But we want to sample it with "-c 1". Also change the order of options in the help msg of record cmd to make it more readable. Remove -F option. Because adding it seems not useful. Bug: http://b/37572306 Test: run simpleperf_unit_test. Change-Id: Ifdbd27c8f9fec49aade0e0e6ce624d8114042020
/system/extras/simpleperf/event_selection_set.cpp
|
20663f5fece4082531567d5268130186e40e7f9a |
|
01-Aug-2017 |
Yabin Cui <yabinc@google.com> |
simpleperf: export meta info in report_sample.proto. To support perf.data generated with --trace-offcpu option, update interface in report_sample.proto: 1. Add meta info to show all event types. 2. Add event_type_id in each sample to show which even type it belongs to. Bug: http://b/37572306 Test: run simpleperf_unit_test. Change-Id: I2878979ec2023904df1006ce353dcf233b6a2642
/system/extras/simpleperf/event_selection_set.cpp
|
d3cb3b0c50211ad68459d526fcc32eb11b8f26a5 |
|
24-Jul-2017 |
Yabin Cui <yabinc@google.com> |
simpleperf: exclude kernel callchains when needed. Exclude kernel callchains when users only monitor events in user space. After this change, when users use `record -e cpu-cycles:u --trace-offcpu`, the samples of the implicitly added sched:sched_switch event won't contain any kernel callchain. Bug: http://b/37572306 Test: run simpleperf_unit_test. Change-Id: Iffcb61bac796e734825e68f847f24b4006b44360
/system/extras/simpleperf/event_selection_set.cpp
|
68b8383d76a7a18bdaee13949cc66ca012cc3dee |
|
20-Jul-2017 |
Yabin Cui <yabinc@google.com> |
simpleperf: support tracing offcpu time. 1. Add --trace-offcpu option in record command, to record the callstack when a thread is scheduled off cpu. 2. Change the report command to report time spent not running on cpu when --trace-offcpu option is used for recording. 3. Add related unittests and runtests. Bug: http://b/37572306 Test: run simpleperf_unit_test. Change-Id: Ia50cc39c8dde0c8fb1b1facbcb26bbd0a7ab1351
/system/extras/simpleperf/event_selection_set.cpp
|
b6b433224c144c46a08e5b118df3ce6501571aec |
|
04-May-2017 |
Yabin Cui <yabinc@google.com> |
simpleperf: fix tracing counters. Previously prev_counter is an uninitialized value, which makes the tracing result not correct. Test: run simpleperf/systrace.py to profile an app. Change-Id: I440771f705e22dec7a2948cb2f1164c17d41259a
/system/extras/simpleperf/event_selection_set.cpp
|
b92bae84b27889b548214bee8d0730ef10da0c6d |
|
10-Feb-2017 |
Yabin Cui <yabinc@google.com> |
simpleperf: build libsimpleperf_inplace_sampler library. libsimpleperf_inplace_sampler.so is a library linked with user's app. It opens a unix socket server and waits for simpleperf's profiling request. This patch doesn't contain code generating real samples, instead it uses a fake sample for testing. Add runtest for 32bit. Increase runtest duration to 2 seconds and adjust some args in runtest.conf to make test result stable. Fix one tiny error in cmd_report.cpp to report correctly in `report --sort comm,symbol`. Bug: http://b/30974760 Test: run simpleperf_unit_test. Test: run runtest.py. Change-Id: I58163fe47f62e6ba7dd684b33a2ce302feb880f5
/system/extras/simpleperf/event_selection_set.cpp
|
b16a51ac5e3e7e581bcd79cb7ec91cdb62b45a2b |
|
10-Feb-2017 |
Yabin Cui <yabinc@google.com> |
simpleperf: fix an error in checking monitored targets. Bug: http://b/30974760 Test: run simpleperf_unit_test. Change-Id: Ib3b5772468f0d67f54859d7dff15f66b567fac95
/system/extras/simpleperf/event_selection_set.cpp
|
26968e6c48dea2eaa217991ade5a04e801f1be8f |
|
30-Jan-2017 |
Yabin Cui <yabinc@google.com> |
simpleperf: add inplace-sampler event type. Add inplace-sampler event type, so it can be used in record/list command. This cl doesn't add code for communicating with profiled process, and fake records in InplaceSamplerClient.cpp for testing purpose. Refactor runtest.py to test inplace-sampler profiling. Bug: http://b/30974760 Test: run runtest.py --inplace-sampler. Change-Id: I92d8b03583c58b3589207f5c655e03853899be3a
/system/extras/simpleperf/event_selection_set.cpp
|
5f43fc4ac870b49542b4cf530a3729f9f1e0e9ab |
|
13-Dec-2016 |
Yabin Cui <yabinc@google.com> |
simpleperf: check monitored targets regularly. When monitoring some threads/processes not forked by simpleperf, check if these threads/processes exist regularly. So we can stop profiling once all threads/processes exit. Also handle SIGHUP signal, so we can finish profiling properly when `adb shell simpleperf record xxx` is killed by Ctrl-C. Add corresponding tests. Bug: http://b/33558210 Test: run simpleperf_unit_test. Change-Id: Ieae4d00d099dc1c7a0c51b0610dff43981bb642e
/system/extras/simpleperf/event_selection_set.cpp
|
417df291499b37f63fa9b930e081d80a25bf38ec |
|
16-Nov-2016 |
Yabin Cui <yabinc@google.com> |
simpleperf: fix dumping arm regs on arm64 devices. On arm64 devices, the kernel dumps arm64 regs even for 32-bit processes. So we need to map from arm64 registers to arm registers. Bug: http://b/30974693 Test: run simpleperf manually on one app. Change-Id: Iffeac9510b418b5dabc0604c16523887d63bba49
/system/extras/simpleperf/event_selection_set.cpp
|
265f6a04691b7b820d717b4e40fe6b7f35585f1d |
|
29-Oct-2016 |
Yabin Cui <yabinc@google.com> |
simpleperf: remove external sort. Also remove set low mark for dwarf callgraph recording. Bug: http://b/32343227 Test: run simpleperf runtest.py. Test: run simpleperf_unit_test. Change-Id: I57c0146b0a52cc1bb940a54f685058fe00677992
/system/extras/simpleperf/event_selection_set.cpp
|
2ea6de11962fea5613f15308b202fb505e57ae9b |
|
25-Oct-2016 |
Yabin Cui <yabinc@google.com> |
simpleperf: merge records from different buffers in memory. By reading records from all buffers at once, we can merge records in memory instead of sorting them in perf.data. To make it clear, this patch only contains the code to merge records in memory, and I will remove old method later. Bug: http://b/32343227 Test: run simpleperf_unit_test. Test: run simpleperf_runtest.py. Change-Id: Iea2da06c072243c2014f43c8aa6d96a23cfb9123
/system/extras/simpleperf/event_selection_set.cpp
|
003b245939bae5e86ed53b3c6b333637dbc571b4 |
|
30-Sep-2016 |
Yabin Cui <yabinc@google.com> |
Simpleperf: don't expose EventSelection. And some tiny improvements. Bug: http://b/30974760 Test: run simpleperf_unit_test. Change-Id: Ie2d46c8ab9ee763d107527c9a54590f845569da4
/system/extras/simpleperf/event_selection_set.cpp
|
bc2a1022e1ea0a8c17691594d39fa53021de9166 |
|
29-Aug-2016 |
Yabin Cui <yabinc@google.com> |
simpleperf: handle monitored processes correctly when a cpu is up. For stat/record cmd, the way to handle -p option is to change the process list into a thread list before profiling. However, it doesn't work well if we want to open new event files when a cpu is up. The situation in problem is as below: 1. Monitor for process A, which currently has thread a. 2. Then we open event files for thread a. 3. Process A creates thread b. If profiling child threads/processes is enabled, the kernel will monitor thread b automatically. 4. A new cpu is up, and we need to open new event files on that cpu. But we will only open event file for thread a, although the user command is to monitor the whole process. To fix this, remember which processes are monitored in EventSelectionSet, and search threads in the monitored processes each time to open new event files. Bug: http://b/29245608 Test: run simpleperf record cmd and make cpu offline and online. Test: run simpleperf_unit_test. Change-Id: Iabf9e30be9f0bc5a3651227e4695034c0b9e0258
/system/extras/simpleperf/event_selection_set.cpp
|
825e56be3a1c5310969aaa3e10a7cd1f63455189 |
|
27-Aug-2016 |
Yabin Cui <yabinc@google.com> |
simpleperf: support hotplug events in record cmd. 1. When a cpu is down, read records from event files on that cpu, then close those event files. 2. When a cpu is up, open event files on that cpu, and create mapped buffer for those event files to dump records. 3. Instead of creating a mapped buffer for each event type on each cpu, we can just create a mapped buffer for all event types on each cpu. 4. When new event files are created, store a EventIdRecord record in perf.data to notify record_file_reader.cpp. Bug: http://b/29245608 Test: run simpleperf record cmd and make cpu offline and online. Test: run simpleperf_unit_test. Change-Id: Ib97a24b6292fa143e9b35cb105bdddf1e826d60a
/system/extras/simpleperf/event_selection_set.cpp
|
778424b18ee1d9b9e789eb3de2dfc532fa499a55 |
|
25-Aug-2016 |
Yabin Cui <yabinc@google.com> |
simpleperf: support hotplug events in stat cmd. 1. When a cpu is down, read counters from event files on that cpu, then close those events files. 2. When a cpu is up, open event files on that cpu. 3. Remove check of time_running != 0 in cmd_stat.cpp, because 1) We no longer need the check as we no longer open event file for each cpu for non system wide profiling. 2) The kernel has a bug that can make time_running == 0 if a cpu is down while profiling. But the counter value is still valid, and shouldn't be ignored. Bug: http://b/29245608 Test: run simpleperf and make cpu offline and online. Change-Id: I3e7bec139c5f50bea1311c95bb154a5b290a72ea
/system/extras/simpleperf/event_selection_set.cpp
|
4cf37d1583a605785b7677c1935ce316c2097fa2 |
|
20-Aug-2016 |
Yabin Cui <yabinc@google.com> |
simpleperf: notify user for unsupported modifiers. If there is no need to record samples, u/k modifiers used in event cpu-clock and task-clock are ignored by the kernel. Bug: http://b/29574526 Change-Id: Id45568448888965a3bfa382c4420e395a741f77a Test: simpleperf_unit_test.
/system/extras/simpleperf/event_selection_set.cpp
|
994cb626a9b0ad6cb723a9dfa7c5e05849647c87 |
|
20-Aug-2016 |
Yabin Cui <yabinc@google.com> |
simpleperf: monitor cpu hotplug in stat cmd. Move code used to monitor cpu hotplug events from cmd_record.cpp to event_selection_set.cpp, so it can also be used by stat cmd. Bug: http://b/29245608 Change-Id: I1f5f3268192aa5c98c0be9fc1de763352c08eab6 Test: run simpleperf stat, and online/offline a cpu.
/system/extras/simpleperf/event_selection_set.cpp
|
fc22b8f4c033a4ab26b864e29308e1b96fe8d712 |
|
04-Aug-2016 |
Yabin Cui <yabinc@google.com> |
simpleperf: reduce Record construction overhead while recording. Avoid binary allocation and memory copy in ReadRecordsFromBuffer(), thus reduce Record construction overhead in EventSelectionSet::ReadMmapEventDataForFd(). Remove RecordCache used while recording. Replace it with RecordFileWriter::SortDataSection(). For unwinding while recording, use low watermark to make records almost sorted when dumped from the kernel. Bug: 30649868 Test: run simpleperf_unit_test. Change-Id: Ie5fb942046900a5960b3c990cf4177c026eaadfb
/system/extras/simpleperf/event_selection_set.cpp
|
dbbda3020c483a8da2e9ce985c1e9d8b7bcc8ec0 |
|
28-Jul-2016 |
Yabin Cui <yabinc@google.com> |
simpleperf: use libevent in record command. Support read Event in IOEventLoop, test it, and use it in record command. Format related code and clean up some comments. Bug: http://b/30405638 Change-Id: I3b07d50b0374be3f3e7ee9fa4d0c0ccc8ae21a2b Test: run simpleperf_unit_test.
/system/extras/simpleperf/event_selection_set.cpp
|
3e4c5950f3aafb0bf66544468d98ee3ec26b705c |
|
27-Jul-2016 |
Yabin Cui <yabinc@google.com> |
simpleperf: use libevent in stat command. Wrap libevent in IOEventLoop, use IOEventLoop in stat command. Add corresponding tests. Bug: http://b/30405638 Change-Id: I78b79e0eff1365ab46dde29c2a24a2def586af79 Test: run simpleperf_unit_test.
/system/extras/simpleperf/event_selection_set.cpp
|
0a072cda021e5dfbdbb39f4d8d30771a851b3c3a |
|
14-Jul-2016 |
Yabin Cui <yabinc@google.com> |
simpleperf: adjust mapped buffer size in record command. Instead of fixing the mapped buffer size, we can adjust it at runtime. So users don't need to adjust -m manually. Bug: 29574526 Change-Id: Icb580df3d60f8d2cf554c0d4139e6f7f64b19f8f Test: run simpleperf_unit_test.
/system/extras/simpleperf/event_selection_set.cpp
|
6173592d3d086b8e493590d626fdbdb4e344c433 |
|
08-Jul-2016 |
Yabin Cui <yabinc@google.com> |
simpleperf: combine mapped buffer used for the same event and cpu. Non root users have a size limit of buffers used for profiling. By combining buffers used for the same event and cpu, we can reduce buffer cost when monitoring multiple threads, thus avoid mmap() failures. Increase default value for -m option for non system wide profiling. Bug: 28911532 Change-Id: I91148061eb54840c144cf72e7bb901e7b74897ec Test: run simpleperf_unit_test.
/system/extras/simpleperf/event_selection_set.cpp
|
877751bbae11e009070e036ee1cd16e88135fff5 |
|
14-Jun-2016 |
Yabin Cui <yabinc@google.com> |
simpleperf: support event group. Kernel supports monitoring several events as a group, so they are scheduled on and out at the same time. Add --group option to stat command and record command. Adjust the method to calculate miss rate in stat command: limit the matched events in the same group or with scale == 1.0. Bug: 29213742 Change-Id: I899aba207f1e3357307541e81f97526f5a2913c3
/system/extras/simpleperf/event_selection_set.cpp
|
4f41df6f68efc3b9b534014a8cfb6ee8ac4d5c91 |
|
02-Jun-2016 |
Yabin Cui <yabinc@google.com> |
simpleperf: dump tracing data when needed. When monitoring tracepoint events, dump tracing data to perf.data can enable reporting on a different machine. Bug: 27403614 Change-Id: Ie1af624717a245cacbeb44b4c1bcd499fc9ad8db
/system/extras/simpleperf/event_selection_set.cpp
|
810d1c5bad205f104e97de252ae4d1bcb7ab4b24 |
|
17-May-2016 |
Yabin Cui <yabinc@google.com> |
simpleperf: fix stat scale output. Currently simpleperf stat command create an event file for each cpu and scale the result by summarizing counters on each cpu. But one thread only runs on one cpu at a time, so it results in wrongly scaled numbers. Fix this by three changes: 1. For non system-wide stat, Create only one event file for all cpus. 2. When summarizing counters, omit counters having 0 running time. 3. Print real value instead of scaled value. Run command: $simpleperf stat ./empty_program Before the change: Performance counter statistics: 33,540,176 cpu-cycles # 54.812986 GHz (2%) 28,233,348 stalled-cycles-frontend # 46.140 G/sec (2%) After the change: Performance counter statistics: 625,335 cpu-cycles # 1.404496 GHz (100%) 507,200 stalled-cycles-frontend # 1.139 G/sec (100%) Change-Id: I76bc3e220df4f149ab365e960295b24fde8ae2fc
/system/extras/simpleperf/event_selection_set.cpp
|
2d6efe4b167da4e6b77f168b1820239ee65599e2 |
|
02-Apr-2016 |
Yabin Cui <yabinc@google.com> |
simpleperf: support reporting more than one event type. When sampling kernel trace points, it is like to sample more than one even type. Like `simpleperf record -e kmem:mm_page_alloc,kmem:mm_page_free`. 1. change record command to dump event_id for all records. 2. change report command and record reader to support multiple event attrs. 3. hide record_cache inside EventSelectionSet. 4. add test to report multiple event types. Bug: 27403614 Change-Id: Ic22a5527d68e7a843e3cf95e85381f8ad6bcb196
/system/extras/simpleperf/event_selection_set.cpp
|
48460892306fbc232d7623b1aa5be1aefdc1a8a7 |
|
18-Mar-2016 |
Yabin Cui <yabinc@google.com> |
Simpleperf: remove dependency on global current_arch. When running unit tests on arm64 devices: [OK] ReportCommandTest.dwarf_callgraph [OK] record_cmd.dwarf_callchain_sampling. ERROR: can't unwind data recorded on a different architecture. It is because ReportCommandtest.dwarf_callgraph opens a perf.data recorded on x86_64, and changes current_arch. It causes a problem when the test record_cmd.dwarf_callchain_sampling calls libbacktrace built on aarch64. Athough it doesn't make the test fail, we should fix this. Change-Id: I2cd70369a769ef2199cab2302b8b824369be0907
/system/extras/simpleperf/event_selection_set.cpp
|
19e6b6d372a1244189dc2df62313085a61ed1a80 |
|
10-Mar-2016 |
Yabin Cui <yabinc@google.com> |
simpleperf: check if dwarf callgraph is supported by kernel before testing. Move inclusion of poll.h from header files to source files, as event_selection_set.h is used by cmd_report_test.cpp, which can be built on windows. Bug: 27590546 Change-Id: Ic6b141a93d96610f911ab52da1d927b7f619ccb2
/system/extras/simpleperf/event_selection_set.cpp
|
b1a885b014540a2f7798b5a35ea0f0ec150d93ee |
|
15-Feb-2016 |
Yabin Cui <yabinc@google.com> |
simpleperf: report symbols of native libraries in apk file. Changes included: 1. provide interface in read_apk.h to read build id and symbols. 2. report symbols of native libraries in apk file. 3. refactor code in read_elf.cpp and read_apk.cpp. 4. add verbose log. 5. add -o report_file_name option for report command. 6. add corresponding unit tests. Bug: 26962895 Change-Id: I0d5398996e0c29dba4a6f5226692b758ca096bbd
/system/extras/simpleperf/event_selection_set.cpp
|
b9ca50b319d2083c5a92c468e54796b0e71a4ad9 |
|
05-Dec-2015 |
Yabin Cui <yabinc@google.com> |
Merge "Simpleperf: don't use ioctl(PERF_EVENT_IOC_ENABLE)."
|
66dd09e8e2407082ce93bf0784de641298131912 |
|
04-Dec-2015 |
Elliott Hughes <enh@google.com> |
Track rename from base/ to android-base/. Change-Id: Ic15d4778c7accd1382de0b440a437aba2cf67016
/system/extras/simpleperf/event_selection_set.cpp
|
a46794fa2963de93a9d25fd6945d3c58121e2ba6 |
|
03-Dec-2015 |
Yabin Cui <yabinc@google.com> |
Simpleperf: don't use ioctl(PERF_EVENT_IOC_ENABLE). Some android kernels(like bullhead/angler) can't handle ioctl(PERF_EVENT_IOC_ENABLE) correctly when cpu-hotplug happens. Instead of fixing all of them in kernel, we can't simply don't use it. Bug: 25193162 Change-Id: I9df1458045ffd2ccc2c7ba393e746ebba7c253de
/system/extras/simpleperf/event_selection_set.cpp
|
cb4c17ea53269ced994a2d849cbafb1afd5296e1 |
|
27-Oct-2015 |
Yabin Cui <yabinc@google.com> |
simpleperf: support --cpu option in record/stat command. --cpu option is used to record on selected cpus. Change-Id: If5bb9b42a064d2ff69fbeec77906fc79943dddc1
/system/extras/simpleperf/event_selection_set.cpp
|
f469c3d7f4466a2a31c3e837969c43c1e3bc4c90 |
|
08-Oct-2015 |
Yabin Cui <yabinc@google.com> |
Simpleperf: do stack unwinding while recording. Dumping user's stack consumes lots of disk space, which makes long period recording impossible. This patch does stack unwinding before writing to perf.data, so it doesn't need to save user's stack. Previous behavior is still supported with --post-unwind option. A record cache is used for online record processing. Bug: 22229391 Change-Id: Idcc6ec46924fff3fcc8c165d62f8af875b173cd4
/system/extras/simpleperf/event_selection_set.cpp
|
afdb9cea28340e31142fd66a90c88ed8e18ebbfa |
|
20-Aug-2015 |
Yabin Cui <yabinc@google.com> |
Simpleperf: support multiple event types in record command. Change-Id: I0aa0e8c9491370b5e4fafdaf8cdc5613c26c78f5
/system/extras/simpleperf/event_selection_set.cpp
|
04d08a35c5e1cabdf6eb7397536a790b0ff44459 |
|
20-Aug-2015 |
Yabin Cui <yabinc@google.com> |
Simpleperf: improve output of stat command. Before this change: $sudo simpleperf record -a sleep 1 Performance counter statistics: 5994649915(scaled) cpu-cycles 8785461570(scaled) stalled-cycles-frontend 6089237592(scaled) instructions 1086987265(scaled) branch-instructions 11019426(scaled) branch-misses 40306210522 task-clock 21955 context-switches 16659 page-faults Total test time: 1.007973 seconds. After this change: $sudo simpleperf record -a sleep 1 Performance counter statistics: 11,768,763,985 cpu-cycles # 11.675808 Ghz (83%) 16,142,943,081 stalled-cycles-frontend # 16.015 G/sec (67%) 17,286,201,730 instructions # 0.680818 cycles per instruction (83%) 3,141,529,369 branch-instructions # 3.117 G/sec (84%) 18,168,963 branch-misses # 0.578348% miss rate (83%) 40222.432118(ms) task-clock # 3990.473223% cpu usage (100%) 19,240 context-switches # 19.088 K/sec (100%) 9,302 page-faults # 9.229 K/sec (100%) Total test time: 1.007961 seconds. Change-Id: I5590699957650e246b14b3d2b405108483631908
/system/extras/simpleperf/event_selection_set.cpp
|
5872ac6f1f5b804ffea38ff59025441618802d6b |
|
01-Aug-2015 |
Yabin Cui <yabinc@google.com> |
Simpleperf: correct the event type name printed in stat command. Bug: 22884977 Change-Id: I3c4f5c8dc02d5b17f5942e4e98476d1c4f3fbcad
/system/extras/simpleperf/event_selection_set.cpp
|
76769e502d8f0ebf5d2c81b00246727fb0a59925 |
|
13-Jul-2015 |
Yabin Cui <yabinc@google.com> |
Simpleperf: Support dwarf callgraph recording. 1. add OS_RELEASE and ARCH feature in perf.data. ARCH feature is used when parsing recorded user registers. 2. support `--call-graph dwarf` option in record command. Bug: 22229391 Change-Id: I56dbdd101338658ce6a9b59aa8be90e712e007f5
/system/extras/simpleperf/event_selection_set.cpp
|
9fd3cc1048a3d0338df4a48760dfd655560992a1 |
|
26-Jun-2015 |
Yabin Cui <yabinc@google.com> |
Simpleperf: support build on mac. Bug: 19483574 Change-Id: I6c28541944bc0a4e6fc07d7ea5a8fb5f71890510
/system/extras/simpleperf/event_selection_set.cpp
|
4be412615fa6b6a7bf0afd5f620b249e98b2cab8 |
|
22-Jun-2015 |
Yabin Cui <yabinc@google.com> |
Simpleperf: support child inherit option. In order to support child inherit option, also change the way to open event files for threads on all cpus in record command. Bug: 19483574 Change-Id: I0765e9ec90841c1f762490de3dd24ad37b0cc619
/system/extras/simpleperf/event_selection_set.cpp
|
d115b2f738f2cef352877b26c2d93460ac9fea25 |
|
15-Jun-2015 |
Yabin Cui <yabinc@google.com> |
Simpleperf: support event type modifier. Also fix a bug in event_attr dumping. Bug: 19483574 Change-Id: I255647d1471acab3a63c3dc787ab06b3d2bee294
/system/extras/simpleperf/event_selection_set.cpp
|
b032de7a9e1975a838cd6df2e7c8df3c7f70a3ce |
|
18-Jun-2015 |
Yabin Cui <yabinc@google.com> |
Simpleperf: support monitoring existing processes/threads. Also change the default record freq from 1000 to 4000. Because 1000 seems to be too low. Bug: 19483574 Change-Id: I340fcb9d28a156862705e483ee340a1c824eea21
/system/extras/simpleperf/event_selection_set.cpp
|
6e8a9a4e52242f82104644bca0318284b3bbdd6b |
|
15-Jun-2015 |
Yabin Cui <yabinc@google.com> |
Simpleperf: support callchain sampling in record command. Bug: 19483574 Change-Id: Icd8ed7c316144fc51d54f196872061533bdeef2b
/system/extras/simpleperf/event_selection_set.cpp
|
7d4904d5fc038f8125cfc63a5eaa4669ee2aebda |
|
09-Jun-2015 |
Yabin Cui <yabinc@google.com> |
Simpleperf: fix a few bugs. Fix mistyped word. Kill workload process when exiting. Add checking of whether branch sampling is supported. Bug: 19483574 Change-Id: Ibe48914cd92da1ee40bf67c0c47a6376a7291e8c
/system/extras/simpleperf/event_selection_set.cpp
|
ddddc06d1f1d15d49e1eb43201b73beb29cf4cde |
|
03-Jun-2015 |
Yabin Cui <yabinc@google.com> |
Simpleperf: support branch stack sampling in `simpleperf record`. This only adds support in simpleperf. Branch stack sampling still lacks kernel support on arm devices. Use perf_event.h of bionic in host build, because the perf_event.h of platform glibc is too old. Bug: 19483574 Change-Id: I9c7332c054e93e7433717dd293d3f366b1802e2d
/system/extras/simpleperf/event_selection_set.cpp
|
f569b478e74560a2d9e29a96824e16b93a55b97f |
|
30-Apr-2015 |
Yabin Cui <yabinc@google.com> |
Support tracepoint event types in simpleperf. Also support options in `simpleperf list`, add test about tracepoint event types. Bug: 19483574 Change-Id: I2d2c2f300fe5e2968696228899084410aa9f29a4
/system/extras/simpleperf/event_selection_set.cpp
|
9759e1b1ce76185aa539aeea2fb1cbd8382156e7 |
|
29-Apr-2015 |
Yabin Cui <yabinc@google.com> |
Implement simpleperf record/dumprecord subcommands. Bug: 19483574 Change-Id: Id879713a75c2d3a6289d8847b95ee0bb4a2cc8a0
/system/extras/simpleperf/event_selection_set.cpp
|