NVIDIA / NVIDIA/open-gpu-kernel-modules

nvidia_uvm HMM fault-service eviction deadlock (595/Blackwell)

Open
#1,223 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

bug
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
  1. cudaMallocManaged/HMM anon mapping of a working set larger than resident VRAM
    (here: an anon mmap+pread region 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.
  2. Kernel faults migrate pages into VRAM until it fills.
  3. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.