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 : )