• Home
  • History
  • Annotate
  • only in /external/perfetto/tools/
History log of /external/perfetto/tools/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
41844eda55fdb325430d622e65dc6ff16c6a61c1 23-May-2018 Lalit Maganti <lalitm@google.com> perfetto: add ability to override upload limit flag on debuggable builds

This allows for us to override the failsafe which limits how much data
we can upload per day on userdebug builds.

Bug: 80129651
Test: unittests
Change-Id: Ie683801bbb64ee2017a13a3e39e1969c4cb08b24
Merged-In: Ie683801bbb64ee2017a13a3e39e1969c4cb08b24
en_android_bp
567a5111ff3fad730c1b9c8b1a77a09f187a7385 25-Apr-2018 Primiano Tucci <primiano@google.com> traced_probes: fix tid/pid incremental mapping and reduce overhead

This CL:
1) Fixes an architectural bug related to the way tid/pid mapping is
established. The current proto structure, in fact, is strictly
hierarchical and requires that a process and all its threads are
dumped together. This has two problems: (i) it either requires to
always dump all threads for a process or re-dump the process
record for each thread; (ii) doesn't deal with the fact that new
threads can be spawned after the initial dump.
2) Fixes a performance bug, reducing traced_probes cpu usage by more
than 30% when process metadata collection is enabled.
3) Removes unused/forked code and puts everything into
process_stats_data_source.cc.

In terms of risk this CL should be rather safe. The entire
process_stats_data_source.cc is an optional module and can be
disabled at any point through the TraceConfig.

(cherry picked from commit bd0c02f02090a2b06d0ea93155aa0fcc05ff0cbc)

Bug: b/78453224
Bug: b/78106582
Bug: b/77316877
Change-Id: I4592c9c0317c6f66b68357684ce9cd0577c9bdb5
Merged-In: I4592c9c0317c6f66b68357684ce9cd0577c9bdb5
race_to_text/main.cc
c27975c03347743354b09aae02e8ac53008399ee 10-Apr-2018 Lalit Maganti <lalitm@google.com> trace_to_text: add raw output mode for compact summaries

This allows tools to parse summary output without resorting to parsing
the output of trace to text.

Bug: 73228552
Change-Id: I4f54e0c4bbf4f1d9f4db44e0f6b25a07ecf61212
mux
race_to_text/main.cc
3cbb10a30c000fcd2cd4658dd215778422c7bbb1 10-Apr-2018 Primiano Tucci <primiano@google.com> Remove warning suppressions and fix many casting bugs

This change removes most warning suppressions, in particular
from production code. In the past we inherit a bunch of -Wno-xxx
suppressions required to build gtest and libprotobuf headers.
Doing so, however, caused the suppressions to propagate back to
the translation units that were including any protobuf header
or any auto-generated .pb.h stub.
This change moves the gtest and probobuf header to be a
system include (-isystem vs -I). Doing so implicitly blacklists
any compiler warning on the headers.
This CL then re-enables warnings and deals with the fall out of
fixes that came out of this.

Bug: 77316877
Test: pefetto_unittests / perfetto_integrationtests
Change-Id: I3a01852ebf7d0b9bf19658ddf117209d129c70be
trace_proto_gen/ftrace_proto_gen.cc
trace_proto_gen/ftrace_proto_gen_unittest.cc
trace_proto_gen/main.cc
roto_to_cpp/proto_to_cpp.cc
kippy/skippy.cc
race_to_text/ftrace_event_formatter.cc
race_to_text/main.cc
1d8956a0564eb97b07f267f5ea27714ef9a49289 10-Apr-2018 Florian Mayer <fmayer@google.com> Add f2fs events.

Also adds a new sets of format files: android_flounder_lte_LRX16F_3.10.40

Bug: 73625480
Change-Id: I0e2fbabc2aaae1dc0f25aecdbc89ccc83ef4fa5d
trace_proto_gen/event_whitelist
race_to_text/ftrace_event_formatter.cc
race_to_text/ftrace_inode_handler.cc
e7ca7c6e3a1633777c2aa62bdfa9619561ea1e3e 07-Apr-2018 Primiano Tucci <primiano@google.com> Fix test failure by reducing max shm size to 32 MB

Tests are failing on travis because the max allowed SHM size
was set to 2GB. Lowering down to 32 MB.
Also fixing the emulator scripts for mac.

Bug: 73625175
Change-Id: Ia6c3e6df38674c1e4a6723ae87589efe1605c257
nstall-build-deps
un_android_emulator
238c550d8131f3b35dae437182c924191ff08b72 06-Apr-2018 Florian Mayer <fmayer@google.com> Add tool to find scan roots.

Bug: 73625480
Change-Id: I93b405feb999aaed9675d2ea52712663fa83c9e0
ind_scan_roots.py
b0f0071122d91d343e448898ae2b26a060978b0e 04-Apr-2018 Florian Mayer <fmayer@google.com> Use separate unix socket for tools/tmx.

Bug: 76169489
Change-Id: Id8fd7b3465b8e0a09c3d43a6aa817ba4eee04152
mux
aef0c5300a9f527eef929df546fd924230e5c840 04-Apr-2018 Florian Mayer <fmayer@google.com> Add unittests for file_scanner. Fix minor bug.

Bug: 73625480
Change-Id: Ice90c62ee6dd9742add9627cf7d8c9b9f2e6d741
est_data.txt
b2499471f6636a2fa2fddcafd56be44392780edd 03-Apr-2018 Isabelle Taylor <taylori@google.com> Fix bug in summary trace to text.

Trace to text summary now counts tids without any child threads.

Change-Id: I7a7c38403f9d96cb8dbf6f176d2c9d2a4cca8a57
race_to_text/main.cc
38faa6fb533d3c83264dfed38ba5345ad978821d 01-Apr-2018 Primiano Tucci <primiano@google.com> Improve stacktraces on Linux/Android standalone debug builds

Improves stacktraces on Linux/Android using libbacktrace.
The library is used only in standalone builds and not shipped
in any official (Chrome or Android) build.
libbacktrace has the advantage of using dwarf info for
symbolization and not requiring to export the dynamic symbol
table (which doesn't work because we have to build with
-fvisibility=hidden because of protobuf)

Bug: 76169489
Change-Id: I308050947c2c57fec630ea94712ee81a5a6543b3
nstall-build-deps
1b9c58a175e5b414904aed2878bdf7517f7fdfb0 29-Mar-2018 Hector Dearman <hjd@google.com> Added process tree config.

Process tree config contains an enum that allows the initial process dump or the on demand process dumps to be disabled.

Also contains a fix for the autogenerator code that makes it work for repeated enums.

Change-Id: I0666a890db87d2f857b2bcf9500d935b3a77c869
en_merged_trace_config
en_tracing_cpp_headers_from_protos.py
roto_to_cpp/proto_to_cpp.cc
dae356561b19fa29c6a9dd63737062cffe18582a 29-Mar-2018 Primiano Tucci <primiano@google.com> Allow to configure InodeFileDataSource.

Bug: 74584014
Change-Id: I4f3afd96e7e017e2ca2a10aac661460a97d4f90c
en_merged_trace_config
en_tracing_cpp_headers_from_protos.py
7187df1513e6c61b5a7774bf9df28b4069cc8487 29-Mar-2018 Primiano Tucci <primiano@google.com> Merge "perfetto: fix android Travis build"
131b6e5d9b0d7924006f372ec4741c31e7de27cb 29-Mar-2018 Lalit Maganti <lalitm@google.com> perfetto: add benchmark for fixed rate producer

This benchmark tries to rate-limit how fast the producer is writing to
measure the CPU usage of the producer and service.

Bug: 74380167
Change-Id: Ic5e1c6a51394efeff9a291e89d1c06f13ad23f6d
un_android_test
e8322896a9b30723af2a307fcea431e5a3b10368 29-Mar-2018 Lalit Maganti <lalitm@google.com> perfetto: fix android Travis build

Bug: 76169489
Change-Id: I82f3b1a5351380ad0209963e9852fd7615ec38fc
race_to_text/main.cc
45c9b1840dbb20eb4825d0a7022f50c9f92da860 29-Mar-2018 Primiano Tucci <primiano@google.com> Introduce "json" and "systrace" output in trace_to_text

