From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 4A0A9C3ABA9 for ; Thu, 1 May 2025 04:44:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C51826B008C; Thu, 1 May 2025 00:44:06 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BDAA36B0092; Thu, 1 May 2025 00:44:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AA19F6B0093; Thu, 1 May 2025 00:44:06 -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 86FBF6B008C for ; Thu, 1 May 2025 00:44:06 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 6D80CBFBA6 for ; Thu, 1 May 2025 04:44:07 +0000 (UTC) X-FDA: 83393096934.20.7F37A02 Received: from mail-pf1-f201.google.com (mail-pf1-f201.google.com [209.85.210.201]) by imf11.hostedemail.com (Postfix) with ESMTP id BAFB140007 for ; Thu, 1 May 2025 04:44:05 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=Hc8f9LKE; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf11.hostedemail.com: domain of 3FPwSaAQKCJ8EUCKFNNFKD.BNLKHMTW-LLJU9BJ.NQF@flex--fvdl.bounces.google.com designates 209.85.210.201 as permitted sender) smtp.mailfrom=3FPwSaAQKCJ8EUCKFNNFKD.BNLKHMTW-LLJU9BJ.NQF@flex--fvdl.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746074645; a=rsa-sha256; cv=none; b=VL2/EDoKFuWL8A91LUpNhi6CqzRoy/tVULSrGyB4jYxo0kbuJQy1EzG93WUY42U0SAjp3B 8TgPR6QsQ2MkBGR+EUhihE1vj0haSKYjmUVJA2waOjjJXElIHFjHq+4YqmStLQQAbS1B/J onZMydhPSoGqhuviDXmr186/BN9vcCY= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=Hc8f9LKE; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf11.hostedemail.com: domain of 3FPwSaAQKCJ8EUCKFNNFKD.BNLKHMTW-LLJU9BJ.NQF@flex--fvdl.bounces.google.com designates 209.85.210.201 as permitted sender) smtp.mailfrom=3FPwSaAQKCJ8EUCKFNNFKD.BNLKHMTW-LLJU9BJ.NQF@flex--fvdl.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746074645; 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-type:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=ZlwR7KIEitlIKwWbI0mP92+tw9qsgA8q7C+bAxkSSvA=; b=S+/z3H1v5N5+mhToE4gWizgCVmDE/eOkExXqjoaZ+Kf3JEKCF/9AbDHVJvr6ahhuA1V4rP jdiiNWWIVc4l0Fws/hZviE6jAmJfY6T9N8ku3bn9krU8hYvQZfdWeBPZ8bRVmFP4bvECCl kpMMbMjo6i7cqly7s+1opdHkQdQUAjI= Received: by mail-pf1-f201.google.com with SMTP id d2e1a72fcca58-736b2a25d9fso464765b3a.0 for ; Wed, 30 Apr 2025 21:44:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1746074644; x=1746679444; darn=kvack.org; h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject :date:message-id:reply-to; bh=ZlwR7KIEitlIKwWbI0mP92+tw9qsgA8q7C+bAxkSSvA=; b=Hc8f9LKEoIc9HBLM/+D+jN4LMFq+olaDOiO+yQLs9jdohWaZmoaRRsPpsyO9hrlu9e Je5ebOf0/Q172hcfdNhzvxueHyMzshzK2/3JkezCoJDVctsRdkleM9iRHmF7mgYHXLY6 mmljEKNyzn34lUyNv+AjhR/bUz3yu0mPEbmWttAMJ+IWqdWtqByCACMx82vgZRSFksd2 /UPIC5LSBl/mIT075Dv3NHTzNVUfa4lCd6GKRO5XOUOyCg76XTeBri+RxT0DJPRTG05G VFMf3zchFHB5XFc4NbV9a19y32nEv8PfWuw/gt3Knkb69WqKi7YIdgr4w7fHkeOPS5PM yzEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746074644; x=1746679444; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=ZlwR7KIEitlIKwWbI0mP92+tw9qsgA8q7C+bAxkSSvA=; b=pdNMp9Ivrg3Xcy3qBFX9E+pT7v1MrbhRlJ0CaA8lbEE4lUeSvlYMU5TuKpPAxtxx3m Q/COSeWdu7GGNsy2++OdcWYFzaDgg5LTSaRe9RvCWIk9smd8Q5ZvOTcGaq/BImm/UX3y /YaGcrFo9QYO49Ro4lKy64L1MB0cVFW3xbMrZLAbJDJBSHkeZ/jSSuwBfgA0bva43dEM ASi7iE+jXzpu5pmXxgX62MO2Gkb/RygfWtd6ewChceDPcT/sDZOpr6c/9z6gA7ihQdfG HeZVnTMD5K/P43GXaQtvYMkoAslSng0HR3fNJZIgShfoVY3nDMwwvqiUde73C7+7N0p4 YfEw== X-Forwarded-Encrypted: i=1; AJvYcCW3awFrSYzccgDmAAA7JCukSMQsadD84oJ6Vy6fGf3FoQdbFyLy9rC9xiIGWpQz9gzXt0p7bFnk4Q==@kvack.org X-Gm-Message-State: AOJu0YxiaO3VCuspCnKbwcnh18VvIquLg0cHuOBiajdGtESfdxLToR1I rxEYHMSVxi5i/wUzhap6GAHVr87vrWDfqPWa6Brx1PaY2AIjqbcBK+uwswWVMasUx1AQlw== X-Google-Smtp-Source: AGHT+IFKMA8IlNLn12QiJjuNbX2ts/sbYJhgCZ4SibjD6/N/RiOltDzkEIlDaSIWbk6vn+CyCiNqZnJd X-Received: from pfjt22.prod.google.com ([2002:a05:6a00:21d6:b0:73e:6a4:2669]) (user=fvdl job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:234b:b0:736:34a2:8a23 with SMTP id d2e1a72fcca58-7404925ad93mr1476129b3a.15.1746074644416; Wed, 30 Apr 2025 21:44:04 -0700 (PDT) Date: Thu, 1 May 2025 04:43:24 +0000 Mime-Version: 1.0 X-Mailer: git-send-email 2.49.0.967.g6a0df3ecc3-goog Message-ID: <20250501044325.20365-1-fvdl@google.com> Subject: [PATCH] mm/hugetlb: copy the CMA flag when demoting From: Frank van der Linden To: akpm@linux-foundation.org, muchun.song@linux.dev, linux-mm@kvack.org Cc: osalvador@suse.de, Frank van der Linden Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: BAFB140007 X-Stat-Signature: 7h573nc13o9m5ahha4wuw7kci6yid5yp X-Rspam-User: X-HE-Tag: 1746074645-511513 X-HE-Meta: U2FsdGVkX1+UGzH6I4qTvKtFJ07iM+t7RbKfts7gwdTcbzN56xB3zVdy979XWUjFbAraR0IdiW3AT2PjlgfxXdQOhPsrHnIU6pnQ/ftm7mMmu3EhNmQ6mmoX/SDA7FT9s2hoxFTR5vCqGUClMYfXeHJmzbKZtw4Klxv+X8sCVqtDd7Uk2V77NwZ7R96DsK2ochvJZQasF32QKpEIWaTlQIUNbSB0KwbgwHaGHQctF3u4pnTGtid8xQemRfB/NN1CXKr45yr84SYQYi6niQ6cEj/pqGEt5SG301MBHeNoaa/vee6Zx2jpcZisFJuHTmG1eLZBOyWtvQLwdv2PcWUFCF4ZmthU/MIJUIkjG4E0Je/r0unV0kUIRKGQzEXNGkPmJzSyiW7onMFkg0ECU5M8+10xFqWBhZiY+7wvmtUuBKD9/MPjGe9doxO6NHNbAjWt36hTpibisdKZjA52xkB4M9ZJ60x0CMLtD56gbXEOaTDcEekVk1U5c+w9pFeeympgBVdGtPOePJZFlQbRNyQFaHcWontLLflgq6DjfNiebnbqALWSl+BaAXktq/wPWwyxCpx0BJMutDqj+pD96rdHu/r8nYcvpBV97dzhAThr7GtgK/qLILPEtddr7CJw6lD0EoXaNCc4NwXMiGKbsyqa/BPYyCtI600vQXi/jk6pXEMDizLxUNX6sTRw4EsgFZlQcmagP3IALsoYharhLMoyYlsOZfHztka9c62QwoxAmxUifpl+qmD/hIXAyPN5FeiARKvG1BEfFqr5QKQvlHeEAtBCEPbF2KRfhHusBXPUFNdiWrBlBvGem9tKUAiiq8YedcWLp9bDIViCfBzK9CRhT8jE/RjoX9N+AsnRwCU9tPZD4VLrFXIT5jOL74BRCt6zBAZeB5MYNRhFZDLB6FpsO9/nCo02Tb7El2PrLdFZoJ1OHRLXqRWe0TKrHBGbpLLZQn2c7AO2xcpzZ0/sNSl dQkgChu7 KcqIDJVgwyVZCbsm9A1Rf7OnfetcLt0yxIpwiduaIbwECblkcNuyoIhqhLFgLITShD0Ywsdzov+BQVGNc+w6UB5kAocoh06sfQOnvcqeuGOSgbdlyKlJ7sWL6nKgmBRfpi7iu69taRvJhTqdMsI69QrBcCQMecTuYgCm0Na6sTHiUrtnu3wooL/Hm3oQWKvayccOKQaIxY74oc06r6mMS8XoVQPMRY/Sb4Y4GKRaDlHWzzwoFGX87i/xCdLVITJf/pJKMiaDZHRlFFBsiOhOLdcvrQzqe9WZOp27CGmLDZnvig4Oa58DsNxBEX+iZ7ueJLGo6K45kmgfd4xgxLqZH24ViGAqgpFPqpGjb+Codx8py7sQ6oTbPz6FwZ35jnuSsZkHue+Oq5BIdfGIREEZ27uVZTXfCDjHna1YjtQmnAQlly/pIQGyAft7OCnHZ47q6oBHVBP9kQROReLFG5F9VM+kKsdekBKjv88qMsOnBih6qlBwTCQ/D7UxToTtRWVps0iMXcC1hjyFHsxmMcCnqPS3bPg== 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: List-Subscribe: List-Unsubscribe: Since commit d2d786714080 ("mm/hugetlb: enable bootmem allocation from CMA areas"), a flag is used to mark hugetlb folios as allocated from CMA. This flag is also used to decide if it should be freed to CMA. However, the flag isn't copied to the smaller folios when a hugetlb folio is broken up for demotion, which would cause it to be freed incorrectly. Fix this by copying the flag to the smaller order hugetlb pages created from the original one. Fixes: d2d786714080 ("mm/hugetlb: enable bootmem allocation from CMA areas") Signed-off-by: Frank van der Linden --- mm/hugetlb.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mm/hugetlb.c b/mm/hugetlb.c index e3e6ac991b9c..6ea1be71aa42 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -4034,10 +4034,13 @@ static long demote_free_hugetlb_folios(struct hstate *src, struct hstate *dst, list_for_each_entry_safe(folio, next, src_list, lru) { int i; + bool cma; if (folio_test_hugetlb_vmemmap_optimized(folio)) continue; + cma = folio_test_hugetlb_cma(folio); + list_del(&folio->lru); split_page_owner(&folio->page, huge_page_order(src), huge_page_order(dst)); @@ -4053,6 +4056,9 @@ static long demote_free_hugetlb_folios(struct hstate *src, struct hstate *dst, new_folio->mapping = NULL; init_new_hugetlb_folio(dst, new_folio); + /* Copy the CMA flag so that it is freed correctly */ + if (cma) + folio_set_hugetlb_cma(new_folio); list_add(&new_folio->lru, &dst_list); } } -- 2.49.0.967.g6a0df3ecc3-goog