> >> > >> 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