History log of /system/extras/simpleperf/utils.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c24dd76c350b6880df5f1398f9a8fe0d1cff0948 11-Nov-2016 Yabin Cui <yabinc@google.com> simpleperf: fix unaligned data access on arm.

Bug: http://b/32340274
Test: run `simpleperf record --dump-symbols` manually.
Test: run simpleperf_unit_test.
Change-Id: I771a516bb644f18fafa987061ecfc76ae3521ca9
/system/extras/simpleperf/utils.h
2597ef042881f834d1bc414930f144a405dd13ca 19-Oct-2016 Yabin Cui <yabinc@google.com> simpleperf: support building sample record manually.

And other small changes:
add time when building comm record.
move some Move*BinaryFormat to utils.h.
Handle wrong symbol whoes address can be ULLONG_MAX.

Bug: http://b/30974760
Test: simpleperf_unit_test.
Change-Id: I2956d3c4b781c580fe93a6e5b77e0469f7f4f43f
/system/extras/simpleperf/utils.h
078658638c01c035ebcb98a557628101566a1d57 22-Aug-2016 Yabin Cui <yabinc@google.com> simpleperf: avoid selinux denials.

1. Don't stat() entries in /proc directory if not necessary.
2. Don't read tracing events in debugfs if not root.

Bug: http://b/30981595
Change-Id: Ic695671357dad936d60f4e6d573ce4452dec217c
Test: run `simpleperf list` and check kmsg.
/system/extras/simpleperf/utils.h
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/utils.h
5674ed87431f2d9b05f4ec0c7f7c2e56e585c956 12-Jul-2016 Chih-Hung Hsieh <chh@google.com> Fix google-explicit-constructor warnings in simpleperf.

* Declare explicit conversion constructors.

Bug: 28341362
Change-Id: I9d5b764fe004e291cbdd212617df6f385c31df25
Test: build with clang-tidy
/system/extras/simpleperf/utils.h
a7a0e5076f0107173bc9ee067d13955d0d169f25 15-Jun-2016 Yabin Cui <yabinc@google.com> simpleperf: replace SIMPLEPERF_ALIGN macro with Align inline function.

Change-Id: Id9e9e67174ab3f857eb2baa9609351b60586b8dd
/system/extras/simpleperf/utils.h
b54c5e5e3d6529a7363e5493745a6bbcf30b964f 14-Jun-2016 Yabin Cui <yabinc@google.com> simpleperf: fix mac build.

Bug: 28114205
Change-Id: I84ad011b10c19e07576b718ba4b6b6c52a823366
/system/extras/simpleperf/utils.h
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/utils.h
767dd17947f1ae9dd3d02f738d442a23ed76f2f6 03-Jun-2016 Yabin Cui <yabinc@google.com> simpleperf: add report-sample command.

1. Add report-sample command to report each sample with symbol information.
2. Add --dump-symbols option to record command to collect dso and symbol
information in perf.data.

Bug: 28114205

Change-Id: I37424ee6abd74a21ad41cd3b6c4249cf0625c201
/system/extras/simpleperf/utils.h
b42129797f17f990ea5a88c6bdc7446000cc361c 25-May-2016 Yabin Cui <yabinc@google.com> simpleperf: record kernel symbols in perf.data.

To better support kernel profiling, record kernel symbols in perf.data
when necessary. An option --no-dump-kernel-symbols is added in
record command to always avoid recording kernel symbols.
The way to handle all zero /proc/modules and /proc/kallsyms is
improved. Add Better support in finding symbols for kernel modules.

Bug: 27403614
Change-Id: I470151c54f8a45ad1c101c1b94490e33d7fd7485
/system/extras/simpleperf/utils.h
5633586f0efc54dbaecad3deeb8568786317832d 18-Apr-2016 Yabin Cui <yabinc@google.com> simpleperf: improve cpu_hotplug tests.

Add cpu hotplug test for ioctl(PERF_EVENT_IOC_ENABLE),
and improve cpu_hotplug tests by removing sleep calls.

