[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190701075635.GA79748@google.com>
Date: Mon, 1 Jul 2019 15:56:35 +0800
From: Kuo-Hsin Yang <vovoy@...omium.org>
To: Johannes Weiner <hannes@...xchg.org>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
Minchan Kim <minchan@...nel.org>,
Michal Hocko <mhocko@...e.com>,
Sonny Rao <sonnyrao@...omium.org>,
linux-kernel@...r.kernel.org, linux-mm@...ck.org
Subject: Re: [PATCH v2] mm: vmscan: fix not scanning anonymous pages when
detecting file refaults
On Fri, Jun 28, 2019 at 10:32:01AM -0400, Johannes Weiner wrote:
> On Fri, Jun 28, 2019 at 07:16:27PM +0800, Kuo-Hsin Yang wrote:
> > Commit 2a2e48854d70 ("mm: vmscan: fix IO/refault regression in cache
> > workingset transition") introduced actual_reclaim parameter. When file
> > refaults are detected, inactive_list_is_low() may return different
> > values depends on the actual_reclaim parameter. Vmscan would only scan
> > active/inactive file lists at file thrashing state when the following 2
> > conditions are satisfied.
> >
> > 1) inactive_list_is_low() returns false in get_scan_count() to trigger
> > scanning file lists only.
> > 2) inactive_list_is_low() returns true in shrink_list() to allow
> > scanning active file list.
> >
> > This patch makes the return value of inactive_list_is_low() independent
> > of actual_reclaim and rename the parameter back to trace.
>
> This is not. The root cause for the problem you describe isn't the
> patch you point to. The root cause is our decision to force-scan the
> file LRU based on relative inactive:active size alone, without taking
> file thrashing into account at all. This is a much older problem.
>
> After the referenced patch, we're taking thrashing into account when
> deciding whether to deactivate active file pages or not. To solve the
> problem pointed out here, we can extend that same principle to the
> decision whether to force-scan files and skip the anon LRUs.
>
> The patch you're pointing to isn't the culprit. On the contrary, it
> provides the infrastructure to solve a much older problem.
>
> > Fixes: 2a2e48854d70 ("mm: vmscan: fix IO/refault regression in cache workingset transition")
>
> Please replace this line with the two Fixes: lines that I provided
> earlier in this thread.
Thanks for your clarification, I will update the changelog.
Powered by blists - more mailing lists