Date: Thu, 29 Jul 2010 10:18:07 -0400 From: John Baldwin <jhb@freebsd.org> To: mdf@freebsd.org Cc: freebsd-current@freebsd.org Subject: Re: Panic booting vmware i386 after SRAT update Message-ID: <201007291018.07112.jhb@freebsd.org> In-Reply-To: <AANLkTimZj4ocqiiUzXJhwkY6nRj_sGJ2h%2BQAQKvC9wWi@mail.gmail.com> References: <AANLkTimZj4ocqiiUzXJhwkY6nRj_sGJ2h%2BQAQKvC9wWi@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday, July 28, 2010 1:37:42 pm mdf@freebsd.org wrote:
> I have a 2 cpu virtual image of FreeBSD current. It panics during
> boot after building in the NUMA support.
>
> I'll transcribe the SRAT bootverbose messages and panic message as best I can.
>
> Table 'SRAT' at 0xfef07f6
> SRAT: Found table at 0xfef07f6
> SRAT: Found memory domain 0 addr 0 len a0000: enabled
> SRAT: Found memory domain 0 addr 100000 len ff00000: enabled
>
> then some MADT: messages about finding cpu 0 and 1
>
> cpu0 (BSP): APIC ID: 0
> cpu1 (AP): APIC ID: 1
> panic: SRAT: CPU with APIC ID 0 is not known
>
> I'm playing around now with trying to figure out what went missing,
> but I thought I'd send this out now.
Hmm, check_domains() in srat.c should reject the SRAT table in this case.
Oh, I see the problem, try this:
Index: srat.c
===================================================================
--- srat.c (revision 210552)
+++ srat.c (working copy)
@@ -150,7 +150,8 @@
for (i = 0; i < num_mem; i++) {
found = 0;
for (j = 0; j <= MAX_APIC_ID; j++)
- if (cpus[j].domain == mem_info[i].domain) {
+ if (cpus[j].enabled &&
+ cpus[j].domain == mem_info[i].domain) {
cpus[j].has_memory = 1;
found++;
}
--
John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201007291018.07112.jhb>
