[Maverick] SRU: UBUNTU: [Config] Disable inte_idle for -virtual kernels

Leann Ogasawara leann.ogasawara at canonical.com
Tue Nov 2 17:28:37 UTC 2010


On Tue, 2010-11-02 at 11:59 -0400, John Johansen wrote:
> BugLink: http://bugs.launchpad.net/bugs/651370
> 
> EC2 Xen does not properly handle the mwait instruction used by intel_idle
> resulting in an invalid opcode when an instance is launched on newer
> intel hardware.
> 
> SRU Justification:
> 
> Impact: Booting an Intel based instance with certain CPU level will fail with a panic as the driver does not seem to take into account that it is running in a virtualized environment. This only is a problem with the intel_idle driver.
> 
> Fix: Turning off intel_idle driver support for the virtual kernel image will let it use the generic idle driver as before. As this option is only changed for the virtual kernel package there is no risk of regression for the generic packages.
> 
> Testcase: Booting a large instance (with 68GB of memory) very likely results in this panic as the memory size will result in selecting certain base hardware with Intel CPUs. Turning the option off lets those instances boot again.
> 
> Signed-off-by: John Johansen <john.johansen at canonical.com>
> ---
>  debian.master/config/amd64/config.flavour.generic  |    1 +
>  debian.master/config/amd64/config.flavour.server   |    1 +
>  debian.master/config/amd64/config.flavour.virtual  |    1 +
>  debian.master/config/armel/config.common.armel     |    1 +
>  debian.master/config/config.common.ubuntu          |    1 -
>  debian.master/config/i386/config.flavour.generic   |    1 +
>  .../config/i386/config.flavour.generic-pae         |    1 +
>  debian.master/config/i386/config.flavour.virtual   |    1 +
>  8 files changed, 7 insertions(+), 1 deletions(-)
> 
> diff --git a/debian.master/config/amd64/config.flavour.generic b/debian.master/config/amd64/config.flavour.generic
> index e25d3d6..0cda20a 100644
> --- a/debian.master/config/amd64/config.flavour.generic
> +++ b/debian.master/config/amd64/config.flavour.generic
> @@ -4,6 +4,7 @@
>  CONFIG_DEFAULT_CFQ=y
>  # CONFIG_DEFAULT_DEADLINE is not set
>  CONFIG_DEFAULT_IOSCHED="cfq"
> +CONFIG_INTEL_IDLE=y
>  # CONFIG_MEMORY_HOTPLUG is not set
>  # CONFIG_PREEMPT_NONE is not set
>  CONFIG_PREEMPT_VOLUNTARY=y
> diff --git a/debian.master/config/amd64/config.flavour.server b/debian.master/config/amd64/config.flavour.server
> index 43c6c71..3fdffb1 100644
> --- a/debian.master/config/amd64/config.flavour.server
> +++ b/debian.master/config/amd64/config.flavour.server
> @@ -4,6 +4,7 @@
>  # CONFIG_DEFAULT_CFQ is not set
>  CONFIG_DEFAULT_DEADLINE=y
>  CONFIG_DEFAULT_IOSCHED="deadline"
> +CONFIG_INTEL_IDLE=y
>  CONFIG_MEMORY_HOTPLUG=y
>  CONFIG_PREEMPT_NONE=y
>  # CONFIG_PREEMPT_VOLUNTARY is not set
> diff --git a/debian.master/config/amd64/config.flavour.virtual b/debian.master/config/amd64/config.flavour.virtual
> index 54164a3..97a6244 100644
> --- a/debian.master/config/amd64/config.flavour.virtual
> +++ b/debian.master/config/amd64/config.flavour.virtual
> @@ -4,6 +4,7 @@
>  # CONFIG_DEFAULT_CFQ is not set
>  CONFIG_DEFAULT_DEADLINE=y
>  CONFIG_DEFAULT_IOSCHED="deadline"
> +# CONFIG_INTEL_IDLE is not set
>  CONFIG_MEMORY_HOTPLUG=y
>  CONFIG_PREEMPT_NONE=y
>  # CONFIG_PREEMPT_VOLUNTARY is not set
> diff --git a/debian.master/config/armel/config.common.armel b/debian.master/config/armel/config.common.armel
> index 0f0e053..4e97291 100644
> --- a/debian.master/config/armel/config.common.armel
> +++ b/debian.master/config/armel/config.common.armel
> @@ -26,6 +26,7 @@ CONFIG_FONTS=y
>  CONFIG_HAVE_AOUT=y
>  CONFIG_HAVE_GENERIC_DMA_COHERENT=y
>  # CONFIG_HUGETLB_PAGE is not set
> +CONFIG_INTEL_IDLE=y
>  # CONFIG_INTR_REMAP is not set
>  # CONFIG_IPMI_HANDLER is not set
>  # CONFIG_LAPBETHER is not set
> diff --git a/debian.master/config/config.common.ubuntu b/debian.master/config/config.common.ubuntu
> index 71325ce..5eb5dbe 100644
> --- a/debian.master/config/config.common.ubuntu
> +++ b/debian.master/config/config.common.ubuntu
> @@ -1972,7 +1972,6 @@ CONFIG_INPUT_WISTRON_BTNS=m
>  CONFIG_INPUT_WM831X_ON=m
>  CONFIG_INPUT_YEALINK=m
>  CONFIG_INSTRUCTION_DECODER=y
> -CONFIG_INTEL_IDLE=y
>  CONFIG_INTEL_IOATDMA=m
>  CONFIG_INTEL_IPS=m
>  CONFIG_INTEL_MENLOW=m
> diff --git a/debian.master/config/i386/config.flavour.generic b/debian.master/config/i386/config.flavour.generic
> index af17ec8..e736d21 100644
> --- a/debian.master/config/i386/config.flavour.generic
> +++ b/debian.master/config/i386/config.flavour.generic
> @@ -4,6 +4,7 @@
>  # CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
>  CONFIG_HIGHMEM4G=y
>  # CONFIG_HIGHMEM64G is not set
> +CONFIG_INTEL_IDLE=y
>  # CONFIG_PHYS_ADDR_T_64BIT is not set
>  CONFIG_SCSI_SPI_ATTRS=m
>  CONFIG_SCSI_SYM53C8XX_2=m
> diff --git a/debian.master/config/i386/config.flavour.generic-pae b/debian.master/config/i386/config.flavour.generic-pae
> index d14011f..7820034 100644
> --- a/debian.master/config/i386/config.flavour.generic-pae
> +++ b/debian.master/config/i386/config.flavour.generic-pae
> @@ -4,6 +4,7 @@
>  CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
>  # CONFIG_HIGHMEM4G is not set
>  CONFIG_HIGHMEM64G=y
> +CONFIG_INTEL_IDLE=y
>  CONFIG_PHYS_ADDR_T_64BIT=y
>  CONFIG_SCSI_SPI_ATTRS=y
>  CONFIG_SCSI_SYM53C8XX_2=y
> diff --git a/debian.master/config/i386/config.flavour.virtual b/debian.master/config/i386/config.flavour.virtual
> index 327b2f2..a3ee2f7 100644
> --- a/debian.master/config/i386/config.flavour.virtual
> +++ b/debian.master/config/i386/config.flavour.virtual
> @@ -4,6 +4,7 @@
>  CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
>  # CONFIG_HIGHMEM4G is not set
>  CONFIG_HIGHMEM64G=y
> +# CONFIG_INTEL_IDLE is not set
>  CONFIG_PHYS_ADDR_T_64BIT=y
>  CONFIG_SCSI_SPI_ATTRS=y
>  CONFIG_SCSI_SYM53C8XX_2=y
> -- 
> 1.7.1

Looks reasonable with very low risk of regression that would only affect
the -virtual flavor anyways.

Acked-by: Leann Ogasawara <leann.ogasawara at canonical.com>





More information about the kernel-team mailing list