All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: Remove assertion of active_rings must be non-empty if active_requests
@ 2018-05-04 10:11 Chris Wilson
  2018-05-04 10:22 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Chris Wilson @ 2018-05-04 10:11 UTC (permalink / raw)
  To: intel-gfx

"An outstanding request must still be on an active ring somewhere" is
only true if we haven't just been interrupted by the shrinker in the
middle of allocating the request itself. (At the start of
i915_request_alloc() we pin the context and prepare the GT for activity,
marking it as active, and then try to allocate the request. If this
allocation invokes the shrinker, we try to reclaim some space by calling
i915_retire_requests() which may then be confused by the pre-reservation
of active_requests.)

<3>[  125.472695] i915_retire_requests:1429 GEM_BUG_ON(list_empty(&i915->gt.active_rings))
<2>[  125.472792] kernel BUG at drivers/gpu/drm/i915/i915_request.c:1429!
<4>[  125.472822] invalid opcode: 0000 [#1] PREEMPT SMP KASAN PTI
<4>[  125.498764] Modules linked in: snd_hda_codec_hdmi x86_pkg_temp_thermal intel_powerclamp coretemp crct10dif_pclmul crc32_pclmul ghash_clmulni_intel btusb btrtl btbcm btintel cdc_ether snd_hda_codec_realtek bluetooth i915 snd_hda_codec_generic usbnet r8152 mii ecdh_generic lpc_ich mei_me snd_hda_intel snd_hda_codec mei snd_hwdep snd_hda_core snd_pcm prime_numbers
<4>[  125.498923] CPU: 0 PID: 1115 Comm: gem_exec_create Tainted: G     U            4.17.0-rc3-gc49cbe0d1eb8-kasan_32+ #1
<4>[  125.498955] Hardware name: GOOGLE Peppy/Peppy, BIOS MrChromebox 02/04/2018
<4>[  125.499074] RIP: 0010:i915_retire_requests+0x3f2/0x590 [i915]
<4>[  125.499095] RSP: 0018:ffff88004e5dec40 EFLAGS: 00010282
<4>[  125.499117] RAX: 0000000000000010 RBX: ffff8800458f0000 RCX: 0000000000000000
<4>[  125.499140] RDX: dffffc0000000000 RSI: 0000000000000008 RDI: ffff880060c2f6f0
<4>[  125.499164] RBP: ffff88004e5dee30 R08: ffffed000c185ee6 R09: ffffed000c185ee6
<4>[  125.499187] R10: 0000000000000001 R11: ffffed000c185ee5 R12: ffff8800553da160
<4>[  125.499210] R13: dffffc0000000000 R14: 0000000000000000 R15: ffff8800458faed0
<4>[  125.499235] FS:  00007fe18f052980(0000) GS:ffff880065400000(0000) knlGS:0000000000000000
<4>[  125.499262] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
<4>[  125.499282] CR2: 00007f01df11efb8 CR3: 00000000518d4001 CR4: 00000000000606f0
<4>[  125.499304] Call Trace:
<4>[  125.499417]  i915_gem_shrink+0x576/0xb50 [i915]
<4>[  125.499532]  ? i915_gem_shrinker_count+0x2f0/0x2f0 [i915]
<4>[  125.499561]  ? trace_hardirqs_on_thunk+0x1a/0x1c
<4>[  125.499671]  ? i915_gem_shrinker_count+0x1d6/0x2f0 [i915]
<4>[  125.499782]  ? i915_gem_shrinker_scan+0xc4/0x320 [i915]
<4>[  125.499889]  i915_gem_shrinker_scan+0xc4/0x320 [i915]
<4>[  125.499997]  ? i915_gem_shrinker_vmap+0x3a0/0x3a0 [i915]
<4>[  125.500021]  ? do_raw_spin_unlock+0x4f/0x240
<4>[  125.500042]  ? _raw_spin_unlock+0x29/0x40
<4>[  125.500149]  ? i915_gem_shrinker_count+0x1d6/0x2f0 [i915]
<4>[  125.500177]  shrink_slab.part.18+0x23e/0x8f0
<4>[  125.500202]  ? unregister_shrinker+0x1f0/0x1f0
<4>[  125.500226]  ? mem_cgroup_iter+0x379/0xcc0
<4>[  125.500249]  shrink_node+0xa7e/0x1180
<4>[  125.500276]  ? shrink_node_memcg+0x11f0/0x11f0
<4>[  125.500297]  ? __delayacct_freepages_start+0x38/0x80
<4>[  125.500319]  ? __is_insn_slot_addr+0xe3/0x1a0
<4>[  125.500342]  ? recalibrate_cpu_khz+0x10/0x10
<4>[  125.500361]  ? ktime_get+0xb2/0x140
<4>[  125.500382]  do_try_to_free_pages+0x2d3/0xe40
<4>[  125.500407]  ? allow_direct_reclaim.part.23+0x1e0/0x1e0
<4>[  125.500429]  ? shrink_node+0x1180/0x1180
<4>[  125.500450]  ? __read_once_size_nocheck.constprop.4+0x10/0x10
<4>[  125.500476]  try_to_free_pages+0x1af/0x560
<4>[  125.500497]  ? do_try_to_free_pages+0xe40/0xe40
<4>[  125.500525]  __alloc_pages_nodemask+0xadc/0x2130
<4>[  125.500553]  ? gfp_pfmemalloc_allowed+0x150/0x150
<4>[  125.500654]  ? i915_gem_do_execbuffer+0x219d/0x32e0 [i915]
<4>[  125.500678]  ? debug_check_no_locks_freed+0x2a0/0x2a0
<4>[  125.500701]  ? __debug_object_init+0x322/0xd90
<4>[  125.500722]  ? debug_check_no_locks_freed+0x2a0/0x2a0
<4>[  125.500827]  ? i915_gem_do_execbuffer+0xdc2/0x32e0 [i915]
<4>[  125.500942]  ? i915_request_alloc+0x5b5/0x13f0 [i915]
<4>[  125.500964]  ? page_frag_free+0x170/0x170
<4>[  125.500984]  ? debug_check_no_locks_freed+0x2a0/0x2a0
<4>[  125.501008]  new_slab+0x21d/0x5c0
<4>[  125.501029]  ___slab_alloc.constprop.35+0x322/0x3e0
<4>[  125.501052]  ? reservation_object_reserve_shared+0x10b/0x250
<4>[  125.501074]  ? __ww_mutex_lock.constprop.3+0x1104/0x2cf0
<4>[  125.501097]  ? _raw_spin_unlock_irqrestore+0x39/0x60
<4>[  125.501120]  ? fs_reclaim_acquire+0x10/0x10
<4>[  125.501138]  ? lock_acquire+0x138/0x3c0
<4>[  125.501156]  ? lock_acquire+0x3c0/0x3c0
<4>[  125.501176]  ? reservation_object_reserve_shared+0x10b/0x250
<4>[  125.501198]  ? __slab_alloc.isra.27.constprop.34+0x3d/0x70
<4>[  125.501219]  __slab_alloc.isra.27.constprop.34+0x3d/0x70
<4>[  125.501243]  ? reservation_object_reserve_shared+0x10b/0x250
<4>[  125.501265]  __kmalloc_track_caller+0x313/0x350
<4>[  125.501287]  krealloc+0x62/0xb0
<4>[  125.501305]  reservation_object_reserve_shared+0x10b/0x250
<4>[  125.501411]  i915_gem_do_execbuffer+0x2040/0x32e0 [i915]
<4>[  125.501522]  ? eb_relocate_slow+0xad0/0xad0 [i915]
<4>[  125.501544]  ? debug_check_no_locks_freed+0x2a0/0x2a0
<4>[  125.501646]  ? i915_gem_execbuffer2_ioctl+0x108/0x770 [i915]
<4>[  125.501755]  ? i915_gem_execbuffer2_ioctl+0x108/0x770 [i915]
<4>[  125.501779]  ? drm_dev_get+0x20/0x20
<4>[  125.501803]  ? __might_fault+0xea/0x1a0
<4>[  125.501902]  ? i915_gem_execbuffer2_ioctl+0x108/0x770 [i915]
<4>[  125.502012]  ? i915_gem_execbuffer_ioctl+0xb90/0xb90 [i915]
<4>[  125.502116]  ? i915_gem_execbuffer_ioctl+0xb90/0xb90 [i915]
<4>[  125.502218]  i915_gem_execbuffer2_ioctl+0x3c5/0x770 [i915]
<4>[  125.502243]  ? drm_dev_enter+0xe0/0xe0
<4>[  125.502260]  ? lock_acquire+0x138/0x3c0
<4>[  125.502362]  ? i915_gem_execbuffer_ioctl+0xb90/0xb90 [i915]
<4>[  125.502470]  ? i915_gem_object_create.part.28+0x570/0x570 [i915]
<4>[  125.502575]  ? i915_gem_execbuffer_ioctl+0xb90/0xb90 [i915]
<4>[  125.502680]  ? i915_gem_execbuffer_ioctl+0xb90/0xb90 [i915]
<4>[  125.502702]  drm_ioctl_kernel+0x151/0x200
<4>[  125.502721]  ? drm_ioctl_permit+0x2a0/0x2a0
<4>[  125.502746]  drm_ioctl+0x63a/0x920
<4>[  125.502844]  ? i915_gem_execbuffer_ioctl+0xb90/0xb90 [i915]
<4>[  125.502868]  ? drm_getstats+0x20/0x20
<4>[  125.502886]  ? trace_hardirqs_on_thunk+0x1a/0x1c
<4>[  125.502919]  do_vfs_ioctl+0x173/0xe90
<4>[  125.502936]  ? trace_hardirqs_on_thunk+0x1a/0x1c
<4>[  125.502957]  ? ioctl_preallocate+0x170/0x170
<4>[  125.502978]  ? trace_hardirqs_on_thunk+0x1a/0x1c
<4>[  125.503002]  ? retint_kernel+0x2d/0x2d
<4>[  125.503024]  ksys_ioctl+0x35/0x60
<4>[  125.503043]  __x64_sys_ioctl+0x6a/0xb0
<4>[  125.503061]  do_syscall_64+0x97/0x400
<4>[  125.503081]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
<4>[  125.503101] RIP: 0033:0x7fe18e4f65d7
<4>[  125.503116] RSP: 002b:00007ffe2ffc06a8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
<4>[  125.503145] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fe18e4f65d7
<4>[  125.503168] RDX: 00007ffe2ffc07f0 RSI: 0000000040406469 RDI: 0000000000000003
<4>[  125.503191] RBP: 00007ffe2ffc07f0 R08: 0000000000000004 R09: 00007ffe2ffcf080
<4>[  125.503215] R10: 000000000002c7de R11: 0000000000000246 R12: 0000000040406469
<4>[  125.503238] R13: 0000000000000003 R14: 0000000000000000 R15: 0000000000000000
<4>[  125.503268] Code: e8 18 a0 c9 da 48 8b 35 25 3a 47 00 49 c7 c0 a0 3b 88 c0 b9 95 05 00 00 48 c7 c2 e0 49 88 c0 48 c7 c7 8d 3b 5d c0 e8 ee 7e db da <0f> 0b 48 89 ef e8 a4 26 f5 da e9 51 fe ff ff e8 8a 26 f5 da e9
<1>[  125.503548] RIP: i915_retire_requests+0x3f2/0x590 [i915] RSP: ffff88004e5dec40

Fixes: 643b450a594e ("drm/i915: Only track live rings for retiring")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_request.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
index d68739b94dac..e4cf76ec14a6 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -1426,9 +1426,6 @@ void i915_retire_requests(struct drm_i915_private *i915)
 	if (!i915->gt.active_requests)
 		return;
 
-	/* An outstanding request must be on a still active ring somewhere */
-	GEM_BUG_ON(list_empty(&i915->gt.active_rings));
-
 	list_for_each_entry_safe(ring, tmp, &i915->gt.active_rings, active_link)
 		ring_retire_requests(ring);
 }
