From: Darren Hart <dvhltc@us.ibm.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: LKML <linux-kernel@vger.kernel.org>, Len Brown <lenb@kernel.org>,
Ingo Molnar <mingo@elte.hu>, Andrew Morton <akpm@osdl.org>,
Stable Team <stable@kernel.org>
Subject: Re: [PATCH] Ignore bogus ACPI info for offline CPUs
Date: Mon, 21 May 2007 09:47:33 -0700 [thread overview]
Message-ID: <200705210947.35350.dvhltc@us.ibm.com> (raw)
In-Reply-To: <1179584570.12981.123.camel@chaos>
On Saturday 19 May 2007 07:22:50 Thomas Gleixner wrote:
> Booting a SMP kernel with maxcpus=1 on a SMP system leads to a hard
> hang, because ACPI ignores the maxcpus setting and sends timer broadcast
> info for the offline CPUs. This results in a stuck for ever call to
> smp_call_function_single() on an offline CPU.
>
> Ignore the bogus information and print a kernel error to remind ACPI
> folks to fix it.
>
> Affects 2.6.21 / 2.6.22-rc
>
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
When I first booted with this patch I received the following in a loop:
irq 9: nobody cared (try booting with the "irqpoll" option)
Call Trace:
[<ffffffff8106d5a4>] dump_trace+0xaa/0x32a
[<ffffffff8106d865>] show_trace+0x41/0x5c
[<ffffffff8106d895>] dump_stack+0x15/0x17
[<ffffffff810c50b8>] __report_bad_irq+0x38/0x87
[<ffffffff810c52cb>] note_interrupt+0x1c4/0x1fc
[<ffffffff810c458d>] thread_simple_irq+0x6c/0x7e
[<ffffffff810c4dc3>] do_irqd+0x14a/0x3e4
[<ffffffff81033d3a>] kthread+0xf5/0x128
[<ffffffff8105ff68>] child_rip+0xa/0x12
handlers:
[<ffffffff8117736e>] (acpi_irq+0x0/0x1b)
I then tried to boot with maxcpus=1 and acpi=noirq and I got all the way to a
login prompt. As we have seen this "nobody cared" and child_rip dump issues
before - I think these are independent issues that should be tracked
separately.
Thanks,
Darren
>
> Index: linux-2.6.22-rc/kernel/time/tick-broadcast.c
> ===================================================================
> --- linux-2.6.22-rc.orig/kernel/time/tick-broadcast.c
> +++ linux-2.6.22-rc/kernel/time/tick-broadcast.c
> @@ -244,11 +244,18 @@ void tick_broadcast_on_off(unsigned long
> {
> int cpu = get_cpu();
>
> - if (cpu == *oncpu)
> - tick_do_broadcast_on_off(&reason);
> - else
> - smp_call_function_single(*oncpu, tick_do_broadcast_on_off,
> - &reason, 1, 1);
> + if (!cpu_isset(*oncpu, cpu_online_map)) {
> + printk(KERN_ERR "tick-braodcast: ignoring broadcast for "
> + "offline CPU #%d\n", *oncpu);
> + } else {
> +
> + if (cpu == *oncpu)
> + tick_do_broadcast_on_off(&reason);
> + else
> + smp_call_function_single(*oncpu,
> + tick_do_broadcast_on_off,
> + &reason, 1, 1);
> + }
> put_cpu();
> }
--
Darren Hart
IBM Linux Technology Center
Realtime Linux Team
next prev parent reply other threads:[~2007-05-21 16:48 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-19 14:22 [PATCH] Ignore bogus ACPI info for offline CPUs Thomas Gleixner
2007-05-21 16:47 ` Darren Hart [this message]
2007-05-21 17:08 ` [stable] " Chris Wright
2007-05-21 17:32 ` Thomas Gleixner
2007-05-21 17:57 ` Chris Wright
2007-05-21 17:58 ` Darren Hart
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=200705210947.35350.dvhltc@us.ibm.com \
--to=dvhltc@us.ibm.com \
--cc=akpm@osdl.org \
--cc=lenb@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=stable@kernel.org \
--cc=tglx@linutronix.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.