Public bug reported:

## Summary

Kernel panic occurs every time the system attempts to suspend (S3/deep
sleep). The kernel crashes with a `jump_label: Fatal kernel bug` error
inside `nvkms_kthread_q_callback` from the `nvidia_modeset` proprietary
module. The issue is 100% reproducible.

---

## Environment

| Component | Value |
|---|---|
| **OS** | Ubuntu 26.04 LTS (Resolute) |
| **Kernel** | `7.0.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Wed Apr 22 
16:06:43 UTC 2026` |
| **NVIDIA Driver** | `580.142` (proprietary, DKMS) |
| **GPU** | NVIDIA GeForce RTX 3060 Ti |
| **Motherboard** | MSI MPG B550 GAMING PLUS (MS-7C56), BIOS 1.J3 — 08/28/2024 |
| **CPU** | AMD (16 logical CPUs) |
| **RAM** | 62 GiB |
| **Suspend mode** | `deep` (S3) |
| **DKMS status** | `nvidia/580.142` installed for `7.0.0-15-generic` and 
`6.17.0-23-generic` |

---

## Steps to Reproduce

1. Boot normally into Ubuntu 26.04 with NVIDIA driver 580.142 loaded.
2. Trigger system suspend via any method:
   - Lock screen → system auto-suspend, or
   - `systemctl suspend` from a terminal.
3. Observe kernel panic — system reboots automatically.

**Reproducibility:** 100% — every suspend attempt results in a panic.

---

## Expected Behaviour

The system should suspend successfully, preserve the session, and resume
normally.

## Actual Behaviour

The kernel panics immediately upon suspend entry with a fatal
`jump_label` bug originating in the `nvidia_modeset` out-of-tree module.

---

## Full Kernel Oops / Call Trace

Captured via `journalctl -b -1 -k --no-pager` from the previous boot:

```
kernel: jump_label: Fatal kernel bug, unexpected op at 
nvkms_kthread_q_callback+0x8e/0x1a0 [nvidia_modeset]
        [00000000d88d4060] (e9 9b 00 00 00 != 0f 1f 44 00 00)) size:5 type:1

kernel: fbcon: Taking over console
kernel: ------------[ cut here ]------------
kernel: kernel BUG at arch/x86/kernel/jump_label.c:73!
kernel: Oops: invalid opcode: 0000 [#1] SMP NOPTI
kernel: CPU: 13 UID: 0 PID: 15604 Comm: systemd-sleep
        Tainted: P W O 7.0.0-15-generic #15-Ubuntu PREEMPT(lazy)
kernel: Tainted: [P]=PROPRIETARY_MODULE, [W]=WARN, [O]=OOT_MODULE
kernel: Hardware name: Micro-Star International Co., Ltd. MS-7C56/MPG B550 
GAMING PLUS (MS-7C56), BIOS 1.J3 08/28/2024

kernel: RIP: 0010:__jump_label_patch.cold+0x24/0x26
kernel: Code: f8 e9 44 f7 19 00 48 c7 c3 b8 89 05 ba 41 56 45 89 e1 49 89 d8 4c 
89 e9 4c 89 ea
        4c 89 ee 48 c7 c7 58 9e ad b8 e8 64 90 01 00 <0f> 0b 0f b6 f0 48 c7 c7 
20 02 65 b9 88 45
        f7 e8 10 9f bc 00 0f b6

kernel: RSP: 0018:ffffcd70d2d83aa0 EFLAGS: 00010246
kernel: RAX: 00000000000000a8 RBX: ffffffffb84068ca RCX: 0000000000000000
kernel: RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
kernel: RBP: ffffcd70d2d83ad0 R08: 0000000000000000 R09: 0000000000000000
kernel: R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000005
kernel: R13: ffffffffc0e6f9ae R14: 0000000000000001 R15: 0000000000000000
kernel: FS:  000074f89e6d5c80(0000) GS:ffff8a32a5080000(0000) 
knlGS:0000000000000000
kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
kernel: CR2: 00005db024e61900 CR3: 0000000349a79000 CR4: 0000000000f50ef0
kernel: PKRU: 55555554

kernel: Call Trace:
kernel:  <TASK>
kernel:  arch_jump_label_transform_queue+0x37/0x90
kernel:  __jump_label_update+0x47/0x100
kernel:  jump_label_update+0x5c/0x110
kernel:  static_key_slow_inc_cpuslocked+0x53/0xa0
kernel:  static_key_slow_inc+0x1f/0x40
kernel:  freeze_processes+0xd1/0xe0
kernel:  enter_state+0xe0/0x610
kernel:  pm_suspend+0x49/0x90
kernel:  state_store+0x2e/0x60
kernel:  kobj_attr_store+0x12/0x40
kernel:  sysfs_kf_write+0x74/0x90
kernel:  kernfs_fop_write_iter+0x161/0x210
kernel:  vfs_write+0x25b/0x490
kernel:  ksys_write+0x71/0xf0
kernel:  __x64_sys_write+0x19/0x30
kernel:  x64_sys_call+0x22f/0x2390
kernel:  do_syscall_64+0x115/0x5a0
kernel:  entry_SYSCALL_64_after_hwframe+0x76/0x7e
kernel:  </TASK>

kernel: ---[ end trace 0000000000000000 ]---
```

### Relevant NVIDIA modules loaded at panic time

```
nvidia_uvm(PO)  nvidia_drm(PO)  nvidia_modeset(PO)  nvidia(PO)
```

---

## Analysis

The panic occurs inside `arch/x86/kernel/jump_label.c:73` while the
kernel attempts to patch a `jump_label` (static key) during process
freeze at suspend entry (`freeze_processes`). The `nvidia_modeset`
module contains a `static_key` (`nvkms_kthread_q_callback` uses one
internally), and when the kernel tries to update the patched instruction
at that address, it finds an unexpected opcode (`e9 9b 00 00 00` — a
near JMP) instead of the expected NOP (`0f 1f 44 00 00`).

This is a classic symptom of the proprietary NVIDIA module patching a
kernel `static_key` site at load time in a way that becomes inconsistent
with what the kernel's `jump_label` infrastructure expects during a live
patch operation triggered by suspend.

The root cause is likely an incompatibility between kernel
7.0.0-15-generic's `jump_label` implementation (or its PREEMPT_DYNAMIC
configuration) and how the nvidia_modeset 580.142 DKMS module uses /
modifies static key sites.

---

## Additional Context

- A first panic occurred at `21:02:54` triggered by `systemd-suspend` (possibly 
from screen lock auto-suspend).
- The second panic at `21:35:25` was a **manual** `systemctl suspend` used to 
confirm reproducibility — **100% confirmed**.


---

## Workarounds Attempted

| Workaround | Result |
|---|---|
| Enable `nvidia-suspend.service`, `nvidia-resume.service`, 
`nvidia-hibernate.service` + `NVreg_PreserveVideoMemoryAllocations=1` | **Not 
effective** — panic still occurs |

ProblemType: Bug
DistroRelease: Ubuntu 26.04
Package: nvidia-driver-580 580.142-0ubuntu3
ProcVersionSignature: Ubuntu 7.0.0-15.15-generic 7.0.0
Uname: Linux 7.0.0-15-generic x86_64
NonfreeKernelModules: nvidia_modeset nvidia
ApportVersion: 2.34.0-0ubuntu2
Architecture: amd64
CasperMD5CheckResult: unknown
CurrentDesktop: KDE
Date: Sat May  9 21:43:34 2026
SourcePackage: nvidia-graphics-drivers-580
UpgradeStatus: Upgraded to resolute on 2026-05-01 (8 days ago)

** Affects: nvidia-graphics-drivers-580 (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug resolute wayland-session

** Description changed:

  ## Summary
  
  Kernel panic occurs every time the system attempts to suspend (S3/deep
  sleep). The kernel crashes with a `jump_label: Fatal kernel bug` error
  inside `nvkms_kthread_q_callback` from the `nvidia_modeset` proprietary
  module. The issue is 100% reproducible.
  
  ---
  
  ## Environment
  
  | Component | Value |
  |---|---|
  | **OS** | Ubuntu 26.04 LTS (Resolute) |
  | **Kernel** | `7.0.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Wed Apr 22 
16:06:43 UTC 2026` |
  | **NVIDIA Driver** | `580.142` (proprietary, DKMS) |
  | **GPU** | NVIDIA GeForce RTX 3060 Ti |
  | **Motherboard** | MSI MPG B550 GAMING PLUS (MS-7C56), BIOS 1.J3 — 
08/28/2024 |
  | **CPU** | AMD (16 logical CPUs) |
  | **RAM** | 62 GiB |
  | **Suspend mode** | `deep` (S3) |
  | **DKMS status** | `nvidia/580.142` installed for `7.0.0-15-generic` and 
`6.17.0-23-generic` |
  
  ---
  
  ## Steps to Reproduce
  
  1. Boot normally into Ubuntu 26.04 with NVIDIA driver 580.142 loaded.
  2. Trigger system suspend via any method:
-    - Lock screen → system auto-suspend, or
-    - `systemctl suspend` from a terminal.
+    - Lock screen → system auto-suspend, or
+    - `systemctl suspend` from a terminal.
  3. Observe kernel panic — system reboots automatically.
  
  **Reproducibility:** 100% — every suspend attempt results in a panic.
  
  ---
  
  ## Expected Behaviour
  
  The system should suspend successfully, preserve the session, and resume
  normally.
  
  ## Actual Behaviour
  
  The kernel panics immediately upon suspend entry with a fatal
  `jump_label` bug originating in the `nvidia_modeset` out-of-tree module.
  
  ---
  
  ## Full Kernel Oops / Call Trace
  
  Captured via `journalctl -b -1 -k --no-pager` from the previous boot:
  
  ```
  kernel: jump_label: Fatal kernel bug, unexpected op at 
nvkms_kthread_q_callback+0x8e/0x1a0 [nvidia_modeset]
-         [00000000d88d4060] (e9 9b 00 00 00 != 0f 1f 44 00 00)) size:5 type:1
+         [00000000d88d4060] (e9 9b 00 00 00 != 0f 1f 44 00 00)) size:5 type:1
  
  kernel: fbcon: Taking over console
  kernel: ------------[ cut here ]------------
  kernel: kernel BUG at arch/x86/kernel/jump_label.c:73!
  kernel: Oops: invalid opcode: 0000 [#1] SMP NOPTI
  kernel: CPU: 13 UID: 0 PID: 15604 Comm: systemd-sleep
-         Tainted: P W O 7.0.0-15-generic #15-Ubuntu PREEMPT(lazy)
+         Tainted: P W O 7.0.0-15-generic #15-Ubuntu PREEMPT(lazy)
  kernel: Tainted: [P]=PROPRIETARY_MODULE, [W]=WARN, [O]=OOT_MODULE
  kernel: Hardware name: Micro-Star International Co., Ltd. MS-7C56/MPG B550 
GAMING PLUS (MS-7C56), BIOS 1.J3 08/28/2024
  
  kernel: RIP: 0010:__jump_label_patch.cold+0x24/0x26
  kernel: Code: f8 e9 44 f7 19 00 48 c7 c3 b8 89 05 ba 41 56 45 89 e1 49 89 d8 
4c 89 e9 4c 89 ea
-         4c 89 ee 48 c7 c7 58 9e ad b8 e8 64 90 01 00 <0f> 0b 0f b6 f0 48 c7 
c7 20 02 65 b9 88 45
-         f7 e8 10 9f bc 00 0f b6
+         4c 89 ee 48 c7 c7 58 9e ad b8 e8 64 90 01 00 <0f> 0b 0f b6 f0 48 c7 
c7 20 02 65 b9 88 45
+         f7 e8 10 9f bc 00 0f b6
  
  kernel: RSP: 0018:ffffcd70d2d83aa0 EFLAGS: 00010246
  kernel: RAX: 00000000000000a8 RBX: ffffffffb84068ca RCX: 0000000000000000
  kernel: RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
  kernel: RBP: ffffcd70d2d83ad0 R08: 0000000000000000 R09: 0000000000000000
  kernel: R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000005
  kernel: R13: ffffffffc0e6f9ae R14: 0000000000000001 R15: 0000000000000000
  kernel: FS:  000074f89e6d5c80(0000) GS:ffff8a32a5080000(0000) 
knlGS:0000000000000000
  kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
  kernel: CR2: 00005db024e61900 CR3: 0000000349a79000 CR4: 0000000000f50ef0
  kernel: PKRU: 55555554
  
  kernel: Call Trace:
  kernel:  <TASK>
  kernel:  arch_jump_label_transform_queue+0x37/0x90
  kernel:  __jump_label_update+0x47/0x100
  kernel:  jump_label_update+0x5c/0x110
  kernel:  static_key_slow_inc_cpuslocked+0x53/0xa0
  kernel:  static_key_slow_inc+0x1f/0x40
  kernel:  freeze_processes+0xd1/0xe0
  kernel:  enter_state+0xe0/0x610
  kernel:  pm_suspend+0x49/0x90
  kernel:  state_store+0x2e/0x60
  kernel:  kobj_attr_store+0x12/0x40
  kernel:  sysfs_kf_write+0x74/0x90
  kernel:  kernfs_fop_write_iter+0x161/0x210
  kernel:  vfs_write+0x25b/0x490
  kernel:  ksys_write+0x71/0xf0
  kernel:  __x64_sys_write+0x19/0x30
  kernel:  x64_sys_call+0x22f/0x2390
  kernel:  do_syscall_64+0x115/0x5a0
  kernel:  entry_SYSCALL_64_after_hwframe+0x76/0x7e
  kernel:  </TASK>
  
  kernel: ---[ end trace 0000000000000000 ]---
  ```
  
  ### Relevant NVIDIA modules loaded at panic time
  
  ```
  nvidia_uvm(PO)  nvidia_drm(PO)  nvidia_modeset(PO)  nvidia(PO)
  ```
  
  ---
  
  ## Analysis
  
  The panic occurs inside `arch/x86/kernel/jump_label.c:73` while the
  kernel attempts to patch a `jump_label` (static key) during process
  freeze at suspend entry (`freeze_processes`). The `nvidia_modeset`
  module contains a `static_key` (`nvkms_kthread_q_callback` uses one
  internally), and when the kernel tries to update the patched instruction
  at that address, it finds an unexpected opcode (`e9 9b 00 00 00` — a
  near JMP) instead of the expected NOP (`0f 1f 44 00 00`).
  
  This is a classic symptom of the proprietary NVIDIA module patching a
  kernel `static_key` site at load time in a way that becomes inconsistent
  with what the kernel's `jump_label` infrastructure expects during a live
  patch operation triggered by suspend.
  
  The root cause is likely an incompatibility between kernel
  7.0.0-15-generic's `jump_label` implementation (or its PREEMPT_DYNAMIC
  configuration) and how the nvidia_modeset 580.142 DKMS module uses /
  modifies static key sites.
  
  ---
  
  ## Additional Context
  
  - A first panic occurred at `21:02:54` triggered by `systemd-suspend` 
(possibly from screen lock auto-suspend).
  - The second panic at `21:35:25` was a **manual** `systemctl suspend` used to 
confirm reproducibility — **100% confirmed**.
- - The kernel `6.17.0-23-generic` is also installed and has the same DKMS 
driver compiled. Not yet tested as a workaround.
- - SMART errors on storage drives (`/dev/sda`, `/dev/sdc`) were detected the 
same day but are **unrelated** to this panic.
+ 
  
  ---
  
  ## Workarounds Attempted
  
  | Workaround | Result |
  |---|---|
  | Enable `nvidia-suspend.service`, `nvidia-resume.service`, 
`nvidia-hibernate.service` + `NVreg_PreserveVideoMemoryAllocations=1` | **Not 
effective** — panic still occurs |
  
  ProblemType: Bug
  DistroRelease: Ubuntu 26.04
  Package: nvidia-driver-580 580.142-0ubuntu3
  ProcVersionSignature: Ubuntu 7.0.0-15.15-generic 7.0.0
  Uname: Linux 7.0.0-15-generic x86_64
  NonfreeKernelModules: nvidia_modeset nvidia
  ApportVersion: 2.34.0-0ubuntu2
  Architecture: amd64
  CasperMD5CheckResult: unknown
  CurrentDesktop: KDE
  Date: Sat May  9 21:43:34 2026
  SourcePackage: nvidia-graphics-drivers-580
  UpgradeStatus: Upgraded to resolute on 2026-05-01 (8 days ago)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2152104

Title:
  Kernel panic occurs every time the system attempts to suspend (S3/deep
  sleep)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-580/+bug/2152104/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to