Page MenuHomeFreeBSD

acpica: support parsing of arm64 affinity in acpi_pxm.c
ClosedPublic

Authored by jchandra on Nov 11 2018, 2:40 AM.

Details

Summary

ACPI SRAT table on arm64 uses GICC entries to provide CPU locality information. These entries uses a AcpiProcessorUid to identify the cpu (unlike on x86 where entries have an APIC ID).

Update acpi_pxm.c to extend the cpus_add/cpus_find/cpus_get_info functions to be able to handle AcpiProcessorUid, and then use it when parsing ACPI_SRAT_GICC_AFFINITY entry for arm64.

Add dev/acpica/acpi_pxm.c to arm64 compilation if acpi is enabled.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

jchandra retitled this revision from acpica: support parsing of arm64 affinity acpi_pxm.c to acpica: support parsing of arm64 affinity in acpi_pxm.c.
sys/dev/acpica/acpi_pxm.c
247 ↗(On Diff #50277)

It doesn't really matter here, but this should be imin().

316 ↗(On Diff #50277)

"APIC ID" looks like the wrong term.

jchandra marked 2 inline comments as done.

Thanks for the review, will update the diff.

sys/dev/acpica/acpi_pxm.c
247 ↗(On Diff #50277)

This is a bug (had the Linux behavior in mind) - I should use imax() here.

316 ↗(On Diff #50277)

Yes, will fix.

Addressed markj's comments.

  • use the UID instead of APIC id in prints for arm64
  • the comment on 'max' is already handled in preceding commit

Also fixed one issue - in arm64 cpu_add was checking last_cpu limit incorrectly.

This revision was not accepted when it landed; it landed in state Needs Review.Dec 8 2018, 7:32 PM
This revision was automatically updated to reflect the committed changes.