public inbox for fio@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC 0/2] Introduce a page_fault ioengine for MM workflows
@ 2026-01-29 18:42 Nico Pache
  2026-01-29 18:43 ` [RFC 1/2] page_fault: add mmap-backed ioengine for anonymous faults Nico Pache
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Nico Pache @ 2026-01-29 18:42 UTC (permalink / raw)
  To: fio; +Cc: axboe, vincentfu, npache, david, willy

This series introduces a new page_fault ioengine and a follow‑up option
to make khugepaged behavior more deterministic for page fault testing.

The first patch adds an mmap‑backed ioengine that allocates anonymous
memory and copies data on read/write to intentionally trigger faults.
This enables using fio’s existing framework and job files for memory
management style workloads without relying on a filesystem. An example
job file is included to demonstrate usage.

The second patch adds a hugepage_delay option to the new engine. It
initially maps memory with MADV_NOHUGEPAGE, then (after a configurable
delay) switches to MADV_HUGEPAGE via a helper thread. This makes
khugepaged candidates reproducible, allows for easier khugepaged testing
and improves repeatability for page_fault tests.

Signed-off-by: Nico Pache <npache@redhat.com>

Nico Pache (2):
  page_fault: add mmap-backed ioengine for anonymous faults
  page_fault: add hugepage_delay option for delayed MADV_HUGEPAGE

 Makefile                |   2 +-
 cconv.c                 |   3 +
 engines/page_fault.c    | 185 ++++++++++++++++++++++++++++++++++++++++
 examples/page_fault.fio |   9 ++
 options.c               |  10 +++
 thread_options.h        |   3 +
 6 files changed, 211 insertions(+), 1 deletion(-)
 create mode 100644 engines/page_fault.c
 create mode 100644 examples/page_fault.fio

-- 
2.52.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-02-02 15:24 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-29 18:42 [RFC 0/2] Introduce a page_fault ioengine for MM workflows Nico Pache
2026-01-29 18:43 ` [RFC 1/2] page_fault: add mmap-backed ioengine for anonymous faults Nico Pache
2026-01-29 18:43 ` [RFC 2/2] page_fault: add hugepage_delay option for delayed MADV_HUGEPAGE Nico Pache
2026-01-30 20:08   ` Vincent Fu
2026-02-02 15:24     ` Nico Pache
2026-01-30 21:00 ` [RFC 0/2] Introduce a page_fault ioengine for MM workflows fiotestbot
2026-01-31 13:59 ` Jens Axboe
2026-02-02 15:22   ` Nico Pache

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox