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 B5F85C48BF6 for ; Thu, 29 Feb 2024 04:37:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 24D4D6B0099; Wed, 28 Feb 2024 23:37:39 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1D52F6B009A; Wed, 28 Feb 2024 23:37:39 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0765D6B009B; Wed, 28 Feb 2024 23:37:39 -0500 (EST) 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 E80506B0099 for ; Wed, 28 Feb 2024 23:37:38 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 96ED31C145E for ; Thu, 29 Feb 2024 04:37:38 +0000 (UTC) X-FDA: 81843582996.25.DCAEF9B Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf20.hostedemail.com (Postfix) with ESMTP id 023DB1C0008 for ; Thu, 29 Feb 2024 04:37:35 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=Qvt0AuUq; spf=none (imf20.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1709181456; 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=dxMQI/Yzlj0d1AEMC3nMeHC56z870NOKYxODrzvW84c=; b=n0+DU7mfQKLS2qvsoMWEDtSepxH6Pz9+7gaW32r6VpufZghp2IIfROBBeJO5xXGT3TbtjQ HgRMsL4HkxXP4aL+o8Emh8AYezgZTDszDTkqFHVUmlBZoTeww2yPmFz8/Mm05FWtQjrPIN g8Ie7F3kBQwx8aZTafrPw77OaJb8cpU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709181456; a=rsa-sha256; cv=none; b=SB0sK4D/J/yAO2nsTF7tRlsB6qyEFBchNhSJrBRyom8RGR/j8E0+nppWYUAqUzE/pvdVO6 KrN5bLL0DbceNtrp+3y82jRgAbtdvRUpK4L4YnPGtII8qbNzFXgl2p7gmYLZvkRM2eZUHT F69G3eswyN2irISrhl8f8GIpc+blHDU= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=Qvt0AuUq; spf=none (imf20.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=dxMQI/Yzlj0d1AEMC3nMeHC56z870NOKYxODrzvW84c=; b=Qvt0AuUqsbFdHB87pzYD9z0HU8 YRDOaN6D5bdoXXt4gk79oqkMuQmVhUAtAbx+CfO4xPfVC+Yu/c9o0DnPI/wuzzs6BOfqcP6Ue5sLG 3pD6mrDVYWWP5dOIBKrgL7rILzc90X1RvlyI0UvNzRpwuwRu7a6OKXzE16MPd2w+CaCGFM087mr66 3xyXKgFXFWYsekNwcC9hFQJaq3AqPRCT/11ElY97DlA5/WV3RNzhPhE6eSUtg3JMcYD0s9GKAT7Ig PRc+Bx/nURDqS8YtpPDFh8otYgXtqjXG/wbE+CVo7+0JyNxtFpvQI3NmaS5rroW1TgOpPG0QONO42 ViiaGuWA==; Received: from willy by casper.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1rfYAl-000000076eT-411R; Thu, 29 Feb 2024 04:37:31 +0000 Date: Thu, 29 Feb 2024 04:37:31 +0000 From: Matthew Wilcox To: SeongJae Park Cc: Andrew Morton , linux-mm@kvack.org Subject: Re: [PATCH 4/8] mm: Add __dump_folio() Message-ID: References: <20240227192337.757313-5-willy@infradead.org> <20240228213459.129930-1-sj@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240228213459.129930-1-sj@kernel.org> X-Stat-Signature: qoprtp91x1cbup5km96a17nztt3xy84a X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 023DB1C0008 X-Rspam-User: X-HE-Tag: 1709181455-725713 X-HE-Meta: U2FsdGVkX1/nLXDPzIfRSp2uksTYyQ7GCyTs5LuIKFxggpMH22INYatS323orjqajpKZeuCt4H+CW6I9iDYDsKz773VeVOThfLfZXHOTE0B+X/zmeEBHoXjB51+U57BK7nDVOHrI0NzdATdY0XBRHop7prpEVIuws2YRb+OC8qVliSGzsboxLrVrWoN/MZoH1/v9NCr1FJq+q06/vLr7QOQ9wBtS0P9ILAMaJi8ik5k9OrTV7qEkOHL/LUokze0WbZdSaYZd6DAG4lxUr6F3Mken9OiZrzf9howAxH9dYsfMkAC+9IFB8YBIsmyFfXCkluDXPwnFD1KMKBIjQ/cgXH1RE3KhbDYDg6SaXeqpk6oD2+cuxjzRVxVRYc0ABy8KQ6/oEsL1Qy8Ogg0zd8PhQvVKtvYmd6S9TnLa5t+Ua9jvsZ8mEpzTf648J4yySlKUq5lj6B464xYy92WzLcDsrT5VMUr4wqu602Ss0KrShDzJI19Uaf3hv7FfvYepCUcY+S4V82tgVdmkLTWCGP57dptlt9NsPiTfo1wdoQB2V9eCO7wX210xmKL0IRaPpB2zi5gn43nIbpzEsiRZGUHFVjCuIPl2CSyyuayO81uAgtaEVXKSdM7uXac4z9m/RRV0Fd9Q08plcOvB9ROm8U+LYRVO5m5kHoIgij4eU29pwxsHpVMyLYVoMGJX5O6bJkIq6DHQpOAUjyFLW+zdyHuKVLijewRCMwbmAa6jFUW6wgw7pjDkDcPqYtM4qd0KqjIToYxp56J8GG1nsEe1wgGkVybcKa1yLiCHsUuRYCe4WMwJIVwcACDYQx+JfhjSvAy3VLUAAVGKVK0emwENauDi9+PrwYYJOFHtEFqx+jl3X6FOGfp2s/lOjMRq65CIaxGBAFf1c/8ndxLpZl10z8K5iKJuFnlZyplTwakwPbj5kosYQLLt15Ri3Ae3tUWnkxqjYujtmY0vx8kBoBTeD+9 0DOg+GPb W/Et6ZS4OC4evEEFj4OoSPsqzMjtwK4TVdXsgXdc6oFg6KoXEMGpfSWaFNEpp2Boo/7JEldcOFW3M9mdwl5ybT/vMlImUBikONF3XrNU8lOIirFBMUiL/4ThO8RJPZAJMa6jNAtElUEtoFauWHa4D8UhGLMiAgy9WKhBGfEMVlV2LwcmIrVTizJmhJw== 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 Wed, Feb 28, 2024 at 01:34:58PM -0800, SeongJae Park wrote: > ...linux/mm/debug.c: In function '__dump_page': > ...linux/include/asm-generic/pgtable-nop4d.h:11:33: error: 'PGDIR_SHIFT' undeclared (first use in this function); did you mean 'PUD_SHIFT'? > 11 | #define P4D_SHIFT PGDIR_SHIFT > | ^~~~~~~~~~~ > ...linux/include/asm-generic/pgtable-nopud.h:18:25: note: in expansion of macro 'P4D_SHIFT' > 18 | #define PUD_SHIFT P4D_SHIFT > | ^~~~~~~~~ > ...linux/include/linux/pgtable.h:9:26: note: in expansion of macro 'PUD_SHIFT' > 9 | #define PUD_ORDER (PUD_SHIFT - PAGE_SHIFT) > | ^~~~~~~~~ > ...linux/mm/debug.c:128:35: note: in expansion of macro 'PUD_ORDER' > 128 | if (idx < (1UL << PUD_ORDER)) { Thanks. Can you try this? diff --git a/include/linux/mm.h b/include/linux/mm.h index 49d87a4d29b9..e25e86b755be 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2078,6 +2078,13 @@ static inline long folio_nr_pages(struct folio *folio) #endif } +/* Only hugetlbfs can allocate folios larger than MAX_ORDER */ +#ifdef CONFIG_ARCH_HAS_GIGANTIC_PAGE +#define MAX_FOLIO_NR_PAGES (1UL << PUD_ORDER) +#else +#define MAX_FOLIO_NR_PAGES MAX_ORDER_NR_PAGES +#endif + /* * compound_nr() returns the number of pages in this potentially compound * page. compound_nr() can be called on a tail page, and is defined to diff --git a/mm/debug.c b/mm/debug.c index 6149944016a7..32ac7d79fd04 100644 --- a/mm/debug.c +++ b/mm/debug.c @@ -125,7 +125,7 @@ static void __dump_page(const struct page *page) foliop = page_folio(&precise); idx = folio_page_idx(foliop, page); if (idx != 0) { - if (idx < (1UL << PUD_ORDER)) { + if (idx < MAX_FOLIO_NR_PAGES) { memcpy(&folio, foliop, 2 * sizeof(struct page)); nr_pages = folio_nr_pages(&folio); }