* [PATCH] drm/i915/icl: Forcibly evict stale csb entries
@ 2018-12-05 13:46 Mika Kuoppala
2018-12-05 13:58 ` Chris Wilson
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Mika Kuoppala @ 2018-12-05 13:46 UTC (permalink / raw)
To: intel-gfx
Gen11 fails to deliver wrt global observation point on
tail/entry updates and we sometimes see old entry.
Use clflush to forcibly evict our possibly stale copy
of the cacheline in hopes that we get fresh one from gpu.
Obviously there is something amiss in the coherency protocol so
this can be consired as a workaround until real cause
is found.
The working hardware will do the evict without our cue anyways,
so the cost in there should be ameliorated by that fact.
v2: for next pass, s/flush/evict, add reset (Chris)
References: https://bugzilla.freedesktop.org/show_bug.cgi?id=108315
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_lrc.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index d7fa301b5ec7..2fe920751d94 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -765,6 +765,13 @@ execlists_cancel_port_requests(struct intel_engine_execlists * const execlists)
execlists_clear_all_active(execlists);
}
+static inline void
+invalidate_csb_entries(const u32 *first, const u32 *last)
+{
+ clflush((void *)first);
+ clflush((void *)last);
+}
+
static void reset_csb_pointers(struct intel_engine_execlists *execlists)
{
const unsigned int reset_value = GEN8_CSB_ENTRIES - 1;
@@ -780,6 +787,9 @@ static void reset_csb_pointers(struct intel_engine_execlists *execlists)
*/
execlists->csb_head = reset_value;
WRITE_ONCE(*execlists->csb_write, reset_value);
+
+ invalidate_csb_entries(&execlists->csb_status[0],
+ &execlists->csb_status[GEN8_CSB_ENTRIES - 1]);
}
static void nop_submission_tasklet(unsigned long data)
@@ -1015,6 +1025,19 @@ static void process_csb(struct intel_engine_cs *engine)
} while (head != tail);
execlists->csb_head = head;
+
+ /*
+ * Gen11 has proven to fail wrt global observation point between
+ * entry and tail update, failing on the ordering and thus
+ * we see an old entry in the context status buffer.
+ *
+ * Forcibly evict out entries for the next gpu csb update,
+ * to increase the odds that we get a fresh entries with non
+ * working hardware. The cost for doing so comes out mostly with
+ * the wash as hardware, working or not, will need to do the
+ * invalidation before.
+ */
+ invalidate_csb_entries(&buf[0], &buf[GEN8_CSB_ENTRIES - 1]);
}
static void __execlists_submission_tasklet(struct intel_engine_cs *const engine)
--
2.17.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] drm/i915/icl: Forcibly evict stale csb entries
2018-12-05 13:46 [PATCH] drm/i915/icl: Forcibly evict stale csb entries Mika Kuoppala
@ 2018-12-05 13:58 ` Chris Wilson
2018-12-07 12:37 ` Mika Kuoppala
2018-12-05 15:36 ` ✓ Fi.CI.BAT: success for " Patchwork
` (2 subsequent siblings)
3 siblings, 1 reply; 6+ messages in thread
From: Chris Wilson @ 2018-12-05 13:58 UTC (permalink / raw)
To: Mika Kuoppala, intel-gfx
Quoting Mika Kuoppala (2018-12-05 13:46:12)
> static void nop_submission_tasklet(unsigned long data)
> @@ -1015,6 +1025,19 @@ static void process_csb(struct intel_engine_cs *engine)
> } while (head != tail);
>
> execlists->csb_head = head;
> +
> + /*
> + * Gen11 has proven to fail wrt global observation point between
> + * entry and tail update, failing on the ordering and thus
> + * we see an old entry in the context status buffer.
> + *
> + * Forcibly evict out entries for the next gpu csb update,
> + * to increase the odds that we get a fresh entries with non
> + * working hardware. The cost for doing so comes out mostly with
> + * the wash as hardware, working or not, will need to do the
> + * invalidation before.
> + */
> + invalidate_csb_entries(&buf[0], &buf[GEN8_CSB_ENTRIES - 1]);
If it works, this is a stroke of genius.
If we hypothesize that the GPU did write the CSB entries before the head
pointer and inserted a Global Observation point beforehand, then we
theorize that they merely forgot the cc protocol, the writes to system memory is
correctly, but unordered into the cpu cache.
By using the clflush to evict our used cacheline, on the next pass we
will pull in that CSB entry cacheline back in from memory (ordered by
the rmb used for the ringbuffer) and so, if the HW engineer's
insistence that they did remember their wmb, the CSB entries will be
coherent with the head pointer.
So we remove one piece of the puzzle at what should be negligible cost,
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915/icl: Forcibly evict stale csb entries
2018-12-05 13:46 [PATCH] drm/i915/icl: Forcibly evict stale csb entries Mika Kuoppala
2018-12-05 13:58 ` Chris Wilson
@ 2018-12-05 15:36 ` Patchwork
2018-12-05 20:25 ` ✗ Fi.CI.IGT: failure " Patchwork
2018-12-05 21:20 ` ✓ Fi.CI.BAT: success for drm/i915/icl: Forcibly evict stale csb entries (rev2) Patchwork
3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2018-12-05 15:36 UTC (permalink / raw)
To: Mika Kuoppala; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/icl: Forcibly evict stale csb entries
URL : https://patchwork.freedesktop.org/series/53560/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_5266 -> Patchwork_11019
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/53560/revisions/1/mbox/
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_11019:
### IGT changes ###
#### Warnings ####
* igt@kms_pipe_crc_basic@nonblocking-crc-pipe-c:
- {fi-kbl-7567u}: PASS -> SKIP +33
Known issues
------------
Here are the changes found in Patchwork_11019 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_suspend@basic-s3:
- fi-blb-e6850: PASS -> INCOMPLETE [fdo#107718]
* igt@i915_selftest@live_execlists:
- fi-apl-guc: PASS -> INCOMPLETE [fdo#103927]
* igt@kms_chamelium@common-hpd-after-suspend:
- fi-icl-u2: NOTRUN -> DMESG-FAIL [fdo#103375] / [fdo#107732] / [fdo#108070] / [fdo#108924]
* {igt@runner@aborted}:
- fi-icl-u2: NOTRUN -> FAIL [fdo#108070]
- {fi-icl-u3}: NOTRUN -> FAIL [fdo#108866]
- {fi-icl-y}: NOTRUN -> FAIL [fdo#108070]
- fi-apl-guc: NOTRUN -> FAIL [fdo#108622]
#### Possible fixes ####
* igt@i915_selftest@live_hangcheck:
- fi-bwr-2160: DMESG-FAIL [fdo#108735] -> PASS
#### Warnings ####
* igt@i915_selftest@live_contexts:
- {fi-icl-u3}: DMESG-FAIL [fdo#108569] -> INCOMPLETE [fdo#108315]
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
[fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
[fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
[fdo#107732]: https://bugs.freedesktop.org/show_bug.cgi?id=107732
[fdo#108070]: https://bugs.freedesktop.org/show_bug.cgi?id=108070
[fdo#108315]: https://bugs.freedesktop.org/show_bug.cgi?id=108315
[fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
[fdo#108622]: https://bugs.freedesktop.org/show_bug.cgi?id=108622
[fdo#108735]: https://bugs.freedesktop.org/show_bug.cgi?id=108735
[fdo#108866]: https://bugs.freedesktop.org/show_bug.cgi?id=108866
[fdo#108924]: https://bugs.freedesktop.org/show_bug.cgi?id=108924
Participating hosts (47 -> 45)
------------------------------
Additional (2): fi-icl-y fi-icl-u2
Missing (4): fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u
Build changes
-------------
* Linux: CI_DRM_5266 -> Patchwork_11019
CI_DRM_5266: 529899779ce289fe64cd2249da1eb9bcea6a423f @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4741: 5c8f89f67c7b32014bc22421e48f3c0cf4e5ca3a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_11019: 4a94a550e4fc2b333cc8ddacd9a9b5eff668e206 @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
4a94a550e4fc drm/i915/icl: Forcibly evict stale csb entries
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_11019/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* ✗ Fi.CI.IGT: failure for drm/i915/icl: Forcibly evict stale csb entries
2018-12-05 13:46 [PATCH] drm/i915/icl: Forcibly evict stale csb entries Mika Kuoppala
2018-12-05 13:58 ` Chris Wilson
2018-12-05 15:36 ` ✓ Fi.CI.BAT: success for " Patchwork
@ 2018-12-05 20:25 ` Patchwork
2018-12-05 21:20 ` ✓ Fi.CI.BAT: success for drm/i915/icl: Forcibly evict stale csb entries (rev2) Patchwork
3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2018-12-05 20:25 UTC (permalink / raw)
To: Mika Kuoppala; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/icl: Forcibly evict stale csb entries
URL : https://patchwork.freedesktop.org/series/53560/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_5266_full -> Patchwork_11019_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_11019_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_11019_full, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_11019_full:
### IGT changes ###
#### Possible regressions ####
* igt@kms_cursor_legacy@pipe-c-torture-bo:
- shard-skl: PASS -> INCOMPLETE
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-blt:
- {shard-iclb}: PASS -> INCOMPLETE
Known issues
------------
Here are the changes found in Patchwork_11019_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_schedule@pi-ringfull-blt:
- {shard-iclb}: NOTRUN -> FAIL [fdo#103158]
* igt@gem_ppgtt@blt-vs-render-ctx0:
- shard-skl: PASS -> TIMEOUT [fdo#108039]
* igt@kms_available_modes_crc@available_mode_test_crc:
- shard-apl: PASS -> FAIL [fdo#106641]
* igt@kms_ccs@pipe-c-crc-sprite-planes-basic:
- {shard-iclb}: NOTRUN -> FAIL [fdo#107725]
* igt@kms_chv_cursor_fail@pipe-c-128x128-top-edge:
- shard-skl: PASS -> FAIL [fdo#104671]
* igt@kms_cursor_crc@cursor-128x128-dpms:
- shard-apl: PASS -> FAIL [fdo#103232]
* igt@kms_cursor_crc@cursor-256x256-onscreen:
- shard-glk: PASS -> FAIL [fdo#103232] +1
* igt@kms_cursor_crc@cursor-256x85-random:
- shard-skl: NOTRUN -> FAIL [fdo#103232]
* igt@kms_cursor_crc@cursor-64x64-onscreen:
- {shard-iclb}: NOTRUN -> FAIL [fdo#103232] +6
* igt@kms_draw_crc@draw-method-xrgb8888-render-ytiled:
- {shard-iclb}: PASS -> WARN [fdo#108336] +2
* igt@kms_flip@flip-vs-panning-vs-hang-interruptible:
- {shard-iclb}: PASS -> DMESG-WARN [fdo#107724] +7
* igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-cpu:
- {shard-iclb}: NOTRUN -> DMESG-FAIL [fdo#107724]
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-fullscreen:
- shard-apl: PASS -> FAIL [fdo#103167] +1
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move:
- shard-glk: PASS -> FAIL [fdo#103167]
* igt@kms_frontbuffer_tracking@fbc-tilingchange:
- {shard-iclb}: PASS -> DMESG-FAIL [fdo#107724] +3
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-onoff:
- shard-skl: NOTRUN -> FAIL [fdo#103167]
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-wc:
- {shard-iclb}: PASS -> FAIL [fdo#103167] +2
* igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt:
- {shard-iclb}: PASS -> DMESG-WARN [fdo#107724] / [fdo#108336] +1
* igt@kms_frontbuffer_tracking@fbcpsr-stridechange:
- shard-skl: NOTRUN -> FAIL [fdo#105683]
* igt@kms_plane@pixel-format-pipe-a-planes:
- {shard-iclb}: NOTRUN -> FAIL [fdo#103166]
* igt@kms_plane@plane-position-covered-pipe-c-planes:
- shard-apl: PASS -> FAIL [fdo#103166]
- {shard-iclb}: PASS -> FAIL [fdo#103166]
* igt@kms_plane_alpha_blend@pipe-a-alpha-basic:
- shard-skl: NOTRUN -> FAIL [fdo#107815] / [fdo#108145]
* igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb:
- shard-skl: NOTRUN -> FAIL [fdo#108145]
* igt@kms_plane_scaling@pipe-b-scaler-with-rotation:
- {shard-iclb}: NOTRUN -> DMESG-WARN [fdo#107724]
* {igt@kms_rotation_crc@multiplane-rotation-cropping-top}:
- shard-kbl: PASS -> DMESG-FAIL [fdo#108950]
* igt@kms_setmode@basic:
- shard-kbl: PASS -> FAIL [fdo#99912]
* igt@perf@polling:
- shard-hsw: PASS -> FAIL [fdo#102252]
* igt@pm_rpm@i2c:
- {shard-iclb}: PASS -> INCOMPLETE [fdo#108840]
#### Possible fixes ####
* igt@kms_color@pipe-b-legacy-gamma:
- shard-apl: FAIL [fdo#104782] -> PASS
* igt@kms_cursor_crc@cursor-128x128-onscreen:
- shard-apl: FAIL [fdo#103232] -> PASS
* igt@kms_cursor_crc@cursor-64x64-sliding:
- shard-glk: FAIL [fdo#103232] -> PASS
* igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-skl: FAIL [fdo#105363] -> PASS
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-gtt:
- shard-apl: FAIL [fdo#103167] -> PASS
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-wc:
- {shard-iclb}: DMESG-FAIL [fdo#107724] -> PASS +1
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-gtt:
- shard-glk: FAIL [fdo#103167] -> PASS +1
* igt@kms_frontbuffer_tracking@fbc-2p-rte:
- shard-glk: FAIL [fdo#103167] / [fdo#105682] -> PASS
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite:
- {shard-iclb}: FAIL [fdo#103167] -> PASS +2
* igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-gtt:
- shard-skl: FAIL [fdo#103167] / [fdo#105682] -> PASS
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-pwrite:
- {shard-iclb}: DMESG-WARN [fdo#107724] / [fdo#108336] -> PASS +5
* igt@kms_plane_multiple@atomic-pipe-b-tiling-x:
- shard-glk: FAIL [fdo#103166] -> PASS
* igt@kms_plane_multiple@atomic-pipe-c-tiling-yf:
- shard-apl: FAIL [fdo#103166] -> PASS
* igt@pm_backlight@basic-brightness:
- {shard-iclb}: DMESG-WARN [fdo#107724] -> PASS +11
* igt@pm_rpm@gem-execbuf-stress-pc8:
- {shard-iclb}: INCOMPLETE [fdo#107713] / [fdo#108840] -> SKIP
- shard-skl: INCOMPLETE [fdo#107807] -> SKIP
* igt@pm_rpm@modeset-lpsp:
- {shard-iclb}: DMESG-WARN [fdo#108654] -> PASS
#### Warnings ####
* igt@i915_suspend@shrink:
- shard-skl: INCOMPLETE [fdo#106886] -> DMESG-WARN [fdo#108784]
- shard-glk: DMESG-WARN [fdo#108784] -> INCOMPLETE [fdo#103359] / [fdo#106886] / [k.org#198133]
* igt@kms_ccs@pipe-a-crc-primary-basic:
- {shard-iclb}: DMESG-WARN [fdo#107724] / [fdo#108336] -> FAIL [fdo#107725]
* igt@kms_ccs@pipe-a-crc-primary-rotation-180:
- {shard-iclb}: FAIL [fdo#107725] -> DMESG-WARN [fdo#107724] / [fdo#108336]
* igt@kms_cursor_crc@cursor-256x256-random:
- {shard-iclb}: FAIL [fdo#103232] -> DMESG-WARN [fdo#107724] / [fdo#108336]
* igt@kms_cursor_legacy@long-nonblocking-modeset-vs-cursor-atomic:
- {shard-iclb}: INCOMPLETE -> DMESG-WARN [fdo#107724]
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-fullscreen:
- {shard-iclb}: FAIL [fdo#103167] -> DMESG-WARN [fdo#107724] / [fdo#108336]
* igt@kms_hdmi_inject@inject-audio:
- {shard-iclb}: FAIL [fdo#102370] -> DMESG-FAIL [fdo#107724]
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#102252]: https://bugs.freedesktop.org/show_bug.cgi?id=102252
[fdo#102370]: https://bugs.freedesktop.org/show_bug.cgi?id=102370
[fdo#103158]: https://bugs.freedesktop.org/show_bug.cgi?id=103158
[fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
[fdo#103359]: https://bugs.freedesktop.org/show_bug.cgi?id=103359
[fdo#104671]: https://bugs.freedesktop.org/show_bug.cgi?id=104671
[fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
[fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
[fdo#105682]: https://bugs.freedesktop.org/show_bug.cgi?id=105682
[fdo#105683]: https://bugs.freedesktop.org/show_bug.cgi?id=105683
[fdo#106641]: https://bugs.freedesktop.org/show_bug.cgi?id=106641
[fdo#106886]: https://bugs.freedesktop.org/show_bug.cgi?id=106886
[fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
[fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
[fdo#107725]: https://bugs.freedesktop.org/show_bug.cgi?id=107725
[fdo#107807]: https://bugs.freedesktop.org/show_bug.cgi?id=107807
[fdo#107815]: https://bugs.freedesktop.org/show_bug.cgi?id=107815
[fdo#108039]: https://bugs.freedesktop.org/show_bug.cgi?id=108039
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#108336]: https://bugs.freedesktop.org/show_bug.cgi?id=108336
[fdo#108654]: https://bugs.freedesktop.org/show_bug.cgi?id=108654
[fdo#108784]: https://bugs.freedesktop.org/show_bug.cgi?id=108784
[fdo#108840]: https://bugs.freedesktop.org/show_bug.cgi?id=108840
[fdo#108950]: https://bugs.freedesktop.org/show_bug.cgi?id=108950
[fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
[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_5266 -> Patchwork_11019
CI_DRM_5266: 529899779ce289fe64cd2249da1eb9bcea6a423f @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4741: 5c8f89f67c7b32014bc22421e48f3c0cf4e5ca3a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_11019: 4a94a550e4fc2b333cc8ddacd9a9b5eff668e206 @ 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_11019/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915/icl: Forcibly evict stale csb entries (rev2)
2018-12-05 13:46 [PATCH] drm/i915/icl: Forcibly evict stale csb entries Mika Kuoppala
` (2 preceding siblings ...)
2018-12-05 20:25 ` ✗ Fi.CI.IGT: failure " Patchwork
@ 2018-12-05 21:20 ` Patchwork
3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2018-12-05 21:20 UTC (permalink / raw)
To: Mika Kuoppala; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/icl: Forcibly evict stale csb entries (rev2)
URL : https://patchwork.freedesktop.org/series/53560/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_5266 -> Patchwork_11024
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/53560/revisions/2/mbox/
Known issues
------------
Here are the changes found in Patchwork_11024 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_suspend@basic-s3:
- fi-blb-e6850: PASS -> INCOMPLETE [fdo#107718]
* igt@kms_chamelium@common-hpd-after-suspend:
- fi-icl-u2: NOTRUN -> DMESG-FAIL [fdo#103375] / [fdo#107732] / [fdo#108070] / [fdo#108924]
* igt@prime_self_import@basic-with_two_bos:
- fi-cfl-8109u: PASS -> DMESG-WARN [fdo#106107]
* {igt@runner@aborted}:
- fi-icl-u2: NOTRUN -> FAIL [fdo#108070]
- {fi-icl-u3}: NOTRUN -> FAIL [fdo#108866]
- {fi-icl-y}: NOTRUN -> FAIL [fdo#108070]
#### Possible fixes ####
* igt@gem_exec_suspend@basic-s4-devices:
- fi-ivb-3520m: FAIL [fdo#108880] -> PASS
* igt@i915_selftest@live_hangcheck:
- fi-bwr-2160: DMESG-FAIL [fdo#108735] -> PASS
#### Warnings ####
* igt@i915_selftest@live_contexts:
- {fi-icl-u3}: DMESG-FAIL [fdo#108569] -> INCOMPLETE [fdo#108315]
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
[fdo#106107]: https://bugs.freedesktop.org/show_bug.cgi?id=106107
[fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
[fdo#107732]: https://bugs.freedesktop.org/show_bug.cgi?id=107732
[fdo#108070]: https://bugs.freedesktop.org/show_bug.cgi?id=108070
[fdo#108315]: https://bugs.freedesktop.org/show_bug.cgi?id=108315
[fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
[fdo#108735]: https://bugs.freedesktop.org/show_bug.cgi?id=108735
[fdo#108866]: https://bugs.freedesktop.org/show_bug.cgi?id=108866
[fdo#108880]: https://bugs.freedesktop.org/show_bug.cgi?id=108880
[fdo#108924]: https://bugs.freedesktop.org/show_bug.cgi?id=108924
Participating hosts (47 -> 45)
------------------------------
Additional (2): fi-icl-y fi-icl-u2
Missing (4): fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u
Build changes
-------------
* Linux: CI_DRM_5266 -> Patchwork_11024
CI_DRM_5266: 529899779ce289fe64cd2249da1eb9bcea6a423f @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4741: 5c8f89f67c7b32014bc22421e48f3c0cf4e5ca3a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_11024: 17da1424ccbdd807dfc3508f071d72424425a82f @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
17da1424ccbd drm/i915/icl: Forcibly evict stale csb entries
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_11024/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] drm/i915/icl: Forcibly evict stale csb entries
2018-12-05 13:58 ` Chris Wilson
@ 2018-12-07 12:37 ` Mika Kuoppala
0 siblings, 0 replies; 6+ messages in thread
From: Mika Kuoppala @ 2018-12-07 12:37 UTC (permalink / raw)
To: Chris Wilson, intel-gfx
Chris Wilson <chris@chris-wilson.co.uk> writes:
> Quoting Mika Kuoppala (2018-12-05 13:46:12)
>> static void nop_submission_tasklet(unsigned long data)
>> @@ -1015,6 +1025,19 @@ static void process_csb(struct intel_engine_cs *engine)
>> } while (head != tail);
>>
>> execlists->csb_head = head;
>> +
>> + /*
>> + * Gen11 has proven to fail wrt global observation point between
>> + * entry and tail update, failing on the ordering and thus
>> + * we see an old entry in the context status buffer.
>> + *
>> + * Forcibly evict out entries for the next gpu csb update,
>> + * to increase the odds that we get a fresh entries with non
>> + * working hardware. The cost for doing so comes out mostly with
>> + * the wash as hardware, working or not, will need to do the
>> + * invalidation before.
>> + */
>> + invalidate_csb_entries(&buf[0], &buf[GEN8_CSB_ENTRIES - 1]);
>
> If it works, this is a stroke of genius.
>
> If we hypothesize that the GPU did write the CSB entries before the head
> pointer and inserted a Global Observation point beforehand, then we
> theorize that they merely forgot the cc protocol, the writes to system memory is
> correctly, but unordered into the cpu cache.
>
> By using the clflush to evict our used cacheline, on the next pass we
> will pull in that CSB entry cacheline back in from memory (ordered by
> the rmb used for the ringbuffer) and so, if the HW engineer's
> insistence that they did remember their wmb, the CSB entries will be
> coherent with the head pointer.
>
> So we remove one piece of the puzzle at what should be negligible cost,
> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Thank you for review and kind words, pushed.
-Mika
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2018-12-07 12:38 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-05 13:46 [PATCH] drm/i915/icl: Forcibly evict stale csb entries Mika Kuoppala
2018-12-05 13:58 ` Chris Wilson
2018-12-07 12:37 ` Mika Kuoppala
2018-12-05 15:36 ` ✓ Fi.CI.BAT: success for " Patchwork
2018-12-05 20:25 ` ✗ Fi.CI.IGT: failure " Patchwork
2018-12-05 21:20 ` ✓ Fi.CI.BAT: success for drm/i915/icl: Forcibly evict stale csb entries (rev2) 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.