Page MenuHomeFreeBSD

Allocate arm64 per-CPU data in the correct domain
ClosedPublic

Authored by andrew on Oct 6 2021, 3:54 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Dec 6, 6:35 PM
Unknown Object (File)
Sat, Nov 30, 7:26 PM
Unknown Object (File)
Thu, Nov 28, 8:05 AM
Unknown Object (File)
Nov 14 2024, 12:10 PM
Unknown Object (File)
Nov 11 2024, 3:38 AM
Unknown Object (File)
Oct 21 2024, 7:32 AM
Unknown Object (File)
Oct 6 2024, 11:50 PM
Unknown Object (File)
Sep 22 2024, 8:00 AM
Subscribers

Details

Summary

To minimise NUMA traffic allocate the pcpu, dpcpu, and boot stacks in
the correct domain when possible.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 42001
Build 38889: arc lint + arc unit

Event Timeline

andrew requested review of this revision.Oct 6 2021, 3:54 PM
sys/arm64/arm64/machdep.c
109

Isn't this the same as cpuid_to_pcpu[] now? Do we need __pcpu[] at all?

sys/arm64/arm64/mp_machdep.c
509
643

I think this probably deserves an XXX comment.

sys/arm64/arm64/mp_machdep.c
518

FWIW, there is no benefit to allocating domain-local boot stacks, they are used only in the window after the AP starts and before it switches to a thread.

sys/arm64/arm64/mp_machdep.c
518

I mostly did it for consistency.

markj added inline comments.
sys/arm64/arm64/machdep.c
1363

We assume that .bss is allocated from the domain to which the BSP belongs. That's probably true in practice though, at least amd64 makes a similar assumption when it allocates the pcpu area in pmap_bootstrap().

This revision is now accepted and ready to land.Oct 7 2021, 4:02 PM