All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH v2 0/6] drm/i915: further device info fixes and cleanups
@ 2023-06-27 15:13 Jani Nikula
  2023-06-27 15:13 ` [Intel-gfx] [PATCH v2 1/6] drm/i915: use mock device info for creating mock device Jani Nikula
                   ` (9 more replies)
  0 siblings, 10 replies; 19+ messages in thread
From: Jani Nikula @ 2023-06-27 15:13 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

This is v2 of [1], fixing mock device init to not modify rodata.

BR,
Jani.


[1] https://patchwork.freedesktop.org/series/119086/


Jani Nikula (6):
  drm/i915: use mock device info for creating mock device
  drm/i915: move platform_engine_mask and memory_regions to device info
  drm/i915: separate display info printing from the rest
  drm/i915: fix display info usage
  drm/i915: move display device and runtime info to struct intel_display
  drm/i915: make device info a const pointer to rodata

 drivers/gpu/drm/i915/display/intel_display.h  |  2 +-
 .../gpu/drm/i915/display/intel_display_core.h |  9 +++
 .../drm/i915/display/intel_display_device.c   | 21 ++++++
 .../drm/i915/display/intel_display_device.h   |  5 ++
 drivers/gpu/drm/i915/gt/intel_gt.c            |  2 +-
 drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.c     |  2 +-
 drivers/gpu/drm/i915/gt/uc/intel_huc.c        |  2 +-
 drivers/gpu/drm/i915/i915_debugfs.c           |  1 +
 drivers/gpu/drm/i915/i915_driver.c            |  2 +
 drivers/gpu/drm/i915/i915_drv.h               | 11 ++--
 drivers/gpu/drm/i915/i915_gpu_error.c         |  6 ++
 drivers/gpu/drm/i915/i915_gpu_error.h         |  3 +
 drivers/gpu/drm/i915/i915_pci.c               | 64 +++++++++----------
 drivers/gpu/drm/i915/intel_device_info.c      | 44 ++-----------
 drivers/gpu/drm/i915/intel_device_info.h      | 11 +---
 .../gpu/drm/i915/selftests/mock_gem_device.c  | 45 +++++++------
 16 files changed, 122 insertions(+), 108 deletions(-)

-- 
2.39.2


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Intel-gfx] [PATCH v2 1/6] drm/i915: use mock device info for creating mock device
  2023-06-27 15:13 [Intel-gfx] [PATCH v2 0/6] drm/i915: further device info fixes and cleanups Jani Nikula
@ 2023-06-27 15:13 ` Jani Nikula
  2023-06-29 11:00   ` Tvrtko Ursulin
                     ` (3 more replies)
  2023-06-27 15:13 ` [Intel-gfx] [PATCH v2 2/6] drm/i915: move platform_engine_mask and memory_regions to device info Jani Nikula
                   ` (8 subsequent siblings)
  9 siblings, 4 replies; 19+ messages in thread
From: Jani Nikula @ 2023-06-27 15:13 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula, Andrzej Hajda, Matt Roper

Instead of modifying the device info on the fly, use static const mock
device info.

It's not okay to modify device info at runtime; we've added separate
runtime info for info that needs to be modified at runtime. We've added
safeguards to device info to prevent it from being modified, but commit
5e352e32aec2 ("drm/i915: preparation for using PAT index") just cast the
const away and modified it anyway. This prevents device info from being
moved to rodata.

Fixes: 5e352e32aec2 ("drm/i915: preparation for using PAT index")
Suggested-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Fei Yang <fei.yang@intel.com>
Cc: Andi Shyti <andi.shyti@linux.intel.com>
Cc: Andrzej Hajda <andrzej.hajda@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 .../gpu/drm/i915/selftests/mock_gem_device.c  | 45 ++++++++++---------
 1 file changed, 24 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/i915/selftests/mock_gem_device.c b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
index 09d4bbcdcdbf..4de6a4e8280d 100644
--- a/drivers/gpu/drm/i915/selftests/mock_gem_device.c
+++ b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
@@ -118,15 +118,31 @@ static void mock_gt_probe(struct drm_i915_private *i915)
 	i915->gt[0]->name = "Mock GT";
 }
 
+static const struct intel_device_info mock_info = {
+	.__runtime.graphics.ip.ver = -1,
+	.__runtime.page_sizes = (I915_GTT_PAGE_SIZE_4K |
+				 I915_GTT_PAGE_SIZE_64K |
+				 I915_GTT_PAGE_SIZE_2M),
+	.__runtime.memory_regions = REGION_SMEM,
+	.__runtime.platform_engine_mask = BIT(0),
+
+	/* simply use legacy cache level for mock device */
+	.max_pat_index = 3,
+	.cachelevel_to_pat = {
+		[I915_CACHE_NONE]   = 0,
+		[I915_CACHE_LLC]    = 1,
+		[I915_CACHE_L3_LLC] = 2,
+		[I915_CACHE_WT]     = 3,
+	},
+};
+
 struct drm_i915_private *mock_gem_device(void)
 {
 #if IS_ENABLED(CONFIG_IOMMU_API) && defined(CONFIG_INTEL_IOMMU)
 	static struct dev_iommu fake_iommu = { .priv = (void *)-1 };
 #endif
 	struct drm_i915_private *i915;
-	struct intel_device_info *i915_info;
 	struct pci_dev *pdev;
-	unsigned int i;
 	int ret;
 
 	pdev = kzalloc(sizeof(*pdev), GFP_KERNEL);
@@ -159,15 +175,18 @@ struct drm_i915_private *mock_gem_device(void)
 
 	pci_set_drvdata(pdev, i915);
 
+	/* Device parameters start as a copy of module parameters. */
+	i915_params_copy(&i915->params, &i915_modparams);
+
+	/* Set up device info and initial runtime info. */
+	intel_device_info_driver_create(i915, pdev->device, &mock_info);
+
 	dev_pm_domain_set(&pdev->dev, &pm_domain);
 	pm_runtime_enable(&pdev->dev);
 	pm_runtime_dont_use_autosuspend(&pdev->dev);
 	if (pm_runtime_enabled(&pdev->dev))
 		WARN_ON(pm_runtime_get_sync(&pdev->dev));
 
-
-	i915_params_copy(&i915->params, &i915_modparams);
-
 	intel_runtime_pm_init_early(&i915->runtime_pm);
 	/* wakeref tracking has significant overhead */
 	i915->runtime_pm.no_wakeref_tracking = true;
@@ -175,21 +194,6 @@ struct drm_i915_private *mock_gem_device(void)
 	/* Using the global GTT may ask questions about KMS users, so prepare */
 	drm_mode_config_init(&i915->drm);
 
-	RUNTIME_INFO(i915)->graphics.ip.ver = -1;
-
-	RUNTIME_INFO(i915)->page_sizes =
-		I915_GTT_PAGE_SIZE_4K |
-		I915_GTT_PAGE_SIZE_64K |
-		I915_GTT_PAGE_SIZE_2M;
-
-	RUNTIME_INFO(i915)->memory_regions = REGION_SMEM;
-
-	/* simply use legacy cache level for mock device */
-	i915_info = (struct intel_device_info *)INTEL_INFO(i915);
-	i915_info->max_pat_index = 3;
-	for (i = 0; i < I915_MAX_CACHE_LEVEL; i++)
-		i915_info->cachelevel_to_pat[i] = i;
-
 	intel_memory_regions_hw_probe(i915);
 
 	spin_lock_init(&i915->gpu_error.lock);
@@ -223,7 +227,6 @@ struct drm_i915_private *mock_gem_device(void)
 	mock_init_ggtt(to_gt(i915));
 	to_gt(i915)->vm = i915_vm_get(&to_gt(i915)->ggtt->vm);
 
-	RUNTIME_INFO(i915)->platform_engine_mask = BIT(0);
 	to_gt(i915)->info.engine_mask = BIT(0);
 
 	to_gt(i915)->engine[RCS0] = mock_engine(i915, "mock", RCS0);
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [Intel-gfx] [PATCH v2 2/6] drm/i915: move platform_engine_mask and memory_regions to device info
  2023-06-27 15:13 [Intel-gfx] [PATCH v2 0/6] drm/i915: further device info fixes and cleanups Jani Nikula
  2023-06-27 15:13 ` [Intel-gfx] [PATCH v2 1/6] drm/i915: use mock device info for creating mock device Jani Nikula
@ 2023-06-27 15:13 ` Jani Nikula
  2023-06-29 11:06   ` Tvrtko Ursulin
  2023-06-27 15:14 ` [Intel-gfx] [PATCH v2 3/6] drm/i915: separate display info printing from the rest Jani Nikula
                   ` (7 subsequent siblings)
  9 siblings, 1 reply; 19+ messages in thread
From: Jani Nikula @ 2023-06-27 15:13 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

The mock device creation was the only place that needed to modify
platform_engine_mask and memory_regions runtime. With mock_info in place
for mock devices, we can move them to device info.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/gt/intel_gt.c            |  2 +-
 drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.c     |  2 +-
 drivers/gpu/drm/i915/gt/uc/intel_huc.c        |  2 +-
 drivers/gpu/drm/i915/i915_drv.h               |  2 +-
 drivers/gpu/drm/i915/i915_pci.c               | 64 +++++++++----------
 drivers/gpu/drm/i915/intel_device_info.c      |  2 +-
 drivers/gpu/drm/i915/intel_device_info.h      |  7 +-
 .../gpu/drm/i915/selftests/mock_gem_device.c  |  4 +-
 8 files changed, 42 insertions(+), 43 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_gt.c b/drivers/gpu/drm/i915/gt/intel_gt.c
index 7a008e829d4d..33a61046ba58 100644
--- a/drivers/gpu/drm/i915/gt/intel_gt.c
+++ b/drivers/gpu/drm/i915/gt/intel_gt.c
@@ -904,7 +904,7 @@ int intel_gt_probe_all(struct drm_i915_private *i915)
 	 */
 	gt->i915 = i915;
 	gt->name = "Primary GT";
-	gt->info.engine_mask = RUNTIME_INFO(i915)->platform_engine_mask;
+	gt->info.engine_mask = INTEL_INFO(i915)->platform_engine_mask;
 
 	gt_dbg(gt, "Setting up %s\n", gt->name);
 	ret = intel_gt_tile_setup(gt, phys_addr);
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.c b/drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.c
index 75a3a0790ef3..034b53a71541 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.c
@@ -99,7 +99,7 @@ static bool gsc_engine_supported(struct intel_gt *gt)
 	GEM_BUG_ON(!gt_is_root(gt) && !gt->info.engine_mask);
 
 	if (gt_is_root(gt))
-		mask = RUNTIME_INFO(gt->i915)->platform_engine_mask;
+		mask = INTEL_INFO(gt->i915)->platform_engine_mask;
 	else
 		mask = gt->info.engine_mask;
 
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_huc.c b/drivers/gpu/drm/i915/gt/uc/intel_huc.c
index 23aa1b0e0166..ba9e07fc2b57 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_huc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_huc.c
@@ -267,7 +267,7 @@ static bool vcs_supported(struct intel_gt *gt)
 	GEM_BUG_ON(!gt_is_root(gt) && !gt->info.engine_mask);
 
 	if (gt_is_root(gt))
-		mask = RUNTIME_INFO(gt->i915)->platform_engine_mask;
+		mask = INTEL_INFO(gt->i915)->platform_engine_mask;
 	else
 		mask = gt->info.engine_mask;
 
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index b4cf6f0f636d..078720a52322 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -839,7 +839,7 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915,
  */
 #define HAS_64K_PAGES(i915) (INTEL_INFO(i915)->has_64k_pages)
 
-#define HAS_REGION(i915, i) (RUNTIME_INFO(i915)->memory_regions & (i))
+#define HAS_REGION(i915, i) (INTEL_INFO(i915)->memory_regions & (i))
 #define HAS_LMEM(i915) HAS_REGION(i915, REGION_LMEM)
 
 #define HAS_EXTRA_GT_LIST(i915)   (INTEL_INFO(i915)->extra_gt_list)
diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
index 3d7a5db9833b..dea3609fc496 100644
--- a/drivers/gpu/drm/i915/i915_pci.c
+++ b/drivers/gpu/drm/i915/i915_pci.c
@@ -84,7 +84,7 @@ __diag_ignore_all("-Woverride-init", "Allow overriding inherited members");
 	.__runtime.page_sizes = I915_GTT_PAGE_SIZE_4K
 
 #define GEN_DEFAULT_REGIONS \
-	.__runtime.memory_regions = REGION_SMEM | REGION_STOLEN_SMEM
+	.memory_regions = REGION_SMEM | REGION_STOLEN_SMEM
 
 #define I830_FEATURES \
 	GEN(2), \
@@ -93,7 +93,7 @@ __diag_ignore_all("-Woverride-init", "Allow overriding inherited members");
 	.has_3d_pipeline = 1, \
 	.hws_needs_physical = 1, \
 	.unfenced_needs_alignment = 1, \
-	.__runtime.platform_engine_mask = BIT(RCS0), \
+	.platform_engine_mask = BIT(RCS0), \
 	.has_snoop = true, \
 	.has_coherent_ggtt = false, \
 	.dma_mask_size = 32, \
@@ -108,7 +108,7 @@ __diag_ignore_all("-Woverride-init", "Allow overriding inherited members");
 	.gpu_reset_clobbers_display = true, \
 	.hws_needs_physical = 1, \
 	.unfenced_needs_alignment = 1, \
-	.__runtime.platform_engine_mask = BIT(RCS0), \
+	.platform_engine_mask = BIT(RCS0), \
 	.has_snoop = true, \
 	.has_coherent_ggtt = false, \
 	.dma_mask_size = 32, \
@@ -140,7 +140,7 @@ static const struct intel_device_info i865g_info = {
 #define GEN3_FEATURES \
 	GEN(3), \
 	.gpu_reset_clobbers_display = true, \
-	.__runtime.platform_engine_mask = BIT(RCS0), \
+	.platform_engine_mask = BIT(RCS0), \
 	.has_3d_pipeline = 1, \
 	.has_snoop = true, \
 	.has_coherent_ggtt = true, \
@@ -203,7 +203,7 @@ static const struct intel_device_info pnv_m_info = {
 #define GEN4_FEATURES \
 	GEN(4), \
 	.gpu_reset_clobbers_display = true, \
-	.__runtime.platform_engine_mask = BIT(RCS0), \
+	.platform_engine_mask = BIT(RCS0), \
 	.has_3d_pipeline = 1, \
 	.has_snoop = true, \
 	.has_coherent_ggtt = true, \
@@ -231,7 +231,7 @@ static const struct intel_device_info i965gm_info = {
 static const struct intel_device_info g45_info = {
 	GEN4_FEATURES,
 	PLATFORM(INTEL_G45),
-	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0),
+	.platform_engine_mask = BIT(RCS0) | BIT(VCS0),
 	.gpu_reset_clobbers_display = false,
 };
 
@@ -239,13 +239,13 @@ static const struct intel_device_info gm45_info = {
 	GEN4_FEATURES,
 	PLATFORM(INTEL_GM45),
 	.is_mobile = 1,
-	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0),
+	.platform_engine_mask = BIT(RCS0) | BIT(VCS0),
 	.gpu_reset_clobbers_display = false,
 };
 
 #define GEN5_FEATURES \
 	GEN(5), \
-	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0), \
+	.platform_engine_mask = BIT(RCS0) | BIT(VCS0), \
 	.has_3d_pipeline = 1, \
 	.has_snoop = true, \
 	.has_coherent_ggtt = true, \
@@ -271,7 +271,7 @@ static const struct intel_device_info ilk_m_info = {
 
 #define GEN6_FEATURES \
 	GEN(6), \
-	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0), \
+	.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0), \
 	.has_3d_pipeline = 1, \
 	.has_coherent_ggtt = true, \
 	.has_llc = 1, \
@@ -319,7 +319,7 @@ static const struct intel_device_info snb_m_gt2_info = {
 
 #define GEN7_FEATURES  \
 	GEN(7), \
-	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0), \
+	.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0), \
 	.has_3d_pipeline = 1, \
 	.has_coherent_ggtt = true, \
 	.has_llc = 1, \
@@ -387,7 +387,7 @@ static const struct intel_device_info vlv_info = {
 	.__runtime.ppgtt_size = 31,
 	.has_snoop = true,
 	.has_coherent_ggtt = false,
-	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0),
+	.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0),
 	GEN_DEFAULT_PAGE_SIZES,
 	GEN_DEFAULT_REGIONS,
 	LEGACY_CACHELEVEL,
@@ -395,7 +395,7 @@ static const struct intel_device_info vlv_info = {
 
 #define G75_FEATURES  \
 	GEN7_FEATURES, \
-	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0), \
+	.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0), \
 	.has_rc6p = 0 /* RC6p removed-by HSW */, \
 	.has_runtime_pm = 1
 
@@ -453,7 +453,7 @@ static const struct intel_device_info bdw_rsvd_info = {
 static const struct intel_device_info bdw_gt3_info = {
 	BDW_PLATFORM,
 	.gt = 3,
-	.__runtime.platform_engine_mask =
+	.platform_engine_mask =
 		BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS1),
 };
 
@@ -461,7 +461,7 @@ static const struct intel_device_info chv_info = {
 	PLATFORM(INTEL_CHERRYVIEW),
 	GEN(8),
 	.is_lp = 1,
-	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0),
+	.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0),
 	.has_64bit_reloc = 1,
 	.has_runtime_pm = 1,
 	.has_rc6 = 1,
@@ -505,7 +505,7 @@ static const struct intel_device_info skl_gt2_info = {
 
 #define SKL_GT3_PLUS_PLATFORM \
 	SKL_PLATFORM, \
-	.__runtime.platform_engine_mask = \
+	.platform_engine_mask = \
 		BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS1)
 
 
@@ -522,7 +522,7 @@ static const struct intel_device_info skl_gt4_info = {
 #define GEN9_LP_FEATURES \
 	GEN(9), \
 	.is_lp = 1, \
-	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0), \
+	.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0), \
 	.has_3d_pipeline = 1, \
 	.has_64bit_reloc = 1, \
 	.has_runtime_pm = 1, \
@@ -568,7 +568,7 @@ static const struct intel_device_info kbl_gt2_info = {
 static const struct intel_device_info kbl_gt3_info = {
 	KBL_PLATFORM,
 	.gt = 3,
-	.__runtime.platform_engine_mask =
+	.platform_engine_mask =
 		BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS1),
 };
 
@@ -589,7 +589,7 @@ static const struct intel_device_info cfl_gt2_info = {
 static const struct intel_device_info cfl_gt3_info = {
 	CFL_PLATFORM,
 	.gt = 3,
-	.__runtime.platform_engine_mask =
+	.platform_engine_mask =
 		BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS1),
 };
 