This renames systrace -> json, and introduces a pure text-only
output with the "systrace" command.

Bug: 73611302
Test: manual
Change-Id: Id13b561eebc4430dbaf7850591ca89f0b92a0864
race_to_text/ftrace_event_formatter.cc
race_to_text/main.cc
3c4e5c27a1ec10cb16fbb75ae4bdd45be2f93505 29-Mar-2018 Hector Dearman <hjd@google.com> traced_probes: Support on demand proccess info

Bug: 73058765
Change-Id: I62801d558363a66c1683b12cb58ae6b36daf8515
mux
a7c04f8664979b605f38dba68b361b48da2db70a 29-Mar-2018 Hector Dearman <hjd@google.com> traced_probes: Fix pid snapshot

Three changes:
1) Currently there are issues with very large trace packets, put each
proccess in its own trace packet as a workaround.
2) Reading the cmdline is special since the cmdline is uses \0 as an
argument seperator. We have to either: plumb the exact size we read
or zero the whole buffer before we read. The latter is simplier in the
current code so do that.
3) QOL changes to tools/tmux

Bug: 73058765
Change-Id: I0ec6775b3ff8c4c01f450752f4c75b773faade3a
mux
5e8fa4b6f11c49df07e70314f79060109a72ad42 29-Mar-2018 Anna Zappone <azappone@google.com> trace_to_text: Verify filesystem scanning numbers

Add sanity checks in trace to text by comparing inodes seen in
ftrace events to the inodes resolved in InodeFileMap trace packets.

Bug: 73625480
Bug: 74584014
Change-Id: I82e2081b46c03375e907342578626874efda1f20
race_to_text/main.cc
21c19d86d766f917725797906a379b1a404aa069 29-Mar-2018 Primiano Tucci <primiano@google.com> Support building trace_to_text in the Android tree

Bug: 73611302
Test: manual
Change-Id: I93934ca6a2af050700f34dbb73139d01b570c47d
en_android_bp
race_to_text/BUILD.gn
race_to_text/ftrace_event_formatter.cc
race_to_text/main.cc
ea56fd3d10e1f2548481d69e64f569d0d03135e9 28-Mar-2018 Primiano Tucci <primiano@google.com> Fix msan and mac build

Bug: 73283884
Change-Id: I2c83bc2d176f989fb1d23379d5d44d5fc8e9397c
race_to_text/main.cc
7c10462b049ee89df7bb99803d125e1c2a8b6512 28-Mar-2018 Anna Zappone <azappone@google.com> trace_to_text: Add I/O sanity checks

Switch ftrace_proto_gen to match new Trace to Text structure.
Add two initial I/O sanity checks: unique inode count and events
with inodes count to summary.

Bug: 73625480
Bug: 74584014
Change-Id: I513e0fa84cf4074dbec7ded548671d834a7faae2
trace_proto_gen/ftrace_proto_gen.cc
trace_proto_gen/ftrace_proto_gen.h
trace_proto_gen/main.cc
race_to_text/BUILD.gn
race_to_text/ftrace_inode_handler.cc
race_to_text/ftrace_inode_handler.h
race_to_text/main.cc
910852d8c372be99dddf93b02adea9f6b0875fec 28-Mar-2018 Lalit Maganti <lalitm@google.com> perfetto: fix gcc build

Bug: 76169489
Change-Id: I7798bf33f815500b7436cc07b180a1114c3fa667
race_to_text/ftrace_event_formatter.cc
race_to_text/main.cc
d496ea53e67678f65bf88d17e1839e2b35cb4293 28-Mar-2018 Isabelle Taylor <taylori@google.com> Added process tree data to the trace to text summary.

Change-Id: Id01089dbb1941a49e3be3e5a317cb9519c58acfa
race_to_text/main.cc
85ef5369c713a2c495e0aafd4e0019816da9eb9d 27-Mar-2018 Hector Dearman <hjd@google.com> trace_to_text: Add summary mode

Change-Id: Ic0e4e7baa81368407b309d3c98d525e0e549ce76
ix_include_guards
trace_proto_gen/ftrace_proto_gen.h
race_to_text/BUILD.gn
race_to_text/ftrace_event_formatter.cc
race_to_text/ftrace_event_formatter.h
race_to_text/main.cc
f4bc1d16d3862be10ef4dc4d211e1b24055ace48 26-Mar-2018 Hector Dearman <hjd@google.com> Replace PERFETTO_CHECK(false) with PERFETTO_FATAL

Bug: 69362224
Change-Id: I7feb47a72be5c47728a74209eef83614de1b111a
roto_to_cpp/proto_to_cpp.cc
2ffd1a5d7b39627a5aa8085995ac5209e755e644 27-Mar-2018 Primiano Tucci <primiano@google.com> Add support for long running traces

This CL adds the ability to pass a file descriptor to the
service when enabling tracing and periodically draining the
trace buffers into that file directly from the service.
This CL does not change the default behavior (which is: stream
the trace over IPC) but allows to change it when setting
|write_into_file|==true into the trace config.

More in details this CL:
- Adds new fields to the trace config to support passing the
FD, as well as tuning the write period and max file size.
- Adds an explicit OnTracingStop() notification to the
Consumer, as it can no longer rely on
OnTraceData(has_more==false) to determine when tracing ended.
- Removes the OptimizeFor argument of TraceConfig, which ended
up being never-used.
- Adds a SIGINT signal handler to the perfetto cmdline client,
allowing to gracefully stop the trace and get back the results
when hitting CTRL-c once.
- Stops using a temporary file when NOT using --dropbox, as the
trace file will be valid even if not finalized.
- Add large traces support to trace_to_text by tokenizing the
packets before passing them to the protobuf decoder (which would
accept at most a 64M protobuf)

Matching SELinux CL: aosp/648831

Test: perfetto_unittests --gtest_filter=TracingIntegrationTest.*
Bug: 73625179
Change-Id: I28043bdbef6cac730f1797b6bc5b72ecf0acac79
mux
race_to_text/main.cc
a812a9404f73cbf0976385f6afa1df2d8c309d3f 23-Mar-2018 Oystein Eftevaag <oysteine@google.com> In Chrome, build as shared library rather than directly linked sources

As libperfetto is linked into multiple Chrome components, this should
slightly cut down on linking time.

Change-Id: I885d49042625e00002032737ea5fb43c9bf1af90
roto_to_cpp/proto_to_cpp.cc
26a54d3473c585ac7e38e72689710b0f1483c326 23-Mar-2018 Florian Mayer <fmayer@google.com> Use const reference instead of value.

Change-Id: Ibcc6cd71e3e305d99598f35e700c818f4fc53aef
Bug: 76169489
trace_proto_gen/main.cc
bfc3d3eb18074ac0a39d8e4501603a601caad4d5 22-Mar-2018 Lalit Maganti <lalitm@google.com> perfetto: add end to end benchmarking

Bug: 74380167
Change-Id: I448d72492e9a2aaa1123188f38b79492d4be6851
un_android_test
c99d93c1744c461ce9702c8655f92e4afa1800b8 22-Mar-2018 Lalit Maganti <lalitm@google.com> perfetto: update benchmark dep

This allows us to use range based for loops which are meant to give
more accurate benchmark results

Bug: 74380167
Change-Id: Ie3e5b90fed2eeaa6ffaecb7e4bb9b198c1a17bcd
nstall-build-deps
6aa7557b7146cb80b9f98e6fec2fc43bc805db55 21-Mar-2018 Primiano Tucci <primiano@google.com> Add host target for perfetto protos on Android host builds

This CL introduces a "perfetto_trace_protos" static_library
target that allows to link the perfetto protobuf code on
host executable builds.
This CL also disentangles some awkward dep between proto:lite
targets and the IPC proto targets, that was indirectly causing
the core tracing target to depend on ipc.
Also fixes a small breakage on mac by removing an unnecessary
include in trace_to_text.

Sample usage:

In the .bp file:
---
cc_binary_host {
name: "perfetto_proto_test",
static_libs: [
"perfetto_trace_protos",
"libprotobuf-cpp-lite",
],
srcs: [
"host_test.cc"
],
}
---

