* [Intel-gfx] [PATCH v2 0/2] Apply Wa_16018031267 / Wa_16018063123
@ 2023-08-23 18:51 Jonathan Cavitt
2023-08-23 18:51 ` [Intel-gfx] [PATCH v2 1/2] drm/i915: Add WABB blit for " Jonathan Cavitt
` (7 more replies)
0 siblings, 8 replies; 13+ messages in thread
From: Jonathan Cavitt @ 2023-08-23 18:51 UTC (permalink / raw)
To: intel-gfx
Cc: tomasz.mistat, jonathan.cavitt, rodrigo.vivi, gregory.f.germano,
matthew.d.roper, nirmoy.das
Apply Wa_16018031267 / Wa_16018063123. This necessitates submitting a
fastcolor blit as WABB and setting the copy engine arbitration to
round-robin mode.
v2:
- Rename old platform check in second patch to match
declaration in first patch.
- Refactor second patch name to match first patch.
Signed-off-by: Nirmoy Das <nirmoy.das@intel.com>
Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
CC: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
CC: Rodrigo Vivi <rodrigo.vivi@intel.com>
CC: Tomasz Mistat <tomasz.mistat@intel.com>
CC: Gregory F Germano <gregory.f.germano@intel.com>
CC: Matt Roper <matthew.d.roper@intel.com>
CC: James Ausmus <james.ausmus@intel.com>
Nirmoy Das (2):
drm/i915: Add WABB blit for Wa_16018031267 / Wa_16018063123
drm/i915: Set copy engine arbitration for Wa_16018031267 /
Wa_16018063123
drivers/gpu/drm/i915/gt/intel_engine_regs.h | 6 ++
drivers/gpu/drm/i915/gt/intel_gt_types.h | 3 +
drivers/gpu/drm/i915/gt/intel_lrc.c | 114 +++++++++++++++++++-
drivers/gpu/drm/i915/gt/intel_workarounds.c | 6 ++
drivers/gpu/drm/i915/gt/selftest_lrc.c | 65 +++++++----
drivers/gpu/drm/i915/i915_drv.h | 5 +
6 files changed, 178 insertions(+), 21 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 13+ messages in thread* [Intel-gfx] [PATCH v2 1/2] drm/i915: Add WABB blit for Wa_16018031267 / Wa_16018063123 2023-08-23 18:51 [Intel-gfx] [PATCH v2 0/2] Apply Wa_16018031267 / Wa_16018063123 Jonathan Cavitt @ 2023-08-23 18:51 ` Jonathan Cavitt 2023-08-24 14:53 ` Andi Shyti 2023-08-24 17:57 ` Matt Roper 2023-08-23 18:51 ` [Intel-gfx] [PATCH v2 2/2] drm/i915: Set copy engine arbitration " Jonathan Cavitt ` (6 subsequent siblings) 7 siblings, 2 replies; 13+ messages in thread From: Jonathan Cavitt @ 2023-08-23 18:51 UTC (permalink / raw) To: intel-gfx Cc: tomasz.mistat, jonathan.cavitt, rodrigo.vivi, gregory.f.germano, matthew.d.roper, nirmoy.das From: Nirmoy Das <nirmoy.das@intel.com> Apply WABB blit for Wa_16018031267 / Wa_16018063123. Additionally, update the lrc selftest to exercise the new WABB changes. Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com> Co-developed-by: Nirmoy Das <nirmoy.das@intel.com> --- drivers/gpu/drm/i915/gt/intel_engine_regs.h | 3 + drivers/gpu/drm/i915/gt/intel_gt_types.h | 3 + drivers/gpu/drm/i915/gt/intel_lrc.c | 114 +++++++++++++++++++- drivers/gpu/drm/i915/gt/selftest_lrc.c | 65 +++++++---- drivers/gpu/drm/i915/i915_drv.h | 5 + 5 files changed, 169 insertions(+), 21 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/intel_engine_regs.h b/drivers/gpu/drm/i915/gt/intel_engine_regs.h index 6b9d9f837669..2e06bea73297 100644 --- a/drivers/gpu/drm/i915/gt/intel_engine_regs.h +++ b/drivers/gpu/drm/i915/gt/intel_engine_regs.h @@ -118,6 +118,9 @@ #define CCID_EXTENDED_STATE_RESTORE BIT(2) #define CCID_EXTENDED_STATE_SAVE BIT(3) #define RING_BB_PER_CTX_PTR(base) _MMIO((base) + 0x1c0) /* gen8+ */ +#define PER_CTX_BB_FORCE BIT(2) +#define PER_CTX_BB_VALID BIT(0) + #define RING_INDIRECT_CTX(base) _MMIO((base) + 0x1c4) /* gen8+ */ #define RING_INDIRECT_CTX_OFFSET(base) _MMIO((base) + 0x1c8) /* gen8+ */ #define ECOSKPD(base) _MMIO((base) + 0x1d0) diff --git a/drivers/gpu/drm/i915/gt/intel_gt_types.h b/drivers/gpu/drm/i915/gt/intel_gt_types.h index def7dd0eb6f1..81989659ff78 100644 --- a/drivers/gpu/drm/i915/gt/intel_gt_types.h +++ b/drivers/gpu/drm/i915/gt/intel_gt_types.h @@ -307,6 +307,9 @@ enum intel_gt_scratch_field { /* 8 bytes */ INTEL_GT_SCRATCH_FIELD_COHERENTL3_WA = 256, + + /* 8 bytes */ + INTEL_GT_SCRATCH_FIELD_DUMMY_BLIT = 384, }; #define intel_gt_support_legacy_fencing(gt) ((gt)->ggtt->num_fences > 0) diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c index 967fe4d77a87..444ad1977b10 100644 --- a/drivers/gpu/drm/i915/gt/intel_lrc.c +++ b/drivers/gpu/drm/i915/gt/intel_lrc.c @@ -828,6 +828,18 @@ lrc_ring_indirect_offset_default(const struct intel_engine_cs *engine) return 0; } +static void +lrc_setup_bb_per_ctx(u32 *regs, + const struct intel_engine_cs *engine, + u32 ctx_bb_ggtt_addr) +{ + GEM_BUG_ON(lrc_ring_wa_bb_per_ctx(engine) == -1); + regs[lrc_ring_wa_bb_per_ctx(engine) + 1] = + ctx_bb_ggtt_addr | + PER_CTX_BB_FORCE | + PER_CTX_BB_VALID; +} + static void lrc_setup_indirect_ctx(u32 *regs, const struct intel_engine_cs *engine, @@ -997,7 +1009,18 @@ static u32 context_wa_bb_offset(const struct intel_context *ce) return PAGE_SIZE * ce->wa_bb_page; } -static u32 *context_indirect_bb(const struct intel_context *ce) +/** + * context_wabb - + * Generates the location of the desired batch buffer used for workarounds + * @ce: The context used for the workaround. + * @per_ctx: When enabled, the function returns the location of + * the PER_CTX_BB. When disabled, the function returns + * the location of the INDIRECT_CTX. + * + * Returns: The location of the PER_CTX_BB or INDIRECT_CTX in the ce + * context, depending on if per_ctx is true or false, respectively. + */ +static u32 *context_wabb(const struct intel_context *ce, bool per_ctx) { void *ptr; @@ -1006,6 +1029,7 @@ static u32 *context_indirect_bb(const struct intel_context *ce) ptr = ce->lrc_reg_state; ptr -= LRC_STATE_OFFSET; /* back to start of context image */ ptr += context_wa_bb_offset(ce); + ptr += per_ctx ? PAGE_SIZE : 0; return ptr; } @@ -1082,7 +1106,8 @@ __lrc_alloc_state(struct intel_context *ce, struct intel_engine_cs *engine) if (GRAPHICS_VER(engine->i915) >= 12) { ce->wa_bb_page = context_size / PAGE_SIZE; - context_size += PAGE_SIZE; + /* INDIRECT_CTX and PER_CTX_BB need separate pages. */ + context_size += PAGE_SIZE * 2; } if (intel_context_is_parent(ce) && intel_engine_uses_guc(engine)) { @@ -1370,12 +1395,94 @@ gen12_emit_indirect_ctx_xcs(const struct intel_context *ce, u32 *cs) return gen12_emit_aux_table_inv(ce->engine, cs); } +static u32 *xehp_emit_fastcolor_blt_wabb(const struct intel_context *ce, u32 *cs) +{ + struct intel_gt *gt = ce->engine->gt; + int mocs = gt->mocs.uc_index << 1; + u32 addr = intel_gt_scratch_offset(gt, INTEL_GT_SCRATCH_FIELD_DUMMY_BLIT); + + /** + * Wa_16018031267 / Wa_16018063123 requires that SW forces the + * main copy engine arbitration into round robin mode. We + * additionally need to submit the following WABB blt command + * to produce 4 subblits with each subblit generating 0 byte + * write requests as WABB: + * + * XY_FASTCOLOR_BLT + * BG0 -> 5100000E + * BG1 -> 0000003F (Dest pitch) + * BG2 -> 00000000 (X1, Y1) = (0, 0) + * BG3 -> 00040001 (X2, Y2) = (1, 4) + * BG4 -> scratch + * BG5 -> scratch + * BG6-12 -> 00000000 + * BG13 -> 20004004 (Surf. Width= 2,Surf. Height = 5 ) + * BG14 -> 00000010 (Qpitch = 4) + * BG15 -> 00000000 + */ + *cs++ = XY_FAST_COLOR_BLT_CMD | (16 - 2); + *cs++ = FIELD_PREP(XY_FAST_COLOR_BLT_MOCS_MASK, mocs) | 0x3f; + *cs++ = 0; + *cs++ = 4 << 16 | 1; + *cs++ = addr; + *cs++ = 0; + *cs++ = 0; + *cs++ = 0; + *cs++ = 0; + *cs++ = 0; + *cs++ = 0; + *cs++ = 0; + *cs++ = 0; + *cs++ = 0x20004004; + *cs++ = 0x10; + *cs++ = 0; + + *cs++ = MI_BATCH_BUFFER_END; + + return cs; +} + +static u32 * +xehp_emit_per_ctx_bb(const struct intel_context *ce, u32 *cs) +{ + /* Wa_16018031267, Wa_16018063123 */ + if (ce->engine->class == COPY_ENGINE_CLASS && + NEEDS_FASTCOLOR_BLT_WABB(ce->engine->i915)) + cs = xehp_emit_fastcolor_blt_wabb(ce, cs); + + return cs; +} + + +static void +setup_per_ctx_bb(const struct intel_context *ce, + const struct intel_engine_cs *engine, + u32 *(*emit)(const struct intel_context *, u32 *)) +{ + /* Place PER_CTX_BB on next page after INDIRECT_CTX */ + u32 * const start = context_wabb(ce, true); + u32 *cs; + + cs = emit(ce, start); + + /* Skip PER_CTX_BB setup when not needed. */ + if (cs == start) + return; + + GEM_BUG_ON(cs - start > I915_GTT_PAGE_SIZE / sizeof(*cs)); + while ((unsigned long)cs % CACHELINE_BYTES) + *cs++ = MI_NOOP; + + lrc_setup_bb_per_ctx(ce->lrc_reg_state, engine, + lrc_indirect_bb(ce) + PAGE_SIZE / sizeof(*cs)); +} + static void setup_indirect_ctx_bb(const struct intel_context *ce, const struct intel_engine_cs *engine, u32 *(*emit)(const struct intel_context *, u32 *)) { - u32 * const start = context_indirect_bb(ce); + u32 * const start = context_wabb(ce, false); u32 *cs; cs = emit(ce, start); @@ -1474,6 +1581,7 @@ u32 lrc_update_regs(const struct intel_context *ce, /* Mutually exclusive wrt to global indirect bb */ GEM_BUG_ON(engine->wa_ctx.indirect_ctx.size); setup_indirect_ctx_bb(ce, engine, fn); + setup_per_ctx_bb(ce, engine, xehp_emit_per_ctx_bb); } return lrc_descriptor(ce) | CTX_DESC_FORCE_RESTORE; diff --git a/drivers/gpu/drm/i915/gt/selftest_lrc.c b/drivers/gpu/drm/i915/gt/selftest_lrc.c index 5f826b6dcf5d..f1dce05bbfb7 100644 --- a/drivers/gpu/drm/i915/gt/selftest_lrc.c +++ b/drivers/gpu/drm/i915/gt/selftest_lrc.c @@ -1555,7 +1555,7 @@ static int live_lrc_isolation(void *arg) return err; } -static int indirect_ctx_submit_req(struct intel_context *ce) +static int wabb_ctx_submit_req(struct intel_context *ce) { struct i915_request *rq; int err = 0; @@ -1579,7 +1579,8 @@ static int indirect_ctx_submit_req(struct intel_context *ce) #define CTX_BB_CANARY_INDEX (CTX_BB_CANARY_OFFSET / sizeof(u32)) static u32 * -emit_indirect_ctx_bb_canary(const struct intel_context *ce, u32 *cs) +emit_wabb_ctx_canary(const struct intel_context *ce, + u32 *cs, bool per_ctx) { *cs++ = MI_STORE_REGISTER_MEM_GEN8 | MI_SRM_LRM_GLOBAL_GTT | @@ -1587,26 +1588,43 @@ emit_indirect_ctx_bb_canary(const struct intel_context *ce, u32 *cs) *cs++ = i915_mmio_reg_offset(RING_START(0)); *cs++ = i915_ggtt_offset(ce->state) + context_wa_bb_offset(ce) + - CTX_BB_CANARY_OFFSET; + CTX_BB_CANARY_OFFSET + + (per_ctx ? PAGE_SIZE : 0); *cs++ = 0; return cs; } +static u32 * +emit_indirect_ctx_bb_canary(const struct intel_context *ce, u32 *cs) +{ + return emit_wabb_ctx_canary(ce, cs, false); +} + +static u32 * +emit_per_ctx_bb_canary(const struct intel_context *ce, u32 *cs) +{ + return emit_wabb_ctx_canary(ce, cs, true); +} + static void -indirect_ctx_bb_setup(struct intel_context *ce) +wabb_ctx_setup(struct intel_context *ce, bool per_ctx) { - u32 *cs = context_indirect_bb(ce); + u32 *cs = context_wabb(ce, per_ctx); cs[CTX_BB_CANARY_INDEX] = 0xdeadf00d; - setup_indirect_ctx_bb(ce, ce->engine, emit_indirect_ctx_bb_canary); + if (per_ctx) + setup_per_ctx_bb(ce, ce->engine, emit_per_ctx_bb_canary); + else + setup_indirect_ctx_bb(ce, ce->engine, emit_indirect_ctx_bb_canary); } -static bool check_ring_start(struct intel_context *ce) +static bool check_ring_start(struct intel_context *ce, bool per_ctx) { const u32 * const ctx_bb = (void *)(ce->lrc_reg_state) - - LRC_STATE_OFFSET + context_wa_bb_offset(ce); + LRC_STATE_OFFSET + context_wa_bb_offset(ce) + + (per_ctx ? PAGE_SIZE / sizeof(u32) : 0); if (ctx_bb[CTX_BB_CANARY_INDEX] == ce->lrc_reg_state[CTX_RING_START]) return true; @@ -1618,21 +1636,21 @@ static bool check_ring_start(struct intel_context *ce) return false; } -static int indirect_ctx_bb_check(struct intel_context *ce) +static int wabb_ctx_check(struct intel_context *ce, bool per_ctx) { int err; - err = indirect_ctx_submit_req(ce); + err = wabb_ctx_submit_req(ce); if (err) return err; - if (!check_ring_start(ce)) + if (!check_ring_start(ce, per_ctx)) return -EINVAL; return 0; } -static int __live_lrc_indirect_ctx_bb(struct intel_engine_cs *engine) +static int __lrc_wabb_ctx(struct intel_engine_cs *engine, bool per_ctx) { struct intel_context *a, *b; int err; @@ -1667,14 +1685,14 @@ static int __live_lrc_indirect_ctx_bb(struct intel_engine_cs *engine) * As ring start is restored apriori of starting the indirect ctx bb and * as it will be different for each context, it fits to this purpose. */ - indirect_ctx_bb_setup(a); - indirect_ctx_bb_setup(b); + wabb_ctx_setup(a, per_ctx); + wabb_ctx_setup(b, per_ctx); - err = indirect_ctx_bb_check(a); + err = wabb_ctx_check(a, per_ctx); if (err) goto unpin_b; - err = indirect_ctx_bb_check(b); + err = wabb_ctx_check(b, per_ctx); unpin_b: intel_context_unpin(b); @@ -1688,7 +1706,7 @@ static int __live_lrc_indirect_ctx_bb(struct intel_engine_cs *engine) return err; } -static int live_lrc_indirect_ctx_bb(void *arg) +static int lrc_wabb_ctx(void *arg, bool per_ctx) { struct intel_gt *gt = arg; struct intel_engine_cs *engine; @@ -1697,7 +1715,7 @@ static int live_lrc_indirect_ctx_bb(void *arg) for_each_engine(engine, gt, id) { intel_engine_pm_get(engine); - err = __live_lrc_indirect_ctx_bb(engine); + err = __lrc_wabb_ctx(engine, per_ctx); intel_engine_pm_put(engine); if (igt_flush_test(gt->i915)) @@ -1710,6 +1728,16 @@ static int live_lrc_indirect_ctx_bb(void *arg) return err; } +static int live_lrc_indirect_ctx_bb(void *arg) +{ + return lrc_wabb_ctx(arg, false); +} + +static int live_lrc_per_ctx_bb(void *arg) +{ + return lrc_wabb_ctx(arg, true); +} + static void garbage_reset(struct intel_engine_cs *engine, struct i915_request *rq) { @@ -1947,6 +1975,7 @@ int intel_lrc_live_selftests(struct drm_i915_private *i915) SUBTEST(live_lrc_garbage), SUBTEST(live_pphwsp_runtime), SUBTEST(live_lrc_indirect_ctx_bb), + SUBTEST(live_lrc_per_ctx_bb), }; if (!HAS_LOGICAL_RING_CONTEXTS(i915)) diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 87ffc477c3b1..15b54b3beaa5 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -813,4 +813,9 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915, #define HAS_LMEMBAR_SMEM_STOLEN(i915) (!HAS_LMEM(i915) && \ GRAPHICS_VER_FULL(i915) >= IP_VER(12, 70)) +#define NEEDS_FASTCOLOR_BLT_WABB(i915) (GRAPHICS_VER_FULL(i915) == IP_VER(12, 70) || \ + GRAPHICS_VER_FULL(i915) == IP_VER(12, 71) || \ + IS_PONTEVECCHIO(i915) || \ + IS_DG2(i915)) + #endif -- 2.25.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [Intel-gfx] [PATCH v2 1/2] drm/i915: Add WABB blit for Wa_16018031267 / Wa_16018063123 2023-08-23 18:51 ` [Intel-gfx] [PATCH v2 1/2] drm/i915: Add WABB blit for " Jonathan Cavitt @ 2023-08-24 14:53 ` Andi Shyti 2023-08-24 15:01 ` Cavitt, Jonathan 2023-08-24 17:57 ` Matt Roper 1 sibling, 1 reply; 13+ messages in thread From: Andi Shyti @ 2023-08-24 14:53 UTC (permalink / raw) To: Jonathan Cavitt Cc: intel-gfx, rodrigo.vivi, gregory.f.germano, matthew.d.roper, tomasz.mistat, nirmoy.das Hi Jonathan, few little things... On Wed, Aug 23, 2023 at 11:51:03AM -0700, Jonathan Cavitt wrote: > From: Nirmoy Das <nirmoy.das@intel.com> > > Apply WABB blit for Wa_16018031267 / Wa_16018063123. > Additionally, update the lrc selftest to exercise the new > WABB changes. > > Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com> > Co-developed-by: Nirmoy Das <nirmoy.das@intel.com> As the sender of this patch, your SoB should be last and you also need to add Nirmoy's SoB above yours. (Tags should be added in chronological order) [...] > +static u32 * > +xehp_emit_per_ctx_bb(const struct intel_context *ce, u32 *cs) > +{ > + /* Wa_16018031267, Wa_16018063123 */ > + if (ce->engine->class == COPY_ENGINE_CLASS && > + NEEDS_FASTCOLOR_BLT_WABB(ce->engine->i915)) > + cs = xehp_emit_fastcolor_blt_wabb(ce, cs); I thought the trend was to have things like: ..._needs_wa_16018031267() But we don't have a unified system yet > + return cs; > +} > + > + two blank lines here > +static void > +setup_per_ctx_bb(const struct intel_context *ce, > + const struct intel_engine_cs *engine, > + u32 *(*emit)(const struct intel_context *, u32 *)) > +{ [...] > static u32 * > -emit_indirect_ctx_bb_canary(const struct intel_context *ce, u32 *cs) > +emit_wabb_ctx_canary(const struct intel_context *ce, > + u32 *cs, bool per_ctx) just a little alignment issue here. > { [...] Are the failures from CI coming from this series? Andi ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Intel-gfx] [PATCH v2 1/2] drm/i915: Add WABB blit for Wa_16018031267 / Wa_16018063123 2023-08-24 14:53 ` Andi Shyti @ 2023-08-24 15:01 ` Cavitt, Jonathan 0 siblings, 0 replies; 13+ messages in thread From: Cavitt, Jonathan @ 2023-08-24 15:01 UTC (permalink / raw) To: Andi Shyti Cc: intel-gfx@lists.freedesktop.org, Vivi, Rodrigo, Germano, Gregory F, Roper, Matthew D, Mistat, Tomasz, Das, Nirmoy -----Original Message----- From: Andi Shyti <andi.shyti@linux.intel.com> Sent: Thursday, August 24, 2023 7:54 AM To: Cavitt, Jonathan <jonathan.cavitt@intel.com> Cc: intel-gfx@lists.freedesktop.org; Mistat, Tomasz <tomasz.mistat@intel.com>; Vivi, Rodrigo <rodrigo.vivi@intel.com>; Germano, Gregory F <gregory.f.germano@intel.com>; Roper, Matthew D <matthew.d.roper@intel.com>; Das, Nirmoy <nirmoy.das@intel.com> Subject: Re: [Intel-gfx] [PATCH v2 1/2] drm/i915: Add WABB blit for Wa_16018031267 / Wa_16018063123 > > Hi Jonathan, > > few little things... > > On Wed, Aug 23, 2023 at 11:51:03AM -0700, Jonathan Cavitt wrote: > > From: Nirmoy Das <nirmoy.das@intel.com> > > > > Apply WABB blit for Wa_16018031267 / Wa_16018063123. > > Additionally, update the lrc selftest to exercise the new > > WABB changes. > > > > Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com> > > Co-developed-by: Nirmoy Das <nirmoy.das@intel.com> > > As the sender of this patch, your SoB should be last and you also > need to add Nirmoy's SoB above yours. > > (Tags should be added in chronological order) > > [...] > > > +static u32 * > > +xehp_emit_per_ctx_bb(const struct intel_context *ce, u32 *cs) > > +{ > > + /* Wa_16018031267, Wa_16018063123 */ > > + if (ce->engine->class == COPY_ENGINE_CLASS && > > + NEEDS_FASTCOLOR_BLT_WABB(ce->engine->i915)) > > + cs = xehp_emit_fastcolor_blt_wabb(ce, cs); > > I thought the trend was to have things like: > > ..._needs_wa_16018031267() > > But we don't have a unified system yet > > > + return cs; > > +} > > + > > + > > two blank lines here > > > +static void > > +setup_per_ctx_bb(const struct intel_context *ce, > > + const struct intel_engine_cs *engine, > > + u32 *(*emit)(const struct intel_context *, u32 *)) > > +{ > > [...] > > > static u32 * > > -emit_indirect_ctx_bb_canary(const struct intel_context *ce, u32 *cs) > > +emit_wabb_ctx_canary(const struct intel_context *ce, > > + u32 *cs, bool per_ctx) > > just a little alignment issue here. > > > { > > [...] > > Are the failures from CI coming from this series? Yes. This series has several failures associated with it, such as a module load failure for DG2/ATSM, and several failures in the new live_lrc_per_ctx_bb selftest. I'm not certain what's causing either set of failures, to be honest, so if you have any guidance on what might be incorrect in the way I'm setting up the PER_CTX_BB, I'd be willing to try just about anything. -Jonathan Cavitt > > Andi > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Intel-gfx] [PATCH v2 1/2] drm/i915: Add WABB blit for Wa_16018031267 / Wa_16018063123 2023-08-23 18:51 ` [Intel-gfx] [PATCH v2 1/2] drm/i915: Add WABB blit for " Jonathan Cavitt 2023-08-24 14:53 ` Andi Shyti @ 2023-08-24 17:57 ` Matt Roper 1 sibling, 0 replies; 13+ messages in thread From: Matt Roper @ 2023-08-24 17:57 UTC (permalink / raw) To: Jonathan Cavitt Cc: tomasz.mistat, rodrigo.vivi, gregory.f.germano, intel-gfx, nirmoy.das On Wed, Aug 23, 2023 at 11:51:03AM -0700, Jonathan Cavitt wrote: > From: Nirmoy Das <nirmoy.das@intel.com> > > Apply WABB blit for Wa_16018031267 / Wa_16018063123. > Additionally, update the lrc selftest to exercise the new > WABB changes. > > Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com> > Co-developed-by: Nirmoy Das <nirmoy.das@intel.com> > --- > drivers/gpu/drm/i915/gt/intel_engine_regs.h | 3 + > drivers/gpu/drm/i915/gt/intel_gt_types.h | 3 + > drivers/gpu/drm/i915/gt/intel_lrc.c | 114 +++++++++++++++++++- > drivers/gpu/drm/i915/gt/selftest_lrc.c | 65 +++++++---- > drivers/gpu/drm/i915/i915_drv.h | 5 + > 5 files changed, 169 insertions(+), 21 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gt/intel_engine_regs.h b/drivers/gpu/drm/i915/gt/intel_engine_regs.h > index 6b9d9f837669..2e06bea73297 100644 > --- a/drivers/gpu/drm/i915/gt/intel_engine_regs.h > +++ b/drivers/gpu/drm/i915/gt/intel_engine_regs.h > @@ -118,6 +118,9 @@ > #define CCID_EXTENDED_STATE_RESTORE BIT(2) > #define CCID_EXTENDED_STATE_SAVE BIT(3) > #define RING_BB_PER_CTX_PTR(base) _MMIO((base) + 0x1c0) /* gen8+ */ > +#define PER_CTX_BB_FORCE BIT(2) > +#define PER_CTX_BB_VALID BIT(0) > + > #define RING_INDIRECT_CTX(base) _MMIO((base) + 0x1c4) /* gen8+ */ > #define RING_INDIRECT_CTX_OFFSET(base) _MMIO((base) + 0x1c8) /* gen8+ */ > #define ECOSKPD(base) _MMIO((base) + 0x1d0) > diff --git a/drivers/gpu/drm/i915/gt/intel_gt_types.h b/drivers/gpu/drm/i915/gt/intel_gt_types.h > index def7dd0eb6f1..81989659ff78 100644 > --- a/drivers/gpu/drm/i915/gt/intel_gt_types.h > +++ b/drivers/gpu/drm/i915/gt/intel_gt_types.h > @@ -307,6 +307,9 @@ enum intel_gt_scratch_field { > > /* 8 bytes */ > INTEL_GT_SCRATCH_FIELD_COHERENTL3_WA = 256, > + > + /* 8 bytes */ This section of scratch is being used as the target of a dummy blit with destination stride = (0x3F + 1) and height 5. That's more than just 8 bytes. > + INTEL_GT_SCRATCH_FIELD_DUMMY_BLIT = 384, > }; > > #define intel_gt_support_legacy_fencing(gt) ((gt)->ggtt->num_fences > 0) > diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c > index 967fe4d77a87..444ad1977b10 100644 > --- a/drivers/gpu/drm/i915/gt/intel_lrc.c > +++ b/drivers/gpu/drm/i915/gt/intel_lrc.c > @@ -828,6 +828,18 @@ lrc_ring_indirect_offset_default(const struct intel_engine_cs *engine) > return 0; > } > > +static void > +lrc_setup_bb_per_ctx(u32 *regs, > + const struct intel_engine_cs *engine, > + u32 ctx_bb_ggtt_addr) > +{ > + GEM_BUG_ON(lrc_ring_wa_bb_per_ctx(engine) == -1); > + regs[lrc_ring_wa_bb_per_ctx(engine) + 1] = > + ctx_bb_ggtt_addr | > + PER_CTX_BB_FORCE | > + PER_CTX_BB_VALID; > +} > + > static void > lrc_setup_indirect_ctx(u32 *regs, > const struct intel_engine_cs *engine, > @@ -997,7 +1009,18 @@ static u32 context_wa_bb_offset(const struct intel_context *ce) > return PAGE_SIZE * ce->wa_bb_page; > } > > -static u32 *context_indirect_bb(const struct intel_context *ce) > +/** Just a normal comment is fine here; we generally don't use formal kerneldoc on static functions. > + * context_wabb - > + * Generates the location of the desired batch buffer used for workarounds > + * @ce: The context used for the workaround. > + * @per_ctx: When enabled, the function returns the location of > + * the PER_CTX_BB. When disabled, the function returns > + * the location of the INDIRECT_CTX. Nitpick: s/enabled/true/, s/disabled/false/ > + * > + * Returns: The location of the PER_CTX_BB or INDIRECT_CTX in the ce > + * context, depending on if per_ctx is true or false, respectively. > + */ > +static u32 *context_wabb(const struct intel_context *ce, bool per_ctx) > { > void *ptr; > > @@ -1006,6 +1029,7 @@ static u32 *context_indirect_bb(const struct intel_context *ce) > ptr = ce->lrc_reg_state; > ptr -= LRC_STATE_OFFSET; /* back to start of context image */ > ptr += context_wa_bb_offset(ce); > + ptr += per_ctx ? PAGE_SIZE : 0; > > return ptr; > } > @@ -1082,7 +1106,8 @@ __lrc_alloc_state(struct intel_context *ce, struct intel_engine_cs *engine) > > if (GRAPHICS_VER(engine->i915) >= 12) { > ce->wa_bb_page = context_size / PAGE_SIZE; > - context_size += PAGE_SIZE; > + /* INDIRECT_CTX and PER_CTX_BB need separate pages. */ > + context_size += PAGE_SIZE * 2; > } > > if (intel_context_is_parent(ce) && intel_engine_uses_guc(engine)) { > @@ -1370,12 +1395,94 @@ gen12_emit_indirect_ctx_xcs(const struct intel_context *ce, u32 *cs) > return gen12_emit_aux_table_inv(ce->engine, cs); > } > > +static u32 *xehp_emit_fastcolor_blt_wabb(const struct intel_context *ce, u32 *cs) > +{ > + struct intel_gt *gt = ce->engine->gt; > + int mocs = gt->mocs.uc_index << 1; > + u32 addr = intel_gt_scratch_offset(gt, INTEL_GT_SCRATCH_FIELD_DUMMY_BLIT); > + > + /** > + * Wa_16018031267 / Wa_16018063123 requires that SW forces the > + * main copy engine arbitration into round robin mode. We > + * additionally need to submit the following WABB blt command > + * to produce 4 subblits with each subblit generating 0 byte > + * write requests as WABB: > + * > + * XY_FASTCOLOR_BLT > + * BG0 -> 5100000E > + * BG1 -> 0000003F (Dest pitch) > + * BG2 -> 00000000 (X1, Y1) = (0, 0) > + * BG3 -> 00040001 (X2, Y2) = (1, 4) > + * BG4 -> scratch > + * BG5 -> scratch > + * BG6-12 -> 00000000 > + * BG13 -> 20004004 (Surf. Width= 2,Surf. Height = 5 ) > + * BG14 -> 00000010 (Qpitch = 4) > + * BG15 -> 00000000 > + */ > + *cs++ = XY_FAST_COLOR_BLT_CMD | (16 - 2); > + *cs++ = FIELD_PREP(XY_FAST_COLOR_BLT_MOCS_MASK, mocs) | 0x3f; > + *cs++ = 0; > + *cs++ = 4 << 16 | 1; > + *cs++ = addr; > + *cs++ = 0; > + *cs++ = 0; > + *cs++ = 0; > + *cs++ = 0; > + *cs++ = 0; > + *cs++ = 0; > + *cs++ = 0; > + *cs++ = 0; > + *cs++ = 0x20004004; > + *cs++ = 0x10; > + *cs++ = 0; > + > + *cs++ = MI_BATCH_BUFFER_END; > + > + return cs; > +} > + > +static u32 * > +xehp_emit_per_ctx_bb(const struct intel_context *ce, u32 *cs) > +{ > + /* Wa_16018031267, Wa_16018063123 */ > + if (ce->engine->class == COPY_ENGINE_CLASS && > + NEEDS_FASTCOLOR_BLT_WABB(ce->engine->i915)) > + cs = xehp_emit_fastcolor_blt_wabb(ce, cs); > + > + return cs; > +} > + > + > +static void > +setup_per_ctx_bb(const struct intel_context *ce, > + const struct intel_engine_cs *engine, > + u32 *(*emit)(const struct intel_context *, u32 *)) > +{ > + /* Place PER_CTX_BB on next page after INDIRECT_CTX */ > + u32 * const start = context_wabb(ce, true); > + u32 *cs; > + > + cs = emit(ce, start); > + > + /* Skip PER_CTX_BB setup when not needed. */ > + if (cs == start) > + return; > + > + GEM_BUG_ON(cs - start > I915_GTT_PAGE_SIZE / sizeof(*cs)); > + while ((unsigned long)cs % CACHELINE_BYTES) > + *cs++ = MI_NOOP; > + > + lrc_setup_bb_per_ctx(ce->lrc_reg_state, engine, > + lrc_indirect_bb(ce) + PAGE_SIZE / sizeof(*cs)); What's the "/ sizeof(*cs)" for? Doesn't the per_ctx_bb come a full page after the indirect_ctx? > +} > + > static void > setup_indirect_ctx_bb(const struct intel_context *ce, > const struct intel_engine_cs *engine, > u32 *(*emit)(const struct intel_context *, u32 *)) > { > - u32 * const start = context_indirect_bb(ce); > + u32 * const start = context_wabb(ce, false); > u32 *cs; > > cs = emit(ce, start); > @@ -1474,6 +1581,7 @@ u32 lrc_update_regs(const struct intel_context *ce, > /* Mutually exclusive wrt to global indirect bb */ > GEM_BUG_ON(engine->wa_ctx.indirect_ctx.size); > setup_indirect_ctx_bb(ce, engine, fn); > + setup_per_ctx_bb(ce, engine, xehp_emit_per_ctx_bb); > } > > return lrc_descriptor(ce) | CTX_DESC_FORCE_RESTORE; > diff --git a/drivers/gpu/drm/i915/gt/selftest_lrc.c b/drivers/gpu/drm/i915/gt/selftest_lrc.c > index 5f826b6dcf5d..f1dce05bbfb7 100644 > --- a/drivers/gpu/drm/i915/gt/selftest_lrc.c > +++ b/drivers/gpu/drm/i915/gt/selftest_lrc.c > @@ -1555,7 +1555,7 @@ static int live_lrc_isolation(void *arg) > return err; > } > > -static int indirect_ctx_submit_req(struct intel_context *ce) > +static int wabb_ctx_submit_req(struct intel_context *ce) > { > struct i915_request *rq; > int err = 0; > @@ -1579,7 +1579,8 @@ static int indirect_ctx_submit_req(struct intel_context *ce) > #define CTX_BB_CANARY_INDEX (CTX_BB_CANARY_OFFSET / sizeof(u32)) > > static u32 * > -emit_indirect_ctx_bb_canary(const struct intel_context *ce, u32 *cs) > +emit_wabb_ctx_canary(const struct intel_context *ce, > + u32 *cs, bool per_ctx) > { > *cs++ = MI_STORE_REGISTER_MEM_GEN8 | > MI_SRM_LRM_GLOBAL_GTT | > @@ -1587,26 +1588,43 @@ emit_indirect_ctx_bb_canary(const struct intel_context *ce, u32 *cs) > *cs++ = i915_mmio_reg_offset(RING_START(0)); > *cs++ = i915_ggtt_offset(ce->state) + > context_wa_bb_offset(ce) + > - CTX_BB_CANARY_OFFSET; > + CTX_BB_CANARY_OFFSET + > + (per_ctx ? PAGE_SIZE : 0); > *cs++ = 0; > > return cs; > } > > +static u32 * > +emit_indirect_ctx_bb_canary(const struct intel_context *ce, u32 *cs) > +{ > + return emit_wabb_ctx_canary(ce, cs, false); > +} > + > +static u32 * > +emit_per_ctx_bb_canary(const struct intel_context *ce, u32 *cs) > +{ > + return emit_wabb_ctx_canary(ce, cs, true); > +} > + > static void > -indirect_ctx_bb_setup(struct intel_context *ce) > +wabb_ctx_setup(struct intel_context *ce, bool per_ctx) > { > - u32 *cs = context_indirect_bb(ce); > + u32 *cs = context_wabb(ce, per_ctx); > > cs[CTX_BB_CANARY_INDEX] = 0xdeadf00d; > > - setup_indirect_ctx_bb(ce, ce->engine, emit_indirect_ctx_bb_canary); > + if (per_ctx) > + setup_per_ctx_bb(ce, ce->engine, emit_per_ctx_bb_canary); > + else > + setup_indirect_ctx_bb(ce, ce->engine, emit_indirect_ctx_bb_canary); > } > > -static bool check_ring_start(struct intel_context *ce) > +static bool check_ring_start(struct intel_context *ce, bool per_ctx) > { > const u32 * const ctx_bb = (void *)(ce->lrc_reg_state) - > - LRC_STATE_OFFSET + context_wa_bb_offset(ce); > + LRC_STATE_OFFSET + context_wa_bb_offset(ce) + > + (per_ctx ? PAGE_SIZE / sizeof(u32) : 0); > > if (ctx_bb[CTX_BB_CANARY_INDEX] == ce->lrc_reg_state[CTX_RING_START]) > return true; > @@ -1618,21 +1636,21 @@ static bool check_ring_start(struct intel_context *ce) > return false; > } > > -static int indirect_ctx_bb_check(struct intel_context *ce) > +static int wabb_ctx_check(struct intel_context *ce, bool per_ctx) > { > int err; > > - err = indirect_ctx_submit_req(ce); > + err = wabb_ctx_submit_req(ce); > if (err) > return err; > > - if (!check_ring_start(ce)) > + if (!check_ring_start(ce, per_ctx)) > return -EINVAL; > > return 0; > } > > -static int __live_lrc_indirect_ctx_bb(struct intel_engine_cs *engine) > +static int __lrc_wabb_ctx(struct intel_engine_cs *engine, bool per_ctx) > { > struct intel_context *a, *b; > int err; > @@ -1667,14 +1685,14 @@ static int __live_lrc_indirect_ctx_bb(struct intel_engine_cs *engine) > * As ring start is restored apriori of starting the indirect ctx bb and > * as it will be different for each context, it fits to this purpose. > */ > - indirect_ctx_bb_setup(a); > - indirect_ctx_bb_setup(b); > + wabb_ctx_setup(a, per_ctx); > + wabb_ctx_setup(b, per_ctx); > > - err = indirect_ctx_bb_check(a); > + err = wabb_ctx_check(a, per_ctx); > if (err) > goto unpin_b; > > - err = indirect_ctx_bb_check(b); > + err = wabb_ctx_check(b, per_ctx); > > unpin_b: > intel_context_unpin(b); > @@ -1688,7 +1706,7 @@ static int __live_lrc_indirect_ctx_bb(struct intel_engine_cs *engine) > return err; > } > > -static int live_lrc_indirect_ctx_bb(void *arg) > +static int lrc_wabb_ctx(void *arg, bool per_ctx) > { > struct intel_gt *gt = arg; > struct intel_engine_cs *engine; > @@ -1697,7 +1715,7 @@ static int live_lrc_indirect_ctx_bb(void *arg) > > for_each_engine(engine, gt, id) { > intel_engine_pm_get(engine); > - err = __live_lrc_indirect_ctx_bb(engine); > + err = __lrc_wabb_ctx(engine, per_ctx); > intel_engine_pm_put(engine); > > if (igt_flush_test(gt->i915)) > @@ -1710,6 +1728,16 @@ static int live_lrc_indirect_ctx_bb(void *arg) > return err; > } > > +static int live_lrc_indirect_ctx_bb(void *arg) > +{ > + return lrc_wabb_ctx(arg, false); > +} > + > +static int live_lrc_per_ctx_bb(void *arg) > +{ > + return lrc_wabb_ctx(arg, true); > +} > + > static void garbage_reset(struct intel_engine_cs *engine, > struct i915_request *rq) > { > @@ -1947,6 +1975,7 @@ int intel_lrc_live_selftests(struct drm_i915_private *i915) > SUBTEST(live_lrc_garbage), > SUBTEST(live_pphwsp_runtime), > SUBTEST(live_lrc_indirect_ctx_bb), > + SUBTEST(live_lrc_per_ctx_bb), > }; > > if (!HAS_LOGICAL_RING_CONTEXTS(i915)) > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index 87ffc477c3b1..15b54b3beaa5 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -813,4 +813,9 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915, > #define HAS_LMEMBAR_SMEM_STOLEN(i915) (!HAS_LMEM(i915) && \ > GRAPHICS_VER_FULL(i915) >= IP_VER(12, 70)) > > +#define NEEDS_FASTCOLOR_BLT_WABB(i915) (GRAPHICS_VER_FULL(i915) == IP_VER(12, 70) || \ > + GRAPHICS_VER_FULL(i915) == IP_VER(12, 71) || \ > + IS_PONTEVECCHIO(i915) || \ > + IS_DG2(i915)) Looks like the workaround is still in pending state for DG2 and PVC, but assuming that goes through to completion, we can write this condition with the new IP range check: #define NEEDS_FASTCOLOR_BLT_WABB(gt) \ IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 55), IP_VER(12, 71)); since there aren't any platforms in the range that the workaround doesn't apply to. It might be best to keep this #define in the file that uses it. i915_drv.h is already too cluttered and this isn't something that needs to be globally available to the entire driver. Matt > + > #endif > -- > 2.25.1 > -- Matt Roper Graphics Software Engineer Linux GPU Platform Enablement Intel Corporation ^ permalink raw reply [flat|nested] 13+ messages in thread
* [Intel-gfx] [PATCH v2 2/2] drm/i915: Set copy engine arbitration for Wa_16018031267 / Wa_16018063123 2023-08-23 18:51 [Intel-gfx] [PATCH v2 0/2] Apply Wa_16018031267 / Wa_16018063123 Jonathan Cavitt 2023-08-23 18:51 ` [Intel-gfx] [PATCH v2 1/2] drm/i915: Add WABB blit for " Jonathan Cavitt @ 2023-08-23 18:51 ` Jonathan Cavitt 2023-08-24 14:57 ` Andi Shyti 2023-08-23 21:15 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Apply Wa_16018031267 / Wa_16018063123 (rev2) Patchwork ` (5 subsequent siblings) 7 siblings, 1 reply; 13+ messages in thread From: Jonathan Cavitt @ 2023-08-23 18:51 UTC (permalink / raw) To: intel-gfx Cc: tomasz.mistat, jonathan.cavitt, rodrigo.vivi, gregory.f.germano, matthew.d.roper, nirmoy.das From: Nirmoy Das <nirmoy.das@intel.com> Set copy engine arbitration into round robin mode for part of Wa_16018031267 / Wa_16018063123 mitigation. Signed-off-by: Nirmoy Das <nirmoy.das@intel.com> Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com> --- drivers/gpu/drm/i915/gt/intel_engine_regs.h | 3 +++ drivers/gpu/drm/i915/gt/intel_workarounds.c | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/drivers/gpu/drm/i915/gt/intel_engine_regs.h b/drivers/gpu/drm/i915/gt/intel_engine_regs.h index 2e06bea73297..823c6c40213f 100644 --- a/drivers/gpu/drm/i915/gt/intel_engine_regs.h +++ b/drivers/gpu/drm/i915/gt/intel_engine_regs.h @@ -124,6 +124,9 @@ #define RING_INDIRECT_CTX(base) _MMIO((base) + 0x1c4) /* gen8+ */ #define RING_INDIRECT_CTX_OFFSET(base) _MMIO((base) + 0x1c8) /* gen8+ */ #define ECOSKPD(base) _MMIO((base) + 0x1d0) +#define XEHP_BLITTER_SCHEDULING_MODE_MASK REG_GENMASK(12, 11) +#define XEHP_BLITTER_ROUND_ROBIN_MODE \ + REG_FIELD_PREP(XEHP_BLITTER_SCHEDULING_MODE_MASK, 1) #define ECO_CONSTANT_BUFFER_SR_DISABLE REG_BIT(4) #define ECO_GATING_CX_ONLY REG_BIT(3) #define GEN6_BLITTER_FBC_NOTIFY REG_BIT(3) diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c index 864d41bcf6bb..674ac99d8a83 100644 --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c @@ -2769,6 +2769,12 @@ xcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal) RING_SEMA_WAIT_POLL(engine->mmio_base), 1); } + /* Wa_16018031267, Wa_16018063123 */ + if (engine->class == COPY_ENGINE_CLASS && + NEEDS_FASTCOLOR_BLT_WABB(i915)) + wa_masked_field_set(wal, ECOSKPD(engine->mmio_base), + XEHP_BLITTER_SCHEDULING_MODE_MASK, + XEHP_BLITTER_ROUND_ROBIN_MODE); } static void -- 2.25.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [Intel-gfx] [PATCH v2 2/2] drm/i915: Set copy engine arbitration for Wa_16018031267 / Wa_16018063123 2023-08-23 18:51 ` [Intel-gfx] [PATCH v2 2/2] drm/i915: Set copy engine arbitration " Jonathan Cavitt @ 2023-08-24 14:57 ` Andi Shyti 0 siblings, 0 replies; 13+ messages in thread From: Andi Shyti @ 2023-08-24 14:57 UTC (permalink / raw) To: Jonathan Cavitt Cc: intel-gfx, rodrigo.vivi, gregory.f.germano, matthew.d.roper, tomasz.mistat, nirmoy.das Hi Jonathan, > + /* Wa_16018031267, Wa_16018063123 */ > + if (engine->class == COPY_ENGINE_CLASS && > + NEEDS_FASTCOLOR_BLT_WABB(i915)) maybe we should have something like gt_needs_wa_XXX(struct intel_gt *gt) engine_needs_wa_XXX(struct intel_engine_ce *engine) Just thinking aloud here, not relevant to this series. Andi > + wa_masked_field_set(wal, ECOSKPD(engine->mmio_base), > + XEHP_BLITTER_SCHEDULING_MODE_MASK, > + XEHP_BLITTER_ROUND_ROBIN_MODE); > } > > static void > -- > 2.25.1 ^ permalink raw reply [flat|nested] 13+ messages in thread
* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Apply Wa_16018031267 / Wa_16018063123 (rev2) 2023-08-23 18:51 [Intel-gfx] [PATCH v2 0/2] Apply Wa_16018031267 / Wa_16018063123 Jonathan Cavitt 2023-08-23 18:51 ` [Intel-gfx] [PATCH v2 1/2] drm/i915: Add WABB blit for " Jonathan Cavitt 2023-08-23 18:51 ` [Intel-gfx] [PATCH v2 2/2] drm/i915: Set copy engine arbitration " Jonathan Cavitt @ 2023-08-23 21:15 ` Patchwork 2023-08-23 21:15 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork ` (4 subsequent siblings) 7 siblings, 0 replies; 13+ messages in thread From: Patchwork @ 2023-08-23 21:15 UTC (permalink / raw) To: Jonathan Cavitt; +Cc: intel-gfx == Series Details == Series: Apply Wa_16018031267 / Wa_16018063123 (rev2) URL : https://patchwork.freedesktop.org/series/122804/ State : warning == Summary == Error: dim checkpatch failed 00f4bda3e3b0 drm/i915: Add WABB blit for Wa_16018031267 / Wa_16018063123 -:11: WARNING:BAD_SIGN_OFF: Co-developed-by: should not be used to attribute nominal patch author 'Nirmoy Das <nirmoy.das@intel.com>' #11: Co-developed-by: Nirmoy Das <nirmoy.das@intel.com> -:11: WARNING:BAD_SIGN_OFF: Co-developed-by: must be immediately followed by Signed-off-by: #11: Co-developed-by: Nirmoy Das <nirmoy.das@intel.com> -:54: WARNING:AVOID_BUG: Do not crash the kernel unless it is absolutely unavoidable--use WARN_ON_ONCE() plus recovery code (if feasible) instead of BUG() or variants #54: FILE: drivers/gpu/drm/i915/gt/intel_lrc.c:836: + GEM_BUG_ON(lrc_ring_wa_bb_per_ctx(engine) == -1); -:74: WARNING:SPACE_BEFORE_TAB: please, no space before tabs #74: FILE: drivers/gpu/drm/i915/gt/intel_lrc.c:1017: + * ^I^Ithe PER_CTX_BB. When disabled, the function returns$ -:75: WARNING:SPACE_BEFORE_TAB: please, no space before tabs #75: FILE: drivers/gpu/drm/i915/gt/intel_lrc.c:1018: + * ^I^Ithe location of the INDIRECT_CTX.$ -:110: ERROR:TRAILING_WHITESPACE: trailing whitespace #110: FILE: drivers/gpu/drm/i915/gt/intel_lrc.c:1402: +^Iu32 addr = intel_gt_scratch_offset(gt, INTEL_GT_SCRATCH_FIELD_DUMMY_BLIT); $ -:164: CHECK:LINE_SPACING: Please don't use multiple blank lines #164: FILE: drivers/gpu/drm/i915/gt/intel_lrc.c:1456: + + -:180: WARNING:AVOID_BUG: Do not crash the kernel unless it is absolutely unavoidable--use WARN_ON_ONCE() plus recovery code (if feasible) instead of BUG() or variants #180: FILE: drivers/gpu/drm/i915/gt/intel_lrc.c:1472: + GEM_BUG_ON(cs - start > I915_GTT_PAGE_SIZE / sizeof(*cs)); -:225: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis #225: FILE: drivers/gpu/drm/i915/gt/selftest_lrc.c:1583: +emit_wabb_ctx_canary(const struct intel_context *ce, + u32 *cs, bool per_ctx) -:250: ERROR:CODE_INDENT: code indent should use tabs where possible #250: FILE: drivers/gpu/drm/i915/gt/selftest_lrc.c:1607: + return emit_wabb_ctx_canary(ce, cs, true);$ -:250: WARNING:LEADING_SPACE: please, no spaces at the start of a line #250: FILE: drivers/gpu/drm/i915/gt/selftest_lrc.c:1607: + return emit_wabb_ctx_canary(ce, cs, true);$ -:354: ERROR:TRAILING_WHITESPACE: trailing whitespace #354: FILE: drivers/gpu/drm/i915/gt/selftest_lrc.c:1739: +}^I^I$ -:375: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'i915' - possible side-effects? #375: FILE: drivers/gpu/drm/i915/i915_drv.h:816: +#define NEEDS_FASTCOLOR_BLT_WABB(i915) (GRAPHICS_VER_FULL(i915) == IP_VER(12, 70) || \ + GRAPHICS_VER_FULL(i915) == IP_VER(12, 71) || \ + IS_PONTEVECCHIO(i915) || \ + IS_DG2(i915)) -:380: ERROR:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal patch author 'Nirmoy Das <nirmoy.das@intel.com>' total: 4 errors, 7 warnings, 3 checks, 330 lines checked 506e01dfa9cc drm/i915: Set copy engine arbitration for Wa_16018031267 / Wa_16018063123 ^ permalink raw reply [flat|nested] 13+ messages in thread
* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for Apply Wa_16018031267 / Wa_16018063123 (rev2) 2023-08-23 18:51 [Intel-gfx] [PATCH v2 0/2] Apply Wa_16018031267 / Wa_16018063123 Jonathan Cavitt ` (2 preceding siblings ...) 2023-08-23 21:15 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Apply Wa_16018031267 / Wa_16018063123 (rev2) Patchwork @ 2023-08-23 21:15 ` Patchwork 2023-08-23 21:30 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork ` (3 subsequent siblings) 7 siblings, 0 replies; 13+ messages in thread From: Patchwork @ 2023-08-23 21:15 UTC (permalink / raw) To: Jonathan Cavitt; +Cc: intel-gfx == Series Details == Series: Apply Wa_16018031267 / Wa_16018063123 (rev2) URL : https://patchwork.freedesktop.org/series/122804/ State : warning == Summary == Error: dim sparse failed Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately. ^ permalink raw reply [flat|nested] 13+ messages in thread
* [Intel-gfx] ✗ Fi.CI.BAT: failure for Apply Wa_16018031267 / Wa_16018063123 (rev2) 2023-08-23 18:51 [Intel-gfx] [PATCH v2 0/2] Apply Wa_16018031267 / Wa_16018063123 Jonathan Cavitt ` (3 preceding siblings ...) 2023-08-23 21:15 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork @ 2023-08-23 21:30 ` Patchwork 2023-08-24 21:09 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Apply Wa_16018031267 / Wa_16018063123 (rev3) Patchwork ` (2 subsequent siblings) 7 siblings, 0 replies; 13+ messages in thread From: Patchwork @ 2023-08-23 21:30 UTC (permalink / raw) To: Jonathan Cavitt; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 7664 bytes --] == Series Details == Series: Apply Wa_16018031267 / Wa_16018063123 (rev2) URL : https://patchwork.freedesktop.org/series/122804/ State : failure == Summary == CI Bug Log - changes from CI_DRM_13554 -> Patchwork_122804v2 ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with Patchwork_122804v2 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_122804v2, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v2/index.html Participating hosts (40 -> 39) ------------------------------ Missing (1): fi-snb-2520m Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_122804v2: ### IGT changes ### #### Possible regressions #### * igt@i915_module_load@load: - bat-dg2-11: [PASS][1] -> [ABORT][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13554/bat-dg2-11/igt@i915_module_load@load.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v2/bat-dg2-11/igt@i915_module_load@load.html - bat-atsm-1: [PASS][3] -> [ABORT][4] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13554/bat-atsm-1/igt@i915_module_load@load.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v2/bat-atsm-1/igt@i915_module_load@load.html - bat-dg2-9: [PASS][5] -> [ABORT][6] [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13554/bat-dg2-9/igt@i915_module_load@load.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v2/bat-dg2-9/igt@i915_module_load@load.html * igt@i915_selftest@live@gt_lrc: - bat-dg1-5: [PASS][7] -> [DMESG-FAIL][8] [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13554/bat-dg1-5/igt@i915_selftest@live@gt_lrc.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v2/bat-dg1-5/igt@i915_selftest@live@gt_lrc.html - fi-rkl-11600: [PASS][9] -> [DMESG-FAIL][10] [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13554/fi-rkl-11600/igt@i915_selftest@live@gt_lrc.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v2/fi-rkl-11600/igt@i915_selftest@live@gt_lrc.html - bat-mtlp-8: [PASS][11] -> [DMESG-FAIL][12] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13554/bat-mtlp-8/igt@i915_selftest@live@gt_lrc.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v2/bat-mtlp-8/igt@i915_selftest@live@gt_lrc.html - bat-adlm-1: [PASS][13] -> [DMESG-FAIL][14] [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13554/bat-adlm-1/igt@i915_selftest@live@gt_lrc.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v2/bat-adlm-1/igt@i915_selftest@live@gt_lrc.html - fi-tgl-1115g4: [PASS][15] -> [DMESG-FAIL][16] [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13554/fi-tgl-1115g4/igt@i915_selftest@live@gt_lrc.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v2/fi-tgl-1115g4/igt@i915_selftest@live@gt_lrc.html - bat-rpls-1: [PASS][17] -> [DMESG-FAIL][18] [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13554/bat-rpls-1/igt@i915_selftest@live@gt_lrc.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v2/bat-rpls-1/igt@i915_selftest@live@gt_lrc.html - bat-mtlp-6: [PASS][19] -> [DMESG-FAIL][20] [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13554/bat-mtlp-6/igt@i915_selftest@live@gt_lrc.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v2/bat-mtlp-6/igt@i915_selftest@live@gt_lrc.html #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@i915_module_load@load: - {bat-dg2-13}: [DMESG-WARN][21] ([i915#8879]) -> [ABORT][22] [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13554/bat-dg2-13/igt@i915_module_load@load.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v2/bat-dg2-13/igt@i915_module_load@load.html - {bat-dg2-14}: [DMESG-WARN][23] ([i915#8879]) -> [ABORT][24] [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13554/bat-dg2-14/igt@i915_module_load@load.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v2/bat-dg2-14/igt@i915_module_load@load.html Known issues ------------ Here are the changes found in Patchwork_122804v2 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@i915_selftest@live@gt_lrc: - bat-adlp-9: [PASS][25] -> [DMESG-FAIL][26] ([i915#7913]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13554/bat-adlp-9/igt@i915_selftest@live@gt_lrc.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v2/bat-adlp-9/igt@i915_selftest@live@gt_lrc.html - bat-adls-5: [PASS][27] -> [DMESG-FAIL][28] ([i915#7913]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13554/bat-adls-5/igt@i915_selftest@live@gt_lrc.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v2/bat-adls-5/igt@i915_selftest@live@gt_lrc.html - bat-rpls-2: [PASS][29] -> [DMESG-FAIL][30] ([i915#7913]) [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13554/bat-rpls-2/igt@i915_selftest@live@gt_lrc.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v2/bat-rpls-2/igt@i915_selftest@live@gt_lrc.html * igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1: - bat-rplp-1: [PASS][31] -> [ABORT][32] ([i915#8442] / [i915#8668]) [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13554/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v2/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1.html #### Possible fixes #### * igt@i915_selftest@live@migrate: - bat-adlp-9: [DMESG-FAIL][33] ([i915#7699] / [i915#7913]) -> [PASS][34] [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13554/bat-adlp-9/igt@i915_selftest@live@migrate.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v2/bat-adlp-9/igt@i915_selftest@live@migrate.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [i915#7699]: https://gitlab.freedesktop.org/drm/intel/issues/7699 [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913 [i915#8442]: https://gitlab.freedesktop.org/drm/intel/issues/8442 [i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668 [i915#8879]: https://gitlab.freedesktop.org/drm/intel/issues/8879 Build changes ------------- * Linux: CI_DRM_13554 -> Patchwork_122804v2 CI-20190529: 20190529 CI_DRM_13554: 5d0f4dd3b47afb5b95c4f61ae5fe55735bb57300 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_7451: 5d48d1fb231f449fe2f80cda14ea7a1ecfda59fa @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_122804v2: 5d0f4dd3b47afb5b95c4f61ae5fe55735bb57300 @ git://anongit.freedesktop.org/gfx-ci/linux ### Linux commits ba5f075212f1 drm/i915: Set copy engine arbitration for Wa_16018031267 / Wa_16018063123 8ce59f4ba8f0 drm/i915: Add WABB blit for Wa_16018031267 / Wa_16018063123 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v2/index.html [-- Attachment #2: Type: text/html, Size: 8896 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Apply Wa_16018031267 / Wa_16018063123 (rev3) 2023-08-23 18:51 [Intel-gfx] [PATCH v2 0/2] Apply Wa_16018031267 / Wa_16018063123 Jonathan Cavitt ` (4 preceding siblings ...) 2023-08-23 21:30 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork @ 2023-08-24 21:09 ` Patchwork 2023-08-24 21:09 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork 2023-08-24 21:24 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork 7 siblings, 0 replies; 13+ messages in thread From: Patchwork @ 2023-08-24 21:09 UTC (permalink / raw) To: Jonathan Cavitt; +Cc: intel-gfx == Series Details == Series: Apply Wa_16018031267 / Wa_16018063123 (rev3) URL : https://patchwork.freedesktop.org/series/122804/ State : warning == Summary == Error: dim checkpatch failed 5fe66b3b6af8 drm/i915: Add WABB blit for Wa_16018031267 / Wa_16018063123 -:11: WARNING:BAD_SIGN_OFF: Co-developed-by: should not be used to attribute nominal patch author 'Nirmoy Das <nirmoy.das@intel.com>' #11: Co-developed-by: Nirmoy Das <nirmoy.das@intel.com> -:11: WARNING:BAD_SIGN_OFF: Co-developed-by: must be immediately followed by Signed-off-by: #11: Co-developed-by: Nirmoy Das <nirmoy.das@intel.com> -:54: WARNING:AVOID_BUG: Do not crash the kernel unless it is absolutely unavoidable--use WARN_ON_ONCE() plus recovery code (if feasible) instead of BUG() or variants #54: FILE: drivers/gpu/drm/i915/gt/intel_lrc.c:836: + GEM_BUG_ON(lrc_ring_wa_bb_per_ctx(engine) == -1); -:74: WARNING:SPACE_BEFORE_TAB: please, no space before tabs #74: FILE: drivers/gpu/drm/i915/gt/intel_lrc.c:1017: + * ^I^Ithe PER_CTX_BB. When disabled, the function returns$ -:75: WARNING:SPACE_BEFORE_TAB: please, no space before tabs #75: FILE: drivers/gpu/drm/i915/gt/intel_lrc.c:1018: + * ^I^Ithe location of the INDIRECT_CTX.$ -:110: ERROR:TRAILING_WHITESPACE: trailing whitespace #110: FILE: drivers/gpu/drm/i915/gt/intel_lrc.c:1402: +^Iu32 addr = intel_gt_scratch_offset(gt, INTEL_GT_SCRATCH_FIELD_DUMMY_BLIT); $ -:164: CHECK:LINE_SPACING: Please don't use multiple blank lines #164: FILE: drivers/gpu/drm/i915/gt/intel_lrc.c:1456: + + -:180: WARNING:AVOID_BUG: Do not crash the kernel unless it is absolutely unavoidable--use WARN_ON_ONCE() plus recovery code (if feasible) instead of BUG() or variants #180: FILE: drivers/gpu/drm/i915/gt/intel_lrc.c:1472: + GEM_BUG_ON(cs - start > I915_GTT_PAGE_SIZE / sizeof(*cs)); -:225: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis #225: FILE: drivers/gpu/drm/i915/gt/selftest_lrc.c:1583: +emit_wabb_ctx_canary(const struct intel_context *ce, + u32 *cs, bool per_ctx) -:250: ERROR:CODE_INDENT: code indent should use tabs where possible #250: FILE: drivers/gpu/drm/i915/gt/selftest_lrc.c:1607: + return emit_wabb_ctx_canary(ce, cs, true);$ -:250: WARNING:LEADING_SPACE: please, no spaces at the start of a line #250: FILE: drivers/gpu/drm/i915/gt/selftest_lrc.c:1607: + return emit_wabb_ctx_canary(ce, cs, true);$ -:354: ERROR:TRAILING_WHITESPACE: trailing whitespace #354: FILE: drivers/gpu/drm/i915/gt/selftest_lrc.c:1739: +}^I^I$ -:375: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'i915' - possible side-effects? #375: FILE: drivers/gpu/drm/i915/i915_drv.h:816: +#define NEEDS_FASTCOLOR_BLT_WABB(i915) (GRAPHICS_VER_FULL(i915) == IP_VER(12, 70) || \ + GRAPHICS_VER_FULL(i915) == IP_VER(12, 71) || \ + IS_PONTEVECCHIO(i915) || \ + IS_DG2(i915)) -:380: ERROR:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal patch author 'Nirmoy Das <nirmoy.das@intel.com>' total: 4 errors, 7 warnings, 3 checks, 330 lines checked d4d6d18968a9 drm/i915: Set copy engine arbitration for Wa_16018031267 / Wa_16018063123 ^ permalink raw reply [flat|nested] 13+ messages in thread
* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for Apply Wa_16018031267 / Wa_16018063123 (rev3) 2023-08-23 18:51 [Intel-gfx] [PATCH v2 0/2] Apply Wa_16018031267 / Wa_16018063123 Jonathan Cavitt ` (5 preceding siblings ...) 2023-08-24 21:09 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Apply Wa_16018031267 / Wa_16018063123 (rev3) Patchwork @ 2023-08-24 21:09 ` Patchwork 2023-08-24 21:24 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork 7 siblings, 0 replies; 13+ messages in thread From: Patchwork @ 2023-08-24 21:09 UTC (permalink / raw) To: Jonathan Cavitt; +Cc: intel-gfx == Series Details == Series: Apply Wa_16018031267 / Wa_16018063123 (rev3) URL : https://patchwork.freedesktop.org/series/122804/ State : warning == Summary == Error: dim sparse failed Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately. ^ permalink raw reply [flat|nested] 13+ messages in thread
* [Intel-gfx] ✗ Fi.CI.BAT: failure for Apply Wa_16018031267 / Wa_16018063123 (rev3) 2023-08-23 18:51 [Intel-gfx] [PATCH v2 0/2] Apply Wa_16018031267 / Wa_16018063123 Jonathan Cavitt ` (6 preceding siblings ...) 2023-08-24 21:09 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork @ 2023-08-24 21:24 ` Patchwork 7 siblings, 0 replies; 13+ messages in thread From: Patchwork @ 2023-08-24 21:24 UTC (permalink / raw) To: Jonathan Cavitt; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 9220 bytes --] == Series Details == Series: Apply Wa_16018031267 / Wa_16018063123 (rev3) URL : https://patchwork.freedesktop.org/series/122804/ State : failure == Summary == CI Bug Log - changes from CI_DRM_13562 -> Patchwork_122804v3 ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with Patchwork_122804v3 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_122804v3, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/index.html Participating hosts (41 -> 39) ------------------------------ Missing (2): fi-kbl-soraka fi-snb-2520m Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_122804v3: ### IGT changes ### #### Possible regressions #### * igt@i915_module_load@load: - bat-dg2-11: [PASS][1] -> [ABORT][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13562/bat-dg2-11/igt@i915_module_load@load.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/bat-dg2-11/igt@i915_module_load@load.html - bat-atsm-1: [PASS][3] -> [ABORT][4] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13562/bat-atsm-1/igt@i915_module_load@load.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/bat-atsm-1/igt@i915_module_load@load.html - bat-dg2-9: [PASS][5] -> [ABORT][6] [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13562/bat-dg2-9/igt@i915_module_load@load.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/bat-dg2-9/igt@i915_module_load@load.html * igt@i915_selftest@live@gt_lrc: - bat-dg1-5: [PASS][7] -> [DMESG-FAIL][8] [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13562/bat-dg1-5/igt@i915_selftest@live@gt_lrc.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/bat-dg1-5/igt@i915_selftest@live@gt_lrc.html - fi-rkl-11600: [PASS][9] -> [DMESG-FAIL][10] [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13562/fi-rkl-11600/igt@i915_selftest@live@gt_lrc.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/fi-rkl-11600/igt@i915_selftest@live@gt_lrc.html - bat-mtlp-8: [PASS][11] -> [DMESG-FAIL][12] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13562/bat-mtlp-8/igt@i915_selftest@live@gt_lrc.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/bat-mtlp-8/igt@i915_selftest@live@gt_lrc.html - bat-adlm-1: NOTRUN -> [DMESG-FAIL][13] [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/bat-adlm-1/igt@i915_selftest@live@gt_lrc.html - fi-tgl-1115g4: [PASS][14] -> [DMESG-FAIL][15] [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13562/fi-tgl-1115g4/igt@i915_selftest@live@gt_lrc.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/fi-tgl-1115g4/igt@i915_selftest@live@gt_lrc.html - bat-rpls-1: [PASS][16] -> [DMESG-FAIL][17] [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13562/bat-rpls-1/igt@i915_selftest@live@gt_lrc.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/bat-rpls-1/igt@i915_selftest@live@gt_lrc.html - bat-mtlp-6: [PASS][18] -> [DMESG-FAIL][19] [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13562/bat-mtlp-6/igt@i915_selftest@live@gt_lrc.html [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/bat-mtlp-6/igt@i915_selftest@live@gt_lrc.html #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@i915_module_load@load: - {bat-dg2-13}: [DMESG-WARN][20] ([i915#8879]) -> [ABORT][21] [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13562/bat-dg2-13/igt@i915_module_load@load.html [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/bat-dg2-13/igt@i915_module_load@load.html - {bat-dg2-14}: [DMESG-WARN][22] ([i915#8879]) -> [ABORT][23] [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13562/bat-dg2-14/igt@i915_module_load@load.html [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/bat-dg2-14/igt@i915_module_load@load.html Known issues ------------ Here are the changes found in Patchwork_122804v3 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@i915_selftest@live@gt_lrc: - bat-adlp-9: [PASS][24] -> [DMESG-FAIL][25] ([i915#7913]) [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13562/bat-adlp-9/igt@i915_selftest@live@gt_lrc.html [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/bat-adlp-9/igt@i915_selftest@live@gt_lrc.html - bat-adls-5: [PASS][26] -> [DMESG-FAIL][27] ([i915#7913]) [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13562/bat-adls-5/igt@i915_selftest@live@gt_lrc.html [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/bat-adls-5/igt@i915_selftest@live@gt_lrc.html - bat-rpls-2: [PASS][28] -> [DMESG-FAIL][29] ([i915#7913]) [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13562/bat-rpls-2/igt@i915_selftest@live@gt_lrc.html [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/bat-rpls-2/igt@i915_selftest@live@gt_lrc.html * igt@i915_suspend@basic-s3-without-i915: - bat-adlm-1: NOTRUN -> [INCOMPLETE][30] ([i915#7443]) [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/bat-adlm-1/igt@i915_suspend@basic-s3-without-i915.html - bat-mtlp-8: NOTRUN -> [SKIP][31] ([i915#6645]) [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/bat-mtlp-8/igt@i915_suspend@basic-s3-without-i915.html * igt@kms_psr@primary_mmap_gtt: - bat-rplp-1: NOTRUN -> [ABORT][32] ([i915#8442] / [i915#8469] / [i915#8668]) [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/bat-rplp-1/igt@kms_psr@primary_mmap_gtt.html * igt@kms_psr@sprite_plane_onoff: - bat-rplp-1: NOTRUN -> [SKIP][33] ([i915#1072]) [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/bat-rplp-1/igt@kms_psr@sprite_plane_onoff.html #### Possible fixes #### * igt@i915_selftest@live@requests: - bat-mtlp-8: [ABORT][34] ([i915#7982] / [i915#8865]) -> [PASS][35] [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13562/bat-mtlp-8/igt@i915_selftest@live@requests.html [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/bat-mtlp-8/igt@i915_selftest@live@requests.html * igt@i915_selftest@live@workarounds: - bat-adlm-1: [INCOMPLETE][36] ([i915#4983] / [i915#7677]) -> [PASS][37] [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13562/bat-adlm-1/igt@i915_selftest@live@workarounds.html [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/bat-adlm-1/igt@i915_selftest@live@workarounds.html #### Warnings #### * igt@kms_psr@cursor_plane_move: - bat-rplp-1: [ABORT][38] ([i915#8469] / [i915#8668]) -> [SKIP][39] ([i915#1072]) [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13562/bat-rplp-1/igt@kms_psr@cursor_plane_move.html [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/bat-rplp-1/igt@kms_psr@cursor_plane_move.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#6645]: https://gitlab.freedesktop.org/drm/intel/issues/6645 [i915#7443]: https://gitlab.freedesktop.org/drm/intel/issues/7443 [i915#7677]: https://gitlab.freedesktop.org/drm/intel/issues/7677 [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913 [i915#7982]: https://gitlab.freedesktop.org/drm/intel/issues/7982 [i915#8442]: https://gitlab.freedesktop.org/drm/intel/issues/8442 [i915#8469]: https://gitlab.freedesktop.org/drm/intel/issues/8469 [i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668 [i915#8865]: https://gitlab.freedesktop.org/drm/intel/issues/8865 [i915#8879]: https://gitlab.freedesktop.org/drm/intel/issues/8879 Build changes ------------- * Linux: CI_DRM_13562 -> Patchwork_122804v3 CI-20190529: 20190529 CI_DRM_13562: 6cd46255547ba72bb6cc6aab91c905b1dec95696 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_7451: 5d48d1fb231f449fe2f80cda14ea7a1ecfda59fa @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_122804v3: 6cd46255547ba72bb6cc6aab91c905b1dec95696 @ git://anongit.freedesktop.org/gfx-ci/linux ### Linux commits eb9b00171ac6 drm/i915: Set copy engine arbitration for Wa_16018031267 / Wa_16018063123 039711e4ae26 drm/i915: Add WABB blit for Wa_16018031267 / Wa_16018063123 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_122804v3/index.html [-- Attachment #2: Type: text/html, Size: 10706 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2023-08-24 21:24 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-08-23 18:51 [Intel-gfx] [PATCH v2 0/2] Apply Wa_16018031267 / Wa_16018063123 Jonathan Cavitt 2023-08-23 18:51 ` [Intel-gfx] [PATCH v2 1/2] drm/i915: Add WABB blit for " Jonathan Cavitt 2023-08-24 14:53 ` Andi Shyti 2023-08-24 15:01 ` Cavitt, Jonathan 2023-08-24 17:57 ` Matt Roper 2023-08-23 18:51 ` [Intel-gfx] [PATCH v2 2/2] drm/i915: Set copy engine arbitration " Jonathan Cavitt 2023-08-24 14:57 ` Andi Shyti 2023-08-23 21:15 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Apply Wa_16018031267 / Wa_16018063123 (rev2) Patchwork 2023-08-23 21:15 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork 2023-08-23 21:30 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork 2023-08-24 21:09 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Apply Wa_16018031267 / Wa_16018063123 (rev3) Patchwork 2023-08-24 21:09 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork 2023-08-24 21:24 ` [Intel-gfx] ✗ Fi.CI.BAT: 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.