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 A85B0C3DA49 for ; Tue, 23 Jul 2024 16:58:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2358E6B00E4; Tue, 23 Jul 2024 12:58:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1E4F96B00E5; Tue, 23 Jul 2024 12:58:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 047236B00E6; Tue, 23 Jul 2024 12:58:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id D9EB26B00E4 for ; Tue, 23 Jul 2024 12:58:32 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 657F81A02B5 for ; Tue, 23 Jul 2024 16:58:32 +0000 (UTC) X-FDA: 82371626064.22.2429070 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf20.hostedemail.com (Postfix) with ESMTP id 936A01C0030 for ; Tue, 23 Jul 2024 16:58:30 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=PizVxo1o; spf=pass (imf20.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1721753887; 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=ezNXIruLWFGtq9YztNDp6SIUn3mSVot03iEM5lMMR9c=; b=oDceQmCEXeAaqtNR/KNDKr+CKy0ReN35bZ/Eq84pyS4GnWcZXe1/LsZS8lt3uzfUv5X9El xAYbdy/Uqwu1x+JQhsdKv4+CbbAw0Su7JuWWoAT68yNee5RfZkPEE5Wpn88j3g1cwqjkA8 7nbD8mG2Gvs1/i4qNQ5vvYq6/ffA18M= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=PizVxo1o; spf=pass (imf20.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721753887; a=rsa-sha256; cv=none; b=QicDO6gvJnH/hkrzTuKx8VKlri2FQHZKEOU3KyhM9pn7rOnSJTHfQM4h51ICDHD/7yTSKe bIM5/MaS8LjZ66LmnEcdu5nn56ooU38lehcYnklZiM2RaAiKoAogpEubX7CpxJGxCZ/d+8 zswzsX8Uf2YLu0Y53MGcHY1pyXbrc24= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 8A8A86145F; Tue, 23 Jul 2024 16:58:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C9B48C4AF09; Tue, 23 Jul 2024 16:58:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1721753909; bh=Sqs/0quIp3Pa11UvNTzT7w+Q8ZTby6g4NE3CHsEZAl4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PizVxo1oR2M8aKRGi2wOJgA4mAsf5CbqST3vugX2h0rqCuMeiaaCSx8xC1fpV9HEe DGbtr2BY9p77OoiW+VImy8DX/QF2Hgru7aRZa5IhJG2OECUM7HdF+kYbRrGh2s6FZH reEVHGWTRZLtmxEb1/amXltuFsKc8nIsXle1TwlNUx/jO6qgT7ahee2WTMX4x5idcz ZBsh4mT54/hU0zLqr8y7IooaOv+cq1bWaw5tDLZJH8f2tXJFj8ni2GPxmDmiTWP4V2 N8XOoLmriui7NjecJDPiyWXWyz80XTtNpqKX2X3uiUtLqncMwex6dASfnZu/CpENta 5rJyhTfBf3doA== From: SeongJae Park To: Lorenzo Stoakes Cc: SeongJae Park , Andrew Morton , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, "Liam R . Howlett" , Vlastimil Babka , Matthew Wilcox , Alexander Viro , Christian Brauner , Jan Kara , Eric Biederman , Kees Cook , Suren Baghdasaryan , Shuah Khan , Brendan Higgins , David Gow , Rae Moar Subject: Re: [PATCH v3 4/7] mm: move internal core VMA manipulation functions to own file Date: Tue, 23 Jul 2024 09:58:25 -0700 Message-Id: <20240723165825.196416-1-sj@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <36667fcc4fcf9e6341239a4eb0e15f6143cdc5c2.1721648367.git.lorenzo.stoakes@oracle.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 936A01C0030 X-Stat-Signature: gkna4miguxtwbkx1fegoj1d5zkcg7bu9 X-Rspam-User: X-HE-Tag: 1721753910-251652 X-HE-Meta: U2FsdGVkX1/MViBjDgiL8zAEy7VYdRDI0GbYX68phvjd5KPmvEEQd7QgeeODNpjfuT/i8G/vxH7Yb6+klNe6f3ImxO02sf2xkm5EQ4N3oEYSJBAWDWDfUOf36LVg+JJt3l0vyUhlmif34URMWIpmovpT9VcabVn/OOdvG8sjum22fNTMUIitja+FBxyp9n4fpwCrrrEQeUHyxij2coWvnyzRdzfvuOK84omAdyEs8EbkRGiYii+WDsh+VuDZkaEzCyvcaVb2wJuOKBp59DGvkpnd5Ff4Js4Mg9J7RBndO+ThH78I9dZpRfwMuiYBpdWqS8Bh8EVD6aZh3OPtXOJtS34dAUsJDvMQX8i53FcVqxsj8exyuaoXyJdc/2z1V8RMoIhQzzjz2bSsCOBULcQV8uWYeeIT4B9gsJiij9vf7ynxqH+fIycHIuv0xs6fT2Ze5wCeVUsfQUez9HC+v50UfNNY2AS3/+1sIQOX3Wg9eaLf4PmBrQcnX1+nybyd3B+7BIf/SrhIx9fClWCCHgvCHjuE3A01ZLJguvxzp7aacG+FNFPC4/u8jyzVQ4oYZ3cLKD35qbWs3IP7vlVIGBKZTPA8Wx446r+IGfXtS8Qis6qgT9D3rRzlaY+CdXu2qNIsDF3ybXl3utkxs6JD1qcdp6+hDPqIILlQAe8YBtn1CqkGvm1zFYurcJmL0gNJFSlNmb9Wo0vD9CsLz449Ju6OkfMxwMR0jTRM4oTJvgR1ZbpfwW12ranXyr8m9OF39KQCs5R1A/TIjCGItciJKlMlxu67pvpq5rywIfqih6ntDYCjUUwao92TeIZWII6XRe/lBSCsUHcB5m2ZetHeYrmgp/KJkh8zo7js8wkx4Iys3lqP8v1UsE6Q45nyLLEnk8hHCwLC1z1vfHEJN6iKt92BADDY4LW99CDNYnhb1XfYYPwflhQuM21JHu5o5iRQCqbmpGpP9Y2QW+ax2TtJpLf 1Q3yX8ZW UMIPHY4W4+vNHMu2sR5KpBzBGl/jjx1vjUOKlWS8uaL7Fi0VvsiL6R+Bd2PE/GOiRKAvvic5ACbnTdFnw55eHBj034zuChSP9YPE9AB1Ar/h7Hs3x0mcOl/r7gHEd3IM1cb6g3+pIFC1vo5vHFYu7S4oVN/pKsNfHIp73d+wW5yQXYd9+oOmx1hbNeTYDK+V9n6IvQUlalN5pn63VnvH8rvY3fNsE+QucjVVk/1qGE1x7WZ0= 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 Lorenzo, On Mon, 22 Jul 2024 12:50:22 +0100 Lorenzo Stoakes wrote: > This patch introduces vma.c and moves internal core VMA manipulation > functions to this file from mmap.c. > > This allows us to isolate VMA functionality in a single place such that we > can create userspace testing code that invokes this functionality in an > environment where we can implement simple unit tests of core functionality. > > This patch ensures that core VMA functionality is explicitly marked as such > by its presence in mm/vma.h. > > It also places the header includes required by vma.c in vma_internal.h, > which is simply imported by vma.c. This makes the VMA functionality > testable, as userland testing code can simply stub out functionality > as required. > > Reviewed-by: Vlastimil Babka > Reviewed-by: Liam R. Howlett > Signed-off-by: Lorenzo Stoakes > --- > include/linux/mm.h | 35 - > mm/Makefile | 2 +- > mm/internal.h | 236 +----- > mm/mmap.c | 1980 +++----------------------------------------- > mm/mmu_notifier.c | 2 + > mm/vma.c | 1766 +++++++++++++++++++++++++++++++++++++++ > mm/vma.h | 364 ++++++++ > mm/vma_internal.h | 52 ++ > 8 files changed, 2294 insertions(+), 2143 deletions(-) > create mode 100644 mm/vma.c > create mode 100644 mm/vma.h > create mode 100644 mm/vma_internal.h > [...] > diff --git a/mm/vma_internal.h b/mm/vma_internal.h > new file mode 100644 > index 000000000000..e13e5950df78 > --- /dev/null > +++ b/mm/vma_internal.h > @@ -0,0 +1,52 @@ > +/* SPDX-License-Identifier: GPL-2.0-or-later */ > +/* > + * vma_internal.h > + * > + * Headers required by vma.c, which can be substituted accordingly when testing > + * VMA functionality. > + */ > + > +#ifndef __MM_VMA_INTERNAL_H > +#define __MM_VMA_INTERNAL_H > + [...] > +#include > +#include > +#include I found the latest mm-unstable fails build for arm64 and kunit (tenically speaking, UM) with errors including below. And 'git bisect' points this patch. >From arm64 build: CC mm/vma.o In file included from /mm/vma.c:7: /mm/vma_internal.h:46:10: fatal error: asm/page_types.h: No such file or directory 46 | #include | ^~~~~~~~~~~~~~~~~~ compilation terminated. >From kunit build: $ ./tools/testing/kunit/kunit.py build [...] $ make ARCH=um O=.kunit --jobs=36 ERROR:root:../lib/iomap.c:156:5: warning: no previous prototype for ‘ioread64_lo_hi’ [-Wmissing-prototypes] 156 | u64 ioread64_lo_hi(const void __iomem *addr) | ^~~~~~~~~~~~~~ ../lib/iomap.c:163:5: warning: no previous prototype for ‘ioread64_hi_lo’ [-Wmissing-prototypes] 163 | u64 ioread64_hi_lo(const void __iomem *addr) | ^~~~~~~~~~~~~~ ../lib/iomap.c:170:5: warning: no previous prototype for ‘ioread64be_lo_hi’ [-Wmissing-prototypes] 170 | u64 ioread64be_lo_hi(const void __iomem *addr) | ^~~~~~~~~~~~~~~~ ../lib/iomap.c:178:5: warning: no previous prototype for ‘ioread64be_hi_lo’ [-Wmissing-prototypes] 178 | u64 ioread64be_hi_lo(const void __iomem *addr) | ^~~~~~~~~~~~~~~~ ../lib/iomap.c:264:6: warning: no previous prototype for ‘iowrite64_lo_hi’ [-Wmissing-prototypes] 264 | void iowrite64_lo_hi(u64 val, void __iomem *addr) | ^~~~~~~~~~~~~~~ ../lib/iomap.c:272:6: warning: no previous prototype for ‘iowrite64_hi_lo’ [-Wmissing-prototypes] 272 | void iowrite64_hi_lo(u64 val, void __iomem *addr) | ^~~~~~~~~~~~~~~ ../lib/iomap.c:280:6: warning: no previous prototype for ‘iowrite64be_lo_hi’ [-Wmissing-prototypes] 280 | void iowrite64be_lo_hi(u64 val, void __iomem *addr) | ^~~~~~~~~~~~~~~~~ ../lib/iomap.c:288:6: warning: no previous prototype for ‘iowrite64be_hi_lo’ [-Wmissing-prototypes] 288 | void iowrite64be_hi_lo(u64 val, void __iomem *addr) | ^~~~~~~~~~~~~~~~~ In file included from ../mm/vma_internal.h:46, from ../mm/vma.c:7: Maybe the above two #include need to be removed or protected for some configs? I confirmed simply removing the two lines as below makes at least kunit, arm64, and my x86_64 builds happy, but would like to hear your thoughts. """ diff --git a/mm/vma_internal.h b/mm/vma_internal.h index e13e5950df78..14c24d5cb582 100644 --- a/mm/vma_internal.h +++ b/mm/vma_internal.h @@ -43,8 +43,6 @@ #include #include -#include -#include #include #include "internal.h" """ Thanks, SJ [...]