Home Home > GIT Browse > openSUSE-15.2
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Kubecek <mkubecek@suse.cz>2019-09-14 02:05:17 +0200
committerMichal Kubecek <mkubecek@suse.cz>2019-09-14 02:05:17 +0200
commit72ef127ff0ea440fcf2c0afaaa51f5e64dc15d78 (patch)
treed6825346408f571b76e7173698cbc4f9783ca08c
parent698eb852572716354ea4487343391611f155edb4 (diff)
parent34e5b855187b82f663db4d49d35d2bfa4ef188bf (diff)
Merge branch 'SLE15-SP2' into openSUSE-15.2openSUSE-15.2
-rw-r--r--patches.suse/powerpc-pseries-correctly-track-irq-state-in-default.patch60
-rw-r--r--series.conf8
2 files changed, 66 insertions, 2 deletions
diff --git a/patches.suse/powerpc-pseries-correctly-track-irq-state-in-default.patch b/patches.suse/powerpc-pseries-correctly-track-irq-state-in-default.patch
new file mode 100644
index 0000000000..9194543407
--- /dev/null
+++ b/patches.suse/powerpc-pseries-correctly-track-irq-state-in-default.patch
@@ -0,0 +1,60 @@
+From 92c94dfb69e350471473fd3075c74bc68150879e Mon Sep 17 00:00:00 2001
+From: Nathan Lynch <nathanl@linux.ibm.com>
+Date: Tue, 10 Sep 2019 17:52:44 -0500
+Subject: [PATCH] powerpc/pseries: correctly track irq state in default idle
+
+References: bsc#1150727 ltc#178925
+Patch-mainline: queued
+Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git
+Git-commit: 92c94dfb69e350471473fd3075c74bc68150879e
+
+prep_irq_for_idle() is intended to be called before entering
+H_CEDE (and it is used by the pseries cpuidle driver). However the
+default pseries idle routine does not call it, leading to mismanaged
+lazy irq state when the cpuidle driver isn't in use. Manifestations of
+this include:
+
+* Dropped IPIs in the time immediately after a cpu comes
+ online (before it has installed the cpuidle handler), making the
+ online operation block indefinitely waiting for the new cpu to
+ respond.
+
+* Hitting this WARN_ON in arch_local_irq_restore():
+ /*
+ * We should already be hard disabled here. We had bugs
+ * where that wasn't the case so let's dbl check it and
+ * warn if we are wrong. Only do that when IRQ tracing
+ * is enabled as mfmsr() can be costly.
+ */
+ if (WARN_ON_ONCE(mfmsr() & MSR_EE))
+ __hard_irq_disable();
+
+Call prep_irq_for_idle() from pseries_lpar_idle() and honor its
+result.
+
+Fixes: 363edbe2614a ("powerpc: Default arch idle could cede processor on pseries")
+Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
+Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
+Link: https://lore.kernel.org/r/20190910225244.25056-1-nathanl@linux.ibm.com
+Acked-by: Michal Suchanek <msuchanek@suse.de>
+---
+ arch/powerpc/platforms/pseries/setup.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c
+index b955d54628ff..f8adcd0e4589 100644
+--- a/arch/powerpc/platforms/pseries/setup.c
++++ b/arch/powerpc/platforms/pseries/setup.c
+@@ -321,6 +321,9 @@ static void pseries_lpar_idle(void)
+ * low power mode by ceding processor to hypervisor
+ */
+
++ if (!prep_irq_for_idle())
++ return;
++
+ /* Indicate to hypervisor that we are idle. */
+ get_lppaca()->idle = 1;
+
+--
+2.23.0
+
diff --git a/series.conf b/series.conf
index 93a2b7bb79..611c6c1c72 100644
--- a/series.conf
+++ b/series.conf
@@ -61,6 +61,7 @@
patches.suse/powerpc-xmon-Add-a-dump-of-all-XIVE-interrupts.patch
patches.suse/powerpc-rtas-use-device-model-APIs-and-serialization.patch
patches.suse/powerpc-64s-support-nospectre_v2-cmdline-option.patch
+ patches.suse/powerpc-pseries-correctly-track-irq-state-in-default.patch
########################################################
# end of sorted patches
@@ -319,6 +320,11 @@
patches.suse/add-product-identifying-information-to-vmcoreinfo.patch
########################################################
+ # Tracing
+ ########################################################
+ patches.suse/0003-Add-external-no-support-as-bad-taint-module.patch
+
+ ########################################################
# Livepatching
########################################################
patches.suse/livepatch-mark-the-kernel-unsupported-when-disabling.patch
@@ -572,8 +578,6 @@
+tbogendoerfer patches.suse/lustre-Simplify-ib_post_-send-recv-srq_recv-calls.patch
+tbogendoerfer patches.suse/net-mvpp2-fix-condition-for-setting-up-link-interrup.patch
+tbogendoerfer patches.suse/s390-sles15-00-04-04-kmsg-add-VNIC-Characteristics-msg-documentation.patch
-# tonyj
-+tonyj patches.suse/0003-Add-external-no-support-as-bad-taint-module.patch
# trenn
+trenn patches.suse/cpufreq-intel_pstate-use-setpoint-of-10-on-servers.patch
# vbabka