[GSoC 2026] Filesystems Benchmarking and Stress Testing

Heyy,
I’m Anuj Billore, CS Student from India.

I am also applying for the btrfs write support project.So I will be applying proposal for this as well, These
two projects complement each other well - the test infrastructure
built here would directly validate the write support implemented
there.

Topic - Filesystems Benchmarking and Stress Testing

Background:

Most Haiku filesystems have minimal or no automated tests. After
surveying the existing test suite in src/tests/add-ons/kernel/
file_systems/, bfs is the only filesystem with meaningful tests
(btree, allocator, attributes, queries). btrfs, xfs, udf, ufs2
have only empty shell wrappers. fat and ext2 each have a single
shell script.

The shared/ directory has useful generic tools (random_file_actions,
consistency_check, fragmenter) that are not wired up to any
automated test runs.

Proposed Work:

Phase 1 - Port and evaluate tools (weeks 1-3):
Port bonnie++ to Haiku and run it against btrfs, fat, and bfs to
establish baseline performance numbers. Assess which xfstests
generic tests are portable to Haiku’s environment. Document
findings.

Phase 2 - Build automated test framework (weeks 4-5):
Wire up the existing shared/ tools into automated test runs.
Define a reproducible test procedure using Haiku’s VirtualBox
image. Write a script that runs all filesystem tests and collects
results automatically.

Phase 3 - Write new tests for btrfs and fat (weeks 6-9):
Write targeted tests for btrfs covering: directory iteration,
lookup correctness, read correctness for inline and regular
extents, and error handling. Write similar tests for fat. Use
bfs tests as reference for test structure.

Phase 4 - Fix bugs and bottlenecks found (weeks 10-14):
Fix data corruption bugs first, then performance issues. Focus
on btrfs and fat as the least tested filesystems. Improvements
may touch VFS layer or block cache if bottlenecks are found
there.

Expected Outcome:

  • bonnie++ benchmark results for btrfs, fat, bfs
  • Automated test suite runnable with a single command
  • New tests for btrfs and fat modeled after bfs tests
  • Bug fixes and performance improvements based on findings

175 hours.

I need some guidance regarding my current proposal and further scope. Any help would be appreciated : )

2 Likes

We already have it: haikuports/app-benchmarks/bonnie++ at d2b3313c252f9c2b5e3e7bd214007b533a6cffd3 · haikuports/haikuports · GitHub

You can’t use bonnie++ on a read-only filesystem, so it won’t be possible to do this on btrfs until write support is implemented.

You are trying to tackle too many things, I’d say. Just running bonnie++ and xfstests manually and fixing any problems identified would already make a good GSoC project, especially if you plan to work on multiple filesystems.

Automating the tests is yet another challenge, and could possibly be another GSoC idea on its own.

I suggest you try to focus on a smaller subset of tasks, rather than trying to do everything at once.

1 Like

Most of these should already be done when implementing write support (multiple block sizes, multiple fs torture suites, fs checks).

2 Likes

See: BFS-Tools and stress-ng (test frameworks/monkey/etc)
You can create and mount a writable FS image. Also review unmounted FS image. Shrink/Grow FS and Copy/delete/modify files and other tests.

XFS-Tools in current form could review with its developers for Haiku insertion…