Where host_test.cc:
---
#include "perfetto/trace/trace.pb.h"

int main(int, char** argv) {
perfetto::protos::Trace trace;
return trace.ParseFromString(std::string(argv[1]));
}
---

Bug: 73611302
Change-Id: Ie371e82941890a3a7567c30261befd756147cc1c
Test: manual. Checked that builds on mac.
en_android_bp
en_tracing_cpp_headers_from_protos.py
race_to_text/main.cc
96928abe66f533ab8e71bd852295e5649425b4bf 21-Mar-2018 Treehugger Robot <treehugger-gerrit@google.com> Merge "perfetto: Add a testing program"
dbd08783f554b8651fc00417e3a50e096419d324 21-Mar-2018 Florian Mayer <fmayer@google.com> make constants constexpr.

Change-Id: I0b38444339992e3f3fec40f4b72ced57b7c97481
race_to_text/main.cc
3639700b4743851bdd6a5cd4e04790d52b68ea11 20-Mar-2018 Hector Dearman <hjd@google.com> perfetto: Add a testing program

It's often hard to know if we're dropping data from ftrace, the systrace
UI is naturally gappy when the CPUs are idle. Skippy is a test program
that produces visually identifiable output in the systrace UI for
debugging dropped data. Skippy is so named because it skips between
CPU cores to produce the pattern.

Change-Id: I3409b5271f2562c857d19b9fc55a517d9161212d
kippy/BUILD.gn
kippy/skippy.cc
1cfb31257b561018e577c69b62fe8db8f4349f34 19-Mar-2018 Anna Zappone <azappone@google.com> Merge "ftrace_reader: Update for uint64 block device ids"
8ce30879c9384dfb870d7496fdff62e2e0f5db50 19-Mar-2018 Anna Zappone <azappone@google.com> ftrace_reader: Update for uint64 block device ids

Switch previous code for plumbing uint32 device ids to translate to uint64 and add
translation strategies for uint64 device ids.
Add static_casts for inode numbers as well.

Bug: 73873362
Bug: 73625480
Change-Id: Id76ef4759739e78994c7b5bd2a9f85dc7d0890e3
trace_proto_gen/ftrace_proto_gen.cc
trace_proto_gen/ftrace_proto_gen_unittest.cc
race_to_text/main.cc
c067d41f00bb77b5b5d752028b4fe77f936f5021 16-Mar-2018 Hector Dearman <hjd@google.com> perfetto: Add linux support to tools/tmux

Change-Id: Ib61e7322862fc0ad48fb56594684341e84bc8c06
mux
2166b71f3fbc66e4e8bcb1c12d28fcce993b7a8d 16-Mar-2018 Anna Zappone <azappone@google.com> Fix JSON error and add I/O events

Bug: 73625480
Change-Id: I3c1f057a4e7cb8d8c8c72b60b58e7edbf99b0edd
race_to_text/main.cc
0ff07c7f4fdf27a7eacc53353c140e4ca8785f98 15-Mar-2018 Hector Dearman <hjd@google.com> probe_producer: Post metadata to helper sources

ftrace_reader needs a way to signal to the inode/ps metadata sources
with vectors of intresting inodes/pids. It should signal only data
sources which belong to the same tracing session. These sources may not
exist. Rather than keeping many parallel maps up to date and having
lookups in the fast path instead everytime a new datasource is created
we do a pass though all the ftrace datasources and try to set weak
pointers on them leading to the corresponding inode/ps datasources.
Then when we see metadata we post task to relevent datasource via the
weak pointer.

Bug: 73873362
Bug: 73625715
Bug: 73625480
Change-Id: I8371067f0e948733ed8d321479031deaa4ca7db9
mux
3bc8438c319ae68c420d727ad857972c38ceb27f 14-Mar-2018 Primiano Tucci <primiano@google.com> Merge "perfetto: foo:foo_unittests -> foo:unittests"
599e3e282bf748703a3398a909315eadc08e6a7e 14-Mar-2018 Hector Dearman <hjd@google.com> perfetto: All tests should end in 'Test'

Bug: 69362224
Change-Id: I4d009a79d29b09cd7cc3904408722bda0bca86af
trace_proto_gen/ftrace_proto_gen_unittest.cc
6cfec8af466b831595633946cf972a84fe4e6a16 14-Mar-2018 Hector Dearman <hjd@google.com> perfetto: foo:foo_unittests -> foo:unittests

Rename unittests targets from foo_unittests to unittests.

Bug: 69362224
Change-Id: Icb2ca5cbf00b78a1a54443ee603cce271cad2179
trace_proto_gen/BUILD.gn
74b73a992f0f9d86dff8a96c0ef73a713c71b775 09-Mar-2018 Florian Mayer <fmayer@google.com> Add utility function to get block device -> mountpoints.

Bug: 73625480

Change-Id: I996580d398a1ae7323d1fcbb4a792af53f22c8f3
trace_proto_gen/main.cc
3f5705c949361d50daccbd44fc8abd234abb766e 09-Mar-2018 Lalit Maganti <lalitm@google.com> perfetto: refactor testing code to make benchmarks easier to write

Bug: 74380167
Change-Id: Idfb37433e610dd4871127fb5fe01fe6ca6ea28a1
en_merged_trace_config
en_tracing_cpp_headers_from_protos.py
ab3b1b220624f3fb645ea757468d3089644b9aba 09-Mar-2018 Oystein Eftevaag <oysteine@google.com> Added proto for ChromeTraceEvents, and a config string to the DataSourceConfig for Chrome tracing as well

Change-Id: Ida4b690887769319323de722114aef9297653a72
en_merged_trace_config
en_tracing_cpp_headers_from_protos.py
09db827c202e5f23895ab278b7e360ba34152d77 08-Mar-2018 Primiano Tucci <primiano@google.com> TraceBuffer: minor cleanups

Minor cleanups in preparation for next CL.
The major changes introduced by this CL are:
- Intoduce a dedicated PatchList class
- Add uid support to TraceBuffer

Test: perfetto_unittests
Bug: 73612642
Change-Id: Id1c13e569b61e9265b79653598e81aed84064ecd
roto_to_cpp/proto_to_cpp.cc
27ac99cdfc7822e7abaf72de5a44ff6bd0af5fd4 06-Mar-2018 Anna Zappone <azappone@google.com> probes_producer: Add initial code to put inodes into their own trace packet

Bug: 73625480
Change-Id: I6fa2e9b7dc4d378a0f57bf049af7a8c6d7833a82
race_to_text/main.cc
79f3f91596fcd877cce99bf81fd306eb733f2265 02-Mar-2018 Primiano Tucci <primiano@google.com> NotifySharedMemoryUpdate -> CommitData

This CL replaces the NotifySharedMemoryUpdate with a new
CommitData method. The new fields in the CommitDataRequest are
not used yet and will be used in the upcoming CLs.
This CL doesn't introduce any behavioral change.
The only other change here is about getting rid of
the callback in SharedMemoryArbiter. There seems to
be no good reason for that, and just makes the code
harder to read.

