Re: [PATCH 1/4] mm: restore node stat checking in /proc/sys/vm/stat_refresh

From: Roman Gushchin
Date: Sun Feb 28 2021 - 19:49:20 EST


On Thu, Feb 25, 2021 at 03:10:09PM -0800, Hugh Dickins wrote:
> v4.7 52b6f46bc163 ("mm: /proc/sys/vm/stat_refresh to force vmstat update")
> introduced vmstat_refresh(), with its vmstat underflow checking; then
> v4.8 75ef71840539 ("mm, vmstat: add infrastructure for per-node vmstats")
> split NR_VM_NODE_STAT_ITEMS out of NR_VM_ZONE_STAT_ITEMS without updating
> vmstat_refresh(): so it has been missing out much of the vmstat underflow
> checking ever since. Reinstate it. Thanks to Roman Gushchin <guro@xxxxxx>
> for tangentially pointing this out.
>
> Signed-off-by: Hugh Dickins <hughd@xxxxxxxxxx>

Acked-by: Roman Gushchin <guro@xxxxxx>

Thanks!

> ---
>
> mm/vmstat.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> --- 5.12-rc/mm/vmstat.c 2021-02-24 12:03:55.000000000 -0800
> +++ vmstat1/mm/vmstat.c 2021-02-25 11:50:36.000000000 -0800
> @@ -1857,6 +1857,14 @@ int vmstat_refresh(struct ctl_table *tab
> }
> }
> #endif
> + for (i = 0; i < NR_VM_NODE_STAT_ITEMS; i++) {
> + val = atomic_long_read(&vm_node_stat[i]);
> + if (val < 0) {
> + pr_warn("%s: %s %ld\n",
> + __func__, node_stat_name(i), val);
> + err = -EINVAL;
> + }
> + }
> if (err)
> return err;
> if (write)