Skip to content

Commit 7c2d372

Browse files
committed
ci: run memtrack bpf tests across the kernel and arch matrix
Run the rss/bpf tests on arm and codspeed-macro runners over old- and new-layout kernels.
1 parent 6a0e292 commit 7c2d372

1 file changed

Lines changed: 20 additions & 4 deletions

File tree

.github/workflows/ci.yml

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,22 +88,35 @@ jobs:
8888
run: cargo run -- exec -m walltime --skip-upload --warmup-time 0s --max-rounds 5 -- ls -la
8989

9090
bpf-tests:
91-
runs-on: ubuntu-latest
91+
runs-on: ${{ matrix.os }}
9292
strategy:
9393
fail-fast: false
9494
matrix:
95+
os: [ubuntu-latest, ubuntu-24.04-arm, codspeed-macro]
9596
# Each memtrack integration test binary runs its cases serially
9697
# (eBPF tracker can't overlap with itself in one process), so we
9798
# shard at the test-binary level to parallelize across jobs.
98-
test: [c_tests, cpp_tests, rust_tests, spawn_tests, dlopen_tests]
99+
test: [c_tests, cpp_tests, rust_tests, spawn_tests, dlopen_tests, rss_tests]
100+
include:
101+
# The folio CO-RE relocations in the rmap hooks depend on kernel
102+
# struct layouts that changed across versions (folio.flags in 6.18,
103+
# pageflags values in 6.10/6.12); keep older-kernel images in the
104+
# matrix so the legacy layouts stay covered once the latest images
105+
# move past them.
106+
- os: ubuntu-22.04
107+
test: rss_tests
108+
- os: ubuntu-22.04-arm
109+
test: rss_tests
99110
steps:
100111
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
101112
with:
102113
lfs: true
103114
submodules: true
115+
- name: Show kernel version
116+
run: uname -rm
104117
- uses: ./.github/actions/install-rust
105118
with:
106-
cache-key: ${{ matrix.test }}
119+
cache-key: ${{ matrix.os }}-${{ matrix.test }}
107120
- uses: ./.github/actions/install-bpf-deps
108121

109122
- name: Install additional allocators
@@ -115,8 +128,11 @@ jobs:
115128
run: sudo -E $(which cargo) test --lib --test ${{ matrix.test }} -- --test-threads 1 --nocapture
116129
working-directory: crates/memtrack
117130

118-
# Since we ran the tests with sudo, the build artifacts will have root ownership
131+
# Since we ran the tests with sudo, the build artifacts will have root
132+
# ownership; always restore it so a failed run cannot poison the
133+
# workspace of later jobs on persistent self-hosted runners.
119134
- name: Clean up
135+
if: always()
120136
run: sudo chown -R $USER:$USER . ~/.cargo
121137

122138
benchmarks:

0 commit comments

Comments
 (0)