Re: [PATCH 2/2 RESEND] mm: vmpressure: fix sending wrong events on underflow

From: Michal Hocko
Date: Mon Feb 06 2017 - 07:40:49 EST


On Mon 06-02-17 17:54:10, Vinayak Menon wrote:
[...]
> diff --git a/mm/vmpressure.c b/mm/vmpressure.c
> index 149fdf6..3281b34 100644
> --- a/mm/vmpressure.c
> +++ b/mm/vmpressure.c
> @@ -112,8 +112,10 @@ static enum vmpressure_levels vmpressure_calc_level(unsigned long scanned,
> unsigned long reclaimed)
> {
> unsigned long scale = scanned + reclaimed;
> - unsigned long pressure;
> + unsigned long pressure = 0;
>
> + if (reclaimed >= scanned)
> + goto out;

This deserves a comment IMHO. Besides that, why shouldn't we normalize
the result already in vmpressure()? Please note that the tree == true
path will aggregate both scanned and reclaimed and that already skews
numbers.
--
Michal Hocko
SUSE Labs