@@ -622,21 +622,21 @@ static const struct intel_device_info cml_gt2_info = {
 static const struct intel_device_info icl_info = {
 	GEN11_FEATURES,
 	PLATFORM(INTEL_ICELAKE),
-	.__runtime.platform_engine_mask =
+	.platform_engine_mask =
 		BIT(RCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS0) | BIT(VCS2),
 };
 
 static const struct intel_device_info ehl_info = {
 	GEN11_FEATURES,
 	PLATFORM(INTEL_ELKHARTLAKE),
-	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(BCS0) | BIT(VCS0) | BIT(VECS0),
+	.platform_engine_mask = BIT(RCS0) | BIT(BCS0) | BIT(VCS0) | BIT(VECS0),
 	.__runtime.ppgtt_size = 36,
 };
 
 static const struct intel_device_info jsl_info = {
 	GEN11_FEATURES,
 	PLATFORM(INTEL_JASPERLAKE),
-	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(BCS0) | BIT(VCS0) | BIT(VECS0),
+	.platform_engine_mask = BIT(RCS0) | BIT(BCS0) | BIT(VCS0) | BIT(VECS0),
 	.__runtime.ppgtt_size = 36,
 };
 
@@ -651,19 +651,19 @@ static const struct intel_device_info jsl_info = {
 static const struct intel_device_info tgl_info = {
 	GEN12_FEATURES,
 	PLATFORM(INTEL_TIGERLAKE),
-	.__runtime.platform_engine_mask =
+	.platform_engine_mask =
 		BIT(RCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS0) | BIT(VCS2),
 };
 
 static const struct intel_device_info rkl_info = {
 	GEN12_FEATURES,
 	PLATFORM(INTEL_ROCKETLAKE),
-	.__runtime.platform_engine_mask =
+	.platform_engine_mask =
 		BIT(RCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS0),
 };
 
 #define DGFX_FEATURES \
-	.__runtime.memory_regions = REGION_SMEM | REGION_LMEM | REGION_STOLEN_LMEM, \
+	.memory_regions = REGION_SMEM | REGION_LMEM | REGION_STOLEN_LMEM, \
 	.has_llc = 0, \
 	.has_pxp = 0, \
 	.has_snoop = 1, \
@@ -676,7 +676,7 @@ static const struct intel_device_info dg1_info = {
 	.__runtime.graphics.ip.rel = 10,
 	PLATFORM(INTEL_DG1),
 	.require_force_probe = 1,
-	.__runtime.platform_engine_mask =
+	.platform_engine_mask =
 		BIT(RCS0) | BIT(BCS0) | BIT(VECS0) |
 		BIT(VCS0) | BIT(VCS2),
 	/* Wa_16011227922 */
@@ -686,7 +686,7 @@ static const struct intel_device_info dg1_info = {
 static const struct intel_device_info adl_s_info = {
 	GEN12_FEATURES,
 	PLATFORM(INTEL_ALDERLAKE_S),
-	.__runtime.platform_engine_mask =
+	.platform_engine_mask =
 		BIT(RCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS0) | BIT(VCS2),
 	.dma_mask_size = 39,
 };
@@ -694,7 +694,7 @@ static const struct intel_device_info adl_s_info = {
 static const struct intel_device_info adl_p_info = {
 	GEN12_FEATURES,
 	PLATFORM(INTEL_ALDERLAKE_P),
-	.__runtime.platform_engine_mask =
+	.platform_engine_mask =
 		BIT(RCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS0) | BIT(VCS2),
 	.__runtime.ppgtt_size = 48,
 	.dma_mask_size = 39,
@@ -746,7 +746,7 @@ static const struct intel_device_info xehpsdv_info = {
 	PLATFORM(INTEL_XEHPSDV),
 	.has_64k_pages = 1,
 	.has_media_ratio_mode = 1,
-	.__runtime.platform_engine_mask =
+	.platform_engine_mask =
 		BIT(RCS0) | BIT(BCS0) |
 		BIT(VECS0) | BIT(VECS1) | BIT(VECS2) | BIT(VECS3) |
 		BIT(VCS0) | BIT(VCS1) | BIT(VCS2) | BIT(VCS3) |
@@ -766,7 +766,7 @@ static const struct intel_device_info xehpsdv_info = {
 	.has_guc_deprivilege = 1, \
 	.has_heci_pxp = 1, \
 	.has_media_ratio_mode = 1, \
-	.__runtime.platform_engine_mask = \
+	.platform_engine_mask = \
 		BIT(RCS0) | BIT(BCS0) | \
 		BIT(VECS0) | BIT(VECS1) | \
 		BIT(VCS0) | BIT(VCS2) | \
@@ -801,7 +801,7 @@ static const struct intel_device_info pvc_info = {
 	PLATFORM(INTEL_PONTEVECCHIO),
 	.has_flat_ccs = 0,
 	.max_pat_index = 7,
-	.__runtime.platform_engine_mask =
+	.platform_engine_mask =
 		BIT(BCS0) |
 		BIT(VCS0) |
 		BIT(CCS0) | BIT(CCS1) | BIT(CCS2) | BIT(CCS3),
@@ -838,8 +838,8 @@ static const struct intel_device_info mtl_info = {
 	.has_snoop = 1,
 	.max_pat_index = 4,
 	.has_pxp = 1,
-	.__runtime.memory_regions = REGION_SMEM | REGION_STOLEN_LMEM,
-	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(BCS0) | BIT(CCS0),
+	.memory_regions = REGION_SMEM | REGION_STOLEN_LMEM,
+	.platform_engine_mask = BIT(RCS0) | BIT(BCS0) | BIT(CCS0),
 	.require_force_probe = 1,
 	MTL_CACHELEVEL,
 };
diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c
index 9c0f02faa0d7..9e7e33fbca6e 100644
--- a/drivers/gpu/drm/i915/intel_device_info.c
+++ b/drivers/gpu/drm/i915/intel_device_info.c
@@ -126,7 +126,7 @@ void intel_device_info_print(const struct intel_device_info *info,
 	drm_printf(p, "base die stepping: %s\n", intel_step_name(runtime->step.basedie_step));
 
 	drm_printf(p, "gt: %d\n", info->gt);
-	drm_printf(p, "memory-regions: 0x%x\n", runtime->memory_regions);
+	drm_printf(p, "memory-regions: 0x%x\n", info->memory_regions);
 	drm_printf(p, "page-sizes: 0x%x\n", runtime->page_sizes);
 	drm_printf(p, "platform: %s\n", intel_platform_name(info->platform));
 	drm_printf(p, "ppgtt-size: %d\n", runtime->ppgtt_size);
diff --git a/drivers/gpu/drm/i915/intel_device_info.h b/drivers/gpu/drm/i915/intel_device_info.h
index 069291b3bd37..81bfd64717cf 100644
--- a/drivers/gpu/drm/i915/intel_device_info.h
+++ b/drivers/gpu/drm/i915/intel_device_info.h
@@ -212,8 +212,6 @@ struct intel_runtime_info {
 
 	u16 device_id;
 
-	intel_engine_mask_t platform_engine_mask; /* Engines supported by the HW */
-
 	u32 rawclk_freq;
 
 	struct intel_step_info step;
@@ -223,8 +221,6 @@ struct intel_runtime_info {
 	enum intel_ppgtt_type ppgtt_type;
 	unsigned int ppgtt_size; /* log2, e.g. 31/32/48 bits */
 
-	u32 memory_regions; /* regions supported by the HW */
-
 	bool has_pooled_eu;
 };
 
@@ -237,6 +233,9 @@ struct intel_device_info {
 
 	u8 gt; /* GT number, 0 if undefined */
 
+	intel_engine_mask_t platform_engine_mask; /* Engines supported by the HW */
+	u32 memory_regions; /* regions supported by the HW */
+
 #define DEFINE_FLAG(name) u8 name:1
 	DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG);
 #undef DEFINE_FLAG
diff --git a/drivers/gpu/drm/i915/selftests/mock_gem_device.c b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
index 4de6a4e8280d..12aa7fbb0748 100644
--- a/drivers/gpu/drm/i915/selftests/mock_gem_device.c
+++ b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
@@ -123,8 +123,8 @@ static const struct intel_device_info mock_info = {
 	.__runtime.page_sizes = (I915_GTT_PAGE_SIZE_4K |
 				 I915_GTT_PAGE_SIZE_64K |
 				 I915_GTT_PAGE_SIZE_2M),
-	.__runtime.memory_regions = REGION_SMEM,
-	.__runtime.platform_engine_mask = BIT(0),
+	.memory_regions = REGION_SMEM,
+	.platform_engine_mask = BIT(0),
 
 	/* simply use legacy cache level for mock device */
 	.max_pat_index = 3,
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [Intel-gfx] [PATCH v2 3/6] drm/i915: separate display info printing from the rest
  2023-06-27 15:13 [Intel-gfx] [PATCH v2 0/6] drm/i915: further device info fixes and cleanups Jani Nikula
  2023-06-27 15:13 ` [Intel-gfx] [PATCH v2 1/6] drm/i915: use mock device info for creating mock device Jani Nikula
  2023-06-27 15:13 ` [Intel-gfx] [PATCH v2 2/6] drm/i915: move platform_engine_mask and memory_regions to device info Jani Nikula
@ 2023-06-27 15:14 ` Jani Nikula
  2023-06-27 15:14 ` [Intel-gfx] [PATCH v2 4/6] drm/i915: fix display info usage Jani Nikula
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 19+ messages in thread
From: Jani Nikula @ 2023-06-27 15:14 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula, Lucas De Marchi, Matt Roper

Add new function intel_display_device_info_print() and print the display
device info there instead of intel_device_info_print(). This also fixes
the display runtime info printing to use the actual runtime info instead
of the static defaults.

Cc: Matt Roper <matthew.d.roper@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 .../drm/i915/display/intel_display_device.c   | 21 +++++++++++++++++++
 .../drm/i915/display/intel_display_device.h   |  5 +++++
 drivers/gpu/drm/i915/i915_debugfs.c           |  1 +
 drivers/gpu/drm/i915/i915_driver.c            |  2 ++
 drivers/gpu/drm/i915/i915_gpu_error.c         |  6 ++++++
 drivers/gpu/drm/i915/i915_gpu_error.h         |  3 +++
 drivers/gpu/drm/i915/intel_device_info.c      | 20 ------------------
 7 files changed, 38 insertions(+), 20 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_device.c b/drivers/gpu/drm/i915/display/intel_display_device.c
index f87470da25d0..e4afa7334c82 100644
--- a/drivers/gpu/drm/i915/display/intel_display_device.c
+++ b/drivers/gpu/drm/i915/display/intel_display_device.c
@@ -981,3 +981,24 @@ void intel_display_device_info_runtime_init(struct drm_i915_private *i915)
 display_fused_off:
 	memset(display_runtime, 0, sizeof(*display_runtime));
 }
+
+void intel_display_device_info_print(const struct intel_display_device_info *info,
+				     const struct intel_display_runtime_info *runtime,
+				     struct drm_printer *p)
+{
+	if (runtime->ip.rel)
+		drm_printf(p, "display version: %u.%02u\n",
+			   runtime->ip.ver,
+			   runtime->ip.rel);
+	else
+		drm_printf(p, "display version: %u\n",
+			   runtime->ip.ver);
+
+#define PRINT_FLAG(name) drm_printf(p, "%s: %s\n", #name, str_yes_no(info->name))
+	DEV_INFO_DISPLAY_FOR_EACH_FLAG(PRINT_FLAG);
+#undef PRINT_FLAG
+
+	drm_printf(p, "has_hdcp: %s\n", str_yes_no(runtime->has_hdcp));
+	drm_printf(p, "has_dmc: %s\n", str_yes_no(runtime->has_dmc));
+	drm_printf(p, "has_dsc: %s\n", str_yes_no(runtime->has_dsc));
+}
diff --git a/drivers/gpu/drm/i915/display/intel_display_device.h b/drivers/gpu/drm/i915/display/intel_display_device.h
index 5b8a46114439..3324bd453ca7 100644
--- a/drivers/gpu/drm/i915/display/intel_display_device.h
+++ b/drivers/gpu/drm/i915/display/intel_display_device.h
@@ -11,6 +11,7 @@
 #include "intel_display_limits.h"
 
 struct drm_i915_private;
+struct drm_printer;
 
 #define DEV_INFO_DISPLAY_FOR_EACH_FLAG(func) \
 	/* Keep in alphabetical order */ \
@@ -127,4 +128,8 @@ intel_display_device_probe(struct drm_i915_private *i915, bool has_gmdid,
 			   u16 *ver, u16 *rel, u16 *step);
 void intel_display_device_info_runtime_init(struct drm_i915_private *i915);
 
+void intel_display_device_info_print(const struct intel_display_device_info *info,
+				     const struct intel_display_runtime_info *runtime,
+				     struct drm_printer *p);
+
 #endif
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 76ccd4e03e31..4de44cf1026d 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -67,6 +67,7 @@ static int i915_capabilities(struct seq_file *m, void *data)
 	seq_printf(m, "pch: %d\n", INTEL_PCH_TYPE(i915));
 
 	intel_device_info_print(INTEL_INFO(i915), RUNTIME_INFO(i915), &p);
+	intel_display_device_info_print(DISPLAY_INFO(i915), DISPLAY_RUNTIME_INFO(i915), &p);
 	i915_print_iommu_status(i915, &p);
 	intel_gt_info_print(&to_gt(i915)->info, &p);
 	intel_driver_caps_print(&i915->caps, &p);
diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index 222d0a1f3b55..294b022de22b 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -711,6 +711,8 @@ static void i915_welcome_messages(struct drm_i915_private *dev_priv)
 
 		intel_device_info_print(INTEL_INFO(dev_priv),
 					RUNTIME_INFO(dev_priv), &p);
+		intel_display_device_info_print(DISPLAY_INFO(dev_priv),
+						DISPLAY_RUNTIME_INFO(dev_priv), &p);
 		i915_print_iommu_status(dev_priv, &p);
 		for_each_gt(gt, dev_priv, i)
 			intel_gt_info_print(&gt->info, &p);
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index 4749f99e6320..92ca81f9feab 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -649,6 +649,8 @@ static void err_print_capabilities(struct drm_i915_error_state_buf *m,
 	struct drm_printer p = i915_error_printer(m);
 
 	intel_device_info_print(&error->device_info, &error->runtime_info, &p);
+	intel_display_device_info_print(&error->display_device_info,
+					&error->display_runtime_info, &p);
 	intel_driver_caps_print(&error->driver_caps, &p);
 }
 
@@ -1983,6 +1985,10 @@ static void capture_gen(struct i915_gpu_coredump *error)
 	memcpy(&error->runtime_info,
 	       RUNTIME_INFO(i915),
 	       sizeof(error->runtime_info));
+	memcpy(&error->display_device_info, DISPLAY_INFO(i915),
+	       sizeof(error->display_device_info));
+	memcpy(&error->display_runtime_info, DISPLAY_RUNTIME_INFO(i915),
+	       sizeof(error->display_runtime_info));
 	error->driver_caps = i915->caps;
 }
 
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.h b/drivers/gpu/drm/i915/i915_gpu_error.h
index a78c061ce26f..9f5971f5e980 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.h
+++ b/drivers/gpu/drm/i915/i915_gpu_error.h
@@ -14,6 +14,7 @@
 
 #include <drm/drm_mm.h>
 
+#include "display/intel_display_device.h"
 #include "gt/intel_engine.h"
 #include "gt/intel_gt_types.h"
 #include "gt/uc/intel_uc_fw.h"
@@ -209,6 +210,8 @@ struct i915_gpu_coredump {
 
 	struct intel_device_info device_info;
 	struct intel_runtime_info runtime_info;
+	struct intel_display_device_info display_device_info;
+	struct intel_display_runtime_info display_runtime_info;
 	struct intel_driver_caps driver_caps;
 	struct i915_params params;
 
diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c
index 9e7e33fbca6e..b93ef5fc26f1 100644
--- a/drivers/gpu/drm/i915/intel_device_info.c
+++ b/drivers/gpu/drm/i915/intel_device_info.c
@@ -93,9 +93,6 @@ void intel_device_info_print(const struct intel_device_info *info,
 			     const struct intel_runtime_info *runtime,
 			     struct drm_printer *p)
 {
-	const struct intel_display_runtime_info *display_runtime =
-		&info->display->__runtime_defaults;
-
 	if (runtime->graphics.ip.rel)
 		drm_printf(p, "graphics version: %u.%02u\n",
 			   runtime->graphics.ip.ver,
@@ -112,14 +109,6 @@ void intel_device_info_print(const struct intel_device_info *info,
 		drm_printf(p, "media version: %u\n",
 			   runtime->media.ip.ver);
 
-	if (display_runtime->ip.rel)
-		drm_printf(p, "display version: %u.%02u\n",
-			   display_runtime->ip.ver,
-			   display_runtime->ip.rel);
-	else
-		drm_printf(p, "display version: %u\n",
-			   display_runtime->ip.ver);
-
 	drm_printf(p, "graphics stepping: %s\n", intel_step_name(runtime->step.graphics_step));
 	drm_printf(p, "media stepping: %s\n", intel_step_name(runtime->step.media_step));
 	drm_printf(p, "display stepping: %s\n", intel_step_name(runtime->step.display_step));
@@ -138,15 +127,6 @@ void intel_device_info_print(const struct intel_device_info *info,
 #undef PRINT_FLAG
 
 	drm_printf(p, "has_pooled_eu: %s\n", str_yes_no(runtime->has_pooled_eu));
-
-#define PRINT_FLAG(name) drm_printf(p, "%s: %s\n", #name, str_yes_no(info->display->name))
-	DEV_INFO_DISPLAY_FOR_EACH_FLAG(PRINT_FLAG);
-#undef PRINT_FLAG
-
-	drm_printf(p, "has_hdcp: %s\n", str_yes_no(display_runtime->has_hdcp));
-	drm_printf(p, "has_dmc: %s\n", str_yes_no(display_runtime->has_dmc));
-	drm_printf(p, "has_dsc: %s\n", str_yes_no(display_runtime->has_dsc));
-
 	drm_printf(p, "rawclk rate: %u kHz\n", runtime->rawclk_freq);
 }
 
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [Intel-gfx] [PATCH v2 4/6] drm/i915: fix display info usage
  2023-06-27 15:13 [Intel-gfx] [PATCH v2 0/6] drm/i915: further device info fixes and cleanups Jani Nikula
                   ` (2 preceding siblings ...)
  2023-06-27 15:14 ` [Intel-gfx] [PATCH v2 3/6] drm/i915: separate display info printing from the rest Jani Nikula
@ 2023-06-27 15:14 ` Jani Nikula
  2023-06-27 15:14 ` [Intel-gfx] [PATCH v2 5/6] drm/i915: move display device and runtime info to struct intel_display Jani Nikula
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 19+ messages in thread
From: Jani Nikula @ 2023-06-27 15:14 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula, Lucas De Marchi, Matt Roper

Prefer DISPLAY_INFO() over INTEL_INFO()->display.

Cc: Matt Roper <matthew.d.roper@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
index 53ca0e4e2357..49ac8473b988 100644
--- a/drivers/gpu/drm/i915/display/intel_display.h
+++ b/drivers/gpu/drm/i915/display/intel_display.h
@@ -113,7 +113,7 @@ enum i9xx_plane_id {
 
 #define for_each_dbuf_slice(__dev_priv, __slice) \
 	for ((__slice) = DBUF_S1; (__slice) < I915_MAX_DBUF_SLICES; (__slice)++) \
-		for_each_if(INTEL_INFO(__dev_priv)->display->dbuf.slice_mask & BIT(__slice))
+		for_each_if(DISPLAY_INFO(__dev_priv)->dbuf.slice_mask & BIT(__slice))
 
 #define for_each_dbuf_slice_in_mask(__dev_priv, __slice, __mask) \
 	for_each_dbuf_slice((__dev_priv), (__slice)) \
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [Intel-gfx] [PATCH v2 5/6] drm/i915: move display device and runtime info to struct intel_display
  2023-06-27 15:13 [Intel-gfx] [PATCH v2 0/6] drm/i915: further device info fixes and cleanups Jani Nikula
                   ` (3 preceding siblings ...)
  2023-06-27 15:14 ` [Intel-gfx] [PATCH v2 4/6] drm/i915: fix display info usage Jani Nikula
@ 2023-06-27 15:14 ` Jani Nikula
  2023-06-27 15:14 ` [Intel-gfx] [PATCH v2 6/6] drm/i915: make device info a const pointer to rodata Jani Nikula
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 19+ messages in thread
From: Jani Nikula @ 2023-06-27 15:14 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula, Lucas De Marchi, Matt Roper

Continue moving all things display further into display files and
structures.

v2: Sort includes (Matt)

Cc: Matt Roper <matthew.d.roper@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/display/intel_display_core.h | 9 +++++++++
 drivers/gpu/drm/i915/i915_drv.h                   | 5 ++---
 drivers/gpu/drm/i915/intel_device_info.c          | 7 +++----
 drivers/gpu/drm/i915/intel_device_info.h          | 4 ----
 4 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h b/drivers/gpu/drm/i915/display/intel_display_core.h
index 8d2243c71dd8..c37d2c4bbf76 100644
--- a/drivers/gpu/drm/i915/display/intel_display_core.h
+++ b/drivers/gpu/drm/i915/display/intel_display_core.h
@@ -17,6 +17,7 @@
 #include <drm/drm_modeset_lock.h>
 
 #include "intel_cdclk.h"
+#include "intel_display_device.h"
 #include "intel_display_limits.h"
 #include "intel_display_power.h"
 #include "intel_dpll_mgr.h"
@@ -429,6 +430,14 @@ struct intel_display {
 		u32 state;
 	} hti;
 
+	struct {
+		/* Access with DISPLAY_INFO() */
+		const struct intel_display_device_info *__device_info;
+
+		/* Access with DISPLAY_RUNTIME_INFO() */
+		struct intel_display_runtime_info __runtime_info;
+	} info;
+
 	struct {
 		bool false_color;
 	} ips;
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 078720a52322..8947d1201298 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -205,7 +205,6 @@ struct drm_i915_private {
 
 	const struct intel_device_info __info; /* Use INTEL_INFO() to access. */
 	struct intel_runtime_info __runtime; /* Use RUNTIME_INFO() to access. */
-	struct intel_display_runtime_info __display_runtime; /* Access with DISPLAY_RUNTIME_INFO() */
 	struct intel_driver_caps caps;
 
 	struct i915_dsm dsm;
@@ -417,9 +416,9 @@ static inline struct intel_gt *to_gt(struct drm_i915_private *i915)
 	     (engine__) = rb_to_uabi_engine(rb_next(&(engine__)->uabi_node)))
 
 #define INTEL_INFO(i915)	(&(i915)->__info)
-#define DISPLAY_INFO(i915)	(INTEL_INFO(i915)->display)
 #define RUNTIME_INFO(i915)	(&(i915)->__runtime)
-#define DISPLAY_RUNTIME_INFO(i915)	(&(i915)->__display_runtime)
+#define DISPLAY_INFO(i915)	((i915)->display.info.__device_info)
+#define DISPLAY_RUNTIME_INFO(i915)	(&(i915)->display.info.__runtime_info)
 #define DRIVER_CAPS(i915)	(&(i915)->caps)
 
 #define INTEL_DEVID(i915)	(RUNTIME_INFO(i915)->device_id)
diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c
index b93ef5fc26f1..0740922cd71f 100644
--- a/drivers/gpu/drm/i915/intel_device_info.c
+++ b/drivers/gpu/drm/i915/intel_device_info.c
@@ -391,7 +391,6 @@ static const struct intel_display_device_info no_display = {};
  */
 void intel_device_info_runtime_init(struct drm_i915_private *dev_priv)
 {
-	struct intel_device_info *info = mkwrite_device_info(dev_priv);
 	struct intel_runtime_info *runtime = RUNTIME_INFO(dev_priv);
 
 	if (HAS_DISPLAY(dev_priv))
@@ -401,7 +400,7 @@ void intel_device_info_runtime_init(struct drm_i915_private *dev_priv)
 	if (!HAS_DISPLAY(dev_priv)) {
 		dev_priv->drm.driver_features &= ~(DRIVER_MODESET |
 						   DRIVER_ATOMIC);
-		info->display = &no_display;
+		dev_priv->display.info.__device_info = &no_display;
 	}
 
 	/* Disable nuclear pageflip by default on pre-g4x */
@@ -444,8 +443,8 @@ void intel_device_info_driver_create(struct drm_i915_private *i915,
 	memcpy(runtime, &INTEL_INFO(i915)->__runtime, sizeof(*runtime));
 
 	/* Probe display support */
-	info->display = intel_display_device_probe(i915, info->has_gmd_id,
-						   &ver, &rel, &step);
+	i915->display.info.__device_info = intel_display_device_probe(i915, info->has_gmd_id,
+								      &ver, &rel, &step);
 	memcpy(DISPLAY_RUNTIME_INFO(i915),
 	       &DISPLAY_INFO(i915)->__runtime_defaults,
 	       sizeof(*DISPLAY_RUNTIME_INFO(i915)));
diff --git a/drivers/gpu/drm/i915/intel_device_info.h b/drivers/gpu/drm/i915/intel_device_info.h
index 81bfd64717cf..dbfe6443457b 100644
--- a/drivers/gpu/drm/i915/intel_device_info.h
+++ b/drivers/gpu/drm/i915/intel_device_info.h
@@ -29,8 +29,6 @@
 
 #include "intel_step.h"
 
-#include "display/intel_display_device.h"
-
 #include "gt/intel_engine_types.h"
 #include "gt/intel_context_types.h"
 #include "gt/intel_sseu.h"
@@ -240,8 +238,6 @@ struct intel_device_info {
 	DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG);
 #undef DEFINE_FLAG
 
-	const struct intel_display_device_info *display;
-
 	/*
 	 * Initial runtime info. Do not access outside of i915_driver_create().
 	 */
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [Intel-gfx] [PATCH v2 6/6] drm/i915: make device info a const pointer to rodata
  2023-06-27 15:13 [Intel-gfx] [PATCH v2 0/6] drm/i915: further device info fixes and cleanups Jani Nikula
                   ` (4 preceding siblings ...)
  2023-06-27 15:14 ` [Intel-gfx] [PATCH v2 5/6] drm/i915: move display device and runtime info to struct intel_display Jani Nikula
@ 2023-06-27 15:14 ` Jani Nikula
  2023-06-29 11:10   ` Tvrtko Ursulin
  2023-06-27 20:28 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: further device info fixes and cleanups Patchwork
                   ` (3 subsequent siblings)
  9 siblings, 1 reply; 19+ messages in thread
From: Jani Nikula @ 2023-06-27 15:14 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula, Lucas De Marchi, Matt Roper

Finally we can get rid of the pseudo-const write-once device info, and
convert it into a const pointer to device info in rodata.

Cc: Matt Roper <matthew.d.roper@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.h          |  4 ++--
 drivers/gpu/drm/i915/intel_device_info.c | 17 ++++-------------
 2 files changed, 6 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 8947d1201298..682ef2b5c7d5 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -203,7 +203,7 @@ struct drm_i915_private {
 	/* i915 device parameters */
 	struct i915_params params;
 
-	const struct intel_device_info __info; /* Use INTEL_INFO() to access. */
+	const struct intel_device_info *__info; /* Use INTEL_INFO() to access. */
 	struct intel_runtime_info __runtime; /* Use RUNTIME_INFO() to access. */
 	struct intel_driver_caps caps;
 
@@ -415,7 +415,7 @@ static inline struct intel_gt *to_gt(struct drm_i915_private *i915)
 	     (engine__) && (engine__)->uabi_class == (class__); \
 	     (engine__) = rb_to_uabi_engine(rb_next(&(engine__)->uabi_node)))
 
-#define INTEL_INFO(i915)	(&(i915)->__info)
+#define INTEL_INFO(i915)	((i915)->__info)
 #define RUNTIME_INFO(i915)	(&(i915)->__runtime)
 #define DISPLAY_INFO(i915)	((i915)->display.info.__device_info)
 #define DISPLAY_RUNTIME_INFO(i915)	(&(i915)->display.info.__runtime_info)
diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c
index 0740922cd71f..ea0ec6174ce5 100644
--- a/drivers/gpu/drm/i915/intel_device_info.c
+++ b/drivers/gpu/drm/i915/intel_device_info.c
@@ -364,13 +364,6 @@ void intel_device_info_runtime_init_early(struct drm_i915_private *i915)
 	intel_device_info_subplatform_init(i915);
 }
 
-/* FIXME: Remove this, and make device info a const pointer to rodata. */
-static struct intel_device_info *
-mkwrite_device_info(struct drm_i915_private *i915)
-{
-	return (struct intel_device_info *)INTEL_INFO(i915);
-}
-
 static const struct intel_display_device_info no_display = {};
 
 /**
@@ -430,26 +423,24 @@ void intel_device_info_driver_create(struct drm_i915_private *i915,
 				     u16 device_id,
 				     const struct intel_device_info *match_info)
 {
-	struct intel_device_info *info;
 	struct intel_runtime_info *runtime;
 	u16 ver, rel, step;
 
-	/* Setup the write-once "constant" device info */
-	info = mkwrite_device_info(i915);
-	memcpy(info, match_info, sizeof(*info));
+	/* Setup INTEL_INFO() */
+	i915->__info = match_info;
 
 	/* Initialize initial runtime info from static const data and pdev. */
 	runtime = RUNTIME_INFO(i915);
 	memcpy(runtime, &INTEL_INFO(i915)->__runtime, sizeof(*runtime));
 
 	/* Probe display support */
-	i915->display.info.__device_info = intel_display_device_probe(i915, info->has_gmd_id,
+	i915->display.info.__device_info = intel_display_device_probe(i915, HAS_GMD_ID(i915),
 								      &ver, &rel, &step);
 	memcpy(DISPLAY_RUNTIME_INFO(i915),
 	       &DISPLAY_INFO(i915)->__runtime_defaults,
 	       sizeof(*DISPLAY_RUNTIME_INFO(i915)));
 
-	if (info->has_gmd_id) {
+	if (HAS_GMD_ID(i915)) {
 		DISPLAY_RUNTIME_INFO(i915)->ip.ver = ver;
 		DISPLAY_RUNTIME_INFO(i915)->ip.rel = rel;
 		DISPLAY_RUNTIME_INFO(i915)->ip.step = step;
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: further device info fixes and cleanups
  2023-06-27 15:13 [Intel-gfx] [PATCH v2 0/6] drm/i915: further device info fixes and cleanups Jani Nikula
                   ` (5 preceding siblings ...)
  2023-06-27 15:14 ` [Intel-gfx] [PATCH v2 6/6] drm/i915: make device info a const pointer to rodata Jani Nikula
@ 2023-06-27 20:28 ` Patchwork
  2023-06-27 20:28 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2023-06-27 20:28 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: further device info fixes and cleanups
URL   : https://patchwork.freedesktop.org/series/119933/
State : warning

== Summary ==

Error: dim checkpatch failed
b9423c209dc0 drm/i915: use mock device info for creating mock device
93df845dfc05 drm/i915: move platform_engine_mask and memory_regions to device info
74e0bd21bc35 drm/i915: separate display info printing from the rest
-:37: CHECK:MACRO_ARG_PRECEDENCE: Macro argument 'name' may be better as '(name)' to avoid precedence issues
#37: FILE: drivers/gpu/drm/i915/display/intel_display_device.c:997:
+#define PRINT_FLAG(name) drm_printf(p, "%s: %s\n", #name, str_yes_no(info->name))

total: 0 errors, 0 warnings, 1 checks, 125 lines checked
baa649ba6f62 drm/i915: fix display info usage
9dc8f7006e55 drm/i915: move display device and runtime info to struct intel_display
6543bcf56ae9 drm/i915: make device info a const pointer to rodata



^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: further device info fixes and cleanups
  2023-06-27 15:13 [Intel-gfx] [PATCH v2 0/6] drm/i915: further device info fixes and cleanups Jani Nikula
                   ` (6 preceding siblings ...)
  2023-06-27 20:28 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: further device info fixes and cleanups Patchwork
@ 2023-06-27 20:28 ` Patchwork
  2023-06-27 20:43 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
  2023-06-28 14:05 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
  9 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2023-06-27 20:28 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: further device info fixes and cleanups
URL   : https://patchwork.freedesktop.org/series/119933/
State : warning

== Summary ==

Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.



^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: further device info fixes and cleanups
  2023-06-27 15:13 [Intel-gfx] [PATCH v2 0/6] drm/i915: further device info fixes and cleanups Jani Nikula
                   ` (7 preceding siblings ...)
  2023-06-27 20:28 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
@ 2023-06-27 20:43 ` Patchwork
  2023-06-28 14:05 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
  9 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2023-06-27 20:43 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 8716 bytes --]

== Series Details ==

Series: drm/i915: further device info fixes and cleanups
URL   : https://patchwork.freedesktop.org/series/119933/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_13328 -> Patchwork_119933v1
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/index.html

Participating hosts (40 -> 40)
------------------------------

  Additional (2): fi-apl-guc fi-pnv-d510 
  Missing    (2): fi-kbl-soraka fi-snb-2520m 

Known issues
------------

  Here are the changes found in Patchwork_119933v1 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@core_auth@basic-auth:
    - bat-adlp-11:        [PASS][1] -> [ABORT][2] ([i915#8011])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/bat-adlp-11/igt@core_auth@basic-auth.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/bat-adlp-11/igt@core_auth@basic-auth.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_119933v1/fi-apl-guc/igt@gem_lmem_swapping@basic.html

  * igt@i915_module_load@load:
    - bat-adlp-11:        [PASS][4] -> [DMESG-WARN][5] ([i915#4423])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/bat-adlp-11/igt@i915_module_load@load.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/bat-adlp-11/igt@i915_module_load@load.html

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - bat-mtlp-8:         [PASS][6] -> [ABORT][7] ([i915#7077] / [i915#7977])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/bat-mtlp-8/igt@i915_pm_rpm@basic-pci-d3-state.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/bat-mtlp-8/igt@i915_pm_rpm@basic-pci-d3-state.html

  * igt@i915_selftest@live@gt_lrc:
    - bat-dg2-11:         [PASS][8] -> [INCOMPLETE][9] ([i915#7609] / [i915#7913])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/bat-dg2-11/igt@i915_selftest@live@gt_lrc.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/bat-dg2-11/igt@i915_selftest@live@gt_lrc.html

  * igt@i915_selftest@live@requests:
    - bat-adlp-9:         [PASS][10] -> [ABORT][11] ([i915#7913] / [i915#7982])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/bat-adlp-9/igt@i915_selftest@live@requests.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/bat-adlp-9/igt@i915_selftest@live@requests.html
    - bat-rpls-2:         [PASS][12] -> [ABORT][13] ([i915#7913] / [i915#7982])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/bat-rpls-2/igt@i915_selftest@live@requests.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/bat-rpls-2/igt@i915_selftest@live@requests.html

  * igt@kms_chamelium_hpd@vga-hpd-fast:
    - fi-apl-guc:         NOTRUN -> [SKIP][14] ([fdo#109271]) +21 similar issues
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/fi-apl-guc/igt@kms_chamelium_hpd@vga-hpd-fast.html

  * igt@kms_pipe_crc_basic@nonblocking-crc:
    - bat-adlp-9:         NOTRUN -> [SKIP][15] ([i915#3546]) +3 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/bat-adlp-9/igt@kms_pipe_crc_basic@nonblocking-crc.html

  * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence:
    - bat-dg2-11:         NOTRUN -> [SKIP][16] ([i915#1845] / [i915#5354]) +3 similar issues
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html

  * igt@kms_psr@primary_mmap_gtt:
    - bat-rplp-1:         NOTRUN -> [ABORT][17] ([i915#8442])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/bat-rplp-1/igt@kms_psr@primary_mmap_gtt.html

  * igt@kms_psr@primary_page_flip:
    - fi-pnv-d510:        NOTRUN -> [SKIP][18] ([fdo#109271]) +37 similar issues
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/fi-pnv-d510/igt@kms_psr@primary_page_flip.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - fi-apl-guc:         NOTRUN -> [SKIP][19] ([fdo#109271] / [i915#4579])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/fi-apl-guc/igt@kms_setmode@basic-clone-single-crtc.html
    - fi-pnv-d510:        NOTRUN -> [SKIP][20] ([fdo#109271] / [i915#4579])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/fi-pnv-d510/igt@kms_setmode@basic-clone-single-crtc.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@gt_mocs:
    - bat-mtlp-6:         [DMESG-FAIL][21] ([i915#7059]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/bat-mtlp-6/igt@i915_selftest@live@gt_mocs.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/bat-mtlp-6/igt@i915_selftest@live@gt_mocs.html

  * igt@i915_selftest@live@slpc:
    - bat-mtlp-6:         [DMESG-WARN][23] ([i915#6367]) -> [PASS][24]
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/bat-mtlp-6/igt@i915_selftest@live@slpc.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/bat-mtlp-6/igt@i915_selftest@live@slpc.html
    - bat-rpls-1:         [DMESG-WARN][25] ([i915#6367]) -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/bat-rpls-1/igt@i915_selftest@live@slpc.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/bat-rpls-1/igt@i915_selftest@live@slpc.html

  * igt@i915_selftest@live@workarounds:
    - bat-mtlp-6:         [DMESG-FAIL][27] ([i915#6763]) -> [PASS][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/bat-mtlp-6/igt@i915_selftest@live@workarounds.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/bat-mtlp-6/igt@i915_selftest@live@workarounds.html

  
#### Warnings ####

  * igt@kms_psr@sprite_plane_onoff:
    - bat-rplp-1:         [ABORT][29] ([i915#8712]) -> [SKIP][30] ([i915#1072])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/bat-rplp-1/igt@kms_psr@sprite_plane_onoff.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/bat-rplp-1/igt@kms_psr@sprite_plane_onoff.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
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
  [i915#4423]: https://gitlab.freedesktop.org/drm/intel/issues/4423
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
  [i915#6763]: https://gitlab.freedesktop.org/drm/intel/issues/6763
  [i915#7059]: https://gitlab.freedesktop.org/drm/intel/issues/7059
  [i915#7077]: https://gitlab.freedesktop.org/drm/intel/issues/7077
  [i915#7609]: https://gitlab.freedesktop.org/drm/intel/issues/7609
  [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
  [i915#7977]: https://gitlab.freedesktop.org/drm/intel/issues/7977
  [i915#7982]: https://gitlab.freedesktop.org/drm/intel/issues/7982
  [i915#8011]: https://gitlab.freedesktop.org/drm/intel/issues/8011
  [i915#8442]: https://gitlab.freedesktop.org/drm/intel/issues/8442
  [i915#8712]: https://gitlab.freedesktop.org/drm/intel/issues/8712


Build changes
-------------

  * Linux: CI_DRM_13328 -> Patchwork_119933v1

  CI-20190529: 20190529
  CI_DRM_13328: 12cd6b2d321d9c034f3d4ba14788d68cb8da4eac @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_7351: d8dc96b95c60e4737fdfa1664ce9b1dcebfdef60 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_119933v1: 12cd6b2d321d9c034f3d4ba14788d68cb8da4eac @ git://anongit.freedesktop.org/gfx-ci/linux


### Linux commits

138c8f42bc57 drm/i915: make device info a const pointer to rodata
d3fce33fad86 drm/i915: move display device and runtime info to struct intel_display
f56656e9b84f drm/i915: fix display info usage
5611e33988e2 drm/i915: separate display info printing from the rest
ca8bdc91f235 drm/i915: move platform_engine_mask and memory_regions to device info
c8ceec722efc drm/i915: use mock device info for creating mock device

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/index.html

[-- Attachment #2: Type: text/html, Size: 10403 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: further device info fixes and cleanups
  2023-06-27 15:13 [Intel-gfx] [PATCH v2 0/6] drm/i915: further device info fixes and cleanups Jani Nikula
                   ` (8 preceding siblings ...)
  2023-06-27 20:43 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
@ 2023-06-28 14:05 ` Patchwork
  9 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2023-06-28 14:05 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 47601 bytes --]

== Series Details ==

Series: drm/i915: further device info fixes and cleanups
URL   : https://patchwork.freedesktop.org/series/119933/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_13328_full -> Patchwork_119933v1_full
====================================================

Summary
-------

  **WARNING**

  Minor unknown changes coming with Patchwork_119933v1_full need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_119933v1_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Participating hosts (9 -> 9)
------------------------------

  No changes in participating hosts

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_119933v1_full:

### IGT changes ###

#### Warnings ####

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt:
    - shard-tglu:         [SKIP][1] ([fdo#109280]) -> [ABORT][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-tglu-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-tglu-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt.html

  
New tests
---------

  New tests have been introduced between CI_DRM_13328_full and Patchwork_119933v1_full:

### New IGT tests (1) ###

  * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-d-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  

Known issues
------------

  Here are the changes found in Patchwork_119933v1_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@drm_fdinfo@most-busy-idle-check-all@rcs0:
    - shard-rkl:          [PASS][3] -> [FAIL][4] ([i915#7742])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-rkl-2/igt@drm_fdinfo@most-busy-idle-check-all@rcs0.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-rkl-1/igt@drm_fdinfo@most-busy-idle-check-all@rcs0.html

  * igt@gem_create@create-ext-set-pat:
    - shard-glk:          NOTRUN -> [FAIL][5] ([i915#8621])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-glk4/igt@gem_create@create-ext-set-pat.html

  * igt@gem_eio@in-flight-contexts-1us:
    - shard-mtlp:         [PASS][6] -> [ABORT][7] ([i915#8503])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-mtlp-7/igt@gem_eio@in-flight-contexts-1us.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-2/igt@gem_eio@in-flight-contexts-1us.html

  * igt@gem_exec_balancer@bonded-pair:
    - shard-mtlp:         NOTRUN -> [SKIP][8] ([i915#4771])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-3/igt@gem_exec_balancer@bonded-pair.html

  * igt@gem_exec_balancer@invalid-bonds:
    - shard-mtlp:         NOTRUN -> [SKIP][9] ([i915#4036])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-7/igt@gem_exec_balancer@invalid-bonds.html

  * igt@gem_exec_fair@basic-none@vecs0:
    - shard-rkl:          [PASS][10] -> [FAIL][11] ([i915#2842])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-rkl-2/igt@gem_exec_fair@basic-none@vecs0.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-rkl-7/igt@gem_exec_fair@basic-none@vecs0.html

  * igt@gem_exec_reloc@basic-gtt-wc-active:
    - shard-dg2:          NOTRUN -> [SKIP][12] ([i915#3281])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-11/igt@gem_exec_reloc@basic-gtt-wc-active.html

  * igt@gem_exec_reloc@basic-wc-cpu-active:
    - shard-mtlp:         NOTRUN -> [SKIP][13] ([i915#3281])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-1/igt@gem_exec_reloc@basic-wc-cpu-active.html

  * igt@gem_exec_schedule@deep@vcs1:
    - shard-mtlp:         [PASS][14] -> [FAIL][15] ([i915#8545])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-mtlp-6/igt@gem_exec_schedule@deep@vcs1.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-7/igt@gem_exec_schedule@deep@vcs1.html

  * igt@gem_exec_schedule@semaphore-power:
    - shard-mtlp:         NOTRUN -> [SKIP][16] ([i915#4812])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-7/igt@gem_exec_schedule@semaphore-power.html

  * igt@gem_exec_suspend@basic-s3@lmem0:
    - shard-dg2:          [PASS][17] -> [FAIL][18] ([fdo#103375]) +2 similar issues
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-dg2-8/igt@gem_exec_suspend@basic-s3@lmem0.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-5/igt@gem_exec_suspend@basic-s3@lmem0.html

  * igt@gem_exec_whisper@basic-contexts-forked-all:
    - shard-mtlp:         [PASS][19] -> [TIMEOUT][20] ([i915#8628])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-mtlp-2/igt@gem_exec_whisper@basic-contexts-forked-all.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-4/igt@gem_exec_whisper@basic-contexts-forked-all.html

  * igt@gem_exec_whisper@basic-fds-all:
    - shard-mtlp:         [PASS][21] -> [FAIL][22] ([i915#6363]) +1 similar issue
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-mtlp-4/igt@gem_exec_whisper@basic-fds-all.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-5/igt@gem_exec_whisper@basic-fds-all.html

  * igt@gem_fenced_exec_thrash@no-spare-fences-busy-interruptible:
    - shard-dg2:          NOTRUN -> [SKIP][23] ([i915#4860])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-11/igt@gem_fenced_exec_thrash@no-spare-fences-busy-interruptible.html

  * igt@gem_lmem_swapping@heavy-verify-multi:
    - shard-glk:          NOTRUN -> [SKIP][24] ([fdo#109271] / [i915#4613])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-glk4/igt@gem_lmem_swapping@heavy-verify-multi.html

  * igt@gem_lmem_swapping@smem-oom@lmem0:
    - shard-dg2:          [PASS][25] -> [DMESG-WARN][26] ([i915#4936] / [i915#5493])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-dg2-1/igt@gem_lmem_swapping@smem-oom@lmem0.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-8/igt@gem_lmem_swapping@smem-oom@lmem0.html

  * igt@gem_mmap_wc@bad-offset:
    - shard-mtlp:         NOTRUN -> [SKIP][27] ([i915#4083])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-1/igt@gem_mmap_wc@bad-offset.html

  * igt@gem_render_copy@yf-tiled-to-vebox-linear:
    - shard-mtlp:         NOTRUN -> [SKIP][28] ([i915#8428])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-7/igt@gem_render_copy@yf-tiled-to-vebox-linear.html

  * igt@gem_userptr_blits@coherency-sync:
    - shard-mtlp:         NOTRUN -> [SKIP][29] ([i915#3297]) +1 similar issue
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-7/igt@gem_userptr_blits@coherency-sync.html

  * igt@gem_userptr_blits@vma-merge:
    - shard-glk:          NOTRUN -> [FAIL][30] ([i915#3318])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-glk4/igt@gem_userptr_blits@vma-merge.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-apl:          [PASS][31] -> [ABORT][32] ([i915#5566])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-apl3/igt@gen9_exec_parse@allowed-single.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-apl1/igt@gen9_exec_parse@allowed-single.html

  * igt@i915_pm_rc6_residency@rc6-accuracy:
    - shard-mtlp:         NOTRUN -> [SKIP][33] ([fdo#109289] / [i915#8403])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-5/igt@i915_pm_rc6_residency@rc6-accuracy.html

  * igt@i915_pm_rpm@gem-evict-pwrite:
    - shard-dg2:          NOTRUN -> [SKIP][34] ([i915#4077]) +1 similar issue
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-11/igt@i915_pm_rpm@gem-evict-pwrite.html

  * igt@i915_pm_rpm@modeset-lpsp:
    - shard-dg2:          [PASS][35] -> [SKIP][36] ([i915#1397]) +1 similar issue
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-dg2-12/igt@i915_pm_rpm@modeset-lpsp.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-7/igt@i915_pm_rpm@modeset-lpsp.html

  * igt@i915_pm_rpm@modeset-non-lpsp-stress:
    - shard-rkl:          [PASS][37] -> [SKIP][38] ([i915#1397]) +1 similar issue
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-rkl-6/igt@i915_pm_rpm@modeset-non-lpsp-stress.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-rkl-7/igt@i915_pm_rpm@modeset-non-lpsp-stress.html

  * igt@i915_pm_rps@min-max-config-idle:
    - shard-dg2:          NOTRUN -> [SKIP][39] ([i915#6621])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-11/igt@i915_pm_rps@min-max-config-idle.html

  * igt@i915_selftest@live@gt_pm:
    - shard-rkl:          [PASS][40] -> [DMESG-FAIL][41] ([i915#4258])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-rkl-4/igt@i915_selftest@live@gt_pm.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-rkl-4/igt@i915_selftest@live@gt_pm.html

  * igt@i915_suspend@basic-s3-without-i915:
    - shard-rkl:          [PASS][42] -> [FAIL][43] ([fdo#103375])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-rkl-2/igt@i915_suspend@basic-s3-without-i915.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-rkl-7/igt@i915_suspend@basic-s3-without-i915.html

  * igt@i915_suspend@fence-restore-tiled2untiled:
    - shard-mtlp:         NOTRUN -> [SKIP][44] ([i915#4077])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-7/igt@i915_suspend@fence-restore-tiled2untiled.html

  * igt@kms_addfb_basic@addfb25-x-tiled-legacy:
    - shard-dg2:          NOTRUN -> [SKIP][45] ([i915#4212])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-11/igt@kms_addfb_basic@addfb25-x-tiled-legacy.html

  * igt@kms_big_fb@4-tiled-16bpp-rotate-270:
    - shard-mtlp:         NOTRUN -> [SKIP][46] ([fdo#111614]) +1 similar issue
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-1/igt@kms_big_fb@4-tiled-16bpp-rotate-270.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-tglu:         NOTRUN -> [SKIP][47] ([fdo#111615] / [i915#5286])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-tglu-9/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-mtlp:         NOTRUN -> [SKIP][48] ([fdo#111615]) +1 similar issue
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-1/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_ccs:
    - shard-dg2:          NOTRUN -> [SKIP][49] ([i915#3689] / [i915#5354]) +1 similar issue
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-11/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_ccs.html
    - shard-tglu:         NOTRUN -> [SKIP][50] ([i915#3689] / [i915#5354] / [i915#6095])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-tglu-9/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_ccs.html

  * igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs:
    - shard-mtlp:         NOTRUN -> [SKIP][51] ([i915#6095]) +5 similar issues
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-1/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs.html

  * igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_mc_ccs:
    - shard-mtlp:         NOTRUN -> [SKIP][52] ([i915#3886] / [i915#6095])
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-7/igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-b-bad-aux-stride-y_tiled_gen12_rc_ccs_cc:
    - shard-glk:          NOTRUN -> [SKIP][53] ([fdo#109271] / [i915#3886]) +1 similar issue
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-glk4/igt@kms_ccs@pipe-b-bad-aux-stride-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-b-crc-primary-rotation-180-yf_tiled_ccs:
    - shard-tglu:         NOTRUN -> [SKIP][54] ([fdo#111615] / [i915#3689] / [i915#5354] / [i915#6095])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-tglu-9/igt@kms_ccs@pipe-b-crc-primary-rotation-180-yf_tiled_ccs.html

  * igt@kms_ccs@pipe-c-random-ccs-data-4_tiled_mtl_rc_ccs_cc:
    - shard-tglu:         NOTRUN -> [SKIP][55] ([i915#5354] / [i915#6095])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-tglu-9/igt@kms_ccs@pipe-c-random-ccs-data-4_tiled_mtl_rc_ccs_cc.html

  * igt@kms_cdclk@mode-transition:
    - shard-glk:          NOTRUN -> [SKIP][56] ([fdo#109271]) +48 similar issues
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-glk4/igt@kms_cdclk@mode-transition.html

  * igt@kms_cdclk@plane-scaling@pipe-c-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][57] ([i915#4087]) +2 similar issues
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-3/igt@kms_cdclk@plane-scaling@pipe-c-hdmi-a-3.html

  * igt@kms_cdclk@plane-scaling@pipe-d-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][58] ([i915#4087] / [i915#4579])
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-3/igt@kms_cdclk@plane-scaling@pipe-d-hdmi-a-3.html

  * igt@kms_chamelium_color@ctm-0-75:
    - shard-tglu:         NOTRUN -> [SKIP][59] ([fdo#111827])
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-tglu-9/igt@kms_chamelium_color@ctm-0-75.html
    - shard-dg2:          NOTRUN -> [SKIP][60] ([fdo#111827])
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-11/igt@kms_chamelium_color@ctm-0-75.html

  * igt@kms_content_protection@srm:
    - shard-dg2:          NOTRUN -> [SKIP][61] ([i915#4579] / [i915#7118]) +2 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-1/igt@kms_content_protection@srm.html

  * igt@kms_cursor_crc@cursor-onscreen-512x170:
    - shard-mtlp:         NOTRUN -> [SKIP][62] ([i915#3359])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-5/igt@kms_cursor_crc@cursor-onscreen-512x170.html

  * igt@kms_cursor_legacy@cursor-vs-flip-toggle:
    - shard-mtlp:         [PASS][63] -> [FAIL][64] ([i915#8248])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-mtlp-6/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-3/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-varying-size:
    - shard-mtlp:         NOTRUN -> [SKIP][65] ([i915#3546])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-1/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
    - shard-glk:          NOTRUN -> [FAIL][66] ([i915#2346])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-glk4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html

  * igt@kms_cursor_legacy@single-move@all-pipes:
    - shard-mtlp:         [PASS][67] -> [DMESG-WARN][68] ([i915#2017])
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-mtlp-2/igt@kms_cursor_legacy@single-move@all-pipes.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-4/igt@kms_cursor_legacy@single-move@all-pipes.html

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [SKIP][69] ([i915#3804] / [i915#4579])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-rkl-7/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1.html

  * igt@kms_flip@2x-flip-vs-wf_vblank-interruptible:
    - shard-dg2:          NOTRUN -> [SKIP][70] ([fdo#109274])
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-11/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html
    - shard-tglu:         NOTRUN -> [SKIP][71] ([fdo#109274] / [i915#3637])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-tglu-9/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-default-mode:
    - shard-mtlp:         NOTRUN -> [SKIP][72] ([i915#4579]) +4 similar issues
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-7/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-valid-mode:
    - shard-glk:          NOTRUN -> [SKIP][73] ([fdo#109271] / [i915#4579]) +3 similar issues
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-glk4/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling@pipe-a-valid-mode:
    - shard-dg2:          NOTRUN -> [SKIP][74] ([i915#2672] / [i915#4579])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-1/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling@pipe-a-valid-mode.html

  * igt@kms_force_connector_basic@prune-stale-modes:
    - shard-mtlp:         NOTRUN -> [SKIP][75] ([i915#5274])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-7/igt@kms_force_connector_basic@prune-stale-modes.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-mtlp:         NOTRUN -> [SKIP][76] ([i915#8708]) +1 similar issue
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move:
    - shard-dg2:          [PASS][77] -> [FAIL][78] ([i915#6880]) +1 similar issue
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-dg2-7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw:
    - shard-tglu:         NOTRUN -> [SKIP][79] ([fdo#110189])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-tglu-9/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-pgflip-blt:
    - shard-dg2:          NOTRUN -> [SKIP][80] ([i915#5354]) +4 similar issues
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-11/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-wc:
    - shard-mtlp:         NOTRUN -> [SKIP][81] ([i915#1825]) +1 similar issue
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-plflip-blt:
    - shard-dg2:          NOTRUN -> [SKIP][82] ([i915#3458]) +1 similar issue
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-1/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-pwrite:
    - shard-tglu:         NOTRUN -> [SKIP][83] ([fdo#109280]) +3 similar issues
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-tglu-9/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-pwrite.html

  * igt@kms_hdr@static-toggle-suspend:
    - shard-dg2:          NOTRUN -> [SKIP][84] ([i915#3555] / [i915#4579]) +2 similar issues
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-7/igt@kms_hdr@static-toggle-suspend.html

  * igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-hdmi-a-1:
    - shard-glk:          NOTRUN -> [FAIL][85] ([i915#4573]) +1 similar issue
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-glk4/igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-hdmi-a-1.html

  * igt@kms_plane_scaling@invalid-num-scalers@pipe-a-hdmi-a-1-invalid-num-scalers:
    - shard-snb:          NOTRUN -> [SKIP][86] ([fdo#109271]) +7 similar issues
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-snb1/igt@kms_plane_scaling@invalid-num-scalers@pipe-a-hdmi-a-1-invalid-num-scalers.html

  * igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][87] ([i915#5176]) +1 similar issue
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-rkl-1/igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-a-hdmi-a-2.html

  * igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-b-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][88] ([i915#4579] / [i915#5176]) +1 similar issue
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-rkl-1/igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-b-hdmi-a-2.html

  * igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-25@pipe-d-dp-2:
    - shard-dg2:          NOTRUN -> [SKIP][89] ([i915#4579] / [i915#5176]) +1 similar issue
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-12/igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-25@pipe-d-dp-2.html

  * igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-25@pipe-b-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][90] ([i915#5176]) +5 similar issues
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-7/igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-25@pipe-b-hdmi-a-3.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-a-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [SKIP][91] ([i915#5235]) +1 similar issue
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-rkl-7/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-a-hdmi-a-1.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-c-dp-4:
    - shard-dg2:          NOTRUN -> [SKIP][92] ([i915#5235]) +8 similar issues
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-11/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-c-dp-4.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling@pipe-b-vga-1:
    - shard-snb:          NOTRUN -> [SKIP][93] ([fdo#109271] / [i915#4579]) +5 similar issues
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-snb4/igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling@pipe-b-vga-1.html

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-a-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][94] ([i915#5235]) +2 similar issues
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-7/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-a-edp-1.html

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-d-dp-2:
    - shard-dg2:          NOTRUN -> [SKIP][95] ([i915#4579] / [i915#5235]) +2 similar issues
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-12/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-d-dp-2.html

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-d-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][96] ([i915#4579] / [i915#5235])
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-7/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-d-edp-1.html

  * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-b-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][97] ([i915#4579] / [i915#5235]) +1 similar issue
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-rkl-4/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-b-hdmi-a-2.html

  * igt@kms_rotation_crc@primary-y-tiled-reflect-x-0:
    - shard-dg2:          NOTRUN -> [SKIP][98] ([i915#5190])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-11/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html

  * igt@perf_pmu@busy-double-start@ccs0:
    - shard-dg2:          [PASS][99] -> [FAIL][100] ([i915#4349])
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-dg2-10/igt@perf_pmu@busy-double-start@ccs0.html
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-3/igt@perf_pmu@busy-double-start@ccs0.html

  * igt@sysfs_heartbeat_interval@nopreempt@rcs0:
    - shard-mtlp:         [PASS][101] -> [FAIL][102] ([i915#6015])
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-mtlp-2/igt@sysfs_heartbeat_interval@nopreempt@rcs0.html
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-4/igt@sysfs_heartbeat_interval@nopreempt@rcs0.html

  * igt@v3d/v3d_job_submission@array-job-submission:
    - shard-dg2:          NOTRUN -> [SKIP][103] ([i915#2575])
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-11/igt@v3d/v3d_job_submission@array-job-submission.html
    - shard-tglu:         NOTRUN -> [SKIP][104] ([fdo#109315] / [i915#2575])
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-tglu-9/igt@v3d/v3d_job_submission@array-job-submission.html

  * igt@v3d/v3d_perfmon@create-single-perfmon:
    - shard-mtlp:         NOTRUN -> [SKIP][105] ([i915#2575]) +1 similar issue
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-5/igt@v3d/v3d_perfmon@create-single-perfmon.html

  * igt@vc4/vc4_tiling@get-after-free:
    - shard-mtlp:         NOTRUN -> [SKIP][106] ([i915#7711])
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-7/igt@vc4/vc4_tiling@get-after-free.html

  
#### Possible fixes ####

  * igt@drm_fdinfo@most-busy-check-all@rcs0:
    - shard-rkl:          [FAIL][107] ([i915#7742]) -> [PASS][108]
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-rkl-2/igt@drm_fdinfo@most-busy-check-all@rcs0.html
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-rkl-7/igt@drm_fdinfo@most-busy-check-all@rcs0.html

  * igt@gem_ctx_exec@basic-nohangcheck:
    - shard-tglu:         [FAIL][109] ([i915#6268]) -> [PASS][110]
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-tglu-2/igt@gem_ctx_exec@basic-nohangcheck.html
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-tglu-9/igt@gem_ctx_exec@basic-nohangcheck.html

  * igt@gem_ctx_persistence@smoketest:
    - shard-mtlp:         [FAIL][111] ([i915#8663]) -> [PASS][112]
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-mtlp-6/igt@gem_ctx_persistence@smoketest.html
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-7/igt@gem_ctx_persistence@smoketest.html

  * igt@gem_eio@in-flight-10ms:
    - shard-mtlp:         [ABORT][113] ([i915#8503]) -> [PASS][114]
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-mtlp-6/igt@gem_eio@in-flight-10ms.html
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-7/igt@gem_eio@in-flight-10ms.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-rkl:          [FAIL][115] ([i915#2842]) -> [PASS][116] +1 similar issue
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-rkl-4/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-rkl-6/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_suspend@basic-s4-devices@lmem0:
    - shard-dg2:          [ABORT][117] ([i915#7975] / [i915#8213] / [i915#8682]) -> [PASS][118]
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-dg2-6/igt@gem_exec_suspend@basic-s4-devices@lmem0.html
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-11/igt@gem_exec_suspend@basic-s4-devices@lmem0.html

  * igt@gem_exec_suspend@basic-s4-devices@smem:
    - shard-tglu:         [ABORT][119] ([i915#7975] / [i915#8213]) -> [PASS][120]
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-tglu-10/igt@gem_exec_suspend@basic-s4-devices@smem.html
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-tglu-9/igt@gem_exec_suspend@basic-s4-devices@smem.html

  * igt@gem_exec_whisper@basic-contexts-all:
    - shard-mtlp:         [FAIL][121] ([i915#6363]) -> [PASS][122]
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-mtlp-1/igt@gem_exec_whisper@basic-contexts-all.html
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-2/igt@gem_exec_whisper@basic-contexts-all.html

  * igt@gem_lmem_swapping@smem-oom@lmem0:
    - {shard-dg1}:        [TIMEOUT][123] ([i915#5493]) -> [PASS][124]
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-dg1-18/igt@gem_lmem_swapping@smem-oom@lmem0.html
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg1-16/igt@gem_lmem_swapping@smem-oom@lmem0.html

  * igt@gem_mmap_offset@clear@smem0:
    - shard-dg2:          [DMESG-WARN][125] ([i915#8304]) -> [PASS][126]
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-dg2-6/igt@gem_mmap_offset@clear@smem0.html
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-11/igt@gem_mmap_offset@clear@smem0.html

  * igt@gem_workarounds@suspend-resume:
    - {shard-dg1}:        [FAIL][127] ([fdo#103375]) -> [PASS][128]
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-dg1-19/igt@gem_workarounds@suspend-resume.html
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg1-17/igt@gem_workarounds@suspend-resume.html

  * igt@i915_module_load@reload-with-fault-injection:
    - shard-dg2:          [DMESG-WARN][129] ([i915#7061]) -> [PASS][130]
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-dg2-3/igt@i915_module_load@reload-with-fault-injection.html
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-12/igt@i915_module_load@reload-with-fault-injection.html

  * igt@i915_pm_rc6_residency@rc6-idle@rcs0:
    - {shard-dg1}:        [FAIL][131] ([i915#3591]) -> [PASS][132] +1 similar issue
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-dg1-14/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg1-19/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html

  * igt@i915_pm_rpm@dpms-lpsp:
    - {shard-dg1}:        [SKIP][133] ([i915#1397]) -> [PASS][134] +2 similar issues
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-dg1-12/igt@i915_pm_rpm@dpms-lpsp.html
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg1-19/igt@i915_pm_rpm@dpms-lpsp.html

  * igt@i915_pm_rpm@dpms-mode-unset-non-lpsp:
    - shard-dg2:          [SKIP][135] ([i915#1397]) -> [PASS][136] +2 similar issues
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-dg2-10/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-3/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html

  * igt@i915_pm_rpm@dpms-non-lpsp:
    - shard-rkl:          [SKIP][137] ([i915#1397]) -> [PASS][138] +2 similar issues
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-rkl-7/igt@i915_pm_rpm@dpms-non-lpsp.html
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-rkl-2/igt@i915_pm_rpm@dpms-non-lpsp.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-mtlp:         [FAIL][139] ([i915#5138]) -> [PASS][140]
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-mtlp-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-3/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
    - shard-mtlp:         [FAIL][141] ([i915#3743]) -> [PASS][142]
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-mtlp-2/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-4/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
    - shard-glk:          [FAIL][143] ([i915#72]) -> [PASS][144]
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-glk9/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-glk2/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
    - shard-apl:          [FAIL][145] ([i915#2346]) -> [PASS][146]
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-apl3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-apl2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html

  * igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a1:
    - shard-glk:          [FAIL][147] ([i915#79]) -> [PASS][148]
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-glk4/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a1.html
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-glk9/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a1.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-pwrite:
    - shard-dg2:          [FAIL][149] ([i915#6880]) -> [PASS][150]
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-dg2-11/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-pwrite.html
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-1/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-dg2:          [FAIL][151] ([fdo#103375]) -> [PASS][152]
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-dg2-5/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-10/igt@kms_frontbuffer_tracking@fbc-suspend.html
    - shard-mtlp:         [FAIL][153] ([fdo#103375]) -> [PASS][154]
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-mtlp-4/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-3/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-1:
    - shard-tglu:         [FAIL][155] ([i915#8292]) -> [PASS][156]
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-tglu-6/igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-1.html
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-tglu-4/igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-1.html

  * igt@perf_pmu@busy-double-start@ccs1:
    - shard-dg2:          [FAIL][157] ([i915#4349]) -> [PASS][158] +8 similar issues
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-dg2-10/igt@perf_pmu@busy-double-start@ccs1.html
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-3/igt@perf_pmu@busy-double-start@ccs1.html

  * igt@perf_pmu@most-busy-idle-check-all@bcs0:
    - {shard-dg1}:        [FAIL][159] ([i915#5234]) -> [PASS][160]
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-dg1-14/igt@perf_pmu@most-busy-idle-check-all@bcs0.html
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg1-13/igt@perf_pmu@most-busy-idle-check-all@bcs0.html

  
#### Warnings ####

  * igt@kms_async_flips@crc@pipe-a-edp-1:
    - shard-mtlp:         [FAIL][161] ([i915#8247]) -> [DMESG-FAIL][162] ([i915#1982] / [i915#8561])
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-mtlp-3/igt@kms_async_flips@crc@pipe-a-edp-1.html
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-8/igt@kms_async_flips@crc@pipe-a-edp-1.html

  * igt@kms_async_flips@crc@pipe-c-edp-1:
    - shard-mtlp:         [FAIL][163] ([i915#8247]) -> [DMESG-FAIL][164] ([i915#8561])
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-mtlp-3/igt@kms_async_flips@crc@pipe-c-edp-1.html
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-8/igt@kms_async_flips@crc@pipe-c-edp-1.html

  * igt@kms_async_flips@crc@pipe-d-edp-1:
    - shard-mtlp:         [DMESG-FAIL][165] ([i915#8561]) -> [FAIL][166] ([i915#8247])
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-mtlp-3/igt@kms_async_flips@crc@pipe-d-edp-1.html
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-8/igt@kms_async_flips@crc@pipe-d-edp-1.html

  * igt@kms_content_protection@content_type_change:
    - shard-dg2:          [SKIP][167] ([i915#4579] / [i915#7118]) -> [SKIP][168] ([i915#4579] / [i915#7118] / [i915#7162])
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-dg2-6/igt@kms_content_protection@content_type_change.html
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-11/igt@kms_content_protection@content_type_change.html

  * igt@kms_content_protection@mei_interface:
    - shard-dg2:          [SKIP][169] ([i915#4579] / [i915#7118] / [i915#7162]) -> [SKIP][170] ([i915#4579] / [i915#7118])
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-dg2-11/igt@kms_content_protection@mei_interface.html
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-dg2-5/igt@kms_content_protection@mei_interface.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-mtlp:         [DMESG-FAIL][171] ([i915#5954]) -> [DMESG-FAIL][172] ([i915#2017] / [i915#5954])
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-mtlp-5/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-rkl:          [SKIP][173] ([fdo#110189] / [i915#3955]) -> [SKIP][174] ([i915#3955])
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-rkl-2/igt@kms_fbcon_fbt@psr-suspend.html
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-rkl-6/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
    - shard-rkl:          [SKIP][175] ([i915#4070] / [i915#4816]) -> [SKIP][176] ([i915#4816])
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-rkl-1/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-rkl-7/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html

  * igt@kms_vblank@pipe-c-wait-busy-hang:
    - shard-mtlp:         [DMESG-WARN][177] -> [DMESG-WARN][178] ([i915#2017])
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13328/shard-mtlp-6/igt@kms_vblank@pipe-c-wait-busy-hang.html
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/shard-mtlp-1/igt@kms_vblank@pipe-c-wait-busy-hang.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2017]: https://gitlab.freedesktop.org/drm/intel/issues/2017
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318
  [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3743]: https://gitlab.freedesktop.org/drm/intel/issues/3743
  [i915#3804]: https://gitlab.freedesktop.org/drm/intel/issues/3804
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#4036]: https://gitlab.freedesktop.org/drm/intel/issues/4036
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4087]: https://gitlab.freedesktop.org/drm/intel/issues/4087
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258
  [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
  [i915#4573]: https://gitlab.freedesktop.org/drm/intel/issues/4573
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
  [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
  [i915#4816]: https://gitlab.freedesktop.org/drm/intel/issues/4816
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4936]: https://gitlab.freedesktop.org/drm/intel/issues/4936
  [i915#5138]: https://gitlab.freedesktop.org/drm/intel/issues/5138
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
  [i915#5234]: https://gitlab.freedesktop.org/drm/intel/issues/5234
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5274]: https://gitlab.freedesktop.org/drm/intel/issues/5274
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#5493]: https://gitlab.freedesktop.org/drm/intel/issues/5493
  [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
  [i915#5954]: https://gitlab.freedesktop.org/drm/intel/issues/5954
  [i915#6015]: https://gitlab.freedesktop.org/drm/intel/issues/6015
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
  [i915#6363]: https://gitlab.freedesktop.org/drm/intel/issues/6363
  [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
  [i915#6880]: https://gitlab.freedesktop.org/drm/intel/issues/6880
  [i915#7061]: https://gitlab.freedesktop.org/drm/intel/issues/7061
  [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
  [i915#7162]: https://gitlab.freedesktop.org/drm/intel/issues/7162
  [i915#72]: https://gitlab.freedesktop.org/drm/intel/issues/72
  [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
  [i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
  [i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975
  [i915#8213]: https://gitlab.freedesktop.org/drm/intel/issues/8213
  [i915#8247]: https://gitlab.freedesktop.org/drm/intel/issues/8247
  [i915#8248]: https://gitlab.freedesktop.org/drm/intel/issues/8248
  [i915#8292]: https://gitlab.freedesktop.org/drm/intel/issues/8292
  [i915#8304]: https://gitlab.freedesktop.org/drm/intel/issues/8304
  [i915#8403]: https://gitlab.freedesktop.org/drm/intel/issues/8403
  [i915#8428]: https://gitlab.freedesktop.org/drm/intel/issues/8428
  [i915#8503]: https://gitlab.freedesktop.org/drm/intel/issues/8503
  [i915#8545]: https://gitlab.freedesktop.org/drm/intel/issues/8545
  [i915#8561]: https://gitlab.freedesktop.org/drm/intel/issues/8561
  [i915#8621]: https://gitlab.freedesktop.org/drm/intel/issues/8621
  [i915#8628]: https://gitlab.freedesktop.org/drm/intel/issues/8628
  [i915#8661]: https://gitlab.freedesktop.org/drm/intel/issues/8661
  [i915#8663]: https://gitlab.freedesktop.org/drm/intel/issues/8663
  [i915#8682]: https://gitlab.freedesktop.org/drm/intel/issues/8682
  [i915#8708]: https://gitlab.freedesktop.org/drm/intel/issues/8708


Build changes
-------------

  * Linux: CI_DRM_13328 -> Patchwork_119933v1

  CI-20190529: 20190529
  CI_DRM_13328: 12cd6b2d321d9c034f3d4ba14788d68cb8da4eac @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_7351: d8dc96b95c60e4737fdfa1664ce9b1dcebfdef60 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_119933v1: 12cd6b2d321d9c034f3d4ba14788d68cb8da4eac @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119933v1/index.html

[-- Attachment #2: Type: text/html, Size: 56474 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Intel-gfx] [PATCH v2 1/6] drm/i915: use mock device info for creating mock device
  2023-06-27 15:13 ` [Intel-gfx] [PATCH v2 1/6] drm/i915: use mock device info for creating mock device Jani Nikula
@ 2023-06-29 11:00   ` Tvrtko Ursulin
  2023-06-29 11:53   ` Andi Shyti
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 19+ messages in thread
From: Tvrtko Ursulin @ 2023-06-29 11:00 UTC (permalink / raw)
  To: Jani Nikula, intel-gfx; +Cc: Andrzej Hajda, Matt Roper


On 27/06/2023 16:13, Jani Nikula wrote:
> Instead of modifying the device info on the fly, use static const mock
> device info.
> 
> It's not okay to modify device info at runtime; we've added separate
> runtime info for info that needs to be modified at runtime. We've added
> safeguards to device info to prevent it from being modified, but commit
> 5e352e32aec2 ("drm/i915: preparation for using PAT index") just cast the
> const away and modified it anyway. This prevents device info from being
> moved to rodata.
> 
> Fixes: 5e352e32aec2 ("drm/i915: preparation for using PAT index")
> Suggested-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> Cc: Fei Yang <fei.yang@intel.com>
> Cc: Andi Shyti <andi.shyti@linux.intel.com>
> Cc: Andrzej Hajda <andrzej.hajda@intel.com>
> Cc: Matt Roper <matthew.d.roper@intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>   .../gpu/drm/i915/selftests/mock_gem_device.c  | 45 ++++++++++---------
>   1 file changed, 24 insertions(+), 21 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/selftests/mock_gem_device.c b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
> index 09d4bbcdcdbf..4de6a4e8280d 100644
> --- a/drivers/gpu/drm/i915/selftests/mock_gem_device.c
> +++ b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
> @@ -118,15 +118,31 @@ static void mock_gt_probe(struct drm_i915_private *i915)
>   	i915->gt[0]->name = "Mock GT";
>   }
>   
> +static const struct intel_device_info mock_info = {
> +	.__runtime.graphics.ip.ver = -1,
> +	.__runtime.page_sizes = (I915_GTT_PAGE_SIZE_4K |
> +				 I915_GTT_PAGE_SIZE_64K |
> +				 I915_GTT_PAGE_SIZE_2M),
> +	.__runtime.memory_regions = REGION_SMEM,
> +	.__runtime.platform_engine_mask = BIT(0),
> +
> +	/* simply use legacy cache level for mock device */
> +	.max_pat_index = 3,
> +	.cachelevel_to_pat = {
> +		[I915_CACHE_NONE]   = 0,
> +		[I915_CACHE_LLC]    = 1,
> +		[I915_CACHE_L3_LLC] = 2,
> +		[I915_CACHE_WT]     = 3,
> +	},
> +};
> +
>   struct drm_i915_private *mock_gem_device(void)
>   {
>   #if IS_ENABLED(CONFIG_IOMMU_API) && defined(CONFIG_INTEL_IOMMU)
>   	static struct dev_iommu fake_iommu = { .priv = (void *)-1 };
>   #endif
>   	struct drm_i915_private *i915;
> -	struct intel_device_info *i915_info;
>   	struct pci_dev *pdev;
> -	unsigned int i;
>   	int ret;
>   
>   	pdev = kzalloc(sizeof(*pdev), GFP_KERNEL);
> @@ -159,15 +175,18 @@ struct drm_i915_private *mock_gem_device(void)
>   
>   	pci_set_drvdata(pdev, i915);
>   
> +	/* Device parameters start as a copy of module parameters. */
> +	i915_params_copy(&i915->params, &i915_modparams);
> +
> +	/* Set up device info and initial runtime info. */
> +	intel_device_info_driver_create(i915, pdev->device, &mock_info);

This one was new to me but figuring out what will dev->device contain, 
or if it could have any unintended consequences was too time consuming. 
If something breaks it will break loudly in testing.

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Regards,

Tvrtko

> +
>   	dev_pm_domain_set(&pdev->dev, &pm_domain);
>   	pm_runtime_enable(&pdev->dev);
>   	pm_runtime_dont_use_autosuspend(&pdev->dev);
>   	if (pm_runtime_enabled(&pdev->dev))
>   		WARN_ON(pm_runtime_get_sync(&pdev->dev));
>   
> -
> -	i915_params_copy(&i915->params, &i915_modparams);
> -
>   	intel_runtime_pm_init_early(&i915->runtime_pm);
>   	/* wakeref tracking has significant overhead */
>   	i915->runtime_pm.no_wakeref_tracking = true;
> @@ -175,21 +194,6 @@ struct drm_i915_private *mock_gem_device(void)
>   	/* Using the global GTT may ask questions about KMS users, so prepare */
>   	drm_mode_config_init(&i915->drm);
>   
> -	RUNTIME_INFO(i915)->graphics.ip.ver = -1;
> -
> -	RUNTIME_INFO(i915)->page_sizes =
> -		I915_GTT_PAGE_SIZE_4K |
> -		I915_GTT_PAGE_SIZE_64K |
> -		I915_GTT_PAGE_SIZE_2M;
> -
> -	RUNTIME_INFO(i915)->memory_regions = REGION_SMEM;
> -
> -	/* simply use legacy cache level for mock device */
> -	i915_info = (struct intel_device_info *)INTEL_INFO(i915);
> -	i915_info->max_pat_index = 3;
> -	for (i = 0; i < I915_MAX_CACHE_LEVEL; i++)
> -		i915_info->cachelevel_to_pat[i] = i;
> -
>   	intel_memory_regions_hw_probe(i915);
>   
>   	spin_lock_init(&i915->gpu_error.lock);
> @@ -223,7 +227,6 @@ struct drm_i915_private *mock_gem_device(void)
>   	mock_init_ggtt(to_gt(i915));
>   	to_gt(i915)->vm = i915_vm_get(&to_gt(i915)->ggtt->vm);
>   
> -	RUNTIME_INFO(i915)->platform_engine_mask = BIT(0);
>   	to_gt(i915)->info.engine_mask = BIT(0);
>   
>   	to_gt(i915)->engine[RCS0] = mock_engine(i915, "mock", RCS0);

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Intel-gfx] [PATCH v2 2/6] drm/i915: move platform_engine_mask and memory_regions to device info
  2023-06-27 15:13 ` [Intel-gfx] [PATCH v2 2/6] drm/i915: move platform_engine_mask and memory_regions to device info Jani Nikula
@ 2023-06-29 11:06   ` Tvrtko Ursulin
  0 siblings, 0 replies; 19+ messages in thread
From: Tvrtko Ursulin @ 2023-06-29 11:06 UTC (permalink / raw)
  To: Jani Nikula, intel-gfx


On 27/06/2023 16:13, Jani Nikula wrote:
> The mock device creation was the only place that needed to modify
> platform_engine_mask and memory_regions runtime. With mock_info in place
> for mock devices, we can move them to device info.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>   drivers/gpu/drm/i915/gt/intel_gt.c            |  2 +-
>   drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.c     |  2 +-
>   drivers/gpu/drm/i915/gt/uc/intel_huc.c        |  2 +-
>   drivers/gpu/drm/i915/i915_drv.h               |  2 +-
>   drivers/gpu/drm/i915/i915_pci.c               | 64 +++++++++----------
>   drivers/gpu/drm/i915/intel_device_info.c      |  2 +-
>   drivers/gpu/drm/i915/intel_device_info.h      |  7 +-
>   .../gpu/drm/i915/selftests/mock_gem_device.c  |  4 +-
>   8 files changed, 42 insertions(+), 43 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_gt.c b/drivers/gpu/drm/i915/gt/intel_gt.c
> index 7a008e829d4d..33a61046ba58 100644
> --- a/drivers/gpu/drm/i915/gt/intel_gt.c
> +++ b/drivers/gpu/drm/i915/gt/intel_gt.c
> @@ -904,7 +904,7 @@ int intel_gt_probe_all(struct drm_i915_private *i915)
>   	 */
>   	gt->i915 = i915;
>   	gt->name = "Primary GT";
> -	gt->info.engine_mask = RUNTIME_INFO(i915)->platform_engine_mask;
> +	gt->info.engine_mask = INTEL_INFO(i915)->platform_engine_mask;
>   
>   	gt_dbg(gt, "Setting up %s\n", gt->name);
>   	ret = intel_gt_tile_setup(gt, phys_addr);
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.c b/drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.c
> index 75a3a0790ef3..034b53a71541 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.c
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.c
> @@ -99,7 +99,7 @@ static bool gsc_engine_supported(struct intel_gt *gt)
>   	GEM_BUG_ON(!gt_is_root(gt) && !gt->info.engine_mask);
>   
>   	if (gt_is_root(gt))
> -		mask = RUNTIME_INFO(gt->i915)->platform_engine_mask;
> +		mask = INTEL_INFO(gt->i915)->platform_engine_mask;
>   	else
>   		mask = gt->info.engine_mask;
>   
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_huc.c b/drivers/gpu/drm/i915/gt/uc/intel_huc.c
> index 23aa1b0e0166..ba9e07fc2b57 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_huc.c
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_huc.c
> @@ -267,7 +267,7 @@ static bool vcs_supported(struct intel_gt *gt)
>   	GEM_BUG_ON(!gt_is_root(gt) && !gt->info.engine_mask);
>   
>   	if (gt_is_root(gt))
> -		mask = RUNTIME_INFO(gt->i915)->platform_engine_mask;
> +		mask = INTEL_INFO(gt->i915)->platform_engine_mask;
>   	else
>   		mask = gt->info.engine_mask;
>   
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index b4cf6f0f636d..078720a52322 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -839,7 +839,7 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915,
>    */
>   #define HAS_64K_PAGES(i915) (INTEL_INFO(i915)->has_64k_pages)
>   
> -#define HAS_REGION(i915, i) (RUNTIME_INFO(i915)->memory_regions & (i))
> +#define HAS_REGION(i915, i) (INTEL_INFO(i915)->memory_regions & (i))
>   #define HAS_LMEM(i915) HAS_REGION(i915, REGION_LMEM)
>   
>   #define HAS_EXTRA_GT_LIST(i915)   (INTEL_INFO(i915)->extra_gt_list)
> diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
> index 3d7a5db9833b..dea3609fc496 100644
> --- a/drivers/gpu/drm/i915/i915_pci.c
> +++ b/drivers/gpu/drm/i915/i915_pci.c
> @@ -84,7 +84,7 @@ __diag_ignore_all("-Woverride-init", "Allow overriding inherited members");
>   	.__runtime.page_sizes = I915_GTT_PAGE_SIZE_4K
>   
>   #define GEN_DEFAULT_REGIONS \
> -	.__runtime.memory_regions = REGION_SMEM | REGION_STOLEN_SMEM
> +	.memory_regions = REGION_SMEM | REGION_STOLEN_SMEM
>   
>   #define I830_FEATURES \
>   	GEN(2), \
> @@ -93,7 +93,7 @@ __diag_ignore_all("-Woverride-init", "Allow overriding inherited members");
>   	.has_3d_pipeline = 1, \
>   	.hws_needs_physical = 1, \
>   	.unfenced_needs_alignment = 1, \
> -	.__runtime.platform_engine_mask = BIT(RCS0), \
> +	.platform_engine_mask = BIT(RCS0), \
>   	.has_snoop = true, \
>   	.has_coherent_ggtt = false, \
>   	.dma_mask_size = 32, \
> @@ -108,7 +108,7 @@ __diag_ignore_all("-Woverride-init", "Allow overriding inherited members");
>   	.gpu_reset_clobbers_display = true, \
>   	.hws_needs_physical = 1, \
>   	.unfenced_needs_alignment = 1, \
> -	.__runtime.platform_engine_mask = BIT(RCS0), \
> +	.platform_engine_mask = BIT(RCS0), \
>   	.has_snoop = true, \
>   	.has_coherent_ggtt = false, \
>   	.dma_mask_size = 32, \
> @@ -140,7 +140,7 @@ static const struct intel_device_info i865g_info = {
>   #define GEN3_FEATURES \
>   	GEN(3), \
>   	.gpu_reset_clobbers_display = true, \
> -	.__runtime.platform_engine_mask = BIT(RCS0), \
> +	.platform_engine_mask = BIT(RCS0), \
>   	.has_3d_pipeline = 1, \
>   	.has_snoop = true, \
>   	.has_coherent_ggtt = true, \
> @@ -203,7 +203,7 @@ static const struct intel_device_info pnv_m_info = {
>   #define GEN4_FEATURES \
>   	GEN(4), \
>   	.gpu_reset_clobbers_display = true, \
> -	.__runtime.platform_engine_mask = BIT(RCS0), \
> +	.platform_engine_mask = BIT(RCS0), \
>   	.has_3d_pipeline = 1, \
>   	.has_snoop = true, \
>   	.has_coherent_ggtt = true, \
> @@ -231,7 +231,7 @@ static const struct intel_device_info i965gm_info = {
>   static const struct intel_device_info g45_info = {
>   	GEN4_FEATURES,
>   	PLATFORM(INTEL_G45),
> -	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0),
> +	.platform_engine_mask = BIT(RCS0) | BIT(VCS0),
>   	.gpu_reset_clobbers_display = false,
>   };
>   
> @@ -239,13 +239,13 @@ static const struct intel_device_info gm45_info = {
>   	GEN4_FEATURES,
>   	PLATFORM(INTEL_GM45),
>   	.is_mobile = 1,
> -	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0),
> +	.platform_engine_mask = BIT(RCS0) | BIT(VCS0),
>   	.gpu_reset_clobbers_display = false,
>   };
>   
>   #define GEN5_FEATURES \
>   	GEN(5), \
> -	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0), \
> +	.platform_engine_mask = BIT(RCS0) | BIT(VCS0), \
>   	.has_3d_pipeline = 1, \
>   	.has_snoop = true, \
>   	.has_coherent_ggtt = true, \
> @@ -271,7 +271,7 @@ static const struct intel_device_info ilk_m_info = {
>   
>   #define GEN6_FEATURES \
>   	GEN(6), \
> -	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0), \
> +	.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0), \
>   	.has_3d_pipeline = 1, \
>   	.has_coherent_ggtt = true, \
>   	.has_llc = 1, \
> @@ -319,7 +319,7 @@ static const struct intel_device_info snb_m_gt2_info = {
>   
>   #define GEN7_FEATURES  \
>   	GEN(7), \
> -	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0), \
> +	.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0), \
>   	.has_3d_pipeline = 1, \
>   	.has_coherent_ggtt = true, \
>   	.has_llc = 1, \
> @@ -387,7 +387,7 @@ static const struct intel_device_info vlv_info = {
>   	.__runtime.ppgtt_size = 31,
>   	.has_snoop = true,
>   	.has_coherent_ggtt = false,
> -	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0),
> +	.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0),
>   	GEN_DEFAULT_PAGE_SIZES,
>   	GEN_DEFAULT_REGIONS,
>   	LEGACY_CACHELEVEL,
> @@ -395,7 +395,7 @@ static const struct intel_device_info vlv_info = {
>   
>   #define G75_FEATURES  \
>   	GEN7_FEATURES, \
> -	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0), \
> +	.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0), \
>   	.has_rc6p = 0 /* RC6p removed-by HSW */, \
>   	.has_runtime_pm = 1
>   
> @@ -453,7 +453,7 @@ static const struct intel_device_info bdw_rsvd_info = {
>   static const struct intel_device_info bdw_gt3_info = {
>   	BDW_PLATFORM,
>   	.gt = 3,
> -	.__runtime.platform_engine_mask =
> +	.platform_engine_mask =
>   		BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS1),
>   };
>   
> @@ -461,7 +461,7 @@ static const struct intel_device_info chv_info = {
>   	PLATFORM(INTEL_CHERRYVIEW),
>   	GEN(8),
>   	.is_lp = 1,
> -	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0),
> +	.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0),
>   	.has_64bit_reloc = 1,
>   	.has_runtime_pm = 1,
>   	.has_rc6 = 1,
> @@ -505,7 +505,7 @@ static const struct intel_device_info skl_gt2_info = {
>   
>   #define SKL_GT3_PLUS_PLATFORM \
>   	SKL_PLATFORM, \
> -	.__runtime.platform_engine_mask = \
> +	.platform_engine_mask = \
>   		BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS1)
>   
>   
> @@ -522,7 +522,7 @@ static const struct intel_device_info skl_gt4_info = {
>   #define GEN9_LP_FEATURES \
>   	GEN(9), \
>   	.is_lp = 1, \
> -	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0), \
> +	.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0), \
>   	.has_3d_pipeline = 1, \
>   	.has_64bit_reloc = 1, \
>   	.has_runtime_pm = 1, \
> @@ -568,7 +568,7 @@ static const struct intel_device_info kbl_gt2_info = {
>   static const struct intel_device_info kbl_gt3_info = {
>   	KBL_PLATFORM,
>   	.gt = 3,
> -	.__runtime.platform_engine_mask =
> +	.platform_engine_mask =
>   		BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS1),
>   };
>   
> @@ -589,7 +589,7 @@ static const struct intel_device_info cfl_gt2_info = {
>   static const struct intel_device_info cfl_gt3_info = {
>   	CFL_PLATFORM,
>   	.gt = 3,
> -	.__runtime.platform_engine_mask =
> +	.platform_engine_mask =
>   		BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS1),
>   };
>   
> @@ -622,21 +622,21 @@ static const struct intel_device_info cml_gt2_info = {
>   static const struct intel_device_info icl_info = {
>   	GEN11_FEATURES,
>   	PLATFORM(INTEL_ICELAKE),
> -	.__runtime.platform_engine_mask =
> +	.platform_engine_mask =
>   		BIT(RCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS0) | BIT(VCS2),
>   };
>   
>   static const struct intel_device_info ehl_info = {
>   	GEN11_FEATURES,
>   	PLATFORM(INTEL_ELKHARTLAKE),
> -	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(BCS0) | BIT(VCS0) | BIT(VECS0),
> +	.platform_engine_mask = BIT(RCS0) | BIT(BCS0) | BIT(VCS0) | BIT(VECS0),
>   	.__runtime.ppgtt_size = 36,
>   };
>   
>   static const struct intel_device_info jsl_info = {
>   	GEN11_FEATURES,
>   	PLATFORM(INTEL_JASPERLAKE),
> -	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(BCS0) | BIT(VCS0) | BIT(VECS0),
> +	.platform_engine_mask = BIT(RCS0) | BIT(BCS0) | BIT(VCS0) | BIT(VECS0),
>   	.__runtime.ppgtt_size = 36,
>   };
>   
> @@ -651,19 +651,19 @@ static const struct intel_device_info jsl_info = {
>   static const struct intel_device_info tgl_info = {
>   	GEN12_FEATURES,
>   	PLATFORM(INTEL_TIGERLAKE),
> -	.__runtime.platform_engine_mask =
> +	.platform_engine_mask =
>   		BIT(RCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS0) | BIT(VCS2),
>   };
>   
>   static const struct intel_device_info rkl_info = {
>   	GEN12_FEATURES,
>   	PLATFORM(INTEL_ROCKETLAKE),
> -	.__runtime.platform_engine_mask =
> +	.platform_engine_mask =
>   		BIT(RCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS0),
>   };
>   
>   #define DGFX_FEATURES \
> -	.__runtime.memory_regions = REGION_SMEM | REGION_LMEM | REGION_STOLEN_LMEM, \
> +	.memory_regions = REGION_SMEM | REGION_LMEM | REGION_STOLEN_LMEM, \
>   	.has_llc = 0, \
>   	.has_pxp = 0, \
>   	.has_snoop = 1, \
> @@ -676,7 +676,7 @@ static const struct intel_device_info dg1_info = {
>   	.__runtime.graphics.ip.rel = 10,
>   	PLATFORM(INTEL_DG1),
>   	.require_force_probe = 1,
> -	.__runtime.platform_engine_mask =
> +	.platform_engine_mask =
>   		BIT(RCS0) | BIT(BCS0) | BIT(VECS0) |
>   		BIT(VCS0) | BIT(VCS2),
>   	/* Wa_16011227922 */
> @@ -686,7 +686,7 @@ static const struct intel_device_info dg1_info = {
>   static const struct intel_device_info adl_s_info = {
>   	GEN12_FEATURES,
>   	PLATFORM(INTEL_ALDERLAKE_S),
> -	.__runtime.platform_engine_mask =
> +	.platform_engine_mask =
>   		BIT(RCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS0) | BIT(VCS2),
>   	.dma_mask_size = 39,
>   };
> @@ -694,7 +694,7 @@ static const struct intel_device_info adl_s_info = {
>   static const struct intel_device_info adl_p_info = {
>   	GEN12_FEATURES,
>   	PLATFORM(INTEL_ALDERLAKE_P),
> -	.__runtime.platform_engine_mask =
> +	.platform_engine_mask =
>   		BIT(RCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS0) | BIT(VCS2),
>   	.__runtime.ppgtt_size = 48,
>   	.dma_mask_size = 39,
> @@ -746,7 +746,7 @@ static const struct intel_device_info xehpsdv_info = {
>   	PLATFORM(INTEL_XEHPSDV),
>   	.has_64k_pages = 1,
>   	.has_media_ratio_mode = 1,
> -	.__runtime.platform_engine_mask =
> +	.platform_engine_mask =
>   		BIT(RCS0) | BIT(BCS0) |
>   		BIT(VECS0) | BIT(VECS1) | BIT(VECS2) | BIT(VECS3) |
>   		BIT(VCS0) | BIT(VCS1) | BIT(VCS2) | BIT(VCS3) |
> @@ -766,7 +766,7 @@ static const struct intel_device_info xehpsdv_info = {
>   	.has_guc_deprivilege = 1, \
>   	.has_heci_pxp = 1, \
>   	.has_media_ratio_mode = 1, \
> -	.__runtime.platform_engine_mask = \
> +	.platform_engine_mask = \
>   		BIT(RCS0) | BIT(BCS0) | \
>   		BIT(VECS0) | BIT(VECS1) | \
>   		BIT(VCS0) | BIT(VCS2) | \
> @@ -801,7 +801,7 @@ static const struct intel_device_info pvc_info = {
>   	PLATFORM(INTEL_PONTEVECCHIO),
>   	.has_flat_ccs = 0,
>   	.max_pat_index = 7,
> -	.__runtime.platform_engine_mask =
> +	.platform_engine_mask =
>   		BIT(BCS0) |
>   		BIT(VCS0) |
>   		BIT(CCS0) | BIT(CCS1) | BIT(CCS2) | BIT(CCS3),
> @@ -838,8 +838,8 @@ static const struct intel_device_info mtl_info = {
>   	.has_snoop = 1,
>   	.max_pat_index = 4,
>   	.has_pxp = 1,
> -	.__runtime.memory_regions = REGION_SMEM | REGION_STOLEN_LMEM,
> -	.__runtime.platform_engine_mask = BIT(RCS0) | BIT(BCS0) | BIT(CCS0),
> +	.memory_regions = REGION_SMEM | REGION_STOLEN_LMEM,
> +	.platform_engine_mask = BIT(RCS0) | BIT(BCS0) | BIT(CCS0),
>   	.require_force_probe = 1,
>   	MTL_CACHELEVEL,
>   };
> diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c
> index 9c0f02faa0d7..9e7e33fbca6e 100644
> --- a/drivers/gpu/drm/i915/intel_device_info.c
> +++ b/drivers/gpu/drm/i915/intel_device_info.c
> @@ -126,7 +126,7 @@ void intel_device_info_print(const struct intel_device_info *info,
>   	drm_printf(p, "base die stepping: %s\n", intel_step_name(runtime->step.basedie_step));
>   
>   	drm_printf(p, "gt: %d\n", info->gt);
> -	drm_printf(p, "memory-regions: 0x%x\n", runtime->memory_regions);
> +	drm_printf(p, "memory-regions: 0x%x\n", info->memory_regions);
>   	drm_printf(p, "page-sizes: 0x%x\n", runtime->page_sizes);
>   	drm_printf(p, "platform: %s\n", intel_platform_name(info->platform));
>   	drm_printf(p, "ppgtt-size: %d\n", runtime->ppgtt_size);
> diff --git a/drivers/gpu/drm/i915/intel_device_info.h b/drivers/gpu/drm/i915/intel_device_info.h
> index 069291b3bd37..81bfd64717cf 100644
> --- a/drivers/gpu/drm/i915/intel_device_info.h
> +++ b/drivers/gpu/drm/i915/intel_device_info.h
> @@ -212,8 +212,6 @@ struct intel_runtime_info {
>   
>   	u16 device_id;
>   
> -	intel_engine_mask_t platform_engine_mask; /* Engines supported by the HW */
> -

Passing observation - I think a packing hole sneaked in here when we 
increased intel_engine_mask_t to u32.

>   	u32 rawclk_freq;
>   
>   	struct intel_step_info step;
> @@ -223,8 +221,6 @@ struct intel_runtime_info {
>   	enum intel_ppgtt_type ppgtt_type;
>   	unsigned int ppgtt_size; /* log2, e.g. 31/32/48 bits */
>   
> -	u32 memory_regions; /* regions supported by the HW */
> -
>   	bool has_pooled_eu;
>   };
>   
> @@ -237,6 +233,9 @@ struct intel_device_info {
>   
>   	u8 gt; /* GT number, 0 if undefined */
>   
> +	intel_engine_mask_t platform_engine_mask; /* Engines supported by the HW */
> +	u32 memory_regions; /* regions supported by the HW */
> +
>   #define DEFINE_FLAG(name) u8 name:1
>   	DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG);
>   #undef DEFINE_FLAG
> diff --git a/drivers/gpu/drm/i915/selftests/mock_gem_device.c b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
> index 4de6a4e8280d..12aa7fbb0748 100644
> --- a/drivers/gpu/drm/i915/selftests/mock_gem_device.c
> +++ b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
> @@ -123,8 +123,8 @@ static const struct intel_device_info mock_info = {
>   	.__runtime.page_sizes = (I915_GTT_PAGE_SIZE_4K |
>   				 I915_GTT_PAGE_SIZE_64K |
>   				 I915_GTT_PAGE_SIZE_2M),
> -	.__runtime.memory_regions = REGION_SMEM,
> -	.__runtime.platform_engine_mask = BIT(0),
> +	.memory_regions = REGION_SMEM,
> +	.platform_engine_mask = BIT(0),
>   
>   	/* simply use legacy cache level for mock device */
>   	.max_pat_index = 3,

I saw no mistakes.

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Regards,

Tvrtko

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Intel-gfx] [PATCH v2 6/6] drm/i915: make device info a const pointer to rodata
  2023-06-27 15:14 ` [Intel-gfx] [PATCH v2 6/6] drm/i915: make device info a const pointer to rodata Jani Nikula
@ 2023-06-29 11:10   ` Tvrtko Ursulin
  2023-06-29 11:29     ` Jani Nikula
  0 siblings, 1 reply; 19+ messages in thread
From: Tvrtko Ursulin @ 2023-06-29 11:10 UTC (permalink / raw)
  To: Jani Nikula, intel-gfx; +Cc: Matt Roper, Lucas De Marchi


On 27/06/2023 16:14, Jani Nikula wrote:
> Finally we can get rid of the pseudo-const write-once device info, and
> convert it into a const pointer to device info in rodata.
> 
> Cc: Matt Roper <matthew.d.roper@intel.com>
> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>   drivers/gpu/drm/i915/i915_drv.h          |  4 ++--
>   drivers/gpu/drm/i915/intel_device_info.c | 17 ++++-------------
>   2 files changed, 6 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 8947d1201298..682ef2b5c7d5 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -203,7 +203,7 @@ struct drm_i915_private {
>   	/* i915 device parameters */
>   	struct i915_params params;
>   
> -	const struct intel_device_info __info; /* Use INTEL_INFO() to access. */
> +	const struct intel_device_info *__info; /* Use INTEL_INFO() to access. */
>   	struct intel_runtime_info __runtime; /* Use RUNTIME_INFO() to access. */
>   	struct intel_driver_caps caps;
>   
> @@ -415,7 +415,7 @@ static inline struct intel_gt *to_gt(struct drm_i915_private *i915)
>   	     (engine__) && (engine__)->uabi_class == (class__); \
>   	     (engine__) = rb_to_uabi_engine(rb_next(&(engine__)->uabi_node)))
>   
> -#define INTEL_INFO(i915)	(&(i915)->__info)
> +#define INTEL_INFO(i915)	((i915)->__info)
>   #define RUNTIME_INFO(i915)	(&(i915)->__runtime)
>   #define DISPLAY_INFO(i915)	((i915)->display.info.__device_info)
>   #define DISPLAY_RUNTIME_INFO(i915)	(&(i915)->display.info.__runtime_info)
> diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c
> index 0740922cd71f..ea0ec6174ce5 100644
> --- a/drivers/gpu/drm/i915/intel_device_info.c
> +++ b/drivers/gpu/drm/i915/intel_device_info.c
> @@ -364,13 +364,6 @@ void intel_device_info_runtime_init_early(struct drm_i915_private *i915)
>   	intel_device_info_subplatform_init(i915);
>   }
>   
> -/* FIXME: Remove this, and make device info a const pointer to rodata. */
> -static struct intel_device_info *
> -mkwrite_device_info(struct drm_i915_private *i915)
> -{
> -	return (struct intel_device_info *)INTEL_INFO(i915);
> -}
> -
>   static const struct intel_display_device_info no_display = {};
>   
>   /**
> @@ -430,26 +423,24 @@ void intel_device_info_driver_create(struct drm_i915_private *i915,
>   				     u16 device_id,
>   				     const struct intel_device_info *match_info)
>   {
> -	struct intel_device_info *info;
>   	struct intel_runtime_info *runtime;
>   	u16 ver, rel, step;
>   
> -	/* Setup the write-once "constant" device info */
> -	info = mkwrite_device_info(i915);
> -	memcpy(info, match_info, sizeof(*info));
> +	/* Setup INTEL_INFO() */
> +	i915->__info = match_info;
>   
>   	/* Initialize initial runtime info from static const data and pdev. */
>   	runtime = RUNTIME_INFO(i915);
>   	memcpy(runtime, &INTEL_INFO(i915)->__runtime, sizeof(*runtime));
>   
>   	/* Probe display support */
> -	i915->display.info.__device_info = intel_display_device_probe(i915, info->has_gmd_id,
> +	i915->display.info.__device_info = intel_display_device_probe(i915, HAS_GMD_ID(i915),

Why does intel_display_device_probe need an explicit has_gmdid when it 
could use HAS_GMD_ID itself?

But anyway, LGTM. If it saves you some time before the other time zone 
comes online:

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Regards,

Tvrtko

>   								      &ver, &rel, &step);
>   	memcpy(DISPLAY_RUNTIME_INFO(i915),
>   	       &DISPLAY_INFO(i915)->__runtime_defaults,
>   	       sizeof(*DISPLAY_RUNTIME_INFO(i915)));
>   
> -	if (info->has_gmd_id) {
> +	if (HAS_GMD_ID(i915)) {
>   		DISPLAY_RUNTIME_INFO(i915)->ip.ver = ver;
>   		DISPLAY_RUNTIME_INFO(i915)->ip.rel = rel;
>   		DISPLAY_RUNTIME_INFO(i915)->ip.step = step;

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Intel-gfx] [PATCH v2 6/6] drm/i915: make device info a const pointer to rodata
  2023-06-29 11:10   ` Tvrtko Ursulin
@ 2023-06-29 11:29     ` Jani Nikula
  2023-06-29 13:30       ` Jani Nikula
  0 siblings, 1 reply; 19+ messages in thread
From: Jani Nikula @ 2023-06-29 11:29 UTC (permalink / raw)
  To: Tvrtko Ursulin, intel-gfx; +Cc: Matt Roper, Lucas De Marchi

On Thu, 29 Jun 2023, Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> wrote:
> On 27/06/2023 16:14, Jani Nikula wrote:
>> Finally we can get rid of the pseudo-const write-once device info, and
>> convert it into a const pointer to device info in rodata.
>> 
>> Cc: Matt Roper <matthew.d.roper@intel.com>
>> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> ---
>>   drivers/gpu/drm/i915/i915_drv.h          |  4 ++--
>>   drivers/gpu/drm/i915/intel_device_info.c | 17 ++++-------------
>>   2 files changed, 6 insertions(+), 15 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
>> index 8947d1201298..682ef2b5c7d5 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.h
>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>> @@ -203,7 +203,7 @@ struct drm_i915_private {
>>   	/* i915 device parameters */
>>   	struct i915_params params;
>>   
>> -	const struct intel_device_info __info; /* Use INTEL_INFO() to access. */
>> +	const struct intel_device_info *__info; /* Use INTEL_INFO() to access. */
>>   	struct intel_runtime_info __runtime; /* Use RUNTIME_INFO() to access. */
>>   	struct intel_driver_caps caps;
>>   
>> @@ -415,7 +415,7 @@ static inline struct intel_gt *to_gt(struct drm_i915_private *i915)
>>   	     (engine__) && (engine__)->uabi_class == (class__); \
>>   	     (engine__) = rb_to_uabi_engine(rb_next(&(engine__)->uabi_node)))
>>   
>> -#define INTEL_INFO(i915)	(&(i915)->__info)
>> +#define INTEL_INFO(i915)	((i915)->__info)
>>   #define RUNTIME_INFO(i915)	(&(i915)->__runtime)
>>   #define DISPLAY_INFO(i915)	((i915)->display.info.__device_info)
>>   #define DISPLAY_RUNTIME_INFO(i915)	(&(i915)->display.info.__runtime_info)
>> diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c
>> index 0740922cd71f..ea0ec6174ce5 100644
>> --- a/drivers/gpu/drm/i915/intel_device_info.c
>> +++ b/drivers/gpu/drm/i915/intel_device_info.c
>> @@ -364,13 +364,6 @@ void intel_device_info_runtime_init_early(struct drm_i915_private *i915)
>>   	intel_device_info_subplatform_init(i915);
>>   }
>>   
>> -/* FIXME: Remove this, and make device info a const pointer to rodata. */
>> -static struct intel_device_info *
>> -mkwrite_device_info(struct drm_i915_private *i915)
>> -{
>> -	return (struct intel_device_info *)INTEL_INFO(i915);
>> -}
>> -
>>   static const struct intel_display_device_info no_display = {};
>>   
>>   /**
>> @@ -430,26 +423,24 @@ void intel_device_info_driver_create(struct drm_i915_private *i915,
>>   				     u16 device_id,
>>   				     const struct intel_device_info *match_info)
>>   {
>> -	struct intel_device_info *info;
>>   	struct intel_runtime_info *runtime;
>>   	u16 ver, rel, step;
>>   
>> -	/* Setup the write-once "constant" device info */
>> -	info = mkwrite_device_info(i915);
>> -	memcpy(info, match_info, sizeof(*info));
>> +	/* Setup INTEL_INFO() */
>> +	i915->__info = match_info;
>>   
>>   	/* Initialize initial runtime info from static const data and pdev. */
>>   	runtime = RUNTIME_INFO(i915);
>>   	memcpy(runtime, &INTEL_INFO(i915)->__runtime, sizeof(*runtime));
>>   
>>   	/* Probe display support */
>> -	i915->display.info.__device_info = intel_display_device_probe(i915, info->has_gmd_id,
>> +	i915->display.info.__device_info = intel_display_device_probe(i915, HAS_GMD_ID(i915),
>
> Why does intel_display_device_probe need an explicit has_gmdid when it
> could use HAS_GMD_ID itself?

I think all of the display related initialization from this function
should be moved within intel_display_device_probe() in follow-up.

> But anyway, LGTM. If it saves you some time before the other time zone 
> comes online:
>
> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Thanks,
Jani.

>
> Regards,
>
> Tvrtko
>
>>   								      &ver, &rel, &step);
>>   	memcpy(DISPLAY_RUNTIME_INFO(i915),
>>   	       &DISPLAY_INFO(i915)->__runtime_defaults,
>>   	       sizeof(*DISPLAY_RUNTIME_INFO(i915)));
>>   
>> -	if (info->has_gmd_id) {
>> +	if (HAS_GMD_ID(i915)) {
>>   		DISPLAY_RUNTIME_INFO(i915)->ip.ver = ver;
>>   		DISPLAY_RUNTIME_INFO(i915)->ip.rel = rel;
>>   		DISPLAY_RUNTIME_INFO(i915)->ip.step = step;

-- 
Jani Nikula, Intel Open Source Graphics Center

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Intel-gfx] [PATCH v2 1/6] drm/i915: use mock device info for creating mock device
  2023-06-27 15:13 ` [Intel-gfx] [PATCH v2 1/6] drm/i915: use mock device info for creating mock device Jani Nikula
  2023-06-29 11:00   ` Tvrtko Ursulin
@ 2023-06-29 11:53   ` Andi Shyti
  2023-06-29 12:57   ` Andrzej Hajda
  2023-06-29 16:12   ` Yang, Fei
  3 siblings, 0 replies; 19+ messages in thread
From: Andi Shyti @ 2023-06-29 11:53 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, Andrzej Hajda, Matt Roper

Hi Jani,

On Tue, Jun 27, 2023 at 06:13:58PM +0300, Jani Nikula wrote:
> Instead of modifying the device info on the fly, use static const mock
> device info.
> 
> It's not okay to modify device info at runtime; we've added separate
> runtime info for info that needs to be modified at runtime. We've added
> safeguards to device info to prevent it from being modified, but commit
> 5e352e32aec2 ("drm/i915: preparation for using PAT index") just cast the
> const away and modified it anyway. This prevents device info from being
> moved to rodata.
> 
> Fixes: 5e352e32aec2 ("drm/i915: preparation for using PAT index")
> Suggested-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> Cc: Fei Yang <fei.yang@intel.com>
> Cc: Andi Shyti <andi.shyti@linux.intel.com>
> Cc: Andrzej Hajda <andrzej.hajda@intel.com>
> Cc: Matt Roper <matthew.d.roper@intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

thanks for fixing this!

Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com> 

Andi

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Intel-gfx] [PATCH v2 1/6] drm/i915: use mock device info for creating mock device
  2023-06-27 15:13 ` [Intel-gfx] [PATCH v2 1/6] drm/i915: use mock device info for creating mock device Jani Nikula
  2023-06-29 11:00   ` Tvrtko Ursulin
  2023-06-29 11:53   ` Andi Shyti
@ 2023-06-29 12:57   ` Andrzej Hajda
  2023-06-29 16:12   ` Yang, Fei
  3 siblings, 0 replies; 19+ messages in thread
From: Andrzej Hajda @ 2023-06-29 12:57 UTC (permalink / raw)
  To: Jani Nikula, intel-gfx; +Cc: Matt Roper



On 27.06.2023 17:13, Jani Nikula wrote:
> Instead of modifying the device info on the fly, use static const mock
> device info.
>
> It's not okay to modify device info at runtime; we've added separate
> runtime info for info that needs to be modified at runtime. We've added
> safeguards to device info to prevent it from being modified, but commit
> 5e352e32aec2 ("drm/i915: preparation for using PAT index") just cast the
> const away and modified it anyway. This prevents device info from being
> moved to rodata.
>
> Fixes: 5e352e32aec2 ("drm/i915: preparation for using PAT index")
> Suggested-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> Cc: Fei Yang <fei.yang@intel.com>
> Cc: Andi Shyti <andi.shyti@linux.intel.com>
> Cc: Andrzej Hajda <andrzej.hajda@intel.com>
> Cc: Matt Roper <matthew.d.roper@intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com>

Regards
Andrzej
> ---
>   .../gpu/drm/i915/selftests/mock_gem_device.c  | 45 ++++++++++---------
>   1 file changed, 24 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/selftests/mock_gem_device.c b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
> index 09d4bbcdcdbf..4de6a4e8280d 100644
> --- a/drivers/gpu/drm/i915/selftests/mock_gem_device.c
> +++ b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
> @@ -118,15 +118,31 @@ static void mock_gt_probe(struct drm_i915_private *i915)
>   	i915->gt[0]->name = "Mock GT";
>   }
>   
> +static const struct intel_device_info mock_info = {
> +	.__runtime.graphics.ip.ver = -1,
> +	.__runtime.page_sizes = (I915_GTT_PAGE_SIZE_4K |
> +				 I915_GTT_PAGE_SIZE_64K |
> +				 I915_GTT_PAGE_SIZE_2M),
> +	.__runtime.memory_regions = REGION_SMEM,
> +	.__runtime.platform_engine_mask = BIT(0),
> +
> +	/* simply use legacy cache level for mock device */
> +	.max_pat_index = 3,
> +	.cachelevel_to_pat = {
> +		[I915_CACHE_NONE]   = 0,
> +		[I915_CACHE_LLC]    = 1,
> +		[I915_CACHE_L3_LLC] = 2,
> +		[I915_CACHE_WT]     = 3,
> +	},
> +};
> +
>   struct drm_i915_private *mock_gem_device(void)
>   {
>   #if IS_ENABLED(CONFIG_IOMMU_API) && defined(CONFIG_INTEL_IOMMU)
>   	static struct dev_iommu fake_iommu = { .priv = (void *)-1 };
>   #endif
>   	struct drm_i915_private *i915;
> -	struct intel_device_info *i915_info;
>   	struct pci_dev *pdev;
> -	unsigned int i;
>   	int ret;
>   
>   	pdev = kzalloc(sizeof(*pdev), GFP_KERNEL);
> @@ -159,15 +175,18 @@ struct drm_i915_private *mock_gem_device(void)
>   
>   	pci_set_drvdata(pdev, i915);
>   
> +	/* Device parameters start as a copy of module parameters. */
> +	i915_params_copy(&i915->params, &i915_modparams);
> +
> +	/* Set up device info and initial runtime info. */
> +	intel_device_info_driver_create(i915, pdev->device, &mock_info);
> +
>   	dev_pm_domain_set(&pdev->dev, &pm_domain);
>   	pm_runtime_enable(&pdev->dev);
>   	pm_runtime_dont_use_autosuspend(&pdev->dev);
>   	if (pm_runtime_enabled(&pdev->dev))
>   		WARN_ON(pm_runtime_get_sync(&pdev->dev));
>   
> -
> -	i915_params_copy(&i915->params, &i915_modparams);
> -
>   	intel_runtime_pm_init_early(&i915->runtime_pm);
>   	/* wakeref tracking has significant overhead */
>   	i915->runtime_pm.no_wakeref_tracking = true;
> @@ -175,21 +194,6 @@ struct drm_i915_private *mock_gem_device(void)
>   	/* Using the global GTT may ask questions about KMS users, so prepare */
>   	drm_mode_config_init(&i915->drm);
>   
> -	RUNTIME_INFO(i915)->graphics.ip.ver = -1;
> -
> -	RUNTIME_INFO(i915)->page_sizes =
> -		I915_GTT_PAGE_SIZE_4K |
> -		I915_GTT_PAGE_SIZE_64K |
> -		I915_GTT_PAGE_SIZE_2M;
> -
> -	RUNTIME_INFO(i915)->memory_regions = REGION_SMEM;
> -
> -	/* simply use legacy cache level for mock device */
> -	i915_info = (struct intel_device_info *)INTEL_INFO(i915);
> -	i915_info->max_pat_index = 3;
> -	for (i = 0; i < I915_MAX_CACHE_LEVEL; i++)
> -		i915_info->cachelevel_to_pat[i] = i;
> -
>   	intel_memory_regions_hw_probe(i915);
>   
>   	spin_lock_init(&i915->gpu_error.lock);
> @@ -223,7 +227,6 @@ struct drm_i915_private *mock_gem_device(void)
>   	mock_init_ggtt(to_gt(i915));
>   	to_gt(i915)->vm = i915_vm_get(&to_gt(i915)->ggtt->vm);
>   
> -	RUNTIME_INFO(i915)->platform_engine_mask = BIT(0);
>   	to_gt(i915)->info.engine_mask = BIT(0);
>   
>   	to_gt(i915)->engine[RCS0] = mock_engine(i915, "mock", RCS0);


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Intel-gfx] [PATCH v2 6/6] drm/i915: make device info a const pointer to rodata
  2023-06-29 11:29     ` Jani Nikula
@ 2023-06-29 13:30       ` Jani Nikula
  0 siblings, 0 replies; 19+ messages in thread
From: Jani Nikula @ 2023-06-29 13:30 UTC (permalink / raw)
  To: Tvrtko Ursulin, intel-gfx; +Cc: Lucas De Marchi, Matt Roper

On Thu, 29 Jun 2023, Jani Nikula <jani.nikula@intel.com> wrote:
> On Thu, 29 Jun 2023, Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> wrote:
>> On 27/06/2023 16:14, Jani Nikula wrote:
>>> Finally we can get rid of the pseudo-const write-once device info, and
>>> convert it into a const pointer to device info in rodata.
>>> 
>>> Cc: Matt Roper <matthew.d.roper@intel.com>
>>> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>>> ---
>>>   drivers/gpu/drm/i915/i915_drv.h          |  4 ++--
>>>   drivers/gpu/drm/i915/intel_device_info.c | 17 ++++-------------
>>>   2 files changed, 6 insertions(+), 15 deletions(-)
>>> 
>>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
>>> index 8947d1201298..682ef2b5c7d5 100644
>>> --- a/drivers/gpu/drm/i915/i915_drv.h
>>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>>> @@ -203,7 +203,7 @@ struct drm_i915_private {
>>>   	/* i915 device parameters */
>>>   	struct i915_params params;
>>>   
>>> -	const struct intel_device_info __info; /* Use INTEL_INFO() to access. */
>>> +	const struct intel_device_info *__info; /* Use INTEL_INFO() to access. */
>>>   	struct intel_runtime_info __runtime; /* Use RUNTIME_INFO() to access. */
>>>   	struct intel_driver_caps caps;
>>>   
>>> @@ -415,7 +415,7 @@ static inline struct intel_gt *to_gt(struct drm_i915_private *i915)
>>>   	     (engine__) && (engine__)->uabi_class == (class__); \
>>>   	     (engine__) = rb_to_uabi_engine(rb_next(&(engine__)->uabi_node)))
>>>   
>>> -#define INTEL_INFO(i915)	(&(i915)->__info)
>>> +#define INTEL_INFO(i915)	((i915)->__info)
>>>   #define RUNTIME_INFO(i915)	(&(i915)->__runtime)
>>>   #define DISPLAY_INFO(i915)	((i915)->display.info.__device_info)
>>>   #define DISPLAY_RUNTIME_INFO(i915)	(&(i915)->display.info.__runtime_info)
>>> diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c
>>> index 0740922cd71f..ea0ec6174ce5 100644
>>> --- a/drivers/gpu/drm/i915/intel_device_info.c
>>> +++ b/drivers/gpu/drm/i915/intel_device_info.c
>>> @@ -364,13 +364,6 @@ void intel_device_info_runtime_init_early(struct drm_i915_private *i915)
>>>   	intel_device_info_subplatform_init(i915);
>>>   }
>>>   
>>> -/* FIXME: Remove this, and make device info a const pointer to rodata. */
>>> -static struct intel_device_info *
>>> -mkwrite_device_info(struct drm_i915_private *i915)
>>> -{
>>> -	return (struct intel_device_info *)INTEL_INFO(i915);
>>> -}
>>> -
>>>   static const struct intel_display_device_info no_display = {};
>>>   
>>>   /**
>>> @@ -430,26 +423,24 @@ void intel_device_info_driver_create(struct drm_i915_private *i915,
>>>   				     u16 device_id,
>>>   				     const struct intel_device_info *match_info)
>>>   {
>>> -	struct intel_device_info *info;
>>>   	struct intel_runtime_info *runtime;
>>>   	u16 ver, rel, step;
>>>   
>>> -	/* Setup the write-once "constant" device info */
>>> -	info = mkwrite_device_info(i915);
>>> -	memcpy(info, match_info, sizeof(*info));
>>> +	/* Setup INTEL_INFO() */
>>> +	i915->__info = match_info;
>>>   
>>>   	/* Initialize initial runtime info from static const data and pdev. */
>>>   	runtime = RUNTIME_INFO(i915);
>>>   	memcpy(runtime, &INTEL_INFO(i915)->__runtime, sizeof(*runtime));
>>>   
>>>   	/* Probe display support */
>>> -	i915->display.info.__device_info = intel_display_device_probe(i915, info->has_gmd_id,
>>> +	i915->display.info.__device_info = intel_display_device_probe(i915, HAS_GMD_ID(i915),
>>
>> Why does intel_display_device_probe need an explicit has_gmdid when it
>> could use HAS_GMD_ID itself?
>
> I think all of the display related initialization from this function
> should be moved within intel_display_device_probe() in follow-up.
>
>> But anyway, LGTM. If it saves you some time before the other time zone 
>> comes online:
>>
>> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

And pushed the series to drm-intel-next, thanks for the reviews
everyone!

BR,
Jani.

>
> Thanks,
> Jani.
>
>>
>> Regards,
>>
>> Tvrtko
>>
>>>   								      &ver, &rel, &step);
>>>   	memcpy(DISPLAY_RUNTIME_INFO(i915),
>>>   	       &DISPLAY_INFO(i915)->__runtime_defaults,
>>>   	       sizeof(*DISPLAY_RUNTIME_INFO(i915)));
>>>   
>>> -	if (info->has_gmd_id) {
>>> +	if (HAS_GMD_ID(i915)) {
>>>   		DISPLAY_RUNTIME_INFO(i915)->ip.ver = ver;
>>>   		DISPLAY_RUNTIME_INFO(i915)->ip.rel = rel;
>>>   		DISPLAY_RUNTIME_INFO(i915)->ip.step = step;

-- 
Jani Nikula, Intel Open Source Graphics Center

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Intel-gfx] [PATCH v2 1/6] drm/i915: use mock device info for creating mock device
  2023-06-27 15:13 ` [Intel-gfx] [PATCH v2 1/6] drm/i915: use mock device info for creating mock device Jani Nikula
                     ` (2 preceding siblings ...)
  2023-06-29 12:57   ` Andrzej Hajda
@ 2023-06-29 16:12   ` Yang, Fei
  3 siblings, 0 replies; 19+ messages in thread
From: Yang, Fei @ 2023-06-29 16:12 UTC (permalink / raw)
  To: Nikula, Jani, intel-gfx; +Cc: Roper, Matthew D, Hajda, Andrzej

> Instead of modifying the device info on the fly, use static const
> mock device info.
>
> It's not okay to modify device info at runtime; we've added separate
> runtime info for info that needs to be modified at runtime. We've
> added safeguards to device info to prevent it from being modified,
> but commit 5e352e32aec2 ("drm/i915: preparation for using PAT index")
> just cast the const away and modified it anyway. This prevents device
> info from being moved to rodata.
>
> Fixes: 5e352e32aec2 ("drm/i915: preparation for using PAT index")
> Suggested-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> Cc: Fei Yang <fei.yang@intel.com>
> Cc: Andi Shyti <andi.shyti@linux.intel.com>
> Cc: Andrzej Hajda <andrzej.hajda@intel.com>
> Cc: Matt Roper <matthew.d.roper@intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Thanks for fixing this.

Reviewed-by: Fei Yang <fei.yang@intel.com>

> ---
>  .../gpu/drm/i915/selftests/mock_gem_device.c  | 45 ++++++++++---------
>  1 file changed, 24 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/selftests/mock_gem_device.c b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
> index 09d4bbcdcdbf..4de6a4e8280d 100644
> --- a/drivers/gpu/drm/i915/selftests/mock_gem_device.c
> +++ b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
> @@ -118,15 +118,31 @@ static void mock_gt_probe(struct drm_i915_private *i915)
>       i915->gt[0]->name = "Mock GT";
>  }
>
> +static const struct intel_device_info mock_info = {
> +     .__runtime.graphics.ip.ver = -1,
> +     .__runtime.page_sizes = (I915_GTT_PAGE_SIZE_4K |
> +                              I915_GTT_PAGE_SIZE_64K |
> +                              I915_GTT_PAGE_SIZE_2M),
> +     .__runtime.memory_regions = REGION_SMEM,
> +     .__runtime.platform_engine_mask = BIT(0),
> +
> +     /* simply use legacy cache level for mock device */
> +     .max_pat_index = 3,
> +     .cachelevel_to_pat = {
> +             [I915_CACHE_NONE]   = 0,
> +             [I915_CACHE_LLC]    = 1,
> +             [I915_CACHE_L3_LLC] = 2,
> +             [I915_CACHE_WT]     = 3,
> +     },
> +};
> +
>  struct drm_i915_private *mock_gem_device(void)  {  #if IS_ENABLED(CONFIG_IOMMU_API) && defined(CONFIG_INTEL_IOMMU)
>       static struct dev_iommu fake_iommu = { .priv = (void *)-1 };  #endif
>       struct drm_i915_private *i915;
> -     struct intel_device_info *i915_info;
>       struct pci_dev *pdev;
> -     unsigned int i;
>       int ret;
>
>       pdev = kzalloc(sizeof(*pdev), GFP_KERNEL); @@ -159,15 +175,18 @@ struct drm_i915_private *mock_gem_device(void)
>
>       pci_set_drvdata(pdev, i915);
>
> +     /* Device parameters start as a copy of module parameters. */
> +     i915_params_copy(&i915->params, &i915_modparams);
> +
> +     /* Set up device info and initial runtime info. */
> +     intel_device_info_driver_create(i915, pdev->device, &mock_info);
> +
>       dev_pm_domain_set(&pdev->dev, &pm_domain);
>       pm_runtime_enable(&pdev->dev);
>       pm_runtime_dont_use_autosuspend(&pdev->dev);
>       if (pm_runtime_enabled(&pdev->dev))
>               WARN_ON(pm_runtime_get_sync(&pdev->dev));
>
> -
> -     i915_params_copy(&i915->params, &i915_modparams);
> -
>       intel_runtime_pm_init_early(&i915->runtime_pm);
>       /* wakeref tracking has significant overhead */
>       i915->runtime_pm.no_wakeref_tracking = true;
> @@ -175,21 +194,6 @@ struct drm_i915_private *mock_gem_device(void)
>       /* Using the global GTT may ask questions about KMS users, so prepare */
>       drm_mode_config_init(&i915->drm);
>
> -     RUNTIME_INFO(i915)->graphics.ip.ver = -1;
> -
> -     RUNTIME_INFO(i915)->page_sizes =
> -             I915_GTT_PAGE_SIZE_4K |
> -             I915_GTT_PAGE_SIZE_64K |
> -             I915_GTT_PAGE_SIZE_2M;
> -
> -     RUNTIME_INFO(i915)->memory_regions = REGION_SMEM;
> -
> -     /* simply use legacy cache level for mock device */
> -     i915_info = (struct intel_device_info *)INTEL_INFO(i915);
> -     i915_info->max_pat_index = 3;
> -     for (i = 0; i < I915_MAX_CACHE_LEVEL; i++)
> -             i915_info->cachelevel_to_pat[i] = i;
> -
>       intel_memory_regions_hw_probe(i915);
>
>       spin_lock_init(&i915->gpu_error.lock);
> @@ -223,7 +227,6 @@ struct drm_i915_private *mock_gem_device(void)
>       mock_init_ggtt(to_gt(i915));
>       to_gt(i915)->vm = i915_vm_get(&to_gt(i915)->ggtt->vm);
>
> -     RUNTIME_INFO(i915)->platform_engine_mask = BIT(0);
>       to_gt(i915)->info.engine_mask = BIT(0);
>
>       to_gt(i915)->engine[RCS0] = mock_engine(i915, "mock", RCS0);
> --
> 2.39.2

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2023-06-29 16:21 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-27 15:13 [Intel-gfx] [PATCH v2 0/6] drm/i915: further device info fixes and cleanups Jani Nikula
2023-06-27 15:13 ` [Intel-gfx] [PATCH v2 1/6] drm/i915: use mock device info for creating mock device Jani Nikula
2023-06-29 11:00   ` Tvrtko Ursulin
2023-06-29 11:53   ` Andi Shyti
2023-06-29 12:57   ` Andrzej Hajda
2023-06-29 16:12   ` Yang, Fei
2023-06-27 15:13 ` [Intel-gfx] [PATCH v2 2/6] drm/i915: move platform_engine_mask and memory_regions to device info Jani Nikula
2023-06-29 11:06   ` Tvrtko Ursulin
2023-06-27 15:14 ` [Intel-gfx] [PATCH v2 3/6] drm/i915: separate display info printing from the rest Jani Nikula
2023-06-27 15:14 ` [Intel-gfx] [PATCH v2 4/6] drm/i915: fix display info usage Jani Nikula
2023-06-27 15:14 ` [Intel-gfx] [PATCH v2 5/6] drm/i915: move display device and runtime info to struct intel_display Jani Nikula
2023-06-27 15:14 ` [Intel-gfx] [PATCH v2 6/6] drm/i915: make device info a const pointer to rodata Jani Nikula
2023-06-29 11:10   ` Tvrtko Ursulin
2023-06-29 11:29     ` Jani Nikula
2023-06-29 13:30       ` Jani Nikula
2023-06-27 20:28 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: further device info fixes and cleanups Patchwork
2023-06-27 20:28 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2023-06-27 20:43 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-06-28 14:05 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.