[PATCH] drm/amdgpu: Initialize fences array entries in amdgpu_sa_bo_next_hole
Christian König
ckoenig.leichtzumerken at gmail.com
Wed Sep 12 16:19:02 UTC 2018
Am 12.09.2018 um 18:10 schrieb Michel Dänzer:
> From: Michel Dänzer <michel.daenzer at amd.com>
>
> The entries were only initialized once in amdgpu_sa_bo_new. If a fence
> wasn't signalled yet in the first amdgpu_sa_bo_next_hole call, but then
> got signalled before a later amdgpu_sa_bo_next_hole call, it could
> destroy the fence but leave its pointer in the array, resulting in
> use-after-free in amdgpu_sa_bo_new.
>
> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
Good catch, patch is Reviewed-by: Christian König
<christian.koenig at amd.com>.
> ---
>
> I think this should fix an issue hit by today's piglit run:
>
> Sep 12 13:31:41 kaveri kernel: [ 2776.375043] refcount_t: increment on 0; use-after-free.
> Sep 12 13:31:41 kaveri kernel: [ 2776.375076] WARNING: CPU: 14 PID: 14012 at lib/refcount.c:153 refcount_inc_checked+0x26/0x30
> Sep 12 13:31:41 kaveri kernel: [ 2776.375079] Modules linked in: fuse(E) lz4(E) lz4_compress(E) cpufreq_powersave(E) cpufreq_userspace(E) cpufreq_conservative(E) amdgpu(OE) chash(OE) gpu_sched(OE) binfmt_misc(E) nls_ascii(E) nls_cp437(E) vfat(E) fat(E) edac_mce_amd(E) radeon(OE) kvm(E) irqbypass(E) ttm(OE) crct10dif_pclmul(E) crc32_pclmul(E) snd_hda_codec_realtek(E) ghash_clmulni_intel(E) wmi_bmof(E) pcbc(E) snd_hda_codec_generic(E) snd_hda_codec_hdmi(E) drm_kms_helper(OE) aesni_intel(E) snd_hda_intel(E) aes_x86_64(E) snd_hda_codec(E) crypto_simd(E) r8169(E) snd_hda_core(E) cryptd(E) efi_pstore(E) drm(OE) glue_helper(E) sg(E) snd_hwdep(E) libphy(E) i2c_algo_bit(E) snd_pcm(E) fb_sys_fops(E) syscopyarea(E) sysfillrect(E) snd_timer(E) sysimgblt(E) efivars(E) pcspkr(E) snd(E) ccp(E) soundcore(E) sp5100_tco(E) rng_core(E) i2c_piix4(E)
> Sep 12 13:31:41 kaveri kernel: [ 2776.375237] k10temp(E) wmi(E) button(E) pcc_cpufreq(E) acpi_cpufreq(E) tcp_bbr(E) sch_fq(E) sunrpc(E) nct6775(E) hwmon_vid(E) efivarfs(E) ip_tables(E) x_tables(E) autofs4(E) ext4(E) crc32c_generic(E) crc16(E) mbcache(E) jbd2(E) fscrypto(E) dm_mod(E) raid10(E) raid1(E) raid0(E) multipath(E) linear(E) md_mod(E) sd_mod(E) evdev(E) hid_generic(E) usbhid(E) hid(E) ahci(E) libahci(E) libata(E) xhci_pci(E) xhci_hcd(E) crc32c_intel(E) usbcore(E) scsi_mod(E) gpio_amdpt(E) gpio_generic(E)
> Sep 12 13:31:41 kaveri kernel: [ 2776.375355] CPU: 14 PID: 14012 Comm: arb_shader:cs0 Tainted: G OE 4.19.0-rc1+ #112
> Sep 12 13:31:41 kaveri kernel: [ 2776.375359] Hardware name: Micro-Star International Co., Ltd. MS-7A34/B350 TOMAHAWK (MS-7A34), BIOS 1.80 09/13/2017
> Sep 12 13:31:41 kaveri kernel: [ 2776.375364] RIP: 0010:refcount_inc_checked+0x26/0x30
> Sep 12 13:31:41 kaveri kernel: [ 2776.375369] Code: 00 00 00 00 e8 ab fe ff ff 84 c0 74 01 c3 80 3d f3 35 b3 01 00 75 f6 48 c7 c7 a0 c5 fe 9f c6 05 e3 35 b3 01 01 e8 85 7f 58 ff <0f> 0b c3 0f 1f 80 00 00 00 00 41 56 41 55 41 54 41 89 fc 55 48 bd
> Sep 12 13:31:41 kaveri kernel: [ 2776.375372] RSP: 0018:ffff8803de50f070 EFLAGS: 00010286
> Sep 12 13:31:41 kaveri kernel: [ 2776.375379] RAX: 0000000000000000 RBX: ffff8803de50f278 RCX: ffffffff9e65c7f0
> Sep 12 13:31:41 kaveri kernel: [ 2776.375383] RDX: 0000000000000000 RSI: 0000000000000008 RDI: ffff8803ee19e9c0
> Sep 12 13:31:41 kaveri kernel: [ 2776.375386] RBP: ffff88020c8453e0 R08: ffffed007dc33d39 R09: ffffed007dc33d38
> Sep 12 13:31:41 kaveri kernel: [ 2776.375390] R10: ffffed007dc33d38 R11: ffff8803ee19e9c7 R12: 0000000000000003
> Sep 12 13:31:41 kaveri kernel: [ 2776.375393] R13: dffffc0000000000 R14: 0000000000000002 R15: ffff8803de50f330
> Sep 12 13:31:41 kaveri kernel: [ 2776.375397] FS: 00007f2901924700(0000) GS:ffff8803ee180000(0000) knlGS:0000000000000000
> Sep 12 13:31:41 kaveri kernel: [ 2776.375401] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> Sep 12 13:31:41 kaveri kernel: [ 2776.375404] CR2: 000055b1f3c5e000 CR3: 00000003e5ca0000 CR4: 00000000003406e0
> Sep 12 13:31:41 kaveri kernel: [ 2776.375407] Call Trace:
> Sep 12 13:31:41 kaveri kernel: [ 2776.375494] amdgpu_sa_bo_new+0x630/0xf40 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.375581] ? amdgpu_sa_bo_manager_fini+0x260/0x260 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.375672] ? amdgpu_job_alloc+0x3d/0x310 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.375762] ? amdgpu_job_alloc_with_ib+0x24/0xe0 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.375838] ? amdgpu_vm_bo_update_mapping+0x2b5/0xb40 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.375914] ? amdgpu_vm_bo_update+0x938/0x1c60 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.375989] ? amdgpu_vm_handle_moved+0x206/0x2c0 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.376063] ? amdgpu_cs_ioctl+0x27ee/0x4a80 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.376083] ? drm_ioctl_kernel+0x197/0x220 [drm]
> Sep 12 13:31:41 kaveri kernel: [ 2776.376101] ? drm_ioctl+0x40e/0x860 [drm]
> Sep 12 13:31:41 kaveri kernel: [ 2776.376171] ? amdgpu_drm_ioctl+0xcc/0x1b0 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.376176] ? do_vfs_ioctl+0x193/0xf70
> Sep 12 13:31:41 kaveri kernel: [ 2776.376179] ? ksys_ioctl+0x60/0x90
> Sep 12 13:31:41 kaveri kernel: [ 2776.376182] ? __x64_sys_ioctl+0x6f/0xb0
> Sep 12 13:31:41 kaveri kernel: [ 2776.376186] ? do_syscall_64+0xa5/0x3e0
> Sep 12 13:31:41 kaveri kernel: [ 2776.376201] ? find_held_lock+0x33/0x1c0
> Sep 12 13:31:41 kaveri kernel: [ 2776.376225] ? __kmalloc+0x117/0x260
> Sep 12 13:31:41 kaveri kernel: [ 2776.376304] amdgpu_ib_get+0x35/0x240 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.376398] amdgpu_job_alloc_with_ib+0x7f/0xe0 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.376477] amdgpu_vm_bo_update_mapping+0x2b5/0xb40 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.376560] ? amdgpu_vm_frag_ptes+0x1b0/0x1b0 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.376566] ? mark_held_locks+0x140/0x140
> Sep 12 13:31:41 kaveri kernel: [ 2776.376571] ? mark_held_locks+0x140/0x140
> Sep 12 13:31:41 kaveri kernel: [ 2776.376651] ? amdgpu_vm_update_func+0x150/0x150 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.376656] ? __lock_is_held+0xad/0x140
> Sep 12 13:31:41 kaveri kernel: [ 2776.376737] amdgpu_vm_bo_update+0x938/0x1c60 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.376756] ? mutex_trylock+0x167/0x1a0
> Sep 12 13:31:41 kaveri kernel: [ 2776.376831] ? amdgpu_vm_handle_moved+0x1f1/0x2c0 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.376910] amdgpu_vm_handle_moved+0x206/0x2c0 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.376989] amdgpu_cs_ioctl+0x27ee/0x4a80 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.376999] ? mark_held_locks+0x140/0x140
> Sep 12 13:31:41 kaveri kernel: [ 2776.377074] ? amdgpu_cs_find_mapping+0x3c0/0x3c0 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.377082] ? mark_held_locks+0x140/0x140
> Sep 12 13:31:41 kaveri kernel: [ 2776.377090] ? __lock_acquire+0x6ea/0x4820
> Sep 12 13:31:41 kaveri kernel: [ 2776.377099] ? quarantine_put+0xca/0x170
> Sep 12 13:31:41 kaveri kernel: [ 2776.377212] ? amdgpu_cs_find_mapping+0x3c0/0x3c0 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.377232] drm_ioctl_kernel+0x197/0x220 [drm]
> Sep 12 13:31:41 kaveri kernel: [ 2776.377252] ? drm_setversion+0x800/0x800 [drm]
> Sep 12 13:31:41 kaveri kernel: [ 2776.377279] drm_ioctl+0x40e/0x860 [drm]
> Sep 12 13:31:41 kaveri kernel: [ 2776.377356] ? amdgpu_cs_find_mapping+0x3c0/0x3c0 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.377376] ? drm_version+0x390/0x390 [drm]
> Sep 12 13:31:41 kaveri kernel: [ 2776.377387] ? lock_downgrade+0x5e0/0x5e0
> Sep 12 13:31:41 kaveri kernel: [ 2776.377390] ? lock_acquire+0x115/0x2b0
> Sep 12 13:31:41 kaveri kernel: [ 2776.377395] ? __pm_runtime_resume+0x98/0xf0
> Sep 12 13:31:41 kaveri kernel: [ 2776.377401] ? _raw_spin_unlock_irqrestore+0x44/0x60
> Sep 12 13:31:41 kaveri kernel: [ 2776.377406] ? lockdep_hardirqs_on+0x381/0x570
> Sep 12 13:31:41 kaveri kernel: [ 2776.377482] amdgpu_drm_ioctl+0xcc/0x1b0 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.377491] do_vfs_ioctl+0x193/0xf70
> Sep 12 13:31:41 kaveri kernel: [ 2776.377495] ? lock_downgrade+0x5e0/0x5e0
> Sep 12 13:31:41 kaveri kernel: [ 2776.377500] ? ioctl_preallocate+0x1b0/0x1b0
> Sep 12 13:31:41 kaveri kernel: [ 2776.377510] ? __fget+0x287/0x3e0
> Sep 12 13:31:41 kaveri kernel: [ 2776.377518] ? __ia32_sys_dup2+0x2e0/0x2e0
> Sep 12 13:31:41 kaveri kernel: [ 2776.377533] ksys_ioctl+0x60/0x90
> Sep 12 13:31:41 kaveri kernel: [ 2776.377540] __x64_sys_ioctl+0x6f/0xb0
> Sep 12 13:31:41 kaveri kernel: [ 2776.377543] ? lockdep_hardirqs_on+0x381/0x570
> Sep 12 13:31:41 kaveri kernel: [ 2776.377547] do_syscall_64+0xa5/0x3e0
> Sep 12 13:31:41 kaveri kernel: [ 2776.377553] entry_SYSCALL_64_after_hwframe+0x49/0xbe
> Sep 12 13:31:41 kaveri kernel: [ 2776.377557] RIP: 0033:0x7f29080d8067
> Sep 12 13:31:41 kaveri kernel: [ 2776.377561] Code: b3 66 90 48 8b 05 21 7e 0c 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d f1 7d 0c 00 f7 d8 64 89 01 48
> Sep 12 13:31:41 kaveri kernel: [ 2776.377563] RSP: 002b:00007f2901923bf8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> Sep 12 13:31:41 kaveri kernel: [ 2776.377568] RAX: ffffffffffffffda RBX: 00007f2901923d28 RCX: 00007f29080d8067
> Sep 12 13:31:41 kaveri kernel: [ 2776.377570] RDX: 00007f2901923c70 RSI: 00000000c0186444 RDI: 0000000000000006
> Sep 12 13:31:41 kaveri kernel: [ 2776.377572] RBP: 00007f2901923c20 R08: 00007f2901923d80 R09: 00007f2901923d28
> Sep 12 13:31:41 kaveri kernel: [ 2776.377574] R10: 00007f2901923d80 R11: 0000000000000246 R12: 00007f2901923c70
> Sep 12 13:31:41 kaveri kernel: [ 2776.377576] R13: 00000000c0186444 R14: 0000000000000006 R15: 0000562ee0b01ac0
> Sep 12 13:31:41 kaveri kernel: [ 2776.377590] irq event stamp: 404674
> Sep 12 13:31:41 kaveri kernel: [ 2776.377595] hardirqs last enabled at (404673): [<ffffffff9e46ba41>] console_unlock+0x5c1/0xab0
> Sep 12 13:31:41 kaveri kernel: [ 2776.377599] hardirqs last disabled at (404674): [<ffffffff9e203522>] trace_hardirqs_off_thunk+0x1a/0x1c
> Sep 12 13:31:41 kaveri kernel: [ 2776.377602] softirqs last enabled at (399884): [<ffffffff9fc00580>] __do_softirq+0x580/0x82f
> Sep 12 13:31:41 kaveri kernel: [ 2776.377607] softirqs last disabled at (399875): [<ffffffff9e3378f0>] irq_exit+0x1a0/0x1d0
> Sep 12 13:31:41 kaveri kernel: [ 2776.377609] ---[ end trace 7a15e3be73c1c169 ]---
> Sep 12 13:31:41 kaveri kernel: [ 2776.386607] ------------[ cut here ]------------
> Sep 12 13:31:41 kaveri kernel: [ 2776.386612] refcount_t: underflow; use-after-free.
> Sep 12 13:31:41 kaveri kernel: [ 2776.386642] WARNING: CPU: 14 PID: 14012 at lib/refcount.c:187 refcount_sub_and_test_checked+0x147/0x160
> Sep 12 13:31:41 kaveri kernel: [ 2776.386645] Modules linked in: fuse(E) lz4(E) lz4_compress(E) cpufreq_powersave(E) cpufreq_userspace(E) cpufreq_conservative(E) amdgpu(OE) chash(OE) gpu_sched(OE) binfmt_misc(E) nls_ascii(E) nls_cp437(E) vfat(E) fat(E) edac_mce_amd(E) radeon(OE) kvm(E) irqbypass(E) ttm(OE) crct10dif_pclmul(E) crc32_pclmul(E) snd_hda_codec_realtek(E) ghash_clmulni_intel(E) wmi_bmof(E) pcbc(E) snd_hda_codec_generic(E) snd_hda_codec_hdmi(E) drm_kms_helper(OE) aesni_intel(E) snd_hda_intel(E) aes_x86_64(E) snd_hda_codec(E) crypto_simd(E) r8169(E) snd_hda_core(E) cryptd(E) efi_pstore(E) drm(OE) glue_helper(E) sg(E) snd_hwdep(E) libphy(E) i2c_algo_bit(E) snd_pcm(E) fb_sys_fops(E) syscopyarea(E) sysfillrect(E) snd_timer(E) sysimgblt(E) efivars(E) pcspkr(E) snd(E) ccp(E) soundcore(E) sp5100_tco(E) rng_core(E) i2c_piix4(E)
> Sep 12 13:31:41 kaveri kernel: [ 2776.386794] k10temp(E) wmi(E) button(E) pcc_cpufreq(E) acpi_cpufreq(E) tcp_bbr(E) sch_fq(E) sunrpc(E) nct6775(E) hwmon_vid(E) efivarfs(E) ip_tables(E) x_tables(E) autofs4(E) ext4(E) crc32c_generic(E) crc16(E) mbcache(E) jbd2(E) fscrypto(E) dm_mod(E) raid10(E) raid1(E) raid0(E) multipath(E) linear(E) md_mod(E) sd_mod(E) evdev(E) hid_generic(E) usbhid(E) hid(E) ahci(E) libahci(E) libata(E) xhci_pci(E) xhci_hcd(E) crc32c_intel(E) usbcore(E) scsi_mod(E) gpio_amdpt(E) gpio_generic(E)
> Sep 12 13:31:41 kaveri kernel: [ 2776.386911] CPU: 14 PID: 14012 Comm: arb_shader:cs0 Tainted: G W OE 4.19.0-rc1+ #112
> Sep 12 13:31:41 kaveri kernel: [ 2776.386914] Hardware name: Micro-Star International Co., Ltd. MS-7A34/B350 TOMAHAWK (MS-7A34), BIOS 1.80 09/13/2017
> Sep 12 13:31:41 kaveri kernel: [ 2776.386919] RIP: 0010:refcount_sub_and_test_checked+0x147/0x160
> Sep 12 13:31:41 kaveri kernel: [ 2776.386924] Code: c2 44 29 e0 89 c5 85 d2 74 8a 80 3d a5 34 b3 01 00 74 04 31 c0 eb aa 48 c7 c7 00 c6 fe 9f c6 05 91 34 b3 01 01 e8 34 7e 58 ff <0f> 0b 31 c0 eb 91 48 89 df e8 9b 7d ae ff e9 34 ff ff ff e8 61 79
> Sep 12 13:31:41 kaveri kernel: [ 2776.386927] RSP: 0018:ffff8803de50efe0 EFLAGS: 00010286
> Sep 12 13:31:41 kaveri kernel: [ 2776.386933] RAX: 0000000000000000 RBX: ffff88020c8453e0 RCX: ffffffff9e65c7f0
> Sep 12 13:31:41 kaveri kernel: [ 2776.386935] RDX: 0000000000000000 RSI: 0000000000000008 RDI: ffff8803ee19e9c0
> Sep 12 13:31:41 kaveri kernel: [ 2776.386938] RBP: 00000000ffffffff R08: ffffed007dc33d39 R09: ffffed007dc33d38
> Sep 12 13:31:41 kaveri kernel: [ 2776.386941] R10: ffffed007dc33d38 R11: ffff8803ee19e9c7 R12: 0000000000000001
> Sep 12 13:31:41 kaveri kernel: [ 2776.386943] R13: ffff8803de50f008 R14: 1ffff1007bca1dfd R15: ffff8803de50f230
> Sep 12 13:31:41 kaveri kernel: [ 2776.386947] FS: 00007f2901924700(0000) GS:ffff8803ee180000(0000) knlGS:0000000000000000
> Sep 12 13:31:41 kaveri kernel: [ 2776.386949] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> Sep 12 13:31:41 kaveri kernel: [ 2776.386952] CR2: 00007f1f586aac00 CR3: 00000003e5ca0000 CR4: 00000000003406e0
> Sep 12 13:31:41 kaveri kernel: [ 2776.386957] Call Trace:
> Sep 12 13:31:41 kaveri kernel: [ 2776.386969] ? refcount_inc_checked+0x30/0x30
> Sep 12 13:31:41 kaveri kernel: [ 2776.386985] ? irq_work_claim+0x40/0x70
> Sep 12 13:31:41 kaveri kernel: [ 2776.387116] amdgpu_sa_bo_new+0xb49/0xf40 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.387244] ? amdgpu_sa_bo_manager_fini+0x260/0x260 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.387373] ? amdgpu_job_alloc+0x3d/0x310 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.387500] ? amdgpu_job_alloc_with_ib+0x24/0xe0 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.387609] ? amdgpu_vm_bo_update_mapping+0x2b5/0xb40 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.387725] ? amdgpu_vm_bo_update+0x938/0x1c60 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.387839] ? amdgpu_vm_handle_moved+0x206/0x2c0 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.387955] ? amdgpu_cs_ioctl+0x27ee/0x4a80 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.387983] ? drm_ioctl_kernel+0x197/0x220 [drm]
> Sep 12 13:31:41 kaveri kernel: [ 2776.388008] ? drm_ioctl+0x40e/0x860 [drm]
> Sep 12 13:31:41 kaveri kernel: [ 2776.388117] ? amdgpu_drm_ioctl+0xcc/0x1b0 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.388129] ? do_vfs_ioctl+0x193/0xf70
> Sep 12 13:31:41 kaveri kernel: [ 2776.388134] ? ksys_ioctl+0x60/0x90
> Sep 12 13:31:41 kaveri kernel: [ 2776.388138] ? __x64_sys_ioctl+0x6f/0xb0
> Sep 12 13:31:41 kaveri kernel: [ 2776.388144] ? do_syscall_64+0xa5/0x3e0
> Sep 12 13:31:41 kaveri kernel: [ 2776.388167] ? find_held_lock+0x33/0x1c0
> Sep 12 13:31:41 kaveri kernel: [ 2776.388204] ? __kmalloc+0x117/0x260
> Sep 12 13:31:41 kaveri kernel: [ 2776.388326] amdgpu_ib_get+0x35/0x240 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.388460] amdgpu_job_alloc_with_ib+0x7f/0xe0 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.388579] amdgpu_vm_bo_update_mapping+0x2b5/0xb40 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.388706] ? amdgpu_vm_frag_ptes+0x1b0/0x1b0 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.388715] ? mark_held_locks+0x140/0x140
> Sep 12 13:31:41 kaveri kernel: [ 2776.388724] ? mark_held_locks+0x140/0x140
> Sep 12 13:31:41 kaveri kernel: [ 2776.388841] ? amdgpu_vm_update_func+0x150/0x150 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.388848] ? __lock_is_held+0xad/0x140
> Sep 12 13:31:41 kaveri kernel: [ 2776.388972] amdgpu_vm_bo_update+0x938/0x1c60 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.389001] ? mutex_trylock+0x167/0x1a0
> Sep 12 13:31:41 kaveri kernel: [ 2776.389113] ? amdgpu_vm_handle_moved+0x1f1/0x2c0 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.389232] amdgpu_vm_handle_moved+0x206/0x2c0 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.389347] amdgpu_cs_ioctl+0x27ee/0x4a80 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.389362] ? mark_held_locks+0x140/0x140
> Sep 12 13:31:41 kaveri kernel: [ 2776.389478] ? amdgpu_cs_find_mapping+0x3c0/0x3c0 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.389489] ? mark_held_locks+0x140/0x140
> Sep 12 13:31:41 kaveri kernel: [ 2776.389504] ? __lock_acquire+0x6ea/0x4820
> Sep 12 13:31:41 kaveri kernel: [ 2776.389515] ? quarantine_put+0xca/0x170
> Sep 12 13:31:41 kaveri kernel: [ 2776.389689] ? amdgpu_cs_find_mapping+0x3c0/0x3c0 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.389717] drm_ioctl_kernel+0x197/0x220 [drm]
> Sep 12 13:31:41 kaveri kernel: [ 2776.389746] ? drm_setversion+0x800/0x800 [drm]
> Sep 12 13:31:41 kaveri kernel: [ 2776.389786] drm_ioctl+0x40e/0x860 [drm]
> Sep 12 13:31:41 kaveri kernel: [ 2776.389906] ? amdgpu_cs_find_mapping+0x3c0/0x3c0 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.389935] ? drm_version+0x390/0x390 [drm]
> Sep 12 13:31:41 kaveri kernel: [ 2776.389954] ? lock_downgrade+0x5e0/0x5e0
> Sep 12 13:31:41 kaveri kernel: [ 2776.389958] ? lock_acquire+0x115/0x2b0
> Sep 12 13:31:41 kaveri kernel: [ 2776.389965] ? __pm_runtime_resume+0x98/0xf0
> Sep 12 13:31:41 kaveri kernel: [ 2776.389975] ? _raw_spin_unlock_irqrestore+0x44/0x60
> Sep 12 13:31:41 kaveri kernel: [ 2776.389983] ? lockdep_hardirqs_on+0x381/0x570
> Sep 12 13:31:41 kaveri kernel: [ 2776.390101] amdgpu_drm_ioctl+0xcc/0x1b0 [amdgpu]
> Sep 12 13:31:41 kaveri kernel: [ 2776.390114] do_vfs_ioctl+0x193/0xf70
> Sep 12 13:31:41 kaveri kernel: [ 2776.390122] ? lock_downgrade+0x5e0/0x5e0
> Sep 12 13:31:41 kaveri kernel: [ 2776.390129] ? ioctl_preallocate+0x1b0/0x1b0
> Sep 12 13:31:41 kaveri kernel: [ 2776.390144] ? __fget+0x287/0x3e0
> Sep 12 13:31:41 kaveri kernel: [ 2776.390157] ? __ia32_sys_dup2+0x2e0/0x2e0
> Sep 12 13:31:41 kaveri kernel: [ 2776.390180] ksys_ioctl+0x60/0x90
> Sep 12 13:31:41 kaveri kernel: [ 2776.390190] __x64_sys_ioctl+0x6f/0xb0
> Sep 12 13:31:41 kaveri kernel: [ 2776.390194] ? lockdep_hardirqs_on+0x381/0x570
> Sep 12 13:31:41 kaveri kernel: [ 2776.390202] do_syscall_64+0xa5/0x3e0
> Sep 12 13:31:41 kaveri kernel: [ 2776.390210] entry_SYSCALL_64_after_hwframe+0x49/0xbe
> Sep 12 13:31:41 kaveri kernel: [ 2776.390216] RIP: 0033:0x7f29080d8067
> Sep 12 13:31:41 kaveri kernel: [ 2776.390222] Code: b3 66 90 48 8b 05 21 7e 0c 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d f1 7d 0c 00 f7 d8 64 89 01 48
> Sep 12 13:31:41 kaveri kernel: [ 2776.390225] RSP: 002b:00007f2901923bf8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> Sep 12 13:31:41 kaveri kernel: [ 2776.390233] RAX: ffffffffffffffda RBX: 00007f2901923d28 RCX: 00007f29080d8067
> Sep 12 13:31:41 kaveri kernel: [ 2776.390236] RDX: 00007f2901923c70 RSI: 00000000c0186444 RDI: 0000000000000006
> Sep 12 13:31:41 kaveri kernel: [ 2776.390241] RBP: 00007f2901923c20 R08: 00007f2901923d80 R09: 00007f2901923d28
> Sep 12 13:31:41 kaveri kernel: [ 2776.390245] R10: 00007f2901923d80 R11: 0000000000000246 R12: 00007f2901923c70
> Sep 12 13:31:41 kaveri kernel: [ 2776.390248] R13: 00000000c0186444 R14: 0000000000000006 R15: 0000562ee0b01ac0
> Sep 12 13:31:41 kaveri kernel: [ 2776.390271] irq event stamp: 404696
> Sep 12 13:31:41 kaveri kernel: [ 2776.390277] hardirqs last enabled at (404695): [<ffffffff9e46ba41>] console_unlock+0x5c1/0xab0
> Sep 12 13:31:41 kaveri kernel: [ 2776.390283] hardirqs last disabled at (404696): [<ffffffff9e203522>] trace_hardirqs_off_thunk+0x1a/0x1c
> Sep 12 13:31:41 kaveri kernel: [ 2776.390288] softirqs last enabled at (399884): [<ffffffff9fc00580>] __do_softirq+0x580/0x82f
> Sep 12 13:31:41 kaveri kernel: [ 2776.390294] softirqs last disabled at (399875): [<ffffffff9e3378f0>] irq_exit+0x1a0/0x1d0
>
> drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c
> index fb1667b35daa..12f2bf97611f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c
> @@ -226,6 +226,8 @@ static bool amdgpu_sa_bo_next_hole(struct amdgpu_sa_manager *sa_manager,
> for (i = 0; i < AMDGPU_SA_NUM_FENCE_LISTS; ++i) {
> struct amdgpu_sa_bo *sa_bo;
>
> + fences[i] = NULL;
> +
> if (list_empty(&sa_manager->flist[i]))
> continue;
>
> @@ -296,10 +298,8 @@ int amdgpu_sa_bo_new(struct amdgpu_sa_manager *sa_manager,
>
> spin_lock(&sa_manager->wq.lock);
> do {
> - for (i = 0; i < AMDGPU_SA_NUM_FENCE_LISTS; ++i) {
> - fences[i] = NULL;
> + for (i = 0; i < AMDGPU_SA_NUM_FENCE_LISTS; ++i)
> tries[i] = 0;
> - }
>
> do {
> amdgpu_sa_bo_try_free(sa_manager);
More information about the amd-gfx
mailing list