From: Jani Nikula <jani.nikula@intel.com>
To: Jani Nikula <jani.nikula@intel.com>, intel-gfx@lists.freedesktop.org
Subject: [Intel-gfx] [PATCH v2] drm/i915: do more in i915_gpu_coredump_alloc()
Date: Fri, 29 Sep 2023 10:46:36 +0300 [thread overview]
Message-ID: <20230929074636.1433475-1-jani.nikula@intel.com> (raw)
In-Reply-To: <d5f8aab89835a70c0af741e7f5765fc2c4875bf7.1695924021.git.jani.nikula@intel.com>
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
next prev parent reply other threads:[~2023-09-29 8:22 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
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 ` Jani Nikula [this message]
2023-09-30 21:11 ` [Intel-gfx] [PATCH v2] " 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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230929074636.1433475-1-jani.nikula@intel.com \
--to=jani.nikula@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox