Message ID | 20250415024532.26632-18-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 0A341C369B4 for <linux-mm@archiver.kernel.org>; Tue, 15 Apr 2025 02:47:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7BD142801C1; Mon, 14 Apr 2025 22:47:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 769072800C2; Mon, 14 Apr 2025 22:47:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5E4FE2801C1; Mon, 14 Apr 2025 22:47:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 3C6602800C2 for <linux-mm@kvack.org>; Mon, 14 Apr 2025 22:47:31 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id ECE26B0F59 for <linux-mm@kvack.org>; Tue, 15 Apr 2025 02:47:31 +0000 (UTC) X-FDA: 83334742302.12.79B88BD Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) by imf29.hostedemail.com (Postfix) with ESMTP id 1D34512000E for <linux-mm@kvack.org>; Tue, 15 Apr 2025 02:47:29 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=gHJkNipC; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf29.hostedemail.com: domain of songmuchun@bytedance.com designates 209.85.214.172 as permitted sender) smtp.mailfrom=songmuchun@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744685250; a=rsa-sha256; cv=none; b=wgoqDCmSLAmNSqOulR8UoAw3brSeCWFeVhFxac5MnG46vcjHtMfd7dOgPs2OOljQxiSkG1 iVGkv8Iol6mlx8VkpAXJdg/U1dxo29B9kimaA0s9PBQrVF+wMsxVLMrP/+rwvIxacUMCjv ocQyMZjaFVywdqDVZs6iKYTWbMf67qo= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=gHJkNipC; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf29.hostedemail.com: domain of songmuchun@bytedance.com designates 209.85.214.172 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=1744685250; 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=P4yZw6tSBeNw48uMiPAV08H8+5zhu9HJtv5YMARqzOY=; b=KSdAZ+/wy1HdoMMYtaqWfazIs+6zX6K8I7ZhEMQ4ImnUQfLmolFX2esLQIRvKuK0XM6wc3 WWNmO9y1HqBZjc57aslDrTb786XNJN6/Ow7b1BElr8Ld7lvm1KkpHcjpY1+v3ffIQsGgav bkN59pZuGYHxuaqrDMJBBuOLELfrIPI= Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-22403cbb47fso53265335ad.0 for <linux-mm@kvack.org>; Mon, 14 Apr 2025 19:47:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1744685249; x=1745290049; 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=P4yZw6tSBeNw48uMiPAV08H8+5zhu9HJtv5YMARqzOY=; b=gHJkNipCy0VV44eIVWLZUkvb2xuF/XWx3mmzjuHvT2giowXFussJWhLxaUbbfBhj90 PiLrHzHPxkQ8kqn5YRXhpJkOKPxXx6rfVF0rQ24MHp2c0XfArG+sMTKOGDDTAOite6r+ VUWnjvgsDmNlouRVyUIHt/XDtFcpwY0lOWH/ywqoZXDlD1H6ulea9GjTaufuVOfCJp+7 +pZkk8Ee92xFMdXJ0xjMTqygu27fSeMPaUi4ob+VxBb3fbT8nhuCP55bLunt2xiB/nrt /rAjH07Us5nc96P5EPF0B3gCD5ZQaBJH8VeiKhvotOmFHV1KYypOECFXwBYO1MkQE1JV rUrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744685249; x=1745290049; 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=P4yZw6tSBeNw48uMiPAV08H8+5zhu9HJtv5YMARqzOY=; b=w2kc+wuKrIKLcxZxuHuKGrkMKn1nmOhwqVG1U0Jct4leg0FxZCTTQgeWQfdMWdm3zZ LYmWuPrkwRHQ1sVQLM+rAiVJnX0xZXJ8CVf8uNGTDaBfNuEzRAqiT4WWZwAXuuHLbqXY YkD1y32nFYvkUfOO9UmN5uElitvL7pfFC1JubIXxjoTjPfNuDZRJHobQKkeegyox9GLu HiWBS3WAYNx2epXPkMgyGMUHDVgyfNGUYvF2TgpbIPJD1H1dWK79Wluea23YfO0dhxD4 jKHERkAIt2chTJnAFGGhIyGDDAtVxPkM2l3kYE1CsC+iBGa5xIZjxCpFZ+YU5IRQu5Yo xR3A== X-Forwarded-Encrypted: i=1; AJvYcCUM3vvJ+PW//uFK20oVWGRzMArNV3S7yweQVJelEc6cJixR1yqdHVxehjfnr7VFjD6h7sHZ+qzv8w==@kvack.org X-Gm-Message-State: AOJu0YwIW3KKv3FlyNBBpBPU3O1N+r6s1Hene6JQpNiiqQIS5KBFdIAb wD4ltnNm1o1/mV3EcN9qazC2dSeWnRa8xrUMF/379SX14+zdxZxKYLlPvZ79hgo= X-Gm-Gg: ASbGncsa3JOxA+8fH5CCMBFrE1mR13xZkaB4/2GnkYrfyp/ysaDJYarYFF5oIvx8Bkp PRVi0g8pF371yNcOvqGf4wdfGJFtxQiVBRFNY8Razv1VUYyC7TtvyxojCkekBYnxnfWAtc17fiQ F5VPZU74nng2S6yTeDxOYAXVR+IYHPrh6Sg4BwOSNMD8YRW/6NEteVvieRnZI9Oq7BoeeiPkJk2 l0WwJj2IfyDv5yyyfqj4iDlH8G4XRkihD/pBZWcGXzfS7cuBZziLI4X4UiL5dPQdNCPP3csQB2s nPOJ6wWJMipd0TZepOlbNCj1P+5duMjABoh08RfIHdT2W85DpSccbWn+CinyZnJiiutAqJFm X-Google-Smtp-Source: AGHT+IHc1pLuWcfx52pBjvHAkcC6la0P8uERYY4ckvTOHEzauARR1urHfVeCryhgzFD7fMiSaMQDhw== X-Received: by 2002:a17:903:2f86:b0:223:47b4:aaf8 with SMTP id d9443c01a7336-22bea50e1a5mr207262015ad.52.1744685249046; Mon, 14 Apr 2025 19:47:29 -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.24 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 14 Apr 2025 19:47:28 -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 17/28] mm: mglru: prevent memory cgroup release in mglru Date: Tue, 15 Apr 2025 10:45:21 +0800 Message-Id: <20250415024532.26632-18-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-Rspam-User: X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 1D34512000E X-Stat-Signature: 3p55cshwt1zi9ddq5a19f4kzkgsfa3ca X-HE-Tag: 1744685249-963015 X-HE-Meta: U2FsdGVkX19KUUNe2l+iFk1s6lkoBJJaag0YkOr4HyqfR0lxJIU6Wa5O42BHNmCsqpH1QL+iegIMV15A0D60F6xlF2NwxC651a60FNSqkrac13wqR5fLq7nAf4pltiBPVFoDWz8+6Mk9IJD+SgSu9DoVPdCpzJedUtqtZ+9wJ6ekOfxGMSWfJHETYcmae8npTP9/dygbBfE2xeN4BUa7INgdJiD8xwq06AV9EW4jtJQTzM4HUj65cEyDe33f9TJ1bfdRqFAlQpqWZOlWKbqJNzRwxgAprEGk5thIYpI9zQa+1e8r8jKoKNJ+uPCdsW7l9rdDzAQOClM2r8dbPF4qin4huEVixWkZkVXDi3pxxn8mq5V/3qjOVd69GZkv+PL3LzXTYsYqshWu8lAn7U0fwhVs0r1CbcmMCYiXcmnOA5hfRYT7K3WhJ8CatFBJ4uF7wjsEPg1irMDtLHYHZWFbxoNEONhXGBioCPkiTSScw0y9Q66pBrfuTpBbxKJm871F6Qx+wHiLJKpjSiSGuolx/fzjBJJBP8OHkb7Exn18E/f+TLV5sh0zcxXxmBXVhIz8sQroVFalO4vVic+LzqG872rn1bjZs0QRwv9aqz1UJADtXrTrYwIac16muFanTPg+Qp+uN4h1MDukU5CuR06vrOXpDc0kCEkfDTP8dYIRXTCov/4IKoNT800qiU0YfASNAyjs4hbbqLomN477FDZED977+1BM4Z+OS+X+u1KHOgduLLtS/EcA4mG9hAaL8lGOp0jMKjJL3pVuHoGNVmlKyAMVKOj/Ev88V4qzMldKTrJW+fIWy/CRxB0XYBxMjTdtRUlIWVznXyRH1f/e792JZOhJWZEl28LVFcHg5b3oYecKz7uEm7T1Kdt7hhMdZsPCIUDYKz4aK8zO7/J9fQc/845EOrLkauJiwGhDFeEfDbTu8HMkfyjMd+XNzIi/V6V6fDfC/33gYkLY6aD50Y1 wTItfJKB ednc0KdIEtRwIH+sTyH5HhqUwuD6fjp7htHlEv4wsDTm8MFSeurolnfW8V++yO0/D0Nz2xKT2CznkjI+Yk37K+Wm2/BO9NH+WubV+OLkgUG5kFoAUSMsEcOHH7gTyMfGM0qq6ZUxSK43p+vWjea+wSx6zzV2UP4e8/4w6RAJPGrq+tDQek0Ossliloy/CLAmFFBMvf4E4L2XFp1BizOne7LDLn6oFBNbQuZio/BOup8vv2Yz2noty/b4yqajVDPBZYQSEbNoCrgqxibsHGTKiKM63XDZkJ0yUd2YCTv0z0W7TLm08tB8Z1tqOqQ== 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/vmscan.c b/mm/vmscan.c index eac5e6e70660..fbba14094c6d 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -3451,8 +3451,10 @@ static struct folio *get_pfn_folio(unsigned long pfn, struct mem_cgroup *memcg, if (folio_nid(folio) != pgdat->node_id) return NULL; + rcu_read_lock(); if (folio_memcg(folio) != memcg) - return NULL; + folio = NULL; + rcu_read_unlock(); return folio; } @@ -4194,10 +4196,10 @@ bool lru_gen_look_around(struct page_vma_mapped_walk *pvmw) unsigned long addr = pvmw->address; struct vm_area_struct *vma = pvmw->vma; struct folio *folio = pfn_folio(pvmw->pfn); - struct mem_cgroup *memcg = folio_memcg(folio); + struct mem_cgroup *memcg; struct pglist_data *pgdat = folio_pgdat(folio); - struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); - struct lru_gen_mm_state *mm_state = get_mm_state(lruvec); + struct lruvec *lruvec; + struct lru_gen_mm_state *mm_state; DEFINE_MAX_SEQ(lruvec); int gen = lru_gen_from_seq(max_seq); @@ -4234,6 +4236,11 @@ bool lru_gen_look_around(struct page_vma_mapped_walk *pvmw) } } + rcu_read_lock(); + memcg = folio_memcg(folio); + lruvec = mem_cgroup_lruvec(memcg, pgdat); + mm_state = get_mm_state(lruvec); + arch_enter_lazy_mmu_mode(); pte -= (addr - start) / PAGE_SIZE; @@ -4270,6 +4277,8 @@ bool lru_gen_look_around(struct page_vma_mapped_walk *pvmw) arch_leave_lazy_mmu_mode(); + rcu_read_unlock(); + /* feedback from rmap walkers to page table walkers */ if (mm_state && suitable_to_scan(i, young)) update_bloom_filter(mm_state, max_seq, pvmw->pmd);
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 mglru. This serves as a preparatory measure for the reparenting of the LRU pages. Signed-off-by: Muchun Song <songmuchun@bytedance.com> --- mm/vmscan.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-)