History log of /external/perfetto/src/tracing/core/service_impl.cc
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
361f1e2e39054b2002ce0b22b7c74387559610a8 08-May-2018 Primiano Tucci <primiano@google.com> Limit concurrent traces to 5 to prevent stalls in traced_probes

This re-sets a heuristic limit that has been dropped during
a previous refactoring. This is still not the right clean fix
(that would require revisiting the logic in traced_probes),
but is good enough to avoid hitting the problem in practice.

(cherry picked from commit a690a7d79fe15b1e084825a3d3e8b108750e34db)
Bug: 73052144
Change-Id: Iefec4ba044e32906092b1ceeb8e645e1f3c4c41f
Merged-In: Iefec4ba044e32906092b1ceeb8e645e1f3c4c41f
/external/perfetto/src/tracing/core/service_impl.cc
e81a3eda4818e0b6fce302c89eaaeb99459afa2a 30-Apr-2018 Primiano Tucci <primiano@google.com> Add stats about dropped events to the trace

Bug: 78765090
Change-Id: I673ce7bd6bb671ffa73faaf7f72a651b7e160901
Merged-In: I673ce7bd6bb671ffa73faaf7f72a651b7e160901
(cherry picked from commit 5e33cad06edd950934f5a1e925ed6b07125c3a47)
/external/perfetto/src/tracing/core/service_impl.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
/external/perfetto/src/tracing/core/service_impl.cc
d52e627deeeeae323e65ee266d2bf0dcedee3c98 06-Apr-2018 Primiano Tucci <primiano@google.com> Add Flush support to Producer and expose API to Consumer

Background
----------
Before this CL, when tracing is disabled we might lose the last
trace packets produced near the end of the trace. This happens
because the service sees data in the SMB only when it's notified
by the producer via a CommitData() request. In turn, in the current
implementation, a Producer commits data only when the chunk is full.
Hence the last chunk for each data source will never been seen by
the service when disabling tracing. This causes partial data losses.

Changes
-------
This CL introduces a Flush() signaling mechanism as follows:
3) Introduces a flush request from the service to producers. Producers
are supposed to flush all their trace writers in response to that.
2) Introduces a flush request from the consumer to the service. This allows
the consumer to request all data to be committed at any time (not just
while disabling tracing). The flush request has also a callback
that is invoked by the service only after all producers have acked the
flush (so the consumer is guaranteed that the next ReadBuffers will contain
the result of the flush), or after a given timeout (so that the callback
doesn't hang forever).
3) Causes time-based traces (which are handled by the service) to
automatically flush before disabling tracing.

This CL does NOT fix the underlying problem in the ftrace reader
(see bug 73886018) where, because of the splice, we don't see the
latest trace event even on the producer side. Fixing this problem
requires the Flush() to abort the splice in ftrace's CpuReader and
commit the data (see TODO in SinkDelegate::Flush()).

Change-Id: Ifdec9f241b2ff98a7b4925b02fdd0beb16942e0e
Bug: 77684460
/external/perfetto/src/tracing/core/service_impl.cc
1a1951d8b7ea0735e607b301eba5b24ab5d4f225 04-Apr-2018 Primiano Tucci <primiano@google.com> Fix logic to decide SMB page and size from config

The current logic that was deciding the SMB total size
and page size, using both data from the producer hint and
data in the trace config was broken in some corner cases.
This CL fixes the bugs and adds tests.

Bug: 73625175
Test: perfetto_unittests --gtest_filter=ServiceImplTest.*
Change-Id: Id0da9dbe64c2008f6296362ab8057503a5cd5efd
/external/perfetto/src/tracing/core/service_impl.cc
dca727d1ac065f7937b69001a5bcd8b290281fb6 04-Apr-2018 Primiano Tucci <primiano@google.com> Refactor unit-testing of core/service_impl.cc

This just improves unit-testing of ServiceImpl by
introducing MockProducer/ MockConsumer classes.
Also this renames (without adding any new behavior)
the existing methods Producer::OnTracing{Start,StopTracing}
as follows:
- OnTracingStop -> removed as it's currently unsupported
(see b/77532839)
- OnTracingStart -> renamed to OnTracingSetup, because
this is what it does. Also this name conflicts with
Consumer::OnTracingStart, which has a different semantic
and happens at different times.

Also this CL renames Consumer::OnTracingStop to
OnTracingDisabled to match the {Enable,Disable}Tracing methods.

Change-Id: Ided455d3b37cfefdfbc3eda94e5feccaeeb15a5d
/external/perfetto/src/tracing/core/service_impl.cc
07e104d1cd893c3bd4f7ff3706edb0cf0b3b87c2 03-Apr-2018 Primiano Tucci <primiano@google.com> Reduce binary size (1.6MB -> 600K) by removing protos/trace:lite dep

This CL removes any dependency from {traced, traced_probes, perfetto}
to //protos/trace:lite. Neither of them really require such dependency
and it causes significant binary bloat due to all the hundreds
.pb.{cc,h} generated by libprotobuf for any possible trace packet.
Specifically:

traced_probes: needs only to depend on the "zero" protos, for writing.

traced: needs the official protobuf only for the following reasons:
- Packet validation (e.g., trusted uid)
- Directly injecting some special packets (TraceConfig, uid, clocks)
Neither of them requires really the hundreds trace packets. They
can just use TrustedPacket, which doesn't pull in the other packets.

perfetto: it requires only TraceConfig, but that is a separate smaller
target.

Bug: 77316877
Test: pefetto_unittests / perfetto_integrationtests
Change-Id: I6e01b47af3313887c685ffb4614009910413bbea
/external/perfetto/src/tracing/core/service_impl.cc
01c45f0d2f22d2cfc7a032365b8e1ce3d7855a1d 29-Mar-2018 Sami Kyostila <skyostil@google.com> service: Fix trace write period drifting

Align trace file write periods to fixed intervals to avoid drifting over
time.

Bug: 73452932
Change-Id: Icf7290a3d89219a1ab51aa1515417de322b4f794
/external/perfetto/src/tracing/core/service_impl.cc
9daa483d6ec09b56b9832bd7ecd1f08c7f00c26c 29-Mar-2018 Primiano Tucci <primiano@google.com> Remove DataSourceID and registration callback

Turns out we never actually need neither the notion of
a DataSourceID (!= DataSourceInstanceID) nor a callback
for RegisterDataSource. They represent only useless boilterplate.
It is just more convenient to use the data source name as a key,
we already rely on that being unique.
The proof is that none of the code we have made any use of that
and everything still works without.

Bug: 68854243
Test: perfetto_unittests / perfetto_integrationtests
Change-Id: I67ba8d3f5618760d530d56b474bd46e737484896
/external/perfetto/src/tracing/core/service_impl.cc
02f46be997e5f70ab72839800c69d0094e65b824 29-Mar-2018 Isabelle Taylor <taylori@google.com> Filter producers for each data source.

Data sources specify in the producer_name_filter which producers they care about.
If no producer_name_filter is specified then the data source is enabled for all producers.

Bug:73625220
Change-Id: Ibb190d3fbc843c3d70e18534ac13a7dd386a1bd7
/external/perfetto/src/tracing/core/service_impl.cc
d61b85f768fbc76fb3fd685aa27481ea628edc2c 29-Mar-2018 Primiano Tucci <primiano@google.com> Fix TracePacket writing after splitting

Fix a small bug exposed by the packet-split logic that
was causing the cmdline client to write packet preambles
in the wrong order.

Bug: 76155349
Change-Id: I82264c8a625dd1b704a220e3d36e1be749cb6873
/external/perfetto/src/tracing/core/service_impl.cc
4966fdc25e4f845fc1b6475256871072eda68c2a 28-Mar-2018 Oystein Eftevaag <oysteine@google.com> POSIX clock_gettime is only available on OS X >= 10.12, only log the monotonic clock for now

Bug: 76169489
Change-Id: I52bd416f7ebaa46aedd8cfd6a85391ed113f6432
/external/perfetto/src/tracing/core/service_impl.cc
5ae66da437e5fd681606a922b87feab663d6bf39 28-Mar-2018 Primiano Tucci <primiano@google.com> Split large TracePackets over IPC

Allows to send TracePackets that are larger than the
IPC buffer size, by separating its chunks over several
messages. This relies on the fact that a packet's slice
will be << IPC buffer size, because of paging/chunking of
the SharedMemoryABI.

