public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
To: linux-ia64@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Vivek Goyal <vgoyal@redhat.com>, Haren Myneni <hbabu@us.ibm.com>,
	kexec@lists.infradead.org, "Luck, Tony" <tony.luck@intel.com>,
	"Yu, Fenghua" <fenghua.yu@intel.com>
Subject: [PATCH v2 3/7] ia64, kexec: Unregister MCA handler before kexec
Date: Thu, 09 Jul 2009 16:12:48 +0900	[thread overview]
Message-ID: <4A559870.7090801@jp.fujitsu.com> (raw)
In-Reply-To: <4A5595F3.2050609@jp.fujitsu.com>

Summary:

  MCA on the beginning of kdump/kexec kernel will result in unexpected
  behavior because MCA handler for previous kernel is invoked on the
  kdump kernel.

Description:

  Once a cpu is passed to new kernel, all resources in previous kernel
  should not be used from the cpu.  Even the resources for MCA handler
  are no exception.  So we cannot handle MCAs and its machine check
  errors during kernel transition, until new handler for new kernel is
  registered with new resources ready for handling the MCA.

How to reproduce:

  Assert MCA while kdump kernel is booting, before new MCA handler for
  kdump kernel is registered.

Expected(Desirable) results:

  No recovery, cancel kdump and reboot the system.

Actual results:

  MCA handler for previous kernel is invoked on the kdump kernel.
  => panic, hang etc. (unexpected)

Proposed fix:

  To avoid entering MCA handler from early stage of new kernel,
  unregister the entry point from SAL before leave from current
  kernel.  Then SAL will make all MCAs to warmboot safely, without
  invoking OS_MCA.

Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Cc: Vivek Goyal <vgoyal@redhat.com>
Cc: Haren Myneni <hbabu@us.ibm.com>
Cc: kexec@lists.infradead.org
---
 arch/ia64/kernel/machine_kexec.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/arch/ia64/kernel/machine_kexec.c b/arch/ia64/kernel/machine_kexec.c
index 571d663..3d3aeef 100644
--- a/arch/ia64/kernel/machine_kexec.c
+++ b/arch/ia64/kernel/machine_kexec.c
@@ -104,6 +104,9 @@ static void ia64_machine_kexec(struct unw_frame_info *info, void *arg)
 		ia64_sal_set_vectors(SAL_VECTOR_OS_INIT, 0, 0, 0, 0, 0, 0);
 	}
 
+	/* Unregister mca handler - No more recovery on current kernel */
+	ia64_sal_set_vectors(SAL_VECTOR_OS_MCA, 0, 0, 0, 0, 0, 0);
+
 	/* Interrupts aren't acceptable while we reboot */
 	local_irq_disable();
 
-- 
1.6.0



  parent reply	other threads:[~2009-07-09  7:13 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-18  6:44 [PATCH 0/7] Patches for kdump vs. INIT Hidetoshi Seto
2009-06-18  6:46 ` [PATCH 1/7] ia64, kdump: Mask MCA/INIT on freezing cpus Hidetoshi Seto
2009-06-22 13:45   ` Robin Holt
2009-06-23  0:33     ` Hidetoshi Seto
2009-06-23  5:55       ` Robin Holt
2009-06-23  8:07         ` Hidetoshi Seto
2009-06-24 11:14           ` Robin Holt
2009-06-25  2:15             ` Hidetoshi Seto
2009-06-25  3:29               ` Robin Holt
2009-06-18  6:48 ` [PATCH 2/7] ia64, kexec: Make INIT safe while kdump/kexec Hidetoshi Seto
2009-06-18  6:48 ` [PATCH 3/7] ia64, kexec: Unregister MCA handler before kexec Hidetoshi Seto
2009-06-18  6:49 ` [PATCH 4/7] ia64, kdump: Don't offline APs Hidetoshi Seto
2009-06-18  6:50 ` [PATCH 5/7] ia64, kdump: Mask INIT first in panic-kdump path Hidetoshi Seto
2009-06-18  6:51 ` [PATCH 6/7] ia64, kdump: Try INIT regardless of kdump_on_init Hidetoshi Seto
2009-06-18  6:53 ` [PATCH 7/7] ia64, kdump: Short path to freeze CPUs Hidetoshi Seto
2009-06-22  6:31 ` [PATCH 0/7] Patches for kdump vs. INIT Jay Lan
2009-06-22  7:16   ` Hidetoshi Seto
2009-07-09  7:02 ` [PATCH v2 " Hidetoshi Seto
2009-07-09  7:10   ` [PATCH v2 1/7] ia64, kdump: Mask MCA/INIT on frozen cpus Hidetoshi Seto
2009-07-09  7:11   ` [PATCH v2 2/7] ia64, kexec: Make INIT safe while transition to kdump/kexec kernel Hidetoshi Seto
2009-07-09  7:12   ` Hidetoshi Seto [this message]
2009-07-09  7:14   ` [PATCH v2 4/7] ia64, kdump: Don't return APs to SAL from kdump Hidetoshi Seto
2009-07-09  7:15   ` [PATCH v2 5/7] ia64, kdump: Mask INIT first in panic-kdump path Hidetoshi Seto
2009-07-09  7:17   ` [PATCH v2 6/7] ia64, kdump: Try INIT regardless of kdump_on_init Hidetoshi Seto
2009-07-09  7:18   ` [PATCH v2 7/7] ia64, kdump: Short path to freeze CPUs Hidetoshi Seto

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A559870.7090801@jp.fujitsu.com \
    --to=seto.hidetoshi@jp.fujitsu.com \
    --cc=fenghua.yu@intel.com \
    --cc=hbabu@us.ibm.com \
    --cc=kexec@lists.infradead.org \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tony.luck@intel.com \
    --cc=vgoyal@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox