From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=100.103.45.18 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1793914334; b=jLtWyvgjiL+YJsCxrlANa19AZwQINe/nhehVphbtGAfpAg4dnavj6eM0YrJkh/0NXReT a2lfhpEBycpl/K1k9/98OONot/It5Fmw8yrE4bHnuHDkN+tM5GKqn9Q33SanUO1kO4rQt yLMq2h4JDN1uXDnO8tfZWt+IZEW9pRpPB3lOL88DRueBHe77TCQi2JiL0ZpkGbLRHYLds 0e1k+8IznP8Lv6ImeSgGhh7+NYfYDgSvO5vN2sGzsaKETdZAuiw3TaVORDixuC3MZR47q 190AD8dbKiFsY4vV9DI1VdonIO8ea/x844ezeLSPpKciePLxjKfWRYVmp4AwBFPHjlQ== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1793914334; h=Received:DKIM-Signature:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: X-Mailer:X-Developer-Signature:X-Developer-Key; bh=hzAJuWtp08ycZNcRlNLNBepst97TvXc/S7lvgMY4+qc=; b=TA/AVC4Xtt/G8zVWSAKds9+6nGp/zjnmM1fA7ySw7ggZbsgZtyK+2T61M1WYgp56RJPw 9xRxSmqkec3m4GbNQ/DO8rFXPBXnH5ly7UrGfFEas4uksc6zqWx9Kc8oEVd8djxe+xNCx deGShkVph2sru2q3zJHtyyV5mDRAhcoh1C2FfgYEa3Pbq5tCR29BOtOQZZOZuyJxKU90z UPH0kf/RY29/DEP15k/E8ew5Po1p25/2uynRtj1dljPEBNYcpRPt7J8vhUmwyBLKxdnWV RTy9XDP5XjyN0Fi5MPClTCxuSzQFpqiOUpgDJNte6pM6ddXHuHH0j3QNHY71qy+JdtQ== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=LpE6INQ2; arc=none smtp.remote-ip=100.103.45.18 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1D293606A328; Thu, 5 Nov 2026 21:32:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key, unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=LpE6INQ2 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7D8271F0089F; Thu, 5 Nov 2026 21:31:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1793914333; bh=hzAJuWtp08ycZNcRlNLNBepst97TvXc/S7lvgMY4+qc=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=LpE6INQ28oxaDGfOupj/I9YluB+UQugAH5I3JpI7rSwRCO/BF35M2Rzi99vFcu3Ah 0hnbTK820Cci+SGakQ0570h3z6e0/kCnG5Z9Nhq5+h6rqRyo106yH9wHsEX4NVonfJ Bo6kbNppZcbxkEWd8JEvkOxr2G6shRFwjJC4lLD3VyW0JtzfIYcauU+CpQyqmV4yxW GVr6unqhSotyQVysxVk24xubu4MZXHasxZt+oN/hbh7xAhZtui42NoVy2NS3dEVCFD b63NM0Tyzuz0UMXjElTukk9vUIpeYfX9JNAtuyqjWwezfYTudwqI8c2ErvWfPjpTYX 0BJMIYbdKpRPQ== From: "Lorenzo Stoakes (ARM)" Date: Thu, 05 Nov 2026 21:30:53 +0000 Subject: [PATCH 02/13] mm/filemap: convert fault and readahead logic to use vma_flags_t X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20261105-late-2026-vma-flags-v1-2-0d3cd15ab75f@kernel.org> References: <20261105-late-2026-vma-flags-v1-0-0d3cd15ab75f@kernel.org> In-Reply-To: <20261105-late-2026-vma-flags-v1-0-0d3cd15ab75f@kernel.org> To: Andrew Morton , David Hildenbrand , Jason Gunthorpe , John Hubbard , Peter Xu , "Matthew Wilcox (Oracle)" , Jan Kara , Rik van Riel , "Liam R. Howlett" , Vlastimil Babka , Harry Yoo , Jann Horn , Lance Yang , Zi Yan , Matthew Brost , Joshua Hahn , Byungchul Park , Gregory Price , Ying Huang , Alistair Popple , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Usama Arif , Kiryl Shutsemau , Xu Xin , Chengming Zhou , Madhavan Srinivasan , Nicholas Piggin , Michael Ellerman , "Christophe Leroy (CS GROUP)" , "Ritesh Harjani (IBM)" , Shrikanth Hegde , Pedro Falcato , Kairui Song , Qi Zheng , Shakeel Butt , Axel Rasmussen , Yuanchu Xie , Wei Xu , Baoquan He , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Leon Romanovsky , SJ Park , Rakie Kim , David Rientjes , Alexander Viro , Christian Brauner , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Masami Hiramatsu , Oleg Nesterov , John Johansen , Georgia Garcia , Paul Moore , James Morris , "Serge E. Hallyn" , Mimi Zohar , Roberto Sassu , Dmitry Kasatkin , Eric Snowberg , Fan Wu , Stephen Smalley , =?utf-8?q?Ondrej_Mosn=C3=A1=C4=8Dek?= Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm@vger.kernel.org, damon@lists.linux.dev, linux-trace-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, apparmor@lists.ubuntu.com, linux-security-module@vger.kernel.org, linux-integrity@vger.kernel.org, selinux@vger.kernel.org, "Lorenzo Stoakes (ARM)" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=4267; i=ljs@kernel.org; h=from:subject:message-id; bh=aLGopd4z1uVC7ZtIXGCKSy3SWCLXYQcORFJokfXjLww=; b=owGbwMvMwCV2fu7ZrsZH9SKMp9WSGLLefF027WG8Q/mUYLZ3WUvN+2OzliZmCgpVxT1m7yw71 7PA96BcRykLgxgXg6yYIsvzL+L7g0TC5nVe8HeDmcPKBDKEgYtTACay+Dcjw73gpzevbdoWvnJr pq7BTsOz+hvdDld/td+l2hRiMf9i9BlGhnNdMQbP2N5LeJz5ofS7mq9b41O+1aUTXi1HQ5r0N2l N4QUA X-Developer-Key: i=ljs@kernel.org; a=openpgp; fpr=E7F417BF5214569E89D04F46CF9DCD8A81E27F14 Replace use of the legacy vm_flags_t flags with vma_flags_t values in the file fault and mmap readahead logic. No functional change intended. Signed-off-by: Lorenzo Stoakes (ARM) --- mm/filemap.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/mm/filemap.c b/mm/filemap.c index b74bc1e5015c..d8b538bd1404 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -3351,13 +3351,14 @@ static struct file *do_sync_mmap_readahead(struct vm_fault *vmf) struct address_space *mapping = file->f_mapping; DEFINE_READAHEAD(ractl, file, ra, mapping, vmf->pgoff); struct file *fpin = NULL; - vm_flags_t vm_flags = vmf->vma->vm_flags; + struct vm_area_struct *vma = vmf->vma; bool force_thp_readahead = false; unsigned int thp_order = 0; unsigned short mmap_miss; /* Use the readahead code, even if readahead is disabled */ - if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) && (vm_flags & VM_HUGEPAGE)) { + if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) && + vma_test(vma, VMA_HUGEPAGE_BIT)) { /* * Cap max THP order at 2MB: this is the common PMD-sized * hugepage size, and it avoids memory pressure from very @@ -3377,20 +3378,21 @@ static struct file *do_sync_mmap_readahead(struct vm_fault *vmf) * If we don't want any read-ahead, don't bother. * VM_EXEC case below is already intended for random access. */ - if ((vm_flags & (VM_RAND_READ | VM_EXEC)) == VM_RAND_READ) + if (vma_test(vma, VMA_RAND_READ_BIT) && + !vma_test(vma, VMA_EXEC_BIT)) return fpin; if (!ra->ra_pages) return fpin; - if (vm_flags & VM_SEQ_READ) { + if (vma_test(vma, VMA_SEQ_READ_BIT)) { fpin = maybe_unlock_mmap_for_io(vmf, fpin); page_cache_sync_ra(&ractl, ra->ra_pages); return fpin; } } - if (!(vm_flags & (VM_SEQ_READ | VM_EXEC))) { + if (!vma_test_any(vma, VMA_SEQ_READ_BIT, VMA_EXEC_BIT)) { /* Avoid banging the cache line if not needed */ mmap_miss = READ_ONCE(ra->mmap_miss); if (mmap_miss < MMAP_LOTSAMISS * 10) @@ -3414,7 +3416,7 @@ static struct file *do_sync_mmap_readahead(struct vm_fault *vmf) * Fetch two folios so we get the chance to actually * readahead, unless we've been told not to. */ - if (!(vm_flags & VM_RAND_READ)) + if (!vma_test(vma, VMA_RAND_READ_BIT)) ra->size *= 2; ra->async_size = folio_nr_pages; ra->order = thp_order; @@ -3422,7 +3424,7 @@ static struct file *do_sync_mmap_readahead(struct vm_fault *vmf) return fpin; } - if (vm_flags & VM_EXEC) { + if (vma_test(vma, VMA_EXEC_BIT)) { /* * Allow arch to request a preferred minimum folio order for * executable memory. This can often be beneficial to @@ -3477,7 +3479,7 @@ static struct file *do_async_mmap_readahead(struct vm_fault *vmf, unsigned short mmap_miss; /* If we don't want any read-ahead, don't bother */ - if (vmf->vma->vm_flags & VM_RAND_READ || !ra->ra_pages) + if (vma_test(vmf->vma, VMA_RAND_READ_BIT) || !ra->ra_pages) return fpin; /* @@ -3491,7 +3493,7 @@ static struct file *do_async_mmap_readahead(struct vm_fault *vmf, * keep the counter symmetric. */ if (likely(!folio_test_locked(folio)) && - !(vmf->vma->vm_flags & (VM_SEQ_READ | VM_EXEC))) { + !vma_test_any(vmf->vma, VMA_SEQ_READ_BIT, VMA_EXEC_BIT)) { mmap_miss = READ_ONCE(ra->mmap_miss); if (mmap_miss) WRITE_ONCE(ra->mmap_miss, --mmap_miss); @@ -3524,7 +3526,7 @@ static vm_fault_t filemap_fault_recheck_pte_none(struct vm_fault *vmf) * scenarios. Recheck the PTE without PT lock firstly, thereby reducing * the number of times we hold PT lock. */ - if (!(vma->vm_flags & VM_LOCKED)) + if (!vma_test(vma, VMA_LOCKED_BIT)) return 0; if (!(vmf->flags & FAULT_FLAG_ORIG_PTE_VALID)) @@ -4000,7 +4002,7 @@ vm_fault_t filemap_map_pages(struct vm_fault *vmf, if ((map_ret & VM_FAULT_NOPAGE) && !(vmf->flags & FAULT_FLAG_TRIED) && !folio_test_workingset(folio) && - !(vma->vm_flags & (VM_SEQ_READ | VM_EXEC))) { + !vma_test_any(vma, VMA_SEQ_READ_BIT, VMA_EXEC_BIT)) { unsigned short mmap_miss; mmap_miss = READ_ONCE(file->f_ra.mmap_miss); -- 2.56.0