Skip to content

feat(kernel): add GDRCopy userspace and kernel module - #19416

Draft
Elaheh Dehghani (ellie-di) wants to merge 1 commit into
4.0from
edehghani/4.0-gdrcopy
Draft

Elaheh Dehghani (ellie-di) wants to merge 1 commit into
4.0from
edehghani/4.0-gdrcopy

Conversation

@ellie-di

@ellie-di Elaheh Dehghani (ellie-di) commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Build GDRCopy 2.6 userspace, development files, sanity utility, and the gdrdrv kernel module as part of the kernel component.
  • Temporarily add the NVIDIA Azure Linux 3 CUDA repository until in NVIDIA's Azure Linux 4 CUDA repository become available.

Use kernel-specific releases for GDRCopy RPMs, centralize the CUDA version, and declare MIT licensing for each subpackage. Include refreshed rendered sources and the kernel lock.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 16, 2026 23:24
@ellie-di

Copy link
Copy Markdown
Contributor Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
2 pipeline(s) were filtered out due to trigger conditions.

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.

🔵 Needs a closer look

The unresolved upgrade lifecycle issue and unvalidated module loading, GPU transfers, and aarch64 build require human review.

1 open issue
What changed in this PR

Adds GDRCopy 2.6 userspace packages and the gdrdrv module to the kernel component.

Changes:

  • Adds runtime, development, sanity-tool, and kernel-module packaging.
  • Ties RPM releases to kernel builds and centralizes CUDA version configuration.
  • Adds NVIDIA CUDA build dependencies and refreshes generated inputs.
File Description
specs/​k/​kernel/​sources Records the GDRCopy source checksum.
specs/​k/​kernel/​kernel.spec Renders GDRCopy integration and release bump.
specs/​k/​kernel/​gdrcopy.inc Renders package definitions and build steps.
locks/​kernel.lock Refreshes the component fingerprint.
distro/​mock/​azl4/​azurelinux-4.0.tpl Adds NVIDIA’s Azure Linux 3 CUDA repository.
base/​comps/​kernel/​kernel.spec Integrates GDRCopy into kernel build phases.
base/​comps/​kernel/​kernel.comp.toml Pins the GDRCopy source archive.
base/​comps/​kernel/​gdrcopy.inc Defines GDRCopy packaging and service lifecycle.

Review effort: Balanced


%postun -n kmod-gdrcopy
%{_sbindir}/depmod -a %{KVERREL} || :
%systemd_postun_with_restart gdrcopy.service
@github-actions

Copy link
Copy Markdown

📄❌ Rendered specs are out of date

FIX: — run this and commit the result:

azldev component render erlang-rebar3 glib2 golang-x-oauth2 golang-x-text linux-sgx python-aiohttp python-beartype python-ecdsa rust-cssparser0.31 rust-databake rust-equator-macro rust-nalgebra0.33 rust-selectors0.25

Or download the fix patch and apply it:

gh run download 38981265935 -R microsoft/azurelinux -n rendered-specs-patch
git apply rendered-specs.patch
Category Count
Content diffs 13
Extra files (untracked) 0
Missing files (deleted) 0

Content diffs

`specs/e/erlang-rebar3/erlang-rebar3.spec`
--- committed/specs/e/erlang-rebar3/erlang-rebar3.spec
+++ rendered/specs/e/erlang-rebar3/erlang-rebar3.spec
@@ -1,5 +1,5 @@
 ## START: Set by rpmautospec
-## (rpmautospec version 0.8.3)
+## (rpmautospec version 0.8.4)
 ## RPMAUTOSPEC: autorelease, autochangelog
 %define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
     release_number = 8;
`specs/g/glib2/glib2.spec`
--- committed/specs/g/glib2/glib2.spec
+++ rendered/specs/g/glib2/glib2.spec
@@ -1,5 +1,5 @@
 ## START: Set by rpmautospec
-## (rpmautospec version 0.8.3)
+## (rpmautospec version 0.8.4)
 ## RPMAUTOSPEC: autorelease, autochangelog
 %define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
     release_number = 4;
