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 CC685CD1284 for ; Fri, 5 Apr 2024 04:53:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5F1AB6B00E2; Fri, 5 Apr 2024 00:53:40 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5A2236B00E3; Fri, 5 Apr 2024 00:53:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 469896B00E4; Fri, 5 Apr 2024 00:53:40 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 2AF656B00E2 for ; Fri, 5 Apr 2024 00:53:40 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id D0E921A0475 for ; Fri, 5 Apr 2024 04:53:39 +0000 (UTC) X-FDA: 81974260158.28.202762C Received: from mail-ua1-f54.google.com (mail-ua1-f54.google.com [209.85.222.54]) by imf15.hostedemail.com (Postfix) with ESMTP id ADB34A0006 for ; Fri, 5 Apr 2024 04:53:36 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Jzkvd6fd; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf15.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.54 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=1712292816; 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=bFVkjkG3EDW3xTK2+dLWlF2WsS83zvxGEi3lzpt+3ww=; b=8q3aEaHgzTrVudpH5p6EqnJOh24l8VNWXWPOyIltzkxMCgVC3NHND3pxnauK32t57gGpRW 5iK0F56KcDWEGL7CdWMGZ2HvciXOr7FLzPJTQid2Aj7oR1ZeT9LKO/TOx5auq3zIyCZKUP zoeoxD0RosVEKqFKKCtH8s82gHbEMzY= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Jzkvd6fd; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf15.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.54 as permitted sender) smtp.mailfrom=21cnbao@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712292816; a=rsa-sha256; cv=none; b=U1qjspWp2Ce9luxfXZEguJR0mOhu8Ye97A8mMNmsWhnwsFXcEpkos/YvUTJdqx7j9pL7O1 GBPi1eSFRAO8OrK5Mmg6SaA8B/zSa0SOWCnSHL1YQEqDLsgoDUgMTcUtz47qc2txjQx8ZQ EdzZTt0PSFWY/2vYn0pGcw1gR0ex3Oc= Received: by mail-ua1-f54.google.com with SMTP id a1e0cc1a2514c-7e389d74dcaso971220241.0 for ; Thu, 04 Apr 2024 21:53:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1712292816; x=1712897616; 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=bFVkjkG3EDW3xTK2+dLWlF2WsS83zvxGEi3lzpt+3ww=; b=Jzkvd6fdsBHZlRlyvzJcrgyhClb5TnPOd/jXwjPRt4rCd9tLmS1zWzyPwChe4OOdMW 2Co/s9v4/qC8J66fu0US2E7QLd+6nPUZ4JNoq0IqgAijjGL7qRsjzeyS3R5QPMOMCY66 EnNZzpOVXwY/v3Jjp09vi8sfJglEnNKc3IHZXj5qJ9+A39iq4F0SXEDtFYL4BmJ9pLQ7 KiCBreg6TjD0CIR45Op+suXUXGtww+Xmztvh6/YoG5QSYBwyrKiIL1B+xQjXSsc8OdZs OaA6FIobuZqf/Vrjt0JRpYAbW6103/oEB7eh4G9dQTaqPXGoDyN4DQFFVrwuK206Go60 qs3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712292816; x=1712897616; 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=bFVkjkG3EDW3xTK2+dLWlF2WsS83zvxGEi3lzpt+3ww=; b=C2HxMUqNwe5WafO4+YUpwIquj00rDSgsQmVSBEDPlRM+3ExYEZJEUHRcP68YMYLtd7 No/1evvuHhdIazBcOREQVZmTkRpdrmB0MGAgwrDM0WTwhNYv9USkuWu4FvISPvXMha/g U7Mc479zRFOolNsypHZogtQyPElDNTAqg5lLJDESlFrGvtURWj9dXetSyHbjgwsXM6T7 KHwKfAwRiXA9xwG8q9MkcjJ88L3QB+Z298qiPfLQZ+60KSlgeYEstPbTNuZuaMxKpSeE UamVJqnlwlZKYTTFxgjNpIl14ddAipMsGnNELWrM/tSnQZsBLROqBKnyJSwJL/eJH5GY axlw== X-Forwarded-Encrypted: i=1; AJvYcCXNK1hJ23ObkK8OgnMLCApywtFWtYOzb/Euj2ZUjME4kY0jNYT7Npr3iJmwIvNwFEbmdVBOid6Pp8DNNExEZXIUIko= X-Gm-Message-State: AOJu0YzTecQx7uBi2ZJQ+p4SrdDPlXFkd55uh7slCtyn2161Mq9+kpEA kUhJV4ZSvjVnFG6vOzpv9FkxqRFctn/eLtuTLXlNvKOZVQZ7imBYXtB4JQSbzYTsLo4SGSFeShV GQdovxiBU+D1murN/tjqCADBj3fmCZikxkmI= X-Google-Smtp-Source: AGHT+IHvjIVIWR4WSYqi79hjDTimfy2HNP7Pth7ojX29LaztBG1WJ/QETo4JB0zzqSIBaUIXaSvkwozrZ9JEnygHqPc= X-Received: by 2002:a05:6102:4424:b0:478:7191:966c with SMTP id df36-20020a056102442400b004787191966cmr225076vsb.12.1712292815680; Thu, 04 Apr 2024 21:53:35 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Barry Song <21cnbao@gmail.com> Date: Fri, 5 Apr 2024 17:53:24 +1300 Message-ID: Subject: Re: [PATCH] mm: page_alloc: use the correct THP order for THP PCP To: Baolin Wang Cc: akpm@linux-foundation.org, mgorman@techsingularity.net, vbabka@suse.cz, linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Stat-Signature: bc81yuwb1r9jf6cns6ctthtxrqbkziss X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: ADB34A0006 X-HE-Tag: 1712292816-647675 X-HE-Meta: U2FsdGVkX1+SEYeOAcZVa6p1H7MtslQIu5vxckiYMKzlt5Otpl+eD9GFjzqrgnFcWj0ObZdVBB9fYhNb0CHijbwvqa2BNTNtKXRA1WP802Q8Lu2FNUTpfdgvNeN6xnxObXV3NY5VUlKW3AkD+un3wXN4FUcZL51cW6TzFtf1fya4BwhFJcfMQmYGSLdw0xpc5/8SUR9vwAefuNW2pQ5dp8gKNtBfj6YPBkoOKtdSua+5ZQvlivu3LDEPaou1GdzmaFmXfGCQiUgaQMZfX8Ej0toF0vC9xYXchZazvgXrZ9C0CjIDAyZXlxqGHNdai1ur60a63IcRz5LZODKtrjXp0VtifwLLHyKRlhLiD2nS2/gSdGe0n/eDoVw+szWuVM/qanKE1pCWzx351+qcRpu0dgC/snKzmaz1NYXHoOoDhbbbBJ4RfNcI2/43gtZI444Ew/b2hxWfSvj/EXyCiUVwXZEGrzw/AQ9uTPlvFb7/0BR54itwXPaMWPYs6saYGlDK37H34HLw1v+IS1WVp/FyT9XqZidq4DD5y4o8ZbzXfJVrtu1rulJeo6GFDNi7sg+Faltp5G9EQW9k3oh6muz0rY05suUf3bEWrbDCcnwEFWAWUIUo1jJoWH5ofHJ/12gkOAE2ywLfhjwlGweYCa3uxJwgkEvlEyPj0wzu+iNM/JobGQFKa0D2Fj+uO6aLsNCR4BeR/NWZmWM4J2d5pyHU3hRrN7uQzv8vE5yR2yOUlPr/fJzgfgNuzYRIctGXaQim0ibfxBycjNXmJCXxzPczCqw+R8/Xw3Tf/5K8LOIEBEPk1C0Z/OzKFHwsRJzWy2prUr0s0b0hwmxu+4h7EGFroOzdAEYIWJLSOZVoB+/U8MI7NFLjwtkgy1zTfVDpoLrl7sBxXrDsA+amqJ0sUfvf76rHmjFwtDU3kYbzFFfrmcSqmOmfGkMYOYLcy6ySEkcSSJ94Kq4eenRpRrnOOI7 TLbENL64 4u2ADGZXoauwuCr3XmjkjYMK6lYsSqjFfJzm3Xyl+Zdz0mL8Eb2Avqh6MUVQsqpxlQvkb3x82XVbWP6Q= 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: On Thu, Apr 4, 2024 at 2:47=E2=80=AFAM Baolin Wang wrote: > > Commit 44042b449872 ("mm/page_alloc: allow high-order pages to be stored > on the per-cpu lists") extends the PCP allocator to store THP pages, and > it determines whether to cache THP pags in PCP by comparing with pagebloc= k_order. > But the pageblock_order is not always equal to THP order, it might also > be MAX_PAGE_ORDER, which could prevent PCP from caching THP pages. > > Therefore, using HPAGE_PMD_ORDER instead to determine the need for cachin= g > THP for PCP can fix this issue > > Fixes: 44042b449872 ("mm/page_alloc: allow high-order pages to be stored = on the per-cpu lists") > Signed-off-by: Baolin Wang LGTM, Reviewed-by: Barry Song In the context of using mTHP, perhaps there arises a need for PCP allocation for frequently requested mTHP orders. These orders typically exceed PAGE_ALLOC_COSTLY_ORDE= R but are smaller than HPAGE_PMD_ORDER. > --- > mm/page_alloc.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index 1beb56f75319..915f4ef070da 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -506,7 +506,7 @@ static inline unsigned int order_to_pindex(int migrat= etype, int order) > { > #ifdef CONFIG_TRANSPARENT_HUGEPAGE > if (order > PAGE_ALLOC_COSTLY_ORDER) { > - VM_BUG_ON(order !=3D pageblock_order); > + VM_BUG_ON(order !=3D HPAGE_PMD_ORDER); > return NR_LOWORDER_PCP_LISTS; > } > #else > @@ -522,7 +522,7 @@ static inline int pindex_to_order(unsigned int pindex= ) > > #ifdef CONFIG_TRANSPARENT_HUGEPAGE > if (pindex =3D=3D NR_LOWORDER_PCP_LISTS) > - order =3D pageblock_order; > + order =3D HPAGE_PMD_ORDER; > #else > VM_BUG_ON(order > PAGE_ALLOC_COSTLY_ORDER); > #endif > @@ -535,7 +535,7 @@ static inline bool pcp_allowed_order(unsigned int ord= er) > if (order <=3D PAGE_ALLOC_COSTLY_ORDER) > return true; > #ifdef CONFIG_TRANSPARENT_HUGEPAGE > - if (order =3D=3D pageblock_order) > + if (order =3D=3D HPAGE_PMD_ORDER) > return true; > #endif > return false; > -- > 2.39.3 > Thanks Barry