89 lines
2.4 KiB
YAML
89 lines
2.4 KiB
YAML
name: Test MM (Host)
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
branches: ["master", "feat-*", "fix-*"]
|
|
pull_request:
|
|
branches: ["master", "feat-*", "fix-*"]
|
|
|
|
env:
|
|
HOME: /root
|
|
RUSTUP_DIST_SERVER: "https://rsproxy.cn"
|
|
RUSTUP_UPDATE_ROOT: "https://rsproxy.cn/rustup"
|
|
|
|
jobs:
|
|
build:
|
|
name: Build slab_stress (host)
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: dragonos/dragonos-dev:v1.19
|
|
options: --privileged -v /dev:/dev
|
|
steps:
|
|
- name: Checkout DragonOS code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Build slab_stress (host)
|
|
shell: bash -ileo pipefail {0}
|
|
run: |
|
|
cd kernel/crates/rust-slabmalloc
|
|
cargo build --release --features host --bin slab_stress
|
|
|
|
- name: Upload slab_stress binary
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: slab_stress-binary-${{ github.run_id }}-${{ github.run_attempt }}
|
|
path: kernel/target/release/slab_stress
|
|
retention-days: 1
|
|
|
|
slab-valgrind-stress:
|
|
name: Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }}
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 30
|
|
needs: build
|
|
strategy:
|
|
matrix:
|
|
size: [64, 128, 255, 256]
|
|
seed: [1, 2, 3]
|
|
container:
|
|
image: dragonos/dragonos-dev:v1.19
|
|
options: --privileged -v /dev:/dev
|
|
steps:
|
|
- name: Checkout DragonOS code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install valgrind
|
|
shell: bash -ileo pipefail {0}
|
|
run: |
|
|
apt-get update
|
|
apt-get install -y valgrind
|
|
|
|
- name: Download slab_stress binary
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: slab_stress-binary-${{ github.run_id }}-${{ github.run_attempt }}
|
|
path: /tmp
|
|
|
|
- name: Run slab_stress under valgrind
|
|
shell: bash -ileo pipefail {0}
|
|
env:
|
|
SLAB_STRESS_ITERS: "2000000"
|
|
SLAB_STRESS_SIZE: "${{ matrix.size }}"
|
|
SLAB_STRESS_SEED: "${{ matrix.seed }}"
|
|
run: |
|
|
chmod +x /tmp/slab_stress
|
|
valgrind \
|
|
-s \
|
|
--error-exitcode=1 \
|
|
--track-origins=yes \
|
|
--leak-check=full \
|
|
--show-leak-kinds=all \
|
|
--malloc-fill=0xAA --free-fill=0xDD \
|
|
/tmp/slab_stress \
|
|
--iters "${SLAB_STRESS_ITERS}" \
|
|
--max-live 4096 \
|
|
--size "${SLAB_STRESS_SIZE}" \
|
|
--seed "${SLAB_STRESS_SEED}"
|
|
|
|
|