# Copyright 2020 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# This board produces an x64 image which attempts to tune to have a more
# stable performance profile, which can be useful for benchmarking.
#
# In particular, we tweak system parameters to favour consistent/predictable
# performance over high performance (e.g., by disabling Turbo boost, resulting
# in the CPU's clock rate being slower on average, but constant); and to favour
# consistent performance over security (e.g., disabling Spectre mitigations
# that currently producing significant performance variations across machines).
# Tuning the system to be more consistent allows real changes in performance to
# be more easily be seen.
#
# "Real world" or "whole system" benchmarks may consider using just the plain
# x64 board to ensure that measured results match real-world usage more
# closely, at the expense of higher variance in benchmark results.

import("x64.gni")

board_kernel_cmdline_args = [
  # Disable Intel Turbo Boost. Turbo Boost provides a significant speed-up to
  # many workloads, but — because CPU frequencies vary based on previous work,
  # work in other cores, system temperature, etc — makes performance of systems
  # less predictable. We prefer stability in our performance comparison
  # benchmarks.
  "kernel.x86.turbo=false",

  # Set the Intel HWP performance profile to be "stable", trying to keep the
  # CPU clock rate stable. With turbo boost disabled, this has only a small
  # effect, but helps ensure that wake ups from idle are fixed.
  "kernel.x86.hwp_policy=stable-performance",

  # Disable hyper-threading. Hyper-threading reduces predictability of
  # benchmarks, because the performance of a thread is significantly affected
  # by other threads on the core.
  "kernel.smp.ht=false",

  # Disable spectre mitigations. Spectre mitigations have significant
  # performance impact, but are currently only carried out on a subset of the
  # NUC fleet. This means that different devices have significantly different
  # performance characteristics, meaning that benchmark results vary
  # significantly based on the device running it.
  #
  # TODO(fxb/33161): Ideally, we should load microcode during Zircon boot,
  # which should bring all devices to the same patch level, removing the
  # performance differences when spectre mitigations are in place.
  "kernel.x86.disable_spec_mitigations=true",
]
