acpi_cpu changes complete

Nate Lawson nate at
Wed Nov 26 11:05:15 PST 2003

I believe this completes the changes to acpi_cpu for 5.2.  Please test on
SMP boxes and laptops and if you were disabling it before, please
re-enable it to test.  (To do that, remove debug.acpi.disable from


---------- Forwarded message ----------
Date: Wed, 26 Nov 2003 11:02:07 -0800 (PST)
From: Nate Lawson <njl at>

  Modified files:
    sys/dev/acpica       acpi_cpu.c
    sys/modules/acpi     Makefile
  * Add acpi_pcpu_get_id(idx, *acpi_id, *cpu_id) which fetches the
    idx'th present CPU with pc_acpi_id equal to *acpi_id.  If *acpi_id
    does not match that processor's pc_acpi_id, return the value for
    ProcId derived from the MADT in *acpi_id.  If pc_acpi_id is 0xffffffff,
    always override it with the value of *acpi_id.  Finally, return
    pc_cpuid in *cpu_id and use that as our primary key.

  * Use pc_cpuid as our unique key because we know it is valid since
    MD code set it.  The values for ProcId in the ASL and MADT don't
    match up on some machines (!), forcing us to fall back to ordered
    probing in that case.

  * Remove some #ifdef SMP since the refcount doesn't hurt performance
    and will be needed for dynamic _CST objects.  Only one #ifdef SMP
    (for smp_rendezvous) remains.

  * Hook up SMP in the compile flags in the Makefile.

  Tested by:      marcel, truckman
  Approved by:    re (scottl)

  Revision  Changes    Path
  1.21      +48 -49    src/sys/dev/acpica/acpi_cpu.c
  1.33      +5 -2      src/sys/modules/acpi/Makefile

More information about the freebsd-current mailing list