NVIDIA / NVIDIA/open-gpu-kernel-modules
nvidia-open 610.57.04: suspend hangs with NV_ERR_NO_MEMORY in _memdescAllocInternal (RTX 2070 Super, GSP disabled)
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 17.4k
- Forks
- 1.9k
- PR merge metrics
- No merged PRs in 30d
Description
NVIDIA Open GPU Kernel Modules Version
610.57.04-6
Please confirm this issue does not happen with the proprietary driver (of the same version). This issue tracker is only for bugs specific to the open kernel driver.
- [] I confirm that this does not happen with the proprietary driver package.
Operating System and Version
Arch Linux
Kernel Release
7.1.8-arch1-3
Please confirm you are running a stable release kernel (e.g. not a -rc). We do not accept bug reports for unreleased kernels.
- I am running on a stable kernel release.
Hardware: GPU
NVIDIA GeForce RTX 2070 Super with Max-Q Design
Describe the bug
When suspending to RAM (S3, deep sleep) while a GPU-intensive Vulkan/OpenGL application (Cemu) is running, the NVIDIA kernel module fails to allocate memory during the suspend transition, logging NVRM: nvCheckOkFailedNoLog: Check failed: Out of memory [NV_ERR_NO_MEMORY] (0x00000051) returned from _memdescAllocInternal(pMemDesc) @ mem_desc.c:1338 immediately after PM: suspend entry (deep).
Rather than failing gracefully, the entire system becomes unresponsive and does not complete the suspend/resume cycle. No further kernel or journal activity is logged until a forced power cycle. Host system RAM and swap were not under pressure at the time (15GB RAM with several GB free, swap nearly empty), and GSP firmware is explicitly disabled
To Reproduce
Preconditions:
- Laptop with hybrid graphics (NVIDIA + integrated), nvidia-prime installed for PRIME/Optimus configuration
- NVIDIA Turing GPU (tested on RTX 2070 Super Max-Q, 8GB VRAM)
- nvidia-open 610.57.04 driver installed and loaded (kernel module, not proprietary)
- /etc/modprobe.d/nvidia.conf sets NVreg_EnableGpuFirmware=0 (GSP firmware explicitly disabled)
- NVreg_UseKernelSuspendNotifiers=1 in effect (package default via /usr/lib/modprobe.d/nvidia-sleep.conf)
- KDE Plasma session on Wayland (kwin_wayland)
- Kernel 7.1.8 (stable, non-rc)
Steps to reproduce:
- Boot the system normally with the driver/config above.
- Launch Cemu and start emulating a game, so it is actively rendering via Vulkan/OpenGL and holding non-trivial VRAM (shader cache, textures, framebuffers).
- Leave Cemu running and actively rendering for an extended period (reproduced after ~45 minutes of continuous use).
- Trigger a suspend while Cemu is still running and rendering — either by closing the laptop lid, or via systemctl suspend.
- Observe the kernel log during the suspend transition: PM: suspend entry (deep) is immediately followed by NVRM: nvCheckOkFailedNoLog: Check failed: Out of memory [NV_ERR_NO_MEMORY] (0x00000051) returned from _memdescAllocInternal(pMemDesc) @ mem_desc.c:1338.
- The suspend/resume cycle never completes cleanly; the system becomes fully unresponsive (screen does not wake, no further kernel/journal activity), requiring a hard power cycle to recover.
Bug Incidence
Occasionally
nvidia-bug-report.log.gz
More Info
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with mem_desc.c at the reported line 1338 and the attached nvidia-bug-report.log.gz, then review the suspend configuration involving NVreg_EnableGpuFirmware and NVreg_UseKernelSuspendNotifiers. Reproduce suspend with Cemu actively rendering and confirm that the system completes suspend and resume without the NV_ERR_NO_MEMORY failure or a hang.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, linux
- Domain
- operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100