[issue557] 1.9.0-DEVELOPMENT hangs with ACPI enabled

Mariano Aliaga marianoaliaga at gmail.com
Thu Feb 22 03:49:12 PST 2007


On 2/22/07, YONETANI Tomokazu <qhwt+dfly at les.ath.cx> wrote:
On Wed, Feb 21, 2007 at 09:51:34AM -0300, Mariano Aliaga wrote:

Really?  The lines after 219 until the next kprintf inserted look
like this, right?
   219  kprintf("HERE: %s:%d\n", __func__, __LINE__);
   220
   221      /*
   222       * Find the processor associated with our unit.  We could use the
   223       * ProcId as a key, however, some boxes do not have the same values
   224       * in their Processor object as the ProcId values in the MADT.
   225       */
   226      acpi_id = obj->Processor.ProcId;
   227      AcpiOsFree(obj);
   228      if (acpi_pcpu_get_id(device_get_unit(dev), &acpi_id, &cpu_id) != 0)
   229          return (ENXIO);
   230
   231  kprintf("HERE: %s:%d\n", __func__, __LINE__);
Yes, those are the lines.

Hmm.. what happens if you undo the patch, and change above code to:
%%%%
        acpi_id = obj->Processor.ProcId;
kprintf("Before calling AcpiOsFree()\n");
        AcpiOsFree(obj);
kprintf("After calling AcpiOsFree()\n");
        if (acpi_pcpu_get_id(device_get_unit(dev), &acpi_id, &cpu_id) != 0) {
kprintf("acpi_pcpu_get_id() failed\n");
            return (ENXIO);
        }
kprintf("acpi_id: %d, cpu_id: %d\n", acpi_id, cpu_id);
%%%%
without debug.acpi.layer or debug.acpi.level in /boot/loader.conf.
This is what I get: http://www.e-nix.com.ar/~maliaga/00002.jpg

BTW, to specify "all ACPI-CA components except for namespace and processor",
you can change it to:
        AcpiDbgLayer = ACPI_ALL_COMPONENTS & ~(ACPI_NAMESPACE | ACPI_PROCESSOR);
Thanks for this, I didn't know how to do it.

Regards.-

--
"El incremento de la satisfacción profesional y de la unidad familiar
son fatales para un proveedor de sustancias entumecedoras del cerebro."
Moe, 1991.





More information about the Bugs mailing list