[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240515055719.32577-1-da.gomez@samsung.com>
Date: Wed, 15 May 2024 05:57:21 +0000
From: Daniel Gomez <da.gomez@...sung.com>
To: "hughd@...gle.com" <hughd@...gle.com>, "akpm@...ux-foundation.org"
<akpm@...ux-foundation.org>, "willy@...radead.org" <willy@...radead.org>,
"jack@...e.cz" <jack@...e.cz>, "mcgrof@...nel.org" <mcgrof@...nel.org>
CC: "linux-mm@...ck.org" <linux-mm@...ck.org>, "linux-xfs@...r.kernel.org"
<linux-xfs@...r.kernel.org>, "djwong@...nel.org" <djwong@...nel.org>,
"Pankaj Raghav" <p.raghav@...sung.com>, "dagmcr@...il.com"
<dagmcr@...il.com>, "yosryahmed@...gle.com" <yosryahmed@...gle.com>,
"baolin.wang@...ux.alibaba.com" <baolin.wang@...ux.alibaba.com>,
"ritesh.list@...il.com" <ritesh.list@...il.com>,
"lsf-pc@...ts.linux-foundation.org" <lsf-pc@...ts.linux-foundation.org>,
"david@...hat.com" <david@...hat.com>, "chandan.babu@...cle.com"
<chandan.babu@...cle.com>, "linux-kernel@...r.kernel.org"
<linux-kernel@...r.kernel.org>, "brauner@...nel.org" <brauner@...nel.org>,
Daniel Gomez <da.gomez@...sung.com>
Subject: [PATCH 00/12] [LSF/MM/BPF RFC] shmem/tmpfs: add large folios
support
In preparation for the LSF/MM/BPF 2024 discussion [1], the patches below add
support for large folios in shmem for the write and fallocate paths.
[1] https://lore.kernel.org/all/4ktpayu66noklllpdpspa3vm5gbmb5boxskcj2q6qn7md3pwwt@kvlu64pqwjzl/
test
This version includes per-block uptodate tracking required for lseek when
enabling support for large folios. Initially, this feature was introduced to
address lseek fstests (specifically generic/285 and generic/436) for huge pages.
However, it was suggested that, for THP, the test should be adapted to PAGE_SIZE
and PMD_SIZE. Nevertheless, with arbitrary folio orders we require the lowest
granularity possible. This topic will be part of the discussion in tomorrow's
session.
Fstests expunges results can be found in kdevops' tree:
https://github.com/linux-kdevops/kdevops/tree/main/workflows/fstests/expunges/6.9.0-shmem-large-folios-with-block-tracking/tmpfs
https://github.com/linux-kdevops/kdevops/tree/main/workflows/fstests/expunges/6.8.0-shmem-large-folios-with-block-tracking/tmpfs
Daniel
Daniel Gomez (11):
shmem: add per-block uptodate tracking for large folios
shmem: move folio zero operation to write_begin()
shmem: exit shmem_get_folio_gfp() if block is uptodate
shmem: clear_highpage() if block is not uptodate
shmem: set folio uptodate when reclaim
shmem: check if a block is uptodate before splice into pipe
shmem: clear uptodate blocks after PUNCH_HOLE
shmem: enable per-block uptodate
shmem: add order arg to shmem_alloc_folio()
shmem: add file length arg in shmem_get_folio() path
shmem: add large folio support to the write and fallocate paths
Pankaj Raghav (1):
splice: don't check for uptodate if partially uptodate is impl
fs/splice.c | 17 +-
fs/xfs/scrub/xfile.c | 6 +-
fs/xfs/xfs_buf_mem.c | 3 +-
include/linux/shmem_fs.h | 2 +-
mm/khugepaged.c | 3 +-
mm/shmem.c | 441 ++++++++++++++++++++++++++++++++++-----
mm/userfaultfd.c | 2 +-
7 files changed, 417 insertions(+), 57 deletions(-)
--
2.43.0
Powered by blists - more mailing lists