- 07 May, 2019 1 commit
-
-
Peter Marshall authored
The TraceObject passed to AppendTraceEvent can be completely uninitialized (set to all 0s) in some situations where a flush happens between creation and initialization of the TraceObject. Fix the MockTraceWriter in test-tracing to expect nullptr strings for the name of the object so that it does not try to construct an std::string from a null char*. Bug: v8:9214 Change-Id: Ib4f3b039ab98d5d786991134cb71ecc62f127179 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1598751 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Auto-Submit: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#61265}
-
- 03 May, 2019 1 commit
-
-
Peter Marshall authored
Based on Primiano's prototype: https://chromium-review.googlesource.com/c/v8/v8/+/1290549 This is still behind a build flag. I'll add functionality incrementally rather than land everything in one giant CL. This CL sets up the basic classes that will be used for the Perfetto implementation, e.g. the producer, consumer, controller and task runner. This implementation produces a binary proto file in the current directory named v8_trace.proto. It doesn't yet produce JSON output, that is coming in a following CL. Currently the old tracing and perfetto tracing are both run alongside each other if the build flag is enabled. Cq-Include-Trybots: luci.v8.try:v8_linux64_perfetto_dbg_ng Bug: v8:8339 Change-Id: I0eb9ecefa191ceead60aadd5b591d75c99395a6e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1408995Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#61209}
-
- 13 Mar, 2019 1 commit
-
-
Benedikt Meurer authored
The JSONTraceWriter didn't write the "flow_in", "flow_out" and "bind_id" fields, which are necessary to support TRACE_EVENT_WITH_FLOW and friends. This just mirrors the logic from trace_event_impl.cc in Chrome. Bug: v8:8991 Change-Id: I496db587fbb74d3c7205bbab4c23ec41c63fa715 Document: http://bit.ly/v8-tracing-signals Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1521108Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60218}
-
- 21 Feb, 2019 1 commit
-
-
Peter Marshall authored
The default TracingController (used by d8 and Node) has some concurrency issues. The new test flushes these out, when a second thread logs trace events while the main thread calls StopTracing(). - Use an acquire load in UpdateCategoryGroupEnabledFlags() because this was racing with GetCategoryGroupEnabled() where a new category is added in the slow path. g_category_groups is append-only, but reads/writes to g_category_index need to be correctly ordered so that new categories are added and only then is the change to the index visible. The relaxed load ignored this and caused unsynchronized read/write. - Use a relaxed load in ~ScopedTracer() to access category_group_enabled as this previously used a non-atomic operation which caused a race with UpdateCategoryGroupEnabledFlag() which does a relaxed store. - Replace TracingController::mode_ with an atomic bool as read/writes to mode_ were not synchronized and caused TSAN errors. It only has two states and it doesn't seem like we will extend this so just convert it to bool. - Take the lock around calling trace_object->Initialize in AddTraceEvent(), and around trace_buffer_->Flush() in StopTracing(). These two raced previously as the underlying TraceBufferRingBuffer passes out pointers to TraceObjects in a synchronized way, but the caller (AddTraceEvent) then writes into the object without synchronization. This leads to races when Flush() is called, at which time TraceBufferRingBuffer assumes that all the pointers it handed out are to valid, initialized TraceObjects - which is not true because AddTraceEvent may still be calling Initialize on them. This could be the cause of issues in Node.js where the last line of tracing/logging sometimes gets cut off. This is kind of a band-aid solution - access to the TraceObjects handed out by the ring buffer really needs proper synchronization which at this point would require redesign. It's quite likely we will replace this with Perfetto in the near future so not much point investing in this code right now. - Enable TracingCpuProfiler test which was flaky due to these bugs. Bug: v8:8821 Change-Id: I141296800c6906ac0e7f3f21dd16d861b07dae62 Reviewed-on: https://chromium-review.googlesource.com/c/1477283 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Ali Ijaz Sheikh <ofrobots@google.com> Cr-Commit-Position: refs/heads/master@{#59752}
-
- 07 May, 2018 1 commit
-
-
Eugene Ostroukhov authored
This API will be used by Node.js to provide output compatible with Chrome devtools. Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I265495f8af39bfc78d7fdbe43ac308f0920e817d Reviewed-on: https://chromium-review.googlesource.com/1044491Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Eugene Ostroukhov <eostroukhov@chromium.org> Cr-Commit-Position: refs/heads/master@{#53041}
-
- 10 Jan, 2018 1 commit
-
-
Ali Ijaz Sheikh authored
Make it possible for embedders to provide their own tracing timetamps by providing an overridable virtual function on V8's tracing controller. Bug: Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I727e633cb7f63d4b41c2e427ecca3c9174c90bfe Reviewed-on: https://chromium-review.googlesource.com/847690Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Fadi Meawad <fmeawad@chromium.org> Commit-Queue: Ali Ijaz Sheikh <ofrobots@google.com> Cr-Commit-Position: refs/heads/master@{#50489}
-
- 14 Nov, 2017 1 commit
-
-
Andreas Haas authored
With this CL, {CreateDefaultPlatform} returns a unique_ptr to indicate that the caller owns the returned memory. We had several memory leaks where the memory of the DefaultPlatform did not get deallocated. In addition, the {TracingController} of the {DefaultPlatform} also gets received as a unique_ptr. Thereby we document that the {DefaultPlatform} takes ownership of the {TracingController}. Note that the memory of the {TracingController} was already owned by the {DefaultPlatform}, but it was not documented in the interface, and it was used incorrectly in tests. This CL fixes the asan issues in https://chromium-review.googlesource.com/c/v8/v8/+/753583 ([platform] Implement TaskRunners in the DefaultPlatform) R=rmcilroy@chromium.org Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I0d1a6d3b22bb8289dc050b1977e4f58381cec675 Reviewed-on: https://chromium-review.googlesource.com/755033Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#49349}
-
- 03 Jul, 2017 1 commit
-
-
Jochen Eisinger authored
Original change's description: > Switch tracing to use v8::TracingController > > BUG=v8:6511 > R=fmeawad@chromium.org > > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > Change-Id: I4961e4b61a9ddc98385ed97c3ffcbcaef2d9cba7 > Reviewed-on: https://chromium-review.googlesource.com/543144 > Commit-Queue: Jochen Eisinger <jochen@chromium.org> > Reviewed-by: Fadi Meawad <fmeawad@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46307} BUG=v8:6511 TBR=fmeawad@chromium.org Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux64_tsan_rel Change-Id: Ide32b409248dfd466e7c0bae1d8ae61d6a955d98 Reviewed-on: https://chromium-review.googlesource.com/558865 Commit-Queue: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Cr-Commit-Position: refs/heads/master@{#46381}
-
- 29 Jun, 2017 2 commits
-
-
Michael Achenbach authored
This reverts commit 3d8e87aa. Reason for revert: tsan errors: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/15977 Original change's description: > Switch tracing to use v8::TracingController > > BUG=v8:6511 > R=fmeawad@chromium.org > > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > Change-Id: I4961e4b61a9ddc98385ed97c3ffcbcaef2d9cba7 > Reviewed-on: https://chromium-review.googlesource.com/543144 > Commit-Queue: Jochen Eisinger <jochen@chromium.org> > Reviewed-by: Fadi Meawad <fmeawad@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46307} TBR=fmeawad@chromium.org,jochen@chromium.org Change-Id: I3f39081001104c634cc8cab9d58ec420fc7293d8 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6511 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/554771Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46308}
-
Jochen Eisinger authored
BUG=v8:6511 R=fmeawad@chromium.org Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I4961e4b61a9ddc98385ed97c3ffcbcaef2d9cba7 Reviewed-on: https://chromium-review.googlesource.com/543144 Commit-Queue: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Fadi Meawad <fmeawad@chromium.org> Cr-Commit-Position: refs/heads/master@{#46307}
-
- 08 Dec, 2016 1 commit
-
-
lpy authored
jasongin@ created this patch. https://github.com/jasongin/nodejs/commit/dcc50445a364664586164f42f9250732bd372982 This patch adds the support to emit a trace event by using a comma-separated list of categories, so that the trace event will be emitted if there is at least one category is enabled in the categories list. TBR=jochen@chromium.org Review-Url: https://codereview.chromium.org/2558193002 Cr-Commit-Position: refs/heads/master@{#41567}
-
- 11 Nov, 2016 1 commit
-
-
ulan authored
BUG=v8:5614 Review-Url: https://codereview.chromium.org/2496913002 Cr-Commit-Position: refs/heads/master@{#40931}
-
- 31 Oct, 2016 1 commit
-
-
lpy authored
We only need included categories list, excluded categories list will only work if we use regular expression in categories list, which is not supported in V8. TBR=jochen@chromium.org Review-Url: https://codereview.chromium.org/2462143002 Cr-Commit-Position: refs/heads/master@{#40681}
-
- 12 Oct, 2016 1 commit
-
-
fmeawad authored
The state sampling was implemented in chrome, we had an interface for it V8 but it was not implemented yet. The chrome version version has been removed in https://codereview.chromium.org/2406703002/ Therefore following up with its removal in V8 as well. This CL can land independent of the Chromium related CL. R=primiano@chromium.org,alph@chromium.org Review-Url: https://codereview.chromium.org/2410523002 Cr-Commit-Position: refs/heads/master@{#40232}
-
- 29 Sep, 2016 1 commit
-
-
alph authored
The test now checks the case when an observer is added after tracing is started. BUG=chromium:406277 Review-Url: https://codereview.chromium.org/2376953002 Cr-Commit-Position: refs/heads/master@{#39874}
-
- 27 Sep, 2016 3 commits
-
-
alph authored
BUG=chromium:406277 Review-Url: https://codereview.chromium.org/2369073003 Cr-Commit-Position: refs/heads/master@{#39794}
-
alph authored
Drive-by: Use perfect forwarding for AddTraceEvent arguments. BUG=406277 Committed: https://crrev.com/dcac49af485fe5d4c0027f153901435dbb29c232 Review-Url: https://codereview.chromium.org/2367603002 Cr-Original-Commit-Position: refs/heads/master@{#39742} Cr-Commit-Position: refs/heads/master@{#39789}
-
machenbach authored
Revert of [tracing] Support ConvertableToTraceFormat argument type. (patchset #5 id:80001 of https://codereview.chromium.org/2367603002/ ) Reason for revert: Breaks layout tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/10100 See also: https://github.com/v8/v8/wiki/Blink%20layout%20tests Original issue's description: > [tracing] Support ConvertableToTraceFormat argument type. > > Drive-by: Use perfect forwarding for AddTraceEvent arguments. > > BUG=406277 > > Committed: https://crrev.com/dcac49af485fe5d4c0027f153901435dbb29c232 > Cr-Commit-Position: refs/heads/master@{#39742} TBR=jochen@chromium.org,caseq@chromium.org,fmeawad@chromium.org,alph@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=406277 Review-Url: https://codereview.chromium.org/2371103002 Cr-Commit-Position: refs/heads/master@{#39750}
-
- 26 Sep, 2016 1 commit
-
-
alph authored
Drive-by: Use perfect forwarding for AddTraceEvent arguments. BUG=406277 Review-Url: https://codereview.chromium.org/2367603002 Cr-Commit-Position: refs/heads/master@{#39742}
-
- 09 Sep, 2016 1 commit
-
-
kelvinjin authored
Escape sequences may now be written to a trace file (previously, any string with a valid escapable character would fail a check). Also, string properties are now surrounded with quotes. BUG=v8:4561 Review-Url: https://codereview.chromium.org/2309943005 Cr-Commit-Position: refs/heads/master@{#39319}
-
- 10 Aug, 2016 1 commit
-
-
lpy authored
1. The third parameter of strncpy should be the length of source string. 2. Value contains " should be valid. BUG=v8:4561 Review-Url: https://codereview.chromium.org/2232683002 Cr-Commit-Position: refs/heads/master@{#38563}
-
- 04 Aug, 2016 1 commit
-
-
rskang authored
Usage of hex IO manipulator for async event IDs corrupts future decimal number outputs. BUG=v8:5261 Review-Url: https://codereview.chromium.org/2200113003 Cr-Commit-Position: refs/heads/master@{#38331}
-
- 02 Aug, 2016 1 commit
-
-
rskang authored
BUG=v8:4561 Review-Url: https://codereview.chromium.org/2190973003 Cr-Commit-Position: refs/heads/master@{#38255}
-
- 27 Jul, 2016 1 commit
-
-
fmeawad authored
V8 has had a trace event macro interface for while, but without a tracing controller a standalone V8 would be unable to collect traces. This CL introduces a complete Tracing Controller system for V8. It is fully function except that it does not yet store trace event args. This CL has a few components, The tracing controller itself, contributed by the author of this CL The Trace config (including the parser), contributed by lpy@ The Trace Object, Trace Writer, and Trace Buffer are all contributed by rksang@ BUG=v8:4561 LOG=N The original CL was failing the V8 Arm Builder: https://build.chromium.org/p/client.v8.ports/builders/V8%20Arm%20-%20builder/builds/2456 and the V8 Mips Builder: https://build.chromium.org/p/client.v8.ports/builders/V8%20Mips%20-%20builder/builds/2506 The failure is due to undefined behavior of CHECK_EQ of 2 const char* Fix in patch #1 Committed: https://crrev.com/3d598452679ce208ad9b2f48e0fb3fae352ce375 Cr-Commit-Position: refs/heads/master@{#38073} patch from issue 2137013006 at patchset 200001 (http://crrev.com/2137013006#ps200001) Review-Url: https://codereview.chromium.org/2183923004 Cr-Commit-Position: refs/heads/master@{#38104}
-
- 26 Jul, 2016 2 commits
-
-
lpy authored
Revert of [Tracing] V8 Tracing Controller (patchset #11 id:200001 of https://codereview.chromium.org/2137013006/ ) Reason for revert: Revert this CL due to V8 Arm Builder failure and V8 Mips Builder failure. https://build.chromium.org/p/client.v8.ports/builders/V8%20Arm%20-%20builder/builds/2456 https://build.chromium.org/p/client.v8.ports/builders/V8%20Mips%20-%20builder/builds/2506 Original issue's description: > [Tracing] V8 Tracing Controller > > V8 has had a trace event macro interface for while, but without a tracing > controller a standalone V8 would be unable to collect traces. > > This CL introduces a complete Tracing Controller system for V8. > It is fully function except that it does not yet store trace event args. > > This CL has a few components, > The tracing controller itself, contributed by the author of this CL > The Trace config (including the parser), contributed by lpy@ > The Trace Object, Trace Writer, and Trace Buffer are all contributed by rksang@ > > BUG=v8:4561 > LOG=N > > Committed: https://crrev.com/3d598452679ce208ad9b2f48e0fb3fae352ce375 > Cr-Commit-Position: refs/heads/master@{#38073} TBR=jochen@chromium.org,mattloring@google.com,rskang@google.com,yangguo@chromium.org,fmeawad@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4561 Review-Url: https://codereview.chromium.org/2183943002 Cr-Commit-Position: refs/heads/master@{#38074}
-
fmeawad authored
V8 has had a trace event macro interface for while, but without a tracing controller a standalone V8 would be unable to collect traces. This CL introduces a complete Tracing Controller system for V8. It is fully function except that it does not yet store trace event args. This CL has a few components, The tracing controller itself, contributed by the author of this CL The Trace config (including the parser), contributed by lpy@ The Trace Object, Trace Writer, and Trace Buffer are all contributed by rksang@ BUG=v8:4561 LOG=N Review-Url: https://codereview.chromium.org/2137013006 Cr-Commit-Position: refs/heads/master@{#38073}
-