Bug: 28384580

Change-Id: I5869cd9bb3086b6f3a73cf7dce4ffd720326c3c6
/system/extras/simpleperf/utils.h
8f680f60dc800bec880c5c35bfbc1ac36165e1f3 19-Mar-2016 Yabin Cui <yabinc@google.com> Simpleperf: add test for reporting callgraph of shared libraries in apk file.

Also add comment for how to generate each perf.data in testdata/.
Add --log <leve> argument in unit test to help debugging.

Bug: 26962895
Change-Id: Iaa5a81cd8da5174d5b5b4e7847811e2432bf0db8
/system/extras/simpleperf/utils.h
05400539d15c50a52a388daba2e831b86824cc8e 18-Mar-2016 Yabin Cui <yabinc@google.com> Simpleperf: support reading symbols from .gnu_debugdata.

As in https://sourceware.org/gdb/onlinedocs/gdb/MiniDebugInfo.html,
elf files can store mini debug information in .gnu_debugdata.

Bug: 27744639

Change-Id: If4a53a4a1332824388ee309ac63a008dc5cf8d5c
/system/extras/simpleperf/utils.h
be7ec66eaa4f995bd9068637f7c7d5718173922c 02-Mar-2016 Yabin Cui <yabinc@google.com> simpleperf: support building cts test.

1. build cts test libraries.
2. change tests to use tmpfile instead of perf.data.
3. support extracting testdata from cts test file.

Bug: 27387280
Change-Id: I7c5db77f3157d586d0c9beb446b247626e7cce36
/system/extras/simpleperf/utils.h
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/utils.h
569f64afd3db2b43003978765b833669f99477d2 06-Feb-2016 Yabin Cui <yabinc@google.com> simpleperf: port read_apk and read_apk/read_elf tests to nonlinux.

Also make following small changes:
1. Manage testdata files like libziparchive.
2. Replace StringToPid() with android::base::ParseInt().
3. Add tests in read_elf_test.

Bug: 26962895

Change-Id: I6603e9f3cea3a013e2618ea003790d102739f843
/system/extras/simpleperf/utils.h
0ed5aacf696bbf8c6a87ce3c07f33c1b3ce33bd4 02-Feb-2016 Yabin Cui <yabinc@google.com> simpleperf: use RemoveFileIfExists in libbase.

Change-Id: Ife16103a5ec86cc6ee2aee4838d1a56a91f54516
/system/extras/simpleperf/utils.h
ffaa912ca48e87d25d516780c15cdd7c50de43db 16-Jan-2016 Yabin Cui <yabinc@google.com> Simpleperf: support build for windows.

Change-Id: I31554f36ee97eb0ae27bda9b77e29410776925e2
/system/extras/simpleperf/utils.h
797116bfb9ad10d858086680c7465d65c399ef6e 09-Dec-2015 Yabin Cui <yabinc@google.com> Simpleperf: check if elf file paths are valid before reading them.

Reading invalid file paths can cause troubles. For example,
reading /dev/zero can eat all memory.

Bug: 25194400
Change-Id: I4de17f4f9200a43b50a4efe4c42a6fd9eaec1ba6
/system/extras/simpleperf/utils.h
cc2e59e2478d330c89eaceda0dcc1f05ee32fbf8 21-Aug-2015 Yabin Cui <yabinc@google.com> Simpleperf: use OneTimeFreeAllocator to allocate symbol names.

simpleperf report takes a lot of time mallocing and freeing memory.
This change reduces the time to free memory.

Before this change:
$sudo simpleperf stat simpleperf report
Performance counter statistics:

3,258,481,203 cpu-cycles # 2.290946 GHz (80%)
4,147,660,154 instructions # 0.785619 cycles per instruction (79%)

Total test time: 1.422330 seconds.

After this change:
$sudo simpleperf stat simpleperf report
Performance counter statistics:

1,699,221,386 cpu-cycles # 2.994754 GHz (79%)
2,739,945,156 instructions # 0.620166 cycles per instruction (81%)