Test: perfetto_unittest
Bug: 73612642
Change-Id: I12c9fd7133d1916e30eb31fc50014d64b1e35be0
en_tracing_cpp_headers_from_protos.py
954d8ed604c478e636e9c2f60829b46efd7abf01 01-Mar-2018 Primiano Tucci <primiano@google.com> Add "protos" package to the ipc/*.proto files

We accidentally forgot to add "protos" to the package name
of those .proto files in the previous rounds. This was
creating class names collision problems in upcoming CLs.
Also fixing a minor bug in the proto_to_cpp tool when
dealing with repeated POD fields.
This is a non-funtional refactoring.

Change-Id: I1b03752c499de448ea6fe8f23b1259df9cc3c87e
roto_to_cpp/proto_to_cpp.cc
4acbb2000936cb3001f19afe84830ed1b874dcc6 28-Feb-2018 Hector Dearman <hjd@google.com> Merge "perfetto: Use push --sync where possible in tools/tmux"
9b89d474dda658a87d9f1fedee609eb1a9eff2f9 28-Feb-2018 Hector Dearman <hjd@google.com> perfetto: Use push --sync where possible in tools/tmux

adb push --sync doesn't send the file if the host version
hasn't been updated. This is much faster when repeatedly running
tools/tmux however the feature is only available in recent adb
versions. This Cl makes tools/tmux use it where it is available.

TBR: primiano@google.com
Change-Id: Ieb20e980b7d5c75919ec620d7e01fc9e25ca61e2
mux
3ea38882c5ce8661479efe7d457c39d1106e6b3c 27-Feb-2018 Isabelle Taylor <taylori@google.com> ftrace_reader: Added more events for processes.

Specifically:
- sched/sched_process_exec
- sched/sched_process_exit
- sched/sched_process_fork
- sched/sched_process_free
- sched/sched_process_hang
- sched/sched_process_wait
- task/task_rename
- task/task_newtask

Bug: 73058765
Change-Id: I5748b96b1c8fb4ebf4ac6518037771b30a43e0a6
trace_proto_gen/event_whitelist
race_to_text/main.cc
6e4e0383b0baf72512e5d44339c43808179808ca 27-Feb-2018 Anna Zappone <azappone@google.com> ftrace_reader: Adding events for IO

Bug: 73625480
Change-Id: I6856afe6e10b2fba7a25fe700cb250e81847f6cf
trace_proto_gen/event_whitelist
trace_proto_gen/ftrace_proto_gen.cc
trace_proto_gen/ftrace_proto_gen.h
trace_proto_gen/main.cc
race_to_text/main.cc
e3504978d34a9a25fe111e83b7aa9207f99979f3 26-Feb-2018 Isabelle Taylor <taylori@google.com> Added support to read multiple fields from cmdline.

Bug:73058765
Change-Id: I855d50393048ea9700d7ea050b95df1fc405e6d7
race_to_text/main.cc
a89cc57b3ef7cf381dccb2f2fdd27dcff7666d31 23-Feb-2018 Hector Dearman <hjd@google.com> perfetto: Move FtraceConfig to own file

Bug: 73231296
Change-Id: I547865ef6c5f7a365f54acece2142063191d95a1
en_merged_trace_config
en_tracing_cpp_headers_from_protos.py
d404ea1f6a7f4fa896229ea9da8000dd717eb499 19-Feb-2018 Isabelle Taylor <taylori@google.com> Dump process data in trace.

This is now integrated. We are not doing anything with the data at the moment.

Bug:73058765
Change-Id: Ib141465f345f3629e15c5269bc024ef6fc503fe7
ump_process_data/BUILD.gn
ump_process_data/file_utils.cc
ump_process_data/file_utils.h
ump_process_data/main.cc
ump_process_data/process_info.h
ump_process_data/procfs_utils.cc
ump_process_data/procfs_utils.h
race_to_text/main.cc
6325426c2262ce5f756fc1949b7fc75396e1c50e 19-Feb-2018 Anna Zappone <azappone@google.com> Merge "Save inode numbers in cpu_reader to get inode to filename mappings"
503f6c4f51cdc40da30c487ea0615c533ed5a3f6 16-Feb-2018 Lalit Maganti <lalitm@google.com> perfetto: make include guards file also run on test folder

Change-Id: I338d73eccf56e7e5cd8044b3e6779967ac7b6a46
ix_include_guards
74b1f2ac0ad97dd0470d17cc2d220875f739f3e1 16-Feb-2018 Anna Zappone <azappone@google.com> Save inode numbers in cpu_reader to get inode to filename mappings

Change-Id: Ic6b38010871fb1b6f126f0176105528dbc939a3f
trace_proto_gen/ftrace_proto_gen_unittest.cc
40e9872d13586ca68cf7f6b8d24aa8c90e4472a2 16-Feb-2018 Primiano Tucci <primiano@google.com> Fix include guards and add PRESUBMIT

Also remove "include/" from the proto_to_cpp generated files.

Change-Id: If2cd4ce5ac3290ca9dffd114d48582ce2302efe8
ix_include_guards
ix_include_guards.py
roto_to_cpp/proto_to_cpp.cc
9bfaaf97de5aad1ccd269b62e3ea4040eff8d52a 13-Feb-2018 Logan Chien <loganchien@google.com> Fix PDK build

This commit disables "perfetto", "perfetto_integrationtests", and
"perfetto_unittests" in PDK builds because they depend on "libandroid"
or "libservices" which are 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: Id754c322fefa75d37c5acc55ef52b0efeb4f6e8a
en_android_bp
d15631b62e3b25faeca2e287714dec5c746163d9 12-Feb-2018 Isabelle Taylor <taylori@google.com> Dumps data about processes and threads.

Code mostly from https://cs.chromium.org/chromium/src/third_party/catapult/systrace/atrace_helper/jni/.

Next step:
- integrate into codebase rather than have as a stand-alone tool


Bug:73058765
Change-Id: Idfefa25488fb3e4db4194aa1da5dc23165f98955
ump_process_data/BUILD.gn
ump_process_data/file_utils.cc
ump_process_data/file_utils.h
ump_process_data/main.cc
ump_process_data/process_info.h
ump_process_data/procfs_utils.cc
ump_process_data/procfs_utils.h
627978ab3699f2a751d83c9cb39874f645e458d8 12-Feb-2018 Florian Mayer <fmayer@google.com> Merge "Use asan-use-private-alias for ASAN to prevent ODR violation."
2198b072fb436d362a448d1977f71637a7c6dc8e 12-Feb-2018 Florian Mayer <fmayer@google.com> Use asan-use-private-alias for ASAN to prevent ODR violation.

Bug: 72681031
Change-Id: I3e015b886043c0abb38a2baddd5e255d0a91decf
uild_all_configs.py
917983ce3f949904a958da633282a78e33b226e4 09-Feb-2018 Hector Dearman <hjd@google.com> Merge "ftrace_reader: Adjust formatting of autogen code"
1ea11492afa987b4ed865c595bb93bef1cbfc6db 08-Feb-2018 Hector Dearman <hjd@google.com> trace_to_text: Fix seg fault

Also sort ftrace.cfg events while we're here.

Change-Id: I7180ab9924ce0aa36778b4de21ef13366f3f17ac
race_to_text/main.cc
22d4c57a232dcea4676fe9b9687a19ace3a5c103 08-Feb-2018 Hector Dearman <hjd@google.com> ftrace_reader: Adjust formatting of autogen code

The makes the output code better match clang format's expectations
removing the amount of unnecessary diff in future changes.

Change-Id: I88f2e9c59e050ff7cc2038522952e1998e8689c8
trace_proto_gen/ftrace_proto_gen.cc
322227bd803b72c94d23c78de465076fb2856d90 08-Feb-2018 Hector Dearman <hjd@google.com> Merge "Make tools/tmux do the right thing for non-mono builds"
c9c183a842b39768677446137a8d779847329081 08-Feb-2018 Hector Dearman <hjd@google.com> Make tools/tmux do the right thing for non-mono builds

TBR=primiano
Change-Id: If086419de7004e5255d25f42e8dbb928f3e7403f
mux
be6e3e7ae3189df5d67a0d69198c245f79e1f5b6 06-Feb-2018 Anna Zappone <azappone@google.com> Adding ftrace_events for events useful for long running traces

Bug: 72931698
Change-Id: I01f5005de61d2d9df1eb1d4c2fd8667d61e62dde
trace_proto_gen/event_whitelist
race_to_text/main.cc
6498fcf89bfb41a1a3b28dd177513bef4c4b3d67 06-Feb-2018 Isabelle Taylor <taylori@google.com> Autogenerate event_info.cc based on the event whitelist.

Also added code to handle Uint16 and Bool types in ftrace fields.

Bug:70373826
Change-Id: Iabbf97721b97223db77af74312bc415f071e2b5a
trace_proto_gen/ftrace_proto_gen.cc
trace_proto_gen/ftrace_proto_gen.h
trace_proto_gen/main.cc
pdate_protos.py
367fcd5cf0868b4aa7fde021690e7ed4c87a89f9 05-Feb-2018 Lalit Maganti <lalitm@google.com> perfetto: switch arm/arm64 emulators over to x64

Bug: None
Change-Id: If45a6cede3fde982088fe04e47d26f23b0294709
ndroid_emulators/arm.ini
ndroid_emulators/arm64.ini
nstall-build-deps
un_android_emulator
un_android_test
8188f31c836a71261944eaf74252a2fd531f3b5e 05-Feb-2018 Anna Zappone <azappone@google.com> Add extra ftrace events required


Bug: 72082535
Change-Id: I5df28e8668b9074e8d47e0b10e759232c604893b
trace_proto_gen/event_whitelist
race_to_text/main.cc
pdate_protos.py
8ec62a84025bf94d58546d853056fb89eb0cac59 01-Feb-2018 Hector Dearman <hjd@google.com> Merge "Update tmux script to take optional config variable"
c88a66d6c94ca57e3a40e51e1f47111b841d2f36 01-Feb-2018 Hector Dearman <hjd@google.com> Update tmux script to take optional config variable

Change-Id: Id177d44bf185f534953283da577b7ef05c82be6f
mux
853467e336227739d0121f39875b69bee36edf66 29-Jan-2018 Anna Zappone <azappone@google.com> Add ftrace event SchedWakeup

Bug: 72082535
Change-Id: Iad7bf1198df879195eaa191d19784fd932c8146a
trace_proto_gen/event_whitelist
race_to_text/main.cc
bfc8e60309bf208a12260d991116e009ce6f279e 30-Jan-2018 Florian Mayer <fmayer@google.com> Use use_custom_libcxx to fuzzer

This fixes an alignment problem when using ASAN.

Bug: 69150303
Change-Id: Iac7f81835644b40b072c7814bf404e3df200f460
uild_all_configs.py
b7cca200e551a0b4ea92c639f1d8b6d7279a088a 29-Jan-2018 Primiano Tucci <primiano@google.com> Improve logging and add tmux script

This CL:
- Improves a bunch of LOG statement to make them less spammy and
more demo-friendly.
- Tweaks the test config to add the new cpufreq/idle categories.
- Checks in hjd's tmux script for testing the standalone build.

Change-Id: I0ef7230556ded850277fc0cb5a14e6914fc75279
mux
045ce3ecf0a9c183de58e461994ed62622be3f72 26-Jan-2018 Hector Dearman <hjd@google.com> Merge "ftrace_reader: Add new ftrace events"
082551797f9ace78cc59cfd509425f16fe7a0c32 25-Jan-2018 Treehugger Robot <treehugger-gerrit@google.com> Merge "Add fuzzer target to build_all_configs."
7f37dc899fc5cb56a5f5d5c75790dfa775104fc8 25-Jan-2018 Hector Dearman <hjd@google.com> ftrace_reader: Add new ftrace events

Plumb events for atrace categories freq, load and idle.

Change-Id: I5f2ad525647d6b5fe779b572dc82c75345e500b4
trace_proto_gen/event_whitelist
trace_proto_gen/ftrace_proto_gen.cc
trace_proto_gen/ftrace_proto_gen.h
trace_proto_gen/ftrace_proto_gen_unittest.cc
ull_ftrace_format_files.py
race_to_text/main.cc
pdate_protos.py
3990b71b254916c71dc683f57ca02ff711b72098 24-Jan-2018 Treehugger Robot <treehugger-gerrit@google.com> Merge "trace_to_text: Update proto paths"
0b32c7276adbb3d1f126bd8763b47e9eddb8789e 24-Jan-2018 Sami Kyostila <skyostil@google.com> trace_to_text: Update proto paths

Change-Id: I3ede8cad6449bc42f456dda82d22ec8b9b186ba1
race_to_text/main.cc
79f2d7b24c2c964162305be9aab0a66fbefc700e 23-Jan-2018 Lalit Maganti <lalitm@google.com> perfetto: add end to end integration tests

These tests will run on a new target known as perfetto_integrationtests
with perfetto_tests renamed to perfetto_unittests.

Change-Id: I467eafd84cade516861f79295f06bb0768e46a30
en_android_bp
un_android_test
73904b945da72ff1984b965233bb86c2e999ffae 23-Jan-2018 Florian Mayer <fmayer@google.com> Add fuzzer target to build_all_configs.

Bug: 69150303
Change-Id: I26c126d61a65852a3bbde5a3ac6b69cf497b78dc
uild_all_configs.py
08882a479519feb78d857eff39242d20f3ee1c4e 19-Jan-2018 Primiano Tucci <primiano@google.com> Change the autogenerated config proto

Reiterating on this. It turns out that trying to include a
.proto from //frameworks/base to //external is too hairy.
This CL changes the generator to generate a fused proto that
can just be copied inside both statsd and internal Google repos.

TBR=hjd
Bug: 71743564
Change-Id: Ic9c769bfa2d8799bcd15f8d4e51c7c62ea2eb66d
en_merged_trace_config
c501080f9163072f632530ac2a64c513aed109e7 19-Jan-2018 Primiano Tucci <primiano@google.com> Generate merged trace config for use in the Android tree

This solves two problems:
1) Including > 1 .proto from the android tree is too complex due
to the unusual way protoc handles relative include paths
(foo/../external/proto.proto and external/proto.proto are
considered distinct and then collide on multiple redefinitions).
2) We really don't want to expose the datasource-specific config to
the rest of the tree. That causes just unnecessary mainteinance
pain when trying to add new DataSourceConfig(s).

Bug: 71743564
Change-Id: I53f83ff69cc70a56f0d72383cac238100b554273
en_merged_trace_config
en_tracing_cpp_headers_from_protos.py
3d5e7e672583bd8a20c4429045638b5283ab97b3 19-Jan-2018 Florian Mayer <fmayer@google.com> Propagate defines to Android.pb

In particular this propagates -DGOOGLE_PROTOBUF_NO_[RTTI|STATIC_INITIALIZERS].
This saves another ~30K on ARM64.

Change-Id: Id4f7ac9d2013e7c3f3fa0fd9014f5a8e4617d43e
Bug: 71844955
en_android_bp
08622fc10e3e9eabcaf0ce4f133a81faf1df3db9 19-Jan-2018 Florian Mayer <fmayer@google.com> Merge "Update hermetic clang to match CLANG_REVISION."
20b760c0fd3e6b5d753ee499c71122a5fd84518e 19-Jan-2018 Primiano Tucci <primiano@google.com> Reshuffle .proto files under /proto

This CL does the following:
1) Separates the proto files under three folders (config, trace, ipc).
This allow to have distinct targets that the various clients can
link in, without pulling in the rest.

2) Moves all the protos under a "perfetto" subdirectory. This is to
reduce the ambiguity of the import statements within the .proto
files themselves. Now all imports look like:
import "perfetto/trace/trace.proto";

As a side effect this also means that both the perfetto public
headers (i.e. the code under include/) and the generated protobufs
are accessible as #include "perfetto/XXX".

Change-Id: I05d13a7b720fe50edb078fc99758b0f58b8feabc
en_android_bp
en_tracing_cpp_headers_from_protos.py
roto_to_cpp/proto_to_cpp.cc
rotoc_helper.py
race_to_text/BUILD.gn
race_to_text/main.cc
4b3b13beefadb2b2bf2c79508da510e2c9c39489 19-Jan-2018 Florian Mayer <fmayer@google.com> Update hermetic clang to match CLANG_REVISION.

Change-Id: I003d98d7ee1fe40077e29bc1d32bcd67f17b6674
nstall-build-deps
c2a38ea365bcc47939db5555af8d4298123d7371 19-Jan-2018 Florian Mayer <fmayer@google.com> Set -Oz for all cc targets.

Bug: 71844955
Change-Id: Icb544bd8892aa6d1a4a7de577373798256870a58
en_android_bp
fcbafda1b1c7989ba4d701d1165b678240d7a727 18-Jan-2018 Hector Dearman <hjd@google.com> Add protoc_helper

Add a mechanism for turning human readable TraceConfig configs
into protobuf encoded versions.

Change-Id: I66419f074c1cd8f10583d20d12e75ea02f094c7e
UILD.gn
rotoc_helper.py
7e2b67a4fd92a288f8856c6d213d7c73bf75a042 16-Jan-2018 Primiano Tucci <primiano@google.com> Changes for statsd integration

- Introduces a dedicated target for our protos.
This will be required by statsd for including
our protos in their config proto.
- Improves error handling when passing the wrong
cmdline arguments.
- Moves the creation of /data/misc/perfetto-traces
to the initrc.

Bug: 71743564
Change-Id: If61d833a57928ddcebcb49d0f82b2490e727b626
en_android_bp
39071bab88ffc96bef406014a99196acf9107209 16-Jan-2018 Hector Dearman <hjd@google.com> ftrace_reader: Move some code for generating the protos into tools/

We put too much code into src/ when refactoring the ftrace format
reader code. This puts some of the stuff we don't really need back
under tools/.

Bug: 71844955
Change-Id: I75cd18c7faedcab7806e83f93238b282341a0a68
trace_proto_gen/BUILD.gn
trace_proto_gen/ftrace_proto_gen.cc
trace_proto_gen/ftrace_proto_gen.h
trace_proto_gen/ftrace_proto_gen_unittest.cc
trace_proto_gen/main.cc
e8a77601d3694fd393e0b306e2caa962c4f54e3e 16-Jan-2018 Primiano Tucci <primiano@google.com> Fix trace_to_text host binary generation

This CL fixed a bug in the proto_library.gni, that rebases
the proto file onto the |root_out_dir| rather than |root_build_dir|.
This causes an extra ../ in the invocation of protoc.
This also makes it so that the trace_to_text is built only for the
host but the binary is copied in the root build directory.

Change-Id: Ib50e6a5dd949d197fc3d5780aad2e9574ec34111
race_to_text/BUILD.gn
20b3c1cbeb4e287e62b773817898f5fc43f24087 15-Jan-2018 Hector Dearman <hjd@google.com> Add trace_to_text

To estimate overhead of perfetto we would like to use... perfetto!
To allow for this reintroduce the 'trace_to_text' binary from the demo
which takes in a Trace and outputs systrace formatted text viewable
in the TraceViewer.

Other changes in this CL:
- Introduce a 'Trace' proto.
This proto is just a repeated field of TracePackets
- Modify perfetto_cmd to output a Trace rather than just all the
TracePackets back to back.
- To allow for this perfetto_cmd has a new dep on protozero.
- Fix a bug in ftrace_controller.cc where we implemented the generation
count for each periodic task we started rather than once for each set
of periodic tasks.

Change-Id: I2c9c194dfa85217bb2de02741bc2c4bcd1a0f908
race_to_text/BUILD.gn
race_to_text/main.cc
cc424fd9e3508d6a3385f17b71505247cd8fce1e 15-Jan-2018 Florian Mayer <fmayer@google.com> Set fvisibility=hidden per default.

This reduces the size of libtraced_shared.so by ~half.

Bug: 71844955
Change-Id: Ie961920297af9dc08287cc25c815d46c8ae266f3
en_android_bp
c5bcd79a68812219f7ded1d7b7591b0b6faef496 12-Jan-2018 Lalit Maganti <lalitm@google.com> perfetto: add support from blueprint generator to include extras

We will need this for the CTS tests which are built in the Android platform
only using Android.bp specific flags. Including of writing these as GN
then adding support to translate to the generator, just allow arbitary
extras to be tacked onto the end of the blueprint.

Also, on the side, export the include header for all static_library targets.
This is necessary to utilise these headers when in platform.

Bug: None
Change-Id: I5042a9f33c7bf6364940fa60cb17cbdef8ee3e3d
en_android_bp
b5b716939b88f27dd4d8e96cfa67bbec59277924 12-Jan-2018 Sami Kyostila <skyostil@google.com> Implement DropBox uploading

This patch adds a --dropbox flag to the perfetto tool for uploading the
recorded trace file into DropBox.

Change-Id: I42ce9080292aa45f2442033a5c1d23c83e6e3855
en_android_bp
f3837d56400bc3dc870d542c2de30386e3f6704f 10-Jan-2018 Primiano Tucci <primiano@google.com> Add --background option to perfetto cmdline util

This is to allow continuing the trace in background, detaching from
the TTY and creating a new session via daemon().
Also this CL gets rid of the older test/producer_cmd. It's not
needed anymore now that have an official client binary.
Also adds a monolithic_binaries GN arg for local development only
that allows to test binaries without pushing the .so separately.

Bug: 71795552
Change-Id: I11afa582244f5e5a2b9a57328eddbb0f388c2182
en_android_bp
5a30453f065961560d49d0e2e40cecbaa5e4fb22 09-Jan-2018 Primiano Tucci <primiano@google.com> initrc file for Perfetto

This CL turns the perfetto daemons into two standalone
executable. Given the amount of shared code between the
two (traced and traced_probes) the code is shared in a
.so library.
Also adds the corresponding initrc files.

Corresponding /sepolicy/ changes:
https://android-review.googlesource.com/c/platform/system/sepolicy/+/574422

Change-Id: I3566d31757dd7fbf2478ca6512a6b655753a7fd6
en_android_bp
b9609618145e89cf2c1528e1a37db02f258164e9 09-Jan-2018 Primiano Tucci <primiano@google.com> Merge "Fix run-buildtools-binary.sh to work on my computer"
14f0b9f6ee0eba1503177c1b065d0deeb0d139ec 08-Jan-2018 Hector Dearman <hjd@google.com> Fix run-buildtools-binary.sh to work on my computer

Change-Id: I967a3ff15c2d5709417c323e2b5384bba83fa233
un-buildtools-binary.sh
edf099ca4554042cfe9e1961c1210fb1226f9e03 08-Jan-2018 Primiano Tucci <primiano@google.com> Add a way to use libraries from the Android tree

This patch adds a gn variable build_with_android which makes it possible
to use Android internal (i.e., non-NDK) libraries when Perfetto is being
built as a part of the Android tree.

Change-Id: I935582fa969ab230b9ab0ac7d392dfeace802b0e
en_android_bp
3b7291029cf836f548d12857c59813779431e51a 08-Jan-2018 Primiano Tucci <primiano@google.com> Add skeleton of perfetto cmdline tool.

Test:
- ninja -C out/android_x64 perfetto
- adb shell "stop traced_probes; stop traced; start traced; start traced_probes;"
- adb push out/android_x64/perfetto /data/local/tmp/ && \
adb push out/android_x64/libtraced_shared.so /data/local/tmp && \
adb shell "LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/perfetto -c :test -o /data/local/tmp/trace"

Change-Id: I44d53c5b043df426bcb9e5577fdeaaa387a4eb70
en_android_bp
6067e73b16b76ad385a15a0a4290f425ecbdf1e3 08-Jan-2018 Primiano Tucci <primiano@google.com> Split executables and introduce common shared library

[Splitting this CL off https://android-review.googlesource.com/c/platform/external/perfetto/+/575382]
This CL turns the perfetto daemons into two standalone
executables. Given the amount of shared code between the
two (traced and traced_probes) the code is shared in a
.so library.

Change-Id: I370a536ed3576e991e01032c183f7cdf61a4b7d3
en_android_bp
63b62c4712b5e12512a88f702fc8ace94b16c407 04-Jan-2018 Sami Kyostila <skyostil@google.com> Fix include paths in generated headers

Instead of '#include "include/perfetto/..."' the generated proto header
files should use '#include "perfetto/...' as regular headers. Otherwise
they can't be included from a project embedding Perfetto.

Change-Id: I44dbf28f780feea4220e7a25004a541291bdf306
en_tracing_cpp_headers_from_protos.py
roto_to_cpp/proto_to_cpp.cc
4e49c02676a07a43945db7864e3a17a054d46926 21-Dec-2017 Primiano Tucci <primiano@google.com> Make traced a top-level executable

- Make a little change to the Android blueprint generator, which
makes it so that executables in the top-level BUILD.gn file
don't get the perfetto_ prefix. This allows to get a binary
in the Android.bp that is called just "traced" and ends up in
/system/bin/traced
- Adds the consumer_cmd binary introduced by the previous change
(Iccf88b7b1d2beb6a0750adafd86d92a0f563182d) to the blueprint.

Bug:
Change-Id: Ia091ba35f186a451c4c0e111fcc03a0d8decf816
en_android_bp
74aa6efd10fd1001e51a153aba9aef6c0c53b3b2 20-Dec-2017 Primiano Tucci <primiano@google.com> Merge "Android test runner: add option to avoid pushing data deps"
3e712a043954cf48cbd1891bce451952cd0df452 19-Dec-2017 Hector Dearman <hjd@google.com> Add skeleton of traced

Add the build structure for the traced deamon.

Change-Id: I047b6ff62f95e5ea4ef709d57f81eebd0eccf9ae
en_android_bp
ebba0febdc422b9ee5d4f043ce731764a216663d 19-Dec-2017 Sami Kyostila <skyostil@google.com> Switch tracing source sets into static libraries

Change the source sets under src/tracing to static libraries and
implement static library support in the blueprint generator. This is the
first step in providing something Perfetto clients can link against.

Change-Id: I00f5dffc6d5cc931be807f00be1d9cf71a65436b
en_android_bp
931284e58ea1e3a740f0fb975367f95bf91f8150 11-Dec-2017 Primiano Tucci <primiano@google.com> Fix TSan flakiness

Using example from TSan docs.

Change-Id: I87294447baf5bbc11bbfe036bafebb1d4bd6dad3
anitizers_unittests/sanitizers_unittest.cc
480c68b6ad24f801a769f8d90dcec40203ded061 19-Dec-2017 Primiano Tucci <primiano@google.com> Android test runner: add option to avoid pushing data deps

Most unittests don't require the full test_data.txt deps to be
pushed on the device. Adding an option to fasten the test cycles
in those cases.

Change-Id: I1dd69e5bb907f808f9dcd79fa629ad17ef23c717
un_android_test
71625d7a5938a905c2c4b36c65027f03a4af8b8b 18-Dec-2017 Sami Kyostila <skyostil@google.com> Use genrule instead of cc_genrule in Android.bp

Since the proto compiler doesn't need .o files as input, we can use a
genrule instead of cc_genrule to run it.

BUG=70682781

Change-Id: I2bb74df3ce60edeb654574d21c51096f3fbb9395
en_android_bp
57e67e141cb2ed720c369b244d832186d5d38dbb 18-Dec-2017 Primiano Tucci <primiano@google.com> Add copy constructors to proto-generated structs.

Will be needed by upcoming CLs.
Also fix an include guard in a ftrace file.

Change-Id: I8698115ce70f5631e41eee6980db2feb3acae475
TBR=hjd@google.com
roto_to_cpp/proto_to_cpp.cc
fc074d49145c5fe9e068fc78f5a403722ac2ad11 15-Dec-2017 Sami Kyostila <skyostil@google.com> Disable usage of libunwind

The Android blueprint for libunwind disables the target on Darwin,
causing a build failure if we depend on it. We don't need libunwind in
production code so don't emit a dependency on it.

TBR=primiano@google.com
Change-Id: Ic1807927a8524e708292912512e68e141fa4d259
en_android_bp
9640399d57f7721b22ba0df58d578538df936ecb 14-Dec-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Add a presubmit check to keep Android.bp up-to-date"
bf76f4fdaeadddb34569c259351adc54f5c4e1e6 14-Dec-2017 Primiano Tucci <primiano@google.com> Only check-out the emulator for the target architecture

This is to reduce the space used on travis which seems to be
hitting the 20GB limit.

TBR=hjd

Change-Id: I31cfa8a1b33e75f10c6f6b5a277ce485b5c2ff77
nstall-build-deps
b27619f72e76f0ffcb5bc96f3b761d931cb74517 13-Dec-2017 Sami Kyostila <skyostil@google.com> Add a presubmit check to keep Android.bp up-to-date

When trying to upload a change which affects build files,
but does not update Android.bp to match, the following presubmit
error gets triggered:

Android.bp is out of date. Please run tools/gen_android_bp to update it.

This patch also replaces Android.bp with the output from the generator.

Change-Id: If60c1c101cd640d91b477b022c2db83acbd0711f
en_android_bp
f9a290eb28070a5307f63752e8fd935c1ec736d6 13-Dec-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Add an Android.bp generator"
865d1d387043a5dc93faef44e481cb0aa84c0a44 12-Dec-2017 Sami Kyostila <skyostil@google.com> Add an Android.bp generator

This patch adds a tool to automatically generate the Android.bp
blueprint file from the GN build files. The tool isn't used yet; it will
later be hooked up to a presubmit check which ensures Android.bp is kept
in sync with BUILD.gn changes.

TEST=gn desc out --format=json --all-toolchains "//*" > desc.json
tools/gen_android_bp desc.json //:perfetto_tests > .../external/perfetto/Android.bp

Change-Id: I81bc646f37a512bb278d135e1a571b8bfafce9a2
en_android_bp
5fec9219679a5d2f895af8e3e07a5982c280fab0 12-Dec-2017 Primiano Tucci <primiano@google.com> Introduce proto -> pure c++ code generator

It will be used to generate pure C++ headers / translation units
from trace_config.proto, data_source_config.proto and
data_source_descriptor.proto.
This allows to keep in sync the .proto files and the C++ classes
in tracing/core more easily.
The end goal is to allow clients of the tracing/core API to not
have to depend on libprotobuf (unless their source TraceConfig is
a proto and they want to have that dependency deliberately).

Change-Id: I0fdc53071661bba14af867d01d0a001accc082dc
en_tracing_cpp_headers_from_protos.py
roto_to_cpp/BUILD.gn
roto_to_cpp/proto_to_cpp.cc
7a40e4d530f2764dd4a3f9a1e6d517d0654fb82d 06-Dec-2017 Primiano Tucci <primiano@google.com> Move build -> gn/standalone

Make it explicit that those gn files are only for the standalone
build.

Bug: 68710794
Change-Id: I7e2a15219d63b62bf8f249becfdbf39fda2cc183
ndroid_emulators/arm.ini
ndroid_emulators/arm64.ini
uild_all_configs.py
n
nstall-build-deps
inja
un-buildtools-binary.sh
un_android_emulator
un_android_test
est_data.txt
b03ba36a7ed038f2c547b79eb839d738a437143e 06-Dec-2017 Primiano Tucci <primiano@google.com> Unify test targets under perfetto_{tests,benchmarks}

To avoid collisions in chrome on binary names like base_unittests.
Also drop the ipc_test.cc which was a half demo and not really a
test. The full code and real tests will come in the next weeks.

Bug: 68710794
Change-Id: Ib472cc344e0a3316dfbad90108c9638647409809
anitizers_unittests/BUILD.gn
4f9b6d7b7b2ad7b86e1577a18dc6e2df91b98164 05-Dec-2017 Primiano Tucci <primiano@google.com> Pivot source files into top-level src,include and unify test target

See discussion in go/perfetto-build-files .
This is to disambiguate things like
#include "base/logging.h"
when in the chrome tree.

Also this CL unifies the test targets into two monolithic targets:
perfetto_tests and perfetto_benchmarks. This is to avoid ending
up with confusing binary names in the chrome tree (e.g.,
ipc_unittests)

Bug: 68710794
Change-Id: I1768e15b661406052b2be060d7aab0f1e7443a98
ix_include_guards.py
trace_proto_gen/BUILD.gn
trace_proto_gen/main.cc
anitizers_unittests/BUILD.gn
dd727e4127b6162dfaf2534c1657e44f7f0a7404 05-Dec-2017 Oystein Eftevaag <oysteine@google.com> Support building Perfetto as part of Chrome

Change-Id: I4ea39895852e8fa02df7e0ad45f6b4b103ec3195
trace_proto_gen/BUILD.gn
anitizers_unittests/BUILD.gn
e02ebe116660e35598a19f0601b9813999e2da20 22-Nov-2017 Hector Dearman <hjd@google.com> Fix small bugs with pulling ftrace files

1) Support tabbing in explorer.html
2) Add a .gtiignore for private ftrace file sets.
3) Pull whole tracing/ file rather than events/

Change-Id: Ie49ed926662a21f00bb913bf807d7133baf57cfa
ull_ftrace_format_files.py
2193ff479559dde894eeb01980b441c618c822d7 08-Nov-2017 Hector Dearman <hjd@google.com> Move format parser files from tools/ to ftrace_reader/

Change-Id: If54aad8d22c3850dd6665a2366a6efb7672a5aec
trace_proto_gen/BUILD.gn
trace_proto_gen/format_parser.cc
trace_proto_gen/format_parser.h
trace_proto_gen/format_parser_unittest.cc
trace_proto_gen/ftrace_to_proto.cc
trace_proto_gen/ftrace_to_proto.h
trace_proto_gen/ftrace_to_proto_unittest.cc
trace_proto_gen/main.cc
2c650f8e452823cc07aa96de1b86d88b45f474b0 08-Nov-2017 Hector Dearman <hjd@google.com> Add FtraceEventBundle and FtraceEvent protos

Change-Id: Ia3789340eb89dcb8355ff5491721e41746ad23f7
trace_proto_gen/ftrace_to_proto.cc
45c061413c5668ad724d28df0fd69359585f051d 07-Nov-2017 Hector Dearman <hjd@google.com> Fix names of autogenerated ftrace protos

Change-Id: I8dd654a1ea18c10b439facb9933580ee6b61d342
trace_proto_gen/ftrace_to_proto.cc
trace_proto_gen/ftrace_to_proto_unittest.cc
87ab8b0823a84ab250034ff03155a25acb7cf5b5 06-Nov-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Add M format files and explore script"
34669a71a99f59e7883053d8015cb66d2faec2a8 06-Nov-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Add ftrace_proto_gen_unittests to ci"
7d5b253ad6af04089ebcd48ff31f4fd31a06571a 26-Oct-2017 Hector Dearman <hjd@google.com> Add M format files and explore script

1) Add a set of format files for hammerhead, MRA59G, 3.4.0
2) Fix the pull_ftrace_format_files.py to handle \r in adb output
3) Add the ftrace explorer script: ./libftrace/test/explorer.html

Change-Id: I330d2c3f1d95d321abacb2c08856fd17ac3edbcb
ull_ftrace_format_files.py
48d9eca8e59a96dfce3995ccd60b563c5b802604 31-Oct-2017 Primiano Tucci <primiano@google.com> Fix sanitizers README.md

Change-Id: I2828cc6a1847ea0a4e55939905e0a460c6ca6aa1
anitizers_unittests/README.md
798bcdf9f85a24adb4fbc09dc623b1814abe1969 31-Oct-2017 Hector Dearman <hjd@google.com> Add ftrace_proto_gen_unittests to ci

Change-Id: Ic0cca953704c244e6ed6e371fcf947f0c7922179
trace_proto_gen/BUILD.gn
trace_proto_gen/format_parser.cc
7278deabe0baf4c1ac08d21ffe400ebe1e820d6a 31-Oct-2017 Primiano Tucci <primiano@google.com> Use custom libcxx by default on Linux and fix sanitizers

This CL:
- switches Linux to libcxx by default.
- turns libcxx into a DSO for sanitizers.
- fixes a bunch of sanitizers build files.
- enables the sanitizers cross-checks on the CI.

Background:
There are mainly two C++ libraries around in the world: (i) GNU's
libstdc++ and LLVM's libc++ (aka libcxx). By default Linux provides libstdc++
(even building with clang on Linux uses that by default) while Mac and
Android switched to libcxx.
buildtools/libcxx(abi) contains a fixed version of the libcxx, the same one
that Chrome uses on most production configurations (% lagging catching up
with our DEPS). The variable use_custom_libcxx tells our build system to
prefer the aforementioned copy to the system one.

Now, there are two reasons for using the /buildtools version of libcxx:
1) Sanitizers requires that the c++ library is built from sources, see
https://github.com/google/sanitizers/wiki/MemorySanitizerLibcxxHowTo.
2) The libstdc++ situation is too wild on Linux. Modern debian distros are
fine but Ubuntu Trusty still ships a libstdc++ that doesn't fully
support C++11. Hence we enable this flag on Linux by default.
We still retain libstdc++ coverage on the Travis bots by overriding
use_custom_libcxx=false when we target a modern library (see the
GCC7 target in .travis.yml).

Bug: 68256752
Change-Id: I70a99351cff6582663101bf26583f20460076013
anitizers_unittests/sanitizers_unittest.cc
46c66db013d605c7fcd1bec36b528564454efce1 26-Oct-2017 Hector Dearman <hjd@google.com> First pass at generating protos from a whitelist

Adds a script (tools/update_protos.py) which uses
tools/ftrace_proto_gen to generate proto files from format files.

Also adds an initial whitelist and matching protos.

Usage:
./tools/update_protos.py
out/linux/ftrace_proto_gen
libftrace/test/data/android_seed_N2F62_3.10.49
protos
--whitelist tools/ftrace_proto_gen/event_whitelist

Change-Id: I0cfe41066cc1bed054087f41ee2f799d75e19bad
trace_proto_gen/event_whitelist
trace_proto_gen/ftrace_to_proto.cc
trace_proto_gen/ftrace_to_proto_unittest.cc
pdate_protos.py
7aa054727229d17a9c07d7741dd5a101390a2664 25-Oct-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Add script to extract format files"
70ce01d27c87f485f714cf92e55a053e9b510b06 24-Oct-2017 Hector Dearman <hjd@google.com> Remove extra whitespace from auto-generated protos

This makes the auto-generated protos match clang formats
desires.

Change-Id: I73572f0f02c6b15676044faf350628e054d74dd9
trace_proto_gen/ftrace_to_proto.cc
355d7ba0294d439e157702a657dc3ab43e947c47 24-Oct-2017 Hector Dearman <hjd@google.com> Add script to extract format files

Adds a Python script which extracts all files matching:

/sys/kernel/debug/tracing/events/*/*/format

