On Mon, Apr 22, 2019 at 10:11:24AM +0800, 王贇 wrote: > + * 0 -- remote faults > + * 1 -- local faults > + * 2 -- page migration failure > + * 3 -- remote page accessing after page migration > + * 4 -- local page accessing after page migration > @@ -2387,6 +2388,11 @@ void task_numa_fault(int last_cpupid, int mem_node, int pages, int flags) > memset(p->numa_faults_locality, 0, sizeof(p->numa_faults_locality)); > } > > + p->numa_faults_locality[mem_node == numa_node_id() ? 4 : 3] += pages; > + > + if (mem_node == NUMA_NO_NODE) > + return; I'm confused on the meaning of 3 & 4. It says 'after page migration' but 'every' access if after 'a' migration. But even more confusingly, you even account it if we know the page has never been migrated. So what are you really counting?