From patchwork Mon Feb 24 16:55:43 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Hildenbrand X-Patchwork-Id: 13988494 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 63364C021BC for ; Mon, 24 Feb 2025 16:56:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D5A656B0082; Mon, 24 Feb 2025 11:56:15 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D0ACA6B0083; Mon, 24 Feb 2025 11:56:15 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BAC586B0088; Mon, 24 Feb 2025 11:56:15 -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 A00C06B0082 for ; Mon, 24 Feb 2025 11:56:15 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 34A2F161992 for ; Mon, 24 Feb 2025 16:56:15 +0000 (UTC) X-FDA: 83155441110.07.03E0D4C Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf18.hostedemail.com (Postfix) with ESMTP id E0E9E1C000B for ; Mon, 24 Feb 2025 16:56:12 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=hL5bbURV; spf=pass (imf18.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.133.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=1740416173; 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=8Yy4w/XZlsv8uxY4mojETBma8CfgELpSYNnd4DKCaPQ=; b=EexDPEWcCVD+sIPmEzwPQ0FDjM7V69o+x5r7mGmDMyVMoGM+PCMLFGWNXPdIGAgzdEy4oP cvqQG1yRCqeKMjeqNa5VNCFklf5ZetbfQdLl6K1Y2QfPszFbt918DtNULIrin/87DISjpt xKZSeni42h5qy74hJh5RQ80dQSZEgtM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740416173; a=rsa-sha256; cv=none; b=4heAVOJ7b5yissCvFi5qxwDBGDLvynqsxGBbiEupFUYki40uqzQGh5ZdcIk1TfksV4ruI9 VDSTfjRma1hK2CMQhRPf7LK/DB32JSxuPYLngHATpvOReCs4DfqpK8IxB5wwIt+LI9/voq OMCnCthF1QEJqaYp4Y7XYZBiidFf+4Q= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=hL5bbURV; spf=pass (imf18.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=dhildenb@redhat.com; dmarc=pass (policy=none) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1740416172; 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=8Yy4w/XZlsv8uxY4mojETBma8CfgELpSYNnd4DKCaPQ=; b=hL5bbURV2MM22caGFxaMEY4cYA0B5dnJXePp3ENJu0/FQm4xso12wFU7JFKhC056dv1Cgx pIWdMDJUk6hqZ8ABq53D+aHtxrB5fk9vrM6tyz86ngiaEG+XgZYl+ZrHpR0lWU8WGnGWXL KrBkDIWSAtE1BCIpfzN1g8AzOPNEms4= Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-364-3NM1LBHpPrmtMkU0e3pu2w-1; Mon, 24 Feb 2025 11:56:09 -0500 X-MC-Unique: 3NM1LBHpPrmtMkU0e3pu2w-1 X-Mimecast-MFC-AGG-ID: 3NM1LBHpPrmtMkU0e3pu2w_1740416168 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-38f27bddeeeso4482748f8f.3 for ; Mon, 24 Feb 2025 08:56:08 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740416168; x=1741020968; 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=8Yy4w/XZlsv8uxY4mojETBma8CfgELpSYNnd4DKCaPQ=; b=XxL6XXQmnKg4aVwkEbGDFVByYBQ+1ATJ1j1SyAmXRsLi1JdBnnlNgK8W7323D7gfty lyv6dlJJ5RS+gCmpwvqK5aBlyOUp/7zlp8Ihk4dvSoY20HTcaT5/CQtj+4DPAk1U5tVR Lkc0w5RMN5fWJ3JIPxb+7ONvNzfvQrTyYa3lldNXM7wE9BaaE++wrEXwE5zKNGv6WPkI It9ic6/5aojwjWMm8Mlkq1SU8fxTV33ZsshPabc30xIBBlWvONV/Os6nmOJvOMo8dXhR S2N7kljUfdinl7tAASMY4muTOM0h3pekioM/2UVevIOviqvJb2H809ugMxWvJE1NDIol xFmg== X-Forwarded-Encrypted: i=1; AJvYcCWkIUGBtKbH25pqRvGGzkcnB2h5Yp+HTZyyNPjONeObJBR1e1q4mCfOVTkx3Y73HOfNXvobXCcL1A==@kvack.org X-Gm-Message-State: AOJu0YzPT1mb5LbJ0k9Xqd4Iy7KsD0d8y4r3x+ueGiNndO4c+lvAOKhz FZb5yeKRIGRjWpyHvmLjoxnWsH1KS5dPfPPuu/3CMdEYPBP+FaZ48m9EuyExAXgpw+ujwvPmdRL LBYvznqTT2r8t/uTogE1sEZt4gPFkpY322rrOgFT8Wd2Z3o2d X-Gm-Gg: ASbGncvlLh+psYEnPkjwbpO4CRSyQHqzivgOWsXo30vYgAmPxyO4QDqjv5+qSpBVPpW dUz/Ruv7tmQZ7GuXbhJWNPiVXN+S5CBFIciPUlSeWNL96H3sWYJVU61JfiO/kgd199OebDl1rE/ Gri6n29KLkyvtauRm/Jj+7P2iAx/M8fXMmkxEBiv4OVB9TjyO889YPqXyg8kBvu7+EK+ANB19Pl ZFpxOdDyI7ck+3VZHDhnDmSJ6z+L/BNQSak8Fj09kB+Bcqh/NCGszdlQXZQTudLnPqDuWKWWRQ6 2uDb6M0i59Flp6dFgpQ5par9FPLdeowvpxfipENd/A== X-Received: by 2002:a05:6000:1ac7:b0:38f:2a99:b377 with SMTP id ffacd0b85a97d-38f6f0c4523mr13709702f8f.53.1740416167618; Mon, 24 Feb 2025 08:56:07 -0800 (PST) X-Google-Smtp-Source: AGHT+IHrYsCtuTnI9EW4wn4ZrbygGJqAwQI73Wf+OvRO5jakiYr702W8tJwU3BfJXILKECpWzIC3lQ== X-Received: by 2002:a05:6000:1ac7:b0:38f:2a99:b377 with SMTP id ffacd0b85a97d-38f6f0c4523mr13709656f8f.53.1740416167205; Mon, 24 Feb 2025 08:56:07 -0800 (PST) Received: from localhost (p4ff234b6.dip0.t-ipconnect.de. [79.242.52.182]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-38f259d5e92sm32611493f8f.66.2025.02.24.08.56.05 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 24 Feb 2025 08:56:06 -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 v2 01/20] mm: factor out large folio handling from folio_order() into folio_large_order() Date: Mon, 24 Feb 2025 17:55:43 +0100 Message-ID: <20250224165603.1434404-2-david@redhat.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250224165603.1434404-1-david@redhat.com> References: <20250224165603.1434404-1-david@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: dU14NwpvoRzUHBe_ZddvrAQoWNidNGcr_CH5lp9MhOA_1740416168 X-Mimecast-Originator: redhat.com content-type: text/plain; charset="US-ASCII"; x-default=true X-Rspam-User: X-Rspamd-Queue-Id: E0E9E1C000B X-Rspamd-Server: rspam07 X-Stat-Signature: gg3f1sdh1x7uewqtopura98iieu8iugt X-HE-Tag: 1740416172-18334 X-HE-Meta: U2FsdGVkX1/z8AGG20431wEGBK0pywg6rPivZgfke9Bu1YQVWAFAQK/bQ5O4LErikI96dFKZZSQKWvsOqrJNkKr7dHjS8Bqnv5XLJRQLU81IWkecgK0aXZU9HBRM1EO1LGOyTgabKJhyDXjIEyaVshJQ2qjHsWijtyG5HjSIrPzdS7p38SY23ktUxhrrDjqw0akRd4tAOvBnz7RuCvkKUXH4HWO31HA6Qe9Rl8H+klOMKQL7KuxJVHP2gDhzsC3VsyOVcQ43wQXChGl5vKsY5BVRvBfswwgSAI6ZDriDERsvwBnJFqw6TVdKXdYw3lpEe5z1gfIR+3FQQIaHx3AAmMO6XbxbiC+UoZQITX7CXVroe4FE/fjRZ6w0FNnkQ2WcOzbQyzdCQcvR0CjM5zf5Q0AsrmRlr0hE8YE5y461Ml0+stWSbODVcnWn2ptZJHVMee7b83NriUaQcohXWLa3uonzfVRU3XBnvCv2JZF0esSFSUzc9Xxt3osAKILugq0pYXSxgurqEwCDK9ujxzpYDwM+p6sDxER8zzyLbXzTMyZ/gjlVI0us9G/vjADomjrDPR/jBVae8gR/bBLgEYUuKe2kyvKJviC7DkIFRTh5NmloIs5Ek+3gSFJdk3D+qGslx2d1gFQcFrRZMBZfANwweSQQdxJQRPEGVgbLQQNMC044YCxR1dGBxF1qZTEFTqNJKJEpfAMYsrlbp2PvMixdm+MJoy1mgUZLShijIDcZfsdYFgMTYymxjdR6iPm3mqWTEYBJnvml1gbOS67Wc12kfxDGrOwl7ciJGwtcrhs4/oeWG0ja/hIZG2m598QWLw0y8OYB7moJEvsgKFBD81UhQ98AUkAz/qal/hjpwHwdSonnFkwwhrXFmGG3CAAgJgbhhQlFYGPRkQAVFuWdmXn2cAacCBv00c9GHzAG1gP90YJY9FQjI/kmrwpRxiIKdcYZFgRi1SvNWL8wkBx6nIw uIy3VLX+ kSkiNHCkZxGsy8wn5weIDM8cYSjpugWI0/KQYHcIJHbQleqDh+RVsL9gZmrNiWDf4/jDM7PT+WWkVDvbmQUdnoqT6b8zRiTVsUdhQqybdNa6fsYtGlRgGPmwkxz0lHCI9j12W/JQOyw4gEhhhtkIrY6+0P69Jgxj81Xo7GDBg8ZxQRbKHcUApsg3Pr5kjQzDWA8O9kgmc3/J+0mELb3epp+KsI3c6zJAZekct5ybyjr9Rg5J3WMXicEimScHm9uSep31FOuPhKLVDJVEi5Hx6I7w8q8EMu54LGV9ezRWgunfc+X8mNz9oW7ZHxPVNxoT/Q60oa6AAlezUh5kZqlBucSSRoxxijFpdL8wmKFocT2Iq2VwVkj5z/2l46zhUoOidFWV5jwSeIWuWrE9rP9h4OgLxK0Xf543G4mAfwf5pzuh2D+JO6X2XwTjzLyWpJ5CCP3XQb9LV6A8mSF1y2bpcgAPtny/1N/vFeXDkBUuilHU3ghPHNxWb5h7l+mu+XM6VoR1Ooi6+Phpg/+qh7V746gxivMJqAvwJVRGwiFPJfnymgmeRky/zqdtb/Fr+1sPqmticRZVMIfbkAMS4w4/fkWJedw== 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 d82feabbe44f8..d00214e22a174 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 }