- 13 Feb, 2019 1 commit
-
-
Andrew Comminos authored
Sets an atomic field on each sampler when it requests a sample, to be checked when the SIGPROF handler is executed. A counter is not used since signals may be coalesced. Prior to this change, all samplers attached to an isolate received samples when other samplers sent SIGPROF to the VM thread. This change alters the behaviour of different CpuProfiler instances on the same isolate to be in line with the Windows / Fuchsia behaviour. Bug: v8:8835 Change-Id: I0caaa845b596efc9d8b1cd7716c067d9a6359c57 Reviewed-on: https://chromium-review.googlesource.com/c/1468941 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Alexei Filippov <alph@chromium.org> Cr-Commit-Position: refs/heads/master@{#59545}
-
- 21 Jan, 2019 3 commits
-
-
Peter Marshall authored
Simplify the internal state of Sampler a bit. There are basically two users of Sampler - the CpuSampler used by the CpuProfiler and the Ticker used by log.cc. Ticker calls Start/Stop to manage the Sampler lifetime, but CpuProfiler does not. This leads to much confusion and overlap of functionality. Fix that here by removing the distinction between active, registered and isProfiling states. These are now all the same thing and are represented by IsActive(). The state is set to active when Start is called, and set inactive when Stop is called. Both users of Sampler now call Start and Stop at appropriate times. The concept of profiling depth was not used - each Sampler would only ever have a sampling depth of 1. We still need to call SignalHandler::IncreaseSamplerCount(), so we do that in Start and the corresponding DecreaseSamplerCount() in Stop. Change-Id: I16a9435d26169a7dd00b1c7876e66af45f12e4b0 Reviewed-on: https://chromium-review.googlesource.com/c/1424337 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58955}
-
Peter Marshall authored
There's no reason to use our self-baked atomics anymore. Also - Changes two boolean values to use a boolean instead of an int - Uses a unique ptr for data_ - Removes has_processing_thread_ which is not used - Moves most initialization inline into the class - Removes SetUp/TearDown which weren't needed Change-Id: I8f50133636961502d56351abd2fb17196603a01a Reviewed-on: https://chromium-review.googlesource.com/c/1422918 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58950}
-
Peter Marshall authored
Moved class definitions into header Change-Id: I2d3e5ec6f8f5068284cdbaa6900797950fc7e01a Reviewed-on: https://chromium-review.googlesource.com/c/1422739 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58946}
-
- 14 Sep, 2018 1 commit
-
-
Florian Sattler authored
Fixing clang-tidy warning. Bug: v8:8015 Change-Id: I4236a2cf85a414f9d7d1fbdaaaaf1c72a84f02e3 Reviewed-on: https://chromium-review.googlesource.com/1224093Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Florian Sattler <sattlerf@google.com> Cr-Commit-Position: refs/heads/master@{#55912}
-
- 01 Sep, 2016 1 commit
-
-
marja authored
Rebuilding (after touching certain files) is crazy slow because includes are out of control. Many of these files we need to rebuild are cctests which pull in more includes than they need. BUG=v8:5294 Review-Url: https://codereview.chromium.org/2304553002 Cr-Commit-Position: refs/heads/master@{#39080}
-
- 10 Aug, 2016 1 commit
-
-
lpy authored
This patch is based on alph's CL https://codereview.chromium.org/2128613004/. This patch makes GetStackSample propogate the register state when using simulator helper, and adds argument to avoid using register state from simulator when pass the native register state. BUG=v8:4789 LOG=N Review-Url: https://codereview.chromium.org/2189513002 Cr-Commit-Position: refs/heads/master@{#38554}
-
- 11 Jul, 2016 1 commit
-
-
machenbach authored
Revert "Move SimulatorHelper into V8 out of profiler clients." This reverts commit b8372411. Revert "Make use of v8::TickSample instead of v8::internal::TickSample in logger." This reverts commit c3a16f0a. Revert "Clean up SimulatorHelper code." This reverts commit 8ee236e1. BUG=v8:5193 TBR=alph@chromium.org, yangguo@chromium.org Review-Url: https://codereview.chromium.org/2138643003 Cr-Commit-Position: refs/heads/master@{#37626}
-
- 08 Jul, 2016 2 commits
-
-
alph authored
Clients should not know about the simulator. BUG=v8:4789 Review-Url: https://codereview.chromium.org/2128613004 Cr-Commit-Position: refs/heads/master@{#37617}
-
lpy authored
BUG= Review-Url: https://codereview.chromium.org/2125023004 Cr-Commit-Position: refs/heads/master@{#37599}
-
- 26 May, 2016 1 commit
-
-
lpy authored
This patch does five things: 1. Extracts sampler as libsampler to provide sampling functionality support. 2. Makes SampleStack virtual so embedders can override the behaviour of sample collecting. 3. Removes sampler.[h|cc]. 4. Moves sampling thread into log.cc as workaround to keep the --prof functionality. 5. Creates SamplerManager to manage the relationship between samplers and threads. The reason we port hashmap.h is that in debug mode, STL containers are using mutexes from a mutex pool, which may lead to deadlock when using asynchronously signal handler. Currently libsampler is used in V8 temporarily. BUG=v8:4789 LOG=n Committed: https://crrev.com/06cc9b7c176a6223971deaa9fbcafe1a05058c7b Cr-Commit-Position: refs/heads/master@{#36527} Review-Url: https://codereview.chromium.org/1922303002 Cr-Commit-Position: refs/heads/master@{#36532}
-
- 25 May, 2016 2 commits
-
-
lpy authored
Revert of Create libsampler as V8 sampler library. (patchset #24 id:460001 of https://codereview.chromium.org/1922303002/ ) Reason for revert: V8 Linux64 TSAN failure because ThreadSanitizer indicated data race. Original issue's description: > Create libsampler as V8 sampler library. > > This patch does five things: > > 1. Extracts sampler as libsampler to provide sampling functionality support. > 2. Makes SampleStack virtual so embedders can override the behaviour of sample collecting. > 3. Removes sampler.[h|cc]. > 4. Moves sampling thread into log.cc as workaround to keep the --prof functionality. > 5. Creates SamplerManager to manage the relationship between samplers and threads. > > The reason we port hashmap.h is that in debug mode, STL containers are using > mutexes from a mutex pool, which may lead to deadlock when using asynchronously > signal handler. > > Currently libsampler is used in V8 temporarily. > > BUG=v8:4789 > LOG=n > > Committed: https://crrev.com/06cc9b7c176a6223971deaa9fbcafe1a05058c7b > Cr-Commit-Position: refs/heads/master@{#36527} TBR=jochen@chromium.org,alph@chromium.org,fmeawad@chromium.org,yangguo@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4789 Review-Url: https://codereview.chromium.org/2000323007 Cr-Commit-Position: refs/heads/master@{#36529}
-
lpy authored
This patch does five things: 1. Extracts sampler as libsampler to provide sampling functionality support. 2. Makes SampleStack virtual so embedders can override the behaviour of sample collecting. 3. Removes sampler.[h|cc]. 4. Moves sampling thread into log.cc as workaround to keep the --prof functionality. 5. Creates SamplerManager to manage the relationship between samplers and threads. The reason we port hashmap.h is that in debug mode, STL containers are using mutexes from a mutex pool, which may lead to deadlock when using asynchronously signal handler. Currently libsampler is used in V8 temporarily. BUG=v8:4789 LOG=n Review-Url: https://codereview.chromium.org/1922303002 Cr-Commit-Position: refs/heads/master@{#36527}
-