]> www.infradead.org Git - users/willy/xarray.git/commit
mm,tmpfs: consider end of file write in shmem_is_huge
authorRik van Riel <riel@surriel.com>
Tue, 3 Sep 2024 15:19:28 +0000 (11:19 -0400)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 9 Sep 2024 23:39:12 +0000 (16:39 -0700)
commite1e4cfd01a6e75dd4c810aeac115340805cf63ff
tree3a50be4213917ac03ba6e6fe033dba9ebf47d51d
parente899007a5e10084649f558593f7e8f26088492fc
mm,tmpfs: consider end of file write in shmem_is_huge

Take the end of a file write into consideration when deciding whether or
not to use huge pages for tmpfs files when the tmpfs filesystem is mounted
with huge=within_size

This allows large writes that append to the end of a file to automatically
use large pages.

Doing 4MB sequential writes without fallocate to a 16GB tmpfs file with
fio.  The numbers without THP or with huge=always stay the same, but the
performance with huge=within_size now matches that of huge=always.

huge before after
4kB pages 1560 MB/s 1560 MB/s
within_size 1560 MB/s 4720 MB/s
always: 4720 MB/s 4720 MB/s

[akpm@linux-foundation.org: coding-style cleanups]
Link: https://lkml.kernel.org/r/20240903111928.7171e60c@imladris.surriel.com
Signed-off-by: Rik van Riel <riel@surriel.com>
Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>
Tested-by: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: Darrick J. Wong <djwong@kernel.org>
Cc: Hugh Dickins <hughd@google.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
fs/xfs/scrub/xfile.c
fs/xfs/xfs_buf_mem.c
include/linux/shmem_fs.h
mm/huge_memory.c
mm/khugepaged.c
mm/shmem.c
mm/userfaultfd.c