> >>
> >> if (lr_ratio >= NUMA_PERIOD_THRESHOLD)
> >> slow down scanning
> >> else if (sp_ratio >= NUMA_PERIOD_THRESHOLD) {
> >> if (NUMA_PERIOD_SLOTS - lr_ratio >= NUMA_PERIOD_THRESHOLD)
> >> speed up scanning
>
> Thought about this again. For example, a multi-threads workload runs on
> a 4-sockets machine, and most memory accesses are shared. The optimal
> situation will be pseudo-interleaving, that is, spreading memory
> accesses evenly among 4 NUMA nodes. Where "share" >> "private", and
> "remote" > "local". And we should slow down scanning to reduce the
> overhead.
>
> What do you think about this?
If all 4 nodes have equal access, then all 4 nodes will be active nodes.
>From task_numa_fault()
if (!priv && !local && ng && ng->active_nodes > 1 &&
numa_is_active_node(cpu_node, ng) &&
numa_is_active_node(mem_node, ng))
local = 1;
Hence all accesses will be accounted as local. Hence scanning would slow
down.
--
Thanks and Regards
Srikar Dronamraju