mbox

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

Message ID 1291407942.2385.5728.camel@emiko
State Accepted
Headers show

Pull-request

git://kernel.ubuntu.com/ogasawara/ubuntu-maverick.git intel-idle

Message

Leann Ogasawara Dec. 3, 2010, 8:25 p.m. UTC
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

Comments

Stefan Bader Dec. 6, 2010, 9:37 a.m. UTC | #1
On 12/03/2010 09:25 PM, Leann Ogasawara wrote:
> 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
> 
> 
Given that
- this comes from the maintainer and likely will also come via stable (at least
  the parts not cosmetic)
- it is well testable with hardware we got
- Mavrick is the LTS-backport base currently for Lucid and the intel_idle
  driver improves and targets server in particular.

Acked-by: Stefan Bader <stefan.bader@canonical.com>
Tim Gardner Dec. 6, 2010, 3 p.m. UTC | #2
On 12/03/2010 01:25 PM, Leann Ogasawara wrote:
> 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
>
>

Fixes a couple of Atom bugs and enables Westmere-EX and Sandy Bridge 
with low risk of regression.

Acked-by: Tim Gardner <tim.gardner@canonical.com>
Tim Gardner Dec. 6, 2010, 6:28 p.m. UTC | #3
On 12/03/2010 01:25 PM, Leann Ogasawara wrote:
> 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
>
>

applied and pushed