`specs/g/golang-x-oauth2/golang-x-oauth2.spec`
--- committed/specs/g/golang-x-oauth2/golang-x-oauth2.spec
+++ rendered/specs/g/golang-x-oauth2/golang-x-oauth2.spec
@@ -1,5 +1,5 @@
 ## START: Set by rpmautospec
-## (rpmautospec version 0.8.3)
+## (rpmautospec version 0.8.4)
 ## RPMAUTOSPEC: autorelease, autochangelog
 %define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
     release_number = 2;
`specs/g/golang-x-text/golang-x-text.spec`
--- committed/specs/g/golang-x-text/golang-x-text.spec
+++ rendered/specs/g/golang-x-text/golang-x-text.spec
@@ -1,5 +1,5 @@
 ## START: Set by rpmautospec
-## (rpmautospec version 0.8.3)
+## (rpmautospec version 0.8.4)
 ## RPMAUTOSPEC: autorelease, autochangelog
 %define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
     release_number = 2;
`specs/l/linux-sgx/linux-sgx.spec`
--- committed/specs/l/linux-sgx/linux-sgx.spec
+++ rendered/specs/l/linux-sgx/linux-sgx.spec
@@ -1,5 +1,5 @@
 ## START: Set by rpmautospec
-## (rpmautospec version 0.8.3)
+## (rpmautospec version 0.8.4)
 ## RPMAUTOSPEC: autorelease, autochangelog
 %define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
     release_number = 8;
`specs/p/python-aiohttp/python-aiohttp.spec`
--- committed/specs/p/python-aiohttp/python-aiohttp.spec
+++ rendered/specs/p/python-aiohttp/python-aiohttp.spec
@@ -1,5 +1,5 @@
 ## START: Set by rpmautospec
-## (rpmautospec version 0.8.3)
+## (rpmautospec version 0.8.4)
 ## RPMAUTOSPEC: autorelease, autochangelog
 %define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
     release_number = 4;
`specs/p/python-beartype/python-beartype.spec`
--- committed/specs/p/python-beartype/python-beartype.spec
+++ rendered/specs/p/python-beartype/python-beartype.spec
@@ -1,5 +1,5 @@
 ## START: Set by rpmautospec
-## (rpmautospec version 0.8.3)
+## (rpmautospec version 0.8.4)
 ## RPMAUTOSPEC: autorelease, autochangelog
 %define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
     release_number = 4;
`specs/p/python-ecdsa/python-ecdsa.spec`
--- committed/specs/p/python-ecdsa/python-ecdsa.spec
+++ rendered/specs/p/python-ecdsa/python-ecdsa.spec
@@ -1,5 +1,5 @@
 ## START: Set by rpmautospec
-## (rpmautospec version 0.8.3)
+## (rpmautospec version 0.8.4)
 ## RPMAUTOSPEC: autorelease, autochangelog
 %define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
     release_number = 5;
`specs/r/rust-cssparser0.31/rust-cssparser0.31.spec`
--- committed/specs/r/rust-cssparser0.31/rust-cssparser0.31.spec
+++ rendered/specs/r/rust-cssparser0.31/rust-cssparser0.31.spec
@@ -1,5 +1,5 @@
 ## START: Set by rpmautospec
-## (rpmautospec version 0.8.3)
+## (rpmautospec version 0.8.4)
 ## RPMAUTOSPEC: autorelease, autochangelog
 %define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
     release_number = 4;
`specs/r/rust-databake/rust-databake.spec`
--- committed/specs/r/rust-databake/rust-databake.spec
+++ rendered/specs/r/rust-databake/rust-databake.spec
@@ -1,5 +1,5 @@
 ## START: Set by rpmautospec
-## (rpmautospec version 0.8.3)
+## (rpmautospec version 0.8.4)
 ## RPMAUTOSPEC: autorelease, autochangelog
 %define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
     release_number = 4;

… and 3 more file(s). Run the remediation command above to see all changes.

This branch has not been deployed

No deployments
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.

2 participants