YONETANI Tomokazu <[EMAIL PROTECTED]> wrote: > On Thu, Jan 18, 2007 at 06:40:05AM +0000, Johannes Hofmann wrote: >> YONETANI Tomokazu <[EMAIL PROTECTED]> wrote: >> > On Wed, Jan 17, 2007 at 11:18:06PM +0100, Michal Belczyk wrote: >> >> On Wed, Jan 17, 2007 at 08:42:49PM +0000, Johannes Hofmann wrote: >> >> > Sorry for not testing earlier, but with this commit my thinkpad T42p >> >> > no longer boots with acpi enabled. It spits out some warnings and then >> >> > hangs (see http://www.ecademix.com/JohannesHofmann/tmp/acpi.jpg for >> >> > a screenshot). >> > >> > What was the next few lines after "acpi0: <IBM TP-1R> on ..." before? >> > No ctrl+alt+esc? >> > >> >> Same here on T60. >> > >> > Please let me know the result of either or both of the following >> > intructions: > [snip] >> > it should print the function names on the screen, I'd like to know >> > the last few ones. >> >> http://www.ecademix.com/JohannesHofmann/tmp/acpi2.jpg > > That's somewhere around here in acpi_attach; AcpiInitializeSubsystem() > has ACPI_FUNCTION_TRACE but it's not shown in acpi2.jpg, so it's stuck > after entering acpi_attach() but before calling AcpiInitializeSubsystem(). > Can you insert a few kprintf()'s in the section below to see where it's > actually stuck? > > Cheers. > > > [acpi_attach:acpi.c] > > ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); > #if __FreeBSD_version >= 500000 > /* Initialise the ACPI mutex */ > mtx_init(&acpi_mutex, "ACPI global lock", NULL, MTX_DEF); > #endif > <<<<<< FROM HERE >>>>>> > ACPI_LOCK; > sc = device_get_softc(dev); > bzero(sc, sizeof(*sc)); > sc->acpi_dev = dev; > callout_init(&sc->acpi_sleep_timer); > > /* > * Set the globals from our tunables. This is needed because ACPI-CA > * uses UINT8 for some values and we have no tunable_byte. > */ > AcpiGbl_AllMethodsSerialized = (UINT8)acpi_serialize_methods; > AcpiGbl_EnableInterpreterSlack = TRUE; > > error = ENXIO; > #ifdef ACPI_DEBUGGER > debugpoint = kgetenv("debug.acpi.debugger"); > if (debugpoint) { > if (!strcmp(debugpoint, "tables")) > acpi_EnterDebugger(); > freeenv(debugpoint); > } > #endif > <<<<<< UNTIL HERE >>>>>> > if (ACPI_FAILURE(status = AcpiInitializeSubsystem())) { > kprintf("ACPI: initialisation failed: %s\n", > AcpiFormatException(status)); > goto out; > } >
By adding kprintfs() I traced it down to hang somewhere in nsload.c:AcpiNsLoadTable. But I think there should have been some trace lines if it comes that far. So I suspect that there is something wrong with the debugging code. Does function tracing work for you? Johannes