From an Android device into a directory named:

android_productname_buildid_kernelversion
(e.g. android_seed_N2F62_3.10.49)

The layout of the directory matches
/sys/kernel/debug/tracing/events except it only contains the
'format' files.

Usage:
$ .tools/extract_formats.py
$ ls
android_seed_N2F62_3.10.49
$ find . -type f | grep sched_switch
android_seed_N2F62_3.10.49/perf_trace_counters/sched_switch_with_ctrs/format
android_seed_N2F62_3.10.49/sched/sched_switch/format

Change-Id: If5beb4ea98bd7f7f710bcb6ca5d33a919339a4fc
ull_ftrace_format_files.py
b06bc48cdc615533c4f3c11efe2ab1cd2d108927 23-Oct-2017 Primiano Tucci <primiano@google.com> Move sanitizers_unittests under tools and add README

The sanitizers unittests are not specific to libtracing.
It makes more sense for them to be under tools/.

Change-Id: I6fbb7e9c289039a1e866d044c5fe3b8b6e1eec07
anitizers_unittests/BUILD.gn
anitizers_unittests/README.md
anitizers_unittests/sanitizers_unittest.cc
be61adfb1a7ceacb1113832ef75be23cb932863f 18-Oct-2017 Hector Dearman <hjd@google.com> Add format parser

