From owner-freebsd-stable@FreeBSD.ORG Fri Jan 18 18:02:05 2008 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C6AD416A41A; Fri, 18 Jan 2008 18:02:05 +0000 (UTC) (envelope-from petefrench@ticketswitch.com) Received: from angel.ticketswitch.com (angel.ticketswitch.com [IPv6:2002:57e0:1d4e::1]) by mx1.freebsd.org (Postfix) with ESMTP id 73B2B13C4CC; Fri, 18 Jan 2008 18:02:05 +0000 (UTC) (envelope-from petefrench@ticketswitch.com) Received: from [10.50.50.2] (helo=smaug.rattatosk) by angel.ticketswitch.com with esmtps (TLSv1:AES256-SHA:256) (Exim 4.67 (FreeBSD)) (envelope-from ) id 1JFvXY-000F8w-Ol; Fri, 18 Jan 2008 18:02:04 +0000 Received: from dilbert.rattatosk ([10.50.50.6] helo=dilbert.ticketswitch.com) by smaug.rattatosk with esmtp (Exim 4.67 (FreeBSD)) (envelope-from ) id 1JFvXY-000Et4-Ml; Fri, 18 Jan 2008 18:02:04 +0000 Received: from petefrench by dilbert.ticketswitch.com with local (Exim 4.68 (FreeBSD)) (envelope-from ) id 1JFvXY-0000MY-LI; Fri, 18 Jan 2008 18:02:04 +0000 To: jhb@freebsd.org In-Reply-To: <200801181003.24092.jhb@freebsd.org> Message-Id: From: Pete French Date: Fri, 18 Jan 2008 18:02:04 +0000 Cc: freebsd-stable@freebsd.org Subject: Re: panic: vm_fault: fault on nofualt entry, addr: 81423000 X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jan 2008 18:02:05 -0000 > So it appears to be dying here: > > (gdb) l *madt_probe+0x119 > 0xc06e7c69 is in madt_probe (/usr/src/sys/i386/acpica/madt.c:241). > 236 if (xsdt == NULL) { > 237 if (bootverbose) > 238 printf("MADT: Failed to map XSDT\n"); > 239 return (ENXIO); > 240 } > 241 count = (xsdt->Length - sizeof(ACPI_TABLE_HEADER)) / > 242 sizeof(UINT64); > 243 for (i = 0; i < count; i++) > 244 if (madt_probe_table(xsdt->TableOffsetEntry[i])) > 245 break; Turns out that it isn't - it's in the other branch of the if using the RSDT instead of the XSDT. Not sure why the debugger was giving misleading information. I added prints to find out which path it was taking and to print out some values after the line "rsdt = madt_map_table(rsdp->RsdtPhysicalAddress, 1, ACPI_SIG_RSDT);" The value of rsdtl is 0x800e7610, but the value of rsdp->XsdtPhysicalAddress is zero! So I guess that is where the panic is comming from. So where now ? Is there an equivalent patch to the one you emailed earlier for this branch of the if ? I wont have access to the machine over the weekend, but I can make more tests on monday morning. thanks for the help, -pete.