[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <63b9ce4d-0e1d-8e40-5ec3-154fe6e95557@linux.alibaba.com>
Date: Wed, 15 Apr 2020 13:31:58 -0700
From: Yang Shi <yang.shi@...ux.alibaba.com>
To: "Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com>,
akpm@...ux-foundation.org, Andrea Arcangeli <aarcange@...hat.com>
Cc: Zi Yan <ziy@...dia.com>, Ralph Campbell <rcampbell@...dia.com>,
John Hubbard <jhubbard@...dia.com>,
William Kucharski <william.kucharski@...cle.com>,
linux-mm@...ck.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCHv3, RESEND 3/8] khugepaged: Drain all LRU caches before
scanning pages
On 4/13/20 5:52 AM, Kirill A. Shutemov wrote:
> Having a page in LRU add cache offsets page refcount and gives
> false-negative on PageLRU(). It reduces collapse success rate.
>
> Drain all LRU add caches before scanning. It happens relatively
> rare and should not disturb the system too much.
>
> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@...ux.intel.com>
> ---
> mm/khugepaged.c | 2 ++
> 1 file changed, 2 insertions(+)
Acked-by: Yang Shi <yang.shi@...ux.alibaba.com>
>
> diff --git a/mm/khugepaged.c b/mm/khugepaged.c
> index 5968ec5ddd6b..ee66c140c2d6 100644
> --- a/mm/khugepaged.c
> +++ b/mm/khugepaged.c
> @@ -2059,6 +2059,8 @@ static void khugepaged_do_scan(void)
>
> barrier(); /* write khugepaged_pages_to_scan to local stack */
>
> + lru_add_drain_all();
> +
> while (progress < pages) {
> if (!khugepaged_prealloc_page(&hpage, &wait))
> break;
Powered by blists - more mailing lists