Re: [PATCH RESEND v8 1/2] sched/numa: introduce per-cgroup NUMA locality info
From: Mel Gorman
Date: Mon Feb 17 2020 - 06:58:19 EST
On Fri, Feb 14, 2020 at 04:10:48PM +0100, Peter Zijlstra wrote:
> On Fri, Feb 07, 2020 at 11:35:30AM +0800, ?????? wrote:
> > By monitoring the increments, we will be able to locate the per-cgroup
> > workload which NUMA Balancing can't helpwith (usually caused by wrong
> > CPU and memory node bindings), then we got chance to fix that in time.
> >
> > Cc: Mel Gorman <mgorman@xxxxxxx>
> > Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> > Cc: Michal Koutný <mkoutny@xxxxxxxx>
> > Signed-off-by: Michael Wang <yun.wang@xxxxxxxxxxxxxxxxx>
>
> So here:
>
> https://lkml.kernel.org/r/20191127101932.GN28938@xxxxxxx
>
> Mel argues that the information exposed is fairly implementation
> specific and hard to use without understanding how NUMA balancing works.
>
> By exposing it to userspace, we tie ourselves to these particulars. We
> can no longer change these NUMA balancing details if we wanted to, due
> to UAPI concerns.
>
> Mel, I suspect you still feel that way, right?
>
Yes, I still think it would be a struggle to interpret the data
meaningfully without very specific knowledge of the implementation. If
the scan rate was constant, it would be easier but that would make NUMA
balancing worse overall. Similarly, the stat might get very difficult to
interpret when NUMA balancing is failing because of a load imbalance,
pages are shared and being interleaved or NUMA groups span multiple
active nodes.
For example, the series that reconciles NUMA and CPU balancers may look
worse in these stats even though the overall performance may be better.
> In the document (patch 2/2) you write:
>
> > +However, there are no hardware counters for per-task local/remote accessing
> > +info, we don't know how many remote page accesses have occurred for a
> > +particular task.
>
> We can of course 'fix' that by adding a tracepoint.
>
> Mel, would you feel better by having a tracepoint in task_numa_fault() ?
>
A bit, although interpreting the data would still be difficult and the
tracepoint would have to include information about the cgroup. While
I've never tried, this seems like the type of thing that would be suited
to a BPF script that probes task_numa_fault and extract the information
it needs.
--
Mel Gorman
SUSE Labs