Re: [RFC PATCH v3 0/4] Support large folios for tmpfs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 2024/10/10 17:58, Baolin Wang wrote:
Hi,

This RFC patch series attempts to support large folios for tmpfs.

Considering that tmpfs already has the 'huge=' option to control the THP
allocation, it is necessary to maintain compatibility with the 'huge='
option, as well as considering the 'deny' and 'force' option controlled
by '/sys/kernel/mm/transparent_hugepage/shmem_enabled'.

Add a new huge option 'write_size' to support large folio allocation based
on the write size for tmpfs write and fallocate paths. So the huge pages
allocation strategy for tmpfs is that, if the 'huge=' option
(huge=always/within_size/advise) is enabled or the 'shmem_enabled' option
is 'force', it need just allow PMD sized THP to keep backward compatibility
for tmpfs. While 'huge=' option is disabled (huge=never) or the 'shmem_enabled'
option is 'deny', it will still disable any large folio allocations. Only
when the 'huge=' option is 'write_size', it will allow allocating large
folios based on the write size.

And I think the 'huge=write_size' option should be the default behavior
for tmpfs in future.

Could we avoid new huge= option for tmpfs, maybe support other orders
for both read/write/fallocate if mount with huge?


Any comments and suggestions are appreciated. Thanks.

Changes from RFC v2:
  - Drop mTHP interfaces to control huge page allocation, per Matthew.
  - Add a new helper to calculate the order, suggested by Matthew.
  - Add a new huge=write_size option to allocate large folios based on
    the write size.
  - Add a new patch to update the documentation.

Changes from RFC v1:
  - Drop patch 1.
  - Use 'write_end' to calculate the length in shmem_allowable_huge_orders().
  - Update shmem_mapping_size_order() per Daniel.

Baolin Wang (4):
   mm: factor out the order calculation into a new helper
   mm: shmem: change shmem_huge_global_enabled() to return huge order
     bitmap
   mm: shmem: add large folio support to the write and fallocate paths
     for tmpfs
   docs: tmpfs: add documention for 'write_size' huge option

  Documentation/filesystems/tmpfs.rst |   7 +-
  include/linux/pagemap.h             |  16 ++++-
  mm/shmem.c                          | 105 ++++++++++++++++++++--------
  3 files changed, 94 insertions(+), 34 deletions(-)






[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux