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 3BF21C47DD9 for ; Wed, 28 Feb 2024 21:35:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AAC926B0074; Wed, 28 Feb 2024 16:35:06 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A5C336B009B; Wed, 28 Feb 2024 16:35:06 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 94C706B009D; Wed, 28 Feb 2024 16:35:06 -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 83F236B0074 for ; Wed, 28 Feb 2024 16:35:06 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 3D8D51A0D9B for ; Wed, 28 Feb 2024 21:35:04 +0000 (UTC) X-FDA: 81842518128.10.3DB6A3A Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf18.hostedemail.com (Postfix) with ESMTP id 777B31C000E for ; Wed, 28 Feb 2024 21:35:02 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=rayIV5MG; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf18.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1709156102; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=6Vrv4UbYqQ1F3CjFCPN+6tVq5NVAr/UPIevHtjJOrys=; b=zQUIAtdRmjuq3YmqCqEzEnKb0dhq6nl0Gwzz3V+ilQKeHq54bEGN54UGtdkyGCLU3aw4f8 AbaLW6Zoh9TxDelwlUdjnh7NrjEpjjinEKQ9wP4o6VCUCWuRhZdAH0Qr4vycDHzihxRg4Q RT0Mb4DUofdhcgLwrPvs6E2y7BQR+EI= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=rayIV5MG; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf18.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709156102; a=rsa-sha256; cv=none; b=IEE9+7v/aU4L3HU4dH6NiHwJnHZCguAT7oNF0sUcBhSwgzUWw2Bl4zYGI/OHHrhCfX0wUS 37vJ2FGWL22ysGKTwJf4RzW9xEeY04xM5ueTRvB2044uPKshEAcYEwm8sTeFU5hg5kk+mI iQKbVm7IanQ6X7BnyLlZ1aZgiq/2Avg= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 752456189F; Wed, 28 Feb 2024 21:35:01 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CB4C1C433C7; Wed, 28 Feb 2024 21:35:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1709156101; bh=Lf8Zp59k8f1Kj39s+Q5L4pOpBfI32vbSXUCNu+Rm5xc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rayIV5MGC4trBAKQ0icUnOij2S5ELK1TjRWZK7RCrYkQQ1GMyShtAmC960i+hcdwB 2AIZI3zyNT/T5vbf+4gFBOJiq6+YG6h7apScWM/NZOHP3JxkNBGc2NRTUQym8rT2rr I/or3xS7NuwmAy9MMubfu8fhFZP2V2aTdRjqZOzpFvY7fhhiOkihgv6S4Lkw2gt4vX VQrImqRGh2FTqf7aD4gaTOlO+GVSt5cXX7OWurxRzA7S62lGwt9t3eNbAShs0HDCUn I02R8gvPtkjIekLpGbyrzuzwtgt+acO2XQbZifSoSCVwfX4bDs/3oQ+x8R+KqqRH0A n7fhoP3FIgzoA== From: SeongJae Park To: "Matthew Wilcox (Oracle)" Cc: Andrew Morton , linux-mm@kvack.org Subject: Re: [PATCH 4/8] mm: Add __dump_folio() Date: Wed, 28 Feb 2024 13:34:58 -0800 Message-Id: <20240228213459.129930-1-sj@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240227192337.757313-5-willy@infradead.org> References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 777B31C000E X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: 3dkuath5zc8nyc79k7i1hdny91sf3qg5 X-HE-Tag: 1709156102-627681 X-HE-Meta: U2FsdGVkX19u9ic5JGDF8AKvXWipLjzvt/4AILvVmnxBL2BummriORdYhph8sPLIZp1lLxypZqYSqLKfqAKKBIbzdpst8B46klQQZ8ABi+YCZ8A4Jl4Fl5bTC2Z0dmro+tPZ+gZJcRXd5K1hFtqwAm0PLgSScYxcJ2wRBf0IILF4CjSQ2sFTybCs3lcDSKFJj9u3mtuJ71/NuhfnnTMRXouR8K7PrN8Yvqf9P4okym3UKamfDYXsTGrL0x7108uejy3L3uVpiyh9uuokcoegUtt8v58EOAr7w8FprXnhgxYBYvRZWzGK6pcwrOaDgqD+9IACAtKggWCU1wX34OtqfaQPjEaXTXFg5MB0Hgj10405FR/QkvW6/wCrrMztHzLspkX+2XSXJa0b4BvHqhW4AxG6uHYnk0JjoYbDqAz2s6yrpZBZSGgTnk/7MbWMJqlOajvFCKYrNzcZyrBCAdVuCsDnmblIS6bh5SNkBMaIDusye0+JkgWPpmqiYj52O2CyvOPWMtPmnkzQi79q9l5TgV6xvL0ZqIBznPy6MsGg47xbCNll134IawOVTc6rYnWiWbhMbwjZNUPdcf+jR8n4F4iuktUs3Y4+2q80GsIrLkFpGIw7mW1GxA9w8VD4G9zIJhhs/wB0vyLXVyvIrDvWhUhu9CghGPwXlJfoUF5EVBWJfjM0JIcV5dBNHGg0LjJwC5tLVPRXMljjdW7WpZV/5vrbc1isw2GoalYLhnKsWxKUT+VtOvJRA3AJknwLHul0YyB+9kUHk8/8+z8t5DEZ7y35ZDeeFV7QbpeC6F0WgGnaBrERcENXpcbCovFIWAOqjgM+gle8HVlEQSLcBc3YJc6ErJQZ/giY3NQvDyOyKEuiqKJq5jzY+OfkueL4ZGwCGmmw0lxFbkjpECJEDsAy4R3FJTBYThbQoirurlaughC4CAQjhfGMarveN6l2rEWSCZjaVQqla6dOrQoqnRF mq/P/5g0 aUlW9OHb7pvsug9aXt57KiWHqRIlF6k+o9Sf5nqsTqcfdy7T9tC8h8stXDmw/3pR5Zby4nSi2ZqzZh+4DB/5zP447se8xg7dioa7emQHlwwLaFcx4mS5LJvyWFL1H44MJDnx/dU9cqpVbAjpfdc8q0b7eEo75H9d4wcrDIYppG8+AtbvfJQrw0jyhpNlsW/qrYc6+0ONnpF4deUTiBsm1ZfEepFSl4PydWORf1caT9ozdmEiYJLNX7Py+dDN9mmN4DjWbqyGW4+LK9iVM8QG4aTf01tjJ6l1GWPkV 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: Hi, On Tue, 27 Feb 2024 19:23:31 +0000 "Matthew Wilcox (Oracle)" wrote: > Turn __dump_page() into a wrapper around __dump_folio(). Snapshot the > page & folio into a stack variable so we don't hit BUG_ON() if an > allocation is freed under us and what was a folio pointer becomes a > pointer to a tail page. > > Signed-off-by: Matthew Wilcox (Oracle) > --- > mm/debug.c | 120 +++++++++++++++++++++++++++++------------------------ > 1 file changed, 66 insertions(+), 54 deletions(-) > > diff --git a/mm/debug.c b/mm/debug.c > index ee533a5ceb79..96555fc78f1a 100644 > --- a/mm/debug.c > +++ b/mm/debug.c [...] > +static void __dump_page(const struct page *page) > +{ > + struct folio *foliop, folio; > + struct page precise; > + unsigned long pfn = page_to_pfn(page); > + unsigned long idx, nr_pages = 1; > + int loops = 5; > + > +again: > + memcpy(&precise, page, sizeof(*page)); > + foliop = page_folio(&precise); > + idx = folio_page_idx(foliop, page); > + if (idx != 0) { > + if (idx < (1UL << PUD_ORDER)) { > + memcpy(&folio, foliop, 2 * sizeof(struct page)); > + nr_pages = folio_nr_pages(&folio); > + } > + > + if (idx > nr_pages) { > + if (loops-- > 0) > + goto again; > + printk("page does not match folio\n"); > + precise.compound_head &= ~1UL; > + foliop = (struct folio *)&precise; > + idx = 0; > + } > + } > + > + __dump_folio(foliop, &precise, pfn, idx); > } I just found one of my build tests that runs with a CONFIG_MMU disabled config fails with below build error on mm-unstable starting from this patch. After enabling CONFIG_MMU, the build didn't fail. I haven't had a time to look into the code, but reporting first. CC mm/debug.o In file included from ...linux/include/asm-generic/pgtable-nopud.h:7, from ...linux/arch/m68k/include/asm/pgtable_no.h:5, from ...linux/arch/m68k/include/asm/pgtable.h:6, from ...linux/include/linux/pgtable.h:6, from ...linux/include/linux/mm.h:29, from ...linux/mm/debug.c:10: ...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)) { | ^~~~~~~~~ ...linux/include/asm-generic/pgtable-nop4d.h:11:33: note: each undeclared identifier is reported only once for each function it appears in 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, SJ > > void dump_page(struct page *page, const char *reason) > -- > 2.43.0