* [Intel-gfx] [PATCH] drm/i915/gt: Defend against concurrent updates to execlists->active @ 2020-03-09 11:24 Chris Wilson 2020-03-09 13:14 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork ` (4 more replies) 0 siblings, 5 replies; 10+ messages in thread From: Chris Wilson @ 2020-03-09 11:24 UTC (permalink / raw) To: intel-gfx [ 206.875637] BUG: KCSAN: data-race in __i915_schedule+0x7fc/0x930 [i915] [ 206.875654] [ 206.875666] race at unknown origin, with read to 0xffff8881f7644480 of 8 bytes by task 703 on cpu 3: [ 206.875901] __i915_schedule+0x7fc/0x930 [i915] [ 206.876130] __bump_priority+0x63/0x80 [i915] [ 206.876361] __i915_sched_node_add_dependency+0x258/0x300 [i915] [ 206.876593] i915_sched_node_add_dependency+0x50/0xa0 [i915] [ 206.876824] i915_request_await_dma_fence+0x1da/0x530 [i915] [ 206.877057] i915_request_await_object+0x2fe/0x470 [i915] [ 206.877287] i915_gem_do_execbuffer+0x45dc/0x4c20 [i915] [ 206.877517] i915_gem_execbuffer2_ioctl+0x2c3/0x580 [i915] [ 206.877535] drm_ioctl_kernel+0xe4/0x120 [ 206.877549] drm_ioctl+0x297/0x4c7 [ 206.877563] ksys_ioctl+0x89/0xb0 [ 206.877577] __x64_sys_ioctl+0x42/0x60 [ 206.877591] do_syscall_64+0x6e/0x2c0 [ 206.877606] entry_SYSCALL_64_after_hwframe+0x44/0xa9 References: https://gitlab.freedesktop.org/drm/intel/issues/1318 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> --- drivers/gpu/drm/i915/gt/intel_engine.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/gt/intel_engine.h b/drivers/gpu/drm/i915/gt/intel_engine.h index 29c8c03c5caa..f267f51c457c 100644 --- a/drivers/gpu/drm/i915/gt/intel_engine.h +++ b/drivers/gpu/drm/i915/gt/intel_engine.h @@ -107,7 +107,17 @@ execlists_num_ports(const struct intel_engine_execlists * const execlists) static inline struct i915_request * execlists_active(const struct intel_engine_execlists *execlists) { - return *READ_ONCE(execlists->active); + struct i915_request * const *cur = READ_ONCE(execlists->active); + struct i915_request * const *old; + struct i915_request *active; + + do { + old = cur; + active = READ_ONCE(*cur); + cur = READ_ONCE(execlists->active); + } while (cur != old); + + return active; } static inline void -- 2.20.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/gt: Defend against concurrent updates to execlists->active 2020-03-09 11:24 [Intel-gfx] [PATCH] drm/i915/gt: Defend against concurrent updates to execlists->active Chris Wilson @ 2020-03-09 13:14 ` Patchwork 2020-03-09 15:34 ` [Intel-gfx] [PATCH] " Mika Kuoppala ` (3 subsequent siblings) 4 siblings, 0 replies; 10+ messages in thread From: Patchwork @ 2020-03-09 13:14 UTC (permalink / raw) To: Chris Wilson; +Cc: intel-gfx == Series Details == Series: drm/i915/gt: Defend against concurrent updates to execlists->active URL : https://patchwork.freedesktop.org/series/74447/ State : success == Summary == CI Bug Log - changes from CI_DRM_8097 -> Patchwork_16878 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/index.html Known issues ------------ Here are the changes found in Patchwork_16878 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@kms_chamelium@dp-crc-fast: - fi-cml-u2: [PASS][1] -> [FAIL][2] ([i915#262]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/fi-cml-u2/igt@kms_chamelium@dp-crc-fast.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/fi-cml-u2/igt@kms_chamelium@dp-crc-fast.html #### Possible fixes #### * igt@i915_selftest@live@gem_contexts: - fi-skl-lmem: [INCOMPLETE][3] ([i915#424]) -> [PASS][4] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/fi-skl-lmem/igt@i915_selftest@live@gem_contexts.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/fi-skl-lmem/igt@i915_selftest@live@gem_contexts.html [i915#262]: https://gitlab.freedesktop.org/drm/intel/issues/262 [i915#424]: https://gitlab.freedesktop.org/drm/intel/issues/424 Participating hosts (46 -> 43) ------------------------------ Additional (4): fi-bsw-kefka fi-glk-dsi fi-snb-2520m fi-elk-e7500 Missing (7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus Build changes ------------- * CI: CI-20190529 -> None * Linux: CI_DRM_8097 -> Patchwork_16878 CI-20190529: 20190529 CI_DRM_8097: 2e46e269a2843c5d0b6c72bfb7fa9d9913c15415 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_5499: 2e23cf6f63fc6ba1d9543f8327698d6f21813cec @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_16878: 97cfa95059160fb433579a941ae2620d15d43b24 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 97cfa9505916 drm/i915/gt: Defend against concurrent updates to execlists->active == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/index.html _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/i915/gt: Defend against concurrent updates to execlists->active 2020-03-09 11:24 [Intel-gfx] [PATCH] drm/i915/gt: Defend against concurrent updates to execlists->active Chris Wilson 2020-03-09 13:14 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork @ 2020-03-09 15:34 ` Mika Kuoppala 2020-03-09 16:19 ` Chris Wilson 2020-03-09 17:05 ` [Intel-gfx] [PATCH v2] " Chris Wilson ` (2 subsequent siblings) 4 siblings, 1 reply; 10+ messages in thread From: Mika Kuoppala @ 2020-03-09 15:34 UTC (permalink / raw) To: Chris Wilson, intel-gfx Chris Wilson <chris@chris-wilson.co.uk> writes: > [ 206.875637] BUG: KCSAN: data-race in __i915_schedule+0x7fc/0x930 [i915] > [ 206.875654] > [ 206.875666] race at unknown origin, with read to 0xffff8881f7644480 of 8 bytes by task 703 on cpu 3: > [ 206.875901] __i915_schedule+0x7fc/0x930 [i915] > [ 206.876130] __bump_priority+0x63/0x80 [i915] > [ 206.876361] __i915_sched_node_add_dependency+0x258/0x300 [i915] > [ 206.876593] i915_sched_node_add_dependency+0x50/0xa0 [i915] > [ 206.876824] i915_request_await_dma_fence+0x1da/0x530 [i915] > [ 206.877057] i915_request_await_object+0x2fe/0x470 [i915] > [ 206.877287] i915_gem_do_execbuffer+0x45dc/0x4c20 [i915] > [ 206.877517] i915_gem_execbuffer2_ioctl+0x2c3/0x580 [i915] > [ 206.877535] drm_ioctl_kernel+0xe4/0x120 > [ 206.877549] drm_ioctl+0x297/0x4c7 > [ 206.877563] ksys_ioctl+0x89/0xb0 > [ 206.877577] __x64_sys_ioctl+0x42/0x60 > [ 206.877591] do_syscall_64+0x6e/0x2c0 > [ 206.877606] entry_SYSCALL_64_after_hwframe+0x44/0xa9 > > References: https://gitlab.freedesktop.org/drm/intel/issues/1318 > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > --- > drivers/gpu/drm/i915/gt/intel_engine.h | 12 +++++++++++- > 1 file changed, 11 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/gt/intel_engine.h b/drivers/gpu/drm/i915/gt/intel_engine.h > index 29c8c03c5caa..f267f51c457c 100644 > --- a/drivers/gpu/drm/i915/gt/intel_engine.h > +++ b/drivers/gpu/drm/i915/gt/intel_engine.h > @@ -107,7 +107,17 @@ execlists_num_ports(const struct intel_engine_execlists * const execlists) > static inline struct i915_request * > execlists_active(const struct intel_engine_execlists *execlists) > { > - return *READ_ONCE(execlists->active); > + struct i915_request * const *cur = READ_ONCE(execlists->active); > + struct i915_request * const *old; > + struct i915_request *active; > + > + do { > + old = cur; > + active = READ_ONCE(*cur); > + cur = READ_ONCE(execlists->active); > + } while (cur != old); > + > + return active; The updated side is scary. We are updating the execlists->active in two phases and handling the array copying in between. as WRITE_ONCE only guarantees ordering inside one context, due to it is for compiler only, it makes me very suspicious about how the memcpy of pending->inflight might unravel between two cpus. smb_store_mb(execlists->active, execlists->pending); memcpy(inflight, pending) smb_wmb(); smb_store_mb(execlists->active, execlists->inflight); smb_store_mb(execlists->pending[0], NULL); This in paired with: active = READ_ONCE(*cur); smb_rmb(); cur = READ_ONCE(execlists->active); With this, it should not matter at which point the execlists->active is sampled as the pending would be guaranteed to be immutable if it sampled early and inflight immutable if it sampled late? -Mika > } > > static inline void > -- > 2.20.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/i915/gt: Defend against concurrent updates to execlists->active 2020-03-09 15:34 ` [Intel-gfx] [PATCH] " Mika Kuoppala @ 2020-03-09 16:19 ` Chris Wilson 2020-03-09 16:38 ` Mika Kuoppala 0 siblings, 1 reply; 10+ messages in thread From: Chris Wilson @ 2020-03-09 16:19 UTC (permalink / raw) To: Mika Kuoppala, intel-gfx Quoting Mika Kuoppala (2020-03-09 15:34:40) > Chris Wilson <chris@chris-wilson.co.uk> writes: > > > [ 206.875637] BUG: KCSAN: data-race in __i915_schedule+0x7fc/0x930 [i915] > > [ 206.875654] > > [ 206.875666] race at unknown origin, with read to 0xffff8881f7644480 of 8 bytes by task 703 on cpu 3: > > [ 206.875901] __i915_schedule+0x7fc/0x930 [i915] > > [ 206.876130] __bump_priority+0x63/0x80 [i915] > > [ 206.876361] __i915_sched_node_add_dependency+0x258/0x300 [i915] > > [ 206.876593] i915_sched_node_add_dependency+0x50/0xa0 [i915] > > [ 206.876824] i915_request_await_dma_fence+0x1da/0x530 [i915] > > [ 206.877057] i915_request_await_object+0x2fe/0x470 [i915] > > [ 206.877287] i915_gem_do_execbuffer+0x45dc/0x4c20 [i915] > > [ 206.877517] i915_gem_execbuffer2_ioctl+0x2c3/0x580 [i915] > > [ 206.877535] drm_ioctl_kernel+0xe4/0x120 > > [ 206.877549] drm_ioctl+0x297/0x4c7 > > [ 206.877563] ksys_ioctl+0x89/0xb0 > > [ 206.877577] __x64_sys_ioctl+0x42/0x60 > > [ 206.877591] do_syscall_64+0x6e/0x2c0 > > [ 206.877606] entry_SYSCALL_64_after_hwframe+0x44/0xa9 > > > > References: https://gitlab.freedesktop.org/drm/intel/issues/1318 > > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > > --- > > drivers/gpu/drm/i915/gt/intel_engine.h | 12 +++++++++++- > > 1 file changed, 11 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/i915/gt/intel_engine.h b/drivers/gpu/drm/i915/gt/intel_engine.h > > index 29c8c03c5caa..f267f51c457c 100644 > > --- a/drivers/gpu/drm/i915/gt/intel_engine.h > > +++ b/drivers/gpu/drm/i915/gt/intel_engine.h > > @@ -107,7 +107,17 @@ execlists_num_ports(const struct intel_engine_execlists * const execlists) > > static inline struct i915_request * > > execlists_active(const struct intel_engine_execlists *execlists) > > { > > - return *READ_ONCE(execlists->active); > > + struct i915_request * const *cur = READ_ONCE(execlists->active); > > + struct i915_request * const *old; > > + struct i915_request *active; > > + > > + do { > > + old = cur; > > + active = READ_ONCE(*cur); > > + cur = READ_ONCE(execlists->active); > > + } while (cur != old); > > + > > + return active; > > The updated side is scary. We are updating the execlists->active > in two phases and handling the array copying in between. > > as WRITE_ONCE only guarantees ordering inside one context, due to > it is for compiler only, it makes me very suspicious about > how the memcpy of pending->inflight might unravel between two cpus. > > smb_store_mb(execlists->active, execlists->pending); > memcpy(inflight, pending) > smb_wmb(); > smb_store_mb(execlists->active, execlists->inflight); > smb_store_mb(execlists->pending[0], NULL); Not quite. You've overkill on the mb there. If you want to be pedantic, WRITE_ONCE(active, pending); smp_wmb(); memcpy(inflight, pending); smp_wmb(); WRITE_ONCE(active, inflight); The update of pending is not part of this sequence. But do we need that, and I still think we do not. > This in paired with: > > active = READ_ONCE(*cur); > smb_rmb(); > cur = READ_ONCE(execlists->active); > > With this, it should not matter at which point the execlists->active > is sampled as the pending would be guaranteed to be > immutable if it sampled early and inflight immutable if it > sampled late? Simply because we don't care about the sampling, just that the read dependency gives us a valid pointer. (We are not looking at a snapshot of several reads, but a _single_ read and the data dependency from that.) -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/i915/gt: Defend against concurrent updates to execlists->active 2020-03-09 16:19 ` Chris Wilson @ 2020-03-09 16:38 ` Mika Kuoppala 2020-03-09 17:01 ` Chris Wilson 0 siblings, 1 reply; 10+ messages in thread From: Mika Kuoppala @ 2020-03-09 16:38 UTC (permalink / raw) To: Chris Wilson, intel-gfx Chris Wilson <chris@chris-wilson.co.uk> writes: > Quoting Mika Kuoppala (2020-03-09 15:34:40) >> Chris Wilson <chris@chris-wilson.co.uk> writes: >> >> > [ 206.875637] BUG: KCSAN: data-race in __i915_schedule+0x7fc/0x930 [i915] >> > [ 206.875654] >> > [ 206.875666] race at unknown origin, with read to 0xffff8881f7644480 of 8 bytes by task 703 on cpu 3: >> > [ 206.875901] __i915_schedule+0x7fc/0x930 [i915] >> > [ 206.876130] __bump_priority+0x63/0x80 [i915] >> > [ 206.876361] __i915_sched_node_add_dependency+0x258/0x300 [i915] >> > [ 206.876593] i915_sched_node_add_dependency+0x50/0xa0 [i915] >> > [ 206.876824] i915_request_await_dma_fence+0x1da/0x530 [i915] >> > [ 206.877057] i915_request_await_object+0x2fe/0x470 [i915] >> > [ 206.877287] i915_gem_do_execbuffer+0x45dc/0x4c20 [i915] >> > [ 206.877517] i915_gem_execbuffer2_ioctl+0x2c3/0x580 [i915] >> > [ 206.877535] drm_ioctl_kernel+0xe4/0x120 >> > [ 206.877549] drm_ioctl+0x297/0x4c7 >> > [ 206.877563] ksys_ioctl+0x89/0xb0 >> > [ 206.877577] __x64_sys_ioctl+0x42/0x60 >> > [ 206.877591] do_syscall_64+0x6e/0x2c0 >> > [ 206.877606] entry_SYSCALL_64_after_hwframe+0x44/0xa9 >> > >> > References: https://gitlab.freedesktop.org/drm/intel/issues/1318 >> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> >> > --- >> > drivers/gpu/drm/i915/gt/intel_engine.h | 12 +++++++++++- >> > 1 file changed, 11 insertions(+), 1 deletion(-) >> > >> > diff --git a/drivers/gpu/drm/i915/gt/intel_engine.h b/drivers/gpu/drm/i915/gt/intel_engine.h >> > index 29c8c03c5caa..f267f51c457c 100644 >> > --- a/drivers/gpu/drm/i915/gt/intel_engine.h >> > +++ b/drivers/gpu/drm/i915/gt/intel_engine.h >> > @@ -107,7 +107,17 @@ execlists_num_ports(const struct intel_engine_execlists * const execlists) >> > static inline struct i915_request * >> > execlists_active(const struct intel_engine_execlists *execlists) >> > { >> > - return *READ_ONCE(execlists->active); >> > + struct i915_request * const *cur = READ_ONCE(execlists->active); >> > + struct i915_request * const *old; >> > + struct i915_request *active; >> > + >> > + do { >> > + old = cur; >> > + active = READ_ONCE(*cur); >> > + cur = READ_ONCE(execlists->active); >> > + } while (cur != old); >> > + >> > + return active; >> >> The updated side is scary. We are updating the execlists->active >> in two phases and handling the array copying in between. >> >> as WRITE_ONCE only guarantees ordering inside one context, due to >> it is for compiler only, it makes me very suspicious about >> how the memcpy of pending->inflight might unravel between two cpus. >> >> smb_store_mb(execlists->active, execlists->pending); >> memcpy(inflight, pending) >> smb_wmb(); >> smb_store_mb(execlists->active, execlists->inflight); >> smb_store_mb(execlists->pending[0], NULL); > > Not quite. You've overkill on the mb there. > > If you want to be pedantic, > > WRITE_ONCE(active, pending); > smp_wmb(); > > memcpy(inflight, pending); > smp_wmb(); > WRITE_ONCE(active, inflight); This is the crux of it, needing rmb counterpart. -Mika > > The update of pending is not part of this sequence. > > But do we need that, and I still think we do not. > >> This in paired with: >> >> active = READ_ONCE(*cur); >> smb_rmb(); >> cur = READ_ONCE(execlists->active); >> >> With this, it should not matter at which point the execlists->active >> is sampled as the pending would be guaranteed to be >> immutable if it sampled early and inflight immutable if it >> sampled late? > > Simply because we don't care about the sampling, just that the read > dependency gives us a valid pointer. (We are not looking at a snapshot > of several reads, but a _single_ read and the data dependency from > that.) > -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/i915/gt: Defend against concurrent updates to execlists->active 2020-03-09 16:38 ` Mika Kuoppala @ 2020-03-09 17:01 ` Chris Wilson 0 siblings, 0 replies; 10+ messages in thread From: Chris Wilson @ 2020-03-09 17:01 UTC (permalink / raw) To: Mika Kuoppala, intel-gfx Quoting Mika Kuoppala (2020-03-09 16:38:49) > Chris Wilson <chris@chris-wilson.co.uk> writes: > > > Quoting Mika Kuoppala (2020-03-09 15:34:40) > >> Chris Wilson <chris@chris-wilson.co.uk> writes: > >> > >> > [ 206.875637] BUG: KCSAN: data-race in __i915_schedule+0x7fc/0x930 [i915] > >> > [ 206.875654] > >> > [ 206.875666] race at unknown origin, with read to 0xffff8881f7644480 of 8 bytes by task 703 on cpu 3: > >> > [ 206.875901] __i915_schedule+0x7fc/0x930 [i915] > >> > [ 206.876130] __bump_priority+0x63/0x80 [i915] > >> > [ 206.876361] __i915_sched_node_add_dependency+0x258/0x300 [i915] > >> > [ 206.876593] i915_sched_node_add_dependency+0x50/0xa0 [i915] > >> > [ 206.876824] i915_request_await_dma_fence+0x1da/0x530 [i915] > >> > [ 206.877057] i915_request_await_object+0x2fe/0x470 [i915] > >> > [ 206.877287] i915_gem_do_execbuffer+0x45dc/0x4c20 [i915] > >> > [ 206.877517] i915_gem_execbuffer2_ioctl+0x2c3/0x580 [i915] > >> > [ 206.877535] drm_ioctl_kernel+0xe4/0x120 > >> > [ 206.877549] drm_ioctl+0x297/0x4c7 > >> > [ 206.877563] ksys_ioctl+0x89/0xb0 > >> > [ 206.877577] __x64_sys_ioctl+0x42/0x60 > >> > [ 206.877591] do_syscall_64+0x6e/0x2c0 > >> > [ 206.877606] entry_SYSCALL_64_after_hwframe+0x44/0xa9 > >> > > >> > References: https://gitlab.freedesktop.org/drm/intel/issues/1318 > >> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > >> > --- > >> > drivers/gpu/drm/i915/gt/intel_engine.h | 12 +++++++++++- > >> > 1 file changed, 11 insertions(+), 1 deletion(-) > >> > > >> > diff --git a/drivers/gpu/drm/i915/gt/intel_engine.h b/drivers/gpu/drm/i915/gt/intel_engine.h > >> > index 29c8c03c5caa..f267f51c457c 100644 > >> > --- a/drivers/gpu/drm/i915/gt/intel_engine.h > >> > +++ b/drivers/gpu/drm/i915/gt/intel_engine.h > >> > @@ -107,7 +107,17 @@ execlists_num_ports(const struct intel_engine_execlists * const execlists) > >> > static inline struct i915_request * > >> > execlists_active(const struct intel_engine_execlists *execlists) > >> > { > >> > - return *READ_ONCE(execlists->active); > >> > + struct i915_request * const *cur = READ_ONCE(execlists->active); > >> > + struct i915_request * const *old; > >> > + struct i915_request *active; > >> > + > >> > + do { > >> > + old = cur; > >> > + active = READ_ONCE(*cur); > >> > + cur = READ_ONCE(execlists->active); > >> > + } while (cur != old); > >> > + > >> > + return active; > >> > >> The updated side is scary. We are updating the execlists->active > >> in two phases and handling the array copying in between. > >> > >> as WRITE_ONCE only guarantees ordering inside one context, due to > >> it is for compiler only, it makes me very suspicious about > >> how the memcpy of pending->inflight might unravel between two cpus. > >> > >> smb_store_mb(execlists->active, execlists->pending); > >> memcpy(inflight, pending) > >> smb_wmb(); > >> smb_store_mb(execlists->active, execlists->inflight); > >> smb_store_mb(execlists->pending[0], NULL); > > > > Not quite. You've overkill on the mb there. > > > > If you want to be pedantic, > > > > WRITE_ONCE(active, pending); > > smp_wmb(); > > > > memcpy(inflight, pending); > > smp_wmb(); > > WRITE_ONCE(active, inflight); > > This is the crux of it, needing rmb counterpart. I suspect this is overkill, but if we really do want the change in active to be visible before the memcpy, that wmb is strictly required. -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Intel-gfx] [PATCH v2] drm/i915/gt: Defend against concurrent updates to execlists->active 2020-03-09 11:24 [Intel-gfx] [PATCH] drm/i915/gt: Defend against concurrent updates to execlists->active Chris Wilson 2020-03-09 13:14 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork 2020-03-09 15:34 ` [Intel-gfx] [PATCH] " Mika Kuoppala @ 2020-03-09 17:05 ` Chris Wilson 2020-03-09 17:41 ` Mika Kuoppala 2020-03-09 19:34 ` [Intel-gfx] ✓ Fi.CI.IGT: success for " Patchwork 2020-03-10 13:57 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915/gt: Defend against concurrent updates to execlists->active (rev2) Patchwork 4 siblings, 1 reply; 10+ messages in thread From: Chris Wilson @ 2020-03-09 17:05 UTC (permalink / raw) To: intel-gfx [ 206.875637] BUG: KCSAN: data-race in __i915_schedule+0x7fc/0x930 [i915] [ 206.875654] [ 206.875666] race at unknown origin, with read to 0xffff8881f7644480 of 8 bytes by task 703 on cpu 3: [ 206.875901] __i915_schedule+0x7fc/0x930 [i915] [ 206.876130] __bump_priority+0x63/0x80 [i915] [ 206.876361] __i915_sched_node_add_dependency+0x258/0x300 [i915] [ 206.876593] i915_sched_node_add_dependency+0x50/0xa0 [i915] [ 206.876824] i915_request_await_dma_fence+0x1da/0x530 [i915] [ 206.877057] i915_request_await_object+0x2fe/0x470 [i915] [ 206.877287] i915_gem_do_execbuffer+0x45dc/0x4c20 [i915] [ 206.877517] i915_gem_execbuffer2_ioctl+0x2c3/0x580 [i915] [ 206.877535] drm_ioctl_kernel+0xe4/0x120 [ 206.877549] drm_ioctl+0x297/0x4c7 [ 206.877563] ksys_ioctl+0x89/0xb0 [ 206.877577] __x64_sys_ioctl+0x42/0x60 [ 206.877591] do_syscall_64+0x6e/0x2c0 [ 206.877606] entry_SYSCALL_64_after_hwframe+0x44/0xa9 v2: Be safe and include mb References: https://gitlab.freedesktop.org/drm/intel/issues/1318 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com> --- drivers/gpu/drm/i915/gt/intel_engine.h | 15 ++++++++++++++- drivers/gpu/drm/i915/gt/intel_lrc.c | 12 +++++++----- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/intel_engine.h b/drivers/gpu/drm/i915/gt/intel_engine.h index 29c8c03c5caa..3644fd2b8877 100644 --- a/drivers/gpu/drm/i915/gt/intel_engine.h +++ b/drivers/gpu/drm/i915/gt/intel_engine.h @@ -107,7 +107,20 @@ execlists_num_ports(const struct intel_engine_execlists * const execlists) static inline struct i915_request * execlists_active(const struct intel_engine_execlists *execlists) { - return *READ_ONCE(execlists->active); + struct i915_request * const *cur, * const *old, *active; + + cur = READ_ONCE(execlists->active); + smp_rmb(); /* pairs with overwrite protection in process_csb() */ + do { + old = cur; + + active = READ_ONCE(*cur); + cur = READ_ONCE(execlists->active); + + smp_rmb(); /* and complete the seqlock retry */ + } while (cur != old); + + return active; } static inline void diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c index 3eb7adc4e057..f4b7fdfa2d63 100644 --- a/drivers/gpu/drm/i915/gt/intel_lrc.c +++ b/drivers/gpu/drm/i915/gt/intel_lrc.c @@ -2389,6 +2389,7 @@ static void process_csb(struct intel_engine_cs *engine) /* Point active to the new ELSP; prevent overwriting */ WRITE_ONCE(execlists->active, execlists->pending); + smp_wmb(); /* notify execlists_active() */ /* cancel old inflight, prepare for switch */ trace_ports(execlists, "preempted", old); @@ -2396,11 +2397,12 @@ static void process_csb(struct intel_engine_cs *engine) execlists_schedule_out(*old++); /* switch pending to inflight */ - WRITE_ONCE(execlists->active, - memcpy(execlists->inflight, - execlists->pending, - execlists_num_ports(execlists) * - sizeof(*execlists->pending))); + memcpy(execlists->inflight, + execlists->pending, + execlists_num_ports(execlists) * + sizeof(*execlists->pending)); + smp_wmb(); /* complete the seqlock */ + WRITE_ONCE(execlists->active, execlists->inflight); WRITE_ONCE(execlists->pending[0], NULL); } else { -- 2.20.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [Intel-gfx] [PATCH v2] drm/i915/gt: Defend against concurrent updates to execlists->active 2020-03-09 17:05 ` [Intel-gfx] [PATCH v2] " Chris Wilson @ 2020-03-09 17:41 ` Mika Kuoppala 0 siblings, 0 replies; 10+ messages in thread From: Mika Kuoppala @ 2020-03-09 17:41 UTC (permalink / raw) To: Chris Wilson, intel-gfx Chris Wilson <chris@chris-wilson.co.uk> writes: > [ 206.875637] BUG: KCSAN: data-race in __i915_schedule+0x7fc/0x930 [i915] > [ 206.875654] > [ 206.875666] race at unknown origin, with read to 0xffff8881f7644480 of 8 bytes by task 703 on cpu 3: > [ 206.875901] __i915_schedule+0x7fc/0x930 [i915] > [ 206.876130] __bump_priority+0x63/0x80 [i915] > [ 206.876361] __i915_sched_node_add_dependency+0x258/0x300 [i915] > [ 206.876593] i915_sched_node_add_dependency+0x50/0xa0 [i915] > [ 206.876824] i915_request_await_dma_fence+0x1da/0x530 [i915] > [ 206.877057] i915_request_await_object+0x2fe/0x470 [i915] > [ 206.877287] i915_gem_do_execbuffer+0x45dc/0x4c20 [i915] > [ 206.877517] i915_gem_execbuffer2_ioctl+0x2c3/0x580 [i915] > [ 206.877535] drm_ioctl_kernel+0xe4/0x120 > [ 206.877549] drm_ioctl+0x297/0x4c7 > [ 206.877563] ksys_ioctl+0x89/0xb0 > [ 206.877577] __x64_sys_ioctl+0x42/0x60 > [ 206.877591] do_syscall_64+0x6e/0x2c0 > [ 206.877606] entry_SYSCALL_64_after_hwframe+0x44/0xa9 > > v2: Be safe and include mb > > References: https://gitlab.freedesktop.org/drm/intel/issues/1318 > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com> > --- > drivers/gpu/drm/i915/gt/intel_engine.h | 15 ++++++++++++++- > drivers/gpu/drm/i915/gt/intel_lrc.c | 12 +++++++----- > 2 files changed, 21 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gt/intel_engine.h b/drivers/gpu/drm/i915/gt/intel_engine.h > index 29c8c03c5caa..3644fd2b8877 100644 > --- a/drivers/gpu/drm/i915/gt/intel_engine.h > +++ b/drivers/gpu/drm/i915/gt/intel_engine.h > @@ -107,7 +107,20 @@ execlists_num_ports(const struct intel_engine_execlists * const execlists) > static inline struct i915_request * > execlists_active(const struct intel_engine_execlists *execlists) > { > - return *READ_ONCE(execlists->active); > + struct i915_request * const *cur, * const *old, *active; > + > + cur = READ_ONCE(execlists->active); > + smp_rmb(); /* pairs with overwrite protection in process_csb() */ > + do { > + old = cur; > + > + active = READ_ONCE(*cur); > + cur = READ_ONCE(execlists->active); > + > + smp_rmb(); /* and complete the seqlock retry */ > + } while (cur != old); > + > + return active; > } > > static inline void > diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c > index 3eb7adc4e057..f4b7fdfa2d63 100644 > --- a/drivers/gpu/drm/i915/gt/intel_lrc.c > +++ b/drivers/gpu/drm/i915/gt/intel_lrc.c > @@ -2389,6 +2389,7 @@ static void process_csb(struct intel_engine_cs *engine) > > /* Point active to the new ELSP; prevent overwriting */ > WRITE_ONCE(execlists->active, execlists->pending); > + smp_wmb(); /* notify execlists_active() */ > > /* cancel old inflight, prepare for switch */ > trace_ports(execlists, "preempted", old); > @@ -2396,11 +2397,12 @@ static void process_csb(struct intel_engine_cs *engine) > execlists_schedule_out(*old++); > > /* switch pending to inflight */ > - WRITE_ONCE(execlists->active, > - memcpy(execlists->inflight, > - execlists->pending, > - execlists_num_ports(execlists) * > - sizeof(*execlists->pending))); > + memcpy(execlists->inflight, > + execlists->pending, > + execlists_num_ports(execlists) * > + sizeof(*execlists->pending)); > + smp_wmb(); /* complete the seqlock */ > + WRITE_ONCE(execlists->active, execlists->inflight); Now the memcpy bit is nicely in order, Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> > > WRITE_ONCE(execlists->pending[0], NULL); > } else { > -- > 2.20.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915/gt: Defend against concurrent updates to execlists->active 2020-03-09 11:24 [Intel-gfx] [PATCH] drm/i915/gt: Defend against concurrent updates to execlists->active Chris Wilson ` (2 preceding siblings ...) 2020-03-09 17:05 ` [Intel-gfx] [PATCH v2] " Chris Wilson @ 2020-03-09 19:34 ` Patchwork 2020-03-10 13:57 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915/gt: Defend against concurrent updates to execlists->active (rev2) Patchwork 4 siblings, 0 replies; 10+ messages in thread From: Patchwork @ 2020-03-09 19:34 UTC (permalink / raw) To: Chris Wilson; +Cc: intel-gfx == Series Details == Series: drm/i915/gt: Defend against concurrent updates to execlists->active URL : https://patchwork.freedesktop.org/series/74447/ State : success == Summary == CI Bug Log - changes from CI_DRM_8097_full -> Patchwork_16878_full ==================================================== Summary ------- **SUCCESS** No regressions found. Known issues ------------ Here are the changes found in Patchwork_16878_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_exec_parallel@vcs1-fds: - shard-iclb: [PASS][1] -> [SKIP][2] ([fdo#112080]) +12 similar issues [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-iclb1/igt@gem_exec_parallel@vcs1-fds.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-iclb6/igt@gem_exec_parallel@vcs1-fds.html * igt@gem_exec_schedule@implicit-read-write-bsd2: - shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#109276] / [i915#677]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-iclb2/igt@gem_exec_schedule@implicit-read-write-bsd2.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-iclb3/igt@gem_exec_schedule@implicit-read-write-bsd2.html * igt@gem_exec_schedule@pi-common-bsd: - shard-iclb: [PASS][5] -> [SKIP][6] ([i915#677]) +3 similar issues [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-iclb6/igt@gem_exec_schedule@pi-common-bsd.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-iclb2/igt@gem_exec_schedule@pi-common-bsd.html * igt@gem_exec_schedule@wide-bsd: - shard-iclb: [PASS][7] -> [SKIP][8] ([fdo#112146]) +5 similar issues [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-iclb5/igt@gem_exec_schedule@wide-bsd.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-iclb2/igt@gem_exec_schedule@wide-bsd.html * igt@gem_ppgtt@flink-and-close-vma-leak: - shard-apl: [PASS][9] -> [FAIL][10] ([i915#644]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-apl3/igt@gem_ppgtt@flink-and-close-vma-leak.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-apl3/igt@gem_ppgtt@flink-and-close-vma-leak.html * igt@gem_userptr_blits@sync-unmap-after-close: - shard-apl: [PASS][11] -> [DMESG-WARN][12] ([fdo#111870] / [i915#211] / [i915#836]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-apl7/igt@gem_userptr_blits@sync-unmap-after-close.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-apl3/igt@gem_userptr_blits@sync-unmap-after-close.html * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy: - shard-glk: [PASS][13] -> [FAIL][14] ([i915#72]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-glk4/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-glk1/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html * igt@kms_flip@flip-vs-suspend-interruptible: - shard-apl: [PASS][15] -> [DMESG-WARN][16] ([i915#180]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-apl8/igt@kms_flip@flip-vs-suspend-interruptible.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-apl4/igt@kms_flip@flip-vs-suspend-interruptible.html * igt@kms_psr@psr2_sprite_render: - shard-iclb: [PASS][17] -> [SKIP][18] ([fdo#109441]) +1 similar issue [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-iclb2/igt@kms_psr@psr2_sprite_render.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-iclb3/igt@kms_psr@psr2_sprite_render.html * igt@prime_busy@hang-bsd2: - shard-iclb: [PASS][19] -> [SKIP][20] ([fdo#109276]) +12 similar issues [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-iclb1/igt@prime_busy@hang-bsd2.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-iclb3/igt@prime_busy@hang-bsd2.html #### Possible fixes #### * igt@gem_eio@in-flight-suspend: - shard-kbl: [INCOMPLETE][21] ([i915#155]) -> [PASS][22] [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-kbl3/igt@gem_eio@in-flight-suspend.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-kbl7/igt@gem_eio@in-flight-suspend.html * igt@gem_exec_schedule@implicit-read-write-bsd1: - shard-iclb: [SKIP][23] ([fdo#109276] / [i915#677]) -> [PASS][24] +1 similar issue [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-iclb8/igt@gem_exec_schedule@implicit-read-write-bsd1.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-iclb4/igt@gem_exec_schedule@implicit-read-write-bsd1.html * igt@gem_exec_schedule@in-order-bsd: - shard-iclb: [SKIP][25] ([fdo#112146]) -> [PASS][26] +5 similar issues [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-iclb1/igt@gem_exec_schedule@in-order-bsd.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-iclb6/igt@gem_exec_schedule@in-order-bsd.html * igt@gem_exec_schedule@pi-distinct-iova-bsd: - shard-iclb: [SKIP][27] ([i915#677]) -> [PASS][28] +1 similar issue [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-iclb2/igt@gem_exec_schedule@pi-distinct-iova-bsd.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-iclb3/igt@gem_exec_schedule@pi-distinct-iova-bsd.html * igt@gem_exec_schedule@preempt-queue-bsd1: - shard-iclb: [SKIP][29] ([fdo#109276]) -> [PASS][30] +24 similar issues [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-iclb6/igt@gem_exec_schedule@preempt-queue-bsd1.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-iclb2/igt@gem_exec_schedule@preempt-queue-bsd1.html * igt@gem_exec_whisper@basic-contexts: - shard-glk: [DMESG-WARN][31] ([i915#118] / [i915#95]) -> [PASS][32] [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-glk2/igt@gem_exec_whisper@basic-contexts.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-glk6/igt@gem_exec_whisper@basic-contexts.html * igt@i915_pm_dc@dc6-psr: - shard-iclb: [FAIL][33] ([i915#454]) -> [PASS][34] [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-iclb6/igt@i915_pm_dc@dc6-psr.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-iclb2/igt@i915_pm_dc@dc6-psr.html * igt@kms_cursor_crc@pipe-b-cursor-suspend: - shard-apl: [DMESG-WARN][35] ([i915#180]) -> [PASS][36] +1 similar issue [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-apl6/igt@kms_cursor_crc@pipe-b-cursor-suspend.html [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-apl7/igt@kms_cursor_crc@pipe-b-cursor-suspend.html * igt@kms_cursor_legacy@cursor-vs-flip-toggle: - shard-hsw: [FAIL][37] ([i915#57]) -> [PASS][38] [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-hsw6/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-hsw4/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html * igt@kms_flip@flip-vs-suspend: - shard-hsw: [INCOMPLETE][39] ([i915#61]) -> [PASS][40] [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-hsw8/igt@kms_flip@flip-vs-suspend.html [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-hsw6/igt@kms_flip@flip-vs-suspend.html * igt@kms_plane_lowres@pipe-a-tiling-y: - shard-glk: [FAIL][41] ([i915#899]) -> [PASS][42] [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-glk5/igt@kms_plane_lowres@pipe-a-tiling-y.html [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-glk7/igt@kms_plane_lowres@pipe-a-tiling-y.html * igt@kms_psr@psr2_primary_page_flip: - shard-iclb: [SKIP][43] ([fdo#109441]) -> [PASS][44] +1 similar issue [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-iclb5/igt@kms_psr@psr2_primary_page_flip.html [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html * igt@kms_psr@suspend: - shard-iclb: [INCOMPLETE][45] ([i915#1185]) -> [PASS][46] [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-iclb3/igt@kms_psr@suspend.html [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-iclb1/igt@kms_psr@suspend.html * igt@perf_pmu@busy-vcs1: - shard-iclb: [SKIP][47] ([fdo#112080]) -> [PASS][48] +10 similar issues [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-iclb8/igt@perf_pmu@busy-vcs1.html [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-iclb4/igt@perf_pmu@busy-vcs1.html #### Warnings #### * igt@gem_ctx_persistence@close-replace-race: - shard-apl: [TIMEOUT][49] ([i915#1340]) -> [INCOMPLETE][50] ([fdo#103927] / [i915#1402]) [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-apl8/igt@gem_ctx_persistence@close-replace-race.html [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-apl1/igt@gem_ctx_persistence@close-replace-race.html * igt@runner@aborted: - shard-kbl: ([FAIL][51], [FAIL][52]) ([i915#1389] / [i915#1402] / [i915#92]) -> [FAIL][53] ([i915#92]) [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-kbl6/igt@runner@aborted.html [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-kbl6/igt@runner@aborted.html [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-kbl2/igt@runner@aborted.html - shard-apl: [FAIL][54] ([fdo#103927]) -> ([FAIL][55], [FAIL][56], [FAIL][57]) ([fdo#103927] / [fdo#111870] / [i915#1402] / [i915#211] / [i915#771]) [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8097/shard-apl1/igt@runner@aborted.html [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-apl1/igt@runner@aborted.html [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-apl4/igt@runner@aborted.html [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/shard-apl3/igt@runner@aborted.html [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927 [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276 [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441 [fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870 [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080 [fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146 [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118 [i915#1185]: https://gitlab.freedesktop.org/drm/intel/issues/1185 [i915#1340]: https://gitlab.freedesktop.org/drm/intel/issues/1340 [i915#1389]: https://gitlab.freedesktop.org/drm/intel/issues/1389 [i915#1402]: https://gitlab.freedesktop.org/drm/intel/issues/1402 [i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155 [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180 [i915#211]: https://gitlab.freedesktop.org/drm/intel/issues/211 [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454 [i915#57]: https://gitlab.freedesktop.org/drm/intel/issues/57 [i915#61]: https://gitlab.freedesktop.org/drm/intel/issues/61 [i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644 [i915#677]: https://gitlab.freedesktop.org/drm/intel/issues/677 [i915#72]: https://gitlab.freedesktop.org/drm/intel/issues/72 [i915#771]: https://gitlab.freedesktop.org/drm/intel/issues/771 [i915#836]: https://gitlab.freedesktop.org/drm/intel/issues/836 [i915#899]: https://gitlab.freedesktop.org/drm/intel/issues/899 [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92 [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95 Participating hosts (10 -> 10) ------------------------------ No changes in participating hosts Build changes ------------- * CI: CI-20190529 -> None * Linux: CI_DRM_8097 -> Patchwork_16878 CI-20190529: 20190529 CI_DRM_8097: 2e46e269a2843c5d0b6c72bfb7fa9d9913c15415 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_5499: 2e23cf6f63fc6ba1d9543f8327698d6f21813cec @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_16878: 97cfa95059160fb433579a941ae2620d15d43b24 @ git://anongit.freedesktop.org/gfx-ci/linux piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16878/index.html _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915/gt: Defend against concurrent updates to execlists->active (rev2) 2020-03-09 11:24 [Intel-gfx] [PATCH] drm/i915/gt: Defend against concurrent updates to execlists->active Chris Wilson ` (3 preceding siblings ...) 2020-03-09 19:34 ` [Intel-gfx] ✓ Fi.CI.IGT: success for " Patchwork @ 2020-03-10 13:57 ` Patchwork 4 siblings, 0 replies; 10+ messages in thread From: Patchwork @ 2020-03-10 13:57 UTC (permalink / raw) To: Chris Wilson; +Cc: intel-gfx == Series Details == Series: drm/i915/gt: Defend against concurrent updates to execlists->active (rev2) URL : https://patchwork.freedesktop.org/series/74447/ State : failure == Summary == Applying: drm/i915/gt: Defend against concurrent updates to execlists->active Using index info to reconstruct a base tree... M drivers/gpu/drm/i915/gt/intel_engine.h M drivers/gpu/drm/i915/gt/intel_lrc.c Falling back to patching base and 3-way merge... Auto-merging drivers/gpu/drm/i915/gt/intel_lrc.c Auto-merging drivers/gpu/drm/i915/gt/intel_engine.h CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/gt/intel_engine.h error: Failed to merge in the changes. hint: Use 'git am --show-current-patch' to see the failed patch Patch failed at 0001 drm/i915/gt: Defend against concurrent updates to execlists->active When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort". _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2020-03-10 13:57 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-03-09 11:24 [Intel-gfx] [PATCH] drm/i915/gt: Defend against concurrent updates to execlists->active Chris Wilson 2020-03-09 13:14 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork 2020-03-09 15:34 ` [Intel-gfx] [PATCH] " Mika Kuoppala 2020-03-09 16:19 ` Chris Wilson 2020-03-09 16:38 ` Mika Kuoppala 2020-03-09 17:01 ` Chris Wilson 2020-03-09 17:05 ` [Intel-gfx] [PATCH v2] " Chris Wilson 2020-03-09 17:41 ` Mika Kuoppala 2020-03-09 19:34 ` [Intel-gfx] ✓ Fi.CI.IGT: success for " Patchwork 2020-03-10 13:57 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915/gt: Defend against concurrent updates to execlists->active (rev2) Patchwork
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).