All of lore.kernel.org
 help / color / mirror / Atom feed
From: Muchun Song <songmuchun@bytedance.com>
To: willy@infradead.org, akpm@linux-foundation.org,
	hannes@cmpxchg.org, mhocko@kernel.org, vdavydov.dev@gmail.com,
	shakeelb@google.com, guro@fb.com, shy828301@gmail.com,
	alexs@kernel.org, richard.weiyang@gmail.com, david@fromorbit.com,
	trond.myklebust@hammerspace.com, anna.schumaker@netapp.com,
	jaegeuk@kernel.org, chao@kernel.org, kari.argillander@gmail.com
Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, linux-nfs@vger.kernel.org,
	zhengqi.arch@bytedance.com, duanxiongchun@bytedance.com,
	fam.zheng@bytedance.com, smuchun@gmail.com,
	Muchun Song <songmuchun@bytedance.com>
Subject: [PATCH v4 09/17] mm: workingset: use xas_set_lru() to pass shadow_nodes
Date: Tue, 14 Dec 2021 00:53:34 +0800	[thread overview]
Message-ID: <20211213165342.74704-10-songmuchun@bytedance.com> (raw)
In-Reply-To: <20211213165342.74704-1-songmuchun@bytedance.com>

The workingset will add the xa_node to shadow_nodes, so we should use
xas_set_lru() to pass the list_lru which we want to insert xa_node
into to set up the xa_node reclaim context correctly.

Signed-off-by: Muchun Song <songmuchun@bytedance.com>
---
 include/linux/swap.h | 5 ++++-
 mm/workingset.c      | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/linux/swap.h b/include/linux/swap.h
index d1ea44b31f19..1ae9d3473c02 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -334,9 +334,12 @@ void workingset_activation(struct folio *folio);
 
 /* Only track the nodes of mappings with shadow entries */
 void workingset_update_node(struct xa_node *node);
+extern struct list_lru shadow_nodes;
 #define mapping_set_update(xas, mapping) do {				\
-	if (!dax_mapping(mapping) && !shmem_mapping(mapping))		\
+	if (!dax_mapping(mapping) && !shmem_mapping(mapping)) {		\
 		xas_set_update(xas, workingset_update_node);		\
+		xas_set_lru(xas, &shadow_nodes);			\
+	}								\
 } while (0)
 
 /* linux/mm/page_alloc.c */
diff --git a/mm/workingset.c b/mm/workingset.c
index 8c03afe1d67c..979c7130c266 100644
--- a/mm/workingset.c
+++ b/mm/workingset.c
@@ -429,7 +429,7 @@ void workingset_activation(struct folio *folio)
  * point where they would still be useful.
  */
 
-static struct list_lru shadow_nodes;
+struct list_lru shadow_nodes;
 
 void workingset_update_node(struct xa_node *node)
 {
-- 
2.11.0


  parent reply	other threads:[~2021-12-13 16:55 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-13 16:53 [PATCH v4 00/17] Optimize list lru memory consumption Muchun Song
2021-12-13 16:53 ` [PATCH v4 01/17] mm: list_lru: optimize memory consumption of arrays of per cgroup lists Muchun Song
2021-12-14 13:38   ` Johannes Weiner
2021-12-15 12:09     ` Muchun Song
2021-12-13 16:53 ` [PATCH v4 02/17] mm: introduce kmem_cache_alloc_lru Muchun Song
2021-12-14 13:50   ` Johannes Weiner
2021-12-15 12:34     ` Muchun Song
2021-12-13 16:53 ` [PATCH v4 03/17] fs: introduce alloc_inode_sb() to allocate filesystems specific inode Muchun Song
2021-12-13 16:53 ` [PATCH v4 04/17] fs: allocate inode by using alloc_inode_sb() Muchun Song
2021-12-13 16:53 ` [PATCH v4 05/17] f2fs: " Muchun Song
2021-12-13 16:53 ` [PATCH v4 06/17] nfs42: use a specific kmem_cache to allocate nfs4_xattr_entry Muchun Song
2021-12-13 16:53 ` [PATCH v4 07/17] mm: dcache: use kmem_cache_alloc_lru() to allocate dentry Muchun Song
2021-12-13 16:53 ` [PATCH v4 08/17] xarray: use kmem_cache_alloc_lru to allocate xa_node Muchun Song
2021-12-13 16:53 ` Muchun Song [this message]
2021-12-14 14:09   ` [PATCH v4 09/17] mm: workingset: use xas_set_lru() to pass shadow_nodes Johannes Weiner
2021-12-15 12:36     ` Muchun Song
2021-12-13 16:53 ` [PATCH v4 10/17] mm: memcontrol: move memcg_online_kmem() to mem_cgroup_css_online() Muchun Song
2021-12-13 16:53 ` [PATCH v4 11/17] mm: list_lru: allocate list_lru_one only when needed Muchun Song
2021-12-16 13:01   ` [mm] 86cda95957: BUG:sleeping_function_called_from_invalid_context_at_include/linux/sched/mm.h kernel test robot
2021-12-16 13:01     ` kernel test robot
2021-12-16 14:56     ` [External] " Muchun Song
2021-12-16 14:56       ` Muchun Song
2021-12-13 16:53 ` [PATCH v4 12/17] mm: list_lru: rename memcg_drain_all_list_lrus to memcg_reparent_list_lrus Muchun Song
2021-12-13 16:53 ` [PATCH v4 13/17] mm: list_lru: replace linear array with xarray Muchun Song
2021-12-13 16:53 ` [PATCH v4 14/17] mm: memcontrol: reuse memory cgroup ID for kmem ID Muchun Song
2021-12-13 16:53 ` [PATCH v4 15/17] mm: memcontrol: fix cannot alloc the maximum memcg ID Muchun Song
2021-12-13 16:53 ` [PATCH v4 16/17] mm: list_lru: rename list_lru_per_memcg to list_lru_memcg Muchun Song
2021-12-13 16:53 ` [PATCH v4 17/17] mm: memcontrol: rename memcg_cache_id to memcg_kmem_id Muchun Song
2021-12-17 10:05 ` [PATCH v4 00/17] Optimize list lru memory consumption xiaoqiang zhao
2021-12-17 11:06   ` Muchun Song
2021-12-17 13:12   ` Matthew Wilcox
2021-12-19  9:58     ` xiaoqiang 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=20211213165342.74704-10-songmuchun@bytedance.com \
    --to=songmuchun@bytedance.com \
    --cc=akpm@linux-foundation.org \
    --cc=alexs@kernel.org \
    --cc=anna.schumaker@netapp.com \
    --cc=chao@kernel.org \
    --cc=david@fromorbit.com \
    --cc=duanxiongchun@bytedance.com \
    --cc=fam.zheng@bytedance.com \
    --cc=guro@fb.com \
    --cc=hannes@cmpxchg.org \
    --cc=jaegeuk@kernel.org \
    --cc=kari.argillander@gmail.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=mhocko@kernel.org \
    --cc=richard.weiyang@gmail.com \
    --cc=shakeelb@google.com \
    --cc=shy828301@gmail.com \
    --cc=smuchun@gmail.com \
    --cc=trond.myklebust@hammerspace.com \
    --cc=vdavydov.dev@gmail.com \
    --cc=willy@infradead.org \
    --cc=zhengqi.arch@bytedance.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 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.