Srikar Dronamraju <srikar@xxxxxxxxxxxxxxxxxx> writes: > * Huang, Ying <ying.huang@xxxxxxxxx> [2019-07-26 15:45:39]: > >> Hi, Srikar, >> >> > >> > More Remote + Private page Accesses: >> > Most likely the Private accesses are going to be local accesses. >> > >> > In the unlikely event of the private accesses not being local, we should >> > scan faster so that the memory and task consolidates. >> > >> > More Remote + Shared page Accesses: This means the workload has not >> > consolidated and needs to scan faster. So we need to scan faster. >> >> This sounds reasonable. But >> >> lr_ratio < NUMA_PERIOD_THRESHOLD >> >> doesn't indicate More Remote. If Local = Remote, it is also true. If > > less lr_ratio means more remote. > >> there are also more Shared, we should slow down the scanning. So, the > > Why should we slowing down if there are more remote shared accesses? > >> logic could be >> >> 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? Best Regards, Huang, Ying >> else >> slow down scanning >> } else >> speed up scanning >> >> This follows your idea better? >> >> Best Regards, >> Huang, Ying