Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cavitt <jonathan.cavitt@intel.com>
To: intel-xe@lists.freedesktop.org
Cc: dri-devel@lists.freedesktop.org, jonathan.cavitt@intel.com,
	saurabhg.gupta@intel.com, alex.zuo@intel.com,
	joonas.lahtinen@intel.com, lucas.demarchi@intel.com,
	matthew.brost@intel.com
Subject: [PATCH 2/4] drm/xe/xe_gt_pagefault: Migrate pagefault struct to header
Date: Fri, 14 Feb 2025 20:37:55 +0000	[thread overview]
Message-ID: <20250214203757.27895-3-jonathan.cavitt@intel.com> (raw)
In-Reply-To: <20250214203757.27895-1-jonathan.cavitt@intel.com>

Migrate the pagefault struct from xe_gt_pagefault.c to the
xe_gt_pagefault.h header file, along with the associated enum values.

Additionally, add string declarations for the associated enum values, as
well as functions that translate from the enum values to their string
counterparts.  The string variants will be useful for debugging later.

Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
---
 drivers/gpu/drm/xe/xe_gt_pagefault.c | 27 ---------------
 drivers/gpu/drm/xe/xe_gt_pagefault.h | 51 ++++++++++++++++++++++++++++
 2 files changed, 51 insertions(+), 27 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_gt_pagefault.c b/drivers/gpu/drm/xe/xe_gt_pagefault.c
index 46701ca11ce0..fe18e3ec488a 100644
--- a/drivers/gpu/drm/xe/xe_gt_pagefault.c
+++ b/drivers/gpu/drm/xe/xe_gt_pagefault.c
@@ -22,33 +22,6 @@
 #include "xe_trace_bo.h"
 #include "xe_vm.h"
 
-struct pagefault {
-	u64 page_addr;
-	u32 asid;
-	u16 pdata;
-	u8 vfid;
-	u8 access_type;
-	u8 fault_type;
-	u8 fault_level;
-	u8 engine_class;
-	u8 engine_instance;
-	u8 fault_unsuccessful;
-	bool trva_fault;
-};
-
-enum access_type {
-	ACCESS_TYPE_READ = 0,
-	ACCESS_TYPE_WRITE = 1,
-	ACCESS_TYPE_ATOMIC = 2,
-	ACCESS_TYPE_RESERVED = 3,
-};
-
-enum fault_type {
-	NOT_PRESENT = 0,
-	WRITE_ACCESS_VIOLATION = 1,
-	ATOMIC_ACCESS_VIOLATION = 2,
-};
-
 struct acc {
 	u64 va_range_base;
 	u32 asid;
diff --git a/drivers/gpu/drm/xe/xe_gt_pagefault.h b/drivers/gpu/drm/xe/xe_gt_pagefault.h
index 839c065a5e4c..d502fdb5b68c 100644
--- a/drivers/gpu/drm/xe/xe_gt_pagefault.h
+++ b/drivers/gpu/drm/xe/xe_gt_pagefault.h
@@ -11,6 +11,57 @@
 struct xe_gt;
 struct xe_guc;
 
+struct pagefault {
+	u64 page_addr;
+	u32 asid;
+	u16 pdata;
+	u8 vfid;
+	u8 access_type;
+	u8 fault_type;
+	u8 fault_level;
+	u8 engine_class;
+	u8 engine_instance;
+	u8 fault_unsuccessful;
+	bool prefetch;
+	bool trva_fault;
+};
+
+enum access_type {
+	ACCESS_TYPE_READ = 0,
+	ACCESS_TYPE_WRITE = 1,
+	ACCESS_TYPE_ATOMIC = 2,
+	ACCESS_TYPE_RESERVED = 3,
+};
+
+enum fault_type {
+	NOT_PRESENT = 0,
+	WRITE_ACCESS_VIOLATION = 1,
+	ATOMIC_ACCESS_VIOLATION = 2,
+};
+
+static char *access_type_str[] = {
+	"ACCESS_TYPE_READ",
+	"ACCESS_TYPE_WRITE",
+	"ACCESS_TYPE_ATOMIC",
+	"ACCESS_TYPE_RESERVED",
+};
+
+static char *fault_type_str[] = {
+	"NOT_PRESENT",
+	"WRITE_ACCESS_VIOLATION",
+	"ATOMIC_ACCESS_VIOLATION",
+};
+
+static inline char *access_type_to_str(enum access_type a)
+{
+	return access_type_str[a];
+}
+
+static inline char *fault_type_to_str(enum fault_type f)
+{
+	return fault_type_str[f];
+}
+
 int xe_gt_pagefault_init(struct xe_gt *gt);
 void xe_gt_pagefault_reset(struct xe_gt *gt);
 int xe_guc_pagefault_handler(struct xe_guc *guc, u32 *msg, u32 len);
-- 
2.43.0


  parent reply	other threads:[~2025-02-14 20:38 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-14 20:37 [PATCH 0/4] drm/xe/xe_drm_client: Add per drm client reset stats Jonathan Cavitt
2025-02-14 20:37 ` [PATCH 1/4] drm/xe/xe_exec_queue: Add ID param to exec queue struct Jonathan Cavitt
2025-02-14 20:37 ` Jonathan Cavitt [this message]
2025-02-14 20:37 ` [PATCH 3/4] FIXME: drm/xe/xe_drm_client: Add per drm client pagefault info Jonathan Cavitt
2025-02-16  4:04   ` kernel test robot
2025-02-17 17:01   ` Simona Vetter
2025-02-18 15:11     ` Cavitt, Jonathan
2025-02-18 18:39     ` Tvrtko Ursulin
2025-02-18 20:40       ` Cavitt, Jonathan
2025-02-19 13:44         ` Simona Vetter
2025-02-14 20:37 ` [PATCH 4/4] drm/xe/xe_drm_client: Add per drm client reset stats Jonathan Cavitt
2025-02-18 18:45   ` Tvrtko Ursulin
2025-02-19 13:45     ` Simona Vetter
2025-02-14 20:48 ` ✓ CI.Patch_applied: success for " Patchwork
2025-02-14 20:48 ` ✗ CI.checkpatch: warning " Patchwork
2025-02-14 20:50 ` ✓ CI.KUnit: success " Patchwork
2025-02-14 21:13 ` ✓ CI.Build: " Patchwork
2025-02-14 21:15 ` ✓ CI.Hooks: " Patchwork
2025-02-14 21:17 ` ✓ CI.checksparse: " Patchwork
2025-02-14 21:43 ` ✗ Xe.CI.BAT: failure " Patchwork
2025-02-15 21:00 ` ✗ Xe.CI.Full: " Patchwork
2025-02-18 19:21 ` [PATCH 0/4] " André Almeida

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=20250214203757.27895-3-jonathan.cavitt@intel.com \
    --to=jonathan.cavitt@intel.com \
    --cc=alex.zuo@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=joonas.lahtinen@intel.com \
    --cc=lucas.demarchi@intel.com \
    --cc=matthew.brost@intel.com \
    --cc=saurabhg.gupta@intel.com \
    /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