Re: [PATCH 4/4] sched/numa: Adjust imb_numa_nr to a better approximation of memory channels

From: Peter Zijlstra
Date: Wed May 18 2022 - 10:05:19 EST


On Wed, May 18, 2022 at 12:15:39PM +0100, Mel Gorman wrote:

> I'm not aware of how it can be done in-kernel on a cross architectural
> basis. Reading through the arch manual, it states how many channels are
> in a given processor family and it's available during memory check errors
> (apparently via the EDAC driver). It's sometimes available via PMUs but
> I couldn't find a place where it's generically available for topology.c
> that would work on all x86-64 machines let alone every other architecture.

So provided it is something we want (below) we can always start an arch
interface and fill it out where needed.

> It's not even clear if SMBIOS was parsed in early boot whether

We can always rebuild topology / update variables slightly later in
boot.

> it's a
> good idea. It could result in difference imbalance thresholds for each
> NUMA domain or weird corner cases where assymetric NUMA node populations
> would result in run-to-run variance that are difficult to analyse.

Yeah, maybe. OTOH having a magic value that's guestimated based on
hardware of the day is something that'll go bad any moment as well.

I'm not too worried about run-to-run since people don't typically change
DIMM population over a reboot, but yes, there's always going to be
corner cases. Same with a fixed value though, that's also going to be
wrong.