Skip to content

fix(ci): limit setup for golden checks and benchmark reports - #2031

Merged
cshung merged 1 commit into
hyperlight-dev:mainfrom
cshung:fix/ci-llvm-runner-setup
Nov 6, 2026
Merged

cshung merged 1 commit into
hyperlight-dev:mainfrom
cshung:fix/ci-llvm-runner-setup

Conversation

@cshung

@cshung cshung commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

Summary

The golden-label check uses just and ORAS. Benchmark reporting uses Rust. Neither job needs LLVM or hypervisor setup.

The shared setup can stall installing LLVM 18, then fall back to an unsupported Ubuntu resolute repository. Build and test jobs retain their existing setup.

Related to #1985. The earlier archive-install fix is hyperlight-dev/ci-setup-workflow#25.

Failing run: https://github.com/hyperlight-dev/hyperlight/actions/runs/42074355074

Validation

  • actionlint passes.
  • The golden-label check passes locally on Linux with just and ORAS.
  • The benchmark-report command produces a report from the failing run's artifacts.

Golden label checks need just and ORAS. Benchmark reports need Rust. These jobs avoid the LLVM installer and its unsupported Ubuntu fallback.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: cshung <3410332+cshung@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings November 6, 2026 16:41
@cshung cshung added kind/bugfix For PRs that fix bugs area/infrastructure Concerns infrastructure rather than core functionality ready-for-review PR is ready for (re-)review labels Nov 6, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues are reported for the scoped workflow setup changes.

No open issues 🎉

What changed in this PR

Limits setup in the golden-label and benchmark-report jobs to their required tools, avoiding unnecessary LLVM installation and hypervisor setup. Build and test jobs retain their existing setup.

Changes:

  • Golden-label checks use pinned setup-just alongside the existing ORAS setup.
  • Benchmark reporting uses Rust-only setup with caching and diagnostic matching disabled.
File Description
.github/​workflows/​ValidatePullRequest.yml Narrows tool setup for golden-label checks and benchmark reports.

Review effort: Balanced

@hyperlight-gh-bot

Copy link
Copy Markdown

Benchmark Results

Measured commit: 06623adba712
Baseline commit: a03088470d82

kvm / amd (Linux) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

encode_control decode_vec_bytes_copy
byte_chunks 750.94 ns (➖ 1.01x faster)
vec_bytes 583.59 ns (➖ 1.01x faster)
372.89 µs (➖ 1.00x faster)

payload_allocation

slot_pool_segmented
262144 526.97 ns (➖ 1.01x slower)
65536 141.99 ns (➖ 1.04x faster)

sandboxes

create_initialized_and_drop
medium 13.05 ms (➖ 1.04x faster)

slot_pool

alloc_dealloc_128 alloc_dealloc_4096 alloc_dealloc_1500
7.72 ns (➖ 1.00x slower) 7.71 ns (➖ 1.01x faster) 7.71 ns (➖ 1.00x faster)

snapshot_files

load_snapshot_unverified
small 102.47 µs (➖ 1.05x slower)

virtq_readonly

slot_pool_segmented slot_pool_segmented_fragmented
262144 7.34 µs (➖ 1.01x faster) 6.99 µs (➖ 1.02x faster)
65536 1.91 µs (➖ 1.09x faster) 2.06 µs (➖ 1.07x slower)

virtq_readwrite

slot_pool_segmented slot_pool_segmented_fragmented
262144 28.33 µs (➖ 1.03x slower)
65536 6.19 µs (➖ 1.03x faster) 6.25 µs (➖ 1.03x faster)
8192 1.03 µs (➖ 1.00x slower) 1.05 µs (➖ 1.02x slower)
kvm / intel (Linux) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

encode_control decode_vec_bytes_copy
byte_chunks 720.24 ns (➖ 1.06x faster)
vec_bytes 533.99 ns (➖ 1.07x faster)
676.38 µs (➖ 1.05x faster)

payload_allocation

slot_pool_segmented
262144 552.59 ns (➖ 1.04x faster)
65536 172.12 ns (➖ 1.03x faster)

sandboxes

create_initialized_and_drop
medium 14.66 ms (➖ 1.03x faster)

slot_pool

alloc_dealloc_128 alloc_dealloc_4096 alloc_dealloc_1500
7.37 ns (➖ 1.01x faster) 7.32 ns (➖ 1.02x faster) 7.29 ns (➖ 1.03x faster)

snapshot_files

load_snapshot_unverified
small 51.49 µs (➖ 1.02x faster)

virtq_readonly

slot_pool_segmented slot_pool_segmented_fragmented
262144 7.94 µs (➖ 1.10x faster) 7.87 µs (➖ 1.10x faster)
65536 2.27 µs (➖ 1.08x faster) 2.26 µs (➖ 1.10x faster)

virtq_readwrite

slot_pool_segmented slot_pool_segmented_fragmented
262144 30.00 µs (➖ 1.07x faster)
65536 7.36 µs (➖ 1.08x faster) 7.48 µs (➖ 1.05x faster)
8192 747.16 ns (➖ 1.05x faster) 749.95 ns (➖ 1.09x faster)
mshv3 / amd (Linux) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

encode_control decode_vec_bytes_copy
byte_chunks 907.27 ns (➖ 1.01x faster)
vec_bytes 698.35 ns (➖ 1.00x faster)
319.22 µs (➖ 1.01x faster)

payload_allocation

slot_pool_segmented
262144 670.01 ns (➖ 1.03x faster)
65536 184.93 ns (➖ 1.06x faster)

sandboxes

create_initialized_and_drop
medium 67.56 ms (➖ 1.01x faster)

slot_pool

alloc_dealloc_128 alloc_dealloc_4096 alloc_dealloc_1500
9.89 ns (➖ 1.00x slower) 9.87 ns (➖ 1.01x faster) 9.88 ns (➖ 1.00x faster)

snapshot_files

load_snapshot_unverified
small 113.68 µs (➖ 1.05x slower)

virtq_readonly

slot_pool_segmented slot_pool_segmented_fragmented
262144 9.38 µs (➖ 1.03x faster) 9.20 µs (➖ 1.06x faster)
65536 2.46 µs (➖ 1.01x slower) 2.61 µs (➖ 1.03x faster)

virtq_readwrite

slot_pool_segmented slot_pool_segmented_fragmented
262144 34.59 µs (➖ 1.03x faster)
65536 8.15 µs (➖ 1.04x faster) 7.95 µs (➖ 1.04x faster)
8192 1.28 µs (➖ 1.07x faster) 1.32 µs (➖ 1.04x slower)
mshv3 / intel (Linux) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

encode_control decode_vec_bytes_copy
byte_chunks 922.97 ns (➖ 1.02x faster)
vec_bytes 675.84 ns (➖ 1.01x slower)
1.04 ms (➖ 1.16x slower)

payload_allocation

slot_pool_segmented
262144 691.10 ns (➖ 1.02x slower)
65536 253.28 ns (➖ 1.03x faster)

sandboxes

create_initialized_and_drop
medium 89.28 ms (➖ 1.22x slower)

slot_pool

alloc_dealloc_128 alloc_dealloc_4096 alloc_dealloc_1500
8.75 ns (➖ 1.00x faster) 8.72 ns (➖ 1.00x faster) 8.75 ns (➖ 1.00x faster)

snapshot_files

load_snapshot_unverified
small 57.07 µs (➖ 1.03x slower)

virtq_readonly

slot_pool_segmented slot_pool_segmented_fragmented
262144 7.96 µs (➖ 1.02x faster) 8.00 µs (➖ 1.00x slower)
65536 2.27 µs (➖ 1.02x faster) 2.29 µs (➖ 1.01x faster)

virtq_readwrite

