linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Yu Zhao <yuzhao@google.com>
To: Aneesh Kumar K V <aneesh.kumar@linux.ibm.com>
Cc: "Stephen Rothwell" <sfr@rothwell.id.au>,
	Linux-MM <linux-mm@kvack.org>, "Andi Kleen" <ak@linux.intel.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Barry Song" <21cnbao@gmail.com>,
	"Catalin Marinas" <catalin.marinas@arm.com>,
	"Dave Hansen" <dave.hansen@linux.intel.com>,
	"Hillf Danton" <hdanton@sina.com>, "Jens Axboe" <axboe@kernel.dk>,
	"Jesse Barnes" <jsbarnes@google.com>,
	"Johannes Weiner" <hannes@cmpxchg.org>,
	"Jonathan Corbet" <corbet@lwn.net>,
	"Linus Torvalds" <torvalds@linux-foundation.org>,
	"Matthew Wilcox" <willy@infradead.org>,
	"Mel Gorman" <mgorman@suse.de>,
	"Michael Larabel" <Michael@michaellarabel.com>,
	"Michal Hocko" <mhocko@kernel.org>,
	"Mike Rapoport" <rppt@kernel.org>,
	"Rik van Riel" <riel@surriel.com>,
	"Vlastimil Babka" <vbabka@suse.cz>,
	"Will Deacon" <will@kernel.org>,
	"Ying Huang" <ying.huang@intel.com>,
	"Linux ARM" <linux-arm-kernel@lists.infradead.org>,
	"open list:DOCUMENTATION" <linux-doc@vger.kernel.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	"Kernel Page Reclaim v2" <page-reclaim@google.com>,
	"the arch/x86 maintainers" <x86@kernel.org>,
	"Brian Geffon" <bgeffon@google.com>,
	"Jan Alexander Steffens" <heftig@archlinux.org>,
	"Oleksandr Natalenko" <oleksandr@natalenko.name>,
	"Steven Barrett" <steven@liquorix.net>,
	"Suleiman Souhlal" <suleiman@google.com>,
	"Daniel Byrne" <djbyrne@mtu.edu>,
	"Donald Carr" <d@chaos-reins.com>,
	"Holger Hoffstätte" <holger@applied-asynchrony.com>,
	"Konstantin Kharlamov" <Hi-Angel@yandex.ru>,
	"Shuang Zhai" <szhai2@cs.rochester.edu>,
	"Sofia Trinh" <sofia.trinh@edi.works>,
	"Vaibhav Jain" <vaibhav@linux.ibm.com>
Subject: Re: [PATCH v10 07/14] mm: multi-gen LRU: exploit locality in rmap
Date: Wed, 27 Apr 2022 00:00:47 -0600	[thread overview]
Message-ID: <CAOUHufah=yc7pucvWg83pymHX4+govxaYiLYDt7dHnGVTfJMQg@mail.gmail.com> (raw)
In-Reply-To: <bab0d3f3-9f03-142c-7f53-86cb8cb178e4@linux.ibm.com>

On Tue, Apr 26, 2022 at 11:31 PM Aneesh Kumar K V
<aneesh.kumar@linux.ibm.com> wrote:
>
> On 4/27/22 10:08 AM, Yu Zhao wrote:
> > On Tue, Apr 26, 2022 at 10:33 PM Aneesh Kumar K.V
> > <aneesh.kumar@linux.ibm.com> wrote:
> >>
> >> Yu Zhao <yuzhao@google.com> writes:
> >>
> >> ....
> >>
> >>   diff --git a/mm/rmap.c b/mm/rmap.c
> >>> index fedb82371efe..7cb7ef29088a 100644
> >>> --- a/mm/rmap.c
> >>> +++ b/mm/rmap.c
> >>> @@ -73,6 +73,7 @@
> >>>   #include <linux/page_idle.h>
> >>>   #include <linux/memremap.h>
> >>>   #include <linux/userfaultfd_k.h>
> >>> +#include <linux/mm_inline.h>
> >>>
> >>>   #include <asm/tlbflush.h>
> >>>
> >>> @@ -821,6 +822,12 @@ static bool folio_referenced_one(struct folio *folio,
> >>>                }
> >>>
> >>>                if (pvmw.pte) {
> >>> +                     if (lru_gen_enabled() && pte_young(*pvmw.pte) &&
> >>> +                         !(vma->vm_flags & (VM_SEQ_READ | VM_RAND_READ))) {
> >>> +                             lru_gen_look_around(&pvmw);
> >>> +                             referenced++;
> >>> +                     }
> >>
> >> Is it required to update referenced here? we do that below after
> >> clearing the young bit. Or is the goal to identify whether we found any
> >> young pte around?
> >
> > referenced++ is needed because lru_gen_look_around() also clears the
> > young bit in pvmw.pte. And ptep_clear_flush_young_notify() will return
> > false unless mmu notifier returns true.
>
> should we then use a mmu notifier variant of clear_young in
> lru_gen_look_around() ?

Generally multiple sets of page tables don't share the same memory
locality. E.g., for kvm, its secondary page tables map to guest
physical address space, whose locality is very different from typical
virtual address space. In this case lru_gen_look_around() is generally
not helpful. For this reason, we don't use the mmu notifier variants
of pte_young() or clear_young().


  reply	other threads:[~2022-04-27  6:01 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-07  3:15 [PATCH v10 00/14] Multi-Gen LRU Framework Yu Zhao
2022-04-07  3:15 ` [PATCH v10 01/14] mm: x86, arm64: add arch_has_hw_pte_young() Yu Zhao
2022-04-07  3:15 ` [PATCH v10 02/14] mm: x86: add CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG Yu Zhao
2022-04-07  3:15 ` [PATCH v10 03/14] mm/vmscan.c: refactor shrink_node() Yu Zhao
2022-04-16  6:48   ` Miaohe Lin
2022-04-07  3:15 ` [PATCH v10 04/14] Revert "include/linux/mm_inline.h: fold __update_lru_size() into its sole caller" Yu Zhao
2022-04-16  6:50   ` Miaohe Lin
2022-04-07  3:15 ` [PATCH v10 05/14] mm: multi-gen LRU: groundwork Yu Zhao
2022-04-12  2:16   ` Andrew Morton
2022-04-12  7:06     ` Peter Zijlstra
2022-04-20  0:39       ` Yu Zhao
2022-04-20 20:07         ` Linus Torvalds
2022-04-26 22:39     ` Yu Zhao
2022-04-26 23:42       ` Andrew Morton
2022-04-27  1:18         ` Yu Zhao
2022-04-27  1:34           ` Andrew Morton
2022-04-07  3:15 ` [PATCH v10 06/14] mm: multi-gen LRU: minimal implementation Yu Zhao
2022-04-14  6:03   ` Barry Song
2022-04-14 20:36     ` Yu Zhao
2022-04-14 21:39       ` Andrew Morton
2022-04-14 22:14         ` Yu Zhao
2022-04-15 10:15         ` Barry Song
2022-04-15 20:17           ` Yu Zhao
2022-04-15 10:26       ` Barry Song
2022-04-15 20:18         ` Yu Zhao
2022-04-14 11:47   ` Chen Wandun
2022-04-14 20:53     ` Yu Zhao
2022-04-15  2:23       ` Chen Wandun
2022-04-15  5:25         ` Yu Zhao
2022-04-15  6:31           ` Chen Wandun
2022-04-15  6:44             ` Yu Zhao
2022-04-15  9:27               ` Chen Wandun
2022-04-18  9:58   ` Barry Song
2022-04-19  0:53     ` Yu Zhao
2022-04-19  4:25       ` Barry Song
2022-04-19  4:36         ` Barry Song
2022-04-19 22:25           ` Yu Zhao
2022-04-19 22:20         ` Yu Zhao
2022-04-07  3:15 ` [PATCH v10 07/14] mm: multi-gen LRU: exploit locality in rmap Yu Zhao
2022-04-27  4:32   ` Aneesh Kumar K.V
2022-04-27  4:38     ` Yu Zhao
2022-04-27  5:31       ` Aneesh Kumar K V
2022-04-27  6:00         ` Yu Zhao [this message]
2022-04-07  3:15 ` [PATCH v10 08/14] mm: multi-gen LRU: support page table walks Yu Zhao
2022-04-12  2:16   ` Andrew Morton
2022-04-12  7:10     ` Peter Zijlstra
2022-04-15  5:30       ` Yu Zhao
2022-04-15  1:14     ` Yu Zhao
2022-04-15  1:56       ` Andrew Morton
2022-04-15  6:25         ` Yu Zhao
2022-04-15 19:15           ` Andrew Morton
2022-04-15 20:11             ` Yu Zhao
2022-04-15 21:32               ` Andrew Morton
2022-04-15 21:36                 ` Linus Torvalds
2022-04-15 22:57                   ` Yu Zhao
2022-04-15 23:03                     ` Linus Torvalds
2022-04-15 23:24                       ` [page-reclaim] " Jesse Barnes
2022-04-15 23:31                         ` Matthew Wilcox
2022-04-15 23:37                           ` Jesse Barnes
2022-04-15 23:49                       ` Yu Zhao
2022-04-16 16:32                 ` Justin Forbes
2022-04-19 22:32                   ` Yu Zhao
2022-04-29 14:10   ` zhong jiang
2022-04-30  8:34     ` Yu Zhao
2022-04-07  3:15 ` [PATCH v10 09/14] mm: multi-gen LRU: optimize multiple memcgs Yu Zhao
2022-04-07  3:15 ` [PATCH v10 10/14] mm: multi-gen LRU: kill switch Yu Zhao
2022-04-12  2:16   ` Andrew Morton
2022-04-26 20:57     ` Yu Zhao
2022-04-26 22:22       ` Andrew Morton
2022-04-27  1:11         ` Yu Zhao
2022-04-07  3:15 ` [PATCH v10 11/14] mm: multi-gen LRU: thrashing prevention Yu Zhao
2022-04-07  3:15 ` [PATCH v10 12/14] mm: multi-gen LRU: debugfs interface Yu Zhao
2022-04-12  2:16   ` Andrew Morton
2022-04-16  0:03     ` Yu Zhao
2022-04-16  4:20       ` Andrew Morton
2022-04-26  6:59         ` Yu Zhao
2022-04-26 21:30           ` Andrew Morton
2022-04-26 22:15             ` Yu Zhao
2022-04-07  3:15 ` [PATCH v10 13/14] mm: multi-gen LRU: admin guide Yu Zhao
2022-04-07 12:41   ` Bagas Sanjaya
2022-04-07 12:51     ` Jonathan Corbet
2022-04-12  2:16   ` Andrew Morton
2022-04-16  2:22     ` Yu Zhao
2022-04-07  3:15 ` [PATCH v10 14/14] mm: multi-gen LRU: design doc Yu Zhao
2022-04-07 11:39   ` Huang Shijie
2022-04-07 12:41   ` Bagas Sanjaya
2022-04-07 12:52     ` Jonathan Corbet
2022-04-08  4:48       ` Bagas Sanjaya
2022-04-12  2:16   ` Andrew Morton
2022-04-26  7:42     ` Yu Zhao
2022-04-07  3:24 ` [PATCH v10 00/14] Multi-Gen LRU Framework Yu Zhao
2022-04-07  8:31   ` Stephen Rothwell
2022-04-07  9:08     ` Yu Zhao
2022-04-07  9:41     ` Yu Zhao
2022-04-07 12:13       ` Stephen Rothwell
2022-04-08  2:08         ` Yu Zhao
2022-04-12  2:15 ` Andrew Morton
2022-04-14  5:06 ` Andrew Morton
2022-04-20  0:50   ` Yu Zhao

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='CAOUHufah=yc7pucvWg83pymHX4+govxaYiLYDt7dHnGVTfJMQg@mail.gmail.com' \
    --to=yuzhao@google.com \
    --cc=21cnbao@gmail.com \
    --cc=Hi-Angel@yandex.ru \
    --cc=Michael@michaellarabel.com \
    --cc=ak@linux.intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=aneesh.kumar@linux.ibm.com \
    --cc=axboe@kernel.dk \
    --cc=bgeffon@google.com \
    --cc=catalin.marinas@arm.com \
    --cc=corbet@lwn.net \
    --cc=d@chaos-reins.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=djbyrne@mtu.edu \
    --cc=hannes@cmpxchg.org \
    --cc=hdanton@sina.com \
    --cc=heftig@archlinux.org \
    --cc=holger@applied-asynchrony.com \
    --cc=jsbarnes@google.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@suse.de \
    --cc=mhocko@kernel.org \
    --cc=oleksandr@natalenko.name \
    --cc=page-reclaim@google.com \
    --cc=riel@surriel.com \
    --cc=rppt@kernel.org \
    --cc=sfr@rothwell.id.au \
    --cc=sofia.trinh@edi.works \
    --cc=steven@liquorix.net \
    --cc=suleiman@google.com \
    --cc=szhai2@cs.rochester.edu \
    --cc=torvalds@linux-foundation.org \
    --cc=vaibhav@linux.ibm.com \
    --cc=vbabka@suse.cz \
    --cc=will@kernel.org \
    --cc=willy@infradead.org \
    --cc=x86@kernel.org \
    --cc=ying.huang@intel.com \
    /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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).