Page MenuHomeFreeBSD

powerpc: Fix the NUMA domain list on powernv
ClosedPublic

Authored by jhibbits on Jan 17 2020, 12:13 AM.
Tags
None
Referenced Files
F82426182: D23220.diff
Sun, Apr 28, 1:30 PM
Unknown Object (File)
Thu, Apr 4, 3:20 PM
Unknown Object (File)
Jan 9 2024, 2:05 PM
Unknown Object (File)
Dec 22 2023, 10:28 PM
Unknown Object (File)
Dec 11 2023, 1:43 AM
Unknown Object (File)
Oct 29 2023, 9:18 PM
Unknown Object (File)
Oct 27 2023, 9:53 PM
Unknown Object (File)
Aug 22 2023, 7:56 PM
Subscribers

Details

Summary

Consolidate the NUMA associativity handling into a platform function.
Non-NUMA platforms will just fall back to the default (0). Currently
only implemented for powernv, which uses a lookup table to map the
device tree associativity into a system NUMA domain.

Fixes hangs on powernv after r356534, and corrects a fairly longstanding
bug in powernv's NUMA handling, which ended up using domains 1 and 2 for
devices and memory on power9, while CPUs were bound to domains 0 and 1.

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 28713
Build 26728: arc lint + arc unit

Event Timeline

luporl added inline comments.
sys/powerpc/powernv/platform_powernv.c
154–157

'platform_associativity' (static) isn't being used anywhere in this file

'refpoints' is not used anywhere in this function.

Empty if block?

Maybe is there some code missing here?

532

Not sure, but shouldn't we use an index from refpoints here, instead of always 3 in associativity[]?

sys/powerpc/powernv/platform_powernv.c
154–157

I was trying several things in this. I meant to delete this finally, and revisit it later, but I'll use it instead.

532

Yes, I was going to just leave it as parity with the existing code, but I'll do single-level NUMA (index 0) for now. We should revisit it again at some point, to handle multi-level NUMA, but I don't think FreeBSD in general supports that yet.

Address @luporl's feedback, improving correctness.

This revision is now accepted and ready to land.Jan 17 2020, 5:03 PM

Looks good to me too. Thanks for putting this together!

This revision was automatically updated to reflect the committed changes.