From: "H. Peter Anvin" <hpa@kernel.org>
To: Vegard Nossum <vegard.nossum@gmail.com>
Cc: Dave Jones <davej@redhat.com>, Andi Kleen <andi@firstfloor.org>,
the arch/x86 maintainers <x86@kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Rusty Russell <rusty@rustcorp.com.au>
Subject: Re: latest -git: WARNING: at arch/x86/kernel/ipi.c:123 send_IPI_mask_bitmask+0xc3/0xe0()
Date: Sun, 24 Aug 2008 10:17:13 -0700 [thread overview]
Message-ID: <48B19799.6090703@kernel.org> (raw)
In-Reply-To: <19f34abd0808240220v77bcdd5di32f8f865b18fc49f@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 903 bytes --]
Vegard Nossum wrote:
>
> Hm.
>
> Kernel fails to detect cpu1 at all.
>
> I am currently unsure of whether it's your patch or not. But it's the
> same config that I've been booting for ages (and I copy it over for
> each new kernel version I check out).
>
> Processor #0 (Bootup-CPU)
> I/O APIC #2 Version 32 at 0xFEC00000.
> Enabling APIC mode: Flat. Using 1 I/O APICs
> Processors: 1
> SMP: Allowing 1 CPUs, 0 hotplug CPUs
> mapped APIC to ffffb000 (fee00000)
> mapped IOAPIC to ffffa000 (fec00000)
> Allocating PCI resources starting at 50000000 (gap: 40000000:bee00000)
> PERCPU: Allocating 1221764 bytes of per cpu data
> NR_CPUS: 7, nr_cpu_ids: 1, nr_node_ids 1
>
> I really don't get it. Is this something that can be caused by your
> patch _at all_ ?
>
Could you try this patch? It should (hopefully) tell us if there is any
such invocations and what the call trace looks like.
-hpa
[-- Attachment #2: smp-unplug-fault2.patch --]
[-- Type: text/x-patch, Size: 1167 bytes --]
diff --git a/kernel/smp.c b/kernel/smp.c
index 782e2b9..95e1bad 100644
--- a/kernel/smp.c
+++ b/kernel/smp.c
@@ -210,8 +210,10 @@ int smp_call_function_single(int cpu, void (*func) (void *info), void *info,
{
struct call_single_data d;
unsigned long flags;
- /* prevent preemption and reschedule on another processor */
+ /* prevent preemption and reschedule on another processor,
+ as well as CPU removal */
int me = get_cpu();
+ int err = 0;
/* Can deadlock when called with interrupts disabled */
WARN_ON(irqs_disabled());
@@ -220,7 +222,7 @@ int smp_call_function_single(int cpu, void (*func) (void *info), void *info,
local_irq_save(flags);
func(info);
local_irq_restore(flags);
- } else {
+ } else if ((unsigned)cpu < NR_CPUS && cpu_online(cpu)) {
struct call_single_data *data = NULL;
if (!wait) {
@@ -236,10 +238,13 @@ int smp_call_function_single(int cpu, void (*func) (void *info), void *info,
data->func = func;
data->info = info;
generic_exec_single(cpu, data);
+ } else {
+ BUG();
+ err = -ENXIO; /* CPU not online */
}
put_cpu();
- return 0;
+ return err;
}
EXPORT_SYMBOL(smp_call_function_single);
next prev parent reply other threads:[~2008-08-24 17:17 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-19 19:51 latest -git: WARNING: at arch/x86/kernel/ipi.c:123 send_IPI_mask_bitmask+0xc3/0xe0() Vegard Nossum
2008-08-20 1:39 ` Andi Kleen
2008-08-20 6:26 ` Vegard Nossum
2008-08-22 0:36 ` Dave Jones
2008-08-22 2:13 ` H. Peter Anvin
2008-08-22 2:28 ` Andi Kleen
2008-08-22 6:24 ` H. Peter Anvin
2008-08-22 9:35 ` Andi Kleen
2008-08-22 16:41 ` H. Peter Anvin
2008-08-23 6:42 ` Jeremy Fitzhardinge
2008-08-23 6:44 ` H. Peter Anvin
2008-08-22 11:13 ` adobriyan
2008-08-24 9:20 ` Vegard Nossum
2008-08-24 16:43 ` H. Peter Anvin
2008-08-24 17:17 ` H. Peter Anvin [this message]
2008-08-24 17:22 ` Vegard Nossum
2008-08-24 17:45 ` Vegard Nossum
2008-08-24 17:59 ` H. Peter Anvin
2008-08-24 18:13 ` Dave Jones
2008-08-25 18:31 ` Vegard Nossum
2008-08-25 18:38 ` Dave Jones
2008-08-25 18:36 ` Andi Kleen
2008-08-25 18:54 ` Dave Jones
2008-08-25 19:39 ` Andi Kleen
2008-08-25 19:50 ` Dave Jones
2008-08-25 20:36 ` Andi Kleen
2008-08-25 20:47 ` Dave Jones
2008-08-25 21:24 ` Arjan van de Ven
2008-08-25 19:08 ` H. Peter Anvin
2008-08-25 19:13 ` Dave Jones
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=48B19799.6090703@kernel.org \
--to=hpa@kernel.org \
--cc=andi@firstfloor.org \
--cc=davej@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rusty@rustcorp.com.au \
--cc=vegard.nossum@gmail.com \
--cc=x86@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 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.