Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH 00/15] drm/i915: i915_drv.h and i915_gpu_error.h include diet
@ 2023-09-28 18:08 Jani Nikula
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 01/15] drm/i915: stop including i915_utils.h from intel_runtime_pm.h Jani Nikula
                   ` (16 more replies)
  0 siblings, 17 replies; 22+ messages in thread
From: Jani Nikula @ 2023-09-28 18:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

I've got a script that roughly answers the question, "If this header was
modified, how many object files would have to be rebuilt?"

We have a lot of headers that cause the rebuild of almost the entire
driver when modified.

Reduce includes in i915_drv.h and i915_gpu_error.h.

Here are the before (-) and after (+) stats. If you build the driver a
lot, save yourself a bunch of waiting time, and help get this merged.

BR,
Jani.


+drivers/gpu/drm/i915/gem/i915_gem_object.h: 316
-drivers/gpu/drm/i915/gem/i915_gem_object.h: 340
+drivers/gpu/drm/i915/gt/intel_engine.h: 180
-drivers/gpu/drm/i915/gt/intel_engine.h: 325
+drivers/gpu/drm/i915/gt/intel_ggtt_fencing.h: 309
-drivers/gpu/drm/i915/gt/intel_ggtt_fencing.h: 339
+drivers/gpu/drm/i915/gt/intel_gsc.h: 268
-drivers/gpu/drm/i915/gt/intel_gsc.h: 329
+drivers/gpu/drm/i915/gt/intel_gt_buffer_pool_types.h: 268
-drivers/gpu/drm/i915/gt/intel_gt_buffer_pool_types.h: 329
+drivers/gpu/drm/i915/gt/intel_gtt.h: 318
-drivers/gpu/drm/i915/gt/intel_gtt.h: 340
+drivers/gpu/drm/i915/gt/intel_gt_types.h: 268
-drivers/gpu/drm/i915/gt/intel_gt_types.h: 329
+drivers/gpu/drm/i915/gt/intel_hwconfig.h: 268
-drivers/gpu/drm/i915/gt/intel_hwconfig.h: 329
+drivers/gpu/drm/i915/gt/intel_llc_types.h: 268
-drivers/gpu/drm/i915/gt/intel_llc_types.h: 329
+drivers/gpu/drm/i915/gt/intel_migrate_types.h: 268
-drivers/gpu/drm/i915/gt/intel_migrate_types.h: 329
+drivers/gpu/drm/i915/gt/intel_rc6_types.h: 268
-drivers/gpu/drm/i915/gt/intel_rc6_types.h: 329
+drivers/gpu/drm/i915/gt/intel_reset.h: 318
-drivers/gpu/drm/i915/gt/intel_reset.h: 340
+drivers/gpu/drm/i915/gt/intel_reset_types.h: 318
-drivers/gpu/drm/i915/gt/intel_reset_types.h: 340
+drivers/gpu/drm/i915/gt/intel_rps_types.h: 270
-drivers/gpu/drm/i915/gt/intel_rps_types.h: 330
+drivers/gpu/drm/i915/gt/intel_timeline.h: 181
-drivers/gpu/drm/i915/gt/intel_timeline.h: 326
+drivers/gpu/drm/i915/gt/intel_wopcm.h: 268
-drivers/gpu/drm/i915/gt/intel_wopcm.h: 329
+drivers/gpu/drm/i915/gt/intel_workarounds.h: 180
-drivers/gpu/drm/i915/gt/intel_workarounds.h: 325
+drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.h: 270
-drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.h: 331
+drivers/gpu/drm/i915/gt/uc/intel_guc_ct.h: 271
-drivers/gpu/drm/i915/gt/uc/intel_guc_ct.h: 332
+drivers/gpu/drm/i915/gt/uc/intel_guc_fw.h: 271
-drivers/gpu/drm/i915/gt/uc/intel_guc_fw.h: 332
+drivers/gpu/drm/i915/gt/uc/intel_guc.h: 271
-drivers/gpu/drm/i915/gt/uc/intel_guc.h: 332
+drivers/gpu/drm/i915/gt/uc/intel_guc_log.h: 271
-drivers/gpu/drm/i915/gt/uc/intel_guc_log.h: 332
+drivers/gpu/drm/i915/gt/uc/intel_guc_rc.h: 270
-drivers/gpu/drm/i915/gt/uc/intel_guc_rc.h: 331
+drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h: 271
-drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h: 332
+drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.h: 271
-drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.h: 332
+drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h: 271
-drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h: 332
+drivers/gpu/drm/i915/gt/uc/intel_guc_submission.h: 271
-drivers/gpu/drm/i915/gt/uc/intel_guc_submission.h: 332
+drivers/gpu/drm/i915/gt/uc/intel_huc_fw.h: 271
-drivers/gpu/drm/i915/gt/uc/intel_huc_fw.h: 332
+drivers/gpu/drm/i915/gt/uc/intel_huc.h: 271
-drivers/gpu/drm/i915/gt/uc/intel_huc.h: 332
+drivers/gpu/drm/i915/gt/uc/intel_uc_fw_abi.h: 272
-drivers/gpu/drm/i915/gt/uc/intel_uc_fw_abi.h: 333
+drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h: 272
-drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h: 333
+drivers/gpu/drm/i915/gt/uc/intel_uc.h: 270
-drivers/gpu/drm/i915/gt/uc/intel_uc.h: 331
+drivers/gpu/drm/i915/i915_gem_gtt.h: 317
-drivers/gpu/drm/i915/i915_gem_gtt.h: 340
+drivers/gpu/drm/i915/i915_gem_ww.h: 320
-drivers/gpu/drm/i915/i915_gem_ww.h: 344
+drivers/gpu/drm/i915/i915_syncmap.h: 182
-drivers/gpu/drm/i915/i915_syncmap.h: 327
+drivers/gpu/drm/i915/i915_sysfs.h: 5
-drivers/gpu/drm/i915/i915_sysfs.h: 4
+drivers/gpu/drm/i915/i915_vma.h: 309
-drivers/gpu/drm/i915/i915_vma.h: 339
+drivers/gpu/drm/i915/i915_vma_types.h: 318
-drivers/gpu/drm/i915/i915_vma_types.h: 340


Jani Nikula (15):
  drm/i915: stop including i915_utils.h from intel_runtime_pm.h
  drm/i915/mocs: use to_gt() instead of direct &i915->gt
  drm/i915: allocate i915->gt0 dynamically
  drm/i915/gt: remove i915->gt0 in favour of i915->gt[0]
  drm/i915: make some error capture functions static
  drm/i915: move gpu error debugfs to i915_gpu_error.c
  drm/i915: move gpu error sysfs to i915_gpu_error.c
  drm/i915: convert i915_coredump_get/put() to proper functions
  drm/i915: do more in i915_gpu_coredump_alloc()
  drm/i915: move execlist capture to i915_gpu_error.c
  drm/i915/guc: don't look at gpu error guts in guc capture
  drm/i915: hide gpu error structures inside i915_gpu_error.c
  drm/i915: stop including gt/intel_engine.h and gt/intel_gt_types.h
    from i915_drv.h
  drm/i915: stop including gt/uc/intel_uc.h from i915_drv.h
  drm/i915: stop including gt/intel_workarounds.h from i915_drv.h

 .../drm/i915/display/intel_display_reset.c    |   1 +
 .../gpu/drm/i915/display/intel_display_rps.c  |   1 +
 drivers/gpu/drm/i915/display/intel_fbdev.c    |   1 +
 .../drm/i915/display/intel_plane_initial.c    |   1 +
 drivers/gpu/drm/i915/gem/i915_gem_lmem.c      |   5 +-
 drivers/gpu/drm/i915/gem/i915_gem_tiling.c    |   1 +
 drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c    |   1 +
 drivers/gpu/drm/i915/gem/i915_gem_userptr.c   |   1 +
 drivers/gpu/drm/i915/gt/gen7_renderclear.c    |   1 +
 .../drm/i915/gt/intel_execlists_submission.c  |  38 +-
 drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c  |   3 +-
 drivers/gpu/drm/i915/gt/intel_gt.c            |  10 +-
 drivers/gpu/drm/i915/gt/intel_gt_requests.c   |   1 +
 drivers/gpu/drm/i915/gt/intel_mocs.c          |   4 +-
 drivers/gpu/drm/i915/gt/intel_rps.c           |   1 +
 drivers/gpu/drm/i915/gt/intel_sseu.c          |   1 +
 drivers/gpu/drm/i915/gt/intel_sseu_debugfs.c  |   2 +-
 drivers/gpu/drm/i915/gt/intel_wopcm.c         |   3 +-
 drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.c     |   5 +-
 .../gpu/drm/i915/gt/uc/intel_guc_capture.c    |  63 +--
 .../gpu/drm/i915/gt/uc/intel_guc_capture.h    |  20 +-
 drivers/gpu/drm/i915/gvt/execlist.c           |   3 +-
 drivers/gpu/drm/i915/gvt/gvt.h                |   1 +
 drivers/gpu/drm/i915/i915_debugfs.c           | 108 +---
 drivers/gpu/drm/i915/i915_drv.h               |  14 +-
 drivers/gpu/drm/i915/i915_getparam.c          |   1 +
 drivers/gpu/drm/i915/i915_gpu_error.c         | 507 +++++++++++++++++-
 drivers/gpu/drm/i915/i915_gpu_error.h         | 329 +-----------
 drivers/gpu/drm/i915/i915_mm.c                |   4 +-
 drivers/gpu/drm/i915/i915_pci.c               |   3 +-
 drivers/gpu/drm/i915/i915_query.c             |   6 +-
 drivers/gpu/drm/i915/i915_sysfs.c             |  81 +--
 drivers/gpu/drm/i915/i915_utils.h             |   1 +
 drivers/gpu/drm/i915/i915_vgpu.c              |   2 +
 drivers/gpu/drm/i915/intel_gvt_mmio_table.c   |   1 +
 drivers/gpu/drm/i915/intel_region_ttm.c       |   2 +
 drivers/gpu/drm/i915/intel_runtime_pm.h       |   2 -
 drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c  |   1 +
 drivers/gpu/drm/i915/pxp/intel_pxp_pm.c       |   1 +
 drivers/gpu/drm/i915/pxp/intel_pxp_session.c  |   3 +-
 .../i915/selftests/intel_scheduler_helpers.c  |   2 +-
 .../gpu/drm/i915/selftests/mock_gem_device.c  |   1 -
 42 files changed, 612 insertions(+), 625 deletions(-)

-- 
2.39.2


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

* [Intel-gfx] [PATCH 01/15] drm/i915: stop including i915_utils.h from intel_runtime_pm.h
  2023-09-28 18:08 [Intel-gfx] [PATCH 00/15] drm/i915: i915_drv.h and i915_gpu_error.h include diet Jani Nikula
@ 2023-09-28 18:08 ` Jani Nikula
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 02/15] drm/i915/mocs: use to_gt() instead of direct &i915->gt Jani Nikula
                   ` (15 subsequent siblings)
  16 siblings, 0 replies; 22+ messages in thread
From: Jani Nikula @ 2023-09-28 18:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Remove an unnecessary include.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/intel_runtime_pm.h | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.h b/drivers/gpu/drm/i915/intel_runtime_pm.h
index f79cda7a2503..be43614c73fd 100644
--- a/drivers/gpu/drm/i915/intel_runtime_pm.h
+++ b/drivers/gpu/drm/i915/intel_runtime_pm.h
@@ -11,8 +11,6 @@
 
 #include "intel_wakeref.h"
 
-#include "i915_utils.h"
-
 struct device;
 struct drm_i915_private;
 struct drm_printer;
-- 
2.39.2


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

* [Intel-gfx] [PATCH 02/15] drm/i915/mocs: use to_gt() instead of direct &i915->gt
  2023-09-28 18:08 [Intel-gfx] [PATCH 00/15] drm/i915: i915_drv.h and i915_gpu_error.h include diet Jani Nikula
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 01/15] drm/i915: stop including i915_utils.h from intel_runtime_pm.h Jani Nikula
@ 2023-09-28 18:08 ` Jani Nikula
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 03/15] drm/i915: allocate i915->gt0 dynamically Jani Nikula
                   ` (14 subsequent siblings)
  16 siblings, 0 replies; 22+ messages in thread
From: Jani Nikula @ 2023-09-28 18:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Have to give up the const on i915 pointer, but it's not big of a deal
considering non-const i915 gets passed all over the place.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/gt/intel_mocs.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_mocs.c b/drivers/gpu/drm/i915/gt/intel_mocs.c
index 07269ff3be13..353f93baaca0 100644
--- a/drivers/gpu/drm/i915/gt/intel_mocs.c
+++ b/drivers/gpu/drm/i915/gt/intel_mocs.c
@@ -487,7 +487,7 @@ static bool has_mocs(const struct drm_i915_private *i915)
 	return !IS_DGFX(i915);
 }
 
-static unsigned int get_mocs_settings(const struct drm_i915_private *i915,
+static unsigned int get_mocs_settings(struct drm_i915_private *i915,
 				      struct drm_i915_mocs_table *table)
 {
 	unsigned int flags;
@@ -495,7 +495,7 @@ static unsigned int get_mocs_settings(const struct drm_i915_private *i915,
 	memset(table, 0, sizeof(struct drm_i915_mocs_table));
 
 	table->unused_entries_index = I915_MOCS_PTE;
-	if (IS_GFX_GT_IP_RANGE(&i915->gt0, IP_VER(12, 70), IP_VER(12, 71))) {
+	if (IS_GFX_GT_IP_RANGE(to_gt(i915), IP_VER(12, 70), IP_VER(12, 71))) {
 		table->size = ARRAY_SIZE(mtl_mocs_table);
 		table->table = mtl_mocs_table;
 		table->n_entries = MTL_NUM_MOCS_ENTRIES;
-- 
2.39.2


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

* [Intel-gfx] [PATCH 03/15] drm/i915: allocate i915->gt0 dynamically
  2023-09-28 18:08 [Intel-gfx] [PATCH 00/15] drm/i915: i915_drv.h and i915_gpu_error.h include diet Jani Nikula
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 01/15] drm/i915: stop including i915_utils.h from intel_runtime_pm.h Jani Nikula
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 02/15] drm/i915/mocs: use to_gt() instead of direct &i915->gt Jani Nikula
@ 2023-09-28 18:08 ` Jani Nikula
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 04/15] drm/i915/gt: remove i915->gt0 in favour of i915->gt[0] Jani Nikula
                   ` (13 subsequent siblings)
  16 siblings, 0 replies; 22+ messages in thread
From: Jani Nikula @ 2023-09-28 18:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Convert i915->gt0 to a pointer, and allocate it dynamically.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/gt/intel_gt.c | 8 +++++++-
 drivers/gpu/drm/i915/i915_drv.h    | 8 ++++----
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_gt.c b/drivers/gpu/drm/i915/gt/intel_gt.c
index 93062c35e072..a3d68ff4b191 100644
--- a/drivers/gpu/drm/i915/gt/intel_gt.c
+++ b/drivers/gpu/drm/i915/gt/intel_gt.c
@@ -62,7 +62,13 @@ void intel_gt_common_init_early(struct intel_gt *gt)
 /* Preliminary initialization of Tile 0 */
 int intel_root_gt_init_early(struct drm_i915_private *i915)
 {
-	struct intel_gt *gt = to_gt(i915);
+	struct intel_gt *gt;
+
+	gt = drmm_kzalloc(&i915->drm, sizeof(*gt), GFP_KERNEL);
+	if (!gt)
+		return -ENOMEM;
+
+	i915->gt0 = gt;
 
 	gt->i915 = i915;
 	gt->uncore = &i915->uncore;
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 511eba3bbdba..a1cb16afa46d 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -318,10 +318,10 @@ struct drm_i915_private {
 	struct i915_hwmon *hwmon;
 
 	/* Abstract the submission mechanism (legacy ringbuffer or execlists) away */
-	struct intel_gt gt0;
+	struct intel_gt *gt0;
 
 	/*
-	 * i915->gt[0] == &i915->gt0
+	 * i915->gt[0] == i915->gt0
 	 */
 	struct intel_gt *gt[I915_MAX_GT];
 
@@ -382,9 +382,9 @@ static inline struct drm_i915_private *pdev_to_i915(struct pci_dev *pdev)
 	return pci_get_drvdata(pdev);
 }
 
-static inline struct intel_gt *to_gt(struct drm_i915_private *i915)
+static inline struct intel_gt *to_gt(const struct drm_i915_private *i915)
 {
-	return &i915->gt0;
+	return i915->gt0;
 }
 
 /* Simple iterator over all initialised engines */
-- 
2.39.2


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

* [Intel-gfx] [PATCH 04/15] drm/i915/gt: remove i915->gt0 in favour of i915->gt[0]
  2023-09-28 18:08 [Intel-gfx] [PATCH 00/15] drm/i915: i915_drv.h and i915_gpu_error.h include diet Jani Nikula
                   ` (2 preceding siblings ...)
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 03/15] drm/i915: allocate i915->gt0 dynamically Jani Nikula
@ 2023-09-28 18:08 ` Jani Nikula
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 05/15] drm/i915: make some error capture functions static Jani Nikula
                   ` (12 subsequent siblings)
  16 siblings, 0 replies; 22+ messages in thread
From: Jani Nikula @ 2023-09-28 18:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Since gt0 == i915->gt[0], just drop the former.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/gt/intel_gt.c               | 4 +---
 drivers/gpu/drm/i915/i915_drv.h                  | 8 +-------
 drivers/gpu/drm/i915/selftests/mock_gem_device.c | 1 -
 3 files changed, 2 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_gt.c b/drivers/gpu/drm/i915/gt/intel_gt.c
index a3d68ff4b191..bb6c3f68f7d2 100644
--- a/drivers/gpu/drm/i915/gt/intel_gt.c
+++ b/drivers/gpu/drm/i915/gt/intel_gt.c
@@ -68,7 +68,7 @@ int intel_root_gt_init_early(struct drm_i915_private *i915)
 	if (!gt)
 		return -ENOMEM;
 
-	i915->gt0 = gt;
+	i915->gt[0] = gt;
 
 	gt->i915 = i915;
 	gt->uncore = &i915->uncore;
@@ -917,8 +917,6 @@ int intel_gt_probe_all(struct drm_i915_private *i915)
 	if (ret)
 		return ret;
 
-	i915->gt[0] = gt;
-
 	if (!HAS_EXTRA_GT_LIST(i915))
 		return 0;
 
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index a1cb16afa46d..d04a9c32c44f 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -317,12 +317,6 @@ struct drm_i915_private {
 
 	struct i915_hwmon *hwmon;
 
-	/* Abstract the submission mechanism (legacy ringbuffer or execlists) away */
-	struct intel_gt *gt0;
-
-	/*
-	 * i915->gt[0] == i915->gt0
-	 */
 	struct intel_gt *gt[I915_MAX_GT];
 
 	struct kobject *sysfs_gt;
@@ -384,7 +378,7 @@ static inline struct drm_i915_private *pdev_to_i915(struct pci_dev *pdev)
 
 static inline struct intel_gt *to_gt(const struct drm_i915_private *i915)
 {
-	return i915->gt0;
+	return i915->gt[0];
 }
 
 /* Simple iterator over all initialised engines */
diff --git a/drivers/gpu/drm/i915/selftests/mock_gem_device.c b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
index 7de6477803f8..af349fd9abc2 100644
--- a/drivers/gpu/drm/i915/selftests/mock_gem_device.c
+++ b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
@@ -114,7 +114,6 @@ static struct dev_pm_domain pm_domain = {
 
 static void mock_gt_probe(struct drm_i915_private *i915)
 {
-	i915->gt[0] = to_gt(i915);
 	i915->gt[0]->name = "Mock GT";
 }
 
-- 
2.39.2


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

* [Intel-gfx] [PATCH 05/15] drm/i915: make some error capture functions static
  2023-09-28 18:08 [Intel-gfx] [PATCH 00/15] drm/i915: i915_drv.h and i915_gpu_error.h include diet Jani Nikula
                   ` (3 preceding siblings ...)
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 04/15] drm/i915/gt: remove i915->gt0 in favour of i915->gt[0] Jani Nikula
@ 2023-09-28 18:08 ` Jani Nikula
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 06/15] drm/i915: move gpu error debugfs to i915_gpu_error.c Jani Nikula
                   ` (11 subsequent siblings)
  16 siblings, 0 replies; 22+ messages in thread
From: Jani Nikula @ 2023-09-28 18:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Not needed outside of i915_gpu_error.c.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_gpu_error.c | 8 ++++----
 drivers/gpu/drm/i915/i915_gpu_error.h | 5 -----
 2 files changed, 4 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index f4ebcfb70289..767687821f7a 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -520,7 +520,7 @@ __find_vma(struct i915_vma_coredump *vma, const char *name)
 	return NULL;
 }
 
-struct i915_vma_coredump *
+static struct i915_vma_coredump *
 intel_gpu_error_find_batch(const struct intel_engine_coredump *ee)
 {
 	return __find_vma(ee->vma, "batch");
@@ -609,9 +609,9 @@ void i915_error_printf(struct drm_i915_error_state_buf *e, const char *f, ...)
 	va_end(args);
 }
 
-void intel_gpu_error_print_vma(struct drm_i915_error_state_buf *m,
-			       const struct intel_engine_cs *engine,
-			       const struct i915_vma_coredump *vma)
+static void intel_gpu_error_print_vma(struct drm_i915_error_state_buf *m,
+				      const struct intel_engine_cs *engine,
+				      const struct i915_vma_coredump *vma)
 {
 	char out[ASCII85_BUFSZ];
 	struct page *page;
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.h b/drivers/gpu/drm/i915/i915_gpu_error.h
index 9f5971f5e980..c982b162b7ff 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.h
+++ b/drivers/gpu/drm/i915/i915_gpu_error.h
@@ -275,11 +275,6 @@ static inline void intel_klog_error_capture(struct intel_gt *gt,
 
 __printf(2, 3)
 void i915_error_printf(struct drm_i915_error_state_buf *e, const char *f, ...);
-void intel_gpu_error_print_vma(struct drm_i915_error_state_buf *m,
-			       const struct intel_engine_cs *engine,
-			       const struct i915_vma_coredump *vma);
-struct i915_vma_coredump *
-intel_gpu_error_find_batch(const struct intel_engine_coredump *ee);
 
 struct i915_gpu_coredump *i915_gpu_coredump(struct intel_gt *gt,
 					    intel_engine_mask_t engine_mask, u32 dump_flags);
-- 
2.39.2


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

* [Intel-gfx] [PATCH 06/15] drm/i915: move gpu error debugfs to i915_gpu_error.c
  2023-09-28 18:08 [Intel-gfx] [PATCH 00/15] drm/i915: i915_drv.h and i915_gpu_error.h include diet Jani Nikula
                   ` (4 preceding siblings ...)
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 05/15] drm/i915: make some error capture functions static Jani Nikula
@ 2023-09-28 18:08 ` Jani Nikula
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 07/15] drm/i915: move gpu error sysfs " Jani Nikula
                   ` (10 subsequent siblings)
  16 siblings, 0 replies; 22+ messages in thread
From: Jani Nikula @ 2023-09-28 18:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Hide gpu error specifics in i915_gpu_error.c. This is also cleaner wrt
conditional compilation, as i915_gpu_error.c is only built with
DRM_I915_CAPTURE_ERROR=y.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c   | 108 +------------------------
 drivers/gpu/drm/i915/i915_gpu_error.c | 111 +++++++++++++++++++++++++-
 drivers/gpu/drm/i915/i915_gpu_error.h |   8 +-
 3 files changed, 119 insertions(+), 108 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index e9b79c2c37d8..beffac46a5e2 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -49,6 +49,7 @@
 #include "i915_debugfs.h"
 #include "i915_debugfs_params.h"
 #include "i915_driver.h"
+#include "i915_gpu_error.h"
 #include "i915_irq.h"
 #include "i915_reg.h"
 #include "i915_scheduler.h"
@@ -297,107 +298,6 @@ static int i915_gem_object_info(struct seq_file *m, void *data)
 	return 0;
 }
 
-#if IS_ENABLED(CONFIG_DRM_I915_CAPTURE_ERROR)
-static ssize_t gpu_state_read(struct file *file, char __user *ubuf,
-			      size_t count, loff_t *pos)
-{
-	struct i915_gpu_coredump *error;
-	ssize_t ret;
-	void *buf;
-
-	error = file->private_data;
-	if (!error)
-		return 0;
-
-	/* Bounce buffer required because of kernfs __user API convenience. */
-	buf = kmalloc(count, GFP_KERNEL);
-	if (!buf)
-		return -ENOMEM;
-
-	ret = i915_gpu_coredump_copy_to_buffer(error, buf, *pos, count);
-	if (ret <= 0)
-		goto out;
-
-	if (!copy_to_user(ubuf, buf, ret))
-		*pos += ret;
-	else
-		ret = -EFAULT;
-
-out:
-	kfree(buf);
-	return ret;
-}
-
-static int gpu_state_release(struct inode *inode, struct file *file)
-{
-	i915_gpu_coredump_put(file->private_data);
-	return 0;
-}
-
-static int i915_gpu_info_open(struct inode *inode, struct file *file)
-{
-	struct drm_i915_private *i915 = inode->i_private;
-	struct i915_gpu_coredump *gpu;
-	intel_wakeref_t wakeref;
-
-	gpu = NULL;
-	with_intel_runtime_pm(&i915->runtime_pm, wakeref)
-		gpu = i915_gpu_coredump(to_gt(i915), ALL_ENGINES, CORE_DUMP_FLAG_NONE);
-
-	if (IS_ERR(gpu))
-		return PTR_ERR(gpu);
-
-	file->private_data = gpu;
-	return 0;
-}
-
-static const struct file_operations i915_gpu_info_fops = {
-	.owner = THIS_MODULE,
-	.open = i915_gpu_info_open,
-	.read = gpu_state_read,
-	.llseek = default_llseek,
-	.release = gpu_state_release,
-};
-
-static ssize_t
-i915_error_state_write(struct file *filp,
-		       const char __user *ubuf,
-		       size_t cnt,
-		       loff_t *ppos)
-{
-	struct i915_gpu_coredump *error = filp->private_data;
-
-	if (!error)
-		return 0;
-
-	drm_dbg(&error->i915->drm, "Resetting error state\n");
-	i915_reset_error_state(error->i915);
-
-	return cnt;
-}
-
-static int i915_error_state_open(struct inode *inode, struct file *file)
-{
-	struct i915_gpu_coredump *error;
-
-	error = i915_first_error_state(inode->i_private);
-	if (IS_ERR(error))
-		return PTR_ERR(error);
-
-	file->private_data  = error;
-	return 0;
-}
-
-static const struct file_operations i915_error_state_fops = {
-	.owner = THIS_MODULE,
-	.open = i915_error_state_open,
-	.read = gpu_state_read,
-	.write = i915_error_state_write,
-	.llseek = default_llseek,
-	.release = gpu_state_release,
-};
-#endif
-
 static int i915_frequency_info(struct seq_file *m, void *unused)
 {
 	struct drm_i915_private *i915 = node_to_i915(m->private);
@@ -837,10 +737,6 @@ static const struct i915_debugfs_files {
 	{"i915_perf_noa_delay", &i915_perf_noa_delay_fops},
 	{"i915_wedged", &i915_wedged_fops},
 	{"i915_gem_drop_caches", &i915_drop_caches_fops},
-#if IS_ENABLED(CONFIG_DRM_I915_CAPTURE_ERROR)
-	{"i915_error_state", &i915_error_state_fops},
-	{"i915_gpu_info", &i915_gpu_info_fops},
-#endif
 };
 
 void i915_debugfs_register(struct drm_i915_private *dev_priv)
@@ -863,4 +759,6 @@ void i915_debugfs_register(struct drm_i915_private *dev_priv)
 	drm_debugfs_create_files(i915_debugfs_list,
 				 ARRAY_SIZE(i915_debugfs_list),
 				 minor->debugfs_root, minor);
+
+	i915_gpu_error_debugfs_register(dev_priv);
 }
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index 767687821f7a..71dacd6e5360 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -2128,7 +2128,7 @@ __i915_gpu_coredump(struct intel_gt *gt, intel_engine_mask_t engine_mask, u32 du
 	return error;
 }
 
-struct i915_gpu_coredump *
+static struct i915_gpu_coredump *
 i915_gpu_coredump(struct intel_gt *gt, intel_engine_mask_t engine_mask, u32 dump_flags)
 {
 	static DEFINE_MUTEX(capture_mutex);
@@ -2366,3 +2366,112 @@ void intel_klog_error_capture(struct intel_gt *gt,
 	drm_info(&i915->drm, "[Capture/%d.%d] Dumped %zd bytes\n", l_count, line++, pos_err);
 }
 #endif
+
+static ssize_t gpu_state_read(struct file *file, char __user *ubuf,
+			      size_t count, loff_t *pos)
+{
+	struct i915_gpu_coredump *error;
+	ssize_t ret;
+	void *buf;
+
+	error = file->private_data;
+	if (!error)
+		return 0;
+
+	/* Bounce buffer required because of kernfs __user API convenience. */
+	buf = kmalloc(count, GFP_KERNEL);
+	if (!buf)
+		return -ENOMEM;
+
+	ret = i915_gpu_coredump_copy_to_buffer(error, buf, *pos, count);
+	if (ret <= 0)
+		goto out;
+
+	if (!copy_to_user(ubuf, buf, ret))
+		*pos += ret;
+	else
+		ret = -EFAULT;
+
+out:
+	kfree(buf);
+	return ret;
+}
+
+static int gpu_state_release(struct inode *inode, struct file *file)
+{
+	i915_gpu_coredump_put(file->private_data);
+	return 0;
+}
+
+static int i915_gpu_info_open(struct inode *inode, struct file *file)
+{
+	struct drm_i915_private *i915 = inode->i_private;
+	struct i915_gpu_coredump *gpu;
+	intel_wakeref_t wakeref;
+
+	gpu = NULL;
+	with_intel_runtime_pm(&i915->runtime_pm, wakeref)
+		gpu = i915_gpu_coredump(to_gt(i915), ALL_ENGINES, CORE_DUMP_FLAG_NONE);
+
+	if (IS_ERR(gpu))
+		return PTR_ERR(gpu);
+
+	file->private_data = gpu;
+	return 0;
+}
+
+static const struct file_operations i915_gpu_info_fops = {
+	.owner = THIS_MODULE,
+	.open = i915_gpu_info_open,
+	.read = gpu_state_read,
+	.llseek = default_llseek,
+	.release = gpu_state_release,
+};
+
+static ssize_t
+i915_error_state_write(struct file *filp,
+		       const char __user *ubuf,
+		       size_t cnt,
+		       loff_t *ppos)
+{
+	struct i915_gpu_coredump *error = filp->private_data;
+
+	if (!error)
+		return 0;
+
+	drm_dbg(&error->i915->drm, "Resetting error state\n");
+	i915_reset_error_state(error->i915);
+
+	return cnt;
+}
+
+static int i915_error_state_open(struct inode *inode, struct file *file)
+{
+	struct i915_gpu_coredump *error;
+
+	error = i915_first_error_state(inode->i_private);
+	if (IS_ERR(error))
+		return PTR_ERR(error);
+
+	file->private_data  = error;
+	return 0;
+}
+
+static const struct file_operations i915_error_state_fops = {
+	.owner = THIS_MODULE,
+	.open = i915_error_state_open,
+	.read = gpu_state_read,
+	.write = i915_error_state_write,
+	.llseek = default_llseek,
+	.release = gpu_state_release,
+};
+
+void i915_gpu_error_debugfs_register(struct drm_i915_private *i915)
+{
+	struct drm_minor *minor = i915->drm.primary;
+
+	debugfs_create_file("i915_error_state", 0644, minor->debugfs_root, i915,
+			    &i915_error_state_fops);
+	debugfs_create_file("i915_gpu_info", 0644, minor->debugfs_root, i915,
+			    &i915_gpu_info_fops);
+}
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.h b/drivers/gpu/drm/i915/i915_gpu_error.h
index c982b162b7ff..a6f2a7518cf0 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.h
+++ b/drivers/gpu/drm/i915/i915_gpu_error.h
@@ -276,8 +276,6 @@ static inline void intel_klog_error_capture(struct intel_gt *gt,
 __printf(2, 3)
 void i915_error_printf(struct drm_i915_error_state_buf *e, const char *f, ...);
 
-struct i915_gpu_coredump *i915_gpu_coredump(struct intel_gt *gt,
-					    intel_engine_mask_t engine_mask, u32 dump_flags);
 void i915_capture_error_state(struct intel_gt *gt,
 			      intel_engine_mask_t engine_mask, u32 dump_flags);
 
@@ -329,6 +327,8 @@ struct i915_gpu_coredump *i915_first_error_state(struct drm_i915_private *i915);
 void i915_reset_error_state(struct drm_i915_private *i915);
 void i915_disable_error_state(struct drm_i915_private *i915, int err);
 
+void i915_gpu_error_debugfs_register(struct drm_i915_private *i915);
+
 #else
 
 __printf(2, 3)
@@ -411,6 +411,10 @@ static inline void i915_disable_error_state(struct drm_i915_private *i915,
 {
 }
 
+static inline void i915_gpu_error_debugfs_register(struct drm_i915_private *i915)
+{
+}
+
 #endif /* IS_ENABLED(CONFIG_DRM_I915_CAPTURE_ERROR) */
 
 #endif /* _I915_GPU_ERROR_H_ */
-- 
2.39.2


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

* [Intel-gfx] [PATCH 07/15] drm/i915: move gpu error sysfs to i915_gpu_error.c
  2023-09-28 18:08 [Intel-gfx] [PATCH 00/15] drm/i915: i915_drv.h and i915_gpu_error.h include diet Jani Nikula
                   ` (5 preceding siblings ...)
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 06/15] drm/i915: move gpu error debugfs to i915_gpu_error.c Jani Nikula
@ 2023-09-28 18:08 ` Jani Nikula
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 08/15] drm/i915: convert i915_coredump_get/put() to proper functions Jani Nikula
                   ` (9 subsequent siblings)
  16 siblings, 0 replies; 22+ messages in thread
From: Jani Nikula @ 2023-09-28 18:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Hide gpu error specifics in i915_gpu_error.c. This is also cleaner wrt
conditional compilation, as i915_gpu_error.c is only built with
DRM_I915_CAPTURE_ERROR=y.

With this, we can also make i915_first_error_state() static.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_gpu_error.c | 75 ++++++++++++++++++++++++-
 drivers/gpu/drm/i915/i915_gpu_error.h | 17 +++---
 drivers/gpu/drm/i915/i915_sysfs.c     | 79 +--------------------------
 3 files changed, 86 insertions(+), 85 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index 71dacd6e5360..17699b20694c 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -57,6 +57,7 @@
 #include "i915_memcpy.h"
 #include "i915_reg.h"
 #include "i915_scatterlist.h"
+#include "i915_sysfs.h"
 #include "i915_utils.h"
 
 #define ALLOW_FAIL (__GFP_KSWAPD_RECLAIM | __GFP_RETRY_MAYFAIL | __GFP_NOWARN)
@@ -2199,7 +2200,7 @@ void i915_capture_error_state(struct intel_gt *gt,
 	i915_gpu_coredump_put(error);
 }
 
-struct i915_gpu_coredump *
+static struct i915_gpu_coredump *
 i915_first_error_state(struct drm_i915_private *i915)
 {
 	struct i915_gpu_coredump *error;
@@ -2475,3 +2476,75 @@ void i915_gpu_error_debugfs_register(struct drm_i915_private *i915)
 	debugfs_create_file("i915_gpu_info", 0644, minor->debugfs_root, i915,
 			    &i915_gpu_info_fops);
 }
+
+static ssize_t error_state_read(struct file *filp, struct kobject *kobj,
+				struct bin_attribute *attr, char *buf,
+				loff_t off, size_t count)
+{
+
+	struct device *kdev = kobj_to_dev(kobj);
+	struct drm_i915_private *i915 = kdev_minor_to_i915(kdev);
+	struct i915_gpu_coredump *gpu;
+	ssize_t ret = 0;
+
+	/*
+	 * FIXME: Concurrent clients triggering resets and reading + clearing
+	 * dumps can cause inconsistent sysfs reads when a user calls in with a
+	 * non-zero offset to complete a prior partial read but the
+	 * gpu_coredump has been cleared or replaced.
+	 */
+
+	gpu = i915_first_error_state(i915);
+	if (IS_ERR(gpu)) {
+		ret = PTR_ERR(gpu);
+	} else if (gpu) {
+		ret = i915_gpu_coredump_copy_to_buffer(gpu, buf, off, count);
+		i915_gpu_coredump_put(gpu);
+	} else {
+		const char *str = "No error state collected\n";
+		size_t len = strlen(str);
+
+		if (off < len) {
+			ret = min_t(size_t, count, len - off);
+			memcpy(buf, str + off, ret);
+		}
+	}
+
+	return ret;
+}
+
+static ssize_t error_state_write(struct file *file, struct kobject *kobj,
+				 struct bin_attribute *attr, char *buf,
+				 loff_t off, size_t count)
+{
+	struct device *kdev = kobj_to_dev(kobj);
+	struct drm_i915_private *dev_priv = kdev_minor_to_i915(kdev);
+
+	drm_dbg(&dev_priv->drm, "Resetting error state\n");
+	i915_reset_error_state(dev_priv);
+
+	return count;
+}
+
+static const struct bin_attribute error_state_attr = {
+	.attr.name = "error",
+	.attr.mode = S_IRUSR | S_IWUSR,
+	.size = 0,
+	.read = error_state_read,
+	.write = error_state_write,
+};
+
+void i915_gpu_error_sysfs_setup(struct drm_i915_private *i915)
+{
+	struct device *kdev = i915->drm.primary->kdev;
+
+	if (sysfs_create_bin_file(&kdev->kobj, &error_state_attr))
+		drm_err(&i915->drm, "error_state sysfs setup failed\n");
+}
+
+void i915_gpu_error_sysfs_teardown(struct drm_i915_private *i915)
+{
+	struct device *kdev = i915->drm.primary->kdev;
+
+	sysfs_remove_bin_file(&kdev->kobj, &error_state_attr);
+}
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.h b/drivers/gpu/drm/i915/i915_gpu_error.h
index a6f2a7518cf0..68c964d6720a 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.h
+++ b/drivers/gpu/drm/i915/i915_gpu_error.h
@@ -323,11 +323,12 @@ static inline void i915_gpu_coredump_put(struct i915_gpu_coredump *gpu)
 		kref_put(&gpu->ref, __i915_gpu_coredump_free);
 }
 
-struct i915_gpu_coredump *i915_first_error_state(struct drm_i915_private *i915);
 void i915_reset_error_state(struct drm_i915_private *i915);
 void i915_disable_error_state(struct drm_i915_private *i915, int err);
 
 void i915_gpu_error_debugfs_register(struct drm_i915_private *i915);
+void i915_gpu_error_sysfs_setup(struct drm_i915_private *i915);
+void i915_gpu_error_sysfs_teardown(struct drm_i915_private *i915);
 
 #else
 
@@ -396,12 +397,6 @@ static inline void i915_gpu_coredump_put(struct i915_gpu_coredump *gpu)
 {
 }
 
-static inline struct i915_gpu_coredump *
-i915_first_error_state(struct drm_i915_private *i915)
-{
-	return ERR_PTR(-ENODEV);
-}
-
 static inline void i915_reset_error_state(struct drm_i915_private *i915)
 {
 }
@@ -415,6 +410,14 @@ static inline void i915_gpu_error_debugfs_register(struct drm_i915_private *i915
 {
 }
 
+static inline void i915_gpu_error_sysfs_setup(struct drm_i915_private *i915)
+{
+}
+
+static inline void i915_gpu_error_sysfs_teardown(struct drm_i915_private *i915)
+{
+}
+
 #endif /* IS_ENABLED(CONFIG_DRM_I915_CAPTURE_ERROR) */
 
 #endif /* _I915_GPU_ERROR_H_ */
diff --git a/drivers/gpu/drm/i915/i915_sysfs.c b/drivers/gpu/drm/i915/i915_sysfs.c
index e88bb4f04305..613decd47760 100644
--- a/drivers/gpu/drm/i915/i915_sysfs.c
+++ b/drivers/gpu/drm/i915/i915_sysfs.c
@@ -155,81 +155,6 @@ static const struct bin_attribute dpf_attrs_1 = {
 	.private = (void *)1
 };
 
-#if IS_ENABLED(CONFIG_DRM_I915_CAPTURE_ERROR)
-
-static ssize_t error_state_read(struct file *filp, struct kobject *kobj,
-				struct bin_attribute *attr, char *buf,
-				loff_t off, size_t count)
-{
-
-	struct device *kdev = kobj_to_dev(kobj);
-	struct drm_i915_private *i915 = kdev_minor_to_i915(kdev);
-	struct i915_gpu_coredump *gpu;
-	ssize_t ret = 0;
-
-	/*
-	 * FIXME: Concurrent clients triggering resets and reading + clearing
-	 * dumps can cause inconsistent sysfs reads when a user calls in with a
-	 * non-zero offset to complete a prior partial read but the
-	 * gpu_coredump has been cleared or replaced.
-	 */
-
-	gpu = i915_first_error_state(i915);
-	if (IS_ERR(gpu)) {
-		ret = PTR_ERR(gpu);
-	} else if (gpu) {
-		ret = i915_gpu_coredump_copy_to_buffer(gpu, buf, off, count);
-		i915_gpu_coredump_put(gpu);
-	} else {
-		const char *str = "No error state collected\n";
-		size_t len = strlen(str);
-
-		if (off < len) {
-			ret = min_t(size_t, count, len - off);
-			memcpy(buf, str + off, ret);
-		}
-	}
-
-	return ret;
-}
-
-static ssize_t error_state_write(struct file *file, struct kobject *kobj,
-				 struct bin_attribute *attr, char *buf,
-				 loff_t off, size_t count)
-{
-	struct device *kdev = kobj_to_dev(kobj);
-	struct drm_i915_private *dev_priv = kdev_minor_to_i915(kdev);
-
-	drm_dbg(&dev_priv->drm, "Resetting error state\n");
-	i915_reset_error_state(dev_priv);
-
-	return count;
-}
-
-static const struct bin_attribute error_state_attr = {
-	.attr.name = "error",
-	.attr.mode = S_IRUSR | S_IWUSR,
-	.size = 0,
-	.read = error_state_read,
-	.write = error_state_write,
-};
-
-static void i915_setup_error_capture(struct device *kdev)
-{
-	if (sysfs_create_bin_file(&kdev->kobj, &error_state_attr))
-		drm_err(&kdev_minor_to_i915(kdev)->drm,
-			"error_state sysfs setup failed\n");
-}
-
-static void i915_teardown_error_capture(struct device *kdev)
-{
-	sysfs_remove_bin_file(&kdev->kobj, &error_state_attr);
-}
-#else
-static void i915_setup_error_capture(struct device *kdev) {}
-static void i915_teardown_error_capture(struct device *kdev) {}
-#endif
-
 void i915_setup_sysfs(struct drm_i915_private *dev_priv)
 {
 	struct device *kdev = dev_priv->drm.primary->kdev;
@@ -255,7 +180,7 @@ void i915_setup_sysfs(struct drm_i915_private *dev_priv)
 		drm_warn(&dev_priv->drm,
 			 "failed to register GT sysfs directory\n");
 
-	i915_setup_error_capture(kdev);
+	i915_gpu_error_sysfs_setup(dev_priv);
 
 	intel_engines_add_sysfs(dev_priv);
 }
@@ -264,7 +189,7 @@ void i915_teardown_sysfs(struct drm_i915_private *dev_priv)
 {
 	struct device *kdev = dev_priv->drm.primary->kdev;
 
-	i915_teardown_error_capture(kdev);
+	i915_gpu_error_sysfs_teardown(dev_priv);
 
 	device_remove_bin_file(kdev,  &dpf_attrs_1);
 	device_remove_bin_file(kdev,  &dpf_attrs);
-- 
2.39.2


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

* [Intel-gfx] [PATCH 08/15] drm/i915: convert i915_coredump_get/put() to proper functions
  2023-09-28 18:08 [Intel-gfx] [PATCH 00/15] drm/i915: i915_drv.h and i915_gpu_error.h include diet Jani Nikula
                   ` (6 preceding siblings ...)
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 07/15] drm/i915: move gpu error sysfs " Jani Nikula
@ 2023-09-28 18:08 ` Jani Nikula
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 09/15] drm/i915: do more in i915_gpu_coredump_alloc() Jani Nikula
                   ` (8 subsequent siblings)
  16 siblings, 0 replies; 22+ messages in thread
From: Jani Nikula @ 2023-09-28 18:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Also make i915_gpu_coredump_get() static, as it's not used outside of
i915_gpu_error.h.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_gpu_error.c | 14 +++++++++++++-
 drivers/gpu/drm/i915/i915_gpu_error.h | 14 +-------------
 2 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index 17699b20694c..9b1bb5aeec11 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -1060,7 +1060,7 @@ static void cleanup_gt(struct intel_gt_coredump *gt)
 	kfree(gt);
 }
 
-void __i915_gpu_coredump_free(struct kref *error_ref)
+static void i915_gpu_coredump_free(struct kref *error_ref)
 {
 	struct i915_gpu_coredump *error =
 		container_of(error_ref, typeof(*error), ref);
@@ -1080,6 +1080,18 @@ void __i915_gpu_coredump_free(struct kref *error_ref)
 	kfree(error);
 }
 
+static struct i915_gpu_coredump *i915_gpu_coredump_get(struct i915_gpu_coredump *gpu)
+{
+	kref_get(&gpu->ref);
+	return gpu;
+}
+
+void i915_gpu_coredump_put(struct i915_gpu_coredump *gpu)
+{
+	if (gpu)
+		kref_put(&gpu->ref, i915_gpu_coredump_free);
+}
+
 static struct i915_vma_coredump *
 i915_vma_coredump_create(const struct intel_gt *gt,
 			 const struct i915_vma_resource *vma_res,
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.h b/drivers/gpu/drm/i915/i915_gpu_error.h
index 68c964d6720a..f6f8d284a07d 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.h
+++ b/drivers/gpu/drm/i915/i915_gpu_error.h
@@ -305,23 +305,11 @@ void i915_vma_capture_finish(struct intel_gt_coredump *gt,
 
 void i915_error_state_store(struct i915_gpu_coredump *error);
 
-static inline struct i915_gpu_coredump *
-i915_gpu_coredump_get(struct i915_gpu_coredump *gpu)
-{
-	kref_get(&gpu->ref);
-	return gpu;
-}
-
 ssize_t
 i915_gpu_coredump_copy_to_buffer(struct i915_gpu_coredump *error,
 				 char *buf, loff_t offset, size_t count);
 
-void __i915_gpu_coredump_free(struct kref *kref);
-static inline void i915_gpu_coredump_put(struct i915_gpu_coredump *gpu)
-{
-	if (gpu)
-		kref_put(&gpu->ref, __i915_gpu_coredump_free);
-}
+void i915_gpu_coredump_put(struct i915_gpu_coredump *gpu);
 
 void i915_reset_error_state(struct drm_i915_private *i915);
 void i915_disable_error_state(struct drm_i915_private *i915, int err);
-- 
2.39.2


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

* [Intel-gfx] [PATCH 09/15] drm/i915: do more in i915_gpu_coredump_alloc()
  2023-09-28 18:08 [Intel-gfx] [PATCH 00/15] drm/i915: i915_drv.h and i915_gpu_error.h include diet Jani Nikula
                   ` (7 preceding siblings ...)
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 08/15] drm/i915: convert i915_coredump_get/put() to proper functions Jani Nikula
@ 2023-09-28 18:08 ` Jani Nikula
  2023-09-29  4:42   ` kernel test robot
                     ` (2 more replies)
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 10/15] drm/i915: move execlist capture to i915_gpu_error.c Jani Nikula
                   ` (7 subsequent siblings)
  16 siblings, 3 replies; 22+ messages in thread
From: Jani Nikula @ 2023-09-28 18:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Reduce gpu error interface further by doing more in
i915_gpu_coredump_alloc().

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 .../drm/i915/gt/intel_execlists_submission.c  | 16 +-------
 drivers/gpu/drm/i915/i915_gpu_error.c         | 38 +++++++++++++++++--
 drivers/gpu/drm/i915/i915_gpu_error.h         | 20 +---------
 3 files changed, 37 insertions(+), 37 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
index e8f42ec6b1b4..7c7e8c3a12e0 100644
--- a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
+++ b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
@@ -2261,26 +2261,12 @@ static struct execlists_capture *capture_regs(struct intel_engine_cs *engine)
 	if (!cap)
 		return NULL;
 
-	cap->error = i915_gpu_coredump_alloc(engine->i915, gfp);
+	cap->error = i915_gpu_coredump_alloc(engine, gfp);
 	if (!cap->error)
 		goto err_cap;
 
-	cap->error->gt = intel_gt_coredump_alloc(engine->gt, gfp, CORE_DUMP_FLAG_NONE);
-	if (!cap->error->gt)
-		goto err_gpu;
-
-	cap->error->gt->engine = intel_engine_coredump_alloc(engine, gfp, CORE_DUMP_FLAG_NONE);
-	if (!cap->error->gt->engine)
-		goto err_gt;
-
-	cap->error->gt->engine->hung = true;
-
 	return cap;
 
-err_gt:
-	kfree(cap->error->gt);
-err_gpu:
-	kfree(cap->error);
 err_cap:
 	kfree(cap);
 	return NULL;
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index 9b1bb5aeec11..e4185f30f07c 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -63,6 +63,9 @@
 #define ALLOW_FAIL (__GFP_KSWAPD_RECLAIM | __GFP_RETRY_MAYFAIL | __GFP_NOWARN)
 #define ATOMIC_MAYFAIL (GFP_ATOMIC | __GFP_NOWARN)
 
+struct intel_gt_coredump *
+intel_gt_coredump_alloc(struct intel_gt *gt, gfp_t gfp, u32 dump_flags);
+
 static void __sg_set_buf(struct scatterlist *sg,
 			 void *addr, unsigned int len, loff_t it)
 {
@@ -2005,8 +2008,8 @@ static void capture_gen(struct i915_gpu_coredump *error)
 	error->driver_caps = i915->caps;
 }
 
-struct i915_gpu_coredump *
-i915_gpu_coredump_alloc(struct drm_i915_private *i915, gfp_t gfp)
+static struct i915_gpu_coredump *
+__i915_gpu_coredump_alloc(struct drm_i915_private *i915, gfp_t gfp)
 {
 	struct i915_gpu_coredump *error;
 
@@ -2030,6 +2033,35 @@ i915_gpu_coredump_alloc(struct drm_i915_private *i915, gfp_t gfp)
 	return error;
 }
 
+struct i915_gpu_coredump *
+i915_gpu_coredump_alloc(struct intel_engine_cs *engine, gfp_t gfp)
+{
+	struct i915_gpu_coredump *error;
+
+	error = __i915_gpu_coredump_alloc(engine->i915, gfp);
+	if (!error)
+		return NULL;
+
+	error->gt = intel_gt_coredump_alloc(engine->gt, gfp, CORE_DUMP_FLAG_NONE);
+	if (!error->gt)
+		goto err_gpu;
+
+	error->gt->engine = intel_engine_coredump_alloc(engine, gfp, CORE_DUMP_FLAG_NONE);
+	if (!error->gt->engine)
+		goto err_gt;
+
+	error->gt->engine->hung = true;
+
+	return error;
+
+err_gt:
+	kfree(error->gt);
+err_gpu:
+	kfree(error);
+
+	return NULL;
+}
+
 #define DAY_AS_SECONDS(x) (24 * 60 * 60 * (x))
 
 struct intel_gt_coredump *
@@ -2102,7 +2134,7 @@ __i915_gpu_coredump(struct intel_gt *gt, intel_engine_mask_t engine_mask, u32 du
 	if (IS_ERR(error))
 		return error;
 
-	error = i915_gpu_coredump_alloc(i915, ALLOW_FAIL);
+	error = __i915_gpu_coredump_alloc(i915, ALLOW_FAIL);
 	if (!error)
 		return ERR_PTR(-ENOMEM);
 
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.h b/drivers/gpu/drm/i915/i915_gpu_error.h
index f6f8d284a07d..0439dde95344 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.h
+++ b/drivers/gpu/drm/i915/i915_gpu_error.h
@@ -280,13 +280,7 @@ void i915_capture_error_state(struct intel_gt *gt,
 			      intel_engine_mask_t engine_mask, u32 dump_flags);
 
 struct i915_gpu_coredump *
-i915_gpu_coredump_alloc(struct drm_i915_private *i915, gfp_t gfp);
-
-struct intel_gt_coredump *
-intel_gt_coredump_alloc(struct intel_gt *gt, gfp_t gfp, u32 dump_flags);
-
-struct intel_engine_coredump *
-intel_engine_coredump_alloc(struct intel_engine_cs *engine, gfp_t gfp, u32 dump_flags);
+i915_gpu_coredump_alloc(struct intel_engine_cs *engine, gfp_t gfp);
 
 struct intel_engine_capture_vma *
 intel_engine_coredump_add_request(struct intel_engine_coredump *ee,
@@ -337,18 +331,6 @@ i915_gpu_coredump_alloc(struct drm_i915_private *i915, gfp_t gfp)
 	return NULL;
 }
 
-static inline struct intel_gt_coredump *
-intel_gt_coredump_alloc(struct intel_gt *gt, gfp_t gfp, u32 dump_flags)
-{
-	return NULL;
-}
-
-static inline struct intel_engine_coredump *
-intel_engine_coredump_alloc(struct intel_engine_cs *engine, gfp_t gfp, u32 dump_flags)
-{
-	return NULL;
-}
-
 static inline struct intel_engine_capture_vma *
 intel_engine_coredump_add_request(struct intel_engine_coredump *ee,
 				  struct i915_request *rq,
-- 
2.39.2


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

* [Intel-gfx] [PATCH 10/15] drm/i915: move execlist capture to i915_gpu_error.c
  2023-09-28 18:08 [Intel-gfx] [PATCH 00/15] drm/i915: i915_drv.h and i915_gpu_error.h include diet Jani Nikula
                   ` (8 preceding siblings ...)
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 09/15] drm/i915: do more in i915_gpu_coredump_alloc() Jani Nikula
@ 2023-09-28 18:08 ` Jani Nikula
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 11/15] drm/i915/guc: don't look at gpu error guts in guc capture Jani Nikula
                   ` (6 subsequent siblings)
  16 siblings, 0 replies; 22+ messages in thread
From: Jani Nikula @ 2023-09-28 18:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Localize error capture details within i915_gpu_error.c so we can reduce
the interfaces.

FIXME: I don't know what the function should be called.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 .../drm/i915/gt/intel_execlists_submission.c  | 22 +-------
 drivers/gpu/drm/i915/i915_gpu_error.c         | 36 ++++++++++---
 drivers/gpu/drm/i915/i915_gpu_error.h         | 51 ++-----------------
 3 files changed, 36 insertions(+), 73 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
index 7c7e8c3a12e0..aea2fd75f227 100644
--- a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
+++ b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
@@ -2222,31 +2222,13 @@ struct execlists_capture {
 static void execlists_capture_work(struct work_struct *work)
 {
 	struct execlists_capture *cap = container_of(work, typeof(*cap), work);
-	const gfp_t gfp = __GFP_KSWAPD_RECLAIM | __GFP_RETRY_MAYFAIL |
-		__GFP_NOWARN;
-	struct intel_engine_cs *engine = cap->rq->engine;
-	struct intel_gt_coredump *gt = cap->error->gt;
-	struct intel_engine_capture_vma *vma;
-
-	/* Compress all the objects attached to the request, slow! */
-	vma = intel_engine_coredump_add_request(gt->engine, cap->rq, gfp);
-	if (vma) {
-		struct i915_vma_compress *compress =
-			i915_vma_capture_prepare(gt);
-
-		intel_engine_coredump_add_vma(gt->engine, vma, compress);
-		i915_vma_capture_finish(gt, compress);
-	}
 
-	gt->simulated = gt->engine->simulated;
-	cap->error->simulated = gt->simulated;
+	i915_gpu_error_execlist_capture(cap->error, cap->rq);
 
-	/* Publish the error state, and announce it to the world */
-	i915_error_state_store(cap->error);
 	i915_gpu_coredump_put(cap->error);
 
 	/* Return this request and all that depend upon it for signaling */
-	execlists_unhold(engine, cap->rq);
+	execlists_unhold(cap->rq->engine, cap->rq);
 	i915_request_put(cap->rq);
 
 	kfree(cap);
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index e4185f30f07c..837542c94b00 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -1584,7 +1584,7 @@ engine_coredump_add_context(struct intel_engine_coredump *ee,
 	return vma;
 }
 
-struct intel_engine_capture_vma *
+static struct intel_engine_capture_vma *
 intel_engine_coredump_add_request(struct intel_engine_coredump *ee,
 				  struct i915_request *rq,
 				  gfp_t gfp)
@@ -1610,7 +1610,7 @@ intel_engine_coredump_add_request(struct intel_engine_coredump *ee,
 	return vma;
 }
 
-void
+static void
 intel_engine_coredump_add_vma(struct intel_engine_coredump *ee,
 			      struct intel_engine_capture_vma *capture,
 			      struct i915_vma_compress *compress)
@@ -2096,7 +2096,7 @@ intel_gt_coredump_alloc(struct intel_gt *gt, gfp_t gfp, u32 dump_flags)
 	return gc;
 }
 
-struct i915_vma_compress *
+static struct i915_vma_compress *
 i915_vma_capture_prepare(struct intel_gt_coredump *gt)
 {
 	struct i915_vma_compress *compress;
@@ -2113,8 +2113,8 @@ i915_vma_capture_prepare(struct intel_gt_coredump *gt)
 	return compress;
 }
 
-void i915_vma_capture_finish(struct intel_gt_coredump *gt,
-			     struct i915_vma_compress *compress)
+static void i915_vma_capture_finish(struct intel_gt_coredump *gt,
+				    struct i915_vma_compress *compress)
 {
 	if (!compress)
 		return;
@@ -2189,7 +2189,7 @@ i915_gpu_coredump(struct intel_gt *gt, intel_engine_mask_t engine_mask, u32 dump
 	return dump;
 }
 
-void i915_error_state_store(struct i915_gpu_coredump *error)
+static void i915_error_state_store(struct i915_gpu_coredump *error)
 {
 	struct drm_i915_private *i915;
 	static bool warned;
@@ -2244,6 +2244,30 @@ void i915_capture_error_state(struct intel_gt *gt,
 	i915_gpu_coredump_put(error);
 }
 
+void i915_gpu_error_execlist_capture(struct i915_gpu_coredump *error,
+				     struct i915_request *rq)
+{
+	struct intel_gt_coredump *gt = error->gt;
+	struct intel_engine_capture_vma *vma;
+	const gfp_t gfp = __GFP_KSWAPD_RECLAIM | __GFP_RETRY_MAYFAIL | __GFP_NOWARN;
+
+	/* Compress all the objects attached to the request, slow! */
+	vma = intel_engine_coredump_add_request(gt->engine, rq, gfp);
+	if (vma) {
+		struct i915_vma_compress *compress =
+			i915_vma_capture_prepare(gt);
+
+		intel_engine_coredump_add_vma(gt->engine, vma, compress);
+		i915_vma_capture_finish(gt, compress);
+	}
+
+	gt->simulated = gt->engine->simulated;
+	error->simulated = gt->simulated;
+
+	/* Publish the error state, and announce it to the world */
+	i915_error_state_store(error);
+}
+
 static struct i915_gpu_coredump *
 i915_first_error_state(struct drm_i915_private *i915)
 {
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.h b/drivers/gpu/drm/i915/i915_gpu_error.h
index 0439dde95344..c2c15e29e266 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.h
+++ b/drivers/gpu/drm/i915/i915_gpu_error.h
@@ -27,8 +27,6 @@
 #include "i915_scheduler.h"
 
 struct drm_i915_private;
-struct i915_vma_compress;
-struct intel_engine_capture_vma;
 struct intel_overlay_error_state;
 
 struct i915_vma_coredump {
@@ -282,22 +280,8 @@ void i915_capture_error_state(struct intel_gt *gt,
 struct i915_gpu_coredump *
 i915_gpu_coredump_alloc(struct intel_engine_cs *engine, gfp_t gfp);
 
-struct intel_engine_capture_vma *
-intel_engine_coredump_add_request(struct intel_engine_coredump *ee,
-				  struct i915_request *rq,
-				  gfp_t gfp);
-
-void intel_engine_coredump_add_vma(struct intel_engine_coredump *ee,
-				   struct intel_engine_capture_vma *capture,
-				   struct i915_vma_compress *compress);
-
-struct i915_vma_compress *
-i915_vma_capture_prepare(struct intel_gt_coredump *gt);
-
-void i915_vma_capture_finish(struct intel_gt_coredump *gt,
-			     struct i915_vma_compress *compress);
-
-void i915_error_state_store(struct i915_gpu_coredump *error);
+void i915_gpu_error_execlist_capture(struct i915_gpu_coredump *error,
+				     struct i915_request *rq);
 
 ssize_t
 i915_gpu_coredump_copy_to_buffer(struct i915_gpu_coredump *error,
@@ -331,35 +315,8 @@ i915_gpu_coredump_alloc(struct drm_i915_private *i915, gfp_t gfp)
 	return NULL;
 }
 
-static inline struct intel_engine_capture_vma *
-intel_engine_coredump_add_request(struct intel_engine_coredump *ee,
-				  struct i915_request *rq,
-				  gfp_t gfp)
-{
-	return NULL;
-}
-
-static inline void
-intel_engine_coredump_add_vma(struct intel_engine_coredump *ee,
-			      struct intel_engine_capture_vma *capture,
-			      struct i915_vma_compress *compress)
-{
-}
-
-static inline struct i915_vma_compress *
-i915_vma_capture_prepare(struct intel_gt_coredump *gt)
-{
-	return NULL;
-}
-
-static inline void
-i915_vma_capture_finish(struct intel_gt_coredump *gt,
-			struct i915_vma_compress *compress)
-{
-}
-
-static inline void
-i915_error_state_store(struct i915_gpu_coredump *error)
+static inline void i915_gpu_error_execlist_capture(struct i915_gpu_coredump *error,
+						   struct i915_request *rq)
 {
 }
 
-- 
2.39.2


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

* [Intel-gfx] [PATCH 11/15] drm/i915/guc: don't look at gpu error guts in guc capture
  2023-09-28 18:08 [Intel-gfx] [PATCH 00/15] drm/i915: i915_drv.h and i915_gpu_error.h include diet Jani Nikula
                   ` (9 preceding siblings ...)
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 10/15] drm/i915: move execlist capture to i915_gpu_error.c Jani Nikula
@ 2023-09-28 18:08 ` Jani Nikula
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 12/15] drm/i915: hide gpu error structures inside i915_gpu_error.c Jani Nikula
                   ` (5 subsequent siblings)
  16 siblings, 0 replies; 22+ messages in thread
From: Jani Nikula @ 2023-09-28 18:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

The new interfaces aren't pretty, but it clarifies the separation
between intel_guc_capture.c and i915_gpu_error.c. The former should not
modify stuff internal to the latter.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 .../gpu/drm/i915/gt/uc/intel_guc_capture.c    | 63 ++++++++-----------
 .../gpu/drm/i915/gt/uc/intel_guc_capture.h    | 20 ++++--
 drivers/gpu/drm/i915/i915_gpu_error.c         | 24 +++++--
 3 files changed, 57 insertions(+), 50 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
index 331cec07c125..cdbe7b5c997f 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
@@ -1415,7 +1415,8 @@ guc_capture_reg_to_str(const struct intel_guc *guc, u32 owner, u32 type,
 	} while (0)
 
 int intel_guc_capture_print_engine_node(struct drm_i915_error_state_buf *ebuf,
-					const struct intel_engine_coredump *ee)
+					struct __guc_capture_parsed_output *node,
+					struct intel_guc *guc)
 {
 	const char *grptype[GUC_STATE_CAPTURE_GROUP_TYPE_MAX] = {
 		"full-capture",
@@ -1426,31 +1427,14 @@ int intel_guc_capture_print_engine_node(struct drm_i915_error_state_buf *ebuf,
 		"Engine-Class",
 		"Engine-Instance"
 	};
-	struct intel_guc_state_capture *cap;
-	struct __guc_capture_parsed_output *node;
 	struct intel_engine_cs *eng;
 	struct guc_mmio_reg *regs;
-	struct intel_guc *guc;
 	const char *str;
 	int numregs, i, j;
 	u32 is_ext;
 
-	if (!ebuf || !ee)
+	if (!ebuf)
 		return -EINVAL;
-	cap = ee->guc_capture;
-	if (!cap || !ee->engine)
-		return -ENODEV;
-
-	guc = &ee->engine->gt->uc.guc;
-
-	i915_error_printf(ebuf, "global --- GuC Error Capture on %s command stream:\n",
-			  ee->engine->name);
-
-	node = ee->guc_capture_node;
-	if (!node) {
-		i915_error_printf(ebuf, "  No matching ee-node\n");
-		return 0;
-	}
 
 	i915_error_printf(ebuf, "Coverage:  %s\n", grptype[node->is_partial]);
 
@@ -1502,7 +1486,8 @@ int intel_guc_capture_print_engine_node(struct drm_i915_error_state_buf *ebuf,
 
 #endif //CONFIG_DRM_I915_CAPTURE_ERROR
 
-static void guc_capture_find_ecode(struct intel_engine_coredump *ee)
+static void guc_capture_find_ecode(struct __guc_capture_parsed_output *guc_capture_node,
+				   u32 *ipehr, u32 *instdone)
 {
 	struct gcap_reg_list_info *reginfo;
 	struct guc_mmio_reg *regs;
@@ -1510,27 +1495,26 @@ static void guc_capture_find_ecode(struct intel_engine_coredump *ee)
 	i915_reg_t reg_instdone = RING_INSTDONE(0);
 	int i;
 
-	if (!ee->guc_capture_node)
+	if (!guc_capture_node)
 		return;
 
-	reginfo = ee->guc_capture_node->reginfo + GUC_CAPTURE_LIST_TYPE_ENGINE_INSTANCE;
+	reginfo = guc_capture_node->reginfo + GUC_CAPTURE_LIST_TYPE_ENGINE_INSTANCE;
 	regs = reginfo->regs;
 	for (i = 0; i < reginfo->num_regs; i++) {
 		if (regs[i].offset == reg_ipehr.reg)
-			ee->ipehr = regs[i].value;
+			*ipehr = regs[i].value;
 		else if (regs[i].offset == reg_instdone.reg)
-			ee->instdone.instdone = regs[i].value;
+			*instdone = regs[i].value;
 	}
 }
 
-void intel_guc_capture_free_node(struct intel_engine_coredump *ee)
+void intel_guc_capture_free_node(struct intel_guc_state_capture *guc_capture,
+				 struct __guc_capture_parsed_output *guc_capture_node)
 {
-	if (!ee || !ee->guc_capture_node)
+	if (!guc_capture_node)
 		return;
 
-	guc_capture_add_node_to_cachelist(ee->guc_capture, ee->guc_capture_node);
-	ee->guc_capture = NULL;
-	ee->guc_capture_node = NULL;
+	guc_capture_add_node_to_cachelist(guc_capture, guc_capture_node);
 }
 
 bool intel_guc_capture_is_matching_engine(struct intel_gt *gt,
@@ -1564,20 +1548,23 @@ bool intel_guc_capture_is_matching_engine(struct intel_gt *gt,
 }
 
 void intel_guc_capture_get_matching_node(struct intel_gt *gt,
-					 struct intel_engine_coredump *ee,
-					 struct intel_context *ce)
+					 struct intel_context *ce,
+					 unsigned int guc_id,
+					 struct intel_guc_state_capture **guc_capture,
+					 struct __guc_capture_parsed_output **guc_capture_node,
+					 u32 *ipehr, u32 *instdone)
 {
 	struct __guc_capture_parsed_output *n, *ntmp;
 	struct intel_guc *guc;
 
-	if (!gt || !ee || !ce)
+	if (!gt || !ce)
 		return;
 
 	guc = &gt->uc.guc;
 	if (!guc->capture)
 		return;
 
-	GEM_BUG_ON(ee->guc_capture_node);
+	GEM_BUG_ON(*guc_capture_node);
 
 	/*
 	 * Look for a matching GuC reported error capture node from
@@ -1585,14 +1572,14 @@ void intel_guc_capture_get_matching_node(struct intel_gt *gt,
 	 * identification.
 	 */
 	list_for_each_entry_safe(n, ntmp, &guc->capture->outlist, link) {
-		if (n->eng_inst == GUC_ID_TO_ENGINE_INSTANCE(ee->engine->guc_id) &&
-		    n->eng_class == GUC_ID_TO_ENGINE_CLASS(ee->engine->guc_id) &&
+		if (n->eng_inst == GUC_ID_TO_ENGINE_INSTANCE(guc_id) &&
+		    n->eng_class == GUC_ID_TO_ENGINE_CLASS(guc_id) &&
 		    n->guc_id == ce->guc_id.id &&
 		    (n->lrca & CTX_GTT_ADDRESS_MASK) == (ce->lrc.lrca & CTX_GTT_ADDRESS_MASK)) {
 			list_del(&n->link);
-			ee->guc_capture_node = n;
-			ee->guc_capture = guc->capture;
-			guc_capture_find_ecode(ee);
+			*guc_capture_node = n;
+			*guc_capture = guc->capture;
+			guc_capture_find_ecode(n, ipehr, instdone);
 			return;
 		}
 	}
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_capture.h b/drivers/gpu/drm/i915/gt/uc/intel_guc_capture.h
index 302256d45431..b5862a2672f3 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_capture.h
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_capture.h
@@ -8,19 +8,27 @@
 
 #include <linux/types.h>
 
+struct __guc_capture_parsed_output;
 struct drm_i915_error_state_buf;
 struct guc_gt_system_info;
+struct intel_context;
 struct intel_engine_coredump;
 struct intel_engine_cs;
-struct intel_context;
 struct intel_gt;
 struct intel_guc;
+struct intel_guc_state_capture;
 
-void intel_guc_capture_free_node(struct intel_engine_coredump *ee);
-int intel_guc_capture_print_engine_node(struct drm_i915_error_state_buf *m,
-					const struct intel_engine_coredump *ee);
-void intel_guc_capture_get_matching_node(struct intel_gt *gt, struct intel_engine_coredump *ee,
-					 struct intel_context *ce);
+void intel_guc_capture_free_node(struct intel_guc_state_capture *guc_capture,
+				 struct __guc_capture_parsed_output *guc_capture_node);
+int intel_guc_capture_print_engine_node(struct drm_i915_error_state_buf *ebuf,
+					struct __guc_capture_parsed_output *node,
+					struct intel_guc *guc);
+void intel_guc_capture_get_matching_node(struct intel_gt *gt,
+					 struct intel_context *ce,
+					 unsigned int guc_id,
+					 struct intel_guc_state_capture **guc_capture,
+					 struct __guc_capture_parsed_output **guc_capture_node,
+					 u32 *ipehr, u32 *instdone);
 bool intel_guc_capture_is_matching_engine(struct intel_gt *gt, struct intel_context *ce,
 					  struct intel_engine_cs *engine);
 void intel_guc_capture_process(struct intel_guc *guc);
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index 837542c94b00..e73b53b384a5 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -815,11 +815,16 @@ static void err_print_gt_engines(struct drm_i915_error_state_buf *m,
 		const struct i915_vma_coredump *vma;
 
 		if (gt->uc && gt->uc->guc.is_guc_capture) {
-			if (ee->guc_capture_node)
-				intel_guc_capture_print_engine_node(m, ee);
-			else
+			if (ee->guc_capture && ee->guc_capture_node && ee->engine) {
+				i915_error_printf(m, "global --- GuC Error Capture on %s command stream:\n",
+						  ee->engine->name);
+
+				intel_guc_capture_print_engine_node(m, ee->guc_capture_node,
+								    &ee->engine->gt->uc.guc);
+			} else {
 				err_printf(m, "  Missing GuC capture node for %s\n",
 					   ee->engine->name);
+			}
 		} else {
 			error_print_engine(m, ee);
 		}
@@ -1053,7 +1058,8 @@ static void cleanup_gt(struct intel_gt_coredump *gt)
 		gt->engine = ee->next;
 
 		i915_vma_coredump_free(ee->vma);
-		intel_guc_capture_free_node(ee);
+		intel_guc_capture_free_node(ee->guc_capture,
+					    ee->guc_capture_node);
 		kfree(ee);
 	}
 
@@ -1669,7 +1675,12 @@ capture_engine(struct intel_engine_cs *engine,
 		intel_engine_coredump_add_vma(ee, capture, compress);
 
 		if (dump_flags & CORE_DUMP_FLAG_IS_GUC_CAPTURE)
-			intel_guc_capture_get_matching_node(engine->gt, ee, ce);
+			intel_guc_capture_get_matching_node(engine->gt, ce,
+							    ee->engine->guc_id,
+							    &ee->guc_capture,
+							    &ee->guc_capture_node,
+							    &ee->ipehr,
+							    &ee->instdone.instdone);
 	} else {
 		kfree(ee);
 		ee = NULL;
@@ -1702,7 +1713,8 @@ gt_record_engines(struct intel_gt_coredump *gt,
 		gt->simulated |= ee->simulated;
 		if (ee->simulated) {
 			if (dump_flags & CORE_DUMP_FLAG_IS_GUC_CAPTURE)
-				intel_guc_capture_free_node(ee);
+				intel_guc_capture_free_node(ee->guc_capture,
+							    ee->guc_capture_node);
 			kfree(ee);
 			continue;
 		}
-- 
2.39.2


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

* [Intel-gfx] [PATCH 12/15] drm/i915: hide gpu error structures inside i915_gpu_error.c
  2023-09-28 18:08 [Intel-gfx] [PATCH 00/15] drm/i915: i915_drv.h and i915_gpu_error.h include diet Jani Nikula
                   ` (10 preceding siblings ...)
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 11/15] drm/i915/guc: don't look at gpu error guts in guc capture Jani Nikula
@ 2023-09-28 18:08 ` Jani Nikula
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 13/15] drm/i915: stop including gt/intel_engine.h and gt/intel_gt_types.h from i915_drv.h Jani Nikula
                   ` (4 subsequent siblings)
  16 siblings, 0 replies; 22+ messages in thread
From: Jani Nikula @ 2023-09-28 18:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

With the interfaces cleaned up, we can move the error structs inside
i915_gpu_error.c, and drop a number of includes from the header.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_gpu_error.c | 201 +++++++++++++++++++++++
 drivers/gpu/drm/i915/i915_gpu_error.h | 222 +-------------------------
 2 files changed, 205 insertions(+), 218 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index e73b53b384a5..136c494b67e8 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -63,6 +63,207 @@
 #define ALLOW_FAIL (__GFP_KSWAPD_RECLAIM | __GFP_RETRY_MAYFAIL | __GFP_NOWARN)
 #define ATOMIC_MAYFAIL (GFP_ATOMIC | __GFP_NOWARN)
 
+struct i915_vma_coredump {
+	struct i915_vma_coredump *next;
+
+	char name[20];
+
+	u64 gtt_offset;
+	u64 gtt_size;
+	u32 gtt_page_sizes;
+
+	int unused;
+	struct list_head page_list;
+};
+
+struct i915_request_coredump {
+	unsigned long flags;
+	pid_t pid;
+	u32 context;
+	u32 seqno;
+	u32 head;
+	u32 tail;
+	struct i915_sched_attr sched_attr;
+};
+
+struct __guc_capture_parsed_output;
+
+struct intel_engine_coredump {
+	const struct intel_engine_cs *engine;
+
+	bool hung;
+	bool simulated;
+	u32 reset_count;
+
+	/* position of active request inside the ring */
+	u32 rq_head, rq_post, rq_tail;
+
+	/* Register state */
+	u32 ccid;
+	u32 start;
+	u32 tail;
+	u32 head;
+	u32 ctl;
+	u32 mode;
+	u32 hws;
+	u32 ipeir;
+	u32 ipehr;
+	u32 esr;
+	u32 bbstate;
+	u32 instpm;
+	u32 instps;
+	u64 bbaddr;
+	u64 acthd;
+	u32 fault_reg;
+	u64 faddr;
+	u32 rc_psmi; /* sleep state */
+	u32 nopid;
+	u32 excc;
+	u32 cmd_cctl;
+	u32 cscmdop;
+	u32 ctx_sr_ctl;
+	u32 dma_faddr_hi;
+	u32 dma_faddr_lo;
+	struct intel_instdone instdone;
+
+	/* GuC matched capture-lists info */
+	struct intel_guc_state_capture *guc_capture;
+	struct __guc_capture_parsed_output *guc_capture_node;
+
+	struct i915_gem_context_coredump {
+		char comm[TASK_COMM_LEN];
+
+		u64 total_runtime;
+		u64 avg_runtime;
+
+		pid_t pid;
+		int active;
+		int guilty;
+		struct i915_sched_attr sched_attr;
+		u32 hwsp_seqno;
+	} context;
+
+	struct i915_vma_coredump *vma;
+
+	struct i915_request_coredump execlist[EXECLIST_MAX_PORTS];
+	unsigned int num_ports;
+
+	struct {
+		u32 gfx_mode;
+		union {
+			u64 pdp[4];
+			u32 pp_dir_base;
+		};
+	} vm_info;
+
+	struct intel_engine_coredump *next;
+};
+
+struct intel_ctb_coredump {
+	u32 raw_head, head;
+	u32 raw_tail, tail;
+	u32 raw_status;
+	u32 desc_offset;
+	u32 cmds_offset;
+	u32 size;
+};
+
+struct intel_gt_coredump {
+	const struct intel_gt *_gt;
+	bool awake;
+	bool simulated;
+
+	struct intel_gt_info info;
+
+	/* Generic register state */
+	u32 eir;
+	u32 pgtbl_er;
+	u32 ier;
+	u32 gtier[6], ngtier;
+	u32 forcewake;
+	u32 error; /* gen6+ */
+	u32 err_int; /* gen7 */
+	u32 fault_data0; /* gen8, gen9 */
+	u32 fault_data1; /* gen8, gen9 */
+	u32 done_reg;
+	u32 gac_eco;
+	u32 gam_ecochk;
+	u32 gab_ctl;
+	u32 gfx_mode;
+	u32 gtt_cache;
+	u32 aux_err; /* gen12 */
+	u32 gam_done; /* gen12 */
+	u32 clock_frequency;
+	u32 clock_period_ns;
+
+	/* Display related */
+	u32 derrmr;
+	u32 sfc_done[I915_MAX_SFC]; /* gen12 */
+
+	u32 nfence;
+	u64 fence[I915_MAX_NUM_FENCES];
+
+	struct intel_engine_coredump *engine;
+
+	struct intel_uc_coredump {
+		struct intel_uc_fw guc_fw;
+		struct intel_uc_fw huc_fw;
+		struct guc_info {
+			struct intel_ctb_coredump ctb[2];
+			struct i915_vma_coredump *vma_ctb;
+			struct i915_vma_coredump *vma_log;
+			u32 timestamp;
+			u16 last_fence;
+			bool is_guc_capture;
+		} guc;
+	} *uc;
+
+	struct intel_gt_coredump *next;
+};
+
+struct i915_gpu_coredump {
+	struct kref ref;
+	ktime_t time;
+	ktime_t boottime;
+	ktime_t uptime;
+	unsigned long capture;
+
+	struct drm_i915_private *i915;
+
+	struct intel_gt_coredump *gt;
+
+	char error_msg[128];
+	bool simulated;
+	bool wakelock;
+	bool suspended;
+	int iommu;
+	u32 reset_count;
+	u32 suspend_count;
+
+	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;
+
+	struct intel_overlay_error_state *overlay;
+
+	struct scatterlist *sgl, *fit;
+};
+
+struct drm_i915_error_state_buf {
+	struct drm_i915_private *i915;
+	struct scatterlist *sgl, *cur, *end;
+
+	char *buf;
+	size_t bytes;
+	size_t size;
+	loff_t iter;
+
+	int err;
+};
+
 struct intel_gt_coredump *
 intel_gt_coredump_alloc(struct intel_gt *gt, gfp_t gfp, u32 dump_flags);
 
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.h b/drivers/gpu/drm/i915/i915_gpu_error.h
index c2c15e29e266..5a2d0f506385 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.h
+++ b/drivers/gpu/drm/i915/i915_gpu_error.h
@@ -8,215 +8,13 @@
 #define _I915_GPU_ERROR_H_
 
 #include <linux/atomic.h>
-#include <linux/kref.h>
-#include <linux/ktime.h>
-#include <linux/sched.h>
+#include <linux/types.h>
 
-#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"
-
-#include "intel_device_info.h"
-
-#include "i915_gem.h"
-#include "i915_gem_gtt.h"
-#include "i915_params.h"
-#include "i915_scheduler.h"
+#include "gt/intel_engine_types.h"
 
+struct drm_i915_error_state_buf;
 struct drm_i915_private;
-struct intel_overlay_error_state;
-
-struct i915_vma_coredump {
-	struct i915_vma_coredump *next;
-
-	char name[20];
-
-	u64 gtt_offset;
-	u64 gtt_size;
-	u32 gtt_page_sizes;
-
-	int unused;
-	struct list_head page_list;
-};
-
-struct i915_request_coredump {
-	unsigned long flags;
-	pid_t pid;
-	u32 context;
-	u32 seqno;
-	u32 head;
-	u32 tail;
-	struct i915_sched_attr sched_attr;
-};
-
-struct __guc_capture_parsed_output;
-
-struct intel_engine_coredump {
-	const struct intel_engine_cs *engine;
-
-	bool hung;
-	bool simulated;
-	u32 reset_count;
-
-	/* position of active request inside the ring */
-	u32 rq_head, rq_post, rq_tail;
-
-	/* Register state */
-	u32 ccid;
-	u32 start;
-	u32 tail;
-	u32 head;
-	u32 ctl;
-	u32 mode;
-	u32 hws;
-	u32 ipeir;
-	u32 ipehr;
-	u32 esr;
-	u32 bbstate;
-	u32 instpm;
-	u32 instps;
-	u64 bbaddr;
-	u64 acthd;
-	u32 fault_reg;
-	u64 faddr;
-	u32 rc_psmi; /* sleep state */
-	u32 nopid;
-	u32 excc;
-	u32 cmd_cctl;
-	u32 cscmdop;
-	u32 ctx_sr_ctl;
-	u32 dma_faddr_hi;
-	u32 dma_faddr_lo;
-	struct intel_instdone instdone;
-
-	/* GuC matched capture-lists info */
-	struct intel_guc_state_capture *guc_capture;
-	struct __guc_capture_parsed_output *guc_capture_node;
-
-	struct i915_gem_context_coredump {
-		char comm[TASK_COMM_LEN];
-
-		u64 total_runtime;
-		u64 avg_runtime;
-
-		pid_t pid;
-		int active;
-		int guilty;
-		struct i915_sched_attr sched_attr;
-		u32 hwsp_seqno;
-	} context;
-
-	struct i915_vma_coredump *vma;
-
-	struct i915_request_coredump execlist[EXECLIST_MAX_PORTS];
-	unsigned int num_ports;
-
-	struct {
-		u32 gfx_mode;
-		union {
-			u64 pdp[4];
-			u32 pp_dir_base;
-		};
-	} vm_info;
-
-	struct intel_engine_coredump *next;
-};
-
-struct intel_ctb_coredump {
-	u32 raw_head, head;
-	u32 raw_tail, tail;
-	u32 raw_status;
-	u32 desc_offset;
-	u32 cmds_offset;
-	u32 size;
-};
-
-struct intel_gt_coredump {
-	const struct intel_gt *_gt;
-	bool awake;
-	bool simulated;
-
-	struct intel_gt_info info;
-
-	/* Generic register state */
-	u32 eir;
-	u32 pgtbl_er;
-	u32 ier;
-	u32 gtier[6], ngtier;
-	u32 forcewake;
-	u32 error; /* gen6+ */
-	u32 err_int; /* gen7 */
-	u32 fault_data0; /* gen8, gen9 */
-	u32 fault_data1; /* gen8, gen9 */
-	u32 done_reg;
-	u32 gac_eco;
-	u32 gam_ecochk;
-	u32 gab_ctl;
-	u32 gfx_mode;
-	u32 gtt_cache;
-	u32 aux_err; /* gen12 */
-	u32 gam_done; /* gen12 */
-	u32 clock_frequency;
-	u32 clock_period_ns;
-
-	/* Display related */
-	u32 derrmr;
-	u32 sfc_done[I915_MAX_SFC]; /* gen12 */
-
-	u32 nfence;
-	u64 fence[I915_MAX_NUM_FENCES];
-
-	struct intel_engine_coredump *engine;
-
-	struct intel_uc_coredump {
-		struct intel_uc_fw guc_fw;
-		struct intel_uc_fw huc_fw;
-		struct guc_info {
-			struct intel_ctb_coredump ctb[2];
-			struct i915_vma_coredump *vma_ctb;
-			struct i915_vma_coredump *vma_log;
-			u32 timestamp;
-			u16 last_fence;
-			bool is_guc_capture;
-		} guc;
-	} *uc;
-
-	struct intel_gt_coredump *next;
-};
-
-struct i915_gpu_coredump {
-	struct kref ref;
-	ktime_t time;
-	ktime_t boottime;
-	ktime_t uptime;
-	unsigned long capture;
-
-	struct drm_i915_private *i915;
-
-	struct intel_gt_coredump *gt;
-
-	char error_msg[128];
-	bool simulated;
-	bool wakelock;
-	bool suspended;
-	int iommu;
-	u32 reset_count;
-	u32 suspend_count;
-
-	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;
-
-	struct intel_overlay_error_state *overlay;
-
-	struct scatterlist *sgl, *fit;
-};
+struct i915_gpu_coredump;
 
 struct i915_gpu_error {
 	/* For reset and error_state handling. */
@@ -233,18 +31,6 @@ struct i915_gpu_error {
 	atomic_t reset_engine_count[I915_NUM_ENGINES];
 };
 
-struct drm_i915_error_state_buf {
-	struct drm_i915_private *i915;
-	struct scatterlist *sgl, *cur, *end;
-
-	char *buf;
-	size_t bytes;
-	size_t size;
-	loff_t iter;
-
-	int err;
-};
-
 static inline u32 i915_reset_count(struct i915_gpu_error *error)
 {
 	return atomic_read(&error->reset_count);
-- 
2.39.2


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

* [Intel-gfx] [PATCH 13/15] drm/i915: stop including gt/intel_engine.h and gt/intel_gt_types.h from i915_drv.h
  2023-09-28 18:08 [Intel-gfx] [PATCH 00/15] drm/i915: i915_drv.h and i915_gpu_error.h include diet Jani Nikula
                   ` (11 preceding siblings ...)
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 12/15] drm/i915: hide gpu error structures inside i915_gpu_error.c Jani Nikula
@ 2023-09-28 18:08 ` Jani Nikula
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 14/15] drm/i915: stop including gt/uc/intel_uc.h " Jani Nikula
                   ` (3 subsequent siblings)
  16 siblings, 0 replies; 22+ messages in thread
From: Jani Nikula @ 2023-09-28 18:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

i915_drv.h no longer needs the headers, and they are not included
indirectly either. Removing them reveals a ton of places that implicitly
depend on the includes. Make them explicit.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/display/intel_display_reset.c       | 1 +
 drivers/gpu/drm/i915/display/intel_display_rps.c         | 1 +
 drivers/gpu/drm/i915/display/intel_fbdev.c               | 1 +
 drivers/gpu/drm/i915/display/intel_plane_initial.c       | 1 +
 drivers/gpu/drm/i915/gem/i915_gem_tiling.c               | 1 +
 drivers/gpu/drm/i915/gem/i915_gem_userptr.c              | 1 +
 drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c             | 3 ++-
 drivers/gpu/drm/i915/gt/intel_gt_requests.c              | 1 +
 drivers/gpu/drm/i915/gt/intel_rps.c                      | 1 +
 drivers/gpu/drm/i915/gt/intel_sseu.c                     | 1 +
 drivers/gpu/drm/i915/gt/intel_sseu_debugfs.c             | 2 +-
 drivers/gpu/drm/i915/gt/intel_wopcm.c                    | 3 ++-
 drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.c                | 5 +++--
 drivers/gpu/drm/i915/gvt/execlist.c                      | 3 ++-
 drivers/gpu/drm/i915/gvt/gvt.h                           | 1 +
 drivers/gpu/drm/i915/i915_drv.h                          | 2 --
 drivers/gpu/drm/i915/i915_getparam.c                     | 1 +
 drivers/gpu/drm/i915/i915_mm.c                           | 4 ++--
 drivers/gpu/drm/i915/i915_pci.c                          | 3 ++-
 drivers/gpu/drm/i915/i915_query.c                        | 6 ++++--
 drivers/gpu/drm/i915/intel_gvt_mmio_table.c              | 1 +
 drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c             | 1 +
 drivers/gpu/drm/i915/pxp/intel_pxp_pm.c                  | 1 +
 drivers/gpu/drm/i915/pxp/intel_pxp_session.c             | 3 ++-
 drivers/gpu/drm/i915/selftests/intel_scheduler_helpers.c | 2 +-
 25 files changed, 35 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_reset.c b/drivers/gpu/drm/i915/display/intel_display_reset.c
index 17178d5d7788..107f0d398df6 100644
--- a/drivers/gpu/drm/i915/display/intel_display_reset.c
+++ b/drivers/gpu/drm/i915/display/intel_display_reset.c
@@ -5,6 +5,7 @@
 
 #include <drm/drm_atomic_helper.h>
 
+#include "gt/intel_gt_types.h"
 #include "i915_drv.h"
 #include "intel_clock_gating.h"
 #include "intel_display_driver.h"
diff --git a/drivers/gpu/drm/i915/display/intel_display_rps.c b/drivers/gpu/drm/i915/display/intel_display_rps.c
index 918d0327169a..92b19adf0939 100644
--- a/drivers/gpu/drm/i915/display/intel_display_rps.c
+++ b/drivers/gpu/drm/i915/display/intel_display_rps.c
@@ -6,6 +6,7 @@
 #include <drm/drm_crtc.h>
 #include <drm/drm_vblank.h>
 
+#include "gt/intel_gt_types.h"
 #include "gt/intel_rps.h"
 #include "i915_drv.h"
 #include "intel_display_rps.h"
diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c b/drivers/gpu/drm/i915/display/intel_fbdev.c
index 31d0d695d567..b246ff2afc7a 100644
--- a/drivers/gpu/drm/i915/display/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/display/intel_fbdev.c
@@ -45,6 +45,7 @@
 
 #include "gem/i915_gem_lmem.h"
 #include "gem/i915_gem_mman.h"
+#include "gt/intel_gt_types.h"
 
 #include "i915_drv.h"
 #include "intel_display_types.h"
diff --git a/drivers/gpu/drm/i915/display/intel_plane_initial.c b/drivers/gpu/drm/i915/display/intel_plane_initial.c
index 451a642e106e..83a355cb4218 100644
--- a/drivers/gpu/drm/i915/display/intel_plane_initial.c
+++ b/drivers/gpu/drm/i915/display/intel_plane_initial.c
@@ -4,6 +4,7 @@
  */
 
 #include "gem/i915_gem_region.h"
+#include "gt/intel_gt_types.h"
 #include "i915_drv.h"
 #include "intel_atomic_plane.h"
 #include "intel_display.h"
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_tiling.c b/drivers/gpu/drm/i915/gem/i915_gem_tiling.c
index a049ca0b7980..5ca651623d83 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_tiling.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_tiling.c
@@ -7,6 +7,7 @@
 #include <linux/string.h>
 #include <linux/bitops.h>
 
+#include "gt/intel_gt_types.h"
 #include "i915_drv.h"
 #include "i915_gem.h"
 #include "i915_gem_ioctls.h"
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_userptr.c b/drivers/gpu/drm/i915/gem/i915_gem_userptr.c
index 1d3ebdf4069b..69bff60e44ee 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_userptr.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_userptr.c
@@ -39,6 +39,7 @@
 #include <linux/swap.h>
 #include <linux/sched/mm.h>
 
+#include "gt/intel_gt_types.h"
 #include "i915_drv.h"
 #include "i915_gem_ioctls.h"
 #include "i915_gem_object.h"
diff --git a/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c b/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
index 40371b8a9bbb..8c036baaea3c 100644
--- a/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
+++ b/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
@@ -7,11 +7,12 @@
 
 #include "display/intel_display.h"
 #include "i915_drv.h"
+#include "i915_pvinfo.h"
 #include "i915_reg.h"
 #include "i915_scatterlist.h"
-#include "i915_pvinfo.h"
 #include "i915_vgpu.h"
 #include "intel_gt_regs.h"
+#include "intel_gt_types.h"
 #include "intel_mchbar_regs.h"
 
 /**
diff --git a/drivers/gpu/drm/i915/gt/intel_gt_requests.c b/drivers/gpu/drm/i915/gt/intel_gt_requests.c
index d1a382dfaa1d..c681a7a04315 100644
--- a/drivers/gpu/drm/i915/gt/intel_gt_requests.c
+++ b/drivers/gpu/drm/i915/gt/intel_gt_requests.c
@@ -7,6 +7,7 @@
 
 #include "i915_drv.h" /* for_each_engine() */
 #include "i915_request.h"
+#include "intel_engine.h"
 #include "intel_engine_heartbeat.h"
 #include "intel_execlists_submission.h"
 #include "intel_gt.h"
diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c b/drivers/gpu/drm/i915/gt/intel_rps.c
index 4feef874e6d6..b53118495cb6 100644
--- a/drivers/gpu/drm/i915/gt/intel_rps.c
+++ b/drivers/gpu/drm/i915/gt/intel_rps.c
@@ -13,6 +13,7 @@
 #include "i915_irq.h"
 #include "i915_reg.h"
 #include "intel_breadcrumbs.h"
+#include "intel_engine.h"
 #include "intel_gt.h"
 #include "intel_gt_clock_utils.h"
 #include "intel_gt_irq.h"
diff --git a/drivers/gpu/drm/i915/gt/intel_sseu.c b/drivers/gpu/drm/i915/gt/intel_sseu.c
index f602895f6d0d..13a2749cfb45 100644
--- a/drivers/gpu/drm/i915/gt/intel_sseu.c
+++ b/drivers/gpu/drm/i915/gt/intel_sseu.c
@@ -9,6 +9,7 @@
 #include "i915_perf_types.h"
 #include "intel_engine_regs.h"
 #include "intel_gt_regs.h"
+#include "intel_gt_types.h"
 #include "intel_sseu.h"
 
 void intel_sseu_set_info(struct sseu_dev_info *sseu, u8 max_slices,
diff --git a/drivers/gpu/drm/i915/gt/intel_sseu_debugfs.c b/drivers/gpu/drm/i915/gt/intel_sseu_debugfs.c
index c2ee5e1826b5..8b54bad0f5ae 100644
--- a/drivers/gpu/drm/i915/gt/intel_sseu_debugfs.c
+++ b/drivers/gpu/drm/i915/gt/intel_sseu_debugfs.c
@@ -1,5 +1,4 @@
 // SPDX-License-Identifier: MIT
-
 /*
  * Copyright © 2020 Intel Corporation
  */
@@ -10,6 +9,7 @@
 #include "i915_drv.h"
 #include "intel_gt_debugfs.h"
 #include "intel_gt_regs.h"
+#include "intel_gt_types.h"
 #include "intel_sseu_debugfs.h"
 
 static void cherryview_sseu_device_status(struct intel_gt *gt,
diff --git a/drivers/gpu/drm/i915/gt/intel_wopcm.c b/drivers/gpu/drm/i915/gt/intel_wopcm.c
index 7ebbcc191c2d..fcad35df0671 100644
--- a/drivers/gpu/drm/i915/gt/intel_wopcm.c
+++ b/drivers/gpu/drm/i915/gt/intel_wopcm.c
@@ -3,8 +3,9 @@
  * Copyright © 2017-2019 Intel Corporation
  */
 
-#include "intel_wopcm.h"
 #include "i915_drv.h"
+#include "intel_gt_types.h"
+#include "intel_wopcm.h"
 
 /**
  * DOC: WOPCM Layout
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 0d3b22a74365..cf0ef467542d 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.c
@@ -5,13 +5,14 @@
 
 #include <linux/types.h>
 
+#include "gt/intel_engine.h"
 #include "gt/intel_gt.h"
 #include "gt/intel_gt_print.h"
+#include "i915_drv.h"
+#include "i915_reg.h"
 #include "intel_gsc_fw.h"
 #include "intel_gsc_proxy.h"
 #include "intel_gsc_uc.h"
-#include "i915_drv.h"
-#include "i915_reg.h"
 
 static void gsc_work(struct work_struct *work)
 {
diff --git a/drivers/gpu/drm/i915/gvt/execlist.c b/drivers/gpu/drm/i915/gvt/execlist.c
index 274c6ef42400..ad392c4f4e2a 100644
--- a/drivers/gpu/drm/i915/gvt/execlist.c
+++ b/drivers/gpu/drm/i915/gvt/execlist.c
@@ -32,8 +32,9 @@
  *
  */
 
-#include "i915_drv.h"
+#include "gt/intel_engine.h"
 #include "gvt.h"
+#include "i915_drv.h"
 
 #define _EL_OFFSET_STATUS       0x234
 #define _EL_OFFSET_STATUS_BUF   0x370
diff --git a/drivers/gpu/drm/i915/gvt/gvt.h b/drivers/gpu/drm/i915/gvt/gvt.h
index 53a0a42a50db..489f868736e0 100644
--- a/drivers/gpu/drm/i915/gvt/gvt.h
+++ b/drivers/gpu/drm/i915/gvt/gvt.h
@@ -39,6 +39,7 @@
 
 #include <asm/kvm_page_track.h>
 
+#include "gt/intel_gt_types.h"
 #include "i915_drv.h"
 #include "intel_gvt.h"
 
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index d04a9c32c44f..cd4d55f5f8de 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -43,8 +43,6 @@
 #include "gem/i915_gem_shrinker.h"
 #include "gem/i915_gem_stolen.h"
 
-#include "gt/intel_engine.h"
-#include "gt/intel_gt_types.h"
 #include "gt/intel_region_lmem.h"
 #include "gt/intel_workarounds.h"
 #include "gt/uc/intel_uc.h"
diff --git a/drivers/gpu/drm/i915/i915_getparam.c b/drivers/gpu/drm/i915/i915_getparam.c
index 5c3fec63cb4c..a1944382377a 100644
--- a/drivers/gpu/drm/i915/i915_getparam.c
+++ b/drivers/gpu/drm/i915/i915_getparam.c
@@ -4,6 +4,7 @@
 
 #include "gem/i915_gem_mman.h"
 #include "gt/intel_engine_user.h"
+#include "gt/intel_gt_types.h"
 
 #include "pxp/intel_pxp.h"
 
diff --git a/drivers/gpu/drm/i915/i915_mm.c b/drivers/gpu/drm/i915/i915_mm.c
index 7998bc74ab49..e2f4ec1c29c7 100644
--- a/drivers/gpu/drm/i915/i915_mm.c
+++ b/drivers/gpu/drm/i915/i915_mm.c
@@ -22,9 +22,9 @@
  *
  */
 
-#include <linux/mm.h>
+#include <asm/cacheflush.h>
 #include <linux/io-mapping.h>
-
+#include <linux/mm.h>
 
 #include "i915_drv.h"
 #include "i915_mm.h"
diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
index df7c261410f7..4dc638e8b887 100644
--- a/drivers/gpu/drm/i915/i915_pci.c
+++ b/drivers/gpu/drm/i915/i915_pci.c
@@ -28,9 +28,10 @@
 
 #include "display/intel_display.h"
 #include "display/intel_display_driver.h"
+#include "gem/i915_gem_object_types.h"
 #include "gt/intel_gt_regs.h"
+#include "gt/intel_gt_types.h"
 #include "gt/intel_sa_media.h"
-#include "gem/i915_gem_object_types.h"
 
 #include "i915_driver.h"
 #include "i915_drv.h"
diff --git a/drivers/gpu/drm/i915/i915_query.c b/drivers/gpu/drm/i915/i915_query.c
index 00871ef99792..84ebfe94456a 100644
--- a/drivers/gpu/drm/i915/i915_query.c
+++ b/drivers/gpu/drm/i915/i915_query.c
@@ -6,11 +6,13 @@
 
 #include <linux/nospec.h>
 
+#include <uapi/drm/i915_drm.h>
+
+#include "gt/intel_engine_user.h"
+#include "gt/intel_gt_types.h"
 #include "i915_drv.h"
 #include "i915_perf.h"
 #include "i915_query.h"
-#include "gt/intel_engine_user.h"
-#include <uapi/drm/i915_drm.h>
 
 static int copy_query_item(void *query_hdr, size_t query_sz,
 			   u32 total_length,
diff --git a/drivers/gpu/drm/i915/intel_gvt_mmio_table.c b/drivers/gpu/drm/i915/intel_gvt_mmio_table.c
index b3c036a54529..0e3d9a9ec4d4 100644
--- a/drivers/gpu/drm/i915/intel_gvt_mmio_table.c
+++ b/drivers/gpu/drm/i915/intel_gvt_mmio_table.c
@@ -16,6 +16,7 @@
 #include "display/skl_watermark_regs.h"
 #include "display/vlv_dsi_pll_regs.h"
 #include "gt/intel_gt_regs.h"
+#include "gt/intel_gt_types.h"
 #include "gvt/gvt.h"
 
 #include "i915_drv.h"
diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c b/drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c
index e07c5b380789..c8e5b22eccff 100644
--- a/drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c
+++ b/drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c
@@ -9,6 +9,7 @@
 #include <drm/drm_print.h>
 
 #include "gt/intel_gt_debugfs.h"
+#include "gt/intel_gt_types.h"
 
 #include "i915_drv.h"
 
diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp_pm.c b/drivers/gpu/drm/i915/pxp/intel_pxp_pm.c
index 6dfd24918953..7acdecc758c0 100644
--- a/drivers/gpu/drm/i915/pxp/intel_pxp_pm.c
+++ b/drivers/gpu/drm/i915/pxp/intel_pxp_pm.c
@@ -3,6 +3,7 @@
  * Copyright(c) 2020 Intel Corporation.
  */
 
+#include "gt/intel_gt_types.h"
 #include "i915_drv.h"
 
 #include "intel_pxp.h"
diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp_session.c b/drivers/gpu/drm/i915/pxp/intel_pxp_session.c
index 0a3e66b0265e..eccb5fbe2557 100644
--- a/drivers/gpu/drm/i915/pxp/intel_pxp_session.c
+++ b/drivers/gpu/drm/i915/pxp/intel_pxp_session.c
@@ -3,15 +3,16 @@
  * Copyright(c) 2020, Intel Corporation. All rights reserved.
  */
 
+#include "gt/intel_gt_types.h"
 #include "i915_drv.h"
 
 #include "intel_pxp.h"
 #include "intel_pxp_cmd.h"
 #include "intel_pxp_gsccs.h"
+#include "intel_pxp_regs.h"
 #include "intel_pxp_session.h"
 #include "intel_pxp_tee.h"
 #include "intel_pxp_types.h"
-#include "intel_pxp_regs.h"
 
 #define ARB_SESSION I915_PROTECTED_CONTENT_DEFAULT_SESSION /* shorter define */
 
diff --git a/drivers/gpu/drm/i915/selftests/intel_scheduler_helpers.c b/drivers/gpu/drm/i915/selftests/intel_scheduler_helpers.c
index 2990dd4d4a0d..be9086da29fc 100644
--- a/drivers/gpu/drm/i915/selftests/intel_scheduler_helpers.c
+++ b/drivers/gpu/drm/i915/selftests/intel_scheduler_helpers.c
@@ -3,7 +3,7 @@
  * Copyright © 2021 Intel Corporation
  */
 
-//#include "gt/intel_engine_user.h"
+#include "gt/intel_engine.h"
 #include "gt/intel_gt.h"
 #include "i915_drv.h"
 #include "i915_selftest.h"
-- 
2.39.2


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

* [Intel-gfx] [PATCH 14/15] drm/i915: stop including gt/uc/intel_uc.h from i915_drv.h
  2023-09-28 18:08 [Intel-gfx] [PATCH 00/15] drm/i915: i915_drv.h and i915_gpu_error.h include diet Jani Nikula
                   ` (12 preceding siblings ...)
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 13/15] drm/i915: stop including gt/intel_engine.h and gt/intel_gt_types.h from i915_drv.h Jani Nikula
@ 2023-09-28 18:08 ` Jani Nikula
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 15/15] drm/i915: stop including gt/intel_workarounds.h " Jani Nikula
                   ` (2 subsequent siblings)
  16 siblings, 0 replies; 22+ messages in thread
From: Jani Nikula @ 2023-09-28 18:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Turns out it's not needed, except implicitly in a handful of
places. Make them explicit.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/gem/i915_gem_lmem.c   | 5 +++--
 drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c | 1 +
 drivers/gpu/drm/i915/gt/gen7_renderclear.c | 1 +
 drivers/gpu/drm/i915/i915_drv.h            | 1 -
 drivers/gpu/drm/i915/i915_sysfs.c          | 2 ++
 drivers/gpu/drm/i915/i915_utils.h          | 1 +
 drivers/gpu/drm/i915/i915_vgpu.c           | 2 ++
 drivers/gpu/drm/i915/intel_region_ttm.c    | 2 ++
 8 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_lmem.c b/drivers/gpu/drm/i915/gem/i915_gem_lmem.c
index 3198b64ad7db..a12047897650 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_lmem.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_lmem.c
@@ -5,10 +5,11 @@
 
 #include <uapi/drm/i915_drm.h>
 
-#include "intel_memory_region.h"
-#include "gem/i915_gem_region.h"
 #include "gem/i915_gem_lmem.h"
+#include "gem/i915_gem_object.h"
+#include "gem/i915_gem_region.h"
 #include "i915_drv.h"
+#include "intel_memory_region.h"
 
 void __iomem *
 i915_gem_object_lmem_io_map(struct drm_i915_gem_object *obj,
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c
index ad649523d5e0..b9f02de8c1bb 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c
@@ -10,6 +10,7 @@
 #include "intel_memory_region.h"
 #include "intel_region_ttm.h"
 
+#include "gem/i915_gem_object.h"
 #include "gem/i915_gem_region.h"
 #include "gem/i915_gem_ttm.h"
 #include "gem/i915_gem_ttm_move.h"
diff --git a/drivers/gpu/drm/i915/gt/gen7_renderclear.c b/drivers/gpu/drm/i915/gt/gen7_renderclear.c
index d38b914d1206..0724ce39744a 100644
--- a/drivers/gpu/drm/i915/gt/gen7_renderclear.c
+++ b/drivers/gpu/drm/i915/gt/gen7_renderclear.c
@@ -5,6 +5,7 @@
 
 #include "gen7_renderclear.h"
 #include "i915_drv.h"
+#include "i915_vma.h"
 #include "intel_gpu_commands.h"
 #include "intel_gt_regs.h"
 
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index cd4d55f5f8de..fb7139514e18 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -45,7 +45,6 @@
 
 #include "gt/intel_region_lmem.h"
 #include "gt/intel_workarounds.h"
-#include "gt/uc/intel_uc.h"
 
 #include "soc/intel_pch.h"
 
diff --git a/drivers/gpu/drm/i915/i915_sysfs.c b/drivers/gpu/drm/i915/i915_sysfs.c
index 613decd47760..6226ce924562 100644
--- a/drivers/gpu/drm/i915/i915_sysfs.c
+++ b/drivers/gpu/drm/i915/i915_sysfs.c
@@ -30,6 +30,8 @@
 #include <linux/stat.h>
 #include <linux/sysfs.h>
 
+#include <drm/drm_file.h>
+
 #include "gt/intel_gt_regs.h"
 #include "gt/intel_rc6.h"
 #include "gt/intel_rps.h"
diff --git a/drivers/gpu/drm/i915/i915_utils.h b/drivers/gpu/drm/i915/i915_utils.h
index c61066498bf2..039b0a849c81 100644
--- a/drivers/gpu/drm/i915/i915_utils.h
+++ b/drivers/gpu/drm/i915/i915_utils.h
@@ -26,6 +26,7 @@
 #define __I915_UTILS_H
 
 #include <linux/list.h>
+#include <linux/delay.h>
 #include <linux/overflow.h>
 #include <linux/sched.h>
 #include <linux/string_helpers.h>
diff --git a/drivers/gpu/drm/i915/i915_vgpu.c b/drivers/gpu/drm/i915/i915_vgpu.c
index c97323973f9b..91f07b778eda 100644
--- a/drivers/gpu/drm/i915/i915_vgpu.c
+++ b/drivers/gpu/drm/i915/i915_vgpu.c
@@ -21,7 +21,9 @@
  * SOFTWARE.
  */
 
+#include "gt/intel_gtt.h"
 #include "i915_drv.h"
+#include "i915_gem_gtt.h"
 #include "i915_pvinfo.h"
 #include "i915_vgpu.h"
 
diff --git a/drivers/gpu/drm/i915/intel_region_ttm.c b/drivers/gpu/drm/i915/intel_region_ttm.c
index bf6097e7433d..d1fbd476a435 100644
--- a/drivers/gpu/drm/i915/intel_region_ttm.c
+++ b/drivers/gpu/drm/i915/intel_region_ttm.c
@@ -11,8 +11,10 @@
 
 #include "intel_region_ttm.h"
 
+#include "gem/i915_gem_object.h"
 #include "gem/i915_gem_region.h"
 #include "gem/i915_gem_ttm.h" /* For the funcs/ops export only */
+
 /**
  * DOC: TTM support structure
  *
-- 
2.39.2


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

* [Intel-gfx] [PATCH 15/15] drm/i915: stop including gt/intel_workarounds.h from i915_drv.h
  2023-09-28 18:08 [Intel-gfx] [PATCH 00/15] drm/i915: i915_drv.h and i915_gpu_error.h include diet Jani Nikula
                   ` (13 preceding siblings ...)
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 14/15] drm/i915: stop including gt/uc/intel_uc.h " Jani Nikula
@ 2023-09-28 18:08 ` Jani Nikula
  2023-09-28 19:05 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915: i915_drv.h and i915_gpu_error.h include diet Patchwork
  2023-09-29 14:41 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915: i915_drv.h and i915_gpu_error.h include diet (rev2) Patchwork
  16 siblings, 0 replies; 22+ messages in thread
From: Jani Nikula @ 2023-09-28 18:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Not needed, and not included implicitly either.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.h | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index fb7139514e18..76b2019dc44e 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -44,7 +44,6 @@
 #include "gem/i915_gem_stolen.h"
 
 #include "gt/intel_region_lmem.h"
-#include "gt/intel_workarounds.h"
 
 #include "soc/intel_pch.h"
 
-- 
2.39.2


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

* [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915: i915_drv.h and i915_gpu_error.h include diet
  2023-09-28 18:08 [Intel-gfx] [PATCH 00/15] drm/i915: i915_drv.h and i915_gpu_error.h include diet Jani Nikula
                   ` (14 preceding siblings ...)
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 15/15] drm/i915: stop including gt/intel_workarounds.h " Jani Nikula
@ 2023-09-28 19:05 ` Patchwork
  2023-09-29 14:41 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915: i915_drv.h and i915_gpu_error.h include diet (rev2) Patchwork
  16 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2023-09-28 19:05 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: i915_drv.h and i915_gpu_error.h include diet
URL   : https://patchwork.freedesktop.org/series/124418/
State : failure

== Summary ==

Error: make failed
  CALL    scripts/checksyscalls.sh
  DESCEND objtool
  INSTALL libsubcmd_headers
  CC [M]  drivers/gpu/drm/i915/i915_gpu_error.o
drivers/gpu/drm/i915/i915_gpu_error.c:1754:1: error: no previous prototype for ‘intel_engine_coredump_alloc’ [-Werror=missing-prototypes]
 1754 | intel_engine_coredump_alloc(struct intel_engine_cs *engine, gfp_t gfp, u32 dump_flags)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[6]: *** [scripts/Makefile.build:243: drivers/gpu/drm/i915/i915_gpu_error.o] Error 1
make[5]: *** [scripts/Makefile.build:480: drivers/gpu/drm/i915] Error 2
make[4]: *** [scripts/Makefile.build:480: drivers/gpu/drm] Error 2
make[3]: *** [scripts/Makefile.build:480: drivers/gpu] Error 2
make[2]: *** [scripts/Makefile.build:480: drivers] Error 2
make[1]: *** [/home/kbuild2/kernel/Makefile:1913: .] Error 2
make: *** [Makefile:234: __sub-make] Error 2
Build failed, no error log produced



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

* Re: [Intel-gfx] [PATCH 09/15] drm/i915: do more in i915_gpu_coredump_alloc()
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 09/15] drm/i915: do more in i915_gpu_coredump_alloc() Jani Nikula
@ 2023-09-29  4:42   ` kernel test robot
  2023-09-29  6:18   ` kernel test robot
  2023-09-29  7:46   ` [Intel-gfx] [PATCH v2] " Jani Nikula
  2 siblings, 0 replies; 22+ messages in thread
From: kernel test robot @ 2023-09-29  4:42 UTC (permalink / raw)
  To: Jani Nikula, intel-gfx; +Cc: jani.nikula, oe-kbuild-all

Hi Jani,

kernel test robot noticed the following build errors:

[auto build test ERROR on drm-tip/drm-tip]

url:    https://github.com/intel-lab-lkp/linux/commits/Jani-Nikula/drm-i915-stop-including-i915_utils-h-from-intel_runtime_pm-h/20230929-021205
base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
patch link:    https://lore.kernel.org/r/d5f8aab89835a70c0af741e7f5765fc2c4875bf7.1695924021.git.jani.nikula%40intel.com
patch subject: [Intel-gfx] [PATCH 09/15] drm/i915: do more in i915_gpu_coredump_alloc()
config: i386-buildonly-randconfig-005-20230929 (https://download.01.org/0day-ci/archive/20230929/202309291218.f8Nhsloo-lkp@intel.com/config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230929/202309291218.f8Nhsloo-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202309291218.f8Nhsloo-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/gpu/drm/i915/gt/intel_execlists_submission.c: In function 'capture_regs':
>> drivers/gpu/drm/i915/gt/intel_execlists_submission.c:2264:39: error: passing argument 1 of 'i915_gpu_coredump_alloc' from incompatible pointer type [-Werror=incompatible-pointer-types]
     cap->error = i915_gpu_coredump_alloc(engine, gfp);
                                          ^~~~~~
   In file included from drivers/gpu/drm/i915/i915_drv.h:56:0,
                    from drivers/gpu/drm/i915/gt/intel_execlists_submission.c:112:
   drivers/gpu/drm/i915/i915_gpu_error.h:329:1: note: expected 'struct drm_i915_private *' but argument is of type 'struct intel_engine_cs *'
    i915_gpu_coredump_alloc(struct drm_i915_private *i915, gfp_t gfp)
    ^~~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +/i915_gpu_coredump_alloc +2264 drivers/gpu/drm/i915/gt/intel_execlists_submission.c

  2254	
  2255	static struct execlists_capture *capture_regs(struct intel_engine_cs *engine)
  2256	{
  2257		const gfp_t gfp = GFP_ATOMIC | __GFP_NOWARN;
  2258		struct execlists_capture *cap;
  2259	
  2260		cap = kmalloc(sizeof(*cap), gfp);
  2261		if (!cap)
  2262			return NULL;
  2263	
> 2264		cap->error = i915_gpu_coredump_alloc(engine, gfp);
  2265		if (!cap->error)
  2266			goto err_cap;
  2267	
  2268		return cap;
  2269	
  2270	err_cap:
  2271		kfree(cap);
  2272		return NULL;
  2273	}
  2274	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

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

* Re: [Intel-gfx] [PATCH 09/15] drm/i915: do more in i915_gpu_coredump_alloc()
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 09/15] drm/i915: do more in i915_gpu_coredump_alloc() Jani Nikula
  2023-09-29  4:42   ` kernel test robot
@ 2023-09-29  6:18   ` kernel test robot
  2023-09-29  7:46   ` [Intel-gfx] [PATCH v2] " Jani Nikula
  2 siblings, 0 replies; 22+ messages in thread
From: kernel test robot @ 2023-09-29  6:18 UTC (permalink / raw)
  To: Jani Nikula, intel-gfx; +Cc: jani.nikula, oe-kbuild-all

Hi Jani,

kernel test robot noticed the following build warnings:

[auto build test WARNING on drm-tip/drm-tip]

url:    https://github.com/intel-lab-lkp/linux/commits/Jani-Nikula/drm-i915-stop-including-i915_utils-h-from-intel_runtime_pm-h/20230929-021205
base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
patch link:    https://lore.kernel.org/r/d5f8aab89835a70c0af741e7f5765fc2c4875bf7.1695924021.git.jani.nikula%40intel.com
patch subject: [Intel-gfx] [PATCH 09/15] drm/i915: do more in i915_gpu_coredump_alloc()
config: x86_64-buildonly-randconfig-005-20230929 (https://download.01.org/0day-ci/archive/20230929/202309291431.3pKN8WtO-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-12) 11.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230929/202309291431.3pKN8WtO-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202309291431.3pKN8WtO-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/gpu/drm/i915/i915_gpu_error.c:1547:1: warning: no previous prototype for 'intel_engine_coredump_alloc' [-Wmissing-prototypes]
    1547 | intel_engine_coredump_alloc(struct intel_engine_cs *engine, gfp_t gfp, u32 dump_flags)
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~


vim +/intel_engine_coredump_alloc +1547 drivers/gpu/drm/i915/i915_gpu_error.c

ff20afc4cee7b6 Thomas Hellström 2021-11-29  1545  
742379c0c4001f Chris Wilson     2020-01-10  1546  struct intel_engine_coredump *
a6f0f9cf330a86 Alan Previn      2022-03-21 @1547  intel_engine_coredump_alloc(struct intel_engine_cs *engine, gfp_t gfp, u32 dump_flags)
742379c0c4001f Chris Wilson     2020-01-10  1548  {
742379c0c4001f Chris Wilson     2020-01-10  1549  	struct intel_engine_coredump *ee;
742379c0c4001f Chris Wilson     2020-01-10  1550  
742379c0c4001f Chris Wilson     2020-01-10  1551  	ee = kzalloc(sizeof(*ee), gfp);
c990b4c3597d6c Chris Wilson     2019-08-08  1552  	if (!ee)
742379c0c4001f Chris Wilson     2020-01-10  1553  		return NULL;
c990b4c3597d6c Chris Wilson     2019-08-08  1554  
742379c0c4001f Chris Wilson     2020-01-10  1555  	ee->engine = engine;
372fbb8e3927fc Chris Wilson     2014-01-27  1556  
a6f0f9cf330a86 Alan Previn      2022-03-21  1557  	if (!(dump_flags & CORE_DUMP_FLAG_IS_GUC_CAPTURE)) {
742379c0c4001f Chris Wilson     2020-01-10  1558  		engine_record_registers(ee);
742379c0c4001f Chris Wilson     2020-01-10  1559  		engine_record_execlists(ee);
a6f0f9cf330a86 Alan Previn      2022-03-21  1560  	}
3bdd4f84853106 Chris Wilson     2019-07-22  1561  
742379c0c4001f Chris Wilson     2020-01-10  1562  	return ee;
c990b4c3597d6c Chris Wilson     2019-08-08  1563  }
ae6c4806927b8b Daniel Vetter    2014-08-06  1564  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

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

* [Intel-gfx] [PATCH v2] drm/i915: do more in i915_gpu_coredump_alloc()
  2023-09-28 18:08 ` [Intel-gfx] [PATCH 09/15] drm/i915: do more in i915_gpu_coredump_alloc() Jani Nikula
  2023-09-29  4:42   ` kernel test robot
  2023-09-29  6:18   ` kernel test robot
@ 2023-09-29  7:46   ` Jani Nikula
  2023-09-30 21:11     ` kernel test robot
  2 siblings, 1 reply; 22+ messages in thread
From: Jani Nikula @ 2023-09-29  7:46 UTC (permalink / raw)
  To: Jani Nikula, intel-gfx

Reduce gpu error interface further by doing more in
i915_gpu_coredump_alloc().

v2: Fix build for CONFIG_DRM_I915_CAPTURE_ERROR=n

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 .../drm/i915/gt/intel_execlists_submission.c  | 16 +-------
 drivers/gpu/drm/i915/i915_gpu_error.c         | 38 +++++++++++++++++--
 drivers/gpu/drm/i915/i915_gpu_error.h         | 22 +----------
 3 files changed, 38 insertions(+), 38 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
index e8f42ec6b1b4..7c7e8c3a12e0 100644
--- a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
+++ b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
@@ -2261,26 +2261,12 @@ static struct execlists_capture *capture_regs(struct intel_engine_cs *engine)
 	if (!cap)
 		return NULL;
 
-	cap->error = i915_gpu_coredump_alloc(engine->i915, gfp);
+	cap->error = i915_gpu_coredump_alloc(engine, gfp);
 	if (!cap->error)
 		goto err_cap;
 
-	cap->error->gt = intel_gt_coredump_alloc(engine->gt, gfp, CORE_DUMP_FLAG_NONE);
-	if (!cap->error->gt)
-		goto err_gpu;
-
-	cap->error->gt->engine = intel_engine_coredump_alloc(engine, gfp, CORE_DUMP_FLAG_NONE);
-	if (!cap->error->gt->engine)
-		goto err_gt;
-
-	cap->error->gt->engine->hung = true;
-
 	return cap;
 
-err_gt:
-	kfree(cap->error->gt);
-err_gpu:
-	kfree(cap->error);
 err_cap:
 	kfree(cap);
 	return NULL;
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index 9b1bb5aeec11..e4185f30f07c 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -63,6 +63,9 @@
 #define ALLOW_FAIL (__GFP_KSWAPD_RECLAIM | __GFP_RETRY_MAYFAIL | __GFP_NOWARN)
 #define ATOMIC_MAYFAIL (GFP_ATOMIC | __GFP_NOWARN)
 
+struct intel_gt_coredump *
+intel_gt_coredump_alloc(struct intel_gt *gt, gfp_t gfp, u32 dump_flags);
+
 static void __sg_set_buf(struct scatterlist *sg,
 			 void *addr, unsigned int len, loff_t it)
 {
@@ -2005,8 +2008,8 @@ static void capture_gen(struct i915_gpu_coredump *error)
 	error->driver_caps = i915->caps;
 }
 
-struct i915_gpu_coredump *
-i915_gpu_coredump_alloc(struct drm_i915_private *i915, gfp_t gfp)
+static struct i915_gpu_coredump *
+__i915_gpu_coredump_alloc(struct drm_i915_private *i915, gfp_t gfp)
 {
 	struct i915_gpu_coredump *error;
 
@@ -2030,6 +2033,35 @@ i915_gpu_coredump_alloc(struct drm_i915_private *i915, gfp_t gfp)
 	return error;
 }
 
+struct i915_gpu_coredump *
+i915_gpu_coredump_alloc(struct intel_engine_cs *engine, gfp_t gfp)
+{
+	struct i915_gpu_coredump *error;
+
+	error = __i915_gpu_coredump_alloc(engine->i915, gfp);
+	if (!error)
+		return NULL;
+
+	error->gt = intel_gt_coredump_alloc(engine->gt, gfp, CORE_DUMP_FLAG_NONE);
+	if (!error->gt)
+		goto err_gpu;
+
+	error->gt->engine = intel_engine_coredump_alloc(engine, gfp, CORE_DUMP_FLAG_NONE);
+	if (!error->gt->engine)
+		goto err_gt;
+
+	error->gt->engine->hung = true;
+
+	return error;
+
+err_gt:
+	kfree(error->gt);
+err_gpu:
+	kfree(error);
+
+	return NULL;
+}
+
 #define DAY_AS_SECONDS(x) (24 * 60 * 60 * (x))
 
 struct intel_gt_coredump *
@@ -2102,7 +2134,7 @@ __i915_gpu_coredump(struct intel_gt *gt, intel_engine_mask_t engine_mask, u32 du
 	if (IS_ERR(error))
 		return error;
 
-	error = i915_gpu_coredump_alloc(i915, ALLOW_FAIL);
+	error = __i915_gpu_coredump_alloc(i915, ALLOW_FAIL);
 	if (!error)
 		return ERR_PTR(-ENOMEM);
 
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.h b/drivers/gpu/drm/i915/i915_gpu_error.h
index f6f8d284a07d..a0ab187b426d 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.h
+++ b/drivers/gpu/drm/i915/i915_gpu_error.h
@@ -280,13 +280,7 @@ void i915_capture_error_state(struct intel_gt *gt,
 			      intel_engine_mask_t engine_mask, u32 dump_flags);
 
 struct i915_gpu_coredump *
-i915_gpu_coredump_alloc(struct drm_i915_private *i915, gfp_t gfp);
-
-struct intel_gt_coredump *
-intel_gt_coredump_alloc(struct intel_gt *gt, gfp_t gfp, u32 dump_flags);
-
-struct intel_engine_coredump *
-intel_engine_coredump_alloc(struct intel_engine_cs *engine, gfp_t gfp, u32 dump_flags);
+i915_gpu_coredump_alloc(struct intel_engine_cs *engine, gfp_t gfp);
 
 struct intel_engine_capture_vma *
 intel_engine_coredump_add_request(struct intel_engine_coredump *ee,
@@ -332,19 +326,7 @@ i915_capture_error_state(struct intel_gt *gt, intel_engine_mask_t engine_mask, u
 }
 
 static inline struct i915_gpu_coredump *
-i915_gpu_coredump_alloc(struct drm_i915_private *i915, gfp_t gfp)
-{
-	return NULL;
-}
-
-static inline struct intel_gt_coredump *
-intel_gt_coredump_alloc(struct intel_gt *gt, gfp_t gfp, u32 dump_flags)
-{
-	return NULL;
-}
-
-static inline struct intel_engine_coredump *
-intel_engine_coredump_alloc(struct intel_engine_cs *engine, gfp_t gfp, u32 dump_flags)
+i915_gpu_coredump_alloc(struct intel_engine_cs *engine, gfp_t gfp)
 {
 	return NULL;
 }
-- 
2.39.2


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

* [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915: i915_drv.h and i915_gpu_error.h include diet (rev2)
  2023-09-28 18:08 [Intel-gfx] [PATCH 00/15] drm/i915: i915_drv.h and i915_gpu_error.h include diet Jani Nikula
                   ` (15 preceding siblings ...)
  2023-09-28 19:05 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915: i915_drv.h and i915_gpu_error.h include diet Patchwork
@ 2023-09-29 14:41 ` Patchwork
  16 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2023-09-29 14:41 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: i915_drv.h and i915_gpu_error.h include diet (rev2)
URL   : https://patchwork.freedesktop.org/series/124418/
State : failure

== Summary ==

Error: make failed
  CALL    scripts/checksyscalls.sh
  DESCEND objtool
  INSTALL libsubcmd_headers
  CC [M]  drivers/gpu/drm/i915/i915_gpu_error.o
drivers/gpu/drm/i915/i915_gpu_error.c:1763:1: error: no previous prototype for ‘intel_engine_coredump_alloc’ [-Werror=missing-prototypes]
 1763 | intel_engine_coredump_alloc(struct intel_engine_cs *engine, gfp_t gfp, u32 dump_flags)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[6]: *** [scripts/Makefile.build:243: drivers/gpu/drm/i915/i915_gpu_error.o] Error 1
make[5]: *** [scripts/Makefile.build:480: drivers/gpu/drm/i915] Error 2
make[4]: *** [scripts/Makefile.build:480: drivers/gpu/drm] Error 2
make[3]: *** [scripts/Makefile.build:480: drivers/gpu] Error 2
make[2]: *** [scripts/Makefile.build:480: drivers] Error 2
make[1]: *** [/home/kbuild2/kernel/Makefile:1913: .] Error 2
make: *** [Makefile:234: __sub-make] Error 2
Build failed, no error log produced



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

* Re: [Intel-gfx] [PATCH v2] drm/i915: do more in i915_gpu_coredump_alloc()
  2023-09-29  7:46   ` [Intel-gfx] [PATCH v2] " Jani Nikula
@ 2023-09-30 21:11     ` kernel test robot
  0 siblings, 0 replies; 22+ messages in thread
From: kernel test robot @ 2023-09-30 21:11 UTC (permalink / raw)
  To: Jani Nikula, intel-gfx; +Cc: oe-kbuild-all

Hi Jani,

kernel test robot noticed the following build warnings:



url:    https://github.com/intel-lab-lkp/linux/commits/UPDATE-20230929-163131/Jani-Nikula/drm-i915-stop-including-i915_utils-h-from-intel_runtime_pm-h/20230929-021205
base:   the 9th patch of https://lore.kernel.org/r/d5f8aab89835a70c0af741e7f5765fc2c4875bf7.1695924021.git.jani.nikula%40intel.com
patch link:    https://lore.kernel.org/r/20230929074636.1433475-1-jani.nikula%40intel.com
patch subject: [Intel-gfx] [PATCH v2] drm/i915: do more in i915_gpu_coredump_alloc()
config: i386-randconfig-061-20230930 (https://download.01.org/0day-ci/archive/20231001/202310010424.ZEwfaRR9-lkp@intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231001/202310010424.ZEwfaRR9-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202310010424.ZEwfaRR9-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/i915/i915_gpu_error.c:1546:30: sparse: sparse: symbol 'intel_engine_coredump_alloc' was not declared. Should it be static?

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

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

end of thread, other threads:[~2023-09-30 21:11 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-28 18:08 [Intel-gfx] [PATCH 00/15] drm/i915: i915_drv.h and i915_gpu_error.h include diet Jani Nikula
2023-09-28 18:08 ` [Intel-gfx] [PATCH 01/15] drm/i915: stop including i915_utils.h from intel_runtime_pm.h Jani Nikula
2023-09-28 18:08 ` [Intel-gfx] [PATCH 02/15] drm/i915/mocs: use to_gt() instead of direct &i915->gt Jani Nikula
2023-09-28 18:08 ` [Intel-gfx] [PATCH 03/15] drm/i915: allocate i915->gt0 dynamically Jani Nikula
2023-09-28 18:08 ` [Intel-gfx] [PATCH 04/15] drm/i915/gt: remove i915->gt0 in favour of i915->gt[0] Jani Nikula
2023-09-28 18:08 ` [Intel-gfx] [PATCH 05/15] drm/i915: make some error capture functions static Jani Nikula
2023-09-28 18:08 ` [Intel-gfx] [PATCH 06/15] drm/i915: move gpu error debugfs to i915_gpu_error.c Jani Nikula
2023-09-28 18:08 ` [Intel-gfx] [PATCH 07/15] drm/i915: move gpu error sysfs " Jani Nikula
2023-09-28 18:08 ` [Intel-gfx] [PATCH 08/15] drm/i915: convert i915_coredump_get/put() to proper functions Jani Nikula
2023-09-28 18:08 ` [Intel-gfx] [PATCH 09/15] drm/i915: do more in i915_gpu_coredump_alloc() Jani Nikula
2023-09-29  4:42   ` kernel test robot
2023-09-29  6:18   ` kernel test robot
2023-09-29  7:46   ` [Intel-gfx] [PATCH v2] " Jani Nikula
2023-09-30 21:11     ` kernel test robot
2023-09-28 18:08 ` [Intel-gfx] [PATCH 10/15] drm/i915: move execlist capture to i915_gpu_error.c Jani Nikula
2023-09-28 18:08 ` [Intel-gfx] [PATCH 11/15] drm/i915/guc: don't look at gpu error guts in guc capture Jani Nikula
2023-09-28 18:08 ` [Intel-gfx] [PATCH 12/15] drm/i915: hide gpu error structures inside i915_gpu_error.c Jani Nikula
2023-09-28 18:08 ` [Intel-gfx] [PATCH 13/15] drm/i915: stop including gt/intel_engine.h and gt/intel_gt_types.h from i915_drv.h Jani Nikula
2023-09-28 18:08 ` [Intel-gfx] [PATCH 14/15] drm/i915: stop including gt/uc/intel_uc.h " Jani Nikula
2023-09-28 18:08 ` [Intel-gfx] [PATCH 15/15] drm/i915: stop including gt/intel_workarounds.h " Jani Nikula
2023-09-28 19:05 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915: i915_drv.h and i915_gpu_error.h include diet Patchwork
2023-09-29 14:41 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915: i915_drv.h and i915_gpu_error.h include diet (rev2) Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox