From patchwork Mon Mar 3 16:29:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Hildenbrand X-Patchwork-Id: 13999175 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 9B1DFC282CD for ; Mon, 3 Mar 2025 16:30:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2CBBF280004; Mon, 3 Mar 2025 11:30:42 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 27BD3280003; Mon, 3 Mar 2025 11:30:42 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0F6CC280004; Mon, 3 Mar 2025 11:30:42 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id DCDDA280003 for ; Mon, 3 Mar 2025 11:30:41 -0500 (EST) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 811B6C0C60 for ; Mon, 3 Mar 2025 16:30:41 +0000 (UTC) X-FDA: 83180778282.04.84F5812 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf26.hostedemail.com (Postfix) with ESMTP id 9EE81140006 for ; Mon, 3 Mar 2025 16:30:37 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=hQEXlivw; spf=pass (imf26.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=dhildenb@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741019437; 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=8IqquS7ke+4+XOv5L24m6qSx7K0PzdfhIUdS/cnqyVA=; b=la8DKA/yxxocr9+nbTO/SS9gFc8CdxRXpKjnBCV55I7RetWiDZ0CATh9ELX+PzdxNXMBE1 mtjZAQDwQWfe3n0mK58tU9fMSpPglv3BPX6B7RNyiJBI7WH/9KnpXvffLGGnTcS0SXTglK puv85t2myxAQtR1o+x9Autq8w5C1X2E= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=hQEXlivw; spf=pass (imf26.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=dhildenb@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741019437; a=rsa-sha256; cv=none; b=33TIFGdMbxcRezK48jh+/IY0QXoc0QJU6hmqM6WDxqHjHoq8rE9Zi5iFp2LV/dvHbLIxlf FWQFeXEw1ctDBIMSp4TKl11qQ/+2snHqWX1KJLm6Fmecw+3zIa2TCuGvKQ8vJvFR/65p95 yUo8Yl6ZrKFAYEyEyg25lFPjnLIiDKk= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1741019436; h=from:from: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; bh=8IqquS7ke+4+XOv5L24m6qSx7K0PzdfhIUdS/cnqyVA=; b=hQEXlivwrabwBWCdRxsHyAOreN1pKOxB356ByIKhmm9zIFnqLqo3x5kuQxl7qcykoHLA1A ywmvpvs7ZFUteo1+mmBxb2YxTLgAVVf1HHm8SZ+BghdlY46HdVSAzSTw4+KJ+m+YhAIbpf OxWKoYH/XXrthCo5rYHd65am4Zd2vmc= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-241-yQwcOEcPNeyvDsu2A3HKqw-1; Mon, 03 Mar 2025 11:30:20 -0500 X-MC-Unique: yQwcOEcPNeyvDsu2A3HKqw-1 X-Mimecast-MFC-AGG-ID: yQwcOEcPNeyvDsu2A3HKqw_1741019419 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-4388eee7073so24304415e9.0 for ; Mon, 03 Mar 2025 08:30:20 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741019419; x=1741624219; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8IqquS7ke+4+XOv5L24m6qSx7K0PzdfhIUdS/cnqyVA=; b=peJbjlG8GWRK1aKAGxB19Wi+FZEeUgwUyh/qjOPUAlcSmQkaTXw8mYYhlL3PqLtQJD VS1IYa9F1qtXj3ya4lP2yOcKhq5DDoyIjnnPsjNqfYNzdXWTdRjhNJt0iLJ5hjX7JEUp Zhf14qtc6DU9h6IkNsu2sWVi7WqKQBFo7pm5dZ2V/DsIUX5PsOBw04Wp0+c2G27l4XYf PgS//ObuGcN01Z5DECSiMVevMbJ1mwfKfK5eRLi72XI/FVC7eh7TWKxH+WChDNppN5XA v2yL71/6uHcFNs0OzihKTWx08UJTtwVOvND0jIl5YAyRxuegG/N4m1fu8T2ibJypPdTy 07KA== X-Forwarded-Encrypted: i=1; AJvYcCWbYYeoyhK4gPL95KCPCOzpdfl3AVPhUVUSC8qwP9PGk4BHNYNH5RwfLgx/qfcm8hmbJ/KSytHL5A==@kvack.org X-Gm-Message-State: AOJu0Yy1U5aSf2FYN14YU+HO9v++KN+szKfvqj4FCeMPqa8pvhd1shmo XatKWXo9vtopCFz6c2jFtMMkYDiECCeX38H6jur/S37u8SRDlwEn8D/PeKA8EgSAfA+jBL1s4yQ rKDL190mSUClA6r9Nt3086FGKhOGDAIX7UWjw7dKY9R9Z4w7O X-Gm-Gg: ASbGncvXzgdv495dwH9GCiBUkCPda0w+TwWmSmfn0My2398kpPNcyVYHHCzJT7sX8VP DiWAEZoero1Zx3hUCsqAP9T9dwaMmF36Rz4xs+ZWUab+3cVzGPAcvpO8/3biru0u3cZr887+4r6 17s1BjGghOLYkctRZZrdzbS/Jw4tQ+jsakQYee1Dw1/FDPM1le3xL3nDqvUMIUgLu3T1dneu/KK G8OoXQNuGKU0nmO/+kx3lfMNsJRwZAlsYMdxBhPwy6M3tXBSWAl57FZpGHDb+WIy+OFrvp1HJxg Z5E9hh7pTrIZ8vYROLdxDMtTT+0yv6f9TL2T3vJTy6dz3BwRvyaGAbV4bEshA0lUDHBIpqkcckW y X-Received: by 2002:a05:6000:156e:b0:390:f9d0:5e7 with SMTP id ffacd0b85a97d-390f9d00782mr6547296f8f.13.1741019419259; Mon, 03 Mar 2025 08:30:19 -0800 (PST) X-Google-Smtp-Source: AGHT+IGXzBd/+KVXhEWpKLy7bok4As8+LKdGdnCV2QCwLiXkX4QDGRFFrxDGOYHa7Hz+LJLKECZ5dQ== X-Received: by 2002:a05:6000:156e:b0:390:f9d0:5e7 with SMTP id ffacd0b85a97d-390f9d00782mr6547256f8f.13.1741019418889; Mon, 03 Mar 2025 08:30:18 -0800 (PST) Received: from localhost (p200300cbc7349600af274326a2162bfb.dip0.t-ipconnect.de. [2003:cb:c734:9600:af27:4326:a216:2bfb]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-390e47a6a5esm15196816f8f.35.2025.03.03.08.30.17 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 03 Mar 2025 08:30:18 -0800 (PST) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: linux-doc@vger.kernel.org, cgroups@vger.kernel.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-api@vger.kernel.org, David Hildenbrand , Andrew Morton , "Matthew Wilcox (Oracle)" , Tejun Heo , Zefan Li , Johannes Weiner , =?utf-8?q?Michal_Koutn=C3=BD?= , Jonathan Corbet , Andy Lutomirski , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , Muchun Song , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Lance Yang , "Kirill A. Shutemov" Subject: [PATCH v3 01/20] mm: factor out large folio handling from folio_order() into folio_large_order() Date: Mon, 3 Mar 2025 17:29:54 +0100 Message-ID: <20250303163014.1128035-2-david@redhat.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250303163014.1128035-1-david@redhat.com> References: <20250303163014.1128035-1-david@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 7xmVavp82JIY2usdnaTa-gR7UvLIA9jUJ8jTeKFloXg_1741019419 X-Mimecast-Originator: redhat.com content-type: text/plain; charset="US-ASCII"; x-default=true X-Rspam-User: X-Rspamd-Queue-Id: 9EE81140006 X-Rspamd-Server: rspam09 X-Stat-Signature: y1ob3tyc9s9ts63g4d64x5y6qjchr499 X-HE-Tag: 1741019437-994823 X-HE-Meta: U2FsdGVkX18vc1oSIi4fvl9Pr5r5heGMZFoeJ9JmAu85Xo5rixg2qQloVVbfmAJ6SseD5y1RvAFNsUvC0bxR0p6faurztgBy/cr6DePSuUXjAyZ+xGGxzkUVnWyWCFWSky9e+F3wiOa/8ogsnhMrw7lTA1Z0MqPCG89RLvUrE+c6QC54g5b2/oMw7/d3+ItiJ9SAXhp+kOKq/wEB+qADUoWlQGNwm/a0xTyOjfBBDWpoQD3U/bbG0rSXWEvzaFlUxQ+svkEdblQsT+EkU4EIMYtr7ZcqeCukroXte2TT+26mNkRBi91Nt+lwxIqzuxzHT+mi9IMUoKbj2uNaSoJoNLxex5aIBErVoq2JlbzsDSCPEv7Rhg/hrYknBvh5C81qIeSULyFcP4IKIZMhSyAzzViwBRAtqZfo0XC2OzyYpk22DtliRriTvfek49/QrUX//ncKRrrkXstWAd0crJJfXstPI9C9IKDRP0t2MkhciTfoYlmyWp7B0jOFXNGFBWakoXPw4PowAP9hi3FThy02xknEMJk18baMsT3jKhL8RrG696yt7zcGP3XAdZjEwYhusXugIrYo6f2GODyuenrGS3KhYW2ICwqPD08CLIRc4ANcMB0QgHKt1CVc6Ks2HVRlUft5vxn/dnT90bNW09ClR/K8DSjSaC0YGb8UQhhbZd7ybBkGYxR5UYlDoAMI8JWwnwFG2+Q8zPmwdfc9wRnzb2ad3lD4h9JowxlJH+Ob2F+hMt9OQpGaflK1JQIfiGyeXUrrc6aqxXpK00eMfVIdIDt6WN3+4skswEeZSqUH3bUGfrInNHo8g1qbK0XHxDgq6+tYGfM2ecch1bq+dWPYuHBE7tyA6O+k8comadMPXzhwPrQB1HgSiPcPsk9bSGREUWvHFrya4iL3eG1KfzcC/R6/0vlKI9UUn+ipsxgcnrKSfHf0231RDu3G19Dq7ejvRPfni44LUdBh9/ZYJQf 6ORaB/gH DuFZKjuCgEPcXwLgbbLMypGwZbs+YWpRBdOv8FwsFFYewVcpkV/UFH+gDWKKUSgP1l9Xpyc5zDKKK9OZxEZpQM0J7xi+F/ojbE/0NuQFOTJoEBGrWdvUgNgwnGLsiZ5CCfbz4ey/Ng7AcUFGtmvWYbYiZu75ACRYN++1U7iUcOo6nWT1F6Jtpk/jX/JGU15JWUqYLsplQcLvR3B6SB+ROqaM8LFEkLZ38XLl/rI5rEaW2tNTbG2oia57y3yWVYFBazk6DSBGsl8kyGIe/Zb3rXgoGh4wo8nuMEtJBq+IUbMLHBZh6qH1A6Va+qI7EqmpV26WqpPUHGoIbNFqRwsLvpwBvnyQ/7J8JNCZ9LnjNhnndgbr00OIhTH2KsH2SBo0FsMGt3S3GyNj64+baj02u2stuUmp297sU+BfPgZt0V/Na4P2p4NKH5ky9jok4dITTegEe8texwrTWhS77MfEPwB27EthmG3di44jdTLgNb4U90CLxEj+2+Mpd8IZd/BeWGtXO6vHNE1vYS+VcsxRt/xF0y7CNraV60J1MPrsYlN+xXkn6da8/Syqvoz2LwZX8Q6iKle66iiV3qmk= 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: Let's factor it out into a simple helper function. This helper will also come in handy when working with code where we know that our folio is large. Maybe in the future we'll have the order readily available for small and large folios; in that case, folio_large_order() would simply translate to folio_order(). Reviewed-by: Lance Yang Reviewed-by: Kirill A. Shutemov Signed-off-by: David Hildenbrand --- include/linux/mm.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 7b21b48627b05..b2903bc705997 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1194,6 +1194,11 @@ struct inode; extern void prep_compound_page(struct page *page, unsigned int order); +static inline unsigned int folio_large_order(const struct folio *folio) +{ + return folio->_flags_1 & 0xff; +} + /* * compound_order() can be called without holding a reference, which means * that niceties like page_folio() don't work. These callers should be @@ -1207,7 +1212,7 @@ static inline unsigned int compound_order(struct page *page) if (!test_bit(PG_head, &folio->flags)) return 0; - return folio->_flags_1 & 0xff; + return folio_large_order(folio); } /** @@ -1223,7 +1228,7 @@ static inline unsigned int folio_order(const struct folio *folio) { if (!folio_test_large(folio)) return 0; - return folio->_flags_1 & 0xff; + return folio_large_order(folio); } #include @@ -2139,7 +2144,7 @@ static inline long folio_nr_pages(const struct folio *folio) #ifdef CONFIG_64BIT return folio->_folio_nr_pages; #else - return 1L << (folio->_flags_1 & 0xff); + return 1L << folio_large_order(folio); #endif } @@ -2164,7 +2169,7 @@ static inline unsigned long compound_nr(struct page *page) #ifdef CONFIG_64BIT return folio->_folio_nr_pages; #else - return 1L << (folio->_flags_1 & 0xff); + return 1L << folio_large_order(folio); #endif }