From: Michal Hocko <mhocko@kernel.org> To: vinayak menon <vinayakm.list@gmail.com> Cc: Vinayak Menon <vinmenon@codeaurora.org>, Andrew Morton <akpm@linux-foundation.org>, Johannes Weiner <hannes@cmpxchg.org>, mgorman@techsingularity.net, vbabka@suse.cz, Rik van Riel <riel@redhat.com>, vdavydov.dev@gmail.com, anton.vorontsov@linaro.org, Minchan Kim <minchan@kernel.org>, shashim@codeaurora.org, "linux-mm@kvack.org" <linux-mm@kvack.org>, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/2 RESEND] mm: vmpressure: fix sending wrong events on underflow Date: Mon, 6 Feb 2017 14:24:11 +0100 [thread overview] Message-ID: <20170206132410.GC10298@dhcp22.suse.cz> (raw) In-Reply-To: <CAOaiJ-kf+1xO9R5u33-JADpNpHiyyfbq0CKY014E8L+ErKioDA@mail.gmail.com> On Mon 06-02-17 18:39:03, vinayak menon wrote: > On Mon, Feb 6, 2017 at 6:10 PM, Michal Hocko <mhocko@kernel.org> wrote: > > 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. > Sure. Will add a comment. > IIUC, normalizing in vmpressure() means something like this which you > mentioned in one > of your previous emails right ? > > + if (reclaimed > scanned) > + reclaimed = scanned; yes or scanned = reclaimed. > Considering a scan window of 512 pages and without above piece of > code, if the first scanning is of a THP page > Scan=1,Reclaimed=512 > If the next 511 scans results in 0 reclaimed pages > total_scan=512,Reclaimed=512 => vmpressure 0 I am not sure I understand. What do you mean by next scans? We do not modify counters outside of vmpressure? If you mean next iteration of shrink_node's loop then this changeshouldn't make a difference, no? > > Now with the above piece of code in place > Scan=1,Reclaimed=1, then > Scan=511, Reclaimed=0 > total_scan=512,Reclaimed=1 => critical vmpressure -- Michal Hocko SUSE Labs
WARNING: multiple messages have this Message-ID (diff)
From: Michal Hocko <mhocko@kernel.org> To: vinayak menon <vinayakm.list@gmail.com> Cc: Vinayak Menon <vinmenon@codeaurora.org>, Andrew Morton <akpm@linux-foundation.org>, Johannes Weiner <hannes@cmpxchg.org>, mgorman@techsingularity.net, vbabka@suse.cz, Rik van Riel <riel@redhat.com>, vdavydov.dev@gmail.com, anton.vorontsov@linaro.org, Minchan Kim <minchan@kernel.org>, shashim@codeaurora.org, "linux-mm@kvack.org" <linux-mm@kvack.org>, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/2 RESEND] mm: vmpressure: fix sending wrong events on underflow Date: Mon, 6 Feb 2017 14:24:11 +0100 [thread overview] Message-ID: <20170206132410.GC10298@dhcp22.suse.cz> (raw) In-Reply-To: <CAOaiJ-kf+1xO9R5u33-JADpNpHiyyfbq0CKY014E8L+ErKioDA@mail.gmail.com> On Mon 06-02-17 18:39:03, vinayak menon wrote: > On Mon, Feb 6, 2017 at 6:10 PM, Michal Hocko <mhocko@kernel.org> wrote: > > 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. > Sure. Will add a comment. > IIUC, normalizing in vmpressure() means something like this which you > mentioned in one > of your previous emails right ? > > + if (reclaimed > scanned) > + reclaimed = scanned; yes or scanned = reclaimed. > Considering a scan window of 512 pages and without above piece of > code, if the first scanning is of a THP page > Scan=1,Reclaimed=512 > If the next 511 scans results in 0 reclaimed pages > total_scan=512,Reclaimed=512 => vmpressure 0 I am not sure I understand. What do you mean by next scans? We do not modify counters outside of vmpressure? If you mean next iteration of shrink_node's loop then this changeshouldn't make a difference, no? > > Now with the above piece of code in place > Scan=1,Reclaimed=1, then > Scan=511, Reclaimed=0 > total_scan=512,Reclaimed=1 => critical vmpressure -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2017-02-06 13:24 UTC|newest] Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-02-06 12:24 [PATCH 1/2 v4] mm: vmscan: do not pass reclaimed slab to vmpressure Vinayak Menon 2017-02-06 12:24 ` Vinayak Menon 2017-02-06 12:24 ` [PATCH 2/2 RESEND] mm: vmpressure: fix sending wrong events on underflow Vinayak Menon 2017-02-06 12:24 ` Vinayak Menon 2017-02-06 12:40 ` Michal Hocko 2017-02-06 12:40 ` Michal Hocko 2017-02-06 13:09 ` vinayak menon 2017-02-06 13:09 ` vinayak menon 2017-02-06 13:24 ` Michal Hocko [this message] 2017-02-06 13:24 ` Michal Hocko 2017-02-06 14:35 ` vinayak menon 2017-02-06 14:35 ` vinayak menon 2017-02-06 15:12 ` Michal Hocko 2017-02-06 15:12 ` Michal Hocko 2017-02-07 11:17 ` vinayak menon 2017-02-07 11:17 ` vinayak menon 2017-02-07 12:09 ` Michal Hocko 2017-02-07 12:09 ` Michal Hocko 2017-02-06 12:52 ` [PATCH 1/2 v4] mm: vmscan: do not pass reclaimed slab to vmpressure Michal Hocko 2017-02-06 12:52 ` Michal Hocko 2017-02-06 15:10 ` vinayak menon 2017-02-06 15:10 ` vinayak menon 2017-02-07 8:10 ` Michal Hocko 2017-02-07 8:10 ` Michal Hocko 2017-02-07 11:09 ` vinayak menon 2017-02-07 11:09 ` vinayak menon 2017-02-07 12:17 ` Michal Hocko 2017-02-07 12:17 ` Michal Hocko 2017-02-07 13:16 ` vinayak menon 2017-02-07 13:16 ` vinayak menon 2017-02-07 14:52 ` Michal Hocko 2017-02-07 14:52 ` Michal Hocko
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20170206132410.GC10298@dhcp22.suse.cz \ --to=mhocko@kernel.org \ --cc=akpm@linux-foundation.org \ --cc=anton.vorontsov@linaro.org \ --cc=hannes@cmpxchg.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mgorman@techsingularity.net \ --cc=minchan@kernel.org \ --cc=riel@redhat.com \ --cc=shashim@codeaurora.org \ --cc=vbabka@suse.cz \ --cc=vdavydov.dev@gmail.com \ --cc=vinayakm.list@gmail.com \ --cc=vinmenon@codeaurora.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.