Linux Ignores C-State Settings in Unified Extensible Firmware Interface (UEFI) - IBM Servers



Source

RETAIN tip: H207000

Symptom

Recent Linux kernels may have a built-in driver ('intel_idle') which will ignore any C-State limits imposed by Basic Input/Output System (BIOS)/Unified Extensible Firmware Interface (UEFI).

This driver was added to take advantage of the power savings given by C-States on newer Intel Central Processing Units (CPUs).

On systems where latency is an issue, this driver may cause issues by enabling C-States even though they are disabled in the BIOS or UEFI. This can cause minor latency (a few microseconds) as the CPUs transition out of a C-State and into a running state.

Affected configurations

The system may be any of the following IBM servers:

  • BladeCenter HS22, type 1911, any model
  • BladeCenter HS22, type 1936, any model
  • BladeCenter HS22, type 7809, any model, any any
  • BladeCenter HS22, type 7870, any model
  • BladeCenter HS22V, type 1949, any model
  • BladeCenter HS22V, type 7871, any model
  • BladeCenter HS23, type 1929, any model
  • BladeCenter HS23, type 7875, any model
  • BladeCenter HS23E, type 8038, any model
  • BladeCenter HS23E, type 8039, any model
  • BladeCenter HX5, type 1909, any model
  • BladeCenter HX5, type 1910, any model
  • BladeCenter HX5, type 7872, any model
  • BladeCenter HX5, type 7873, any model
  • Flex System x220 Compute Node, type 2585, any model
  • Flex System x220 Compute Node, type 7864, any model
  • Flex System x220 Compute Node, type 7906, any model
  • Flex System x222 Compute Node, type 7916, any model
  • Flex System x240 Compute Node, type 7863, any model
  • Flex System x240 Compute Node, type 8737, any model
  • Flex System x240 Compute Node, type 8738, any model
  • Flex System x440 Compute Node, type 2584, any model
  • Flex System x440 Compute Node, type 7917, any model
  • System x3100 M4, type 2582, any model
  • System x3200 M2, type 4367, any model
  • System x3200 M2, type 4368, any model
  • System x3200 M2, type 9233, any model
  • System x3200 M3, type 7327, any model
  • System x3200 M3, type 7328, any model
  • System x3250 M2, type 4190, any model
  • System x3250 M2, type 4191, any model
  • System x3250 M2, type 4194, any model
  • System x3250 M3, type 4251, any model
  • System x3250 M3, type 4252, any model
  • System x3250 M3, type 4261, any model
  • System x3250 M4, type 2583, any model
  • System x3300 M4, type 7382, any model
  • System x3400 M2, type 7836, any model
  • System x3400 M2, type 7837, any model
  • System x3400 M3, type 7378, any model
  • System x3400 M3, type 7379, any model
  • System x3500 M2, type 7839, any model
  • System x3500 M3, type 7380, any model
  • System x3500 M4, type 7383, any model
  • System x3530 M4, type 7160, any model
  • System x3550 M2, type 4198, any model
  • System x3550 M2, type 7946, any model
  • System x3550 M3, type 4254, any model
  • System x3550 M3, type 7944, any model
  • System x3550 M4, type 5459, any model
  • System x3550 M4, type 7914, any model
  • System x3620 M3, type 7376, any model
  • System x3630 M3, type 7377, any model
  • System x3630 M4, type 7158, any model
  • System x3650 M2, type 4199, any model
  • System x3650 M2, type 7947, any model
  • System x3650 M3, type 4255, any model
  • System x3650 M3, type 5454, any model
  • System x3650 M3, type 7945, any model
  • System x3650 M4, type 7915, any model
  • System x3690 X5, type 7147, any model
  • System x3690 X5, type 7148, any model
  • System x3690 X5, type 7149, any model
  • System x3690 X5, type 7192, any model
  • System x3750 M4, type 8722, any model
  • System x3750 M4, type 8733, any model
  • System x3850 X5, type 7143, any model
  • System x3850 X5, type 7145, any model
  • System x3850 X5, type 7146, any model
  • System x3850 X5, type 7191, any model
  • System x3950 X5, type 7143, any model
  • System x3950 X5, type 7145, any model

The system is configured with at least one of the following:

  • Red Hat Enterprise Linux 6 update 1, update 2, update 3
  • SUSE Linux Enterprise Server 11 Service Pack 1, Service Pack 2, Service Pack 2 x86_64

This tip is not option specific.

Note: This does not imply that the network operating system will work under all combinations of hardware and software.

Please see the compatibility page for more information: http://www.ibm.com/systems/info/x86servers/serverproven/compat/us/

The system has the symptom described above.

Workaround

To determine if the kernel has the 'intel_idle' driver included, check for the following directory:

  /sys/module/intel_idle

If it exists, then the kernel includes the kernel driver and will ignore the BIOS/UEFI settings for C-States.

To prevent the 'intel_idle' driver from ignoring BIOS/UEFI settings for C-States, add intel_idle.max_cstate=0 parameter to the kernel's bootloader configuration file which will disable the default 'intel_idle' driver.

For Red Hat Enterprise Linux Servers:

  Edit /boot/grub/grub.conf and add 'intel_idle.max_cstate=0' parameter to the kernel line.

For SUSE Linux Enterprise Servers:

  Edit /boot/grub/menu.lst and add 'intel_idle.max_cstate=0' parameter to the kernel line.

Note: An optional 'mce=ignore_ce' parameter could be added to the kernel's bootloader configuration file which will stop Linux from initiating a poll at every five (5) minutes of the Machine Check Banks for correctable errors (CEs) as this is done by system hardware monitoring application. For more information regarding specific boot options, see the Linux Kernel Archives web site:

http://www.kernel.org/doc/Documentation/x86/x86_64/boot-options.txt

Additional information

Since the 'intel_idle' driver is built into the kernel, users cannot simply remove it without rebuilding the kernel from source.

Adding the start parameter 'intel_idle.max_cstate=0' prevents the driver from loading.

Adding the start parameter 'intel_idle.max_cstate=x' allows the driver to be loaded and tells the driver to limit C-State usage to a set maximum C-State value.

Applicable countries and regions

 


Document id:  MIGR-5091901
Last modified:  2014-05-15
Copyright © 2014 IBM Corporation