Bug: 76155349
Change-Id: Ia658bd349de17151a2b095b45e5c2cd4259a3b30
/external/perfetto/src/tracing/core/service_impl.cc
6214c8fcc26c19f1b6c9f677d353988ee3d4fac1 27-Mar-2018 Hector Dearman <hjd@google.com> Rename TraceBuffez -> TraceBuffer

find src include test tools -name '*.cc' -o -name '*.h' | xargs sed -i 's/TraceBuffez/TraceBuffer/g'

Change-Id: I94c4ec489637b374b57b5b5f548bf3d8a209bdf2
/external/perfetto/src/tracing/core/service_impl.cc
86262cb5c4ff1580caf919e30485b2540638f610 27-Mar-2018 Isabelle Taylor <taylori@google.com> Set SHM config for multiple producers.

The name of the producer is passed through the Connect methods.
This name is matched to the name in the trace config so that producer specific configs can be set.

Bug:74098471
Change-Id: I2aa9a910191d395259178eff62a5c750b3ed81d7
/external/perfetto/src/tracing/core/service_impl.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
/external/perfetto/src/tracing/core/service_impl.cc
dd703f051f777b036d2524c66a190be1fbe8e835 26-Mar-2018 Hector Dearman <hjd@google.com> prefetto: Remove old TODO

TBR: primiano@google.com
Change-Id: I304ba2411c18f90205d52fdc42f6d76dd2e0ff71
/external/perfetto/src/tracing/core/service_impl.cc
200bd2e3d7f0932465e33bd161d9ed883a05c12a 26-Mar-2018 Sami Kyostila <skyostil@google.com> Record incident details into the trace

This patch records incident details from statsd (config id, config uid
and alert id) into the trace (together with the full trace
configuration) so they can be cross-correlated.

Bug: 73627502
Change-Id: Ib552a8b5977bc39f0b9e37dc79011d4d26eab65e
/external/perfetto/src/tracing/core/service_impl.cc
bed265dd5f45e8ee381e68f4c1d474e4fea9f507 23-Mar-2018 Hector Dearman <hjd@google.com> perfetto: Enforce max shm page size

Bug: b/76153332
Change-Id: I377e4b1656c8ee7b739e12bfd521aa453cb61446
/external/perfetto/src/tracing/core/service_impl.cc
fe922333022d7360543ef39a07593786feeeef2f 23-Mar-2018 Primiano Tucci <primiano@google.com> Fix mac build

Bug: 76169489
Change-Id: I526b56e391750baea27a2664f0fd8fb30d3a9dd2
TBR: skyostil
/external/perfetto/src/tracing/core/service_impl.cc
69faa90450607d100b8f3ceedeb57cb04d600aaa 21-Mar-2018 Isabelle Taylor <taylori@google.com> Change SHM to be handled per producer

The size of the shm and the page size can now be specified per producer,
through the config file.
The shared memory is now created at the same time as the first data source,
instead of when the connection is first established.
As a side effect, the SharedMemoryABI had to be refactored to allow an
default constructor.

Bug:74098471
Bug:69708583
Change-Id: I1a75d81d91c4a7a531bb01c2b6224550e760eab2
/external/perfetto/src/tracing/core/service_impl.cc
fbccb3ca9ac425f59282e873d8f5bac2b1a321f6 21-Mar-2018 Sami Kyostila <skyostil@google.com> Record a periodic clock snapshot

Periodically (every 10s when packets are read) record a snapshot of all
system clocks. This will allow the consumer to align clocks between
multiple data sources.

Change-Id: I0f0d07764cff141d8874c4e225f90094d0836e7d
/external/perfetto/src/tracing/core/service_impl.cc
3e69ed9b33848d2bfeecfea5e1dbddae261d962d 14-Mar-2018 Primiano Tucci <primiano@google.com> perfetto: add callback to TraceWriter.Flush()

Adds the ability to attach a callback to the TraceWriter
Flush() method. This callback notifies when the service
has committed the corresponding data in the central
tracing buffer.
This is a quite important precondition for tests.

Bug: 73612642
Change-Id: If3896792e8f4ace81557b0097a6f66f8147077f9
/external/perfetto/src/tracing/core/service_impl.cc
ecf9e4ae4b387a9ddd42bd8a689d7b5861a61d55 14-Mar-2018 Primiano Tucci <primiano@google.com> Use new TraceBuffer and send patches over IPC

