OSDN Git Service

android-x86/system-extras.git
6 years agoMerge "simpleperf: fix cmd_debug_unwind tests."
Yabin Cui [Thu, 15 Feb 2018 18:13:12 +0000 (18:13 +0000)]
Merge "simpleperf: fix cmd_debug_unwind tests."

6 years agoMerge "simpleperf: fix --interval option in system wide stating."
Yabin Cui [Wed, 14 Feb 2018 23:38:31 +0000 (23:38 +0000)]
Merge "simpleperf: fix --interval option in system wide stating."

6 years agosimpleperf: fix cmd_debug_unwind tests.
Yabin Cui [Wed, 14 Feb 2018 23:28:59 +0000 (15:28 -0800)]
simpleperf: fix cmd_debug_unwind tests.

Without flushing stdout, the tests may fail when
running `adb shell simpleperf_unit_test`.

Bug: none
Test: run `adb shell simpleperf_unit_test`.
Change-Id: I8bcf739e7672e8affc71df0a3f11264c0bd7f745

6 years agosimpleperf: fix --interval option in system wide stating.
Yabin Cui [Wed, 14 Feb 2018 21:41:03 +0000 (13:41 -0800)]
simpleperf: fix --interval option in system wide stating.

Bug: none
Test: run simpleperf_unit_test.
Change-Id: Ida90ecd465e5c63f0f813cde63d70acfeb1281da

6 years agoMerge "Declare explicitly thumb mode."
Chih-hung Hsieh [Wed, 14 Feb 2018 20:57:14 +0000 (20:57 +0000)]
Merge "Declare explicitly thumb mode."

6 years agoMerge "simpleperf: Use cross-arch unwinding."
Yabin Cui [Wed, 14 Feb 2018 18:36:49 +0000 (18:36 +0000)]
Merge "simpleperf: Use cross-arch unwinding."

6 years agoDeclare explicitly thumb mode.
Chih-Hung Hsieh [Wed, 14 Feb 2018 18:10:35 +0000 (10:10 -0800)]
Declare explicitly thumb mode.

* bandwidth.h contains thumb mode only instructions.

Test: normal build.
Change-Id: Ib40dfda63f668949370405e7ec53f5f9828200e6

6 years agoMerge "Fix PDK build"
Logan Chien [Wed, 14 Feb 2018 02:11:54 +0000 (02:11 +0000)]
Merge "Fix PDK build"

6 years agosimpleperf: Use cross-arch unwinding.
Yabin Cui [Tue, 6 Feb 2018 21:42:16 +0000 (13:42 -0800)]
simpleperf: Use cross-arch unwinding.

Enables cross-arch unwinding since the new unwinder supports cross-arch
unwinding.
Also change tests accordingly.

Bug: http://b/73127000
Test: run simpleperf_unit_test.

Change-Id: I3ca3f7a81b40e9f7ea2b39b9fdc951f9e7a6acc7

6 years agoFix PDK build
Logan Chien [Tue, 13 Feb 2018 10:27:17 +0000 (18:27 +0800)]
Fix PDK build

This commit disables "perfporfd" in PDK builds because "perfporfd"
depends on "libservices" (from "frameworks/base") which is not in PDK
builds as well.

Test: Build a target (described in http://b/72961456) with
`platform.zip` built from master FSK source tree.

Bug: 72961456
Change-Id: Ia4913435642cd09a321afb9f583331ca24a8e4be

6 years agoMerge "simpleperf: improve debug-unwind cmd."
Yabin Cui [Thu, 8 Feb 2018 21:35:11 +0000 (21:35 +0000)]
Merge "simpleperf: improve debug-unwind cmd."

6 years agosimpleperf: improve debug-unwind cmd.
Yabin Cui [Wed, 7 Feb 2018 01:49:06 +0000 (17:49 -0800)]
simpleperf: improve debug-unwind cmd.

In debug-unwind cmd:
1. Add --symfs option.
2. Add meta_info section when there isn't one.
3. Add file section when there isn't one.

Rename unwinding_result_reporter.py to debug_unwind_reporter.py,
and fix a small error in it.

Bug: http://b/72556486
Test: run simpleperf_unit_test.
Test: run debug_unwind_reporter.py manually.

Change-Id: Ibc66b7bfdc91a17f6f1c2c0e84f4769d2bcaa1e7

6 years agoMerge "Simpleperf: Support record --"
Treehugger Robot [Wed, 7 Feb 2018 01:24:16 +0000 (01:24 +0000)]
Merge "Simpleperf: Support record --"

6 years agoSimpleperf: Support record --
Andreas Gampe [Tue, 6 Feb 2018 02:53:25 +0000 (18:53 -0800)]
Simpleperf: Support record --

Support optional "--" to be compatible with linux-perf.

Test: mmma system/extras/simpleperf
Test: simpleperf_unit_test
Change-Id: I4c2627625bb97514d86c8972ef5a0a31bf518b76

6 years agoMerge "simpleperf: add debug-unwind cmd."
Yabin Cui [Tue, 6 Feb 2018 02:54:18 +0000 (02:54 +0000)]
Merge "simpleperf: add debug-unwind cmd."

6 years agosimpleperf: add debug-unwind cmd.
Yabin Cui [Fri, 2 Feb 2018 22:18:40 +0000 (14:18 -0800)]
simpleperf: add debug-unwind cmd.

Currently, we use --log debug option in record cmd to debug offline unwinding.
However, it has below disadvantages:
1. It adds extra complexity in record cmd.
2. It doesn't keep reg/stack data of samples.
3. It isn't convenient to reproduce samples in problem. Because each time
   recording gets different samples.
4. It isn't very suitable for performance test of unwinding, for the same
   reason as item 3.

So instead, this CL adds debug-unwind cmd focusing on debugging and testing
offline unwinding. It solves problems mentioned above.

Also change unwinding_result_reporter.py to make it work with perf.data
generated by debug-unwind cmd.

Bug: http://b/72556486
Test: run simpleperf_unit_test.
Test: run unwinding_result_reporter.py manually.
Change-Id: I11cdf1eba993f48d61ef9891ad1be54d29679fdb

6 years agoMerge "simpleperf: Switch to use post-unwind by default in record cmd."
Yabin Cui [Thu, 1 Feb 2018 02:12:02 +0000 (02:12 +0000)]
Merge "simpleperf: Switch to use post-unwind by default in record cmd."

6 years agosimpleperf: Switch to use post-unwind by default in record cmd.
Yabin Cui [Tue, 30 Jan 2018 00:02:16 +0000 (16:02 -0800)]
simpleperf: Switch to use post-unwind by default in record cmd.

When recording google.sample.tunnel app for 30s:
It took 3s to unwind samples and write unwound samples to file.
It took 0.3s to write samples containing stack/reg data to file.

The result shows recording with post unwinding consumes much
less time than unwinding samples immediately. This means we can
record with higher freq and get smaller lose rate when using
post unwinding. So make below changes:
1. Make post unwinding by default.
2. Replace --post-unwind with --no-post-unwind option.
3. Make --trace-offcpu and callchain joiner work with post unwinding.
4. Remove special operations in --log debug mode. Those will be
   supported in a new command.

Bug: http://b/72556486
Test: run simpleperf_unit_test.
Test: run python test.py.

Change-Id: I9a5a5defda9d040985e674c43db19ee68e7aa305

6 years agoMerge "inferno: support --one-flamegraph option."
Yabin Cui [Wed, 31 Jan 2018 01:42:47 +0000 (01:42 +0000)]
Merge "inferno: support --one-flamegraph option."

6 years agoMerge "simpleperf: fix mac build."
Yabin Cui [Tue, 30 Jan 2018 23:05:15 +0000 (23:05 +0000)]
Merge "simpleperf: fix mac build."

6 years agosimpleperf: fix mac build.
Yabin Cui [Tue, 30 Jan 2018 23:02:39 +0000 (15:02 -0800)]
simpleperf: fix mac build.

Bug: none
Test: none
Change-Id: Ia4e6dd0e44e19379d79a08a8555ad413ba879bf2

6 years agoinferno: support --one-flamegraph option.
Yabin Cui [Tue, 30 Jan 2018 19:14:45 +0000 (11:14 -0800)]
inferno: support --one-flamegraph option.

Also split options into groups.

Bug: http://b/72495881
Test: manually.
Change-Id: Iec322fc1f1afb74ee5ee0fb19145d16926064332

6 years agoMerge "Change to new libbacktrace offline functions."
Christopher Ferris [Tue, 30 Jan 2018 15:33:56 +0000 (15:33 +0000)]
Merge "Change to new libbacktrace offline functions."

6 years agoChange to new libbacktrace offline functions.
Christopher Ferris [Thu, 14 Dec 2017 23:53:37 +0000 (15:53 -0800)]
Change to new libbacktrace offline functions.

Changes:
- Removes references to libunwind.
- Add enabling of global Elf cache.
- Add new ApkInspector function to get the offset from an apk by name.
- When a map name contains a '!' convert back to a name and offset.
- Initialize global elf cache in OfflineUnwinder constructor.

Bug: 65682279

Test: All unit tests pass.
Change-Id: I303b4beab8270ed2097cd17d91253c321cdc97f1

6 years agoMerge changes I1bdeffc6,I3e13db97
Treehugger Robot [Mon, 29 Jan 2018 22:48:35 +0000 (22:48 +0000)]
Merge changes I1bdeffc6,I3e13db97

* changes:
  Perfprofd: Clean up test logging helper
  Perfprofd: Backport elf symbolizer config to ConfigReader

6 years agoPerfprofd: Clean up test logging helper
Andreas Gampe [Fri, 19 Jan 2018 05:20:36 +0000 (21:20 -0800)]
Perfprofd: Clean up test logging helper

Clean up, in preparation for a potential move to libbase.

Test: mmma system/extras/perfprofd
Test: perfprofd_test
Change-Id: I1bdeffc6b69bd8c2513e1b2fce103bbae1c53dad

6 years agoPerfprofd: Backport elf symbolizer config to ConfigReader
Andreas Gampe [Fri, 19 Jan 2018 05:19:06 +0000 (21:19 -0800)]
Perfprofd: Backport elf symbolizer config to ConfigReader

Add an entry to ConfigReader to initialize usage of the ELF symbolizer.
Use this to turn off on-device symbolization for live testing, as
warnings about missing DSOs will pollute the logs and make the tests
fail.

Test: mmma system/extras/perfprofd
Test: perfprofd_test
Change-Id: I3e13db9779e5d2edfb14e2fbe2b3d186ef7af0bd

6 years agoMerge "Perfprofd: Add process name to sampling"
Treehugger Robot [Sat, 27 Jan 2018 04:07:35 +0000 (04:07 +0000)]
Merge "Perfprofd: Add process name to sampling"

6 years agoMerge "inferno: show time duration for perf.data recorded with --trace-offcpu."
Yabin Cui [Fri, 26 Jan 2018 18:37:24 +0000 (18:37 +0000)]
Merge "inferno: show time duration for perf.data recorded with --trace-offcpu."

6 years agoinferno: show time duration for perf.data recorded with --trace-offcpu.
Yabin Cui [Wed, 24 Jan 2018 01:50:52 +0000 (17:50 -0800)]
inferno: show time duration for perf.data recorded with --trace-offcpu.

Bug: http://b/72323886
Bug: http://b/72330172
Test: manually.

Change-Id: I91ece3081e0a7dcbe068154b36b35a694519af8e

6 years agoMerge "Avoid symlink of simpleperf."
Yabin Cui [Wed, 24 Jan 2018 19:28:59 +0000 (19:28 +0000)]
Merge "Avoid symlink of simpleperf."

6 years agoMerge "Add dependency on libdexfile for static libraries."
Christopher Ferris [Wed, 24 Jan 2018 02:44:21 +0000 (02:44 +0000)]
Merge "Add dependency on libdexfile for static libraries."

6 years agoAvoid symlink of simpleperf.
Yabin Cui [Tue, 23 Jan 2018 23:04:44 +0000 (15:04 -0800)]
Avoid symlink of simpleperf.

Add simpleperf/Android.bp.
Move libperfprofd_elf_read to libsimpleperf_elf_read.
Remove perfprofd/simpleperf.

Bug: http://b/72403367
Test: build.
Change-Id: I6525b19a94ddca1b935ad5c46a07cfa474471003

6 years agoMerge "simpleperf: fix test record_cmd.post_unwind_option."
Yabin Cui [Tue, 23 Jan 2018 02:00:50 +0000 (02:00 +0000)]
Merge "simpleperf: fix test record_cmd.post_unwind_option."

6 years agosimpleperf: fix test record_cmd.post_unwind_option.
Yabin Cui [Mon, 22 Jan 2018 23:11:07 +0000 (15:11 -0800)]
simpleperf: fix test record_cmd.post_unwind_option.

Sometimes a sample hits a pc location with no map, and results in
empty ips vector. This makes test record_cmd.post_unwind_option fail.

Bug: none
Test: run CtsSimpleperfTestCases.
Change-Id: If9ced5ee36fc6967afd2e82a11440d7410a74ea7

6 years agoMerge "simpleperf: temporarily disable handling cpu hotplug in record cmd."
Yabin Cui [Mon, 22 Jan 2018 22:17:59 +0000 (22:17 +0000)]
Merge "simpleperf: temporarily disable handling cpu hotplug in record cmd."

6 years agoMerge "ext4_utils: disable ext4 64bit block support"
Treehugger Robot [Mon, 22 Jan 2018 20:53:36 +0000 (20:53 +0000)]
Merge "ext4_utils: disable ext4 64bit block support"

6 years agosimpleperf: temporarily disable handling cpu hotplug in record cmd.
Yabin Cui [Mon, 22 Jan 2018 20:19:50 +0000 (12:19 -0800)]
simpleperf: temporarily disable handling cpu hotplug in record cmd.

mmap() can fail in cpu hotplug handling code, So disable it
temporarily to pass cts test.

Bug: http://b/65528673
Test: run CtsSimpleperfTestCases.
Change-Id: I4dd4958d802310dfaf6881ad1c438b4e130205c6

6 years agoAdd dependency on libdexfile for static libraries.
Christopher Ferris [Sat, 20 Jan 2018 07:05:42 +0000 (23:05 -0800)]
Add dependency on libdexfile for static libraries.

libbacktrace requires libdexfile now, so add the dependency.

Bug: 727070049

Test: Compiles. Unit tests pass.
Change-Id: I68d1275a5b59af1f2e7e25666c79f74ea5da1c11

6 years agoPerfprofd: Add process name to sampling
Andreas Gampe [Tue, 16 Jan 2018 01:49:53 +0000 (17:49 -0800)]
Perfprofd: Add process name to sampling

To distinguish samples in similarly-named threads (not being uncommon
because of unnamed Java threads or common functionality like GC,
async tasks, etc.), record the name of the process (defined to be
the comm of the process with pid == tid) in program samples.

Currently this is encoded as an index into a ProcessNames table.

Test: mmma system/extras/perfprofd
Test: perfprofd_test
Change-Id: I146f9335d9edecba6b7fcefa71a735a185ba2270

6 years agoMerge "Perfprofd: Dropbox support"
Treehugger Robot [Fri, 19 Jan 2018 01:11:23 +0000 (01:11 +0000)]
Merge "Perfprofd: Dropbox support"

6 years agoMerge "Perfprofd: Remove ConfigReader from binder interface"
Treehugger Robot [Fri, 19 Jan 2018 00:54:32 +0000 (00:54 +0000)]
Merge "Perfprofd: Remove ConfigReader from binder interface"

6 years agoPerfprofd: Dropbox support
Andreas Gampe [Thu, 28 Dec 2017 20:02:12 +0000 (12:02 -0800)]
Perfprofd: Dropbox support

Use libservices to support sending an encoded proto to dropbox.
In the binder frontend, send the encoded proto to dropbox if
enabled in the current configuration.

Test: mmma system/extras/perfprofd
Test: collect profile, check /data/system/dropbox
Change-Id: I9830f42ff111eacc685bd13efd6008a8c9c6d6ab

6 years agoPerfprofd: Remove ConfigReader from binder interface
Andreas Gampe [Thu, 18 Jan 2018 22:30:58 +0000 (14:30 -0800)]
Perfprofd: Remove ConfigReader from binder interface

Remove reliance on ConfigReader for defaults.

Test: mmma system/extras/perfprofd
Change-Id: If580d30044a4ff2e1206b8ad2529f7dd9889292a

6 years agoMerge "Perfprofd: minimal quipper fix for PERF_RECORD_THROTTLE"
Treehugger Robot [Thu, 18 Jan 2018 02:24:55 +0000 (02:24 +0000)]
Merge "Perfprofd: minimal quipper fix for PERF_RECORD_THROTTLE"

6 years agoext4_utils: disable ext4 64bit block support
Jin Qian [Tue, 14 Nov 2017 19:39:58 +0000 (11:39 -0800)]
ext4_utils: disable ext4 64bit block support

read_ext and vold full disk encryption can't handle 64bit block
address. Disable 64bit for now since 32bit can support 16TB file
system size.

Bug: 69234171
Change-Id: I7aab007e2e55f7416490e56864af1c69a9f55c9c

6 years agoMerge "Perfprofd: Fix missing symbol crash in stack script"
Treehugger Robot [Wed, 17 Jan 2018 02:07:26 +0000 (02:07 +0000)]
Merge "Perfprofd: Fix missing symbol crash in stack script"

6 years agoPerfprofd: minimal quipper fix for PERF_RECORD_THROTTLE
Andreas Gampe [Tue, 16 Jan 2018 21:31:05 +0000 (13:31 -0800)]
Perfprofd: minimal quipper fix for PERF_RECORD_THROTTLE

Add offset support for throttle/unthrottle.

Test: mmma system/extras/perfprofd
Test: perfprofd_test
Test: manual
Change-Id: If44a5253b513a2b901d6c5752ef2747034eea436

6 years agoMerge "Perfprofd: Change the imported chrome-base logging"
Treehugger Robot [Tue, 16 Jan 2018 18:36:42 +0000 (18:36 +0000)]
Merge "Perfprofd: Change the imported chrome-base logging"

6 years agoPerfprofd: Fix missing symbol crash in stack script
Andreas Gampe [Tue, 16 Jan 2018 01:49:11 +0000 (17:49 -0800)]
Perfprofd: Fix missing symbol crash in stack script

It is possible we will not find a symbol for a frame in the backtrace.
Do not crash, print '???' instead.

Test: mmma system/extras/perfprofd
Test: manual
Change-Id: Ic91907c2f38adcbbd5979b7d1533df642ce763b3

6 years agoPerfprofd: Change the imported chrome-base logging
Andreas Gampe [Mon, 15 Jan 2018 23:08:56 +0000 (15:08 -0800)]
Perfprofd: Change the imported chrome-base logging

Call abort instead of exit to get decent Android support.

Test: mmma system/extras/perfprofd
Change-Id: Idaa22fef770be343d7939eed6be66429584c85b0

6 years agoMerge "Perfprofd: Enable some more warnings"
Treehugger Robot [Mon, 15 Jan 2018 23:23:32 +0000 (23:23 +0000)]
Merge "Perfprofd: Enable some more warnings"

6 years agoPerfprofd: Enable some more warnings
Andreas Gampe [Fri, 12 Jan 2018 02:57:15 +0000 (18:57 -0800)]
Perfprofd: Enable some more warnings

Test: mmma system/extras/perfprofd
Change-Id: Ic004ff1a0aad28739880c1a562af7af82e87a9ae

6 years agoMerge "Perfprofd: Generalize post-collection handling"
Treehugger Robot [Fri, 12 Jan 2018 20:49:40 +0000 (20:49 +0000)]
Merge "Perfprofd: Generalize post-collection handling"

6 years agoMerge "Perfprofd: Remove perfprofdutils"
Treehugger Robot [Fri, 12 Jan 2018 20:27:57 +0000 (20:27 +0000)]
Merge "Perfprofd: Remove perfprofdutils"

6 years agoMerge "Don't invent your own boolean type (and then not use it)."
Treehugger Robot [Fri, 12 Jan 2018 19:39:22 +0000 (19:39 +0000)]
Merge "Don't invent your own boolean type (and then not use it)."

6 years agoDon't invent your own boolean type (and then not use it).
Elliott Hughes [Fri, 12 Jan 2018 16:32:00 +0000 (08:32 -0800)]
Don't invent your own boolean type (and then not use it).

Bug: N/A
Test: builds
Change-Id: If1f064bce92e5c64768fd6d9042206c7e6a3aa69

6 years agoMerge "Perfprofd: Fix zero-second sleep"
Treehugger Robot [Fri, 12 Jan 2018 04:03:25 +0000 (04:03 +0000)]
Merge "Perfprofd: Fix zero-second sleep"

6 years agoPerfprofd: Fix zero-second sleep
Andreas Gampe [Fri, 12 Jan 2018 02:21:20 +0000 (18:21 -0800)]
Perfprofd: Fix zero-second sleep

The binder frontend uses wait_for, which will degenerate to
unlimited sleep on zero.

Test: mmma system/extras/perfprofd
Change-Id: I3c25d9b004f864ad9ce2c71cf6d49c5a68cc98b5

6 years agoPerfprofd: Generalize post-collection handling
Andreas Gampe [Thu, 11 Jan 2018 04:02:20 +0000 (20:02 -0800)]
Perfprofd: Generalize post-collection handling

Add a handler function to process to encoded protobuf. For now, just write
it to file, as before.

Test: mmma system/extras/perfprofd
Test: perfprofd_test
Change-Id: Ife55d6f62408fd1fd2eac5af3ad4cd319b985a69

6 years agoPerfprofd: Remove perfprofdutils
Andreas Gampe [Wed, 10 Jan 2018 19:37:20 +0000 (11:37 -0800)]
Perfprofd: Remove perfprofdutils

The indirection is unnecessary. Implement test hijacking through
custom libbase logger.

Add "[vdso]" to the recognized kernel DSOs to avoid a warning
message for the symbolizer.

Test: m
Test: perfprofd_test
Change-Id: I66c13f3b45a772f121be1e083c6194e2c962a104

6 years agoMerge "Perfprofd: Move binder code into subdirectory"
Treehugger Robot [Thu, 11 Jan 2018 01:12:55 +0000 (01:12 +0000)]
Merge "Perfprofd: Move binder code into subdirectory"

6 years agoMerge "simpleperf: add missing report html example."
Yabin Cui [Thu, 11 Jan 2018 00:54:15 +0000 (00:54 +0000)]
Merge "simpleperf: add missing report html example."

6 years agosimpleperf: add missing report html example.
Yabin Cui [Wed, 10 Jan 2018 22:50:16 +0000 (14:50 -0800)]
simpleperf: add missing report html example.

It is referenced in README.md.

Bug: none
Test: none
Change-Id: I6e194178702f4b7611f3b94f80ab17cd60a05e20

6 years agoPerfprofd: Move binder code into subdirectory
Andreas Gampe [Wed, 10 Jan 2018 17:16:47 +0000 (09:16 -0800)]
Perfprofd: Move binder code into subdirectory

Cleaner separation of concerns.

Test: m
Change-Id: I8a2022b89bca225ee73d8779e2b7b32cc16e9113

6 years agoMerge "Perfprofd: Update proto config"
Treehugger Robot [Wed, 10 Jan 2018 02:19:04 +0000 (02:19 +0000)]
Merge "Perfprofd: Update proto config"

6 years agoPerfprofd: Update proto config
Andreas Gampe [Wed, 10 Jan 2018 00:18:35 +0000 (16:18 -0800)]
Perfprofd: Update proto config

Add symbolizer flag to config protobuf. Initialize to default in
FillConfig. Clean up perf_config_proto.py

Test: m
Change-Id: I891a76c16259d039739e7084dd384a68fb15d7b1

6 years agoMerge "Perfprofd: Add functions in script"
Treehugger Robot [Wed, 10 Jan 2018 00:10:04 +0000 (00:10 +0000)]
Merge "Perfprofd: Add functions in script"

6 years agoMerge "Perfprofd: Add a symbolizer based on simpleperf code"
Treehugger Robot [Tue, 9 Jan 2018 23:07:11 +0000 (23:07 +0000)]
Merge "Perfprofd: Add a symbolizer based on simpleperf code"

6 years agoPerfprofd: Add functions in script
Andreas Gampe [Tue, 9 Jan 2018 02:44:54 +0000 (18:44 -0800)]
Perfprofd: Add functions in script

Makes it easier to change functionality and printing for debug
purposes.

Test: m
Change-Id: I1a849adca9d72f748352accdc81a9ae38a7c174e

6 years agoMerge "Add OWNERS files for perfprofd and simpleperf."
Treehugger Robot [Tue, 9 Jan 2018 21:03:14 +0000 (21:03 +0000)]
Merge "Add OWNERS files for perfprofd and simpleperf."

6 years agoPerfprofd: Add a symbolizer based on simpleperf code
Andreas Gampe [Mon, 8 Jan 2018 20:39:38 +0000 (12:39 -0800)]
Perfprofd: Add a symbolizer based on simpleperf code

For the time being, compile a small library straight out of
simpleperf sources. Once simpleperf has been transitioned to
Soong, use it directly.

Test: m
Change-Id: I2aa4695fda97ce424b9e9382db4346b8b0e38d2a

6 years agoAdd OWNERS files for perfprofd and simpleperf.
Elliott Hughes [Tue, 9 Jan 2018 19:23:50 +0000 (11:23 -0800)]
Add OWNERS files for perfprofd and simpleperf.

Bug: N/A
Test: N/A
Change-Id: I04c950bcde5c2001c0dd0cc0acabbdfcc5e21e69

6 years agoMerge "Perfprofd: Add symbolizer interface"
Treehugger Robot [Tue, 9 Jan 2018 02:38:49 +0000 (02:38 +0000)]
Merge "Perfprofd: Add symbolizer interface"

6 years agoMerge "simpleperf: stop recording when app exits."
Yabin Cui [Mon, 8 Jan 2018 22:07:34 +0000 (22:07 +0000)]
Merge "simpleperf: stop recording when app exits."

6 years agoMerge "simpleperf: fix test for vdso file."
Yabin Cui [Mon, 8 Jan 2018 22:07:11 +0000 (22:07 +0000)]
Merge "simpleperf: fix test for vdso file."

6 years agosimpleperf: fix test for vdso file.
Yabin Cui [Mon, 8 Jan 2018 19:48:12 +0000 (11:48 -0800)]
simpleperf: fix test for vdso file.

The kernel may export vdso file with no symbols.

Bug: http://b/69073856
Test: run simpleperf_unit_test.
Change-Id: I5c59513debe014ffd7fd772be110044eefcbb37f

6 years agosimpleperf: stop recording when app exits.
Yabin Cui [Mon, 8 Jan 2018 19:13:52 +0000 (11:13 -0800)]
simpleperf: stop recording when app exits.

Bug: http://b/71708104
Test: run test.py.
Change-Id: I06ff0cb4feb046a7e66cea4640e3cbbd71cbb86d

6 years agoPerfprofd: Add symbolizer interface
Andreas Gampe [Thu, 4 Jan 2018 22:22:50 +0000 (14:22 -0800)]
Perfprofd: Add symbolizer interface

Add an interface for symbolizer support, translating a path an
offset to a symbol string.

Test: perfprofd_test
Change-Id: I9510ed308330735ec1023d9bccd972441a4cced6

6 years agoMerge "simpleperf: improve unwinding result report."
Treehugger Robot [Fri, 5 Jan 2018 23:42:35 +0000 (23:42 +0000)]
Merge "simpleperf: improve unwinding result report."

6 years agosimpleperf: improve unwinding result report.
Yabin Cui [Fri, 5 Jan 2018 01:17:55 +0000 (17:17 -0800)]
simpleperf: improve unwinding result report.

1. Add stack range in unwinding result.
2. Add option to omit callchains fixed by callchain joiner.

Bug: http://b/69383534
Test: manually.
Change-Id: I9672061a8972ac79c321fc5d5e63950369c63e9c

6 years agoMerge "Perfprofd: Fix tests"
Treehugger Robot [Thu, 4 Jan 2018 21:46:55 +0000 (21:46 +0000)]
Merge "Perfprofd: Fix tests"

6 years agoPerfprofd: Fix tests
Andreas Gampe [Thu, 4 Jan 2018 06:28:18 +0000 (22:28 -0800)]
Perfprofd: Fix tests

Properly manage test directories. Allow running the test out of
its directory.

Test: adb shell 'cd /data/local/tmp ; ./perfprofd_test'
Change-Id: I622eec59210d581472ad406c06e564ef9d171ba3

6 years agoMerge "Don't TEMP_FAILURE_RETRY on close."
Treehugger Robot [Thu, 4 Jan 2018 19:14:56 +0000 (19:14 +0000)]
Merge "Don't TEMP_FAILURE_RETRY on close."

6 years agoMerge "Perfprofd: Fix tests"
Treehugger Robot [Thu, 4 Jan 2018 18:56:17 +0000 (18:56 +0000)]
Merge "Perfprofd: Fix tests"

6 years agoPerfprofd: Fix tests
Andreas Gampe [Wed, 3 Jan 2018 20:39:53 +0000 (12:39 -0800)]
Perfprofd: Fix tests

Follow-up to previous logging changes.

Test: development/testrunner/runtest.py --path=system/extras/perfprofd/tests
Change-Id: I5444edfdbc643fca679bb5017142f8b9e605169a

6 years agoMerge "Perfprofd: Start binder service by default"
Treehugger Robot [Wed, 3 Jan 2018 01:23:11 +0000 (01:23 +0000)]
Merge "Perfprofd: Start binder service by default"

6 years agoMerge "Perfprofd: Add process-specific profiling"
Treehugger Robot [Fri, 29 Dec 2017 03:33:23 +0000 (03:33 +0000)]
Merge "Perfprofd: Add process-specific profiling"

6 years agoPerfprofd: Start binder service by default
Andreas Gampe [Fri, 29 Dec 2017 02:02:43 +0000 (18:02 -0800)]
Perfprofd: Start binder service by default

Enable the binder service.

Test: m
Test: device boots, perfprofd is running
Change-Id: I7ee197997c11f1a9135a2e38fe7557b0088392e0

6 years agoPerfprofd: Add process-specific profiling
Andreas Gampe [Thu, 28 Dec 2017 03:20:45 +0000 (19:20 -0800)]
Perfprofd: Add process-specific profiling

Allow to restrict profiling to a process.

Test: m
Test: adb shell 'cmd perfprofd startProfilingProto - < /data/local/tmp/test.proto'
Change-Id: I4d56fb1b3f578130cf29fce7bcb6558e7434ab1f

6 years agoMerge "Perfprofd: Add a sample python script"
Treehugger Robot [Thu, 28 Dec 2017 23:38:40 +0000 (23:38 +0000)]
Merge "Perfprofd: Add a sample python script"

6 years agoMerge "Perfprofd: Add startProfilingProtobuf"
Treehugger Robot [Thu, 28 Dec 2017 23:38:16 +0000 (23:38 +0000)]
Merge "Perfprofd: Add startProfilingProtobuf"

6 years agoMerge "Perfprofd: Add IsProfilingEnabled to Config"
Treehugger Robot [Thu, 28 Dec 2017 23:36:00 +0000 (23:36 +0000)]
Merge "Perfprofd: Add IsProfilingEnabled to Config"

6 years agoDon't TEMP_FAILURE_RETRY on close.
Josh Gao [Thu, 28 Dec 2017 22:13:38 +0000 (14:13 -0800)]
Don't TEMP_FAILURE_RETRY on close.

close always succeeds, even if it was interrupted and "fails" with
EINTR. Retrying will either close a nonexistent fd or stomp on another
thread's newly opened file descriptor.

Bug: http://b/20501816
Test: treehugger
Change-Id: I706d5e8027e60b13f23f9488fdf5cf7cef7b3d3b

6 years agoPerfprofd: Add a sample python script
Andreas Gampe [Thu, 28 Dec 2017 00:52:18 +0000 (16:52 -0800)]
Perfprofd: Add a sample python script

Add a sample script parsing the proto output of perfprofd.

Test: PYTHONPATH=$PYTHONPATH:development/scripts python system/extras/perfprofd/scripts/perf_proto_stack.py
Change-Id: Ia291495632072373dd8594f9c4d80b6b9bb11ada

6 years agoPerfprofd: Add startProfilingProtobuf
Andreas Gampe [Wed, 27 Dec 2017 18:57:34 +0000 (10:57 -0800)]
Perfprofd: Add startProfilingProtobuf

Add a binder interface to start profiling with a protobuf detailing
the configuration. Some light internal refactoring to reuse the
profiling driver.

Test: m
Test: adb shell 'cmd perfprofd startProfilingProto - < /data/local/tmp/test.proto'
Change-Id: I94bb220124d7200d75890bbeb7a5d153d959e02f

6 years agoMerge "Perfprofd: Move binder code to libperfprofd_binder"
Treehugger Robot [Thu, 28 Dec 2017 01:28:32 +0000 (01:28 +0000)]
Merge "Perfprofd: Move binder code to libperfprofd_binder"

6 years agoPerfprofd: Add IsProfilingEnabled to Config
Andreas Gampe [Wed, 27 Dec 2017 19:23:41 +0000 (11:23 -0800)]
Perfprofd: Add IsProfilingEnabled to Config

Move part of enablement to Config. Maintain standard behavior for
the old version. The binder version always has profiling enabled,
and depends on the caller to determine the state.

Test: m
Change-Id: I6f27582132c7051299c0132a7d8f301b433c1c8e

6 years agoPerfprofd: Move binder code to libperfprofd_binder
Andreas Gampe [Wed, 27 Dec 2017 18:44:42 +0000 (10:44 -0800)]
Perfprofd: Move binder code to libperfprofd_binder

Refactor binder-related code into a static library.

Test: m
Change-Id: I2c976b1973dbc299e8c7d32a80bfa7fa062c08ed

6 years agoMerge changes I1572afcf,Ia6786225,Ia338f92c,I58312b59
Treehugger Robot [Sat, 23 Dec 2017 08:10:04 +0000 (08:10 +0000)]
Merge changes I1572afcf,Ia6786225,Ia338f92c,I58312b59

* changes:
  Perfprofd: Implement simpleperf interrupt
  Perfprofd: Implement stopProfiling
  Perfprofd: Implement startProfiling
  Perfprofd: Add binder service