[PATCH] Revert "drm/xe/devcoredump: Add ASCII85 dump helper function"

Rodrigo Vivi rodrigo.vivi at intel.com
Fri Dec 13 14:12:52 UTC 2024


We do not break userspace.

This reverts commit ec1455ce7e35a31289d2dbc1070b980538698921.

Fixes: ec1455ce7e35 ("drm/xe/devcoredump: Add ASCII85 dump helper
function")
Cc: John Harrison <John.C.Harrison at Intel.com>
Cc: Julia Filipchuk <julia.filipchuk at intel.com>
Cc: José Roberto de Souza <jose.souza at intel.com>
Cc: Lucas De Marchi <lucas.demarchi at intel.com>
Cc: Thomas Hellström <thomas.hellstrom at linux.intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
---
 drivers/gpu/drm/xe/xe_devcoredump.c | 87 -----------------------------
 drivers/gpu/drm/xe/xe_devcoredump.h |  6 --
 2 files changed, 93 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_devcoredump.c b/drivers/gpu/drm/xe/xe_devcoredump.c
index 71636e80b71d..025b70b0eb0f 100644
--- a/drivers/gpu/drm/xe/xe_devcoredump.c
+++ b/drivers/gpu/drm/xe/xe_devcoredump.c
@@ -6,7 +6,6 @@
 #include "xe_devcoredump.h"
 #include "xe_devcoredump_types.h"
 
-#include <linux/ascii85.h>
 #include <linux/devcoredump.h>
 #include <generated/utsrelease.h>
 
@@ -387,89 +386,3 @@ int xe_devcoredump_init(struct xe_device *xe)
 }
 
 #endif
-
-/**
- * xe_print_blob_ascii85 - print a BLOB to some useful location in ASCII85
- *
- * The output is split to multiple lines because some print targets, e.g. dmesg
- * cannot handle arbitrarily long lines. Note also that printing to dmesg in
- * piece-meal fashion is not possible, each separate call to drm_puts() has a
- * line-feed automatically added! Therefore, the entire output line must be
- * constructed in a local buffer first, then printed in one atomic output call.
- *
- * There is also a scheduler yield call to prevent the 'task has been stuck for
- * 120s' kernel hang check feature from firing when printing to a slow target
- * such as dmesg over a serial port.
- *
- * TODO: Add compression prior to the ASCII85 encoding to shrink huge buffers down.
- *
- * @p: the printer object to output to
- * @prefix: optional prefix to add to output string
- * @blob: the Binary Large OBject to dump out
- * @offset: offset in bytes to skip from the front of the BLOB, must be a multiple of sizeof(u32)
- * @size: the size in bytes of the BLOB, must be a multiple of sizeof(u32)
- */
-void xe_print_blob_ascii85(struct drm_printer *p, const char *prefix,
-			   const void *blob, size_t offset, size_t size)
-{
-	const u32 *blob32 = (const u32 *)blob;
-	char buff[ASCII85_BUFSZ], *line_buff;
-	size_t line_pos = 0;
-
-#define DMESG_MAX_LINE_LEN	800
-#define MIN_SPACE		(ASCII85_BUFSZ + 2)		/* 85 + "\n\0" */
-
-	if (size & 3)
-		drm_printf(p, "Size not word aligned: %zu", size);
-	if (offset & 3)
-		drm_printf(p, "Offset not word aligned: %zu", size);
-
-	line_buff = kzalloc(DMESG_MAX_LINE_LEN, GFP_KERNEL);
-	if (IS_ERR_OR_NULL(line_buff)) {
-		drm_printf(p, "Failed to allocate line buffer: %pe", line_buff);
-		return;
-	}
-
-	blob32 += offset / sizeof(*blob32);
-	size /= sizeof(*blob32);
-
-	if (prefix) {
-		strscpy(line_buff, prefix, DMESG_MAX_LINE_LEN - MIN_SPACE - 2);
-		line_pos = strlen(line_buff);
-
-		line_buff[line_pos++] = ':';
-		line_buff[line_pos++] = ' ';
-	}
-
-	while (size--) {
-		u32 val = *(blob32++);
-
-		strscpy(line_buff + line_pos, ascii85_encode(val, buff),
-			DMESG_MAX_LINE_LEN - line_pos);
-		line_pos += strlen(line_buff + line_pos);
-
-		if ((line_pos + MIN_SPACE) >= DMESG_MAX_LINE_LEN) {
-			line_buff[line_pos++] = '\n';
-			line_buff[line_pos++] = 0;
-
-			drm_puts(p, line_buff);
-
-			line_pos = 0;
-
-			/* Prevent 'stuck thread' time out errors */
-			cond_resched();
-		}
-	}
-
-	if (line_pos) {
-		line_buff[line_pos++] = '\n';
-		line_buff[line_pos++] = 0;
-
-		drm_puts(p, line_buff);
-	}
-
-	kfree(line_buff);
-
-#undef MIN_SPACE
-#undef DMESG_MAX_LINE_LEN
-}
diff --git a/drivers/gpu/drm/xe/xe_devcoredump.h b/drivers/gpu/drm/xe/xe_devcoredump.h
index 6a17e6d60102..1f7fabfa2eb4 100644
--- a/drivers/gpu/drm/xe/xe_devcoredump.h
+++ b/drivers/gpu/drm/xe/xe_devcoredump.h
@@ -6,9 +6,6 @@
 #ifndef _XE_DEVCOREDUMP_H_
 #define _XE_DEVCOREDUMP_H_
 
-#include <linux/types.h>
-
-struct drm_printer;
 struct xe_device;
 struct xe_exec_queue;
 struct xe_sched_job;
@@ -29,7 +26,4 @@ static inline int xe_devcoredump_init(struct xe_device *xe)
 }
 #endif
 
-void xe_print_blob_ascii85(struct drm_printer *p, const char *prefix,
-			   const void *blob, size_t offset, size_t size);
-
 #endif
-- 
2.47.1



More information about the Intel-xe mailing list