[Intel-gfx] [PATCH 2/4] drm/i915: Only mark the execobject as pinned on success

Joonas Lahtinen joonas.lahtinen at linux.intel.com
Mon Jul 24 08:57:41 UTC 2017


On pe, 2017-07-21 at 15:50 +0100, Chris Wilson wrote:
> If we fail to acquire a fence (for old school fenced GPU access) then we
> unwind the vma reservation, including its pin. However, we were making
> the execobject as holding the pin before erring out, leading to a double
> unpin:
> 
> [ 3193.991802] kernel BUG at drivers/gpu/drm/i915/i915_vma.h:287!
> [ 3193.998131] invalid opcode: 0000 [#1] PREEMPT SMP
> [ 3194.002816] Modules linked in: snd_hda_intel i915 vgem snd_hda_codec_analog snd_hda_codec_generic coretemp snd_hda_codec snd_hwdep snd_hda_core snd_pcm lpc_ich mei_me e1000e mei prime_numbers ptp pps_core [last unloaded: i915]
> [ 3194.022841] CPU: 0 PID: 8123 Comm: kms_flip Tainted: G     U          4.13.0-rc1-CI-CI_DRM_471+ #1
> [ 3194.031765] Hardware name: Dell Inc. OptiPlex 755                 /0PU052, BIOS A04 11/05/2007
> [ 3194.040343] task: ffff8800785d4c40 task.stack: ffffc90001768000
> [ 3194.046339] RIP: 0010:eb_release_vmas.isra.6+0x119/0x180 [i915]
> [ 3194.052234] RSP: 0018:ffffc9000176ba80 EFLAGS: 00010246
> [ 3194.057439] RAX: 00000000000003c0 RBX: ffff8800710fc2d8 RCX: ffff8800588e4f48
> [ 3194.064546] RDX: ffffffff1fffffff RSI: 00000000ffffffff RDI: ffff8800588e00d0
> [ 3194.071654] RBP: ffffc9000176bab0 R08: 0000000000000000 R09: 0000000000000000
> [ 3194.078761] R10: 0000000000000040 R11: 0000000000000001 R12: ffff880060822f00
> [ 3194.085867] R13: 0000000000000310 R14: 00000000000003b8 R15: ffffc9000176bbb0
> [ 3194.092975] FS:  00007fd2b94aba40(0000) GS:ffff88007d200000(0000) knlGS:0000000000000000
> [ 3194.101033] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 3194.106754] CR2: 00007ffbec3ff000 CR3: 0000000074e67000 CR4: 00000000000006f0
> [ 3194.113861] Call Trace:
> [ 3194.116321]  eb_relocate_slow+0x67/0x4e0 [i915]
> [ 3194.120861]  i915_gem_do_execbuffer+0x429/0x1260 [i915]
> [ 3194.126070]  ? lock_acquire+0xb5/0x210
> [ 3194.129803]  ? __might_fault+0x39/0x90
> [ 3194.133563]  i915_gem_execbuffer2+0x9b/0x1b0 [i915]
> [ 3194.138447]  ? i915_gem_execbuffer+0x2b0/0x2b0 [i915]
> [ 3194.143478]  drm_ioctl_kernel+0x64/0xb0
> [ 3194.147298]  drm_ioctl+0x2cd/0x390
> [ 3194.150710]  ? i915_gem_execbuffer+0x2b0/0x2b0 [i915]
> [ 3194.155741]  ? finish_task_switch+0xa5/0x210
> [ 3194.159993]  ? finish_task_switch+0x6a/0x210
> [ 3194.164247]  do_vfs_ioctl+0x90/0x670
> [ 3194.167806]  ? entry_SYSCALL_64_fastpath+0x5/0xb1
> [ 3194.172492]  ? __this_cpu_preempt_check+0x13/0x20
> [ 3194.177176]  ? trace_hardirqs_on_caller+0xe7/0x1c0
> [ 3194.181946]  SyS_ioctl+0x3c/0x70
> [ 3194.185159]  entry_SYSCALL_64_fastpath+0x1c/0xb1
> [ 3194.189756] RIP: 0033:0x7fd2b76a8587
> [ 3194.193314] RSP: 002b:00007fff074845b8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [ 3194.200855] RAX: ffffffffffffffda RBX: ffffffff8146da43 RCX: 00007fd2b76a8587
> [ 3194.207962] RDX: 00007fff074846e0 RSI: 0000000040406469 RDI: 0000000000000003
> [ 3194.215068] RBP: ffffc9000176bf88 R08: 0000000000000000 R09: 0000000000000003
> [ 3194.222175] R10: 00007fd2b796bb58 R11: 0000000000000246 R12: 00007fff07484880
> [ 3194.229280] R13: 0000000000000003 R14: 0000000040406469 R15: 0000000000000000
> [ 3194.236386]  ? __this_cpu_preempt_check+0x13/0x20
> [ 3194.241070] Code: 24 b0 00 00 00 48 85 c9 0f 84 6c ff ff ff 8b 41 20 85 c0 7e 73 83 e8 01 89 41 20 41 8b 84 24 e8 00 00 00 a8 0f 0f 85 5f ff ff ff <0f> 0b 48 83 c4 08 5b 41 5c 41 5d 41 5e 41 5f 5d f3 c3 49 8b 84
> [ 3194.259943] RIP: eb_release_vmas.isra.6+0x119/0x180 [i915] RSP: ffffc9000176ba80
> [ 3194.268047] ---[ end trace 1d7348c6575d8800 ]---
> [ 3673.658819] softdog: Initiating panic
> [ 3673.662471] Kernel panic - not syncing: Software Watchdog Timer expired
> [ 3673.669066] Kernel Offset: disabled
> [ 3673.672541] Rebooting in 1 seconds..
> 
> Reported-by: Tomi Sarvela <tomi.p.sarvela at intel.com>
> Fixes: 2889caa92321 ("drm/i915: Eliminate lots of iterations over the execobjects array")
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>

Reviewed-by: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>

Regards, Joonas
-- 
Joonas Lahtinen
Open Source Technology Center
Intel Corporation


More information about the Intel-gfx mailing list