Message ID | 20250415024532.26632-23-songmuchun@bytedance.com (mailing list archive) |
---|---|
State | New |
Headers | show
Return-Path: <owner-linux-mm@kvack.org> X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 15FB8C369B2 for <linux-mm@archiver.kernel.org>; Tue, 15 Apr 2025 02:47:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8BFC3280021; Mon, 14 Apr 2025 22:47:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 86C9B280020; Mon, 14 Apr 2025 22:47:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6C162280021; Mon, 14 Apr 2025 22:47:57 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 490C8280020 for <linux-mm@kvack.org>; Mon, 14 Apr 2025 22:47:57 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 12617BAFB9 for <linux-mm@kvack.org>; Tue, 15 Apr 2025 02:47:58 +0000 (UTC) X-FDA: 83334743436.19.CFF4D14 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) by imf15.hostedemail.com (Postfix) with ESMTP id 3556AA0006 for <linux-mm@kvack.org>; Tue, 15 Apr 2025 02:47:56 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b="A/cxQguc"; spf=pass (imf15.hostedemail.com: domain of songmuchun@bytedance.com designates 209.85.214.180 as permitted sender) smtp.mailfrom=songmuchun@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744685276; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=lBa3KcBA5wxUNKsQ+K1hpla3o8QIUcc8xJR0inNtMu0=; b=U39UoQPHF5oRX8APWrTZBGpOISRRdSs0hEP8YJmIFTrkV3vv6vgamV/XmjZ4uQhM7uZp/c j0BZbPoiXTQs4EveO5W7BNeda5ZKn9pwmHDM1Abw8Ttaq3YQwFH/AoB/mTp77/l6VE6lqq 4d+ZRKoS1MSgidmF2fvsYBNLC2T4eZ4= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b="A/cxQguc"; spf=pass (imf15.hostedemail.com: domain of songmuchun@bytedance.com designates 209.85.214.180 as permitted sender) smtp.mailfrom=songmuchun@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744685276; a=rsa-sha256; cv=none; b=uwuykOcE2B4p7fNn1PveBJU87y+ylhbnimz7plVutZVKkCaFWeLG96HyNvsBEkWFjQQp+M 9ROu45s2yHgcAMjc0drD58IS2USlrU57bQV8csMWdKe9ERYwksNpMVWKYgy2xfVEKQVtjA 9affLV6rt5qv06jO5K5q5YAj/0PSaQs= Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-22548a28d0cso72999365ad.3 for <linux-mm@kvack.org>; Mon, 14 Apr 2025 19:47:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1744685275; x=1745290075; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=lBa3KcBA5wxUNKsQ+K1hpla3o8QIUcc8xJR0inNtMu0=; b=A/cxQgucbb1fffVEBH+TO5kmI/qfe5bM/jRQnNEILcPUHVWUMq7KhVadQzPF6R42aG Jvmbag0QwmVEYJEN3N3yHvfItWd9EYyrgjjW/jXjRfLZgs3YXbxuWnDyF8dM4jjY88Tt HDOb2+f1rPahOdXnoyg79QG2eYFwTBEQI9FyatM6n3+loiI8eiesgJlHtPa85aZSgTQ4 zH4mFbDqPGp3bkdm+EMpj8U7Qjc3fEDxEVBw9PpRPnoCLcDf7QXKV9PQyIbj9WnOqCAC U4a1u1taoJfiL9bby7kI2xlMV+tEzE8s4v5GzaMaX9YVaU/xGBZvTVGaCdDjqgjClp7g TjXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744685275; x=1745290075; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lBa3KcBA5wxUNKsQ+K1hpla3o8QIUcc8xJR0inNtMu0=; b=MAtbTKQnGuF21vCieEqJRC6VDx7wMkbLTO9VIeD8kNIe6lSp5Kp/p/nciClC3CHZRz nKf7cFxSpAO3AcxwI9E8mLDOx6SQar8/oflZ3EkS6sKK80rRZFc9VPhlBYGZ2VNHFkKA ISSAeCSxht9+HO0+y2PWF+SdFmAPSYSdB1Pg0iftmNzGdPmqnceUZPB+WvH2mqT/+CYA 9hFmdtkoS3UD4SsQTT6z4fFC0mLXd6fiusJNRafSb3a1ogN3Y6R97YG6LvrQcdA0R5Ww WOa0W14P+UqFipM8aOBvdpsBAOeLVtytNeUEPQPo7N0pLN883uVUxovgH5n7BayyDiR3 C1gA== X-Forwarded-Encrypted: i=1; AJvYcCXkgMDHY5CmCwUyFoSPxZvtgqvbhQoEFXoL7W3sgEFuTJ3BkhF8QMyniJ4QkEj3CM6Zs/sTPlaCqg==@kvack.org X-Gm-Message-State: AOJu0Yy4C5exXec43idP+Lvu8X6I/e9dfs8JkAegvjtNq0pSKCd9B5YW A2sQrRKFBieiItNAnKmDhnp4eOPCsc0qYGD1w3Tqd+cPkBgqRhVq7HxWx4hDdSo= X-Gm-Gg: ASbGncstE3rAxLtFTGyffLyBT6/Che4aDmjGsTmb/phq6OHM6WTXyjKhTx3ZTLJOvLT Gs3QnJKItzl/VOQ1kIBuHjczoz0HSXzszWwmCluhFtE3nHu3Q2yDn5B2ze8gqV12j6YbRYFRJjH dnYnNckQWXtLGPO8sUMgtU7JwRgpnci6aSrbp0Wjwn4IvzKknS6UNy3hUTrYRoX8iG0RqN77ykn +M9OCqSonItdEp/LzAzcoV6s1y+tmR4y8QaftV1GhzZKX50aWBKn2ab3cEkVkIVXWRFLK2vSn3+ IX9pPSXnu6fBRDnNyEjaWYsa7i5J+z/kEQ6bEcgMEIEZFV98M/3PGvqO+YFBjbnnV/1Qh2jb X-Google-Smtp-Source: AGHT+IHI4hqLb4XlutpOFIzQEdrRaemLqaUdJqfYPhQI+o4uvusfdbjBRgP5q4orxhE3PLyGhMO1fw== X-Received: by 2002:a17:903:3202:b0:224:1c41:a4bc with SMTP id d9443c01a7336-22bea4ab6c4mr253471365ad.12.1744685275144; Mon, 14 Apr 2025 19:47:55 -0700 (PDT) Received: from PXLDJ45XCM.bytedance.net ([61.213.176.5]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22ac7ccac49sm106681185ad.217.2025.04.14.19.47.50 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 14 Apr 2025 19:47:54 -0700 (PDT) From: Muchun Song <songmuchun@bytedance.com> To: hannes@cmpxchg.org, mhocko@kernel.org, roman.gushchin@linux.dev, shakeel.butt@linux.dev, muchun.song@linux.dev, akpm@linux-foundation.org, david@fromorbit.com, zhengqi.arch@bytedance.com, yosry.ahmed@linux.dev, nphamcs@gmail.com, chengming.zhou@linux.dev Cc: linux-kernel@vger.kernel.org, cgroups@vger.kernel.org, linux-mm@kvack.org, hamzamahfooz@linux.microsoft.com, apais@linux.microsoft.com, Muchun Song <songmuchun@bytedance.com> Subject: [PATCH RFC 22/28] mm: swap: prevent lruvec release in swap module Date: Tue, 15 Apr 2025 10:45:26 +0800 Message-Id: <20250415024532.26632-23-songmuchun@bytedance.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250415024532.26632-1-songmuchun@bytedance.com> References: <20250415024532.26632-1-songmuchun@bytedance.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 3556AA0006 X-Stat-Signature: nk5jrra3n43ojw85i3jmd3kwn7geunuf X-Rspam-User: X-Rspamd-Server: rspam12 X-HE-Tag: 1744685275-644915 X-HE-Meta: U2FsdGVkX1+UaqV9NMaDEE8+p976Y+q3FO6WB6B3GH37WhsjR02rH1of7zef9dd5a8BgYNE7jldZ7Xxly+2Xq2wYW4qSFG+V3Sg832SUGGXc2y5t2P5EB9H9TVBfnpXXqUCj2mSu1U7Elpm7iHzO2Qb9X4UzZ8QVUdM/MExdFNCgS0+XZFUioyxJuzP1mUpdnBiqNsXNpPRMm6X2Y8jzlu5DJa2Z6fAclj5vhfbRZa65FQE4iFlDflGesZYuZURb4tXtCvl8/yqA0Q+rmWcu9waHKmL4NVfadDxma/1bHnPqq9ITli8JHw9TzUDD4zN8pStpTHL/7CLBFR0A1rB9AEKCA+6vvPXrU3x6EWkIh5M6Qk8cA9Dmi804WjclQJT/9oEPw9H58T2CP9WYm5gOPZwuRcLiQFuP3mjOml6qkrtVDsQdsrmWNHsPAzzbfoxOTOXf2stBRxJvIJuvT/iY/4PNQc45upLVI29G0K1ttrvn2W8rgO8gF7SKyZW6M2x/9ouGNJfQMrHIq6Dhglezu0DN88KnZMOMWZRP19n1P0cNC4DmgbxbbxYS/lpt5WfnzdlJDuU2666+B6yiPKzKNechCD0Vh631pcyqbecpp8n5ZhvpPeV2uSvLOBhsJevoFJ4ch8WXMhjXHrBxFA/wcTRF3iYv376XhjXSZpfyASZJm7lgkHQs3EztgofInEq3QexA2/VH4aOIlvo/K9WnhYzD+I9OrxJRGsCnw9FPJP03Drz3yqnISwXM+s2Ub+5RDuzK1utsQgcPggU4VvWllibjr6Ukp7gXiQGpJpnRfymbCjMDCtb3SXR7C2slbbp+C9JdfH3aU1J6OghfT+yGeN1JGvvSfgruC0lKqffJcxhKDU7Q77zUm3F/QrpybE0GEfgvKjpQwAILyAI4wegFcytqbfax2pWTfxld/K6RoHve6qnPWGze3TL7J2DHXRXOMmllwGHcTeCOASPEy5C HXXzRRNO jwGr/uBLuJ/WG86mD2xJSGumQ+RtsY9UFnyJwqNMxRkyteJL6IqZZ3dI+zlPQhLls2wS+I6QYi20jVVyNgSLXh51Q8hYOX3r+l9xR/VFExnHfwNpXM679WBSvepovuUuydFnoGoYovwcPcc//XI/Jc5A+uYiwYntkYSB7G1tkCQlsI7Xvtrhth5+qVnyMOPrvg8r+89Z/Gg6N5wpXNmwN0e+3YIRg7QNjE/6+nUMeINGPZ1JNFdKO0V9vxZbZiaObhz72/nlgct7fXOCgbmDTeAjoLAIM718bfOrv2AurOBOdEK5Pd+N8ODPgHg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: <linux-mm.kvack.org> List-Subscribe: <mailto:majordomo@kvack.org> List-Unsubscribe: <mailto:majordomo@kvack.org> |
Series |
Eliminate Dying Memory Cgroup
|
expand
|
diff --git a/mm/swap.c b/mm/swap.c index ee19e171857d..fbf887578dbe 100644 --- a/mm/swap.c +++ b/mm/swap.c @@ -291,8 +291,10 @@ void lru_note_cost(struct lruvec *lruvec, bool file, void lru_note_cost_refault(struct folio *folio) { + rcu_read_lock(); lru_note_cost(folio_lruvec(folio), folio_is_file_lru(folio), folio_nr_pages(folio), 0); + rcu_read_unlock(); } static void lru_activate(struct lruvec *lruvec, struct folio *folio) @@ -406,18 +408,20 @@ static void lru_gen_inc_refs(struct folio *folio) static bool lru_gen_clear_refs(struct folio *folio) { - struct lru_gen_folio *lrugen; int gen = folio_lru_gen(folio); int type = folio_is_file_lru(folio); + unsigned long seq; if (gen < 0) return true; set_mask_bits(&folio->flags, LRU_REFS_FLAGS | BIT(PG_workingset), 0); - lrugen = &folio_lruvec(folio)->lrugen; + rcu_read_lock(); + seq = READ_ONCE(folio_lruvec(folio)->lrugen.min_seq[type]); + rcu_read_unlock(); /* whether can do without shuffling under the LRU lock */ - return gen == lru_gen_from_seq(READ_ONCE(lrugen->min_seq[type])); + return gen == lru_gen_from_seq(seq); } #else /* !CONFIG_LRU_GEN */
In the near future, a folio will no longer pin its corresponding memory cgroup. So an lruvec returned by folio_lruvec() could be released without the rcu read lock or a reference to its memory cgroup. In the current patch, the rcu read lock is employed to safeguard against the release of the lruvec in lru_note_cost_refault() and lru_activate(). This serves as a preparatory measure for the reparenting of the LRU pages. Signed-off-by: Muchun Song <songmuchun@bytedance.com> --- mm/swap.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)