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 <g...@fb.com>
> for tangentially pointing this out.
> 
> Signed-off-by: Hugh Dickins <hu...@google.com>

Acked-by: Roman Gushchin <g...@fb.com>

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)

Reply via email to