- 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}
-
- 19 Feb, 2019 1 commit
-
-
Peter Marshall authored
- Switch #define constant to static const - Remove unnecessary Internal version of GetCategoryGroupEnabled() - Fix a typo in a comment Change-Id: I4af71dc62c7c4742bdfbcaa1ad336298eb325c42 Reviewed-on: https://chromium-review.googlesource.com/c/1477221Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#59708}
-
- 20 Sep, 2018 1 commit
-
-
Florian Sattler authored
Fixing clang-tidy warning. Bug: v8:8015 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Ibc5124e06f5774e7695029e2d21084a7efb965e6 Reviewed-on: https://chromium-review.googlesource.com/1224412 Commit-Queue: Florian Sattler <sattlerf@google.com> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#56065}
-
- 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}
-
- 12 Jan, 2018 1 commit
-
-
Ali Ijaz Sheikh authored
Bug: Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Icb3cf7b7f96704e1eaa4c5fbf773b94b70cddc85 Reviewed-on: https://chromium-review.googlesource.com/861302Reviewed-by: Fadi Meawad <fmeawad@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Ali Ijaz Sheikh <ofrobots@google.com> Cr-Commit-Position: refs/heads/master@{#50549}
-
- 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}
-
- 22 Jun, 2017 1 commit
-
-
Jochen Eisinger authored
This will allow for embedders to easily implement their own Platform without duplicating the tracing controller code. BUG=v8:6511 R=fmeawad@chromium.org Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I7c64933d12b2cf53f0636fbc87f6ad5d22019f5c Reviewed-on: https://chromium-review.googlesource.com/543015 Commit-Queue: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Fadi Meawad <fmeawad@chromium.org> Cr-Commit-Position: refs/heads/master@{#46118}
-
- 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}
-
- 10 Oct, 2016 1 commit
-
-
jochen authored
BUG=v8:5412 R=jgruber@chromium.org,machenbach@chromium.org CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_compile_dbg_ng;master.tryserver.chromium.android:android_clang_dbg_recipe Review-Url: https://codereview.chromium.org/2372983003 Cr-Commit-Position: refs/heads/master@{#40111}
-
- 29 Sep, 2016 1 commit
-
-
franzih authored
Change include statement, otherwise embedders have problems compiling. BUG= Review-Url: https://codereview.chromium.org/2378773004 Cr-Commit-Position: refs/heads/master@{#39850}
-
- 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}
-
- 10 Aug, 2016 1 commit
-
-
lpy authored
BUG=v8:4561 LOG=N Review-Url: https://codereview.chromium.org/2208873002 Cr-Commit-Position: refs/heads/master@{#38553}
-
- 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}
-