From: Kairui Song <ryncsn@gmail.com>
To: linux-mm@kvack.org
Cc: Andrew Morton <akpm@linux-foundation.org>,
Chris Li <chrisl@kernel.org>, Hugh Dickins <hughd@google.com>,
"Huang, Ying" <ying.huang@linux.alibaba.com>,
Yosry Ahmed <yosryahmed@google.com>,
Roman Gushchin <roman.gushchin@linux.dev>,
Shakeel Butt <shakeel.butt@linux.dev>,
Johannes Weiner <hannes@cmpxchg.org>,
Barry Song <baohua@kernel.org>, Michal Hocko <mhocko@kernel.org>,
linux-kernel@vger.kernel.org, Kairui Song <kasong@tencent.com>
Subject: [PATCH v3 0/4] mm/swap_cgroup: remove global swap cgroup lock
Date: Wed, 18 Dec 2024 19:46:29 +0800 [thread overview]
Message-ID: <20241218114633.85196-1-ryncsn@gmail.com> (raw)
From: Kairui Song <kasong@tencent.com>
This series removes the global swap cgroup lock. The critical section of
this lock is very short but it's still a bottle neck for mass parallel
swap workloads.
Up to 10% performance gain for tmpfs build kernel test on a 48c96t
system under memory pressure, and no regression for other cases:
V2: https://lore.kernel.org/linux-mm/20241210092805.87281-1-ryncsn@gmail.com/
Updates since V2:
- Micro optimization for bit operations in patch 3 [Chris Li]
- Improve BUILD_BUG_ON to cover potential arch corner cases [Chris Li]
- Introduce patch 4, make the swap_cgroup tracking code more
robust [Chris Li]
V1: https://lore.kernel.org/linux-mm/20241202184154.19321-1-ryncsn@gmail.com/
Updates since V1:
- Collect Review and Ack.
- Use bit shift instead of a mixed usage of short and atomic for
emulating 2 byte xchg [Chris Li]
- Merge patch 3 into patch 4 for simplicity [Roman Gushchin].
- Drop call of mem_cgroup_disabled instead in patch 1, also fix bot
build error [Yosry Ahmed]
- Wrap the access of the atomic_t map with helpers properly, so the
emulation can be dropped to use native 2 byte xchg once available.
Kairui Song (4):
mm, memcontrol: avoid duplicated memcg enable check
mm/swap_cgroup: remove swap_cgroup_cmpxchg
mm/swap_cgroup: remove global swap cgroup lock
mm/swap_cgroup: decouple swap cgroup recording and clearing
include/linux/swap_cgroup.h | 14 ++--
mm/memcontrol.c | 15 ++--
mm/swap_cgroup.c | 148 +++++++++++++++++++-----------------
3 files changed, 93 insertions(+), 84 deletions(-)
--
2.47.1
next reply other threads:[~2024-12-18 11:46 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-18 11:46 Kairui Song [this message]
2024-12-18 11:46 ` [PATCH v3 1/4] mm, memcontrol: avoid duplicated memcg enable check Kairui Song
2024-12-22 13:33 ` Huang, Ying
2024-12-22 14:51 ` Kairui Song
2024-12-27 2:03 ` Huang, Ying
2024-12-18 11:46 ` [PATCH v3 2/4] mm/swap_cgroup: remove swap_cgroup_cmpxchg Kairui Song
2024-12-18 11:46 ` [PATCH v3 3/4] mm/swap_cgroup: remove global swap cgroup lock Kairui Song
2024-12-18 11:46 ` [PATCH v3 4/4] mm/swap_cgroup: decouple swap cgroup recording and clearing Kairui Song
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=20241218114633.85196-1-ryncsn@gmail.com \
--to=ryncsn@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=baohua@kernel.org \
--cc=chrisl@kernel.org \
--cc=hannes@cmpxchg.org \
--cc=hughd@google.com \
--cc=kasong@tencent.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@kernel.org \
--cc=roman.gushchin@linux.dev \
--cc=shakeel.butt@linux.dev \
--cc=ying.huang@linux.alibaba.com \
--cc=yosryahmed@google.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.