| # 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", |
| ] |