$ cat tools/ftrace_proto_gen/ion_alloc_buffer_end.format | ./out/linux/ftrace_proto_gen /dev/stdin /dev/stdout
// Autogenerated, do not edit.
syntax = "proto3";
message ion_alloc_buffer_end {
string client_name = 1;
string heap_name = 2;
uint32 len = 3;
uint32 mask = 4;
uint32 flags = 5;
}

To test on a large corpus:
$ wget https://hjd.users.x20web.corp.google.com/www/2017-10-10-perfetto-format-files/testdata.tar.gz
$ tar -zxvf testdata.tar.gz
$ rm testdata.tar.gz
$ find testdata -type f | grep 'format' | while read f; do echo $f; python testdata/test_proto_gen.py out/linux/ftrace_proto_gen out/linux/gcc_like_host/protoc "$f"; done

Change-Id: I8afa0097e681e5bbf4cbbf33501be006e14dc973
trace_proto_gen/BUILD.gn
trace_proto_gen/format_parser.cc
trace_proto_gen/format_parser.h
trace_proto_gen/format_parser_unittest.cc
trace_proto_gen/ftrace_to_proto.cc
trace_proto_gen/ftrace_to_proto.h
trace_proto_gen/ftrace_to_proto_unittest.cc
trace_proto_gen/main.cc