Skip site navigation (1)Skip section navigation (2)
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>