| From: Alistair Popple <apopple@nvidia.com> |
| Subject: proc/task_mmu: mark devdax and fsdax pages as always unpinned |
| Date: Tue, 7 Jan 2025 14:42:35 +1100 |
| |
| The procfs mmu files such as smaps and pagemap currently ignore devdax and |
| fsdax pages because these pages are considered special. A future change |
| will start treating these as normal pages, meaning they can be exposed via |
| smaps and pagemap. |
| |
| The only difference is that devdax and fsdax pages can never be pinned for |
| DMA via FOLL_LONGTERM, so add an explicit check in pte_is_pinned() to |
| reflect that. |
| |
| Link: https://lkml.kernel.org/r/e17a04cf8feaa838e62d0c7d1de97444222b7956.1736221254.git-series.apopple@nvidia.com |
| Signed-off-by: Alistair Popple <apopple@nvidia.com> |
| Cc: Asahi Lina <lina@asahilina.net> |
| Cc: Bjorn Helgaas <bhelgaas@google.com> |
| Cc: Björn Töpel <bjorn@rivosinc.com> |
| Cc: Catalin Marinas <catalin.marinas@arm.com> |
| Cc: Christoph Hellwig <hch@lst.de> |
| Cc: Chunyan Zhang <zhang.lyra@gmail.com> |
| Cc: Dan Wiliams <dan.j.williams@intel.com> |
| Cc: Darrick J. Wong <djwong@kernel.org> |
| Cc: Dave Chinner <david@fromorbit.com> |
| Cc: Dave Hansen <dave.hansen@linux.intel.com> |
| Cc: Dave Jiang <dave.jiang@intel.com> |
| Cc: David Hildenbrand <david@redhat.com> |
| Cc: Gerald Schaefer <gerald.schaefer@linux.ibm.com> |
| Cc: Ira Weiny <ira.weiny@intel.com> |
| Cc: Jan Kara <jack@suse.cz> |
| Cc: Jason Gunthorpe <jgg@nvidia.com> |
| Cc: Jason Gunthorpe <jgg@ziepe.ca> |
| Cc: John Hubbard <jhubbard@nvidia.com> |
| Cc: kernel test robot <lkp@intel.com> |
| Cc: Logan Gunthorpe <logang@deltatee.com> |
| Cc: Matthew Wilcox (Oracle) <willy@infradead.org> |
| Cc: Miaohe Lin <linmiaohe@huawei.com> |
| Cc: Michael Ellerman <mpe@ellerman.id.au> |
| Cc: Nicholas Piggin <npiggin@gmail.com> |
| Cc: Peter Xu <peterx@redhat.com> |
| Cc: Theodore Ts'o <tytso@mit.edu> |
| Cc: Vishal Verma <vishal.l.verma@intel.com> |
| Cc: Vivek Goyal <vgoyal@redhat.com> |
| Cc: Will Deacon <will@kernel.org> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| fs/proc/task_mmu.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/fs/proc/task_mmu.c~proc-task_mmu-mark-devdax-and-fsdax-pages-as-always-unpinned |
| +++ a/fs/proc/task_mmu.c |
| @@ -1378,7 +1378,7 @@ static inline bool pte_is_pinned(struct |
| if (likely(!test_bit(MMF_HAS_PINNED, &vma->vm_mm->flags))) |
| return false; |
| folio = vm_normal_folio(vma, addr, pte); |
| - if (!folio) |
| + if (!folio || folio_is_devdax(folio) || folio_is_fsdax(folio)) |
| return false; |
| return folio_maybe_dma_pinned(folio); |
| } |
| _ |