Message ID | 20250415024532.26632-26-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 0BFD4C369B2 for <linux-mm@archiver.kernel.org>; Tue, 15 Apr 2025 02:48:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 73EE1280027; Mon, 14 Apr 2025 22:48:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6EC69280024; Mon, 14 Apr 2025 22:48:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 515BC280027; Mon, 14 Apr 2025 22:48:13 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 307BD280024 for <linux-mm@kvack.org>; Mon, 14 Apr 2025 22:48:13 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id ED8C4BAF73 for <linux-mm@kvack.org>; Tue, 15 Apr 2025 02:48:13 +0000 (UTC) X-FDA: 83334744066.07.F4233EE Received: from mail-pg1-f179.google.com (mail-pg1-f179.google.com [209.85.215.179]) by imf25.hostedemail.com (Postfix) with ESMTP id 137A7A0010 for <linux-mm@kvack.org>; Tue, 15 Apr 2025 02:48:11 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=OgwrPZ8K; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf25.hostedemail.com: domain of songmuchun@bytedance.com designates 209.85.215.179 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=1744685292; 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=vzey8goXEog+ZffEsOrcu6z/kqiEK8l86D0gwmtPc7Q=; b=fQO+GcDM1i/NRBtEeVn5tajlTgSGuu1eOQmvq5ikKRDVPqVebHD7NEyIMFhYnW8Wm7p6Eo P0EFPrftjZN2mLOyxnZ4O++NO1sZrtVijJCXwsn+0HXpFEXLYoqcB5N0bMj1YeMQ1g+HUE ufRm/IMCjKyhJt/v0LEg5bECFYgm8tk= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=OgwrPZ8K; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf25.hostedemail.com: domain of songmuchun@bytedance.com designates 209.85.215.179 as permitted sender) smtp.mailfrom=songmuchun@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744685292; a=rsa-sha256; cv=none; b=3zR2/1KXf7d5DCi79o3tkq2Ct+scscZjCSgPjzmHqIAipLemokj17upeBUIKxCG0FPKPaZ k854ncUYnZjCFp25HW97BrazY2nEuP9Zx6KPj5wF2Mp3O1gNAwEneeibBZOLP94OKrnmgc rHmSlDZRfBxEwRAvFBr35eqkEZUQIp0= Received: by mail-pg1-f179.google.com with SMTP id 41be03b00d2f7-879d2e419b9so4154114a12.2 for <linux-mm@kvack.org>; Mon, 14 Apr 2025 19:48:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1744685291; x=1745290091; 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=vzey8goXEog+ZffEsOrcu6z/kqiEK8l86D0gwmtPc7Q=; b=OgwrPZ8KJCuZoIxVpY3pVwLE0VLFFmjJot6QLs57KoK6MptANeGCXGcX6bcq1sRTmY NlgerXQ5DoTVhwDvSfuXreoSIBbRBWT6EyBFBjP0cYOXc1gxyRMGwgrFC6hp4hivoTFc x9DuMmG9wIaF0T9hiLa46ets2F19fIo5+9PLMlu6EMylXNmvi5YLv9DhyaHKFSOkPwIK 2qhKxXAU7ZQobpgC9S6qeezraTstgwwgtisKacFJEym6y4tQCWz5ynrYqAC+gscch0li L6JCfVo4ZgPtRh34NOHmXuSFTdoL0SFWd6HaSCx2Vu5/gfL4CDtQ+jh9ff68EshZEdMW WS2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744685291; x=1745290091; 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=vzey8goXEog+ZffEsOrcu6z/kqiEK8l86D0gwmtPc7Q=; b=WUyb0uVrSUI0dJTnYWdkx+WLpRgewFMUNF539eV0td+lNh8MBQrpiOI5X/WjQinf9m 8zw5I5tusJ3cBbEpX0q9Eh8GKYkIi8G8pkfS4jgfcImlcTI3VfXk2ef1CaD5ZUn5Rln3 pwmWzeIsLR9gsBKrjP84Clans2U0ZR4FhFuG1moXm75q+Eo1NgrNxYgVCQ8keXZrCuJs B+LiNPf0XcbrTA+zXQsCpyhtfDlH23uui2MTORG2BWAqYf7viYtqbOQo7bKjPMqu2RKm hm3JJvlVaOiyhok5BGKs+wx4mWBB/cCcq5F3+B0xXDncx2+GLrKbLEyemdDQy1v/aHgx 6pfw== X-Forwarded-Encrypted: i=1; AJvYcCW0s66YJ44WV/qwQejOd5sMO+9Rb+KiyXjSNOTM/VVUH6ba+vZF/5tWlmBxMfVF8TQwZyItX421AA==@kvack.org X-Gm-Message-State: AOJu0Yy4Pt41gEy95d5MLiVwA/ixA/kb4Q5fKZDe5Te3NPCzCPkEnoUe teWMthDucvxTvaQKaeaHgw9GDlSqOqLHhYIy7dL+rnjpm5zI7kWabqn/CTTOW/g= X-Gm-Gg: ASbGnctxRcuZEiFC1LiEKK6/7LHvsdkcf+7I/rXixXZr/7VMN2f3k3lsg9lBcxmtf0D /w6G03d2u+GZQ9ZKUZ8Dx+bDXwP3h3fXipGrs44VxECJUxNGnz5Alcd5mhgvDQB1VecNVSlGVMT 87G/JhdMpewKu2fWF5/vfMKm7PN/mhaiLr/jvK3HXy66DYcWTUjDImSRlJLgPtvsoj7YAHZrtZ0 GkPuKDLVDN+Xx9ksTl5em5hp/kHJDuW1OT2t+s/e+kx7wHgELQ4xPuQ+khIaT4WwHYaOzBOSC/D 659f+iTboK5Kf2YjrOhrlkC2j8bHUsFBsPh3CjBcTCAvOaXx0DQ6bx7vg9bco+FT/VmQZUk40Ao tqre2NoA= X-Google-Smtp-Source: AGHT+IGKYbRxT9nU7SMJ0Zxzh0coEyzVb1MW3k+CSg2YANyZzMz0FPRUg+d3lPphVCyM8bkhwJIXdw== X-Received: by 2002:a17:902:eb8a:b0:220:c813:dfce with SMTP id d9443c01a7336-22bea4f273amr208688465ad.39.1744685290927; Mon, 14 Apr 2025 19:48:10 -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.48.06 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 14 Apr 2025 19:48:10 -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 25/28] mm: thp: prepare for reparenting LRU pages for split queue lock Date: Tue, 15 Apr 2025 10:45:29 +0800 Message-Id: <20250415024532.26632-26-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: rspam11 X-Rspamd-Queue-Id: 137A7A0010 X-Stat-Signature: tby8q37jrbg7esg5huafqy9ac53tu4fi X-Rspam-User: X-HE-Tag: 1744685291-720488 X-HE-Meta: U2FsdGVkX19TB3CohZl1ImkNcwn8AwTvt7OJXylA5FfvkAK5y3eAdm2t08wploAdvQJQ7h8hl6Sc4VKQ9dDbvoBVu8WJrXJ0dTSTIYvR+x5e467kp1vIxEVTmNvttjA+q7Zt7zE9WMjAHMtneR5xIb82iwcibCfx9hWnOqis3PkwlTIJOVmOzghYH4bPFwpQYmudnz38LdShsTomMqdmMCCv11N3pgBc5KO1mRzwWZkhR6vum4QVAn3HknHknKC6obPgX7AnWsJMD3oR4JiVDUV55+xdcI1zRDYsPi4VfkWj9xVbM45mQwfs/uh0RghrV93sVIW189eKCPTkpH8pAln4jGC30ajGx7EC5No+T+7zLRH16BJ7RiAeU9dwUPlXGmVoUnE/R3/JVOJ+lYNSjbUsc+mNKHbEjj5ksSkzm8QO04Re9pEtuxsOj6QTPDCb2rK7Lc5jXrmVLYa07dz0RWIVQJg6GTdSAe5S6ys1lkyCuvilSq/KCocsWSwpUNG9yLONArLOsQ5rdZp7x959gZ63cWt8cnpPfMJ/emhYFeQ3CsYTwSoBRNbwc3eWO2TJHnO0fTvHrQGrgLVFy5M/LXsMcumZc1VkX2n+XMYxjM5th6OtBWzNcBSfr27UtbfHlTUjTjr6MrR/cU01kB0sZQmhx+rsMcNoA2bJstQks7kE/L1EQmlrVfsiz1xS1OHNvKTkmuIKsTitwfb0Urug5uaR0beb8DGfo5mQIklEPjxWvld3H8poglM4yAF3XA4I6UB6MhBxEK/+KOk8jOWRryJ3fEsZuVeLUDg5wrMM/QbxG9CJ03Sxj4QYEjBPbWo++h4g35W8lEsgMkwTXS88mtJHJtUA0VwGtipHGKCPwXc7/u/Wy1aoauxTF6d7kSNuei2Lv+8e8o6SHozfK1q5+suJCohGGW5W+zD1kZyf836mZ7IF7664MjxNYbhuMhLs6mnX7kxtxe6VkQkzZB6 TqwQVVsQ MuRcVqubuL1QcN2/DfE9fDsxRVcTMuPh84V2GkUtpGoa4oQ9sBVaG14yf0/1Hzj0Rx35MNQEdFHY1I39Yk+PyUIZvs3dgeUW5QTOcDupQoajyTrz40kX1+kK/FwB5AiIY+MlAA8W8i1fN27lybZmSk/UDN8oOTfjKvRiQm4xtq+rlGajSjRkVE2zrXGDEnIxu5oEWjbYmt9un9paSWrlAPNY1GT5BRqkDTRClab4dLdTLTO2ghlN7ptyNtEqouN4qb5XiG8J6GU56jRQaGCWIV6K8qcgZwRhaCS/pyBBgenE2dowyw+krrVNzKLp9SirmbOef 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/huge_memory.c b/mm/huge_memory.c index d2bc943a40e8..813334994f84 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -1100,8 +1100,14 @@ static struct deferred_split *folio_split_queue_lock(struct folio *folio) { struct deferred_split *queue; + rcu_read_lock(); +retry: queue = folio_split_queue(folio); spin_lock(&queue->split_queue_lock); + if (unlikely(folio_split_queue_memcg(folio, queue) != folio_memcg(folio))) { + spin_unlock(&queue->split_queue_lock); + goto retry; + } return queue; } @@ -1111,8 +1117,14 @@ folio_split_queue_lock_irqsave(struct folio *folio, unsigned long *flags) { struct deferred_split *queue; + rcu_read_lock(); +retry: queue = folio_split_queue(folio); spin_lock_irqsave(&queue->split_queue_lock, *flags); + if (unlikely(folio_split_queue_memcg(folio, queue) != folio_memcg(folio))) { + spin_unlock_irqrestore(&queue->split_queue_lock, *flags); + goto retry; + } return queue; } @@ -1120,12 +1132,14 @@ folio_split_queue_lock_irqsave(struct folio *folio, unsigned long *flags) static inline void split_queue_unlock(struct deferred_split *queue) { spin_unlock(&queue->split_queue_lock); + rcu_read_unlock(); } static inline void split_queue_unlock_irqrestore(struct deferred_split *queue, unsigned long flags) { spin_unlock_irqrestore(&queue->split_queue_lock, flags); + rcu_read_unlock(); } static inline bool is_transparent_hugepage(const struct folio *folio)
Analogous to the mechanism employed for the lruvec lock, we adopt an identical strategy to ensure the safety of the split queue lock during the reparenting process of LRU folios. Signed-off-by: Muchun Song <songmuchun@bytedance.com> --- mm/huge_memory.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)