Message ID | 20250415024532.26632-20-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 8A43FC369B4 for <linux-mm@archiver.kernel.org>; Tue, 15 Apr 2025 02:47:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 033C22801C6; Mon, 14 Apr 2025 22:47:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F239A2800C2; Mon, 14 Apr 2025 22:47:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E142A2801C6; Mon, 14 Apr 2025 22:47:41 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id C17CA2800C2 for <linux-mm@kvack.org>; Mon, 14 Apr 2025 22:47:41 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 83506120B40 for <linux-mm@kvack.org>; Tue, 15 Apr 2025 02:47:42 +0000 (UTC) X-FDA: 83334742764.17.6D3E236 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) by imf28.hostedemail.com (Postfix) with ESMTP id A1140C0003 for <linux-mm@kvack.org>; Tue, 15 Apr 2025 02:47:40 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=jfXUCRvA; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf28.hostedemail.com: domain of songmuchun@bytedance.com designates 209.85.214.178 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=1744685260; 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=il+WlAu7ECEYeHNnJ6w5CmqDQz43sJSf6crApj5k5Jc=; b=RBnIqnT+pILXa4ZEVHjkmZFfrLlqcVIBXzGLd5GcdvfbfT+Si4Mti+W8+80/wS6dehP9dy uP+kERMlCJ2mngkS3SC4McEKmHBomduhqSwdqY//GXRkykVDTm4ZS0CPUXHkuCyVo0aMOs /0lazdUut9uPkio/blC1dv/cE8mfa0o= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744685260; a=rsa-sha256; cv=none; b=5UEfIGDC8vvTQlVayyH9W6V2R1IE64WpOtdfTld6BG//z5ViDRXPsSUXAXXSXYNKnKwTwG TBqzcnGtsKJIX/YlvnSVYh/DQZ5QqaNbqMjo34X8rRaZPhgB7ctVfwiduPNpCk3LYB9pj0 hWf0CT5UAmpEO+B86tkjQYJ4OTq7QPQ= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=jfXUCRvA; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf28.hostedemail.com: domain of songmuchun@bytedance.com designates 209.85.214.178 as permitted sender) smtp.mailfrom=songmuchun@bytedance.com Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-224019ad9edso65029965ad.1 for <linux-mm@kvack.org>; Mon, 14 Apr 2025 19:47:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1744685259; x=1745290059; 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=il+WlAu7ECEYeHNnJ6w5CmqDQz43sJSf6crApj5k5Jc=; b=jfXUCRvAPkZgkdOq0BIc+CKeIPUE7roThzbavpiLdwyVP8qdgDn1WbfECyC3YUQWxS pGpruVos5E71MDJVH+b0O2uKAIu1/wqiWADfgCsaghutpShJOOZpJjj0546DQhsJhnDE E+qevkpAhpNICbQQghxYApJUeZH4RVSwSt07u/V3jA2agL2pcJWfEVmd5waGpltb1xyZ Tp2ndj7wT5anEUmKazYlwld00bm7S6IDFofJakV9eOeD65zlNgNG3FYj2qImwoZ/DTW0 00SOYDz/GOwXG8LFSTmH+PO+QRiFDZzKYwRQqazPlTMjBSrUWTJsZJYowSjgViyBHOVS fHPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744685259; x=1745290059; 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=il+WlAu7ECEYeHNnJ6w5CmqDQz43sJSf6crApj5k5Jc=; b=PmywVHkEPyn3wEA62Bp0l7E/hB/NHnWw5FCWmXel/Vlxi3ttPNFXL9WjGg59zydzr5 me3oOg1UlRU1MvnzN4FaliAU1neCWN29vNLUS3FZrYGKReVZZrjPP5vJt1XN2q3Cr+8h eWbc1YrCriznjVpExXbOhdEtrKLVWYZSaVyn7yMUBCEWXnprs1jZK7FP+ikiTDgXhUMl IJAkTM/isN3ykCEsar0KJUiXN9EovJRtTRFOaBcZ0v017TCH7dmU/I4JstbGu39gwvZ2 kAh+VjEwIQzYla8QNDdNS/kogoVoFWh+B7xRY7uvX/6QB9pndITGPrsUIvokwZa/Ioxh HZoQ== X-Forwarded-Encrypted: i=1; AJvYcCWzj8lJeXDAvsB+YphEiHPlWsTt8BsBQNE06Aa6+6I13wNB/hsUcPyp91ubZmF46gRt/RAryzBZwA==@kvack.org X-Gm-Message-State: AOJu0YyywSWybvbFJSiQdwiiqwnyJPK31bcb2Dz1EAFRfEcpFfCJ+jUR OWvQFZKjjE+Pmkvc8V58sJIbMNPhi8sH4ghFwRaHNh2GHNjo7CudwUK1Ya/RTbo= X-Gm-Gg: ASbGncu+eONehyAIFkQqoFBmtt29TY6IyUs9T83XORFSz9fmPV+HTaYDNRDBGyBL5+K P5zDKjlFsXoLUGk/kc1rFcCNpDAmU0v/rMIejRbKsjjKsVMU2pIBqkfOJ7I2qpxNbbM9gFlnH85 IbVxwRI/sLs/V9Li5+BeOMlwvP5z9KqWT26hHV51B0Ipxak3bGckKgFJKprlzd1QewsVAyhurlB ZCe1PlmG+zKhNHPXVc0jSf2WSe0XpXuePnejVJnLQg8fArNX+HihfHvtk4hsUSXq9lcE8lsLPYH v185oE9/XwRyq5FmnH4xiK9ukMEAei4P/pxrj0k/Tl6fuv8/xSYmFVaqDqYEF7ol4annef/6 X-Google-Smtp-Source: AGHT+IELTjYsxK3e4qqX4T5H1yTy2Tq0r1FbaCUPQTdjd2lEOKiB73ooWS5EpMEZdecB9fJL4bZ8Lg== X-Received: by 2002:a17:902:d591:b0:224:c76:5e57 with SMTP id d9443c01a7336-22bea4ef9e9mr221732775ad.39.1744685259610; Mon, 14 Apr 2025 19:47:39 -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.34 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 14 Apr 2025 19:47:39 -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 19/28] mm: workingset: prevent memory cgroup release in lru_gen_eviction() Date: Tue, 15 Apr 2025 10:45:23 +0800 Message-Id: <20250415024532.26632-20-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: rspam07 X-Rspamd-Queue-Id: A1140C0003 X-Stat-Signature: 6d1tmm9aqe3zpqm1r9mno3ft87dceaxj X-Rspam-User: X-HE-Tag: 1744685260-968999 X-HE-Meta: U2FsdGVkX1+IxhwQpx9bC6gWAncL2M7isL0+b3FxJGpEIRaXpqDZ40UMmz7uu8dKNlqveEkKw/oSAAPXLnwRe2KQ3ZeazMMHcIJ3KD5gkmXGo0RDuAMqhEGMGoZ1zYbBMotj8Mnbwn6N+4WjuahQQFZdxhgCdBTBfuK6UB08PgkmpRAC9pYRhSRNWlszZ4YjqmmPKtQGGF6FogiKp0Z4ed8fbDcojFNKZJsnNf4Zdks8tGFTH+dyhbTc/jqJ58j6Ti2VdoOv3QgM+a4Iiw7WeqW8fnkTdaLGKjz2MXHYThb42Cr9CJ1fR6sY/9SK+YqrMAh2nwnzyImOqT1++l9SxssWfi+RGSE+dTiWQzguRsPqb4uujEB+h4pL2/poZXL+9p1vMr43U4eEcV/Mt4lZzo0/AzuqJkOWD3JEbfltq9P+7Y3ypWWIvlVGXcWS3iyoeCwq2oM12bvr8Hosi2hNWkNSO7WDG3JOZSethGrfLaAJCiqey/avTx90h2R6LX7Ig2HQrnS6qvDr92CSJ4M+DBo2zBxByruNviK4FK1mFl+Xbm1Do2kt19laLjBuFsPzfMRSbj5GecSviPmN2Y52Ixhgbz9InEa3n3oSVVsFf5fkWzT4Hg2AQLHLwVbs04of8BYU4TqlFkZ1VtrLUl2f2vdWVdbf7z+xAloHMHN4jm317HSE9Bafm1i+yoyVFoxJy3gZ7intSzzpNSF9lMZrcoStd4lyMYN4emqjm+LwpwPPBo6dYrraQntv6MYlhAskQbGqc7JX/SUcJ0yJpslL1aCAhwRpfIMR5HGxrtaMKPy3WlOVv9CzFcTQmyFjY1q6/c2K/Wzm2Ab42UXvXZl6gR3KAbOh6mU+wA4GJOia8spa4qrwQ2cn5EdIis5Pi52HGy1aWzd+/AiM00QnfdXfb43b4DSn7bcoUaUKuAGS+WUsytcpIqhdId9LcGpqypQ8jFRHuYjimgIT1VpPalI A6xbYRxf g6wpXszpIJAARreBlU6zYYdE3sRxrE1y4MsGLhBIL4o5P4Y7o3sQDFSp2A7Cb1wgL/N1qfAb7rSwqF5laVV4FparnZPrt01s8RaquiTqblCJrF2B2TvcRNbnIIkoOHAOjp5j0QiCZFygWCbJvJn4M/3Y2BGbYQaplG85RqlzrLyeFLuiyT8AImuAeiOfSzVaRSJXVA0JgMYQ5p6Yak1Wkw3u05iSRr5Mhdw8c4QbEBWtIUlB+ItPSUbwiCRVO4m1Kn5tVYowiiOGo5Sva+u6FovKAUjFbMN4AFp46YkajjM++7rNzoe1koeFO0FwrkWFrknTFmbWWAB941FN1MggnXr7Ybx3Y20qabhGDeSl6a5k+bjY= 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/workingset.c b/mm/workingset.c index ebafc0eaafba..e14b9e33f161 100644 --- a/mm/workingset.c +++ b/mm/workingset.c @@ -241,11 +241,14 @@ static void *lru_gen_eviction(struct folio *folio) int refs = folio_lru_refs(folio); bool workingset = folio_test_workingset(folio); int tier = lru_tier_from_refs(refs, workingset); - struct mem_cgroup *memcg = folio_memcg(folio); + struct mem_cgroup *memcg; struct pglist_data *pgdat = folio_pgdat(folio); + unsigned short memcg_id; BUILD_BUG_ON(LRU_GEN_WIDTH + LRU_REFS_WIDTH > BITS_PER_LONG - EVICTION_SHIFT); + rcu_read_lock(); + memcg = folio_memcg(folio); lruvec = mem_cgroup_lruvec(memcg, pgdat); lrugen = &lruvec->lrugen; min_seq = READ_ONCE(lrugen->min_seq[type]); @@ -253,8 +256,10 @@ static void *lru_gen_eviction(struct folio *folio) hist = lru_hist_from_seq(min_seq); atomic_long_add(delta, &lrugen->evicted[hist][type][tier]); + memcg_id = mem_cgroup_id(memcg); + rcu_read_unlock(); - return pack_shadow(mem_cgroup_id(memcg), pgdat, token, workingset); + return pack_shadow(memcg_id, pgdat, token, workingset); } /*
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 lru_gen_eviction(). This serves as a preparatory measure for the reparenting of the LRU pages. Signed-off-by: Muchun Song <songmuchun@bytedance.com> --- mm/workingset.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)