On Thu, Jun 13, 2024 at 10:07:15AM +0200, David Hildenbrand wrote: > On 13.06.24 09:57, Luis Chamberlain wrote: > > On Wed, Jun 12, 2024 at 08:08:15PM +0100, Matthew Wilcox wrote: > > > On Fri, Jun 07, 2024 at 02:58:57PM +0000, Pankaj Raghav (Samsung) wrote: > > > > From: Pankaj Raghav <p.raghav@xxxxxxxxxxx> > > > > > > > > Usually the page cache does not extend beyond the size of the inode, > > > > therefore, no PTEs are created for folios that extend beyond the size. > > > > > > > > But with LBS support, we might extend page cache beyond the size of the > > > > inode as we need to guarantee folios of minimum order. Cap the PTE range > > > > to be created for the page cache up to the max allowed zero-fill file > > > > end, which is aligned to the PAGE_SIZE. > > > > > > I think this is slightly misleading because we might well zero-fill > > > to the end of the folio. The issue is that we're supposed to SIGBUS > > > if userspace accesses pages which lie entirely beyond the end of this > > > file. Can you rephrase this? > > > > > > (from mmap(2)) > > > SIGBUS Attempted access to a page of the buffer that lies beyond the end > > > of the mapped file. For an explanation of the treatment of the > > > bytes in the page that corresponds to the end of a mapped file > > > that is not a multiple of the page size, see NOTES. > > > > > > > > > The code is good though. > > > > > > Reviewed-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> > > > > Since I've been curating the respective fstests test to test for this > > POSIX corner case [0] I wanted to enable the test for tmpfs instead of > > skipping it as I originally had it, and that meant also realizing mmap(2) > > specifically says this now: > > > > Huge page (Huge TLB) mappings > > Confusion alert: this likely talks about hugetlb (MAP_HUGETLB), not THP and > friends. > > So it might not be required for below changes. Thanks, I had to ask as we're dusting off this little obscure corner of the universe. Reason I ask, is the test fails for tmpfs with huge pages, and this patch fixes it, but it got me wondering the above applies also to tmpfs with huge pages. Luis