<?xml version="1.0"?>
<!DOCTYPE flagsdescription SYSTEM "http://www.spec.org/dtd/cpuflags2.dtd">

<flagsdescription>
<filename>Compal-Platform-Flags-Linux-AMD_V1.5</filename>
<title>Compal Electronics Inc. - BIOS and OS Tuning Descriptions for SPEC CPU2017 Submissions</title>
<os_tuning>
<![CDATA[ 
<p><b>OS Tuning</b></p>

<p><b>ulimit:</b></p>
<p>is a command used to set or check user limits on system resources such as memory, CPU, and the number of open files. Below are common usages of ulimit:</p>
<ul>
  <li><b>ulimit -s</b>: Sets the stack size limit.</li>
  <li><b>ulimit -l</b>: Sets the maximum amount of memory that can be locked into RAM.</li>
  <li><b>ulimit -n</b>: Limits the maximum number of open file descriptors.</li>
  <li><b>ulimit -u</b>: Limits the maximum number of user processes that can be created.</li>
</ul>

<p><b>irqbalance:</b></p>
<p>irqbalance is a Linux background service that distributes hardware interrupts across multiple CPU cores to prevent overloading a single core and improve system performance.</p>

<p><b>Performance Governors (Linux):</b></p>
<p>Performance governors are part of Linux's CPU frequency scaling mechanisms, used to determine how the CPU frequency should be managed. Simply put, they control "how fast the CPU should run under different conditions." Common CPU governors include:</p>
<ul>
  <li><b>cpupower frequency-set -g performance</b>: Keeps the CPU running at the highest frequency for maximum performance (but consumes more power).</li>
  <li><b>cpupower frequency-set -g powersave</b>: Keeps the CPU running at the lowest frequency to save power at the cost of performance.</li>
  <li><b>cpupower frequency-set -g ondemand</b>: Dynamically switches between high and low frequencies based on system load.</li>
  <li><b>cpupower frequency-set -g conservative</b>: Similar to ondemand, but changes frequency more gradually for smoother transitions.</li>
  <li><b>cpupower frequency-set -g schedutil</b>: Adjusts frequency based on information from the task scheduler, balancing performance and power saving.</li>
</ul>

<p><b>--governor, -g:</b></p>
<p>When set to <b>performance</b>, the CPU will always operate at its maximum frequency to deliver the highest computing performance. This will improve overall system performance.</p>
<p>Many companies execute the following command when conducting system performance testing to ensure that the CPU operates at its maximum frequency:</p>
<ul>
  <li>cpupower frequency-set -g performance</li>
</ul>

<p><b>tuned-adm:</b></p>
<p>is a command-line tool used to manage performance tuning settings on Linux systems. It allows users to select predefined tuning profiles that automatically adjust CPU, power saving, I/O, and network parameters according to the system's intended usage, optimizing either performance or energy efficiency. The following four are the most commonly used profiles:</p>
<ul>
  <li><b>throughput-performance</b>: Optimized for workloads requiring high data throughput. Keeps the CPU at maximum frequency, disables power-saving features, and tunes IRQ and I/O settings to enhance processing efficiency. Ideal for database and storage servers.</li>
  <li><b>latency-performance</b>: Targets minimal latency. Disables most power-saving options, keeps the CPU at maximum frequency for long durations, and enhances NUMA locality and IRQ distribution. Best suited for real-time or high-performance computing environments.</li>
  <li><b>balanced</b>: A general-purpose setting that provides a compromise between performance and power savings. Dynamically adjusts CPU frequency based on system load and enables moderate power-saving features. Suitable for general servers or systems without specific performance requirements.</li>
  <li><b>powersave</b>: Prioritizes energy efficiency by setting the CPU to its lowest frequency and enabling all available power-saving features. Suitable for laptops or idle servers where performance is not critical.</li>
</ul>

<p><b>drop_caches:</b></p>
<p>To clear the Linux filesystem cache during testing or prior to benchmarking, the following command is used:</p>
<ul>
  <li><b>sync; sysctl -w vm.drop_caches=3</b>: Forces a filesystem sync to flush dirty pages to disk, then instructs the Linux kernel to free pagecache, dentries, and inodes. This helps minimize the impact of cached data on benchmark results by simulating a clean memory state before workload execution.</li>
</ul>    ]]>
</os_tuning>
<firmware>
<![CDATA[ 
<p><b>SMT Control (Default = Auto):</b></p>
<p>SMT Control is a setting that enables or disables Simultaneous Multithreading (SMT), allowing each CPU core to execute one or more threads concurrently to improve multitasking performance or ensure thread isolation. Values for this BIOS option can be:</p>
<ul>
  <li><b>Auto</b></li>
  <li><b>Enabled</b></li>
  <li><b>Disabled</b></li>
</ul>

<p><b>Power Profile Selection (Default = Efficiency Mode):</b></p>
<p>This setting controls how the system balances power efficiency and performance across CPU, memory, and I/O subsystems. Values for this BIOS option can be:</p>
<ul>
  <li><b>High Performance Mode:</b> Maximizes CPU frequency and performance at the cost of increased power consumption.</li>
  <li><b>Efficiency Mode:</b> Reduces power usage by optimizing for lower energy consumption with acceptable performance.</li>
  <li><b>Maximum IO Performance Mode:</b> Optimizes system settings to prioritize I/O throughput for data-intensive operations.</li>
  <li><b>Balanced Memory Performance Mode:</b> Balances memory bandwidth and latency for applications sensitive to memory performance.</li>
  <li><b>Balanced Core Performance Mode:</b> Optimizes CPU core performance while maintaining moderate power efficiency.</li>
  <li><b>Balanced Core Memory Performance Mode:</b> Provides a balanced configuration between CPU core speed and memory throughput for general workloads.</li>
</ul>

<p><b>Performance Mode (Default = Balance):</b></p>
<p>Performance Mode forces the system to operate at its highest performance level, sacrificing power efficiency for maximum speed. Values for this BIOS option can be:</p>
<ul>
  <li><b>Performance:</b> Keep in higher frequency without power saving.</li>
  <li><b>Balance:</b> Keep in lower frequency and power when OS idle, and increase frequency and power by loading.</li>
  <li><b>Custom:</b> Allows advanced users to manually fine-tune performance and power settings based on specific workload requirements.</li>
</ul>

<p><b>ASPM Control (Default = Auto):</b></p>
<p>ASPM (Active State Power Management) is a PCI Express power-saving feature that reduces power consumption by placing links into lower power states when idle. Values for this BIOS option can be:</p>
<ul>
  <li><b>Auto:</b> The system automatically manages PCIe link power states based on platform policy and device capabilities.</li>
  <li><b>L1:</b> Forces the PCIe link to enter L1 low-power state when idle, saving power but possibly increasing latency.</li>
  <li><b>Disabled:</b> Disables ASPM, keeping PCIe links fully active at the cost of higher power consumption.</li>
</ul>

<p><b>CPPC (Default = Auto):</b></p>
<p>CPPC (Collaborative Processor Performance Control) allows the OS and processor to work together to optimize performance and power efficiency by selecting appropriate performance levels dynamically. Values for this BIOS option can be:</p>
<ul>
  <li><b>Auto:</b> The platform decides whether to enable CPPC based on firmware or OS support.</li>
  <li><b>Enabled:</b> Forces CPPC functionality to be active, allowing the OS to directly request performance states.</li>
  <li><b>Disabled:</b> Turns off CPPC, leaving performance control to traditional P-state mechanisms or BIOS settings.</li>
</ul>
<p><b>Memory Interleaving (Default = Auto):</b></p>
<p>Allows for disabling memory interleaving. Note that NUMA nodes per socket will be honored regardless of this setting. Values for this BIOS option can be:</p>
<ul>
  <li><b>Auto:</b> Lets the system automatically choose whether to enable memory interleaving based on platform configuration.</li>
  <li><b>Enabled:</b> Forces memory interleaving on to improve performance in bandwidth-sensitive workloads.</li>
  <li><b>Disabled:</b> Disables memory interleaving, which may help latency-sensitive applications or aid in debugging memory behavior.</li>
</ul>

<p><b>SVM Mode (Default = Enable):</b></p>
<p>SVM (Secure Virtual Machine) Mode is a BIOS setting that enables or disables hardware-assisted virtualization on AMD processors. When enabled, it allows the use of virtualization technologies such as AMD-V, which are required by hypervisors (e.g., VMware, Hyper-V, KVM) to run virtual machines with hardware-level isolation and improved performance. Values for this BIOS option can be:</p>
<ul>
  <li><b>Enabled</b></li>
  <li><b>Disabled</b></li>
</ul>

<p><b>SR-IOV Support (Default = Enabled):</b></p>
<p>SR-IOV (Single Root I/O Virtualization) is a hardware-assisted virtualization technology that allows a single physical PCIe device (such as a network interface card) to present multiple virtual functions (VFs) to the operating system or hypervisor. This enables more efficient and direct access to hardware for virtual machines, reducing I/O overhead and improving performance in virtualized environments. Values for this BIOS option can be:</p>
<ul>
  <li><b>Enabled</b></li>
  <li><b>Disabled</b></li>
</ul>

<p><b>SEV Control (Default = Enabled):</b></p>
<p>SEV (Secure Encrypted Virtualization) is an AMD security technology that encrypts the memory of virtual machines, protecting guest data from being accessed or tampered with by the hypervisor or other VMs. It enhances data confidentiality in cloud or multi-tenant environments by isolating VMs at the hardware level. Values for this BIOS option can be:</p>
<ul>
  <li><b>Enabled</b></li>
  <li><b>Disabled</b></li>
</ul>

<p><b>BoostFmaxEn (Default = Auto):</b></p>
<p>BoostFmaxEn determines whether the CPU's maximum frequency (Fmax) is set automatically by the system or manually by the user. Values for this BIOS option can be:</p>
<ul>
  <li><b>Auto</b></li>
  <li><b>Manual</b></li>
</ul>

<p><b>BoostFmax (Default = 0):</b></p>
<p>BoostFmax defines the maximum frequency (in MHz) the CPU is allowed to reach when frequency boosting is enabled.</p>
<ul>
  <li><b>0:</b> Uses the processor's default Fmax value as defined by AMD (no user-defined override).</li>
</ul>
<p><b>Determinism Control (Default = Auto):</b></p>
<p>Determinism Control is a BIOS setting used on AMD EPYC processors to influence how the system behaves in terms of frequency and performance consistency across cores and sockets. It ensures predictable performance, which is especially useful in multi-socket or multi-node systems where workloads must remain consistent across processors. Values for this BIOS option can be:</p>
<ul>
  <li><b>Auto</b></li>
  <li><b>Manual</b></li>
</ul>

<p><b>Determinism Enable (Default = Power):</b></p>
<p>Determinism Enable is a setting that determines whether a system prioritizes consistent power behavior or peak performance when determinism is manually controlled. It works in conjunction with the Determinism Control setting to fine-tune system response across cores and sockets. Values for this BIOS option can be:</p>
<ul>
  <li><b>Power</b></li>
  <li><b>Performance</b></li>
</ul>

<p><b>TDP Control (Default = Auto):</b></p>
<p>TDP Control determines how the processor's Thermal Design Power (TDP) is managed - either automatically by the system or manually by user-defined limits. This setting affects CPU power consumption and thermal behavior. Values for this BIOS option can be:</p>
<ul>
  <li><b>Auto</b></li>
  <li><b>Manual</b></li>
</ul>

<p><b>TDP (Default = 0):</b></p>
<p>TDP (Thermal Design Power) sets a power consumption target for the CPU in watts, helping manage thermal output and power limits during operation - especially relevant when TDP Control is set to Manual.</p>
<ul>
  <li><b>0:</b> Uses the processor's default TDP value as defined by AMD (no user-defined override).</li>
</ul>

<p><b>PPT Control (Default = Auto):</b></p>
<p>PPT Control (Package Power Tracking Control) determines whether the maximum allowable CPU package power (PPT limit) is automatically set by the system or manually defined by the user to control CPU power usage. Values for this BIOS option can be:</p>
<ul>
  <li><b>Auto</b></li>
  <li><b>Manual</b></li>
</ul>

<p><b>PPT (Default = 0):</b></p>
<p>PPT defines the upper limit of total power consumption (in watts) for the CPU package, including cores, cache, and SoC components, to ensure thermal and electrical safety.</p>
<ul>
  <li><b>0:</b> A value of 0 typically means no user-defined PPT limit, and the system will rely on default platform or processor limits unless overridden elsewhere.</li>
</ul>    
<p><b>ACPI CST C2 Latency (Default = 100):</b></p>
<p>ACPI CST C2 Latency defines the response time (in microseconds) for the processor to exit the C2 low-power state and return to full operation. This setting influences how quickly the CPU can resume tasks after being in power-saving mode.</p>
<ul>
  <li><b>100:</b> A latency value of 100&nbsp;&micro;s means the processor will take approximately 100 microseconds to exit C2 state and resume activity, balancing power savings with wake-up responsiveness.</li>
</ul>

<p><b>Memory Target Speed (Default = Auto):</b></p>
<p>Memory Target Speed sets the desired memory (DRAM) operating frequency for the system, affecting overall memory bandwidth and latency performance. Values for this BIOS option can be:</p>
<ul>
  <li><b>Auto:</b> Automatically selects the optimal memory speed based on installed DIMMs and system stability.</li>
  <li><b>DDR3600</b>: Runs memory at 3600 MT/s, suitable for balanced performance and compatibility.</li>
  <li><b>DDR4000</b>: Sets memory to 4000 MT/s for moderate performance tuning.</li>
  <li><b>DDR4400</b>: Targets 4400 MT/s for improved throughput with higher-quality modules.</li>
  <li><b>DDR4800</b>: Operates at 4800 MT/s, common in high-end servers and desktops.</li>
  <li><b>DDR5200</b>: Boosts to 5200 MT/s for enhanced memory bandwidth.</li>
  <li><b>DDR5600</b>: Provides even faster memory speed, ideal for intensive workloads.</li>
  <li><b>DDR6000</b>: Delivers near-maximum performance for modern DDR5 platforms.</li>
  <li><b>DDR6400</b>: Sets memory to the highest supported speed, maximizing bandwidth at the cost of potential stability trade-offs.</li>
</ul>

<p><b>NUMA Nodes Per Socket (Default = Auto):</b></p>
<p>NUMA Nodes Per Socket (NPS) determines how many NUMA (Non-Uniform Memory Access) domains are created per CPU socket, impacting memory locality, bandwidth, and latency for multi-threaded workloads. Values for this BIOS option can be:</p>
<ul>
  <li><b>Auto:</b> Automatically selects the NUMA configuration based on system firmware or OS recommendations.</li>
  <li><b>NPS0:</b> Combines all cores and memory of a socket into a single NUMA node to reduce cross-node communication.</li>
  <li><b>NPS1:</b> Divides the socket into 1 NUMA node per socket (default for many applications).</li>
  <li><b>NPS2:</b> Splits the socket into 2 NUMA nodes, improving locality for memory-intensive tasks.</li>
  <li><b>NPS4:</b> Splits the socket into 4 NUMA nodes for maximum memory bandwidth and minimal latency per region, ideal for NUMA-aware applications.</li>
</ul>

<p><b>DRAM Scrub Time (Default = 24hr):</b></p>
<p>DRAM Scrub Time defines the periodic interval for background memory error correction (memory scrubbing), which helps detect and repair soft errors (bit flips) in DRAM to improve system reliability. Values for this BIOS option can be:</p>
<ul>
  <li><b>48hr</b>: Performs DRAM error scrubbing once every 48 hours, minimizing overhead with slower error correction.</li>
  <li><b>24hr</b>: Performs DRAM scrubbing every 24 hours (default for balanced protection and overhead).</li>
  <li><b>16hr</b>: Triggers memory scrubbing every 16 hours for more frequent ECC correction.</li>
  <li><b>12hr</b>: Scrubs DRAM every 12 hours for improved error mitigation.</li>
  <li><b>8hr</b>: Increases ECC scanning frequency to once every 8 hours.</li>
  <li><b>6hr</b>: Shortens scrub interval to 6 hours to catch errors more proactively.</li>
  <li><b>4hr</b>: Runs scrubbing every 4 hours, enhancing protection for high-availability systems.</li>
  <li><b>1hr</b>: Aggressively scrubs DRAM every hour, maximizing error correction but with higher CPU/memory overhead.</li>
  <li><b>Disabled</b>: Disables DRAM background scrubbing entirely, reducing overhead but increasing risk of uncorrected soft errors.</li>
</ul>

<p><b>L1 Stride Prefetcher (Default = Auto):</b></p>
<p>L1 Stride Prefetcher is a processor feature that attempts to pre-load data into the L1 cache by predicting memory access patterns with regular strides, helping improve performance by reducing cache miss latency. Values for this BIOS option can be:</p>
<ul>
  <li><b>Auto</b></li>
  <li><b>Enabled</b></li>
  <li><b>Disabled</b></li>
</ul>

<p><b>APBDIS (Default = 0):</b></p>
<p>APBDIS (Application Power Brake Disable) is a BIOS setting that controls whether the CPU's internal power throttling feature (Application Power Brake, APB) is enabled or disabled. APB dynamically reduces performance under certain conditions to meet power or thermal constraints. Values for this BIOS option can be:</p>
<ul>
  <li><b>0</b>: APB is enabled, allowing the processor to throttle performance to reduce power/thermal load.</li>
  <li><b>1</b>: APB is disabled, preventing the processor from throttling performance due to APB triggers.</li>
  <li><b>Auto</b>: The system automatically decides whether to enable or disable APB based on platform policies or workload behavior.</li>
</ul>

<p><b>ACPI SRAT L3 Cache As NUMA Domain (Default = Auto):</b></p>
<p>This BIOS setting defines whether each L3 cache segment is treated as a separate NUMA (Non-Uniform Memory Access) domain by reporting it in the ACPI SRAT (System Resource Affinity Table). This can affect how the OS and applications schedule memory and threads. Values for this BIOS option can be:</p>
<ul>
  <li><b>Auto:</b> The system automatically determines whether to expose L3 cache as a NUMA domain based on platform policies.</li>
  <li><b>Enabled:</b> Each L3 cache segment is exposed as an individual NUMA domain to the OS for fine-grained memory/thread affinity control.</li>
  <li><b>Disabled:</b> L3 cache is not treated as a separate NUMA domain; NUMA configuration follows socket or NPS setting.</li>
</ul>

<p><b>DF Cstates (Default = Auto):</b></p>
<p>Much like CPU cores, the AMD Infinity Fabric can enter lower-power states while idle, but a delay occurs when transitioning back to fullpower mode that causes some latency jitter. Disabling this feature for workloads requiring low latency and/or bursty I/O will increase both performance and power consumption.:</p>
<ul>
  <li><b>Auto/Enabled:</b> Allow the AMD Infinity Fabric to enter a low-power state.</li>
  <li><b>Disabled:</b> Prevent the AMD Infinity Fabric from entering a low-power state.</li>
</ul>

<p><b>Global C-state Control (Default = Auto):</b></p>
<p>The Global C-States Control enables and disables C-states on the server across all cores. Disabling this feature means that the CPU cores can only be in C0 (active) or C1 state because the C1 state cannot be disabled. A CPU core will be in C1 state if the core is halted by the OS. IO based C-state generation and DF C-states include core processor C-States. If you have a low latency or extremely low jitter use case, then consider disabling DF C-states as described in this Tuning Guide. AMD strongly recommends not disabling Global C-states except for debugging.:</p>
<ul>
  <li><b>Auto/Enabled:</b> Controls IO based C-state generation and DF C-states,including core processor C-States</li>
  <li><b>Disabled:</b> AMD strongly recommends not disabling this option because this also disables core processor C-States.</li>
</ul>

<p><b>GMI Folding (Default = Auto):</b></p>
<p>GMI Folding (Global Memory Interconnect Folding) is a power-saving feature that dynamically manages the data lanes between the CCD (Core Complex Die) and the IOD (I/O Die) on AMD EPYC processors.:</p>
<ul>
  <li><b>Auto/Enabled:</b> Enable GMI Folding feature to save link power.</li>
  <li><b>Disabled:</b> Disable GMI Folding feature to decrease memory latency.</li>
</ul>

<p><b>Last updated  Apr 07, 2026.</b></p> ]]>
</firmware>
</flagsdescription>
