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 A9484C3DA4A for ; Thu, 22 Aug 2024 17:23:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 40EB26B0139; Thu, 22 Aug 2024 13:23:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3BE4F80044; Thu, 22 Aug 2024 13:23:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 261866B013A; Thu, 22 Aug 2024 13:23:20 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 0769980044 for ; Thu, 22 Aug 2024 13:23:20 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id A28B94124D for ; Thu, 22 Aug 2024 17:23:19 +0000 (UTC) X-FDA: 82480552518.17.A35A5BF Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) by imf15.hostedemail.com (Postfix) with ESMTP id C7D55A002D for ; Thu, 22 Aug 2024 17:23:17 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="uHg3g+D/"; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf15.hostedemail.com: domain of yuzhao@google.com designates 209.85.166.45 as permitted sender) smtp.mailfrom=yuzhao@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724347380; a=rsa-sha256; cv=none; b=dpWIu5JCy8gvmwGtLqgnSTErVhhcu30g3PyD3mCnMoeFwTRc/2VTmnGZ4HOp3+xgmpNH3i mgvDeN74wEld7QjGPnGZOS6L326JGy52Emrd48VimuUEZhQN2/2zELSyDvka1ufq3uFqu2 FfR1VwsZ9g44KbOM6jRVsGCqzhXJOmw= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="uHg3g+D/"; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf15.hostedemail.com: domain of yuzhao@google.com designates 209.85.166.45 as permitted sender) smtp.mailfrom=yuzhao@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724347380; 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:in-reply-to:references:references:dkim-signature; bh=xuUhWaS+3oHxDlI8mH6LZSbKLa5ZcNr2XMJJpylbs80=; b=33LqChRPQhwYTme5KXn2eLpCx+tlq1Y+veDfQiJmjPNB8a04WNWLNHRUQUeUH5z9uZNsQo LwMrOZVIP5UAREoI8XBDKRaFussY7vBANHYAJl6inKj8GJ9Iszgz84keZ1oT0FCjB0wmL8 ZAFJDqXAOBTIhL46IME9+wSFeFOBU98= Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-81f94ce2272so39284939f.2 for ; Thu, 22 Aug 2024 10:23:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1724347397; x=1724952197; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=xuUhWaS+3oHxDlI8mH6LZSbKLa5ZcNr2XMJJpylbs80=; b=uHg3g+D/wrsA2YRaALsnS6+UmiAPRS51MZXw50Gs5HKYgyciYSrMRBBoACyXerNEJJ 4CxTpcb1xMAm10Zx8sCEomNfPuUCFPgopt3jQKTngxK2tMT6wh5Dm2qQlLQb6kOZEwp2 U4GwrT1yaP4GPa6H6eI4vC3eLQ38cR7xpFYjlZRMFXr8ChxR77nFD36flTHIbxv1H4xb +OBb2qOA/4eOQxxec243w4Oqr2U2DP/VfYCkelT+U2L4wS7tHOqYkG9+JhZsy7fNuAhF JRDuYIiefsn0X6o9PyO3lJPrKoiF/wgijHJSJ+5TCQZq/ySo/o9i4Bi5L626X+JN8UDG k9yw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724347397; x=1724952197; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=xuUhWaS+3oHxDlI8mH6LZSbKLa5ZcNr2XMJJpylbs80=; b=eEdUCXFVNTU7P+rGhuqfSFvBXukdpZTx26o8BTInkdlgvu5ZOobdmF3FUe/awF0jz7 rQ2ttyHcE8dWzaxhSC+GzFWb+J103CuQPONhyFyFylrezsWbA2bIxGznDHBxpGs3tjTz 5JDt7gvXDN1zUjE4bHcabBJN/GMfQSnhS4jA4AtH5uzy/ASPbGKewbilB6MBYz/6ko5u 8EVphglIeFEYHlgMfdxwXtnYCJRe4//FDXxHcUcEJ4/+4YK+kEOmypKc4YoJKYRj5dcG 7i3kO9NL6JMONrFVSd5+TN8/Zq6ZkoUZWNEHdWI/1IDQu4fOfNXukCa3EkJkbNBXzfOz oHvw== X-Forwarded-Encrypted: i=1; AJvYcCV4VoW081LB01w4bCaaWOWgXwfGDOC9ku1hzTHjhoARQmQGv1J0Gw+1ttoYdztfGmv3ow4nue0/MQ==@kvack.org X-Gm-Message-State: AOJu0YxTFpVUUj+dfrBybEmhKmdwKCujVZnYPtCSH1EiIqviycL5dvgS ZS5agsMUUD9F48vDkja+4Un+Ei2jyAup/rapWjlcjn/Q0OJN6BtfXEzQkwwCtxFSpM94GPgV8/8 Abw== X-Google-Smtp-Source: AGHT+IHRZnUZrELwxvZZaKGvLcI8LjG2TFQ9AVQ/pgzYZwY6BbkMvj56DSEjWVBINSwQLcMjsmtEDQ== X-Received: by 2002:a05:6e02:1aa5:b0:39b:389d:f7ce with SMTP id e9e14a558f8ab-39d6c3500f9mr69831235ab.2.1724347396442; Thu, 22 Aug 2024 10:23:16 -0700 (PDT) Received: from google.com ([2a00:79e0:2e28:6:b7cf:b486:59da:5224]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-4ce711082dbsm571819173.142.2024.08.22.10.23.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Aug 2024 10:23:15 -0700 (PDT) Date: Thu, 22 Aug 2024 11:23:04 -0600 From: Yu Zhao To: Andrew Morton , Muchun Song Cc: "Matthew Wilcox (Oracle)" , Zi Yan , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH mm-unstable v2 1/3] mm/contig_alloc: support __GFP_COMP Message-ID: References: <20240814035451.773331-1-yuzhao@google.com> <20240814035451.773331-2-yuzhao@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240814035451.773331-2-yuzhao@google.com> X-Rspam-User: X-Rspamd-Queue-Id: C7D55A002D X-Rspamd-Server: rspam01 X-Stat-Signature: nnyjznrmffcj6qkjqd4gxs5uqxjtibcb X-HE-Tag: 1724347397-65990 X-HE-Meta: U2FsdGVkX18ZKuR2qFlNx90XaSNK7/TbzQlMPSuNjmUMp/XnMIvzNW0RqBK56qSkruiEbBpDkOUotMPzceh8WofczU6SXcNSRUIZK2DfR5JnfusquReEeI2kCj/k24mFghxvocPvnt6QOUezOfhLg4jU6n18Jm0/+FjAEYp4H/Z3FGD2MEBp/3DCPUvT2/fUZU1Ln3gLRKPPWObou/uua4/TQ6ju8yFdh+g2uQC/BMrvIBMNV98MwGswiivSRbJx4T4r7mShjZrxDAsQpNsvXNGJrOmS9JXrSGiHN2wntKptit4x/d3nm2iwJx3TLRaRWhgWqgsxCHWfGINdVCOoslnmOMIPshFaATHdIMAm3cW065/sT6WPGZGZ5GRB114P7NJ/Y6MVbat/Fl4Q7UpSed+qUB6fzxAoMgGCGYCk8vr/ZEN1NsJ8V0+mH+IKhcVvwAD54ZF7+lPw20gCsjJnKgThv+oKvYsFKm41AL2XOHhPmwjAZI++lkE77QFYxhp1WAnPezfklP6RASErsqheGN2mkVri5GSKLrmg/kTZkwkDR2ufbKvS0IcJ3SODj/vKQesXLdJwg7licXsTJugY6CYjrNkw57Y2bWjIQJhTKB+PAAy5XT/dsyMc2rEfj0TF8ODhDjNdF7uJa5w+mnDUO/WMty0Ow1C9I0OBrTQ1SkIjXYz1s2c9oBghUrdo239UdXz1xtKgtF+cVIXiSNrZNtp3dQQjISPwT8DtIfo3F2yCtvG9kB85bggaC1mRw3LXuE1vELtWHq9ckkL17dVOu/HhHSVa/oTynGJQJdjh3wod9bdT78M5O0SpuVb3c/b8K+1PIQGCafXzmaDW9DyX00cEJdxMD77YuDdPaHdwDC5M2AVkezk9THO0jcKu0Oc4gryN0BJYH2yRh1ejaOsEsUHdMAmMdVtkXDJBX0/qaNc8RUKVA4VvChlYH08h9POOLVMswnP/9GxZW+CAkhg oVn1Pmf1 dxJ0XNTohupDEePgtyEsfgokjlYjzZC1DnmFiuzvAJVnYh76lIWW7H44VEeXSm4i4RsBY89GzGCTvZm1F0zRDeY1mFXC9n9z6LccIPsZ2yqyA8EkuNs5RASgH3h/mf5i5/5+8K91C6kSzOaLenqY8ySfVamsKgc3vILKTpFFgNqS4Hjg/ddhgggwGRdDKLuVePUwX83LqVmMABwFOrMQFkJ7bOJJ7skF8oTBRgs1etg3oRxIyDjPTx/oBpGrk8RbjFQM1XNAO42Zsq7PTdyHeNSplaWZOUXRbhEOmdcEniAMbhS4w0HT7h6NIKPapIl1eoqAn8t+WDBFw4bjrFoXox8iIOARI46ddgqKIhG5FvYeoN6hmoCJgG36ZrrA2am7SQ13L 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 Tue, Aug 13, 2024 at 09:54:49PM -0600, Yu Zhao wrote: > Support __GFP_COMP in alloc_contig_range(). When the flag is set, upon > success the function returns a large folio prepared by > prep_new_page(), rather than a range of order-0 pages prepared by > split_free_pages() (which is renamed from split_map_pages()). > > alloc_contig_range() can be used to allocate folios larger than > MAX_PAGE_ORDER, e.g., gigantic hugeTLB folios. So on the free path, > free_one_page() needs to handle that by split_large_buddy(). > > Signed-off-by: Yu Zhao > --- > include/linux/gfp.h | 23 +++++++++ > mm/compaction.c | 41 ++-------------- > mm/page_alloc.c | 111 +++++++++++++++++++++++++++++++------------- > 3 files changed, 108 insertions(+), 67 deletions(-) > > diff --git a/include/linux/gfp.h b/include/linux/gfp.h > index f53f76e0b17e..59266df56aeb 100644 > --- a/include/linux/gfp.h > +++ b/include/linux/gfp.h > @@ -446,4 +446,27 @@ extern struct page *alloc_contig_pages_noprof(unsigned long nr_pages, gfp_t gfp_ > #endif > void free_contig_range(unsigned long pfn, unsigned long nr_pages); > > +#ifdef CONFIG_CONTIG_ALLOC > +static inline struct folio *folio_alloc_gigantic_noprof(int order, gfp_t gfp, > + int nid, nodemask_t *node) > +{ > + struct page *page; > + > + if (WARN_ON(!order || !(gfp | __GFP_COMP))) Andrew, could you patch up the line above? This is what it's supposed to check: diff --git a/include/linux/gfp.h b/include/linux/gfp.h index 59266df56aeb..03ba9563c6db 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h @@ -452,7 +452,7 @@ static inline struct folio *folio_alloc_gigantic_noprof(int order, gfp_t gfp, { struct page *page; - if (WARN_ON(!order || !(gfp | __GFP_COMP))) + if (WARN_ON(!order || !(gfp & __GFP_COMP))) return NULL; page = alloc_contig_pages_noprof(1 << order, gfp, nid, node);