-- 
2.17.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Remove assertion of active_rings must be non-empty if active_requests
  2018-05-04 10:11 [PATCH] drm/i915: Remove assertion of active_rings must be non-empty if active_requests Chris Wilson
@ 2018-05-04 10:22 ` Patchwork
  2018-05-04 10:24 ` [PATCH] " Chris Wilson
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2018-05-04 10:22 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Remove assertion of active_rings must be non-empty if active_requests
URL   : https://patchwork.freedesktop.org/series/42674/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
3b85f7a21062 drm/i915: Remove assertion of active_rings must be non-empty if active_requests
-:16: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description (prefer a maximum 75 chars per line)
#16: 
<3>[  125.472695] i915_retire_requests:1429 GEM_BUG_ON(list_empty(&i915->gt.active_rings))

total: 0 errors, 1 warnings, 0 checks, 9 lines checked

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] drm/i915: Remove assertion of active_rings must be non-empty if active_requests
  2018-05-04 10:11 [PATCH] drm/i915: Remove assertion of active_rings must be non-empty if active_requests Chris Wilson
  2018-05-04 10:22 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
@ 2018-05-04 10:24 ` Chris Wilson
  2018-05-04 10:37 ` Tvrtko Ursulin
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Chris Wilson @ 2018-05-04 10:24 UTC (permalink / raw)
  To: intel-gfx

