System x Hidden UEFI ParametersPlanning / Implementation

Updated
15 May 2018
Form Number
LP0519
PDF size
5 pages, 69 KB

Abstract

The Lenovo server Unified Extensible Firmware Interface (UEFI) provides the interface between an operating system and the server firmware. Many UEFI tuning parameters can be changed by system administrators to fine-tune the operation of a server. Other UEFI parameters are more limited in their applicability to customer use cases and are not exposed in UEFI menus but can be accessed using Lenovo command line utilities.

This paper describes how to view and change the values of these hidden UEFI parameters on System x servers with Intel E5-2600 v3 and v4 processors. The intended audience is IT administrators and technical professionals who are responsible for server performance.

Change History

Changes in the May 15 update:

  • Added a reference to the matching ThinkSystem paper

Introduction

The Lenovo server Unified Extensible Firmware Interface (UEFI) provides the interface between an operating system and the server firmware. Many UEFI parameters are exposed to server administrators in UEFI menus that can be accessed by pressing F1 when a server is rebooted, through the Lenovo integrated management module (IMM) or through command line utilities such as Lenovo’s Advanced Settings Utility (ASU) or OneCLI.

These parameters are exposed because they are commonly changed from their default values to fine tune server performance for a wide variety of customer use cases. Other UEFI settings are more limited in their applicability to customer use cases and are not exposed in UEFI menus but can be accessed using the command line utilities.

In this paper, we describe the following commands that are only accessible via command-line utilities:

  • Snoop Response Hold Off
  • IO Non-Posted Prefetch

These commands are available for System x servers that use the Intel E5-2600 v3 and v4 processors.

Tip: ThinkSystem servers with Intel Xeon Scalable Family processors also have hidden UEFI parameters as described in the paper ThinkSystem Hidden UEFI Parameters.

Snoop Response Hold Off

This hidden parameter is accessible on Lenovo System x servers that use the Intel E5-2600 v3 and v4 processors, as well as ThinkSystem servers with Intel Xeon Scalable Family processors.

For some workloads in which throughput and latency are critical, it is better to constantly poll the status of an I/O device rather than use an interrupt. Network adapter device drivers commonly use a thread to continuously poll in a fast loop so that incoming requests can be handled as fast as possible.

This can create contention between a processor core running the polling thread and the processor’s Integrated I/O feature (IIO) for an I/O-owned line in cache. This contention can cause an I/O operation to lose ownership of the cache line it has just acquired. It must then spend more time reacquiring the cache line to write it back.

When there are a large number of network ports each servicing small packets, the system may not be able to achieve the full throughput required due to excessive I/O and core contentions of cache lines. For this situation, the I/O operation should delay its response to core snoops and hold onto its cache lines until it successfully completes its write.

The Snoop Response Hold Off parameter allows the I/O operation to delay its snoop response by a selected amount to achieve this delay. It is possible to adjust this parameter using Lenovo’s Advanced Settings Utility (ASU) or the OneCLI tool as follows.

ASU command:

To show the current setting or to change the setting with ASU, use these commands:

asu64 show Processors.SnoopResponseHoldOff --override
asu64 set Processors.SnoopResponseHoldOff value --override

Where value is a number from 0 to 15 . The default (initial value) is 6. The parameter --override is required when viewing or changing the setting.

OneCLI command:

To show the current setting or to change the setting with OneCLI, use these commands:

onecli config show Processors.SnoopResponseHoldOff --override
onecli config set Processors.SnoopResponseHoldOff value --override

Where value is a number from 0 to 15. The default (initial value) is 6. The parameter --override is required when viewing or changing the setting.

For both ASU and OneCLI, the parameter value can be between 0 and 15, which corresponds to a number cycles as shown in following table. The cycles in the table are IIO clock cycles which are 2 ns per cycle. For Intel Omni-Path network adapter use, we recommend setting this parameter to 9 as a starting point. Network performance tests should be performed to determine the most optimal value for each customer’s workload.

Table 1. Possible values of the value parameter in the Processors.SnoopResponseHoldOff command
Value Number of cycles (1 cycle = 2 nanoseconds)
0 Disabled
1 8
2 16
3 32
4 64
5 128
6 256
7 512
8 1K
9 2K
10 4K
11 8K
12 16K
13 32K
14 64K
15 128K

IO Non-Posted Prefetch

This hidden parameter is accessible on Lenovo System x servers that use the Intel E5-2600 v3 and v4 processors.

The E5-2600 v3 and v4 processors provide 40 lanes of PCIe interconnect. It is possible to support up to five x8 PCIe configurations per processor. If these x8 PCIe devices are primarily performing memory reads, improved throughput is possible by turning on non-posted prefetches. This allows more requests to be issued even if internal switch queues are full. This provides better throughput for 100% reads, but may reduce the performance for some PCIe memory writes.

This parameter can be modified using Lenovo’s Advanced Settings Utility or the OneCLI tool as follows.

ASU command:

To show the current setting or to change the setting with ASU, use these commands:

asu64 show Processors.IouNpPrefetch --override
asu64 set Processors.IouNpPrefetch value --override

Where value is Disable or Enable. The default (initial value) is Disable. The parameter --override is required when viewing or changing the setting.

OneCLI command:

To show the current setting or to change the setting with OneCLI, use these commands:

onecli config show Processors.IouNpPrefetch --override
onecli config set Processors.IouNpPrefetch value --override

Where value is Disable or Enable. The parameter --override is required when viewing or changing the setting.

Related product families

Product families related to this document are the following: