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 4DC99C25B78 for ; Tue, 4 Jun 2024 12:02:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A38C86B00B1; Tue, 4 Jun 2024 08:02:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9E83D6B00B6; Tue, 4 Jun 2024 08:02:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8D8896B00B8; Tue, 4 Jun 2024 08:02:10 -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 6C6F66B00B1 for ; Tue, 4 Jun 2024 08:02:10 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 05AFFC0E47 for ; Tue, 4 Jun 2024 12:02:10 +0000 (UTC) X-FDA: 82193068020.29.F0601EA Received: from out30-99.freemail.mail.aliyun.com (out30-99.freemail.mail.aliyun.com [115.124.30.99]) by imf07.hostedemail.com (Postfix) with ESMTP id F1A0540014 for ; Tue, 4 Jun 2024 12:02:05 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=aF3qRNJR; spf=pass (imf07.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.99 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=linux.alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1717502527; 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=wyzfS+26xWdhAEKu22Jk/trE6TdLI2JG9ktldvYMwZg=; b=dRisyl0NdBIwWp1qpaw4pxoOZ9pBTRekoiOfOohooH0zOuU/cpjvBsUFw7WtXB3LTmXJR7 k+om7yIywpYOB54taCZ/IoKS6QZ81N1FmNTGI7P3JwIP4yMGuTXoverQa3gEr8ZDFii8YK WZ1v63oriUvKMlOyRDyqI/tbPzt6c2M= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=aF3qRNJR; spf=pass (imf07.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.99 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=linux.alibaba.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1717502527; a=rsa-sha256; cv=none; b=msuY7lgqMRX1rVHTQbXV0t+1cFLRfBZ6KeM3bQ7h39PjnL+Nr3pDmvx0mlO8okinAp0Y1R 9RPAHKjE0pNG/RiNYxrjmpk90xTCViTZHuh9nm61SzjX8kpKQuYgos4AS6oLZGGGNaZM9M 7JPMbXY06b1rbqibYWEa4jKDhXA2U5s= DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1717502516; h=Message-ID:Date:MIME-Version:Subject:To:From:Content-Type; bh=wyzfS+26xWdhAEKu22Jk/trE6TdLI2JG9ktldvYMwZg=; b=aF3qRNJRusm1X4cEiIbOv3j3VWZqymagb0KCp1ZLXPyLAe5yhiFAbAibTqXcp8A9es/lGXj5bcMRC25q/xyH/+Xh8HbEwsho2Nz6qEKDDnr9Smas0oyxtmzwEFRF93lUt/a4Yw8LQNV6LQTUhnzPVSX0rTJLheey9YQB5xyb2OI= X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R421e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=maildocker-contentspam033037067112;MF=baolin.wang@linux.alibaba.com;NM=1;PH=DS;RN=8;SR=0;TI=SMTPD_---0W7r2oJB_1717502514; Received: from 30.97.56.67(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0W7r2oJB_1717502514) by smtp.aliyun-inc.com; Tue, 04 Jun 2024 20:01:55 +0800 Message-ID: Date: Tue, 4 Jun 2024 20:01:54 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm/page_alloc: skip THP-sized PCP list when allocating non-CMA THP-sized page To: yangge1116@126.com, akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, liuzixing@hygon.cn, Johannes Weiner , Vlastimil Babka , Zi Yan References: <1717492460-19457-1-git-send-email-yangge1116@126.com> From: Baolin Wang In-Reply-To: <1717492460-19457-1-git-send-email-yangge1116@126.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: F1A0540014 X-Stat-Signature: 96118ianfsaxetemtarjun48ujcro6ht X-Rspam-User: X-HE-Tag: 1717502525-453633 X-HE-Meta: U2FsdGVkX1/shvbWS4fHd38QPyU0A6jwMJyIF5VNfScdW9KgFmxEyyYMjiLr+/eLaDdgxIA9fgXqdhDwSWEN18jYoS3VcXHOxieft6fg551IiT2+vFPxZiTF6moVuP78Le1t3ckjt3+z7Xbk3v5Xu0APFcB0d74RIaroC/fSsV+Oez9Wn1SUIfr1grKMaGVRl2o+ZlLWSDhWHrUqmV5XghflronPixUX6jjEZMCu4bI5TMJyAA3z8o1LFzk2A1Kt5fbcST3u16n/V1q80+D06f3kTAkF+h0us1bXxefZO6OduivkKUfsqYRYwTlLu4khhOA8iCwLNSTcjpbqnAUrjqFm7j9qDET0wE88mfiaGQ891DDJ1Wm3zareDXj9W2Z2BqE4gPkj8aAvIbzDyi4OeP2TO47eNv4U5+jbi+UiSYuz6t5nQvASIaOsoB0DO10Yw985M+hR71P2FvLslPDK6Cf16LVLZ5z6gFy7TR78uFTn0JOBWeiPelGoh0Rm2ufj4eLC+tagGJW/yZzkq3/woOPjLP6G45rNoZcHkcPrKyIUHytf5PufFaIywAUremn1WIHfNqLFRcJ7ez48RzaHm8k2vOib39jO3FySXh8P1FBYp0vT7y6IQDIVpQIMxt3oETUVramqwb990pI+ojM8H2DZSxPc7NuoSk66/ZSR+RRmr4D2PpF3y8i7//AI5sTNZrtMFwztCHf9DGXzU/ICwFbVzF7edEjZv0C1Sdg2PWRf6koc7ddFWJEwvTgyE0Dh7fr2zFROOIpJRx4+VWSX3Cr3PhLkkRmpYkQ7ZAC3IfhR8HhOhXmow3JITSuajo6qfWSNscsDlZSZttDygXEZuCbepE/80+PsxEqADLlpwg6kMGWNCHRh7XZBhQfiD8CO78kM8GDbOsB+byb9kF3e96OZ2QxpV9IkqdWA92ZtBC9oiQCs2C6OHH4O4QVjq5Nc0uDA0dGFl/sDyheY8h0 +IUxc44p N89qmQP/sP7zz5XXTvjC0W1msXImH+mzrm5TKloWW3mh7lkS4Elkv0c23vBOvCCm1eVwvqy7/VGERpU5WaVdOa9FAJm1YEnWXLDtmaX6OgzkSmEL3Q8tbsMAqK4FzwHHDql2dXR9f5i007Oi8/EcbOVxCGZvfQ+dRT4rcRYQ+Gdm8Mmakl3JKPMQZ7CQcgPmYFdvPZINSeBiYUV3PpCjIMZzOQGu8cvh7xwx47g9hkyQdoJ2EdgkOxe2gcooyM3iVjqWX9VYq5HCRfMgKyPXUg5EYr6jasxb/J2zdv33rJP8H1FYkJYsBXPr2B32MLAsVg0EGS4ZNpRat+piOPsMJqA8k6OrSY9q3hUHhpJhFfDwhVvLUrytDopqm4Q== 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: Cc Johannes, Zi and Vlastimil. On 2024/6/4 17:14, yangge1116@126.com 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. > > 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 != HPAGE_PMD_ORDER) { Seems you will also miss the non-CMA THP from the PCP, so I wonder if we can add a migratetype comparison in __rmqueue_pcplist(), and if it's not suitable, then fallback to buddy? > + page = rmqueue_pcplist(preferred_zone, zone, order, > + migratetype, alloc_flags); > + if (likely(page)) > + goto out; > + } > +#else > page = rmqueue_pcplist(preferred_zone, zone, order, > migratetype, alloc_flags); > if (likely(page)) > goto out; > +#endif > } > > page = rmqueue_buddy(preferred_zone, zone, order, alloc_flags,