From 9a82ad92f041129406bc2f78f13048b2ee718315 Mon Sep 17 00:00:00 2001 From: Sebastian Weyer <50481737+DocSepp@users.noreply.github.com> Date: Thu, 3 Oct 2024 23:57:58 +0200 Subject: [PATCH] interfaces/bulitin/opengl: add support for cuda workloads on Tegra iGPU in opengl interface (#14536) undefined --- interfaces/builtin/opengl.go | 13 +++++++++++++ interfaces/builtin/opengl_test.go | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/interfaces/builtin/opengl.go b/interfaces/builtin/opengl.go index f38eed78d0b..71aecbbd0d2 100644 --- a/interfaces/builtin/opengl.go +++ b/interfaces/builtin/opengl.go @@ -188,6 +188,11 @@ unix (bind,listen) type=seqpacket addr="@cuda-uvmfd-[0-9a-f]*", # From https://bugs.launchpad.net/snapd/+bug/1862832 /run/nvidia-xdriver-* rw, unix (send, receive) type=dgram peer=(addr="@var/run/nvidia-xdriver-*"), + +/dev/nvgpu/igpu[0-9]*/power rw, +/dev/nvgpu/igpu[0-9]*/ctrl rw, +/dev/nvgpu/igpu[0-9]*/prof rw, +/dev/host1x-fence rw, ` type openglInterface struct { @@ -211,6 +216,14 @@ var openglConnectedPlugUDev = []string{ `KERNEL=="mali[0-9]*"`, `KERNEL=="dma_buf_te"`, `KERNEL=="galcore"`, + + //iGPU device nodes + `SUBSYSTEM=="nvidia-gpu-v2-power" KERNEL=="power"`, + `SUBSYSTEM=="nvidia-gpu-v2" KERNEL=="ctrl"`, + `SUBSYSTEM=="nvidia-gpu-v2" KERNEL=="prof"`, + + // Nvidia dma barrier + `SUBSYSTEM=="host1x-fence"`, } // Those two are the same, but in theory they are separate and can move (or diff --git a/interfaces/builtin/opengl_test.go b/interfaces/builtin/opengl_test.go index de107485fc8..ebefb3322de 100644 --- a/interfaces/builtin/opengl_test.go +++ b/interfaces/builtin/opengl_test.go @@ -118,7 +118,7 @@ func (s *OpenglInterfaceSuite) TestUDevSpec(c *C) { c.Assert(err, IsNil) spec := udev.NewSpecification(appSet) c.Assert(spec.AddConnectedPlug(s.iface, s.plug, s.slot), IsNil) - c.Assert(spec.Snippets(), HasLen, 15) + c.Assert(spec.Snippets(), HasLen, 19) c.Assert(spec.Snippets(), testutil.Contains, `# opengl SUBSYSTEM=="drm", KERNEL=="card[0-9]*", TAG+="snap_consumer_app"`) c.Assert(spec.Snippets(), testutil.Contains, `# opengl