Re: [Intel-gfx] [PATCH v2 11/11] iommufd: Allow iommufd to supply /dev/vfio/vfio
On 2022/11/11 12:16, Yi Liu wrote: On 2022/11/8 08:52, Jason Gunthorpe wrote: If the VFIO container is compiled out, give a kconfig option for iommufd to provide the miscdev node with the same name and permissions as vfio uses. The compatibility node supports the same ioctls as VFIO and automatically enables the VFIO compatible pinned page accounting mode. Tested-by: Nicolin Chen Signed-off-by: Jason Gunthorpe --- drivers/iommu/iommufd/Kconfig | 12 drivers/iommu/iommufd/main.c | 36 +++ 2 files changed, 48 insertions(+) diff --git a/drivers/iommu/iommufd/Kconfig b/drivers/iommu/iommufd/Kconfig index 399a2edeaef6de..f387f803dc6f7f 100644 --- a/drivers/iommu/iommufd/Kconfig +++ b/drivers/iommu/iommufd/Kconfig @@ -12,6 +12,18 @@ config IOMMUFD If you don't know what to do here, say N. if IOMMUFD +config IOMMUFD_VFIO_CONTAINER + bool "IOMMUFD provides the VFIO container /dev/vfio/vfio" + depends on VFIO && !VFIO_CONTAINER + default VFIO && !VFIO_CONTAINER + help + IOMMUFD will provide /dev/vfio/vfio instead of VFIO. This relies on + IOMMUFD providing compatibility emulation to give the same ioctls. + It provides an option to build a kernel with legacy VFIO components + removed. + + Unless testing IOMMUFD say N here. + config IOMMUFD_TEST bool "IOMMU Userspace API Test support" depends on RUNTIME_TESTING_MENU diff --git a/drivers/iommu/iommufd/main.c b/drivers/iommu/iommufd/main.c index ab3fa05f38505d..1eeb326f74f005 100644 --- a/drivers/iommu/iommufd/main.c +++ b/drivers/iommu/iommufd/main.c @@ -18,6 +18,7 @@ #include #include +#include "io_pagetable.h" #include "iommufd_private.h" #include "iommufd_test.h" @@ -25,6 +26,7 @@ struct iommufd_object_ops { void (*destroy)(struct iommufd_object *obj); }; static const struct iommufd_object_ops iommufd_object_ops[]; +static struct miscdevice vfio_misc_dev; struct iommufd_object *_iommufd_object_alloc(struct iommufd_ctx *ictx, size_t size, @@ -170,6 +172,16 @@ static int iommufd_fops_open(struct inode *inode, struct file *filp) if (!ictx) return -ENOMEM; + /* + * For compatibility with VFIO when /dev/vfio/vfio is opened we default + * to the same rlimit accounting as vfio uses. + */ + if (IS_ENABLED(CONFIG_IOMMUFD_VFIO_CONTAINER) && + filp->private_data == _misc_dev) { + ictx->account_mode = IOPT_PAGES_ACCOUNT_MM; + pr_info_once("IOMMUFD is providing /dev/vfio/vfio, not VFIO.\n"); + } + xa_init_flags(>objects, XA_FLAGS_ALLOC1 | XA_FLAGS_ACCOUNT); ictx->file = filp; filp->private_data = ictx; @@ -395,6 +407,15 @@ static struct miscdevice iommu_misc_dev = { .mode = 0660, }; + +static struct miscdevice vfio_misc_dev = { + .minor = VFIO_MINOR, + .name = "vfio", + .fops = _fops, + .nodename = "vfio/vfio", + .mode = 0666, +}; + static int __init iommufd_init(void) { int ret; @@ -402,18 +423,33 @@ static int __init iommufd_init(void) ret = misc_register(_misc_dev); if (ret) return ret; + + if (IS_ENABLED(CONFIG_IOMMUFD_VFIO_CONTAINER)) { + ret = misc_register(_misc_dev); + if (ret) + goto err_misc; + } iommufd_test_init(); return 0; +err_misc: + misc_deregister(_misc_dev); + return ret; } static void __exit iommufd_exit(void) { iommufd_test_exit(); + if (IS_ENABLED(CONFIG_IOMMUFD_VFIO_CONTAINER)) + misc_deregister(_misc_dev); misc_deregister(_misc_dev); } module_init(iommufd_init); module_exit(iommufd_exit); +#if IS_ENABLED(CONFIG_IOMMUFD_VFIO_CONTAINER) +MODULE_ALIAS_MISCDEV(VFIO_MINOR); +MODULE_ALIAS("devname:vfio/vfio"); will this line also result in systemd to create this devnodes at boot based on the module info even if the IOMMUFD_VFIO_CONTAINER is not configured? stale comment. it's already under if IS_ENABLED(CONFIG_IOMMUFD_VFIO_CONTAINER). looks good to me. Reviewed-by: Yi Liu +#endif MODULE_DESCRIPTION("I/O Address Space Management for passthrough devices"); MODULE_LICENSE("GPL"); -- Regards, Yi Liu
[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/huc: fix leak of debug object in huc load fence on driver unload
== Series Details == Series: drm/i915/huc: fix leak of debug object in huc load fence on driver unload URL : https://patchwork.freedesktop.org/series/110783/ State : success == Summary == CI Bug Log - changes from CI_DRM_12369 -> Patchwork_110783v1 Summary --- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110783v1/index.html Participating hosts (40 -> 39) -- Additional (1): fi-tgl-dsi Missing(2): fi-ctg-p8600 fi-bdw-samus Known issues Here are the changes found in Patchwork_110783v1 that come from known issues: ### IGT changes ### Issues hit * igt@i915_selftest@live@gt_heartbeat: - fi-bxt-dsi: [PASS][1] -> [DMESG-FAIL][2] ([i915#5334] / [i915#7433]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/fi-bxt-dsi/igt@i915_selftest@live@gt_heartbeat.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110783v1/fi-bxt-dsi/igt@i915_selftest@live@gt_heartbeat.html * igt@i915_selftest@live@gt_lrc: - fi-rkl-guc: [PASS][3] -> [INCOMPLETE][4] ([i915#4983]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/fi-rkl-guc/igt@i915_selftest@live@gt_lrc.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110783v1/fi-rkl-guc/igt@i915_selftest@live@gt_lrc.html * igt@kms_chamelium@common-hpd-after-suspend: - fi-hsw-4770:NOTRUN -> [SKIP][5] ([fdo#109271] / [fdo#111827]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110783v1/fi-hsw-4770/igt@kms_chamel...@common-hpd-after-suspend.html * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-vga-1: - fi-hsw-4770:NOTRUN -> [INCOMPLETE][6] ([i915#7266]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110783v1/fi-hsw-4770/igt@kms_pipe_crc_basic@suspend-read-...@pipe-a-vga-1.html * igt@runner@aborted: - fi-skl-6600u: NOTRUN -> [FAIL][7] ([i915#4312]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110783v1/fi-skl-6600u/igt@run...@aborted.html Possible fixes * igt@gem_exec_suspend@basic-s0@smem: - {bat-rplp-1}: [DMESG-WARN][8] ([i915#2867]) -> [PASS][9] [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110783v1/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html * igt@i915_pm_rpm@module-reload: - {bat-rpls-2}: [WARN][10] ([i915#7346]) -> [PASS][11] [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/bat-rpls-2/igt@i915_pm_...@module-reload.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110783v1/bat-rpls-2/igt@i915_pm_...@module-reload.html * igt@i915_selftest@live@hangcheck: - fi-hsw-4770:[INCOMPLETE][12] ([i915#4785]) -> [PASS][13] [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/fi-hsw-4770/igt@i915_selftest@l...@hangcheck.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110783v1/fi-hsw-4770/igt@i915_selftest@l...@hangcheck.html * igt@i915_selftest@live@slpc: - {bat-rpls-1}: [DMESG-FAIL][14] ([i915#6367]) -> [PASS][15] [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/bat-rpls-1/igt@i915_selftest@l...@slpc.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110783v1/bat-rpls-1/igt@i915_selftest@l...@slpc.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411 [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867 [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334 [i915#6106]: https://gitlab.freedesktop.org/drm/intel/issues/6106 [i915#6367]:
[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915/display: Add missing checks for cdclk crawling
== Series Details == Series: drm/i915/display: Add missing checks for cdclk crawling URL : https://patchwork.freedesktop.org/series/110734/ State : success == Summary == CI Bug Log - changes from CI_DRM_12365_full -> Patchwork_110734v1_full Summary --- **SUCCESS** No regressions found. Participating hosts (11 -> 11) -- No changes in participating hosts Possible new issues --- Here are the unknown changes that may have been introduced in Patchwork_110734v1_full: ### IGT changes ### Suppressed The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * {igt@debugfs_test@basic-hwmon}: - {shard-dg1}:[PASS][1] -> [INCOMPLETE][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-dg1-15/igt@debugfs_t...@basic-hwmon.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110734v1/shard-dg1-17/igt@debugfs_t...@basic-hwmon.html Known issues Here are the changes found in Patchwork_110734v1_full that come from known issues: ### IGT changes ### Issues hit * igt@gem_exec_balancer@parallel-keep-in-fence: - shard-iclb: [PASS][3] -> [SKIP][4] ([i915#4525]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-iclb1/igt@gem_exec_balan...@parallel-keep-in-fence.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110734v1/shard-iclb5/igt@gem_exec_balan...@parallel-keep-in-fence.html * igt@gem_exec_fair@basic-pace@vcs1: - shard-iclb: NOTRUN -> [FAIL][5] ([i915#2842]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110734v1/shard-iclb2/igt@gem_exec_fair@basic-p...@vcs1.html * igt@gem_lmem_swapping@heavy-verify-random: - shard-apl: NOTRUN -> [SKIP][6] ([fdo#109271] / [i915#4613]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110734v1/shard-apl6/igt@gem_lmem_swapp...@heavy-verify-random.html * igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-b-hdmi-a-1: - shard-glk: [PASS][7] -> [INCOMPLETE][8] ([i915#5584]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk8/igt@kms_atomic_transition@plane-all-modeset-transition-fenc...@pipe-b-hdmi-a-1.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110734v1/shard-glk1/igt@kms_atomic_transition@plane-all-modeset-transition-fenc...@pipe-b-hdmi-a-1.html * igt@kms_atomic_transition@plane-all-modeset-transition@pipe-b-hdmi-a-2: - shard-glk: NOTRUN -> [INCOMPLETE][9] ([i915#5584]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110734v1/shard-glk8/igt@kms_atomic_transition@plane-all-modeset-transit...@pipe-b-hdmi-a-2.html * igt@kms_big_fb@4-tiled-32bpp-rotate-90: - shard-apl: NOTRUN -> [SKIP][10] ([fdo#109271]) +17 similar issues [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110734v1/shard-apl6/igt@kms_big...@4-tiled-32bpp-rotate-90.html * igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_mc_ccs: - shard-apl: NOTRUN -> [SKIP][11] ([fdo#109271] / [i915#3886]) +3 similar issues [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110734v1/shard-apl6/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_mc_ccs.html * igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc: - shard-skl: NOTRUN -> [SKIP][12] ([fdo#109271] / [i915#3886]) +2 similar issues [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110734v1/shard-skl6/igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html * igt@kms_chamelium@dp-hpd-with-enabled-mode: - shard-apl: NOTRUN -> [SKIP][13] ([fdo#109271] / [fdo#111827]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110734v1/shard-apl6/igt@kms_chamel...@dp-hpd-with-enabled-mode.html * igt@kms_chamelium@hdmi-audio-edid: - shard-skl: NOTRUN -> [SKIP][14] ([fdo#109271] / [fdo#111827]) +3 similar issues [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110734v1/shard-skl6/igt@kms_chamel...@hdmi-audio-edid.html * igt@kms_cursor_legacy@flip-vs-cursor-busy-crc-legacy: - shard-glk: [PASS][15] -> [FAIL][16] ([i915#7513]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk2/igt@kms_cursor_leg...@flip-vs-cursor-busy-crc-legacy.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110734v1/shard-glk7/igt@kms_cursor_leg...@flip-vs-cursor-busy-crc-legacy.html * igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1: - shard-skl: [PASS][17] -> [FAIL][18] ([i915#79]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-skl10/igt@kms_flip@flip-vs-expired-vblank-interrupti...@b-edp1.html [18]:
[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/guc: add the GSC CS to the GuC capture list
== Series Details == Series: drm/i915/guc: add the GSC CS to the GuC capture list URL : https://patchwork.freedesktop.org/series/110779/ State : success == Summary == CI Bug Log - changes from CI_DRM_12369 -> Patchwork_110779v1 Summary --- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110779v1/index.html Participating hosts (40 -> 36) -- Missing(4): fi-ctg-p8600 bat-dg2-11 fi-rkl-11600 fi-bdw-samus Known issues Here are the changes found in Patchwork_110779v1 that come from known issues: ### IGT changes ### Issues hit * igt@gem_exec_gttfill@basic: - fi-pnv-d510:[PASS][1] -> [FAIL][2] ([i915#7229]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/fi-pnv-d510/igt@gem_exec_gttf...@basic.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110779v1/fi-pnv-d510/igt@gem_exec_gttf...@basic.html * igt@gem_tiled_blits@basic: - fi-pnv-d510:[PASS][3] -> [SKIP][4] ([fdo#109271]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/fi-pnv-d510/igt@gem_tiled_bl...@basic.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110779v1/fi-pnv-d510/igt@gem_tiled_bl...@basic.html * igt@i915_selftest@live@gt_heartbeat: - fi-apl-guc: [PASS][5] -> [DMESG-FAIL][6] ([i915#5334]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110779v1/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html * igt@kms_chamelium@common-hpd-after-suspend: - fi-hsw-4770:NOTRUN -> [SKIP][7] ([fdo#109271] / [fdo#111827]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110779v1/fi-hsw-4770/igt@kms_chamel...@common-hpd-after-suspend.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions: - fi-bsw-kefka: [PASS][8] -> [FAIL][9] ([i915#6298]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cur...@atomic-transitions.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110779v1/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cur...@atomic-transitions.html Possible fixes * igt@gem_exec_suspend@basic-s0@smem: - {bat-rplp-1}: [DMESG-WARN][10] ([i915#2867]) -> [PASS][11] [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110779v1/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html * igt@i915_selftest@live@hangcheck: - fi-hsw-4770:[INCOMPLETE][12] ([i915#4785]) -> [PASS][13] [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/fi-hsw-4770/igt@i915_selftest@l...@hangcheck.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110779v1/fi-hsw-4770/igt@i915_selftest@l...@hangcheck.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334 [i915#6298]: https://gitlab.freedesktop.org/drm/intel/issues/6298 [i915#7229]: https://gitlab.freedesktop.org/drm/intel/issues/7229 Build changes - * Linux: CI_DRM_12369 -> Patchwork_110779v1 CI-20190529: 20190529 CI_DRM_12369: cdcedc1a52e4f4ec01a8f8c51065d651c31bea87 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_7050: 42839a7c2bab78bc6cda8c949d8545606f377735 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_110779v1: cdcedc1a52e4f4ec01a8f8c51065d651c31bea87 @ git://anongit.freedesktop.org/gfx-ci/linux ### Linux commits 90a2a1936a07 drm/i915/guc: add the GSC CS to the GuC capture list == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110779v1/index.html
[Intel-gfx] ✓ Fi.CI.BAT: success for Move dma_buf_mmap_internal() to dynamic locking specification
== Series Details == Series: Move dma_buf_mmap_internal() to dynamic locking specification URL : https://patchwork.freedesktop.org/series/110777/ State : success == Summary == CI Bug Log - changes from CI_DRM_12369 -> Patchwork_110777v1 Summary --- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110777v1/index.html Participating hosts (40 -> 37) -- Additional (1): fi-kbl-soraka Missing(4): fi-ctg-p8600 bat-rpls-2 fi-rkl-11600 fi-bdw-samus Known issues Here are the changes found in Patchwork_110777v1 that come from known issues: ### IGT changes ### Issues hit * igt@gem_exec_gttfill@basic: - fi-kbl-soraka: NOTRUN -> [SKIP][1] ([fdo#109271]) +8 similar issues [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110777v1/fi-kbl-soraka/igt@gem_exec_gttf...@basic.html * igt@gem_huc_copy@huc-copy: - fi-kbl-soraka: NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#2190]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110777v1/fi-kbl-soraka/igt@gem_huc_c...@huc-copy.html * igt@gem_lmem_swapping@basic: - fi-kbl-soraka: NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#4613]) +3 similar issues [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110777v1/fi-kbl-soraka/igt@gem_lmem_swapp...@basic.html * igt@i915_selftest@live@gem_contexts: - fi-kbl-soraka: NOTRUN -> [INCOMPLETE][4] ([i915#7099]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110777v1/fi-kbl-soraka/igt@i915_selftest@live@gem_contexts.html * igt@i915_selftest@live@gt_pm: - fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][5] ([i915#1886]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110777v1/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html * igt@kms_chamelium@common-hpd-after-suspend: - fi-hsw-4770:NOTRUN -> [SKIP][6] ([fdo#109271] / [fdo#111827]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110777v1/fi-hsw-4770/igt@kms_chamel...@common-hpd-after-suspend.html * igt@kms_chamelium@hdmi-hpd-fast: - fi-kbl-soraka: NOTRUN -> [SKIP][7] ([fdo#109271] / [fdo#111827]) +7 similar issues [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110777v1/fi-kbl-soraka/igt@kms_chamel...@hdmi-hpd-fast.html Possible fixes * igt@gem_exec_suspend@basic-s0@smem: - {bat-rplp-1}: [DMESG-WARN][8] ([i915#2867]) -> [PASS][9] [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110777v1/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html * igt@i915_selftest@live@hangcheck: - fi-hsw-4770:[INCOMPLETE][10] ([i915#4785]) -> [PASS][11] [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/fi-hsw-4770/igt@i915_selftest@l...@hangcheck.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110777v1/fi-hsw-4770/igt@i915_selftest@l...@hangcheck.html * igt@i915_selftest@live@slpc: - {bat-rpls-1}: [DMESG-FAIL][12] ([i915#6367]) -> [PASS][13] [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/bat-rpls-1/igt@i915_selftest@l...@slpc.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110777v1/bat-rpls-1/igt@i915_selftest@l...@slpc.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785 [i915#5278]: https://gitlab.freedesktop.org/drm/intel/issues/5278 [i915#6257]: https://gitlab.freedesktop.org/drm/intel/issues/6257 [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367 [i915#7099]: https://gitlab.freedesktop.org/drm/intel/issues/7099 Build changes - * Linux: CI_DRM_12369 -> Patchwork_110777v1 CI-20190529: 20190529 CI_DRM_12369: cdcedc1a52e4f4ec01a8f8c51065d651c31bea87 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_7050: 42839a7c2bab78bc6cda8c949d8545606f377735 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_110777v1: cdcedc1a52e4f4ec01a8f8c51065d651c31bea87 @ git://anongit.freedesktop.org/gfx-ci/linux ### Linux commits e5fb323e4493 fastrpc: Assert held reservation lock for dma-buf mmapping 844d366b7099 media: videobuf2: Assert held reservation lock
[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/guc: enable GuC GGTT invalidation from the start
== Series Details == Series: drm/i915/guc: enable GuC GGTT invalidation from the start URL : https://patchwork.freedesktop.org/series/110772/ State : success == Summary == CI Bug Log - changes from CI_DRM_12369 -> Patchwork_110772v1 Summary --- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110772v1/index.html Participating hosts (40 -> 38) -- Additional (1): fi-kbl-soraka Missing(3): fi-ctg-p8600 fi-hsw-4770 fi-bdw-samus Known issues Here are the changes found in Patchwork_110772v1 that come from known issues: ### IGT changes ### Issues hit * igt@gem_exec_gttfill@basic: - fi-kbl-soraka: NOTRUN -> [SKIP][1] ([fdo#109271]) +8 similar issues [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110772v1/fi-kbl-soraka/igt@gem_exec_gttf...@basic.html * igt@gem_huc_copy@huc-copy: - fi-kbl-soraka: NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#2190]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110772v1/fi-kbl-soraka/igt@gem_huc_c...@huc-copy.html * igt@gem_lmem_swapping@basic: - fi-kbl-soraka: NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#4613]) +3 similar issues [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110772v1/fi-kbl-soraka/igt@gem_lmem_swapp...@basic.html * igt@i915_module_load@reload: - fi-kbl-soraka: NOTRUN -> [DMESG-WARN][4] ([i915#1982]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110772v1/fi-kbl-soraka/igt@i915_module_l...@reload.html * igt@i915_selftest@live@gem_contexts: - fi-kbl-soraka: NOTRUN -> [INCOMPLETE][5] ([i915#7099]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110772v1/fi-kbl-soraka/igt@i915_selftest@live@gem_contexts.html * igt@i915_selftest@live@gt_pm: - fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][6] ([i915#1886]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110772v1/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html * igt@kms_chamelium@hdmi-hpd-fast: - fi-kbl-soraka: NOTRUN -> [SKIP][7] ([fdo#109271] / [fdo#111827]) +7 similar issues [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110772v1/fi-kbl-soraka/igt@kms_chamel...@hdmi-hpd-fast.html Possible fixes * igt@gem_exec_suspend@basic-s0@smem: - {bat-rplp-1}: [DMESG-WARN][8] ([i915#2867]) -> [PASS][9] [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110772v1/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html * igt@gem_exec_suspend@basic-s3@smem: - {bat-rpls-1}: [DMESG-WARN][10] ([i915#6687]) -> [PASS][11] [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/bat-rpls-1/igt@gem_exec_suspend@basic...@smem.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110772v1/bat-rpls-1/igt@gem_exec_suspend@basic...@smem.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845 [i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886 [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582 [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#6106]: https://gitlab.freedesktop.org/drm/intel/issues/6106 [i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687 [i915#7099]: https://gitlab.freedesktop.org/drm/intel/issues/7099 [i915#7346]: https://gitlab.freedesktop.org/drm/intel/issues/7346 [i915#7348]: https://gitlab.freedesktop.org/drm/intel/issues/7348 [i915#7351]: https://gitlab.freedesktop.org/drm/intel/issues/7351 [i915#7355]: https://gitlab.freedesktop.org/drm/intel/issues/7355 Build changes - * Linux: CI_DRM_12369 -> Patchwork_110772v1 CI-20190529: 20190529 CI_DRM_12369: cdcedc1a52e4f4ec01a8f8c51065d651c31bea87 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_7050: 42839a7c2bab78bc6cda8c949d8545606f377735 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_110772v1: cdcedc1a52e4f4ec01a8f8c51065d651c31bea87 @ git://anongit.freedesktop.org/gfx-ci/linux ### Linux commits fc2568bcbcc8 drm/i915/guc: enable GuC GGTT invalidation from the start == Logs == For more details see:
[Intel-gfx] ✗ Fi.CI.BAT: failure for Fix live busy stats selftest failure (rev2)
== Series Details == Series: Fix live busy stats selftest failure (rev2) URL : https://patchwork.freedesktop.org/series/110557/ State : failure == Summary == CI Bug Log - changes from CI_DRM_12369 -> Patchwork_110557v2 Summary --- **FAILURE** Serious unknown changes coming with Patchwork_110557v2 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_110557v2, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110557v2/index.html Participating hosts (40 -> 40) -- Additional (2): fi-kbl-soraka bat-atsm-1 Missing(2): fi-ctg-p8600 fi-bdw-samus Possible new issues --- Here are the unknown changes that may have been introduced in Patchwork_110557v2: ### IGT changes ### Possible regressions * igt@kms_flip@basic-flip-vs-wf_vblank@a-vga1: - fi-blb-e6850: [PASS][1] -> [FAIL][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/fi-blb-e6850/igt@kms_flip@basic-flip-vs-wf_vbl...@a-vga1.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110557v2/fi-blb-e6850/igt@kms_flip@basic-flip-vs-wf_vbl...@a-vga1.html Suppressed The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@i915_selftest@live@migrate: - {bat-atsm-1}: NOTRUN -> [INCOMPLETE][3] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110557v2/bat-atsm-1/igt@i915_selftest@l...@migrate.html Known issues Here are the changes found in Patchwork_110557v2 that come from known issues: ### IGT changes ### Issues hit * igt@gem_exec_gttfill@basic: - fi-kbl-soraka: NOTRUN -> [SKIP][4] ([fdo#109271]) +8 similar issues [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110557v2/fi-kbl-soraka/igt@gem_exec_gttf...@basic.html * igt@gem_huc_copy@huc-copy: - fi-kbl-soraka: NOTRUN -> [SKIP][5] ([fdo#109271] / [i915#2190]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110557v2/fi-kbl-soraka/igt@gem_huc_c...@huc-copy.html * igt@gem_lmem_swapping@basic: - fi-kbl-soraka: NOTRUN -> [SKIP][6] ([fdo#109271] / [i915#4613]) +3 similar issues [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110557v2/fi-kbl-soraka/igt@gem_lmem_swapp...@basic.html * igt@i915_selftest@live@gem_contexts: - fi-kbl-soraka: NOTRUN -> [INCOMPLETE][7] ([i915#7099]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110557v2/fi-kbl-soraka/igt@i915_selftest@live@gem_contexts.html * igt@i915_selftest@live@gt_heartbeat: - fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][8] ([i915#5334]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110557v2/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html * igt@i915_selftest@live@gt_pm: - fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][9] ([i915#1886]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110557v2/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html * igt@kms_chamelium@hdmi-hpd-fast: - fi-kbl-soraka: NOTRUN -> [SKIP][10] ([fdo#109271] / [fdo#111827]) +7 similar issues [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110557v2/fi-kbl-soraka/igt@kms_chamel...@hdmi-hpd-fast.html Possible fixes * igt@gem_exec_suspend@basic-s0@smem: - {bat-rplp-1}: [DMESG-WARN][11] ([i915#2867]) -> [PASS][12] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110557v2/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html * igt@gem_exec_suspend@basic-s3@smem: - {bat-rpls-1}: [DMESG-WARN][13] ([i915#6687]) -> [PASS][14] [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/bat-rpls-1/igt@gem_exec_suspend@basic...@smem.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110557v2/bat-rpls-1/igt@gem_exec_suspend@basic...@smem.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#1836]: https://gitlab.freedesktop.org/drm/intel/issues/1836 [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845 [i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#2582]:
Re: [Intel-gfx] [PATCH 0/2] drm/i915/gvt: Fix for KVM refcounting bug
On 2022.11.11 00:22:23 +, Sean Christopherson wrote: > Bug fix and cleanup related to KVM refcounting. Found by inspection while > attempting to clean up KVM's page-tracker APIs. > > Compile tested only! > > Sean Christopherson (2): > drm/i915/gvt: Get reference to KVM iff attachment to VM is successful > drm/i915/gvt: Unconditionally put reference to KVM when detaching vGPU > > drivers/gpu/drm/i915/gvt/kvmgt.c | 8 +++- > 1 file changed, 3 insertions(+), 5 deletions(-) > Thanks, Sean! and Kevin's review. Pushed this to fixes tree, will issue regression test before going upstream. signature.asc Description: PGP signature
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for Move dma_buf_mmap_internal() to dynamic locking specification
== Series Details == Series: Move dma_buf_mmap_internal() to dynamic locking specification URL : https://patchwork.freedesktop.org/series/110777/ State : warning == Summary == Error: dim sparse failed Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately. - +./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:148:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:148:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:150:9: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:150:9: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:154:26: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:154:26: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:156:16: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:156:16: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:156:9: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:156:9: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:174:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:174:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:176:9: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:176:9: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:180:35: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:180:35: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:182:16: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:182:16: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:182:9: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:182:9: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:186:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:186:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:188:9: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:188:9: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:192:35: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:192:35: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:195:16: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:195:16: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:195:9: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:195:9: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:237:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:237:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:239:9: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:239:9: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old' +./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old' +./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old' +./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old' +./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old' +./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced
[Intel-gfx] ✗ Fi.CI.IGT: failure for linux-next: build failure after merge of the drm-misc tree
== Series Details == Series: linux-next: build failure after merge of the drm-misc tree URL : https://patchwork.freedesktop.org/series/110730/ State : failure == Summary == CI Bug Log - changes from CI_DRM_12365_full -> Patchwork_110730v1_full Summary --- **FAILURE** Serious unknown changes coming with Patchwork_110730v1_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_110730v1_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. Participating hosts (11 -> 11) -- No changes in participating hosts Possible new issues --- Here are the unknown changes that may have been introduced in Patchwork_110730v1_full: ### IGT changes ### Possible regressions * igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-b-hdmi-a-1: - shard-glk: [PASS][1] -> [INCOMPLETE][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk8/igt@kms_atomic_transition@plane-all-modeset-transition-fenc...@pipe-b-hdmi-a-1.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/shard-glk3/igt@kms_atomic_transition@plane-all-modeset-transition-fenc...@pipe-b-hdmi-a-1.html * igt@kms_cursor_legacy@flip-vs-cursor-busy-crc-legacy: - shard-glk: [PASS][3] -> [FAIL][4] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk2/igt@kms_cursor_leg...@flip-vs-cursor-busy-crc-legacy.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/shard-glk1/igt@kms_cursor_leg...@flip-vs-cursor-busy-crc-legacy.html Warnings * igt@kms_plane_alpha_blend@alpha-basic@pipe-c-dp-1: - shard-apl: [FAIL][5] ([i915#4573]) -> [DMESG-FAIL][6] +1 similar issue [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl1/igt@kms_plane_alpha_blend@alpha-ba...@pipe-c-dp-1.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/shard-apl3/igt@kms_plane_alpha_blend@alpha-ba...@pipe-c-dp-1.html Known issues Here are the changes found in Patchwork_110730v1_full that come from known issues: ### IGT changes ### Issues hit * igt@drm_read@fault-buffer: - shard-snb: [PASS][7] -> [SKIP][8] ([fdo#109271]) +1 similar issue [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb5/igt@drm_r...@fault-buffer.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/shard-snb5/igt@drm_r...@fault-buffer.html * igt@gem_exec_balancer@parallel-out-fence: - shard-iclb: [PASS][9] -> [SKIP][10] ([i915#4525]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-iclb2/igt@gem_exec_balan...@parallel-out-fence.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/shard-iclb5/igt@gem_exec_balan...@parallel-out-fence.html * igt@gem_exec_fair@basic-none@vcs0: - shard-glk: [PASS][11] -> [FAIL][12] ([i915#2842]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk8/igt@gem_exec_fair@basic-n...@vcs0.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/shard-glk3/igt@gem_exec_fair@basic-n...@vcs0.html * igt@gem_exec_fair@basic-none@vcs1: - shard-iclb: NOTRUN -> [FAIL][13] ([i915#2842]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/shard-iclb1/igt@gem_exec_fair@basic-n...@vcs1.html * igt@gem_softpin@evict-single-offset: - shard-tglb: [PASS][14] -> [FAIL][15] ([i915#4171]) [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-tglb2/igt@gem_soft...@evict-single-offset.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/shard-tglb8/igt@gem_soft...@evict-single-offset.html * igt@i915_pm_dc@dc6-psr: - shard-iclb: [PASS][16] -> [FAIL][17] ([i915#3989] / [i915#454]) [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-iclb1/igt@i915_pm...@dc6-psr.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/shard-iclb2/igt@i915_pm...@dc6-psr.html * igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc: - shard-skl: NOTRUN -> [SKIP][18] ([fdo#109271] / [i915#3886]) +2 similar issues [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/shard-skl9/igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html * igt@kms_chamelium@hdmi-audio-edid: - shard-skl: NOTRUN -> [SKIP][19] ([fdo#109271] / [fdo#111827]) +3 similar issues [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/shard-skl9/igt@kms_chamel...@hdmi-audio-edid.html * igt@kms_cursor_crc@cursor-suspend@pipe-a-edp-1: - shard-skl: [PASS][20] -> [INCOMPLETE][21]
Re: [Intel-gfx] [PATCH v4 1/1] drm/i915/guc/slpc: Add selftest for slpc tile-tile interaction
On 11/9/2022 3:25 AM, Riana Tauro wrote: Run a workload on tiles simultaneously by requesting for RP0 frequency. Pcode can however limit the frequency being granted due to throttling reasons. This test checks if there is any throttling but does not fail if RP0 is not granted due to throttle reasons v2: Fix build error v3: Use IS_ERR_OR_NULL to check worker Addressed cosmetic review comments (Tvrtko) v4: do not skip test on media engines if gt type is GT_MEDIA. Use correct PERF_LIMIT_REASONS register for MTL (Vinay) LGTM. Reviewed-by: Vinay Belgaumkar Signed-off-by: Riana Tauro --- drivers/gpu/drm/i915/gt/selftest_slpc.c | 70 +++-- 1 file changed, 66 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/selftest_slpc.c b/drivers/gpu/drm/i915/gt/selftest_slpc.c index 82ec95a299f6..bd44ce73a504 100644 --- a/drivers/gpu/drm/i915/gt/selftest_slpc.c +++ b/drivers/gpu/drm/i915/gt/selftest_slpc.c @@ -13,6 +13,14 @@ enum test_type { VARY_MAX, MAX_GRANTED, SLPC_POWER, + TILE_INTERACTION, +}; + +struct slpc_thread { + struct kthread_worker *worker; + struct kthread_work work; + struct intel_gt *gt; + int result; }; static int slpc_set_min_freq(struct intel_guc_slpc *slpc, u32 freq) @@ -212,7 +220,8 @@ static int max_granted_freq(struct intel_guc_slpc *slpc, struct intel_rps *rps, *max_act_freq = intel_rps_read_actual_frequency(rps); if (*max_act_freq != slpc->rp0_freq) { /* Check if there was some throttling by pcode */ - perf_limit_reasons = intel_uncore_read(gt->uncore, GT0_PERF_LIMIT_REASONS); + perf_limit_reasons = intel_uncore_read(gt->uncore, + intel_gt_perf_limit_reasons_reg(gt)); /* If not, this is an error */ if (!(perf_limit_reasons & GT0_PERF_LIMIT_REASONS_MASK)) { @@ -310,9 +319,10 @@ static int run_test(struct intel_gt *gt, int test_type) break; case MAX_GRANTED: + case TILE_INTERACTION: /* Media engines have a different RP0 */ - if (engine->class == VIDEO_DECODE_CLASS || - engine->class == VIDEO_ENHANCEMENT_CLASS) { + if (gt->type != GT_MEDIA && (engine->class == VIDEO_DECODE_CLASS || +engine->class == VIDEO_ENHANCEMENT_CLASS)) { igt_spinner_end(); st_engine_heartbeat_enable(engine); err = 0; @@ -335,7 +345,8 @@ static int run_test(struct intel_gt *gt, int test_type) if (max_act_freq <= slpc->min_freq) { pr_err("Actual freq did not rise above min\n"); pr_err("Perf Limit Reasons: 0x%x\n", - intel_uncore_read(gt->uncore, GT0_PERF_LIMIT_REASONS)); + intel_uncore_read(gt->uncore, + intel_gt_perf_limit_reasons_reg(gt))); err = -EINVAL; } } @@ -426,6 +437,56 @@ static int live_slpc_power(void *arg) return ret; } +static void slpc_spinner_thread(struct kthread_work *work) +{ + struct slpc_thread *thread = container_of(work, typeof(*thread), work); + + thread->result = run_test(thread->gt, TILE_INTERACTION); +} + +static int live_slpc_tile_interaction(void *arg) +{ + struct drm_i915_private *i915 = arg; + struct intel_gt *gt; + struct slpc_thread *threads; + int i = 0, ret = 0; + + threads = kcalloc(I915_MAX_GT, sizeof(*threads), GFP_KERNEL); + if (!threads) + return -ENOMEM; + + for_each_gt(gt, i915, i) { + threads[i].worker = kthread_create_worker(0, "igt/slpc_parallel:%d", gt->info.id); + + if (IS_ERR(threads[i].worker)) { + ret = PTR_ERR(threads[i].worker); + break; + } + + threads[i].gt = gt; + kthread_init_work([i].work, slpc_spinner_thread); + kthread_queue_work(threads[i].worker, [i].work); + } + + for_each_gt(gt, i915, i) { + int status; + + if (IS_ERR_OR_NULL(threads[i].worker)) + continue; + + kthread_flush_work([i].work); + status = READ_ONCE(threads[i].result); + if (status && !ret) { + pr_err("%s GT %d failed ", __func__, gt->info.id); + ret = status; + } + kthread_destroy_worker(threads[i].worker); + } + + kfree(threads); + return ret; +} + int
[Intel-gfx] ✓ Fi.CI.BAT: success for Panel replay phase1 implementation (rev4)
== Series Details == Series: Panel replay phase1 implementation (rev4) URL : https://patchwork.freedesktop.org/series/94470/ State : success == Summary == CI Bug Log - changes from CI_DRM_12369 -> Patchwork_94470v4 Summary --- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_94470v4/index.html Participating hosts (40 -> 39) -- Additional (2): fi-kbl-soraka bat-atsm-1 Missing(3): fi-ctg-p8600 fi-hsw-4770 fi-bdw-samus Possible new issues --- Here are the unknown changes that may have been introduced in Patchwork_94470v4: ### IGT changes ### Suppressed The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@i915_selftest@live@migrate: - {bat-atsm-1}: NOTRUN -> [INCOMPLETE][1] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_94470v4/bat-atsm-1/igt@i915_selftest@l...@migrate.html Known issues Here are the changes found in Patchwork_94470v4 that come from known issues: ### IGT changes ### Issues hit * igt@gem_exec_gttfill@basic: - fi-kbl-soraka: NOTRUN -> [SKIP][2] ([fdo#109271]) +8 similar issues [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_94470v4/fi-kbl-soraka/igt@gem_exec_gttf...@basic.html * igt@gem_huc_copy@huc-copy: - fi-kbl-soraka: NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#2190]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_94470v4/fi-kbl-soraka/igt@gem_huc_c...@huc-copy.html * igt@gem_lmem_swapping@basic: - fi-kbl-soraka: NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#4613]) +3 similar issues [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_94470v4/fi-kbl-soraka/igt@gem_lmem_swapp...@basic.html * igt@i915_selftest@live@gem_contexts: - fi-kbl-soraka: NOTRUN -> [INCOMPLETE][5] ([i915#7099]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_94470v4/fi-kbl-soraka/igt@i915_selftest@live@gem_contexts.html * igt@i915_selftest@live@gt_engines: - bat-dg1-6: [PASS][6] -> [INCOMPLETE][7] ([i915#4418]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/bat-dg1-6/igt@i915_selftest@live@gt_engines.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_94470v4/bat-dg1-6/igt@i915_selftest@live@gt_engines.html * igt@i915_selftest@live@gt_pm: - fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][8] ([i915#1886]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_94470v4/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html * igt@kms_chamelium@hdmi-hpd-fast: - fi-kbl-soraka: NOTRUN -> [SKIP][9] ([fdo#109271] / [fdo#111827]) +7 similar issues [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_94470v4/fi-kbl-soraka/igt@kms_chamel...@hdmi-hpd-fast.html * igt@kms_pipe_crc_basic@suspend-read-crc: - fi-ivb-3770:NOTRUN -> [SKIP][10] ([fdo#109271]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_94470v4/fi-ivb-3770/igt@kms_pipe_crc_ba...@suspend-read-crc.html * igt@runner@aborted: - bat-dg1-6: NOTRUN -> [FAIL][11] ([i915#4312]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_94470v4/bat-dg1-6/igt@run...@aborted.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#1836]: https://gitlab.freedesktop.org/drm/intel/issues/1836 [i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079 [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083 [i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4418]: https://gitlab.freedesktop.org/drm/intel/issues/4418 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#6077]: https://gitlab.freedesktop.org/drm/intel/issues/6077 [i915#6078]: https://gitlab.freedesktop.org/drm/intel/issues/6078 [i915#6093]: https://gitlab.freedesktop.org/drm/intel/issues/6093 [i915#6094]: https://gitlab.freedesktop.org/drm/intel/issues/6094 [i915#6166]: https://gitlab.freedesktop.org/drm/intel/issues/6166 [i915#6367]:
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915/guc: enable GuC GGTT invalidation from the start
== Series Details == Series: drm/i915/guc: enable GuC GGTT invalidation from the start URL : https://patchwork.freedesktop.org/series/110772/ State : warning == Summary == Error: dim sparse failed Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately.
Re: [Intel-gfx] [PATCH v2 11/11] iommufd: Allow iommufd to supply /dev/vfio/vfio
On 2022/11/8 08:52, Jason Gunthorpe wrote: If the VFIO container is compiled out, give a kconfig option for iommufd to provide the miscdev node with the same name and permissions as vfio uses. The compatibility node supports the same ioctls as VFIO and automatically enables the VFIO compatible pinned page accounting mode. Tested-by: Nicolin Chen Signed-off-by: Jason Gunthorpe --- drivers/iommu/iommufd/Kconfig | 12 drivers/iommu/iommufd/main.c | 36 +++ 2 files changed, 48 insertions(+) diff --git a/drivers/iommu/iommufd/Kconfig b/drivers/iommu/iommufd/Kconfig index 399a2edeaef6de..f387f803dc6f7f 100644 --- a/drivers/iommu/iommufd/Kconfig +++ b/drivers/iommu/iommufd/Kconfig @@ -12,6 +12,18 @@ config IOMMUFD If you don't know what to do here, say N. if IOMMUFD +config IOMMUFD_VFIO_CONTAINER + bool "IOMMUFD provides the VFIO container /dev/vfio/vfio" + depends on VFIO && !VFIO_CONTAINER + default VFIO && !VFIO_CONTAINER + help + IOMMUFD will provide /dev/vfio/vfio instead of VFIO. This relies on + IOMMUFD providing compatibility emulation to give the same ioctls. + It provides an option to build a kernel with legacy VFIO components + removed. + + Unless testing IOMMUFD say N here. + config IOMMUFD_TEST bool "IOMMU Userspace API Test support" depends on RUNTIME_TESTING_MENU diff --git a/drivers/iommu/iommufd/main.c b/drivers/iommu/iommufd/main.c index ab3fa05f38505d..1eeb326f74f005 100644 --- a/drivers/iommu/iommufd/main.c +++ b/drivers/iommu/iommufd/main.c @@ -18,6 +18,7 @@ #include #include +#include "io_pagetable.h" #include "iommufd_private.h" #include "iommufd_test.h" @@ -25,6 +26,7 @@ struct iommufd_object_ops { void (*destroy)(struct iommufd_object *obj); }; static const struct iommufd_object_ops iommufd_object_ops[]; +static struct miscdevice vfio_misc_dev; struct iommufd_object *_iommufd_object_alloc(struct iommufd_ctx *ictx, size_t size, @@ -170,6 +172,16 @@ static int iommufd_fops_open(struct inode *inode, struct file *filp) if (!ictx) return -ENOMEM; + /* +* For compatibility with VFIO when /dev/vfio/vfio is opened we default +* to the same rlimit accounting as vfio uses. +*/ + if (IS_ENABLED(CONFIG_IOMMUFD_VFIO_CONTAINER) && + filp->private_data == _misc_dev) { + ictx->account_mode = IOPT_PAGES_ACCOUNT_MM; + pr_info_once("IOMMUFD is providing /dev/vfio/vfio, not VFIO.\n"); + } + xa_init_flags(>objects, XA_FLAGS_ALLOC1 | XA_FLAGS_ACCOUNT); ictx->file = filp; filp->private_data = ictx; @@ -395,6 +407,15 @@ static struct miscdevice iommu_misc_dev = { .mode = 0660, }; + +static struct miscdevice vfio_misc_dev = { + .minor = VFIO_MINOR, + .name = "vfio", + .fops = _fops, + .nodename = "vfio/vfio", + .mode = 0666, +}; + static int __init iommufd_init(void) { int ret; @@ -402,18 +423,33 @@ static int __init iommufd_init(void) ret = misc_register(_misc_dev); if (ret) return ret; + + if (IS_ENABLED(CONFIG_IOMMUFD_VFIO_CONTAINER)) { + ret = misc_register(_misc_dev); + if (ret) + goto err_misc; + } iommufd_test_init(); return 0; +err_misc: + misc_deregister(_misc_dev); + return ret; } static void __exit iommufd_exit(void) { iommufd_test_exit(); + if (IS_ENABLED(CONFIG_IOMMUFD_VFIO_CONTAINER)) + misc_deregister(_misc_dev); misc_deregister(_misc_dev); } module_init(iommufd_init); module_exit(iommufd_exit); +#if IS_ENABLED(CONFIG_IOMMUFD_VFIO_CONTAINER) +MODULE_ALIAS_MISCDEV(VFIO_MINOR); +MODULE_ALIAS("devname:vfio/vfio"); will this line also result in systemd to create this devnodes at boot based on the module info even if the IOMMUFD_VFIO_CONTAINER is not configured? +#endif MODULE_DESCRIPTION("I/O Address Space Management for passthrough devices"); MODULE_LICENSE("GPL"); -- Regards, Yi Liu
Re: [Intel-gfx] [PATCH v2 09/11] vfio: Move container related MODULE_ALIAS statements into container.c
On 2022/11/8 08:52, Jason Gunthorpe wrote: The miscdev is in container.c, so should these related MODULE_ALIAS statements. This is necessary for the next patch to be able to fully disable /dev/vfio/vfio. Fixes: cdc71fe4ecbf ("vfio: Move container code into drivers/vfio/container.c") Reported-by: "Liu, Yi L" s/Liu Yi L/Yi Liu :) Reviewed-by: Yi Liu Signed-off-by: Jason Gunthorpe --- drivers/vfio/container.c | 3 +++ drivers/vfio/vfio_main.c | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/vfio/container.c b/drivers/vfio/container.c index 7f3961fd4b5aac..6b362d97d68220 100644 --- a/drivers/vfio/container.c +++ b/drivers/vfio/container.c @@ -608,3 +608,6 @@ void vfio_container_cleanup(void) misc_deregister(_dev); mutex_destroy(_drivers_lock); } + +MODULE_ALIAS_MISCDEV(VFIO_MINOR); +MODULE_ALIAS("devname:vfio/vfio"); diff --git a/drivers/vfio/vfio_main.c b/drivers/vfio/vfio_main.c index cf49c5200a4c05..ee09ccf4a608e1 100644 --- a/drivers/vfio/vfio_main.c +++ b/drivers/vfio/vfio_main.c @@ -2064,6 +2064,4 @@ MODULE_VERSION(DRIVER_VERSION); MODULE_LICENSE("GPL v2"); MODULE_AUTHOR(DRIVER_AUTHOR); MODULE_DESCRIPTION(DRIVER_DESC); -MODULE_ALIAS_MISCDEV(VFIO_MINOR); -MODULE_ALIAS("devname:vfio/vfio"); MODULE_SOFTDEP("post: vfio_iommu_type1 vfio_iommu_spapr_tce"); -- Regards, Yi Liu
Re: [Intel-gfx] [PATCH v2 07/11] vfio-iommufd: Support iommufd for physical VFIO devices
On 2022/11/8 08:52, Jason Gunthorpe wrote: This creates the iommufd_device for the physical VFIO drivers. These are all the drivers that are calling vfio_register_group_dev() and expect the type1 code to setup a real iommu_domain against their parent struct device. The design gives the driver a choice in how it gets connected to iommufd by providing bind_iommufd/unbind_iommufd/attach_ioas callbacks to implement as required. The core code provides three default callbacks for physical mode using a real iommu_domain. This is suitable for drivers using vfio_register_group_dev() Tested-by: Nicolin Chen Signed-off-by: Jason Gunthorpe --- drivers/vfio/Makefile | 1 + drivers/vfio/fsl-mc/vfio_fsl_mc.c | 3 + drivers/vfio/iommufd.c| 99 +++ .../vfio/pci/hisilicon/hisi_acc_vfio_pci.c| 6 ++ drivers/vfio/pci/mlx5/main.c | 3 + drivers/vfio/pci/vfio_pci.c | 3 + drivers/vfio/platform/vfio_amba.c | 3 + drivers/vfio/platform/vfio_platform.c | 3 + drivers/vfio/vfio.h | 15 +++ drivers/vfio/vfio_main.c | 13 ++- include/linux/vfio.h | 25 + 11 files changed, 172 insertions(+), 2 deletions(-) create mode 100644 drivers/vfio/iommufd.c diff --git a/drivers/vfio/Makefile b/drivers/vfio/Makefile index b693a1169286f8..3863922529ef20 100644 --- a/drivers/vfio/Makefile +++ b/drivers/vfio/Makefile @@ -6,6 +6,7 @@ obj-$(CONFIG_VFIO) += vfio.o vfio-y += vfio_main.o \ iova_bitmap.o \ container.o +vfio-$(CONFIG_IOMMUFD) += iommufd.o obj-$(CONFIG_VFIO_VIRQFD) += vfio_virqfd.o obj-$(CONFIG_VFIO_IOMMU_TYPE1) += vfio_iommu_type1.o diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc.c b/drivers/vfio/fsl-mc/vfio_fsl_mc.c index b16874e913e4f5..5cd4bb47644039 100644 --- a/drivers/vfio/fsl-mc/vfio_fsl_mc.c +++ b/drivers/vfio/fsl-mc/vfio_fsl_mc.c @@ -592,6 +592,9 @@ static const struct vfio_device_ops vfio_fsl_mc_ops = { .read = vfio_fsl_mc_read, .write = vfio_fsl_mc_write, .mmap = vfio_fsl_mc_mmap, + .bind_iommufd = vfio_iommufd_physical_bind, + .unbind_iommufd = vfio_iommufd_physical_unbind, + .attach_ioas= vfio_iommufd_physical_attach_ioas, }; static struct fsl_mc_driver vfio_fsl_mc_driver = { diff --git a/drivers/vfio/iommufd.c b/drivers/vfio/iommufd.c new file mode 100644 index 00..bf755d0f375c5d --- /dev/null +++ b/drivers/vfio/iommufd.c @@ -0,0 +1,99 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) 2021-2022, NVIDIA CORPORATION & AFFILIATES + */ +#include +#include + +#include "vfio.h" + +MODULE_IMPORT_NS(IOMMUFD); +MODULE_IMPORT_NS(IOMMUFD_VFIO); + +int vfio_iommufd_bind(struct vfio_device *vdev, struct iommufd_ctx *ictx) +{ + u32 ioas_id; + u32 device_id; + int ret; + + lockdep_assert_held(>dev_set->lock); + + /* +* If the driver doesn't provide this op then it means the device does +* not do DMA at all. So nothing to do. +*/ + if (!vdev->ops->bind_iommufd) + return 0; + + ret = vdev->ops->bind_iommufd(vdev, ictx, _id); + if (ret) + return ret; + + ret = iommufd_vfio_compat_ioas_id(ictx, _id); + if (ret) + goto err_unbind; + ret = vdev->ops->attach_ioas(vdev, _id); + if (ret) + goto err_unbind; + vdev->iommufd_attached = true; it's better to set this bool in vfio_iommufd_physical_attach_ioas() as the emulated devices uses iommufd_access instead. is it? or you mean this flag to cover both cases? -- Regards, Yi Liu
[Intel-gfx] ✗ Fi.CI.BUILD: failure for Connect VFIO to IOMMUFD (rev5)
== Series Details == Series: Connect VFIO to IOMMUFD (rev5) URL : https://patchwork.freedesktop.org/series/110133/ State : failure == Summary == Error: patch https://patchwork.freedesktop.org/api/1.0/series/110133/revisions/5/mbox/ not applied Applying: vfio: Move vfio_device driver open/close code to a function Applying: vfio: Move vfio_device_assign_container() into vfio_device_first_open() Applying: vfio: Rename vfio_device_assign/unassign_container() Applying: vfio: Move storage of allow_unsafe_interrupts to vfio_main.c Applying: vfio: Use IOMMU_CAP_ENFORCE_CACHE_COHERENCY for vfio_file_enforced_coherent() Applying: vfio-iommufd: Allow iommufd to be used in place of a container fd Applying: vfio-iommufd: Support iommufd for physical VFIO devices Applying: vfio-iommufd: Support iommufd for emulated VFIO devices Applying: vfio: Move container related MODULE_ALIAS statements into container.c Applying: vfio: Make vfio_container optionally compiled Using index info to reconstruct a base tree... A drivers/iommu/iommufd/vfio_compat.c M drivers/vfio/vfio_main.c A include/linux/iommufd.h Falling back to patching base and 3-way merge... CONFLICT (modify/delete): include/linux/iommufd.h deleted in HEAD and modified in vfio: Make vfio_container optionally compiled. Version vfio: Make vfio_container optionally compiled of include/linux/iommufd.h left in tree. Auto-merging drivers/vfio/vfio_main.c CONFLICT (modify/delete): drivers/iommu/iommufd/vfio_compat.c deleted in HEAD and modified in vfio: Make vfio_container optionally compiled. Version vfio: Make vfio_container optionally compiled of drivers/iommu/iommufd/vfio_compat.c left in tree. error: Failed to merge in the changes. hint: Use 'git am --show-current-patch=diff' to see the failed patch Patch failed at 0010 vfio: Make vfio_container optionally compiled When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort".
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for Fix live busy stats selftest failure (rev2)
== Series Details == Series: Fix live busy stats selftest failure (rev2) URL : https://patchwork.freedesktop.org/series/110557/ State : warning == Summary == Error: dim sparse failed Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately.
Re: [Intel-gfx] [PATCH v1 5/6] media: videobuf2: Assert held reservation lock for dma-buf mmapping
On Fri, Nov 11, 2022 at 5:15 AM Dmitry Osipenko wrote: > > When userspace mmaps dma-buf's fd, the dma-buf reservation lock must be > held. Add locking sanity checks to the dma-buf mmaping callbacks to ensure > that the locking assumptions won't regress in the future. > > Suggested-by: Daniel Vetter > Signed-off-by: Dmitry Osipenko > --- > drivers/media/common/videobuf2/videobuf2-dma-contig.c | 3 +++ > drivers/media/common/videobuf2/videobuf2-dma-sg.c | 3 +++ > drivers/media/common/videobuf2/videobuf2-vmalloc.c| 3 +++ > 3 files changed, 9 insertions(+) > Acked-by: Tomasz Figa Best regards, Tomasz > diff --git a/drivers/media/common/videobuf2/videobuf2-dma-contig.c > b/drivers/media/common/videobuf2/videobuf2-dma-contig.c > index 555bd40fa472..7f45a62969f2 100644 > --- a/drivers/media/common/videobuf2/videobuf2-dma-contig.c > +++ b/drivers/media/common/videobuf2/videobuf2-dma-contig.c > @@ -11,6 +11,7 @@ > */ > > #include > +#include > #include > #include > #include > @@ -455,6 +456,8 @@ static int vb2_dc_dmabuf_ops_vmap(struct dma_buf *dbuf, > struct iosys_map *map) > static int vb2_dc_dmabuf_ops_mmap(struct dma_buf *dbuf, > struct vm_area_struct *vma) > { > + dma_resv_assert_held(dbuf->resv); > + > return vb2_dc_mmap(dbuf->priv, vma); > } > > diff --git a/drivers/media/common/videobuf2/videobuf2-dma-sg.c > b/drivers/media/common/videobuf2/videobuf2-dma-sg.c > index 36981a5b5c53..b7f39ee49ed8 100644 > --- a/drivers/media/common/videobuf2/videobuf2-dma-sg.c > +++ b/drivers/media/common/videobuf2/videobuf2-dma-sg.c > @@ -10,6 +10,7 @@ > * the Free Software Foundation. > */ > > +#include > #include > #include > #include > @@ -495,6 +496,8 @@ static int vb2_dma_sg_dmabuf_ops_vmap(struct dma_buf > *dbuf, > static int vb2_dma_sg_dmabuf_ops_mmap(struct dma_buf *dbuf, > struct vm_area_struct *vma) > { > + dma_resv_assert_held(dbuf->resv); > + > return vb2_dma_sg_mmap(dbuf->priv, vma); > } > > diff --git a/drivers/media/common/videobuf2/videobuf2-vmalloc.c > b/drivers/media/common/videobuf2/videobuf2-vmalloc.c > index 41db707e43a4..f9b665366365 100644 > --- a/drivers/media/common/videobuf2/videobuf2-vmalloc.c > +++ b/drivers/media/common/videobuf2/videobuf2-vmalloc.c > @@ -10,6 +10,7 @@ > * the Free Software Foundation. > */ > > +#include > #include > #include > #include > @@ -316,6 +317,8 @@ static int vb2_vmalloc_dmabuf_ops_vmap(struct dma_buf > *dbuf, > static int vb2_vmalloc_dmabuf_ops_mmap(struct dma_buf *dbuf, > struct vm_area_struct *vma) > { > + dma_resv_assert_held(dbuf->resv); > + > return vb2_vmalloc_mmap(dbuf->priv, vma); > } > > -- > 2.37.3 >
[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: ELD precompute and readout (rev4)
== Series Details == Series: drm/i915: ELD precompute and readout (rev4) URL : https://patchwork.freedesktop.org/series/109592/ State : success == Summary == CI Bug Log - changes from CI_DRM_12369 -> Patchwork_109592v4 Summary --- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109592v4/index.html Participating hosts (40 -> 39) -- Additional (1): bat-atsm-1 Missing(2): fi-ctg-p8600 fi-bdw-samus Possible new issues --- Here are the unknown changes that may have been introduced in Patchwork_109592v4: ### IGT changes ### Suppressed The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@i915_selftest@live@gt_lrc: - {bat-rplp-1}: [PASS][1] -> [INCOMPLETE][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/bat-rplp-1/igt@i915_selftest@live@gt_lrc.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109592v4/bat-rplp-1/igt@i915_selftest@live@gt_lrc.html * igt@i915_selftest@live@migrate: - {bat-atsm-1}: NOTRUN -> [INCOMPLETE][3] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109592v4/bat-atsm-1/igt@i915_selftest@l...@migrate.html * igt@i915_selftest@live@reset: - {bat-rpls-1}: [PASS][4] -> [INCOMPLETE][5] [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/bat-rpls-1/igt@i915_selftest@l...@reset.html [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109592v4/bat-rpls-1/igt@i915_selftest@l...@reset.html Known issues Here are the changes found in Patchwork_109592v4 that come from known issues: ### IGT changes ### Issues hit * igt@gem_tiled_blits@basic: - fi-pnv-d510:[PASS][6] -> [SKIP][7] ([fdo#109271]) +2 similar issues [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/fi-pnv-d510/igt@gem_tiled_bl...@basic.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109592v4/fi-pnv-d510/igt@gem_tiled_bl...@basic.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#1836]: https://gitlab.freedesktop.org/drm/intel/issues/1836 [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079 [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#6077]: https://gitlab.freedesktop.org/drm/intel/issues/6077 [i915#6078]: https://gitlab.freedesktop.org/drm/intel/issues/6078 [i915#6093]: https://gitlab.freedesktop.org/drm/intel/issues/6093 [i915#6094]: https://gitlab.freedesktop.org/drm/intel/issues/6094 [i915#6166]: https://gitlab.freedesktop.org/drm/intel/issues/6166 [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621 [i915#7357]: https://gitlab.freedesktop.org/drm/intel/issues/7357 [i915#7358]: https://gitlab.freedesktop.org/drm/intel/issues/7358 Build changes - * Linux: CI_DRM_12369 -> Patchwork_109592v4 CI-20190529: 20190529 CI_DRM_12369: cdcedc1a52e4f4ec01a8f8c51065d651c31bea87 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_7050: 42839a7c2bab78bc6cda8c949d8545606f377735 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_109592v4: cdcedc1a52e4f4ec01a8f8c51065d651c31bea87 @ git://anongit.freedesktop.org/gfx-ci/linux ### Linux commits 5ea996887c23 drm/i915/audio: Clean up the PCH type checks 571837affc04 drm/i915/audio: s/ilk/ibx/ 7fe001e657e7 drm/i915/audio: Include ELD in the state dump 2265feb22988 drm/i915/audio: Hook up ELD into the state checker 9f467f81032a drm/i915/sdvo: Do ELD hardware readout b52485f022a9 drm/i915/sdvo: Only use "presence detect" for has_audio readout 3d1bb630c366 drm/i915/sdvo: Precompute the ELD aa1b6eb5741b drm/i915/audio: Hardware ELD readout 8d5dc8066d54 drm/i915/audio: Don't enable audio with bogus ELD c57cf7e8f67f drm/i915/audio: Precompute the ELD 1c3482baca05 drm/i915/audio: Introduce a struct for the acomp audio state 8cbe1f457e38 drm/i915/audio: Realign some function arguments 2d4cd72034f3 drm/i915/audio: Unify get_saved_enc() 5dfb2856c2d0 drm/i915/audio: Don't program the hardware ELD buffer on hsw+ 3339610ecbaa drm/i915/audio: Don't program the hardware ELD buffer on ilk+ == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109592v4/index.html
Re: [Intel-gfx] [PATCH v1] drm/i915/gt: Add sysfs RAPL PL1 interface
On 11/9/2022 6:37 AM, Dixit, Ashutosh wrote: On Thu, 03 Nov 2022 05:37:23 -0700, Sujaritha Sundaresan wrote: Hi Suja, Adding the rapl_pl1_freq_mhz sysfs attribute. Signed-off-by: Sujaritha Sundaresan Cc: Ashutosh Dixit --- drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c | 20 ++ drivers/gpu/drm/i915/gt/intel_rps.c | 44 + drivers/gpu/drm/i915/gt/intel_rps.h | 3 ++ drivers/gpu/drm/i915/i915_reg.h | 4 ++ 4 files changed, 71 insertions(+) diff --git a/drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c b/drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c index 904160952369..e7f00ec252f8 100644 --- a/drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c +++ b/drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c @@ -496,6 +496,17 @@ static DEVICE_ATTR_RO(vlv_rpe_freq_mhz); static const struct attribute * const gen6_rps_attrs[] = GEN6_RPS_ATTR; static const struct attribute * const gen6_gt_attrs[] = GEN6_GT_ATTR; +static ssize_t rapl_pl1_freq_mhz_show(struct device *dev, + struct device_attribute *attr, + char *buff) +{ + struct intel_gt *gt = intel_gt_sysfs_get_drvdata(dev, attr->attr.name); + u32 rapl_pl1 = intel_rps_read_rapl_pl1_frequency(>rps); + + return sysfs_emit(buff, "%u\n", rapl_pl1); +} + + static ssize_t punit_req_freq_mhz_show(struct device *dev, struct device_attribute *attr, char *buff) @@ -534,6 +545,7 @@ struct intel_gt_bool_throttle_attr attr_##sysfs_func__ = { \ .mask = mask__, \ } +static DEVICE_ATTR_RO(rapl_pl1_freq_mhz); static DEVICE_ATTR_RO(punit_req_freq_mhz); Is this patch against old code? Since this is now INTEL_GT_ATTR_RO. Yes the build failed. So rapl_pl1_freq_mhz will need to follow punit_req_freq_mhz. Okay yes looks like I might not have grabbed the latest tree. static INTEL_GT_RPS_BOOL_ATTR_RO(throttle_reason_status, GT0_PERF_LIMIT_REASONS_MASK); static INTEL_GT_RPS_BOOL_ATTR_RO(throttle_reason_pl1, POWER_LIMIT_1_MASK); @@ -790,12 +802,20 @@ void intel_gt_sysfs_pm_init(struct intel_gt *gt, struct kobject *kobj) if (!is_object_gt(kobj)) return; + ret = sysfs_create_file(kobj, _attr_rapl_pl1_freq_mhz.attr); The convention here is to create sysfs files only for platforms on which a feature (in this case RAPL PL1 freq) is supported. Also are we sure this is only available on MTL and XEHPSDV and not on DG2? Since generally a feature appears first on a platform and then is available for all successive products. If it's available on DG2 too then we can use something like: if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 50)) See GRAPHICS_VER_FULL for various platforms in i915_pci.c. I will check again for DG2. + if (ret) + drm_warn(>i915->drm, + "failed to create gt%u rapl_pl1_freq_mhz sysfs(%pe)", + gt->info.id, ERR_PTR(ret)); + + ret = sysfs_create_file(kobj, _attr_punit_req_freq_mhz.attr); if (ret) drm_warn(>i915->drm, "failed to create gt%u punit_req_freq_mhz sysfs (%pe)", gt->info.id, ERR_PTR(ret)); + Remove empty line. if (i915_mmio_reg_valid(intel_gt_perf_limit_reasons_reg(gt))) { ret = sysfs_create_files(kobj, throttle_reason_attrs); if (ret) diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c b/drivers/gpu/drm/i915/gt/intel_rps.c index 17b40b625e31..0e89b941e3be 100644 --- a/drivers/gpu/drm/i915/gt/intel_rps.c +++ b/drivers/gpu/drm/i915/gt/intel_rps.c @@ -9,6 +9,7 @@ #include "i915_drv.h" #include "i915_irq.h" +#include "i915_reg.h" Not needed, see below. #include "intel_breadcrumbs.h" #include "intel_gt.h" #include "intel_gt_clock_utils.h" @@ -2422,6 +2423,49 @@ bool rps_read_mask_mmio(struct intel_rps *rps, return rps_read_mmio(rps, reg32) & mask; } +u32 intel_rps_read_rapl_pl1(struct intel_rps *rps) +{ + struct drm_i915_private *i915 = rps_to_i915(rps); + i915_reg_t rgadr; + u32 rapl_pl1; + + if (IS_METEORLAKE(i915)) { + rgadr = MTL_RAPL_PL1_FREQ_LIMIT; + } else if (IS_XEHPSDV(i915)) { + rgadr = XEHPSDV_RAPL_PL1_FREQ_LIMIT; + } else { + MISSING_CASE(GRAPHICS_VER(i915)); + rgadr = INVALID_MMIO_REG; No need for this, the sysfs file will only be visible for platforms on which this is supported so this will never be hit. + } + + if (!i915_mmio_reg_valid(rgadr)) + rapl_pl1 = 0; No need for this either. + else + rapl_pl1 = rps_read_mmio(rps, rgadr); + + return rapl_pl1; +} + +u32 intel_rps_get_rapl(struct intel_rps *rps, u32 rapl_pl1) +{ + struct drm_i915_private *i915 = rps_to_i915(rps); + u32 rapl = 0; + + if (IS_METEORLAKE(i915)
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for Panel replay phase1 implementation (rev4)
== Series Details == Series: Panel replay phase1 implementation (rev4) URL : https://patchwork.freedesktop.org/series/94470/ State : warning == Summary == Error: dim sparse failed Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately.
[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Panel replay phase1 implementation (rev4)
== Series Details == Series: Panel replay phase1 implementation (rev4) URL : https://patchwork.freedesktop.org/series/94470/ State : warning == Summary == Error: dim checkpatch failed 03d1576a6e6b drm/i915/panelreplay: dpcd register definition for panelreplay 474dba49884a drm/i915/panelreplay: Added HAS_PANEL_REPLAY() macro 6c3dfa5959d6 drm/i915/panelreplay: Initializaton and compute config for panel replay -:33: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'intel_dp' - possible side-effects? #33: FILE: drivers/gpu/drm/i915/display/intel_display_types.h:1931: +#define CAN_PANEL_REPLAY(intel_dp) ((intel_dp)->psr.sink_panel_replay_support && \ + (intel_dp)->psr.source_panel_replay_support) total: 0 errors, 0 warnings, 1 checks, 184 lines checked 0ee64c0bb07b drm/i915/panelreplay: enable/disable panel replay
[Intel-gfx] ✗ Fi.CI.IGT: failure for Fix timeout handling when retiring requests
== Series Details == Series: Fix timeout handling when retiring requests URL : https://patchwork.freedesktop.org/series/110729/ State : failure == Summary == CI Bug Log - changes from CI_DRM_12365_full -> Patchwork_110729v1_full Summary --- **FAILURE** Serious unknown changes coming with Patchwork_110729v1_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_110729v1_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. Participating hosts (11 -> 11) -- No changes in participating hosts Possible new issues --- Here are the unknown changes that may have been introduced in Patchwork_110729v1_full: ### IGT changes ### Possible regressions * igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-b-hdmi-a-1: - shard-glk: [PASS][1] -> [INCOMPLETE][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk8/igt@kms_atomic_transition@plane-all-modeset-transition-fenc...@pipe-b-hdmi-a-1.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110729v1/shard-glk6/igt@kms_atomic_transition@plane-all-modeset-transition-fenc...@pipe-b-hdmi-a-1.html Suppressed The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-d-hdmi-a-4: - {shard-dg1}:NOTRUN -> [INCOMPLETE][3] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110729v1/shard-dg1-17/igt@kms_pipe_crc_basic@suspend-read-...@pipe-d-hdmi-a-4.html Known issues Here are the changes found in Patchwork_110729v1_full that come from known issues: ### CI changes ### Issues hit * boot: - shard-apl: ([PASS][4], [PASS][5], [PASS][6], [PASS][7], [PASS][8], [PASS][9], [PASS][10], [PASS][11], [PASS][12], [PASS][13], [PASS][14], [PASS][15], [PASS][16], [PASS][17], [PASS][18], [PASS][19], [PASS][20], [PASS][21], [PASS][22], [PASS][23], [PASS][24], [PASS][25], [PASS][26], [PASS][27], [PASS][28]) -> ([PASS][29], [PASS][30], [PASS][31], [PASS][32], [PASS][33], [PASS][34], [PASS][35], [PASS][36], [PASS][37], [PASS][38], [PASS][39], [PASS][40], [PASS][41], [PASS][42], [PASS][43], [PASS][44], [PASS][45], [PASS][46], [PASS][47], [PASS][48], [PASS][49], [PASS][50], [PASS][51], [FAIL][52], [PASS][53]) ([i915#4386]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl1/boot.html [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl1/boot.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl1/boot.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl1/boot.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl2/boot.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl2/boot.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl2/boot.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl2/boot.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl3/boot.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl3/boot.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl3/boot.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl3/boot.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl6/boot.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl6/boot.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl6/boot.html [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl6/boot.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl6/boot.html [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl7/boot.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl7/boot.html [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl7/boot.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl7/boot.html [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl8/boot.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl8/boot.html [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl8/boot.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl8/boot.html [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110729v1/shard-apl8/boot.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110729v1/shard-apl8/boot.html [31]:
Re: [Intel-gfx] [PATCH v2 00/11] Connect VFIO to IOMMUFD
On 11/7/22 7:52 PM, Jason Gunthorpe wrote: > This series provides an alternative container layer for VFIO implemented > using iommufd. This is optional, if CONFIG_IOMMUFD is not set then it will > not be compiled in. > > At this point iommufd can be injected by passing in a iommfd FD to > VFIO_GROUP_SET_CONTAINER which will use the VFIO compat layer in iommufd > to obtain the compat IOAS and then connect up all the VFIO drivers as > appropriate. > > This is temporary stopping point, a following series will provide a way to > directly open a VFIO device FD and directly connect it to IOMMUFD using > native ioctls that can expose the IOMMUFD features like hwpt, future > vPASID and dynamic attachment. > > This series, in compat mode, has passed all the qemu tests we have > available, including the test suites for the Intel GVT mdev. Aside from > the temporary limitation with P2P memory this is belived to be fully > compatible with VFIO. AFAICT there is no equivalent means to specify vfio_iommu_type1.dma_entry_limit when using iommufd; looks like we'll just always get the default 65535. Was this because you envision the limit being not applicable for iommufd (limits will be enforced via either means and eventually we won't want to ) or was it an oversight? Thanks, Matt
Re: [Intel-gfx] [PATCH 2/2] drm/i915/gvt: Unconditionally put reference to KVM when detaching vGPU
> From: Sean Christopherson > Sent: Friday, November 11, 2022 8:22 AM > > Always put the KVM reference when closing a vCPU device, as > intel_vgpu_open_device() succeeds if and only if the KVM pointer is > valid and a reference to KVM is acquired. And if that doesn't hold true, > the call to kvm_page_track_unregister_notifier() a few lines earlier is > doomed. > > Signed-off-by: Sean Christopherson Reviewed-by: Kevin Tian
Re: [Intel-gfx] [PATCH 1/2] drm/i915/gvt: Get reference to KVM iff attachment to VM is successful
> From: Sean Christopherson > Sent: Friday, November 11, 2022 8:22 AM > > Get a reference to KVM if and only if a vGPU is successfully attached to > the VM to avoid leaking a reference if there's no available vGPU. On > open_device() failure, vfio_device_open() doesn't invoke close_device(). > > Fixes: 421cfe6596f6 ("vfio: remove VFIO_GROUP_NOTIFY_SET_KVM") > Cc: sta...@vger.kernel.org > Signed-off-by: Sean Christopherson Reviewed-by: Kevin Tian
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: ELD precompute and readout (rev4)
== Series Details == Series: drm/i915: ELD precompute and readout (rev4) URL : https://patchwork.freedesktop.org/series/109592/ State : warning == Summary == Error: dim sparse failed Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately.
[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: ELD precompute and readout (rev4)
== Series Details == Series: drm/i915: ELD precompute and readout (rev4) URL : https://patchwork.freedesktop.org/series/109592/ State : warning == Summary == Error: dim checkpatch failed dd5b3afe38e7 drm/i915/audio: Don't program the hardware ELD buffer on ilk+ 663c2d197a11 drm/i915/audio: Don't program the hardware ELD buffer on hsw+ -:33: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description (prefer a maximum 75 chars per line) #33: References: https://lore.kernel.org/intel-gfx/20221012104936.30911-1-ville.syrj...@linux.intel.com/ total: 0 errors, 1 warnings, 0 checks, 56 lines checked 45ba9d086b99 drm/i915/audio: Unify get_saved_enc() 223b8cd348ec drm/i915/audio: Realign some function arguments 1e495a4f847c drm/i915/audio: Introduce a struct for the acomp audio state -:248: CHECK:COMPARISON_TO_NULL: Comparison to NULL could be written "audio_state->connector" #248: FILE: drivers/gpu/drm/i915/display/intel_audio.c:1175: + *enabled = audio_state->connector != NULL; total: 0 errors, 0 warnings, 1 checks, 253 lines checked 8c22657785b9 drm/i915/audio: Precompute the ELD -:133: CHECK:COMPARISON_TO_NULL: Comparison to NULL could be written "audio_state->encoder" #133: FILE: drivers/gpu/drm/i915/display/intel_audio.c:1187: + *enabled = audio_state->encoder != NULL; total: 0 errors, 0 warnings, 1 checks, 164 lines checked 69036cdc509c drm/i915/audio: Don't enable audio with bogus ELD 0567a74a66b3 drm/i915/audio: Hardware ELD readout b616451d3973 drm/i915/sdvo: Precompute the ELD cb1307fa641a drm/i915/sdvo: Only use "presence detect" for has_audio readout a48ee0c45ec7 drm/i915/sdvo: Do ELD hardware readout 8856bf4484bb drm/i915/audio: Hook up ELD into the state checker -:72: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'name' - possible side-effects? #72: FILE: drivers/gpu/drm/i915/display/intel_display.c:5710: +#define PIPE_CONF_CHECK_BUFFER(name, len) do { \ + BUILD_BUG_ON(sizeof(current_config->name) != (len)); \ + BUILD_BUG_ON(sizeof(pipe_config->name) != (len)); \ + if (!intel_compare_buffer(current_config->name, pipe_config->name, (len))) { \ + pipe_config_buffer_mismatch(dev_priv, fastset, __stringify(name), \ + current_config->name, \ + pipe_config->name, \ + (len)); \ + ret = false; \ + } \ +} while (0) -:72: CHECK:MACRO_ARG_PRECEDENCE: Macro argument 'name' may be better as '(name)' to avoid precedence issues #72: FILE: drivers/gpu/drm/i915/display/intel_display.c:5710: +#define PIPE_CONF_CHECK_BUFFER(name, len) do { \ + BUILD_BUG_ON(sizeof(current_config->name) != (len)); \ + BUILD_BUG_ON(sizeof(pipe_config->name) != (len)); \ + if (!intel_compare_buffer(current_config->name, pipe_config->name, (len))) { \ + pipe_config_buffer_mismatch(dev_priv, fastset, __stringify(name), \ + current_config->name, \ + pipe_config->name, \ + (len)); \ + ret = false; \ + } \ +} while (0) -:72: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'len' - possible side-effects? #72: FILE: drivers/gpu/drm/i915/display/intel_display.c:5710: +#define PIPE_CONF_CHECK_BUFFER(name, len) do { \ + BUILD_BUG_ON(sizeof(current_config->name) != (len)); \ + BUILD_BUG_ON(sizeof(pipe_config->name) != (len)); \ + if (!intel_compare_buffer(current_config->name, pipe_config->name, (len))) { \ + pipe_config_buffer_mismatch(dev_priv, fastset, __stringify(name), \ + current_config->name, \ + pipe_config->name, \ + (len)); \ + ret = false; \ + } \ +} while (0) total: 0 errors, 0 warnings, 3 checks, 67 lines checked 7d6e5434606e drm/i915/audio: Include ELD in the state dump c0ec1cafa02d drm/i915/audio: s/ilk/ibx/ bf235da3024e drm/i915/audio: Clean up the PCH type checks
[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Simplify internal helper function signature
== Series Details == Series: drm/i915: Simplify internal helper function signature URL : https://patchwork.freedesktop.org/series/110753/ State : success == Summary == CI Bug Log - changes from CI_DRM_12369 -> Patchwork_110753v1 Summary --- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110753v1/index.html Participating hosts (40 -> 38) -- Missing(2): fi-ctg-p8600 fi-bdw-samus Known issues Here are the changes found in Patchwork_110753v1 that come from known issues: ### IGT changes ### Issues hit * igt@core_hotunplug@unbind-rebind: - fi-apl-guc: [PASS][1] -> [INCOMPLETE][2] ([i915#7073]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/fi-apl-guc/igt@core_hotunp...@unbind-rebind.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110753v1/fi-apl-guc/igt@core_hotunp...@unbind-rebind.html * igt@i915_pm_rpm@basic-pci-d3-state: - bat-adlp-4: [PASS][3] -> [DMESG-WARN][4] ([i915#7077]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/bat-adlp-4/igt@i915_pm_...@basic-pci-d3-state.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110753v1/bat-adlp-4/igt@i915_pm_...@basic-pci-d3-state.html * igt@kms_chamelium@common-hpd-after-suspend: - fi-hsw-4770:NOTRUN -> [SKIP][5] ([fdo#109271] / [fdo#111827]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110753v1/fi-hsw-4770/igt@kms_chamel...@common-hpd-after-suspend.html * igt@runner@aborted: - bat-adlp-4: NOTRUN -> [FAIL][6] ([i915#4312]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110753v1/bat-adlp-4/igt@run...@aborted.html Possible fixes * igt@gem_exec_suspend@basic-s0@smem: - {bat-rplp-1}: [DMESG-WARN][7] ([i915#2867]) -> [PASS][8] [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110753v1/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html * igt@i915_selftest@live@hangcheck: - fi-hsw-4770:[INCOMPLETE][9] ([i915#4785]) -> [PASS][10] [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/fi-hsw-4770/igt@i915_selftest@l...@hangcheck.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110753v1/fi-hsw-4770/igt@i915_selftest@l...@hangcheck.html * igt@i915_selftest@live@slpc: - {bat-adln-1}: [DMESG-FAIL][11] ([i915#6997]) -> [PASS][12] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/bat-adln-1/igt@i915_selftest@l...@slpc.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110753v1/bat-adln-1/igt@i915_selftest@l...@slpc.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367 [i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997 [i915#7029]: https://gitlab.freedesktop.org/drm/intel/issues/7029 [i915#7073]: https://gitlab.freedesktop.org/drm/intel/issues/7073 [i915#7077]: https://gitlab.freedesktop.org/drm/intel/issues/7077 Build changes - * Linux: CI_DRM_12369 -> Patchwork_110753v1 CI-20190529: 20190529 CI_DRM_12369: cdcedc1a52e4f4ec01a8f8c51065d651c31bea87 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_7050: 42839a7c2bab78bc6cda8c949d8545606f377735 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_110753v1: cdcedc1a52e4f4ec01a8f8c51065d651c31bea87 @ git://anongit.freedesktop.org/gfx-ci/linux ### Linux commits f10ca2c29ba5 drm/i915: Simplify internal helper function signature == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110753v1/index.html
[Intel-gfx] ✗ Fi.CI.BAT: failure for drm: Analog TV Improvements (rev9)
== Series Details == Series: drm: Analog TV Improvements (rev9) URL : https://patchwork.freedesktop.org/series/107892/ State : failure == Summary == CI Bug Log - changes from CI_DRM_12369 -> Patchwork_107892v9 Summary --- **FAILURE** Serious unknown changes coming with Patchwork_107892v9 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_107892v9, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_107892v9/index.html Participating hosts (40 -> 38) -- Additional (1): fi-kbl-soraka Missing(3): fi-ctg-p8600 fi-hsw-4770 fi-bdw-samus Possible new issues --- Here are the unknown changes that may have been introduced in Patchwork_107892v9: ### IGT changes ### Possible regressions * igt@i915_selftest@live@gt_lrc: - fi-rkl-guc: [PASS][1] -> [INCOMPLETE][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/fi-rkl-guc/igt@i915_selftest@live@gt_lrc.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_107892v9/fi-rkl-guc/igt@i915_selftest@live@gt_lrc.html Known issues Here are the changes found in Patchwork_107892v9 that come from known issues: ### IGT changes ### Issues hit * igt@gem_exec_gttfill@basic: - fi-kbl-soraka: NOTRUN -> [SKIP][3] ([fdo#109271]) +8 similar issues [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_107892v9/fi-kbl-soraka/igt@gem_exec_gttf...@basic.html * igt@gem_huc_copy@huc-copy: - fi-kbl-soraka: NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#2190]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_107892v9/fi-kbl-soraka/igt@gem_huc_c...@huc-copy.html * igt@gem_lmem_swapping@basic: - fi-kbl-soraka: NOTRUN -> [SKIP][5] ([fdo#109271] / [i915#4613]) +3 similar issues [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_107892v9/fi-kbl-soraka/igt@gem_lmem_swapp...@basic.html * igt@i915_selftest@live@gem_contexts: - fi-kbl-soraka: NOTRUN -> [INCOMPLETE][6] ([i915#7099]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_107892v9/fi-kbl-soraka/igt@i915_selftest@live@gem_contexts.html * igt@i915_selftest@live@gt_pm: - fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][7] ([i915#1886]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_107892v9/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html * igt@i915_selftest@live@migrate: - bat-adlp-4: [PASS][8] -> [INCOMPLETE][9] ([i915#7348]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/bat-adlp-4/igt@i915_selftest@l...@migrate.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_107892v9/bat-adlp-4/igt@i915_selftest@l...@migrate.html * igt@kms_chamelium@common-hpd-after-suspend: - fi-rkl-11600: NOTRUN -> [SKIP][10] ([fdo#111827]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_107892v9/fi-rkl-11600/igt@kms_chamel...@common-hpd-after-suspend.html * igt@kms_chamelium@hdmi-hpd-fast: - fi-kbl-soraka: NOTRUN -> [SKIP][11] ([fdo#109271] / [fdo#111827]) +7 similar issues [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_107892v9/fi-kbl-soraka/igt@kms_chamel...@hdmi-hpd-fast.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions-varying-size: - fi-bsw-kefka: [PASS][12] -> [FAIL][13] ([i915#6298]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cur...@atomic-transitions-varying-size.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_107892v9/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cur...@atomic-transitions-varying-size.html * igt@runner@aborted: - bat-adlp-4: NOTRUN -> [FAIL][14] ([i915#4312]) [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_107892v9/bat-adlp-4/igt@run...@aborted.html Possible fixes * igt@gem_exec_suspend@basic-s0@smem: - {bat-rplp-1}: [DMESG-WARN][15] ([i915#2867]) -> [PASS][16] [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_107892v9/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html * igt@gem_exec_suspend@basic-s3@smem: - {bat-rpls-1}: [DMESG-WARN][17] ([i915#6687]) -> [PASS][18] [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12369/bat-rpls-1/igt@gem_exec_suspend@basic...@smem.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_107892v9/bat-rpls-1/igt@gem_exec_suspend@basic...@smem.html * igt@i915_suspend@basic-s3-without-i915: - fi-rkl-11600: [INCOMPLETE][19]
[Intel-gfx] ✓ Fi.CI.IGT: success for DRM scheduling cgroup controller (rev2)
== Series Details == Series: DRM scheduling cgroup controller (rev2) URL : https://patchwork.freedesktop.org/series/109902/ State : success == Summary == CI Bug Log - changes from CI_DRM_12365_full -> Patchwork_109902v2_full Summary --- **WARNING** Minor unknown changes coming with Patchwork_109902v2_full need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_109902v2_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. Participating hosts (11 -> 11) -- No changes in participating hosts Possible new issues --- Here are the unknown changes that may have been introduced in Patchwork_109902v2_full: ### IGT changes ### Warnings * igt@kms_plane_alpha_blend@alpha-basic@pipe-c-dp-1: - shard-apl: [FAIL][1] ([i915#4573]) -> [DMESG-FAIL][2] +1 similar issue [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl1/igt@kms_plane_alpha_blend@alpha-ba...@pipe-c-dp-1.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/shard-apl2/igt@kms_plane_alpha_blend@alpha-ba...@pipe-c-dp-1.html Known issues Here are the changes found in Patchwork_109902v2_full that come from known issues: ### IGT changes ### Issues hit * igt@gem_exec_balancer@parallel-keep-in-fence: - shard-iclb: [PASS][3] -> [SKIP][4] ([i915#4525]) +1 similar issue [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-iclb1/igt@gem_exec_balan...@parallel-keep-in-fence.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/shard-iclb8/igt@gem_exec_balan...@parallel-keep-in-fence.html * igt@gem_exec_fair@basic-pace@vcs1: - shard-iclb: NOTRUN -> [FAIL][5] ([i915#2842]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/shard-iclb1/igt@gem_exec_fair@basic-p...@vcs1.html * igt@gem_lmem_swapping@heavy-verify-random: - shard-apl: NOTRUN -> [SKIP][6] ([fdo#109271] / [i915#4613]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/shard-apl6/igt@gem_lmem_swapp...@heavy-verify-random.html * igt@gen9_exec_parse@allowed-all: - shard-glk: [PASS][7] -> [DMESG-WARN][8] ([i915#5566] / [i915#716]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk5/igt@gen9_exec_pa...@allowed-all.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/shard-glk6/igt@gen9_exec_pa...@allowed-all.html * igt@i915_pm_dc@dc6-psr: - shard-iclb: [PASS][9] -> [FAIL][10] ([i915#3989] / [i915#454]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-iclb1/igt@i915_pm...@dc6-psr.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/shard-iclb8/igt@i915_pm...@dc6-psr.html * igt@kms_big_fb@4-tiled-32bpp-rotate-90: - shard-apl: NOTRUN -> [SKIP][11] ([fdo#109271]) +17 similar issues [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/shard-apl6/igt@kms_big...@4-tiled-32bpp-rotate-90.html * igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180: - shard-iclb: [PASS][12] -> [FAIL][13] ([i915#5138]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-iclb2/igt@kms_big...@x-tiled-max-hw-stride-32bpp-rotate-180.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/shard-iclb3/igt@kms_big...@x-tiled-max-hw-stride-32bpp-rotate-180.html * igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_mc_ccs: - shard-apl: NOTRUN -> [SKIP][14] ([fdo#109271] / [i915#3886]) +3 similar issues [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/shard-apl6/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_mc_ccs.html * igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc: - shard-skl: NOTRUN -> [SKIP][15] ([fdo#109271] / [i915#3886]) +2 similar issues [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/shard-skl1/igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html * igt@kms_chamelium@dp-hpd-with-enabled-mode: - shard-apl: NOTRUN -> [SKIP][16] ([fdo#109271] / [fdo#111827]) [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/shard-apl6/igt@kms_chamel...@dp-hpd-with-enabled-mode.html * igt@kms_chamelium@hdmi-audio-edid: - shard-skl: NOTRUN -> [SKIP][17] ([fdo#109271] / [fdo#111827]) +3 similar issues [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/shard-skl1/igt@kms_chamel...@hdmi-audio-edid.html * igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-1: - shard-apl: [PASS][18] -> [DMESG-WARN][19] ([i915#180]) +1 similar issue [18]:
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm: Analog TV Improvements (rev9)
== Series Details == Series: drm: Analog TV Improvements (rev9) URL : https://patchwork.freedesktop.org/series/107892/ State : warning == Summary == Error: dim sparse failed Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately.
[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm: Analog TV Improvements (rev9)
== Series Details == Series: drm: Analog TV Improvements (rev9) URL : https://patchwork.freedesktop.org/series/107892/ State : warning == Summary == Error: dim checkpatch failed 7592c541f416 drm/tests: Add Kunit Helpers -:33: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating? #33: new file mode 100644 -:38: WARNING:SPDX_LICENSE_TAG: Missing or malformed SPDX-License-Identifier tag in line 1 #38: FILE: drivers/gpu/drm/tests/drm_kunit_helpers.c:1: +#include -:108: WARNING:SPDX_LICENSE_TAG: Missing or malformed SPDX-License-Identifier tag in line 1 #108: FILE: drivers/gpu/drm/tests/drm_kunit_helpers.h:1: +#ifndef DRM_KUNIT_HELPERS_H_ total: 0 errors, 3 warnings, 0 checks, 80 lines checked c135545c3f03 drm/connector: Rename legacy TV property -:111: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis #111: FILE: drivers/gpu/drm/i2c/ch7006_drv.c:268: + drm_object_attach_property(>base, conf->legacy_tv_mode_property, priv->norm); total: 0 errors, 0 warnings, 1 checks, 164 lines checked 28582f6e45ef drm/connector: Only register TV mode property if present 0bcc81d83aa5 drm/connector: Rename drm_mode_create_tv_properties 39a0b97efe22 drm/connector: Add TV standard property -:79: CHECK:LINE_SPACING: Please use a blank line after function/struct/union/enum declarations #79: FILE: drivers/gpu/drm/drm_connector.c:996: +}; +DRM_ENUM_NAME_FN(drm_get_tv_mode_name, drm_tv_mode_enum_list) -:335: WARNING:TYPO_SPELLING: 'Superseeded' may be misspelled - perhaps 'Superseded'? #335: FILE: include/drm/drm_mode_config.h:720: +* Superseeded by @tv_mode_property ^^^ total: 0 errors, 1 warnings, 1 checks, 291 lines checked d4e2d66458bc drm/modes: Add a function to generate analog display modes Traceback (most recent call last): File "scripts/spdxcheck.py", line 11, in import git ModuleNotFoundError: No module named 'git' -:122: WARNING:LONG_LINE: line length of 119 exceeds 100 columns #122: FILE: drivers/gpu/drm/drm_modes.c:212: +#define TV_MODE_PARAMETER(_mode, _lines, _line_dur, _hact, _hfp, _hslen, _hbp, _hblk, _bt601_hfp, _vfp, _vslen, _vbp) \ -:137: WARNING:STATIC_CONST: Move const after static - use 'static const struct analog_parameters ' #137: FILE: drivers/gpu/drm/drm_modes.c:227: +const static struct analog_parameters tv_modes_parameters[] = { -:330: WARNING:TABSTOP: Statements should start on a tabstop #330: FILE: drivers/gpu/drm/drm_modes.c:420: +int porches_rem = porches - hfp_min - hbp_min; -:377: WARNING:TYPO_SPELLING: 'asymetric' may be misspelled - perhaps 'asymmetric'? #377: FILE: drivers/gpu/drm/drm_modes.c:467: +* PAL systems also have asymetric timings between the ^ -:378: WARNING:TYPO_SPELLING: 'symetric' may be misspelled - perhaps 'symmetric'? #378: FILE: drivers/gpu/drm/drm_modes.c:468: +* even and odd field, while NTSC is symetric. -:518: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating? #518: new file mode 100644 -:664: CHECK:OPEN_ENDED_LINE: Lines should not end with a '(' #664: FILE: drivers/gpu/drm/tests/drm_modes_test.c:142: +kunit_test_suites( -:667: WARNING:MODULE_LICENSE: Prefer "GPL" over "GPL v2" - see commit bf7fbeeae6db ("module: Cure the MODULE_LICENSE "GPL" vs. "GPL v2" bogosity") #667: FILE: drivers/gpu/drm/tests/drm_modes_test.c:145: +MODULE_LICENSE("GPL v2"); total: 0 errors, 7 warnings, 1 checks, 654 lines checked e2a4d98fd520 drm/client: Add some tests for drm_connector_pick_cmdline_mode() Traceback (most recent call last): File "scripts/spdxcheck.py", line 11, in import git ModuleNotFoundError: No module named 'git' -:34: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating? #34: new file mode 100644 -:95: CHECK:BRACES: Blank lines aren't necessary before a close brace '}' #95: FILE: drivers/gpu/drm/tests/drm_client_modeset_test.c:57: + +} -:126: CHECK:LINE_SPACING: Please don't use multiple blank lines #126: FILE: drivers/gpu/drm/tests/drm_client_modeset_test.c:88: + + total: 0 errors, 1 warnings, 2 checks, 107 lines checked 2f63c68c62b5 drm/modes: Move named modes parsing to a separate function e36f3aa1d427 drm/modes: Switch to named mode descriptors 2f422334e718 drm/modes: Fill drm_cmdline mode from named modes 50a19f54f8e0 drm/connector: Add pixel clock to cmdline mode 32251d266eb8 drm/connector: Add a function to lookup a TV mode by its name Traceback (most recent call last): File "scripts/spdxcheck.py", line 11, in import git ModuleNotFoundError: No module named 'git' -:68: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating? #68: new file mode 100644 -:119: CHECK:LINE_SPACING: Please use a blank line after
[Intel-gfx] [PATCH] drm/i915/huc: fix leak of debug object in huc load fence on driver unload
The fence is always initialized in huc_init_early, but the cleanup in huc_fini is only being run if HuC is enabled. This causes a leaking of the debug object when HuC is disabled/not supported, which can in turn trigger a warning if we try to register a new debug offset at the same address on driver reload. To fix the issue, make sure to always run the cleanup code. Reported-by: Tvrtko Ursulin Reported-by: Brian Norris Fixes: 27536e03271d ("drm/i915/huc: track delayed HuC load with a fence") Signed-off-by: Daniele Ceraolo Spurio Cc: Tvrtko Ursulin Cc: Brian Norris Cc: Alan Previn Cc: John Harrison --- Note: I didn't manage to repro the reported warning, but I did confirm that we weren't correctly calling i915_sw_fence_fini and that this patch fixes that. drivers/gpu/drm/i915/gt/uc/intel_huc.c | 12 +++- drivers/gpu/drm/i915/gt/uc/intel_uc.c | 1 + 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/uc/intel_huc.c b/drivers/gpu/drm/i915/gt/uc/intel_huc.c index fbc8bae14f76..83735a1528fe 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_huc.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_huc.c @@ -300,13 +300,15 @@ int intel_huc_init(struct intel_huc *huc) void intel_huc_fini(struct intel_huc *huc) { - if (!intel_uc_fw_is_loadable(>fw)) - return; - + /* +* the fence is initialized in init_early, so we need to clean it up +* even if HuC loading is off. +*/ delayed_huc_load_complete(huc); - i915_sw_fence_fini(>delayed_load.fence); - intel_uc_fw_fini(>fw); + + if (intel_uc_fw_is_loadable(>fw)) + intel_uc_fw_fini(>fw); } void intel_huc_suspend(struct intel_huc *huc) diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc.c b/drivers/gpu/drm/i915/gt/uc/intel_uc.c index dbd048b77e19..41f08b55790e 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_uc.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_uc.c @@ -718,6 +718,7 @@ int intel_uc_runtime_resume(struct intel_uc *uc) static const struct intel_uc_ops uc_ops_off = { .init_hw = __uc_check_hw, + .fini = __uc_fini, /* to clean-up the init_early initialization */ }; static const struct intel_uc_ops uc_ops_on = { -- 2.37.3
[Intel-gfx] ✗ Fi.CI.IGT: failure for series starting with [CI,1/7] drm/i915/huc: only load HuC on GTs that have VCS engines (rev3)
== Series Details == Series: series starting with [CI,1/7] drm/i915/huc: only load HuC on GTs that have VCS engines (rev3) URL : https://patchwork.freedesktop.org/series/110646/ State : failure == Summary == CI Bug Log - changes from CI_DRM_12365_full -> Patchwork_110646v3_full Summary --- **FAILURE** Serious unknown changes coming with Patchwork_110646v3_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_110646v3_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. Participating hosts (11 -> 11) -- No changes in participating hosts Possible new issues --- Here are the unknown changes that may have been introduced in Patchwork_110646v3_full: ### IGT changes ### Possible regressions * igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-b-hdmi-a-1: - shard-glk: [PASS][1] -> [INCOMPLETE][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk8/igt@kms_atomic_transition@plane-all-modeset-transition-fenc...@pipe-b-hdmi-a-1.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/shard-glk9/igt@kms_atomic_transition@plane-all-modeset-transition-fenc...@pipe-b-hdmi-a-1.html * igt@kms_atomic_transition@plane-all-modeset-transition@pipe-b-hdmi-a-2: - shard-glk: NOTRUN -> [INCOMPLETE][3] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/shard-glk8/igt@kms_atomic_transition@plane-all-modeset-transit...@pipe-b-hdmi-a-2.html Known issues Here are the changes found in Patchwork_110646v3_full that come from known issues: ### IGT changes ### Issues hit * igt@gem_exec_balancer@parallel-keep-in-fence: - shard-iclb: [PASS][4] -> [SKIP][5] ([i915#4525]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-iclb1/igt@gem_exec_balan...@parallel-keep-in-fence.html [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/shard-iclb3/igt@gem_exec_balan...@parallel-keep-in-fence.html * igt@gem_exec_fair@basic-pace-share@rcs0: - shard-glk: [PASS][6] -> [FAIL][7] ([i915#2842]) +2 similar issues [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk1/igt@gem_exec_fair@basic-pace-sh...@rcs0.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/shard-glk7/igt@gem_exec_fair@basic-pace-sh...@rcs0.html * igt@gem_exec_fair@basic-pace@vcs1: - shard-iclb: NOTRUN -> [FAIL][8] ([i915#2842]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/shard-iclb2/igt@gem_exec_fair@basic-p...@vcs1.html * igt@gem_lmem_swapping@heavy-verify-random: - shard-apl: NOTRUN -> [SKIP][9] ([fdo#109271] / [i915#4613]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/shard-apl2/igt@gem_lmem_swapp...@heavy-verify-random.html * igt@i915_pm_dc@dc6-psr: - shard-iclb: [PASS][10] -> [FAIL][11] ([i915#3989] / [i915#454]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-iclb1/igt@i915_pm...@dc6-psr.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/shard-iclb3/igt@i915_pm...@dc6-psr.html * igt@kms_big_fb@4-tiled-32bpp-rotate-90: - shard-apl: NOTRUN -> [SKIP][12] ([fdo#109271]) +17 similar issues [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/shard-apl2/igt@kms_big...@4-tiled-32bpp-rotate-90.html * igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_mc_ccs: - shard-apl: NOTRUN -> [SKIP][13] ([fdo#109271] / [i915#3886]) +3 similar issues [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/shard-apl2/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_mc_ccs.html * igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc: - shard-skl: NOTRUN -> [SKIP][14] ([fdo#109271] / [i915#3886]) +2 similar issues [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/shard-skl1/igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html * igt@kms_chamelium@dp-hpd-with-enabled-mode: - shard-apl: NOTRUN -> [SKIP][15] ([fdo#109271] / [fdo#111827]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/shard-apl2/igt@kms_chamel...@dp-hpd-with-enabled-mode.html * igt@kms_chamelium@hdmi-audio-edid: - shard-skl: NOTRUN -> [SKIP][16] ([fdo#109271] / [fdo#111827]) +3 similar issues [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/shard-skl1/igt@kms_chamel...@hdmi-audio-edid.html * igt@kms_cursor_crc@cursor-suspend@pipe-b-dp-1: - shard-apl: [PASS][17] -> [DMESG-WARN][18] ([i915#180]) [17]:
[Intel-gfx] [PATCH] drm/i915/guc: add the GSC CS to the GuC capture list
For the GSC engine we only want to capture the instance regs. Signed-off-by: Daniele Ceraolo Spurio Cc: Alan Previn --- drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c | 11 +++ 1 file changed, 11 insertions(+) diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c index 4e6dca707d94..1d49a7ec0bd8 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c @@ -132,6 +132,11 @@ static const struct __guc_mmio_reg_descr xe_lpd_blt_inst_regs[] = { COMMON_BASE_ENGINE_INSTANCE, }; +/* XE_LPD - GSC Per-Engine-Instance */ +static const struct __guc_mmio_reg_descr xe_lpd_gsc_inst_regs[] = { + COMMON_BASE_ENGINE_INSTANCE, +}; + /* GEN9 - Global */ static const struct __guc_mmio_reg_descr default_global_regs[] = { COMMON_BASE_GLOBAL, @@ -177,6 +182,8 @@ static struct __guc_mmio_reg_descr_group default_lists[] = { MAKE_REGLIST(xe_lpd_vec_inst_regs, PF, ENGINE_INSTANCE, GUC_VIDEOENHANCE_CLASS), MAKE_REGLIST(empty_regs_list, PF, ENGINE_CLASS, GUC_BLITTER_CLASS), MAKE_REGLIST(xe_lpd_blt_inst_regs, PF, ENGINE_INSTANCE, GUC_BLITTER_CLASS), + MAKE_REGLIST(empty_regs_list, PF, ENGINE_CLASS, GUC_GSC_OTHER_CLASS), + MAKE_REGLIST(xe_lpd_gsc_inst_regs, PF, ENGINE_INSTANCE, GUC_GSC_OTHER_CLASS), {} }; @@ -192,6 +199,8 @@ static const struct __guc_mmio_reg_descr_group xe_lpd_lists[] = { MAKE_REGLIST(xe_lpd_vec_inst_regs, PF, ENGINE_INSTANCE, GUC_VIDEOENHANCE_CLASS), MAKE_REGLIST(empty_regs_list, PF, ENGINE_CLASS, GUC_BLITTER_CLASS), MAKE_REGLIST(xe_lpd_blt_inst_regs, PF, ENGINE_INSTANCE, GUC_BLITTER_CLASS), + MAKE_REGLIST(empty_regs_list, PF, ENGINE_CLASS, GUC_GSC_OTHER_CLASS), + MAKE_REGLIST(xe_lpd_gsc_inst_regs, PF, ENGINE_INSTANCE, GUC_GSC_OTHER_CLASS), {} }; @@ -454,6 +463,8 @@ __stringify_engclass(u32 class) return "Blitter"; case GUC_COMPUTE_CLASS: return "Compute"; + case GUC_GSC_OTHER_CLASS: + return "GSC-Other"; default: break; } -- 2.37.3
Re: [Intel-gfx] [PATCH v2 07/11] vfio-iommufd: Support iommufd for physical VFIO devices
> From: Jason Gunthorpe > Sent: Friday, November 11, 2022 1:21 AM > > On Thu, Nov 10, 2022 at 03:11:16AM +, Tian, Kevin wrote: > > > From: Jason Gunthorpe > > > Sent: Tuesday, November 8, 2022 8:53 AM > > > > > > + > > > +int vfio_iommufd_bind(struct vfio_device *vdev, struct iommufd_ctx > *ictx) > > > +{ > > > + u32 ioas_id; > > > + u32 device_id; > > > + int ret; > > > + > > > + lockdep_assert_held(>dev_set->lock); > > > + > > > + /* > > > + * If the driver doesn't provide this op then it means the device does > > > + * not do DMA at all. So nothing to do. > > > + */ > > > + if (!vdev->ops->bind_iommufd) > > > + return 0; > > > + > > > + ret = vdev->ops->bind_iommufd(vdev, ictx, _id); > > > + if (ret) > > > + return ret; > > > + > > > + ret = iommufd_vfio_compat_ioas_id(ictx, _id); > > > + if (ret) > > > + goto err_unbind; > > > + ret = vdev->ops->attach_ioas(vdev, _id); > > > + if (ret) > > > + goto err_unbind; > > > > with our discussion in v1: > > > > https://lore.kernel.org/all/y2mgjqz8fvm54...@nvidia.com/ > > > > I got the rationale on iommufd part which doesn't have the concept > > of container hence not necessarily to impose restriction on when > > an user can change a compat ioas. > > > > But from vfio side I wonder whether we should cache the compat > > ioas id when it's attached by the first device and then use it all the > > way for other device attachments coming after. implying IOAS_SET > > only affects containers which haven't been attached. > > I can't see a reason to do this. IOAS_SET is a new ioctl and it has > new semantics beyond what original vfio container could do. In this > case having an impact on the next vfio_device that is opened. > > This seems generally useful enough I wouldn't want to block it. > > In any case, we can't *really* change this because the vfio layer is > working on IDs and the IDs can be destroyed/recreated from under > it. So if we try to hold the ID we could still end up getting it > changed anyhow. > OK, this is a valid point. So a legacy vfio application doesn't use IOAS_SET so the backward compatibility is guaranteed. a iommufd native application will use cdev where IOAS_SET and compat ioas are irrelevant. here just we allow an interesting usage where an user is allowed to do more funny things with IOAS_SET on vfio-compat. Not sure how useful it is but not something we want to prohibit.
[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/dsc: Refactor dsc gen checks
== Series Details == Series: drm/i915/dsc: Refactor dsc gen checks URL : https://patchwork.freedesktop.org/series/110744/ State : success == Summary == CI Bug Log - changes from CI_DRM_12365 -> Patchwork_110744v1 Summary --- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110744v1/index.html Participating hosts (41 -> 40) -- Additional (2): bat-atsm-1 fi-tgl-dsi Missing(3): fi-ctg-p8600 fi-bdw-samus fi-kbl-8809g Possible new issues --- Here are the unknown changes that may have been introduced in Patchwork_110744v1: ### IGT changes ### Suppressed The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@i915_selftest@live@migrate: - {bat-atsm-1}: NOTRUN -> [INCOMPLETE][1] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110744v1/bat-atsm-1/igt@i915_selftest@l...@migrate.html Known issues Here are the changes found in Patchwork_110744v1 that come from known issues: ### IGT changes ### Issues hit * igt@core_hotunplug@unbind-rebind: - fi-apl-guc: NOTRUN -> [INCOMPLETE][2] ([i915#7073]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110744v1/fi-apl-guc/igt@core_hotunp...@unbind-rebind.html * igt@i915_pm_rpm@basic-pci-d3-state: - bat-adlp-4: [PASS][3] -> [DMESG-WARN][4] ([i915#7077]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/bat-adlp-4/igt@i915_pm_...@basic-pci-d3-state.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110744v1/bat-adlp-4/igt@i915_pm_...@basic-pci-d3-state.html * igt@i915_selftest@live@hangcheck: - fi-hsw-4770:[PASS][5] -> [INCOMPLETE][6] ([i915#4785]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-hsw-4770/igt@i915_selftest@l...@hangcheck.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110744v1/fi-hsw-4770/igt@i915_selftest@l...@hangcheck.html * igt@kms_chamelium@hdmi-crc-fast: - fi-apl-guc: NOTRUN -> [SKIP][7] ([fdo#109271] / [fdo#111827]) +7 similar issues [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110744v1/fi-apl-guc/igt@kms_chamel...@hdmi-crc-fast.html * igt@kms_psr@sprite_plane_onoff: - fi-apl-guc: NOTRUN -> [SKIP][8] ([fdo#109271]) +11 similar issues [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110744v1/fi-apl-guc/igt@kms_psr@sprite_plane_onoff.html * igt@runner@aborted: - fi-hsw-4770:NOTRUN -> [FAIL][9] ([fdo#109271] / [i915#4312] / [i915#5594]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110744v1/fi-hsw-4770/igt@run...@aborted.html - bat-adlp-4: NOTRUN -> [FAIL][10] ([i915#4312]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110744v1/bat-adlp-4/igt@run...@aborted.html Possible fixes * igt@gem_exec_suspend@basic-s0@smem: - {bat-rplp-1}: [DMESG-WARN][11] ([i915#2867]) -> [PASS][12] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110744v1/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html * igt@gem_render_tiled_blits@basic: - fi-apl-guc: [INCOMPLETE][13] ([i915#7056]) -> [PASS][14] [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-apl-guc/igt@gem_render_tiled_bl...@basic.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110744v1/fi-apl-guc/igt@gem_render_tiled_bl...@basic.html * igt@gem_tiled_blits@basic: - fi-pnv-d510:[SKIP][15] ([fdo#109271]) -> [PASS][16] +1 similar issue [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-pnv-d510/igt@gem_tiled_bl...@basic.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110744v1/fi-pnv-d510/igt@gem_tiled_bl...@basic.html * igt@i915_selftest@live@gt_heartbeat: - fi-skl-guc: [DMESG-FAIL][17] ([i915#5334]) -> [PASS][18] [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-skl-guc/igt@i915_selftest@live@gt_heartbeat.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110744v1/fi-skl-guc/igt@i915_selftest@live@gt_heartbeat.html Warnings * igt@gem_exec_gttfill@basic: - fi-pnv-d510:[SKIP][19] ([fdo#109271]) -> [FAIL][20] ([i915#7229]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-pnv-d510/igt@gem_exec_gttf...@basic.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110744v1/fi-pnv-d510/igt@gem_exec_gttf...@basic.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915: header cleanups, cont'd
== Series Details == Series: drm/i915: header cleanups, cont'd URL : https://patchwork.freedesktop.org/series/110716/ State : failure == Summary == CI Bug Log - changes from CI_DRM_12365_full -> Patchwork_110716v1_full Summary --- **FAILURE** Serious unknown changes coming with Patchwork_110716v1_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_110716v1_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. Participating hosts (11 -> 11) -- No changes in participating hosts Possible new issues --- Here are the unknown changes that may have been introduced in Patchwork_110716v1_full: ### IGT changes ### Possible regressions * igt@gem_exec_endless@dispatch@vecs0: - shard-tglb: [PASS][1] -> [TIMEOUT][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-tglb5/igt@gem_exec_endless@dispa...@vecs0.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110716v1/shard-tglb8/igt@gem_exec_endless@dispa...@vecs0.html * igt@kms_atomic_transition@plane-primary-toggle-with-vblank-wait@pipe-a-edp-1: - shard-iclb: [PASS][3] -> [DMESG-WARN][4] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-iclb2/igt@kms_atomic_transition@plane-primary-toggle-with-vblank-w...@pipe-a-edp-1.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110716v1/shard-iclb3/igt@kms_atomic_transition@plane-primary-toggle-with-vblank-w...@pipe-a-edp-1.html Suppressed The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@gem_pxp@reject-modify-context-protection-off-1: - {shard-dg1}:[SKIP][5] ([i915#4270]) -> [INCOMPLETE][6] [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-dg1-15/igt@gem_...@reject-modify-context-protection-off-1.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110716v1/shard-dg1-17/igt@gem_...@reject-modify-context-protection-off-1.html Known issues Here are the changes found in Patchwork_110716v1_full that come from known issues: ### CI changes ### Issues hit * boot: - shard-snb: ([PASS][7], [PASS][8], [PASS][9], [PASS][10], [PASS][11], [PASS][12], [PASS][13], [PASS][14], [PASS][15], [PASS][16], [PASS][17], [PASS][18], [PASS][19], [PASS][20], [PASS][21], [PASS][22], [PASS][23], [PASS][24], [PASS][25], [PASS][26], [PASS][27], [PASS][28], [PASS][29], [PASS][30], [PASS][31]) -> ([PASS][32], [PASS][33], [PASS][34], [PASS][35], [PASS][36], [PASS][37], [PASS][38], [PASS][39], [PASS][40], [PASS][41], [PASS][42], [PASS][43], [FAIL][44], [PASS][45], [PASS][46], [PASS][47], [PASS][48], [PASS][49], [PASS][50], [PASS][51], [PASS][52], [PASS][53], [PASS][54], [PASS][55], [PASS][56]) ([i915#4338]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb7/boot.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb7/boot.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb7/boot.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb7/boot.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb7/boot.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb6/boot.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb6/boot.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb6/boot.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb6/boot.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb6/boot.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb6/boot.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb5/boot.html [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb5/boot.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb5/boot.html [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb5/boot.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb5/boot.html [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb4/boot.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb4/boot.html [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb4/boot.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb4/boot.html [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb2/boot.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-snb2/boot.html [29]:
Re: [Intel-gfx] [PATCH v8 17/24] drm/probe-helper: Provide a TV get_modes helper
Hi Maxime, On 11/10/22 08:07, Maxime Ripard wrote: > From: Noralf Trønnes > > Most of the TV connectors will need a similar get_modes implementation > that will, depending on the drivers' capabilities, register the 480i and > 576i modes. > > That implementation will also need to set the preferred flag and order > the modes based on the driver and users preferrence. > > This is especially important to guarantee that a userspace stack such as > Xorg can start and pick up the preferred mode while maintaining a > working output. > > Signed-off-by: Noralf Trønnes > Tested-by: Mateusz Kwiatkowski > Signed-off-by: Maxime Ripard > > --- > Changes in v8: > - Remove unused tv_mode_support function > - Add unit tests > > Changes in v7: > - Used Noralf's implementation > > Changes in v6: > - New patch > --- > drivers/gpu/drm/drm_probe_helper.c| 82 ++ > drivers/gpu/drm/tests/Makefile| 1 + > drivers/gpu/drm/tests/drm_probe_helper_test.c | 209 > ++ > include/drm/drm_probe_helper.h| 1 + > 4 files changed, 293 insertions(+) > > diff --git a/drivers/gpu/drm/tests/drm_probe_helper_test.c > b/drivers/gpu/drm/tests/drm_probe_helper_test.c > new file mode 100644 > index ..4f295b39f746 > --- /dev/null > +++ b/drivers/gpu/drm/tests/drm_probe_helper_test.c > @@ -0,0 +1,209 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * Kunit test for drm_probe_helper functions > + */ > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +#include > + > +#include "drm_kunit_helpers.h" > + > +static const struct drm_display_mode ntsc_mode = { > + DRM_MODE("720x480i", 0, 13500, > + 720, 736, 800, 858, 0, > + 480, 486, 492, 525, 0, > + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | > DRM_MODE_FLAG_INTERLACE) > +}; > + > +static const struct drm_display_mode pal_mode = { > + DRM_MODE("720x576i", 0, 13500, > + 720, 732, 796, 864, 0, > + 576, 581, 587, 625, 0, > + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | > DRM_MODE_FLAG_INTERLACE) > +}; > + > +struct drm_probe_helper_test_priv { > + struct drm_device *drm; > + struct drm_connector connector; > +}; > + > +static const struct drm_connector_helper_funcs > drm_probe_helper_connector_helper_funcs = { > +}; > + > +static const struct drm_connector_funcs drm_probe_helper_connector_funcs = { > + .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, > + .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, > + .reset = drm_atomic_helper_connector_reset, > +}; > + > +static int drm_probe_helper_test_init(struct kunit *test) > +{ > + struct drm_probe_helper_test_priv *priv; > + struct drm_connector *connector; > + int ret; > + > + priv = kunit_kzalloc(test, sizeof(*priv), GFP_KERNEL); > + KUNIT_ASSERT_NOT_NULL(test, priv); > + test->priv = priv; > + > + priv->drm = drm_kunit_device_init(test, DRIVER_MODESET | DRIVER_ATOMIC, > + "drm-probe-helper-test"); > + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, priv->drm); > + > + connector = >connector; > + ret = drmm_connector_init(priv->drm, connector, > + _probe_helper_connector_funcs, > + DRM_MODE_CONNECTOR_Unknown, > + NULL); > + KUNIT_ASSERT_EQ(test, ret, 0); > + > + drm_connector_helper_add(connector, > _probe_helper_connector_helper_funcs); > + > + return 0; > +} > + > +struct drm_connector_helper_tv_get_modes_test { > + const char *name; > + unsigned int supported_tv_modes; > + enum drm_connector_tv_mode default_mode; > + bool cmdline; > + enum drm_connector_tv_mode cmdline_mode; > + const struct drm_display_mode **expected_modes; > + unsigned int num_expected_modes; > +}; > + > +#define _TV_MODE_TEST(_name, _supported, _default, _cmdline, _cmdline_mode, > ...) \ > + { > \ > + .name = _name, > \ > + .supported_tv_modes = _supported, > \ > + .default_mode = _default, > \ > + .cmdline = _cmdline, > \ > + .cmdline_mode = _cmdline_mode, > \ > + .expected_modes = (const struct drm_display_mode*[]) { > __VA_ARGS__ }, \ > + .num_expected_modes = sizeof((const struct drm_display_mode*[]) > { __VA_ARGS__ }) /
Re: [Intel-gfx] [PATCH v8 16/24] drm/modes: Introduce more named modes
Hi Maxime, On 11/10/22 08:07, Maxime Ripard wrote: > Now that we can easily extend the named modes list, let's add a few more > analog TV modes that were used in the wild, and some unit tests to make > sure it works as intended. > > Tested-by: Mateusz Kwiatkowski > Signed-off-by: Maxime Ripard > > --- > Changes in v6: > - Renamed the tests to follow DRM test naming convention > > Changes in v5: > - Switched to KUNIT_ASSERT_NOT_NULL > --- > drivers/gpu/drm/drm_modes.c | 2 + > drivers/gpu/drm/tests/drm_client_modeset_test.c | 54 > + > 2 files changed, 56 insertions(+) > > diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c > index d3f0a3559812..855569a269b8 100644 > --- a/drivers/gpu/drm/drm_modes.c > +++ b/drivers/gpu/drm/drm_modes.c > @@ -2272,7 +2272,9 @@ struct drm_named_mode { > > static const struct drm_named_mode drm_named_modes[] = { > NAMED_MODE("NTSC", 13500, 720, 480, DRM_MODE_FLAG_INTERLACE, > DRM_MODE_TV_MODE_NTSC), > + NAMED_MODE("NTSC-J", 13500, 720, 480, DRM_MODE_FLAG_INTERLACE, > DRM_MODE_TV_MODE_NTSC_J), > NAMED_MODE("PAL", 13500, 720, 576, DRM_MODE_FLAG_INTERLACE, > DRM_MODE_TV_MODE_PAL), > + NAMED_MODE("PAL-M", 13500, 720, 480, DRM_MODE_FLAG_INTERLACE, > DRM_MODE_TV_MODE_PAL_M), > }; > > static int drm_mode_parse_cmdline_named_mode(const char *name, > diff --git a/drivers/gpu/drm/tests/drm_client_modeset_test.c > b/drivers/gpu/drm/tests/drm_client_modeset_test.c > index 768e8efb2f52..cf38e7cf0f08 100644 > --- a/drivers/gpu/drm/tests/drm_client_modeset_test.c > +++ b/drivers/gpu/drm/tests/drm_client_modeset_test.c > @@ -133,6 +133,32 @@ static void drm_test_pick_cmdline_named_ntsc(struct > kunit *test) > KUNIT_EXPECT_TRUE(test, drm_mode_equal(drm_mode_analog_ntsc_480i(drm), > mode)); > } > > +static void drm_test_pick_cmdline_named_ntsc_j(struct kunit *test) > +{ > + struct drm_client_modeset_test_priv *priv = test->priv; > + struct drm_device *drm = priv->drm; > + struct drm_connector *connector = >connector; > + struct drm_cmdline_mode *cmdline_mode = >cmdline_mode; > + struct drm_display_mode *mode; > + const char *cmdline = "NTSC-J"; > + int ret; > + > + KUNIT_ASSERT_TRUE(test, > + drm_mode_parse_command_line_for_connector(cmdline, > + connector, > + > cmdline_mode)); > + > + mutex_lock(>mode_config.mutex); > + ret = drm_helper_probe_single_connector_modes(connector, 1920, 1080); > + mutex_unlock(>mode_config.mutex); > + KUNIT_ASSERT_GT(test, ret, 0); > + > + mode = drm_connector_pick_cmdline_mode(connector); > + KUNIT_ASSERT_NOT_NULL(test, mode); > + > + KUNIT_EXPECT_TRUE(test, drm_mode_equal(drm_mode_analog_ntsc_480i(drm), > mode)); > +} > + > static void drm_test_pick_cmdline_named_pal(struct kunit *test) > { > struct drm_client_modeset_test_priv *priv = test->priv; > @@ -159,10 +185,38 @@ static void drm_test_pick_cmdline_named_pal(struct > kunit *test) > KUNIT_EXPECT_TRUE(test, drm_mode_equal(drm_mode_analog_pal_576i(drm), > mode)); > } > > +static void drm_test_pick_cmdline_named_pal_m(struct kunit *test) > +{ > + struct drm_client_modeset_test_priv *priv = test->priv; > + struct drm_device *drm = priv->drm; > + struct drm_connector *connector = >connector; > + struct drm_cmdline_mode *cmdline_mode = >cmdline_mode; > + struct drm_display_mode *mode; > + const char *cmdline = "PAL-M"; > + int ret; > + > + KUNIT_ASSERT_TRUE(test, > + drm_mode_parse_command_line_for_connector(cmdline, > + connector, > + > cmdline_mode)); > + > + mutex_lock(>mode_config.mutex); > + ret = drm_helper_probe_single_connector_modes(connector, 1920, 1080); > + mutex_unlock(>mode_config.mutex); > + KUNIT_ASSERT_GT(test, ret, 0); > + > + mode = drm_connector_pick_cmdline_mode(connector); > + KUNIT_ASSERT_NOT_NULL(test, mode); > + > + KUNIT_EXPECT_TRUE(test, drm_mode_equal(drm_mode_analog_ntsc_480i(drm), > mode)); > +} > + > static struct kunit_case drm_test_pick_cmdline_tests[] = { > KUNIT_CASE(drm_test_pick_cmdline_res_1920_1080_60), > KUNIT_CASE(drm_test_pick_cmdline_named_ntsc), > + KUNIT_CASE(drm_test_pick_cmdline_named_ntsc_j), > KUNIT_CASE(drm_test_pick_cmdline_named_pal), > + KUNIT_CASE(drm_test_pick_cmdline_named_pal_m), As the tests drm_test_pick_cmdline_named_ntsc, drm_test_pick_cmdline_named_ntsc_j, drm_test_pick_cmdline_named_pal and drm_test_pick_cmdline_named_pal_m follow a pretty similar structure, it would be nice to parametrize those tests. Best Regards, - Maíra Canal > {} > }; > >
Re: [Intel-gfx] [PATCH v8 12/24] drm/connector: Add a function to lookup a TV mode by its name
Hi Maxime, On 11/10/22 08:07, Maxime Ripard wrote: > As part of the command line parsing rework coming in the next patches, > we'll need to lookup drm_connector_tv_mode values by their name, already > defined in drm_tv_mode_enum_list. > > In order to avoid any code duplication, let's do a function that will > perform a lookup of a TV mode name and return its value. > > Reviewed-by: Noralf Trønnes > Tested-by: Mateusz Kwiatkowski > Signed-off-by: Maxime Ripard > > --- > Changes in v7: > - Add kunit tests > --- > drivers/gpu/drm/drm_connector.c| 24 > drivers/gpu/drm/tests/Makefile | 1 + > drivers/gpu/drm/tests/drm_connector_test.c | 90 > ++ > include/drm/drm_connector.h| 2 + > 4 files changed, 117 insertions(+) > > diff --git a/drivers/gpu/drm/tests/drm_connector_test.c > b/drivers/gpu/drm/tests/drm_connector_test.c > new file mode 100644 > index ..f2272b9df211 > --- /dev/null > +++ b/drivers/gpu/drm/tests/drm_connector_test.c > @@ -0,0 +1,90 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * Kunit test for drm_modes functions > + */ > + > +#include > + > +#include > + > +struct drm_get_tv_mode_from_name_test { > + const char *name; > + enum drm_connector_tv_mode expected_mode; > +}; > + > +#define TV_MODE_NAME(_name, _mode) \ > + { \ > + .name = _name, \ > + .expected_mode = _mode, \ > + } > + > +static void drm_test_get_tv_mode_from_name_valid(struct kunit *test) > +{ > + const struct drm_get_tv_mode_from_name_test *params = test->param_value; > + > + KUNIT_EXPECT_EQ(test, > + drm_get_tv_mode_from_name(params->name, > strlen(params->name)), > + params->expected_mode); > +} > + > +static const > +struct drm_get_tv_mode_from_name_test > drm_get_tv_mode_from_name_valid_tests[] = { > + TV_MODE_NAME("NTSC", DRM_MODE_TV_MODE_NTSC), > + TV_MODE_NAME("NTSC-443", DRM_MODE_TV_MODE_NTSC_443), > + TV_MODE_NAME("NTSC-J", DRM_MODE_TV_MODE_NTSC_J), > + TV_MODE_NAME("PAL", DRM_MODE_TV_MODE_PAL), > + TV_MODE_NAME("PAL-M", DRM_MODE_TV_MODE_PAL_M), > + TV_MODE_NAME("PAL-N", DRM_MODE_TV_MODE_PAL_N), > + TV_MODE_NAME("SECAM", DRM_MODE_TV_MODE_SECAM), > +}; > + > +static void > +drm_get_tv_mode_from_name_valid_desc(const struct > drm_get_tv_mode_from_name_test *t, > + char *desc) > +{ > + sprintf(desc, "%s", t->name); > +} I believe that it should be a blank line here for code style. > +KUNIT_ARRAY_PARAM(drm_get_tv_mode_from_name_valid, > + drm_get_tv_mode_from_name_valid_tests, > + drm_get_tv_mode_from_name_valid_desc); > + > +static void drm_test_get_tv_mode_from_name_invalid(struct kunit *test) > +{ > + const char *name = *(const char **)test->param_value; > + > + KUNIT_EXPECT_LT(test, > + drm_get_tv_mode_from_name(name, strlen(name)), > + 0); > +} > + > +static const > +char *drm_get_tv_mode_from_name_invalid_tests[] = { > + /* Truncated */ > + "NTS", > +}; Considering that there is only one invalid test, is there a particular reason to parametrize this test? > + > +static void > +drm_get_tv_mode_from_name_invalid_desc(const char **name, char *desc) > +{ > + sprintf(desc, "%s", *name); > +} > +KUNIT_ARRAY_PARAM(drm_get_tv_mode_from_name_invalid, > + drm_get_tv_mode_from_name_invalid_tests, > + drm_get_tv_mode_from_name_invalid_desc); > + > +static struct kunit_case drm_get_tv_mode_from_name_tests[] = { > + KUNIT_CASE_PARAM(drm_test_get_tv_mode_from_name_valid, > + drm_get_tv_mode_from_name_valid_gen_params), > + KUNIT_CASE_PARAM(drm_test_get_tv_mode_from_name_invalid, > + drm_get_tv_mode_from_name_invalid_gen_params), > + { } > +}; > + > +static struct kunit_suite drm_get_tv_mode_from_name_test_suite = { > + .name = "drm_get_tv_mode_from_name", > + .test_cases = drm_get_tv_mode_from_name_tests, > +}; > + > +kunit_test_suites( > + _get_tv_mode_from_name_test_suite > +); Considering that there is only one suite, you could use the kunit_test_suite macro instead. Best Regards, - Maíra Canal >
Re: [Intel-gfx] [PATCH v8 06/24] drm/modes: Add a function to generate analog display modes
Hi Maxime, On 11/10/22 08:07, Maxime Ripard wrote: > Multiple drivers (meson, vc4, sun4i) define analog TV 525-lines and > 625-lines modes in their drivers. > > Since those modes are fairly standard, and that we'll need to use them > in more places in the future, it makes sense to move their definition > into the core framework. > > However, analog display usually have fairly loose timings requirements, > the only discrete parameters being the total number of lines and pixel > clock frequency. Thus, we created a function that will create a display > mode from the standard, the pixel frequency and the active area. > > Tested-by: Mateusz Kwiatkowski > Signed-off-by: Maxime Ripard > > --- > Changes in v6: > - Fix typo > > Changes in v4: > - Reworded the line length check comment > - Switch to HZ_PER_KHZ in tests > - Use previous timing to fill our mode > - Move the number of lines check earlier > --- > drivers/gpu/drm/drm_modes.c| 474 > + > drivers/gpu/drm/tests/Makefile | 1 + > drivers/gpu/drm/tests/drm_modes_test.c | 145 ++ > include/drm/drm_modes.h| 17 ++ > 4 files changed, 637 insertions(+) > > diff --git a/drivers/gpu/drm/tests/drm_modes_test.c > b/drivers/gpu/drm/tests/drm_modes_test.c > new file mode 100644 > index ..afeda9f07859 > --- /dev/null > +++ b/drivers/gpu/drm/tests/drm_modes_test.c > @@ -0,0 +1,145 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * Kunit test for drm_modes functions > + */ > + > +#include > +#include > + > +#include > + > +#include > + > +#include "drm_kunit_helpers.h" > + > +struct drm_modes_test_priv { > + struct drm_device *drm; > +}; > + > +static int drm_modes_test_init(struct kunit *test) > +{ > + struct drm_modes_test_priv *priv; > + > + priv = kunit_kzalloc(test, sizeof(*priv), GFP_KERNEL); > + KUNIT_ASSERT_NOT_NULL(test, priv); > + > + priv->drm = drm_kunit_device_init(test, DRIVER_MODESET, > "drm-modes-test"); > + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, priv->drm); > + > + test->priv = priv; > + > + return 0; > +} > + As you did on the other tests, it would be nice to use the same naming convention as the other DRM tests. So, maybe change the "drm_modes" prefix to "drm_test_modes". > +static void drm_modes_analog_tv_ntsc_480i(struct kunit *test) > +{ > + struct drm_modes_test_priv *priv = test->priv; > + struct drm_display_mode *mode; > + > + mode = drm_analog_tv_mode(priv->drm, > + DRM_MODE_TV_MODE_NTSC, > + 13500 * HZ_PER_KHZ, 720, 480, > + true); > + KUNIT_ASSERT_NOT_NULL(test, mode); > + > + KUNIT_EXPECT_EQ(test, drm_mode_vrefresh(mode), 60); > + KUNIT_EXPECT_EQ(test, mode->hdisplay, 720); > + > + /* BT.601 defines hsync_start at 736 for 480i */ > + KUNIT_EXPECT_EQ(test, mode->hsync_start, 736); > + > + /* > + * The NTSC standard expects a line to take 63.556us. With a > + * pixel clock of 13.5 MHz, a pixel takes around 74ns, so we > + * need to have 63556ns / 74ns = 858. > + * > + * This is also mandated by BT.601. > + */ > + KUNIT_EXPECT_EQ(test, mode->htotal, 858); > + > + KUNIT_EXPECT_EQ(test, mode->vdisplay, 480); > + KUNIT_EXPECT_EQ(test, mode->vtotal, 525); > +} > + > +static void drm_modes_analog_tv_ntsc_480i_inlined(struct kunit *test) > +{ > + struct drm_modes_test_priv *priv = test->priv; > + struct drm_display_mode *expected, *mode; > + > + expected = drm_analog_tv_mode(priv->drm, > + DRM_MODE_TV_MODE_NTSC, > + 13500 * HZ_PER_KHZ, 720, 480, > + true); > + KUNIT_ASSERT_NOT_NULL(test, expected); > + > + mode = drm_mode_analog_ntsc_480i(priv->drm); > + KUNIT_ASSERT_NOT_NULL(test, mode); > + > + KUNIT_EXPECT_TRUE(test, drm_mode_equal(expected, mode)); > +} > + > +static void drm_modes_analog_tv_pal_576i(struct kunit *test) > +{ > + struct drm_modes_test_priv *priv = test->priv; > + struct drm_display_mode *mode; > + > + mode = drm_analog_tv_mode(priv->drm, > + DRM_MODE_TV_MODE_PAL, > + 13500 * HZ_PER_KHZ, 720, 576, > + true); > + KUNIT_ASSERT_NOT_NULL(test, mode); > + > + KUNIT_EXPECT_EQ(test, drm_mode_vrefresh(mode), 50); > + KUNIT_EXPECT_EQ(test, mode->hdisplay, 720); > + > + /* BT.601 defines hsync_start at 732 for 576i */ > + KUNIT_EXPECT_EQ(test, mode->hsync_start, 732); > + > + /* > + * The PAL standard expects a line to take 64us. With a pixel > + * clock of 13.5 MHz, a pixel takes around 74ns, so we need to > + * have 64000ns / 74ns = 864. > + * > + * This is also mandated by BT.601. > + */ > + KUNIT_EXPECT_EQ(test, mode->htotal, 864); > + > +
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915/dsc: Refactor dsc gen checks
== Series Details == Series: drm/i915/dsc: Refactor dsc gen checks URL : https://patchwork.freedesktop.org/series/110744/ State : warning == Summary == Error: dim sparse failed Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately.
Re: [Intel-gfx] [PATCH 6/6] drm/i915: Bpp/timeslot calculation fixes for DP MST DSC
On Thu, Nov 03, 2022 at 03:23:00PM +0200, Stanislav Lisovskiy wrote: > Fix intel_dp_dsc_compute_config, previously timeslots parameter > was used in fact not as a timeslots, but more like a ratio > timeslots/64, which of course didn't have any effect for SST DSC, > but causes now issues for MST DSC. > Secondly we need to calculate pipe_bpp using intel_dp_dsc_compute_bpp > only for SST DSC case, while for MST case it has been calculated > earlier already with intel_dp_dsc_mst_compute_link_config. > Third we also were wrongly determining sink min bpp/max bpp, those > limites should be intersected with our limits to find common > acceptable bpp's, plus on top of that we should align those with > VESA bpps and only then calculate required timeslots amount. > Some MST hubs started to work only after third change was made. > > v2: Make kernel test robot happy(claimed there was unitialzed use, > while there is none) > > Signed-off-by: Stanislav Lisovskiy > --- > drivers/gpu/drm/i915/display/intel_dp.c | 69 ++--- > drivers/gpu/drm/i915/display/intel_dp.h | 3 +- > drivers/gpu/drm/i915/display/intel_dp_mst.c | 69 + > 3 files changed, 106 insertions(+), 35 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c > b/drivers/gpu/drm/i915/display/intel_dp.c > index 8288a30dbd51..82752b696498 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp.c > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > @@ -716,9 +716,14 @@ u16 intel_dp_dsc_get_output_bpp(struct drm_i915_private > *i915, >* for SST -> TimeSlotsPerMTP is 1, >* for MST -> TimeSlotsPerMTP has to be calculated >*/ > - bits_per_pixel = (link_clock * lane_count * 8) * timeslots / > - intel_dp_mode_to_fec_clock(mode_clock); > - drm_dbg_kms(>drm, "Max link bpp: %u\n", bits_per_pixel); > + bits_per_pixel = DIV_ROUND_UP((link_clock * lane_count) * timeslots, > + intel_dp_mode_to_fec_clock(mode_clock) * > 8); Why did we remove the *8 in the numerator for the total bandwidth link_clock * lane_count * 8 ? Other than this clarification, all changes look good Manasi > + > + drm_dbg_kms(>drm, "Max link bpp is %u for %u timeslots " > + "total bw %u pixel clock %u\n", > + bits_per_pixel, timeslots, > + (link_clock * lane_count * 8), > + intel_dp_mode_to_fec_clock(mode_clock)); > > /* Small Joiner Check: output bpp <= joiner RAM (bits) / Horiz. width */ > max_bpp_small_joiner_ram = small_joiner_ram_size_bits(i915) / > @@ -1047,7 +1052,7 @@ intel_dp_mode_valid(struct drm_connector *_connector, > target_clock, > mode->hdisplay, > bigjoiner, > - pipe_bpp, 1) >> 4; > + pipe_bpp, 64) >> 4; > dsc_slice_count = > intel_dp_dsc_get_slice_count(intel_dp, >target_clock, > @@ -1481,7 +1486,8 @@ int intel_dp_dsc_compute_config(struct intel_dp > *intel_dp, > struct intel_crtc_state *pipe_config, > struct drm_connector_state *conn_state, > struct link_config_limits *limits, > - int timeslots) > + int timeslots, > + bool compute_pipe_bpp) > { > struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); > struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev); > @@ -1496,7 +1502,10 @@ int intel_dp_dsc_compute_config(struct intel_dp > *intel_dp, > if (!intel_dp_supports_dsc(intel_dp, pipe_config)) > return -EINVAL; > > - pipe_bpp = intel_dp_dsc_compute_bpp(intel_dp, > conn_state->max_requested_bpc); > + if (compute_pipe_bpp) > + pipe_bpp = intel_dp_dsc_compute_bpp(intel_dp, > conn_state->max_requested_bpc); > + else > + pipe_bpp = pipe_config->pipe_bpp; > > if (intel_dp->force_dsc_bpc) { > pipe_bpp = intel_dp->force_dsc_bpc * 3; > @@ -1527,31 +1536,47 @@ int intel_dp_dsc_compute_config(struct intel_dp > *intel_dp, > drm_dp_dsc_sink_max_slice_count(intel_dp->dsc_dpcd, > true); > } else { > - u16 dsc_max_output_bpp; > + u16 dsc_max_output_bpp = 0; > u8 dsc_dp_slice_count; > > - dsc_max_output_bpp = > - intel_dp_dsc_get_output_bpp(dev_priv, > -
[Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915: Finish (de)gamma readout (rev2)
== Series Details == Series: drm/i915: Finish (de)gamma readout (rev2) URL : https://patchwork.freedesktop.org/series/79614/ State : failure == Summary == CI Bug Log - changes from CI_DRM_12365 -> Patchwork_79614v2 Summary --- **FAILURE** Serious unknown changes coming with Patchwork_79614v2 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_79614v2, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_79614v2/index.html Participating hosts (41 -> 38) -- Missing(3): fi-ctg-p8600 fi-bdw-samus fi-kbl-8809g Possible new issues --- Here are the unknown changes that may have been introduced in Patchwork_79614v2: ### IGT changes ### Possible regressions * igt@i915_module_load@load: - fi-ilk-650: [PASS][1] -> [DMESG-WARN][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-ilk-650/igt@i915_module_l...@load.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_79614v2/fi-ilk-650/igt@i915_module_l...@load.html - fi-bxt-dsi: [PASS][3] -> [DMESG-WARN][4] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-bxt-dsi/igt@i915_module_l...@load.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_79614v2/fi-bxt-dsi/igt@i915_module_l...@load.html - fi-snb-2520m: [PASS][5] -> [DMESG-WARN][6] [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-snb-2520m/igt@i915_module_l...@load.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_79614v2/fi-snb-2520m/igt@i915_module_l...@load.html - fi-hsw-4770:[PASS][7] -> [DMESG-WARN][8] [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-hsw-4770/igt@i915_module_l...@load.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_79614v2/fi-hsw-4770/igt@i915_module_l...@load.html Suppressed The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@i915_module_load@load: - {bat-dg2-11}: [PASS][9] -> [INCOMPLETE][10] [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/bat-dg2-11/igt@i915_module_l...@load.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_79614v2/bat-dg2-11/igt@i915_module_l...@load.html - {bat-dg2-9}:[PASS][11] -> [INCOMPLETE][12] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/bat-dg2-9/igt@i915_module_l...@load.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_79614v2/bat-dg2-9/igt@i915_module_l...@load.html Known issues Here are the changes found in Patchwork_79614v2 that come from known issues: ### IGT changes ### Issues hit * igt@gem_lmem_swapping@basic: - fi-apl-guc: NOTRUN -> [SKIP][13] ([fdo#109271] / [i915#4613]) +3 similar issues [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_79614v2/fi-apl-guc/igt@gem_lmem_swapp...@basic.html * igt@i915_pm_rpm@basic-pci-d3-state: - bat-adlp-4: [PASS][14] -> [DMESG-WARN][15] ([i915#7077]) [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/bat-adlp-4/igt@i915_pm_...@basic-pci-d3-state.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_79614v2/bat-adlp-4/igt@i915_pm_...@basic-pci-d3-state.html * igt@kms_chamelium@hdmi-crc-fast: - fi-apl-guc: NOTRUN -> [SKIP][16] ([fdo#109271] / [fdo#111827]) +8 similar issues [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_79614v2/fi-apl-guc/igt@kms_chamel...@hdmi-crc-fast.html * igt@kms_force_connector_basic@force-connector-state: - fi-apl-guc: NOTRUN -> [SKIP][17] ([fdo#109271]) +11 similar issues [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_79614v2/fi-apl-guc/igt@kms_force_connector_ba...@force-connector-state.html * igt@runner@aborted: - fi-hsw-4770:NOTRUN -> [FAIL][18] ([i915#4312] / [i915#5594]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_79614v2/fi-hsw-4770/igt@run...@aborted.html - bat-adlp-4: NOTRUN -> [FAIL][19] ([i915#4312]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_79614v2/bat-adlp-4/igt@run...@aborted.html - fi-ilk-650: NOTRUN -> [FAIL][20] ([i915#4312]) [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_79614v2/fi-ilk-650/igt@run...@aborted.html - fi-bxt-dsi: NOTRUN -> [FAIL][21] ([i915#4312]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_79614v2/fi-bxt-dsi/igt@run...@aborted.html - fi-snb-2520m: NOTRUN -> [FAIL][22] ([i915#4312]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_79614v2/fi-snb-2520m/igt@run...@aborted.html
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: Finish (de)gamma readout (rev2)
== Series Details == Series: drm/i915: Finish (de)gamma readout (rev2) URL : https://patchwork.freedesktop.org/series/79614/ State : warning == Summary == Error: dim sparse failed Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately.
[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Finish (de)gamma readout (rev2)
== Series Details == Series: drm/i915: Finish (de)gamma readout (rev2) URL : https://patchwork.freedesktop.org/series/79614/ State : warning == Summary == Error: dim checkpatch failed ad80098b2909 drm/i915: Clean up legacy palette defines 1be46d64da65 drm/i915: Clean up 10bit precision palette defines -:30: WARNING:LONG_LINE: line length of 101 exceeds 100 columns #30: FILE: drivers/gpu/drm/i915/display/intel_color.c:474: + REG_FIELD_PREP(PREC_PALETTE_10_GREEN_MASK, drm_color_lut_extract(color->green, 10)) | total: 0 errors, 1 warnings, 0 checks, 48 lines checked ba1c32a01b06 drm/i915: Clean up 12.4bit precision palette defines 7292f3acfd00 drm/i915: Clean up chv CGM (de)gamma defines -:28: WARNING:LONG_LINE: line length of 105 exceeds 100 columns #28: FILE: drivers/gpu/drm/i915/display/intel_color.c:1080: + return REG_FIELD_PREP(CGM_PIPE_DEGAMMA_GREEN_LDW_MASK, drm_color_lut_extract(color->green, 14)) | -:29: WARNING:LONG_LINE: line length of 103 exceeds 100 columns #29: FILE: drivers/gpu/drm/i915/display/intel_color.c:1081: + REG_FIELD_PREP(CGM_PIPE_DEGAMMA_BLUE_LDW_MASK, drm_color_lut_extract(color->blue, 14)); -:45: WARNING:LONG_LINE: line length of 103 exceeds 100 columns #45: FILE: drivers/gpu/drm/i915/display/intel_color.c:1107: + return REG_FIELD_PREP(CGM_PIPE_GAMMA_GREEN_LDW_MASK, drm_color_lut_extract(color->green, 10)) | -:46: WARNING:LONG_LINE: line length of 101 exceeds 100 columns #46: FILE: drivers/gpu/drm/i915/display/intel_color.c:1108: + REG_FIELD_PREP(CGM_PIPE_GAMMA_BLUE_LDW_MASK, drm_color_lut_extract(color->blue, 10)); total: 0 errors, 4 warnings, 0 checks, 65 lines checked babb1b1c06d6 drm/i915: Reorder 12.4 lut udw vs. ldw functions 29c656a7353c drm/i915: Fix adl+ degamma LUT size 988d2c1b9f30 drm/i915: Add glk+ degamma readout 85458e9c275c drm/i915: Read out CHV CGM degamma -:27: WARNING:LONG_LINE: line length of 101 exceeds 100 columns #27: FILE: drivers/gpu/drm/i915/display/intel_color.c:1091: + entry->green = intel_color_lut_pack(REG_FIELD_GET(CGM_PIPE_DEGAMMA_GREEN_LDW_MASK, ldw), 14); total: 0 errors, 1 warnings, 0 checks, 54 lines checked 0a59b7cbc6f6 drm/i915: Add gamma/degamma readout for bdw+ da3bf65db646 drm/i915: Add gamma/degamma readout for ivb/hsw bf28006605c0 drm/i915: Make ilk_read_luts() capable of degamma readout 17c92a474c6f drm/i915: Make .read_luts() mandatory 509577df038e drm/i915: Finish the LUT state checker -:496: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'lut' - possible side-effects? #496: FILE: drivers/gpu/drm/i915/display/intel_display.c:5678: +#define PIPE_CONF_CHECK_COLOR_LUT(lut, is_pre_csc_lut) do { \ + if (current_config->gamma_mode == pipe_config->gamma_mode && \ + !intel_color_lut_equal(current_config, \ + current_config->lut, pipe_config->lut, \ + is_pre_csc_lut)) { \ + pipe_config_mismatch(fastset, crtc, __stringify(lut), \ +"hw_state doesn't match sw_state"); \ + ret = false; \ } \ } while (0) -:496: CHECK:MACRO_ARG_PRECEDENCE: Macro argument 'lut' may be better as '(lut)' to avoid precedence issues #496: FILE: drivers/gpu/drm/i915/display/intel_display.c:5678: +#define PIPE_CONF_CHECK_COLOR_LUT(lut, is_pre_csc_lut) do { \ + if (current_config->gamma_mode == pipe_config->gamma_mode && \ + !intel_color_lut_equal(current_config, \ + current_config->lut, pipe_config->lut, \ + is_pre_csc_lut)) { \ + pipe_config_mismatch(fastset, crtc, __stringify(lut), \ +"hw_state doesn't match sw_state"); \ + ret = false; \ } \ } while (0) total: 0 errors, 0 warnings, 2 checks, 463 lines checked b855e2fe2818 drm/i915: Rework legacy LUT handling c7eea86b5e5d drm/i915: Use hw degamma LUT for sw gamma on glk with YCbCr output -:93: CHECK:COMPARISON_TO_NULL: Comparison to NULL could be written "crtc_state->post_csc_lut" #93: FILE: drivers/gpu/drm/i915/display/intel_color.c:1418: + crtc_state->post_csc_lut != NULL && total: 0 errors, 0 warnings, 1 checks, 131 lines checked 691de47062ec drm/i915: Use gamma LUT for RGB limited range compression 9ad23c06b78d drm/i915: Add 10bit gamma mode for gen2/3 99b976ce3548 drm/i915: Do state check for color management changes
Re: [Intel-gfx] [PATCH v3 1/9] drm/i915: Allocate power domain set wakerefs dynamically
On Thu, Nov 10, 2022 at 09:55:55PM +0200, Imre Deak wrote: > On Thu, Nov 10, 2022 at 09:11:20PM +0200, Ville Syrjälä wrote: > > On Tue, Nov 08, 2022 at 05:18:23PM +0200, Imre Deak wrote: > > > Since the intel_display_power_domain_set struct, currently its current > > > size close to 1kB, can be allocated on the stack, it's better to > > > allocate the per-domain wakeref pointer array - used for debugging - > > > within the struct dynamically, so do this. > > > > > > The memory freeing is guaranteed by the fact that the acquired domain > > > references tracked by the struct can't be leaked either. > > > > > > v2: > > > - Don't use fetch_and_zero() when freeing the wakerefs array. (Jani) > > > - Simplify intel_display_power_get/put_in_set(). (Jani) > > > - Check in intel_crtc_destroy() that the wakerefs array has been freed. > > > v3: > > > - Add intel_display_power_set_disabled() and a separate assert > > > function instead of open coding these. (Jani) > > > > > > Cc: Jani Nikula > > > Signed-off-by: Imre Deak > > > --- > > > drivers/gpu/drm/i915/display/intel_crtc.c | 11 ++ > > > .../drm/i915/display/intel_display_power.c| 109 ++ > > > .../drm/i915/display/intel_display_power.h| 6 +- > > > 3 files changed, 104 insertions(+), 22 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c > > > b/drivers/gpu/drm/i915/display/intel_crtc.c > > > index 037fc140b585c..c18d98bfe1a7c 100644 > > > --- a/drivers/gpu/drm/i915/display/intel_crtc.c > > > +++ b/drivers/gpu/drm/i915/display/intel_crtc.c > > > @@ -21,6 +21,7 @@ > > > #include "intel_crtc.h" > > > #include "intel_cursor.h" > > > #include "intel_display_debugfs.h" > > > +#include "intel_display_power.h" > > > #include "intel_display_trace.h" > > > #include "intel_display_types.h" > > > #include "intel_drrs.h" > > > @@ -37,6 +38,14 @@ static void assert_vblank_disabled(struct drm_crtc > > > *crtc) > > > drm_crtc_vblank_put(crtc); > > > } > > > > > > +static void assert_power_domains_disabled(struct intel_crtc *crtc) > > > +{ > > > + struct drm_i915_private *i915 = to_i915(crtc->base.dev); > > > + > > > + drm_WARN_ON(>drm, > > > + !intel_display_power_set_disabled(i915, > > > >enabled_power_domains)); > > > +} > > > + > > > struct intel_crtc *intel_first_crtc(struct drm_i915_private *i915) > > > { > > > return to_intel_crtc(drm_crtc_from_index(>drm, 0)); > > > @@ -204,6 +213,8 @@ static void intel_crtc_destroy(struct drm_crtc *_crtc) > > > > > > cpu_latency_qos_remove_request(>vblank_pm_qos); > > > > > > + assert_power_domains_disabled(crtc); > > > + > > > drm_crtc_cleanup(>base); > > > kfree(crtc); > > > } > > > diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c > > > b/drivers/gpu/drm/i915/display/intel_display_power.c > > > index 4c1de91e56ff9..ca63b4f1af41b 100644 > > > --- a/drivers/gpu/drm/i915/display/intel_display_power.c > > > +++ b/drivers/gpu/drm/i915/display/intel_display_power.c > > > @@ -830,20 +830,85 @@ void intel_display_power_put_unchecked(struct > > > drm_i915_private *dev_priv, > > > } > > > #endif > > > > > > +#if IS_ENABLED(CONFIG_DRM_I915_DEBUG_RUNTIME_PM) > > > +static void > > > +add_domain_to_set(struct drm_i915_private *i915, > > > + struct intel_display_power_domain_set *power_domain_set, > > > + enum intel_display_power_domain domain, > > > + intel_wakeref_t wf) > > > +{ > > > + drm_WARN_ON(>drm, test_bit(domain, power_domain_set->mask.bits)); > > > + > > > + if (!power_domain_set->wakerefs) > > > + power_domain_set->wakerefs = kcalloc(POWER_DOMAIN_NUM, > > > + > > > sizeof(*power_domain_set->wakerefs), > > > + GFP_KERNEL); > > > + > > > + if (power_domain_set->wakerefs) > > > + power_domain_set->wakerefs[domain] = wf; > > > > So if the kcalloc() fails is it going to look like > > we're leaking power wakerefs? > > Yes, along with the alloc failure which is also logged. I assumed this > is enough to explain why wakeref tracking doesn't work afterwards, but I > suppose the wakeref could be untracked here in this case. I think a more clear message what is going on would be good. And probably preventing the spam from the wakerefs would also be good to make sure the whole thing doesn't get misdiagnosed as a real power ref leak. -- Ville Syrjälä Intel
[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/display: Add missing checks for cdclk crawling
== Series Details == Series: drm/i915/display: Add missing checks for cdclk crawling URL : https://patchwork.freedesktop.org/series/110734/ State : success == Summary == CI Bug Log - changes from CI_DRM_12365 -> Patchwork_110734v1 Summary --- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110734v1/index.html Participating hosts (41 -> 38) -- Missing(3): fi-ctg-p8600 fi-bdw-samus fi-kbl-8809g Known issues Here are the changes found in Patchwork_110734v1 that come from known issues: ### IGT changes ### Possible fixes * igt@gem_tiled_blits@basic: - fi-pnv-d510:[SKIP][1] ([fdo#109271]) -> [PASS][2] +1 similar issue [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-pnv-d510/igt@gem_tiled_bl...@basic.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110734v1/fi-pnv-d510/igt@gem_tiled_bl...@basic.html * igt@i915_selftest@live@gt_heartbeat: - fi-skl-guc: [DMESG-FAIL][3] ([i915#5334]) -> [PASS][4] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-skl-guc/igt@i915_selftest@live@gt_heartbeat.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110734v1/fi-skl-guc/igt@i915_selftest@live@gt_heartbeat.html Warnings * igt@gem_exec_gttfill@basic: - fi-pnv-d510:[SKIP][5] ([fdo#109271]) -> [FAIL][6] ([i915#7229]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-pnv-d510/igt@gem_exec_gttf...@basic.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110734v1/fi-pnv-d510/igt@gem_exec_gttf...@basic.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845 [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849 [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582 [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#5153]: https://gitlab.freedesktop.org/drm/intel/issues/5153 [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334 [i915#6434]: https://gitlab.freedesktop.org/drm/intel/issues/6434 [i915#7229]: https://gitlab.freedesktop.org/drm/intel/issues/7229 [i915#7346]: https://gitlab.freedesktop.org/drm/intel/issues/7346 Build changes - * Linux: CI_DRM_12365 -> Patchwork_110734v1 CI-20190529: 20190529 CI_DRM_12365: 1bda5b0abc8a0d9d53d9fec1a390dc93e2b0ba57 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_7050: 42839a7c2bab78bc6cda8c949d8545606f377735 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_110734v1: 1bda5b0abc8a0d9d53d9fec1a390dc93e2b0ba57 @ git://anongit.freedesktop.org/gfx-ci/linux ### Linux commits cdf058b63abb drm/i915/display: Add missing checks for cdclk crawling == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110734v1/index.html
Re: [Intel-gfx] [PATCH v6 00/20] drm/i915/vm_bind: Add VM_BIND functionality
On Thu, 2022-11-10 at 15:05 +, Matthew Auld wrote: > On 10/11/2022 14:47, Tvrtko Ursulin wrote: > > > > On 10/11/2022 05:49, Niranjana Vishwanathapura wrote: > > > On Wed, Nov 09, 2022 at 04:16:25PM -0800, Zanoni, Paulo R wrote: > > > > On Mon, 2022-11-07 at 00:51 -0800, Niranjana Vishwanathapura wrote: > > > > > DRM_I915_GEM_VM_BIND/UNBIND ioctls allows UMD to bind/unbind GEM > > > > > buffer objects (BOs) or sections of a BOs at specified GPU virtual > > > > > addresses on a specified address space (VM). Multiple mappings can map > > > > > to the same physical pages of an object (aliasing). These mappings > > > > > (also > > > > > referred to as persistent mappings) will be persistent across multiple > > > > > GPU submissions (execbuf calls) issued by the UMD, without user having > > > > > to provide a list of all required mappings during each submission (as > > > > > required by older execbuf mode). > > > > > > > > > > This patch series support VM_BIND version 1, as described by the param > > > > > I915_PARAM_VM_BIND_VERSION. > > > > > > > > > > Add new execbuf3 ioctl (I915_GEM_EXECBUFFER3) which only works in > > > > > vm_bind mode. The vm_bind mode only works with this new execbuf3 > > > > > ioctl. > > > > > The new execbuf3 ioctl will not have any execlist support and all the > > > > > legacy support like relocations etc., are removed. > > > > > > > > > > NOTEs: > > > > > * It is based on below VM_BIND design+uapi rfc. > > > > > Documentation/gpu/rfc/i915_vm_bind.rst > > > > > > > > Hi > > > > > > > > One difference for execbuf3 that I noticed that is not mentioned in the > > > > RFC document is that we now don't have a way to signal > > > > EXEC_OBJECT_WRITE. When looking at the Kernel code, some there are some > > > > pieces that check for this flag: > > > > > > > > - there's code that deals with frontbuffer rendering > > > > - there's code that deals with fences > > > > - there's code that prevents self-modifying batches > > > > - another that seems related to waiting for objects > > > > > > > > Are there any new rules regarding frontbuffer rendering when we use > > > > execbuf3? Any other behavior changes related to the other places that > > > > we should expect when using execbuf3? > > > > > > > > > > Paulo, > > > Most of the EXEC_OBJECT_WRITE check in execbuf path is related to > > > implicit dependency tracker which execbuf3 does not support. The > > > frontbuffer related updated is the only exception and I don't > > > remember the rationale to not require this on execbuf3. > > > > > > Matt, Tvrtko, Daniel, can you please comment here? > > > > Does not ring a bell to me. Looking at the code it certainly looks like > > it would be silently failing to handle it properly. > > > > I'll let people with more experience in this area answer, but from my > > point of view, if it is decided that it can be left unsupported, then we > > probably need a way of failing the ioctl is used against a frontbuffer, > > or something, instead of having display corruption. There's no way for the ioctl to even know we're writing to frontbuffers. Unless of course it decides to parse the whole batchbuffer and understand everything that's going on there, which sounds insane. > > Maybe it's a coincidence but there is: > https://patchwork.freedesktop.org/series/110715/ > > Which looks relevant. Maarten, any hints here? Can we pretty please have the rules of frontbuffer tracking written anywhere? I had major trouble trying to understand this back when I was working on FBC, and now I regret not having written it back then because I just forgot how it's supposed to work. My first guess when looking at that patch is that it would completely break FBC, but hey so many years have passed since I worked on this that maybe things changed completely. At least I wrote tests to cover this. > > > > > Regards, > > > > Tvrtko
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915/display: Add missing checks for cdclk crawling
== Series Details == Series: drm/i915/display: Add missing checks for cdclk crawling URL : https://patchwork.freedesktop.org/series/110734/ State : warning == Summary == Error: dim sparse failed Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately.
Re: [Intel-gfx] [PATCH v6 05/20] drm/i915/vm_bind: Implement bind and unbind of object
On Thu, 2022-11-10 at 08:32 -0800, Niranjana Vishwanathapura wrote: > On Wed, Nov 09, 2022 at 05:28:59PM -0800, Zanoni, Paulo R wrote: > > On Mon, 2022-11-07 at 00:51 -0800, Niranjana Vishwanathapura wrote: > > > Add uapi and implement support for bind and unbind of an > > > object at the specified GPU virtual addresses. > > > > > > The vm_bind mode is not supported in legacy execbuf2 ioctl. > > > It will be supported only in the newer execbuf3 ioctl. > > > > > > v2: On older platforms ctx->vm is not set, check for it. > > > In vm_bind call, add vma to vm_bind_list. > > > Add more input validity checks. > > > Update some documentation. > > > v3: In vm_bind call, add vma to vm_bound_list as user can > > > request a fence and pass to execbuf3 as input fence. > > > Remove short term pinning with PIN_VALIDATE flag. > > > v4: Replace vm->vm_bind_mode check with i915_gem_vm_is_vm_bind_mode(). > > > v5: Ensure all reserved fields are 0, use PIN_NOEVICT. > > > v6: Add reserved fields to drm_i915_gem_vm_bind. > > > > > > Reviewed-by: Matthew Auld > > > Signed-off-by: Niranjana Vishwanathapura > > > > > > Signed-off-by: Prathap Kumar Valsan > > > Signed-off-by: Andi Shyti > > > --- > > > drivers/gpu/drm/i915/Makefile | 1 + > > > drivers/gpu/drm/i915/gem/i915_gem_context.h | 15 + > > > .../gpu/drm/i915/gem/i915_gem_execbuffer.c| 5 + > > > drivers/gpu/drm/i915/gem/i915_gem_vm_bind.h | 26 ++ > > > .../drm/i915/gem/i915_gem_vm_bind_object.c| 324 ++ > > > drivers/gpu/drm/i915/gt/intel_gtt.c | 10 + > > > drivers/gpu/drm/i915/gt/intel_gtt.h | 9 + > > > drivers/gpu/drm/i915/i915_driver.c| 3 + > > > drivers/gpu/drm/i915/i915_vma.c | 1 + > > > drivers/gpu/drm/i915/i915_vma_types.h | 14 + > > > include/uapi/drm/i915_drm.h | 99 ++ > > > 11 files changed, 507 insertions(+) > > > create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_vm_bind.h > > > create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_vm_bind_object.c > > > > > > diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile > > > index 51704b54317c..b731f3ac80da 100644 > > > --- a/drivers/gpu/drm/i915/Makefile > > > +++ b/drivers/gpu/drm/i915/Makefile > > > @@ -166,6 +166,7 @@ gem-y += \ > > > gem/i915_gem_ttm_move.o \ > > > gem/i915_gem_ttm_pm.o \ > > > gem/i915_gem_userptr.o \ > > > + gem/i915_gem_vm_bind_object.o \ > > > gem/i915_gem_wait.o \ > > > gem/i915_gemfs.o > > > i915-y += \ > > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.h > > > b/drivers/gpu/drm/i915/gem/i915_gem_context.h > > > index 899fa8f1e0fe..e8b41aa8f8c4 100644 > > > --- a/drivers/gpu/drm/i915/gem/i915_gem_context.h > > > +++ b/drivers/gpu/drm/i915/gem/i915_gem_context.h > > > @@ -139,6 +139,21 @@ int i915_gem_context_setparam_ioctl(struct > > > drm_device *dev, void *data, > > > int i915_gem_context_reset_stats_ioctl(struct drm_device *dev, void > > > *data, > > > struct drm_file *file); > > > > > > > > > > > > > > > +/** > > > + * i915_gem_vm_is_vm_bind_mode() - Check if address space is in vm_bind > > > mode > > > + * @vm: the address space > > > + * > > > + * Returns: > > > + * true: @vm is in vm_bind mode; allows only vm_bind method of binding. > > > + * false: @vm is not in vm_bind mode; allows only legacy execbuff method > > > + *of binding. > > > + */ > > > +static inline bool i915_gem_vm_is_vm_bind_mode(struct i915_address_space > > > *vm) > > > +{ > > > + /* No support to enable vm_bind mode yet */ > > > + return false; > > > +} > > > + > > > struct i915_address_space * > > > i915_gem_vm_lookup(struct drm_i915_file_private *file_priv, u32 id); > > > > > > > > > > > > > > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c > > > b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c > > > index 1160723c9d2d..c5bc9f6e887f 100644 > > > --- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c > > > +++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c > > > @@ -781,6 +781,11 @@ static int eb_select_context(struct i915_execbuffer > > > *eb) > > > if (unlikely(IS_ERR(ctx))) > > > return PTR_ERR(ctx); > > > > > > > > > > > > > > > + if (ctx->vm && i915_gem_vm_is_vm_bind_mode(ctx->vm)) { > > > + i915_gem_context_put(ctx); > > > + return -EOPNOTSUPP; > > > + } > > > + > > > eb->gem_context = ctx; > > > if (i915_gem_context_has_full_ppgtt(ctx)) > > > eb->invalid_flags |= EXEC_OBJECT_NEEDS_GTT; > > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_vm_bind.h > > > b/drivers/gpu/drm/i915/gem/i915_gem_vm_bind.h > > > new file mode 100644 > > > index ..36262a6357b5 > > > --- /dev/null > > > +++ b/drivers/gpu/drm/i915/gem/i915_gem_vm_bind.h > > > @@ -0,0 +1,26 @@ > > > +/* SPDX-License-Identifier: MIT */ > > > +/* > > > + * Copyright © 2022 Intel Corporation > > > + */ > >
Re: [Intel-gfx] [PATCH] drm/i915/display: Add missing checks for cdclk crawling
On Wed, Nov 09, 2022 at 09:37:24PM -0800, Anusha Srivatsa wrote: > cdclk_sanitize() function was written assuming vco was a signed integer. > vco gets assigned to -1 (essentially ~0) for the case where PLL > might be enabled and vco is not a frequency that will ever > get used. In such a scenario the right thing to do is disable the > PLL and re-enable it again with a valid frequency. > However the vco is declared as a unsigned variable. > With the above assumption, driver takes crawl path when not needed. > Add explicit check to not crawl in the case of an invalid PLL. > > Cc: Matt Roper > Suggested-by: Ville Syrjälä > Signed-off-by: Anusha Srivatsa > --- > drivers/gpu/drm/i915/display/intel_cdclk.c | 2 ++ > drivers/gpu/drm/i915/display/intel_cdclk.h | 1 + > 2 files changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c > b/drivers/gpu/drm/i915/display/intel_cdclk.c > index 8a9031012d74..91112d266763 100644 > --- a/drivers/gpu/drm/i915/display/intel_cdclk.c > +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c > @@ -1962,6 +1962,8 @@ static bool intel_cdclk_can_crawl(struct > drm_i915_private *dev_priv, > if (!HAS_CDCLK_CRAWL(dev_priv)) > return false; > > + if (intel_pll_is_unknown(a->vco)) > + return false; I think this guy is only called from the atomic_check() path, so this check shouldn't be needed here. Where we do need it is the crawl check bxt_set_cdclk() since that is what gets called directly from the sanitize() path with hw.vco=~0. > /* >* The vco and cd2x divider will change independently >* from each, so we disallow cd2x change when crawling. > diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.h > b/drivers/gpu/drm/i915/display/intel_cdclk.h > index c674879a84a5..6eb83d806f11 100644 > --- a/drivers/gpu/drm/i915/display/intel_cdclk.h > +++ b/drivers/gpu/drm/i915/display/intel_cdclk.h > @@ -80,6 +80,7 @@ intel_atomic_get_cdclk_state(struct intel_atomic_state > *state); > to_intel_cdclk_state(intel_atomic_get_old_global_obj_state(state, > _i915(state->base.dev)->display.cdclk.obj)) > #define intel_atomic_get_new_cdclk_state(state) \ > to_intel_cdclk_state(intel_atomic_get_new_global_obj_state(state, > _i915(state->base.dev)->display.cdclk.obj)) > +#define intel_pll_is_unknown(vco)((vco) == ~0) > > int intel_cdclk_init(struct drm_i915_private *dev_priv); > > -- > 2.25.1 -- Ville Syrjälä Intel
[Intel-gfx] ✓ Fi.CI.BAT: success for linux-next: build failure after merge of the drm-misc tree
== Series Details == Series: linux-next: build failure after merge of the drm-misc tree URL : https://patchwork.freedesktop.org/series/110730/ State : success == Summary == CI Bug Log - changes from CI_DRM_12365 -> Patchwork_110730v1 Summary --- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/index.html Participating hosts (41 -> 38) -- Missing(3): fi-ctg-p8600 fi-bdw-samus fi-kbl-8809g Known issues Here are the changes found in Patchwork_110730v1 that come from known issues: ### CI changes ### Issues hit * boot: - fi-bxt-dsi: [PASS][1] -> [FAIL][2] ([i915#7362]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-bxt-dsi/boot.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/fi-bxt-dsi/boot.html ### IGT changes ### Issues hit * igt@gem_exec_parallel@engines@contexts: - fi-bdw-gvtdvm: [PASS][3] -> [INCOMPLETE][4] ([i915#7506]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-bdw-gvtdvm/igt@gem_exec_parallel@engi...@contexts.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/fi-bdw-gvtdvm/igt@gem_exec_parallel@engi...@contexts.html * igt@gem_lmem_swapping@basic: - fi-apl-guc: NOTRUN -> [SKIP][5] ([fdo#109271] / [i915#4613]) +3 similar issues [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/fi-apl-guc/igt@gem_lmem_swapp...@basic.html * igt@i915_selftest@live@migrate: - bat-adlp-4: [PASS][6] -> [INCOMPLETE][7] ([i915#7308] / [i915#7348]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/bat-adlp-4/igt@i915_selftest@l...@migrate.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/bat-adlp-4/igt@i915_selftest@l...@migrate.html * igt@kms_chamelium@hdmi-crc-fast: - fi-apl-guc: NOTRUN -> [SKIP][8] ([fdo#109271] / [fdo#111827]) +8 similar issues [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/fi-apl-guc/igt@kms_chamel...@hdmi-crc-fast.html * igt@kms_psr@sprite_plane_onoff: - fi-apl-guc: NOTRUN -> [SKIP][9] ([fdo#109271]) +11 similar issues [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/fi-apl-guc/igt@kms_psr@sprite_plane_onoff.html * igt@runner@aborted: - bat-adlp-4: NOTRUN -> [FAIL][10] ([i915#4312]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/bat-adlp-4/igt@run...@aborted.html - fi-bdw-gvtdvm: NOTRUN -> [FAIL][11] ([i915#4312]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/fi-bdw-gvtdvm/igt@run...@aborted.html Possible fixes * igt@gem_exec_suspend@basic-s0@smem: - {bat-rplp-1}: [DMESG-WARN][12] ([i915#2867]) -> [PASS][13] [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html * igt@gem_render_tiled_blits@basic: - fi-apl-guc: [INCOMPLETE][14] ([i915#7056]) -> [PASS][15] [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-apl-guc/igt@gem_render_tiled_bl...@basic.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/fi-apl-guc/igt@gem_render_tiled_bl...@basic.html * igt@gem_tiled_blits@basic: - fi-pnv-d510:[SKIP][16] ([fdo#109271]) -> [PASS][17] +2 similar issues [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-pnv-d510/igt@gem_tiled_bl...@basic.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/fi-pnv-d510/igt@gem_tiled_bl...@basic.html * igt@i915_selftest@live@gt_heartbeat: - fi-skl-guc: [DMESG-FAIL][18] ([i915#5334]) -> [PASS][19] [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-skl-guc/igt@i915_selftest@live@gt_heartbeat.html [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110730v1/fi-skl-guc/igt@i915_selftest@live@gt_heartbeat.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867 [i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334 [i915#6434]: https://gitlab.freedesktop.org/drm/intel/issues/6434 [i915#7029]:
[Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915: Fix unhandled deadlock in grab_vma()
== Series Details == Series: drm/i915: Fix unhandled deadlock in grab_vma() URL : https://patchwork.freedesktop.org/series/110733/ State : failure == Summary == Error: make failed CALLscripts/checksyscalls.sh DESCEND objtool MODPOST Module.symvers ERROR: modpost: "i915_gem_ww_unlock_single" [drivers/gpu/drm/i915/kvmgt.ko] undefined! scripts/Makefile.modpost:126: recipe for target 'Module.symvers' failed make[1]: *** [Module.symvers] Error 1 Makefile:1944: recipe for target 'modpost' failed make: *** [modpost] Error 2
Re: [Intel-gfx] [PATCH v5 3/9] drm/i915/dp: Replace intel_dp.dfp members with the new crtc_state sink_format
On Fri, Oct 28, 2022 at 03:14:05PM +0530, Ankit Nautiyal wrote: > The decision to use DFP output format conversion capabilities should be > during compute_config phase. > > This patch uses the members of intel_dp->dfp to only store the > format conversion capabilities of the DP device and uses the crtc_state > sink_format member, to program the protocol-converter for > colorspace/format conversion. > > v2: Use sink_format to determine the color conversion config for the > pcon (Ville). > > v3: Fix typo: missing 'break' in switch case (lkp kernel test robot). > > v4: Add helper to check if DP supports YCBCR420. > > Signed-off-by: Ankit Nautiyal > --- > drivers/gpu/drm/i915/display/intel_dp.c | 122 > 1 file changed, 84 insertions(+), 38 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c > b/drivers/gpu/drm/i915/display/intel_dp.c > index 0e4f7b467970..95d0c653db7f 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp.c > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > @@ -790,6 +790,7 @@ intel_dp_output_format(struct intel_connector *connector, > enum intel_output_format sink_format) > { > struct intel_dp *intel_dp = intel_attached_dp(connector); > + struct drm_i915_private *i915 = dp_to_i915(intel_dp); > > if (!connector->base.ycbcr_420_allowed || > sink_format != INTEL_OUTPUT_FORMAT_YCBCR420) > @@ -799,6 +800,10 @@ intel_dp_output_format(struct intel_connector *connector, > intel_dp->dfp.ycbcr_444_to_420) > return INTEL_OUTPUT_FORMAT_RGB; > > + /* Prefer 4:2:0 passthrough over 4:4:4->4:2:0 conversion */ > + if (DISPLAY_VER(i915) >= 11 && intel_dp->dfp.ycbcr420_passthrough) > + return INTEL_OUTPUT_FORMAT_YCBCR420; > + > if (intel_dp->dfp.ycbcr_444_to_420) > return INTEL_OUTPUT_FORMAT_YCBCR444; > else The else branch here is also 420, so the whole logic here doesn't seem to flow entirely sensibly. Thinking a bit more abstractly, could we restate this whole problem as something more like this? if (source_can_output(sink_format)) return sink_format; if (source_can_output(RGB) && dfp_can_convert_from_rgb(sink_format)) return RGB; if (source_can_output(YCBCR444) && dfp_can_convert_from_ycbcr444(sink_format)) return YCBCR444; > @@ -2668,6 +2673,8 @@ void intel_dp_configure_protocol_converter(struct > intel_dp *intel_dp, > const struct intel_crtc_state > *crtc_state) > { > struct drm_i915_private *i915 = dp_to_i915(intel_dp); > + bool ycbcr444_to_420 = false; > + bool rgb_to_ycbcr = false; > u8 tmp; > > if (intel_dp->dpcd[DP_DPCD_REV] < 0x13) > @@ -2684,8 +2691,35 @@ void intel_dp_configure_protocol_converter(struct > intel_dp *intel_dp, > drm_dbg_kms(>drm, "Failed to %s protocol converter HDMI > mode\n", > str_enable_disable(intel_dp->has_hdmi_sink)); > > - tmp = crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR444 && > - intel_dp->dfp.ycbcr_444_to_420 ? > DP_CONVERSION_TO_YCBCR420_ENABLE : 0; > + if (crtc_state->sink_format == INTEL_OUTPUT_FORMAT_YCBCR420) { > + switch (crtc_state->output_format) { > + case INTEL_OUTPUT_FORMAT_YCBCR420: > + /* > + * sink_format is YCBCR420, output_format is also > YCBCR420: > + * Passthrough. > + */ > + break; > + case INTEL_OUTPUT_FORMAT_YCBCR444: > + /* > + * sink_format is YCBCR420, output_format is YCBCR444: > + * Downsample. > + */ > + ycbcr444_to_420 = true; > + break; > + case INTEL_OUTPUT_FORMAT_RGB: > + /* > + * sink_format is YCBCR420, output_format is RGB: > + * Convert to YCBCR444 and Downsample. > + */ > + rgb_to_ycbcr = true; > + ycbcr444_to_420 = true; > + break; > + default: > + break; > + } > + } > + > + tmp = ycbcr444_to_420 ? DP_CONVERSION_TO_YCBCR420_ENABLE : 0; > > if (drm_dp_dpcd_writeb(_dp->aux, > DP_PROTOCOL_CONVERTER_CONTROL_1, tmp) != 1) > @@ -2693,13 +2727,12 @@ void intel_dp_configure_protocol_converter(struct > intel_dp *intel_dp, > "Failed to %s protocol converter YCbCr 4:2:0 > conversion mode\n", > str_enable_disable(intel_dp->dfp.ycbcr_444_to_420)); > > - tmp = intel_dp->dfp.rgb_to_ycbcr ? > - DP_CONVERSION_BT709_RGB_YCBCR_ENABLE : 0; > + tmp = rgb_to_ycbcr ? DP_CONVERSION_BT709_RGB_YCBCR_ENABLE : 0; > > if
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for linux-next: build failure after merge of the drm-misc tree
== Series Details == Series: linux-next: build failure after merge of the drm-misc tree URL : https://patchwork.freedesktop.org/series/110730/ State : warning == Summary == Error: dim sparse failed Sparse version: v0.6.2
Re: [Intel-gfx] [PATCH v5 1/9] drm/i915/display: Add new member to configure PCON color conversion
On Fri, Oct 28, 2022 at 03:14:03PM +0530, Ankit Nautiyal wrote: > The decision to use DFP output format conversion capabilities should be > during compute_config phase. > > This patch adds new member to crtc_state to represent the final > output_format to the sink. In case of a DFP this can be different than > the output_format, as per the format conversion done via the PCON. > > This will help to store only the format conversion capabilities of the > DP device in intel_dp->dfp, and use crtc_state to compute and store the > configuration for color/format conversion for a given mode. > > v2: modified the new member to crtc_state to represent the final > output_format that eaches the sink, after possible conversion by > PCON kind of devices. (Ville) > > v3: Addressed comments from Ville: > -Added comments to clarify difference between sink_format and > output_format. > -Corrected the order of setting sink_format and output_format. > -Added readout for sink_format in get_pipe_config hooks. > > Signed-off-by: Ankit Nautiyal > --- > drivers/gpu/drm/i915/display/icl_dsi.c| 1 + > drivers/gpu/drm/i915/display/intel_crt.c | 1 + > .../drm/i915/display/intel_crtc_state_dump.c | 5 +-- > drivers/gpu/drm/i915/display/intel_display.c | 5 +++ > .../drm/i915/display/intel_display_types.h| 11 +- > drivers/gpu/drm/i915/display/intel_dp.c | 34 +-- > drivers/gpu/drm/i915/display/intel_dp_mst.c | 1 + > drivers/gpu/drm/i915/display/intel_dvo.c | 1 + > drivers/gpu/drm/i915/display/intel_hdmi.c | 24 - > drivers/gpu/drm/i915/display/intel_lvds.c | 1 + > drivers/gpu/drm/i915/display/intel_tv.c | 1 + > drivers/gpu/drm/i915/display/vlv_dsi.c| 1 + We seem to miss intel_sdvo.c here. Apart from that looks nice. With sdvo fixed Reviewed-by: Ville Syrjälä > 12 files changed, 63 insertions(+), 23 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c > b/drivers/gpu/drm/i915/display/icl_dsi.c > index e05e7cd6c412..533563e94f58 100644 > --- a/drivers/gpu/drm/i915/display/icl_dsi.c > +++ b/drivers/gpu/drm/i915/display/icl_dsi.c > @@ -1666,6 +1666,7 @@ static int gen11_dsi_compute_config(struct > intel_encoder *encoder, > _config->hw.adjusted_mode; > int ret; > > + pipe_config->sink_format = INTEL_OUTPUT_FORMAT_RGB; > pipe_config->output_format = INTEL_OUTPUT_FORMAT_RGB; > > ret = intel_panel_compute_config(intel_connector, adjusted_mode); > diff --git a/drivers/gpu/drm/i915/display/intel_crt.c > b/drivers/gpu/drm/i915/display/intel_crt.c > index 94d0a5e1dd03..1b46d10fc6f4 100644 > --- a/drivers/gpu/drm/i915/display/intel_crt.c > +++ b/drivers/gpu/drm/i915/display/intel_crt.c > @@ -391,6 +391,7 @@ static int intel_crt_compute_config(struct intel_encoder > *encoder, > if (adjusted_mode->flags & DRM_MODE_FLAG_DBLSCAN) > return -EINVAL; > > + pipe_config->sink_format = INTEL_OUTPUT_FORMAT_RGB; > pipe_config->output_format = INTEL_OUTPUT_FORMAT_RGB; > > return 0; > diff --git a/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c > b/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c > index e9212f69c360..ed427b9cbf09 100644 > --- a/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c > +++ b/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c > @@ -163,10 +163,11 @@ void intel_crtc_state_dump(const struct > intel_crtc_state *pipe_config, > > snprintf_output_types(buf, sizeof(buf), pipe_config->output_types); > drm_dbg_kms(>drm, > - "active: %s, output_types: %s (0x%x), output format: %s\n", > + "active: %s, output_types: %s (0x%x), output format: %s, > sink format: %s\n", > str_yes_no(pipe_config->hw.active), > buf, pipe_config->output_types, > - output_formats(pipe_config->output_format)); > + output_formats(pipe_config->output_format), > + output_formats(pipe_config->sink_format)); > > drm_dbg_kms(>drm, > "cpu_transcoder: %s, pipe bpp: %i, dithering: %i\n", > diff --git a/drivers/gpu/drm/i915/display/intel_display.c > b/drivers/gpu/drm/i915/display/intel_display.c > index 9697179309c4..6edb3f2af376 100644 > --- a/drivers/gpu/drm/i915/display/intel_display.c > +++ b/drivers/gpu/drm/i915/display/intel_display.c > @@ -3240,6 +3240,7 @@ static bool i9xx_get_pipe_config(struct intel_crtc > *crtc, > return false; > > pipe_config->output_format = INTEL_OUTPUT_FORMAT_RGB; > + pipe_config->sink_format = pipe_config->output_format; > pipe_config->cpu_transcoder = (enum transcoder) crtc->pipe; > pipe_config->shared_dpll = NULL; > > @@ -3699,6 +3700,8 @@ static bool ilk_get_pipe_config(struct intel_crtc *crtc, > break; > } > > + pipe_config->sink_format = pipe_config->output_format; > + >
[Intel-gfx] ✓ Fi.CI.BAT: success for Fix timeout handling when retiring requests
== Series Details == Series: Fix timeout handling when retiring requests URL : https://patchwork.freedesktop.org/series/110729/ State : success == Summary == CI Bug Log - changes from CI_DRM_12365 -> Patchwork_110729v1 Summary --- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110729v1/index.html Participating hosts (41 -> 38) -- Missing(3): fi-ctg-p8600 fi-bdw-samus fi-kbl-8809g Known issues Here are the changes found in Patchwork_110729v1 that come from known issues: ### IGT changes ### Issues hit * igt@gem_lmem_swapping@basic: - fi-apl-guc: NOTRUN -> [SKIP][1] ([fdo#109271] / [i915#4613]) +3 similar issues [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110729v1/fi-apl-guc/igt@gem_lmem_swapp...@basic.html * igt@kms_chamelium@hdmi-crc-fast: - fi-apl-guc: NOTRUN -> [SKIP][2] ([fdo#109271] / [fdo#111827]) +8 similar issues [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110729v1/fi-apl-guc/igt@kms_chamel...@hdmi-crc-fast.html * igt@kms_psr@sprite_plane_onoff: - fi-apl-guc: NOTRUN -> [SKIP][3] ([fdo#109271]) +11 similar issues [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110729v1/fi-apl-guc/igt@kms_psr@sprite_plane_onoff.html Possible fixes * igt@gem_exec_suspend@basic-s0@smem: - {bat-rplp-1}: [DMESG-WARN][4] ([i915#2867]) -> [PASS][5] [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110729v1/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html * igt@gem_render_tiled_blits@basic: - fi-apl-guc: [INCOMPLETE][6] ([i915#7056]) -> [PASS][7] [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-apl-guc/igt@gem_render_tiled_bl...@basic.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110729v1/fi-apl-guc/igt@gem_render_tiled_bl...@basic.html * igt@gem_tiled_blits@basic: - fi-pnv-d510:[SKIP][8] ([fdo#109271]) -> [PASS][9] +2 similar issues [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-pnv-d510/igt@gem_tiled_bl...@basic.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110729v1/fi-pnv-d510/igt@gem_tiled_bl...@basic.html * igt@i915_selftest@live@gt_heartbeat: - fi-skl-guc: [DMESG-FAIL][10] ([i915#5334]) -> [PASS][11] [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-skl-guc/igt@i915_selftest@live@gt_heartbeat.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110729v1/fi-skl-guc/igt@i915_selftest@live@gt_heartbeat.html * igt@i915_selftest@live@slpc: - {bat-adln-1}: [DMESG-FAIL][12] ([i915#6997]) -> [PASS][13] [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/bat-adln-1/igt@i915_selftest@l...@slpc.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110729v1/bat-adln-1/igt@i915_selftest@l...@slpc.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334 [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367 [i915#6434]: https://gitlab.freedesktop.org/drm/intel/issues/6434 [i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687 [i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997 [i915#7029]: https://gitlab.freedesktop.org/drm/intel/issues/7029 [i915#7056]: https://gitlab.freedesktop.org/drm/intel/issues/7056 Build changes - * Linux: CI_DRM_12365 -> Patchwork_110729v1 CI-20190529: 20190529 CI_DRM_12365: 1bda5b0abc8a0d9d53d9fec1a390dc93e2b0ba57 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_7050: 42839a7c2bab78bc6cda8c949d8545606f377735 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_110729v1: 1bda5b0abc8a0d9d53d9fec1a390dc93e2b0ba57 @ git://anongit.freedesktop.org/gfx-ci/linux ### Linux commits c3e27d634eb1 drm/i915: Fix 0 return value from DMA fence wait on i915 requests b94e377c78ac drm/i915: Fix unintended submission flush after retire times out 1e804d8cc55e drm/i915: Fix timeout handling when retiring requests == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110729v1/index.html
Re: [Intel-gfx] [PATCH v3 6/6] freezer, sched: Rewrite core freezer logic
On Mon, Nov 07, 2022 at 01:47:23PM +0200, Ville Syrjälä wrote: > On Wed, Nov 02, 2022 at 11:16:48PM +0100, Peter Zijlstra wrote: > > On Wed, Nov 02, 2022 at 06:57:51PM +0200, Ville Syrjälä wrote: > > > On Thu, Oct 27, 2022 at 06:53:23PM +0200, Peter Zijlstra wrote: > > > > On Thu, Oct 27, 2022 at 04:09:01PM +0300, Ville Syrjälä wrote: > > > > > On Wed, Oct 26, 2022 at 01:43:00PM +0200, Peter Zijlstra wrote: > > > > > > > > > > Could you please give the below a spin? > > > > > > > > > > Thanks. I've added this to our CI branch. I'll try to keep and eye > > > > > on it in the coming days and let you know if anything still trips. > > > > > And I'll report back maybe ~middle of next week if we haven't caught > > > > > anything by then. > > > > > > > > Thanks! > > > > > > Looks like we haven't caught anything since I put the patch in. > > > So the fix seems good. > > > > While writing up the Changelog, it occured to me it might be possible to > > fix another way, could I bother you to also run the below patch for a > > bit? > > I swapped in the new patch to the CI branch. I'll check back > after a few days. CI hasn't had anything new to report AFAICS, so looks like this version is good as well. > > > > > --- > > diff --git a/kernel/sched/core.c b/kernel/sched/core.c > > index cb2aa2b54c7a..daff72f00385 100644 > > --- a/kernel/sched/core.c > > +++ b/kernel/sched/core.c > > @@ -4200,6 +4200,40 @@ try_to_wake_up(struct task_struct *p, unsigned int > > state, int wake_flags) > > return success; > > } > > > > +static bool __task_needs_rq_lock(struct task_struct *p) > > +{ > > + unsigned int state = READ_ONCE(p->__state); > > + > > + /* > > +* Since pi->lock blocks try_to_wake_up(), we don't need rq->lock when > > +* the task is blocked. Make sure to check @state since ttwu() can drop > > +* locks at the end, see ttwu_queue_wakelist(). > > +*/ > > + if (state == TASK_RUNNING || state == TASK_WAKING) > > + return true; > > + > > + /* > > +* Ensure we load p->on_rq after p->__state, otherwise it would be > > +* possible to, falsely, observe p->on_rq == 0. > > +* > > +* See try_to_wake_up() for a longer comment. > > +*/ > > + smp_rmb(); > > + if (p->on_rq) > > + return true; > > + > > +#ifdef CONFIG_SMP > > + /* > > +* Ensure the task has finished __schedule() and will not be referenced > > +* anymore. Again, see try_to_wake_up() for a longer comment. > > +*/ > > + smp_rmb(); > > + smp_cond_load_acquire(>on_cpu, !VAL); > > +#endif > > + > > + return false; > > +} > > + > > /** > > * task_call_func - Invoke a function on task in fixed state > > * @p: Process for which the function is to be invoked, can be @current. > > @@ -4217,28 +4251,12 @@ try_to_wake_up(struct task_struct *p, unsigned int > > state, int wake_flags) > > int task_call_func(struct task_struct *p, task_call_f func, void *arg) > > { > > struct rq *rq = NULL; > > - unsigned int state; > > struct rq_flags rf; > > int ret; > > > > raw_spin_lock_irqsave(>pi_lock, rf.flags); > > > > - state = READ_ONCE(p->__state); > > - > > - /* > > -* Ensure we load p->on_rq after p->__state, otherwise it would be > > -* possible to, falsely, observe p->on_rq == 0. > > -* > > -* See try_to_wake_up() for a longer comment. > > -*/ > > - smp_rmb(); > > - > > - /* > > -* Since pi->lock blocks try_to_wake_up(), we don't need rq->lock when > > -* the task is blocked. Make sure to check @state since ttwu() can drop > > -* locks at the end, see ttwu_queue_wakelist(). > > -*/ > > - if (state == TASK_RUNNING || state == TASK_WAKING || p->on_rq) > > + if (__task_needs_rq_lock(p)) > > rq = __task_rq_lock(p, ); > > > > /* > > -- > Ville Syrjälä > Intel -- Ville Syrjälä Intel
Re: [Intel-gfx] [PATCH v3 0/7] vfio-ccw parent rework
On Fri, 4 Nov 2022 15:20:00 +0100 Eric Farman wrote: > Hi Alex, > > Here's the (last?) update to the vfio-ccw lifecycle changes that I've sent > recently, and were previously discussed at various points [1][2]. > > Patches 1-5 rework the behavior of the vfio-ccw driver's private struct. > In summary, the mdev pieces are split out of vfio_ccw_private and into a > new vfio_ccw_parent struct that will continue to follow today's lifecycle. > The remainder (bulk) of the private struct moves to follow the mdev > probe/remove pair. There's opportunity for further separation of the > things in the private struct, which would simplify some of the vfio-ccw > code, but it got too hairy as I started that. Once vfio-ccw is no longer > considered unique, those cleanups can happen at our leisure. > > Patch 6 removes the trickery where vfio-ccw uses vfio_init_device instead of > vfio_alloc_device, and thus removes vfio_init_device from the outside world. > > Patch 7 removes vfio_free_device from vfio-ccw and the other drivers (hello, > CC list!), letting it be handled by vfio_device_release directly. > > I believe this covers everything in this space; let me know if not! > > Thanks, > Eric > > [1] > https://lore.kernel.org/kvm/0-v3-57c1502c62fd+2190-ccw_mdev_...@nvidia.com/ > [2] https://lore.kernel.org/kvm/20220602171948.2790690-1-far...@linux.ibm.com/ > > v2->v3: > - [MR] Added r-b to remaining patches (Thank you!) > - Patch 1: >[gfx checkpatch] Whitespace >[EF] Remove put_device(>dev) >[MR] Fix error exit when alloc of parent fails >[MR] Check for !private on sch_probe error path > - Patch 3: >[EF] Fix error exit when alloc of private fails > - Patch 6: >[AW] Added ack (Thank you!) > - Patch 7: >[CH, AK] Added r-b (Thank you!) >[AW] Added ack (Thank you!) > v2: https://lore.kernel.org/kvm/20221102150152.2521475-1-far...@linux.ibm.com/ > v1: https://lore.kernel.org/kvm/20221019162135.798901-1-far...@linux.ibm.com/ > > Eric Farman (7): > vfio/ccw: create a parent struct > vfio/ccw: remove private->sch > vfio/ccw: move private initialization to callback > vfio/ccw: move private to mdev lifecycle > vfio/ccw: remove release completion > vfio/ccw: replace vfio_init_device with _alloc_ > vfio: Remove vfio_free_device > > drivers/gpu/drm/i915/gvt/kvmgt.c | 1 - > drivers/s390/cio/vfio_ccw_chp.c | 5 +- > drivers/s390/cio/vfio_ccw_drv.c | 173 +++--- > drivers/s390/cio/vfio_ccw_fsm.c | 27 ++-- > drivers/s390/cio/vfio_ccw_ops.c | 107 +++- > drivers/s390/cio/vfio_ccw_private.h | 37 -- > drivers/s390/crypto/vfio_ap_ops.c | 6 - > drivers/vfio/fsl-mc/vfio_fsl_mc.c | 1 - > drivers/vfio/pci/vfio_pci_core.c | 1 - > drivers/vfio/platform/vfio_amba.c | 1 - > drivers/vfio/platform/vfio_platform.c | 1 - > drivers/vfio/vfio_main.c | 32 ++--- > include/linux/vfio.h | 3 - > samples/vfio-mdev/mbochs.c| 1 - > samples/vfio-mdev/mdpy.c | 1 - > samples/vfio-mdev/mtty.c | 1 - > 16 files changed, 196 insertions(+), 202 deletions(-) > Applied to vfio next branch for v6.2. Thanks, Alex
[Intel-gfx] [PATCH v1 6/6] fastrpc: Assert held reservation lock for dma-buf mmapping
When userspace mmaps dma-buf's fd, the dma-buf reservation lock must be held. Add locking sanity check to the dma-buf mmaping callback to ensure that the locking assumption won't regress in the future. Suggested-by: Daniel Vetter Signed-off-by: Dmitry Osipenko --- drivers/misc/fastrpc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index 1ad580865525..0f467a71b069 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -682,6 +683,8 @@ static int fastrpc_mmap(struct dma_buf *dmabuf, struct fastrpc_buf *buf = dmabuf->priv; size_t size = vma->vm_end - vma->vm_start; + dma_resv_assert_held(dmabuf->resv); + return dma_mmap_coherent(buf->dev, vma, buf->virt, FASTRPC_PHYS(buf->phys), size); } -- 2.37.3
[Intel-gfx] [PATCH v1 4/6] dma-buf/heaps: Assert held reservation lock for dma-buf mmapping
When userspace mmaps dma-buf's fd, the dma-buf reservation lock must be held. Add locking sanity checks to the dma-buf mmaping callbacks to ensure that the locking assumptions won't regress in the future. Suggested-by: Daniel Vetter Signed-off-by: Dmitry Osipenko --- drivers/dma-buf/heaps/cma_heap.c| 3 +++ drivers/dma-buf/heaps/system_heap.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/drivers/dma-buf/heaps/cma_heap.c b/drivers/dma-buf/heaps/cma_heap.c index 28fb04eccdd0..1131fb943992 100644 --- a/drivers/dma-buf/heaps/cma_heap.c +++ b/drivers/dma-buf/heaps/cma_heap.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -182,6 +183,8 @@ static int cma_heap_mmap(struct dma_buf *dmabuf, struct vm_area_struct *vma) { struct cma_heap_buffer *buffer = dmabuf->priv; + dma_resv_assert_held(dmabuf->resv); + if ((vma->vm_flags & (VM_SHARED | VM_MAYSHARE)) == 0) return -EINVAL; diff --git a/drivers/dma-buf/heaps/system_heap.c b/drivers/dma-buf/heaps/system_heap.c index fcf836ba9c1f..e8bd10e60998 100644 --- a/drivers/dma-buf/heaps/system_heap.c +++ b/drivers/dma-buf/heaps/system_heap.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -201,6 +202,8 @@ static int system_heap_mmap(struct dma_buf *dmabuf, struct vm_area_struct *vma) struct sg_page_iter piter; int ret; + dma_resv_assert_held(dmabuf->resv); + for_each_sgtable_page(table, , vma->vm_pgoff) { struct page *page = sg_page_iter_page(); -- 2.37.3
[Intel-gfx] [PATCH v1 5/6] media: videobuf2: Assert held reservation lock for dma-buf mmapping
When userspace mmaps dma-buf's fd, the dma-buf reservation lock must be held. Add locking sanity checks to the dma-buf mmaping callbacks to ensure that the locking assumptions won't regress in the future. Suggested-by: Daniel Vetter Signed-off-by: Dmitry Osipenko --- drivers/media/common/videobuf2/videobuf2-dma-contig.c | 3 +++ drivers/media/common/videobuf2/videobuf2-dma-sg.c | 3 +++ drivers/media/common/videobuf2/videobuf2-vmalloc.c| 3 +++ 3 files changed, 9 insertions(+) diff --git a/drivers/media/common/videobuf2/videobuf2-dma-contig.c b/drivers/media/common/videobuf2/videobuf2-dma-contig.c index 555bd40fa472..7f45a62969f2 100644 --- a/drivers/media/common/videobuf2/videobuf2-dma-contig.c +++ b/drivers/media/common/videobuf2/videobuf2-dma-contig.c @@ -11,6 +11,7 @@ */ #include +#include #include #include #include @@ -455,6 +456,8 @@ static int vb2_dc_dmabuf_ops_vmap(struct dma_buf *dbuf, struct iosys_map *map) static int vb2_dc_dmabuf_ops_mmap(struct dma_buf *dbuf, struct vm_area_struct *vma) { + dma_resv_assert_held(dbuf->resv); + return vb2_dc_mmap(dbuf->priv, vma); } diff --git a/drivers/media/common/videobuf2/videobuf2-dma-sg.c b/drivers/media/common/videobuf2/videobuf2-dma-sg.c index 36981a5b5c53..b7f39ee49ed8 100644 --- a/drivers/media/common/videobuf2/videobuf2-dma-sg.c +++ b/drivers/media/common/videobuf2/videobuf2-dma-sg.c @@ -10,6 +10,7 @@ * the Free Software Foundation. */ +#include #include #include #include @@ -495,6 +496,8 @@ static int vb2_dma_sg_dmabuf_ops_vmap(struct dma_buf *dbuf, static int vb2_dma_sg_dmabuf_ops_mmap(struct dma_buf *dbuf, struct vm_area_struct *vma) { + dma_resv_assert_held(dbuf->resv); + return vb2_dma_sg_mmap(dbuf->priv, vma); } diff --git a/drivers/media/common/videobuf2/videobuf2-vmalloc.c b/drivers/media/common/videobuf2/videobuf2-vmalloc.c index 41db707e43a4..f9b665366365 100644 --- a/drivers/media/common/videobuf2/videobuf2-vmalloc.c +++ b/drivers/media/common/videobuf2/videobuf2-vmalloc.c @@ -10,6 +10,7 @@ * the Free Software Foundation. */ +#include #include #include #include @@ -316,6 +317,8 @@ static int vb2_vmalloc_dmabuf_ops_vmap(struct dma_buf *dbuf, static int vb2_vmalloc_dmabuf_ops_mmap(struct dma_buf *dbuf, struct vm_area_struct *vma) { + dma_resv_assert_held(dbuf->resv); + return vb2_vmalloc_mmap(dbuf->priv, vma); } -- 2.37.3
[Intel-gfx] [PATCH v1 3/6] udmabuf: Assert held reservation lock for dma-buf mmapping
When userspace mmaps dma-buf's fd, the dma-buf reservation lock must be held. Add locking sanity check to the dma-buf mmaping callback to ensure that the locking assumption won't regress in the future. Suggested-by: Daniel Vetter Signed-off-by: Dmitry Osipenko --- drivers/dma-buf/udmabuf.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/dma-buf/udmabuf.c b/drivers/dma-buf/udmabuf.c index 2bcdb935a3ac..283816fbd72f 100644 --- a/drivers/dma-buf/udmabuf.c +++ b/drivers/dma-buf/udmabuf.c @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include @@ -49,6 +50,8 @@ static int mmap_udmabuf(struct dma_buf *buf, struct vm_area_struct *vma) { struct udmabuf *ubuf = buf->priv; + dma_resv_assert_held(buf->resv); + if ((vma->vm_flags & (VM_SHARED | VM_MAYSHARE)) == 0) return -EINVAL; -- 2.37.3
[Intel-gfx] [PATCH v1 1/6] dma-buf: Move dma_buf_mmap_internal() to dynamic locking specification
All dma-buf functions has been moved to dynamic locking specification The dma_buf_mmap_internal() was missed out by accident. Take reservation lock around file mapping operation to adhere the common locking convention. Reported-by: Daniel Vetter Signed-off-by: Dmitry Osipenko --- drivers/dma-buf/dma-buf.c | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c index 13bfd2d09c56..b809513b03fe 100644 --- a/drivers/dma-buf/dma-buf.c +++ b/drivers/dma-buf/dma-buf.c @@ -129,6 +129,7 @@ static struct file_system_type dma_buf_fs_type = { static int dma_buf_mmap_internal(struct file *file, struct vm_area_struct *vma) { struct dma_buf *dmabuf; + int ret; if (!is_dma_buf_file(file)) return -EINVAL; @@ -144,7 +145,11 @@ static int dma_buf_mmap_internal(struct file *file, struct vm_area_struct *vma) dmabuf->size >> PAGE_SHIFT) return -EINVAL; - return dmabuf->ops->mmap(dmabuf, vma); + dma_resv_lock(dmabuf->resv, NULL); + ret = dmabuf->ops->mmap(dmabuf, vma); + dma_resv_unlock(dmabuf->resv); + + return ret; } static loff_t dma_buf_llseek(struct file *file, loff_t offset, int whence) -- 2.37.3
[Intel-gfx] [PATCH v1 2/6] drm: Assert held reservation lock for dma-buf mmapping
When userspace mmaps dma-buf's fd, the dma-buf reservation lock must be held. Add locking sanity checks to the dma-buf mmaping callbacks of DRM drivers to ensure that the locking assumptions won't regress in future. Suggested-by: Daniel Vetter Signed-off-by: Dmitry Osipenko --- drivers/gpu/drm/drm_prime.c| 2 ++ drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 2 ++ drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c | 2 ++ drivers/gpu/drm/tegra/gem.c| 2 ++ 4 files changed, 8 insertions(+) diff --git a/drivers/gpu/drm/drm_prime.c b/drivers/gpu/drm/drm_prime.c index 20e109a802ae..f924b8b4ab6b 100644 --- a/drivers/gpu/drm/drm_prime.c +++ b/drivers/gpu/drm/drm_prime.c @@ -781,6 +781,8 @@ int drm_gem_dmabuf_mmap(struct dma_buf *dma_buf, struct vm_area_struct *vma) struct drm_gem_object *obj = dma_buf->priv; struct drm_device *dev = obj->dev; + dma_resv_assert_held(dma_buf->resv); + if (!dev->driver->gem_prime_mmap) return -ENOSYS; diff --git a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c index ec6f7ae47783..9322ac29008b 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c @@ -97,6 +97,8 @@ static int i915_gem_dmabuf_mmap(struct dma_buf *dma_buf, struct vm_area_struct * struct drm_i915_private *i915 = to_i915(obj->base.dev); int ret; + dma_resv_assert_held(dma_buf->resv); + if (obj->base.size < vma->vm_end - vma->vm_start) return -EINVAL; diff --git a/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c b/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c index 8e194dbc9506..3abc47521b2c 100644 --- a/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c +++ b/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c @@ -66,6 +66,8 @@ static int omap_gem_dmabuf_mmap(struct dma_buf *buffer, struct drm_gem_object *obj = buffer->priv; int ret = 0; + dma_resv_assert_held(buffer->resv); + ret = drm_gem_mmap_obj(obj, omap_gem_mmap_size(obj), vma); if (ret < 0) return ret; diff --git a/drivers/gpu/drm/tegra/gem.c b/drivers/gpu/drm/tegra/gem.c index b09b8ab40ae4..979e7bc902f6 100644 --- a/drivers/gpu/drm/tegra/gem.c +++ b/drivers/gpu/drm/tegra/gem.c @@ -694,6 +694,8 @@ static int tegra_gem_prime_mmap(struct dma_buf *buf, struct vm_area_struct *vma) struct drm_gem_object *gem = buf->priv; int err; + dma_resv_assert_held(buf->resv); + err = drm_gem_mmap_obj(gem, gem->size, vma); if (err < 0) return err; -- 2.37.3
[Intel-gfx] [PATCH v1 0/6] Move dma_buf_mmap_internal() to dynamic locking specification
Hello, Recently, dma-buf got a common locking convention for importers and exporters. All the dma-buf functions were moved to the new locking convention, apart from the dma_buf_mmap_internal() that was missed out by accident. This series moves dma_buf_mmap_internal() to the dynamic locking specification and updates drivers that support mmaping of dma-bufs to use the debug-assert of the lock. Thanks to Daniel Vetter for spotting the missed function! Dmitry Osipenko (6): dma-buf: Move dma_buf_mmap_internal() to dynamic locking specification drm: Assert held reservation lock for dma-buf mmapping udmabuf: Assert held reservation lock for dma-buf mmapping dma-buf/heaps: Assert held reservation lock for dma-buf mmapping media: videobuf2: Assert held reservation lock for dma-buf mmapping fastrpc: Assert held reservation lock for dma-buf mmapping drivers/dma-buf/dma-buf.c | 7 ++- drivers/dma-buf/heaps/cma_heap.c | 3 +++ drivers/dma-buf/heaps/system_heap.c | 3 +++ drivers/dma-buf/udmabuf.c | 3 +++ drivers/gpu/drm/drm_prime.c | 2 ++ drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c| 2 ++ drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c | 2 ++ drivers/gpu/drm/tegra/gem.c | 2 ++ drivers/media/common/videobuf2/videobuf2-dma-contig.c | 3 +++ drivers/media/common/videobuf2/videobuf2-dma-sg.c | 3 +++ drivers/media/common/videobuf2/videobuf2-vmalloc.c| 3 +++ drivers/misc/fastrpc.c| 3 +++ 12 files changed, 35 insertions(+), 1 deletion(-) -- 2.37.3
[Intel-gfx] ✗ Fi.CI.IGT: failure for series starting with [1/4] drm/i915/hti: abstract hti handling
== Series Details == Series: series starting with [1/4] drm/i915/hti: abstract hti handling URL : https://patchwork.freedesktop.org/series/110712/ State : failure == Summary == CI Bug Log - changes from CI_DRM_12365_full -> Patchwork_110712v1_full Summary --- **FAILURE** Serious unknown changes coming with Patchwork_110712v1_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_110712v1_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. Participating hosts (11 -> 11) -- No changes in participating hosts Possible new issues --- Here are the unknown changes that may have been introduced in Patchwork_110712v1_full: ### IGT changes ### Possible regressions * igt@kms_vblank@pipe-d-wait-idle-hang: - shard-tglb: [PASS][1] -> [INCOMPLETE][2] +1 similar issue [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-tglb8/igt@kms_vbl...@pipe-d-wait-idle-hang.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110712v1/shard-tglb6/igt@kms_vbl...@pipe-d-wait-idle-hang.html Warnings * igt@kms_plane_alpha_blend@alpha-basic@pipe-c-dp-1: - shard-apl: [FAIL][3] ([i915#4573]) -> [DMESG-FAIL][4] +1 similar issue [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-apl1/igt@kms_plane_alpha_blend@alpha-ba...@pipe-c-dp-1.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110712v1/shard-apl2/igt@kms_plane_alpha_blend@alpha-ba...@pipe-c-dp-1.html Suppressed The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@gem_exec_gttfill@engines@bcs0: - {shard-rkl}:[PASS][5] -> [INCOMPLETE][6] [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-rkl-2/igt@gem_exec_gttfill@engi...@bcs0.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110712v1/shard-rkl-3/igt@gem_exec_gttfill@engi...@bcs0.html Known issues Here are the changes found in Patchwork_110712v1_full that come from known issues: ### CI changes ### Issues hit * boot: - shard-glk: ([PASS][7], [PASS][8], [PASS][9], [PASS][10], [PASS][11], [PASS][12], [PASS][13], [PASS][14], [PASS][15], [PASS][16], [PASS][17], [PASS][18], [PASS][19], [PASS][20], [PASS][21], [PASS][22], [PASS][23], [PASS][24], [PASS][25], [PASS][26], [PASS][27], [PASS][28], [PASS][29], [PASS][30], [PASS][31]) -> ([PASS][32], [PASS][33], [PASS][34], [PASS][35], [PASS][36], [PASS][37], [FAIL][38], [PASS][39], [PASS][40], [PASS][41], [PASS][42], [PASS][43], [PASS][44], [PASS][45], [PASS][46], [FAIL][47], [PASS][48], [PASS][49], [PASS][50], [PASS][51], [PASS][52], [PASS][53], [PASS][54], [PASS][55], [PASS][56]) ([i915#4392]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk7/boot.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk9/boot.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk5/boot.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk9/boot.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk9/boot.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk8/boot.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk6/boot.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk8/boot.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk6/boot.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk6/boot.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk8/boot.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk7/boot.html [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk7/boot.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk6/boot.html [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk1/boot.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk1/boot.html [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk1/boot.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk2/boot.html [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk2/boot.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk2/boot.html [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk3/boot.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk3/boot.html [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/shard-glk3/boot.html
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for Fix timeout handling when retiring requests
== Series Details == Series: Fix timeout handling when retiring requests URL : https://patchwork.freedesktop.org/series/110729/ State : warning == Summary == Error: dim sparse failed Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately. +./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:148:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:150:9: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:154:26: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:156:16: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:156:9: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:174:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:176:9: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:180:35: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:182:16: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:182:9: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:186:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:188:9: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:192:35: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:195:16: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:195:9: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:237:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:239:9: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old' +./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old' +./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old' +./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old' +./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:166:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:168:9: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:169:9: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:170:9: warning: unreplaced symbol 'val' +./include/asm-generic/bitops/generic-non-atomic.h:172:19: warning: unreplaced symbol 'val' +./include/asm-generic/bitops/generic-non-atomic.h:172:25: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:172:9: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:28:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:30:9: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:31:9: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:33:10: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:33:16: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:37:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:39:9: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:40:9: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:42:10: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:42:16: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:55:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:57:9: warning: unreplaced symbol 'mask'
[Intel-gfx] ✓ Fi.CI.BAT: success for DRM scheduling cgroup controller (rev2)
== Series Details == Series: DRM scheduling cgroup controller (rev2) URL : https://patchwork.freedesktop.org/series/109902/ State : success == Summary == CI Bug Log - changes from CI_DRM_12365 -> Patchwork_109902v2 Summary --- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/index.html Participating hosts (41 -> 39) -- Additional (2): fi-kbl-soraka fi-tgl-dsi Missing(4): fi-ctg-p8600 fi-bsw-nick fi-bdw-samus fi-kbl-8809g Known issues Here are the changes found in Patchwork_109902v2 that come from known issues: ### IGT changes ### Issues hit * igt@gem_exec_gttfill@basic: - fi-kbl-soraka: NOTRUN -> [SKIP][1] ([fdo#109271]) +8 similar issues [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/fi-kbl-soraka/igt@gem_exec_gttf...@basic.html * igt@gem_huc_copy@huc-copy: - fi-kbl-soraka: NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#2190]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/fi-kbl-soraka/igt@gem_huc_c...@huc-copy.html * igt@gem_lmem_swapping@basic: - fi-apl-guc: NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#4613]) +3 similar issues [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/fi-apl-guc/igt@gem_lmem_swapp...@basic.html - fi-kbl-soraka: NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#4613]) +3 similar issues [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/fi-kbl-soraka/igt@gem_lmem_swapp...@basic.html * igt@i915_selftest@live@gem_contexts: - fi-kbl-soraka: NOTRUN -> [INCOMPLETE][5] ([i915#7099]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/fi-kbl-soraka/igt@i915_selftest@live@gem_contexts.html * igt@i915_selftest@live@gt_heartbeat: - fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][6] ([i915#5334]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html * igt@i915_selftest@live@gt_pm: - fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][7] ([i915#1886]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html * igt@kms_chamelium@hdmi-crc-fast: - fi-apl-guc: NOTRUN -> [SKIP][8] ([fdo#109271] / [fdo#111827]) +8 similar issues [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/fi-apl-guc/igt@kms_chamel...@hdmi-crc-fast.html * igt@kms_chamelium@hdmi-hpd-fast: - fi-kbl-soraka: NOTRUN -> [SKIP][9] ([fdo#109271] / [fdo#111827]) +7 similar issues [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/fi-kbl-soraka/igt@kms_chamel...@hdmi-hpd-fast.html * igt@kms_psr@sprite_plane_onoff: - fi-apl-guc: NOTRUN -> [SKIP][10] ([fdo#109271]) +11 similar issues [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/fi-apl-guc/igt@kms_psr@sprite_plane_onoff.html Possible fixes * igt@gem_exec_suspend@basic-s0@smem: - {bat-rplp-1}: [DMESG-WARN][11] ([i915#2867]) -> [PASS][12] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html * igt@gem_render_tiled_blits@basic: - fi-apl-guc: [INCOMPLETE][13] ([i915#7056]) -> [PASS][14] [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-apl-guc/igt@gem_render_tiled_bl...@basic.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/fi-apl-guc/igt@gem_render_tiled_bl...@basic.html * igt@gem_tiled_blits@basic: - fi-pnv-d510:[SKIP][15] ([fdo#109271]) -> [PASS][16] +2 similar issues [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-pnv-d510/igt@gem_tiled_bl...@basic.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/fi-pnv-d510/igt@gem_tiled_bl...@basic.html * igt@i915_selftest@live@gt_heartbeat: - fi-skl-guc: [DMESG-FAIL][17] ([i915#5334]) -> [PASS][18] [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-skl-guc/igt@i915_selftest@live@gt_heartbeat.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109902v2/fi-skl-guc/igt@i915_selftest@live@gt_heartbeat.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189 [fdo#111827]:
[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [CI,1/7] drm/i915/huc: only load HuC on GTs that have VCS engines (rev3)
== Series Details == Series: series starting with [CI,1/7] drm/i915/huc: only load HuC on GTs that have VCS engines (rev3) URL : https://patchwork.freedesktop.org/series/110646/ State : success == Summary == CI Bug Log - changes from CI_DRM_12365 -> Patchwork_110646v3 Summary --- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/index.html Participating hosts (41 -> 39) -- Additional (1): fi-kbl-soraka Missing(3): fi-ctg-p8600 fi-bdw-samus fi-kbl-8809g Possible new issues --- Here are the unknown changes that may have been introduced in Patchwork_110646v3: ### IGT changes ### Suppressed The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@i915_selftest@live@gt_heartbeat: - {fi-ehl-2}: [PASS][1] -> [INCOMPLETE][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-ehl-2/igt@i915_selftest@live@gt_heartbeat.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/fi-ehl-2/igt@i915_selftest@live@gt_heartbeat.html * igt@i915_suspend@basic-s2idle-without-i915: - {bat-dg2-11}: [PASS][3] -> [WARN][4] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/bat-dg2-11/igt@i915_susp...@basic-s2idle-without-i915.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/bat-dg2-11/igt@i915_susp...@basic-s2idle-without-i915.html Known issues Here are the changes found in Patchwork_110646v3 that come from known issues: ### IGT changes ### Issues hit * igt@gem_exec_gttfill@basic: - fi-kbl-soraka: NOTRUN -> [SKIP][5] ([fdo#109271]) +8 similar issues [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/fi-kbl-soraka/igt@gem_exec_gttf...@basic.html * igt@gem_huc_copy@huc-copy: - fi-kbl-soraka: NOTRUN -> [SKIP][6] ([fdo#109271] / [i915#2190]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/fi-kbl-soraka/igt@gem_huc_c...@huc-copy.html * igt@gem_lmem_swapping@basic: - fi-apl-guc: NOTRUN -> [SKIP][7] ([fdo#109271] / [i915#4613]) +3 similar issues [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/fi-apl-guc/igt@gem_lmem_swapp...@basic.html - fi-kbl-soraka: NOTRUN -> [SKIP][8] ([fdo#109271] / [i915#4613]) +3 similar issues [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/fi-kbl-soraka/igt@gem_lmem_swapp...@basic.html * igt@i915_selftest@live@execlists: - fi-bsw-nick:[PASS][9] -> [INCOMPLETE][10] ([i915#7120]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-bsw-nick/igt@i915_selftest@l...@execlists.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/fi-bsw-nick/igt@i915_selftest@l...@execlists.html * igt@i915_selftest@live@gem_contexts: - fi-kbl-soraka: NOTRUN -> [INCOMPLETE][11] ([i915#7099]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/fi-kbl-soraka/igt@i915_selftest@live@gem_contexts.html * igt@i915_selftest@live@gt_engines: - bat-dg1-6: [PASS][12] -> [INCOMPLETE][13] ([i915#4418]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/bat-dg1-6/igt@i915_selftest@live@gt_engines.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/bat-dg1-6/igt@i915_selftest@live@gt_engines.html * igt@i915_selftest@live@gt_heartbeat: - fi-apl-guc: NOTRUN -> [DMESG-FAIL][14] ([i915#5334]) [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html - fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][15] ([i915#5334]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html * igt@i915_selftest@live@gt_pm: - fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][16] ([i915#1886]) [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html * igt@i915_selftest@live@migrate: - bat-adlp-4: [PASS][17] -> [INCOMPLETE][18] ([i915#7308] / [i915#7348]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/bat-adlp-4/igt@i915_selftest@l...@migrate.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/bat-adlp-4/igt@i915_selftest@l...@migrate.html * igt@kms_chamelium@hdmi-crc-fast: - fi-apl-guc: NOTRUN -> [SKIP][19] ([fdo#109271] / [fdo#111827]) +8 similar issues [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110646v3/fi-apl-guc/igt@kms_chamel...@hdmi-crc-fast.html * igt@kms_chamelium@hdmi-hpd-fast: - fi-kbl-soraka: NOTRUN -> [SKIP][20] ([fdo#109271] / [fdo#111827]) +7 similar issues [20]:
[Intel-gfx] ✗ Fi.CI.BUILD: failure for add guard padding around i915_vma
== Series Details == Series: add guard padding around i915_vma URL : https://patchwork.freedesktop.org/series/110720/ State : failure == Summary == Error: patch https://patchwork.freedesktop.org/api/1.0/series/110720/revisions/1/mbox/ not applied Applying: drm/i915: Wrap all access to i915_vma.node.start|size Applying: drm/i915: Introduce guard pages to i915_vma Using index info to reconstruct a base tree... M drivers/gpu/drm/i915/i915_vma.c Falling back to patching base and 3-way merge... Auto-merging drivers/gpu/drm/i915/i915_vma.c CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/i915_vma.c error: Failed to merge in the changes. hint: Use 'git am --show-current-patch=diff' to see the failed patch Patch failed at 0002 drm/i915: Introduce guard pages to i915_vma When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort".
[Intel-gfx] ✗ Fi.CI.BUILD: failure for add guard patting around i915_vma
== Series Details == Series: add guard patting around i915_vma URL : https://patchwork.freedesktop.org/series/110719/ State : failure == Summary == Error: patch https://patchwork.freedesktop.org/api/1.0/series/110719/revisions/1/mbox/ not applied Applying: drm/i915: Wrap all access to i915_vma.node.start|size error: sha1 information is lacking or useless (drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c). error: could not build fake ancestor hint: Use 'git am --show-current-patch=diff' to see the failed patch Patch failed at 0001 drm/i915: Wrap all access to i915_vma.node.start|size When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort".
Re: [Intel-gfx] [PATCH v3 1/9] drm/i915: Allocate power domain set wakerefs dynamically
On Thu, Nov 10, 2022 at 09:11:20PM +0200, Ville Syrjälä wrote: > On Tue, Nov 08, 2022 at 05:18:23PM +0200, Imre Deak wrote: > > Since the intel_display_power_domain_set struct, currently its current > > size close to 1kB, can be allocated on the stack, it's better to > > allocate the per-domain wakeref pointer array - used for debugging - > > within the struct dynamically, so do this. > > > > The memory freeing is guaranteed by the fact that the acquired domain > > references tracked by the struct can't be leaked either. > > > > v2: > > - Don't use fetch_and_zero() when freeing the wakerefs array. (Jani) > > - Simplify intel_display_power_get/put_in_set(). (Jani) > > - Check in intel_crtc_destroy() that the wakerefs array has been freed. > > v3: > > - Add intel_display_power_set_disabled() and a separate assert > > function instead of open coding these. (Jani) > > > > Cc: Jani Nikula > > Signed-off-by: Imre Deak > > --- > > drivers/gpu/drm/i915/display/intel_crtc.c | 11 ++ > > .../drm/i915/display/intel_display_power.c| 109 ++ > > .../drm/i915/display/intel_display_power.h| 6 +- > > 3 files changed, 104 insertions(+), 22 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c > > b/drivers/gpu/drm/i915/display/intel_crtc.c > > index 037fc140b585c..c18d98bfe1a7c 100644 > > --- a/drivers/gpu/drm/i915/display/intel_crtc.c > > +++ b/drivers/gpu/drm/i915/display/intel_crtc.c > > @@ -21,6 +21,7 @@ > > #include "intel_crtc.h" > > #include "intel_cursor.h" > > #include "intel_display_debugfs.h" > > +#include "intel_display_power.h" > > #include "intel_display_trace.h" > > #include "intel_display_types.h" > > #include "intel_drrs.h" > > @@ -37,6 +38,14 @@ static void assert_vblank_disabled(struct drm_crtc *crtc) > > drm_crtc_vblank_put(crtc); > > } > > > > +static void assert_power_domains_disabled(struct intel_crtc *crtc) > > +{ > > + struct drm_i915_private *i915 = to_i915(crtc->base.dev); > > + > > + drm_WARN_ON(>drm, > > + !intel_display_power_set_disabled(i915, > > >enabled_power_domains)); > > +} > > + > > struct intel_crtc *intel_first_crtc(struct drm_i915_private *i915) > > { > > return to_intel_crtc(drm_crtc_from_index(>drm, 0)); > > @@ -204,6 +213,8 @@ static void intel_crtc_destroy(struct drm_crtc *_crtc) > > > > cpu_latency_qos_remove_request(>vblank_pm_qos); > > > > + assert_power_domains_disabled(crtc); > > + > > drm_crtc_cleanup(>base); > > kfree(crtc); > > } > > diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c > > b/drivers/gpu/drm/i915/display/intel_display_power.c > > index 4c1de91e56ff9..ca63b4f1af41b 100644 > > --- a/drivers/gpu/drm/i915/display/intel_display_power.c > > +++ b/drivers/gpu/drm/i915/display/intel_display_power.c > > @@ -830,20 +830,85 @@ void intel_display_power_put_unchecked(struct > > drm_i915_private *dev_priv, > > } > > #endif > > > > +#if IS_ENABLED(CONFIG_DRM_I915_DEBUG_RUNTIME_PM) > > +static void > > +add_domain_to_set(struct drm_i915_private *i915, > > + struct intel_display_power_domain_set *power_domain_set, > > + enum intel_display_power_domain domain, > > + intel_wakeref_t wf) > > +{ > > + drm_WARN_ON(>drm, test_bit(domain, power_domain_set->mask.bits)); > > + > > + if (!power_domain_set->wakerefs) > > + power_domain_set->wakerefs = kcalloc(POWER_DOMAIN_NUM, > > + > > sizeof(*power_domain_set->wakerefs), > > +GFP_KERNEL); > > + > > + if (power_domain_set->wakerefs) > > + power_domain_set->wakerefs[domain] = wf; > > So if the kcalloc() fails is it going to look like > we're leaking power wakerefs? Yes, along with the alloc failure which is also logged. I assumed this is enough to explain why wakeref tracking doesn't work afterwards, but I suppose the wakeref could be untracked here in this case. > > + > > + set_bit(domain, power_domain_set->mask.bits); > > +} > > + > > +static intel_wakeref_t > > +remove_domain_from_set(struct drm_i915_private *i915, > > + struct intel_display_power_domain_set *power_domain_set, > > + enum intel_display_power_domain domain) > > +{ > > + intel_wakeref_t wf; > > + > > + drm_WARN_ON(>drm, !test_bit(domain, power_domain_set->mask.bits)); > > + > > + clear_bit(domain, power_domain_set->mask.bits); > > + > > + if (!power_domain_set->wakerefs) > > + return -1; > > + > > + wf = fetch_and_zero(_domain_set->wakerefs[domain]); > > + > > + if (bitmap_empty(power_domain_set->mask.bits, POWER_DOMAIN_NUM)) { > > + kfree(power_domain_set->wakerefs); > > + power_domain_set->wakerefs = NULL; > > + } > > + > > + return wf; > > + > > +} > > +#else > > +static void > > +add_domain_to_set(struct drm_i915_private *i915, > > + struct
[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: header cleanups, cont'd
== Series Details == Series: drm/i915: header cleanups, cont'd URL : https://patchwork.freedesktop.org/series/110716/ State : success == Summary == CI Bug Log - changes from CI_DRM_12365 -> Patchwork_110716v1 Summary --- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110716v1/index.html Participating hosts (41 -> 39) -- Additional (1): bat-atsm-1 Missing(3): fi-ctg-p8600 fi-bdw-samus fi-kbl-8809g Possible new issues --- Here are the unknown changes that may have been introduced in Patchwork_110716v1: ### IGT changes ### Suppressed The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@i915_selftest@live@migrate: - {bat-atsm-1}: NOTRUN -> [INCOMPLETE][1] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110716v1/bat-atsm-1/igt@i915_selftest@l...@migrate.html Known issues Here are the changes found in Patchwork_110716v1 that come from known issues: ### IGT changes ### Issues hit * igt@gem_lmem_swapping@basic: - fi-apl-guc: NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#4613]) +3 similar issues [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110716v1/fi-apl-guc/igt@gem_lmem_swapp...@basic.html * igt@i915_suspend@basic-s3-without-i915: - fi-apl-guc: NOTRUN -> [DMESG-WARN][3] ([i915#1982]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110716v1/fi-apl-guc/igt@i915_susp...@basic-s3-without-i915.html * igt@kms_chamelium@common-hpd-after-suspend: - fi-rkl-11600: NOTRUN -> [SKIP][4] ([fdo#111827]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110716v1/fi-rkl-11600/igt@kms_chamel...@common-hpd-after-suspend.html * igt@kms_chamelium@hdmi-crc-fast: - fi-apl-guc: NOTRUN -> [SKIP][5] ([fdo#109271] / [fdo#111827]) +8 similar issues [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110716v1/fi-apl-guc/igt@kms_chamel...@hdmi-crc-fast.html * igt@kms_psr@sprite_plane_onoff: - fi-apl-guc: NOTRUN -> [SKIP][6] ([fdo#109271]) +11 similar issues [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110716v1/fi-apl-guc/igt@kms_psr@sprite_plane_onoff.html Possible fixes * igt@gem_render_tiled_blits@basic: - fi-apl-guc: [INCOMPLETE][7] ([i915#7056]) -> [PASS][8] [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-apl-guc/igt@gem_render_tiled_bl...@basic.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110716v1/fi-apl-guc/igt@gem_render_tiled_bl...@basic.html * igt@gem_tiled_blits@basic: - fi-pnv-d510:[SKIP][9] ([fdo#109271]) -> [PASS][10] +2 similar issues [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-pnv-d510/igt@gem_tiled_bl...@basic.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110716v1/fi-pnv-d510/igt@gem_tiled_bl...@basic.html * igt@i915_selftest@live@gt_heartbeat: - fi-skl-guc: [DMESG-FAIL][11] ([i915#5334]) -> [PASS][12] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-skl-guc/igt@i915_selftest@live@gt_heartbeat.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110716v1/fi-skl-guc/igt@i915_selftest@live@gt_heartbeat.html * igt@i915_suspend@basic-s2idle-without-i915: - {bat-rpls-2}: [FAIL][13] ([i915#6559]) -> [PASS][14] [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/bat-rpls-2/igt@i915_susp...@basic-s2idle-without-i915.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110716v1/bat-rpls-2/igt@i915_susp...@basic-s2idle-without-i915.html * igt@i915_suspend@basic-s3-without-i915: - fi-rkl-11600: [INCOMPLETE][15] ([i915#4817]) -> [PASS][16] [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-rkl-11600/igt@i915_susp...@basic-s3-without-i915.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110716v1/fi-rkl-11600/igt@i915_susp...@basic-s3-without-i915.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#1836]: https://gitlab.freedesktop.org/drm/intel/issues/1836 [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079 [i915#4083]:
[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for DRM scheduling cgroup controller (rev2)
== Series Details == Series: DRM scheduling cgroup controller (rev2) URL : https://patchwork.freedesktop.org/series/109902/ State : warning == Summary == Error: dim checkpatch failed 0529c5855829 drm: Replace DRM_DEBUG with drm_dbg_core in file and ioctl handling 00d2ae726f37 drm: Track clients by tgid and not tid ca403de72e98 drm: Update file owner during use b9a303df0844 cgroup: Add the DRM cgroup controller Traceback (most recent call last): File "scripts/spdxcheck.py", line 6, in from ply import lex, yacc ModuleNotFoundError: No module named 'ply' -:11: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating? #11: new file mode 100644 -:74: WARNING:SPDX_LICENSE_TAG: Improper SPDX comment style for 'kernel/cgroup/drm.c', please use '//' instead #74: FILE: kernel/cgroup/drm.c:1: +/* SPDX-License-Identifier: MIT */ -:74: WARNING:SPDX_LICENSE_TAG: Missing or malformed SPDX-License-Identifier tag in line 1 #74: FILE: kernel/cgroup/drm.c:1: +/* SPDX-License-Identifier: MIT */ total: 0 errors, 3 warnings, 0 checks, 91 lines checked 7c7b95f5e62d drm/cgroup: Track clients per owning process Traceback (most recent call last): File "scripts/spdxcheck.py", line 6, in from ply import lex, yacc ModuleNotFoundError: No module named 'ply' -:31: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating? #31: new file mode 100644 -:36: WARNING:SPDX_LICENSE_TAG: Improper SPDX comment style for 'drivers/gpu/drm/drm_cgroup.c', please use '//' instead #36: FILE: drivers/gpu/drm/drm_cgroup.c:1: +/* SPDX-License-Identifier: MIT */ -:36: WARNING:SPDX_LICENSE_TAG: Missing or malformed SPDX-License-Identifier tag in line 1 #36: FILE: drivers/gpu/drm/drm_cgroup.c:1: +/* SPDX-License-Identifier: MIT */ -:271: CHECK:BRACES: Blank lines aren't necessary after an open brace '{' #271: FILE: include/drm/drm_clients.h:40: +{ + -:272: CHECK:BRACES: Blank lines aren't necessary before a close brace '}' #272: FILE: include/drm/drm_clients.h:41: + +} total: 0 errors, 3 warnings, 2 checks, 241 lines checked ca7d591587f5 drm/cgroup: Allow safe external access to file_priv f8216e740a13 drm/cgroup: Add ability to query drm cgroup GPU time -:77: WARNING:SPACING: Unnecessary space before function pointer arguments #77: FILE: include/drm/drm_drv.h:166: + u64 (*active_time_us) (struct drm_file *); -:77: WARNING:FUNCTION_ARGUMENTS: function definition argument 'struct drm_file *' should also have an identifier name #77: FILE: include/drm/drm_drv.h:166: + u64 (*active_time_us) (struct drm_file *); total: 0 errors, 2 warnings, 0 checks, 73 lines checked 4432f7981686 drm/cgroup: Add over budget signalling callback -:66: WARNING:SPACING: Unnecessary space before function pointer arguments #66: FILE: include/drm/drm_drv.h:174: + int (*signal_budget) (struct drm_file *, u64 used, u64 budget); -:66: WARNING:FUNCTION_ARGUMENTS: function definition argument 'struct drm_file *' should also have an identifier name #66: FILE: include/drm/drm_drv.h:174: + int (*signal_budget) (struct drm_file *, u64 used, u64 budget); total: 0 errors, 2 warnings, 0 checks, 44 lines checked 9916c9477aa0 drm/cgroup: Only track clients which are providing drm_cgroup_ops 0967fcc62286 cgroup/drm: Client exit hook d6849830ca1e cgroup/drm: Introduce weight based drm cgroup control -:44: WARNING:TYPO_SPELLING: 'heterogenous' may be misspelled - perhaps 'heterogeneous'? #44: FILE: Documentation/admin-guide/cgroup-v2.rst:2409: +Because of the heterogenous hardware and driver DRM capabilities, soft limits -:339: ERROR:CODE_INDENT: code indent should use tabs where possible #339: FILE: kernel/cgroup/drm.c:246: +^I^I^I^Isibling->per_s_budget_ns;$ total: 1 errors, 1 warnings, 0 checks, 609 lines checked 891d20935c55 drm/i915: Wire up with drm controller GPU time query 905e6b964283 drm/i915: Implement cgroup controller over budget throttling -:127: WARNING:PRINTK_WITHOUT_KERN_LEVEL: printk() should include KERN_ facility level #127: FILE: drivers/gpu/drm/i915/i915_drm_client.c:184: +printk("i915_drm_cgroup_signal_budget client-id=%u over=%u (%llu/%llu) <%u>\n", -:127: WARNING:EMBEDDED_FUNCTION_NAME: Prefer using '"%s...", __func__' to using 'i915_drm_cgroup_signal_budget', this function's name, in a string #127: FILE: drivers/gpu/drm/i915/i915_drm_client.c:184: +printk("i915_drm_cgroup_signal_budget client-id=%u over=%u (%llu/%llu) <%u>\n", -:128: WARNING:LEADING_SPACE: please, no spaces at the start of a line #128: FILE: drivers/gpu/drm/i915/i915_drm_client.c:185: + client->id, over, usage, budget, client->over_budget);$ -:175: WARNING:PRINTK_WITHOUT_KERN_LEVEL: printk() should include KERN_ facility level #175: FILE: drivers/gpu/drm/i915/i915_drm_client.c:232: +printk(" UN-throttling class%u (phys=%lld%%)\n", -:176: WARNING:LEADING_SPACE: please, no spaces at the start of a line #176: FILE:
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for DRM scheduling cgroup controller (rev2)
== Series Details == Series: DRM scheduling cgroup controller (rev2) URL : https://patchwork.freedesktop.org/series/109902/ State : warning == Summary == Error: dim sparse failed Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately.
Re: [Intel-gfx] [PATCH 4/6] drm/i915: Try to use the correct power sequencer intiially on bxt/glk
On Thu, Nov 10, 2022 at 04:41:24PM +0200, Ville Syrjälä wrote: > On Thu, Nov 10, 2022 at 01:56:46PM +, Manna, Animesh wrote: > > > > > > > -Original Message- > > > From: Ville Syrjala > > > Sent: Wednesday, November 9, 2022 4:47 PM > > > To: intel-gfx@lists.freedesktop.org > > > Cc: Manna, Animesh > > > Subject: [PATCH 4/6] drm/i915: Try to use the correct power sequencer > > > intiially > > > on bxt/glk > > > > > > From: Ville Syrjälä > > > > > > Currently on bxt/glk we just grab the power sequencer index from the VBT > > > data > > > even though it may not have been parsed yet. That could lead us to using > > > the > > > incorrect power sequencer during the initial panel probe. > > > > > > To avoid that let's try to read out the current state of the power > > > sequencer from > > > the hardware. Unfortunately the power sequencer no longer has anything in > > > its > > > registers to associate it with the port, so the best we can do is just > > > iterate > > > through the power sequencers and pick the first one. This should be > > > sufficient > > > for single panel cases. > > > > > > For the dual panel cases we probably need to go back to parsing the VBT > > > before > > > the panel probe (and hope that panel_type=0xff is never a thing in those > > > cases). > > > To that end the code always prefers the VBT panel sequencer, if available. > > > > > > TODO: Deal with all the modern platforms too > > > Maybe add checks to make sure the same power > > > sequencer doesn't get assigned to multiple ports? > > > > > > Cc: Animesh Manna > > > Signed-off-by: Ville Syrjälä > > > --- > > > .../drm/i915/display/intel_display_types.h| 8 +- > > > drivers/gpu/drm/i915/display/intel_panel.c| 1 + > > > drivers/gpu/drm/i915/display/intel_pps.c | 78 +-- > > > 3 files changed, 80 insertions(+), 7 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h > > > b/drivers/gpu/drm/i915/display/intel_display_types.h > > > index aec06cb24e23..25165110142b 100644 > > > --- a/drivers/gpu/drm/i915/display/intel_display_types.h > > > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h > > > @@ -330,7 +330,7 @@ struct intel_vbt_panel_data { > > > bool present; > > > bool active_low_pwm; > > > u8 min_brightness; /* min_brightness/255 of max */ > > > - u8 controller; /* brightness controller number */ > > > + s8 controller; /* brightness controller number */ > > > enum intel_backlight_type type; > > > } backlight; > > > > > > @@ -1571,9 +1571,13 @@ struct intel_pps { > > > enum pipe active_pipe; > > > /* > > >* Set if the sequencer may be reset due to a power transition, > > > - * requiring a reinitialization. Only relevant on BXT. > > > + * requiring a reinitialization. Only relevant on BXT+. > > >*/ > > > bool pps_reset; > > > + /* > > > + * Power sequencer index. Only relevant on BXT+. > > > + */ > > > + s8 pps_idx; > > > struct edp_power_seq pps_delays; > > > struct edp_power_seq bios_pps_delays; > > > }; > > > diff --git a/drivers/gpu/drm/i915/display/intel_panel.c > > > b/drivers/gpu/drm/i915/display/intel_panel.c > > > index 918b3b9d9ebe..1794e5eecf90 100644 > > > --- a/drivers/gpu/drm/i915/display/intel_panel.c > > > +++ b/drivers/gpu/drm/i915/display/intel_panel.c > > > @@ -665,6 +665,7 @@ void intel_panel_init_alloc(struct intel_connector > > > *connector) > > > struct intel_panel *panel = >panel; > > > > > > connector->panel.vbt.panel_type = -1; > > > + connector->panel.vbt.backlight.controller = -1; > > > INIT_LIST_HEAD(>fixed_modes); > > > } > > > > > > diff --git a/drivers/gpu/drm/i915/display/intel_pps.c > > > b/drivers/gpu/drm/i915/display/intel_pps.c > > > index 84265096f751..ff4f1def59d2 100644 > > > --- a/drivers/gpu/drm/i915/display/intel_pps.c > > > +++ b/drivers/gpu/drm/i915/display/intel_pps.c > > > @@ -211,8 +211,7 @@ static int > > > bxt_power_sequencer_idx(struct intel_dp *intel_dp) { > > > struct drm_i915_private *dev_priv = dp_to_i915(intel_dp); > > > - struct intel_connector *connector = intel_dp->attached_connector; > > > - int backlight_controller = connector->panel.vbt.backlight.controller; > > > + int pps_idx = intel_dp->pps.pps_idx; > > > > > > lockdep_assert_held(_priv->display.pps.mutex); > > > > > > @@ -220,7 +219,7 @@ bxt_power_sequencer_idx(struct intel_dp *intel_dp) > > > drm_WARN_ON(_priv->drm, !intel_dp_is_edp(intel_dp)); > > > > > > if (!intel_dp->pps.pps_reset) > > > - return backlight_controller; > > > + return pps_idx; > > > > > > intel_dp->pps.pps_reset = false; > > > > > > @@ -230,7 +229,7 @@ bxt_power_sequencer_idx(struct intel_dp *intel_dp) > > >*/ > > > pps_init_registers(intel_dp, false); > > > > > > - return backlight_controller; > > > + return pps_idx; > > > } > > > > > > typedef bool (*pps_check)(struct
Re: [Intel-gfx] [PATCH v3 1/9] drm/i915: Allocate power domain set wakerefs dynamically
On Tue, Nov 08, 2022 at 05:18:23PM +0200, Imre Deak wrote: > Since the intel_display_power_domain_set struct, currently its current > size close to 1kB, can be allocated on the stack, it's better to > allocate the per-domain wakeref pointer array - used for debugging - > within the struct dynamically, so do this. > > The memory freeing is guaranteed by the fact that the acquired domain > references tracked by the struct can't be leaked either. > > v2: > - Don't use fetch_and_zero() when freeing the wakerefs array. (Jani) > - Simplify intel_display_power_get/put_in_set(). (Jani) > - Check in intel_crtc_destroy() that the wakerefs array has been freed. > v3: > - Add intel_display_power_set_disabled() and a separate assert > function instead of open coding these. (Jani) > > Cc: Jani Nikula > Signed-off-by: Imre Deak > --- > drivers/gpu/drm/i915/display/intel_crtc.c | 11 ++ > .../drm/i915/display/intel_display_power.c| 109 ++ > .../drm/i915/display/intel_display_power.h| 6 +- > 3 files changed, 104 insertions(+), 22 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c > b/drivers/gpu/drm/i915/display/intel_crtc.c > index 037fc140b585c..c18d98bfe1a7c 100644 > --- a/drivers/gpu/drm/i915/display/intel_crtc.c > +++ b/drivers/gpu/drm/i915/display/intel_crtc.c > @@ -21,6 +21,7 @@ > #include "intel_crtc.h" > #include "intel_cursor.h" > #include "intel_display_debugfs.h" > +#include "intel_display_power.h" > #include "intel_display_trace.h" > #include "intel_display_types.h" > #include "intel_drrs.h" > @@ -37,6 +38,14 @@ static void assert_vblank_disabled(struct drm_crtc *crtc) > drm_crtc_vblank_put(crtc); > } > > +static void assert_power_domains_disabled(struct intel_crtc *crtc) > +{ > + struct drm_i915_private *i915 = to_i915(crtc->base.dev); > + > + drm_WARN_ON(>drm, > + !intel_display_power_set_disabled(i915, > >enabled_power_domains)); > +} > + > struct intel_crtc *intel_first_crtc(struct drm_i915_private *i915) > { > return to_intel_crtc(drm_crtc_from_index(>drm, 0)); > @@ -204,6 +213,8 @@ static void intel_crtc_destroy(struct drm_crtc *_crtc) > > cpu_latency_qos_remove_request(>vblank_pm_qos); > > + assert_power_domains_disabled(crtc); > + > drm_crtc_cleanup(>base); > kfree(crtc); > } > diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c > b/drivers/gpu/drm/i915/display/intel_display_power.c > index 4c1de91e56ff9..ca63b4f1af41b 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_power.c > +++ b/drivers/gpu/drm/i915/display/intel_display_power.c > @@ -830,20 +830,85 @@ void intel_display_power_put_unchecked(struct > drm_i915_private *dev_priv, > } > #endif > > +#if IS_ENABLED(CONFIG_DRM_I915_DEBUG_RUNTIME_PM) > +static void > +add_domain_to_set(struct drm_i915_private *i915, > + struct intel_display_power_domain_set *power_domain_set, > + enum intel_display_power_domain domain, > + intel_wakeref_t wf) > +{ > + drm_WARN_ON(>drm, test_bit(domain, power_domain_set->mask.bits)); > + > + if (!power_domain_set->wakerefs) > + power_domain_set->wakerefs = kcalloc(POWER_DOMAIN_NUM, > + > sizeof(*power_domain_set->wakerefs), > + GFP_KERNEL); > + > + if (power_domain_set->wakerefs) > + power_domain_set->wakerefs[domain] = wf; So if the kcalloc() fails is it going to look like we're leaking power wakerefs? > + > + set_bit(domain, power_domain_set->mask.bits); > +} > + > +static intel_wakeref_t > +remove_domain_from_set(struct drm_i915_private *i915, > +struct intel_display_power_domain_set *power_domain_set, > +enum intel_display_power_domain domain) > +{ > + intel_wakeref_t wf; > + > + drm_WARN_ON(>drm, !test_bit(domain, power_domain_set->mask.bits)); > + > + clear_bit(domain, power_domain_set->mask.bits); > + > + if (!power_domain_set->wakerefs) > + return -1; > + > + wf = fetch_and_zero(_domain_set->wakerefs[domain]); > + > + if (bitmap_empty(power_domain_set->mask.bits, POWER_DOMAIN_NUM)) { > + kfree(power_domain_set->wakerefs); > + power_domain_set->wakerefs = NULL; > + } > + > + return wf; > + > +} > +#else > +static void > +add_domain_to_set(struct drm_i915_private *i915, > + struct intel_display_power_domain_set *power_domain_set, > + enum intel_display_power_domain domain, > + intel_wakeref_t wf) > +{ > + drm_WARN_ON(>drm, test_bit(domain, power_domain_set->mask.bits)); > + > + set_bit(domain, power_domain_set->mask.bits); > +} > + > +static intel_wakeref_t > +remove_domain_from_set(struct drm_i915_private *i915, > +struct intel_display_power_domain_set *power_domain_set, > +
Re: [Intel-gfx] [PATCH 04/10] vfio: Move storage of allow_unsafe_interrupts to vfio_main.c
On Wed, Nov 09, 2022 at 11:28:22AM -0700, Alex Williamson wrote: > > > > I'd be much more comfortable with this as a system wide iommufd flag > > > > if we also tied it to do some demonstration of privilege - eg a > > > > requirement to open iommufd with CAP_SYS_RAWIO for instance. > > > > > > Which is not compatible to existing use cases, which is also why we > > > can't invent some way to allow some applications to run without CPU > > > mitigations, while requiring it for others as a baseline. > > > > Isn't it? Didn't we learn that libvirt runs as root and will open and > > pass the iommufd as root? > > We're jumping ahead to native iommufd support here, what happens when > VFIO_CONTAINER=n and it's QEMU opening the fds, with only file access > privileges? Yes, but I am thinking aloud about how to best to do this in native iommufd modes. > > I think so. At least you should have something to shut down an > > insecure feature in kernel lockdown modes. CAP_SYS_RAWIO is a simple > > way to do it. > > How are CPU vulnerabilities handled in lockdown mode, do apps require > certain capabilities to run fast vs safe, or do we simply disallow > unsafe globally in lockdown? I think we have a lot more leniency to > ignore/disallow flags that enable global insecurities when any sort of > lockdown is imposed. The CPU things are all information leaks from the kernel to userspace. lockdown is about preserving kernel operating integrity - eg preventing modification of hijacking of the running kernel. So, like you say below, this is kind of in between, it is not information leakage, and it is is hopefully not an integrity issue. Being more of a DOS maybe it is fine under the lockdown scenarios. At least I am happier to hear that. > > vfio-iommufd seems like overkill, I think your first suggestion to put > > in vfio.ko was more practical. > > Convenient perhaps, but architecturally the wrong place for it. Ah, that is pretty subjective. If the architecture is that the iommufd user subsystem opts-in to this insecurity then it is an OK place If it is that iommufd sets it globaly for the whole system it is the wrong place. We could also talk about a per-vfio_device sysfs to control this? Then we can make the sysfs only appear for vfio_devices using the iommu_domain part of iommufd/vfio. That has a nice sort of compat shape as we can make the existing module option default the sysfs to insecure Jason
Re: [Intel-gfx] [PATCH v3 4/9] drm/i915/tgl+: Enable display DC power states on all eDP ports
On Thu, Nov 10, 2022 at 08:57:43PM +0200, Ville Syrjälä wrote: > On Thu, Nov 10, 2022 at 08:52:00PM +0200, Ville Syrjälä wrote: > > On Tue, Nov 08, 2022 at 05:18:25PM +0200, Imre Deak wrote: > > > Starting with TGL eDP is supported on ports B+ (besides port A), so make > > > sure DC states are not blocked on any such ports. For this add an > > > AUX_IO_ power domain for each port with eDP support. These domains > > > similarly to AUX_IO_A enable only the AUX_IO_ power well for an > > > enabled port, whereas the existing AUX_ domains enable both the > > > AUX_IO_ and the DC_OFF power wells as required by DP AUX transfers. > > > > > > v2: (Ville) > > > - Split the change using AUX vs. AUX_IO on port A to a separate patch. > > > - Select AUX_IO vs. AUX based on crtc_state->has_psr instead of > > > is_edp(). > > > v3: > > > - Rebased on checking intel_encoder_can_psr() instead of crtc->has_psr. > > > > > > Cc: Ville Syrjälä > > > Signed-off-by: Imre Deak > > > --- > > > drivers/gpu/drm/i915/display/intel_ddi.c | 6 ++- > > > .../drm/i915/display/intel_display_power.c| 30 +++ > > > .../drm/i915/display/intel_display_power.h| 7 +++ > > > .../i915/display/intel_display_power_map.c| 53 +-- > > > 4 files changed, 89 insertions(+), 7 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c > > > b/drivers/gpu/drm/i915/display/intel_ddi.c > > > index ca236cd7f9b76..a087609223c60 100644 > > > --- a/drivers/gpu/drm/i915/display/intel_ddi.c > > > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c > > > @@ -848,6 +848,8 @@ bool intel_ddi_get_hw_state(struct intel_encoder > > > *encoder, > > > static enum intel_display_power_domain > > > intel_ddi_main_link_aux_domain(struct intel_digital_port *dig_port) > > > { > > > + struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); > > > + > > > /* ICL+ HW requires corresponding AUX IOs to be powered up for PSR with > > >* DC states enabled at the same time, while for driver initiated AUX > > >* transfers we need the same AUX IOs to be powered but with DC states > > > @@ -860,8 +862,8 @@ intel_ddi_main_link_aux_domain(struct > > > intel_digital_port *dig_port) > > >* Note that PSR is enabled only on Port A even though this function > > >* returns the correct domain for other ports too. > > >*/ > > > - if (dig_port->aux_ch == AUX_CH_A && > > > intel_encoder_can_psr(_port->base)) > > > - return POWER_DOMAIN_AUX_IO_A; > > > + if (intel_encoder_can_psr(_port->base)) > > > + return intel_display_power_aux_io_domain(i915, > > > dig_port->aux_ch); > > > else > > > return intel_aux_power_domain(dig_port); > > > } > > > diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c > > > b/drivers/gpu/drm/i915/display/intel_display_power.c > > > index 78f1749397e1d..61c6a3616db08 100644 > > > --- a/drivers/gpu/drm/i915/display/intel_display_power.c > > > +++ b/drivers/gpu/drm/i915/display/intel_display_power.c > > > @@ -131,6 +131,16 @@ intel_display_power_domain_str(enum > > > intel_display_power_domain domain) > > > return "AUDIO_PLAYBACK"; > > > case POWER_DOMAIN_AUX_IO_A: > > > return "AUX_IO_A"; > > > + case POWER_DOMAIN_AUX_IO_B: > > > + return "AUX_IO_B"; > > > + case POWER_DOMAIN_AUX_IO_C: > > > + return "AUX_IO_C"; > > > + case POWER_DOMAIN_AUX_IO_D: > > > + return "AUX_IO_D"; > > > + case POWER_DOMAIN_AUX_IO_E: > > > + return "AUX_IO_E"; > > > + case POWER_DOMAIN_AUX_IO_F: > > > + return "AUX_IO_F"; > > > case POWER_DOMAIN_AUX_A: > > > return "AUX_A"; > > > case POWER_DOMAIN_AUX_B: > > > @@ -2356,6 +2366,7 @@ struct intel_ddi_port_domains { > > > > > > enum intel_display_power_domain ddi_lanes; > > > enum intel_display_power_domain ddi_io; > > > + enum intel_display_power_domain aux_io; > > > enum intel_display_power_domain aux_legacy_usbc; > > > enum intel_display_power_domain aux_tbt; > > > }; > > > @@ -2370,6 +2381,7 @@ i9xx_port_domains[] = { > > > > > > .ddi_lanes = POWER_DOMAIN_PORT_DDI_LANES_A, > > > .ddi_io = POWER_DOMAIN_PORT_DDI_IO_A, > > > + .aux_io = POWER_DOMAIN_AUX_IO_A, > > > .aux_legacy_usbc = POWER_DOMAIN_AUX_A, > > > .aux_tbt = POWER_DOMAIN_INVALID, > > > }, > > > @@ -2385,6 +2397,7 @@ d11_port_domains[] = { > > > > > > .ddi_lanes = POWER_DOMAIN_PORT_DDI_LANES_A, > > > .ddi_io = POWER_DOMAIN_PORT_DDI_IO_A, > > > + .aux_io = POWER_DOMAIN_AUX_IO_A, > > > .aux_legacy_usbc = POWER_DOMAIN_AUX_A, > > > .aux_tbt = POWER_DOMAIN_INVALID, > > > }, { > > > @@ -2395,6 +2408,7 @@ d11_port_domains[] = { > > > > > > .ddi_lanes = POWER_DOMAIN_PORT_DDI_LANES_C, > > > .ddi_io = POWER_DOMAIN_PORT_DDI_IO_C, > > > + .aux_io = POWER_DOMAIN_AUX_IO_C, > > > .aux_legacy_usbc = POWER_DOMAIN_AUX_C, > > >
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [CI,1/7] drm/i915/huc: only load HuC on GTs that have VCS engines (rev3)
== Series Details == Series: series starting with [CI,1/7] drm/i915/huc: only load HuC on GTs that have VCS engines (rev3) URL : https://patchwork.freedesktop.org/series/110646/ State : warning == Summary == Error: dim sparse failed Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately.
[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [CI,1/7] drm/i915/huc: only load HuC on GTs that have VCS engines (rev3)
== Series Details == Series: series starting with [CI,1/7] drm/i915/huc: only load HuC on GTs that have VCS engines (rev3) URL : https://patchwork.freedesktop.org/series/110646/ State : warning == Summary == Error: dim checkpatch failed be57a55a080f drm/i915/huc: only load HuC on GTs that have VCS engines -:44: WARNING:AVOID_BUG: Do not crash the kernel unless it is absolutely unavoidable--use WARN_ON_ONCE() plus recovery code (if feasible) instead of BUG() or variants #44: FILE: drivers/gpu/drm/i915/gt/uc/intel_huc.c:227: + GEM_BUG_ON(!gt_is_root(gt) && !gt->info.engine_mask); total: 0 errors, 1 warnings, 0 checks, 59 lines checked 4e0bb5c0bb3b drm/i915/uc: fetch uc firmwares for each GT ce8ee9885c81 drm/i915/uc: use different ggtt pin offsets for uc loads -:66: WARNING:AVOID_BUG: Do not crash the kernel unless it is absolutely unavoidable--use WARN_ON_ONCE() plus recovery code (if feasible) instead of BUG() or variants #66: FILE: drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c:704: + GEM_BUG_ON(gt->type == GT_MEDIA && gt->info.id > 1); -:73: WARNING:AVOID_BUG: Do not crash the kernel unless it is absolutely unavoidable--use WARN_ON_ONCE() plus recovery code (if feasible) instead of BUG() or variants #73: FILE: drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c:711: + GEM_BUG_ON(offset + uc_fw->obj->base.size > node->size); -:74: WARNING:AVOID_BUG: Do not crash the kernel unless it is absolutely unavoidable--use WARN_ON_ONCE() plus recovery code (if feasible) instead of BUG() or variants #74: FILE: drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c:712: + GEM_BUG_ON(uc_fw->obj->base.size > INTEL_UC_RSVD_GGTT_PER_FW); total: 0 errors, 3 warnings, 0 checks, 82 lines checked acbfc7253394 drm/i915/guc: Add GuC deprivilege feature to MTL 6ea78939e190 drm/i915/mtl: Handle wopcm per-GT and limit calculations. -:113: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating? #113: rename from drivers/gpu/drm/i915/intel_wopcm.c -:278: WARNING:AVOID_BUG: Do not crash the kernel unless it is absolutely unavoidable--use WARN_ON_ONCE() plus recovery code (if feasible) instead of BUG() or variants #278: FILE: drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c:567: + GEM_BUG_ON(!gt->wopcm.size); total: 0 errors, 2 warnings, 0 checks, 240 lines checked 826417c084a6 drm/i915/guc: define media GT GuC send regs 47d818d9b051 drm/i915/guc: handle interrupts from media GuC
Re: [Intel-gfx] [PATCH v3 4/9] drm/i915/tgl+: Enable display DC power states on all eDP ports
On Thu, Nov 10, 2022 at 08:52:00PM +0200, Ville Syrjälä wrote: > On Tue, Nov 08, 2022 at 05:18:25PM +0200, Imre Deak wrote: > > Starting with TGL eDP is supported on ports B+ (besides port A), so make > > sure DC states are not blocked on any such ports. For this add an > > AUX_IO_ power domain for each port with eDP support. These domains > > similarly to AUX_IO_A enable only the AUX_IO_ power well for an > > enabled port, whereas the existing AUX_ domains enable both the > > AUX_IO_ and the DC_OFF power wells as required by DP AUX transfers. > > > > v2: (Ville) > > - Split the change using AUX vs. AUX_IO on port A to a separate patch. > > - Select AUX_IO vs. AUX based on crtc_state->has_psr instead of > > is_edp(). > > v3: > > - Rebased on checking intel_encoder_can_psr() instead of crtc->has_psr. > > > > Cc: Ville Syrjälä > > Signed-off-by: Imre Deak > > --- > > drivers/gpu/drm/i915/display/intel_ddi.c | 6 ++- > > .../drm/i915/display/intel_display_power.c| 30 +++ > > .../drm/i915/display/intel_display_power.h| 7 +++ > > .../i915/display/intel_display_power_map.c| 53 +-- > > 4 files changed, 89 insertions(+), 7 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c > > b/drivers/gpu/drm/i915/display/intel_ddi.c > > index ca236cd7f9b76..a087609223c60 100644 > > --- a/drivers/gpu/drm/i915/display/intel_ddi.c > > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c > > @@ -848,6 +848,8 @@ bool intel_ddi_get_hw_state(struct intel_encoder > > *encoder, > > static enum intel_display_power_domain > > intel_ddi_main_link_aux_domain(struct intel_digital_port *dig_port) > > { > > + struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); > > + > > /* ICL+ HW requires corresponding AUX IOs to be powered up for PSR with > > * DC states enabled at the same time, while for driver initiated AUX > > * transfers we need the same AUX IOs to be powered but with DC states > > @@ -860,8 +862,8 @@ intel_ddi_main_link_aux_domain(struct > > intel_digital_port *dig_port) > > * Note that PSR is enabled only on Port A even though this function > > * returns the correct domain for other ports too. > > */ > > - if (dig_port->aux_ch == AUX_CH_A && > > intel_encoder_can_psr(_port->base)) > > - return POWER_DOMAIN_AUX_IO_A; > > + if (intel_encoder_can_psr(_port->base)) > > + return intel_display_power_aux_io_domain(i915, > > dig_port->aux_ch); > > else > > return intel_aux_power_domain(dig_port); > > } > > diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c > > b/drivers/gpu/drm/i915/display/intel_display_power.c > > index 78f1749397e1d..61c6a3616db08 100644 > > --- a/drivers/gpu/drm/i915/display/intel_display_power.c > > +++ b/drivers/gpu/drm/i915/display/intel_display_power.c > > @@ -131,6 +131,16 @@ intel_display_power_domain_str(enum > > intel_display_power_domain domain) > > return "AUDIO_PLAYBACK"; > > case POWER_DOMAIN_AUX_IO_A: > > return "AUX_IO_A"; > > + case POWER_DOMAIN_AUX_IO_B: > > + return "AUX_IO_B"; > > + case POWER_DOMAIN_AUX_IO_C: > > + return "AUX_IO_C"; > > + case POWER_DOMAIN_AUX_IO_D: > > + return "AUX_IO_D"; > > + case POWER_DOMAIN_AUX_IO_E: > > + return "AUX_IO_E"; > > + case POWER_DOMAIN_AUX_IO_F: > > + return "AUX_IO_F"; > > case POWER_DOMAIN_AUX_A: > > return "AUX_A"; > > case POWER_DOMAIN_AUX_B: > > @@ -2356,6 +2366,7 @@ struct intel_ddi_port_domains { > > > > enum intel_display_power_domain ddi_lanes; > > enum intel_display_power_domain ddi_io; > > + enum intel_display_power_domain aux_io; > > enum intel_display_power_domain aux_legacy_usbc; > > enum intel_display_power_domain aux_tbt; > > }; > > @@ -2370,6 +2381,7 @@ i9xx_port_domains[] = { > > > > .ddi_lanes = POWER_DOMAIN_PORT_DDI_LANES_A, > > .ddi_io = POWER_DOMAIN_PORT_DDI_IO_A, > > + .aux_io = POWER_DOMAIN_AUX_IO_A, > > .aux_legacy_usbc = POWER_DOMAIN_AUX_A, > > .aux_tbt = POWER_DOMAIN_INVALID, > > }, > > @@ -2385,6 +2397,7 @@ d11_port_domains[] = { > > > > .ddi_lanes = POWER_DOMAIN_PORT_DDI_LANES_A, > > .ddi_io = POWER_DOMAIN_PORT_DDI_IO_A, > > + .aux_io = POWER_DOMAIN_AUX_IO_A, > > .aux_legacy_usbc = POWER_DOMAIN_AUX_A, > > .aux_tbt = POWER_DOMAIN_INVALID, > > }, { > > @@ -2395,6 +2408,7 @@ d11_port_domains[] = { > > > > .ddi_lanes = POWER_DOMAIN_PORT_DDI_LANES_C, > > .ddi_io = POWER_DOMAIN_PORT_DDI_IO_C, > > + .aux_io = POWER_DOMAIN_AUX_IO_C, > > .aux_legacy_usbc = POWER_DOMAIN_AUX_C, > > .aux_tbt = POWER_DOMAIN_AUX_TBT1, > > }, > > @@ -2410,6 +2424,7 @@ d12_port_domains[] = { > > > > .ddi_lanes = POWER_DOMAIN_PORT_DDI_LANES_A, > >
Re: [Intel-gfx] [PATCH v3 4/9] drm/i915/tgl+: Enable display DC power states on all eDP ports
On Tue, Nov 08, 2022 at 05:18:25PM +0200, Imre Deak wrote: > Starting with TGL eDP is supported on ports B+ (besides port A), so make > sure DC states are not blocked on any such ports. For this add an > AUX_IO_ power domain for each port with eDP support. These domains > similarly to AUX_IO_A enable only the AUX_IO_ power well for an > enabled port, whereas the existing AUX_ domains enable both the > AUX_IO_ and the DC_OFF power wells as required by DP AUX transfers. > > v2: (Ville) > - Split the change using AUX vs. AUX_IO on port A to a separate patch. > - Select AUX_IO vs. AUX based on crtc_state->has_psr instead of > is_edp(). > v3: > - Rebased on checking intel_encoder_can_psr() instead of crtc->has_psr. > > Cc: Ville Syrjälä > Signed-off-by: Imre Deak > --- > drivers/gpu/drm/i915/display/intel_ddi.c | 6 ++- > .../drm/i915/display/intel_display_power.c| 30 +++ > .../drm/i915/display/intel_display_power.h| 7 +++ > .../i915/display/intel_display_power_map.c| 53 +-- > 4 files changed, 89 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c > b/drivers/gpu/drm/i915/display/intel_ddi.c > index ca236cd7f9b76..a087609223c60 100644 > --- a/drivers/gpu/drm/i915/display/intel_ddi.c > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c > @@ -848,6 +848,8 @@ bool intel_ddi_get_hw_state(struct intel_encoder *encoder, > static enum intel_display_power_domain > intel_ddi_main_link_aux_domain(struct intel_digital_port *dig_port) > { > + struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); > + > /* ICL+ HW requires corresponding AUX IOs to be powered up for PSR with >* DC states enabled at the same time, while for driver initiated AUX >* transfers we need the same AUX IOs to be powered but with DC states > @@ -860,8 +862,8 @@ intel_ddi_main_link_aux_domain(struct intel_digital_port > *dig_port) >* Note that PSR is enabled only on Port A even though this function >* returns the correct domain for other ports too. >*/ > - if (dig_port->aux_ch == AUX_CH_A && > intel_encoder_can_psr(_port->base)) > - return POWER_DOMAIN_AUX_IO_A; > + if (intel_encoder_can_psr(_port->base)) > + return intel_display_power_aux_io_domain(i915, > dig_port->aux_ch); > else > return intel_aux_power_domain(dig_port); > } > diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c > b/drivers/gpu/drm/i915/display/intel_display_power.c > index 78f1749397e1d..61c6a3616db08 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_power.c > +++ b/drivers/gpu/drm/i915/display/intel_display_power.c > @@ -131,6 +131,16 @@ intel_display_power_domain_str(enum > intel_display_power_domain domain) > return "AUDIO_PLAYBACK"; > case POWER_DOMAIN_AUX_IO_A: > return "AUX_IO_A"; > + case POWER_DOMAIN_AUX_IO_B: > + return "AUX_IO_B"; > + case POWER_DOMAIN_AUX_IO_C: > + return "AUX_IO_C"; > + case POWER_DOMAIN_AUX_IO_D: > + return "AUX_IO_D"; > + case POWER_DOMAIN_AUX_IO_E: > + return "AUX_IO_E"; > + case POWER_DOMAIN_AUX_IO_F: > + return "AUX_IO_F"; > case POWER_DOMAIN_AUX_A: > return "AUX_A"; > case POWER_DOMAIN_AUX_B: > @@ -2356,6 +2366,7 @@ struct intel_ddi_port_domains { > > enum intel_display_power_domain ddi_lanes; > enum intel_display_power_domain ddi_io; > + enum intel_display_power_domain aux_io; > enum intel_display_power_domain aux_legacy_usbc; > enum intel_display_power_domain aux_tbt; > }; > @@ -2370,6 +2381,7 @@ i9xx_port_domains[] = { > > .ddi_lanes = POWER_DOMAIN_PORT_DDI_LANES_A, > .ddi_io = POWER_DOMAIN_PORT_DDI_IO_A, > + .aux_io = POWER_DOMAIN_AUX_IO_A, > .aux_legacy_usbc = POWER_DOMAIN_AUX_A, > .aux_tbt = POWER_DOMAIN_INVALID, > }, > @@ -2385,6 +2397,7 @@ d11_port_domains[] = { > > .ddi_lanes = POWER_DOMAIN_PORT_DDI_LANES_A, > .ddi_io = POWER_DOMAIN_PORT_DDI_IO_A, > + .aux_io = POWER_DOMAIN_AUX_IO_A, > .aux_legacy_usbc = POWER_DOMAIN_AUX_A, > .aux_tbt = POWER_DOMAIN_INVALID, > }, { > @@ -2395,6 +2408,7 @@ d11_port_domains[] = { > > .ddi_lanes = POWER_DOMAIN_PORT_DDI_LANES_C, > .ddi_io = POWER_DOMAIN_PORT_DDI_IO_C, > + .aux_io = POWER_DOMAIN_AUX_IO_C, > .aux_legacy_usbc = POWER_DOMAIN_AUX_C, > .aux_tbt = POWER_DOMAIN_AUX_TBT1, > }, > @@ -2410,6 +2424,7 @@ d12_port_domains[] = { > > .ddi_lanes = POWER_DOMAIN_PORT_DDI_LANES_A, > .ddi_io = POWER_DOMAIN_PORT_DDI_IO_A, > + .aux_io = POWER_DOMAIN_AUX_IO_A, > .aux_legacy_usbc = POWER_DOMAIN_AUX_A, > .aux_tbt =
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: header cleanups, cont'd
== Series Details == Series: drm/i915: header cleanups, cont'd URL : https://patchwork.freedesktop.org/series/110716/ State : warning == Summary == Error: dim sparse failed Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately.
[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: header cleanups, cont'd
== Series Details == Series: drm/i915: header cleanups, cont'd URL : https://patchwork.freedesktop.org/series/110716/ State : warning == Summary == Error: dim checkpatch failed a1c8e7edfaca drm/i915/reg: move masked field helpers to i915_reg_defs.h -:48: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'mask' - possible side-effects? #48: FILE: drivers/gpu/drm/i915/i915_reg_defs.h:102: +#define _MASKED_FIELD(mask, value) ({ \ + if (__builtin_constant_p(mask))\ + BUILD_BUG_ON_MSG(((mask) & 0x), "Incorrect mask"); \ + if (__builtin_constant_p(value)) \ + BUILD_BUG_ON_MSG((value) & 0x, "Incorrect value"); \ + if (__builtin_constant_p(mask) && __builtin_constant_p(value)) \ + BUILD_BUG_ON_MSG((value) & ~(mask),\ +"Incorrect value for mask"); \ + __MASKED_FIELD(mask, value); }) -:48: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'value' - possible side-effects? #48: FILE: drivers/gpu/drm/i915/i915_reg_defs.h:102: +#define _MASKED_FIELD(mask, value) ({ \ + if (__builtin_constant_p(mask))\ + BUILD_BUG_ON_MSG(((mask) & 0x), "Incorrect mask"); \ + if (__builtin_constant_p(value)) \ + BUILD_BUG_ON_MSG((value) & 0x, "Incorrect value"); \ + if (__builtin_constant_p(mask) && __builtin_constant_p(value)) \ + BUILD_BUG_ON_MSG((value) & ~(mask),\ +"Incorrect value for mask"); \ + __MASKED_FIELD(mask, value); }) total: 0 errors, 0 warnings, 2 checks, 38 lines checked a3b636f83d37 drm/i915/reg: move pick even and pick to reg defs -:55: CHECK:MACRO_ARG_REUSE: Macro argument reuse '__a' - possible side-effects? #55: FILE: drivers/gpu/drm/i915/i915_reg_defs.h:120: +#define _PICK_EVEN(__index, __a, __b) ((__a) + (__index) * ((__b) - (__a))) total: 0 errors, 0 warnings, 1 checks, 42 lines checked 3a98d29dd753 drm/i915: split out intel_display_reg_defs.h Traceback (most recent call last): File "scripts/spdxcheck.py", line 6, in from ply import lex, yacc ModuleNotFoundError: No module named 'ply' -:57: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating? #57: new file mode 100644 -:107: WARNING:LONG_LINE: line length of 101 exceeds 100 columns #107: FILE: drivers/gpu/drm/i915/display/intel_display_reg_defs.h:46: +#define _MMIO_TRANS2(tran, reg) _MMIO(INTEL_INFO(dev_priv)->display.trans_offsets[(tran)] - \ -:108: WARNING:LONG_LINE: line length of 107 exceeds 100 columns #108: FILE: drivers/gpu/drm/i915/display/intel_display_reg_defs.h:47: + INTEL_INFO(dev_priv)->display.trans_offsets[TRANSCODER_A] + \ -:110: WARNING:LONG_LINE: line length of 102 exceeds 100 columns #110: FILE: drivers/gpu/drm/i915/display/intel_display_reg_defs.h:49: +#define _MMIO_CURSOR2(pipe, reg) _MMIO(INTEL_INFO(dev_priv)->display.cursor_offsets[(pipe)] - \ -:111: WARNING:LONG_LINE: line length of 102 exceeds 100 columns #111: FILE: drivers/gpu/drm/i915/display/intel_display_reg_defs.h:50: + INTEL_INFO(dev_priv)->display.cursor_offsets[PIPE_A] + \ total: 0 errors, 5 warnings, 0 checks, 176 lines checked b2c1abcfaf49 drm/i915: stop including i915_irq.h from i915_trace.h
[Intel-gfx] [PATCH] drm/i915/guc: enable GuC GGTT invalidation from the start
Invalidating the GuC TLBs while GuC is not loaded does not have negative consequences, so if we're starting the driver with GuC enabled we can use the GGTT invalidation function from the get-go, iinstead of switching to it when we initialize the GuC objects. In MTL, this fixes and issue where we try to overwrite the invalidation function twice (once for each GuC), due to the GGTT being shared between the primary and media GTs Signed-off-by: Daniele Ceraolo Spurio Cc: Matt Roper Cc: Radhakrishna Sripada Cc: John Harrison Cc: Aravind Iddamsetty --- drivers/gpu/drm/i915/gt/intel_ggtt.c | 28 -- drivers/gpu/drm/i915/gt/intel_gtt.h| 2 -- drivers/gpu/drm/i915/gt/uc/intel_guc.c | 7 --- 3 files changed, 4 insertions(+), 33 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/intel_ggtt.c b/drivers/gpu/drm/i915/gt/intel_ggtt.c index 2518cebbf931..2dbe6ad5c900 100644 --- a/drivers/gpu/drm/i915/gt/intel_ggtt.c +++ b/drivers/gpu/drm/i915/gt/intel_ggtt.c @@ -979,7 +979,10 @@ static int gen8_gmch_probe(struct i915_ggtt *ggtt) I915_VMA_GLOBAL_BIND | I915_VMA_LOCAL_BIND; } - ggtt->invalidate = gen8_ggtt_invalidate; + if (intel_uc_wants_guc(>vm.gt->uc)) + ggtt->invalidate = guc_ggtt_invalidate; + else + ggtt->invalidate = gen8_ggtt_invalidate; ggtt->vm.vma_ops.bind_vma= intel_ggtt_bind_vma; ggtt->vm.vma_ops.unbind_vma = intel_ggtt_unbind_vma; @@ -1216,29 +1219,6 @@ int i915_ggtt_enable_hw(struct drm_i915_private *i915) return 0; } -void i915_ggtt_enable_guc(struct i915_ggtt *ggtt) -{ - GEM_BUG_ON(ggtt->invalidate != gen8_ggtt_invalidate); - - ggtt->invalidate = guc_ggtt_invalidate; - - ggtt->invalidate(ggtt); -} - -void i915_ggtt_disable_guc(struct i915_ggtt *ggtt) -{ - /* XXX Temporary pardon for error unload */ - if (ggtt->invalidate == gen8_ggtt_invalidate) - return; - - /* We should only be called after i915_ggtt_enable_guc() */ - GEM_BUG_ON(ggtt->invalidate != guc_ggtt_invalidate); - - ggtt->invalidate = gen8_ggtt_invalidate; - - ggtt->invalidate(ggtt); -} - /** * i915_ggtt_resume_vm - Restore the memory mappings for a GGTT or DPT VM * @vm: The VM to restore the mappings for diff --git a/drivers/gpu/drm/i915/gt/intel_gtt.h b/drivers/gpu/drm/i915/gt/intel_gtt.h index 4d75ba4bb41d..fcbbfed79f15 100644 --- a/drivers/gpu/drm/i915/gt/intel_gtt.h +++ b/drivers/gpu/drm/i915/gt/intel_gtt.h @@ -579,8 +579,6 @@ void intel_ggtt_unbind_vma(struct i915_address_space *vm, int i915_ggtt_probe_hw(struct drm_i915_private *i915); int i915_ggtt_init_hw(struct drm_i915_private *i915); int i915_ggtt_enable_hw(struct drm_i915_private *i915); -void i915_ggtt_enable_guc(struct i915_ggtt *ggtt); -void i915_ggtt_disable_guc(struct i915_ggtt *ggtt); int i915_init_ggtt(struct drm_i915_private *i915); void i915_ggtt_driver_release(struct drm_i915_private *i915); void i915_ggtt_driver_late_release(struct drm_i915_private *i915); diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc.c index 1bcd61bb50f8..4ec954b6b4e8 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_guc.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.c @@ -421,9 +421,6 @@ int intel_guc_init(struct intel_guc *guc) /* now that everything is perma-pinned, initialize the parameters */ guc_init_params(guc); - /* We need to notify the guc whenever we change the GGTT */ - i915_ggtt_enable_guc(gt->ggtt); - intel_uc_fw_change_status(>fw, INTEL_UC_FIRMWARE_LOADABLE); return 0; @@ -448,13 +445,9 @@ int intel_guc_init(struct intel_guc *guc) void intel_guc_fini(struct intel_guc *guc) { - struct intel_gt *gt = guc_to_gt(guc); - if (!intel_uc_fw_is_loadable(>fw)) return; - i915_ggtt_disable_guc(gt->ggtt); - if (intel_guc_slpc_is_used(guc)) intel_guc_slpc_fini(>slpc); -- 2.37.3
Re: [Intel-gfx] [PATCH v2 10/11] vfio: Make vfio_container optionally compiled
On Thu, Nov 10, 2022 at 06:57:57AM +, Tian, Kevin wrote: > > + /* > > +* Emulation for NOIMMU is imperfect in that VFIO blocks almost all > > +* other ioctls. We let them keep working but they mostly fail since no > > +* IOAS should exist. > > +*/ > > + if (IS_ENABLED(CONFIG_VFIO_NOIOMMU) && type == > > VFIO_NOIOMMU_IOMMU) > > + return 0; > > + > > if (type != VFIO_TYPE1_IOMMU && type != VFIO_TYPE1v2_IOMMU) > > return -EINVAL; > > also need a check in iommufd_vfio_check_extension() so only > VFIO_NOIOMMU_IOMMU is supported in no-iommu mode. Mm, and some permission checks too > > + if (!IS_ENABLED(CONFIG_VFIO_NO_IOMMU) || > > + group->type != VFIO_NO_IOMMU) { > > + ret = iommufd_vfio_compat_ioas_id(iommufd, > > _id); > > + if (ret) { > > + iommufd_ctx_put(group->iommufd); > > + goto out_unlock; > > + } > > } > > with above I suppose other ioctls (map/unmap/etc.) are implicitly blocked > given get_compat_ioas() will fail in those paths. this is good. > > btw vfio container requires exact match between group->type and > container->noiommu, i.e. noiommu group can be only attached to noiommu > container. this is another thing to be paired up. Sure, as below So, the missing ingredient here is somone who has the necessary device to test dpdk? I wonder if qemu e1000 is able to do this path? diff --git a/drivers/iommu/iommufd/vfio_compat.c b/drivers/iommu/iommufd/vfio_compat.c index dbef3274803336..c20e55ddc9aa81 100644 --- a/drivers/iommu/iommufd/vfio_compat.c +++ b/drivers/iommu/iommufd/vfio_compat.c @@ -26,16 +26,35 @@ static struct iommufd_ioas *get_compat_ioas(struct iommufd_ctx *ictx) } /** - * iommufd_vfio_compat_ioas_id - Return the IOAS ID that vfio should use + * iommufd_vfio_compat_ioas_get_id - Ensure a comat IOAS exists + * @ictx: Context to operate on + * + * Return the ID of the current compatability ioas. The ID can be passed into + * other functions that take an ioas_id. + */ +int iommufd_vfio_compat_ioas_get_id(struct iommufd_ctx *ictx, u32 *out_ioas_id) +{ + struct iommufd_ioas *ioas; + + ioas = get_compat_ioas(ictx); + if (IS_ERR(ioas)) + return PTR_ERR(ioas); + *out_ioas_id = ioas->obj.id; + iommufd_put_object(>obj); + return 0; +} +EXPORT_SYMBOL_NS_GPL(iommufd_vfio_compat_ioas_get_id, IOMMUFD_VFIO); + +/** + * iommufd_vfio_compat_ioas_create_id - Return the IOAS ID that vfio should use * @ictx: Context to operate on - * @out_ioas_id: The ioas_id the caller should use * * The compatibility IOAS is the IOAS that the vfio compatibility ioctls operate * on since they do not have an IOAS ID input in their ABI. Only attaching a - * group should cause a default creation of the internal ioas, this returns the - * existing ioas if it has already been assigned somehow. + * group should cause a default creation of the internal ioas, this does nothing + * if an existing ioas has already been assigned somehow. */ -int iommufd_vfio_compat_ioas_id(struct iommufd_ctx *ictx, u32 *out_ioas_id) +int iommufd_vfio_compat_ioas_create_id(struct iommufd_ctx *ictx) { struct iommufd_ioas *ioas = NULL; struct iommufd_ioas *out_ioas; @@ -53,7 +72,6 @@ int iommufd_vfio_compat_ioas_id(struct iommufd_ctx *ictx, u32 *out_ioas_id) } xa_unlock(>objects); - *out_ioas_id = out_ioas->obj.id; if (out_ioas != ioas) { iommufd_put_object(_ioas->obj); iommufd_object_abort(ictx, >obj); @@ -68,7 +86,7 @@ int iommufd_vfio_compat_ioas_id(struct iommufd_ctx *ictx, u32 *out_ioas_id) iommufd_object_finalize(ictx, >obj); return 0; } -EXPORT_SYMBOL_NS_GPL(iommufd_vfio_compat_ioas_id, IOMMUFD_VFIO); +EXPORT_SYMBOL_NS_GPL(iommufd_vfio_compat_ioas_create_id, IOMMUFD_VFIO); int iommufd_vfio_ioas(struct iommufd_ucmd *ucmd) { @@ -230,6 +248,9 @@ static int iommufd_vfio_check_extension(struct iommufd_ctx *ictx, case VFIO_UNMAP_ALL: return 1; + case VFIO_NOIOMMU_IOMMU: + return IS_ENABLED(CONFIG_VFIO_NOIOMMU); + case VFIO_DMA_CC_IOMMU: return iommufd_vfio_cc_iommu(ictx); @@ -259,6 +280,17 @@ static int iommufd_vfio_set_iommu(struct iommufd_ctx *ictx, unsigned long type) struct iommufd_ioas *ioas = NULL; int rc = 0; + /* +* Emulation for NOIMMU is imperfect in that VFIO blocks almost all +* other ioctls. We let them keep working but they mostly fail since no +* IOAS should exist. +*/ + if (IS_ENABLED(CONFIG_VFIO_NOIOMMU) && type == VFIO_NOIOMMU_IOMMU) { + if (!capable(CAP_SYS_RAWIO)) + return -EPERM; + return 0; + } + if (type != VFIO_TYPE1_IOMMU && type != VFIO_TYPE1v2_IOMMU)
Re: [Intel-gfx] [PATCH] drm/i915/display: Add missing checks for cdclk crawling
On Thu, Nov 10, 2022 at 01:28:19PM +0200, Jani Nikula wrote: > On Wed, 09 Nov 2022, Anusha Srivatsa wrote: > > cdclk_sanitize() function was written assuming vco was a signed integer. > > vco gets assigned to -1 (essentially ~0) for the case where PLL > > might be enabled and vco is not a frequency that will ever > > get used. In such a scenario the right thing to do is disable the > > PLL and re-enable it again with a valid frequency. > > However the vco is declared as a unsigned variable. > > With the above assumption, driver takes crawl path when not needed. > > Add explicit check to not crawl in the case of an invalid PLL. > > > > Cc: Matt Roper > > Suggested-by: Ville Syrjälä > > Signed-off-by: Anusha Srivatsa > > --- > > drivers/gpu/drm/i915/display/intel_cdclk.c | 2 ++ > > drivers/gpu/drm/i915/display/intel_cdclk.h | 1 + > > 2 files changed, 3 insertions(+) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c > > b/drivers/gpu/drm/i915/display/intel_cdclk.c > > index 8a9031012d74..91112d266763 100644 > > --- a/drivers/gpu/drm/i915/display/intel_cdclk.c > > +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c > > @@ -1962,6 +1962,8 @@ static bool intel_cdclk_can_crawl(struct > > drm_i915_private *dev_priv, > > if (!HAS_CDCLK_CRAWL(dev_priv)) > > return false; > > > > + if (intel_pll_is_unknown(a->vco)) > > + return false; > > /* > > * The vco and cd2x divider will change independently > > * from each, so we disallow cd2x change when crawling. > > diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.h > > b/drivers/gpu/drm/i915/display/intel_cdclk.h > > index c674879a84a5..6eb83d806f11 100644 > > --- a/drivers/gpu/drm/i915/display/intel_cdclk.h > > +++ b/drivers/gpu/drm/i915/display/intel_cdclk.h > > @@ -80,6 +80,7 @@ intel_atomic_get_cdclk_state(struct intel_atomic_state > > *state); > > to_intel_cdclk_state(intel_atomic_get_old_global_obj_state(state, > > _i915(state->base.dev)->display.cdclk.obj)) > > #define intel_atomic_get_new_cdclk_state(state) \ > > to_intel_cdclk_state(intel_atomic_get_new_global_obj_state(state, > > _i915(state->base.dev)->display.cdclk.obj)) > > +#define intel_pll_is_unknown(vco) ((vco) == ~0) > > Why here? What does a pll function do in intel_cdclk.h? Since this is referring to the cdclk pll (not port pll's), I suspect this shouldn't be needed anywhere outside the cdclk code. So it might be best just make this a static function inside the cdclk .c file rather than placing it in a header that exposes it to the rest of the driver. I.e., something like: static bool pll_us_unknown(struct intel_cdclk_state *s) { return (s->vco == ~0); } Matt > > BR, > Jani. > > > > > int intel_cdclk_init(struct drm_i915_private *dev_priv); > > -- > Jani Nikula, Intel Open Source Graphics Center -- Matt Roper Graphics Software Engineer VTT-OSGC Platform Enablement Intel Corporation
[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/4] drm/i915/hti: abstract hti handling
== Series Details == Series: series starting with [1/4] drm/i915/hti: abstract hti handling URL : https://patchwork.freedesktop.org/series/110712/ State : success == Summary == CI Bug Log - changes from CI_DRM_12365 -> Patchwork_110712v1 Summary --- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110712v1/index.html Participating hosts (41 -> 39) -- Additional (1): fi-tgl-dsi Missing(3): fi-ctg-p8600 fi-bdw-samus fi-pnv-d510 Known issues Here are the changes found in Patchwork_110712v1 that come from known issues: ### IGT changes ### Issues hit * igt@gem_lmem_swapping@basic: - fi-apl-guc: NOTRUN -> [SKIP][1] ([fdo#109271] / [i915#4613]) +3 similar issues [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110712v1/fi-apl-guc/igt@gem_lmem_swapp...@basic.html * igt@i915_selftest@live@gt_heartbeat: - fi-bxt-dsi: [PASS][2] -> [DMESG-FAIL][3] ([i915#5334] / [i915#7433]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-bxt-dsi/igt@i915_selftest@live@gt_heartbeat.html [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110712v1/fi-bxt-dsi/igt@i915_selftest@live@gt_heartbeat.html * igt@i915_selftest@live@hangcheck: - fi-hsw-4770:[PASS][4] -> [INCOMPLETE][5] ([i915#4785]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-hsw-4770/igt@i915_selftest@l...@hangcheck.html [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110712v1/fi-hsw-4770/igt@i915_selftest@l...@hangcheck.html * igt@i915_selftest@live@migrate: - bat-adlp-4: [PASS][6] -> [INCOMPLETE][7] ([i915#7308] / [i915#7348]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/bat-adlp-4/igt@i915_selftest@l...@migrate.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110712v1/bat-adlp-4/igt@i915_selftest@l...@migrate.html * igt@kms_chamelium@hdmi-crc-fast: - fi-apl-guc: NOTRUN -> [SKIP][8] ([fdo#109271] / [fdo#111827]) +8 similar issues [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110712v1/fi-apl-guc/igt@kms_chamel...@hdmi-crc-fast.html * igt@kms_psr@sprite_plane_onoff: - fi-apl-guc: NOTRUN -> [SKIP][9] ([fdo#109271]) +11 similar issues [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110712v1/fi-apl-guc/igt@kms_psr@sprite_plane_onoff.html * igt@runner@aborted: - bat-adlp-4: NOTRUN -> [FAIL][10] ([i915#4312]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110712v1/bat-adlp-4/igt@run...@aborted.html Possible fixes * igt@gem_exec_suspend@basic-s0@smem: - {bat-rplp-1}: [DMESG-WARN][11] ([i915#2867]) -> [PASS][12] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110712v1/bat-rplp-1/igt@gem_exec_suspend@basic...@smem.html * igt@gem_render_tiled_blits@basic: - fi-apl-guc: [INCOMPLETE][13] ([i915#7056]) -> [PASS][14] [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-apl-guc/igt@gem_render_tiled_bl...@basic.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110712v1/fi-apl-guc/igt@gem_render_tiled_bl...@basic.html * igt@i915_pm_rpm@module-reload: - {bat-rpls-2}: [DMESG-WARN][15] ([i915#6434]) -> [PASS][16] [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/bat-rpls-2/igt@i915_pm_...@module-reload.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110712v1/bat-rpls-2/igt@i915_pm_...@module-reload.html * igt@i915_selftest@live@gt_heartbeat: - fi-skl-guc: [DMESG-FAIL][17] ([i915#5334]) -> [PASS][18] [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12365/fi-skl-guc/igt@i915_selftest@live@gt_heartbeat.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_110712v1/fi-skl-guc/igt@i915_selftest@live@gt_heartbeat.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1759]: https://gitlab.freedesktop.org/drm/intel/issues/1759 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867 [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301 [i915#3555]:
[Intel-gfx] [PATCH v3 1/2] i915/uncore: Acquire fw before loop in intel_uncore_read64_2x32
PMU reads the GT timestamp as a 2x32 mmio read and since upper and lower 32 bit registers are read in a loop, there is a latency involved between getting the GT timestamp and the CPU timestamp. As part of the resolution, refactor intel_uncore_read64_2x32 to acquire forcewake and uncore lock prior to reading upper and lower regs. Signed-off-by: Umesh Nerlige Ramappa Reviewed-by: Tvrtko Ursulin Reviewed-by: Ashutosh Dixit --- drivers/gpu/drm/i915/intel_uncore.h | 44 - 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_uncore.h b/drivers/gpu/drm/i915/intel_uncore.h index 5449146a0624..e9e38490815d 100644 --- a/drivers/gpu/drm/i915/intel_uncore.h +++ b/drivers/gpu/drm/i915/intel_uncore.h @@ -382,20 +382,6 @@ __uncore_write(write_notrace, 32, l, false) */ __uncore_read(read64, 64, q, true) -static inline u64 -intel_uncore_read64_2x32(struct intel_uncore *uncore, -i915_reg_t lower_reg, i915_reg_t upper_reg) -{ - u32 upper, lower, old_upper, loop = 0; - upper = intel_uncore_read(uncore, upper_reg); - do { - old_upper = upper; - lower = intel_uncore_read(uncore, lower_reg); - upper = intel_uncore_read(uncore, upper_reg); - } while (upper != old_upper && loop++ < 2); - return (u64)upper << 32 | lower; -} - #define intel_uncore_posting_read(...) ((void)intel_uncore_read_notrace(__VA_ARGS__)) #define intel_uncore_posting_read16(...) ((void)intel_uncore_read16_notrace(__VA_ARGS__)) @@ -455,6 +441,36 @@ static inline void intel_uncore_rmw_fw(struct intel_uncore *uncore, intel_uncore_write_fw(uncore, reg, val); } +static inline u64 +intel_uncore_read64_2x32(struct intel_uncore *uncore, +i915_reg_t lower_reg, i915_reg_t upper_reg) +{ + u32 upper, lower, old_upper, loop = 0; + enum forcewake_domains fw_domains; + unsigned long flags; + + fw_domains = intel_uncore_forcewake_for_reg(uncore, lower_reg, + FW_REG_READ); + + fw_domains |= intel_uncore_forcewake_for_reg(uncore, upper_reg, + FW_REG_READ); + + spin_lock_irqsave(>lock, flags); + intel_uncore_forcewake_get__locked(uncore, fw_domains); + + upper = intel_uncore_read_fw(uncore, upper_reg); + do { + old_upper = upper; + lower = intel_uncore_read_fw(uncore, lower_reg); + upper = intel_uncore_read_fw(uncore, upper_reg); + } while (upper != old_upper && loop++ < 2); + + intel_uncore_forcewake_put__locked(uncore, fw_domains); + spin_unlock_irqrestore(>lock, flags); + + return (u64)upper << 32 | lower; +} + static inline int intel_uncore_write_and_verify(struct intel_uncore *uncore, i915_reg_t reg, u32 val, u32 mask, u32 expected_val) -- 2.25.1
[Intel-gfx] [PATCH v3 2/2] drm/i915/selftest: Bump up sample period for busy stats selftest
Engine busyness samples around a 10ms period is failing with busyness ranging approx. from 87% to 115% as shown below. The expected range is +/- 5% of the sample period. Fail 10% of the time. rcs0: reported 11716042ns [91%] busyness while spinning [for 12805719ns] When determining busyness of active engine, the GuC based engine busyness implementation relies on a 64 bit timestamp register read. The latency incurred by this register read causes the failure. On DG1, when the test fails, the observed latencies range from 900us - 1.5ms. Optimizing the 2x32 read by acquiring the lock and forcewake prior to all reg reads reduces the rate of failure to around 2%, but does not eliminate it. In order to make the selftest more robust and always account for such latencies, increase the sample period to 100 ms. This eliminates the issue as seen in a 1000 runs. v2: (Ashutosh) - Add error to commit msg - Include gitlab bug - Update commit for inclusion of 2x32 optimized read Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/4418 Signed-off-by: Umesh Nerlige Ramappa Acked-by: Tvrtko Ursulin Reviewed-by: Ashutosh Dixit --- drivers/gpu/drm/i915/gt/selftest_engine_pm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/gt/selftest_engine_pm.c b/drivers/gpu/drm/i915/gt/selftest_engine_pm.c index 0dcb3ed44a73..87c94314cf67 100644 --- a/drivers/gpu/drm/i915/gt/selftest_engine_pm.c +++ b/drivers/gpu/drm/i915/gt/selftest_engine_pm.c @@ -317,7 +317,7 @@ static int live_engine_busy_stats(void *arg) ENGINE_TRACE(engine, "measuring busy time\n"); preempt_disable(); de = intel_engine_get_busy_time(engine, [0]); - mdelay(10); + mdelay(100); de = ktime_sub(intel_engine_get_busy_time(engine, [1]), de); preempt_enable(); dt = ktime_sub(t[1], t[0]); -- 2.25.1
[Intel-gfx] [PATCH v3 0/2] Fix live busy stats selftest failure
Fix live busy stats selftest failure in BAT. The issue is seen more easily on DG1 runs. v2: (Tvrtko) In addition refactor intel_uncore_read64_2x32 to obtain the forcewake once before reading upper and lower register dwords. v3: (Ashutosh) Update commit msg Signed-off-by: Umesh Nerlige Ramappa Umesh Nerlige Ramappa (2): i915/uncore: Acquire fw before loop in intel_uncore_read64_2x32 drm/i915/selftest: Bump up sample period for busy stats selftest drivers/gpu/drm/i915/gt/selftest_engine_pm.c | 2 +- drivers/gpu/drm/i915/intel_uncore.h | 44 +--- 2 files changed, 31 insertions(+), 15 deletions(-) -- 2.25.1
Re: [Intel-gfx] [PATCH v2 07/11] vfio-iommufd: Support iommufd for physical VFIO devices
On Thu, Nov 10, 2022 at 03:11:16AM +, Tian, Kevin wrote: > > From: Jason Gunthorpe > > Sent: Tuesday, November 8, 2022 8:53 AM > > > > + > > +int vfio_iommufd_bind(struct vfio_device *vdev, struct iommufd_ctx *ictx) > > +{ > > + u32 ioas_id; > > + u32 device_id; > > + int ret; > > + > > + lockdep_assert_held(>dev_set->lock); > > + > > + /* > > +* If the driver doesn't provide this op then it means the device does > > +* not do DMA at all. So nothing to do. > > +*/ > > + if (!vdev->ops->bind_iommufd) > > + return 0; > > + > > + ret = vdev->ops->bind_iommufd(vdev, ictx, _id); > > + if (ret) > > + return ret; > > + > > + ret = iommufd_vfio_compat_ioas_id(ictx, _id); > > + if (ret) > > + goto err_unbind; > > + ret = vdev->ops->attach_ioas(vdev, _id); > > + if (ret) > > + goto err_unbind; > > with our discussion in v1: > > https://lore.kernel.org/all/y2mgjqz8fvm54...@nvidia.com/ > > I got the rationale on iommufd part which doesn't have the concept > of container hence not necessarily to impose restriction on when > an user can change a compat ioas. > > But from vfio side I wonder whether we should cache the compat > ioas id when it's attached by the first device and then use it all the > way for other device attachments coming after. implying IOAS_SET > only affects containers which haven't been attached. I can't see a reason to do this. IOAS_SET is a new ioctl and it has new semantics beyond what original vfio container could do. In this case having an impact on the next vfio_device that is opened. This seems generally useful enough I wouldn't want to block it. In any case, we can't *really* change this because the vfio layer is working on IDs and the IDs can be destroyed/recreated from under it. So if we try to hold the ID we could still end up getting it changed anyhow. Jason
Re: [Intel-gfx] [PATCH v2 10/11] vfio: Make vfio_container optionally compiled
On Thu, 10 Nov 2022 06:57:57 + "Tian, Kevin" wrote: > > From: Jason Gunthorpe > > Sent: Thursday, November 10, 2022 3:53 AM > > > > On Wed, Nov 09, 2022 at 10:18:09AM -0700, Alex Williamson wrote: > > > > > DPDK supports no-iommu mode. > > > > Er? Huh? How? I thought no-iommu was for applications that didn't do > > DMA? How is DPDK getting packets in/out without DMA? I guess it snoops > > in /proc/ or something to learn PFNs of mlock'd memory? > > iirc dpdk started with UIO plus various tricks (root privilege, hugepage, > etc.) > to lock and learn PFN's from pagemap. Then when migrating it to vfio the > no-iommu option was introduced to provide UIO compatibility. IIRC, we essentially introduced no-iommu mode vfio because DPDK started pushing for extending interrupt support in uio-pci-generic. The UIO driver is also only meant for devices that don't do DMA, but obviously DPDK didn't care about that. Rather than extend UIO, we offered this no-iommu mode in vfio since we already had more extensive MSI support, were better able to impose restrictions on access to the device, and using the same device access makes the transition to proper IOMMU backed configurations more seamless. Thanks, Alex
[Intel-gfx] ✗ Fi.CI.DOCS: warning for series starting with [1/4] drm/i915/hti: abstract hti handling
== Series Details == Series: series starting with [1/4] drm/i915/hti: abstract hti handling URL : https://patchwork.freedesktop.org/series/110712/ State : warning == Summary == Error: make htmldocs had i915 warnings ./drivers/gpu/drm/i915/i915_perf_types.h:319: warning: Function parameter or member 'lock' not described in 'i915_perf_stream'