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 62442C27C79 for ; Mon, 17 Jun 2024 10:26:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AAB4A6B016B; Mon, 17 Jun 2024 06:26:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A5B656B016C; Mon, 17 Jun 2024 06:26:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 922856B016D; Mon, 17 Jun 2024 06:26:46 -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 748876B016B for ; Mon, 17 Jun 2024 06:26:46 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id E540281594 for ; Mon, 17 Jun 2024 10:26:45 +0000 (UTC) X-FDA: 82240001970.15.1005E86 Received: from mail-ua1-f51.google.com (mail-ua1-f51.google.com [209.85.222.51]) by imf14.hostedemail.com (Postfix) with ESMTP id 221C8100013 for ; Mon, 17 Jun 2024 10:26:43 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=A4ahe5lv; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf14.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.51 as permitted sender) smtp.mailfrom=21cnbao@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718619999; a=rsa-sha256; cv=none; b=LQwEGR7wARfr9xrV/A1H5R+icOPm9h4RGYczKTkgEzPo82g6u7dhJxwZRktFl/Yl6T4BDw jxrjt5Qh0UZ6iMxYf/AiRoqMzx7fKl2RKRH21a9d09uxoJljbv4mhM0P3tsxKyfMIXQTVp OmrdqWdaG0DcRTL1HGPyXdjLoW7BQFw= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=A4ahe5lv; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf14.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.51 as permitted sender) smtp.mailfrom=21cnbao@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1718619999; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=AFoVB120xxdGUtJY/lUzDNHtyGa18ElXXxsWBBg/Yrg=; b=qOBbij12XfP4lKk83wHZuq5c3xfidcxtGPqY+saEn3P7dPt31TDZXOBT6oGTiaoKmN7h4C 9ztTaQsJsqGAkbtfXyh+7kqwwgxYtWpknl70VW404qXxhZfVtClYhdiXPgFLRJxa2/2qKa aAD2PU1jgdiXJnHeFyVHHO1apNEbwAc= Received: by mail-ua1-f51.google.com with SMTP id a1e0cc1a2514c-80b86cd886fso1160672241.0 for ; Mon, 17 Jun 2024 03:26:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718620003; x=1719224803; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=AFoVB120xxdGUtJY/lUzDNHtyGa18ElXXxsWBBg/Yrg=; b=A4ahe5lvtne6+HNNCXksI9TNI4SXRs2AxVHtOcysuQh8nSrTQ7rc8ow92fJO8QU9gg F+0MgvBlWoM6YwQlLke5oM7wc3Lnw5IxPyE5caSSFg46s58y9iNC2wv96dDWMhshbTNN 9r9xf1a0VK8nRLFbAouco1qQ6mgGSeVdrFHb58Er9qbqQte1vc3wIE4i1zyzdMX7+d4e HcWK7FQsTrN+CPDNwjKoQw1hHNo0Csevbk6QsO8Fv4m2LCp0HTKJoG2dcgr1oSWiHIhf TzuQpf+lmq5bG07OZ9etbF+/RsencCt+yaBGkMlBWIi/BNVXH89b8HUm5XHLw83X2XmC UdYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718620003; x=1719224803; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AFoVB120xxdGUtJY/lUzDNHtyGa18ElXXxsWBBg/Yrg=; b=mOIv4+8OTfzMTaA1hE19WpwbeKdb+aOToH9GvDmlcFLXjDsXmeU7ui6FfpY1iQYREO cdLaoBVAOtRgdpoTsKjpAo1t/9RCl3eYkVq3LbvEKVp4pZZd2U2xdGdpH35gJIbL4cbv TfkCjKqEiTO6xOfOxnrzjUtlBvsD5h9Q6bRMXr2PcaA5oU14XUacO7uCyPktE6AD8Yfy jp2WYEQ1X2Ufj9502E4uxoZt1PuObaKcMjRkiAChDYoYYhk4jBiIXXBfl+hjWAeko8G8 uGP7Eg05SAxpGdlnnNoklshTMtDpyuZxcKa1W1y6nwTCVTYEYQ9H8R5Rl7ssBGSGNDs7 scZQ== X-Forwarded-Encrypted: i=1; AJvYcCW4+C0s47SOsBSVKzzJ0mcrx06K7cJdqAXm5Jof9iGOw7yuIMCo6vXBHAEZMyx37cfaL1He84aTnjLe5lz2wgKe+LU= X-Gm-Message-State: AOJu0YxMDG5k3p+6Ktjnmu2Qf0C2MucQ0alPioC9kazoWPipnpFeWpRv OGlqaPg/EaHsUpCjDNklRXG8g6hlIppsxqQ8Th0XdKoh4Bl05d+3zlAxJommLpXQkkzhEncQxbT vlAhKMC/KEWvFS3yBUCPPmFFKlEz/tIxUrlg= X-Google-Smtp-Source: AGHT+IH4ZVF8+aYTJ8p8IDCCO95wJIZviSoKL/6SigeVRkIpcVRxNxBZG9nBpaxAl/YEqB5S5UdcVukr6A2/S5+1ktI= X-Received: by 2002:a67:f9cb:0:b0:48c:30be:37f6 with SMTP id ada2fe7eead31-48dae3d5ad4mr9389244137.27.1718620003081; Mon, 17 Jun 2024 03:26:43 -0700 (PDT) MIME-Version: 1.0 References: <1717492460-19457-1-git-send-email-yangge1116@126.com> In-Reply-To: <1717492460-19457-1-git-send-email-yangge1116@126.com> From: Barry Song <21cnbao@gmail.com> Date: Mon, 17 Jun 2024 22:26:31 +1200 Message-ID: Subject: Re: [PATCH] mm/page_alloc: skip THP-sized PCP list when allocating non-CMA THP-sized page To: yangge1116@126.com Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, baolin.wang@linux.alibaba.com, liuzixing@hygon.cn Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 221C8100013 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: zbpfsm7hzztzwojdpuqwro545bedk6fo X-HE-Tag: 1718620003-908695 X-HE-Meta: U2FsdGVkX1/wHLGVIxeuMgc8gYTPW8ZF7/a3J5t3PZUIslSWynTXobXEIwF/SOzZ9UAoOQ7475mG6n/U7+8m/pLdQI8wEBS2xHReLLo+ThMvKvvAQEJngo9nB/oL7tQgg58ghq9mWXGYw9VOwy6tvr7bNKMicww8ohbul1OSeWUF3yI9tsvy9dNYbz9FjUJBGkppjdRjEkcSvpai0Cz8NtBbfj/WPbiGYHGjVXN/nMrKvfkfdamCDTK/V6JnjOFbwejvmo7JW73NXzl78gi5jpjC1vRG8ideO2dSqRo6SX7lKZp9cSo/6qoGnAkaHamY/cgZoeSygeQqQxAtrjKI5BU2AEVO+MssraDNoLjljxjGdZd0rU1wfDdoteKPxbLKoQ0OUgDjL+EQXbmhBr9+NMnkSepxjE8EjdYwckgJZsE45zJTnPUFRQxtuISnvT381OdQuuats34Xz3PjzfZqAYdFnb+NdsVRLkgLZmkPNlpDY2FVMVBC4ZKx5oB7ybxlawYD/JPBw06qjbS6TIl1ylnAdjZXqy8GFPSophugco+WcflpqNILfnpWEycIRNE5wcdfw9giepWmezCnaHbo2GwMnTcYEd59W+mqBota+J4SJyJltH2V1wAy3DTCQn+JCL3Qkf3U9pETrCDQy+phW/Y7RY21t19da+N/JZADEnuvMOaO770WkjBKQ8WSHBAvqZyXclvpPMo+C/kqmsbHCtVDUSdy621MeGv7aU8dGodm6oI0Lmc7UpPcGDQuDVU5Tpnm4csguIkjgCHsM8+6MZv08rGfmAFPM3vvuAB8nMzW7onyAIuoLxHbsdIcqHDmdxcFUYZYuLhNbs+glvwPWxgU9j6wTi6qfQZfiTZ4hJdrkmb9talQNi46KeWZnQGbpVLWgrCgdTSN3MHbwvprPZSethMBn4MThAo4TrHkzQg0+miVO1lM2U4rk+gJJ2LOnvKzr7lYSUIMAfnFeU+ +H+h65oP ZhDK4I6VQXctsKr+NfIoFE9E0uj+jUJsCCM/1A2wFPqUc/MrS/niaQM5EiWi4ec9L6LPzt+j7jdMopNOie+FsKR8vUDX48TC3bHX3rknMHcDS0jab8g3uq/yZDdZ9fjcS6r+1Ju9K0YnoxlUxBPyo2n3LGKxXq0aK22fS30Fp8BGJvkDlhMM0HifI108uS/2RwUl4lgf4ehDrumIWENUIClo/IfDqWY3rih6RHmAixYqlCtpFWqYWGUDeQwzX45SYfG4cik5B8xIJOJp9Tn61XiTII6Cl4WMacP8j77wb7E96kTzSHMl8fQ7qaxGpZfMAAgmCUlTdyMebyUbjXkAzOmaWUABziuTPp2/CWjG+Fmn+KE0= X-Bogosity: Ham, tests=bogofilter, spamicity=0.010168, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Tue, Jun 4, 2024 at 9:15=E2=80=AFPM wrote: > > From: yangge > > Since commit 5d0a661d808f ("mm/page_alloc: use only one PCP list for > THP-sized allocations") no longer differentiates the migration type > of pages in THP-sized PCP list, it's possible to get a CMA page from > the list, in some cases, it's not acceptable, for example, allocating > a non-CMA page with PF_MEMALLOC_PIN flag returns a CMA page. > > The patch forbids allocating non-CMA THP-sized page from THP-sized > PCP list to avoid the issue above. Could you please describe the impact on users in the commit log? Is it possible that some CMA memory might be used by non-movable allocation requests? If so, will CMA somehow become unable to migrate, causing cma_alloc() to fail? > > Fixes: 5d0a661d808f ("mm/page_alloc: use only one PCP list for THP-sized = allocations") > Signed-off-by: yangge > --- > mm/page_alloc.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index 2e22ce5..0bdf471 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -2987,10 +2987,20 @@ struct page *rmqueue(struct zone *preferred_zone, > WARN_ON_ONCE((gfp_flags & __GFP_NOFAIL) && (order > 1)); > > if (likely(pcp_allowed_order(order))) { > +#ifdef CONFIG_TRANSPARENT_HUGEPAGE > + if (!IS_ENABLED(CONFIG_CMA) || alloc_flags & ALLOC_CMA || > + order !=3D HPAGE_PMD_ORDE= R) { > + page =3D rmqueue_pcplist(preferred_zone, zone, or= der, > + migratetype, alloc_flags)= ; > + if (likely(page)) > + goto out; > + } This seems not ideal, because non-CMA THP gets no chance to use PCP. But it still seems better than causing the failure of CMA allocation. Is there a possible approach to avoiding adding CMA THP into pcp from the f= irst beginning? Otherwise, we might need a separate PCP for CMA. > +#else > page =3D rmqueue_pcplist(preferred_zone, zone, order, > migratetype, alloc_flags); > if (likely(page)) > goto out; > +#endif > } > > page =3D rmqueue_buddy(preferred_zone, zone, order, alloc_flags, > -- > 2.7.4 Thanks Barry