Re: [PATCH 02/16] mm: vmstat: use s32 for vm_node_stat_diff in struct per_cpu_nodestat

From: Roman Gushchin
Date: Sun Oct 20 2019 - 21:20:33 EST


On Sun, Oct 20, 2019 at 10:44:10PM +0000, Christopher Lameter wrote:
> On Thu, 17 Oct 2019, Roman Gushchin wrote:
>
> > But if some counters are in bytes (and the next commit in the series
> > will convert slab counters to bytes), it's not gonna work:
> > value in bytes can easily exceed s8 without exceeding the threshold
> > converted to bytes. So to avoid overfilling per-cpu caches and breaking
> > vmstats correctness, let's use s32 instead.
>
> This quardruples the cache footprint of the counters and likely has some
> influence on performance.

But otherwise slab allocation counters will be flushed too often, which
will be likely noticeable. I can do custom s32 buffers only for these counters,
but to me it seems like an unnecessary complication, unless we'll find
a clear regression.

Sp far I haven't noticed any regression on the set of workloads where I did test
the patchset, but if you know any benchmark or realistic test which can affected
by this check, I'll be happy to try.

Also, less-than-word-sized operations can be slower on some platforms.