Re: [PATCH 1/2] mm: NUMA stats code cleanup and enhancement

From: Andrew Morton
Date: Tue Nov 28 2017 - 16:57:00 EST


On Tue, 28 Nov 2017 10:40:52 -0800 Andi Kleen <ak@xxxxxxxxxxxxxxx> wrote:

> Vlastimil Babka <vbabka@xxxxxxx> writes:
> >
> > I'm worried about the "for_each_possible..." approach here and elsewhere
> > in the patch as it can be rather excessive compared to the online number
> > of cpus (we've seen BIOSes report large numbers of possible CPU's). IIRC
>
> Even if they report a few hundred extra reading some more shared cache lines
> is very cheap. The prefetcher usually quickly figures out such a pattern
> and reads it all in parallel.
>
> I doubt it will be noticeable, especially not in a slow path
> like reading something from proc/sys.

We say that, then a few years it comes back and bites us on our
trailing edges.

> > the general approach with vmstat is to query just online cpu's / nodes,
> > and if they go offline, transfer their accumulated stats to some other
> > "victim"?
>
> That's very complicated, and unlikely to be worth it.

for_each_online_cpu() and a few-line hotplug handler? I'd like to see
an implementation before deciding that it's too complex...