Re: [Intel-gfx] [PATCH] drm/i915: Initialise breadcrumb lists on the virtual engine

2019-10-01 Thread Tvrtko Ursulin


On 01/10/2019 11:35, Chris Wilson wrote:

With deferring the breadcrumb signalling to the virtual engine (thanks
preempt-to-busy) we need to make sure the lists and irq-worker are ready
to send a signal.

[41958.710544] BUG: kernel NULL pointer dereference, address: 
[41958.710553] #PF: supervisor write access in kernel mode
[41958.710556] #PF: error_code(0x0002) - not-present page
[41958.710558] PGD 0 P4D 0
[41958.710562] Oops: 0002 [#1] SMP
[41958.710565] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G U5.3.0+ 
#207
[41958.710568] Hardware name: Intel Corporation NUC7i5BNK/NUC7i5BNB, BIOS 
BNKBL357.86A.0052.2017.0918.1346 09/18/2017
[41958.710602] RIP: 0010:i915_request_enable_breadcrumb+0xe1/0x130 [i915]
[41958.710605] Code: 8b 44 24 30 48 89 41 08 48 89 08 48 8b 85 98 01 00 00 48 8d 8d 
90 01 00 00 48 89 95 98 01 00 00 49 89 4c 24 28 49 89 44 24 30 <48> 89 10 f0 80 
4b 30 10 c6 85 88 01 00 00 00 e9 1a ff ff ff 48 83
[41958.710609] RSP: 0018:c9003de0 EFLAGS: 00010046
[41958.710612] RAX:  RBX: 888735424480 RCX: 8887cddb2190
[41958.710614] RDX: 8887cddb3570 RSI: 50362190 RDI: 8887cddb2188
[41958.710617] RBP: 8887cddb2000 R08: 503624a8 R09: 0100
[41958.710619] R10: 0001 R11:  R12: 8887cddb3548
[41958.710622] R13:  R14: 0046 R15: 50362070
[41958.710625] FS:  () GS:5ea0() 
knlGS:
[41958.710628] CS:  0010 DS:  ES:  CR0: 80050033
[41958.710630] CR2:  CR3: 02c09002 CR4: 001606f0
[41958.710633] Call Trace:
[41958.710636]  
[41958.710668]  __i915_request_submit+0x12b/0x160 [i915]
[41958.710693]  virtual_submit_request+0x67/0x120 [i915]
[41958.710720]  __unwind_incomplete_requests+0x131/0x170 [i915]
[41958.710744]  execlists_dequeue+0xb40/0xe00 [i915]
[41958.710771]  execlists_submission_tasklet+0x10f/0x150 [i915]
[41958.710776]  tasklet_action_common.isra.17+0x41/0xa0
[41958.710781]  __do_softirq+0xc8/0x221
[41958.710785]  irq_exit+0xa6/0xb0
[41958.710788]  smp_apic_timer_interrupt+0x4d/0x80
[41958.710791]  apic_timer_interrupt+0xf/0x20
[41958.710794]  

Fixes: cb2377a919bb ("drm/i915: Fixup preempt-to-busy vs reset of a virtual 
request")
Signed-off-by: Chris Wilson 
Cc: Mika Kuoppala 
Cc: Tvrtko Ursulin 
---
Include the GPF trace from using the NULL lists
---
  drivers/gpu/drm/i915/gt/intel_lrc.c | 1 +
  1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c 
b/drivers/gpu/drm/i915/gt/intel_lrc.c
index 3566ec8ad33a..48a1ef4c3572 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -4195,6 +4195,7 @@ intel_execlists_create_virtual(struct i915_gem_context 
*ctx,
snprintf(ve->base.name, sizeof(ve->base.name), "virtual");
  
  	intel_engine_init_active(&ve->base, ENGINE_VIRTUAL);

+   intel_engine_init_breadcrumbs(&ve->base);
  
  	intel_engine_init_execlists(&ve->base);
  



Reviewed-by: Tvrtko Ursulin 

Regards,

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

[Intel-gfx] [PATCH] drm/i915: Initialise breadcrumb lists on the virtual engine

2019-10-01 Thread Chris Wilson
With deferring the breadcrumb signalling to the virtual engine (thanks
preempt-to-busy) we need to make sure the lists and irq-worker are ready
to send a signal.

[41958.710544] BUG: kernel NULL pointer dereference, address: 
[41958.710553] #PF: supervisor write access in kernel mode
[41958.710556] #PF: error_code(0x0002) - not-present page
[41958.710558] PGD 0 P4D 0
[41958.710562] Oops: 0002 [#1] SMP
[41958.710565] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G U5.3.0+ 
#207
[41958.710568] Hardware name: Intel Corporation NUC7i5BNK/NUC7i5BNB, BIOS 
BNKBL357.86A.0052.2017.0918.1346 09/18/2017
[41958.710602] RIP: 0010:i915_request_enable_breadcrumb+0xe1/0x130 [i915]
[41958.710605] Code: 8b 44 24 30 48 89 41 08 48 89 08 48 8b 85 98 01 00 00 48 
8d 8d 90 01 00 00 48 89 95 98 01 00 00 49 89 4c 24 28 49 89 44 24 30 <48> 89 10 
f0 80 4b 30 10 c6 85 88 01 00 00 00 e9 1a ff ff ff 48 83
[41958.710609] RSP: 0018:c9003de0 EFLAGS: 00010046
[41958.710612] RAX:  RBX: 888735424480 RCX: 8887cddb2190
[41958.710614] RDX: 8887cddb3570 RSI: 50362190 RDI: 8887cddb2188
[41958.710617] RBP: 8887cddb2000 R08: 503624a8 R09: 0100
[41958.710619] R10: 0001 R11:  R12: 8887cddb3548
[41958.710622] R13:  R14: 0046 R15: 50362070
[41958.710625] FS:  () GS:5ea0() 
knlGS:
[41958.710628] CS:  0010 DS:  ES:  CR0: 80050033
[41958.710630] CR2:  CR3: 02c09002 CR4: 001606f0
[41958.710633] Call Trace:
[41958.710636]  
[41958.710668]  __i915_request_submit+0x12b/0x160 [i915]
[41958.710693]  virtual_submit_request+0x67/0x120 [i915]
[41958.710720]  __unwind_incomplete_requests+0x131/0x170 [i915]
[41958.710744]  execlists_dequeue+0xb40/0xe00 [i915]
[41958.710771]  execlists_submission_tasklet+0x10f/0x150 [i915]
[41958.710776]  tasklet_action_common.isra.17+0x41/0xa0
[41958.710781]  __do_softirq+0xc8/0x221
[41958.710785]  irq_exit+0xa6/0xb0
[41958.710788]  smp_apic_timer_interrupt+0x4d/0x80
[41958.710791]  apic_timer_interrupt+0xf/0x20
[41958.710794]  

Fixes: cb2377a919bb ("drm/i915: Fixup preempt-to-busy vs reset of a virtual 
request")
Signed-off-by: Chris Wilson 
Cc: Mika Kuoppala 
Cc: Tvrtko Ursulin 
---
Include the GPF trace from using the NULL lists
---
 drivers/gpu/drm/i915/gt/intel_lrc.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c 
b/drivers/gpu/drm/i915/gt/intel_lrc.c
index 3566ec8ad33a..48a1ef4c3572 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -4195,6 +4195,7 @@ intel_execlists_create_virtual(struct i915_gem_context 
*ctx,
snprintf(ve->base.name, sizeof(ve->base.name), "virtual");
 
intel_engine_init_active(&ve->base, ENGINE_VIRTUAL);
+   intel_engine_init_breadcrumbs(&ve->base);
 
intel_engine_init_execlists(&ve->base);
 
-- 
2.23.0

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

Re: [Intel-gfx] [PATCH] drm/i915: Initialise breadcrumb lists on the virtual engine

2019-09-30 Thread Tvrtko Ursulin


On 29/09/2019 09:33, Chris Wilson wrote:

With deferring the breadcrumb signalling to the virtual engine (thanks
preempt-to-busy) we need to make sure the lists and irq-worker are ready
to send a signal.

Fixes: cb2377a919bb ("drm/i915: Fixup preempt-to-busy vs reset of a virtual 
request")
Signed-off-by: Chris Wilson 
Cc: Mika Kuoppala 
Cc: Tvrtko Ursulin 
---
  drivers/gpu/drm/i915/gt/intel_lrc.c | 1 +
  1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c 
b/drivers/gpu/drm/i915/gt/intel_lrc.c
index 45fe87a59796..ded618bca587 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -4177,6 +4177,7 @@ intel_execlists_create_virtual(struct i915_gem_context 
*ctx,
snprintf(ve->base.name, sizeof(ve->base.name), "virtual");
  
  	intel_engine_init_active(&ve->base, ENGINE_VIRTUAL);

+   intel_engine_init_breadcrumbs(&ve->base);
  
  	intel_engine_init_execlists(&ve->base);
  



__intel_gt_set_wedged -> nop_submit_request? But how does the commit 
from fixes come into play? That one was about not looking at the engine 
timeline when we detect virtual request is hanging as far as I remember.


Regards,

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

[Intel-gfx] [PATCH] drm/i915: Initialise breadcrumb lists on the virtual engine

2019-09-29 Thread Chris Wilson
With deferring the breadcrumb signalling to the virtual engine (thanks
preempt-to-busy) we need to make sure the lists and irq-worker are ready
to send a signal.

Fixes: cb2377a919bb ("drm/i915: Fixup preempt-to-busy vs reset of a virtual 
request")
Signed-off-by: Chris Wilson 
Cc: Mika Kuoppala 
Cc: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/gt/intel_lrc.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c 
b/drivers/gpu/drm/i915/gt/intel_lrc.c
index 45fe87a59796..ded618bca587 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -4177,6 +4177,7 @@ intel_execlists_create_virtual(struct i915_gem_context 
*ctx,
snprintf(ve->base.name, sizeof(ve->base.name), "virtual");
 
intel_engine_init_active(&ve->base, ENGINE_VIRTUAL);
+   intel_engine_init_breadcrumbs(&ve->base);
 
intel_engine_init_execlists(&ve->base);
 
-- 
2.23.0

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