Skip to content

AMDGPU General Protection Faults #735

@yshui

Description

@yshui

dmesg

general protection fault: 0000 [#1] PREEMPT SMP NOPTI
CPU: 0 PID: 786 Comm: systemd-udevd Tainted: P           O      5.4.0-rc2-1-me-clang+ #3
Hardware name: System manufacturer System Product Name/ROG STRIX X470-F GAMING, BIOS 5007 06/17/2019
RIP: 0010:CalculatePrefetchSourceLines+0xe3/0x190 [amdgpu]
Code: f2 0f 58 05 37 8a 16 00 f2 48 0f 2c c0 31 d2 41 f7 f6 e9 a0 00 00 00 f2 0f 58 05 20 8a 16 00 44 89 f0 0f 57 c9 f2 48 0f 2a c8 <66> 0f 29 4d d0 f2 0f 5e c1 f2 0f 5a c0 f3 0f 10 0d f0 8f 16 00 e8
RSP: 0018:ffff943717476db8 EFLAGS: 00010246
RAX: 0000000000000001 RBX: ffff9436c8331f38 RCX: 0000000000000001
RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff9436c8331f38
RBP: ffff943717476de8 R08: 0000000000000000 R09: ffff9436c8336d10
R10: 0000000000000001 R11: ffff9436c83379b8 R12: ffff9436c8336cd0
R13: ffff9436c83367f8 R14: 0000000000000001 R15: ffff9436c8336d10
FS:  00007fb1af330840(0000) GS:ffff94371e800000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000555e5db20d68 CR3: 0000000817472000 CR4: 00000000003406f0
Call Trace:
 dml20v2_ModeSupportAndSystemConfigurationFull+0x47ec/0x6c90 [amdgpu]
 ? get_page_from_freelist+0x370/0x680
 dml_get_voltage_level+0x1ea/0x200 [amdgpu]
 dcn20_fast_validate_bw+0x290/0x990 [amdgpu]
 ? __kmalloc+0x218/0x2b0
 dcn20_validate_bandwidth_internal+0x8d/0x1f0 [amdgpu]
 dcn20_validate_bandwidth+0x46/0xe0 [amdgpu]
 dc_validate_global_state+0x354/0x380 [amdgpu]
 amdgpu_dm_atomic_check+0xdc1/0xee0 [amdgpu]
 ? __alloc_pages_nodemask+0x16b/0x300
 ? idr_alloc+0x8e/0xc0
 ? __drm_mode_object_add+0x95/0xb0
 drm_atomic_check_only+0x410/0x710
 ? drm_atomic_add_affected_connectors+0xe6/0x100
 drm_atomic_commit+0x18/0x60
 drm_client_modeset_commit_atomic+0x158/0x1c0
 drm_client_modeset_commit_force+0x43/0x170
 drm_fb_helper_set_par+0x79/0xb0
 fbcon_init+0x483/0x620
 visual_init+0xd1/0x130
 do_bind_con_driver+0x340/0x620
 do_take_over_console+0x257/0x2a0
 fbcon_fb_registered+0x128/0x220
 register_framebuffer+0x27d/0x310
 __drm_fb_helper_initial_config_and_unlock+0x365/0x480
 amdgpu_fbdev_init+0xe3/0x100 [amdgpu]
 amdgpu_device_init+0x1935/0x1ca0 [amdgpu]
 ? __alloc_pages_nodemask+0x16b/0x300
 ? kmalloc_order_trace+0x77/0x130
 amdgpu_driver_load_kms+0x7b/0x230 [amdgpu]
 drm_dev_register+0xdb/0x2a0
 amdgpu_pci_probe+0xdd/0x130 [amdgpu]
 pci_device_probe+0x11f/0x1b0
 really_probe+0x283/0x560
 driver_probe_device+0x59/0xf0
 device_driver_attach+0x66/0xa0
 __driver_attach+0xac/0x130
 ? driver_attach+0x20/0x20
 bus_for_each_dev+0x83/0xb0
 bus_add_driver+0x11b/0x200
 ? 0xffffffffc2013000
 driver_register+0x86/0x120
 do_one_initcall+0x106/0x290
 ? __free_one_page+0x67/0x380
 ? _raw_spin_unlock+0x16/0x30
 ? preempt_count_add+0x56/0xa0
 ? __vunmap+0x267/0x2a0
 ? kmem_cache_alloc_trace+0x1ea/0x260
 ? __vunmap+0x267/0x2a0
 do_init_module+0x60/0x230
 load_module+0x3996/0x3ce0
 ? copy_user_generic_string+0x2c/0x40
 __se_sys_init_module+0xfe/0x130
 do_syscall_64+0x8a/0x120
 entry_SYSCALL_64_after_hwframe+0x44/0xa9
RIP: 0033:0x7fb1b0b4ed2e
Code: 48 8b 0d 55 01 0c 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 49 89 ca b8 af 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 22 01 0c 00 f7 d8 64 89 01 48
RSP: 002b:00007ffd73618d48 EFLAGS: 00000246 ORIG_RAX: 00000000000000af
RAX: ffffffffffffffda RBX: 0000555e5dabdf40 RCX: 00007fb1b0b4ed2e
RDX: 0000555e5daba460 RSI: 000000000073a0b8 RDI: 0000555e5e2e29f0
RBP: 0000555e5daba460 R08: 0000555e5d97301a R09: 0000000000000004
R10: 0000555e5d973010 R11: 0000000000000246 R12: 0000555e5e2e29f0
R13: 0000555e5dac03b0 R14: 0000000000020000 R15: 0000555e5dabdf40
Modules linked in: vfat fat amdgpu(+) btusb btrtl btbcm btintel bluetooth mxm_wmi ecdh_generic ecc crc16 snd_hda_codec_realtek snd_hda_codec_generic snd_hda_codec_hdmi snd_hda_intel gpu_sched k10temp snd_intel_nhlt snd_hda_codec snd_usb_audio ttm igb snd_hda_core snd_usbmidi_lib snd_hwdep snd_pcm snd_rawmidi snd_seq_device snd_timer snd soundcore usbkbd usbmouse wmi nvidia_drm(PO) nvidia_modeset(PO) nvidia(PO) sg efivarfs ip_tables hid_generic usbhid
---[ end trace bb36ee02fd414cc1 ]---
------------[ cut here ]------------

Disassembly

000000000022c760 <CalculatePrefetchSourceLines>:
  22c760:	e8 00 00 00 00       	call   22c765 <CalculatePrefetchSourceLines+0x5>
  22c765:	55                   	push   rbp
  22c766:	48 89 e5             	mov    rbp,rsp
  22c769:	41 57                	push   r15
  22c76b:	41 56                	push   r14
  22c76d:	41 54                	push   r12
  22c76f:	53                   	push   rbx
  22c770:	48 83 ec 10          	sub    rsp,0x10
  22c774:	4d 89 cf             	mov    r15,r9
  22c777:	41 89 ce             	mov    r14d,ecx
  22c77a:	48 89 fb             	mov    rbx,rdi
  22c77d:	f2 0f 58 c8          	addsd  xmm1,xmm0
  22c781:	f2 0f 58 0d 00 00 00 	addsd  xmm1,QWORD PTR [rip+0x0]        # 22c789 <CalculatePrefetchSourceLines+0x29>
  22c788:	00 
  22c789:	85 d2                	test   edx,edx
  22c78b:	75 18                	jne    22c7a5 <CalculatePrefetchSourceLines+0x45>
  22c78d:	40 0f b6 c6          	movzx  eax,sil
  22c791:	f2 0f 2a d0          	cvtsi2sd xmm2,eax
  22c795:	f2 0f 59 15 00 00 00 	mulsd  xmm2,QWORD PTR [rip+0x0]        # 22c79d <CalculatePrefetchSourceLines+0x3d>
  22c79c:	00 
  22c79d:	f2 0f 59 d0          	mulsd  xmm2,xmm0
  22c7a1:	f2 0f 58 ca          	addsd  xmm1,xmm2
  22c7a5:	4c 8b 65 10          	mov    r12,QWORD PTR [rbp+0x10]
  22c7a9:	f2 0f 59 0d 00 00 00 	mulsd  xmm1,QWORD PTR [rip+0x0]        # 22c7b1 <CalculatePrefetchSourceLines+0x51>
  22c7b0:	00 
  22c7b1:	0f 57 c0             	xorps  xmm0,xmm0
  22c7b4:	f2 0f 5a c1          	cvtsd2ss xmm0,xmm1
  22c7b8:	f3 0f 10 0d 00 00 00 	movss  xmm1,DWORD PTR [rip+0x0]        # 22c7c0 <CalculatePrefetchSourceLines+0x60>
  22c7bf:	00 
  22c7c0:	e8 00 00 00 00       	call   22c7c5 <CalculatePrefetchSourceLines+0x65>
  22c7c5:	f3 0f 5a c0          	cvtss2sd xmm0,xmm0
  22c7c9:	f2 41 0f 11 07       	movsd  QWORD PTR [r15],xmm0
  22c7ce:	80 bb e0 17 00 00 00 	cmp    BYTE PTR [rbx+0x17e0],0x0
  22c7d5:	74 59                	je     22c830 <CalculatePrefetchSourceLines+0xd0>
  22c7d7:	44 89 f0             	mov    eax,r14d
  22c7da:	0f 57 c9             	xorps  xmm1,xmm1
  22c7dd:	f2 48 0f 2a c8       	cvtsi2sd xmm1,rax
  22c7e2:	f2 0f 11 4d d0       	movsd  QWORD PTR [rbp-0x30],xmm1
  22c7e7:	f2 0f 5e c1          	divsd  xmm0,xmm1
  22c7eb:	f2 0f 5a c0          	cvtsd2ss xmm0,xmm0
  22c7ef:	f3 0f 10 0d 00 00 00 	movss  xmm1,DWORD PTR [rip+0x0]        # 22c7f7 <CalculatePrefetchSourceLines+0x97>
  22c7f6:	00 
  22c7f7:	e8 00 00 00 00       	call   22c7fc <CalculatePrefetchSourceLines+0x9c>
  22c7fc:	f3 48 0f 2c c8       	cvttss2si rcx,xmm0
  22c801:	41 89 0c 24          	mov    DWORD PTR [r12],ecx
  22c805:	f2 41 0f 10 07       	movsd  xmm0,QWORD PTR [r15]
  22c80a:	66 0f 2e 05 00 00 00 	ucomisd xmm0,QWORD PTR [rip+0x0]        # 22c812 <CalculatePrefetchSourceLines+0xb2>
  22c811:	00 
  22c812:	77 05                	ja     22c819 <CalculatePrefetchSourceLines+0xb9>
  22c814:	f2 0f 58 45 d0       	addsd  xmm0,QWORD PTR [rbp-0x30]
  22c819:	f2 0f 58 05 00 00 00 	addsd  xmm0,QWORD PTR [rip+0x0]        # 22c821 <CalculatePrefetchSourceLines+0xc1>
  22c820:	00 
  22c821:	f2 48 0f 2c c0       	cvttsd2si rax,xmm0
  22c826:	31 d2                	xor    edx,edx
  22c828:	41 f7 f6             	div    r14d
  22c82b:	e9 a0 00 00 00       	jmp    22c8d0 <CalculatePrefetchSourceLines+0x170>
  22c830:	f2 0f 58 05 00 00 00 	addsd  xmm0,QWORD PTR [rip+0x0]        # 22c838 <CalculatePrefetchSourceLines+0xd8>
  22c837:	00 
  22c838:	44 89 f0             	mov    eax,r14d
  22c83b:	0f 57 c9             	xorps  xmm1,xmm1
  22c83e:	f2 48 0f 2a c8       	cvtsi2sd xmm1,rax
  22c843:	66 0f 29 4d d0       	movapd XMMWORD PTR [rbp-0x30],xmm1      <============= here
  22c848:	f2 0f 5e c1          	divsd  xmm0,xmm1
  22c84c:	f2 0f 5a c0          	cvtsd2ss xmm0,xmm0
  22c850:	f3 0f 10 0d 00 00 00 	movss  xmm1,DWORD PTR [rip+0x0]        # 22c858 <CalculatePrefetchSourceLines+0xf8>
  22c857:	00 
  22c858:	e8 00 00 00 00       	call   22c85d <CalculatePrefetchSourceLines+0xfd>
  22c85d:	f3 0f 5a c0          	cvtss2sd xmm0,xmm0
  22c861:	f2 0f 10 0d 00 00 00 	movsd  xmm1,QWORD PTR [rip+0x0]        # 22c869 <CalculatePrefetchSourceLines+0x109>
  22c868:	00 
  22c869:	f2 0f 58 c1          	addsd  xmm0,xmm1
  22c86d:	f2 48 0f 2c c0       	cvttsd2si rax,xmm0
  22c872:	41 89 04 24          	mov    DWORD PTR [r12],eax
  22c876:	f2 41 0f 10 07       	movsd  xmm0,QWORD PTR [r15]
  22c87b:	66 0f 28 5d d0       	movapd xmm3,XMMWORD PTR [rbp-0x30]
  22c880:	f2 0f 58 d8          	addsd  xmm3,xmm0
  22c884:	f2 0f c2 c8 01       	cmpltsd xmm1,xmm0
  22c889:	66 0f 28 d1          	movapd xmm2,xmm1
  22c88d:	66 0f 55 d3          	andnpd xmm2,xmm3
  22c891:	66 0f 54 c8          	andpd  xmm1,xmm0
  22c895:	66 0f 56 ca          	orpd   xmm1,xmm2
  22c899:	f2 0f 58 0d 00 00 00 	addsd  xmm1,QWORD PTR [rip+0x0]        # 22c8a1 <CalculatePrefetchSourceLines+0x141>
  22c8a0:	00 
  22c8a1:	f2 48 0f 2c c1       	cvttsd2si rax,xmm1
  22c8a6:	31 d2                	xor    edx,edx
  22c8a8:	41 f7 f6             	div    r14d
  22c8ab:	0f 57 c0             	xorps  xmm0,xmm0
  22c8ae:	f2 48 0f 2a c2       	cvtsi2sd xmm0,rdx
  22c8b3:	0f 57 c9             	xorps  xmm1,xmm1
  22c8b6:	f2 0f 5a c8          	cvtsd2ss xmm1,xmm0
  22c8ba:	f3 0f 10 05 00 00 00 	movss  xmm0,DWORD PTR [rip+0x0]        # 22c8c2 <CalculatePrefetchSourceLines+0x162>
  22c8c1:	00 
  22c8c2:	e8 00 00 00 00       	call   22c8c7 <CalculatePrefetchSourceLines+0x167>
  22c8c7:	f3 48 0f 2c d0       	cvttss2si rdx,xmm0
  22c8cc:	41 8b 0c 24          	mov    ecx,DWORD PTR [r12]
  22c8d0:	41 0f af ce          	imul   ecx,r14d
  22c8d4:	01 d1                	add    ecx,edx
  22c8d6:	0f 57 c0             	xorps  xmm0,xmm0
  22c8d9:	f2 48 0f 2a c1       	cvtsi2sd xmm0,rcx
  22c8de:	48 83 c4 10          	add    rsp,0x10
  22c8e2:	5b                   	pop    rbx
  22c8e3:	41 5c                	pop    r12
  22c8e5:	41 5e                	pop    r14
  22c8e7:	41 5f                	pop    r15
  22c8e9:	5d                   	pop    rbp
  22c8ea:	c3                   	ret    
  22c8eb:	0f 1f 44 00 00       	nop    DWORD PTR [rax+rax*1+0x0]

rbp-30 is not aligned to 16 bytes boundary. Hopefully I didn't misunderstand anything?

Metadata

Metadata

Labels

[ARCH] x86_64This bug impacts ARCH=x86_64[BUG] linuxA bug that should be fixed in the mainline kernel.[FIXED][LINUX] 5.4This bug was fixed in Linux 5.4

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions