Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Apr 2009 12:27:23 +0200
From:      Magnus Kling <klingfon@gmail.com>
To:        freebsd-acpi@freebsd.org
Subject:   Fwd: Kernel panic on 7.2-RC1 when booting with ACPI enabled kernel.
Message-ID:  <43b1bb350904250327n2bc0c651y7e725abda56538b0@mail.gmail.com>
In-Reply-To: <43b1bb350904250326o63cb3085vc6a7079fba7cd700@mail.gmail.com>
References:  <43b1bb350904230622u4b7790f0p9f665b649c97a3b@mail.gmail.com> <200904240828.17663.jhb@freebsd.org> <43b1bb350904250326o63cb3085vc6a7079fba7cd700@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
2009/4/24 John Baldwin <jhb@freebsd.org>

On Thursday 23 April 2009 9:22:29 am M K wrote:
> > Hi!
> >
> > I upgraded my fileserver from 7.0 to 7.2-RC1 using the freebsd-update
> > method. Everything went fine during the upgrade but when I attempted to
> boot
> > with the new kernel(GENERIC) the default choice of kernel with ACPI
> enabled
> > did not work. I have to boot by choosing the kernel with ACPI disabled.
> And
> > then it boots perfect. When I used 7.0 everything worked fine.
> >
> > Fatal trap 12: page fault while in kernel mode
> > cpuid =3D 0; apic id =3D 00
> > fault virtual address   =3D 0xb
> > fault code              =3D supervisor read, page not present
> > instruction pointer     =3D 0x20:0xc0da4de7
> > stack pointer           =3D 0x28:0xcd1e6aac
> > frame pointer           =3D 0x28:0xcd1e6aac
> > code segment            =3D base 0x0, limit 0xfffff, type 0x1b
> >                         =3D DPL 0, pres 1, def32 1, gran 1
> > processor eflags        =3D interrupt enabled, resume, IOPL =3D 0
> > current process         =3D 70 (sysctl)
> > trap number             =3D 12
> > panic: page fault
> > cpuid =3D 0
> > Uptime: 1s
> > Physical memory: 243 MB
> > Dumping 27 MB: 12
> >
> > Reading symbols from /boot/kernel/acpi.ko...Reading symbols from
> > /boot/kernel/acpi.ko.symbols...done.
> > done.
> > Loaded symbols for /boot/kernel/acpi.ko
> > #0  doadump () at pcpu.h:196
> > 196             __asm __volatile("movl %%fs:0,%0" : "=3Dr" (td));
> > (kgdb) list *0xc0da4de7
> > 0xc0da4de7 is in AcpiNsMapHandleToNode
> >
> (/usr/src/sys/modules/acpi/acpi/../../../contrib/dev/acpica/nsutils.c:889=
).
> > 884             return (AcpiGbl_RootNode);
> > 885         }
> > 886
> > 887         /* We can at least attempt to verify the handle */
> > 888
> > 889         if (ACPI_GET_DESCRIPTOR_TYPE (Handle) !=3D
> ACPI_DESC_TYPE_NAMED)
> > 890         {
> > 891             return (NULL);
> > 892         }
> > 893
> > (kgdb) bt
> > #0  doadump () at pcpu.h:196
> > #1  0xc0790eb7 in boot (howto=3D260) at
> /usr/src/sys/kern/kern_shutdown.c:418
> > #2  0xc0791189 in panic (fmt=3DVariable "fmt" is not available.
> > ) at /usr/src/sys/kern/kern_shutdown.c:574
> > #3  0xc0aa339c in trap_fatal (frame=3D0xcd1e6a6c, eva=3D11)
> >     at /usr/src/sys/i386/i386/trap.c:939
> > #4  0xc0aa3620 in trap_pfault (frame=3D0xcd1e6a6c, usermode=3D0, eva=3D=
11)
> >     at /usr/src/sys/i386/i386/trap.c:852
> > #5  0xc0aa3fdc in trap (frame=3D0xcd1e6a6c) at
> > /usr/src/sys/i386/i386/trap.c:530
> > #6  0xc0a89e4b in calltrap () at /usr/src/sys/i386/i386/exception.s:159
> > #7  0xc0da4de7 in AcpiNsMapHandleToNode (Handle=3D0x7)
> >     at
> > /usr/src/sys/modules/acpi/acpi/../../../contrib/dev/acpica/nsutils.c:88=
9
> > #8  0xc0da44cf in AcpiNsHandleToPathname (TargetHandle=3D0x7,
> > Buffer=3D0xcd1e6ae0)
> >     at
> > /usr/src/sys/modules/acpi/acpi/../../../contrib/dev/acpica/nsnames.c:32=
0
> > #9  0xc0db0a72 in acpi_name (handle=3D0x7)
> >     at /usr/src/sys/modules/acpi/acpi/../../../dev/acpica/acpi.c:2842
> > #10 0xc0db4ca8 in acpi_pci_child_location_str_method (cbdev=3D0xc221268=
0,
> >     child=3D0xc2243400, buf=3D0xc22c2400 "slot=3D0 function=3D0 handle=
=3D",
> > buflen=3D1024)
> >     at /usr/src/sys/modules/acpi/acpi/../../../dev/acpica/acpi_pci.c:15=
0
>
> Can you do 'frame 10' followed by 'p *(struct acpi_pci_devinfo
> *)child->ivars'
>
> --
> John Baldwin


Sure, no problem. This is a none critical server so I can do alot of
debugging and testing if that is needed.


(kgdb) frame 10
#10 0xc0db4ca8 in acpi_pci_child_location_str_method (cbdev=3D0xc2212680,
    child=3D0xc2243400, buf=3D0xc22c2400 "slot=3D0 function=3D0 handle=3D",
buflen=3D1024)
    at /usr/src/sys/modules/acpi/acpi/../../../dev/acpica/acpi_pci.c:150
150             strlcat(buf, acpi_name(dinfo->ap_handle), buflen);

(kgdb)  p *(struct acpi_pci_devinfo *)child->ivars
$1 =3D {ap_dinfo =3D {pci_links =3D {stqe_next =3D 0xc0b00f8c}, resources =
=3D {
      stqh_first =3D 0xc0b00f8c, stqh_last =3D 0x1030000}, cfg =3D {dev =3D=
 0x0,
      bar =3D {4, 0, 0, 3257136600, 0, 0}, bios =3D 0, subvendor =3D 0,
      subdevice =3D 0, vendor =3D 0, device =3D 0, cmdreg =3D 0, statreg =
=3D 0,
      baseclass =3D 0 '\0', subclass =3D 0 '\0', progif =3D 0 '\0', revid =
=3D 0
'\0',
      hdrtype =3D 0 '\0', cachelnsz =3D 0 '\0', intpin =3D 0 '\0', intline =
=3D 0
'\0',
      mingnt =3D 0 '\0', maxlat =3D 0 '\0', lattimer =3D 0 '\0', mfdev =3D =
0 '\0',
      nummaps =3D 80 'P', domain =3D 3257157632, bus =3D 4 '\004', slot =3D=
 0 '\0',
      func =3D 0 '\0', pp =3D {pp_cap =3D 5696, pp_status =3D 36 '$',
        pp_pmcsr =3D 194 '=C2', pp_data =3D 0 '\0'}, vpd =3D {vpd_reg =3D 0=
 '\0',
        vpd_cached =3D 0 '\0', vpd_ident =3D 0x0, vpd_rocnt =3D -1037758948=
,
        vpd_ros =3D 0x14, vpd_wcnt =3D 0, vpd_w =3D 0x0}, msi =3D {msi_ctrl=
 =3D 0,
        msi_location =3D 0 '\0', msi_msgnum =3D 0 '\0', msi_alloc =3D 0,
        msi_addr =3D 0, msi_data =3D 7248, msi_handlers =3D 3257137472}, ms=
ix =3D {
        msix_ctrl =3D 1477, msix_msgnum =3D 0, msix_location =3D 0 '\0',
        msix_table_bar =3D 0 '\0', msix_pba_bar =3D 0 '\0',
        msix_table_offset =3D 3257280512, msix_pba_offset =3D 0,
        msix_alloc =3D -1037820896, msix_table_len =3D -1065660736,
        msix_table =3D 0xc0b2bb52, msix_vectors =3D 0x1,
        msix_table_res =3D 0xc222e660, msix_pba_res =3D 0x0}, ht =3D {
        ht_msimap =3D 0 '\0', ht_msictrl =3D 0, ht_msiaddr =3D 0}}, conf =
=3D {
      pc_sel =3D {pc_domain =3D 0, pc_bus =3D 128 '\200', pc_dev =3D 246 '=
=F6',
        pc_func =3D 35 '#'}, pc_hdr =3D 0 '\0', pc_subvendor =3D 0,
---Type <return> to continue, or q <return> to quit---
      pc_subdevice =3D 0, pc_vendor =3D 0, pc_device =3D 0, pc_class =3D 0 =
'\0',
      pc_subclass =3D 0 '\0', pc_progif =3D 0 '\0', pc_revid =3D 0 '\0',
      pd_name =3D "\000\000@\016%=C2pC&=C2pC&=C2\026\000", pd_unit =3D 22}}=
,
  ap_handle =3D 0x7, ap_flags =3D 0}
(kgdb)

/Magnus



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43b1bb350904250327n2bc0c651y7e725abda56538b0>