Total test time: 0.567399 seconds.

This change also fix a bug in record_file_test.cpp.

Bug: 23387541

Change-Id: I59fc86ca54a6c09bd08eec8ada931ccff88d3102
/system/extras/simpleperf/utils.h
38e573ee1958959253ba8f3af7567adb4cbeea55 06-Aug-2015 Yabin Cui <yabinc@google.com> Simpleperf: add filters to report command.

Change-Id: I0e6cec1ce638fd4c832fe398a08168138e22ee7e
/system/extras/simpleperf/utils.h
9fd3cc1048a3d0338df4a48760dfd655560992a1 26-Jun-2015 Yabin Cui <yabinc@google.com> Simpleperf: support build on mac.

Bug: 19483574
Change-Id: I6c28541944bc0a4e6fc07d7ea5a8fb5f71890510
/system/extras/simpleperf/utils.h
d713f959ec1fe07ed993e2c9f4166b52aa98a58c 24-Jun-2015 Yabin Cui <yabinc@google.com> Simpleperf: support cmdline feature in perf.data.

Bug: 19483574
Change-Id: I92f16d6616f274f31ea54e305fe1de10049baf02
/system/extras/simpleperf/utils.h
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/utils.h
6afc7e17d39ab294bdf625076777443a6b4c8e18 18-Jun-2015 Yabin Cui <yabinc@google.com> Simpleperf: add branch stack feature in perf.data.

Also add the function to remove old perf.data.

Bug: 19483574

Change-Id: I605bb637674d4674f95503a160de8c530fe87812
/system/extras/simpleperf/utils.h
621a533ec28dbbf8634211c684456b4bbc1bc0fb 16-Jun-2015 Yabin Cui <yabinc@google.com> Simpleperf: add signal handler for SIGCHLD, SIGINT, SIGTERM.

And rely on signal to decide when to stop in record/stat command.

Bug: 19483574
Change-Id: I564cb61e74ea81cffe4de5b050482b3250ed9a06
/system/extras/simpleperf/utils.h
f79f07e13c56f7ca3be1435cea7f8861daf7efaa 01-Jun-2015 Yabin Cui <yabinc@google.com> Simpleperf: refactor command system.

Register a callback function to create a new command instance instead of
registering a command instance. Then we can release resources in the
command destructors, and don't need xxxCommandImpl classes any more.

Bug: 19483574
Change-Id: Ibb54892ec0655fd43909347afd72bb08bc8a716c
/system/extras/simpleperf/utils.h
7d59bb49fb47fbc82ef5c77d7aebf7174fd996e1 05-May-2015 Yabin Cui <yabinc@google.com> Dump kernel/modules/thread mmap information in `simpleperf record`.

Bug: 19483574
Change-Id: Ia65cb12804a6dffa440501736a6229b2f7248958
/system/extras/simpleperf/utils.h
9759e1b1ce76185aa539aeea2fb1cbd8382156e7 29-Apr-2015 Yabin Cui <yabinc@google.com> Implement simpleperf record/dumprecord subcommands.

Bug: 19483574

Change-Id: Id879713a75c2d3a6289d8847b95ee0bb4a2cc8a0
/system/extras/simpleperf/utils.h
323e945313b190373b3fcfe578e25ee8390a76d3 21-Apr-2015 Yabin Cui <yabinc@google.com> Implement simpleperf stat subcommand.

Also add some simple unit-tests.

Change-Id: Ic30a2d4a879e028a8c82babbaf82e322fc49a838
/system/extras/simpleperf/utils.h
67d3abd7b26a741347b33402ad32f5c6735ca0bd 17-Apr-2015 Yabin Cui <yabinc@google.com> Implement simpleperf list subcommand.

simpleperf is used to replace linux/tools/perf. And This CL implements
the list subcommand of it.

Change-Id: I3e6fe854e19cc370070d0fd8416d0aa6fa8f8e90
/system/extras/simpleperf/utils.h