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)
Mon, Nov 11, 3:38 AM
Unknown Object (File)
Mon, Oct 21, 7:32 AM
Unknown Object (File)
Oct 6 2024, 11:50 PM
Unknown Object (File)
Sep 22 2024, 8:00 AM
Unknown Object (File)
Sep 19 2024, 5:06 AM
Unknown Object (File)
Sep 17 2024, 12:26 AM
Unknown Object (File)
Sep 15 2024, 2:25 PM
Unknown Object (File)
Sep 6 2024, 3:16 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