Re: [RFC PATCH 1/5] numa: introduce per-cgroup numa balancing locality, statistic

From: Peter Zijlstra
Date: Tue Apr 23 2019 - 04:46:42 EST


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?