[Intel-gfx] [PATCH] drm/i915: Lock dpt_obj around set_cache_level, v2.
Maarten Lankhorst
maarten.lankhorst at linux.intel.com
Thu Jan 27 12:02:18 UTC 2022
Op 26-01-2022 om 13:55 schreef Gwan-gyeong Mun:
>
>
> On 1/26/22 9:37 AM, Maarten Lankhorst wrote:
>> set_cache_level may unbind the object, which will result in the below
>> lockdep splat:
>> <6> [184.578145] [IGT] kms_addfb_basic: starting subtest addfb25-framebuffer-vs-set-tiling
>> <4> [184.578220] ------------[ cut here ]------------
>> <4> [184.578221] WARN_ON(debug_locks && !(lock_is_held(&(&((obj)->base.resv)->lock.base)->dep_map) != 0))
>> <4> [184.578237] WARNING: CPU: 6 PID: 5544 at drivers/gpu/drm/i915/i915_gem.c:123 i915_gem_object_unbind+0x4a9/0x510 [i915]
>> <4> [184.578323] Modules linked in: vgem drm_shmem_helper snd_hda_codec_hdmi i915 mei_hdcp x86_pkg_temp_thermal snd_hda_intel coretemp crct10dif_pclmul snd_intel_dspcfg crc32_pclmul ttm snd_hda_codec ghash_clmulni_intel snd_hwdep drm_kms_helper snd_hda_core e1000e mei_me syscopyarea ptp snd_pcm sysfillrect mei pps_core sysimgblt fb_sys_fops prime_numbers intel_lpss_pci smsc75xx usbnet mii
>> <4> [184.578349] CPU: 6 PID: 5544 Comm: kms_addfb_basic Not tainted 5.16.0-CI-Patchwork_22006+ #1
>> <4> [184.578351] Hardware name: Intel Corporation Alder Lake Client Platform/AlderLake-P DDR4 RVP, BIOS ADLPFWI1.R00.2422.A00.2110131104 10/13/2021
>> <4> [184.578352] RIP: 0010:i915_gem_object_unbind+0x4a9/0x510 [i915]
>> <4> [184.578424] Code: 00 be ff ff ff ff 48 8d 78 68 e8 a2 6e 2b e1 85 c0 0f 85 b1 fb ff ff 48 c7 c6 48 37 9e a0 48 c7 c7 d9 fc a1 a0 e8 a3 54 26 e1 <0f> 0b e9 97 fb ff ff 31 ed 48 8b 5c 24 58 65 48 33 1c 25 28 00 00
>> <4> [184.578426] RSP: 0018:ffffc900013b3b68 EFLAGS: 00010286
>> <4> [184.578428] RAX: 0000000000000000 RBX: ffffc900013b3bb0 RCX: 0000000000000001
>> <4> [184.578429] RDX: 0000000080000001 RSI: ffffffff8230b42d RDI: 00000000ffffffff
>> <4> [184.578430] RBP: ffff888120e10000 R08: 0000000000000000 R09: c0000000ffff7fff
>> <4> [184.578431] R10: 0000000000000001 R11: ffffc900013b3980 R12: ffff8881176ea740
>> <4> [184.578432] R13: ffff888120e10000 R14: 0000000000000000 R15: 0000000000000001
>> <4> [184.578433] FS: 00007f65074f5e40(0000) GS:ffff88888f300000(0000) knlGS:0000000000000000
>> <4> [184.578435] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
>> <4> [184.578436] CR2: 00007fff4420ede8 CR3: 000000010c2f2005 CR4: 0000000000770ee0
>> <4> [184.578437] PKRU: 55555554
>> <4> [184.578438] Call Trace:
>> <4> [184.578439] <TASK>
>> <4> [184.578440] ? dma_resv_iter_first_unlocked+0x78/0xf0
>> <4> [184.578447] intel_dpt_create+0x88/0x220 [i915]
>> <4> [184.578530] intel_framebuffer_init+0x5b8/0x620 [i915]
>> <4> [184.578612] intel_framebuffer_create+0x3d/0x60 [i915]
>> <4> [184.578691] intel_user_framebuffer_create+0x18f/0x2c0 [i915]
>> <4> [184.578775] drm_internal_framebuffer_create+0x36d/0x4c0
>> <4> [184.578779] drm_mode_addfb2+0x2f/0xd0
>> <4> [184.578781] ? drm_mode_addfb_ioctl+0x10/0x10
>> <4> [184.578784] drm_ioctl_kernel+0xac/0x140
>> <4> [184.578787] drm_ioctl+0x201/0x3d0
>> <4> [184.578789] ? drm_mode_addfb_ioctl+0x10/0x10
>> <4> [184.578796] __x64_sys_ioctl+0x6a/0xa0
>> <4> [184.578800] do_syscall_64+0x37/0xb0
>> <4> [184.578803] entry_SYSCALL_64_after_hwframe+0x44/0xae
>> <4> [184.578805] RIP: 0033:0x7f6506736317
>> <4> [184.578807] Code: b3 66 90 48 8b 05 71 4b 2d 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 41 4b 2d 00 f7 d8 64 89 01 48
>> <4> [184.578808] RSP: 002b:00007fff44211a98 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
>> <4> [184.578810] RAX: ffffffffffffffda RBX: 0000000000000006 RCX: 00007f6506736317
>> <4> [184.578811] RDX: 00007fff44211b30 RSI: 00000000c06864b8 RDI: 0000000000000006
>> <4> [184.578812] RBP: 00007fff44211b30 R08: 00007fff44311170 R09: 0000000000000000
>> <4> [184.578813] R10: 0000000000000008 R11: 0000000000000246 R12: 00000000c06864b8
>> <4> [184.578813] R13: 0000000000000006 R14: 0000000000000000 R15: 0000000000000000
>> <4> [184.578819] </TASK>
>> <4> [184.578820] irq event stamp: 47931
>> <4> [184.578821] hardirqs last enabled at (47937): [<ffffffff81130dd2>] __up_console_sem+0x62/0x70
>> <4> [184.578824] hardirqs last disabled at (47942): [<ffffffff81130db7>] __up_console_sem+0x47/0x70
>> <4> [184.578826] softirqs last enabled at (47340): [<ffffffff81e0032d>] __do_softirq+0x32d/0x493
>> <4> [184.578828] softirqs last disabled at (47335): [<ffffffff810b9196>] irq_exit_rcu+0xa6/0xe0
>> <4> [184.578830] ---[ end trace f17ec219f892c7d4 ]---
>>
>> Changes since v1:
>> - Fix intel_pin_fb_obj_dpt too.
>>
>> Fixes: 0f341974cbc2 ("drm/i915: Add i915_vma_unbind_unlocked, and take obj lock for i915_vma_unbind, v2.")
>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
>> Testcase: kms_addfb_basic
>> ---
>> drivers/gpu/drm/i915/display/intel_dpt.c | 6 +++++-
>> drivers/gpu/drm/i915/display/intel_fb_pin.c | 6 +++++-
>> 2 files changed, 10 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_dpt.c b/drivers/gpu/drm/i915/display/intel_dpt.c
>> index 63a83d5f85a1..c2f8f853db90 100644
>> --- a/drivers/gpu/drm/i915/display/intel_dpt.c
>> +++ b/drivers/gpu/drm/i915/display/intel_dpt.c
>> @@ -253,7 +253,11 @@ intel_dpt_create(struct intel_framebuffer *fb)
>> if (IS_ERR(dpt_obj))
>> return ERR_CAST(dpt_obj);
>> - ret = i915_gem_object_set_cache_level(dpt_obj, I915_CACHE_NONE);
>> + ret = i915_gem_object_lock_interruptible(dpt_obj, NULL);
>> + if (!ret) {
>> + ret = i915_gem_object_set_cache_level(dpt_obj, I915_CACHE_NONE);
>> + i915_gem_object_unlock(dpt_obj);
>> + }
>> if (ret) {
>> i915_gem_object_put(dpt_obj);
>> return ERR_PTR(ret);
>> diff --git a/drivers/gpu/drm/i915/display/intel_fb_pin.c b/drivers/gpu/drm/i915/display/intel_fb_pin.c
>> index 9c555f6d1958..c4b3d76341f3 100644
>> --- a/drivers/gpu/drm/i915/display/intel_fb_pin.c
>> +++ b/drivers/gpu/drm/i915/display/intel_fb_pin.c
>> @@ -36,7 +36,11 @@ intel_pin_fb_obj_dpt(struct drm_framebuffer *fb,
>> atomic_inc(&dev_priv->gpu_error.pending_fb_pin);
>> - ret = i915_gem_object_set_cache_level(obj, I915_CACHE_NONE);
>> + ret = i915_gem_object_lock_interruptible(obj, NULL);
>> + if (!ret) {
>> + ret = i915_gem_object_set_cache_level(obj, I915_CACHE_NONE);
>> + i915_gem_object_unlock(obj);
>> + }
>> if (ret) {
>> vma = ERR_PTR(ret);
>> goto err;
>>
>
> Hi Maarten,
>
> Even if v2 is applied, when the igt_runner runs with fast-feedback.testlist as input,lock problem log occurs in dmesg below in kms_busy test.
>
> Testing was done in adlp.
>
> I think the lock check routine would have to be added even when doing intel_dpt_destroy(), what do you think?
>
>
> -----------------------------------------------------------------------------------------------------------
> [ 374.868359] ------------[ cut here ]------------
> [ 374.868409] WARNING: CPU: 2 PID: 6696 at drivers/gpu/drm/i915/gem/i915_gem_object.h:171 __i915_vma_unbind+0xdf/0xf0 [i915]
> [ 374.868506] Modules linked in: vgem drm_shmem_helper fuse snd_hda_codec_hdmi smsc75xx usbnet mii mei_hdcp x86_pkg_temp_thermal snd_hda_intel snd_intel_dspcfg snd_hda_codec snd_hwdep coretemp snd_hda_core snd_pcm mei_me mei i915 drm_buddy crct10dif_pclmul crc32_pclmul ttm ghash_clmulni_intel drm_dp_helper i2c_i801 drm_kms_helper i2c_smbus intel_lpss_pci syscopyarea sysfillrect sysimgblt fb_sys_fops prime_numbers
> [ 374.868539] CPU: 2 PID: 6696 Comm: kms_busy Not tainted 5.17.0-rc1-drm-tip-test+ #26
> [ 374.868541] Hardware name: Intel Corporation Alder Lake Client Platform/AlderLake-P DDR5 RVP, BIOS ADLPFWI1.R00.2162.A00.2104190450 04/19/2021
> [ 374.868543] RIP: 0010:__i915_vma_unbind+0xdf/0xf0 [i915]
> [ 374.868631] Code: 15 32 1c 5c e2 85 d2 0f 84 5c ff ff ff 48 8b b8 38 01 00 00 be ff ff ff ff 48 83 c7 68 e8 a9 e0 8a e1 85 c0 0f 85 3f ff ff ff <0f> 0b e9 38 ff ff ff 41 bc f5 ff ff ff eb 86 66 90 0f 1f 44 00 00
> [ 374.868633] RSP: 0018:ffffc900022f3cd0 EFLAGS: 00010246
> [ 374.868636] RAX: 0000000000000000 RBX: ffff88810c204b40 RCX: 0000000000000000
> [ 374.868637] RDX: 0000000080000000 RSI: ffffffff822dc04f RDI: ffffffff82339ebf
> [ 374.868638] RBP: ffff88810c204b40 R08: 00000000ffffffff R09: 0000000000000000
> [ 374.868639] R10: 0000000000000001 R11: ffffffffa023ba80 R12: ffff8881095ebb18
> [ 374.868641] R13: ffff8881095eb800 R14: 00000000ffffffff R15: ffff8881095eb848
> [ 374.868642] FS: 00007f0326c43c00(0000) GS:ffff88849f300000(0000) knlGS:0000000000000000
> [ 374.868643] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 374.868645] CR2: 00007f0329403938 CR3: 00000001429c4006 CR4: 0000000000770ee0
> [ 374.868646] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [ 374.868647] DR3: 0000000000000000 DR6: 00000000ffff07f0 DR7: 0000000000000400
> [ 374.868649] PKRU: 55555554
> [ 374.868650] Call Trace:
> [ 374.868651] <TASK>
> [ 374.868654] __i915_vm_close+0xab/0x190 [i915]
> [ 374.868729] intel_dpt_destroy+0x29/0x60 [i915]
> [ 374.868823] intel_user_framebuffer_destroy+0x48/0x50 [i915]
> [ 374.868945] drm_mode_rmfb+0x1eb/0x220
> [ 374.868958] ? drm_mode_rmfb+0x220/0x220
> [ 374.868963] ? drm_mode_rmfb+0x220/0x220
> [ 374.868966] drm_ioctl_kernel+0xb1/0x140
> [ 374.868973] drm_ioctl+0x201/0x3b0
> [ 374.868977] ? drm_mode_rmfb+0x220/0x220
> [ 374.868981] ? tty_ioctl+0x447/0x980
> [ 374.868986] ? find_held_lock+0x2b/0x80
> [ 374.868995] __x64_sys_ioctl+0x83/0xa0
> [ 374.869000] do_syscall_64+0x38/0xc0
> [ 374.869006] entry_SYSCALL_64_after_hwframe+0x44/0xae
> [ 374.869009] RIP: 0033:0x7f0328fde50b
> [ 374.869012] Code: 0f 1e fa 48 8b 05 85 39 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 55 39 0d 00 f7 d8 64 89 01 48
> [ 374.869014] RSP: 002b:00007ffec4a3f278 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [ 374.869017] RAX: ffffffffffffffda RBX: 00007ffec4a3f2bc RCX: 00007f0328fde50b
> [ 374.869019] RDX: 00007ffec4a3f2bc RSI: 00000000c00464af RDI: 0000000000000005
> [ 374.869020] RBP: 00000000c00464af R08: 0000000000000000 R09: 0000000000000000
> [ 374.869021] R10: fffffffffffffdea R11: 0000000000000246 R12: 00007ffec4a3f360
> [ 374.869022] R13: 0000000000000005 R14: 00007ffec4a3f400 R15: 0000000000000000
> [ 374.869032] </TASK>
> [ 374.869034] irq event stamp: 258641
> [ 374.869035] hardirqs last enabled at (258647): [<ffffffff8113a437>] __up_console_sem+0x67/0x70
> [ 374.869039] hardirqs last disabled at (258652): [<ffffffff8113a41c>] __up_console_sem+0x4c/0x70
> [ 374.869041] softirqs last enabled at (257220): [<ffffffff810c104d>] irq_exit_rcu+0xdd/0x130
> [ 374.869045] softirqs last disabled at (257215): [<ffffffff810c104d>] irq_exit_rcu+0xdd/0x130
> [ 374.869047] ---[ end trace 0000000000000000 ]---
> [ 374.869178] ------------[ cut here ]------------
> [ 374.869180] WARNING: CPU: 2 PID: 6696 at drivers/gpu/drm/i915/gem/i915_gem_object.h:171 __i915_vma_evict+0x2b0/0x330 [i915]
> [ 374.869272] Modules linked in: vgem drm_shmem_helper fuse snd_hda_codec_hdmi smsc75xx usbnet mii mei_hdcp x86_pkg_temp_thermal snd_hda_intel snd_intel_dspcfg snd_hda_codec snd_hwdep coretemp snd_hda_core snd_pcm mei_me mei i915 drm_buddy crct10dif_pclmul crc32_pclmul ttm ghash_clmulni_intel drm_dp_helper i2c_i801 drm_kms_helper i2c_smbus intel_lpss_pci syscopyarea sysfillrect sysimgblt fb_sys_fops prime_numbers
> [ 374.869303] CPU: 2 PID: 6696 Comm: kms_busy Tainted: G W 5.17.0-rc1-drm-tip-test+ #26
> [ 374.869305] Hardware name: Intel Corporation Alder Lake Client Platform/AlderLake-P DDR5 RVP, BIOS ADLPFWI1.R00.2162.A00.2104190450 04/19/2021
> [ 374.869306] RIP: 0010:__i915_vma_evict+0x2b0/0x330 [i915]
> [ 374.869389] Code: 00 00 00 e8 d2 3c 2e e1 e9 84 fe ff ff 48 8b b8 38 01 00 00 be ff ff ff ff 48 83 c7 68 e8 08 e2 8a e1 85 c0 0f 85 91 fd ff ff <0f> 0b e9 8a fd ff ff 0f 0b e9 ca fd ff ff e8 2d e3 8a e1 85 c0 0f
> [ 374.869391] RSP: 0018:ffffc900022f3cb0 EFLAGS: 00010246
> [ 374.869393] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
> [ 374.869394] RDX: 0000000080000000 RSI: ffffffff822dc04f RDI: ffffffff82339ebf
> [ 374.869395] RBP: ffff88810c204b40 R08: 00000000ffffffff R09: 0000000000000001
> [ 374.869396] R10: 0000000000000001 R11: ffff88810156ddc8 R12: ffff88813fcc34c0
> [ 374.869397] R13: ffff8881095eb800 R14: 00000000ffffffff R15: ffff8881095eb848
> [ 374.869398] FS: 00007f0326c43c00(0000) GS:ffff88849f300000(0000) knlGS:0000000000000000
> [ 374.869400] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 374.869401] CR2: 00007f0329403938 CR3: 00000001429c4006 CR4: 0000000000770ee0
> [ 374.869402] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [ 374.869403] DR3: 0000000000000000 DR6: 00000000ffff07f0 DR7: 0000000000000400
> [ 374.869404] PKRU: 55555554
> [ 374.869405] Call Trace:
> [ 374.869406] <TASK>
> [ 374.869408] __i915_vma_unbind+0x6c/0xf0 [i915]
> [ 374.869491] __i915_vm_close+0xab/0x190 [i915]
> [ 374.869565] intel_dpt_destroy+0x29/0x60 [i915]
> [ 374.869658] intel_user_framebuffer_destroy+0x48/0x50 [i915]
> [ 374.869750] drm_mode_rmfb+0x1eb/0x220
> [ 374.869757] ? drm_mode_rmfb+0x220/0x220
> [ 374.869761] ? drm_mode_rmfb+0x220/0x220
> [ 374.869765] drm_ioctl_kernel+0xb1/0x140
> [ 374.869771] drm_ioctl+0x201/0x3b0
> [ 374.869774] ? drm_mode_rmfb+0x220/0x220
> [ 374.869779] ? tty_ioctl+0x447/0x980
> [ 374.869782] ? find_held_lock+0x2b/0x80
> [ 374.869789] __x64_sys_ioctl+0x83/0xa0
> [ 374.869793] do_syscall_64+0x38/0xc0
> [ 374.869797] entry_SYSCALL_64_after_hwframe+0x44/0xae
> [ 374.869800] RIP: 0033:0x7f0328fde50b
> [ 374.869802] Code: 0f 1e fa 48 8b 05 85 39 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 55 39 0d 00 f7 d8 64 89 01 48
> [ 374.869803] RSP: 002b:00007ffec4a3f278 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [ 374.869805] RAX: ffffffffffffffda RBX: 00007ffec4a3f2bc RCX: 00007f0328fde50b
> [ 374.869807] RDX: 00007ffec4a3f2bc RSI: 00000000c00464af RDI: 0000000000000005
> [ 374.869808] RBP: 00000000c00464af R08: 0000000000000000 R09: 0000000000000000
> [ 374.869809] R10: fffffffffffffdea R11: 0000000000000246 R12: 00007ffec4a3f360
> [ 374.869810] R13: 0000000000000005 R14: 00007ffec4a3f400 R15: 0000000000000000
> [ 374.869819] </TASK>
> [ 374.869820] irq event stamp: 259173
> [ 374.869821] hardirqs last enabled at (259179): [<ffffffff8113a437>] __up_console_sem+0x67/0x70
> [ 374.869824] hardirqs last disabled at (259184): [<ffffffff8113a41c>] __up_console_sem+0x4c/0x70
> [ 374.869827] softirqs last enabled at (257220): [<ffffffff810c104d>] irq_exit_rcu+0xdd/0x130
> [ 374.869841] softirqs last disabled at (259195): [<ffffffff810c104d>] irq_exit_rcu+0xdd/0x130
> [ 374.869843] ---[ end trace 0000000000000000 ]---
> [ 374.892030] Console: switching to colour frame buffer device 240x67
> [ 374.920158] ------------[ cut here ]------------
> [ 374.920161] WARNING: CPU: 2 PID: 6696 at drivers/gpu/drm/i915/gem/i915_gem_object.h:171 __i915_vma_unbind+0xdf/0xf0 [i915]
> [ 374.920298] Modules linked in: vgem drm_shmem_helper fuse snd_hda_codec_hdmi smsc75xx usbnet mii mei_hdcp x86_pkg_temp_thermal snd_hda_intel snd_intel_dspcfg snd_hda_codec snd_hwdep coretemp snd_hda_core snd_pcm mei_me mei i915 drm_buddy crct10dif_pclmul crc32_pclmul ttm ghash_clmulni_intel drm_dp_helper i2c_i801 drm_kms_helper i2c_smbus intel_lpss_pci syscopyarea sysfillrect sysimgblt fb_sys_fops prime_numbers
> [ 374.920327] CPU: 2 PID: 6696 Comm: kms_busy Tainted: G W 5.17.0-rc1-drm-tip-test+ #26
> [ 374.920329] Hardware name: Intel Corporation Alder Lake Client Platform/AlderLake-P DDR5 RVP, BIOS ADLPFWI1.R00.2162.A00.2104190450 04/19/2021
> [ 374.920331] RIP: 0010:__i915_vma_unbind+0xdf/0xf0 [i915]
> [ 374.920418] Code: 15 32 1c 5c e2 85 d2 0f 84 5c ff ff ff 48 8b b8 38 01 00 00 be ff ff ff ff 48 83 c7 68 e8 a9 e0 8a e1 85 c0 0f 85 3f ff ff ff <0f> 0b e9 38 ff ff ff 41 bc f5 ff ff ff eb 86 66 90 0f 1f 44 00 00
> [ 374.920420] RSP: 0018:ffffc900022f3ba0 EFLAGS: 00010246
> [ 374.920422] RAX: 0000000000000000 RBX: ffff88810c205f40 RCX: 0000000000000000
> [ 374.920424] RDX: 0000000080000000 RSI: ffffffff822dc04f RDI: ffffffff82339ebf
> [ 374.920425] RBP: ffff88810c205f40 R08: 00000000ffffffff R09: 0000000000000000
> [ 374.920426] R10: 0000000000000001 R11: ffffffffa023ba80 R12: ffff888140ecd318
> [ 374.920427] R13: ffff888140ecd000 R14: 00000000ffffffff R15: ffff888140ecd048
> [ 374.920428] FS: 0000000000000000(0000) GS:ffff88849f300000(0000) knlGS:0000000000000000
> [ 374.920430] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 374.920431] CR2: 00007f032940af28 CR3: 0000000006612001 CR4: 0000000000770ee0
> [ 374.920432] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [ 374.920433] DR3: 0000000000000000 DR6: 00000000ffff07f0 DR7: 0000000000000400
> [ 374.920435] PKRU: 55555554
> [ 374.920436] Call Trace:
> [ 374.920437] <TASK>
> [ 374.920439] __i915_vm_close+0xab/0x190 [i915]
> [ 374.920513] intel_dpt_destroy+0x29/0x60 [i915]
> [ 374.920608] intel_user_framebuffer_destroy+0x48/0x50 [i915]
> [ 374.920697] drm_fb_release+0x108/0x1c0
> [ 374.920702] ? find_held_lock+0x2b/0x80
> [ 374.920710] drm_file_free.part.0+0x1a4/0x260
> [ 374.920716] drm_release_noglobal+0x1c/0xa0
> [ 374.920719] __fput+0xa3/0x260
> [ 374.920724] task_work_run+0x59/0xa0
> [ 374.920729] do_exit+0x382/0xc00
> [ 374.920735] do_group_exit+0x33/0xb0
> [ 374.920737] get_signal+0x15e/0xe00
> [ 374.920744] arch_do_signal_or_restart+0xf0/0x7f0
> [ 374.920754] exit_to_user_mode_prepare+0x148/0x1d0
> [ 374.920758] syscall_exit_to_user_mode+0x19/0x50
> [ 374.920762] do_syscall_64+0x48/0xc0
> [ 374.920765] entry_SYSCALL_64_after_hwframe+0x44/0xae
> [ 374.920768] RIP: 0033:0x7f0328fde50b
> [ 374.920769] Code: Unable to access opcode bytes at RIP 0x7f0328fde4e1.
> [ 374.920770] RSP: 002b:00007ffec4a3f278 EFLAGS: 00000246
> [ 374.920772] RAX: 0000000000000000 RBX: 00007ffec4a3f2bc RCX: 00007f0328fde50b
> [ 374.920774] RDX: 00007ffec4a3f2bc RSI: 00000000c00464af RDI: 0000000000000005
> [ 374.920775] RBP: 00000000c00464af R08: 0000000000000000 R09: 0000000000000000
> [ 374.920776] R10: fffffffffffffdea R11: 0000000000000246 R12: 00007ffec4a3f360
> [ 374.920777] R13: 0000000000000005 R14: 00007ffec4a3f400 R15: 0000000000000000
> [ 374.920784] </TASK>
> [ 374.920785] irq event stamp: 365965
> [ 374.920786] hardirqs last enabled at (365971): [<ffffffff8113a437>] __up_console_sem+0x67/0x70
> [ 374.920789] hardirqs last disabled at (365976): [<ffffffff8113a41c>] __up_console_sem+0x4c/0x70
> [ 374.920792] softirqs last enabled at (365380): [<ffffffff81a8c945>] unix_release_sock+0xf5/0x4f0
> [ 374.920795] softirqs last disabled at (365378): [<ffffffff81a8c91e>] unix_release_sock+0xce/0x4f0
> [ 374.920796] ---[ end trace 0000000000000000 ]---
> [ 374.920813] ------------[ cut here ]------------
> [ 374.920814] WARNING: CPU: 2 PID: 6696 at drivers/gpu/drm/i915/gem/i915_gem_object.h:171 __i915_vma_evict+0x2b0/0x330 [i915]
> [ 374.920972] Modules linked in: vgem drm_shmem_helper fuse snd_hda_codec_hdmi smsc75xx usbnet mii mei_hdcp x86_pkg_temp_thermal snd_hda_intel snd_intel_dspcfg snd_hda_codec snd_hwdep coretemp snd_hda_core snd_pcm mei_me mei i915 drm_buddy crct10dif_pclmul crc32_pclmul ttm ghash_clmulni_intel drm_dp_helper i2c_i801 drm_kms_helper i2c_smbus intel_lpss_pci syscopyarea sysfillrect sysimgblt fb_sys_fops prime_numbers
> [ 374.921003] CPU: 2 PID: 6696 Comm: kms_busy Tainted: G W 5.17.0-rc1-drm-tip-test+ #26
> [ 374.921005] Hardware name: Intel Corporation Alder Lake Client Platform/AlderLake-P DDR5 RVP, BIOS ADLPFWI1.R00.2162.A00.2104190450 04/19/2021
> [ 374.921006] RIP: 0010:__i915_vma_evict+0x2b0/0x330 [i915]
> [ 374.921095] Code: 00 00 00 e8 d2 3c 2e e1 e9 84 fe ff ff 48 8b b8 38 01 00 00 be ff ff ff ff 48 83 c7 68 e8 08 e2 8a e1 85 c0 0f 85 91 fd ff ff <0f> 0b e9 8a fd ff ff 0f 0b e9 ca fd ff ff e8 2d e3 8a e1 85 c0 0f
> [ 374.921097] RSP: 0018:ffffc900022f3b80 EFLAGS: 00010246
> [ 374.921102] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
> [ 374.921103] RDX: 0000000080000000 RSI: ffffffff822dc04f RDI: ffffffff82339ebf
> [ 374.921104] RBP: ffff88810c205f40 R08: 00000000ffffffff R09: 0000000000000001
> [ 374.921105] R10: 0000000000000001 R11: ffff88810156ddc8 R12: ffff88813fcc6940
> [ 374.921107] R13: ffff888140ecd000 R14: 00000000ffffffff R15: ffff888140ecd048
> [ 374.921108] FS: 0000000000000000(0000) GS:ffff88849f300000(0000) knlGS:0000000000000000
> [ 374.921109] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 374.921111] CR2: 00007f032940af28 CR3: 0000000006612001 CR4: 0000000000770ee0
> [ 374.921112] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [ 374.921113] DR3: 0000000000000000 DR6: 00000000ffff07f0 DR7: 0000000000000400
> [ 374.921114] PKRU: 55555554
> [ 374.921115] Call Trace:
> [ 374.921116] <TASK>
> [ 374.921118] __i915_vma_unbind+0x6c/0xf0 [i915]
> [ 374.921207] __i915_vm_close+0xab/0x190 [i915]
> [ 374.921284] intel_dpt_destroy+0x29/0x60 [i915]
> [ 374.921377] intel_user_framebuffer_destroy+0x48/0x50 [i915]
> [ 374.921469] drm_fb_release+0x108/0x1c0
> [ 374.921472] ? find_held_lock+0x2b/0x80
> [ 374.921480] drm_file_free.part.0+0x1a4/0x260
> [ 374.921485] drm_release_noglobal+0x1c/0xa0
> [ 374.921487] __fput+0xa3/0x260
> [ 374.921491] task_work_run+0x59/0xa0
> [ 374.921495] do_exit+0x382/0xc00
> [ 374.921500] do_group_exit+0x33/0xb0
> [ 374.921503] get_signal+0x15e/0xe00
> [ 374.921510] arch_do_signal_or_restart+0xf0/0x7f0
> [ 374.921519] exit_to_user_mode_prepare+0x148/0x1d0
> [ 374.921522] syscall_exit_to_user_mode+0x19/0x50
> [ 374.921525] do_syscall_64+0x48/0xc0
> [ 374.921528] entry_SYSCALL_64_after_hwframe+0x44/0xae
> [ 374.921531] RIP: 0033:0x7f0328fde50b
> [ 374.921532] Code: Unable to access opcode bytes at RIP 0x7f0328fde4e1.
> [ 374.921533] RSP: 002b:00007ffec4a3f278 EFLAGS: 00000246
> [ 374.921535] RAX: 0000000000000000 RBX: 00007ffec4a3f2bc RCX: 00007f0328fde50b
> [ 374.921536] RDX: 00007ffec4a3f2bc RSI: 00000000c00464af RDI: 0000000000000005
> [ 374.921538] RBP: 00000000c00464af R08: 0000000000000000 R09: 0000000000000000
> [ 374.921539] R10: fffffffffffffdea R11: 0000000000000246 R12: 00007ffec4a3f360
> [ 374.921540] R13: 0000000000000005 R14: 00007ffec4a3f400 R15: 0000000000000000
> [ 374.921547] </TASK>
> [ 374.921548] irq event stamp: 366515
> [ 374.921549] hardirqs last enabled at (366521): [<ffffffff8113a437>] __up_console_sem+0x67/0x70
> [ 374.921552] hardirqs last disabled at (366526): [<ffffffff8113a41c>] __up_console_sem+0x4c/0x70
> [ 374.921555] softirqs last enabled at (365380): [<ffffffff81a8c945>] unix_release_sock+0xf5/0x4f0
> [ 374.921556] softirqs last disabled at (365378): [<ffffffff81a8c91e>] unix_release_sock+0xce/0x4f0
> [ 374.921558] ---[ end trace 0000000000000000 ]---
The bug on vm_close is a separate bug, and would probably best be fixed in a separate patch.
Could I get a r-b on this? It should fix some issues, even if the unbind there is a separate bug.
~Maarten
More information about the dri-devel
mailing list