slot_pool_segmented slot_pool_segmented_fragmented
262144 40.63 µs (➖ 1.03x faster)
65536 7.47 µs (➖ 1.01x faster) 7.61 µs (➖ 1.01x slower)
8192 897.91 ns (➖ 1.03x faster) 908.98 ns (➖ 1.01x faster)
hyperv-ws2025 / amd (Windows) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

encode_control decode_vec_bytes_copy
byte_chunks 1.17 µs (➖ 1.01x faster)
vec_bytes 796.56 ns (➖ 1.03x slower)
2.12 ms (➖ 1.06x slower)

payload_allocation

slot_pool_segmented
262144 784.02 ns (➖ 1.01x faster)
65536 246.21 ns (➖ 1.07x slower)

sandboxes

create_initialized_and_drop
medium 12.07 ms (➖ 1.06x faster)

slot_pool

alloc_dealloc_128 alloc_dealloc_4096 alloc_dealloc_1500
9.99 ns (➖ 1.00x slower) 10.01 ns (➖ 1.02x faster) 10.05 ns (➖ 1.02x slower)

snapshot_files

load_snapshot_unverified
small 773.93 µs (➖ 1.03x faster)

virtq_readonly

slot_pool_segmented slot_pool_segmented_fragmented
262144 9.09 µs (➖ 1.13x faster) 9.04 µs (➖ 1.06x faster)
65536 2.29 µs (➖ 1.13x faster) 2.42 µs (➖ 1.03x slower)

virtq_readwrite

slot_pool_segmented slot_pool_segmented_fragmented
262144 38.36 µs (➖ 1.20x faster)
65536 9.02 µs (➖ 1.07x faster) 8.71 µs (➖ 1.15x faster)
8192 1.29 µs (➖ 1.03x faster) 1.54 µs (➖ 1.07x slower)
hyperv-ws2025 / intel (Windows) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

encode_control decode_vec_bytes_copy
byte_chunks 1.25 µs (➖ 1.04x slower)
vec_bytes 755.10 ns (➖ 1.03x faster)
3.03 ms (➖ 1.07x faster)

payload_allocation

slot_pool_segmented
262144 743.87 ns (➖ 1.00x slower)
65536 208.07 ns (➖ 1.01x slower)

sandboxes

create_initialized_and_drop
medium 14.18 ms (➖ 1.00x faster)

slot_pool

alloc_dealloc_128 alloc_dealloc_4096 alloc_dealloc_1500
10.87 ns (➖ 1.13x slower) 10.14 ns (➖ 1.03x slower) 9.56 ns (➖ 1.00x faster)

snapshot_files

load_snapshot_unverified
small 681.63 µs (➖ 1.01x faster)

virtq_readonly

slot_pool_segmented slot_pool_segmented_fragmented
262144 7.54 µs (➖ 1.01x faster) 7.68 µs (➖ 1.02x slower)
65536 2.53 µs (➖ 1.09x slower) 2.30 µs (➖ 1.01x faster)

virtq_readwrite

slot_pool_segmented slot_pool_segmented_fragmented
262144 39.95 µs (➖ 1.28x faster)
65536 8.40 µs (➖ 1.03x faster) 8.41 µs (➖ 1.01x faster)
8192 1.09 µs (➖ 1.03x slower) 1.46 µs (➖ 1.06x slower)

Reported by cargo ci bench-report --candidate run:42254703190 --config-file bench_report.toml.

@ludfjig ludfjig left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I fixed this recently in hyperlgiht-wasm by downgrading ubuntu-latest back to 24.04 hyperlight-dev/hyperlight-wasm#568

@cshung
cshung merged commit 6c8cf87 into hyperlight-dev:main Nov 6, 2026
66 checks passed
@cshung
cshung deleted the fix/ci-llvm-runner-setup branch November 6, 2026 19:16
@github-actions github-actions Bot removed the ready-for-review PR is ready for (re-)review label Nov 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/infrastructure Concerns infrastructure rather than core functionality kind/bugfix For PRs that fix bugs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants