[Maverick][SRU][pull-request] UBUNTU: Update intel_idle driver

Leann Ogasawara leann.ogasawara at canonical.com
Fri Dec 3 20:25:42 UTC 2010


BugLink: http://bugs.launchpad.net/bugs/684888

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).

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.
Thus the reason I'm submitting this as a normal SRU for Maverick.

I would also like to note that these patches were originally submitted
to upstream stable by the upstream maintainer.  However, the submission
was later retracted due to the fact that some of the patches are
cosmetic in nature.  See:

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

Impact:

These patches should only affect the intel_idle driver. intel_idle will
also only operate on supported systems.  This driver can also be
disabled by booting with "intel_idle.max_cstate=0" 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:

Boot a kernel with the updated intel_idle driver on a system which is
supported and confirm it loads/functions.  I tested and confirmed this
works on an Intel Sandy Bridge (see bug for details).

The following changes since commit e884768247eb057c5b2111e6c24a7e6e8fc37407:

  UBUNTU: Ubuntu-2.6.35-24.42 (2010-11-30 15:28:39 -0800)

are available in the git repository at:
  git://kernel.ubuntu.com/ogasawara/ubuntu-maverick.git intel-idle

A summary of the patches is as follows:

 * 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





More information about the kernel-team mailing list