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
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

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

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

sys/arm64/arm64/mp_machdep.c
505
639

I think this probably deserves an XXX comment.

sys/arm64/arm64/mp_machdep.c
514

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
514

I mostly did it for consistency.

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

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