This CL wires up the TraceBuffer introduced by
the previous CLs (the TraceBuffeZ -> R will happen
in a rename-only follow-up). Also plugs in the
logic that sends the patches over IPC when a
chunk is returned.

Bug: 73612642
Change-Id: Ib7bf80bb067d0b8dc721a9d797a1f5edf24cc4b0
/external/perfetto/src/tracing/core/service_impl.cc
5317b5c76152e6ff4c49248ab37b2ed1eb1d467a 13-Mar-2018 Primiano Tucci <primiano@google.com> Adding Flush() to TraceWriter

Exposes an API to explicitly flush data from
TraceWriter. This will release the current chunk
and send an IPC to the service.
It's quite useful for tests.
Unrelatedly, fix unittests failure on mac.

Bug: 74380167
Change-Id: I5a03e411cedf993094d642ca6da1a873afce885e
/external/perfetto/src/tracing/core/service_impl.cc
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
/external/perfetto/src/tracing/core/service_impl.cc
42b36d07ad895700a07ba7788a1bd0d83256d175 08-Mar-2018 Primiano Tucci <primiano@google.com> Move target_buffer from ShmABI to IPC

Background:
-----------
The SharedMemoryBuffer is a pool of pages shared
between all data sources in a producer. If the
tracing session involves >1 buffer, data sources
might be producing data that is targeted to different
buffers. We need a way for the producer to tell the
tracing service what is the target buffer for each
chunk in the SMB.

So far this information has been stored into the
ShmemABI. This however introduced lot of unnecessary
complexity, mainly because there isn't enough space to
store the target_buffer in the chunk header, so we ended
up storing it in the page header. In turn this made both
page partitioning and finding a free chunk too complex.

This CL gets rid of most of this complexity and moves the
signaling of the target buffer to the CommitData IPC. We
are going to send an IPC to the service for each chunk that
needs to be drained anyways, that seems the most logical
place to plumb the target_buffer.

Test: perfetto_unittest
Bug: 73612642
Change-Id: Icd2b9b7394a74ad0c39b39072995cb89db4106ba
/external/perfetto/src/tracing/core/service_impl.cc
22e4b396fcfd44ef7f70c5f2ecb8f665eee97742 08-Mar-2018 Florian Mayer <fmayer@google.com> Run clang-tidy.

Change-Id: I4b173963d14a627daf319427ba2752fca482ada4
/external/perfetto/src/tracing/core/service_impl.cc
61c5548bc020f108b276a362ba50a93ad2a6507f 06-Mar-2018 Florian Mayer <fmayer@google.com> Add lockdown mode.

Bug: 73709863
Change-Id: I7f4eb122d85299d32546694195e0461bb9b47a09
/external/perfetto/src/tracing/core/service_impl.cc
485faff2aa6dba4f41d2be6834bd87adcc53c580 06-Mar-2018 Lalit Maganti <lalitm@google.com> perfetto: set memory and CPU guardrails on traced and traced_probes

Bug: 73051936
Bug: 73052380
Change-Id: I0db375ea5b7ac4e26b52d74e860d96cdf7fbbd5d
/external/perfetto/src/tracing/core/service_impl.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
/external/perfetto/src/tracing/core/service_impl.cc
081d46a1d858e42e365322ea31936ff5d7fca495 28-Feb-2018 Primiano Tucci <primiano@google.com> Reduce ProducerID 64 -> 16 bits

This saves some space in the upcoming ChunkRecord in TraceBuffer.
We are not going to be able to deal with > 64k producers anyways
as each of them requires at least one file descriptor.

Also this fixes a minor bug in the page_owners initialization
in TraceBuffer::Create().

Bug: 73612642
Test: perfetto_unittest --gtest_filter=ServiceImplTest.ProducerIDWrapping
Change-Id: Id105760ad8cfbb6f0e8ab8edc65954d5ed3ae395
/external/perfetto/src/tracing/core/service_impl.cc
06487a2b9ea5a482258c1ff33fe73d3862aac347 27-Feb-2018 Sami Kyostila <skyostil@google.com> service: Implement producer and data source unregistration

Bug: 73806120
Change-Id: If3ae078340b4f0d212d6624ca8a20b9665b6de2d
/external/perfetto/src/tracing/core/service_impl.cc
fa71a2f6c096556dc4814ca6a9ae6f96d7b577c0 23-Feb-2018 Florian Mayer <fmayer@google.com> Enforce extra guardrails.

Bug: 73051872
Change-Id: I619510ecef74325fb1f9b24aab3a218168b4e21a
/external/perfetto/src/tracing/core/service_impl.cc
19e0e04d477b4b7d1835ff1fb17ff485065ebcec 22-Feb-2018 Florian Mayer <fmayer@google.com> Revert "Forward enable_extra_guardrails to Producer."

This reverts commit 7ca582f0726b247cb81033263334a0353e3a3d3c.

Change-Id: I071bf98629db046688e1e47a37c633dabb3165e4
/external/perfetto/src/tracing/core/service_impl.cc
7ca582f0726b247cb81033263334a0353e3a3d3c 22-Feb-2018 Florian Mayer <fmayer@google.com> Forward enable_extra_guardrails to Producer.

Bug: 73051872
Change-Id: I9b5f5021d8a7d7c5bacdd19263070a9c4cf269a1
/external/perfetto/src/tracing/core/service_impl.cc
16d1d63b11f3715d8ee2a27ad6e90027c53eee67 22-Feb-2018 Primiano Tucci <primiano@google.com> Rename Chunk to Slice to avoid ambiguity

Non functional refactor. The term "Chunk" ended up being overloaded:
1) Chunk as fraction of a page in the SharedMemoryABI
2) Chunk as a virtually contiguous fraction of a packet

Renaming 2 to Slice

Change-Id: I2d283748e566839c4adcdb987282a811c06ed226
/external/perfetto/src/tracing/core/service_impl.cc
eef8b24af212f8e176dfbdd8af287f8aacfa6efd 20-Feb-2018 Florian Mayer <fmayer@google.com> Propagate duration_ms from TraceConfig to DataSourceConfig.

Bug: 72630976
Change-Id: I682d6b46aab16042075c1c6a4241e0a6c0119265
/external/perfetto/src/tracing/core/service_impl.cc
32e0b545a6b61a055dddae4cf95b1e6b950b0188 14-Feb-2018 Sami Kyostila <skyostil@google.com> Annotate trace packets with a trusted producer uid

This patch adds a trusted uid field to the trace packet message, which
identifies the POSIX user account which submitted the associated trace
data to the tracing service. The field is created by the service in a
way that makes it unspoofable. Later we will also include a mapping
from package names to uids in the trace.

Bug: 69964495,73283884
Change-Id: I8fdacdd00ab8efd5d5bca7d4b164dd3c4c7f0741
/external/perfetto/src/tracing/core/service_impl.cc
cd08ec62ff58b39c71d427ddb5ce7d367d05f939 31-Jan-2018 Florian Mayer <fmayer@google.com> Add thread_checker_ to Service.

Change-Id: I053474b99c405ef06276d116bbd20997900535dc
/external/perfetto/src/tracing/core/service_impl.cc
0c45fa39ee8c2bd9314523a2a4cec8ce8b4fb0d1 30-Jan-2018 Primiano Tucci <primiano@google.com> Reliability improvements for the demo

- Add timeout to cmdline client to avoid hanging if the service hangs
- Put a limit to the number of concurrent tracing sessions.
- Fix a bug in shared_memory_arbiter_impl.cc when using SMB
pages != 4096, causing the service and producer to use mismatching
page sizes.
- Minor cosmetic cleanups to service_impl.cc

Change-Id: Ia04dd9ada1f6d6c37879c9907b8d101d4399f34b
/external/perfetto/src/tracing/core/service_impl.cc
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
/external/perfetto/src/tracing/core/service_impl.cc
aab53553d6ad0ab821e45328487f9d88912fb71c 24-Jan-2018 Florian Mayer <fmayer@google.com> Run clang-tidy

Change-Id: I144335b7cd196e453351db3a83a214fb2f0245da
/external/perfetto/src/tracing/core/service_impl.cc
25ac939194b4d32d9ebbb441b97aae1d9fa9464e 22-Jan-2018 Sami Kyostila <skyostil@google.com> Remove newlines from logging statements

