Message ID | 20250415024532.26632-19-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 708B9C369B4 for <linux-mm@archiver.kernel.org>; Tue, 15 Apr 2025 02:47:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E7FC42801C3; Mon, 14 Apr 2025 22:47:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E075E2800C2; Mon, 14 Apr 2025 22:47:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CA5D72801C3; Mon, 14 Apr 2025 22:47:36 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id AA8942800C2 for <linux-mm@kvack.org>; Mon, 14 Apr 2025 22:47:36 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 64DF958B63 for <linux-mm@kvack.org>; Tue, 15 Apr 2025 02:47:37 +0000 (UTC) X-FDA: 83334742554.04.4FABA28 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) by imf25.hostedemail.com (Postfix) with ESMTP id 7A763A0002 for <linux-mm@kvack.org>; Tue, 15 Apr 2025 02:47:35 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=QmFvfgtB; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf25.hostedemail.com: domain of songmuchun@bytedance.com designates 209.85.214.170 as permitted sender) smtp.mailfrom=songmuchun@bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744685255; 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=IXD1JHisUM2V0YMP9gwUIK79l/C4R22oOynHqMcLpgg=; b=rXsokhjU6Z8QjKDIAuN4qtDnv4tEexZYHilQRyM5KDzU6zyQ2lvUCsK+ITNy0mQLA/+OA7 CsnqytAHjHE9YpvNcnaCzZ9xGo2BBz+qTke2ayqwSPVwnhNg9CqFwVq/H/rKejrjcWrBRv 7z/KMzWBhnVSEQa7BcJ3yDaWTu4qwJ0= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=QmFvfgtB; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf25.hostedemail.com: domain of songmuchun@bytedance.com designates 209.85.214.170 as permitted sender) smtp.mailfrom=songmuchun@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744685255; a=rsa-sha256; cv=none; b=DaDTDkrm7Y9o1pirrtjbQLFk6ne/LuyXtu6AbtIqwfYcPpGD5iuxmu8Gct+fe00dUMcxTe /SYvvDnfkvhvtJCxQtfOePK/pDH/GRvVLTU0oy6HRDMKSrc+RQhQw14PbFVGsvPm2LlV0S ro2TQ/ZDWpQxTgOau6hAQ34YDY6To4g= Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-223f4c06e9fso46672455ad.1 for <linux-mm@kvack.org>; Mon, 14 Apr 2025 19:47:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1744685254; x=1745290054; 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=IXD1JHisUM2V0YMP9gwUIK79l/C4R22oOynHqMcLpgg=; b=QmFvfgtB96Sov8GmMi120VWaMAVz2jLwPC4afDRbN+XkDjLbEksuzOx/eqAcwIK7PF 0mzW5xaM4UkUtycr+cNFcTGhVZw/ocgjceuMivPfJg7al4zcPM/6nbqE39LQj/kAU3Ah GKVPAtdAGSCrvN3uNI7VX3MpsWSnOFbbMvKgqGmx6SBCvrySTFgllRRLwtCwlPYi6NKY RR+nByT62ULw9hz0sBe1f1QpxWFitHBl72mvFf7y/9gYTRMNz/kUlWbY4wP/YRLNCbpy VSC1qSi+lNGUaADeIAH/27VVuMaqb92IZrkMHFZhYVo8mXXCP1EQQVggFMShOiOhEkoH li4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744685254; x=1745290054; 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=IXD1JHisUM2V0YMP9gwUIK79l/C4R22oOynHqMcLpgg=; b=q+IheuL7tn7NV+aHkYQXM8WPmS807s3qD5OOF/jVk0zIC1zZEm+24WvnlleGAwVN/+ 38uKo3yEjXjS+DWImPgsqStp3pU9gIbBHDqJsdt4OfkvAuG5KT1Ujtp0658eFUb7u5tk dySd8aZ49nB41ef83GOeHSj6Ju1S9bRaEjqVFmcqdVS/qP8pHRNeP0pdMme1Xw0JgXly /X0Rrq81y/6xZMWU6LCAgZIO2XeSI/Y1c6pkgZI63BiOLOjax1+KKOEWP4h7eZbIOp7M nIbrHhHFk/W3z/jie3vUipMMZ4aOY5TpKOCIqujMtFsM1aQI3FNbOxSQX8dbfTWMd3+U lk5A== X-Forwarded-Encrypted: i=1; AJvYcCVMd1QeGC/hxPOkRPTVFfvk/NOZAFqLqhtZSD292szNk5EQbTO90IGsdW15eDQL/3RxkOg/4QiMyA==@kvack.org X-Gm-Message-State: AOJu0Yz7Z8nQ1Z2fXtjGwKZF0W0kwkTgkhJfh3DR+86wlP2+/XCfLnrA 1fuYqaYUOHyy8Mt+lfMCjGNRVqI8GCN3piNLlcuiV8KJOUf+NUiSs943blFrNUQ= X-Gm-Gg: ASbGnctbu2fp6Inj29r3ROqgKjEbufhpxjFRTKRC4ddL3dyTPIySMVnOXzz9ORn40OX Dp6F7zRGctF1o6v2SOUgMsZ7U/lNPIUqJX9mw6ImwTlI1P7P0Df03Gb6Nf/clL6RTmkJ0dJV7zD N/fMRyWcWTp4sIIzhtYBACdu/lAADwno0udIrQa97EJAfMI2d1mcl2deJvxXWTLQiXHoeGyU96j ePfdaGLKKZE3ELq2OXotpzoXAKBRkYYo3dh/GWfT0hrGPwJQVmAayccj7Ljvdy0Gx7NR8ynvSsq nUbA46pfJSRvz54XPREuRgTNVCFU0Xpe/8GiEJu/mRzd6LC3dSAFLjI34snZCgeB4D5XyVyY X-Google-Smtp-Source: AGHT+IGov3Ukjqy6KHI2Ta9mNCWkvrqJ5tO5c4YlNBGkmYhVlyky9mFum65/WmO/B3bYIoz2x2Rf2g== X-Received: by 2002:a17:902:c942:b0:215:b1e3:c051 with SMTP id d9443c01a7336-22c24984d66mr19690505ad.11.1744685254245; Mon, 14 Apr 2025 19:47:34 -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.29 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 14 Apr 2025 19:47:33 -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 18/28] mm: memcontrol: prevent memory cgroup release in mem_cgroup_swap_full() Date: Tue, 15 Apr 2025 10:45:22 +0800 Message-Id: <20250415024532.26632-19-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-Server: rspam01 X-Stat-Signature: 4mrkc7z4awrkhagnjqk6mfhj6mwxx13w X-Rspam-User: X-Rspamd-Queue-Id: 7A763A0002 X-HE-Tag: 1744685255-339708 X-HE-Meta: U2FsdGVkX1/DQhtq0lHk8wJfTqIioEgikB09aulwLu3D36wIWDpLgnszhTUSq/qOBdBfhsnRy/adJ3ZgJuJ07EC7zffKWP5j1wkeqR+JGtVmU2M+1K2WC0smFWJUDnAXRGvlCCG2YYhjsH9UTWJUhU+W07Mhiptc4EL9mTFEWT9TM4qqJCBrfhj/rrgDKfjDonCyVfgiAtn3myZmf2KAGZVaYHmi97Gc4ASEkMz4vMkg3wqp4woZnsUl8Z/lNgp/940InoNxTBjPZ41H53GXOFpQIfxevqwWNigRiBMe1HmXo9snI4WxVx0ntfW2O7Kuoen5WYYoymAWWLeCPhNH8X+R1ZRFcBrbTvw57C3eP8ZwC+O3l/6kEGL3ghf5zpKff/4iYIaj0EsMweC9XGHqU5PeyHPMtPkpcg+ttFBIBCoLmapQ3RxkiZITdBPW3Sst/RQ+ndY1Sh2N0wDUOPLnqwY8IMoAvVRFWa14qZ60g33y5iVLc4KTS+b+g5/+tYjX/hkuTtRIbC7EuC0VmXiY2hGPm1hj0ibtJxDwoEa6BcwmI2cYR+HlHYZtGn6RY5ebK9zXuB7ygJc8hDS0Z2nornJWYOLQbF3K3tj+5TNsnFtLXhZI53YE4j8OWuaGZH/IW80YxF74kyiUU2bIf0EmLZ0xV9aju+nKSbYbXSKzLq1sRGw1AmYnXIIka6xgFmB7WJxW1JrA2Vb6AleNRCnFHlk/QCILJaPgHIzfH2xlMtnodagmn8ep0sViWV7Iax64ygzyXDIJjhVGQ1w1RAV/GklKTQGtQ7NmKqD3w/1Tl0aHPewF1w8wqmH/mRDPPuKkjUNll4//4CthlpuMl8sqNmXo+fmaLd7sUTtuRArpCVG/eDTTaQGgUDt/Tka1HfI1Q2dIYfCDg3yLPsQpPPpxcRNQI9ok8mhzGXbZAQwtGvQGHHWHDVYUcRJFuQ5y31Fp4gRJxj8ebb0T67aNMUe bF8Od8l+ w77Ff/oXo3pS+ZCW9ui8qJt1w73id1NoordhmQJKgrDcx1YyweN9F7CXDr27FFUsqpfakHFFRDfBtK/KhlyAi2dFtuV/H5cNFAWOLh1ACndVuV7ljsvQ4h9uXr/OC4+tBnW3XaxMroPN8RratY50RdSltuIRA/LRofJlLVoUNH2wqXOYN7NrZn9HUB4Q9ma+93Loaerxd7yhqgVIfSqw3olrVCVP1EX2XlnzhlgfU329wON0Ogy7qsp6sgDoex+HqCSyksVytm3fCJCVgAccYJ+ElA0qkGLP3sGZbq9LB9yt6f3qoDGZw0pQrRtRuBy47boHkM1hd8EaQ1wJd6RX3nsas0fbyCmbygHBEATTmhP+zbcQ= 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/memcontrol.c b/mm/memcontrol.c index 09ecb5cb78f2..694f19017699 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -5097,17 +5097,21 @@ bool mem_cgroup_swap_full(struct folio *folio) if (do_memsw_account()) return false; - memcg = folio_memcg(folio); - if (!memcg) + if (!folio_memcg_charged(folio)) return false; + rcu_read_lock(); + memcg = folio_memcg(folio); for (; !mem_cgroup_is_root(memcg); memcg = parent_mem_cgroup(memcg)) { unsigned long usage = page_counter_read(&memcg->swap); if (usage * 2 >= READ_ONCE(memcg->swap.high) || - usage * 2 >= READ_ONCE(memcg->swap.max)) + usage * 2 >= READ_ONCE(memcg->swap.max)) { + rcu_read_unlock(); return true; + } } + rcu_read_unlock(); return false; }
In the near future, a folio will no longer pin its corresponding memory cgroup. To ensure safety, it will only be appropriate to hold the rcu read lock or acquire a reference to the memory cgroup returned by folio_memcg(), thereby preventing it from being released. In the current patch, the rcu read lock is employed to safeguard against the release of the memory cgroup in mem_cgroup_swap_full(). This serves as a preparatory measure for the reparenting of the LRU pages. Signed-off-by: Muchun Song <songmuchun@bytedance.com> --- mm/memcontrol.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)