Skip to content

linux: add 6.18 test kernel alongside 6.1#61

Merged
benhillis merged 1 commit into
microsoft:mainfrom
benhillis:add-6.6-and-6.12-kernels
May 19, 2026
Merged

linux: add 6.18 test kernel alongside 6.1#61
benhillis merged 1 commit into
microsoft:mainfrom
benhillis:add-6.6-and-6.12-kernels

Conversation

@benhillis
Copy link
Copy Markdown
Member

@benhillis benhillis commented May 14, 2026

Summary

Adds a parallel 6.18 (linux-6.18.y, v6.18.31) test kernel build alongside the existing 6.1 LTS kernel that ships today. The two kernels build side-by-side and are released as separate openvmm-test-linux-<version> artifacts; the shared initrd is unchanged.

Changes

  • Dockerfile: new src-linux-6.18 source pin (commit 6c1de6e6), build-linux-6.18 / result-linux-6.18 stages mirroring 6.1, and a COPY --from=result-linux-6.18 / /linux-6.18/ line in the output stage.
  • sysroots/linux-6.18/deps: exports LINUX_VERSION=6.18 so the shared pkg/linux/build.sh selects the 6.18 config tree.
  • pkg/linux/6.18/{x86_64,aarch64}.config: seeded by copying from 6.1. CI's in-build olddefconfig is canonical; if these diverge under CONFIG_WERROR=y the resolved configs should be pulled back per the "Updating a kernel config" recipe in pkg/linux/README.md.
  • .github/workflows/build.yml: extend KERNELS to "6.1 6.18" so the release job packages openvmm-test-linux-6.18.<arch>.<ver>.tar.gz (gh-release upload is glob-based, no further changes needed).
  • cgmanifest.json: regenerated via pkg/Tools/gen-cgmanifest.py to register the new gregkh/linux pin.
  • READMEs: documented the new linux-6.18/ output, artifact, and config layout.

Notes

  • 6.1 is unchanged (already at .172 after linux: split test kernel into its own release artifact #62).
  • This builds the latest stable 6.18 point release at branch time (v6.18.31). Future bumps update both the ADD SHA in the Dockerfile and cgmanifest.json (regenerated).
  • Originally this PR was scoped at adding 6.6 + 6.12; reset and reduced to just 6.18 per offline discussion.

Comment thread .github/workflows/build.yml
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

This PR expands the Linux “test kernel” build pipeline from a single 6.1 kernel to three LTS lines (6.1/6.6/6.12), and changes the release packaging so kernels are shipped as separate artifacts from openvmm-deps.

Changes:

  • Add per-kernel-version sysroots that export LINUX_VERSION, and update pkg/linux/build.sh to select the corresponding per-version config.
  • Update the Dockerfile to build three pinned kernel source stages and produce separate output directories for openvmm-deps/ and each kernel.
  • Update release workflow versioning and artifact layout to publish separate openvmm-test-linux-<kver> tarballs.

Reviewed changes

Copilot reviewed 10 out of 16 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
sysroots/linux/deps Removes the legacy linux sysroot deps entry (transition to per-version sysroots).
sysroots/linux-6.1/deps Adds a 6.1 sysroot exporting LINUX_VERSION=6.1.
sysroots/linux-6.6/deps Adds a 6.6 sysroot exporting LINUX_VERSION=6.6.
sysroots/linux-6.12/deps Adds a 6.12 sysroot exporting LINUX_VERSION=6.12.
pkg/linux/build.sh Requires LINUX_VERSION and selects the matching pkg/linux/<ver>/<arch>.config.
pkg/linux/README.md Documents new multi-version layout and how to update/add configs.
pkg/linux/6.6/aarch64.config Adds generated kernel configuration for Linux 6.6 arm64.
cgmanifest.json Adds additional pinned Linux git commits for component governance.
README.md Documents new output directory layout and new release artifact set.
Dockerfile Adds pinned sources and build stages per kernel; output stage now separates artifacts by directory.
.github/workflows/build.yml Updates packaging to emit multiple kernel artifacts and bumps version prefix.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/build.yml
Comment thread .github/workflows/build.yml Outdated
Comment thread README.md Outdated
Comment thread Dockerfile Outdated
Comment thread README.md
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 16 changed files in this pull request and generated no new comments.

@benhillis
Copy link
Copy Markdown
Member Author

I'm going to split this into two PRs.

@benhillis benhillis marked this pull request as draft May 14, 2026 22:04
@benhillis benhillis force-pushed the add-6.6-and-6.12-kernels branch from 0a0b961 to aec0d7a Compare May 15, 2026 22:40
@benhillis benhillis changed the title linux: build 6.1, 6.6, and 6.12 LTS test kernels linux: add 6.18 test kernel alongside 6.1 May 15, 2026
@benhillis benhillis marked this pull request as ready for review May 15, 2026 23:16
Copilot AI review requested due to automatic review settings May 15, 2026 23:16
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 6 out of 8 changed files in this pull request and generated 2 comments.

Comment thread pkg/linux/6.18/aarch64.config Outdated
Comment thread pkg/linux/6.18/x86_64.config Outdated
Adds a parallel 6.18 (linux-6.18.y, v6.18.31) test kernel build
mirroring the existing 6.1 LTS pipeline:

- Dockerfile: new src-linux-6.18 source pin, build-linux-6.18 /
  result-linux-6.18 stages, and a COPY into the output stage so the
  release workflow picks it up alongside linux-6.1/.
- sysroots/linux-6.18/deps: exports LINUX_VERSION=6.18 so the shared
  pkg/linux/build.sh selects the 6.18 config tree.
- pkg/linux/6.18/{x86_64,aarch64}.config: seeded from 6.1; CI's
  in-build olddefconfig is canonical and may need a follow-up commit
  if this seed drifts under CONFIG_WERROR.
- .github/workflows/build.yml: extend KERNELS to '6.1 6.18' so the
  release job packages openvmm-test-linux-6.18.<arch>.<ver>.tar.gz.
- cgmanifest.json: regenerated via pkg/Tools/gen-cgmanifest.py to
  register the new gregkh/linux pin.
- README.md / pkg/linux/README.md: document the 6.18 artifact and
  config layout.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@benhillis benhillis force-pushed the add-6.6-and-6.12-kernels branch from aec0d7a to e6f3d08 Compare May 15, 2026 23:44
Copy link
Copy Markdown
Contributor

@smalis-msft smalis-msft left a comment

Choose a reason for hiding this comment

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

I'm just going to assume those configs are what we want, not gonna review those whole giant things haha

@benhillis benhillis merged commit e5a7083 into microsoft:main May 19, 2026
5 checks passed
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.

4 participants