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
|