NVIDIA / NVIDIA/open-gpu-kernel-modules
nvidia_uvm HMM fault-service eviction deadlock (595/Blackwell)
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
driver 595.71.05 open, kernel 6.14.0-1015-nvidia, Ubuntu 24.04.4, RTX PRO Blackwell
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
lsb_release -d No LSB modules are available. Description: Ubuntu 24.04.4 LTS
Kernel Release
Linux ub123-S2600STB 6.14.0-1015-nvidia #15-Ubuntu SMP PREEMPT_DYNAMIC Tue Nov 25 16:59:33 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
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
GPU 0: NVIDIA RTX PRO 4500 Blackwell (UUID: GPU-b29f3a27-7a07-41aa-6b96-23cd8a380183)
Describe the bug
Summary
Under HMM (pageable/managed) oversubscription, when the GPU is full and the
replayable-fault handler must evict a root chunk to service the next fault, the
nvidia_uvm kthread spins forever in the chunk-eviction/merge path — an RCU
self-detected stall / soft-lockup. The thread is unkillable, the faulting
process is kernel-blocked (SIGKILL cannot reap it), and nvidia-smi --gpu-reset
refuses ("in use by another client"). Only a reboot recovers.
Environment
- GPU: NVIDIA RTX PRO Blackwell (33.7 GB)
- Driver: NVIDIA Open Kernel Module 595.71.05 (Ubuntu
595.71.05-0ubuntu0.24.04.1, built 2026-04-24) - Kernel: 6.14.0-1015-nvidia (Ubuntu 24.04.4 LTS)
- UVM params: defaults (
uvm_global_oversubscription=1,uvm_fault_force_sysmem=0,uvm_perf_prefetch_enable=0)
To Reproduce
cudaMallocManaged/HMM anon mapping of a working set larger than resident VRAM
(here: an anonmmap+preadregion of ~15.5 GB with VRAM capped to ~7.75 GB via a
blocker → oversub ≈ 2), passed to a GPU kernel that reads the whole region.- Kernel faults migrate pages into VRAM until it fills.
- Next fault triggers eviction → hang. Within ~seconds the RCU stall fires.
Minimal shape: any managed/HMM allocation that oversubscribes VRAM and is fully
touched by a kernel (no prefetch needed; prefetch was already disabled).
Bug Incidence
Once
nvidia-bug-report.log.gz
nvidia-bug-report-hmm3-deadlock.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 the nvidia_uvm replayable-fault handler and its chunk-eviction/merge path, then run the oversubscribing HMM reproduction described in the issue. Use the linked nvidia-bug-report log to correlate the RCU stall with the eviction hang. Done means the workload completes without a kthread spin, RCU stall, or unrecoverable GPU state.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, linux, ubuntu
- Domain
- operating-systems, performance
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100