Quoting Chris Wilson (2018-05-04 11:11:47)
> "An outstanding request must still be on an active ring somewhere" is
> only true if we haven't just been interrupted by the shrinker in the
> middle of allocating the request itself. (At the start of
> i915_request_alloc() we pin the context and prepare the GT for activity,
> marking it as active, and then try to allocate the request. If this
> allocation invokes the shrinker, we try to reclaim some space by calling
> i915_retire_requests() which may then be confused by the pre-reservation
> of active_requests.)

Note that the oops here is actually of any allocation after
i915_request_alloc and before i915_request_add. To close that coarse
window, we could move the list_add(rq, ring->request_list) to
i915_request_alloc, but we still have the issue of the allocations inside
i915_request_alloc itself.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] drm/i915: Remove assertion of active_rings must be non-empty if active_requests
  2018-05-04 10:11 [PATCH] drm/i915: Remove assertion of active_rings must be non-empty if active_requests Chris Wilson
  2018-05-04 10:22 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
  2018-05-04 10:24 ` [PATCH] " Chris Wilson
@ 2018-05-04 10:37 ` Tvrtko Ursulin
  2018-05-04 12:06   ` Chris Wilson
  2018-05-04 10:37 ` ✓ Fi.CI.BAT: success for " Patchwork
  2018-05-04 11:32 ` ✗ Fi.CI.IGT: failure " Patchwork
  4 siblings, 1 reply; 7+ messages in thread
From: Tvrtko Ursulin @ 2018-05-04 10:37 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx


On 04/05/2018 11:11, Chris Wilson wrote:
> "An outstanding request must still be on an active ring somewhere" is
> only true if we haven't just been interrupted by the shrinker in the
> middle of allocating the request itself. (At the start of
> i915_request_alloc() we pin the context and prepare the GT for activity,
> marking it as active, and then try to allocate the request. If this
> allocation invokes the shrinker, we try to reclaim some space by calling
> i915_retire_requests() which may then be confused by the pre-reservation
> of active_requests.)
> 
> <3>[  125.472695] i915_retire_requests:1429 GEM_BUG_ON(list_empty(&i915->gt.active_rings))
> <2>[  125.472792] kernel BUG at drivers/gpu/drm/i915/i915_request.c:1429!
> <4>[  125.472822] invalid opcode: 0000 [#1] PREEMPT SMP KASAN PTI
> <4>[  125.498764] Modules linked in: snd_hda_codec_hdmi x86_pkg_temp_thermal intel_powerclamp coretemp crct10dif_pclmul crc32_pclmul ghash_clmulni_intel btusb btrtl btbcm btintel cdc_ether snd_hda_codec_realtek bluetooth i915 snd_hda_codec_generic usbnet r8152 mii ecdh_generic lpc_ich mei_me snd_hda_intel snd_hda_codec mei snd_hwdep snd_hda_core snd_pcm prime_numbers
> <4>[  125.498923] CPU: 0 PID: 1115 Comm: gem_exec_create Tainted: G     U            4.17.0-rc3-gc49cbe0d1eb8-kasan_32+ #1
> <4>[  125.498955] Hardware name: GOOGLE Peppy/Peppy, BIOS MrChromebox 02/04/2018
> <4>[  125.499074] RIP: 0010:i915_retire_requests+0x3f2/0x590 [i915]
> <4>[  125.499095] RSP: 0018:ffff88004e5dec40 EFLAGS: 00010282
> <4>[  125.499117] RAX: 0000000000000010 RBX: ffff8800458f0000 RCX: 0000000000000000
> <4>[  125.499140] RDX: dffffc0000000000 RSI: 0000000000000008 RDI: ffff880060c2f6f0
> <4>[  125.499164] RBP: ffff88004e5dee30 R08: ffffed000c185ee6 R09: ffffed000c185ee6
> <4>[  125.499187] R10: 0000000000000001 R11: ffffed000c185ee5 R12: ffff8800553da160
> <4>[  125.499210] R13: dffffc0000000000 R14: 0000000000000000 R15: ffff8800458faed0
> <4>[  125.499235] FS:  00007fe18f052980(0000) GS:ffff880065400000(0000) knlGS:0000000000000000
> <4>[  125.499262] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> <4>[  125.499282] CR2: 00007f01df11efb8 CR3: 00000000518d4001 CR4: 00000000000606f0
> <4>[  125.499304] Call Trace:
> <4>[  125.499417]  i915_gem_shrink+0x576/0xb50 [i915]
> <4>[  125.499532]  ? i915_gem_shrinker_count+0x2f0/0x2f0 [i915]
> <4>[  125.499561]  ? trace_hardirqs_on_thunk+0x1a/0x1c
> <4>[  125.499671]  ? i915_gem_shrinker_count+0x1d6/0x2f0 [i915]
> <4>[  125.499782]  ? i915_gem_shrinker_scan+0xc4/0x320 [i915]
> <4>[  125.499889]  i915_gem_shrinker_scan+0xc4/0x320 [i915]
> <4>[  125.499997]  ? i915_gem_shrinker_vmap+0x3a0/0x3a0 [i915]
> <4>[  125.500021]  ? do_raw_spin_unlock+0x4f/0x240
> <4>[  125.500042]  ? _raw_spin_unlock+0x29/0x40
> <4>[  125.500149]  ? i915_gem_shrinker_count+0x1d6/0x2f0 [i915]
> <4>[  125.500177]  shrink_slab.part.18+0x23e/0x8f0
> <4>[  125.500202]  ? unregister_shrinker+0x1f0/0x1f0
> <4>[  125.500226]  ? mem_cgroup_iter+0x379/0xcc0
> <4>[  125.500249]  shrink_node+0xa7e/0x1180
> <4>[  125.500276]  ? shrink_node_memcg+0x11f0/0x11f0
> <4>[  125.500297]  ? __delayacct_freepages_start+0x38/0x80
> <4>[  125.500319]  ? __is_insn_slot_addr+0xe3/0x1a0
> <4>[  125.500342]  ? recalibrate_cpu_khz+0x10/0x10
> <4>[  125.500361]  ? ktime_get+0xb2/0x140
> <4>[  125.500382]  do_try_to_free_pages+0x2d3/0xe40
> <4>[  125.500407]  ? allow_direct_reclaim.part.23+0x1e0/0x1e0
> <4>[  125.500429]  ? shrink_node+0x1180/0x1180
> <4>[  125.500450]  ? __read_once_size_nocheck.constprop.4+0x10/0x10
> <4>[  125.500476]  try_to_free_pages+0x1af/0x560
> <4>[  125.500497]  ? do_try_to_free_pages+0xe40/0xe40
> <4>[  125.500525]  __alloc_pages_nodemask+0xadc/0x2130
> <4>[  125.500553]  ? gfp_pfmemalloc_allowed+0x150/0x150
> <4>[  125.500654]  ? i915_gem_do_execbuffer+0x219d/0x32e0 [i915]
> <4>[  125.500678]  ? debug_check_no_locks_freed+0x2a0/0x2a0
> <4>[  125.500701]  ? __debug_object_init+0x322/0xd90
> <4>[  125.500722]  ? debug_check_no_locks_freed+0x2a0/0x2a0
> <4>[  125.500827]  ? i915_gem_do_execbuffer+0xdc2/0x32e0 [i915]
> <4>[  125.500942]  ? i915_request_alloc+0x5b5/0x13f0 [i915]
> <4>[  125.500964]  ? page_frag_free+0x170/0x170
> <4>[  125.500984]  ? debug_check_no_locks_freed+0x2a0/0x2a0
> <4>[  125.501008]  new_slab+0x21d/0x5c0
> <4>[  125.501029]  ___slab_alloc.constprop.35+0x322/0x3e0
> <4>[  125.501052]  ? reservation_object_reserve_shared+0x10b/0x250
> <4>[  125.501074]  ? __ww_mutex_lock.constprop.3+0x1104/0x2cf0
> <4>[  125.501097]  ? _raw_spin_unlock_irqrestore+0x39/0x60
> <4>[  125.501120]  ? fs_reclaim_acquire+0x10/0x10
> <4>[  125.501138]  ? lock_acquire+0x138/0x3c0
> <4>[  125.501156]  ? lock_acquire+0x3c0/0x3c0
> <4>[  125.501176]  ? reservation_object_reserve_shared+0x10b/0x250
> <4>[  125.501198]  ? __slab_alloc.isra.27.constprop.34+0x3d/0x70
> <4>[  125.501219]  __slab_alloc.isra.27.constprop.34+0x3d/0x70
> <4>[  125.501243]  ? reservation_object_reserve_shared+0x10b/0x250
> <4>[  125.501265]  __kmalloc_track_caller+0x313/0x350
> <4>[  125.501287]  krealloc+0x62/0xb0
> <4>[  125.501305]  reservation_object_reserve_shared+0x10b/0x250
> <4>[  125.501411]  i915_gem_do_execbuffer+0x2040/0x32e0 [i915]
> <4>[  125.501522]  ? eb_relocate_slow+0xad0/0xad0 [i915]
> <4>[  125.501544]  ? debug_check_no_locks_freed+0x2a0/0x2a0
> <4>[  125.501646]  ? i915_gem_execbuffer2_ioctl+0x108/0x770 [i915]
> <4>[  125.501755]  ? i915_gem_execbuffer2_ioctl+0x108/0x770 [i915]
> <4>[  125.501779]  ? drm_dev_get+0x20/0x20
> <4>[  125.501803]  ? __might_fault+0xea/0x1a0
> <4>[  125.501902]  ? i915_gem_execbuffer2_ioctl+0x108/0x770 [i915]
> <4>[  125.502012]  ? i915_gem_execbuffer_ioctl+0xb90/0xb90 [i915]
> <4>[  125.502116]  ? i915_gem_execbuffer_ioctl+0xb90/0xb90 [i915]
> <4>[  125.502218]  i915_gem_execbuffer2_ioctl+0x3c5/0x770 [i915]
> <4>[  125.502243]  ? drm_dev_enter+0xe0/0xe0
> <4>[  125.502260]  ? lock_acquire+0x138/0x3c0
> <4>[  125.502362]  ? i915_gem_execbuffer_ioctl+0xb90/0xb90 [i915]
> <4>[  125.502470]  ? i915_gem_object_create.part.28+0x570/0x570 [i915]
> <4>[  125.502575]  ? i915_gem_execbuffer_ioctl+0xb90/0xb90 [i915]
> <4>[  125.502680]  ? i915_gem_execbuffer_ioctl+0xb90/0xb90 [i915]
> <4>[  125.502702]  drm_ioctl_kernel+0x151/0x200
> <4>[  125.502721]  ? drm_ioctl_permit+0x2a0/0x2a0
> <4>[  125.502746]  drm_ioctl+0x63a/0x920
> <4>[  125.502844]  ? i915_gem_execbuffer_ioctl+0xb90/0xb90 [i915]
> <4>[  125.502868]  ? drm_getstats+0x20/0x20
> <4>[  125.502886]  ? trace_hardirqs_on_thunk+0x1a/0x1c
> <4>[  125.502919]  do_vfs_ioctl+0x173/0xe90
> <4>[  125.502936]  ? trace_hardirqs_on_thunk+0x1a/0x1c
> <4>[  125.502957]  ? ioctl_preallocate+0x170/0x170
> <4>[  125.502978]  ? trace_hardirqs_on_thunk+0x1a/0x1c
> <4>[  125.503002]  ? retint_kernel+0x2d/0x2d
> <4>[  125.503024]  ksys_ioctl+0x35/0x60
> <4>[  125.503043]  __x64_sys_ioctl+0x6a/0xb0
> <4>[  125.503061]  do_syscall_64+0x97/0x400
> <4>[  125.503081]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
> <4>[  125.503101] RIP: 0033:0x7fe18e4f65d7
> <4>[  125.503116] RSP: 002b:00007ffe2ffc06a8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> <4>[  125.503145] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fe18e4f65d7
> <4>[  125.503168] RDX: 00007ffe2ffc07f0 RSI: 0000000040406469 RDI: 0000000000000003
> <4>[  125.503191] RBP: 00007ffe2ffc07f0 R08: 0000000000000004 R09: 00007ffe2ffcf080
> <4>[  125.503215] R10: 000000000002c7de R11: 0000000000000246 R12: 0000000040406469
> <4>[  125.503238] R13: 0000000000000003 R14: 0000000000000000 R15: 0000000000000000
> <4>[  125.503268] Code: e8 18 a0 c9 da 48 8b 35 25 3a 47 00 49 c7 c0 a0 3b 88 c0 b9 95 05 00 00 48 c7 c2 e0 49 88 c0 48 c7 c7 8d 3b 5d c0 e8 ee 7e db da <0f> 0b 48 89 ef e8 a4 26 f5 da e9 51 fe ff ff e8 8a 26 f5 da e9
> <1>[  125.503548] RIP: i915_retire_requests+0x3f2/0x590 [i915] RSP: ffff88004e5dec40
> 
> Fixes: 643b450a594e ("drm/i915: Only track live rings for retiring")
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> ---
>   drivers/gpu/drm/i915/i915_request.c | 3 ---
>   1 file changed, 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
> index d68739b94dac..e4cf76ec14a6 100644
> --- a/drivers/gpu/drm/i915/i915_request.c
> +++ b/drivers/gpu/drm/i915/i915_request.c
> @@ -1426,9 +1426,6 @@ void i915_retire_requests(struct drm_i915_private *i915)
>   	if (!i915->gt.active_requests)
>   		return;
>   
> -	/* An outstanding request must be on a still active ring somewhere */
> -	GEM_BUG_ON(list_empty(&i915->gt.active_rings));
> -
>   	list_for_each_entry_safe(ring, tmp, &i915->gt.active_rings, active_link)
>   		ring_retire_requests(ring);
>   }
> 

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Regards,

Tvrtko
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* ✓ Fi.CI.BAT: success for drm/i915: Remove assertion of active_rings must be non-empty if active_requests
  2018-05-04 10:11 [PATCH] drm/i915: Remove assertion of active_rings must be non-empty if active_requests Chris Wilson
                   ` (2 preceding siblings ...)
  2018-05-04 10:37 ` Tvrtko Ursulin
@ 2018-05-04 10:37 ` Patchwork
  2018-05-04 11:32 ` ✗ Fi.CI.IGT: failure " Patchwork
  4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2018-05-04 10:37 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Remove assertion of active_rings must be non-empty if active_requests
URL   : https://patchwork.freedesktop.org/series/42674/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4143 -> Patchwork_8905 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/42674/revisions/1/mbox/

== Known issues ==

  Here are the changes found in Patchwork_8905 that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@gem_mmap_gtt@basic-small-bo-tiledx:
      fi-gdg-551:         PASS -> FAIL (fdo#102575)

    igt@kms_flip@basic-flip-vs-wf_vblank:
      fi-cnl-psr:         PASS -> FAIL (fdo#100368)
      fi-bxt-j4205:       PASS -> FAIL (fdo#105312)

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
      fi-ivb-3520m:       PASS -> DMESG-WARN (fdo#106084)

    
    ==== Possible fixes ====

    igt@debugfs_test@read_all_entries:
      fi-snb-2520m:       INCOMPLETE (fdo#103713) -> PASS

    igt@drv_module_reload@basic-reload-inject:
      fi-bsw-n3050:       DMESG-FAIL (fdo#106373) -> PASS

    igt@gem_exec_suspend@basic-s3:
      fi-ivb-3520m:       DMESG-WARN (fdo#106084) -> PASS

    igt@prime_vgem@basic-fence-flip:
      fi-ilk-650:         FAIL (fdo#104008) -> PASS

    
  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102575 https://bugs.freedesktop.org/show_bug.cgi?id=102575
  fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
  fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
  fdo#105312 https://bugs.freedesktop.org/show_bug.cgi?id=105312
  fdo#106084 https://bugs.freedesktop.org/show_bug.cgi?id=106084
  fdo#106373 https://bugs.freedesktop.org/show_bug.cgi?id=106373


== Participating hosts (40 -> 36) ==

  Missing    (4): fi-ctg-p8600 fi-ilk-m540 fi-skl-6700hq fi-pnv-d510 


== Build changes ==

    * Linux: CI_DRM_4143 -> Patchwork_8905

  CI_DRM_4143: 7f69caefbfdc5a05ce34a1431b411324d391d7ff @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4461: f772d9a910130b3aec8efa4f09ed723618fae656 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8905: 3b85f7a2106264566e915a3cad13c8f69d985f38 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4461: 55207ea5154dfaa6d2c128124c50e3be4f9b6440 @ git://anongit.freedesktop.org/piglit


== Linux commits ==

3b85f7a21062 drm/i915: Remove assertion of active_rings must be non-empty if active_requests

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8905/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* ✗ Fi.CI.IGT: failure for drm/i915: Remove assertion of active_rings must be non-empty if active_requests
  2018-05-04 10:11 [PATCH] drm/i915: Remove assertion of active_rings must be non-empty if active_requests Chris Wilson
                   ` (3 preceding siblings ...)
  2018-05-04 10:37 ` ✓ Fi.CI.BAT: success for " Patchwork
@ 2018-05-04 11:32 ` Patchwork
  4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2018-05-04 11:32 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Remove assertion of active_rings must be non-empty if active_requests
URL   : https://patchwork.freedesktop.org/series/42674/
State : failure

== Summary ==

= CI Bug Log - changes from CI_DRM_4143_full -> Patchwork_8905_full =

== Summary - FAILURE ==

  Serious unknown changes coming with Patchwork_8905_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_8905_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/42674/revisions/1/mbox/

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_8905_full:

  === IGT changes ===

    ==== Possible regressions ====

    igt@kms_plane_scaling@pipe-a-scaler-with-rotation:
      shard-glk:          PASS -> DMESG-WARN

    
    ==== Warnings ====

    igt@gem_mocs_settings@mocs-rc6-dirty-render:
      shard-kbl:          PASS -> SKIP +1

    igt@gem_mocs_settings@mocs-rc6-vebox:
      shard-kbl:          SKIP -> PASS +1

    
== Known issues ==

  Here are the changes found in Patchwork_8905_full that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@gem_ppgtt@blt-vs-render-ctxn:
      shard-kbl:          PASS -> INCOMPLETE (fdo#103665, fdo#106023)

    igt@kms_fence_pin_leak:
      shard-kbl:          PASS -> INCOMPLETE (fdo#103665)

    igt@kms_flip@2x-flip-vs-expired-vblank:
      shard-hsw:          PASS -> FAIL (fdo#102887)

    igt@kms_flip@plain-flip-fb-recreate-interruptible:
      shard-glk:          PASS -> FAIL (fdo#100368) +1

    
    ==== Possible fixes ====

    igt@kms_flip@2x-dpms-vs-vblank-race:
      shard-hsw:          FAIL (fdo#103060) -> PASS

    igt@kms_flip@flip-vs-wf_vblank-interruptible:
      shard-glk:          FAIL (fdo#100368) -> PASS

    igt@kms_flip@modeset-vs-vblank-race:
      shard-glk:          FAIL (fdo#103060) -> PASS

    igt@kms_flip@plain-flip-fb-recreate:
      shard-hsw:          FAIL (fdo#100368) -> PASS +1

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
      shard-glk:          INCOMPLETE (k.org#198133, fdo#103359) -> PASS

    igt@kms_rotation_crc@primary-rotation-90:
      shard-apl:          FAIL (fdo#103925) -> PASS

    igt@kms_vblank@pipe-c-accuracy-idle:
      shard-glk:          FAIL (fdo#102583) -> PASS

    igt@kms_vblank@pipe-c-ts-continuation-suspend:
      shard-kbl:          INCOMPLETE (fdo#103665) -> PASS

    igt@perf@polling:
      shard-hsw:          FAIL (fdo#102252) -> PASS

    
  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
  fdo#102583 https://bugs.freedesktop.org/show_bug.cgi?id=102583
  fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
  fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
  fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
  fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
  fdo#103925 https://bugs.freedesktop.org/show_bug.cgi?id=103925
  fdo#106023 https://bugs.freedesktop.org/show_bug.cgi?id=106023
  k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133


== Participating hosts (7 -> 7) ==

  No changes in participating hosts


== Build changes ==

    * Linux: CI_DRM_4143 -> Patchwork_8905

  CI_DRM_4143: 7f69caefbfdc5a05ce34a1431b411324d391d7ff @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4461: f772d9a910130b3aec8efa4f09ed723618fae656 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8905: 3b85f7a2106264566e915a3cad13c8f69d985f38 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4461: 55207ea5154dfaa6d2c128124c50e3be4f9b6440 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8905/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] drm/i915: Remove assertion of active_rings must be non-empty if active_requests
  2018-05-04 10:37 ` Tvrtko Ursulin
@ 2018-05-04 12:06   ` Chris Wilson
  0 siblings, 0 replies; 7+ messages in thread
From: Chris Wilson @ 2018-05-04 12:06 UTC (permalink / raw)
  To: Tvrtko Ursulin, intel-gfx

Quoting Tvrtko Ursulin (2018-05-04 11:37:25)
> 
> On 04/05/2018 11:11, Chris Wilson wrote:
> > "An outstanding request must still be on an active ring somewhere" is
> > only true if we haven't just been interrupted by the shrinker in the
> > middle of allocating the request itself. (At the start of
> > i915_request_alloc() we pin the context and prepare the GT for activity,
> > marking it as active, and then try to allocate the request. If this
> > allocation invokes the shrinker, we try to reclaim some space by calling
> > i915_retire_requests() which may then be confused by the pre-reservation
> > of active_requests.)
> > 
> > <3>[  125.472695] i915_retire_requests:1429 GEM_BUG_ON(list_empty(&i915->gt.active_rings))
> > <2>[  125.472792] kernel BUG at drivers/gpu/drm/i915/i915_request.c:1429!
> > <4>[  125.472822] invalid opcode: 0000 [#1] PREEMPT SMP KASAN PTI
> > <4>[  125.498764] Modules linked in: snd_hda_codec_hdmi x86_pkg_temp_thermal intel_powerclamp coretemp crct10dif_pclmul crc32_pclmul ghash_clmulni_intel btusb btrtl btbcm btintel cdc_ether snd_hda_codec_realtek bluetooth i915 snd_hda_codec_generic usbnet r8152 mii ecdh_generic lpc_ich mei_me snd_hda_intel snd_hda_codec mei snd_hwdep snd_hda_core snd_pcm prime_numbers
> > <4>[  125.498923] CPU: 0 PID: 1115 Comm: gem_exec_create Tainted: G     U            4.17.0-rc3-gc49cbe0d1eb8-kasan_32+ #1
> > <4>[  125.498955] Hardware name: GOOGLE Peppy/Peppy, BIOS MrChromebox 02/04/2018
> > <4>[  125.499074] RIP: 0010:i915_retire_requests+0x3f2/0x590 [i915]
> > <4>[  125.499095] RSP: 0018:ffff88004e5dec40 EFLAGS: 00010282
> > <4>[  125.499117] RAX: 0000000000000010 RBX: ffff8800458f0000 RCX: 0000000000000000
> > <4>[  125.499140] RDX: dffffc0000000000 RSI: 0000000000000008 RDI: ffff880060c2f6f0
> > <4>[  125.499164] RBP: ffff88004e5dee30 R08: ffffed000c185ee6 R09: ffffed000c185ee6
> > <4>[  125.499187] R10: 0000000000000001 R11: ffffed000c185ee5 R12: ffff8800553da160
> > <4>[  125.499210] R13: dffffc0000000000 R14: 0000000000000000 R15: ffff8800458faed0
> > <4>[  125.499235] FS:  00007fe18f052980(0000) GS:ffff880065400000(0000) knlGS:0000000000000000
> > <4>[  125.499262] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > <4>[  125.499282] CR2: 00007f01df11efb8 CR3: 00000000518d4001 CR4: 00000000000606f0
> > <4>[  125.499304] Call Trace:
> > <4>[  125.499417]  i915_gem_shrink+0x576/0xb50 [i915]
> > <4>[  125.499532]  ? i915_gem_shrinker_count+0x2f0/0x2f0 [i915]
> > <4>[  125.499561]  ? trace_hardirqs_on_thunk+0x1a/0x1c
> > <4>[  125.499671]  ? i915_gem_shrinker_count+0x1d6/0x2f0 [i915]
> > <4>[  125.499782]  ? i915_gem_shrinker_scan+0xc4/0x320 [i915]
> > <4>[  125.499889]  i915_gem_shrinker_scan+0xc4/0x320 [i915]
> > <4>[  125.499997]  ? i915_gem_shrinker_vmap+0x3a0/0x3a0 [i915]
> > <4>[  125.500021]  ? do_raw_spin_unlock+0x4f/0x240
> > <4>[  125.500042]  ? _raw_spin_unlock+0x29/0x40
> > <4>[  125.500149]  ? i915_gem_shrinker_count+0x1d6/0x2f0 [i915]
> > <4>[  125.500177]  shrink_slab.part.18+0x23e/0x8f0
> > <4>[  125.500202]  ? unregister_shrinker+0x1f0/0x1f0
> > <4>[  125.500226]  ? mem_cgroup_iter+0x379/0xcc0
> > <4>[  125.500249]  shrink_node+0xa7e/0x1180
> > <4>[  125.500276]  ? shrink_node_memcg+0x11f0/0x11f0
> > <4>[  125.500297]  ? __delayacct_freepages_start+0x38/0x80
> > <4>[  125.500319]  ? __is_insn_slot_addr+0xe3/0x1a0
> > <4>[  125.500342]  ? recalibrate_cpu_khz+0x10/0x10
> > <4>[  125.500361]  ? ktime_get+0xb2/0x140
> > <4>[  125.500382]  do_try_to_free_pages+0x2d3/0xe40
> > <4>[  125.500407]  ? allow_direct_reclaim.part.23+0x1e0/0x1e0
> > <4>[  125.500429]  ? shrink_node+0x1180/0x1180
> > <4>[  125.500450]  ? __read_once_size_nocheck.constprop.4+0x10/0x10
> > <4>[  125.500476]  try_to_free_pages+0x1af/0x560
> > <4>[  125.500497]  ? do_try_to_free_pages+0xe40/0xe40
> > <4>[  125.500525]  __alloc_pages_nodemask+0xadc/0x2130
> > <4>[  125.500553]  ? gfp_pfmemalloc_allowed+0x150/0x150
> > <4>[  125.500654]  ? i915_gem_do_execbuffer+0x219d/0x32e0 [i915]
> > <4>[  125.500678]  ? debug_check_no_locks_freed+0x2a0/0x2a0
> > <4>[  125.500701]  ? __debug_object_init+0x322/0xd90
> > <4>[  125.500722]  ? debug_check_no_locks_freed+0x2a0/0x2a0
> > <4>[  125.500827]  ? i915_gem_do_execbuffer+0xdc2/0x32e0 [i915]
> > <4>[  125.500942]  ? i915_request_alloc+0x5b5/0x13f0 [i915]
> > <4>[  125.500964]  ? page_frag_free+0x170/0x170
> > <4>[  125.500984]  ? debug_check_no_locks_freed+0x2a0/0x2a0
> > <4>[  125.501008]  new_slab+0x21d/0x5c0
> > <4>[  125.501029]  ___slab_alloc.constprop.35+0x322/0x3e0
> > <4>[  125.501052]  ? reservation_object_reserve_shared+0x10b/0x250
> > <4>[  125.501074]  ? __ww_mutex_lock.constprop.3+0x1104/0x2cf0
> > <4>[  125.501097]  ? _raw_spin_unlock_irqrestore+0x39/0x60
> > <4>[  125.501120]  ? fs_reclaim_acquire+0x10/0x10
> > <4>[  125.501138]  ? lock_acquire+0x138/0x3c0
> > <4>[  125.501156]  ? lock_acquire+0x3c0/0x3c0
> > <4>[  125.501176]  ? reservation_object_reserve_shared+0x10b/0x250
> > <4>[  125.501198]  ? __slab_alloc.isra.27.constprop.34+0x3d/0x70
> > <4>[  125.501219]  __slab_alloc.isra.27.constprop.34+0x3d/0x70
> > <4>[  125.501243]  ? reservation_object_reserve_shared+0x10b/0x250
> > <4>[  125.501265]  __kmalloc_track_caller+0x313/0x350
> > <4>[  125.501287]  krealloc+0x62/0xb0
> > <4>[  125.501305]  reservation_object_reserve_shared+0x10b/0x250
> > <4>[  125.501411]  i915_gem_do_execbuffer+0x2040/0x32e0 [i915]
> > <4>[  125.501522]  ? eb_relocate_slow+0xad0/0xad0 [i915]
> > <4>[  125.501544]  ? debug_check_no_locks_freed+0x2a0/0x2a0
> > <4>[  125.501646]  ? i915_gem_execbuffer2_ioctl+0x108/0x770 [i915]
> > <4>[  125.501755]  ? i915_gem_execbuffer2_ioctl+0x108/0x770 [i915]
> > <4>[  125.501779]  ? drm_dev_get+0x20/0x20
> > <4>[  125.501803]  ? __might_fault+0xea/0x1a0
> > <4>[  125.501902]  ? i915_gem_execbuffer2_ioctl+0x108/0x770 [i915]
> > <4>[  125.502012]  ? i915_gem_execbuffer_ioctl+0xb90/0xb90 [i915]
> > <4>[  125.502116]  ? i915_gem_execbuffer_ioctl+0xb90/0xb90 [i915]
> > <4>[  125.502218]  i915_gem_execbuffer2_ioctl+0x3c5/0x770 [i915]
> > <4>[  125.502243]  ? drm_dev_enter+0xe0/0xe0
> > <4>[  125.502260]  ? lock_acquire+0x138/0x3c0
> > <4>[  125.502362]  ? i915_gem_execbuffer_ioctl+0xb90/0xb90 [i915]
> > <4>[  125.502470]  ? i915_gem_object_create.part.28+0x570/0x570 [i915]
> > <4>[  125.502575]  ? i915_gem_execbuffer_ioctl+0xb90/0xb90 [i915]
> > <4>[  125.502680]  ? i915_gem_execbuffer_ioctl+0xb90/0xb90 [i915]
> > <4>[  125.502702]  drm_ioctl_kernel+0x151/0x200
> > <4>[  125.502721]  ? drm_ioctl_permit+0x2a0/0x2a0
> > <4>[  125.502746]  drm_ioctl+0x63a/0x920
> > <4>[  125.502844]  ? i915_gem_execbuffer_ioctl+0xb90/0xb90 [i915]
> > <4>[  125.502868]  ? drm_getstats+0x20/0x20
> > <4>[  125.502886]  ? trace_hardirqs_on_thunk+0x1a/0x1c
> > <4>[  125.502919]  do_vfs_ioctl+0x173/0xe90
> > <4>[  125.502936]  ? trace_hardirqs_on_thunk+0x1a/0x1c
> > <4>[  125.502957]  ? ioctl_preallocate+0x170/0x170
> > <4>[  125.502978]  ? trace_hardirqs_on_thunk+0x1a/0x1c
> > <4>[  125.503002]  ? retint_kernel+0x2d/0x2d
> > <4>[  125.503024]  ksys_ioctl+0x35/0x60
> > <4>[  125.503043]  __x64_sys_ioctl+0x6a/0xb0
> > <4>[  125.503061]  do_syscall_64+0x97/0x400
> > <4>[  125.503081]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
> > <4>[  125.503101] RIP: 0033:0x7fe18e4f65d7
> > <4>[  125.503116] RSP: 002b:00007ffe2ffc06a8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> > <4>[  125.503145] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fe18e4f65d7
> > <4>[  125.503168] RDX: 00007ffe2ffc07f0 RSI: 0000000040406469 RDI: 0000000000000003
> > <4>[  125.503191] RBP: 00007ffe2ffc07f0 R08: 0000000000000004 R09: 00007ffe2ffcf080
> > <4>[  125.503215] R10: 000000000002c7de R11: 0000000000000246 R12: 0000000040406469
> > <4>[  125.503238] R13: 0000000000000003 R14: 0000000000000000 R15: 0000000000000000
> > <4>[  125.503268] Code: e8 18 a0 c9 da 48 8b 35 25 3a 47 00 49 c7 c0 a0 3b 88 c0 b9 95 05 00 00 48 c7 c2 e0 49 88 c0 48 c7 c7 8d 3b 5d c0 e8 ee 7e db da <0f> 0b 48 89 ef e8 a4 26 f5 da e9 51 fe ff ff e8 8a 26 f5 da e9
> > <1>[  125.503548] RIP: i915_retire_requests+0x3f2/0x590 [i915] RSP: ffff88004e5dec40
> > 
> > Fixes: 643b450a594e ("drm/i915: Only track live rings for retiring")
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> > ---
> >   drivers/gpu/drm/i915/i915_request.c | 3 ---
> >   1 file changed, 3 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
> > index d68739b94dac..e4cf76ec14a6 100644
> > --- a/drivers/gpu/drm/i915/i915_request.c
> > +++ b/drivers/gpu/drm/i915/i915_request.c
> > @@ -1426,9 +1426,6 @@ void i915_retire_requests(struct drm_i915_private *i915)
> >       if (!i915->gt.active_requests)
> >               return;
> >   
> > -     /* An outstanding request must be on a still active ring somewhere */
> > -     GEM_BUG_ON(list_empty(&i915->gt.active_rings));
> > -
> >       list_for_each_entry_safe(ring, tmp, &i915->gt.active_rings, active_link)
> >               ring_retire_requests(ring);
> >   }
> > 
> 
> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

And pushed before anyone else notices the oops...

Thanks for the review,
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-05-04 12:06 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-04 10:11 [PATCH] drm/i915: Remove assertion of active_rings must be non-empty if active_requests Chris Wilson
2018-05-04 10:22 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
2018-05-04 10:24 ` [PATCH] " Chris Wilson
2018-05-04 10:37 ` Tvrtko Ursulin
2018-05-04 12:06   ` Chris Wilson
2018-05-04 10:37 ` ✓ Fi.CI.BAT: success for " Patchwork
2018-05-04 11:32 ` ✗ Fi.CI.IGT: failure " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.