* [Intel-gfx] [PATCH] drm/i915/selftests: Use a single copy of the mocs table @ 2021-02-01 10:04 Chris Wilson 2021-02-01 15:46 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for " Patchwork 2021-02-02 18:53 ` [Intel-gfx] [PATCH] " Mika Kuoppala 0 siblings, 2 replies; 3+ messages in thread From: Chris Wilson @ 2021-02-01 10:04 UTC (permalink / raw) To: intel-gfx; +Cc: Chris Wilson Instead of copying the whole table to each category (mocs, l3cc), use a single table with a pointer to it if the category is enabled. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> --- drivers/gpu/drm/i915/gt/selftest_mocs.c | 32 +++++++++++++++++-------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/selftest_mocs.c b/drivers/gpu/drm/i915/gt/selftest_mocs.c index e6f6807487d4..44609d1c7780 100644 --- a/drivers/gpu/drm/i915/gt/selftest_mocs.c +++ b/drivers/gpu/drm/i915/gt/selftest_mocs.c @@ -12,8 +12,9 @@ #include "selftests/igt_spinner.h" struct live_mocs { - struct drm_i915_mocs_table mocs; - struct drm_i915_mocs_table l3cc; + struct drm_i915_mocs_table table; + struct drm_i915_mocs_table *mocs; + struct drm_i915_mocs_table *l3cc; struct i915_vma *scratch; void *vaddr; }; @@ -58,21 +59,20 @@ static int request_add_spin(struct i915_request *rq, struct igt_spinner *spin) static int live_mocs_init(struct live_mocs *arg, struct intel_gt *gt) { - struct drm_i915_mocs_table table; unsigned int flags; int err; memset(arg, 0, sizeof(*arg)); - flags = get_mocs_settings(gt->i915, &table); + flags = get_mocs_settings(gt->i915, &arg->table); if (!flags) return -EINVAL; if (flags & HAS_RENDER_L3CC) - arg->l3cc = table; + arg->l3cc = &arg->table; if (flags & (HAS_GLOBAL_MOCS | HAS_ENGINE_MOCS)) - arg->mocs = table; + arg->mocs = &arg->table; arg->scratch = __vm_create_scratch_for_read(>->ggtt->vm, PAGE_SIZE); if (IS_ERR(arg->scratch)) @@ -130,6 +130,9 @@ static int read_mocs_table(struct i915_request *rq, { u32 addr; + if (!table) + return 0; + if (HAS_GLOBAL_MOCS_REGISTERS(rq->engine->i915)) addr = global_mocs_offset(); else @@ -144,6 +147,9 @@ static int read_l3cc_table(struct i915_request *rq, { u32 addr = i915_mmio_reg_offset(GEN9_LNCFCMOCS(0)); + if (!table) + return 0; + return read_regs(rq, addr, (table->n_entries + 1) / 2, offset); } @@ -154,6 +160,9 @@ static int check_mocs_table(struct intel_engine_cs *engine, unsigned int i; u32 expect; + if (!table) + return 0; + for_each_mocs(expect, table, i) { if (**vaddr != expect) { pr_err("%s: Invalid MOCS[%d] entry, found %08x, expected %08x\n", @@ -185,6 +194,9 @@ static int check_l3cc_table(struct intel_engine_cs *engine, unsigned int i; u32 expect; + if (!table) + return 0; + for_each_l3cc(expect, table, i) { if (!mcr_range(engine->i915, reg) && **vaddr != expect) { pr_err("%s: Invalid L3CC[%d] entry, found %08x, expected %08x\n", @@ -222,9 +234,9 @@ static int check_mocs_engine(struct live_mocs *arg, /* Read the mocs tables back using SRM */ offset = i915_ggtt_offset(vma); if (!err) - err = read_mocs_table(rq, &arg->mocs, &offset); + err = read_mocs_table(rq, arg->mocs, &offset); if (!err && ce->engine->class == RENDER_CLASS) - err = read_l3cc_table(rq, &arg->l3cc, &offset); + err = read_l3cc_table(rq, arg->l3cc, &offset); offset -= i915_ggtt_offset(vma); GEM_BUG_ON(offset > PAGE_SIZE); @@ -235,9 +247,9 @@ static int check_mocs_engine(struct live_mocs *arg, /* Compare the results against the expected tables */ vaddr = arg->vaddr; if (!err) - err = check_mocs_table(ce->engine, &arg->mocs, &vaddr); + err = check_mocs_table(ce->engine, arg->mocs, &vaddr); if (!err && ce->engine->class == RENDER_CLASS) - err = check_l3cc_table(ce->engine, &arg->l3cc, &vaddr); + err = check_l3cc_table(ce->engine, arg->l3cc, &vaddr); if (err) return err; -- 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] 3+ messages in thread
* [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/selftests: Use a single copy of the mocs table 2021-02-01 10:04 [Intel-gfx] [PATCH] drm/i915/selftests: Use a single copy of the mocs table Chris Wilson @ 2021-02-01 15:46 ` Patchwork 2021-02-02 18:53 ` [Intel-gfx] [PATCH] " Mika Kuoppala 1 sibling, 0 replies; 3+ messages in thread From: Patchwork @ 2021-02-01 15:46 UTC (permalink / raw) To: Chris Wilson; +Cc: intel-gfx [-- Attachment #1.1: Type: text/plain, Size: 5944 bytes --] == Series Details == Series: drm/i915/selftests: Use a single copy of the mocs table URL : https://patchwork.freedesktop.org/series/86525/ State : failure == Summary == CI Bug Log - changes from CI_DRM_9712 -> Patchwork_19552 ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with Patchwork_19552 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_19552, 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_19552/index.html Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_19552: ### IGT changes ### #### Possible regressions #### * igt@i915_selftest@live@objects: - fi-tgl-y: [PASS][1] -> [INCOMPLETE][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9712/fi-tgl-y/igt@i915_selftest@live@objects.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19552/fi-tgl-y/igt@i915_selftest@live@objects.html #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@i915_selftest@live@hangcheck: - {fi-ehl-1}: [PASS][3] -> [DMESG-FAIL][4] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9712/fi-ehl-1/igt@i915_selftest@live@hangcheck.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19552/fi-ehl-1/igt@i915_selftest@live@hangcheck.html Known issues ------------ Here are the changes found in Patchwork_19552 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@amdgpu/amd_cs_nop@fork-compute0: - fi-tgl-u2: NOTRUN -> [SKIP][5] ([fdo#109315] / [i915#2575]) +17 similar issues [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19552/fi-tgl-u2/igt@amdgpu/amd_cs_nop@fork-compute0.html * igt@gem_huc_copy@huc-copy: - fi-tgl-u2: NOTRUN -> [SKIP][6] ([i915#2190]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19552/fi-tgl-u2/igt@gem_huc_copy@huc-copy.html * igt@gem_mmap_gtt@basic: - fi-tgl-y: [PASS][7] -> [DMESG-WARN][8] ([i915#402]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9712/fi-tgl-y/igt@gem_mmap_gtt@basic.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19552/fi-tgl-y/igt@gem_mmap_gtt@basic.html * igt@i915_selftest@live@execlists: - fi-bsw-n3050: [PASS][9] -> [INCOMPLETE][10] ([i915#2940]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9712/fi-bsw-n3050/igt@i915_selftest@live@execlists.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19552/fi-bsw-n3050/igt@i915_selftest@live@execlists.html * igt@kms_chamelium@dp-hpd-fast: - fi-tgl-u2: NOTRUN -> [SKIP][11] ([fdo#109284] / [fdo#111827]) +8 similar issues [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19552/fi-tgl-u2/igt@kms_chamelium@dp-hpd-fast.html * igt@kms_force_connector_basic@force-load-detect: - fi-tgl-u2: NOTRUN -> [SKIP][12] ([fdo#109285]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19552/fi-tgl-u2/igt@kms_force_connector_basic@force-load-detect.html * igt@runner@aborted: - fi-bsw-n3050: NOTRUN -> [FAIL][13] ([i915#1436]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19552/fi-bsw-n3050/igt@runner@aborted.html #### Possible fixes #### * igt@gem_ringfill@basic-all: - fi-tgl-y: [DMESG-WARN][14] ([i915#402]) -> [PASS][15] [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9712/fi-tgl-y/igt@gem_ringfill@basic-all.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19552/fi-tgl-y/igt@gem_ringfill@basic-all.html * igt@kms_chamelium@dp-crc-fast: - fi-cml-u2: [FAIL][16] ([i915#1161] / [i915#262]) -> [PASS][17] [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9712/fi-cml-u2/igt@kms_chamelium@dp-crc-fast.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19552/fi-cml-u2/igt@kms_chamelium@dp-crc-fast.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1161]: https://gitlab.freedesktop.org/drm/intel/issues/1161 [i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575 [i915#262]: https://gitlab.freedesktop.org/drm/intel/issues/262 [i915#2940]: https://gitlab.freedesktop.org/drm/intel/issues/2940 [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402 Participating hosts (44 -> 39) ------------------------------ Additional (1): fi-tgl-u2 Missing (6): fi-jsl-1 fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-ctg-p8600 fi-bdw-samus Build changes ------------- * Linux: CI_DRM_9712 -> Patchwork_19552 CI-20190529: 20190529 CI_DRM_9712: 5276d4e84db68c095d7bacc0f3943936b49ef829 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_5982: cfb04c4a6171575f8782fe1dd5c63700ad33799e @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_19552: 6657022723c0a50cebc055bd6dd063c00c82a4da @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 6657022723c0 drm/i915/selftests: Use a single copy of the mocs table == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19552/index.html [-- Attachment #1.2: Type: text/html, Size: 6914 bytes --] [-- Attachment #2: Type: text/plain, Size: 160 bytes --] _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/i915/selftests: Use a single copy of the mocs table 2021-02-01 10:04 [Intel-gfx] [PATCH] drm/i915/selftests: Use a single copy of the mocs table Chris Wilson 2021-02-01 15:46 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for " Patchwork @ 2021-02-02 18:53 ` Mika Kuoppala 1 sibling, 0 replies; 3+ messages in thread From: Mika Kuoppala @ 2021-02-02 18:53 UTC (permalink / raw) To: Chris Wilson, intel-gfx; +Cc: Chris Wilson Chris Wilson <chris@chris-wilson.co.uk> writes: > Instead of copying the whole table to each category (mocs, l3cc), use a > single table with a pointer to it if the category is enabled. > > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> > --- > drivers/gpu/drm/i915/gt/selftest_mocs.c | 32 +++++++++++++++++-------- > 1 file changed, 22 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gt/selftest_mocs.c b/drivers/gpu/drm/i915/gt/selftest_mocs.c > index e6f6807487d4..44609d1c7780 100644 > --- a/drivers/gpu/drm/i915/gt/selftest_mocs.c > +++ b/drivers/gpu/drm/i915/gt/selftest_mocs.c > @@ -12,8 +12,9 @@ > #include "selftests/igt_spinner.h" > > struct live_mocs { > - struct drm_i915_mocs_table mocs; > - struct drm_i915_mocs_table l3cc; > + struct drm_i915_mocs_table table; > + struct drm_i915_mocs_table *mocs; > + struct drm_i915_mocs_table *l3cc; > struct i915_vma *scratch; > void *vaddr; > }; > @@ -58,21 +59,20 @@ static int request_add_spin(struct i915_request *rq, struct igt_spinner *spin) > > static int live_mocs_init(struct live_mocs *arg, struct intel_gt *gt) > { > - struct drm_i915_mocs_table table; > unsigned int flags; > int err; > > memset(arg, 0, sizeof(*arg)); > > - flags = get_mocs_settings(gt->i915, &table); > + flags = get_mocs_settings(gt->i915, &arg->table); > if (!flags) > return -EINVAL; > > if (flags & HAS_RENDER_L3CC) > - arg->l3cc = table; > + arg->l3cc = &arg->table; > > if (flags & (HAS_GLOBAL_MOCS | HAS_ENGINE_MOCS)) > - arg->mocs = table; > + arg->mocs = &arg->table; > > arg->scratch = __vm_create_scratch_for_read(>->ggtt->vm, PAGE_SIZE); > if (IS_ERR(arg->scratch)) > @@ -130,6 +130,9 @@ static int read_mocs_table(struct i915_request *rq, > { > u32 addr; > > + if (!table) > + return 0; > + > if (HAS_GLOBAL_MOCS_REGISTERS(rq->engine->i915)) > addr = global_mocs_offset(); > else > @@ -144,6 +147,9 @@ static int read_l3cc_table(struct i915_request *rq, > { > u32 addr = i915_mmio_reg_offset(GEN9_LNCFCMOCS(0)); > > + if (!table) > + return 0; > + > return read_regs(rq, addr, (table->n_entries + 1) / 2, offset); > } > > @@ -154,6 +160,9 @@ static int check_mocs_table(struct intel_engine_cs *engine, > unsigned int i; > u32 expect; > > + if (!table) > + return 0; > + > for_each_mocs(expect, table, i) { > if (**vaddr != expect) { > pr_err("%s: Invalid MOCS[%d] entry, found %08x, expected %08x\n", > @@ -185,6 +194,9 @@ static int check_l3cc_table(struct intel_engine_cs *engine, > unsigned int i; > u32 expect; > > + if (!table) > + return 0; > + > for_each_l3cc(expect, table, i) { > if (!mcr_range(engine->i915, reg) && **vaddr != expect) { > pr_err("%s: Invalid L3CC[%d] entry, found %08x, expected %08x\n", > @@ -222,9 +234,9 @@ static int check_mocs_engine(struct live_mocs *arg, > /* Read the mocs tables back using SRM */ > offset = i915_ggtt_offset(vma); > if (!err) > - err = read_mocs_table(rq, &arg->mocs, &offset); > + err = read_mocs_table(rq, arg->mocs, &offset); > if (!err && ce->engine->class == RENDER_CLASS) > - err = read_l3cc_table(rq, &arg->l3cc, &offset); > + err = read_l3cc_table(rq, arg->l3cc, &offset); > offset -= i915_ggtt_offset(vma); > GEM_BUG_ON(offset > PAGE_SIZE); > > @@ -235,9 +247,9 @@ static int check_mocs_engine(struct live_mocs *arg, > /* Compare the results against the expected tables */ > vaddr = arg->vaddr; > if (!err) > - err = check_mocs_table(ce->engine, &arg->mocs, &vaddr); > + err = check_mocs_table(ce->engine, arg->mocs, &vaddr); > if (!err && ce->engine->class == RENDER_CLASS) > - err = check_l3cc_table(ce->engine, &arg->l3cc, &vaddr); > + err = check_l3cc_table(ce->engine, arg->l3cc, &vaddr); > if (err) > return err; > > -- > 2.20.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-02-02 18:53 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-02-01 10:04 [Intel-gfx] [PATCH] drm/i915/selftests: Use a single copy of the mocs table Chris Wilson 2021-02-01 15:46 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for " Patchwork 2021-02-02 18:53 ` [Intel-gfx] [PATCH] " Mika Kuoppala
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox