From: Greg Kroah-Hartman Date: Tue, 5 May 2015 22:00:57 +0000 (+0200) Subject: delete broken 3.10 sched patch X-Git-Tag: v3.10.77~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6e4afff55754692443d1ac71204dfd9625e0e3fe;p=thirdparty%2Fkernel%2Fstable-queue.git delete broken 3.10 sched patch --- diff --git a/queue-3.10/sched-idle-x86-restore-mwait_idle-to-fix-boot-hangs-to-improve-power-savings-and-to-improve-performance.patch b/queue-3.10/sched-idle-x86-restore-mwait_idle-to-fix-boot-hangs-to-improve-power-savings-and-to-improve-performance.patch deleted file mode 100644 index f6889f9e26f..00000000000 --- a/queue-3.10/sched-idle-x86-restore-mwait_idle-to-fix-boot-hangs-to-improve-power-savings-and-to-improve-performance.patch +++ /dev/null @@ -1,131 +0,0 @@ -From b253149b843f89cd300cbdbea27ce1f847506f99 Mon Sep 17 00:00:00 2001 -From: Len Brown -Date: Wed, 15 Jan 2014 00:37:34 -0500 -Subject: sched/idle/x86: Restore mwait_idle() to fix boot hangs, to improve power savings and to improve performance - -From: Len Brown - -commit b253149b843f89cd300cbdbea27ce1f847506f99 upstream. - -In Linux-3.9 we removed the mwait_idle() loop: - - 69fb3676df33 ("x86 idle: remove mwait_idle() and "idle=mwait" cmdline param") - -The reasoning was that modern machines should be sufficiently -happy during the boot process using the default_idle() HALT -loop, until cpuidle loads and either acpi_idle or intel_idle -invoke the newer MWAIT-with-hints idle loop. - -But two machines reported problems: - - 1. Certain Core2-era machines support MWAIT-C1 and HALT only. - MWAIT-C1 is preferred for optimal power and performance. - But if they support just C1, cpuidle never loads and - so they use the boot-time default idle loop forever. - - 2. Some laptops will boot-hang if HALT is used, - but will boot successfully if MWAIT is used. - This appears to be a hidden assumption in BIOS SMI, - that is presumably valid on the proprietary OS - where the BIOS was validated. - - https://bugzilla.kernel.org/show_bug.cgi?id=60770 - -So here we effectively revert the patch above, restoring -the mwait_idle() loop. However, we don't bother restoring -the idle=mwait cmdline parameter, since it appears to add -no value. - -Maintainer notes: - - For 3.9, simply revert 69fb3676df - for 3.10, patch -F3 applies, fuzz needed due to __cpuinit use in - context For 3.11, 3.12, 3.13, this patch applies cleanly - -Tested-by: Mike Galbraith -Signed-off-by: Len Brown -Acked-by: Mike Galbraith -Cc: # 3.9+ -Cc: Borislav Petkov -Cc: H. Peter Anvin -Cc: Ian Malone -Cc: Josh Boyer -Cc: Linus Torvalds -Cc: Mike Galbraith -Cc: Peter Zijlstra -Cc: Thomas Gleixner -Link: http://lkml.kernel.org/r/345254a551eb5a6a866e048d7ab570fd2193aca4.1389763084.git.len.brown@intel.com -[ Ported to recent kernels. ] -[ Mike: 3.10 backport ] -Signed-off-by: Ingo Molnar -Signed-off-by: Mike Galbraith -Signed-off-by: Greg Kroah-Hartman ---- - arch/x86/kernel/process.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 49 insertions(+) - ---- a/arch/x86/kernel/process.c -+++ b/arch/x86/kernel/process.c -@@ -398,6 +398,52 @@ static void amd_e400_idle(void) - default_idle(); - } - -+/* -+ * Intel Core2 and older machines prefer MWAIT over HALT for C1. -+ * We can't rely on cpuidle installing MWAIT, because it will not load -+ * on systems that support only C1 -- so the boot default must be MWAIT. -+ * -+ * Some AMD machines are the opposite, they depend on using HALT. -+ * -+ * So for default C1, which is used during boot until cpuidle loads, -+ * use MWAIT-C1 on Intel HW that has it, else use HALT. -+ */ -+static int prefer_mwait_c1_over_halt(const struct cpuinfo_x86 *c) -+{ -+ if (c->x86_vendor != X86_VENDOR_INTEL) -+ return 0; -+ -+ if (!cpu_has(c, X86_FEATURE_MWAIT)) -+ return 0; -+ -+ return 1; -+} -+ -+/* -+ * MONITOR/MWAIT with no hints, used for default default C1 state. -+ * This invokes MWAIT with interrutps enabled and no flags, -+ * which is backwards compatible with the original MWAIT implementation. -+ */ -+ -+static void mwait_idle(void) -+{ -+ if (!current_set_polling_and_test()) { -+ if (static_cpu_has(X86_FEATURE_CLFLUSH_MONITOR)) { -+ mb(); -+ clflush((void *)¤t_thread_info()->flags); -+ mb(); -+ } -+ -+ __monitor((void *)¤t_thread_info()->flags, 0, 0); -+ if (!need_resched()) -+ __sti_mwait(0, 0); -+ else -+ local_irq_enable(); -+ } else -+ local_irq_enable(); -+ __current_clr_polling(); -+} -+ - void __cpuinit select_idle_routine(const struct cpuinfo_x86 *c) - { - #ifdef CONFIG_SMP -@@ -411,6 +457,9 @@ void __cpuinit select_idle_routine(const - /* E400: APIC timer interrupt does not wake up CPU from C1e */ - pr_info("using AMD E400 aware idle routine\n"); - x86_idle = amd_e400_idle; -+ } else if (prefer_mwait_c1_over_halt(c)) { -+ pr_info("using mwait in idle threads\n"); -+ x86_idle = mwait_idle; - } else - x86_idle = default_idle; - } diff --git a/queue-3.10/series b/queue-3.10/series index d1aad07341f..9fe304a75a6 100644 --- a/queue-3.10/series +++ b/queue-3.10/series @@ -3,7 +3,6 @@ tcp-fix-possible-deadlock-in-tcp_send_fin.patch tcp-avoid-looping-in-tcp_send_fin.patch btrfs-fix-log-tree-corruption-when-fs-mounted-with-o-discard.patch btrfs-fix-inode-eviction-infinite-loop-after-cloning-into-it.patch -sched-idle-x86-restore-mwait_idle-to-fix-boot-hangs-to-improve-power-savings-and-to-improve-performance.patch usb-gadget-composite-enable-besl-support.patch kvm-s390-zero-out-current-vmdb-of-stsi-before-including-level3-data.patch s390-hibernate-fix-save-and-restore-of-kernel-text-section.patch @@ -62,3 +61,4 @@ wl18xx-show-rx_frames_per_rates-as-an-array-as-it-really-is.patch c6x-time-ensure-consistency-in-__init.patch memstick-mspro_block-add-missing-curly-braces.patch nosave-consolidate-__nosave_-begin-end-in-asm-sections.h.patch +s390-fix-build-error.patch