flowey: disable unused dev kernel IGVM variants#3986
Conversation
There was a problem hiding this comment.
Pull request overview
This PR reduces CI and developer-environment cost by disabling the unused OpenHCL “dev kernel” build lanes by default, while keeping the dev-kernel plumbing intact so it can be re-enabled later without rework.
Changes:
- Make the dev-kernel version optional (
OPENHCL_KERNEL_DEV_VERSION: Option<&str> = None) and only configure dev versions when set. - Remove dev-kernel IGVM recipes from the OSS check-in gate matrices when the dev version is unset.
- Stop exposing dev-kernel build args and kernel paths in the Nix dev shell unless explicitly enabled.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
shell.nix |
Gates dev-kernel env vars/build args behind an explicit enableDevKernel toggle (default off). |
flowey/flowey_lib_hvlite/src/resolve_openhcl_kernel_package.rs |
Adds an explicit error when a dev kernel is requested but no dev version is configured. |
flowey/flowey_lib_hvlite/src/build_openhcl_igvm_from_recipe.rs |
Adds uses_dev_kernel() helper to identify dev-kernel recipes for filtering. |
flowey/flowey_lib_hvlite/src/_jobs/cfg_versions.rs |
Makes dev kernel version optional and conditionally injects dev versions into the resolver config. |
flowey/flowey_hvlite/src/pipelines/checkin_gates.rs |
Filters dev-kernel recipes out of check-in gates when dev version is unset. |
ci-flowey/openvmm-pr.yaml |
Regenerated pipeline YAML removing dev-kernel artifact publication and updating node indices. |
.github/workflows/openvmm-pr.yaml |
Regenerated GitHub Actions workflow removing dev-kernel artifacts/steps and updating step ordering. |
.github/workflows/openvmm-pr-release.yaml |
Regenerated PR-release workflow removing dev-kernel artifacts/steps and updating step ordering. |
.github/workflows/openvmm-ci.yaml |
Regenerated CI workflow removing dev-kernel artifacts/steps and updating step ordering. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 9 out of 9 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (1)
flowey/flowey_lib_hvlite/src/resolve_openhcl_kernel_package.rs:144
- The error text says "dev kernel support is disabled", but this branch still supports dev-kernel builds when callers provide local kernel paths. Consider clarifying that only published dev-kernel packages are disabled (i.e., no dev version is configured), and that supplying local paths is the workaround.
anyhow::bail!(
"OpenHCL dev kernel support is disabled; provide local kernel paths for \
{:?} to enable {:?}",
arch,
kind,
77fda90 to
366615c
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 9 out of 9 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (1)
flowey/flowey_lib_hvlite/src/resolve_openhcl_kernel_package.rs:147
- The dev-kernel error path reports that support is disabled, but it doesn’t tell the user what to change to re-enable published dev-kernel downloads (vs. providing local overrides). Making the message explicit about the missing dev version should reduce confusion when someone selects a dev recipe from the CLI/pipeline.
anyhow::bail!(
"OpenHCL dev kernel support is disabled; provide local kernel paths for \
{:?} to enable {:?}",
arch,
kind,
366615c to
2f032a9
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 11 out of 11 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (1)
flowey/flowey_lib_hvlite/src/resolve_openhcl_kernel_package.rs:148
- The new dev-kernel-disabled error is a bit misleading: it suggests providing local kernel paths is the way to “enable” a dev kind, but doesn’t mention that a dev kernel version can be configured (SetVersion / OPENHCL_KERNEL_DEV_VERSION). Also, local resolution requires both kernel and modules paths, which the message doesn’t mention. Consider rewording to explicitly list the two supported ways to satisfy a dev-kernel request (local paths vs configuring a dev version).
if kind.is_dev() {
anyhow::bail!(
"OpenHCL dev kernel support is disabled; provide local kernel paths for \
{:?} to enable {:?}",
arch,
kind,
);
2f032a9 to
9106bcc
Compare
Keep the dev-kernel recipes and resolver support dormant while the main and dev kernels are identical. Omit dev variants from CI and Nix, and return a clear error for explicit requests until a dev version is configured. Copilot-Session: c2ea718a-f976-4419-8cb6-0ccca01866ee
Regenerate the GitHub workflows against the latest main branch after rebasing the dev-kernel gating change. Copilot-Session: c2ea718a-f976-4419-8cb6-0ccca01866ee
Mention local kernel paths as an alternative to configuring a published dev-kernel version. Copilot-Session: c2ea718a-f976-4419-8cb6-0ccca01866ee
Document the optional dev version beside its declaration and direct runtime errors only toward local kernel paths. Copilot-Session: c2ea718a-f976-4419-8cb6-0ccca01866ee
Use exhaustive matches for dev-kernel package and recipe classification so new variants require an explicit decision. Copilot-Session: c2ea718a-f976-4419-8cb6-0ccca01866ee
Explain that packaged dev-kernel variants are disabled by default, local custom kernels remain available, and the Nix variants can be restored when needed. Copilot-Session: c2ea718a-f976-4419-8cb6-0ccca01866ee
9106bcc to
8c0e88f
Compare
Motivation
OpenHCL retains separate dev Linux kernel IGVM recipe variants, but the dev branch no longer represents long-lived feature work that needs a permanently separate set of OpenVMM artifacts. Kernel changes are promoted to main, and the current VMM test pipelines do not consume the dev-kernel IGVM artifacts.
The check-in pipelines nevertheless build and publish dev variants for standard x64, Linux-direct, CVM, and aarch64 configurations. These builds add cost without providing distinct test coverage.
Changes
Re-enabling the dev variants
OPENHCL_KERNEL_DEV_VERSIONtoSome("<VERSION>").enableDevKernelinshell.nixtotrueand update the dev version and hashes innix/openhcl_kernel.nix.Validation
cargo clippy --all-targets -p flowey_lib_hvlite -p flowey_hvlitecargo doc --no-deps -p flowey_lib_hvlite -p flowey_hvlitecargo xtask fmt --fix