Skip to content

ci: shard bpf-tests by integration test binary#358

Open
not-matthias wants to merge 1 commit into
mainfrom
ci/shard-bpf-tests
Open

ci: shard bpf-tests by integration test binary#358
not-matthias wants to merge 1 commit into
mainfrom
ci/shard-bpf-tests

Conversation

@not-matthias
Copy link
Copy Markdown
Member

Summary

The bpf-tests job is the long pole of CI at ~13min, while every other job finishes in under 5min. Breakdown of the slow step on a recent run:

stage time
build/deps ~1m15s
c_tests 3m38s (8 cases, serial)
cpp_tests 3m44s (7 cases, serial)
rust_tests 2m21s (3 cases, serial)
spawn_tests 1m03s (2 cases)

Each memtrack integration test binary runs its cases serially because the eBPF tracker can't safely overlap with itself in one process (--test-threads 1). That's a per-binary constraint though — different test binaries are fully independent.

This shards bpf-tests into four matrix jobs, one per integration test binary. Each shard builds only the binary it needs and runs its cases as before. Critical path drops from ~13min to ~5min (longest shard ≈ cpp_tests).

Test plan

  • All four bpf-tests (...) matrix jobs pass
  • check job correctly waits for the whole matrix and turns green

Each memtrack integration test binary runs its cases serially because
the eBPF tracker can't overlap with itself in one process. Sharding at
the test-binary level lets the four binaries build and run in parallel
across jobs, dropping the critical path from ~13min to ~5min.
@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented May 16, 2026

Merging this PR will not alter performance

⚠️ Unknown Walltime execution environment detected

Using the Walltime instrument on standard Hosted Runners will lead to inconsistent data.

For the most accurate results, we recommend using CodSpeed Macro Runners: bare-metal machines fine-tuned for performance measurement consistency.

✅ 7 untouched benchmarks


Comparing ci/shard-bpf-tests (942f43e) with main (149a618)

Open in CodSpeed

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