Skip to content

Conversation

@naoNao89
Copy link
Contributor

@naoNao89 naoNao89 commented Nov 4, 2025

Add dd benchmark suite to validate O_DIRECT optimization theory from PR #9104.

This addresses the high priority checklist item in PR #9104. Results show 7-8x performance improvement with larger blocks (default 85.12ms vs 1M blocks 11.62ms), confirming that page-aligned buffers reduce syscall overhead

Benchmarks will track performance regression and establish baseline for O_DIRECT implementation.

- Create dd's first benchmark suite using divan framework
- Benchmark various block sizes (4K, 8K, 64K, 1M) to measure performance
- Test different dd scenarios: default, partial copy, skip, seek operations
- Measure impact of separate input/output block sizes
- All benchmarks use status=none to avoid output noise
- Benchmarks verify the O_DIRECT buffer alignment optimization
- Follows existing uutils benchmark patterns and conventions
@codspeed-hq
Copy link

codspeed-hq bot commented Nov 4, 2025

CodSpeed Performance Report

Merging #9136 will degrade performances by 2.28%

Comparing naoNao89:feature/dd-benchmarks (a8082ad) with main (975e18c)

Summary

❌ 1 regression
✅ 124 untouched
🆕 9 new

⚠️ Please fix the performance issues or acknowledge them on CodSpeed.

Benchmarks breakdown

Benchmark BASE HEAD Change
🆕 dd_copy_1m_blocks[16] N/A 1.4 ms N/A
🆕 dd_copy_4k_blocks[16] N/A 992.5 µs N/A
🆕 dd_copy_64k_blocks[16] N/A 458.6 µs N/A
🆕 dd_copy_8k_blocks[16] N/A 677.6 µs N/A
🆕 dd_copy_default[16] N/A 7.2 ms N/A
🆕 dd_copy_partial[16] N/A 524.1 µs N/A
🆕 dd_copy_separate_blocks[16] N/A 15 ms N/A
🆕 dd_copy_with_seek[16] N/A 988.4 µs N/A
🆕 dd_copy_with_skip[16] N/A 948.2 µs N/A
du_deep_tree[(100, 3)] 1.1 ms 1.2 ms -2.28%

@github-actions
Copy link

github-actions bot commented Nov 4, 2025

GNU testsuite comparison:

Skipping an intermittent issue tests/misc/tee (passes in this run but fails in the 'main' branch)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant