From: Tejun Heo <tj@kernel.org>
To: Tony Vroon <tony@linx.net>
Cc: linux-kernel@vger.kernel.org, Ingo Molnar <mingo@elte.hu>,
"Langsdorf, Mark" <mark.langsdorf@amd.com>,
"H. Peter Anvin" <hpa@zytor.com>
Subject: Re: 2.6.31-07068-g43c1266 Early boot exception
Date: Tue, 22 Sep 2009 18:08:39 +0900 [thread overview]
Message-ID: <4AB89417.7090005@kernel.org> (raw)
In-Reply-To: <1253566046.2773.10.camel@localhost>
Tony Vroon wrote:
> Thanks Ingo. 11-step bisection reveals:
>
> chainsaw@prometheus /cvs/linux-2.6 $ git bisect bad
> fd1e8a1fe2b54df6c185b4fa65f181f50b9c4d4e is the first bad commit
> commit fd1e8a1fe2b54df6c185b4fa65f181f50b9c4d4e
> Author: Tejun Heo <tj@kernel.org>
> Date: Fri Aug 14 15:00:51 2009 +0900
>
> percpu: introduce pcpu_alloc_info and pcpu_group_info
>
> I will repeat the early exception here:
> IOAPIC[0]: apic_id 0, version 17, address 0xfec00000, GSI 0-23
> ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
> ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
> ACPI: INT_SRC_OVR (bus 0 bus_irq 14 global_irq 14 high edge)
> ACPI: INT_SRC_OVR (bus 0 bus_irq 15 global_irq 15 high edge)
> Using ACPI (MADT) for SMP configuration information
> ACPI: HPET id: 0x10de8201 base: 0xfed00000
> SMP: allowing 12 CPUs, 0 hotplug CPUs
> Allocating PCI resources starting at b00000000 (gap:b00000000:3000000
> NR_CPUS: 12 nr_cpumask_bits:12 nr_cpu_ids:12 nr_node_ids:2
> PERCPU: Embedded 23 pages/cpu @ffff880028200000 s73688 r0 d20520 u262
> PANIC: early exception 06 rip 10:ffffffff815a50e6 error 0 cr2 d0fff6
> Pid: 0, comm: swapper Not tained 2.6.31-07068-g43c266 #1
> Call Trace:
> [<ffffffff81591175>] early_idt_handler+0x55/0x68
> [<ffffffff815a50e6>] ? pcpu_setup_first_chunk+0x40b/0x692
> [<ffffffff815a50ff>] ? pcpu_setup_first_chunk+0x424/0x692
> [<ffffffff815a5867>] pcpu_embed_first_chunk+0x1e2/0x241
> [<ffffffff81598c14>] ? pcpu_fc_alloc+0x0/0xac
> [<ffffffff81598bf5>] ? pcpu_fc_free+0x0/0x1f
> [<ffffffff81598a36>] setup_per_cpu_areas+0x65/0x219
> [<ffffffff815919bf>] start_kernel+0x124/0x2c5
> [<ffffffff81591252>] x86_64_start_reservations+0x82/0x86
> [<ffffffff8159133a>] x86_64_start_kernel+0xe4/0xeb
> RIP pcpu_setup_first_chunk+0x40b/0x692
Can you please try the patch below? Also, please build the kernel
with debug info and ask gdb which line the crash corresponds to?
ie. l *pcpu_embed_first_chunk+0x1e2
Thanks.
diff --git a/mm/percpu.c b/mm/percpu.c
index 43d8cac..66b7d5e 100644
--- a/mm/percpu.c
+++ b/mm/percpu.c
@@ -1812,6 +1812,9 @@ int __init pcpu_embed_first_chunk(size_t reserved_size, ssize_t dyn_size,
/* allocate space for the whole group */
ptr = alloc_fn(cpu, gi->nr_units * ai->unit_size, atom_size);
if (!ptr) {
+ printk("PERCPU: failed to allocate %zu bytes for "
+ "group %d from cpu%u\n",
+ gi->nr_units * ai->unit_size, group, cpu);
rc = -ENOMEM;
goto out_free_areas;
}
@@ -1844,8 +1847,9 @@ int __init pcpu_embed_first_chunk(size_t reserved_size, ssize_t dyn_size,
out_free_areas:
for (group = 0; group < ai->nr_groups; group++)
- free_fn(areas[group],
- ai->groups[group].nr_units * ai->unit_size);
+ if (areas[group])
+ free_fn(areas[group],
+ ai->groups[group].nr_units * ai->unit_size);
out_free:
pcpu_free_alloc_info(ai);
if (areas)
@@ -1956,7 +1960,8 @@ int __init pcpu_page_first_chunk(size_t reserved_size,
enomem:
while (--j >= 0)
- free_fn(page_address(pages[j]), PAGE_SIZE);
+ if (pages[j])
+ free_fn(page_address(pages[j]), PAGE_SIZE);
rc = -ENOMEM;
out_free_ar:
free_bootmem(__pa(pages), pages_size);
--
tejun
next prev parent reply other threads:[~2009-09-22 9:08 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-21 19:14 2.6.31-07068-g43c1266 Early boot exception Tony Vroon
2009-09-21 19:26 ` H. Peter Anvin
2009-09-21 19:35 ` Tony Vroon
2009-09-21 19:36 ` Ingo Molnar
2009-09-21 21:13 ` H. Peter Anvin
2009-09-21 20:47 ` Tony Vroon
2009-09-22 9:08 ` Tejun Heo [this message]
2009-09-22 9:23 ` Arjan van de Ven
2009-09-22 11:40 ` Tejun Heo
2009-09-22 19:36 ` Tony Vroon
2009-09-23 5:52 ` Tejun Heo
2009-09-23 9:19 ` Tony Vroon
2009-09-23 9:23 ` Tejun Heo
2009-09-23 15:46 ` H. Peter Anvin
2009-09-23 23:25 ` Tejun Heo
2009-09-24 0:05 ` Tejun Heo
2009-09-21 19:53 ` 2.6.31-0.1-default-07068-g43c1266 lockdep warning and scheduling while atomic BUG Henk Martijn
2009-09-21 20:04 ` Oliver Neukum
2009-09-21 20:17 ` Henk Martijn
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=4AB89417.7090005@kernel.org \
--to=tj@kernel.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.langsdorf@amd.com \
--cc=mingo@elte.hu \
--cc=tony@linx.net \
/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