cvs commit: src/sys/boot/pc32/libi386 biosacpi.c src/sys/conf acpi.mk files src/sys/dev/acpica5 Makefile Makefile.inc acdragonfly.h acpi.c acpi_acad.c acpi_button.c acpi_cmbat.c acpi_cpu.c acpi_ec.c acpi_lid.c acpi_resource.c acpi_thermal.c ...

Johannes Hofmann Johannes.Hofmann at gmx.de
Thu Jan 18 06:56:36 PST 2007


YONETANI Tomokazu <qhwt+dfly at les.ath.cx> wrote:
> On Thu, Jan 18, 2007 at 06:40:05AM +0000, Johannes Hofmann wrote:
>> YONETANI Tomokazu <qhwt+dfly at les.ath.cx> 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







More information about the Commits mailing list