Commit ecec2c61 authored by Benedikt Meurer's avatar Benedikt Meurer Committed by Commit Bot

[turbofan] Only record samples for TurboFan stats with high-res timers.

Don't record samples from machines without high-resolution timers,
as that can cause serious reporting issues. See the thread at
http://g/chrome-metrics-team/NwwJEyL8odU/discussion for more details.

Bug: v8:9074
Change-Id: I8f9b588b249f944c4bc95feedf56960b28db9ddc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1552001
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60621}
parent 329b695d
...@@ -274,42 +274,47 @@ void OptimizedCompilationJob::RecordCompilationStats(CompilationMode mode, ...@@ -274,42 +274,47 @@ void OptimizedCompilationJob::RecordCompilationStats(CompilationMode mode,
PrintF("Compiled: %d functions with %d byte source size in %fms.\n", PrintF("Compiled: %d functions with %d byte source size in %fms.\n",
compiled_functions, code_size, compilation_time); compiled_functions, code_size, compilation_time);
} }
Counters* const counters = isolate->counters(); // Don't record samples from machines without high-resolution timers,
if (compilation_info()->is_osr()) { // as that can cause serious reporting issues. See the thread at
counters->turbofan_osr_prepare()->AddSample( // http://g/chrome-metrics-team/NwwJEyL8odU/discussion for more details.
static_cast<int>(time_taken_to_prepare_.InMicroseconds())); if (base::TimeTicks::IsHighResolution()) {
counters->turbofan_osr_execute()->AddSample( Counters* const counters = isolate->counters();
static_cast<int>(time_taken_to_execute_.InMicroseconds())); if (compilation_info()->is_osr()) {
counters->turbofan_osr_finalize()->AddSample( counters->turbofan_osr_prepare()->AddSample(
static_cast<int>(time_taken_to_finalize_.InMicroseconds())); static_cast<int>(time_taken_to_prepare_.InMicroseconds()));
counters->turbofan_osr_total_time()->AddSample( counters->turbofan_osr_execute()->AddSample(
static_cast<int>(ElapsedTime().InMicroseconds())); static_cast<int>(time_taken_to_execute_.InMicroseconds()));
} else { counters->turbofan_osr_finalize()->AddSample(
counters->turbofan_optimize_prepare()->AddSample( static_cast<int>(time_taken_to_finalize_.InMicroseconds()));
static_cast<int>(time_taken_to_prepare_.InMicroseconds())); counters->turbofan_osr_total_time()->AddSample(
counters->turbofan_optimize_execute()->AddSample( static_cast<int>(ElapsedTime().InMicroseconds()));
static_cast<int>(time_taken_to_execute_.InMicroseconds())); } else {
counters->turbofan_optimize_finalize()->AddSample( counters->turbofan_optimize_prepare()->AddSample(
static_cast<int>(time_taken_to_finalize_.InMicroseconds())); static_cast<int>(time_taken_to_prepare_.InMicroseconds()));
counters->turbofan_optimize_total_time()->AddSample( counters->turbofan_optimize_execute()->AddSample(
static_cast<int>(ElapsedTime().InMicroseconds())); static_cast<int>(time_taken_to_execute_.InMicroseconds()));
counters->turbofan_optimize_finalize()->AddSample(
// Compute foreground / background time. static_cast<int>(time_taken_to_finalize_.InMicroseconds()));
base::TimeDelta time_background; counters->turbofan_optimize_total_time()->AddSample(
base::TimeDelta time_foreground = static_cast<int>(ElapsedTime().InMicroseconds()));
time_taken_to_prepare_ + time_taken_to_execute_;
switch (mode) { // Compute foreground / background time.
case OptimizedCompilationJob::kConcurrent: base::TimeDelta time_background;
time_background += time_taken_to_execute_; base::TimeDelta time_foreground =
break; time_taken_to_prepare_ + time_taken_to_execute_;
case OptimizedCompilationJob::kSynchronous: switch (mode) {
time_foreground += time_taken_to_execute_; case OptimizedCompilationJob::kConcurrent:
break; time_background += time_taken_to_execute_;
break;
case OptimizedCompilationJob::kSynchronous:
time_foreground += time_taken_to_execute_;
break;
}
counters->turbofan_optimize_total_background()->AddSample(
static_cast<int>(time_background.InMicroseconds()));
counters->turbofan_optimize_total_foreground()->AddSample(
static_cast<int>(time_foreground.InMicroseconds()));
} }
counters->turbofan_optimize_total_background()->AddSample(
static_cast<int>(time_background.InMicroseconds()));
counters->turbofan_optimize_total_foreground()->AddSample(
static_cast<int>(time_foreground.InMicroseconds()));
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment