Chris Wilson
25afdf89ad
drm/i915/guc: Disable irq for __i915_guc_submit wq_lock
__i915_guc_submit may be, despite my assertion, called from outside of
an irq-safe spinlock so we need to use a full spin_lock_irqsave and not
cheat using a spin_lock. (The initial notify callback from the completed
fence is called before the spinlock is taken to wake up all waiters and
call their callbacks.)
[ 48.166581] kernel BUG at drivers/gpu/drm/i915/i915_guc_submission.c:527!
[ 48.166617] invalid opcode: 0000 [#1] PREEMPT SMP
[ 48.166644] Modules linked in: i915 prime_numbers x86_pkg_temp_thermal intel_powerclamp coretemp crct10dif_pclmul crc32_pclmul ghash_clmulni_intel mei_me mei i2c_i801 netconsole i2c_hid [last unloaded: i915]
[ 48.166733] CPU: 2 PID: 5 Comm: kworker/u8:0 Tainted: G U 4.10.0nightly-170302-guc_scrub+ #19
[ 48.166778] Hardware name: /NUC6i5SYB, BIOS SYSKLi35.86A.0054.2016.0930.1102 09/30/2016
[ 48.166835] Workqueue: i915 __intel_autoenable_gt_powersave [i915]
[ 48.166865] task: ffff88084ab7cf40 task.stack: ffffc90000064000
[ 48.166921] RIP: 0010:__i915_guc_submit+0x1e6/0x2a0 [i915]
[ 48.166953] RSP: 0018:ffffc90000067c80 EFLAGS: 00010202
[ 48.166979] RAX: 0000000000000202 RBX: ffff8808465e0c68 RCX: 0000000000000201
[ 48.167016] RDX: 0000000080000201 RSI: ffff88084ab7d798 RDI: ffff88082b8a8040
[ 48.167054] RBP: ffffc90000067cd8 R08: 0000000000000001 R09: 0000000000000000
[ 48.167085] R10: 0000000000000000 R11: 0000000000000000 R12: ffff88082b8a8148
[ 48.167126] R13: 0000000000000000 R14: ffff88082f440000 R15: ffff88082e85e660
[ 48.167156] FS: 0000000000000000(0000) GS:ffff88086ed00000(0000) knlGS:0000000000000000
[ 48.167195] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 48.167226] CR2: 000055862ffcdc2c CR3: 0000000001e0f000 CR4: 00000000003406e0
[ 48.167257] Call Trace:
[ 48.168112] ? trace_hardirqs_on+0xd/0x10
[ 48.168966] ? _raw_spin_unlock_irqrestore+0x4a/0x80
[ 48.169831] i915_guc_submit+0x1a/0x20 [i915]
[ 48.170680] submit_notify+0x89/0xc0 [i915]
[ 48.171512] __i915_sw_fence_complete+0x175/0x220 [i915]
[ 48.172340] i915_sw_fence_complete+0x2a/0x50 [i915]
[ 48.173158] i915_sw_fence_commit+0x21/0x30 [i915]
[ 48.173968] __i915_add_request+0x238/0x530 [i915]
[ 48.174764] __intel_autoenable_gt_powersave+0x8b/0xb0 [i915]
[ 48.175549] process_one_work+0x218/0x690
[ 48.176318] ? process_one_work+0x197/0x690
[ 48.177183] worker_thread+0x4e/0x4a0
[ 48.178039] kthread+0x10c/0x140
[ 48.178878] ? process_one_work+0x690/0x690
[ 48.179718] ? kthread_create_on_node+0x40/0x40
[ 48.180568] ret_from_fork+0x31/0x40
[ 48.181423] Code: 02 00 00 43 89 84 ae 50 11 00 00 e8 75 01 62 e1 48 83 c4 30 5b 41 5c 41 5d 41 5e 41 5f 5d c3 48 c1 e0 20 48 09 c2 49 89 d0 eb 82 <0f> 0b 0f 0b 0f 0b 0f 0b 0f 0b 0f 0b 49 c1 e8 20 44 89 43 34 4a
[ 48.183336] RIP: __i915_guc_submit+0x1e6/0x2a0 [i915] RSP: ffffc90000067c80
Reported-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Fixes: 349ab9192c ("drm/i915/guc: Make wq_lock irq-safe")
Fixes: 67b807a892 ("drm/i915: Delay disabling the user interrupt for breadcrumbs")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170302145323.12886-1-chris@chris-wilson.co.uk
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Tested-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2017-03-02 15:18:55 +00:00
..
2017-02-06 19:36:04 -08:00
2017-01-06 15:45:32 -05:00
2016-12-24 11:46:01 -08:00
2017-01-11 09:27:30 +01:00
2017-02-06 14:52:10 +01:00
2017-01-17 14:23:44 +02:00
2017-01-23 13:27:42 -05:00
2016-12-16 10:24:44 -08:00
2016-12-25 10:47:44 +01:00
2016-12-24 11:46:01 -08:00
2017-02-27 09:30:11 +01:00
2017-01-21 18:46:45 -08:00
2017-01-17 10:08:38 +01:00
2017-02-06 14:52:10 +01:00
2016-12-24 11:46:01 -08:00
2017-02-06 14:16:23 -08:00
2016-12-18 15:49:10 -08:00
2017-01-03 00:21:45 +01:00
2016-12-24 11:46:01 -08:00
2017-01-25 15:35:11 +05:30
2017-01-27 15:24:44 -02:00
2016-12-24 11:46:01 -08:00
2017-01-11 09:11:39 +01:00
2017-02-01 21:17:49 +01:00
2017-01-19 09:57:20 +01:00
2017-03-02 15:18:55 +00:00
2017-01-31 12:59:33 +01:00
2017-01-31 10:59:48 +01:00
2017-01-02 10:15:28 -08:00
2016-12-25 10:47:44 +01:00
2017-02-09 17:13:01 +01:00
2016-12-24 11:46:01 -08:00
2016-12-13 10:41:53 -08:00
2017-01-22 13:35:40 +00:00
2017-02-08 12:28:30 -05:00
2017-02-07 14:31:45 -08:00
2017-01-06 10:49:36 -08:00
2016-12-31 19:06:44 +00:00
2017-01-27 11:27:34 -05:00
2016-12-25 10:47:44 +01:00
2016-12-24 11:46:01 -08:00
2016-12-13 12:11:01 -08:00
2016-12-24 11:46:01 -08:00
2016-12-25 17:21:22 +01:00
2017-02-03 10:26:14 -05:00
2017-02-06 14:37:55 -08:00
2016-11-30 14:58:00 +01:00
2017-01-24 16:26:14 -08:00
2016-12-24 11:46:01 -08:00
2016-12-19 08:16:26 -08:00
2017-01-11 07:43:57 +01:00
2017-02-08 12:22:27 +01:00
2017-01-04 20:50:18 +01:00
2017-02-10 13:44:49 -05:00
2016-12-23 16:11:07 -05:00
2016-12-24 11:46:01 -08:00
2017-02-04 14:47:31 -08:00
2017-01-26 17:49:14 +02:00
2017-01-04 18:22:47 +01:00
2016-12-15 12:46:48 -08:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00
2017-01-28 21:54:21 +01:00
2017-02-03 08:53:51 -06:00
2016-12-12 18:55:06 -08:00
2016-12-25 10:47:44 +01:00
2016-12-14 10:49:33 -08:00
2017-01-30 15:53:57 +01:00
2017-01-22 12:47:06 +02:00
2016-12-24 11:46:01 -08:00
2016-12-25 17:21:22 +01:00
2016-11-30 23:41:33 +01:00
2016-12-12 19:56:15 -08:00
2016-12-15 11:45:13 -08:00
2017-02-03 13:46:38 -08:00
2016-12-30 03:26:31 -08:00
2016-12-15 16:03:25 -08:00
2016-12-30 03:12:11 -08:00
2017-01-26 23:03:21 +01:00
2017-02-11 09:01:03 -08:00
2016-12-24 11:46:01 -08:00
2017-02-11 09:01:03 -08:00
2016-12-12 18:55:08 -08:00
2017-01-12 13:37:49 -08:00
2017-01-20 12:25:11 -08:00
2017-02-08 15:41:43 -08:00
2017-02-08 08:25:39 -08:00
2017-01-25 09:51:08 +08:00
2016-12-13 12:11:01 -08:00
2017-01-11 09:22:54 +01:00
2016-12-10 14:57:58 +01:00
2017-02-03 22:19:15 +01:00
2017-02-07 11:48:16 -07:00
2017-02-03 23:38:57 +02:00
2017-01-27 11:00:42 +10:00
2017-02-03 23:38:50 +02:00
2017-01-11 10:42:16 +01:00
2016-12-24 11:27:45 -08:00
2017-01-27 12:17:07 -08:00
2016-12-24 11:46:01 -08:00