The initial Local APIC ID is returned by CPUID function 1 (in EBX).
On AMD Family 10h systems the way that ID is built is controlled by
an MSR bit. BKDG instructs BIOS to set it in a certain way, but a BIOS can
be buggy. In that case the ID can confuse tools that use it, e.g. hwloc.
See: https://github.com/open-mpi/hwloc/issues/183
Details
Details
- Reviewers
kib jhb - Commits
- rS298736: ensure that initial local apic id is sane on AMD 10h systems
Diff Detail
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Comment Actions
Does the MADT ACPI table content no longer match what CPU reports, in particular, the APIC IDs ?
Comment Actions
Yes, that's the case. MADT and LAPICs have consistent sane values of 0 -3 on my system, but the IDs reported via CPUID.1 are 0, 0x40, 0x80, 0xc0.