SPEC CPU2017 Flag Description for NEC Server Platform

Operating System Tuning Parameters

cpupower frequency-set:

cpupower utility is a collection of tools for power efficiency of processor. frequency-set sub-command controls settings for processor frequency. "-g [governor]" specifies a policy to select processor frequency. The performance governor statically sets frequency of the processor cores specified by "-c" option to the highest possible for maximum performance.

nohz_full:

This kernel option sets adaptive tick mode (NOHZ_FULL) to specified processors. Since the number of interrupts is reduced to ones per second, latency-sensitive applications can take advantage of it.

numa_balancing:

This OS setting controls automatic NUMA balancing on memory mapping and process placement. Setting 0 disables this feature. It is enabled by default (1).

sched_cfs_bandwidth_slice_us:

This OS setting controls the amount of run-time(bandwidth) transferred to a run queue from the task's control group bandwidth pool. Small values allow the global bandwidth to be shared in a fine-grained manner among tasks, larger values reduce transfer overhead. The default value is 5000 (ns).

sched_latency_ns:

This OS setting configures targeted preemption latency for CPU bound tasks. The default value is 24000000 (ns).

sched_migration_cost_ns:

Amount of time after the last execution that a task is considered to be "cache hot" in migration decisions. A "hot" task is less likely to be migrated to another CPU, so increasing this variable reduces task migrations. The default value is 500000 (ns).

sched_min_granularity_ns:

This OS setting controls the minimal preemption granularity for CPU bound tasks. As the number of runnable tasks increases, CFS(Complete Fair Scheduler), the scheduler of the Linux kernel, decreases the timeslices of tasks. If the number of runnable tasks exceeds sched_latency_ns/sched_min_granularity_ns, the timeslice becomes number_of_running_tasks * sched_min_granularity_ns. The default value is 8000000 (ns).

sched_wakeup_granularity_ns:

This OS setting controls the wake-up preemption granularity. Increasing this variable reduces wake-up preemption, reducing disturbance of compute bound tasks. Lowering it improves wake-up latency and throughput for latency critical tasks, particularly when a short duty cycle load component must compete with CPU bound components. The default value is 10000000 (ns).

irqbalance:

Disabled through "service irqbalance stop". Depending on the workload involved, the irqbalance service reassigns various IRQ's to system CPUs. Though this service might help in some situations, disabling it can also help environments which need to minimize or eliminate latency to more quickly respond to events.

Tuning Kernel parameters:

The following Linux Kernel parameters were tuned to better optimize performance of some areas of the system:


Firmware / BIOS / Microcode Settings

Memory RAS Mode:

This server has "SDDC Mode","ADDDC Mode", "Spare Mode", "Full Mirror Mode", "Addr Mirror Mode", "Reliable Memory Mode", and "Memory Scrubbing Function" as memory RAS functions. This default setting is "ADDDC Mode".

VT-x:

Enable or disable the processor virtualization feature which improve virtualization performance and scalabilities. This option is inaccessible when Intel TXT is set to enabled. This default setting is "Enabled".

Processor C6 Report:

Set Enable/Disable of the C6 State transition function by OS. This default setting is "Enabled".

DCU Streamer Prefetcher:

Set [enable / disable] of DCU Streamer Prefetcher of processor. This default setting is "Enabled".

OS Performance Tuning:

OS Performance Tuning is the setting which enables or disables the OS power management policy. If enabled, the processor power/performance is controlled by OS. If disabled, "Energy Performance" is displayed and the processor power/performance is controlled by "Energy Performance" setting in the BIOS. This default setting is "Enabled".

Energy Performance:

Set the operation of the processor to performance priority or power saving priority. This item is displayed only when 'OS Performance Tuning' is set to Disabled. This default setting is "Balanced Performance".

Dead Line LLC Allocation:

In the Skylake non-inclusive cache scheme, mid-level cache (MLC) evictions are filled into the last-level cache (LLC). If a line is evicted from the MLC to the LLC, the core can flag the evicted MLC lines as "dead." This means that the lines are not likely to be read again. This option allows dead lines to be dropped and never fill the LLC if this option is disabled. However, if this option is enabled, the LLC can opportunistically fill dead lines into the LLC if there is free space available. This default setting is "Enabled".

Patrol Scrub:

Activate the patrol scrubbing function. This default setting is "Enabled".

Memory P.E. Retry:

Set [Enable / Disable] for DDR4 CMD / ADDR Parity Error Retry function. This default setting is "Enabled".

Sub NUMA Clustering (SNC):

SNC breaks up the last level cache (LLC) into disjoint clusters based on address range, with each cluster bound to a subset of the memory controllers in the system. SNC improves average latency to the LLC and memory. SNC is a replacement for the cluster on die (COD) feature found in previous processor families. For a multi-socketed system, all SNC clusters are mapped to unique NUMA domains. Set Enable/Disable of Sub NUMA Clustering function. This item is displayed only when a processor supporting this function is installed. This default setting is "Disabled".

Turbo Boost:

Enable or disable Intel(R) Turbo Boost technology. This item is displayed only when the installed processor supports this feature. This option is displayed only when EIST is set to Enabled. This default setting is "Disabled".