Re: [Intel-gfx] [PATCH v2] drm/i915: Disable -Wuninitialized
On Fri, Jan 25, 2019 at 11:34:19PM -0800, Nick Desaulniers wrote: > On Fri, Jan 25, 2019 at 11:13 PM Nathan Chancellor > wrote: > > > > This warning is disabled by default in scripts/Makefile.extrawarn when > > W= is not provided but this Makefile adds -Wall after this warning is > > disabled so it shows up in the build when it shouldn't: > > > > In file included from drivers/gpu/drm/i915/intel_breadcrumbs.c:895: > > drivers/gpu/drm/i915/selftests/intel_breadcrumbs.c:350:34: error: > > variable 'wq' is uninitialized when used within its own initialization > > [-Werror,-Wuninitialized] > > DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq); > > ^~ > > ./include/linux/wait.h:74:63: note: expanded from macro > > 'DECLARE_WAIT_QUEUE_HEAD_ONSTACK' > > struct wait_queue_head name = __WAIT_QUEUE_HEAD_INIT_ONSTACK(name) > > ^~~~ > > ./include/linux/wait.h:72:33: note: expanded from macro > > '__WAIT_QUEUE_HEAD_INIT_ONSTACK' > > ({ init_waitqueue_head(&name); name; }) > >^~~~ > > 1 error generated. > > > > Explicitly disable the warning like commit 46e2068081e9 ("drm/i915: > > Disable some extra clang warnings"). > > > > Link: https://github.com/ClangBuiltLinux/linux/issues/220 > > Signed-off-by: Nathan Chancellor > > Reviewed-by: Nick Desaulniers > > probably could give Chris Wilson the suggested by tag. > https://lore.kernel.org/lkml/154513398652.1108.7150969916024071452@skylake-alporthouse-com/ > Ugh you're right, completely slipped my mind. Suggested-by: Chris Wilson > > --- > > > > v1 -> v2: > > > > * Rather than disable the warning for the problematic folder, disable it > > for the entire folder like Matthias's commit. > > Thanks for following up with a v2. Thank you for the review! Nathan > > -- > Thanks, > ~Nick Desaulniers ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Disable -Wuninitialized
== Series Details == Series: drm/i915: Disable -Wuninitialized URL : https://patchwork.freedesktop.org/series/55769/ State : success == Summary == CI Bug Log - changes from CI_DRM_5488 -> Patchwork_12051 Summary --- **SUCCESS** No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/55769/revisions/1/mbox/ Known issues Here are the changes found in Patchwork_12051 that come from known issues: ### IGT changes ### Issues hit * igt@gem_exec_suspend@basic-s3: - fi-blb-e6850: PASS -> INCOMPLETE [fdo#107718] * igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b: - fi-byt-clapper: PASS -> FAIL [fdo#107362] * igt@prime_vgem@basic-fence-flip: - fi-gdg-551: PASS -> FAIL [fdo#103182] Possible fixes * igt@kms_busy@basic-flip-a: - fi-gdg-551: FAIL [fdo#103182] -> PASS * igt@kms_chamelium@dp-edid-read: - fi-kbl-7500u: WARN -> PASS * igt@kms_pipe_crc_basic@read-crc-pipe-a: - fi-byt-clapper: FAIL [fdo#107362] -> PASS * igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence: - fi-byt-clapper: FAIL [fdo#103191] / [fdo#107362] -> PASS +1 {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182 [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191 [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362 [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718 [fdo#108915]: https://bugs.freedesktop.org/show_bug.cgi?id=108915 Participating hosts (44 -> 41) -- Additional (1): fi-icl-y Missing(4): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan Build changes - * Linux: CI_DRM_5488 -> Patchwork_12051 CI_DRM_5488: f13eede6ea3e780d900c5220bf09d764a80a3a8f @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12051: 5b4a07df5c73b2d846673614d4d508e6f378109c @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 5b4a07df5c73 drm/i915: Disable -Wuninitialized == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12051/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH v2] drm/i915: Disable -Wuninitialized
On Fri, Jan 25, 2019 at 11:34 PM Nick Desaulniers wrote: > > On Fri, Jan 25, 2019 at 11:13 PM Nathan Chancellor > wrote: > > > > This warning is disabled by default in scripts/Makefile.extrawarn when > > W= is not provided but this Makefile adds -Wall after this warning is > > disabled so it shows up in the build when it shouldn't: > > > > In file included from drivers/gpu/drm/i915/intel_breadcrumbs.c:895: > > drivers/gpu/drm/i915/selftests/intel_breadcrumbs.c:350:34: error: > > variable 'wq' is uninitialized when used within its own initialization > > [-Werror,-Wuninitialized] > > DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq); > > ^~ > > ./include/linux/wait.h:74:63: note: expanded from macro > > 'DECLARE_WAIT_QUEUE_HEAD_ONSTACK' > > struct wait_queue_head name = __WAIT_QUEUE_HEAD_INIT_ONSTACK(name) > > ^~~~ > > ./include/linux/wait.h:72:33: note: expanded from macro > > '__WAIT_QUEUE_HEAD_INIT_ONSTACK' > > ({ init_waitqueue_head(&name); name; }) > >^~~~ > > 1 error generated. > > > > Explicitly disable the warning like commit 46e2068081e9 ("drm/i915: > > Disable some extra clang warnings"). > > > > Link: https://github.com/ClangBuiltLinux/linux/issues/220 > > Signed-off-by: Nathan Chancellor > > Reviewed-by: Nick Desaulniers gah! I am on my work device, in that case it should be: Reviewed-by: Nick Desaulniers > > probably could give Chris Wilson the suggested by tag. > https://lore.kernel.org/lkml/154513398652.1108.7150969916024071452@skylake-alporthouse-com/ > > > --- > > > > v1 -> v2: > > > > * Rather than disable the warning for the problematic folder, disable it > > for the entire folder like Matthias's commit. > > Thanks for following up with a v2. > > -- > Thanks, > ~Nick Desaulniers -- Thanks, ~Nick Desaulniers ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH v2] drm/i915: Disable -Wuninitialized
On Fri, Jan 25, 2019 at 11:13 PM Nathan Chancellor wrote: > > This warning is disabled by default in scripts/Makefile.extrawarn when > W= is not provided but this Makefile adds -Wall after this warning is > disabled so it shows up in the build when it shouldn't: > > In file included from drivers/gpu/drm/i915/intel_breadcrumbs.c:895: > drivers/gpu/drm/i915/selftests/intel_breadcrumbs.c:350:34: error: > variable 'wq' is uninitialized when used within its own initialization > [-Werror,-Wuninitialized] > DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq); > ^~ > ./include/linux/wait.h:74:63: note: expanded from macro > 'DECLARE_WAIT_QUEUE_HEAD_ONSTACK' > struct wait_queue_head name = __WAIT_QUEUE_HEAD_INIT_ONSTACK(name) > ^~~~ > ./include/linux/wait.h:72:33: note: expanded from macro > '__WAIT_QUEUE_HEAD_INIT_ONSTACK' > ({ init_waitqueue_head(&name); name; }) >^~~~ > 1 error generated. > > Explicitly disable the warning like commit 46e2068081e9 ("drm/i915: > Disable some extra clang warnings"). > > Link: https://github.com/ClangBuiltLinux/linux/issues/220 > Signed-off-by: Nathan Chancellor Reviewed-by: Nick Desaulniers probably could give Chris Wilson the suggested by tag. https://lore.kernel.org/lkml/154513398652.1108.7150969916024071452@skylake-alporthouse-com/ > --- > > v1 -> v2: > > * Rather than disable the warning for the problematic folder, disable it > for the entire folder like Matthias's commit. Thanks for following up with a v2. -- Thanks, ~Nick Desaulniers ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: Disable -Wuninitialized
== Series Details == Series: drm/i915: Disable -Wuninitialized URL : https://patchwork.freedesktop.org/series/55769/ State : warning == Summary == $ dim sparse origin/drm-tip Sparse version: v0.5.2 Commit: drm/i915: Disable -Wuninitialized - +./arch/x86/include/asm/pgtable_64.h:61:9: warning: cast from non-scalar +./arch/x86/include/asm/pgtable_64.h:61:9: warning: cast to non-scalar +drivers/gpu/drm/i915/gvt/gtt.c:757:9:expected void [noderef] **slot +drivers/gpu/drm/i915/gvt/gtt.c:757:9:expected void **slot +drivers/gpu/drm/i915/gvt/gtt.c:757:9:expected void **slot +drivers/gpu/drm/i915/gvt/gtt.c:757:9:expected void **slot +drivers/gpu/drm/i915/gvt/gtt.c:757:9:got void [noderef] ** +drivers/gpu/drm/i915/gvt/gtt.c:757:9:got void [noderef] ** +drivers/gpu/drm/i915/gvt/gtt.c:757:9:got void [noderef] ** +drivers/gpu/drm/i915/gvt/gtt.c:757:9:got void **slot +drivers/gpu/drm/i915/gvt/gtt.c:757:9: warning: incorrect type in argument 1 (different address spaces) +drivers/gpu/drm/i915/gvt/gtt.c:757:9: warning: incorrect type in assignment (different address spaces) +drivers/gpu/drm/i915/gvt/gtt.c:757:9: warning: incorrect type in assignment (different address spaces) +drivers/gpu/drm/i915/gvt/gtt.c:757:9: warning: incorrect type in assignment (different address spaces) +drivers/gpu/drm/i915/gvt/gtt.c:758:45:expected void [noderef] **slot +drivers/gpu/drm/i915/gvt/gtt.c:758:45:got void **slot +drivers/gpu/drm/i915/gvt/gtt.c:758:45: warning: incorrect type in argument 1 (different address spaces) +drivers/gpu/drm/i915/gvt/mmio.c:282:23: warning: memcpy with byte count of 279040 +drivers/gpu/drm/i915/gvt/mmio.c:283:23: warning: memcpy with byte count of 279040 +drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void) +drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void) +drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void) +drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void) +drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void) +drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void) +drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void) +drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void) +drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void) +drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void) +drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void) +drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void) +drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void) +drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_cmd_parser.c:1104:35: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_cmd_parser.c:1104:35: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_debugfs.c:4186:41: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_debugfs.c:4186:41: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_debugfs.c:4240:49: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_debugfs.c:4240:49: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_debugfs.c:4296:49: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_debugfs.c:4296:49: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_drv.c:1189:35: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_drv.c:1189:35: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_drv.c:349:25: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_drv.h:3541:16: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_drv.h:3541:16: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_drv.h:3541:16: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_drv.h:3541:16: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_drv.h:3541:16: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_drv.h:3541:16: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_drv.h:3541:16: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_drv.h:3551:16: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_fixed.h:42:43: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_fixed.h:42:43: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_fixed.h:50:43: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_fixed.h:50:43: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_fixed.h:50:43: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_fixed.h:50:43: warning: expression using sizeof(void) +drivers/gpu/drm/i915/i915_fixed.h:50:43: warning: expression using sizeof(void
[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915: Don't send MST hotplugs until after resume
== Series Details == Series: drm/i915: Don't send MST hotplugs until after resume URL : https://patchwork.freedesktop.org/series/55763/ State : failure == Summary == CI Bug Log - changes from CI_DRM_5488_full -> Patchwork_12049_full Summary --- **FAILURE** Serious unknown changes coming with Patchwork_12049_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_12049_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_12049_full: ### IGT changes ### Possible regressions * igt@prime_busy@hang-render: - shard-hsw: PASS -> FAIL Suppressed The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * {igt@runner@aborted}: - shard-kbl: ( 5 FAIL ) -> ( 4 FAIL ) Known issues Here are the changes found in Patchwork_12049_full that come from known issues: ### IGT changes ### Issues hit * igt@gem_ctx_isolation@bcs0-s3: - shard-kbl: PASS -> INCOMPLETE [fdo#103665] * igt@kms_busy@extended-modeset-hang-newfb-render-a: - shard-snb: NOTRUN -> DMESG-WARN [fdo#107956] * igt@kms_color@pipe-a-degamma: - shard-apl: PASS -> FAIL [fdo#104782] / [fdo#108145] * igt@kms_cursor_crc@cursor-256x256-random: - shard-glk: PASS -> FAIL [fdo#103232] * igt@kms_cursor_crc@cursor-64x64-dpms: - shard-apl: PASS -> FAIL [fdo#103232] +3 * igt@kms_flip@modeset-vs-vblank-race: - shard-glk: PASS -> FAIL [fdo#103060] * igt@kms_plane_alpha_blend@pipe-b-alpha-transparant-fb: - shard-kbl: NOTRUN -> FAIL [fdo#108145] * igt@kms_plane_multiple@atomic-pipe-b-tiling-none: - shard-glk: PASS -> FAIL [fdo#103166] +1 Possible fixes * igt@kms_color@pipe-c-degamma: - shard-apl: FAIL [fdo#104782] -> PASS * igt@kms_cursor_crc@cursor-64x21-onscreen: - shard-glk: FAIL [fdo#103232] -> PASS * igt@kms_plane_multiple@atomic-pipe-a-tiling-y: - shard-glk: FAIL [fdo#103166] -> PASS +1 * igt@kms_plane_multiple@atomic-pipe-c-tiling-yf: - shard-apl: FAIL [fdo#103166] -> PASS +2 Warnings * igt@i915_suspend@shrink: - shard-snb: INCOMPLETE [fdo#105411] / [fdo#106886] -> DMESG-WARN [fdo#109244] {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103060]: https://bugs.freedesktop.org/show_bug.cgi?id=103060 [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166 [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232 [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665 [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782 [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411 [fdo#106886]: https://bugs.freedesktop.org/show_bug.cgi?id=106886 [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956 [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#109244]: https://bugs.freedesktop.org/show_bug.cgi?id=109244 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 Participating hosts (7 -> 5) -- Missing(2): shard-skl shard-iclb Build changes - * Linux: CI_DRM_5488 -> Patchwork_12049 CI_DRM_5488: f13eede6ea3e780d900c5220bf09d764a80a3a8f @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12049: 1418cd83041b37deeb0d3d383c3ed492231a9d0b @ 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_12049/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH v2] drm/i915: Disable -Wuninitialized
On Sat, Jan 26, 2019 at 12:11:23AM -0700, Nathan Chancellor wrote: > This warning is disabled by default in scripts/Makefile.extrawarn when > W= is not provided but this Makefile adds -Wall after this warning is > disabled so it shows up in the build when it shouldn't: > > In file included from drivers/gpu/drm/i915/intel_breadcrumbs.c:895: > drivers/gpu/drm/i915/selftests/intel_breadcrumbs.c:350:34: error: > variable 'wq' is uninitialized when used within its own initialization > [-Werror,-Wuninitialized] > DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq); > ^~ > ./include/linux/wait.h:74:63: note: expanded from macro > 'DECLARE_WAIT_QUEUE_HEAD_ONSTACK' > struct wait_queue_head name = __WAIT_QUEUE_HEAD_INIT_ONSTACK(name) > ^~~~ > ./include/linux/wait.h:72:33: note: expanded from macro > '__WAIT_QUEUE_HEAD_INIT_ONSTACK' > ({ init_waitqueue_head(&name); name; }) >^~~~ > 1 error generated. > > Explicitly disable the warning like commit 46e2068081e9 ("drm/i915: > Disable some extra clang warnings"). > > Link: https://github.com/ClangBuiltLinux/linux/issues/220 > Signed-off-by: Nathan Chancellor > --- > > v1 -> v2: > > * Rather than disable the warning for the problematic folder, disable it > for the entire folder like Matthias's commit. > Link to v1: https://lore.kernel.org/lkml/20181025193601.11746-1-natechancel...@gmail.com/ Since I forgot '--in-reply-to' :( > drivers/gpu/drm/i915/Makefile | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile > index 8300efe60fe1..210d0e8777b6 100644 > --- a/drivers/gpu/drm/i915/Makefile > +++ b/drivers/gpu/drm/i915/Makefile > @@ -22,6 +22,7 @@ subdir-ccflags-y += $(call cc-disable-warning, > unused-but-set-variable) > subdir-ccflags-y += $(call cc-disable-warning, sign-compare) > subdir-ccflags-y += $(call cc-disable-warning, sometimes-uninitialized) > subdir-ccflags-y += $(call cc-disable-warning, initializer-overrides) > +subdir-ccflags-y += $(call cc-disable-warning, uninitialized) > subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror > > # Fine grained warnings disable > -- > 2.20.1 > ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH v2] drm/i915: Disable -Wuninitialized
This warning is disabled by default in scripts/Makefile.extrawarn when W= is not provided but this Makefile adds -Wall after this warning is disabled so it shows up in the build when it shouldn't: In file included from drivers/gpu/drm/i915/intel_breadcrumbs.c:895: drivers/gpu/drm/i915/selftests/intel_breadcrumbs.c:350:34: error: variable 'wq' is uninitialized when used within its own initialization [-Werror,-Wuninitialized] DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq); ^~ ./include/linux/wait.h:74:63: note: expanded from macro 'DECLARE_WAIT_QUEUE_HEAD_ONSTACK' struct wait_queue_head name = __WAIT_QUEUE_HEAD_INIT_ONSTACK(name) ^~~~ ./include/linux/wait.h:72:33: note: expanded from macro '__WAIT_QUEUE_HEAD_INIT_ONSTACK' ({ init_waitqueue_head(&name); name; }) ^~~~ 1 error generated. Explicitly disable the warning like commit 46e2068081e9 ("drm/i915: Disable some extra clang warnings"). Link: https://github.com/ClangBuiltLinux/linux/issues/220 Signed-off-by: Nathan Chancellor --- v1 -> v2: * Rather than disable the warning for the problematic folder, disable it for the entire folder like Matthias's commit. drivers/gpu/drm/i915/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile index 8300efe60fe1..210d0e8777b6 100644 --- a/drivers/gpu/drm/i915/Makefile +++ b/drivers/gpu/drm/i915/Makefile @@ -22,6 +22,7 @@ subdir-ccflags-y += $(call cc-disable-warning, unused-but-set-variable) subdir-ccflags-y += $(call cc-disable-warning, sign-compare) subdir-ccflags-y += $(call cc-disable-warning, sometimes-uninitialized) subdir-ccflags-y += $(call cc-disable-warning, initializer-overrides) +subdir-ccflags-y += $(call cc-disable-warning, uninitialized) subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror # Fine grained warnings disable -- 2.20.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/4] drm/i915/psr: Remove PSR2 FIXME
== Series Details == Series: series starting with [1/4] drm/i915/psr: Remove PSR2 FIXME URL : https://patchwork.freedesktop.org/series/55762/ State : success == Summary == CI Bug Log - changes from CI_DRM_5488_full -> Patchwork_12048_full Summary --- **SUCCESS** No regressions found. Possible new issues --- Here are the unknown changes that may have been introduced in Patchwork_12048_full: ### IGT changes ### Suppressed The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * {igt@runner@aborted}: - shard-kbl: ( 5 FAIL ) -> ( 4 FAIL ) Known issues Here are the changes found in Patchwork_12048_full that come from known issues: ### IGT changes ### Issues hit * igt@gem_ctx_isolation@bcs0-s3: - shard-kbl: PASS -> INCOMPLETE [fdo#103665] * igt@i915_selftest@live_hangcheck: - shard-apl: PASS -> INCOMPLETE [fdo#103927] * igt@kms_busy@extended-modeset-hang-newfb-render-a: - shard-snb: NOTRUN -> DMESG-WARN [fdo#107956] * igt@kms_color@pipe-a-degamma: - shard-apl: PASS -> FAIL [fdo#104782] / [fdo#108145] * igt@kms_cursor_crc@cursor-128x128-suspend: - shard-apl: PASS -> FAIL [fdo#103191] / [fdo#103232] * igt@kms_cursor_crc@cursor-64x64-dpms: - shard-apl: PASS -> FAIL [fdo#103232] +3 * igt@kms_flip@2x-flip-vs-dpms: - shard-hsw: PASS -> DMESG-WARN [fdo#102614] +1 * igt@kms_plane@plane-position-covered-pipe-c-planes: - shard-glk: PASS -> FAIL [fdo#103166] * igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb: - shard-glk: PASS -> FAIL [fdo#108145] * igt@kms_plane_alpha_blend@pipe-b-alpha-transparant-fb: - shard-kbl: NOTRUN -> FAIL [fdo#108145] * igt@kms_plane_multiple@atomic-pipe-b-tiling-y: - shard-apl: PASS -> FAIL [fdo#103166] +2 * igt@kms_rotation_crc@multiplane-rotation-cropping-bottom: - shard-kbl: NOTRUN -> DMESG-FAIL [fdo#105763] Possible fixes * igt@kms_color@pipe-c-degamma: - shard-apl: FAIL [fdo#104782] -> PASS * igt@kms_plane_multiple@atomic-pipe-a-tiling-y: - shard-glk: FAIL [fdo#103166] -> PASS +2 * igt@kms_plane_multiple@atomic-pipe-c-tiling-yf: - shard-apl: FAIL [fdo#103166] -> PASS +1 * igt@perf_pmu@rc6-runtime-pm-long: - shard-kbl: FAIL [fdo#105010] -> PASS Warnings * igt@i915_suspend@shrink: - shard-snb: INCOMPLETE [fdo#105411] / [fdo#106886] -> DMESG-WARN [fdo#109244] {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614 [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166 [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191 [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232 [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665 [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927 [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782 [fdo#105010]: https://bugs.freedesktop.org/show_bug.cgi?id=105010 [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411 [fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763 [fdo#106886]: https://bugs.freedesktop.org/show_bug.cgi?id=106886 [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956 [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#109244]: https://bugs.freedesktop.org/show_bug.cgi?id=109244 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 Participating hosts (7 -> 5) -- Missing(2): shard-skl shard-iclb Build changes - * Linux: CI_DRM_5488 -> Patchwork_12048 CI_DRM_5488: f13eede6ea3e780d900c5220bf09d764a80a3a8f @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12048: a0ca8072bf48e1fb3c71b03d271a2b4afe7e4417 @ 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_12048/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Apply LUT validation checks to platforms more accurately
== Series Details == Series: drm/i915: Apply LUT validation checks to platforms more accurately URL : https://patchwork.freedesktop.org/series/55765/ State : success == Summary == CI Bug Log - changes from CI_DRM_5488 -> Patchwork_12050 Summary --- **SUCCESS** No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/55765/revisions/1/mbox/ Known issues Here are the changes found in Patchwork_12050 that come from known issues: ### IGT changes ### Issues hit * igt@kms_flip@basic-flip-vs-modeset: - fi-skl-6700hq: PASS -> DMESG-WARN [fdo#105998] Possible fixes * igt@kms_busy@basic-flip-a: - fi-gdg-551: FAIL [fdo#103182] -> PASS * igt@kms_chamelium@dp-edid-read: - fi-kbl-7500u: WARN -> PASS * igt@kms_pipe_crc_basic@read-crc-pipe-a: - fi-byt-clapper: FAIL [fdo#107362] -> PASS * igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence: - fi-byt-clapper: FAIL [fdo#103191] / [fdo#107362] -> PASS +1 [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182 [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191 [fdo#105998]: https://bugs.freedesktop.org/show_bug.cgi?id=105998 [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362 Participating hosts (44 -> 40) -- Missing(4): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan Build changes - * Linux: CI_DRM_5488 -> Patchwork_12050 CI_DRM_5488: f13eede6ea3e780d900c5220bf09d764a80a3a8f @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12050: 0088726a8c5a80b7accbafe0e21b72c5b6d9ecfd @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 0088726a8c5a drm/i915: Apply LUT validation checks to platforms more accurately == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12050/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Apply LUT validation checks to platforms more accurately
== Series Details == Series: drm/i915: Apply LUT validation checks to platforms more accurately URL : https://patchwork.freedesktop.org/series/55765/ State : warning == Summary == $ dim checkpatch origin/drm-tip 0088726a8c5a drm/i915: Apply LUT validation checks to platforms more accurately -:20: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description (prefer a maximum 75 chars per line) #20: References: https://lists.freedesktop.org/archives/intel-gfx/2019-January/187634.html total: 0 errors, 1 warnings, 0 checks, 54 lines checked ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Don't send MST hotplugs until after resume
== Series Details == Series: drm/i915: Don't send MST hotplugs until after resume URL : https://patchwork.freedesktop.org/series/55763/ State : success == Summary == CI Bug Log - changes from CI_DRM_5488 -> Patchwork_12049 Summary --- **SUCCESS** No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/55763/revisions/1/mbox/ Known issues Here are the changes found in Patchwork_12049 that come from known issues: ### IGT changes ### Issues hit * igt@amdgpu/amd_basic@userptr: - fi-kbl-8809g: PASS -> DMESG-WARN [fdo#108965] * igt@kms_pipe_crc_basic@hang-read-crc-pipe-b: - fi-byt-clapper: PASS -> FAIL [fdo#103191] / [fdo#107362] +1 Possible fixes * igt@kms_busy@basic-flip-a: - fi-gdg-551: FAIL [fdo#103182] -> PASS * igt@kms_chamelium@dp-edid-read: - fi-kbl-7500u: WARN -> PASS * igt@kms_pipe_crc_basic@read-crc-pipe-a: - fi-byt-clapper: FAIL [fdo#107362] -> PASS * igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence: - fi-byt-clapper: FAIL [fdo#103191] / [fdo#107362] -> PASS +1 * igt@pm_rpm@module-reload: - fi-skl-6770hq: FAIL [fdo#108511] -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182 [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191 [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362 [fdo#108511]: https://bugs.freedesktop.org/show_bug.cgi?id=108511 [fdo#108654]: https://bugs.freedesktop.org/show_bug.cgi?id=108654 [fdo#108965]: https://bugs.freedesktop.org/show_bug.cgi?id=108965 Participating hosts (44 -> 40) -- Missing(4): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan Build changes - * Linux: CI_DRM_5488 -> Patchwork_12049 CI_DRM_5488: f13eede6ea3e780d900c5220bf09d764a80a3a8f @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12049: 1418cd83041b37deeb0d3d383c3ed492231a9d0b @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 1418cd83041b drm/i915: Don't send MST hotplugs until after resume == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12049/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.IGT: failure for icl: Misc PLL patches (rev2)
== Series Details == Series: icl: Misc PLL patches (rev2) URL : https://patchwork.freedesktop.org/series/55378/ State : failure == Summary == CI Bug Log - changes from CI_DRM_5488_full -> Patchwork_12047_full Summary --- **FAILURE** Serious unknown changes coming with Patchwork_12047_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_12047_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_12047_full: ### IGT changes ### Possible regressions * igt@prime_busy@hang-blt: - shard-hsw: PASS -> FAIL Warnings * igt@gem_eio@in-flight-immediate: - shard-kbl: DMESG-FAIL -> DMESG-WARN Known issues Here are the changes found in Patchwork_12047_full that come from known issues: ### IGT changes ### Issues hit * igt@gem_ctx_isolation@bcs0-s3: - shard-kbl: PASS -> INCOMPLETE [fdo#103665] * igt@kms_busy@extended-modeset-hang-newfb-render-a: - shard-snb: NOTRUN -> DMESG-WARN [fdo#107956] * igt@kms_color@pipe-a-degamma: - shard-apl: PASS -> FAIL [fdo#104782] / [fdo#108145] * igt@kms_cursor_crc@cursor-64x64-dpms: - shard-apl: PASS -> FAIL [fdo#103232] +1 - shard-glk: PASS -> FAIL [fdo#103232] * igt@kms_plane_alpha_blend@pipe-b-alpha-transparant-fb: - shard-kbl: NOTRUN -> FAIL [fdo#108145] * igt@kms_plane_multiple@atomic-pipe-b-tiling-none: - shard-glk: PASS -> FAIL [fdo#103166] +1 * igt@kms_plane_multiple@atomic-pipe-c-tiling-none: - shard-apl: PASS -> FAIL [fdo#103166] * igt@kms_rotation_crc@multiplane-rotation-cropping-top: - shard-apl: PASS -> DMESG-FAIL [fdo#108950] Possible fixes * igt@kms_color@pipe-c-degamma: - shard-apl: FAIL [fdo#104782] -> PASS * igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb: - shard-apl: FAIL [fdo#108145] -> PASS * igt@kms_plane_multiple@atomic-pipe-a-tiling-y: - shard-glk: FAIL [fdo#103166] -> PASS +2 * igt@kms_plane_multiple@atomic-pipe-c-tiling-yf: - shard-apl: FAIL [fdo#103166] -> PASS Warnings * igt@i915_suspend@shrink: - shard-snb: INCOMPLETE [fdo#105411] / [fdo#106886] -> DMESG-WARN [fdo#109244] * igt@kms_rotation_crc@multiplane-rotation-cropping-top: - shard-glk: DMESG-FAIL [fdo#105763] / [fdo#106538] -> FAIL [fdo#109381] {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166 [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232 [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665 [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782 [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411 [fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763 [fdo#106538]: https://bugs.freedesktop.org/show_bug.cgi?id=106538 [fdo#106886]: https://bugs.freedesktop.org/show_bug.cgi?id=106886 [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956 [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#108950]: https://bugs.freedesktop.org/show_bug.cgi?id=108950 [fdo#109244]: https://bugs.freedesktop.org/show_bug.cgi?id=109244 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 [fdo#109381]: https://bugs.freedesktop.org/show_bug.cgi?id=109381 Participating hosts (7 -> 5) -- Missing(2): shard-skl shard-iclb Build changes - * Linux: CI_DRM_5488 -> Patchwork_12047 CI_DRM_5488: f13eede6ea3e780d900c5220bf09d764a80a3a8f @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12047: 4fe541137b10b0f31fbaebc2581792ac9a3dafcf @ 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_12047/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/4] drm/i915/psr: Remove PSR2 FIXME
== Series Details == Series: series starting with [1/4] drm/i915/psr: Remove PSR2 FIXME URL : https://patchwork.freedesktop.org/series/55762/ State : success == Summary == CI Bug Log - changes from CI_DRM_5488 -> Patchwork_12048 Summary --- **SUCCESS** No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/55762/revisions/1/mbox/ Known issues Here are the changes found in Patchwork_12048 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_hangcheck: - fi-skl-iommu: PASS -> INCOMPLETE [fdo#108602] / [fdo#108744] Possible fixes * igt@kms_chamelium@dp-edid-read: - fi-kbl-7500u: WARN -> PASS * igt@kms_pipe_crc_basic@read-crc-pipe-a: - fi-byt-clapper: FAIL [fdo#107362] -> PASS * igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence: - fi-byt-clapper: FAIL [fdo#103191] / [fdo#107362] -> PASS +1 * igt@pm_rpm@module-reload: - fi-skl-6770hq: FAIL [fdo#108511] -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191 [fdo#104108]: https://bugs.freedesktop.org/show_bug.cgi?id=104108 [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362 [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718 [fdo#108511]: https://bugs.freedesktop.org/show_bug.cgi?id=108511 [fdo#108602]: https://bugs.freedesktop.org/show_bug.cgi?id=108602 [fdo#108744]: https://bugs.freedesktop.org/show_bug.cgi?id=108744 [fdo#108915]: https://bugs.freedesktop.org/show_bug.cgi?id=108915 Participating hosts (44 -> 41) -- Additional (1): fi-icl-y Missing(4): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan Build changes - * Linux: CI_DRM_5488 -> Patchwork_12048 CI_DRM_5488: f13eede6ea3e780d900c5220bf09d764a80a3a8f @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12048: a0ca8072bf48e1fb3c71b03d271a2b4afe7e4417 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == a0ca8072bf48 drm/i915/psr: Print why PSR or PSR2 was not enabled in debugfs 004d4cfe5a00 drm/psr: Do not enable PSR when a interlaced mode set for all gens 134873148487 drm/i915/psr: Initialize PSR mutex even when sink is not reliable c3c5516bfe56 drm/i915/psr: Remove PSR2 FIXME == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12048/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/3] drm/i915: Rename execlists->queue_priority to preempt_priority_hint
== Series Details == Series: series starting with [1/3] drm/i915: Rename execlists->queue_priority to preempt_priority_hint URL : https://patchwork.freedesktop.org/series/55750/ State : success == Summary == CI Bug Log - changes from CI_DRM_5488_full -> Patchwork_12046_full Summary --- **SUCCESS** No regressions found. Known issues Here are the changes found in Patchwork_12046_full that come from known issues: ### IGT changes ### Issues hit * igt@gem_ctx_isolation@bcs0-s3: - shard-kbl: PASS -> INCOMPLETE [fdo#103665] * igt@gem_eio@reset-stress: - shard-snb: PASS -> INCOMPLETE [fdo#105411] * igt@kms_busy@extended-modeset-hang-newfb-render-a: - shard-snb: NOTRUN -> DMESG-WARN [fdo#107956] * igt@kms_color@pipe-a-degamma: - shard-apl: PASS -> FAIL [fdo#104782] / [fdo#108145] * igt@kms_cursor_crc@cursor-256x85-random: - shard-glk: PASS -> FAIL [fdo#103232] * igt@kms_cursor_crc@cursor-64x64-dpms: - shard-apl: PASS -> FAIL [fdo#103232] +1 * igt@kms_plane@pixel-format-pipe-c-planes: - shard-apl: PASS -> FAIL [fdo#103166] +2 * igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb: - shard-glk: PASS -> FAIL [fdo#108145] * igt@kms_plane_alpha_blend@pipe-b-alpha-transparant-fb: - shard-kbl: NOTRUN -> FAIL [fdo#108145] * igt@kms_plane_multiple@atomic-pipe-b-tiling-none: - shard-glk: PASS -> FAIL [fdo#103166] +1 * igt@kms_rotation_crc@multiplane-rotation-cropping-top: - shard-apl: PASS -> DMESG-FAIL [fdo#108950] Possible fixes * igt@kms_busy@extended-modeset-hang-newfb-render-c: - shard-hsw: DMESG-WARN [fdo#107956] -> PASS * igt@kms_color@pipe-c-degamma: - shard-apl: FAIL [fdo#104782] -> PASS * igt@kms_cursor_crc@cursor-64x21-onscreen: - shard-glk: FAIL [fdo#103232] -> PASS * igt@kms_plane_multiple@atomic-pipe-a-tiling-y: - shard-glk: FAIL [fdo#103166] -> PASS +2 * igt@kms_plane_multiple@atomic-pipe-c-tiling-yf: - shard-apl: FAIL [fdo#103166] -> PASS +1 * igt@kms_setmode@basic: - shard-apl: FAIL [fdo#99912] -> PASS - shard-hsw: FAIL [fdo#99912] -> PASS - shard-kbl: FAIL [fdo#99912] -> PASS * igt@perf_pmu@rc6-runtime-pm-long: - shard-kbl: FAIL [fdo#105010] -> PASS Warnings * igt@i915_suspend@shrink: - shard-snb: INCOMPLETE [fdo#105411] / [fdo#106886] -> DMESG-WARN [fdo#109244] {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166 [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232 [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665 [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782 [fdo#105010]: https://bugs.freedesktop.org/show_bug.cgi?id=105010 [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411 [fdo#106886]: https://bugs.freedesktop.org/show_bug.cgi?id=106886 [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956 [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#108950]: https://bugs.freedesktop.org/show_bug.cgi?id=108950 [fdo#109244]: https://bugs.freedesktop.org/show_bug.cgi?id=109244 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912 Participating hosts (7 -> 5) -- Missing(2): shard-skl shard-iclb Build changes - * Linux: CI_DRM_5488 -> Patchwork_12046 CI_DRM_5488: f13eede6ea3e780d900c5220bf09d764a80a3a8f @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12046: 6f40b811103eee129743c6465e987be7a51e7596 @ 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_12046/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [1/4] drm/i915/psr: Remove PSR2 FIXME
== Series Details == Series: series starting with [1/4] drm/i915/psr: Remove PSR2 FIXME URL : https://patchwork.freedesktop.org/series/55762/ State : warning == Summary == $ dim sparse origin/drm-tip Sparse version: v0.5.2 Commit: drm/i915/psr: Remove PSR2 FIXME Okay! Commit: drm/i915/psr: Initialize PSR mutex even when sink is not reliable Okay! Commit: drm/psr: Do not enable PSR when a interlaced mode set for all gens Okay! Commit: drm/i915/psr: Print why PSR or PSR2 was not enabled in debugfs -drivers/gpu/drm/i915/selftests/../i915_drv.h:3541:16: warning: expression using sizeof(void) +drivers/gpu/drm/i915/selftests/../i915_drv.h:3542:16: warning: expression using sizeof(void) ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/4] drm/i915/psr: Remove PSR2 FIXME
== Series Details == Series: series starting with [1/4] drm/i915/psr: Remove PSR2 FIXME URL : https://patchwork.freedesktop.org/series/55762/ State : warning == Summary == $ dim checkpatch origin/drm-tip c3c5516bfe56 drm/i915/psr: Remove PSR2 FIXME 134873148487 drm/i915/psr: Initialize PSR mutex even when sink is not reliable 004d4cfe5a00 drm/psr: Do not enable PSR when a interlaced mode set for all gens a0ca8072bf48 drm/i915/psr: Print why PSR or PSR2 was not enabled in debugfs -:76: WARNING:LONG_LINE: line over 100 characters #76: FILE: drivers/gpu/drm/i915/intel_psr.c:561: + dev_priv->psr.disabled_reason = "PSR2 cannot be enabled because resolution is to big"; total: 0 errors, 1 warnings, 0 checks, 84 lines checked ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH] drm/i915: Apply LUT validation checks to platforms more accurately
Use of the new DRM_COLOR_LUT_NON_DECREASING test was a bit over-zealous; it doesn't actually need to be applied to the degamma on "bdw-style" platforms. Likewise, we overlooked the fact that CHV should have that test applied to the gamma LUT as well as the degamma LUT. Rather than adding more complicated platform checking to intel_color_check(), let's just store the appropriate set of LUT validation flags for each platform in the intel_device_info structure. Fixes: 85e2d61e4976 ("drm/i915: Validate userspace-provided color management LUT's (v4)") References: https://lists.freedesktop.org/archives/intel-gfx/2019-January/187634.html Cc: Ville Syrjälä Signed-off-by: Matt Roper --- drivers/gpu/drm/i915/i915_pci.c | 10 -- drivers/gpu/drm/i915/intel_color.c | 19 +-- drivers/gpu/drm/i915/intel_device_info.h | 2 ++ 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c index 44c23ac60347..17f5a605b0b3 100644 --- a/drivers/gpu/drm/i915/i915_pci.c +++ b/drivers/gpu/drm/i915/i915_pci.c @@ -69,9 +69,15 @@ #define BDW_COLORS \ .color = { .degamma_lut_size = 512, .gamma_lut_size = 512 } #define CHV_COLORS \ - .color = { .degamma_lut_size = 65, .gamma_lut_size = 257 } + .color = { .degamma_lut_size = 65, .gamma_lut_size = 257, \ + .degamma_lut_tests = DRM_COLOR_LUT_NON_DECREASING, \ + .gamma_lut_tests = DRM_COLOR_LUT_NON_DECREASING, \ + } #define GLK_COLORS \ - .color = { .degamma_lut_size = 0, .gamma_lut_size = 1024 } + .color = { .degamma_lut_size = 0, .gamma_lut_size = 1024, \ + .degamma_lut_tests = DRM_COLOR_LUT_NON_DECREASING | \ + DRM_COLOR_LUT_EQUAL_CHANNELS, \ + } /* Keep in gen based order, and chronological order within a gen */ diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c index bc7589656a8f..cd08f58b1e47 100644 --- a/drivers/gpu/drm/i915/intel_color.c +++ b/drivers/gpu/drm/i915/intel_color.c @@ -609,24 +609,15 @@ int intel_color_check(struct intel_crtc_state *crtc_state) { struct drm_i915_private *dev_priv = to_i915(crtc_state->base.crtc->dev); size_t gamma_length, degamma_length; - uint32_t tests = DRM_COLOR_LUT_NON_DECREASING; + u32 gamma_tests, degamma_tests; degamma_length = INTEL_INFO(dev_priv)->color.degamma_lut_size; gamma_length = INTEL_INFO(dev_priv)->color.gamma_lut_size; + degamma_tests = INTEL_INFO(dev_priv)->color.degamma_lut_tests; + gamma_tests = INTEL_INFO(dev_priv)->color.gamma_lut_tests; - /* -* All of our platforms mandate that the degamma curve be -* non-decreasing. Additionally, GLK and gen11 only accept a single -* value for red, green, and blue in the degamma table. Make sure -* userspace didn't try to pass us something we can't handle. -* -* We don't have any extra hardware constraints on the gamma table, -* so no need to explicitly check it. -*/ - if (IS_GEMINILAKE(dev_priv) || INTEL_GEN(dev_priv) >= 10) - tests |= DRM_COLOR_LUT_EQUAL_CHANNELS; - - if (drm_color_lut_check(crtc_state->base.degamma_lut, tests) != 0) + if (drm_color_lut_check(crtc_state->base.degamma_lut, degamma_tests) || + drm_color_lut_check(crtc_state->base.gamma_lut, gamma_tests)) return -EINVAL; /* diff --git a/drivers/gpu/drm/i915/intel_device_info.h b/drivers/gpu/drm/i915/intel_device_info.h index 957c6527f76b..7bf09cef591a 100644 --- a/drivers/gpu/drm/i915/intel_device_info.h +++ b/drivers/gpu/drm/i915/intel_device_info.h @@ -189,6 +189,8 @@ struct intel_device_info { struct color_luts { u16 degamma_lut_size; u16 gamma_lut_size; + u32 degamma_lut_tests; + u32 gamma_lut_tests; } color; }; -- 2.14.5 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH] drm/i915: Don't send MST hotplugs until after resume
Turns out we are sending a lot more hotplug events then we need, and this is causing some pretty serious issues. Currently, we call intel_dp_mst_resume() in i915_drm_resume() well before we have any sort of hotplugging setup. This is a pretty big problem, because in practice it will generally result in throwing the power domain refcounts out of wack. For instance: On my T480s, removing a previously connected topology before the system finishes resuming causes drm_kms_helper_hotplug_event() to be called before HPD is setup again, which causes us to do a connector reprobe, which then causes intel_dp_detect() to be called on all DP devices -including- the eDP display. From there, intel_dp_detect() is run on the eDP display which triggers DPCD transactions. Those DPCD transactions then cause us to call edp_panel_vdd_on(), which then causes us to grab an additional wakeref to the relevant power wells (PORT_DDI_A_IO on this machine). From there, this wakeref is never released which then causes the next suspend/resume cycle to entirely fail due to the hardware not being powered off correctly. This sucks really badly, and I don't see any decent way to actually fix this in intel_dp_detect() easily. Additionally, I don't even think it'd be worth the time now since we're not expecting to handle any kind of connector reprobing at the point in which we call intel_dp_mst_resume(), but we also can't move intel_dp_mst_resume() any higher in the resume process since MST topologies need to be resumed before intel_display_resume() is called. However, there's a light at the end of the tunnel! After reading through a lot of code dozens of times, it occurred to me that we -never- actually need to send hotplug events when calling drm_dp_mst_topology_mgr_set_mst() since we send hotplug events in drm_dp_destroy_connector_work(). Imagine that! So, since we only seem to call intel_dp_mst_check_status() to disable MST on the encoder in question and then send a hotplug, get rid of this and instead just disable MST mode when a hub fails in intel_dp_mst_resume(). From there, drm_dp_destroy_connector_work() will eventually send the hotplug event. Signed-off-by: Lyude Paul Fixes: 0e32b39ceed6 ("drm/i915: add DP 1.2 MST support (v0.7)") Cc: Todd Previte Cc: Dave Airlie Cc: Jani Nikula Cc: Joonas Lahtinen Cc: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org Cc: # v3.17+ --- drivers/gpu/drm/i915/intel_dp.c | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 681e88405ada..c2399acf177b 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -7096,7 +7096,10 @@ void intel_dp_mst_resume(struct drm_i915_private *dev_priv) continue; ret = drm_dp_mst_topology_mgr_resume(&intel_dp->mst_mgr); - if (ret) - intel_dp_check_mst_status(intel_dp); + if (ret) { + intel_dp->is_mst = false; + drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr, + false); + } } } -- 2.20.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 4/4] drm/i915/psr: Print why PSR or PSR2 was not enabled in debugfs
PSR needs to do some checks against the current/future CRTC state to confirm if PSR hardware can support PSR in given configuration. So lets add this information to debugfs this way we can make IGT test smarter and skip tests when a valid a know reason caused PSR to not be enabled. It will print PSR2 reason even if PSR1 is enabled as PSR2 have some additional requirements. Cc: Dhinakaran Pandiyan Cc: Rodrigo Vivi Signed-off-by: José Roberto de Souza --- drivers/gpu/drm/i915/i915_debugfs.c | 2 ++ drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_psr.c| 13 - 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index 3b995f9fdc06..9ea99e9fb402 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c @@ -2571,6 +2571,8 @@ static int i915_edp_psr_status(struct seq_file *m, void *data) else status = "disabled"; seq_printf(m, "PSR mode: %s\n", status); + if (psr->disabled_reason) + seq_printf(m, "Disabled reason: %s\n", psr->disabled_reason); if (!psr->enabled) goto unlock; diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 0133d1da3d3c..2bedb523922d 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -512,6 +512,7 @@ struct i915_psr { bool sink_not_reliable; bool irq_aux_error; u16 su_x_granularity; + const char *disabled_reason; }; enum intel_pch { diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c index 2c267c6501fc..a4214c133218 100644 --- a/drivers/gpu/drm/i915/intel_psr.c +++ b/drivers/gpu/drm/i915/intel_psr.c @@ -530,8 +530,10 @@ static bool intel_psr2_config_valid(struct intel_dp *intel_dp, int crtc_vdisplay = crtc_state->base.adjusted_mode.crtc_vdisplay; int psr_max_h = 0, psr_max_v = 0; - if (!dev_priv->psr.sink_psr2_support) + if (!dev_priv->psr.sink_psr2_support) { + dev_priv->psr.disabled_reason = "PSR2 not supported by sink"; return false; + } /* * DSC and PSR2 cannot be enabled simultaneously. If a requested @@ -540,6 +542,7 @@ static bool intel_psr2_config_valid(struct intel_dp *intel_dp, */ if (crtc_state->dsc_params.compression_enable) { DRM_DEBUG_KMS("PSR2 cannot be enabled since DSC is enabled\n"); + dev_priv->psr.disabled_reason = "PSR2 cannot be enabled with DSC"; return false; } @@ -555,6 +558,7 @@ static bool intel_psr2_config_valid(struct intel_dp *intel_dp, DRM_DEBUG_KMS("PSR2 not enabled, resolution %dx%d > max supported %dx%d\n", crtc_hdisplay, crtc_vdisplay, psr_max_h, psr_max_v); + dev_priv->psr.disabled_reason = "PSR2 cannot be enabled because resolution is to big"; return false; } @@ -567,9 +571,11 @@ static bool intel_psr2_config_valid(struct intel_dp *intel_dp, if (crtc_hdisplay % dev_priv->psr.su_x_granularity) { DRM_DEBUG_KMS("PSR2 not enabled, hdisplay(%d) not multiple of %d\n", crtc_hdisplay, dev_priv->psr.su_x_granularity); + dev_priv->psr.disabled_reason = "PSR2 SU granularity requirements not met"; return false; } + dev_priv->psr.disabled_reason = NULL; return true; } @@ -597,16 +603,19 @@ void intel_psr_compute_config(struct intel_dp *intel_dp, */ if (dig_port->base.port != PORT_A) { DRM_DEBUG_KMS("PSR condition failed: Port not supported\n"); + dev_priv->psr.disabled_reason = "PSR not supported in port"; return; } if (dev_priv->psr.sink_not_reliable) { DRM_DEBUG_KMS("PSR sink implementation is not reliable\n"); + dev_priv->psr.disabled_reason = "PSR sink implementation is not reliable"; return; } if (adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE) { DRM_DEBUG_KMS("PSR condition failed: Interlaced is Enabled\n"); + dev_priv->psr.disabled_reason = "PSR HW do not support interlaced mode"; return; } @@ -614,6 +623,7 @@ void intel_psr_compute_config(struct intel_dp *intel_dp, if (psr_setup_time < 0) { DRM_DEBUG_KMS("PSR condition failed: Invalid PSR setup time (0x%02x)\n", intel_dp->psr_dpcd[1]); + dev_priv->psr.disabled_reason = "PSR setup time is invalid"; return; } @@ -621,6 +631,7 @@ void intel_psr_compute_config(struct intel_dp *intel_dp, adjusted_mode->crtc_vtotal - adjusted_mode->crtc_vdisplay - 1) {
[Intel-gfx] [PATCH 1/4] drm/i915/psr: Remove PSR2 FIXME
Now we are only checking sink capabilities when probing PSR DPCD register and then dynamically checking in intel_psr2_config_valid() to make sure the current modeset and features enables are compatible with PSR2. So this FIXME can be dropped. Cc: Dhinakaran Pandiyan Signed-off-by: José Roberto de Souza --- drivers/gpu/drm/i915/intel_psr.c | 5 - 1 file changed, 5 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c index 84a0fb981561..cd4ffbb46e2d 100644 --- a/drivers/gpu/drm/i915/intel_psr.c +++ b/drivers/gpu/drm/i915/intel_psr.c @@ -530,11 +530,6 @@ static bool intel_psr2_config_valid(struct intel_dp *intel_dp, int crtc_vdisplay = crtc_state->base.adjusted_mode.crtc_vdisplay; int psr_max_h = 0, psr_max_v = 0; - /* -* FIXME psr2_support is messed up. It's both computed -* dynamically during PSR enable, and extracted from sink -* caps during eDP detection. -*/ if (!dev_priv->psr.sink_psr2_support) return false; -- 2.20.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 2/4] drm/i915/psr: Initialize PSR mutex even when sink is not reliable
Even when driver is reload and hits this scenario the PSR mutex should be initialized, otherwise reading PSR debugfs status will execute mutex_lock() over a mutex that was not initialized. Cc: Dhinakaran Pandiyan Signed-off-by: José Roberto de Souza --- drivers/gpu/drm/i915/intel_psr.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c index cd4ffbb46e2d..74be4bf88ea7 100644 --- a/drivers/gpu/drm/i915/intel_psr.c +++ b/drivers/gpu/drm/i915/intel_psr.c @@ -1171,7 +1171,6 @@ void intel_psr_init(struct drm_i915_private *dev_priv) if (val) { DRM_DEBUG_KMS("PSR interruption error set\n"); dev_priv->psr.sink_not_reliable = true; - return; } /* Set link_standby x link_off defaults */ -- 2.20.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 3/4] drm/psr: Do not enable PSR when a interlaced mode set for all gens
This interlaced restriction applies to all gens, not only to Haswell. Cc: Dhinakaran Pandiyan Cc: Rodrigo Vivi Signed-off-by: José Roberto de Souza --- drivers/gpu/drm/i915/intel_psr.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c index 74be4bf88ea7..2c267c6501fc 100644 --- a/drivers/gpu/drm/i915/intel_psr.c +++ b/drivers/gpu/drm/i915/intel_psr.c @@ -605,8 +605,7 @@ void intel_psr_compute_config(struct intel_dp *intel_dp, return; } - if (IS_HASWELL(dev_priv) && - adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE) { + if (adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE) { DRM_DEBUG_KMS("PSR condition failed: Interlaced is Enabled\n"); return; } -- 2.20.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for icl: Misc PLL patches (rev2)
== Series Details == Series: icl: Misc PLL patches (rev2) URL : https://patchwork.freedesktop.org/series/55378/ State : success == Summary == CI Bug Log - changes from CI_DRM_5488 -> Patchwork_12047 Summary --- **SUCCESS** No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/55378/revisions/2/mbox/ Known issues Here are the changes found in Patchwork_12047 that come from known issues: ### IGT changes ### Issues hit * igt@pm_rpm@basic-rte: - fi-byt-j1900: PASS -> FAIL [fdo#108800] Possible fixes * igt@kms_busy@basic-flip-a: - fi-gdg-551: FAIL [fdo#103182] -> PASS * igt@kms_chamelium@dp-edid-read: - fi-kbl-7500u: WARN -> PASS * igt@kms_pipe_crc_basic@read-crc-pipe-a: - fi-byt-clapper: FAIL [fdo#107362] -> PASS * igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence: - fi-byt-clapper: FAIL [fdo#103191] / [fdo#107362] -> PASS +1 * igt@pm_rpm@module-reload: - fi-skl-6770hq: FAIL [fdo#108511] -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182 [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191 [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362 [fdo#108511]: https://bugs.freedesktop.org/show_bug.cgi?id=108511 [fdo#108800]: https://bugs.freedesktop.org/show_bug.cgi?id=108800 [fdo#108915]: https://bugs.freedesktop.org/show_bug.cgi?id=108915 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 Participating hosts (44 -> 41) -- Additional (1): fi-icl-y Missing(4): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan Build changes - * Linux: CI_DRM_5488 -> Patchwork_12047 CI_DRM_5488: f13eede6ea3e780d900c5220bf09d764a80a3a8f @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12047: 4fe541137b10b0f31fbaebc2581792ac9a3dafcf @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 4fe541137b10 drm/i915/icl: keep track of unused pll while looping ff3d706cade7 drm/i915/icl: remove dpll from clk_sel 7ced10a4fc68 drm/i915: always return something on DDI clock selection 08184c4a1d0b drm/i915/icl: use tc_port in MG_PLL macros == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12047/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Fix skl srckey mask bits
== Series Details == Series: drm/i915: Fix skl srckey mask bits URL : https://patchwork.freedesktop.org/series/55744/ State : success == Summary == CI Bug Log - changes from CI_DRM_5486_full -> Patchwork_12045_full Summary --- **SUCCESS** No regressions found. Possible new issues --- Here are the unknown changes that may have been introduced in Patchwork_12045_full: ### IGT changes ### Suppressed The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * {igt@runner@aborted}: - shard-kbl: ( 5 FAIL ) -> ( 4 FAIL ) Known issues Here are the changes found in Patchwork_12045_full that come from known issues: ### IGT changes ### Issues hit * igt@gem_ctx_isolation@bcs0-s3: - shard-kbl: PASS -> INCOMPLETE [fdo#103665] * igt@gem_eio@in-flight-suspend: - shard-snb: PASS -> FAIL [fdo#103375] * igt@gem_eio@reset-stress: - shard-snb: PASS -> INCOMPLETE [fdo#105411] * igt@kms_available_modes_crc@available_mode_test_crc: - shard-apl: PASS -> FAIL [fdo#106641] * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-c: - shard-kbl: PASS -> DMESG-WARN [fdo#107956] * igt@kms_color@pipe-c-degamma: - shard-apl: PASS -> FAIL [fdo#104782] * igt@kms_cursor_crc@cursor-size-change: - shard-glk: PASS -> FAIL [fdo#103232] +2 * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible: - shard-glk: PASS -> FAIL [fdo#105363] * igt@kms_flip@modeset-vs-vblank-race: - shard-glk: PASS -> FAIL [fdo#103060] * igt@kms_plane@plane-position-covered-pipe-c-planes: - shard-apl: PASS -> FAIL [fdo#103166] * igt@kms_plane_alpha_blend@pipe-b-alpha-7efc: - shard-kbl: NOTRUN -> FAIL [fdo#108145] / [fdo#108590] * igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb: - shard-glk: PASS -> FAIL [fdo#108145] * igt@kms_plane_multiple@atomic-pipe-c-tiling-none: - shard-glk: PASS -> FAIL [fdo#103166] +1 * igt@kms_setmode@basic: - shard-hsw: PASS -> FAIL [fdo#99912] - shard-kbl: PASS -> FAIL [fdo#99912] * igt@perf_pmu@rc6-runtime-pm-long: - shard-kbl: PASS -> FAIL [fdo#105010] Possible fixes * igt@gem_eio@in-flight-immediate: - shard-kbl: DMESG-FAIL -> PASS * igt@kms_cursor_crc@cursor-256x85-random: - shard-apl: FAIL [fdo#103232] -> PASS +1 * igt@kms_flip@2x-flip-vs-modeset-interruptible: - shard-hsw: DMESG-WARN [fdo#102614] -> PASS * igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb: - shard-apl: FAIL [fdo#108145] -> PASS * igt@kms_plane_multiple@atomic-pipe-b-tiling-y: - shard-apl: FAIL [fdo#103166] -> PASS * igt@kms_setmode@basic: - shard-apl: FAIL [fdo#99912] -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614 [fdo#103060]: https://bugs.freedesktop.org/show_bug.cgi?id=103060 [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166 [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232 [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375 [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665 [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782 [fdo#105010]: https://bugs.freedesktop.org/show_bug.cgi?id=105010 [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363 [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411 [fdo#106641]: https://bugs.freedesktop.org/show_bug.cgi?id=106641 [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956 [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#108590]: https://bugs.freedesktop.org/show_bug.cgi?id=108590 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912 Participating hosts (7 -> 5) -- Missing(2): shard-skl shard-iclb Build changes - * Linux: CI_DRM_5486 -> Patchwork_12045 CI_DRM_5486: 186ccd79d43ff0c930c7211e24ba5afa78c6594e @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12045: 93c1c37b7d5fe620aa660d8893bff83a90265839 @ 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/tre
[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/3] drm/i915: Rename execlists->queue_priority to preempt_priority_hint
== Series Details == Series: series starting with [1/3] drm/i915: Rename execlists->queue_priority to preempt_priority_hint URL : https://patchwork.freedesktop.org/series/55750/ State : success == Summary == CI Bug Log - changes from CI_DRM_5488 -> Patchwork_12046 Summary --- **SUCCESS** No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/55750/revisions/1/mbox/ Known issues Here are the changes found in Patchwork_12046 that come from known issues: ### IGT changes ### Issues hit * igt@gem_exec_suspend@basic-s4-devices: - fi-blb-e6850: PASS -> INCOMPLETE [fdo#107718] * igt@kms_chamelium@hdmi-hpd-fast: - fi-kbl-7500u: PASS -> FAIL [fdo#108767] Possible fixes * igt@kms_chamelium@dp-edid-read: - fi-kbl-7500u: WARN -> PASS * igt@kms_pipe_crc_basic@read-crc-pipe-a: - fi-byt-clapper: FAIL [fdo#107362] -> PASS * igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence: - fi-byt-clapper: FAIL [fdo#103191] / [fdo#107362] -> PASS +1 [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191 [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362 [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718 [fdo#108767]: https://bugs.freedesktop.org/show_bug.cgi?id=108767 Participating hosts (44 -> 40) -- Missing(4): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan Build changes - * Linux: CI_DRM_5488 -> Patchwork_12046 CI_DRM_5488: f13eede6ea3e780d900c5220bf09d764a80a3a8f @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12046: 6f40b811103eee129743c6465e987be7a51e7596 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 6f40b811103e drm/i915/execlists: Suppress redundant preemption 2ee9b7413598 drm/i915/execlists: Suppress preempting self 0cf0a44086c4 drm/i915: Rename execlists->queue_priority to preempt_priority_hint == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12046/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/2] drm/i915/tv: Fix return value for intel_tv_compute_config()
== Series Details == Series: series starting with [1/2] drm/i915/tv: Fix return value for intel_tv_compute_config() URL : https://patchwork.freedesktop.org/series/55743/ State : success == Summary == CI Bug Log - changes from CI_DRM_5486_full -> Patchwork_12044_full Summary --- **SUCCESS** No regressions found. Known issues Here are the changes found in Patchwork_12044_full that come from known issues: ### IGT changes ### Issues hit * igt@gem_ctx_isolation@bcs0-s3: - shard-kbl: PASS -> INCOMPLETE [fdo#103665] * igt@kms_available_modes_crc@available_mode_test_crc: - shard-apl: PASS -> FAIL [fdo#106641] * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-c: - shard-kbl: PASS -> DMESG-WARN [fdo#107956] * igt@kms_cursor_crc@cursor-256x256-random: - shard-glk: PASS -> FAIL [fdo#103232] +1 * igt@kms_plane@plane-position-covered-pipe-c-planes: - shard-apl: PASS -> FAIL [fdo#103166] +2 * igt@kms_plane_multiple@atomic-pipe-b-tiling-none: - shard-glk: PASS -> FAIL [fdo#103166] * igt@kms_setmode@basic: - shard-hsw: PASS -> FAIL [fdo#99912] - shard-kbl: PASS -> FAIL [fdo#99912] * igt@perf_pmu@rc6-runtime-pm-long: - shard-kbl: PASS -> FAIL [fdo#105010] Possible fixes * igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-c: - shard-hsw: DMESG-WARN [fdo#107956] -> PASS * igt@kms_cursor_crc@cursor-256x85-random: - shard-apl: FAIL [fdo#103232] -> PASS +1 * igt@kms_flip@2x-flip-vs-modeset-interruptible: - shard-hsw: DMESG-WARN [fdo#102614] -> PASS * igt@kms_plane_multiple@atomic-pipe-a-tiling-x: - shard-apl: FAIL [fdo#103166] -> PASS +1 [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614 [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166 [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232 [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665 [fdo#105010]: https://bugs.freedesktop.org/show_bug.cgi?id=105010 [fdo#106641]: https://bugs.freedesktop.org/show_bug.cgi?id=106641 [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956 [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912 Participating hosts (7 -> 5) -- Missing(2): shard-skl shard-iclb Build changes - * Linux: CI_DRM_5486 -> Patchwork_12044 CI_DRM_5486: 186ccd79d43ff0c930c7211e24ba5afa78c6594e @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12044: 32e0a172c9d3191d2530fd05a82cec82519e35ed @ 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_12044/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [v2,1/2] drm/dp/mst: Provide defines for ACK vs. NAK reply type (rev2)
== Series Details == Series: series starting with [v2,1/2] drm/dp/mst: Provide defines for ACK vs. NAK reply type (rev2) URL : https://patchwork.freedesktop.org/series/55581/ State : success == Summary == CI Bug Log - changes from CI_DRM_5486_full -> Patchwork_12043_full Summary --- **WARNING** Minor unknown changes coming with Patchwork_12043_full need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_12043_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_12043_full: ### IGT changes ### Warnings * igt@gem_eio@in-flight-contexts-10ms: - shard-glk: DMESG-WARN -> DMESG-FAIL * igt@gem_eio@in-flight-immediate: - shard-kbl: DMESG-FAIL -> DMESG-WARN Known issues Here are the changes found in Patchwork_12043_full that come from known issues: ### IGT changes ### Issues hit * igt@gem_ctx_isolation@bcs0-s3: - shard-kbl: PASS -> INCOMPLETE [fdo#103665] * igt@gem_eio@reset-stress: - shard-snb: PASS -> INCOMPLETE [fdo#105411] * igt@kms_available_modes_crc@available_mode_test_crc: - shard-apl: PASS -> FAIL [fdo#106641] * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-c: - shard-kbl: PASS -> DMESG-WARN [fdo#107956] * igt@kms_cursor_crc@cursor-128x128-suspend: - shard-apl: PASS -> FAIL [fdo#103191] / [fdo#103232] * igt@kms_cursor_crc@cursor-256x256-random: - shard-glk: PASS -> FAIL [fdo#103232] +1 * igt@kms_cursor_crc@cursor-64x21-offscreen: - shard-apl: PASS -> INCOMPLETE [fdo#103927] * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible: - shard-glk: PASS -> FAIL [fdo#105363] * igt@kms_plane@pixel-format-pipe-c-planes: - shard-apl: PASS -> FAIL [fdo#103166] +1 * igt@kms_plane_multiple@atomic-pipe-b-tiling-none: - shard-glk: PASS -> FAIL [fdo#103166] * igt@kms_setmode@basic: - shard-hsw: PASS -> FAIL [fdo#99912] - shard-kbl: PASS -> FAIL [fdo#99912] * igt@perf_pmu@rc6-runtime-pm-long: - shard-kbl: PASS -> FAIL [fdo#105010] Possible fixes * igt@kms_cursor_crc@cursor-256x85-random: - shard-apl: FAIL [fdo#103232] -> PASS +1 * igt@kms_flip@2x-flip-vs-modeset-interruptible: - shard-hsw: DMESG-WARN [fdo#102614] -> PASS * igt@kms_plane_multiple@atomic-pipe-a-tiling-x: - shard-apl: FAIL [fdo#103166] -> PASS +2 * igt@kms_rotation_crc@multiplane-rotation-cropping-top: - shard-apl: DMESG-FAIL [fdo#108950] -> PASS Warnings * igt@i915_suspend@shrink: - shard-apl: DMESG-WARN [fdo#107886] / [fdo#109244] -> INCOMPLETE [fdo#103927] / [fdo#106886] {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614 [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166 [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191 [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232 [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665 [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927 [fdo#105010]: https://bugs.freedesktop.org/show_bug.cgi?id=105010 [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363 [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411 [fdo#106641]: https://bugs.freedesktop.org/show_bug.cgi?id=106641 [fdo#106886]: https://bugs.freedesktop.org/show_bug.cgi?id=106886 [fdo#107886]: https://bugs.freedesktop.org/show_bug.cgi?id=107886 [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956 [fdo#108950]: https://bugs.freedesktop.org/show_bug.cgi?id=108950 [fdo#109244]: https://bugs.freedesktop.org/show_bug.cgi?id=109244 [fdo#109373]: https://bugs.freedesktop.org/show_bug.cgi?id=109373 [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912 [k.org#202321]: https://bugzilla.kernel.org/show_bug.cgi?id=202321 Participating hosts (7 -> 5) -- Missing(2): shard-skl shard-iclb Build changes - * Linux: CI_DRM_5486 -> Patchwork_12043 CI_DRM_5486: 186ccd79d43ff0c930c7211e24ba5afa78c6594e @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12043: c35519be7b5a818f1aebccd38b28707331c41c58 @ git://anongit.freedesktop.org/gfx-ci/linux piglit_4509: fdc5
[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/3] drm/i915: Rename execlists->queue_priority to preempt_priority_hint
== Series Details == Series: series starting with [1/3] drm/i915: Rename execlists->queue_priority to preempt_priority_hint URL : https://patchwork.freedesktop.org/series/55750/ State : warning == Summary == $ dim checkpatch origin/drm-tip 0cf0a44086c4 drm/i915: Rename execlists->queue_priority to preempt_priority_hint 2ee9b7413598 drm/i915/execlists: Suppress preempting self -:22: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description (prefer a maximum 75 chars per line) #22: References: a2bf92e8cc16 ("drm/i915/execlists: Avoid kicking priority on the current context") -:22: ERROR:GIT_COMMIT_ID: Please use git commit description style 'commit <12+ chars of sha1> ("")' - ie: 'commit a2bf92e8cc16 ("drm/i915/execlists: Avoid kicking priority on the current context")' #22: References: a2bf92e8cc16 ("drm/i915/execlists: Avoid kicking priority on the current context") total: 1 errors, 1 warnings, 0 checks, 156 lines checked 6f40b811103e drm/i915/execlists: Suppress redundant preemption ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [1/3] drm/i915: Rename execlists->queue_priority to preempt_priority_hint
== Series Details == Series: series starting with [1/3] drm/i915: Rename execlists->queue_priority to preempt_priority_hint URL : https://patchwork.freedesktop.org/series/55750/ State : warning == Summary == $ dim sparse origin/drm-tip Sparse version: v0.5.2 Commit: drm/i915: Rename execlists->queue_priority to preempt_priority_hint Okay! Commit: drm/i915/execlists: Suppress preempting self -drivers/gpu/drm/i915/intel_ringbuffer.h:600:23: warning: expression using sizeof(void) Commit: drm/i915/execlists: Suppress redundant preemption Okay! ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH v2 0/4] icl: Misc PLL patches
Some PLL reworks on ICL. Patches are more or less independent of each other, but touch the same part of the code. v2 of https://patchwork.freedesktop.org/series/55378/ Changes: typos, commit messages and checkpatch fix. I'm dropping the last commit as we don't really need it right now and when/if we do, I'm not sure the alternative I proposed in v1 isn't better. Lucas De Marchi (4): drm/i915/icl: use tc_port in MG_PLL macros drm/i915: always return something on DDI clock selection drm/i915/icl: remove dpll from clk_sel drm/i915/icl: keep track of unused pll while looping drivers/gpu/drm/i915/i915_reg.h | 52 +++--- drivers/gpu/drm/i915/intel_ddi.c | 20 +++--- drivers/gpu/drm/i915/intel_display.c | 2 +- drivers/gpu/drm/i915/intel_dpll_mgr.c | 98 +-- drivers/gpu/drm/i915/intel_dpll_mgr.h | 2 +- 5 files changed, 87 insertions(+), 87 deletions(-) -- 2.20.0 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH v2 1/4] drm/i915/icl: use tc_port in MG_PLL macros
Fix the TODO leftover in the code by changing the argument in MG_PLL macros. The MG_PLL ids used to access the register values can be converted from tc_port rather than port. All these registers can use the TC port to calculate the right offsets because they are only available for TC ports. The range (PORT_C onwards) may not be stable and change from platform to platform. So by using the TC id directly we avoid having to check for the platform in the "leaf functions" and thus passing dev_priv around. The helper functions were also renamed to use "tc" as prefix to make them more generic. v2: Improve commit message and fix checkpatch warning (from Paulo) Signed-off-by: Lucas De Marchi Reviewed-by: Paulo Zanoni --- drivers/gpu/drm/i915/i915_reg.h | 52 +- drivers/gpu/drm/i915/intel_ddi.c | 7 ++- drivers/gpu/drm/i915/intel_display.c | 2 +- drivers/gpu/drm/i915/intel_dpll_mgr.c | 79 +-- drivers/gpu/drm/i915/intel_dpll_mgr.h | 2 +- 5 files changed, 71 insertions(+), 71 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index 1eca166d95bb..03adcf3838de 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -9554,7 +9554,7 @@ enum skl_power_gate { #define _MG_PLL3_ENABLE0x46038 #define _MG_PLL4_ENABLE0x4603C /* Bits are the same as DPLL0_ENABLE */ -#define MG_PLL_ENABLE(port)_MMIO_PORT((port) - PORT_C, _MG_PLL1_ENABLE, \ +#define MG_PLL_ENABLE(tc_port) _MMIO_PORT((tc_port), _MG_PLL1_ENABLE, \ _MG_PLL2_ENABLE) #define _MG_REFCLKIN_CTL_PORT1 0x16892C @@ -9563,9 +9563,9 @@ enum skl_power_gate { #define _MG_REFCLKIN_CTL_PORT4 0x16B92C #define MG_REFCLKIN_CTL_OD_2_MUX(x) ((x) << 8) #define MG_REFCLKIN_CTL_OD_2_MUX_MASK(0x7 << 8) -#define MG_REFCLKIN_CTL(port) _MMIO_PORT((port) - PORT_C, \ -_MG_REFCLKIN_CTL_PORT1, \ -_MG_REFCLKIN_CTL_PORT2) +#define MG_REFCLKIN_CTL(tc_port) _MMIO_PORT((tc_port), \ + _MG_REFCLKIN_CTL_PORT1, \ + _MG_REFCLKIN_CTL_PORT2) #define _MG_CLKTOP2_CORECLKCTL1_PORT1 0x1688D8 #define _MG_CLKTOP2_CORECLKCTL1_PORT2 0x1698D8 @@ -9575,9 +9575,9 @@ enum skl_power_gate { #define MG_CLKTOP2_CORECLKCTL1_B_DIVRATIO_MASK (0xff << 16) #define MG_CLKTOP2_CORECLKCTL1_A_DIVRATIO(x) ((x) << 8) #define MG_CLKTOP2_CORECLKCTL1_A_DIVRATIO_MASK (0xff << 8) -#define MG_CLKTOP2_CORECLKCTL1(port) _MMIO_PORT((port) - PORT_C, \ - _MG_CLKTOP2_CORECLKCTL1_PORT1, \ - _MG_CLKTOP2_CORECLKCTL1_PORT2) +#define MG_CLKTOP2_CORECLKCTL1(tc_port) _MMIO_PORT((tc_port), \ + _MG_CLKTOP2_CORECLKCTL1_PORT1, \ + _MG_CLKTOP2_CORECLKCTL1_PORT2) #define _MG_CLKTOP2_HSCLKCTL_PORT1 0x1688D4 #define _MG_CLKTOP2_HSCLKCTL_PORT2 0x1698D4 @@ -9595,9 +9595,9 @@ enum skl_power_gate { #define MG_CLKTOP2_HSCLKCTL_DSDIV_RATIO(x) ((x) << 8) #define MG_CLKTOP2_HSCLKCTL_DSDIV_RATIO_SHIFT8 #define MG_CLKTOP2_HSCLKCTL_DSDIV_RATIO_MASK (0xf << 8) -#define MG_CLKTOP2_HSCLKCTL(port) _MMIO_PORT((port) - PORT_C, \ -_MG_CLKTOP2_HSCLKCTL_PORT1, \ -_MG_CLKTOP2_HSCLKCTL_PORT2) +#define MG_CLKTOP2_HSCLKCTL(tc_port) _MMIO_PORT((tc_port), \ + _MG_CLKTOP2_HSCLKCTL_PORT1, \ + _MG_CLKTOP2_HSCLKCTL_PORT2) #define _MG_PLL_DIV0_PORT1 0x168A00 #define _MG_PLL_DIV0_PORT2 0x169A00 @@ -9609,8 +9609,8 @@ enum skl_power_gate { #define MG_PLL_DIV0_FBDIV_FRAC(x)((x) << 8) #define MG_PLL_DIV0_FBDIV_INT_MASK (0xff << 0) #define MG_PLL_DIV0_FBDIV_INT(x) ((x) << 0) -#define MG_PLL_DIV0(port) _MMIO_PORT((port) - PORT_C, _MG_PLL_DIV0_PORT1, \ -_MG_PLL_DIV0_PORT2) +#define MG_PLL_DIV0(tc_port) _MMIO_PORT((tc_port), _MG_PLL_DIV0_PORT1, \ + _MG_PLL_DIV0_PORT2) #define _MG_PLL_DIV1_PORT1 0x168A04 #define _MG_PLL_DIV1_PORT2 0x169A04 @@ -9624,8 +9624,8 @@ enum skl_power_gate { #define MG_PLL_DIV1_NDIVRATIO(x) ((x) << 4) #define MG_PLL_DIV1_FBPREDIV_MASK(0xf << 0) #define MG_PLL_DIV1_FBPREDIV(x)
[Intel-gfx] [PATCH v2 4/4] drm/i915/icl: keep track of unused pll while looping
Instead of looping again on the range of plls, just keep track of one unused one and use it later. Signed-off-by: Lucas De Marchi Reviewed-by: Paulo Zanoni --- drivers/gpu/drm/i915/intel_dpll_mgr.c | 19 +-- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_dpll_mgr.c b/drivers/gpu/drm/i915/intel_dpll_mgr.c index 211b3ffa5bed..8f70838ac7d8 100644 --- a/drivers/gpu/drm/i915/intel_dpll_mgr.c +++ b/drivers/gpu/drm/i915/intel_dpll_mgr.c @@ -247,7 +247,7 @@ intel_find_shared_dpll(struct intel_crtc *crtc, enum intel_dpll_id range_max) { struct drm_i915_private *dev_priv = to_i915(crtc->base.dev); - struct intel_shared_dpll *pll; + struct intel_shared_dpll *pll, *unused_pll = NULL; struct intel_shared_dpll_state *shared_dpll; enum intel_dpll_id i; @@ -257,8 +257,10 @@ intel_find_shared_dpll(struct intel_crtc *crtc, pll = &dev_priv->shared_dplls[i]; /* Only want to check enabled timings first */ - if (shared_dpll[i].crtc_mask == 0) + if (shared_dpll[i].crtc_mask == 0) { + unused_pll = pll; continue; + } if (memcmp(&crtc_state->dpll_hw_state, &shared_dpll[i].hw_state, @@ -273,14 +275,11 @@ intel_find_shared_dpll(struct intel_crtc *crtc, } /* Ok no matching timings, maybe there's a free one? */ - for (i = range_min; i <= range_max; i++) { - pll = &dev_priv->shared_dplls[i]; - if (shared_dpll[i].crtc_mask == 0) { - DRM_DEBUG_KMS("[CRTC:%d:%s] allocated %s\n", - crtc->base.base.id, crtc->base.name, - pll->info->name); - return pll; - } + if (unused_pll) { + DRM_DEBUG_KMS("[CRTC:%d:%s] allocated %s\n", + crtc->base.base.id, crtc->base.name, + unused_pll->info->name); + return unused_pll; } return NULL; -- 2.20.0 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH v2 2/4] drm/i915: always return something on DDI clock selection
Even if we don't have the correct clock and get a warning, we should not skip the return. v2: improve commit message (from Joonas) Fixes: 1fa11ee2d9d0 ("drm/i915/icl: start adding the TBT pll") Cc: Paulo Zanoni Cc: # v4.19+ Signed-off-by: Lucas De Marchi Reviewed-by: Mika Kahola --- drivers/gpu/drm/i915/intel_ddi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c index ae2413ec2196..51d4be072268 100644 --- a/drivers/gpu/drm/i915/intel_ddi.c +++ b/drivers/gpu/drm/i915/intel_ddi.c @@ -1021,7 +1021,7 @@ static u32 icl_pll_to_ddi_pll_sel(struct intel_encoder *encoder, return DDI_CLK_SEL_TBT_810; default: MISSING_CASE(clock); - break; + return DDI_CLK_SEL_NONE; } case DPLL_ID_ICL_MGPLL1: case DPLL_ID_ICL_MGPLL2: -- 2.20.0 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH v2 3/4] drm/i915/icl: remove dpll from clk_sel
We should not pass DPLL_ID_ICL_DPLL0 or DPLL_ID_ICL_DPLL1 to this function because the path is only taken for non-combophy ports. Let the warning trigger if improper value is given. While at it, rename the function to match the register name we are trying to program. v2: fix typo in comment Signed-off-by: Lucas De Marchi Reviewed-by: Paulo Zanoni --- drivers/gpu/drm/i915/intel_ddi.c | 11 ++- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c index 51d4be072268..ca705546a0ab 100644 --- a/drivers/gpu/drm/i915/intel_ddi.c +++ b/drivers/gpu/drm/i915/intel_ddi.c @@ -995,7 +995,7 @@ static u32 hsw_pll_to_ddi_pll_sel(const struct intel_shared_dpll *pll) } } -static u32 icl_pll_to_ddi_pll_sel(struct intel_encoder *encoder, +static u32 icl_pll_to_ddi_clk_sel(struct intel_encoder *encoder, const struct intel_crtc_state *crtc_state) { const struct intel_shared_dpll *pll = crtc_state->shared_dpll; @@ -1004,10 +1004,11 @@ static u32 icl_pll_to_ddi_pll_sel(struct intel_encoder *encoder, switch (id) { default: + /* +* DPLL_ID_ICL_DPLL0 and DPLL_ID_ICL_DPLL1 should not be used +* here, so do warn if this get passed in +*/ MISSING_CASE(id); - /* fall through */ - case DPLL_ID_ICL_DPLL0: - case DPLL_ID_ICL_DPLL1: return DDI_CLK_SEL_NONE; case DPLL_ID_ICL_TBTPLL: switch (clock) { @@ -2869,7 +2870,7 @@ static void intel_ddi_clk_select(struct intel_encoder *encoder, if (IS_ICELAKE(dev_priv)) { if (!intel_port_is_combophy(dev_priv, port)) I915_WRITE(DDI_CLK_SEL(port), - icl_pll_to_ddi_pll_sel(encoder, crtc_state)); + icl_pll_to_ddi_clk_sel(encoder, crtc_state)); } else if (IS_CANNONLAKE(dev_priv)) { /* Configure DPCLKA_CFGCR0 to map the DPLL to the DDI. */ val = I915_READ(DPCLKA_CFGCR0); -- 2.20.0 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 3/3] drm/i915/execlists: Suppress redundant preemption
On unwinding the active request we give it a small (limited to internal priority levels) boost to prevent it from being gazumped a second time. However, this means that it can be promoted to above the request that triggered the preemption request, causing a preempt-to-idle cycle for no change. We can avoid this if we take the boost into account when checking if the preemption request is valid. v2: After preemption the active request will be after the preemptee if they end up with equal priority. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/intel_lrc.c | 39 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c index b44db7d49584..8f48f2fc07b2 100644 --- a/drivers/gpu/drm/i915/intel_lrc.c +++ b/drivers/gpu/drm/i915/intel_lrc.c @@ -164,6 +164,8 @@ #define WA_TAIL_DWORDS 2 #define WA_TAIL_BYTES (sizeof(u32) * WA_TAIL_DWORDS) +#define ACTIVE_PRIORITY (I915_PRIORITY_NEWCLIENT) + static int execlists_context_deferred_alloc(struct i915_gem_context *ctx, struct intel_engine_cs *engine, struct intel_context *ce); @@ -182,6 +184,34 @@ static inline int rq_prio(const struct i915_request *rq) return rq->sched.attr.priority; } +static inline int active_prio(const struct i915_request *rq) +{ + int prio = rq_prio(rq); + + /* +* On unwinding the active request, we give it a priority bump +* equivalent to a freshly submitted request. This protects it from +* being gazumped again, but it would be preferable if we didn't +* let it be gazumped in the first place! +* +* See __unwind_incomplete_requests() +*/ + if ((prio & ACTIVE_PRIORITY) != ACTIVE_PRIORITY && + i915_request_started(rq)) { + /* +* After preemption, we insert the active request at the +* end of the new priority level. This means that we will be +* _lower_ priority than the preemptee all things equal (and +* so the preemption is valid), so adjust our comparison +* accordingly. +*/ + prio |= ACTIVE_PRIORITY; + prio--; + } + + return prio; +} + static int queue_prio(const struct intel_engine_execlists *execlists) { struct i915_priolist *p; @@ -204,7 +234,7 @@ static inline bool need_preempt(const struct intel_engine_cs *engine, int hint) { const struct intel_context *ctx = rq->hw_context; - const int last_prio = rq_prio(rq); + int last_prio; if (!intel_engine_has_preemption(engine)) return false; @@ -219,6 +249,7 @@ static inline bool need_preempt(const struct intel_engine_cs *engine, * preempt. If that hint is stale or we may be trying to preempt * ourselves, ignore the request. */ + last_prio = active_prio(rq); if (!__execlists_need_preempt(hint, last_prio)) return false; @@ -346,7 +377,7 @@ __unwind_incomplete_requests(struct intel_engine_cs *engine) { struct i915_request *rq, *rn, *active = NULL; struct list_head *uninitialized_var(pl); - int prio = I915_PRIORITY_INVALID | I915_PRIORITY_NEWCLIENT; + int prio = I915_PRIORITY_INVALID | ACTIVE_PRIORITY; lockdep_assert_held(&engine->timeline.lock); @@ -378,8 +409,8 @@ __unwind_incomplete_requests(struct intel_engine_cs *engine) * stream, so give it the equivalent small priority bump to prevent * it being gazumped a second time by another peer. */ - if (!(prio & I915_PRIORITY_NEWCLIENT)) { - prio |= I915_PRIORITY_NEWCLIENT; + if ((prio & ACTIVE_PRIORITY) != ACTIVE_PRIORITY) { + prio |= ACTIVE_PRIORITY; active->sched.attr.priority = prio; list_move_tail(&active->sched.link, i915_sched_lookup_priolist(engine, prio)); -- 2.20.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 2/3] drm/i915/execlists: Suppress preempting self
In order to avoid preempting ourselves, we currently refuse to schedule the tasklet if we reschedule an inflight context. However, this glosses over a few issues such as what happens after a CS completion event and we then preempt the newly executing context with itself, or if something else causes a tasklet_schedule triggering the same evaluation to preempt the active context with itself. To avoid the extra complications, after deciding that we have potentially queued a request with higher priority than the currently executing request, inspect the head of the queue to see if it is indeed higher priority from another context. v2: We can simplify a bunch of tests based on the knowledge that PI will ensure that earlier requests along the same context will have the highest priority. References: a2bf92e8cc16 ("drm/i915/execlists: Avoid kicking priority on the current context") Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin --- drivers/gpu/drm/i915/i915_scheduler.c | 20 -- drivers/gpu/drm/i915/intel_lrc.c | 91 --- 2 files changed, 100 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_scheduler.c b/drivers/gpu/drm/i915/i915_scheduler.c index 0da718ceab43..7db1255665a8 100644 --- a/drivers/gpu/drm/i915/i915_scheduler.c +++ b/drivers/gpu/drm/i915/i915_scheduler.c @@ -238,6 +238,18 @@ sched_lock_engine(struct i915_sched_node *node, struct intel_engine_cs *locked) return engine; } +static bool inflight(const struct i915_request *rq, +const struct intel_engine_cs *engine) +{ + const struct i915_request *active; + + if (!rq->global_seqno) + return false; + + active = port_request(engine->execlists.port); + return active->hw_context == rq->hw_context; +} + static void __i915_schedule(struct i915_request *rq, const struct i915_sched_attr *attr) { @@ -327,6 +339,7 @@ static void __i915_schedule(struct i915_request *rq, INIT_LIST_HEAD(&dep->dfs_link); engine = sched_lock_engine(node, engine); + lockdep_assert_held(&engine->timeline.lock); /* Recheck after acquiring the engine->timeline.lock */ if (prio <= node->attr.priority || node_signaled(node)) @@ -355,17 +368,16 @@ static void __i915_schedule(struct i915_request *rq, if (prio <= engine->execlists.preempt_priority_hint) continue; + engine->execlists.preempt_priority_hint = prio; + /* * If we are already the currently executing context, don't * bother evaluating if we should preempt ourselves. */ - if (node_to_request(node)->global_seqno && - i915_seqno_passed(port_request(engine->execlists.port)->global_seqno, - node_to_request(node)->global_seqno)) + if (inflight(node_to_request(node), engine)) continue; /* Defer (tasklet) submission until after all of our updates. */ - engine->execlists.preempt_priority_hint = prio; tasklet_hi_schedule(&engine->execlists.tasklet); } diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c index 71006b031f54..b44db7d49584 100644 --- a/drivers/gpu/drm/i915/intel_lrc.c +++ b/drivers/gpu/drm/i915/intel_lrc.c @@ -182,13 +182,89 @@ static inline int rq_prio(const struct i915_request *rq) return rq->sched.attr.priority; } +static int queue_prio(const struct intel_engine_execlists *execlists) +{ + struct i915_priolist *p; + struct rb_node *rb; + + rb = rb_first_cached(&execlists->queue); + if (!rb) + return INT_MIN; + + /* +* As the priolist[] are inverted, with the highest priority in [0], +* we have to flip the index value to become priority. +*/ + p = to_priolist(rb); + return ((p->priority + 1) << I915_USER_PRIORITY_SHIFT) - ffs(p->used); +} + static inline bool need_preempt(const struct intel_engine_cs *engine, - const struct i915_request *last, - int prio) + const struct i915_request *rq, + int hint) { - return (intel_engine_has_preemption(engine) && - __execlists_need_preempt(prio, rq_prio(last)) && - !i915_request_completed(last)); + const struct intel_context *ctx = rq->hw_context; + const int last_prio = rq_prio(rq); + + if (!intel_engine_has_preemption(engine)) + return false; + + if (i915_request_completed(rq)) + return false; + + /* +* Check if the current priority hint merits a preemption attempt. +* +* However, the priority hint is a mere hint that we may
[Intel-gfx] [PATCH 1/3] drm/i915: Rename execlists->queue_priority to preempt_priority_hint
After noticing that we trigger preemption events for currently executing requests, as well as requests that complete before the preemption and attempting to suppress those preemption events, it is wise to not consider the queue_priority to be authoritative. As only track the maximum priority see between queue passes, if the maximum priority request is no longer available for dequeuing (it completed or is even executing on another engine), we have no knowledge of the previous queue_priority as it would have to keep a full history of enqueued requests -- but we already have that history in the priolists! Rename the queue_priority to preempt_priority_hint so that we do not confuse it as being the maximum priority in the queue, but merely an indication that we have seen a new maximum priority value and as such we should check whether it should preempt the currently running request. Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin --- drivers/gpu/drm/i915/i915_scheduler.c | 11 +-- drivers/gpu/drm/i915/intel_engine_cs.c | 4 ++-- drivers/gpu/drm/i915/intel_guc_submission.c | 5 +++-- drivers/gpu/drm/i915/intel_lrc.c| 20 +++- drivers/gpu/drm/i915/intel_ringbuffer.h | 8 ++-- 5 files changed, 27 insertions(+), 21 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_scheduler.c b/drivers/gpu/drm/i915/i915_scheduler.c index 340faea6c08a..0da718ceab43 100644 --- a/drivers/gpu/drm/i915/i915_scheduler.c +++ b/drivers/gpu/drm/i915/i915_scheduler.c @@ -127,8 +127,7 @@ static inline struct i915_priolist *to_priolist(struct rb_node *rb) return rb_entry(rb, struct i915_priolist, node); } -static void assert_priolists(struct intel_engine_execlists * const execlists, -long queue_priority) +static void assert_priolists(struct intel_engine_execlists * const execlists) { struct rb_node *rb; long last_prio, i; @@ -139,7 +138,7 @@ static void assert_priolists(struct intel_engine_execlists * const execlists, GEM_BUG_ON(rb_first_cached(&execlists->queue) != rb_first(&execlists->queue.rb_root)); - last_prio = (queue_priority >> I915_USER_PRIORITY_SHIFT) + 1; + last_prio = (INT_MAX >> I915_USER_PRIORITY_SHIFT) + 1; for (rb = rb_first_cached(&execlists->queue); rb; rb = rb_next(rb)) { const struct i915_priolist *p = to_priolist(rb); @@ -166,7 +165,7 @@ i915_sched_lookup_priolist(struct intel_engine_cs *engine, int prio) int idx, i; lockdep_assert_held(&engine->timeline.lock); - assert_priolists(execlists, INT_MAX); + assert_priolists(execlists); /* buckets sorted from highest [in slot 0] to lowest priority */ idx = I915_PRIORITY_COUNT - (prio & I915_PRIORITY_MASK) - 1; @@ -353,7 +352,7 @@ static void __i915_schedule(struct i915_request *rq, continue; } - if (prio <= engine->execlists.queue_priority) + if (prio <= engine->execlists.preempt_priority_hint) continue; /* @@ -366,7 +365,7 @@ static void __i915_schedule(struct i915_request *rq, continue; /* Defer (tasklet) submission until after all of our updates. */ - engine->execlists.queue_priority = prio; + engine->execlists.preempt_priority_hint = prio; tasklet_hi_schedule(&engine->execlists.tasklet); } diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c b/drivers/gpu/drm/i915/intel_engine_cs.c index 1a5c163b98d6..1ffec0d69157 100644 --- a/drivers/gpu/drm/i915/intel_engine_cs.c +++ b/drivers/gpu/drm/i915/intel_engine_cs.c @@ -480,7 +480,7 @@ static void intel_engine_init_execlist(struct intel_engine_cs *engine) GEM_BUG_ON(!is_power_of_2(execlists_num_ports(execlists))); GEM_BUG_ON(execlists_num_ports(execlists) > EXECLIST_MAX_PORTS); - execlists->queue_priority = INT_MIN; + execlists->preempt_priority_hint = INT_MIN; execlists->queue = RB_ROOT_CACHED; } @@ -1156,7 +1156,7 @@ void intel_engines_park(struct drm_i915_private *i915) } /* Must be reset upon idling, or we may miss the busy wakeup. */ - GEM_BUG_ON(engine->execlists.queue_priority != INT_MIN); + GEM_BUG_ON(engine->execlists.preempt_priority_hint != INT_MIN); if (engine->park) engine->park(engine); diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c b/drivers/gpu/drm/i915/intel_guc_submission.c index 45e2db683fe5..1bf6ac76ad99 100644 --- a/drivers/gpu/drm/i915/intel_guc_submission.c +++ b/drivers/gpu/drm/i915/intel_guc_submission.c @@ -731,7 +731,7 @@ static bool __guc_dequeue(struct intel_engine_cs *engine) if (intel_engine_has_preemption(engine)) { struct guc_preempt_work *preempt_work =
Re: [Intel-gfx] [PATCH] drm/i915: Fix skl srckey mask bits
On Fri, Jan 25, 2019 at 08:38:46PM +0200, Ville Syrjala wrote: > From: Ville Syrjälä > > We're incorrectly masking off the R/V channel enable bit from > KEYMSK. Fix it up. > > Cc: Maarten Lankhorst > Cc: Matt Roper > Fixes: b20815255693 ("drm/i915: Add plane alpha blending support, v2.") > Signed-off-by: Ville Syrjälä The "srckey" terminology in the headline is a bit confusing since the channel mask applies to both "destination colorkey" and "source colorkey" behavior. Otherwise, Reviewed-by: Matt Roper Out of curiousity, has there ever been a userspace consumer of source colorkey? I know SNA uses destination colorkey (for Xv), but not source colorkey. And afaik, UXA never did any colorkeying through the sprite interface at all. Matt > --- > drivers/gpu/drm/i915/intel_sprite.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/intel_sprite.c > b/drivers/gpu/drm/i915/intel_sprite.c > index b02d3d9809e3..cd42e81f8a90 100644 > --- a/drivers/gpu/drm/i915/intel_sprite.c > +++ b/drivers/gpu/drm/i915/intel_sprite.c > @@ -493,7 +493,7 @@ skl_program_plane(struct intel_plane *plane, > > keymax = (key->max_value & 0xff) | PLANE_KEYMAX_ALPHA(alpha); > > - keymsk = key->channel_mask & 0x3ff; > + keymsk = key->channel_mask & 0x7ff; > if (alpha < 0xff) > keymsk |= PLANE_KEYMSK_ALPHA_ENABLE; > > -- > 2.19.2 > -- Matt Roper Graphics Software Engineer IoTG Platform Enabling & Development Intel Corporation (916) 356-2795 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH v3] drm/i915: correct the pitch check for NV12 framebuffer
On Wed, Dec 19, 2018 at 01:59:12PM +0530, raviraj.p.sita...@intel.com wrote: > From: P Raviraj Sitaram > > framebuffer for NV12 requires the pitch to the multiplier of 4, instead > of the width. This patch corrects it. > > For instance, a 480p video, whose width and pitch are 854 and 896 > respectively, is excluded for NV12 plane so far. > > Changes since v1: > - Removed check for NV12 buffer dimensions since additional checks > are done for viewport size in intel_sprite.c > > Signed-off-by: Dongseong Hwang > Signed-off-by: P Raviraj Sitaram > Cc: Chandra Konduru > Cc: Vidya Srinivas > Cc: Ville Syrjälä > Cc: Juha-Pekka Heikkila > --- > drivers/gpu/drm/i915/intel_display.c | 8 > 1 file changed, 8 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_display.c > b/drivers/gpu/drm/i915/intel_display.c > index 3b7094822aa9..fa349182d0da 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -14597,14 +14597,6 @@ static int intel_framebuffer_init(struct > intel_framebuffer *intel_fb, > > drm_helper_mode_fill_fb_struct(&dev_priv->drm, fb, mode_cmd); > > - if (fb->format->format == DRM_FORMAT_NV12 && > - (fb->width < SKL_MIN_YUV_420_SRC_W || > - fb->height < SKL_MIN_YUV_420_SRC_H || > - (fb->width % 4) != 0 || (fb->height % 4) != 0)) { > - DRM_DEBUG_KMS("src dimensions not correct for NV12\n"); > - goto err; > - } Looks correct to me. Thanks for the patch, pushed to dinq. > - > for (i = 0; i < fb->format->num_planes; i++) { > u32 stride_alignment; > > -- > 2.7.4 -- Ville Syrjälä Intel ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH] drm/i915/icl: Add TypeC ports only if VBT is present
On Fri, 2019-01-25 at 16:34 +0200, Imre Deak wrote: > We can't safely probe Type C ports, whether they are a legacy or a > USB/Thunderbolt DP Alternate Type C port. This would require > performing > the TypeC connect sequence - as described by the specification - but > that may have unwanted side-effects. These side-effects include at > least > - without completeness - timeouts during AUX power well enabling and > subsequent PLL enabling errors. > Makes sense, behaps there is a bug open with this timeouts and errors to link to? > To safely identify these ports we really need VBT, which has the > proper > flag for this (ddi_vbt_port_info::supports_typec_usb, supports_tbt). > Based on the above disable Type C ports if we can't load VBT for some > reason. Reviewed-by: José Roberto de Souza > > Cc: Jani Nikula > Cc: Paulo Zanoni > Cc: Jose Roberto de Souza > Cc: Ville Syrjälä > Cc: Rodrigo Vivi > Signed-off-by: Imre Deak > --- > drivers/gpu/drm/i915/intel_bios.c | 6 -- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_bios.c > b/drivers/gpu/drm/i915/intel_bios.c > index 561a4f9f044c..270e7f0ad5cd 100644 > --- a/drivers/gpu/drm/i915/intel_bios.c > +++ b/drivers/gpu/drm/i915/intel_bios.c > @@ -1662,10 +1662,12 @@ init_vbt_missing_defaults(struct > drm_i915_private *dev_priv) > for (port = PORT_A; port < I915_MAX_PORTS; port++) { > struct ddi_vbt_port_info *info = > &dev_priv->vbt.ddi_port_info[port]; > + bool is_tc_port = intel_port_is_tc(dev_priv, port); Nit: if (intel_port_is_tc(dev_priv, port)) continue; instead? > > - info->supports_dvi = (port != PORT_A && port != > PORT_E); > + info->supports_dvi = (port != PORT_A && port != PORT_E > && > + !is_tc_port); > info->supports_hdmi = info->supports_dvi; > - info->supports_dp = (port != PORT_E); > + info->supports_dp = (port != PORT_E && !is_tc_port); > } > } > signature.asc Description: This is a digitally signed message part ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 4/4] drm/i915/dsi: Call drm_connector_cleanup on vlv_dsi_init error exit path
On Sat, Dec 01, 2018 at 12:31:48PM +0100, Hans de Goede wrote: > If we exit vlv_dsi_init() because we failed to find a fixed_mode, then > we've already called drm_connector_init() and we should call > drm_connector_cleanup() to unregister the connector object. > > Signed-off-by: Hans de Goede Reviewed-by: Ville Syrjälä > --- > drivers/gpu/drm/i915/vlv_dsi.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/vlv_dsi.c b/drivers/gpu/drm/i915/vlv_dsi.c > index d72ccf557a9c..7ca5aafcdf93 100644 > --- a/drivers/gpu/drm/i915/vlv_dsi.c > +++ b/drivers/gpu/drm/i915/vlv_dsi.c > @@ -1861,7 +1861,7 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv) > > if (!fixed_mode) { > DRM_DEBUG_KMS("no fixed mode\n"); > - goto err; > + goto err_cleanup_connector; > } > > connector->display_info.width_mm = fixed_mode->width_mm; > @@ -1874,6 +1874,8 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv) > > return; > > +err_cleanup_connector: > + drm_connector_cleanup(&intel_connector->base); > err: > drm_encoder_cleanup(&intel_encoder->base); > kfree(intel_dsi); > -- > 2.19.1 -- Ville Syrjälä Intel ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 2/3] drm: Sync errno values for property lookup errors
On Tue, Jan 22, 2019 at 10:39:38AM +0100, Daniel Vetter wrote: > On Mon, Jan 21, 2019 at 10:24:29PM +0200, Ville Syrjala wrote: > > From: Ville Syrjälä > > > > Use ENOENT consistently for the case where the requested property > > isn't found, and EINVAL for the case where the object has no > > properties whatsoever. Currenrly these are handled differently > > in the atomic and legacy codepaths. > > > > Signed-off-by: Ville Syrjälä > > Matches > https://dri.freedesktop.org/docs/drm/gpu/drm-uapi.html#recommended-ioctl-return-values > > Reviewed-by: Daniel Vetter > > Any igts that blow up with this? We should have at least some trying to do > invalid stuff ... Looks like there was something caught by ci. I'll have to look those over. Also the logs seem to full of my <7> [625.952666] [drm:drm_modeset_backoff] Retrying to avoid deadlock Not sure if that debug print is a good idea after all :/ > -Daniel > > > --- > > drivers/gpu/drm/drm_atomic_uapi.c | 2 +- > > drivers/gpu/drm/drm_mode_object.c | 1 + > > 2 files changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/drm_atomic_uapi.c > > b/drivers/gpu/drm/drm_atomic_uapi.c > > index 06390307e5a3..2a54f826cf65 100644 > > --- a/drivers/gpu/drm/drm_atomic_uapi.c > > +++ b/drivers/gpu/drm/drm_atomic_uapi.c > > @@ -1330,7 +1330,7 @@ int drm_mode_atomic_ioctl(struct drm_device *dev, > > DRM_DEBUG_ATOMIC("Object ID %d has no properties\n", > > obj_id); > > drm_mode_object_put(obj); > > - ret = -ENOENT; > > + ret = -EINVAL; > > goto out; > > } > > > > diff --git a/drivers/gpu/drm/drm_mode_object.c > > b/drivers/gpu/drm/drm_mode_object.c > > index e8dac94d576d..31730d935842 100644 > > --- a/drivers/gpu/drm/drm_mode_object.c > > +++ b/drivers/gpu/drm/drm_mode_object.c > > @@ -527,6 +527,7 @@ int drm_mode_obj_set_property_ioctl(struct drm_device > > *dev, void *data, > > property = drm_mode_obj_find_prop_id(arg_obj, arg->prop_id); > > if (!property) { > > DRM_DEBUG_KMS("Unknown property ID %d\n", arg->prop_id); > > + ret = -ENOENT; > > goto out_unref; > > } > > > > -- > > 2.19.2 > > > > ___ > > Intel-gfx mailing list > > Intel-gfx@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch -- Ville Syrjälä Intel ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 1/3] drm: Add debug prints for the various object lookup errors
On Tue, Jan 22, 2019 at 10:38:30AM +0100, Daniel Vetter wrote: > On Mon, Jan 21, 2019 at 10:24:28PM +0200, Ville Syrjala wrote: > > From: Ville Syrjälä > > > > Only some of the drm mode object lookups have a corresponding debug > > print for the lookup failure. That makes logs a bit hard to parse > > when you can't see where the bad object ID is being used. Add a bunch > > more debug prints, and unify their appearance. > > > > Signed-off-by: Ville Syrjälä > > Instead of sprinkling these all over, what about the reverse route and > pushing this into drm_mode_object_find? We can dump id + object type, that > should be all we need really. I suppose. Downside being that the debug then won't tell you who called the _find(). Although with the atomic ioctl we really don't have much information anyway since we didn't include the type of the object in the ioctl struct. Perhaps that was a mistake. > If we go this way maybe add kerneldoc to the > various drm_*_find/lookup functions so this doesn't get copypasted again > ... > -Daniel > > > --- > > drivers/gpu/drm/drm_atomic_uapi.c | 5 + > > drivers/gpu/drm/drm_color_mgmt.c | 8 ++-- > > drivers/gpu/drm/drm_connector.c | 5 - > > drivers/gpu/drm/drm_crtc.c| 12 +++- > > drivers/gpu/drm/drm_encoder.c | 4 +++- > > drivers/gpu/drm/drm_framebuffer.c | 4 +++- > > drivers/gpu/drm/drm_mode_object.c | 17 ++--- > > drivers/gpu/drm/drm_plane.c | 13 + > > drivers/gpu/drm/drm_property.c| 12 +--- > > drivers/gpu/drm/drm_vblank.c | 8 ++-- > > 10 files changed, 66 insertions(+), 22 deletions(-) > > > > diff --git a/drivers/gpu/drm/drm_atomic_uapi.c > > b/drivers/gpu/drm/drm_atomic_uapi.c > > index 9a1f41adfc67..06390307e5a3 100644 > > --- a/drivers/gpu/drm/drm_atomic_uapi.c > > +++ b/drivers/gpu/drm/drm_atomic_uapi.c > > @@ -1321,11 +1321,14 @@ int drm_mode_atomic_ioctl(struct drm_device *dev, > > > > obj = drm_mode_object_find(dev, file_priv, obj_id, > > DRM_MODE_OBJECT_ANY); > > if (!obj) { > > + DRM_DEBUG_ATOMIC("Unknown object ID %d\n", obj_id); > > ret = -ENOENT; > > goto out; > > } > > > > if (!obj->properties) { > > + DRM_DEBUG_ATOMIC("Object ID %d has no properties\n", > > +obj_id); > > drm_mode_object_put(obj); > > ret = -ENOENT; > > goto out; > > @@ -1352,6 +1355,8 @@ int drm_mode_atomic_ioctl(struct drm_device *dev, > > > > prop = drm_mode_obj_find_prop_id(obj, prop_id); > > if (!prop) { > > + DRM_DEBUG_ATOMIC("Unknown property ID %d\n", > > +prop_id); > > drm_mode_object_put(obj); > > ret = -ENOENT; > > goto out; > > diff --git a/drivers/gpu/drm/drm_color_mgmt.c > > b/drivers/gpu/drm/drm_color_mgmt.c > > index 07dcf47daafe..a99ee15b8328 100644 > > --- a/drivers/gpu/drm/drm_color_mgmt.c > > +++ b/drivers/gpu/drm/drm_color_mgmt.c > > @@ -245,8 +245,10 @@ int drm_mode_gamma_set_ioctl(struct drm_device *dev, > > return -EOPNOTSUPP; > > > > crtc = drm_crtc_find(dev, file_priv, crtc_lut->crtc_id); > > - if (!crtc) > > + if (!crtc) { > > + DRM_DEBUG_KMS("Unknown CRTC ID %d\n", crtc_lut->crtc_id); > > return -ENOENT; > > + } > > > > if (crtc->funcs->gamma_set == NULL) > > return -ENOSYS; > > @@ -313,8 +315,10 @@ int drm_mode_gamma_get_ioctl(struct drm_device *dev, > > return -EOPNOTSUPP; > > > > crtc = drm_crtc_find(dev, file_priv, crtc_lut->crtc_id); > > - if (!crtc) > > + if (!crtc) { > > + DRM_DEBUG_KMS("Unknown CRTC ID %d\n", crtc_lut->crtc_id); > > return -ENOENT; > > + } > > > > /* memcpy into gamma store */ > > if (crtc_lut->gamma_size != crtc->gamma_size) > > diff --git a/drivers/gpu/drm/drm_connector.c > > b/drivers/gpu/drm/drm_connector.c > > index 847539645558..8745eb132fd4 100644 > > --- a/drivers/gpu/drm/drm_connector.c > > +++ b/drivers/gpu/drm/drm_connector.c > > @@ -1952,8 +1952,11 @@ int drm_mode_getconnector(struct drm_device *dev, > > void *data, > > memset(&u_mode, 0, sizeof(struct drm_mode_modeinfo)); > > > > connector = drm_connector_lookup(dev, file_priv, > > out_resp->connector_id); > > - if (!connector) > > + if (!connector) { > > + DRM_DEBUG_KMS("Unknown connector ID %d\n", > > + out_resp->connector_id); > > return -ENOENT; > > + } > > > > drm_connector_for_each_possible_encoder(connector, encoder, i) > > encoders_count++; > > diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c > > index 7dabbaf033a1..e5f234ffcd23 1
[Intel-gfx] ✗ Fi.CI.IGT: failure for Per context dynamic (sub)slice power-gating (rev20)
== Series Details == Series: Per context dynamic (sub)slice power-gating (rev20) URL : https://patchwork.freedesktop.org/series/48194/ State : failure == Summary == CI Bug Log - changes from CI_DRM_5484_full -> Patchwork_12042_full Summary --- **FAILURE** Serious unknown changes coming with Patchwork_12042_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_12042_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_12042_full: ### IGT changes ### Possible regressions * igt@gem_ctx_param@invalid-param-get: - shard-apl: PASS -> FAIL - shard-glk: PASS -> FAIL - shard-snb: PASS -> FAIL - shard-hsw: PASS -> FAIL - shard-kbl: PASS -> FAIL * igt@gem_eio@in-flight-immediate: - shard-kbl: PASS -> DMESG-FAIL Suppressed The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * {igt@runner@aborted}: - shard-kbl: ( 4 FAIL ) -> ( 5 FAIL ) Known issues Here are the changes found in Patchwork_12042_full that come from known issues: ### IGT changes ### Issues hit * igt@gem_ctx_isolation@bcs0-s3: - shard-kbl: PASS -> INCOMPLETE [fdo#103665] * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-b: - shard-kbl: PASS -> DMESG-WARN [fdo#107956] * igt@kms_cursor_crc@cursor-256x256-random: - shard-glk: PASS -> FAIL [fdo#103232] * igt@kms_cursor_crc@cursor-64x21-sliding: - shard-apl: PASS -> FAIL [fdo#103232] * igt@kms_plane@pixel-format-pipe-c-planes: - shard-apl: PASS -> FAIL [fdo#103166] * igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max: - shard-apl: PASS -> FAIL [fdo#108145] * igt@kms_plane_multiple@atomic-pipe-b-tiling-none: - shard-glk: PASS -> FAIL [fdo#103166] +2 Possible fixes * igt@kms_busy@extended-pageflip-hang-newfb-render-a: - shard-glk: DMESG-WARN [fdo#107956] -> PASS * igt@kms_color@pipe-c-degamma: - shard-apl: FAIL [fdo#104782] -> PASS * igt@kms_cursor_crc@cursor-size-change: - shard-glk: FAIL [fdo#103232] -> PASS +1 * igt@kms_plane_multiple@atomic-pipe-a-tiling-y: - shard-glk: FAIL [fdo#103166] -> PASS +2 * igt@kms_setmode@basic: - shard-kbl: FAIL [fdo#99912] -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166 [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232 [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665 [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782 [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956 [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#108784]: https://bugs.freedesktop.org/show_bug.cgi?id=108784 [fdo#109373]: https://bugs.freedesktop.org/show_bug.cgi?id=109373 [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912 [k.org#202321]: https://bugzilla.kernel.org/show_bug.cgi?id=202321 Participating hosts (7 -> 5) -- Missing(2): shard-skl shard-iclb Build changes - * Linux: CI_DRM_5484 -> Patchwork_12042 CI_DRM_5484: 9f66ac94341eb12501097f9f8991c86aee70981c @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12042: f9d1d6e5f67ada2518736db422785015e0465603 @ 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_12042/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 2/2] drm/i915/tv: Use the scanline counter for timestamps on i965gm TV output
On Fri, Jan 25, 2019 at 08:19:31PM +0200, Ville Syrjala wrote: > From: Ville Syrjälä > > Just like the frame counter, the pixel counter also reads zero > all the time when the TV encoder is used. Fortunately the > scanline counter still works sufficiently well so let's use that > to correct the vblank timestamps. Otherwise the timestamps may > en up out of whack, and since we use them to guesstimate the > vblank counter value that may end up incorrect as well. > > Cc: Imre Deak > Signed-off-by: Ville Syrjälä Reviewed-by: Imre Deak > --- > drivers/gpu/drm/i915/i915_irq.c | 7 +-- > drivers/gpu/drm/i915/intel_drv.h | 4 +++- > drivers/gpu/drm/i915/intel_tv.c | 10 ++ > 3 files changed, 18 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c > index fe097725c27a..caade521c174 100644 > --- a/drivers/gpu/drm/i915/i915_irq.c > +++ b/drivers/gpu/drm/i915/i915_irq.c > @@ -1014,6 +1014,9 @@ static bool i915_get_crtc_scanoutpos(struct drm_device > *dev, unsigned int pipe, > int position; > int vbl_start, vbl_end, hsync_start, htotal, vtotal; > unsigned long irqflags; > + bool use_scanline_counter = INTEL_GEN(dev_priv) >= 5 || > + IS_G4X(dev_priv) || IS_GEN(dev_priv, 2) || > + mode->private_flags & I915_MODE_FLAG_USE_SCANLINE_COUNTER; > > if (WARN_ON(!mode->crtc_clock)) { > DRM_DEBUG_DRIVER("trying to get scanoutpos for disabled " > @@ -1046,7 +1049,7 @@ static bool i915_get_crtc_scanoutpos(struct drm_device > *dev, unsigned int pipe, > if (stime) > *stime = ktime_get(); > > - if (IS_GEN(dev_priv, 2) || IS_G4X(dev_priv) || INTEL_GEN(dev_priv) >= > 5) { > + if (use_scanline_counter) { > /* No obvious pixelcount register. Only query vertical >* scanout position from Display scan line register. >*/ > @@ -1106,7 +1109,7 @@ static bool i915_get_crtc_scanoutpos(struct drm_device > *dev, unsigned int pipe, > else > position += vtotal - vbl_end; > > - if (IS_GEN(dev_priv, 2) || IS_G4X(dev_priv) || INTEL_GEN(dev_priv) >= > 5) { > + if (use_scanline_counter) { > *vpos = position; > *hpos = 0; > } else { > diff --git a/drivers/gpu/drm/i915/intel_drv.h > b/drivers/gpu/drm/i915/intel_drv.h > index 85b913ea6e80..90ba5436370e 100644 > --- a/drivers/gpu/drm/i915/intel_drv.h > +++ b/drivers/gpu/drm/i915/intel_drv.h > @@ -630,9 +630,11 @@ struct intel_crtc_scaler_state { > }; > > /* drm_mode->private_flags */ > -#define I915_MODE_FLAG_INHERITED 1 > +#define I915_MODE_FLAG_INHERITED (1<<0) > /* Flag to get scanline using frame time stamps */ > #define I915_MODE_FLAG_GET_SCANLINE_FROM_TIMESTAMP (1<<1) > +/* Flag to use the scanline counter instead of the pixel counter */ > +#define I915_MODE_FLAG_USE_SCANLINE_COUNTER (1<<2) > > struct intel_pipe_wm { > struct intel_wm_level wm[5]; > diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c > index 78be08e2971b..751b88dde18e 100644 > --- a/drivers/gpu/drm/i915/intel_tv.c > +++ b/drivers/gpu/drm/i915/intel_tv.c > @@ -1150,6 +1150,11 @@ intel_tv_get_config(struct intel_encoder *encoder, >ypos, mode.vdisplay - ysize - ypos); > > adjusted_mode->crtc_clock = mode.clock; > + > + /* pixel counter doesn't work on i965gm TV output */ > + if (IS_I965GM(dev_priv)) > + adjusted_mode->private_flags |= > + I915_MODE_FLAG_USE_SCANLINE_COUNTER; > } > > static int > @@ -1295,6 +1300,11 @@ intel_tv_compute_config(struct intel_encoder *encoder, > drm_mode_set_crtcinfo(adjusted_mode, 0); > adjusted_mode->name[0] = '\0'; > > + /* pixel counter doesn't work on i965gm TV output */ > + if (IS_I965GM(dev_priv)) > + adjusted_mode->private_flags |= > + I915_MODE_FLAG_USE_SCANLINE_COUNTER; > + > return 0; > } > > -- > 2.19.2 > ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 1/2] drm/i915/tv: Fix return value for intel_tv_compute_config()
On Fri, Jan 25, 2019 at 08:19:30PM +0200, Ville Syrjala wrote: > From: Ville Syrjälä > > Ever since commit 204474a6b859 ("drm/i915: Pass down rc in > intel_encoder->compute_config()") we're supposed to return an > errno from .compute_config(). I failed to notice that when > pushing the TV encoder fixes which were written before said > commmit. Fix up the return value for the error case. > > Cc: Imre Deak > Fixes: 690157f0a9e7 ("drm/i915/tv: Fix >1024 modes on gen3") > Signed-off-by: Ville Syrjälä Reviewed-by: Imre Deak > --- > drivers/gpu/drm/i915/intel_tv.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c > index f0b9abda7720..78be08e2971b 100644 > --- a/drivers/gpu/drm/i915/intel_tv.c > +++ b/drivers/gpu/drm/i915/intel_tv.c > @@ -1189,7 +1189,7 @@ intel_tv_compute_config(struct intel_encoder *encoder, > > if (extra < 0) { > DRM_DEBUG_KMS("No vertical scaling for >1024 pixel wide > modes\n"); > - return false; > + return -EINVAL; > } > > /* Need to turn off the vertical filter and center the image */ > -- > 2.19.2 > ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH v4 2/2] drm/i915: Validate userspace-provided color management LUT's (v4)
On Tue, Dec 18, 2018 at 09:51:58AM -0800, Matt Roper wrote: > We currently program userspace-provided gamma and degamma LUT's into our > hardware without really checking to see whether they satisfy our > hardware's rules. We should try to catch tables that are invalid for > our hardware early and reject the atomic transaction. > > All of our platforms that accept a degamma LUT expect that the entries > in the LUT are always flat or increasing, never decreasing. Also, our > GLK and ICL platforms only accept degamma tables with r=g=b entries; so > we should also add the relevant checks for that in anticipation of > degamma support landing for those platforms. > > v2: > - Use new API (single check function with bitmask of tests to apply) > - Call helper for our gamma table as well (with no additional tests >specified) so that the table size will be validated. > > v3: > - Don't call on the gamma table since the LUT size is already tested at >property blob upload and we don't have any additional hardware >constraints for that LUT. > > v4: > - Apply equal color channel check on gen10 as well; the bspec has some >strange tagging for CNL platforms, but this appears to apply there as >well. (Ville) > > Cc: Uma Shankar > Cc: Swati Sharma > Cc: Ville Syrjälä > Signed-off-by: Matt Roper > Reviewed-by: Uma Shankar > --- > drivers/gpu/drm/i915/intel_color.c | 16 > 1 file changed, 16 insertions(+) > > diff --git a/drivers/gpu/drm/i915/intel_color.c > b/drivers/gpu/drm/i915/intel_color.c > index 37fd9ddf762e..e3ffbb0ad9a6 100644 > --- a/drivers/gpu/drm/i915/intel_color.c > +++ b/drivers/gpu/drm/i915/intel_color.c > @@ -609,10 +609,26 @@ int intel_color_check(struct intel_crtc_state > *crtc_state) > { > struct drm_i915_private *dev_priv = to_i915(crtc_state->base.crtc->dev); > size_t gamma_length, degamma_length; > + uint32_t tests = DRM_COLOR_LUT_NON_DECREASING; > > degamma_length = INTEL_INFO(dev_priv)->color.degamma_lut_size; > gamma_length = INTEL_INFO(dev_priv)->color.gamma_lut_size; > > + /* > + * All of our platforms mandate that the degamma curve be > + * non-decreasing. This is actually not true. Only interpolated gamma modes require a non-decreasing curve. The split gamma mode used on pre-glk is not interpolated. Also both CHV CGM gamma and degamma are interpolated, so we should rather be checking gamma as well here. > Additionally, GLK and gen11 only accept a single > + * value for red, green, and blue in the degamma table. Make sure > + * userspace didn't try to pass us something we can't handle. > + * > + * We don't have any extra hardware constraints on the gamma table, > + * so no need to explicitly check it. > + */ > + if (IS_GEMINILAKE(dev_priv) || INTEL_GEN(dev_priv) >= 10) > + tests |= DRM_COLOR_LUT_EQUAL_CHANNELS; > + > + if (drm_color_lut_check(crtc_state->base.degamma_lut, tests) != 0) > + return -EINVAL; > + > /* >* We allow both degamma & gamma luts at the right size or >* NULL. > -- > 2.14.4 -- Ville Syrjälä Intel ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/icl: Add TypeC ports only if VBT is present
On Fri, Jan 25, 2019 at 03:49:07PM +, Patchwork wrote: > == Series Details == > > Series: drm/i915/icl: Add TypeC ports only if VBT is present > URL : https://patchwork.freedesktop.org/series/55733/ > State : failure > > == Summary == > > CI Bug Log - changes from CI_DRM_5484 -> Patchwork_12040 > > > Summary > --- > > **FAILURE** > > Serious unknown changes coming with Patchwork_12040 absolutely need to be > verified manually. > > If you think the reported changes have nothing to do with the changes > introduced in Patchwork_12040, please notify your bug team to allow them > to document this new failure mode, which will reduce false positives in CI. > > External URL: > https://patchwork.freedesktop.org/api/1.0/series/55733/revisions/1/mbox/ > > Possible new issues > --- > > Here are the unknown changes that may have been introduced in > Patchwork_12040: > > ### IGT changes ### > > Possible regressions > > * igt@gem_exec_suspend@basic-s3: > - fi-icl-y: NOTRUN -> DMESG-WARN Starting with a state mismatch error after: <7>[ 93.724187] [drm:pipe_config_err [i915]] mismatch in cpu_transcoder (expected 0, found 3) <7>[ 93.724221] [drm:pipe_config_err [i915]] mismatch in lane_count (expected 0, found 2) ... and then <3>[ 97.765551] [drm:intel_dp_start_link_train [i915]] *ERROR* failed to enable link training but more importantly after this patch the status changed from NOTRUN to runnable. So far no tests were run on this machine due to a kernel taint during boot: <4>[ 10.967912] WARN_ON(dig_port->tc_legacy_port) This patch gets rid of the above WARN and taint, so the tests will be run. > > * igt@i915_selftest@live_contexts: > - fi-icl-y: NOTRUN -> DMESG-FAIL This is in existing issue seen on all ICLs. > * igt@i915_selftest@live_hangcheck: > - fi-kbl-r: PASS -> INCOMPLETE Unrelated platform. > - fi-icl-y: NOTRUN -> INCOMPLETE Not sure if this one is seen on other ICLs, but it's a GEM test and looks unrelated to the change in this patch. > > > Suppressed > > The following results come from untrusted machines, tests, or statuses. > They do not affect the overall result. > > * igt@kms_flip@basic-flip-vs-modeset: > - fi-icl-y: NOTRUN -> {SKIP} +79 > > > Known issues > > > Here are the changes found in Patchwork_12040 that come from known issues: > > ### IGT changes ### > > Issues hit > > * igt@kms_pipe_crc_basic@hang-read-crc-pipe-a: > - fi-byt-clapper: PASS -> FAIL [fdo#103191] / [fdo#107362] +1 > > * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a: > - fi-blb-e6850: PASS -> INCOMPLETE [fdo#107718] > > > Possible fixes > > * igt@kms_busy@basic-flip-b: > - fi-gdg-551: FAIL [fdo#103182] -> PASS > > > {name}: This element is suppressed. This means it is ignored when computing > the status of the difference (SUCCESS, WARNING, or FAILURE). > > [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182 > [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191 > [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362 > [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718 > [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 > [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 > > > Participating hosts (44 -> 41) > -- > > Additional (1): fi-bsw-n3050 > Missing(4): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan > > > Build changes > - > > * Linux: CI_DRM_5484 -> Patchwork_12040 > > CI_DRM_5484: 9f66ac94341eb12501097f9f8991c86aee70981c @ > git://anongit.freedesktop.org/gfx-ci/linux > IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ > git://anongit.freedesktop.org/xorg/app/intel-gpu-tools > Patchwork_12040: 4165b2121372a06987a76a8291b95eacb204f212 @ > git://anongit.freedesktop.org/gfx-ci/linux > > > == Linux commits == > > 4165b2121372 drm/i915/icl: Add TypeC ports only if VBT is present > > == Logs == > > For more details see: > https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12040/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Fix skl srckey mask bits
== Series Details == Series: drm/i915: Fix skl srckey mask bits URL : https://patchwork.freedesktop.org/series/55744/ State : success == Summary == CI Bug Log - changes from CI_DRM_5486 -> Patchwork_12045 Summary --- **SUCCESS** No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/55744/revisions/1/mbox/ Known issues Here are the changes found in Patchwork_12045 that come from known issues: ### IGT changes ### Issues hit * igt@kms_chamelium@hdmi-hpd-fast: - fi-kbl-7500u: PASS -> FAIL [fdo#108767] * igt@kms_flip@basic-flip-vs-dpms: - fi-skl-6700hq: PASS -> DMESG-WARN [fdo#105998] * igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a-frame-sequence: - fi-byt-clapper: NOTRUN -> FAIL [fdo#103191] / [fdo#107362] Possible fixes * igt@gem_exec_suspend@basic-s3: - fi-blb-e6850: INCOMPLETE [fdo#107718] -> PASS * igt@kms_flip@basic-flip-vs-wf_vblank: - fi-bsw-n3050: FAIL [fdo#100368] -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#100368]: https://bugs.freedesktop.org/show_bug.cgi?id=100368 [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191 [fdo#105998]: https://bugs.freedesktop.org/show_bug.cgi?id=105998 [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362 [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718 [fdo#108767]: https://bugs.freedesktop.org/show_bug.cgi?id=108767 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 Participating hosts (43 -> 41) -- Additional (2): fi-byt-clapper fi-pnv-d510 Missing(4): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan Build changes - * Linux: CI_DRM_5486 -> Patchwork_12045 CI_DRM_5486: 186ccd79d43ff0c930c7211e24ba5afa78c6594e @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12045: 93c1c37b7d5fe620aa660d8893bff83a90265839 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 93c1c37b7d5f drm/i915: Fix skl srckey mask bits == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12045/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915/tv: Fix return value for intel_tv_compute_config()
== Series Details == Series: series starting with [1/2] drm/i915/tv: Fix return value for intel_tv_compute_config() URL : https://patchwork.freedesktop.org/series/55743/ State : success == Summary == CI Bug Log - changes from CI_DRM_5486 -> Patchwork_12044 Summary --- **SUCCESS** No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/55743/revisions/1/mbox/ Known issues Here are the changes found in Patchwork_12044 that come from known issues: ### IGT changes ### Issues hit * igt@kms_busy@basic-flip-a: - fi-gdg-551: PASS -> FAIL [fdo#103182] * igt@kms_flip@basic-flip-vs-modeset: - fi-skl-6700hq: PASS -> DMESG-WARN [fdo#105998] +1 * igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a-frame-sequence: - fi-byt-clapper: NOTRUN -> FAIL [fdo#103191] / [fdo#107362] * igt@kms_pipe_crc_basic@read-crc-pipe-b: - fi-byt-clapper: NOTRUN -> FAIL [fdo#107362] Possible fixes * igt@gem_exec_suspend@basic-s3: - fi-blb-e6850: INCOMPLETE [fdo#107718] -> PASS * igt@kms_flip@basic-flip-vs-wf_vblank: - fi-bsw-n3050: FAIL [fdo#100368] -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#100368]: https://bugs.freedesktop.org/show_bug.cgi?id=100368 [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182 [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191 [fdo#105998]: https://bugs.freedesktop.org/show_bug.cgi?id=105998 [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362 [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 Participating hosts (43 -> 41) -- Additional (2): fi-byt-clapper fi-pnv-d510 Missing(4): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan Build changes - * Linux: CI_DRM_5486 -> Patchwork_12044 CI_DRM_5486: 186ccd79d43ff0c930c7211e24ba5afa78c6594e @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12044: 32e0a172c9d3191d2530fd05a82cec82519e35ed @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 32e0a172c9d3 drm/i915/tv: Use the scanline counter for timestamps on i965gm TV output 03b411930b07 drm/i915/tv: Fix return value for intel_tv_compute_config() == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12044/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v2,1/2] drm/dp/mst: Provide defines for ACK vs. NAK reply type (rev2)
== Series Details == Series: series starting with [v2,1/2] drm/dp/mst: Provide defines for ACK vs. NAK reply type (rev2) URL : https://patchwork.freedesktop.org/series/55581/ State : success == Summary == CI Bug Log - changes from CI_DRM_5486 -> Patchwork_12043 Summary --- **SUCCESS** No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/55581/revisions/2/mbox/ Known issues Here are the changes found in Patchwork_12043 that come from known issues: ### IGT changes ### Issues hit * igt@amdgpu/amd_basic@userptr: - fi-kbl-8809g: PASS -> DMESG-WARN [fdo#108965] * igt@gem_exec_suspend@basic-s3: - fi-skl-6260u: PASS -> INCOMPLETE [fdo#104108] / [fdo#107773] * igt@kms_flip@basic-flip-vs-dpms: - fi-skl-6700hq: PASS -> DMESG-WARN [fdo#105998] Possible fixes * igt@kms_flip@basic-flip-vs-wf_vblank: - fi-bsw-n3050: FAIL [fdo#100368] -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#100368]: https://bugs.freedesktop.org/show_bug.cgi?id=100368 [fdo#104108]: https://bugs.freedesktop.org/show_bug.cgi?id=104108 [fdo#105998]: https://bugs.freedesktop.org/show_bug.cgi?id=105998 [fdo#107773]: https://bugs.freedesktop.org/show_bug.cgi?id=107773 [fdo#108965]: https://bugs.freedesktop.org/show_bug.cgi?id=108965 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 Participating hosts (43 -> 40) -- Additional (2): fi-byt-clapper fi-pnv-d510 Missing(5): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-icl-y Build changes - * Linux: CI_DRM_5486 -> Patchwork_12043 CI_DRM_5486: 186ccd79d43ff0c930c7211e24ba5afa78c6594e @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12043: c35519be7b5a818f1aebccd38b28707331c41c58 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == c35519be7b5a drm/dp/mst: Provide better debugs for NAK replies b8534842e422 drm/dp/mst: Provide defines for ACK vs. NAK reply type == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12043/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] drm/i915/tv: Fix return value for intel_tv_compute_config()
== Series Details == Series: series starting with [1/2] drm/i915/tv: Fix return value for intel_tv_compute_config() URL : https://patchwork.freedesktop.org/series/55743/ State : warning == Summary == $ dim checkpatch origin/drm-tip 03b411930b07 drm/i915/tv: Fix return value for intel_tv_compute_config() 32e0a172c9d3 drm/i915/tv: Use the scanline counter for timestamps on i965gm TV output -:61: CHECK:SPACING: spaces preferred around that '<<' (ctx:VxV) #61: FILE: drivers/gpu/drm/i915/intel_drv.h:633: +#define I915_MODE_FLAG_INHERITED (1<<0) ^ -:65: CHECK:SPACING: spaces preferred around that '<<' (ctx:VxV) #65: FILE: drivers/gpu/drm/i915/intel_drv.h:637: +#define I915_MODE_FLAG_USE_SCANLINE_COUNTER (1<<2) ^ total: 0 errors, 0 warnings, 2 checks, 59 lines checked ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH] drm/i915: Fix skl srckey mask bits
From: Ville Syrjälä We're incorrectly masking off the R/V channel enable bit from KEYMSK. Fix it up. Cc: Maarten Lankhorst Cc: Matt Roper Fixes: b20815255693 ("drm/i915: Add plane alpha blending support, v2.") Signed-off-by: Ville Syrjälä --- drivers/gpu/drm/i915/intel_sprite.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c index b02d3d9809e3..cd42e81f8a90 100644 --- a/drivers/gpu/drm/i915/intel_sprite.c +++ b/drivers/gpu/drm/i915/intel_sprite.c @@ -493,7 +493,7 @@ skl_program_plane(struct intel_plane *plane, keymax = (key->max_value & 0xff) | PLANE_KEYMAX_ALPHA(alpha); - keymsk = key->channel_mask & 0x3ff; + keymsk = key->channel_mask & 0x7ff; if (alpha < 0xff) keymsk |= PLANE_KEYMSK_ALPHA_ENABLE; -- 2.19.2 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 06/26] drm/fb_helper: set info->par in fill_info()
On Fri, Jan 25, 2019 at 09:44:06AM +0100, Daniel Vetter wrote: > On Thu, Jan 24, 2019 at 06:45:52PM +0100, Sam Ravnborg wrote: > > Hi Daniel. > > > > On Thu, Jan 24, 2019 at 05:58:11PM +0100, Daniel Vetter wrote: > > > The fbdev emulation helpers pretty much assume that this is set. > > > Let's do it for everyone. > > > > I do not know this code at all. > > But I failed to follow the code from the patch description. > > > > It do not give _me_ a clue why the assignment is removed from > > drm_fb_helper_generic_probe(). > > But it may be obvious for people that actually know this. > > generic_probe calls the new fill_info function, so it's not removed, it's > just moved, so that I can roll it out to all the drivers in the subsequent > patches. Obvious new you spell it out, thanks. Patch is fine: Reviewed-by: Sam Ravnborg ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [v2,1/2] drm/dp/mst: Provide defines for ACK vs. NAK reply type (rev2)
== Series Details == Series: series starting with [v2,1/2] drm/dp/mst: Provide defines for ACK vs. NAK reply type (rev2) URL : https://patchwork.freedesktop.org/series/55581/ State : warning == Summary == $ dim checkpatch origin/drm-tip b8534842e422 drm/dp/mst: Provide defines for ACK vs. NAK reply type c35519be7b5a drm/dp/mst: Provide better debugs for NAK replies -:26: ERROR:BRACKET_SPACE: space prohibited before open square bracket '[' #26: FILE: drivers/gpu/drm/drm_dp_mst_topology.c:71: +#define DP_STR(x) [DP_ ## x] = #x -:57: ERROR:BRACKET_SPACE: space prohibited before open square bracket '[' #57: FILE: drivers/gpu/drm/drm_dp_mst_topology.c:102: +#define DP_STR(x) [DP_NAK_ ## x] = #x total: 2 errors, 0 warnings, 0 checks, 102 lines checked ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Stop tracking MRU activity on VMA
== Series Details == Series: drm/i915: Stop tracking MRU activity on VMA URL : https://patchwork.freedesktop.org/series/55731/ State : success == Summary == CI Bug Log - changes from CI_DRM_5483_full -> Patchwork_12039_full Summary --- **SUCCESS** No regressions found. Known issues Here are the changes found in Patchwork_12039_full that come from known issues: ### IGT changes ### Issues hit * igt@gem_pwrite_pread@display-copy-performance: - shard-apl: PASS -> INCOMPLETE [fdo#103927] * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-a: - shard-kbl: PASS -> DMESG-WARN [fdo#107956] * igt@kms_cursor_crc@cursor-128x128-onscreen: - shard-apl: PASS -> FAIL [fdo#103232] +2 * igt@kms_cursor_crc@cursor-128x128-suspend: - shard-apl: PASS -> FAIL [fdo#103191] / [fdo#103232] * igt@kms_cursor_crc@cursor-256x256-sliding: - shard-glk: PASS -> FAIL [fdo#103232] +2 * igt@kms_plane_alpha_blend@pipe-c-alpha-transparant-fb: - shard-kbl: NOTRUN -> FAIL [fdo#108145] * igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max: - shard-apl: PASS -> FAIL [fdo#108145] * igt@kms_plane_multiple@atomic-pipe-b-tiling-y: - shard-glk: PASS -> FAIL [fdo#103166] +2 - shard-apl: PASS -> FAIL [fdo#103166] Possible fixes * igt@kms_available_modes_crc@available_mode_test_crc: - shard-apl: FAIL [fdo#106641] -> PASS * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-c: - shard-glk: DMESG-WARN [fdo#107956] -> PASS * igt@kms_cursor_crc@cursor-256x256-random: - shard-glk: FAIL [fdo#103232] -> PASS * igt@kms_cursor_crc@cursor-64x64-onscreen: - shard-apl: FAIL [fdo#103232] -> PASS * igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb: - shard-apl: FAIL [fdo#108145] -> PASS * igt@kms_plane_multiple@atomic-pipe-b-tiling-none: - shard-glk: FAIL [fdo#103166] -> PASS +3 * igt@kms_plane_multiple@atomic-pipe-c-tiling-y: - shard-apl: FAIL [fdo#103166] -> PASS * igt@kms_rotation_crc@multiplane-rotation: - shard-kbl: INCOMPLETE [fdo#103665] -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166 [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191 [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232 [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665 [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927 [fdo#106641]: https://bugs.freedesktop.org/show_bug.cgi?id=106641 [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724 [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956 [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109373]: https://bugs.freedesktop.org/show_bug.cgi?id=109373 [k.org#202321]: https://bugzilla.kernel.org/show_bug.cgi?id=202321 Participating hosts (7 -> 5) -- Missing(2): shard-skl shard-iclb Build changes - * Linux: CI_DRM_5483 -> Patchwork_12039 CI_DRM_5483: 39cde7a859167467e9c4446b70b08a42b5e3345e @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12039: dcfcc9eab96656001a0cf108b6e6ad2b42985ef7 @ 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_12039/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 1/2] drm/i915/tv: Fix return value for intel_tv_compute_config()
From: Ville Syrjälä Ever since commit 204474a6b859 ("drm/i915: Pass down rc in intel_encoder->compute_config()") we're supposed to return an errno from .compute_config(). I failed to notice that when pushing the TV encoder fixes which were written before said commmit. Fix up the return value for the error case. Cc: Imre Deak Fixes: 690157f0a9e7 ("drm/i915/tv: Fix >1024 modes on gen3") Signed-off-by: Ville Syrjälä --- drivers/gpu/drm/i915/intel_tv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c index f0b9abda7720..78be08e2971b 100644 --- a/drivers/gpu/drm/i915/intel_tv.c +++ b/drivers/gpu/drm/i915/intel_tv.c @@ -1189,7 +1189,7 @@ intel_tv_compute_config(struct intel_encoder *encoder, if (extra < 0) { DRM_DEBUG_KMS("No vertical scaling for >1024 pixel wide modes\n"); - return false; + return -EINVAL; } /* Need to turn off the vertical filter and center the image */ -- 2.19.2 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 2/2] drm/i915/tv: Use the scanline counter for timestamps on i965gm TV output
From: Ville Syrjälä Just like the frame counter, the pixel counter also reads zero all the time when the TV encoder is used. Fortunately the scanline counter still works sufficiently well so let's use that to correct the vblank timestamps. Otherwise the timestamps may en up out of whack, and since we use them to guesstimate the vblank counter value that may end up incorrect as well. Cc: Imre Deak Signed-off-by: Ville Syrjälä --- drivers/gpu/drm/i915/i915_irq.c | 7 +-- drivers/gpu/drm/i915/intel_drv.h | 4 +++- drivers/gpu/drm/i915/intel_tv.c | 10 ++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index fe097725c27a..caade521c174 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -1014,6 +1014,9 @@ static bool i915_get_crtc_scanoutpos(struct drm_device *dev, unsigned int pipe, int position; int vbl_start, vbl_end, hsync_start, htotal, vtotal; unsigned long irqflags; + bool use_scanline_counter = INTEL_GEN(dev_priv) >= 5 || + IS_G4X(dev_priv) || IS_GEN(dev_priv, 2) || + mode->private_flags & I915_MODE_FLAG_USE_SCANLINE_COUNTER; if (WARN_ON(!mode->crtc_clock)) { DRM_DEBUG_DRIVER("trying to get scanoutpos for disabled " @@ -1046,7 +1049,7 @@ static bool i915_get_crtc_scanoutpos(struct drm_device *dev, unsigned int pipe, if (stime) *stime = ktime_get(); - if (IS_GEN(dev_priv, 2) || IS_G4X(dev_priv) || INTEL_GEN(dev_priv) >= 5) { + if (use_scanline_counter) { /* No obvious pixelcount register. Only query vertical * scanout position from Display scan line register. */ @@ -1106,7 +1109,7 @@ static bool i915_get_crtc_scanoutpos(struct drm_device *dev, unsigned int pipe, else position += vtotal - vbl_end; - if (IS_GEN(dev_priv, 2) || IS_G4X(dev_priv) || INTEL_GEN(dev_priv) >= 5) { + if (use_scanline_counter) { *vpos = position; *hpos = 0; } else { diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index 85b913ea6e80..90ba5436370e 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h @@ -630,9 +630,11 @@ struct intel_crtc_scaler_state { }; /* drm_mode->private_flags */ -#define I915_MODE_FLAG_INHERITED 1 +#define I915_MODE_FLAG_INHERITED (1<<0) /* Flag to get scanline using frame time stamps */ #define I915_MODE_FLAG_GET_SCANLINE_FROM_TIMESTAMP (1<<1) +/* Flag to use the scanline counter instead of the pixel counter */ +#define I915_MODE_FLAG_USE_SCANLINE_COUNTER (1<<2) struct intel_pipe_wm { struct intel_wm_level wm[5]; diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c index 78be08e2971b..751b88dde18e 100644 --- a/drivers/gpu/drm/i915/intel_tv.c +++ b/drivers/gpu/drm/i915/intel_tv.c @@ -1150,6 +1150,11 @@ intel_tv_get_config(struct intel_encoder *encoder, ypos, mode.vdisplay - ysize - ypos); adjusted_mode->crtc_clock = mode.clock; + + /* pixel counter doesn't work on i965gm TV output */ + if (IS_I965GM(dev_priv)) + adjusted_mode->private_flags |= + I915_MODE_FLAG_USE_SCANLINE_COUNTER; } static int @@ -1295,6 +1300,11 @@ intel_tv_compute_config(struct intel_encoder *encoder, drm_mode_set_crtcinfo(adjusted_mode, 0); adjusted_mode->name[0] = '\0'; + /* pixel counter doesn't work on i965gm TV output */ + if (IS_I965GM(dev_priv)) + adjusted_mode->private_flags |= + I915_MODE_FLAG_USE_SCANLINE_COUNTER; + return 0; } -- 2.19.2 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.IGT: failure for series starting with [CI,1/5] drm/i915: Make all GPU resets atomic
== Series Details == Series: series starting with [CI,1/5] drm/i915: Make all GPU resets atomic URL : https://patchwork.freedesktop.org/series/55730/ State : failure == Summary == CI Bug Log - changes from CI_DRM_5483_full -> Patchwork_12038_full Summary --- **FAILURE** Serious unknown changes coming with Patchwork_12038_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_12038_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_12038_full: ### IGT changes ### Possible regressions * igt@gem_eio@in-flight-contexts-1us: - shard-kbl: PASS -> DMESG-WARN +3 - shard-apl: PASS -> DMESG-WARN +3 * igt@gem_eio@in-flight-external: - shard-glk: PASS -> DMESG-WARN +3 * igt@gem_mmap_gtt@hang: - shard-kbl: PASS -> FAIL - shard-hsw: PASS -> FAIL - shard-snb: PASS -> FAIL - shard-glk: PASS -> FAIL - shard-apl: PASS -> FAIL Suppressed The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * {igt@runner@aborted}: - shard-kbl: NOTRUN -> ( 4 FAIL ) - shard-apl: NOTRUN -> ( 4 FAIL ) Known issues Here are the changes found in Patchwork_12038_full that come from known issues: ### IGT changes ### Issues hit * igt@gem_eio@in-flight-internal-1us: - shard-glk: PASS -> FAIL [fdo#107799] * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-a: - shard-kbl: PASS -> DMESG-WARN [fdo#107956] * igt@kms_cursor_crc@cursor-64x21-sliding: - shard-apl: PASS -> FAIL [fdo#103232] * igt@kms_plane@plane-position-covered-pipe-c-planes: - shard-apl: PASS -> FAIL [fdo#103166] * igt@kms_plane_alpha_blend@pipe-c-alpha-transparant-fb: - shard-kbl: NOTRUN -> FAIL [fdo#108145] * igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max: - shard-apl: PASS -> FAIL [fdo#108145] * igt@kms_plane_multiple@atomic-pipe-b-tiling-y: - shard-glk: PASS -> FAIL [fdo#103166] +1 * igt@kms_setmode@basic: - shard-kbl: PASS -> FAIL [fdo#99912] * igt@kms_vblank@pipe-c-ts-continuation-idle: - shard-hsw: PASS -> DMESG-WARN [fdo#102614] Possible fixes * igt@kms_cursor_crc@cursor-256x256-random: - shard-glk: FAIL [fdo#103232] -> PASS * igt@kms_cursor_crc@cursor-256x85-random: - shard-apl: FAIL [fdo#103232] -> PASS +1 * igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic: - shard-glk: FAIL [fdo#105454] -> PASS * igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb: - shard-apl: FAIL [fdo#108145] -> PASS * igt@kms_plane_multiple@atomic-pipe-a-tiling-none: - shard-apl: FAIL [fdo#103166] -> PASS * igt@kms_plane_multiple@atomic-pipe-a-tiling-y: - shard-glk: FAIL [fdo#103166] -> PASS * igt@kms_rotation_crc@multiplane-rotation: - shard-kbl: INCOMPLETE [fdo#103665] -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614 [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166 [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232 [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665 [fdo#105454]: https://bugs.freedesktop.org/show_bug.cgi?id=105454 [fdo#107799]: https://bugs.freedesktop.org/show_bug.cgi?id=107799 [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956 [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109373]: https://bugs.freedesktop.org/show_bug.cgi?id=109373 [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912 [k.org#202321]: https://bugzilla.kernel.org/show_bug.cgi?id=202321 Participating hosts (7 -> 5) -- Missing(2): shard-skl shard-iclb Build changes - * Linux: CI_DRM_5483 -> Patchwork_12038 CI_DRM_5483: 39cde7a859167467e9c4446b70b08a42b5e3345e @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12038: 3c15a67f2a13a2cc920168b68e4bda85c0fc938e @ git://anongit.freedesktop.org/gfx-ci/linux piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
Re: [Intel-gfx] [PATCH 14/15] drm/i915/tv: Fix >1024 modes on gen3
On Wed, Jan 23, 2019 at 03:49:02PM +0200, Imre Deak wrote: > On Mon, Nov 12, 2018 at 06:59:59PM +0200, Ville Syrjala wrote: > > From: Ville Syrjälä > > > > On gen3 we must disable the TV encoder vertical filter for >1024 > > pixel wide sources. Once that's done all we can is try to center > > the image on the screen. Naturally the TV mode vertical resolution > > must be equal or larger than the user mode vertical resolution > > or else we'd have to cut off part of the user mode. > > > > And while we may not be able to respect the user's choice of > > top and bottom borders exactly (or we'd have to reject he mode > > most likely), we can try to maintain the relative sizes of the > > top and bottom border with respect to each orher. > > > > Additionally we must configure the pipe as interlaced if the > > TV mode is interlaced. > > > > Signed-off-by: Ville Syrjälä > > --- > > drivers/gpu/drm/i915/intel_tv.c | 100 +--- > > 1 file changed, 92 insertions(+), 8 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/intel_tv.c > > b/drivers/gpu/drm/i915/intel_tv.c > > index 75126fce655d..7099d837e31a 100644 > > --- a/drivers/gpu/drm/i915/intel_tv.c > > +++ b/drivers/gpu/drm/i915/intel_tv.c > > @@ -861,6 +861,44 @@ static const struct tv_mode tv_modes[] = { > > }, > > }; > > > > +struct intel_tv_connector_state { > > + struct drm_connector_state base; > > + > > + /* > > +* May need to override the user margins for > > +* gen3 >1024 wide source vertical centering. > > +*/ > > + struct { > > + u16 top, bottom; > > + } margins; > > + > > + bool bypass_vfilter; > > +}; > > + > > +#define to_intel_tv_connector_state(x) container_of(x, struct > > intel_tv_connector_state, base) > > + > > +/** > > + * intel_digital_connector_duplicate_state - duplicate connector state > ^intel_tv_connector_duplicate_state > > + * @connector: digital connector > ^tv connector? Copy paste fail. I just dropped the kerneldoc here and made the function static. Also fixed up the s/IS_GEN3(x)/IS_GEN(x,3)/ type of things and pushed the lot to dinq. Thanks for the review. > > + * > > + * Allocates and returns a copy of the connector state (both common and > > + * digital connector specific) for the specified connector. > > + * > > + * Returns: The newly allocated connector state, or NULL on failure. > > + */ > > +struct drm_connector_state * > > +intel_tv_connector_duplicate_state(struct drm_connector *connector) > > +{ > > + struct intel_tv_connector_state *state; > > + > > + state = kmemdup(connector->state, sizeof(*state), GFP_KERNEL); > > + if (!state) > > + return NULL; > > + > > + __drm_atomic_helper_connector_duplicate_state(connector, &state->base); > > + return &state->base; > > +} > > You didn't add the corresponding checks for the new > intel_tv_connector_state fields to intel_tv_atomic_check(). I suppose > that's ok since something resulting in a change in those will force a > modeset anyway: > > Reviewed-by: Imre Deak > > > + > > static struct intel_tv *enc_to_tv(struct intel_encoder *encoder) > > { > > return container_of(encoder, struct intel_tv, base); > > @@ -1129,6 +1167,9 @@ intel_tv_compute_config(struct intel_encoder *encoder, > > struct intel_crtc_state *pipe_config, > > struct drm_connector_state *conn_state) > > { > > + struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); > > + struct intel_tv_connector_state *tv_conn_state = > > + to_intel_tv_connector_state(conn_state); > > const struct tv_mode *tv_mode = intel_tv_mode_find(conn_state); > > struct drm_display_mode *adjusted_mode = > > &pipe_config->base.adjusted_mode; > > @@ -1149,6 +1190,43 @@ intel_tv_compute_config(struct intel_encoder > > *encoder, > > pipe_config->port_clock = tv_mode->clock; > > > > intel_tv_mode_to_mode(adjusted_mode, tv_mode); > > + drm_mode_set_crtcinfo(adjusted_mode, 0); > > + > > + if (IS_GEN3(dev_priv) && hdisplay > 1024) { > > + int extra, top, bottom; > > + > > + extra = adjusted_mode->crtc_vdisplay - vdisplay; > > + > > + if (extra < 0) { > > + DRM_DEBUG_KMS("No vertical scaling for >1024 pixel wide > > modes\n"); > > + return false; > > + } > > + > > + /* Need to turn off the vertical filter and center the image */ > > + > > + /* Attempt to maintain the relative sizes of the margins */ > > + top = conn_state->tv.margins.top; > > + bottom = conn_state->tv.margins.bottom; > > + > > + if (top + bottom) > > + top = extra * top / (top + bottom); > > + else > > + top = extra / 2; > > + bottom = extra - top; > > + > > + tv_conn_state->margins.top = top; > > + tv_conn_state->margins.bottom = bottom; > > + > > +
[Intel-gfx] ✓ Fi.CI.BAT: success for Per context dynamic (sub)slice power-gating (rev20)
== Series Details == Series: Per context dynamic (sub)slice power-gating (rev20) URL : https://patchwork.freedesktop.org/series/48194/ State : success == Summary == CI Bug Log - changes from CI_DRM_5484 -> Patchwork_12042 Summary --- **SUCCESS** No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/48194/revisions/20/mbox/ Known issues Here are the changes found in Patchwork_12042 that come from known issues: ### IGT changes ### Issues hit * igt@prime_vgem@basic-fence-flip: - fi-ilk-650: PASS -> FAIL [fdo#104008] Possible fixes * igt@kms_busy@basic-flip-b: - fi-gdg-551: FAIL [fdo#103182] -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182 [fdo#104008]: https://bugs.freedesktop.org/show_bug.cgi?id=104008 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 Participating hosts (44 -> 40) -- Additional (1): fi-bsw-n3050 Missing(5): fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-icl-y Build changes - * Linux: CI_DRM_5484 -> Patchwork_12042 CI_DRM_5484: 9f66ac94341eb12501097f9f8991c86aee70981c @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12042: f9d1d6e5f67ada2518736db422785015e0465603 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == f9d1d6e5f67a drm/i915/selftests: Context SSEU reconfiguration tests eb99a08b265d drm/i915: Expose RPCS (SSEU) configuration to userspace (Gen11 only) 464e6b0fe17d drm/i915: Add timeline barrier support f8dd0fb8513e drm/i915/perf: lock powergating configuration to default when active e1d7e70fd818 drm/i915: Record the sseu configuration per-context & engine == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12042/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for Per context dynamic (sub)slice power-gating (rev20)
== Series Details == Series: Per context dynamic (sub)slice power-gating (rev20) URL : https://patchwork.freedesktop.org/series/48194/ State : warning == Summary == $ dim sparse origin/drm-tip Sparse version: v0.5.2 Commit: drm/i915: Record the sseu configuration per-context & engine -drivers/gpu/drm/i915/selftests/../i915_drv.h:3541:16: warning: expression using sizeof(void) +drivers/gpu/drm/i915/selftests/../i915_drv.h:3555:16: warning: expression using sizeof(void) Commit: drm/i915/perf: lock powergating configuration to default when active Okay! Commit: drm/i915: Add timeline barrier support Okay! Commit: drm/i915: Expose RPCS (SSEU) configuration to userspace (Gen11 only) +drivers/gpu/drm/i915/intel_lrc.c:2364:25: warning: expression using sizeof(void) Commit: drm/i915/selftests: Context SSEU reconfiguration tests +drivers/gpu/drm/i915/selftests/i915_gem_context.c:1134:25: warning: expression using sizeof(void) +drivers/gpu/drm/i915/selftests/i915_gem_context.c:1134:25: warning: expression using sizeof(void) -drivers/gpu/drm/i915/selftests/i915_gem_context.c:1134:25: warning: expression using sizeof(void) -drivers/gpu/drm/i915/selftests/i915_gem_context.c:1134:25: warning: expression using sizeof(void) ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Per context dynamic (sub)slice power-gating (rev20)
== Series Details == Series: Per context dynamic (sub)slice power-gating (rev20) URL : https://patchwork.freedesktop.org/series/48194/ State : warning == Summary == $ dim checkpatch origin/drm-tip e1d7e70fd818 drm/i915: Record the sseu configuration per-context & engine f8dd0fb8513e drm/i915/perf: lock powergating configuration to default when active 464e6b0fe17d drm/i915: Add timeline barrier support eb99a08b265d drm/i915: Expose RPCS (SSEU) configuration to userspace (Gen11 only) -:528: CHECK:UNNECESSARY_PARENTHESES: Unnecessary parentheses around 'user->min_eus_per_subslice != device->max_eus_per_subslice' #528: FILE: drivers/gpu/drm/i915/i915_gem_context.c:1175: + if ((user->min_eus_per_subslice != +device->max_eus_per_subslice) || + (user->max_eus_per_subslice != +device->max_eus_per_subslice)) -:528: CHECK:UNNECESSARY_PARENTHESES: Unnecessary parentheses around 'user->max_eus_per_subslice != device->max_eus_per_subslice' #528: FILE: drivers/gpu/drm/i915/i915_gem_context.c:1175: + if ((user->min_eus_per_subslice != +device->max_eus_per_subslice) || + (user->max_eus_per_subslice != +device->max_eus_per_subslice)) total: 0 errors, 0 warnings, 2 checks, 499 lines checked f9d1d6e5f67a drm/i915/selftests: Context SSEU reconfiguration tests ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH v4 3/5] drm/i915: Add timeline barrier support
From: Tvrtko Ursulin Timeline barrier allows serialization between different timelines. After calling i915_timeline_set_barrier with a request, all following submissions on this timeline will be set up as depending on this request, or barrier. Once the barrier has been completed it automatically gets cleared and things continue as normal. This facility will be used by the upcoming context SSEU code. v2: * Assert barrier has been retired on timeline_fini. (Chris Wilson) * Fix mock_timeline. v3: * Improved comment language. (Chris Wilson) v4: * Maintain ordering with previous barriers set on the timeline. Signed-off-by: Tvrtko Ursulin Suggested-by: Chris Wilson Cc: Chris Wilson Reviewed-by: Chris Wilson --- drivers/gpu/drm/i915/i915_request.c | 17 ++ drivers/gpu/drm/i915/i915_timeline.c | 21 ++ drivers/gpu/drm/i915/i915_timeline.h | 22 +++ .../gpu/drm/i915/selftests/mock_timeline.c| 1 + 4 files changed, 61 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c index f4241a17e2ad..894b32258340 100644 --- a/drivers/gpu/drm/i915/i915_request.c +++ b/drivers/gpu/drm/i915/i915_request.c @@ -517,6 +517,19 @@ i915_request_alloc_slow(struct intel_context *ce) return kmem_cache_alloc(ce->gem_context->i915->requests, GFP_KERNEL); } +static int add_barrier(struct i915_request *rq, struct i915_gem_active *active) +{ + struct i915_request *barrier = + i915_gem_active_raw(active, &rq->i915->drm.struct_mutex); + + return barrier ? i915_request_await_dma_fence(rq, &barrier->fence) : 0; +} + +static int add_timeline_barrier(struct i915_request *rq) +{ + return add_barrier(rq, &rq->timeline->barrier); +} + /** * i915_request_alloc - allocate a request structure * @@ -660,6 +673,10 @@ i915_request_alloc(struct intel_engine_cs *engine, struct i915_gem_context *ctx) */ rq->head = rq->ring->emit; + ret = add_timeline_barrier(rq); + if (ret) + goto err_unwind; + ret = engine->request_alloc(rq); if (ret) goto err_unwind; diff --git a/drivers/gpu/drm/i915/i915_timeline.c b/drivers/gpu/drm/i915/i915_timeline.c index 4667cc08c416..6d5774cb8504 100644 --- a/drivers/gpu/drm/i915/i915_timeline.c +++ b/drivers/gpu/drm/i915/i915_timeline.c @@ -33,6 +33,7 @@ void i915_timeline_init(struct drm_i915_private *i915, spin_lock_init(&timeline->lock); + init_request_active(&timeline->barrier, NULL); init_request_active(&timeline->last_request, NULL); INIT_LIST_HEAD(&timeline->requests); @@ -69,6 +70,7 @@ void i915_timelines_park(struct drm_i915_private *i915) void i915_timeline_fini(struct i915_timeline *timeline) { GEM_BUG_ON(!list_empty(&timeline->requests)); + GEM_BUG_ON(i915_gem_active_isset(&timeline->barrier)); i915_syncmap_free(&timeline->sync); @@ -90,6 +92,25 @@ i915_timeline_create(struct drm_i915_private *i915, const char *name) return timeline; } +int i915_timeline_set_barrier(struct i915_timeline *tl, struct i915_request *rq) +{ + struct i915_request *old; + int err; + + lockdep_assert_held(&rq->i915->drm.struct_mutex); + + /* Must maintain ordering wrt existing barriers */ + old = i915_gem_active_raw(&tl->barrier, &rq->i915->drm.struct_mutex); + if (old) { + err = i915_request_await_dma_fence(rq, &old->fence); + if (err) + return err; + } + + i915_gem_active_set(&tl->barrier, rq); + return 0; +} + void __i915_timeline_free(struct kref *kref) { struct i915_timeline *timeline = diff --git a/drivers/gpu/drm/i915/i915_timeline.h b/drivers/gpu/drm/i915/i915_timeline.h index 38c1e15e927a..c8d7117bb205 100644 --- a/drivers/gpu/drm/i915/i915_timeline.h +++ b/drivers/gpu/drm/i915/i915_timeline.h @@ -64,6 +64,16 @@ struct i915_timeline { */ struct i915_syncmap *sync; + /** +* Barrier provides the ability to serialize ordering between different +* timelines. +* +* Users can call i915_timeline_set_barrier which will make all +* subsequent submissions to this timeline be executed only after the +* barrier has been completed. +*/ + struct i915_gem_active barrier; + struct list_head link; const char *name; @@ -136,4 +146,16 @@ static inline bool i915_timeline_sync_is_later(struct i915_timeline *tl, void i915_timelines_park(struct drm_i915_private *i915); +/** + * i915_timeline_set_barrier - orders submission between different timelines + * @timeline: timeline to set the barrier on + * @rq: request after which new submissions can proceed + * + * Sets the passed in request as the serialization point for all subsequent + * submissions on @timeline. Subsequent requests will not be submit
Re: [Intel-gfx] [PATCH 03/26] drm/irq: Ditch DRIVER_IRQ_SHARED
On Fri, Jan 25, 2019 at 02:46:55PM +, Emil Velikov wrote: > On Thu, 24 Jan 2019 at 16:58, Daniel Vetter wrote: > > > > This is only used by drm_irq_install(), which is an optional helper. > > And the right choice is to set it for all pci devices, and not for > > everything else. > > > Can you please add some information (or reference) why it's the right choice? pci devices can have a shared interrupt line. That's definitely the case for legacy pci, and I guess carries over to pcie. msi/msi-x interrupts will give you dedicated interrupts, but it doesn't really hurt to mark them as shared. I guess I could rephrase to state: "This is only used by drm_irq_install(), which is an optional helper. For legacy pci devices this is required (due to interrupt sharing without msi/msi-x), and just making this the default exactly matches the behaviour of all existing drivers using the drm_irq_install() helpers. In case that ever becomes wrong drivers can roll their own irq handling, as many drivers already do (for other reasons like needing a threaded interrupt handler, or having an entire pile of different interrupt sources)." That better? -Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.BAT: failure for Per context dynamic (sub)slice power-gating (rev19)
== Series Details == Series: Per context dynamic (sub)slice power-gating (rev19) URL : https://patchwork.freedesktop.org/series/48194/ State : failure == Summary == CI Bug Log - changes from CI_DRM_5484 -> Patchwork_12041 Summary --- **FAILURE** Serious unknown changes coming with Patchwork_12041 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_12041, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://patchwork.freedesktop.org/api/1.0/series/48194/revisions/19/mbox/ Possible new issues --- Here are the unknown changes that may have been introduced in Patchwork_12041: ### IGT changes ### Possible regressions * igt@i915_selftest@live_hangcheck: - fi-cfl-8700k: PASS -> INCOMPLETE Known issues Here are the changes found in Patchwork_12041 that come from known issues: ### IGT changes ### Issues hit * igt@kms_busy@basic-flip-a: - fi-gdg-551: PASS -> FAIL [fdo#103182] * igt@kms_flip@basic-flip-vs-dpms: - fi-skl-6700hq: PASS -> DMESG-WARN [fdo#105998] * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b: - fi-byt-clapper: PASS -> FAIL [fdo#103191] / [fdo#107362] Possible fixes * igt@kms_busy@basic-flip-b: - fi-gdg-551: FAIL [fdo#103182] -> PASS * igt@kms_pipe_crc_basic@nonblocking-crc-pipe-c: - fi-kbl-7567u: {SKIP} [fdo#109271] -> PASS +27 Warnings * igt@kms_chamelium@common-hpd-after-suspend: - fi-kbl-7567u: DMESG-FAIL [fdo#105079] -> DMESG-WARN [fdo#103558] / [fdo#105079] / [fdo#105602] * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a: - fi-kbl-7567u: {SKIP} [fdo#109271] -> DMESG-WARN [fdo#103558] / [fdo#105079] / [fdo#105602] +1 * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c: - fi-kbl-7567u: {SKIP} [fdo#109271] -> DMESG-FAIL [fdo#105079] {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182 [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191 [fdo#103558]: https://bugs.freedesktop.org/show_bug.cgi?id=103558 [fdo#105079]: https://bugs.freedesktop.org/show_bug.cgi?id=105079 [fdo#105602]: https://bugs.freedesktop.org/show_bug.cgi?id=105602 [fdo#105998]: https://bugs.freedesktop.org/show_bug.cgi?id=105998 [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 Participating hosts (44 -> 40) -- Additional (1): fi-bsw-n3050 Missing(5): fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-glk-j4005 Build changes - * Linux: CI_DRM_5484 -> Patchwork_12041 CI_DRM_5484: 9f66ac94341eb12501097f9f8991c86aee70981c @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12041: e930fd0346d9ccac2db9a53e9bc082d6c98c0209 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == e930fd0346d9 drm/i915/selftests: Context SSEU reconfiguration tests bcb0cea5b5b1 drm/i915: Expose RPCS (SSEU) configuration to userspace (Gen11 only) 1915b804bb44 drm/i915: Add timeline barrier support 56a1aaefc8e7 drm/i915/perf: lock powergating configuration to default when active b46b66196670 drm/i915: Record the sseu configuration per-context & engine == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12041/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/icl: Add TypeC ports only if VBT is present
== Series Details == Series: drm/i915/icl: Add TypeC ports only if VBT is present URL : https://patchwork.freedesktop.org/series/55733/ State : failure == Summary == CI Bug Log - changes from CI_DRM_5484 -> Patchwork_12040 Summary --- **FAILURE** Serious unknown changes coming with Patchwork_12040 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_12040, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://patchwork.freedesktop.org/api/1.0/series/55733/revisions/1/mbox/ Possible new issues --- Here are the unknown changes that may have been introduced in Patchwork_12040: ### IGT changes ### Possible regressions * igt@gem_exec_suspend@basic-s3: - fi-icl-y: NOTRUN -> DMESG-WARN * igt@i915_selftest@live_contexts: - fi-icl-y: NOTRUN -> DMESG-FAIL * igt@i915_selftest@live_hangcheck: - fi-kbl-r: PASS -> INCOMPLETE - fi-icl-y: NOTRUN -> INCOMPLETE Suppressed The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@kms_flip@basic-flip-vs-modeset: - fi-icl-y: NOTRUN -> {SKIP} +79 Known issues Here are the changes found in Patchwork_12040 that come from known issues: ### IGT changes ### Issues hit * igt@kms_pipe_crc_basic@hang-read-crc-pipe-a: - fi-byt-clapper: PASS -> FAIL [fdo#103191] / [fdo#107362] +1 * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a: - fi-blb-e6850: PASS -> INCOMPLETE [fdo#107718] Possible fixes * igt@kms_busy@basic-flip-b: - fi-gdg-551: FAIL [fdo#103182] -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182 [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191 [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362 [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 Participating hosts (44 -> 41) -- Additional (1): fi-bsw-n3050 Missing(4): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan Build changes - * Linux: CI_DRM_5484 -> Patchwork_12040 CI_DRM_5484: 9f66ac94341eb12501097f9f8991c86aee70981c @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12040: 4165b2121372a06987a76a8291b95eacb204f212 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 4165b2121372 drm/i915/icl: Add TypeC ports only if VBT is present == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12040/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 3/5] drm/i915: Add timeline barrier support
Quoting Tvrtko Ursulin (2019-01-25 15:24:39) > From: Tvrtko Ursulin > > Timeline barrier allows serialization between different timelines. > > After calling i915_timeline_set_barrier with a request, all following > submissions on this timeline will be set up as depending on this request, > or barrier. Once the barrier has been completed it automatically gets > cleared and things continue as normal. > > This facility will be used by the upcoming context SSEU code. > > v2: > * Assert barrier has been retired on timeline_fini. (Chris Wilson) > * Fix mock_timeline. > > v3: > * Improved comment language. (Chris Wilson) > > Signed-off-by: Tvrtko Ursulin > Suggested-by: Chris Wilson > Cc: Chris Wilson > Reviewed-by: Chris Wilson I sent a fix for this yesterday, we need to preserve the earlier barrier chain setting a new barrier (or else it fails if mix barriers along different timelines). -Chris ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for Per context dynamic (sub)slice power-gating (rev19)
== Series Details == Series: Per context dynamic (sub)slice power-gating (rev19) URL : https://patchwork.freedesktop.org/series/48194/ State : warning == Summary == $ dim sparse origin/drm-tip Sparse version: v0.5.2 Commit: drm/i915: Record the sseu configuration per-context & engine -drivers/gpu/drm/i915/selftests/../i915_drv.h:3541:16: warning: expression using sizeof(void) +drivers/gpu/drm/i915/selftests/../i915_drv.h:3555:16: warning: expression using sizeof(void) Commit: drm/i915/perf: lock powergating configuration to default when active Okay! Commit: drm/i915: Add timeline barrier support Okay! Commit: drm/i915: Expose RPCS (SSEU) configuration to userspace (Gen11 only) +drivers/gpu/drm/i915/intel_lrc.c:2364:25: warning: expression using sizeof(void) Commit: drm/i915/selftests: Context SSEU reconfiguration tests +drivers/gpu/drm/i915/selftests/i915_gem_context.c:1134:25: warning: expression using sizeof(void) +drivers/gpu/drm/i915/selftests/i915_gem_context.c:1134:25: warning: expression using sizeof(void) -drivers/gpu/drm/i915/selftests/i915_gem_context.c:1134:25: warning: expression using sizeof(void) -drivers/gpu/drm/i915/selftests/i915_gem_context.c:1134:25: warning: expression using sizeof(void) ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Per context dynamic (sub)slice power-gating (rev19)
== Series Details == Series: Per context dynamic (sub)slice power-gating (rev19) URL : https://patchwork.freedesktop.org/series/48194/ State : warning == Summary == $ dim checkpatch origin/drm-tip b46b66196670 drm/i915: Record the sseu configuration per-context & engine 56a1aaefc8e7 drm/i915/perf: lock powergating configuration to default when active 1915b804bb44 drm/i915: Add timeline barrier support bcb0cea5b5b1 drm/i915: Expose RPCS (SSEU) configuration to userspace (Gen11 only) -:528: CHECK:UNNECESSARY_PARENTHESES: Unnecessary parentheses around 'user->min_eus_per_subslice != device->max_eus_per_subslice' #528: FILE: drivers/gpu/drm/i915/i915_gem_context.c:1175: + if ((user->min_eus_per_subslice != +device->max_eus_per_subslice) || + (user->max_eus_per_subslice != +device->max_eus_per_subslice)) -:528: CHECK:UNNECESSARY_PARENTHESES: Unnecessary parentheses around 'user->max_eus_per_subslice != device->max_eus_per_subslice' #528: FILE: drivers/gpu/drm/i915/i915_gem_context.c:1175: + if ((user->min_eus_per_subslice != +device->max_eus_per_subslice) || + (user->max_eus_per_subslice != +device->max_eus_per_subslice)) total: 0 errors, 0 warnings, 2 checks, 499 lines checked e930fd0346d9 drm/i915/selftests: Context SSEU reconfiguration tests ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH] drm/i915: Don't use the second dbuf slice on icl
On Tue, Jan 22, 2019 at 02:58:46PM +0530, Mahesh Kumar wrote: > Hi, > > On Mon, Jan 21, 2019 at 9:01 PM Ville Syrjala > wrote: > > > > From: Ville Syrjälä > > > > The code managing the dbuf slices is borked and needs some > > real work to fix. In the meantime let's just stop using the > > second slice. > > > > Signed-off-by: Ville Syrjälä > > --- > > drivers/gpu/drm/i915/intel_pm.c | 10 -- > > 1 file changed, 8 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/intel_pm.c > > b/drivers/gpu/drm/i915/intel_pm.c > > index 8b63afa3a221..1e41c899ffe2 100644 > > --- a/drivers/gpu/drm/i915/intel_pm.c > > +++ b/drivers/gpu/drm/i915/intel_pm.c > > @@ -3618,7 +3618,8 @@ static u8 intel_enabled_dbuf_slices_num(struct > > drm_i915_private *dev_priv) > > enabled_slices = 1; > > > > /* Gen prior to GEN11 have only one DBuf slice */ > > - if (INTEL_GEN(dev_priv) < 11) > > + /* FIXME dbuf slice code is broken: see intel_get_ddb_size() */ > > + if (1 || INTEL_GEN(dev_priv) < 11) > > return enabled_slices; > > IMHO we may not need this, If we return from above we'll never disable > second slice in case it's enabled by bios. > Anyhow code changes in intel_get_ddb_size will take care of enabling > only one slice. I suppose. Can't recall if leaving this out caused more warns due something else getting confused. > > > > > if (I915_READ(DBUF_CTL_S2) & DBUF_POWER_STATE) > > @@ -3827,8 +3828,13 @@ static u16 intel_get_ddb_size(struct > > drm_i915_private *dev_priv, > > > > /* > > * 12GB/s is maximum BW supported by single DBuf slice. > > +* > > +* FIXME dbuf slice code is broken: > > +* - must wait for planes to stop using the slice before powering > > it off > > AFAIR we're already doing it and disabling slice only after > update_crtcs, and skl_update_crtcs code is taking care of waiting for > vblank in case it's required. skl_update_crtcs() only deals with reallocation between pipes. It won't do anything when a single pipe is going from two slices to one slice. > > > +* - plane straddling both slices is illegal in multi-pipe scenarios > > This is something new :) > > although this change introduce a major limitation with number and size > of planes we can display, yet > As code is broken and mentioned conditions need to be taken care of, > This change should be ok until proper fix. > > ~Mahesh > > > +* - should validate we stay within the hw bandwidth limits > > */ > > - if (num_active > 1 || total_data_bw >= GBps(12)) { > > + if (0 && (num_active > 1 || total_data_bw >= GBps(12))) { > > ddb->enabled_slices = 2; > > } else { > > ddb->enabled_slices = 1; > > -- > > 2.19.2 > > > > ___ > > Intel-gfx mailing list > > Intel-gfx@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Ville Syrjälä Intel ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [CI,1/2] drm/i915: Remove manual breadcumb counting
== Series Details == Series: series starting with [CI,1/2] drm/i915: Remove manual breadcumb counting URL : https://patchwork.freedesktop.org/series/55726/ State : success == Summary == CI Bug Log - changes from CI_DRM_5481_full -> Patchwork_12037_full Summary --- **SUCCESS** No regressions found. Known issues Here are the changes found in Patchwork_12037_full that come from known issues: ### IGT changes ### Issues hit * igt@gem_eio@in-flight-contexts-10ms: - shard-glk: PASS -> FAIL [fdo#107799] * igt@gem_exec_schedule@pi-ringfull-render: - shard-kbl: NOTRUN -> FAIL [fdo#103158] * igt@i915_suspend@shrink: - shard-kbl: NOTRUN -> DMESG-WARN [fdo#109244] * igt@kms_busy@extended-modeset-hang-newfb-render-a: - shard-kbl: NOTRUN -> DMESG-WARN [fdo#107956] +1 * igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-a: - shard-snb: NOTRUN -> DMESG-WARN [fdo#107956] +1 * igt@kms_color@pipe-c-degamma: - shard-apl: PASS -> FAIL [fdo#104782] * igt@kms_cursor_crc@cursor-alpha-opaque: - shard-snb: NOTRUN -> FAIL [fdo#109350] * igt@kms_cursor_crc@cursor-size-change: - shard-glk: PASS -> FAIL [fdo#103232] +1 * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible: - shard-glk: PASS -> FAIL [fdo#105363] * igt@kms_plane@plane-position-covered-pipe-c-planes: - shard-apl: PASS -> FAIL [fdo#103166] * igt@kms_plane_alpha_blend@pipe-b-alpha-7efc: - shard-kbl: NOTRUN -> FAIL [fdo#108145] / [fdo#108590] * igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb: - shard-apl: PASS -> FAIL [fdo#108145] * igt@kms_plane_multiple@atomic-pipe-b-tiling-y: - shard-glk: PASS -> FAIL [fdo#103166] * igt@kms_setmode@basic: - shard-apl: PASS -> FAIL [fdo#99912] - shard-kbl: PASS -> FAIL [fdo#99912] Possible fixes * igt@kms_atomic_transition@2x-modeset-transitions: - shard-hsw: DMESG-FAIL [fdo#102614] -> PASS * igt@kms_cursor_crc@cursor-256x85-random: - shard-apl: FAIL [fdo#103232] -> PASS +1 * igt@kms_plane@pixel-format-pipe-c-planes: - shard-apl: FAIL [fdo#103166] -> PASS +1 * igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb: - shard-glk: FAIL [fdo#108145] -> PASS * igt@kms_plane_multiple@atomic-pipe-b-tiling-none: - shard-glk: FAIL [fdo#103166] -> PASS +1 * igt@kms_vblank@pipe-a-query-idle: - shard-hsw: DMESG-WARN [fdo#102614] -> PASS * igt@kms_vblank@pipe-c-ts-continuation-suspend: - shard-hsw: FAIL [fdo#104894] -> PASS Warnings * igt@i915_suspend@shrink: - shard-hsw: DMESG-WARN [fdo#109244] -> INCOMPLETE [fdo#103540] / [fdo#106886] {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614 [fdo#103158]: https://bugs.freedesktop.org/show_bug.cgi?id=103158 [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166 [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232 [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540 [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782 [fdo#104894]: https://bugs.freedesktop.org/show_bug.cgi?id=104894 [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363 [fdo#106886]: https://bugs.freedesktop.org/show_bug.cgi?id=106886 [fdo#107799]: https://bugs.freedesktop.org/show_bug.cgi?id=107799 [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956 [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#108590]: https://bugs.freedesktop.org/show_bug.cgi?id=108590 [fdo#109244]: https://bugs.freedesktop.org/show_bug.cgi?id=109244 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 [fdo#109350]: https://bugs.freedesktop.org/show_bug.cgi?id=109350 [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912 Participating hosts (7 -> 5) -- Missing(2): shard-skl shard-iclb Build changes - * Linux: CI_DRM_5481 -> Patchwork_12037 CI_DRM_5481: 192c39147b7a320a73e6f0426ec4a5fe3f9b2a06 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12037: 140a14d76652acb8bfc5011d633e2f387be824d1 @ 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_12037/ __
[Intel-gfx] [PATCH 1/5] drm/i915: Record the sseu configuration per-context & engine
From: Lionel Landwerlin We want to expose the ability to reconfigure the slices, subslice and eu per context and per engine. To facilitate that, store the current configuration on the context for each engine, which is initially set to the device default upon creation. v2: record sseu configuration per context & engine (Chris) v3: introduce the i915_gem_context_sseu to store powergating programming, sseu_dev_info has grown quite a bit (Lionel) v4: rename i915_gem_sseu into intel_sseu (Chris) use to_intel_context() (Chris) v5: More to_intel_context() (Tvrtko) Switch intel_sseu from union to struct (Tvrtko) Move context default sseu in existing loop (Chris) v6: s/intel_sseu_from_device_sseu/intel_device_default_sseu/ (Tvrtko) Tvrtko Ursulin: v7: * Pass intel_sseu by pointer instead of value to make_rpcs. * Rebase for make_rpcs changes. v8: * Rebase for RPCS edit on pin. v9: * Rebase for context image setup changes. v10: * Rename dev_priv to i915. (Chris Wilson) v11: * Rebase. v12: * Rebase for IS_GEN changes. v13: * Rebase for RUNTIME_INFO. v14: * Rebase for intel_context_init. Signed-off-by: Chris Wilson Signed-off-by: Lionel Landwerlin Signed-off-by: Tvrtko Ursulin Reviewed-by: Chris Wilson Reviewed-by: Joonas Lahtinen --- drivers/gpu/drm/i915/i915_drv.h | 14 +++ drivers/gpu/drm/i915/i915_gem_context.c | 3 +++ drivers/gpu/drm/i915/i915_gem_context.h | 4 drivers/gpu/drm/i915/i915_request.h | 10 drivers/gpu/drm/i915/intel_lrc.c| 31 + 5 files changed, 47 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 0133d1da3d3c..888cbd3e3899 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -3295,6 +3295,20 @@ mkwrite_device_info(struct drm_i915_private *dev_priv) return (struct intel_device_info *)INTEL_INFO(dev_priv); } +static inline struct intel_sseu +intel_device_default_sseu(struct drm_i915_private *i915) +{ + const struct sseu_dev_info *sseu = &RUNTIME_INFO(i915)->sseu; + struct intel_sseu value = { + .slice_mask = sseu->slice_mask, + .subslice_mask = sseu->subslice_mask[0], + .min_eus_per_subslice = sseu->max_eus_per_subslice, + .max_eus_per_subslice = sseu->max_eus_per_subslice, + }; + + return value; +} + /* modesetting */ extern void intel_modeset_init_hw(struct drm_device *dev); extern int intel_modeset_init(struct drm_device *dev); diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c index 93e84751370f..c4ebae66eec1 100644 --- a/drivers/gpu/drm/i915/i915_gem_context.c +++ b/drivers/gpu/drm/i915/i915_gem_context.c @@ -327,6 +327,9 @@ intel_context_init(struct intel_context *ce, struct intel_engine_cs *engine) { ce->gem_context = ctx; + + /* Use the whole device by default */ + ce->sseu = intel_device_default_sseu(ctx->i915); } static struct i915_gem_context * diff --git a/drivers/gpu/drm/i915/i915_gem_context.h b/drivers/gpu/drm/i915/i915_gem_context.h index 3769438228f6..0010e5c32655 100644 --- a/drivers/gpu/drm/i915/i915_gem_context.h +++ b/drivers/gpu/drm/i915/i915_gem_context.h @@ -31,6 +31,7 @@ #include "i915_gem.h" #include "i915_scheduler.h" +#include "intel_device_info.h" struct pid; @@ -171,6 +172,9 @@ struct i915_gem_context { int pin_count; const struct intel_context_ops *ops; + + /** sseu: Control eu/slice partitioning */ + struct intel_sseu sseu; } __engine[I915_NUM_ENGINES]; /** ring_size: size for allocating the per-engine ring buffer */ diff --git a/drivers/gpu/drm/i915/i915_request.h b/drivers/gpu/drm/i915/i915_request.h index c0f084ca4f29..52acfac7bef4 100644 --- a/drivers/gpu/drm/i915/i915_request.h +++ b/drivers/gpu/drm/i915/i915_request.h @@ -38,6 +38,16 @@ struct drm_i915_gem_object; struct i915_request; struct i915_timeline; +/* + * Powergating configuration for a particular (context,engine). + */ +struct intel_sseu { + u8 slice_mask; + u8 subslice_mask; + u8 min_eus_per_subslice; + u8 max_eus_per_subslice; +}; + struct intel_wait { struct rb_node node; struct task_struct *tsk; diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c index 185867106c14..58b130ae6322 100644 --- a/drivers/gpu/drm/i915/intel_lrc.c +++ b/drivers/gpu/drm/i915/intel_lrc.c @@ -1177,7 +1177,8 @@ static int __context_pin(struct i915_gem_context *ctx, struct i915_vma *vma) return i915_vma_pin(vma, 0, 0, flags); } -static u32 make_rpcs(struct drm_i915_private *dev_priv); +static u32 +make_rpcs(struct drm_i915_private *i915, struct intel_sseu *ctx_sseu); static void __execlists_update_reg_state(struct intel_engine_cs *engine, @@ -1192,7 +1193,8 @
[Intel-gfx] [PATCH 4/5] drm/i915: Expose RPCS (SSEU) configuration to userspace (Gen11 only)
From: Tvrtko Ursulin We want to allow userspace to reconfigure the subslice configuration on a per context basis. This is required for the functional requirement of shutting down non-VME enabled sub-slices on Gen11 parts. To do so, we expose a context parameter to allow adjustment of the RPCS register stored within the context image (and currently not accessible via LRI). If the context is adjusted before first use or whilst idle, the adjustment is for "free"; otherwise if the context is active we queue a request to do so (using the kernel context), following all other activity by that context, which is also marked as barrier for all following submission against the same context. Since the overhead of device re-configuration during context switching can be significant, especially in multi-context workloads, we limit this new uAPI to only support the Gen11 VME use case. In this use case either the device is fully enabled, and exactly one slice and half of the subslices are enabled. Example usage: struct drm_i915_gem_context_param_sseu sseu = { }; struct drm_i915_gem_context_param arg = { .param = I915_CONTEXT_PARAM_SSEU, .ctx_id = gem_context_create(fd), .size = sizeof(sseu), .value = to_user_pointer(&sseu) }; /* Query device defaults. */ gem_context_get_param(fd, &arg); /* Set VME configuration on a 1x6x8 part. */ sseu.slice_mask = 0x1; sseu.subslice_mask = 0xe0; gem_context_set_param(fd, &arg); v2: Fix offset of CTX_R_PWR_CLK_STATE in intel_lr_context_set_sseu() (Lionel) v3: Add ability to program this per engine (Chris) v4: Move most get_sseu() into i915_gem_context.c (Lionel) v5: Validate sseu configuration against the device's capabilities (Lionel) v6: Change context powergating settings through MI_SDM on kernel context (Chris) v7: Synchronize the requests following a powergating setting change using a global dependency (Chris) Iterate timelines through dev_priv.gt.active_rings (Tvrtko) Disable RPCS configuration setting for non capable users (Lionel/Tvrtko) v8: s/union intel_sseu/struct intel_sseu/ (Lionel) s/dev_priv/i915/ (Tvrtko) Change uapi class/instance fields to u16 (Tvrtko) Bump mask fields to 64bits (Lionel) Don't return EPERM when dynamic sseu is disabled (Tvrtko) v9: Import context image into kernel context's ppgtt only when reconfiguring powergated slice/subslices (Chris) Use aliasing ppgtt when needed (Michel) Tvrtko Ursulin: v10: * Update for upstream changes. * Request submit needs a RPM reference. * Reject on !FULL_PPGTT for simplicity. * Pull out get/set param to helpers for readability and less indent. * Use i915_request_await_dma_fence in add_global_barrier to skip waits on the same timeline and avoid GEM_BUG_ON. * No need to explicitly assign a NULL pointer to engine in legacy mode. * No need to move gen8_make_rpcs up. * Factored out global barrier as prep patch. * Allow to only CAP_SYS_ADMIN if !Gen11. v11: * Remove engine vfunc in favour of local helper. (Chris Wilson) * Stop retiring requests before updates since it is not needed (Chris Wilson) * Implement direct CPU update path for idle contexts. (Chris Wilson) * Left side dependency needs only be on the same context timeline. (Chris Wilson) * It is sufficient to order the timeline. (Chris Wilson) * Reject !RCS configuration attempts with -ENODEV for now. v12: * Rebase for make_rpcs. v13: * Centralize SSEU normalization to make_rpcs. * Type width checking (uAPI <-> implementation). * Gen11 restrictions uAPI checks. * Gen11 subslice count differences handling. Chris Wilson: * args->size handling fixes. * Update context image from GGTT. * Postpone context image update to pinning. * Use i915_gem_active_raw instead of last_request_on_engine. v14: * Add activity tracker on intel_context to fix the lifetime issues and simplify the code. (Chris Wilson) v15: * Fix context pin leak if no space in ring by simplifying the context pinning sequence. v16: * Rebase for context get/set param locking changes. * Just -ENODEV on !Gen11. (Joonas) v17: * Fix one Gen11 subslice enablement rule. * Handle error from i915_sw_fence_await_sw_fence_gfp. (Chris Wilson) v18: * Update commit message. (Joonas) * Restrict uAPI to VME use case. (Joonas) v19: * Rebase. v20: * Rebase for ce->active_tracker. v21: * Rebase for IS_GEN changes. v22: * Reserve uAPI for flags straight away. (Chris Wilson) v23: * Rebase for RUNTIME_INFO. v24: * Added some headline docs for the uapi usage. (Joonas/Chris) v25: * Renamed class/instance to engine_class/engine_instance to avoid clash with C++ keyword. (Tony Ye) v26: * Rebased for runtime pm api changes. v27: * Rebased for intel_context_init. * Wrap commit msg to 75. v28: (Chris Wilson) * Use i915_gem_ggtt. * Use i915_request_await_dma_fence to
[Intel-gfx] [PATCH 2/5] drm/i915/perf: lock powergating configuration to default when active
From: Lionel Landwerlin If some of the contexts submitting workloads to the GPU have been configured to shutdown slices/subslices, we might loose the NOA configurations written in the NOA muxes. One possible solution to this problem is to reprogram the NOA muxes when we switch to a new context. We initially tried this in the workaround batchbuffer but some concerns where raised about the cost of reprogramming at every context switch. This solution is also not without consequences from the userspace point of view. Reprogramming of the muxes can only happen once the powergating configuration has changed (which happens after context switch). This means for a window of time during the recording, counters recorded by the OA unit might be invalid. This requires userspace dealing with OA reports to discard the invalid values. Minimizing the reprogramming could be implemented by tracking of the last programmed configuration somewhere in GGTT and use MI_PREDICATE to discard some of the programming commands, but the command streamer would still have to parse all the MI_LRI instructions in the workaround batchbuffer. Another solution, which this change implements, is to simply disregard the user requested configuration for the period of time when i915/perf is active. On most platforms there are no issues with this apart from a performance penality for some media workloads that benefit from running on a partially powergated GPU. We already prevent RC6 from affecting the programming so it doesn't sound completely unreasonable to hold on powergating for the same reason. On Icelake however there would a functional problem if the slices not- containing the VME block were left enabled with a running media workload which explicitly disabled them. To avoid a GPU hang in this case, on Icelake we lock the enablement to only slices which contain VME blocks. Downside is that it means degraded GPU performance when OA is active but there is no known alternative solution for this. v2: Leave RPCS programming in intel_lrc.c (Lionel) v3: Update for s/union intel_sseu/struct intel_sseu/ (Lionel) More to_intel_context() (Tvrtko) s/dev_priv/i915/ (Tvrtko) Tvrtko Ursulin: v4: * Rebase for make_rpcs changes. v5: * Apply OA restriction from make_rpcs directly. v6: * Rebase for context image setup changes. v7: * Move stream assignment before metric enable. v8-9: * Rebase. v10: * Squashed with ICL support patch. Bspec: 21140 Co-developed-by: Tvrtko Ursulin Signed-off-by: Lionel Landwerlin Signed-off-by: Tvrtko Ursulin Cc: Lionel Landwerlin Reviewed-by: Chris Wilson # v9 Reviewed-by: Joonas Lahtinen --- drivers/gpu/drm/i915/i915_perf.c | 13 ++--- drivers/gpu/drm/i915/intel_lrc.c | 46 drivers/gpu/drm/i915/intel_lrc.h | 2 ++ 3 files changed, 46 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c index 727118301f91..9ebf99f3d8d3 100644 --- a/drivers/gpu/drm/i915/i915_perf.c +++ b/drivers/gpu/drm/i915/i915_perf.c @@ -1677,6 +1677,11 @@ static void gen8_update_reg_state_unlocked(struct i915_gem_context *ctx, CTX_REG(reg_state, state_offset, flex_regs[i], value); } + + CTX_REG(reg_state, CTX_R_PWR_CLK_STATE, GEN8_R_PWR_CLK_STATE, + gen8_make_rpcs(dev_priv, + &to_intel_context(ctx, +dev_priv->engine[RCS])->sseu)); } /* @@ -2098,21 +2103,21 @@ static int i915_oa_stream_init(struct i915_perf_stream *stream, if (ret) goto err_lock; + stream->ops = &i915_oa_stream_ops; + dev_priv->perf.oa.exclusive_stream = stream; + ret = dev_priv->perf.oa.ops.enable_metric_set(stream); if (ret) { DRM_DEBUG("Unable to enable metric set\n"); goto err_enable; } - stream->ops = &i915_oa_stream_ops; - - dev_priv->perf.oa.exclusive_stream = stream; - mutex_unlock(&dev_priv->drm.struct_mutex); return 0; err_enable: + dev_priv->perf.oa.exclusive_stream = NULL; dev_priv->perf.oa.ops.disable_metric_set(dev_priv); mutex_unlock(&dev_priv->drm.struct_mutex); diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c index 58b130ae6322..0e5892ad62bb 100644 --- a/drivers/gpu/drm/i915/intel_lrc.c +++ b/drivers/gpu/drm/i915/intel_lrc.c @@ -1177,9 +1177,6 @@ static int __context_pin(struct i915_gem_context *ctx, struct i915_vma *vma) return i915_vma_pin(vma, 0, 0, flags); } -static u32 -make_rpcs(struct drm_i915_private *i915, struct intel_sseu *ctx_sseu); - static void __execlists_update_reg_state(struct intel_engine_cs *engine, struct intel_context *ce) @@ -1193,8 +1190,8 @@ __execlists_update_reg_state(struct intel_engine_cs *engine, /* RPCS */ if (engine->class == RENDER_CLASS) -
[Intel-gfx] [PATCH 5/5] drm/i915/selftests: Context SSEU reconfiguration tests
From: Tvrtko Ursulin Exercise the context image reconfiguration logic for idle and busy contexts, with the resets thrown into the mix as well. Free from the uAPI restrictions this test runs on all Gen9+ platforms with slice power gating. v2: * Rename some helpers for clarity. * Include subtest names in error logs. * Remove unnecessary function export. v3: * Rebase for RUNTIME_INFO. v4: * Fix incomplete unexport from v2. (Chris Wilson) v5: * Rebased for runtime pm api changes. v6: * Rebased for i915_reset.c. v7: * Tidy checkpatch warnings. * Consolidate error checking and logging a bit. * Skip idle test phase if something failed before it. v8: (Chris Wilson) * Fix i915_request_wait error handling. * No need to PIN_HIGH the VMA. * Remove pointless GEM_BUG_ON before pointer dereference. v9: * Avoid rq leak if rpcs query fails. (Chris) Signed-off-by: Tvrtko Ursulin Reviewed-by: Chris Wilson Reviewed-by: Joonas Lahtinen # v6 --- drivers/gpu/drm/i915/i915_gem_context.c | 31 +- .../gpu/drm/i915/selftests/i915_gem_context.c | 467 ++ 2 files changed, 488 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c index 6191cb5bfc8d..9a639d09c0f3 100644 --- a/drivers/gpu/drm/i915/i915_gem_context.c +++ b/drivers/gpu/drm/i915/i915_gem_context.c @@ -1047,23 +1047,19 @@ gen8_modify_rpcs_gpu(struct intel_context *ce, } static int -i915_gem_context_reconfigure_sseu(struct i915_gem_context *ctx, - struct intel_engine_cs *engine, - struct intel_sseu sseu) +__i915_gem_context_reconfigure_sseu(struct i915_gem_context *ctx, + struct intel_engine_cs *engine, + struct intel_sseu sseu) { struct intel_context *ce = to_intel_context(ctx, engine); - int ret; + int ret = 0; GEM_BUG_ON(INTEL_GEN(ctx->i915) < 8); GEM_BUG_ON(engine->id != RCS); - ret = mutex_lock_interruptible(&ctx->i915->drm.struct_mutex); - if (ret) - return ret; - /* Nothing to do if unmodified. */ if (!memcmp(&ce->sseu, &sseu, sizeof(sseu))) - goto out; + return 0; /* * If context is not idle we have to submit an ordered request to modify @@ -1076,7 +1072,22 @@ i915_gem_context_reconfigure_sseu(struct i915_gem_context *ctx, if (!ret) ce->sseu = sseu; -out: + return ret; +} + +static int +i915_gem_context_reconfigure_sseu(struct i915_gem_context *ctx, + struct intel_engine_cs *engine, + struct intel_sseu sseu) +{ + int ret; + + ret = mutex_lock_interruptible(&ctx->i915->drm.struct_mutex); + if (ret) + return ret; + + ret = __i915_gem_context_reconfigure_sseu(ctx, engine, sseu); + mutex_unlock(&ctx->i915->drm.struct_mutex); return ret; diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_context.c b/drivers/gpu/drm/i915/selftests/i915_gem_context.c index e2c1f0bc2abe..d00d0bb07784 100644 --- a/drivers/gpu/drm/i915/selftests/i915_gem_context.c +++ b/drivers/gpu/drm/i915/selftests/i915_gem_context.c @@ -24,10 +24,13 @@ #include +#include "../i915_reset.h" #include "../i915_selftest.h" #include "i915_random.h" #include "igt_flush_test.h" #include "igt_live_test.h" +#include "igt_reset.h" +#include "igt_spinner.h" #include "mock_drm.h" #include "mock_gem_device.h" @@ -576,6 +579,469 @@ static int igt_ctx_exec(void *arg) return err; } +static struct i915_vma *rpcs_query_batch(struct i915_vma *vma) +{ + struct drm_i915_gem_object *obj; + u32 *cmd; + int err; + + if (INTEL_GEN(vma->vm->i915) < 8) + return ERR_PTR(-EINVAL); + + obj = i915_gem_object_create_internal(vma->vm->i915, PAGE_SIZE); + if (IS_ERR(obj)) + return ERR_CAST(obj); + + cmd = i915_gem_object_pin_map(obj, I915_MAP_WB); + if (IS_ERR(cmd)) { + err = PTR_ERR(cmd); + goto err; + } + + *cmd++ = MI_STORE_REGISTER_MEM_GEN8; + *cmd++ = i915_mmio_reg_offset(GEN8_R_PWR_CLK_STATE); + *cmd++ = lower_32_bits(vma->node.start); + *cmd++ = upper_32_bits(vma->node.start); + *cmd = MI_BATCH_BUFFER_END; + + i915_gem_object_unpin_map(obj); + + err = i915_gem_object_set_to_gtt_domain(obj, false); + if (err) + goto err; + + vma = i915_vma_instance(obj, vma->vm, NULL); + if (IS_ERR(vma)) { + err = PTR_ERR(vma); + goto err; + } + + err = i915_vma_pin(vma, 0, 0, PIN_USER); + if (err) + goto err; + + return vma; + +err: + i915_gem_object_put(obj); + return ERR_PTR(err); +} + +static int +emit_rpcs_query(struct drm_i915
[Intel-gfx] [PATCH 3/5] drm/i915: Add timeline barrier support
From: Tvrtko Ursulin Timeline barrier allows serialization between different timelines. After calling i915_timeline_set_barrier with a request, all following submissions on this timeline will be set up as depending on this request, or barrier. Once the barrier has been completed it automatically gets cleared and things continue as normal. This facility will be used by the upcoming context SSEU code. v2: * Assert barrier has been retired on timeline_fini. (Chris Wilson) * Fix mock_timeline. v3: * Improved comment language. (Chris Wilson) Signed-off-by: Tvrtko Ursulin Suggested-by: Chris Wilson Cc: Chris Wilson Reviewed-by: Chris Wilson --- drivers/gpu/drm/i915/i915_request.c | 13 + drivers/gpu/drm/i915/i915_timeline.c | 3 +++ drivers/gpu/drm/i915/i915_timeline.h | 27 +++ .../gpu/drm/i915/selftests/mock_timeline.c| 2 ++ 4 files changed, 45 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c index f4241a17e2ad..621356f048df 100644 --- a/drivers/gpu/drm/i915/i915_request.c +++ b/drivers/gpu/drm/i915/i915_request.c @@ -517,6 +517,15 @@ i915_request_alloc_slow(struct intel_context *ce) return kmem_cache_alloc(ce->gem_context->i915->requests, GFP_KERNEL); } +static int add_timeline_barrier(struct i915_request *rq) +{ + struct i915_request *barrier = + i915_gem_active_raw(&rq->timeline->barrier, + &rq->i915->drm.struct_mutex); + + return barrier ? i915_request_await_dma_fence(rq, &barrier->fence) : 0; +} + /** * i915_request_alloc - allocate a request structure * @@ -660,6 +669,10 @@ i915_request_alloc(struct intel_engine_cs *engine, struct i915_gem_context *ctx) */ rq->head = rq->ring->emit; + ret = add_timeline_barrier(rq); + if (ret) + goto err_unwind; + ret = engine->request_alloc(rq); if (ret) goto err_unwind; diff --git a/drivers/gpu/drm/i915/i915_timeline.c b/drivers/gpu/drm/i915/i915_timeline.c index 4667cc08c416..5a87c5bd5154 100644 --- a/drivers/gpu/drm/i915/i915_timeline.c +++ b/drivers/gpu/drm/i915/i915_timeline.c @@ -37,6 +37,8 @@ void i915_timeline_init(struct drm_i915_private *i915, INIT_LIST_HEAD(&timeline->requests); i915_syncmap_init(&timeline->sync); + + init_request_active(&timeline->barrier, NULL); } /** @@ -69,6 +71,7 @@ void i915_timelines_park(struct drm_i915_private *i915) void i915_timeline_fini(struct i915_timeline *timeline) { GEM_BUG_ON(!list_empty(&timeline->requests)); + GEM_BUG_ON(i915_gem_active_isset(&timeline->barrier)); i915_syncmap_free(&timeline->sync); diff --git a/drivers/gpu/drm/i915/i915_timeline.h b/drivers/gpu/drm/i915/i915_timeline.h index 38c1e15e927a..af6c05333d76 100644 --- a/drivers/gpu/drm/i915/i915_timeline.h +++ b/drivers/gpu/drm/i915/i915_timeline.h @@ -64,6 +64,16 @@ struct i915_timeline { */ struct i915_syncmap *sync; + /** +* Barrier provides the ability to serialize ordering between different +* timelines. +* +* Users can call i915_timeline_set_barrier which will make all +* subsequent submissions to this timeline be executed only after the +* barrier has been completed. +*/ + struct i915_gem_active barrier; + struct list_head link; const char *name; @@ -136,4 +146,21 @@ static inline bool i915_timeline_sync_is_later(struct i915_timeline *tl, void i915_timelines_park(struct drm_i915_private *i915); +/** + * i915_timeline_set_barrier - orders submission between different timelines + * @timeline: timeline to set the barrier on + * @rq: request after which new submissions can proceed + * + * Sets the passed in request as the serialization point for all subsequent + * submissions on @timeline. Subsequent requests will not be submitted to GPU + * until the barrier has been completed. + */ +static inline void +i915_timeline_set_barrier(struct i915_timeline *timeline, + struct i915_request *rq) +{ + GEM_BUG_ON(timeline->fence_context == rq->timeline->fence_context); + i915_gem_active_set(&timeline->barrier, rq); +} + #endif diff --git a/drivers/gpu/drm/i915/selftests/mock_timeline.c b/drivers/gpu/drm/i915/selftests/mock_timeline.c index dcf3b16f5a07..a718b64c988e 100644 --- a/drivers/gpu/drm/i915/selftests/mock_timeline.c +++ b/drivers/gpu/drm/i915/selftests/mock_timeline.c @@ -19,6 +19,8 @@ void mock_timeline_init(struct i915_timeline *timeline, u64 context) i915_syncmap_init(&timeline->sync); + init_request_active(&timeline->barrier, NULL); + INIT_LIST_HEAD(&timeline->link); } -- 2.19.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 0/5] Per context dynamic (sub)slice power-gating
From: Tvrtko Ursulin Changes since last version: * One patch got to drm-tip early so removed from this series. * Two small cleanups in the area of request emission. Lionel Landwerlin (2): drm/i915: Record the sseu configuration per-context & engine drm/i915/perf: lock powergating configuration to default when active Tvrtko Ursulin (3): drm/i915: Add timeline barrier support drm/i915: Expose RPCS (SSEU) configuration to userspace (Gen11 only) drm/i915/selftests: Context SSEU reconfiguration tests drivers/gpu/drm/i915/i915_drv.h | 14 + drivers/gpu/drm/i915/i915_gem_context.c | 354 - drivers/gpu/drm/i915/i915_gem_context.h | 10 + drivers/gpu/drm/i915/i915_perf.c | 13 +- drivers/gpu/drm/i915/i915_request.c | 13 + drivers/gpu/drm/i915/i915_request.h | 10 + drivers/gpu/drm/i915/i915_timeline.c | 3 + drivers/gpu/drm/i915/i915_timeline.h | 27 + drivers/gpu/drm/i915/intel_lrc.c | 61 ++- drivers/gpu/drm/i915/intel_lrc.h | 2 + .../gpu/drm/i915/selftests/i915_gem_context.c | 467 ++ .../gpu/drm/i915/selftests/mock_timeline.c| 2 + include/uapi/drm/i915_drm.h | 64 +++ 13 files changed, 1017 insertions(+), 23 deletions(-) -- 2.19.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 26/26] drm/: Don't set FBINFO_(FLAG_)DEFAULT
On Thu, Jan 24, 2019 at 05:58:31PM +0100, Daniel Vetter wrote: > It's 0. > > Signed-off-by: Daniel Vetter > Cc: Inki Dae > Cc: Joonyoung Shim > Cc: Seung-Woo Kim > Cc: Kyungmin Park > Cc: Kukjin Kim > Cc: Krzysztof Kozlowski > Cc: Patrik Jakobsson > Cc: Ben Skeggs > Cc: Sandy Huang > Cc: "Heiko Stübner" > Cc: Thierry Reding > Cc: Jonathan Hunter > Cc: Hans de Goede > Cc: Greg Kroah-Hartman > Cc: Daniel Vetter > Cc: Bartlomiej Zolnierkiewicz > Cc: Alexander Kapshuk > Cc: linux-arm-ker...@lists.infradead.org > Cc: linux-samsung-...@vger.kernel.org > Cc: nouv...@lists.freedesktop.org > Cc: linux-rockc...@lists.infradead.org > Cc: linux-te...@vger.kernel.org > --- > drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 1 - > drivers/gpu/drm/gma500/framebuffer.c | 1 - > drivers/gpu/drm/nouveau/nouveau_fbcon.c | 4 ++-- > drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c | 1 - > drivers/gpu/drm/tegra/fb.c| 1 - > 5 files changed, 2 insertions(+), 6 deletions(-) Acked-by: Thierry Reding signature.asc Description: PGP signature ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 22/26] drm/qxl: Use drm_fb_helper_fill_info
On Thu, Jan 24, 2019 at 05:58:27PM +0100, Daniel Vetter wrote: > Another driver that didn't set fbinfo->fix.id before. > > Signed-off-by: Daniel Vetter > Cc: Thierry Reding > Cc: Jonathan Hunter > Cc: linux-te...@vger.kernel.org > --- > drivers/gpu/drm/tegra/fb.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) In the subject: drm/qxl -> drm/tegra, with that: Acked-by: Thierry Reding signature.asc Description: PGP signature ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 01/26] drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install
On Thu, 24 Jan 2019 at 16:58, Daniel Vetter wrote: > > If a non-legacy driver calls these it's valid to assume there is > interrupt support. The flag is really only needed for legacy drivers. ... legacy drivers which issue the IRQ via the DRM_IOCTL_CONTROL legacy IOCTL. At a later stage, we might as well add LEGACY to the name: DRIVER_LEGACY_HAVE_IRQ? > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 2 +- > drivers/gpu/drm/arm/hdlcd_drv.c | 2 +- > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 2 +- > drivers/gpu/drm/drm_irq.c| 6 -- > drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c| 2 +- > drivers/gpu/drm/gma500/psb_drv.c | 2 +- > drivers/gpu/drm/i915/i915_drv.c | 2 +- > drivers/gpu/drm/meson/meson_drv.c| 2 +- > drivers/gpu/drm/msm/msm_drv.c| 3 +-- > drivers/gpu/drm/mxsfb/mxsfb_drv.c| 3 +-- > drivers/gpu/drm/qxl/qxl_drv.c| 2 +- > drivers/gpu/drm/radeon/radeon_drv.c | 2 +- > drivers/gpu/drm/shmobile/shmob_drm_drv.c | 2 +- > drivers/gpu/drm/tilcdc/tilcdc_drv.c | 2 +- > drivers/gpu/drm/vc4/vc4_drv.c| 1 - > drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 2 +- > drivers/staging/vboxvideo/vbox_drv.c | 2 +- Local grep shows one more non-legacy entry in drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c With that file addressed and trivial comment additions, patches: 1, 2, 3 and 26 are Reviewed-by: Emil Velikov HTH Emil ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH] drm/i915: Don't use the second dbuf slice on icl
On Mon, Jan 21, 2019 at 05:31:43PM +0200, Ville Syrjala wrote: > From: Ville Syrjälä > > The code managing the dbuf slices is borked and needs some > real work to fix. In the meantime let's just stop using the > second slice. > > Signed-off-by: Ville Syrjälä Reviewed-by: Imre Deak > --- > drivers/gpu/drm/i915/intel_pm.c | 10 -- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c > index 8b63afa3a221..1e41c899ffe2 100644 > --- a/drivers/gpu/drm/i915/intel_pm.c > +++ b/drivers/gpu/drm/i915/intel_pm.c > @@ -3618,7 +3618,8 @@ static u8 intel_enabled_dbuf_slices_num(struct > drm_i915_private *dev_priv) > enabled_slices = 1; > > /* Gen prior to GEN11 have only one DBuf slice */ > - if (INTEL_GEN(dev_priv) < 11) > + /* FIXME dbuf slice code is broken: see intel_get_ddb_size() */ > + if (1 || INTEL_GEN(dev_priv) < 11) > return enabled_slices; > > if (I915_READ(DBUF_CTL_S2) & DBUF_POWER_STATE) > @@ -3827,8 +3828,13 @@ static u16 intel_get_ddb_size(struct drm_i915_private > *dev_priv, > > /* >* 12GB/s is maximum BW supported by single DBuf slice. > + * > + * FIXME dbuf slice code is broken: > + * - must wait for planes to stop using the slice before powering it off > + * - plane straddling both slices is illegal in multi-pipe scenarios > + * - should validate we stay within the hw bandwidth limits >*/ > - if (num_active > 1 || total_data_bw >= GBps(12)) { > + if (0 && (num_active > 1 || total_data_bw >= GBps(12))) { > ddb->enabled_slices = 2; > } else { > ddb->enabled_slices = 1; > -- > 2.19.2 > > ___ > 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
Re: [Intel-gfx] [PATCH] drm/i915: Don't use the second dbuf slice on icl
On Tue, Jan 22, 2019 at 02:49:13PM +0530, Mahesh Kumar wrote: > Hi, > > > On Mon, Jan 21, 2019 at 9:01 PM Ville Syrjala > wrote: > > > > From: Ville Syrjälä > > > > The code managing the dbuf slices is borked and needs some > > real work to fix. In the meantime let's just stop using the > > second slice. > > > > Signed-off-by: Ville Syrjälä > > --- > > drivers/gpu/drm/i915/intel_pm.c | 10 -- > > 1 file changed, 8 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/intel_pm.c > b/drivers/gpu/drm/i915/intel_pm.c > > index 8b63afa3a221..1e41c899ffe2 100644 > > --- a/drivers/gpu/drm/i915/intel_pm.c > > +++ b/drivers/gpu/drm/i915/intel_pm.c > > @@ -3618,7 +3618,8 @@ static u8 > intel_enabled_dbuf_slices_num(struct drm_i915_private *dev_priv) > > enabled_slices = 1; > > > > /* Gen prior to GEN11 have only one DBuf slice */ > > - if (INTEL_GEN(dev_priv) < 11) > > + /* FIXME dbuf slice code is broken: see intel_get_ddb_size() */ > > + if (1 || INTEL_GEN(dev_priv) < 11) > > return enabled_slices; > > IMHO we may not need this, It's easier to pretend that we have only a single slice. Not sure for instance if the lack of the above would lead to state check errors (due to other problems in the dbuf silce implementation). > If we return from above we'll never disable > second slice in case it's enabled by bios. We'll disable whenever we need to, that is during suspend/driver unload. We can ignore the rest of the cases I think. > Anyhow code change in intel_get_ddb_size will take care of enabling > only one slice. > > > > > if (I915_READ(DBUF_CTL_S2) & DBUF_POWER_STATE) > > @@ -3827,8 +3828,13 @@ static u16 intel_get_ddb_size(struct > drm_i915_private *dev_priv, > > > > /* > > * 12GB/s is maximum BW supported by single DBuf slice. > > +* > > +* FIXME dbuf slice code is broken: > > +* - must wait for planes to stop using the slice before > powering it off > > AFAIR we were already doing it and disabling slice only after > update_crtcs, and skl_update_crtc code is taking care of waiting for > vblank in case it's required. > > > +* - plane straddling both slices is illegal in > multi-pipe scenarios > > This is something new :) > > although this change introduce a major limitation with number and size > of planes we can display, yet > As code is broken and mentioned conditions need to be taken care of, > This change should be ok until proper fix. > > ~Mahesh > > > +* - should validate we stay within the hw bandwidth limits > > */ > > - if (num_active > 1 || total_data_bw >= GBps(12)) { > > + if (0 && (num_active > 1 || total_data_bw >= GBps(12))) { > > ddb->enabled_slices = 2; > > } else { > > ddb->enabled_slices = 1; > > -- > > 2.19.2 > > > > ___ > > 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 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 26/26] drm/: Don't set FBINFO_(FLAG_)DEFAULT
On Thu, 24 Jan 2019 at 17:00, Daniel Vetter wrote: > > It's 0. > I'd add a bit more information here. Feel free to reuse as much/little of the following: Both macros evaluate to 0. At the same time flag is already set to zero since the struct is kzalloc'd in framebuffer_alloc(). As called by drm_fb_helper_alloc_fbi() in the DRM drivers. -Emil ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 03/26] drm/irq: Ditch DRIVER_IRQ_SHARED
On Thu, 24 Jan 2019 at 16:58, Daniel Vetter wrote: > > This is only used by drm_irq_install(), which is an optional helper. > And the right choice is to set it for all pci devices, and not for > everything else. > Can you please add some information (or reference) why it's the right choice? Thanks Emil ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 27/33] drm/i915: Replace global breadcrumbs with per-context interrupt tracking
Quoting Chris Wilson (2019-01-25 14:26:49) > Quoting Tvrtko Ursulin (2019-01-25 13:54:05) > > > > On 25/01/2019 02:29, Chris Wilson wrote: > > > + > > > + requests[n] = i915_request_get(rq); > > > + i915_request_add(rq); > > > + > > > + mutex_unlock(BKL); > > > + > > > + if (err >= 0) > > > + err = i915_sw_fence_await_dma_fence(wait, > > > + > > > &rq->fence, > > > + 0, > > > + > > > GFP_KERNEL); > > > > If above is true why this can't simply be i915_request_enable_breadcrumbs? > > I was trying to test breadcrumbs at a high level without 'cheating'. > > For i915_request_enable_breadcrumbs, I keep thinking the test should be > asking if the engine then has it on its signaling list, but that feels > like a circular argument, directly following the implementation itself > > > > + if (err < 0) { > > > > else if? > > Now where would I be able to copy'n'paste that from? ;) Actually, no. If it is separate, I'll give you a newline instead. -Chris ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH] drm/i915/icl: Add TypeC ports only if VBT is present
We can't safely probe Type C ports, whether they are a legacy or a USB/Thunderbolt DP Alternate Type C port. This would require performing the TypeC connect sequence - as described by the specification - but that may have unwanted side-effects. These side-effects include at least - without completeness - timeouts during AUX power well enabling and subsequent PLL enabling errors. To safely identify these ports we really need VBT, which has the proper flag for this (ddi_vbt_port_info::supports_typec_usb, supports_tbt). Based on the above disable Type C ports if we can't load VBT for some reason. Cc: Jani Nikula Cc: Paulo Zanoni Cc: Jose Roberto de Souza Cc: Ville Syrjälä Cc: Rodrigo Vivi Signed-off-by: Imre Deak --- drivers/gpu/drm/i915/intel_bios.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c index 561a4f9f044c..270e7f0ad5cd 100644 --- a/drivers/gpu/drm/i915/intel_bios.c +++ b/drivers/gpu/drm/i915/intel_bios.c @@ -1662,10 +1662,12 @@ init_vbt_missing_defaults(struct drm_i915_private *dev_priv) for (port = PORT_A; port < I915_MAX_PORTS; port++) { struct ddi_vbt_port_info *info = &dev_priv->vbt.ddi_port_info[port]; + bool is_tc_port = intel_port_is_tc(dev_priv, port); - info->supports_dvi = (port != PORT_A && port != PORT_E); + info->supports_dvi = (port != PORT_A && port != PORT_E && + !is_tc_port); info->supports_hdmi = info->supports_dvi; - info->supports_dp = (port != PORT_E); + info->supports_dp = (port != PORT_E && !is_tc_port); } } -- 2.13.2 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Stop tracking MRU activity on VMA
== Series Details == Series: drm/i915: Stop tracking MRU activity on VMA URL : https://patchwork.freedesktop.org/series/55731/ State : success == Summary == CI Bug Log - changes from CI_DRM_5483 -> Patchwork_12039 Summary --- **SUCCESS** No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/55731/revisions/1/mbox/ Known issues Here are the changes found in Patchwork_12039 that come from known issues: ### IGT changes ### Issues hit * igt@kms_flip@basic-flip-vs-modeset: - fi-skl-6700hq: PASS -> DMESG-WARN [fdo#105998] * igt@prime_vgem@basic-fence-flip: - fi-ilk-650: PASS -> FAIL [fdo#104008] Possible fixes * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b: - fi-blb-e6850: INCOMPLETE [fdo#107718] -> PASS * igt@pm_rpm@basic-pci-d3-state: - fi-byt-j1900: {SKIP} [fdo#109271] -> PASS - fi-bsw-n3050: {SKIP} [fdo#109271] -> PASS * igt@pm_rpm@basic-rte: - fi-byt-j1900: FAIL [fdo#108800] -> PASS - fi-bsw-n3050: FAIL [fdo#108800] -> PASS * igt@pm_rpm@module-reload: - fi-skl-6770hq: FAIL -> PASS * igt@prime_vgem@basic-fence-flip: - fi-gdg-551: FAIL [fdo#103182] -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182 [fdo#104008]: https://bugs.freedesktop.org/show_bug.cgi?id=104008 [fdo#105998]: https://bugs.freedesktop.org/show_bug.cgi?id=105998 [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718 [fdo#108800]: https://bugs.freedesktop.org/show_bug.cgi?id=108800 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 Participating hosts (43 -> 39) -- Additional (1): fi-pnv-d510 Missing(5): fi-kbl-soraka fi-ilk-m540 fi-bsw-cyan fi-icl-u2 fi-byt-clapper Build changes - * Linux: CI_DRM_5483 -> Patchwork_12039 CI_DRM_5483: 39cde7a859167467e9c4446b70b08a42b5e3345e @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12039: dcfcc9eab96656001a0cf108b6e6ad2b42985ef7 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == dcfcc9eab966 drm/i915: Stop tracking MRU activity on VMA == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12039/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 27/33] drm/i915: Replace global breadcrumbs with per-context interrupt tracking
Quoting Tvrtko Ursulin (2019-01-25 13:54:05) > > On 25/01/2019 02:29, Chris Wilson wrote: > > diff --git a/drivers/gpu/drm/i915/i915_request.c > > b/drivers/gpu/drm/i915/i915_request.c > > index 2171df2d3019..c09a6644a2ab 100644 > > --- a/drivers/gpu/drm/i915/i915_request.c > > +++ b/drivers/gpu/drm/i915/i915_request.c > > @@ -60,7 +60,7 @@ static bool i915_fence_signaled(struct dma_fence *fence) > > > > static bool i915_fence_enable_signaling(struct dma_fence *fence) > > { > > - return intel_engine_enable_signaling(to_request(fence), true); > > + return i915_request_enable_breadcrumb(to_request(fence)); > > enable_signaling would be better IMO, enable_breadcrumb sounds like it > could do with breadcrumb emission. And it would align with > i915_fence_enable_signaling. But isn't it to entirely do with our breadcrumbs... I'm going the other way, while the request/interrupt logic is called breadcrumbs, we want to link the dma-fence signaling back to breadcrumbs. I liked the new name :) > > /** > >* i915_request_started - check if the request has begun being executed > >* @rq: the request > > @@ -345,7 +369,23 @@ static inline bool i915_request_started(const struct > > i915_request *rq) > > return true; > > > > /* Remember: started but may have since been preempted! */ > > - return i915_seqno_passed(hwsp_seqno(rq), rq->fence.seqno - 1); > > + return __i915_request_has_started(rq); > > +} > > Is it worth having both i915_request_started and > __i915_request_has_started. AFAIU fence cannot be signaled unless the > seqno has advanced, so if __i915_request_has_started would be dropped > and the caller just use the former, I don't think there would be any > issues. Callers always check for completed before hand. I guess it saves > a redundant fence signaled check. I was trying to consolidate down on the fence->flags logic, and decided half the checks were redundant. I was also dipping my toe into the water to see how everyone reacted to a possible s/i915_request_completed/i915_request_has_completed/ s/i915_request_started/i915_request_has_started/ i915_request_is_running > > +static inline bool i915_request_is_running(const struct i915_request *rq) > > +{ > > + if (!i915_request_is_active(rq)) > > + return false; > > + > > + return __i915_request_has_started(rq); > > return i915_request_is_active(rq) && __i915_request_has_started(rq); > probably doesn't fit in 80chars to be that attractive? It keeps the pattern with the other status checks (started, completed, is_running) though! > > -static unsigned int __intel_breadcrumbs_wakeup(struct intel_breadcrumbs *b) > > +static void irq_enable(struct intel_engine_cs *engine) > > +{ > > + if (!engine->irq_enable) > > + return; > > + > > + /* Caller disables interrupts */ > > GEM_BUG_ON(!irqs_disabled); ? Nah, I thought I had removed it before, but apparently there was more than one check here. It doesn't matter if we set the IMR while interrupts are disabled, we get a hang report. We can't turn off interrupts without parking, and we can't park without interrupts. That's probably the best point to say "oi!" > > + /* > > + * We may race with direct invocation of > > + * dma_fence_signal(), e.g. i915_request_retire(), > > + * in which case we can skip processing it ourselves. > > + */ > > + if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, > > + &rq->fence.flags)) > > + continue; > > Doesn't look this is worth it. We could then race a line below and still > end up with the already signaled rq on the local list. So would be > tempted to drop this for simplicity. It's virtually free since we already have the exclusive cacheline for rq->fence.flags. ~o~ (Except when it races and then we skip the atomic and list manipulation) There's some benefit in having little reminders that many paths lead to dma_fence_signal. > > diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c > > b/drivers/gpu/drm/i915/intel_ringbuffer.c > > index 3f9f0a5a0f44..d7c31ad1d0ea 100644 > > --- a/drivers/gpu/drm/i915/intel_ringbuffer.c > > +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c > > @@ -486,8 +486,8 @@ static u32 *gen7_xcs_emit_breadcrumb(struct > > i915_request *rq, u32 *cs) > > > > for (i = 0; i < GEN7_XCS_WA; i++) { > > *cs++ = MI_STORE_DWORD_INDEX; > > - *cs++ = I915_GEM_HWS_INDEX_ADDR; > > - *cs++ = rq->global_seqno; > > + *cs++ = I915_GEM_HWS_SEQNO_ADDR; > > + *cs++ = rq->fence.seqno; > > Why this, and in this patch? A slip of the fingers. Spotted that last night as well and forgot to move the chunk. > > + for (n = 0; n < count; n++) { > > + struct i915_gem_context *ctx = > > +
[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [CI,1/5] drm/i915: Make all GPU resets atomic
== Series Details == Series: series starting with [CI,1/5] drm/i915: Make all GPU resets atomic URL : https://patchwork.freedesktop.org/series/55730/ State : success == Summary == CI Bug Log - changes from CI_DRM_5483 -> Patchwork_12038 Summary --- **SUCCESS** No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/55730/revisions/1/mbox/ Known issues Here are the changes found in Patchwork_12038 that come from known issues: ### IGT changes ### Issues hit * igt@kms_chamelium@hdmi-hpd-fast: - fi-kbl-7500u: PASS -> FAIL [fdo#108767] Possible fixes * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b: - fi-byt-clapper: FAIL [fdo#103191] / [fdo#107362] -> PASS - fi-blb-e6850: INCOMPLETE [fdo#107718] -> PASS * igt@pm_rpm@basic-pci-d3-state: - fi-byt-j1900: {SKIP} [fdo#109271] -> PASS - fi-bsw-n3050: {SKIP} [fdo#109271] -> PASS * igt@pm_rpm@basic-rte: - fi-byt-j1900: FAIL [fdo#108800] -> PASS - fi-bsw-n3050: FAIL [fdo#108800] -> PASS * igt@pm_rpm@module-reload: - fi-skl-6770hq: FAIL -> PASS * igt@prime_vgem@basic-fence-flip: - fi-gdg-551: FAIL [fdo#103182] -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182 [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191 [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362 [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718 [fdo#108767]: https://bugs.freedesktop.org/show_bug.cgi?id=108767 [fdo#108800]: https://bugs.freedesktop.org/show_bug.cgi?id=108800 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 Participating hosts (43 -> 41) -- Additional (1): fi-pnv-d510 Missing(3): fi-kbl-soraka fi-ilk-m540 fi-bsw-cyan Build changes - * Linux: CI_DRM_5483 -> Patchwork_12038 CI_DRM_5483: 39cde7a859167467e9c4446b70b08a42b5e3345e @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12038: 3c15a67f2a13a2cc920168b68e4bda85c0fc938e @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 3c15a67f2a13 drm/i915: Issue engine resets onto idle engines 2dfcd913159b drm/i915/selftests: Trim struct_mutex duration for set-wedged selftest 839bf6ef05f4 drm/i915: Remove GPU reset dependence on struct_mutex ea6bc9ab4ea1 drm/i915/guc: Disable global reset 4273a708fc23 drm/i915: Make all GPU resets atomic == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12038/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 26/33] drm/i915: Remove the intel_engine_notify tracepoint
On 25/01/2019 02:29, Chris Wilson wrote: The global seqno is defunct and so we have no meaningful indicator of forward progress for an engine. You need to listen to the request signaling tracepoints instead. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/i915_irq.c | 2 -- drivers/gpu/drm/i915/i915_trace.h | 25 - 2 files changed, 27 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index 7e56611b3d60..bedac6c14928 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -1211,8 +1211,6 @@ static void notify_ring(struct intel_engine_cs *engine) wake_up_process(tsk); rcu_read_unlock(); - - trace_intel_engine_notify(engine, wait); } static void vlv_c0_read(struct drm_i915_private *dev_priv, diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h index 43da14f08dc0..eab313c3163c 100644 --- a/drivers/gpu/drm/i915/i915_trace.h +++ b/drivers/gpu/drm/i915/i915_trace.h @@ -752,31 +752,6 @@ trace_i915_request_out(struct i915_request *rq) #endif #endif -TRACE_EVENT(intel_engine_notify, - TP_PROTO(struct intel_engine_cs *engine, bool waiters), - TP_ARGS(engine, waiters), - - TP_STRUCT__entry( -__field(u32, dev) -__field(u16, class) -__field(u16, instance) -__field(u32, seqno) -__field(bool, waiters) -), - - TP_fast_assign( - __entry->dev = engine->i915->drm.primary->index; - __entry->class = engine->uabi_class; - __entry->instance = engine->instance; - __entry->seqno = intel_engine_get_seqno(engine); - __entry->waiters = waiters; - ), - - TP_printk("dev=%u, engine=%u:%u, seqno=%u, waiters=%u", - __entry->dev, __entry->class, __entry->instance, - __entry->seqno, __entry->waiters) -); - DEFINE_EVENT(i915_request, i915_request_retire, TP_PROTO(struct i915_request *rq), TP_ARGS(rq) Reviewed-by: Tvrtko Ursulin I think I checked that trace_dma_fence_singal will allow me to fix trace.pl.. I think I have. Regards, Tvrtko ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 07/38] drm/i915: Stop tracking MRU activity on VMA
On 25/01/2019 13:46, Chris Wilson wrote: Quoting Chris Wilson (2019-01-25 13:38:09) Quoting Tvrtko Ursulin (2019-01-25 10:46:19) On 22/01/2019 14:19, Chris Wilson wrote: Quoting Tvrtko Ursulin (2019-01-18 16:03:27) On 18/01/2019 14:00, Chris Wilson wrote: Our goal is to remove struct_mutex and replace it with fine grained locking. One of the thorny issues is our eviction logic for reclaiming space for an execbuffer (or GTT mmaping, among a few other examples). While eviction itself is easy to move under a per-VM mutex, performing the activity tracking is less agreeable. One solution is not to do any MRU tracking and do a simple coarse evaluation during eviction of active/inactive, with a loose temporal ordering of last insertion/evaluation. That keeps all the locking constrained to when we are manipulating the VM itself, neatly avoiding the tricky handling of possible recursive locking during execbuf and elsewhere. Note that discarding the MRU is unlikely to impact upon our efficiency to reclaim VM space (where we think a LRU model is best) as our current strategy is to use random idle replacement first before doing a search, and over time the use of softpinned 48b per-ppGTT is growing (thereby eliminating any need to perform any eviction searches, in theory at least). There is still no mention of list consolidation. "Note that discarding the MRU (currently implemented as a pair of lists, to avoid scanning the active list for a NONBLOCKING search)" Is that enough to make it clear? How about: "Note that discarding the MRU, which is implemented both by not doing list operations while tracking activity, and by replacing active/inactive list with a single bound list, is unlikely..." ? Plus I really want a changelog and that stale comment which talks about active/inactive *lists* updated. But there's active/inactive lists within the list... @@ -136,17 +136,15 @@ i915_gem_evict_something(struct i915_address_space *vm, trace_i915_gem_evict(vm, min_size, alignment, flags); /* -* The goal is to evict objects and amalgamate space in LRU order. -* The oldest idle objects reside on the inactive list, which is in -* retirement order. The next objects to retire are those in flight, -* on the active list, again in retirement order. +* The goal is to evict objects and amalgamate space in rough LRU order. +* Since both active and inactive objects reside on the same list, +* in a mix of creation and last scanned order, as we process the list +* we sort it into inactive/active, which keeps the active portion +* in a rough MRU order. * * The retirement sequence is thus: * 1. Inactive objects (already retired, random order) * 2. Active objects (will stall on unbinding, oldest scanned first) -* -* On each list, the oldest objects lie at the HEAD with the freshest -* object on the TAIL. */ Yep, I'm happy with that. Regards, Tvrtko ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Measure the required reserved size for request emission (rev2)
== Series Details == Series: drm/i915: Measure the required reserved size for request emission (rev2) URL : https://patchwork.freedesktop.org/series/55683/ State : success == Summary == CI Bug Log - changes from CI_DRM_5480_full -> Patchwork_12036_full Summary --- **SUCCESS** No regressions found. Known issues Here are the changes found in Patchwork_12036_full that come from known issues: ### IGT changes ### Issues hit * igt@kms_color@pipe-b-legacy-gamma: - shard-apl: PASS -> FAIL [fdo#104782] * igt@kms_cursor_crc@cursor-128x42-sliding: - shard-apl: PASS -> FAIL [fdo#103232] +1 * igt@kms_plane@plane-position-covered-pipe-c-planes: - shard-apl: PASS -> FAIL [fdo#103166] +1 - shard-glk: PASS -> FAIL [fdo#103166] * igt@kms_plane_alpha_blend@pipe-a-alpha-7efc: - shard-kbl: NOTRUN -> FAIL [fdo#108145] / [fdo#108590] * igt@kms_plane_alpha_blend@pipe-a-alpha-transparant-fb: - shard-apl: NOTRUN -> FAIL [fdo#108145] * igt@kms_plane_alpha_blend@pipe-c-alpha-7efc: - shard-apl: PASS -> FAIL [fdo#108145] Possible fixes * igt@gem_eio@in-flight-contexts-10ms: - shard-glk: FAIL [fdo#107799] -> PASS * igt@kms_cursor_crc@cursor-64x21-onscreen: - shard-glk: FAIL [fdo#103232] -> PASS * igt@kms_plane_multiple@atomic-pipe-c-tiling-y: - shard-glk: FAIL [fdo#103166] -> PASS - shard-apl: FAIL [fdo#103166] -> PASS +1 * igt@kms_rotation_crc@multiplane-rotation-cropping-top: - shard-apl: DMESG-FAIL [fdo#108950] -> PASS * igt@kms_setmode@basic: - shard-apl: FAIL [fdo#99912] -> PASS - shard-kbl: FAIL [fdo#99912] -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166 [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232 [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782 [fdo#107799]: https://bugs.freedesktop.org/show_bug.cgi?id=107799 [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#108590]: https://bugs.freedesktop.org/show_bug.cgi?id=108590 [fdo#108950]: https://bugs.freedesktop.org/show_bug.cgi?id=108950 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912 Participating hosts (7 -> 5) -- Missing(2): shard-skl shard-iclb Build changes - * Linux: CI_DRM_5480 -> Patchwork_12036 CI_DRM_5480: 5c33d663f891b8820a5b983e32dd4f3de0f03eda @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_12036: 2fb22e6faa1c5e505f7f869aed38fc61adb1f9cb @ 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_12036/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH] drm/i915: Stop tracking MRU activity on VMA
Our goal is to remove struct_mutex and replace it with fine grained locking. One of the thorny issues is our eviction logic for reclaiming space for an execbuffer (or GTT mmaping, among a few other examples). While eviction itself is easy to move under a per-VM mutex, performing the activity tracking is less agreeable. One solution is not to do any MRU tracking and do a simple coarse evaluation during eviction of active/inactive, with a loose temporal ordering of last insertion/evaluation. That keeps all the locking constrained to when we are manipulating the VM itself, neatly avoiding the tricky handling of possible recursive locking during execbuf and elsewhere. Note that discarding the MRU (currently implemented as a pair of lists, to avoid scanning the active list for a NONBLOCKING search) is unlikely to impact upon our efficiency to reclaim VM space (where we think a LRU model is best) as our current strategy is to use random idle replacement first before doing a search, and over time the use of softpinned 48b per-ppGTT is growing (thereby eliminating any need to perform any eviction searches, in theory at least) with the remaining users being found on much older devices (gen2-gen6). v2: Changelog and commentary rewritten to elaborate on the duality of a single list being both an inactive and active list. v3: Consolidate bool parameters into a single set of flags; don't comment on the duality of a single variable being a multiplicity of bits. Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin --- drivers/gpu/drm/i915/i915_gem.c | 10 +-- drivers/gpu/drm/i915/i915_gem_evict.c | 87 +++ drivers/gpu/drm/i915/i915_gem_gtt.c | 15 ++-- drivers/gpu/drm/i915/i915_gem_gtt.h | 26 +- drivers/gpu/drm/i915/i915_gem_shrinker.c | 8 +- drivers/gpu/drm/i915/i915_gem_stolen.c| 3 +- drivers/gpu/drm/i915/i915_gpu_error.c | 42 - drivers/gpu/drm/i915/i915_vma.c | 9 +- .../gpu/drm/i915/selftests/i915_gem_evict.c | 4 +- drivers/gpu/drm/i915/selftests/i915_gem_gtt.c | 2 +- 10 files changed, 95 insertions(+), 111 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index dcbe644869b3..12a0a80bc989 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -255,10 +255,7 @@ i915_gem_get_aperture_ioctl(struct drm_device *dev, void *data, pinned = ggtt->vm.reserved; mutex_lock(&dev->struct_mutex); - list_for_each_entry(vma, &ggtt->vm.active_list, vm_link) - if (i915_vma_is_pinned(vma)) - pinned += vma->node.size; - list_for_each_entry(vma, &ggtt->vm.inactive_list, vm_link) + list_for_each_entry(vma, &ggtt->vm.bound_list, vm_link) if (i915_vma_is_pinned(vma)) pinned += vma->node.size; mutex_unlock(&dev->struct_mutex); @@ -1541,13 +1538,10 @@ static void i915_gem_object_bump_inactive_ggtt(struct drm_i915_gem_object *obj) GEM_BUG_ON(!i915_gem_object_has_pinned_pages(obj)); for_each_ggtt_vma(vma, obj) { - if (i915_vma_is_active(vma)) - continue; - if (!drm_mm_node_allocated(&vma->node)) continue; - list_move_tail(&vma->vm_link, &vma->vm->inactive_list); + list_move_tail(&vma->vm_link, &vma->vm->bound_list); } i915 = to_i915(obj->base.dev); diff --git a/drivers/gpu/drm/i915/i915_gem_evict.c b/drivers/gpu/drm/i915/i915_gem_evict.c index f6855401f247..d76839670632 100644 --- a/drivers/gpu/drm/i915/i915_gem_evict.c +++ b/drivers/gpu/drm/i915/i915_gem_evict.c @@ -126,31 +126,25 @@ i915_gem_evict_something(struct i915_address_space *vm, struct drm_i915_private *dev_priv = vm->i915; struct drm_mm_scan scan; struct list_head eviction_list; - struct list_head *phases[] = { - &vm->inactive_list, - &vm->active_list, - NULL, - }, **phase; struct i915_vma *vma, *next; struct drm_mm_node *node; enum drm_mm_insert_mode mode; + struct i915_vma *active; int ret; lockdep_assert_held(&vm->i915->drm.struct_mutex); trace_i915_gem_evict(vm, min_size, alignment, flags); /* -* The goal is to evict objects and amalgamate space in LRU order. -* The oldest idle objects reside on the inactive list, which is in -* retirement order. The next objects to retire are those in flight, -* on the active list, again in retirement order. +* The goal is to evict objects and amalgamate space in rough LRU order. +* Since both active and inactive objects reside on the same list, +* in a mix of creation and last scanned order, as we process the list +* we sort it into inactive/active, which keeps the active portion +* i
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [CI,1/5] drm/i915: Make all GPU resets atomic
== Series Details == Series: series starting with [CI,1/5] drm/i915: Make all GPU resets atomic URL : https://patchwork.freedesktop.org/series/55730/ State : warning == Summary == $ dim sparse origin/drm-tip Sparse version: v0.5.2 Commit: drm/i915: Make all GPU resets atomic Okay! Commit: drm/i915/guc: Disable global reset Okay! Commit: drm/i915: Remove GPU reset dependence on struct_mutex -drivers/gpu/drm/i915/selftests/../i915_drv.h:3546:16: warning: expression using sizeof(void) +drivers/gpu/drm/i915/selftests/../i915_drv.h:3541:16: warning: expression using sizeof(void) Commit: drm/i915/selftests: Trim struct_mutex duration for set-wedged selftest Okay! Commit: drm/i915: Issue engine resets onto idle engines Okay! ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [CI,1/5] drm/i915: Make all GPU resets atomic
== Series Details == Series: series starting with [CI,1/5] drm/i915: Make all GPU resets atomic URL : https://patchwork.freedesktop.org/series/55730/ State : warning == Summary == $ dim checkpatch origin/drm-tip 4273a708fc23 drm/i915: Make all GPU resets atomic -:33: CHECK:USLEEP_RANGE: usleep_range is preferred over udelay; see Documentation/timers/timers-howto.txt #33: FILE: drivers/gpu/drm/i915/i915_reset.c:149: + udelay(50); -:39: CHECK:USLEEP_RANGE: usleep_range is preferred over udelay; see Documentation/timers/timers-howto.txt #39: FILE: drivers/gpu/drm/i915/i915_reset.c:154: + udelay(50); total: 0 errors, 0 warnings, 2 checks, 176 lines checked ea6bc9ab4ea1 drm/i915/guc: Disable global reset 839bf6ef05f4 drm/i915: Remove GPU reset dependence on struct_mutex -:1289: WARNING:BOOL_BITFIELD: Avoid using bool as bitfield. Prefer bool bitfields as unsigned int or u<8|16|32> #1289: FILE: drivers/gpu/drm/i915/intel_hangcheck.c:35: + bool wedged:1; -:1290: WARNING:BOOL_BITFIELD: Avoid using bool as bitfield. Prefer bool bitfields as unsigned int or u<8|16|32> #1290: FILE: drivers/gpu/drm/i915/intel_hangcheck.c:36: + bool stalled:1; total: 0 errors, 2 warnings, 0 checks, 1714 lines checked 2dfcd913159b drm/i915/selftests: Trim struct_mutex duration for set-wedged selftest 3c15a67f2a13 drm/i915: Issue engine resets onto idle engines ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 07/38] drm/i915: Stop tracking MRU activity on VMA
Quoting Chris Wilson (2019-01-25 13:38:09) > Quoting Tvrtko Ursulin (2019-01-25 10:46:19) > > > > On 22/01/2019 14:19, Chris Wilson wrote: > > > Quoting Tvrtko Ursulin (2019-01-18 16:03:27) > > >> > > >> On 18/01/2019 14:00, Chris Wilson wrote: > > >>> Our goal is to remove struct_mutex and replace it with fine grained > > >>> locking. One of the thorny issues is our eviction logic for reclaiming > > >>> space for an execbuffer (or GTT mmaping, among a few other examples). > > >>> While eviction itself is easy to move under a per-VM mutex, performing > > >>> the activity tracking is less agreeable. One solution is not to do any > > >>> MRU tracking and do a simple coarse evaluation during eviction of > > >>> active/inactive, with a loose temporal ordering of last > > >>> insertion/evaluation. That keeps all the locking constrained to when we > > >>> are manipulating the VM itself, neatly avoiding the tricky handling of > > >>> possible recursive locking during execbuf and elsewhere. > > >>> > > >>> Note that discarding the MRU is unlikely to impact upon our efficiency > > >>> to reclaim VM space (where we think a LRU model is best) as our > > >>> current strategy is to use random idle replacement first before doing > > >>> a search, and over time the use of softpinned 48b per-ppGTT is growing > > >>> (thereby eliminating any need to perform any eviction searches, in > > >>> theory at least). > > >> > > >> There is still no mention of list consolidation. > > > > > > "Note that discarding the MRU (currently implemented as a pair of lists, > > > to avoid scanning the active list for a NONBLOCKING search)" > > > > > > Is that enough to make it clear? > > > > How about: > > > > "Note that discarding the MRU, which is implemented both by not doing > > list operations while tracking activity, and by replacing > > active/inactive list with a single bound list, is unlikely..." > > > > ? > > > > Plus I really want a changelog and that stale comment which talks about > > active/inactive *lists* updated. > > But there's active/inactive lists within the list... @@ -136,17 +136,15 @@ i915_gem_evict_something(struct i915_address_space *vm, trace_i915_gem_evict(vm, min_size, alignment, flags); /* -* The goal is to evict objects and amalgamate space in LRU order. -* The oldest idle objects reside on the inactive list, which is in -* retirement order. The next objects to retire are those in flight, -* on the active list, again in retirement order. +* The goal is to evict objects and amalgamate space in rough LRU order. +* Since both active and inactive objects reside on the same list, +* in a mix of creation and last scanned order, as we process the list +* we sort it into inactive/active, which keeps the active portion +* in a rough MRU order. * * The retirement sequence is thus: * 1. Inactive objects (already retired, random order) * 2. Active objects (will stall on unbinding, oldest scanned first) -* -* On each list, the oldest objects lie at the HEAD with the freshest -* object on the TAIL. */ -Chris ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 07/38] drm/i915: Stop tracking MRU activity on VMA
Quoting Tvrtko Ursulin (2019-01-25 10:46:19) > > On 22/01/2019 14:19, Chris Wilson wrote: > > Quoting Tvrtko Ursulin (2019-01-18 16:03:27) > >> > >> On 18/01/2019 14:00, Chris Wilson wrote: > >>> Our goal is to remove struct_mutex and replace it with fine grained > >>> locking. One of the thorny issues is our eviction logic for reclaiming > >>> space for an execbuffer (or GTT mmaping, among a few other examples). > >>> While eviction itself is easy to move under a per-VM mutex, performing > >>> the activity tracking is less agreeable. One solution is not to do any > >>> MRU tracking and do a simple coarse evaluation during eviction of > >>> active/inactive, with a loose temporal ordering of last > >>> insertion/evaluation. That keeps all the locking constrained to when we > >>> are manipulating the VM itself, neatly avoiding the tricky handling of > >>> possible recursive locking during execbuf and elsewhere. > >>> > >>> Note that discarding the MRU is unlikely to impact upon our efficiency > >>> to reclaim VM space (where we think a LRU model is best) as our > >>> current strategy is to use random idle replacement first before doing > >>> a search, and over time the use of softpinned 48b per-ppGTT is growing > >>> (thereby eliminating any need to perform any eviction searches, in > >>> theory at least). > >> > >> There is still no mention of list consolidation. > > > > "Note that discarding the MRU (currently implemented as a pair of lists, > > to avoid scanning the active list for a NONBLOCKING search)" > > > > Is that enough to make it clear? > > How about: > > "Note that discarding the MRU, which is implemented both by not doing > list operations while tracking activity, and by replacing > active/inactive list with a single bound list, is unlikely..." > > ? > > Plus I really want a changelog and that stale comment which talks about > active/inactive *lists* updated. But there's active/inactive lists within the list... -Chris ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [CI 5/5] drm/i915: Issue engine resets onto idle engines
Always perform the requested reset, even if we believe the engine is idle. Presumably there was a reason the caller wanted the reset, and in the near future we lose the easy tracking for whether the engine is idle. Signed-off-by: Chris Wilson Reviewed-by: John Harrison --- drivers/gpu/drm/i915/i915_reset.c | 4 .../gpu/drm/i915/selftests/intel_hangcheck.c | 22 +-- 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_reset.c b/drivers/gpu/drm/i915/i915_reset.c index 68af017ee548..99bd3bc336b3 100644 --- a/drivers/gpu/drm/i915/i915_reset.c +++ b/drivers/gpu/drm/i915/i915_reset.c @@ -1076,10 +1076,6 @@ int i915_reset_engine(struct intel_engine_cs *engine, const char *msg) GEM_TRACE("%s flags=%lx\n", engine->name, error->flags); GEM_BUG_ON(!test_bit(I915_RESET_ENGINE + engine->id, &error->flags)); - if (i915_seqno_passed(intel_engine_get_seqno(engine), - intel_engine_last_submit(engine))) - return 0; - reset_prepare_engine(engine); if (msg) diff --git a/drivers/gpu/drm/i915/selftests/intel_hangcheck.c b/drivers/gpu/drm/i915/selftests/intel_hangcheck.c index 8025c7e0bf6c..2c38ea5892d9 100644 --- a/drivers/gpu/drm/i915/selftests/intel_hangcheck.c +++ b/drivers/gpu/drm/i915/selftests/intel_hangcheck.c @@ -449,8 +449,6 @@ static int __igt_reset_engine(struct drm_i915_private *i915, bool active) set_bit(I915_RESET_ENGINE + id, &i915->gpu_error.flags); do { - u32 seqno = intel_engine_get_seqno(engine); - if (active) { struct i915_request *rq; @@ -479,8 +477,6 @@ static int __igt_reset_engine(struct drm_i915_private *i915, bool active) break; } - GEM_BUG_ON(!rq->global_seqno); - seqno = rq->global_seqno - 1; i915_request_put(rq); } @@ -496,11 +492,10 @@ static int __igt_reset_engine(struct drm_i915_private *i915, bool active) break; } - reset_engine_count += active; if (i915_reset_engine_count(&i915->gpu_error, engine) != - reset_engine_count) { - pr_err("%s engine reset %srecorded!\n", - engine->name, active ? "not " : ""); + ++reset_engine_count) { + pr_err("%s engine reset not recorded!\n", + engine->name); err = -EINVAL; break; } @@ -728,7 +723,6 @@ static int __igt_reset_engines(struct drm_i915_private *i915, set_bit(I915_RESET_ENGINE + id, &i915->gpu_error.flags); do { - u32 seqno = intel_engine_get_seqno(engine); struct i915_request *rq = NULL; if (flags & TEST_ACTIVE) { @@ -756,9 +750,6 @@ static int __igt_reset_engines(struct drm_i915_private *i915, err = -EIO; break; } - - GEM_BUG_ON(!rq->global_seqno); - seqno = rq->global_seqno - 1; } err = i915_reset_engine(engine, NULL); @@ -795,10 +786,9 @@ static int __igt_reset_engines(struct drm_i915_private *i915, reported = i915_reset_engine_count(&i915->gpu_error, engine); reported -= threads[engine->id].resets; - if (reported != (flags & TEST_ACTIVE ? count : 0)) { - pr_err("i915_reset_engine(%s:%s): reset %lu times, but reported %lu, expected %lu reported\n", - engine->name, test_name, count, reported, - (flags & TEST_ACTIVE ? count : 0)); + if (reported != count) { + pr_err("i915_reset_engine(%s:%s): reset %lu times, but reported %lu\n", + engine->name, test_name, count, reported); if (!err) err = -EINVAL; } -- 2.20.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx