Re: [Intel-gfx] [PATCH v2 11/11] iommufd: Allow iommufd to supply /dev/vfio/vfio

2022-11-10 Thread Yi Liu

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

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Patchwork
== 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)

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Zhenyu Wang
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

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Belgaumkar, Vinay



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)

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Yi Liu




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

2022-11-10 Thread Yi Liu

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

2022-11-10 Thread Yi Liu

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)

2022-11-10 Thread Patchwork
== 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)

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Tomasz Figa
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)

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Sundaresan, Sujaritha



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)

2022-11-10 Thread Patchwork
== 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)

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Matthew Rosato
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

2022-11-10 Thread Tian, Kevin
> 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

2022-11-10 Thread Tian, Kevin
> 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)

2022-11-10 Thread Patchwork
== 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)

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Patchwork
== 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)

2022-11-10 Thread Patchwork
== 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)

2022-11-10 Thread Patchwork
== 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)

2022-11-10 Thread Patchwork
== 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)

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Daniele Ceraolo Spurio
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)

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Daniele Ceraolo Spurio
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

2022-11-10 Thread Tian, Kevin
> 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

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Maíra Canal
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

2022-11-10 Thread Maíra Canal
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

2022-11-10 Thread Maíra Canal
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

2022-11-10 Thread Maíra Canal
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

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Navare, Manasi
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)

2022-11-10 Thread Patchwork
== 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)

2022-11-10 Thread Patchwork
== 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)

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Ville Syrjälä
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

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Zanoni, Paulo R
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

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Zanoni, Paulo R
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

2022-11-10 Thread Ville Syrjälä
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

2022-11-10 Thread Patchwork
== 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()

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Ville Syrjälä
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

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Ville Syrjälä
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

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Ville Syrjälä
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

2022-11-10 Thread Alex Williamson
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

2022-11-10 Thread Dmitry Osipenko
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

2022-11-10 Thread Dmitry Osipenko
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

2022-11-10 Thread Dmitry Osipenko
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

2022-11-10 Thread Dmitry Osipenko
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

2022-11-10 Thread Dmitry Osipenko
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

2022-11-10 Thread Dmitry Osipenko
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

2022-11-10 Thread Dmitry Osipenko
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

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Patchwork
== 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)

2022-11-10 Thread Patchwork
== 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)

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Imre Deak
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

2022-11-10 Thread Patchwork
== 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)

2022-11-10 Thread Patchwork
== 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)

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Ville Syrjälä
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

2022-11-10 Thread Ville Syrjälä
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

2022-11-10 Thread Jason Gunthorpe
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

2022-11-10 Thread Imre Deak
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)

2022-11-10 Thread Patchwork
== 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)

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Ville Syrjälä
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

2022-11-10 Thread Ville Syrjälä
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

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Daniele Ceraolo Spurio
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

2022-11-10 Thread Jason Gunthorpe
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

2022-11-10 Thread Matt Roper
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

2022-11-10 Thread Patchwork
== 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

2022-11-10 Thread Umesh Nerlige Ramappa
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

2022-11-10 Thread Umesh Nerlige Ramappa
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

2022-11-10 Thread Umesh Nerlige Ramappa
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

2022-11-10 Thread Jason Gunthorpe
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

2022-11-10 Thread Alex Williamson
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

2022-11-10 Thread Patchwork
== 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'




  1   2   >