Panic on boot with new ACPI-CA
Peter Holm
peter at holm.cc
Thu Nov 3 08:14:15 PST 2005
On Thu, Nov 03, 2005 at 10:43:10AM -0500, John Baldwin wrote:
> On Thursday 03 November 2005 09:40 am, Peter Holm wrote:
> > On Thu, Nov 03, 2005 at 04:24:46PM +0200, Giorgos Keramidas wrote:
> > > On 2005-11-03 03:47, Giorgos Keramidas <keramida at ceid.upatras.gr> wrote:
> > > >On 2005-11-02 17:03, Nate Lawson <nate at root.org> wrote:
> > > >> As I mentioned to Jung-uk, the problem is likely an error in
> > > >> acpi-ca modifying memory after it has freed it. The way to
> > > >> track this down is to enable memguard(9). See the man page for
> > > >> info. You need to add options DEBUG_MEMGUARD to your kernel,
> > > >> set the malloc type to watch to M_ACPICA, and rebuild your
> > > >> kernel and modules. Memguard sets page permissions so we can
> > > >> catch the culprit who is modifying the memory.
> > > >
> > > > This is exactly the messgae printed on my console at panic time
> > > > -- of memory modified after free. I'm building a kernel with
> > > > MEMGUARD now, but it's probably going to be a bit hard to get a
> > > > kernel dump, because the panic happens before disks are
> > > > available and I don't have a serial console here.
> > >
> > > This is definitely something that is ACPI-related. I updated my
> > > sources to the last commit before the start of the ACPI import:
> > >
> > > build at flame:/home/build/src$ cvs -qR up -APd -D '2005/11/01 22:00:00
> > > UTC'
> > >
> > > Rebuilt everything and I see no panics now.
> > >
> > > I'll use the watchpoint trick Nate posted when I have a new build
> > > to test.
> >
> > I've had the same problem with two of my boxes. Here's the result of a
> > watchpoint:
> >
> > http://people.freebsd.org/~pho/stress/log/acpi.html
> >
> > I too came to the conclusion that the damage happened between
> >
> > 2005-11-01 22:00:00 UTC OK
> > 2005-11-01 22:45:00 UTC panic
>
> Does this diff make a difference perhaps?
>
It did not make any difference as far as I can tell.
- Peter
> Index: acpi_resource.c
> ===================================================================
> RCS file: /usr/cvs/src/sys/dev/acpica/acpi_resource.c,v
> retrieving revision 1.35
> diff -u -r1.35 acpi_resource.c
> --- acpi_resource.c 11 Sep 2005 18:39:01 -0000 1.35
> +++ acpi_resource.c 3 Nov 2005 15:42:14 -0000
> @@ -168,6 +168,7 @@
>
> /* Fetch the device's current resources. */
> buf.Length = ACPI_ALLOCATE_BUFFER;
> + buf.Pointer = NULL;
> if (ACPI_FAILURE((status = AcpiGetCurrentResources(handle, &buf)))) {
> if (status != AE_NOT_FOUND)
> printf("can't fetch resources for %s - %s\n",
>
>
> --
> John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
> "Power Users Use the Power to Serve" = http://www.FreeBSD.org
More information about the freebsd-acpi
mailing list