7

One of our devices froze today with the following kernel messages:

[79648.067306] BUG: unable to handle page fault for address: 0000000004000034
[79648.067315] #PF: supervisor read access in kernel mode
[79648.067318] #PF: error_code(0x0000) - not-present page

From the call trace (see below) it appears that this error was caused by the graphics driver (i915). Presumably, a kernel update would fix the problem, however, I'm interested in the background of this problem so I have 3 questions:

  1. What do these 3 lines mean exactly, or where can I find a description to these errors?
  2. If I enable the hardware watchdog, would it reboot the system when this error occurs?
  3. Can this error occur due to faulty hardware (Memory)?

System: 5.4.0-91-generic, Ubuntu 20.04.1 LTS

Full dump of the kernel ringbuffer (dmesg):

[79648.067306] BUG: unable to handle page fault for address: 0000000004000034
[79648.067315] #PF: supervisor read access in kernel mode
[79648.067318] #PF: error_code(0x0000) - not-present page
[79648.067322] PGD 0 P4D 0
[79648.067328] Oops: 0000 [#1] SMP PTI
[79648.067335] CPU: 3 PID: 668 Comm: Xorg Not tainted 5.4.0-91-generic #102-Ubuntu
[79648.067338] Hardware name: Shuttle Inc. DH310S/DH310S, BIOS 1.06 03/23/2020
[79648.067349] RIP: 0010:find_get_entry+0x7a/0x170
[79648.067355] Code: b8 48 c7 45 d0 03 00 00 00 e8 d2 ff 85 00 49 89 c4 48 3d 02 04 00 00 74 e4 48 3d 06 04 00 00 74 dc 48 85 c0 74 3d a8 01 75 39 <8b> 40 34 85 c0 74 cc 8d 50 01 f0 41 0f b1 54 24 34 75 f0 48 8b 45
[79648.067359] RSP: 0018:ffffb80a8093f728 EFLAGS: 00010246
[79648.067364] RAX: 0000000004000000 RBX: 00000000000004a6 RCX: 0000000000000000
[79648.067367] RDX: 0000000000000026 RSI: ffff9a369e5ff6c0 RDI: ffffb80a8093f728
[79648.067370] RBP: ffffb80a8093f770 R08: 00000000001120d2 R09: 0000000000000000
[79648.067373] R10: ffff9a3714c8eaa0 R11: 0000000000003c64 R12: 0000000004000000
[79648.067376] R13: 00000000000004a6 R14: 0000000000000001 R15: ffff9a371bf261c0
[79648.067381] FS:  00007f5b0d819a40(0000) GS:ffff9a372ed80000(0000) knlGS:0000000000000000
[79648.067384] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[79648.067387] CR2: 0000000004000034 CR3: 000000025bf12003 CR4: 00000000003606e0
[79648.067390] Call Trace:
[79648.067401]  find_lock_entry+0x1f/0xe0
[79648.067408]  shmem_getpage_gfp+0xef/0x940
[79648.067417]  ? __kmalloc+0x194/0x290
[79648.067424]  shmem_read_mapping_page_gfp+0x44/0x80
[79648.067520]  shmem_get_pages+0x250/0x650 [i915]
[79648.067530]  ? __update_load_avg_se+0x23b/0x320
[79648.067538]  ? update_load_avg+0x7c/0x670
[79648.067619]  ____i915_gem_object_get_pages+0x22/0x40 [i915]
[79648.067692]  __i915_gem_object_get_pages+0x5b/0x70 [i915]
[79648.067774]  __i915_vma_do_pin+0x3ee/0x470 [i915]
[79648.067845]  eb_lookup_vmas+0x68a/0xb70 [i915]
[79648.067930]  ? eb_pin_engine+0x255/0x410 [i915]
[79648.067990]  i915_gem_do_execbuffer+0x38f/0xc20 [i915]
[79648.067997]  ? security_file_alloc+0x29/0x90
[79648.068004]  ? _cond_resched+0x19/0x30
[79648.068010]  ? apparmor_file_alloc_security+0x3e/0x160
[79648.068016]  ? __radix_tree_replace+0x6d/0x120
[79648.068020]  ? radix_tree_iter_tag_clear+0x12/0x20
[79648.068027]  ? kmem_cache_alloc_trace+0x177/0x240
[79648.068035]  ? __pm_runtime_resume+0x60/0x80
[79648.068040]  ? recalibrate_cpu_khz+0x10/0x10
[79648.068044]  ? ktime_get_mono_fast_ns+0x4e/0xa0
[79648.068048]  ? __kmalloc_node+0x213/0x330
[79648.068107]  i915_gem_execbuffer2_ioctl+0x1eb/0x3d0 [i915]
[79648.068112]  ? radix_tree_lookup+0xd/0x10
[79648.068167]  ? i915_gem_execbuffer_ioctl+0x2d0/0x2d0 [i915]
[79648.068196]  drm_ioctl_kernel+0xae/0xf0 [drm]
[79648.068218]  drm_ioctl+0x24a/0x3f0 [drm]
[79648.068278]  ? i915_gem_execbuffer_ioctl+0x2d0/0x2d0 [i915]
[79648.068288]  do_vfs_ioctl+0x407/0x670
[79648.068293]  ? fput+0x13/0x20
[79648.068299]  ? __sys_recvmsg+0x88/0xa0
[79648.068305]  ksys_ioctl+0x67/0x90
[79648.068311]  __x64_sys_ioctl+0x1a/0x20
[79648.068317]  do_syscall_64+0x57/0x190
[79648.068323]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[79648.068327] RIP: 0033:0x7f5b0db7937b
[79648.068332] Code: 0f 1e fa 48 8b 05 15 3b 0d 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d e5 3a 0d 00 f7 d8 64 89 01 48
[79648.068335] RSP: 002b:00007fff24ca5d88 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
[79648.068339] RAX: ffffffffffffffda RBX: 000055eaa18c2290 RCX: 00007f5b0db7937b
[79648.068342] RDX: 00007fff24ca5db0 RSI: 0000000040406469 RDI: 000000000000000c
[79648.068345] RBP: 00007f5b0ba31000 R08: 0000000000000002 R09: 0000000000000001
[79648.068347] R10: 00007f5b0d4156a0 R11: 0000000000000246 R12: 00007fff24ca5db0
[79648.068350] R13: 000000000000000c R14: 000000000000001a R15: 0000000000000068
[79648.068354] Modules linked in: wdat_wdt nls_iso8859_1 dm_multipath scsi_dh_rdac scsi_dh_emc scsi_dh_alua snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio snd_hda_intel snd_intel_dspcfg snd_hda_codec snd_hda_core snd_hwdep snd_pcm snd_seq_midi intel_rapl_msr snd_seq_midi_event intel_rapl_common snd_rawmidi x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel snd_seq kvm rtsx_pci_ms rapl snd_seq_device intel_cstate memstick snd_timer mei_me mei snd soundcore mac_hid acpi_pad sch_fq_codel ip_tables x_tables autofs4 btrfs zstd_compress raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 multipath linear i915 crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel crypto_simd cryptd i2c_algo_bit rtsx_pci_sdmmc glue_helper drm_kms_helper syscopyarea sysfillrect sysimgblt i2c_i801 fb_sys_fops r8169 rtsx_pci drm realtek ahci libahci video
[79648.068413] CR2: 0000000004000034
[79648.068418] ---[ end trace 447ad409d057183e ]---
[79648.068425] RIP: 0010:find_get_entry+0x7a/0x170
[79648.068429] Code: b8 48 c7 45 d0 03 00 00 00 e8 d2 ff 85 00 49 89 c4 48 3d 02 04 00 00 74 e4 48 3d 06 04 00 00 74 dc 48 85 c0 74 3d a8 01 75 39 <8b> 40 34 85 c0 74 cc 8d 50 01 f0 41 0f b1 54 24 34 75 f0 48 8b 45
[79648.068432] RSP: 0018:ffffb80a8093f728 EFLAGS: 00010246
[79648.068435] RAX: 0000000004000000 RBX: 00000000000004a6 RCX: 0000000000000000
[79648.068438] RDX: 0000000000000026 RSI: ffff9a369e5ff6c0 RDI: ffffb80a8093f728
[79648.068441] RBP: ffffb80a8093f770 R08: 00000000001120d2 R09: 0000000000000000
[79648.068443] R10: ffff9a3714c8eaa0 R11: 0000000000003c64 R12: 0000000004000000
[79648.068446] R13: 00000000000004a6 R14: 0000000000000001 R15: ffff9a371bf261c0
[79648.068449] FS:  00007f5b0d819a40(0000) GS:ffff9a372ed80000(0000) knlGS:0000000000000000
[79648.068452] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[79648.068455] CR2: 0000000004000034 CR3: 000000025bf12003 CR4: 00000000003606e0
1
  • 1
    My PC has not frozen, I get process (rsync) killed (saw :killed" in terminal and rsync exited) and dmesg has similar BUG, address is different: BUG: unable to handle page fault for address: 0000000000000034 (no 4 in the middle of address). Got it 3 times in a row. Call trace contains ext4_file_read etc. Jan 16, 2022 at 14:02

2 Answers 2

8
[79648.067306] BUG: unable to handle page fault for address: 0000000004000034
[79648.067315] #PF: supervisor read access in kernel mode
[79648.067318] #PF: error_code(0x0000) - not-present page

These errors indicate kernel code tried to access an invalid pointer. The kernel code tried to access the virtual memory address 0x0000000004000034, but found that it doesn't correspond to any real memory page (the page could not be faulted in).

The second and third lines give context that 1) the code was running in kernel mode (supervisor mode) 2) the access was a read; and 3) the problem was the page was missing, rather than incompatible page protections (such as writing to a read-only page).

