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 CFA99C3DA4A for ; Thu, 22 Aug 2024 17:26:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 597F76B0125; Thu, 22 Aug 2024 13:26:15 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4F8FC80044; Thu, 22 Aug 2024 13:26:15 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 375436B0125; Thu, 22 Aug 2024 13:26:15 -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 1332580044 for ; Thu, 22 Aug 2024 13:26:15 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id B48421C557A for ; Thu, 22 Aug 2024 17:26:14 +0000 (UTC) X-FDA: 82480559868.21.688C05D Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) by imf04.hostedemail.com (Postfix) with ESMTP id CA1BB40023 for ; Thu, 22 Aug 2024 17:26:12 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=jBdr+lgr; spf=pass (imf04.hostedemail.com: domain of yuzhao@google.com designates 209.85.128.42 as permitted sender) smtp.mailfrom=yuzhao@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724347555; 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=O4DO9awebiGfQkb+GVLhK+nasDGzkupYiz7rKh68ig4=; b=Ch5G31r4Yb5JbxJmAvWDvymHC0CWyd/uxaZ40fi7VbfQZsEVB8JapL34gCv88Rl6XmzCNa 1e372e031kXiM6kaQZZa/c4h8Zzb3+kyu/AJYex5m9fdAZVHNcOR+NQgKcDfbQ5GyR4FM4 8c22zK/c+jUkDHfLfLXpW3wE0P29cGE= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=jBdr+lgr; spf=pass (imf04.hostedemail.com: domain of yuzhao@google.com designates 209.85.128.42 as permitted sender) smtp.mailfrom=yuzhao@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724347555; a=rsa-sha256; cv=none; b=GXHo0Np7Y77E5l4JHLHnMXcp5BSYAZo5ojbu7BOXlgjEJlqLMtKVcjWSorG3IDoeu4NSNb 0wYuTA4KBGO2FmVEg23tCrJqoeV04fUWT9p95xfsfxM3Trv4EDMEqoe7K7UFDq348gT9Z8 1d1HFZZGxtrV+WOFKTjUPZ3whLtaaSY= Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-428e0d184b4so7724625e9.2 for ; Thu, 22 Aug 2024 10:26:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1724347571; x=1724952371; 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=O4DO9awebiGfQkb+GVLhK+nasDGzkupYiz7rKh68ig4=; b=jBdr+lgrIqdF1LJFrx0DMr0DSuhgRiNZebMV2Q79zwwfq32DlGLC+sVuQMlkyvU/KL WDmFoih4n7DFGRMXapv22PLOWxJuUcRugsujceTpslIhN4kI2UulnYTZ4SbHuxy5wQOg AaAehYF+kzSXSlsWfc1/U/OvD/WpIGaZ8jN5yusGZS5j93jYDv77YL/GIKbuEwJsmCMx AemhT7UsNTxw9xEcwM02oxCg+MXYiMUgV5zwxYGjhsB0QR/SsgPp1j4D2lmGXAmvCVjq RdQX/p95ef/BuYdEDBPSgUXPdddlKIV1NRP1QYNcL1kyJX5QqOkxIOwJ2kxQnKYmivmC VOsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724347571; x=1724952371; 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=O4DO9awebiGfQkb+GVLhK+nasDGzkupYiz7rKh68ig4=; b=W+z6nCv/PD4DNqAwsGcEJixbnsubd87pWeOO+5UcoywCTvJ1axiN+Uqdwr1k8jahSI 3y26XBTu8go84iqaU2oBDD2jTxrZS9UXhxtv3CyD0Wc16JMXrr3AbxiLdDs8PSOb2Idb NzoBr7W5JoRANhZPKjhOaJ4ZYGk21HcryGnfDcl0w7Vx4cAYkIfvtxa/0vfL/sSlQGmP CmzT1olnZz7w9QqYspm8yzy/0aj7968wKlrEwFqAS5sgNqMCtP1ef+A/HDkl7HGX4HCU QbG9JRoLPpM+HtFrutElXUodzDGTQ/DxOu+TG2UaWEQ2VXaLr7lmcv8XG81srYsef3uR BAIQ== X-Forwarded-Encrypted: i=1; AJvYcCVBPaJp3TzIXW1PYlS3cwEEhJw0KoQzEqTx6VVfc84yfG4p/jfSERZNkJYSSVFYmlryHvQDqYcriQ==@kvack.org X-Gm-Message-State: AOJu0YwhOyF5btc3hnd92bjEanFIjRw/594HrkE5AZ4ow+y2+vt2DaIY 3HjU0B/kNqrhUA6um7NdEWM2GxeT77/vMYuvFYvdESZ85CfWEPDl2PFqcMJIwaCyQ8yNxESngU6 G9UhzF/4FsBTUrfd3YzFLMRpxbZnBBAQe5du7 X-Google-Smtp-Source: AGHT+IERlA2H+rBepAqpYpAQ1Uha6e+U4xtYh3TpUMHIKxU6JLuOdAROJj/68rX4BvAwcW5/HgRiMK34gzHJukAoUNo= X-Received: by 2002:adf:f509:0:b0:371:8d32:b5ed with SMTP id ffacd0b85a97d-37308d725b6mr1951352f8f.46.1724347570435; Thu, 22 Aug 2024 10:26:10 -0700 (PDT) MIME-Version: 1.0 References: <20240814035451.773331-1-yuzhao@google.com> <20240814035451.773331-2-yuzhao@google.com> <2d418463-1458-5361-86c4-a07908fc114d@huawei.com> In-Reply-To: <2d418463-1458-5361-86c4-a07908fc114d@huawei.com> From: Yu Zhao Date: Thu, 22 Aug 2024 11:25:31 -0600 Message-ID: Subject: Re: [PATCH mm-unstable v2 1/3] mm/contig_alloc: support __GFP_COMP To: Yu Liao Cc: Andrew Morton , Muchun Song , "Matthew Wilcox (Oracle)" , Zi Yan , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Kefeng Wang Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Stat-Signature: sp9r47eo5txgkztswbtwrmn6g9qn13py X-Rspamd-Queue-Id: CA1BB40023 X-Rspamd-Server: rspam11 X-HE-Tag: 1724347572-866618 X-HE-Meta: U2FsdGVkX1+oQFlOFhBJRUlPUtHlI66nXgDAIDGe66p6xPqB3QNmDZ0FwdOKDsYEKVkaoHzizTX+9X1MO7yNDk2ZdxmNhJMmKGYU+tufF8U+ODd/fFS5prSuNpil4IQG8SmiwJECwiabUzwi9mzqndcy/CQ8Lpf3MFpWwI01GkCWz90wdvpWf1TzVQpOm6B+N98QMG7DEvTgPVdutXapbqsS8AV2398XSGPIgg4OsTT8mvaCs2Q+c+EBF2B/fPAwpmlPFB2Zq4XEC4YLXPwGxGGl3ez7IOYNtvXF8/PpJp9RM/Xl1xjfYrn7lmjtTqm3M7cwl6zGwPiKaOfkbr0qTt4vRErVTxu5OB/vjH0BUymh9o7RJ7GvLYfeVYbqGlUD25bqo8DgP6x625Q5sR5zzQne2hYQ64acrDRi43t+YuYmcxP5jiYIldkedtozYtOTEIYd5AZ64NK2kHRXwd1EU16QRxm74iVrKGPNmX0UUkzVAEz5qXkclPlzePbniA610o8hrDFjudQ+doVGy2TImuxZGeJNEt8KqBkhBDQlj8/xodoPhLOWeNvnfS1C/ZtgjyjWmARdjlxTfLrGQUmOCzr1QADbwoUEK3qOPi2B2ZCRIaefKaFk7xHaE8dcLgtkTO3RznX2UsM/xGdHE0pAPTNr3BXGkOcjVNnEzPywpg++hQDo+WBzgt7eGRfoOXRtaifoV0836qxsxUzYr8uOSEaGGNp67c5i8ex0xoyYi20c7nwcekz/bqcVexfMQ037fDnNSQsRfiwOw3z3W+QaYxAfMGBkDDiVZqja2BYpV+wjNGdXkw7I3hlXytOIe1VESJR5kN3lkCx4yJQjmGXyC17pkMXfbn2XB4VMEx4PIxqYF9MmbQ0OIu8I7H0Pc0Hw7ZYI+vZtPPdLBS9C3xcfLnI4HdeBRihoS2DLVK2SRfSQTMgvnFEslbwy0q/+nnItBkZ+TddmKYLHTmO7FWP hn3QmUkR AQ2hTLmhzHLHrmWljHm81fa95UOJWePFpApxx67z98s4bTq5CT6gST3WkmGYuvfD1G3ju49d8WJHpfhh6pfEbIgfHaJTKn+nNE5dst3eqQvPKJSb+bbDBctlLl40iiNs3rN1i72CeqO18t6ob2APR+RZ8qzkvM4xbZhRryCFOGr3AW1ROJDt6HF/3X+4jIsAjhGDbGTJ8d4VCUIJGrJQYbFaZQ9/x6udFgCD2lBcwcLuDbWd906nCDsp/y7GMIyuHPIeekrirF/Ylqrg= 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, Aug 22, 2024 at 2:21=E2=80=AFAM Yu Liao wrote= : > > On 2024/8/14 11:54, 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(unsi= gned 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))) > > It doesn't seem right, it should be !(gfp & __GFP_COMP). Thanks. I've asked Andrew to patch this up (and another place in mm/cma.c).