From: OBATA Noboru <noboru.obata.ar@hitachi.com>
To: ebiederm@xmission.com
Cc: fastboot@osdl.org, linux-kernel@vger.kernel.org
Subject: Re: [Fastboot] [KDUMP] pending interrupts problem
Date: Tue, 01 Nov 2005 18:13:19 +0900 (JST) [thread overview]
Message-ID: <20051101.181319.92587627.noboru.obata.ar@hitachi.com> (raw)
In-Reply-To: <m13bmnc7jr.fsf@ebiederm.dsl.xmission.com>
On Thu, 27 Oct 2005, Eric W. Biederman wrote:
>
> OBATA Noboru <noboru.obata.ar@hitachi.com> writes:
>
> > What happens in the second kernel is that it receives the
> > pending IPI at the first local_irq_enable() in init/main.c, and
> > the IPI handler calls the uninitialized function pointer
> > call_data->func in arch/i386/kernel/smp.c.
> >
> > One way to solve this problem is to implement some blocking
> > mechanism in the IPI handler so that it prevents itself from
> > calling the uninitialized pointer.
>
> Or simply initializing the pointer to NULL and testing to
> see if the IPI handler has been initialized. Weird but
> doable.
As I replied in the other thread, your patch has solved the
problem. Thank you.
> > But pending interrupts on other vectors may cause another
> > problem. They would cause misrouted IRQs, which are now
> > addressed by "irqpoll" kernel parameter. But I'm not sure this
> > solves all the problems.
>
> The irqs should not be misrouted. They simply come at an unexpected
> time.
Okay, I guess the irqs are not misrouted because kdump does not
touch the IO-APIC routing table, and the second kernel will
build the same one.
> > So another way to solve this problem is to clear all such
> > pending interrupts before booting the second kernel.
>
> No. The second kernel gets to cope, because we cannot
> do anything reliable in the crashed kernel.
Well, I first thought that restoring the hardware status back to
normal before booting the second kernel is better because it may
require fewer changes on the kernel core code.
But now I'm getting the idea what kdump is trying to do. Kdump
wants to do less in the crashed kernel, and solve problems in
the second kernel.
> > /* pending-IPI.c - Panic a kernel with IPI pending */
> >
> > #include <linux/config.h>
> > #include <linux/module.h>
> > #include <linux/smp.h>
> >
> > int init_module(void)
> > {
> > local_irq_disable();
> >
> > apic_wait_icr_idle();
> > apic_write_around(APIC_ICR2, SET_APIC_DEST_FIELD(1));
> > apic_write_around(APIC_ICR, (APIC_DM_FIXED
> > | APIC_DEST_LOGICAL | 0xfb));
> >
> > panic("pending-IPI: Bye-bye.");
> >
> > return 0;
> > }
> >
> > MODULE_LICENSE("GPL");
> > MODULE_AUTHOR("OBATA Noboru <noboru.obata.ar@hitachi.com>");
> > MODULE_DESCRIPTION("Panic a kernel with IPI pending");
>
>
> This looks like a good test case.
I think we need more test cases, especially the cases that focus
on "status" of hardware, to make kdump more reliable. Kdump
should recover from all possible status of supported hardware.
Is anyone working on developing such test cases for kdump?
Regards,
--
OBATA Noboru (noboru.obata.ar@hitachi.com)
next prev parent reply other threads:[~2005-11-01 9:13 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-27 7:50 OBATA Noboru
2005-10-27 15:18 ` [Fastboot] " Eric W. Biederman
2005-11-01 9:13 ` OBATA Noboru [this message]
2005-11-01 11:34 ` Eric W. Biederman
2005-11-08 8:17 ` Vivek Goyal
2005-10-27 15:40 ` [PATCH] " Eric W. Biederman
2005-10-27 16:06 ` Alex Lyashkov
2005-10-28 0:08 ` [Fastboot] " Eric W. Biederman
2005-11-01 9:12 ` OBATA Noboru
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=20051101.181319.92587627.noboru.obata.ar@hitachi.com \
--to=noboru.obata.ar@hitachi.com \
--cc=ebiederm@xmission.com \
--cc=fastboot@osdl.org \
--cc=linux-kernel@vger.kernel.org \
/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
all inboxes | Powered by JetHome®