This likely a bug in kernel/driver code.

3
  • Thanks for the explanation
    – domsch
    Apr 7, 2022 at 10:07
  • I'm on a new used motherboard (ebay) and was about to curse the seller. Turns out this error disappears (the read operation i'm doing succeeds) if i mount the same file system with ntfs-3g instead of the new in-kernel ntfs module. Oct 24, 2022 at 22:23
  • If crash goes away when you avoid some specific module, it's pretty sure that that module is the buggy one. However, note that in some cases the buggy module corrupt the memory of some of the other modules instead. In that cause the crash is triggered in a module that had its memory corrupted by the buggy module. Feb 1, 2023 at 15:23
5

I recently hit exactly the same problem and I think I've overcome it:

  • I completely disabled power-management for Intel's wireless.  No more kbl_dmc_ver1_04.bin in /lib/firmware.

  • Downgraded to iwlwifi-QuZ-a0-hr-b0-48.ucode from iwlwifi-QuZ-a0-hr-b0-50.ucode.

  • And, what's more important: sudo iwconfig wlan0 power off.

No more freezes or RAM violations.

P.S. My first thoughts were about faulty RAM or huge VRAM allocation too.  None of them proved to be true.

2
  • kbl_dmc_ver1_04.bin is the firmware for DMC (Display MicroController) in the iGPU of a Kaby Lake-series Intel processor. It has nothing to do with wireless networking. Removing that firmware file would prevent the iGPU from going into low-power idle states. See: 01.org/linuxgraphics/downloads/firmware
    – telcoM
    Apr 14, 2022 at 18:11
  • If I have changed the meaning of your answer, please fix it. Apr 14, 2022 at 20:47

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .