Comment 0 for bug 684888

Revision history for this message
Leann Ogasawara (leannogasawara) wrote :

SRU Justification:

We periodically provide updated drivers to provide additional support for hardware and provide bug fixes. The intel_idle is a cpuidle driver that loads on specific Intel processors in lieu of the legacy ACPI processor_idle driver. The intent is to make Linux more efficient on these processors, as intel_idle knows more than ACPI, as well as make Linux more immune to ACPI BIOS bugs. As we now support HW that can leverage the intel_idle driver, it's advantageous to provide an updated version of the driver for those interested in it's use. All of the patches are already upstream as well (see details below) and were even suggested as a stable release by the upstream maintainer.

I'd originally pursued providing this update via linux-bcakports-modules. However, testing proved that because the acpi_idle driver is built into the kernel, it prevents the intel_idle driver from loading later on via LBM. This is because the core cpuidle driver is not capable of handling run-time changing of idle drivers.

Impact:
These patches should only affect the intel_idle driver. It will also only load on supported systems. This driver can also be disabled by booting with "intel_idle.max_cstate=0" which disables intel_idle and the system will fall back on ACPI's "acpi_idle".

I will also update https://wiki.ubuntu.com/Kernel/Dev/KernelDriverDeviations to note the update.

Test Case: Load the kernel with the updated intel_idle driver on a system which is supported and confirm it loads and is functioning.

A summary of the usptream patches is as follows:

git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6.35.y.git idle-release

 * intel_idle: do not use the LAPIC timer for ATOM C2
 * intel_idle: add initial Sandy Bridge support
 * intel_idle: delete bogus data from cpuidle_state.power_usage
 * intel_idle: simplify test for leave_mm()
 * intel_idle: enable Atom C6
 * intel_idle: Voluntary leave_mm before entering deeper
 * cpuidle: extend cpuidle and menu governor to handle dynamic states
 * intel_idle: add missing __percpu markup
 * intel_idle: Change mode 755 => 644
 * x86, mwait: Move mwait constants to a common header file
 * intel_idle: recognize Lincroft Atom Processor
 * intel_idle: add support for Westmere-EX
 * intel_idle: delete power_policy modparam, and choose substate functions
 * intel_idle: delete substates DEBUG modparam