<?xml version="1.0"?>

<!DOCTYPE flagsdescription SYSTEM "http://www.spec.org/dtd/cpuflags2.dtd">

<flagsdescription>

<filename>HitachiVantaraPlatform-DS220-V1.xml</filename>

<title>SPEC CPU2017 software OS and BIOS Settings Descriptions for Hitachi Vantara Platform systems</title>

<os_tuning>
<![CDATA[

<p><b>OS Tuning</b></p>

<p><b>ulimit</b>:</p>
<p>Used to set user limits of system-wide resources. Provides control over resources available to the shell and processes started by it. Some common ulimit commands may include:</p>
<ul>
<li><b>ulimit -s [n | unlimited]</b>: Set the stack size to <b>n</b> kbytes, or <b>unlimited</b> to allow the stack size to grow without limit.</li>
<li><b>ulimit -l (number)</b>: Set the maximum size that can be locked into memory.</li>
</ul>

<p><b>Transparent Huge Pages (THP)</b>:</p>
<p>THP is an abstraction layer that automates most aspects of creating, managing, and using huge pages. THP is designed to hide much of the complexity in using huge pages from system administrators and developers, as normal huge pages must be assigned at boot time, can be difficult to manage manually, and often require significant changes to code in order to be used effectively. Transparent Hugepages increase the memory page size from 4 kilobytes to 2 megabytes. Transparent Hugepages provide significant performance advantages on systems with highly contended resources and large memory workloads. If memory utilization is too high or memory is badly fragmented which prevents hugepages being allocated, the kernel will assign smaller 4k pages instead. Most recent Linux OS releases have THP enabled by default.</p>

<p><b>Linux Huge Page settings</b>:</p>
<p>If you need finer control and manually set the Huge Pages you can follow the below steps:</p>
<ul>
<li>Create a mount point for the huge pages: "mkdir /mnt/hugepages"</li>
<li>The huge page file system needs to be mounted when the systems reboots. Add the following to a system boot configuration file before any services are started: "mount -t hugetlbfs nodev /mnt/hugepages"</li>
<li>Set vm/nr_hugepages=N in your /etc/sysctl.conf file where N is the maximum number of pages the system may allocate.</li>
<li>Reboot to have the changes take effect.</li>
</ul>
<p>Note that further information about huge pages may be found in your Linux documentation file: /usr/src/linux/Documentation/vm/hugetlbpage.txt</p>

]]>
</os_tuning>

<firmware>
<![CDATA[

<p><b>Hyper-Threading (Default = Enabled):</b></p>
<p>This feature allows enabling or disabling of logical processor cores on processors supporting Intel Hyper-Threading (HT).  When enabled, each physical processor core operates as two logical processor cores. When disabled, each physical core operates as only one logical processor core. Enabling this option can improve overall performance for applications that benefit from a higher processor core count.</p>

<p><b>Intel Virtualization Technology (Intel VT, VT-x) (Default = Enabled):</b></p>
<p>When enabled, a hypervisor or operating system supporting this option can use hardware capabilities provided by Intel VT. Some hypervisors require that you enable Intel VT. You can leave this set to enabled even if you are not using a hypervisor or an operating system that uses this option. With default BIOS settings as shipped with most systems, the default state for this setting is Enabled. However, this setting can change it's default setting depending on the Workload Profile that is selected, or what Workload Profile is default for the a certain system.</p>

<p><b>VT-d (Intel VT-d) (Default = Enabled):</b></p>
<p>If enabled, a hypervisor or operating system supporting this option can use hardware capabilities provided by Intel VT for Directed I/O. You can leave this set to enabled even if you are not using a hypervisor or an operating system that uses this option. With default BIOS settings as shipped with most systems, the default state for this setting is Enabled. However, this setting can change it's default setting depending on the Workload Profile that is selected, or what Workload Profile is default for the a certain system.</p>

<p><b>Processor C1 Enhanced Halt State (Default = Enable):</b></p>
<p>This setting does not take effect until after you have rebooted the server.</p>
<ul>
<li><b>Enable</b>: Enabling this option allows the processor to transition to its minimum frequency upon entering C1.</li> 
<li><b>Disable</b>: In disabled state, the CPU continues to run at its maximum frequency in C1 state. Users should disable this option for performing application benchmarking. In enabled state, the CPU transitions to its minimum frequency. This option saves the maximum amount of power in the C1 state. By default, C1 Enhanced is disabled.</li>
</ul>

<p><b>Last Level Cache (LLC) Dead Line Allocation (Default = Enabled):</b></p>
<p>In the Skylake 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 Skylake 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 the option is disabled. Values for this BIOS option can be:</p>
<ul>
<li><b>Disabled</b>: Disabling this option can save space in the LLC by never filling dead lines into the LLC. This can and prevent useful data from being evicted.</li>
<li><b>Enabled</b>: Opportunistically fill dead lines in LLC, if space is available.</li>
</ul>

<p><b>Last Level Cache (LLC) Prefetch (Default = Disabled):</b></p>
<p>This option configures the processor Last Level Cache (LLC) prefetch feature as a result of the non-inclusive cache architecture. The LLC prefetcher exists on top of other prefetchers that that can prefetch data in the core data cache unit (DCU) and mid-level cache(MLC). In some cases, setting this option to disabled can improve performance. Typically, setting this option to enable provides better performance. Values for this BIOS option can be:</p>
<ul>
<li><b>Disabled</b>: Disabling this option can forces data to fill the MLC before prefetching data to the LLC.</li>
<li><b>Enabled</b>: Giving the core prefetcher the ability to prefetch data directly to the LLC without filling the MLC.</li>
</ul>

<p><b>Sub-NUMA Clustering (SNC) (Default = Enabled):</b></p>
<p>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. (See also IMC interleaving.) Values for this BIOS option can be:</p>
<ul>
<li><b>Disabled</b>: The LLC is treated as one cluster when this option is disabled</li>
<li><b>Enabled</b>: Utilizes LLC capacity more efficiently and reduces latency due to core/IMC proximity. This may provide performance improvement on NUMA-aware operating systems</li>
</ul>

<p><b>Pwr and Perf Profile (Default = Custom):</b></p>
<p>Configure your own power and performance settings under Custom or adopt quick setting profiles.</p>
<ul>
<li><b>Custom</b>: Users can setup BIOS setting for their own optimization.</li>
<li><b>Energy-Saving Mode</b>: Set BIOS into power saving mode.</li>
<li><b>High Performance</b>: Set BIOS into high performance mode.</li>
</ul>


<p><b>Last updated Aug. 24, 2020.</b></p>
]]>
</firmware>

</flagsdescription>
