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

<flagsdescription>

<!--
######################################################################################################
       This platform flags file is supplied as an example. Please document bios/firmware settings in your
       systems that are set to non-default values for performance runs.  

       You MUST change the filename tag just below; at the very least, change "Invalid" to your company name.
######################################################################################################
-->

<filename>BullSequanaSH-Flags-V1.7</filename>

<title>SPEC CPU2017 Platform Settings for Intel-based systems</title>

<os_tuning>	 
<![CDATA[
<dl>  
<dt><b>ulimit -s &lt;n&gt; </b></dt>
   <dd>
        Sets the stack size to <b>n</b> kbytes, or <b>unlimited</b> to allow the stack size 
         to grow without limit.
   </dd>    

<dt><b>cpupower:</b></dt> 
<dd>
	The OS 'cpupower' utility is used to change CPU power governors settings. Available settings are: <ul> 
	<li>performance: Run the CPU at the maximum frequency.</li> 
	<li>powersave(default): Run the CPU at the minimum frequency.</li> </ul> 
</dd> 

<dt><b>tuned-adm:</b></dt> 
<dd> 
	The 'tuned' provides a number of predefined profiles for typical use cases. The 'tuned-adm' command is used to change settings of the tuned daemon. The tuned-adm command can query current settings, list available profiles, recommend a tuning profile for the system, change profiles directly, or turn off tuning. Available profiles are: <ul> 
	<li>accelerator-performance: Throughput-performance based tuning with disabled higher latency STOP states. </li>
	<li>balanced: General non-specialized tuned profile.</li> <li>desktop: Optimize for the desktop use-case.</li> 
	<li>hpc-compute: Optimize for HPC compute workloads.</li> <li>intel-sst: Configure for Intel Speed Select Base Frequency.</li>
	<li>latency-performance: Optimize for deterministic performance at the cost of increased power consumption.</li> 
	<li>network-latency: Optimize for deterministic performance at the cost of increased power consumption, focused on low latency network performance.</li> 
	<li>network-throughput: Optimize for streaming network throughput, generally only necessary on older CPUs or 40G+ networks.</li>
	<li>optimize-serial-console: Optimize for serial console use.</li> 
	<li>powersave: Optimize for low power consumption.</li> 
	<li>throughput-performance(default): Broadly applicable tuning that provides excellent performance across a variety of common server workloads.</li> 
	<li>virtual-guest: Optimize for running inside a virtual guest.</li> 
	<li>virtual-host: Optimize for running KVM guests.</li> </ul> 
</dd> 

<dt><b>transparent_hugepages:</b></dt>
	<dd>
		Processes are allowed to use hugepages by writing "always" to the system file/sys/kernel/mm/transparent_hugepage.
		Possible options are:
		<ul>
		<li>always:
means that an application requesting THP will stall on allocation failure and directly reclaim pages and compact memory in an effort to allocate a THP immediately. This may be desirable for virtual machines that benefit heavily from THP use and are willing to delay the VM start to utilise them.</li>

		<li>madvise (default): 
will enter direct reclaim like always but only for regions that are have used madvise(MADV_HUGEPAGE). This is the default behaviour.</li>

		<li>never:
should be self-explanatory.</li>
		</ul>
	</dd>

<dt><b>numactl --interleave=all "runspec command"</b></dt> 
   <dd>
   Launching a process with numactl --interleave=all sets the memory interleave policy so that memory will be allocated using 
   round robin on nodes. When memory cannot be allocated on the current interleave target fall back to other nodes. 
   </dd>

</dl>

]]>
</os_tuning>

<firmware>

<![CDATA[
<dl>
<dt><b>Patrol Scrub</b></dt> 
<dd>
      This BIOS option allows to configure the periodicity of memory scrubbing.<ul>
      <li>Disable (Default): Setting this BIOS option to Disable, no systematic periodic scrubbing is done</li>
      <li>Enable: Setting this BIOS option to an integer from 1 to 24 ensures all the memory is scanned in that number of hours</li>
	  </ul>
</dd>

<dt><b>SNC</b></dt> 
 <dd>
  Sub NUMA Clustering (SNC) is a feature for breaking up the LLC into disjoint clusters based on address range, with each cluster bound to a subset of the memory controllers in the system.
  It improves average latency to the LLC and is an important pre-requisite to enabling KTI prefetch and is a replacement for the Cluster-on-Die feature found in previous processors.
  <ul>
  <li>enable: supports 2-way clustering. Utilizes LLC capacity efficiently and reduces latency due to core/IMC proximity. This may provide performance improvement on NUMA-aware operating systems.</li>

  <li>disable (default): supports 1-cluster and 2-way IMC interleave, the LLC is treated as one cluster.</li>
  </ul>
 </dd>

 <dt><b>Power Performance Tuning</b></dt>
<dd>
        Sets wether the performance behaviour is decided by the OS or the BIOS.
<ul>
        <li>OS controls EPB (default): performance managed by the OS</li>
        <li>BIOS controls EPB: performance managed by the BIOS</li>
</ul></dd>

<dt><b>ENERGY_PERF_BIAS_CFG mode</b></dt> 
 <dd>
  This BIOS option allows for processor performance and power optmization. Available settings are:
  <ul>
  <li>Hyper Performance: High performance with less need for power saving.</li>
  <li>Performance: High performance with less need for power saving.</li>

  <li>Balanced Performance (Default Setting): Provides optimal performance efficiency.</li>

  <li>Balanced Power: Provides optimal power efficiency.</li>

  <li>Power: High power saving with less need for performance.</li>
  </ul>
</dd>

<dt><b>DCU Streamer Prefetcher</b></dt>
  <dd>
    DCU (Level 1 Data Cache) streamer prefetcher is an L1 data cache prefetcher. Lightly threaded applications and some benchmarks can benefit from having the DCU streamer prefetcher enabled. 
	  <ul>
		  <li>Enable(default)</li>
		  <li>Disable</li>
	 </ul>
  </dd>



<dt><b>FansFullSpeed</b></dt>
  <dd>
	By default, the fan speed is regulated to keep the processor temperature just below the maximum
	To lower the processor temperature, fans are set to the maximum speed using a redfish command on the BMC.
	
	<p>curl -k -u "bmcLogin":"passwd" -H "Content-Type: application/json" -d '{"Oem":{"Eviden_com":{"FansFullSpeed": true}}}' -X PATCH https://"bmc ip address"/redfish/v1/Chassis/Module0/Thermal</p>
  </dd>
  </dl>
]]>

  </firmware>

</flagsdescription>
