• Leszek Swirski's avatar
    Revert "[counters] Fix reentrant timers for V8.Execute" · a12c6fa2
    Leszek Swirski authored
    This reverts commit fffcbaea.
    
    Reason for revert: Breaks in Chromium (e.g. https://ci.chromium.org/p/v8/builders/ci/Linux%20V8%20FYI%20Release%20%28NVIDIA%29)
    
    Original change's description:
    > [counters] Fix reentrant timers for V8.Execute
    >
    > This CL fixes a long standing issue where reentering TimedHistograms
    > scopes would cause spurious measurements. Only the non-nested scopes
    > yielded correct results.
    >
    > Due to the changed numbers, the V8.Execute histogram is renamed to
    > V8.ExecuteMicroSeconds. Note that this histogram is also guarded
    > behind the --slow-histograms flag due to the additional overhead.
    >
    > Unlike before, it does no longer include time for external callbacks
    > and only measures self time. The following example illustrates the
    > new behaviour:
    >
    > 1. Enter V8:           |--+.......+--| self-time: 4 units (reported)
    > 2. Exit V8 (callback):    |-+...+-|    self-time: 2 units (ignored)
    > 3. Re-enter V8:             |---|      self-time: 3 units (reported)
    >
    > This would result in 2 histogram entries with 4 time units for the first
    > V8 slice and 3 units for the nested part. Note that the callback time
    > itself is ignored.
    >
    > This CL attempts to clean up how TimedHistograms work:
    > - Histogram: the base class
    > - TimedHistograms: used for time-related histograms that are not nested
    > - NestedTimeHistograms: Extends TimedHistograms and is used for nested
    >   histograms
    >
    > This CL changes Histograms to not measure time themselves. Measurements
    > happen in the *HistogramScopes:
    > - BaseTimedHistogramScope: Base functionality
    > - TimedHistogramScope: For non-nested measurements
    > - NestedTimedHistogramScope: For nested measurements
    > - PauseNestedTimedHistogramScope: Ignore time during a given scope.
    >   This is used to pause timers during callbacks.
    >
    > Additional changes:
    > - ExternalCallbackScope now contains a PauseNestedTimedHistogramScope
    >   and always sets VMState<EXTERNAL>
    >
    > Bug: v8:11946
    > Change-Id: I45e4b7ff77b5948b605dd50539044cb26222fa21
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3001345
    > Reviewed-by: Omer Katz <omerkatz@chromium.org>
    > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
    > Reviewed-by: Victor Gomes <victorgomes@chromium.org>
    > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
    > Commit-Queue: Camillo Bruni <cbruni@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#76111}
    
    Bug: v8:11946
    Change-Id: I954de1afbabf101fb5d4f52eca0d3b80a723385b
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3077153
    Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
    Commit-Queue: Leszek Swirski <leszeks@chromium.org>
    Owners-Override: Leszek Swirski <leszeks@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#76138}
    a12c6fa2
Name
Last commit
Last update
..
api Loading commit data...
asmjs Loading commit data...
assembler Loading commit data...
base Loading commit data...
codegen Loading commit data...
compiler Loading commit data...
compiler-dispatcher Loading commit data...
date Loading commit data...
debug Loading commit data...
diagnostics Loading commit data...
execution Loading commit data...
heap Loading commit data...
interpreter Loading commit data...
libplatform Loading commit data...
logging Loading commit data...
numbers Loading commit data...
objects Loading commit data...
parser Loading commit data...
profiler Loading commit data...
regexp Loading commit data...
regress Loading commit data...
runtime Loading commit data...
strings Loading commit data...
tasks Loading commit data...
torque Loading commit data...
utils Loading commit data...
wasm Loading commit data...
zone Loading commit data...
BUILD.gn Loading commit data...
DEPS Loading commit data...
run-all-unittests.cc Loading commit data...
test-helpers.cc Loading commit data...
test-helpers.h Loading commit data...
test-utils.cc Loading commit data...
test-utils.h Loading commit data...
testcfg.py Loading commit data...
unittests.status Loading commit data...