Change-Id: I60190cfe26dbd8876ee1320661b79ed10be13c00
/external/perfetto/src/tracing/core/service_impl.cc
20d441d65dd4ec2a262b69088b4965ff1bf576d9 16-Jan-2018 Primiano Tucci <primiano@google.com> Fix multi buffer support and add time-limited traces

Removes the workarounds that required to hardcode
target_buffer = X everywhere. Now the service maintains
a translation map between relative buffer indexes passed
by the Consumer(s) (relative to the buffers specified in
their trace config) and global buffer IDs (namespace of
all buffers for all consumers and all trace sessions).
Also add support for time-limited traces in the service.

Change-Id: Iaaceebddb5ac2637ed67079d565d475227c0d113
/external/perfetto/src/tracing/core/service_impl.cc
69a64790b167720b06b6bbd20d14ef4403e4eb35 11-Jan-2018 Hector Dearman <hjd@google.com> Add temporary workaround

At the moment there is some kind of disconnect between the
buffer Ids the producer and the consumer use. Force buffer
id to always be 1 for now to workaround this.

Change-Id: I8ae3651301c7e4b796881dc398a7b6778dccc6e7
/external/perfetto/src/tracing/core/service_impl.cc
1269b4aad5c8c24d50af98cf331e2d0822c8c06f 11-Jan-2018 Oystein Eftevaag <oysteine@google.com> Enable data sources when interested consumers are already registered when enabled

Change-Id: I761d0751d55d367cb60bf781cc33ba8d6f4f740b
/external/perfetto/src/tracing/core/service_impl.cc
3324dfc61b896dd3c8ba3e160b7e94fffcc4c0bf 20-Dec-2017 Primiano Tucci <primiano@google.com> Add testing consumer_cmd executable

Mostly a stub to unblock the work on the CTS test and for
local tests. Some work left to do w.r.t. importing the
trace config from stdin and producing some more meaningful
outut.
Also, makes a minor change to the API surface that returns
the vector<TracePacket> by value (allowing to std::move it)
rather than passing a const ref, that makes the API hard to
use.

Change-Id: Iccf88b7b1d2beb6a0750adafd86d92a0f563182d
/external/perfetto/src/tracing/core/service_impl.cc
bbaa58c526418f0a621d7fc8e85d73d168a7295a 20-Dec-2017 Primiano Tucci <primiano@google.com> Introduce base::PageAllocator to wrap mmap

Gets rid of the various posix_memalign hacks accumulated so far.
Also moves the pre-existing IsMmaped function into
base/vm_test_utils.h.

Change-Id: I171dc2dc01c4b69f4f711a4923a1a58c75431df6
/external/perfetto/src/tracing/core/service_impl.cc
53589338067248eb16b3fb4baaeb48b8ce9aef43 19-Dec-2017 Primiano Tucci <primiano@google.com> Add initial Tracing Service implementation

The code still has lot of rough edges and TODOs, but
is in a good state to test integration with other system
components and cover CTS tests.

Bug: 70284518
Change-Id: Id6ac73426750cc4002d4e5bca65a66f4684c116b
/external/perfetto/src/tracing/core/service_impl.cc
af429f94976046b507f8e537ba825c6db01b3c2f 19-Dec-2017 Primiano Tucci <primiano@google.com> IPC plumbing for TraceWriter and service-side Consumer port.

This CL fixes most of the IPC plumbing after TraceWriter and
related methods are landed. This mainly reduces the need of
keeping .proto and core objects in sync. Also exposes the
service-side implementation of the Consumer port.
Finally gets rid of the ObserverForTesting, which at the end
turned out to be unneeded.

Bug: 70284518
Bug: 68854243
Change-Id: I5e9156fee2945dc8bd42d7016046afb7da643411
/external/perfetto/src/tracing/core/service_impl.cc
42e2de11b04dd69154e6addbf1870dc51aa76ec2 07-Dec-2017 Primiano Tucci <primiano@google.com> Introduce initial stubs for Consumer API

Not the full API yet, but some initial building blocks that
will be used by that.

Bug: 70284518
Change-Id: Ia5c4d8ddfca3421655a64b55403f9fd560e5b406
/external/perfetto/src/tracing/core/service_impl.cc
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
/external/perfetto/src/tracing/core/service_impl.cc