* [PATCH v4 1/7] drm/xe/guc: Remove spurious line feed in debug print
2024-06-10 22:56 [PATCH v4 0/7] drm/xe/guc: Improve quality and robustness of GuC log dumping John.C.Harrison
@ 2024-06-10 22:56 ` John.C.Harrison
0 siblings, 0 replies; 23+ messages in thread
From: John.C.Harrison @ 2024-06-10 22:56 UTC (permalink / raw)
To: Intel-Xe; +Cc: John Harrison, Michal Wajdeczko
From: John Harrison <John.C.Harrison@Intel.com>
Including line feeds at the start of a debug print messes up the
output when sent to dmesg. The break actually appears between all the
usefu prefix information and the actual string being printed. In this
case, each block of data has a very clear start line and an extra
delimeter is really not necessary. So don't do it.
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
drivers/gpu/drm/xe/xe_guc_ct.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/xe/xe_guc_ct.c b/drivers/gpu/drm/xe/xe_guc_ct.c
index c1f258348f5c..83ac14b1eade 100644
--- a/drivers/gpu/drm/xe/xe_guc_ct.c
+++ b/drivers/gpu/drm/xe/xe_guc_ct.c
@@ -1439,7 +1439,7 @@ void xe_guc_ct_snapshot_print(struct xe_guc_ct_snapshot *snapshot,
drm_puts(p, "H2G CTB (all sizes in DW):\n");
guc_ctb_snapshot_print(&snapshot->h2g, p);
- drm_puts(p, "\nG2H CTB (all sizes in DW):\n");
+ drm_puts(p, "G2H CTB (all sizes in DW):\n");
guc_ctb_snapshot_print(&snapshot->g2h, p);
drm_printf(p, "\tg2h outstanding: %d\n",
--
2.43.2
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v4 0/7] drm/xe/guc: Improve quality and robustness of GuC log dumping
@ 2024-06-11 1:20 John.C.Harrison
2024-06-11 1:20 ` [PATCH v4 1/7] drm/xe/guc: Remove spurious line feed in debug print John.C.Harrison
` (14 more replies)
0 siblings, 15 replies; 23+ messages in thread
From: John.C.Harrison @ 2024-06-11 1:20 UTC (permalink / raw)
To: Intel-Xe; +Cc: John Harrison
From: John Harrison <John.C.Harrison@Intel.com>
drm/xe/guc: Improve GuC log dumping and add dump on CT failures
There is a debug mechanism for dumping the GuC log as an ASCII hex
stream via dmesg. This is extremely useful for situations where it is
not possibe to query the log from debugfs (self tests, bugs that cause
the driver to fail to load, system hangs, etc.). However, dumping via
dmesg is not the most reliable. The dmesg buffer is limited in size,
can be rate limited and a simple hex stream is hard to parse by tools.
So add extra information to the dump to make it more robust and
parsable. This includes adding start and end tags to delimit the dump,
using longer lines to reduce the per line overhead, adding a rolling
count to check for missing lines and interleaved concurrent dumps and
adding other important information such as the GuC version number and
timestamp offset.
There are various internal error states that the CTB code can check
for. These should never happen but when they do (driver bug, firmware
bug or even hardware bug), they can be a nightmare to debug. So add in
a capture of the GuC log and CT state at the point of error and
subsequent dump from a worker thread.
Note that the ultimate aim is to add the GuC log to the devcoredump
capture. And then to provide a mechanism for generating a devcoredump
at an arbitrary point (such as dead CTB or failed selftest) and
dumping that to dmesg. Unfortunately, there are still issues with
doing that. But this is a good first step along the way.
v2: Remove pm get/put as unnecessary (review feedback from Matthew B).
v3: Add firmware filename and 'wanted' version number.
v4: Use DRM level line printer wrapper from Michal W. Add 'dead CTB'
dump support. Lots of restructuring of capture vs dump for both GuC
log and CTB capture for both the dead CTB dump and for future
inclusion in devcoredump.
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
John Harrison (6):
drm/xe/guc: Remove spurious line feed in debug print
drm/xe/guc: Copy GuC log prior to dumping
drm/xe/guc: Use a two stage dump for GuC logs and add more info
drm/xe/guc: Add a helper function for dumping GuC log to dmesg
drm/xe/guc: Dead CT helper
drm/xe/guc: Dump entire CTB on errors
Michal Wajdeczko (1):
drm/print: Introduce drm_line_printer
drivers/gpu/drm/drm_print.c | 14 +
.../drm/xe/abi/guc_communication_ctb_abi.h | 1 +
drivers/gpu/drm/xe/regs/xe_guc_regs.h | 1 +
drivers/gpu/drm/xe/xe_devcoredump.c | 2 +-
drivers/gpu/drm/xe/xe_guc_ct.c | 356 ++++++++++++++----
drivers/gpu/drm/xe/xe_guc_ct.h | 9 +-
drivers/gpu/drm/xe/xe_guc_ct_types.h | 24 ++
drivers/gpu/drm/xe/xe_guc_debugfs.c | 2 +-
drivers/gpu/drm/xe/xe_guc_log.c | 227 ++++++++++-
drivers/gpu/drm/xe/xe_guc_log.h | 11 +-
drivers/gpu/drm/xe/xe_guc_log_types.h | 29 ++
include/drm/drm_print.h | 64 ++++
12 files changed, 637 insertions(+), 103 deletions(-)
--
2.43.2
^ permalink raw reply [flat|nested] 23+ messages in thread
* [PATCH v4 1/7] drm/xe/guc: Remove spurious line feed in debug print
2024-06-11 1:20 [PATCH v4 0/7] drm/xe/guc: Improve quality and robustness of GuC log dumping John.C.Harrison
@ 2024-06-11 1:20 ` John.C.Harrison
2024-06-11 1:20 ` [PATCH v4 2/7] drm/xe/guc: Copy GuC log prior to dumping John.C.Harrison
` (13 subsequent siblings)
14 siblings, 0 replies; 23+ messages in thread
From: John.C.Harrison @ 2024-06-11 1:20 UTC (permalink / raw)
To: Intel-Xe; +Cc: John Harrison, Michal Wajdeczko
From: John Harrison <John.C.Harrison@Intel.com>
Including line feeds at the start of a debug print messes up the
output when sent to dmesg. The break actually appears between all the
usefu prefix information and the actual string being printed. In this
case, each block of data has a very clear start line and an extra
delimeter is really not necessary. So don't do it.
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
drivers/gpu/drm/xe/xe_guc_ct.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/xe/xe_guc_ct.c b/drivers/gpu/drm/xe/xe_guc_ct.c
index 936b63483e96..fd74243c416c 100644
--- a/drivers/gpu/drm/xe/xe_guc_ct.c
+++ b/drivers/gpu/drm/xe/xe_guc_ct.c
@@ -1488,7 +1488,7 @@ void xe_guc_ct_snapshot_print(struct xe_guc_ct_snapshot *snapshot,
drm_puts(p, "H2G CTB (all sizes in DW):\n");
guc_ctb_snapshot_print(&snapshot->h2g, p);
- drm_puts(p, "\nG2H CTB (all sizes in DW):\n");
+ drm_puts(p, "G2H CTB (all sizes in DW):\n");
guc_ctb_snapshot_print(&snapshot->g2h, p);
drm_printf(p, "\tg2h outstanding: %d\n",
--
2.43.2
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v4 2/7] drm/xe/guc: Copy GuC log prior to dumping
2024-06-11 1:20 [PATCH v4 0/7] drm/xe/guc: Improve quality and robustness of GuC log dumping John.C.Harrison
2024-06-11 1:20 ` [PATCH v4 1/7] drm/xe/guc: Remove spurious line feed in debug print John.C.Harrison
@ 2024-06-11 1:20 ` John.C.Harrison
2024-06-11 22:30 ` Michal Wajdeczko
2024-06-11 1:20 ` [PATCH v4 3/7] drm/xe/guc: Use a two stage dump for GuC logs and add more info John.C.Harrison
` (12 subsequent siblings)
14 siblings, 1 reply; 23+ messages in thread
From: John.C.Harrison @ 2024-06-11 1:20 UTC (permalink / raw)
To: Intel-Xe; +Cc: John Harrison
From: John Harrison <John.C.Harrison@Intel.com>
Refactor the hexdump code into a separate function ready to be used
for dumps of other objects. Also change to dumping a host memory copy
rather than the live GPU buffer object. Doing so helps prevent
inconsistencies due to the log being updated as it is being dumped. It
also paves the way for decoupling the save from the print to allow
inclusion in error reports such as the devcoredump.
Switch to use the dedicated kernel hexdump helper rather than printf.
The helper makes it easier to print out much wider lines which can
dramatically reduce the total line count of the dump (useful when
dumping to dmesg).
Another issue with dumping such a large buffer is that it can be slow,
especially if dumping to dmesg over a serial port. So add a yield to
prevent the 'task has been stuck for 120s' kernel hang check feature
from firing.
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
---
drivers/gpu/drm/xe/xe_guc_debugfs.c | 2 +-
drivers/gpu/drm/xe/xe_guc_log.c | 119 ++++++++++++++++++++++++----
drivers/gpu/drm/xe/xe_guc_log.h | 2 +-
3 files changed, 106 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_guc_debugfs.c b/drivers/gpu/drm/xe/xe_guc_debugfs.c
index d3822cbea273..68f1f728c22c 100644
--- a/drivers/gpu/drm/xe/xe_guc_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_guc_debugfs.c
@@ -41,7 +41,7 @@ static int guc_log(struct seq_file *m, void *data)
struct drm_printer p = drm_seq_file_printer(m);
xe_pm_runtime_get(xe);
- xe_guc_log_print(&guc->log, &p);
+ xe_guc_log_print(&guc->log, &p, false);
xe_pm_runtime_put(xe);
return 0;
diff --git a/drivers/gpu/drm/xe/xe_guc_log.c b/drivers/gpu/drm/xe/xe_guc_log.c
index a37ee3419428..a35309926271 100644
--- a/drivers/gpu/drm/xe/xe_guc_log.c
+++ b/drivers/gpu/drm/xe/xe_guc_log.c
@@ -9,6 +9,7 @@
#include "xe_bo.h"
#include "xe_gt.h"
+#include "xe_gt_printk.h"
#include "xe_map.h"
#include "xe_module.h"
@@ -49,32 +50,120 @@ static size_t guc_log_size(void)
CAPTURE_BUFFER_SIZE;
}
-void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p)
+#define BYTES_PER_WORD sizeof(u32)
+#define WORDS_PER_DUMP 8
+#define DUMPS_PER_LINE 4
+#define LINES_PER_READ 4
+#define WORDS_PER_READ (WORDS_PER_DUMP * DUMPS_PER_LINE * LINES_PER_READ)
+
+static void xe_hexdump_blob(struct xe_device *xe, const void *blob, size_t size,
+ struct drm_printer *p, bool atomic)
+{
+ char line_buff[DUMPS_PER_LINE * WORDS_PER_DUMP * 9 + 1];
+ const u32 *blob32 = (const u32 *)blob;
+ int i, j, k;
+
+ if (size % (WORDS_PER_READ * BYTES_PER_WORD)) {
+ u32 remain = size % (WORDS_PER_READ * BYTES_PER_WORD);
+
+ drm_err(&xe->drm, "Invalid size for hexdump: 0x%lX vs 0x%lX (%d * %ld) -> 0x%X\n",
+ size, WORDS_PER_READ * BYTES_PER_WORD,
+ WORDS_PER_READ, BYTES_PER_WORD, remain);
+
+ size -= remain;
+ if (!size)
+ return;
+ }
+
+ for (i = 0; i < size / BYTES_PER_WORD; i += WORDS_PER_READ) {
+ const u32 *src = ((const u32 *)blob32) + i;
+
+ for (j = 0; j < WORDS_PER_READ; ) {
+ u32 done = 0;
+
+ for (k = 0; k < DUMPS_PER_LINE; k++) {
+ line_buff[done++] = ' ';
+ done += hex_dump_to_buffer(src + j,
+ sizeof(*src) * (WORDS_PER_READ - j),
+ WORDS_PER_DUMP * BYTES_PER_WORD,
+ BYTES_PER_WORD,
+ line_buff + done,
+ sizeof(line_buff) - done,
+ false);
+ j += WORDS_PER_DUMP;
+ }
+
+ drm_printf(p, "%s\n", line_buff);
+
+ /*
+ * If spewing large amounts of data via a serial console,
+ * this can be a very slow process. So be friendly and try
+ * not to cause 'softlockup on CPU' problems.
+ */
+ if (!atomic)
+ cond_resched();
+ }
+ }
+}
+
+#define GUC_LOG_CHUNK_SIZE SZ_2M
+
+void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p, bool atomic)
{
struct xe_device *xe = log_to_xe(log);
- size_t size;
- int i, j;
+ size_t size, remain;
+ void **copy;
+ int num_chunks, i;
xe_assert(xe, log->bo);
+ /*
+ * NB: kmalloc has a hard limit well below the maximum GuC log buffer size.
+ * Also, can't use vmalloc as might be called from atomic context. So need
+ * to break the buffer up into smaller chunks that can be allocated.
+ */
size = log->bo->size;
+ num_chunks = (size + GUC_LOG_CHUNK_SIZE - 1) / GUC_LOG_CHUNK_SIZE;
-#define DW_PER_READ 128
- xe_assert(xe, !(size % (DW_PER_READ * sizeof(u32))));
- for (i = 0; i < size / sizeof(u32); i += DW_PER_READ) {
- u32 read[DW_PER_READ];
+ copy = kcalloc(num_chunks, sizeof(*copy), atomic ? GFP_ATOMIC : GFP_KERNEL);
+ if (!copy) {
+ drm_printf(p, "Failed to allocate array x%d", num_chunks);
+ return;
+ }
- xe_map_memcpy_from(xe, read, &log->bo->vmap, i * sizeof(u32),
- DW_PER_READ * sizeof(u32));
-#define DW_PER_PRINT 4
- for (j = 0; j < DW_PER_READ / DW_PER_PRINT; ++j) {
- u32 *print = read + j * DW_PER_PRINT;
+ remain = size;
+ for (i = 0; i < num_chunks; i++) {
+ size_t size = min(GUC_LOG_CHUNK_SIZE, remain);
- drm_printf(p, "0x%08x 0x%08x 0x%08x 0x%08x\n",
- *(print + 0), *(print + 1),
- *(print + 2), *(print + 3));
+ copy[i] = kmalloc(size, atomic ? GFP_ATOMIC : GFP_KERNEL);
+ if (!copy[i]) {
+ drm_printf(p, "Failed to allocate %ld at chunk %d of %d",
+ size, i, num_chunks);
+ goto out;
}
+ remain -= size;
}
+
+ remain = size;
+ for (i = 0; i < num_chunks; i++) {
+ size_t size = min(GUC_LOG_CHUNK_SIZE, remain);
+
+ xe_map_memcpy_from(xe, copy[i], &log->bo->vmap, i * GUC_LOG_CHUNK_SIZE, size);
+ remain -= size;
+ }
+
+ remain = size;
+ for (i = 0; i < num_chunks; i++) {
+ size_t size = min(GUC_LOG_CHUNK_SIZE, remain);
+
+ xe_hexdump_blob(xe, copy[i], size, p, atomic);
+ remain -= size;
+ }
+
+out:
+ for (i = 0; i < num_chunks; i++)
+ kfree(copy[i]);
+ kfree(copy);
}
int xe_guc_log_init(struct xe_guc_log *log)
diff --git a/drivers/gpu/drm/xe/xe_guc_log.h b/drivers/gpu/drm/xe/xe_guc_log.h
index 2d25ab28b4b3..5149b492c3b8 100644
--- a/drivers/gpu/drm/xe/xe_guc_log.h
+++ b/drivers/gpu/drm/xe/xe_guc_log.h
@@ -37,7 +37,7 @@ struct drm_printer;
#define GUC_LOG_LEVEL_MAX GUC_VERBOSITY_TO_LOG_LEVEL(GUC_LOG_VERBOSITY_MAX)
int xe_guc_log_init(struct xe_guc_log *log);
-void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p);
+void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p, bool atomic);
static inline u32
xe_guc_log_get_level(struct xe_guc_log *log)
--
2.43.2
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v4 3/7] drm/xe/guc: Use a two stage dump for GuC logs and add more info
2024-06-11 1:20 [PATCH v4 0/7] drm/xe/guc: Improve quality and robustness of GuC log dumping John.C.Harrison
2024-06-11 1:20 ` [PATCH v4 1/7] drm/xe/guc: Remove spurious line feed in debug print John.C.Harrison
2024-06-11 1:20 ` [PATCH v4 2/7] drm/xe/guc: Copy GuC log prior to dumping John.C.Harrison
@ 2024-06-11 1:20 ` John.C.Harrison
2024-06-11 22:49 ` Michal Wajdeczko
2024-06-11 1:20 ` [PATCH v4 4/7] drm/print: Introduce drm_line_printer John.C.Harrison
` (11 subsequent siblings)
14 siblings, 1 reply; 23+ messages in thread
From: John.C.Harrison @ 2024-06-11 1:20 UTC (permalink / raw)
To: Intel-Xe; +Cc: John Harrison
From: John Harrison <John.C.Harrison@Intel.com>
Split the GuC log dump into a two stage snapshot and print mechanism.
This allows the log to be captured at the point of an error (which may
be in a resticted context) and then dump it out later (from a regular
context such as a worker function or a sysfs file handler).
Also add a bunch of other useful pieces of information that can help
(or are fundamentally required!) to decode and parse the log.
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
---
drivers/gpu/drm/xe/regs/xe_guc_regs.h | 1 +
drivers/gpu/drm/xe/xe_guc_log.c | 150 ++++++++++++++++++++------
drivers/gpu/drm/xe/xe_guc_log.h | 6 ++
drivers/gpu/drm/xe/xe_guc_log_types.h | 29 +++++
4 files changed, 155 insertions(+), 31 deletions(-)
diff --git a/drivers/gpu/drm/xe/regs/xe_guc_regs.h b/drivers/gpu/drm/xe/regs/xe_guc_regs.h
index a5fd14307f94..b27b73680c12 100644
--- a/drivers/gpu/drm/xe/regs/xe_guc_regs.h
+++ b/drivers/gpu/drm/xe/regs/xe_guc_regs.h
@@ -84,6 +84,7 @@
#define HUC_LOADING_AGENT_GUC REG_BIT(1)
#define GUC_WOPCM_OFFSET_VALID REG_BIT(0)
#define GUC_MAX_IDLE_COUNT XE_REG(0xc3e4)
+#define GUC_PMTIMESTAMP XE_REG(0xc3e8)
#define GUC_SEND_INTERRUPT XE_REG(0xc4c8)
#define GUC_SEND_TRIGGER REG_BIT(0)
diff --git a/drivers/gpu/drm/xe/xe_guc_log.c b/drivers/gpu/drm/xe/xe_guc_log.c
index a35309926271..a35d3cc0c369 100644
--- a/drivers/gpu/drm/xe/xe_guc_log.c
+++ b/drivers/gpu/drm/xe/xe_guc_log.c
@@ -7,12 +7,20 @@
#include <drm/drm_managed.h>
+#include "regs/xe_guc_regs.h"
#include "xe_bo.h"
#include "xe_gt.h"
#include "xe_gt_printk.h"
#include "xe_map.h"
+#include "xe_mmio.h"
#include "xe_module.h"
+static struct xe_guc *
+log_to_guc(struct xe_guc_log *log)
+{
+ return container_of(log, struct xe_guc, log);
+}
+
static struct xe_gt *
log_to_gt(struct xe_guc_log *log)
{
@@ -108,62 +116,142 @@ static void xe_hexdump_blob(struct xe_device *xe, const void *blob, size_t size,
#define GUC_LOG_CHUNK_SIZE SZ_2M
-void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p, bool atomic)
+struct xe_guc_log_snapshot *xe_guc_log_snapshot_alloc(struct xe_guc_log *log, bool atomic)
{
- struct xe_device *xe = log_to_xe(log);
- size_t size, remain;
- void **copy;
- int num_chunks, i;
+ struct xe_guc_log_snapshot *snapshot;
+ size_t remain;
+ int i;
- xe_assert(xe, log->bo);
+ snapshot = kzalloc(sizeof(*snapshot), atomic ? GFP_ATOMIC : GFP_KERNEL);
+ if (!snapshot)
+ return NULL;
/*
* NB: kmalloc has a hard limit well below the maximum GuC log buffer size.
* Also, can't use vmalloc as might be called from atomic context. So need
* to break the buffer up into smaller chunks that can be allocated.
*/
- size = log->bo->size;
- num_chunks = (size + GUC_LOG_CHUNK_SIZE - 1) / GUC_LOG_CHUNK_SIZE;
+ snapshot->size = log->bo->size;
+ snapshot->num_chunks = (snapshot->size + GUC_LOG_CHUNK_SIZE - 1) / GUC_LOG_CHUNK_SIZE;
- copy = kcalloc(num_chunks, sizeof(*copy), atomic ? GFP_ATOMIC : GFP_KERNEL);
- if (!copy) {
- drm_printf(p, "Failed to allocate array x%d", num_chunks);
- return;
- }
+ snapshot->copy = kcalloc(snapshot->num_chunks, sizeof(*snapshot->copy),
+ atomic ? GFP_ATOMIC : GFP_KERNEL);
+ if (!snapshot->copy)
+ goto fail_snap;
- remain = size;
- for (i = 0; i < num_chunks; i++) {
+ remain = snapshot->size;
+ for (i = 0; i < snapshot->num_chunks; i++) {
size_t size = min(GUC_LOG_CHUNK_SIZE, remain);
- copy[i] = kmalloc(size, atomic ? GFP_ATOMIC : GFP_KERNEL);
- if (!copy[i]) {
- drm_printf(p, "Failed to allocate %ld at chunk %d of %d",
- size, i, num_chunks);
- goto out;
- }
+ snapshot->copy[i] = kmalloc(size, atomic ? GFP_ATOMIC : GFP_KERNEL);
+ if (!snapshot->copy[i])
+ goto fail_copy;
remain -= size;
}
- remain = size;
- for (i = 0; i < num_chunks; i++) {
+ return snapshot;
+
+fail_copy:
+ for (i = 0; i < snapshot->num_chunks; i++)
+ kfree(snapshot->copy[i]);
+ kfree(snapshot->copy);
+fail_snap:
+ kfree(snapshot);
+ return NULL;
+}
+
+void xe_guc_log_snapshot_free(struct xe_guc_log_snapshot *snapshot)
+{
+ int i;
+
+ if (!snapshot)
+ return;
+
+ if (!snapshot->copy) {
+ for (i = 0; i < snapshot->num_chunks; i++)
+ kfree(snapshot->copy[i]);
+ kfree(snapshot->copy);
+ }
+
+ kfree(snapshot);
+}
+
+struct xe_guc_log_snapshot *xe_guc_log_snapshot_capture(struct xe_guc_log *log, bool atomic)
+{
+ struct xe_guc_log_snapshot *snapshot;
+ struct xe_device *xe = log_to_xe(log);
+ struct xe_guc *guc = log_to_guc(log);
+ struct xe_gt *gt = log_to_gt(log);
+ size_t remain;
+ int i;
+
+ if (!log->bo) {
+ xe_gt_err(gt, "GuC log not allocated!\n");
+ return NULL;
+ }
+
+ snapshot = xe_guc_log_snapshot_alloc(log, atomic);
+ if (!snapshot) {
+ xe_gt_err(gt, "GuC log snapshot not allocated!\n");
+ return NULL;
+ }
+
+ remain = snapshot->size;
+ for (i = 0; i < snapshot->num_chunks; i++) {
size_t size = min(GUC_LOG_CHUNK_SIZE, remain);
- xe_map_memcpy_from(xe, copy[i], &log->bo->vmap, i * GUC_LOG_CHUNK_SIZE, size);
+ xe_map_memcpy_from(xe, snapshot->copy[i], &log->bo->vmap,
+ i * GUC_LOG_CHUNK_SIZE, size);
remain -= size;
}
- remain = size;
- for (i = 0; i < num_chunks; i++) {
+ snapshot->ktime = ktime_get_boottime_ns();
+ snapshot->stamp = xe_mmio_read32(gt, GUC_PMTIMESTAMP);
+ snapshot->ref_clk = gt->info.reference_clock;
+ snapshot->level = log->level;
+ snapshot->ver_found = guc->fw.versions.found[XE_UC_FW_VER_RELEASE];
+ snapshot->ver_want = guc->fw.versions.wanted;
+ snapshot->path = guc->fw.path;
+
+ return snapshot;
+}
+
+void xe_guc_log_snapshot_print(struct xe_device *xe, struct xe_guc_log_snapshot *snapshot,
+ struct drm_printer *p, bool atomic)
+{
+ size_t remain;
+ int i;
+
+ if (!snapshot) {
+ drm_printf(p, "GuC log snapshot not allocated!\n");
+ return;
+ }
+
+ drm_printf(p, "GuC version %u.%u.%u (wanted %u.%u.%u)\n",
+ snapshot->ver_found.major, snapshot->ver_found.minor, snapshot->ver_found.patch,
+ snapshot->ver_want.major, snapshot->ver_want.minor, snapshot->ver_want.patch);
+ drm_printf(p, "GuC firmware: %s\n", snapshot->path);
+ drm_printf(p, "Kernel timestamp: 0x%08llX [%llu]\n", snapshot->ktime, snapshot->ktime);
+ drm_printf(p, "GuC timestamp: 0x%08X [%u]\n", snapshot->stamp, snapshot->stamp);
+ drm_printf(p, "CS timestamp frequency: %u Hz\n", snapshot->ref_clk);
+ drm_printf(p, "Log level: %u\n", snapshot->level);
+
+ remain = snapshot->size;
+ for (i = 0; i < snapshot->num_chunks; i++) {
size_t size = min(GUC_LOG_CHUNK_SIZE, remain);
- xe_hexdump_blob(xe, copy[i], size, p, atomic);
+ xe_hexdump_blob(xe, snapshot->copy[i], size, p, atomic);
remain -= size;
}
+}
+
+void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p, bool atomic)
+{
+ struct xe_guc_log_snapshot *snapshot;
-out:
- for (i = 0; i < num_chunks; i++)
- kfree(copy[i]);
- kfree(copy);
+ snapshot = xe_guc_log_snapshot_capture(log, atomic);
+ xe_guc_log_snapshot_print(log_to_xe(log), snapshot, p, atomic);
+ xe_guc_log_snapshot_free(snapshot);
}
int xe_guc_log_init(struct xe_guc_log *log)
diff --git a/drivers/gpu/drm/xe/xe_guc_log.h b/drivers/gpu/drm/xe/xe_guc_log.h
index 5149b492c3b8..6e4d0b369c19 100644
--- a/drivers/gpu/drm/xe/xe_guc_log.h
+++ b/drivers/gpu/drm/xe/xe_guc_log.h
@@ -9,6 +9,7 @@
#include "xe_guc_log_types.h"
struct drm_printer;
+struct xe_device;
#if IS_ENABLED(CONFIG_DRM_XE_LARGE_GUC_BUFFER)
#define CRASH_BUFFER_SIZE SZ_1M
@@ -38,6 +39,11 @@ struct drm_printer;
int xe_guc_log_init(struct xe_guc_log *log);
void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p, bool atomic);
+struct xe_guc_log_snapshot *xe_guc_log_snapshot_alloc(struct xe_guc_log *log, bool atomic);
+struct xe_guc_log_snapshot *xe_guc_log_snapshot_capture(struct xe_guc_log *log, bool atomic);
+void xe_guc_log_snapshot_print(struct xe_device *xe, struct xe_guc_log_snapshot *snapshot,
+ struct drm_printer *p, bool atomic);
+void xe_guc_log_snapshot_free(struct xe_guc_log_snapshot *snapshot);
static inline u32
xe_guc_log_get_level(struct xe_guc_log *log)
diff --git a/drivers/gpu/drm/xe/xe_guc_log_types.h b/drivers/gpu/drm/xe/xe_guc_log_types.h
index 125080d138a7..e3a6a44c2f18 100644
--- a/drivers/gpu/drm/xe/xe_guc_log_types.h
+++ b/drivers/gpu/drm/xe/xe_guc_log_types.h
@@ -8,8 +8,37 @@
#include <linux/types.h>
+#include "xe_uc_fw_types.h"
+
struct xe_bo;
+/**
+ * struct xe_guc_log_snapshot:
+ * Capture of the GuC log plus various state useful for decoding the log
+ */
+struct xe_guc_log_snapshot {
+ /** @size: Size in bytes of the @copy allocation */
+ size_t size;
+ /** @copy: Host memory copy of the log buffer for later dumping, split into chunks */
+ void **copy;
+ /** @num_chunks: Number of chunks withint @copy */
+ int num_chunks;
+ /** @ktime: Kernel time the snapshot was taken */
+ u64 ktime;
+ /** @stamp: GuC timestamp at which the snapshot was taken */
+ u32 stamp;
+ /** @ref_clk: GuC timestamp frequency */
+ u32 ref_clk;
+ /** @level: GuC log verbosity level */
+ u32 level;
+ /** @ver_found: GuC firmware version */
+ struct xe_uc_fw_version ver_found;
+ /** @ver_want: GuC firmware version that driver expected */
+ struct xe_uc_fw_version ver_want;
+ /** @path: Path of GuC firmware blob */
+ const char *path;
+};
+
/**
* struct xe_guc_log - GuC log
*/
--
2.43.2
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v4 4/7] drm/print: Introduce drm_line_printer
2024-06-11 1:20 [PATCH v4 0/7] drm/xe/guc: Improve quality and robustness of GuC log dumping John.C.Harrison
` (2 preceding siblings ...)
2024-06-11 1:20 ` [PATCH v4 3/7] drm/xe/guc: Use a two stage dump for GuC logs and add more info John.C.Harrison
@ 2024-06-11 1:20 ` John.C.Harrison
2024-06-11 1:20 ` [PATCH v4 5/7] drm/xe/guc: Add a helper function for dumping GuC log to dmesg John.C.Harrison
` (10 subsequent siblings)
14 siblings, 0 replies; 23+ messages in thread
From: John.C.Harrison @ 2024-06-11 1:20 UTC (permalink / raw)
To: Intel-Xe; +Cc: Michal Wajdeczko, Jani Nikula, John Harrison
From: Michal Wajdeczko <michal.wajdeczko@intel.com>
This drm printer wrapper can be used to increase the robustness of
the captured output generated by any other drm_printer to make sure
we didn't lost any intermediate lines of the output by adding line
numbers to each output line. Helpful for capturing some crash data.
v2: Extended short int counters to full int (JohnH)
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: John Harrison <John.C.Harrison@Intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/drm_print.c | 14 ++++++++
include/drm/drm_print.h | 64 +++++++++++++++++++++++++++++++++++++
2 files changed, 78 insertions(+)
diff --git a/drivers/gpu/drm/drm_print.c b/drivers/gpu/drm/drm_print.c
index cf24dfdeb6b2..9c774f065952 100644
--- a/drivers/gpu/drm/drm_print.c
+++ b/drivers/gpu/drm/drm_print.c
@@ -232,6 +232,20 @@ void __drm_printfn_err(struct drm_printer *p, struct va_format *vaf)
}
EXPORT_SYMBOL(__drm_printfn_err);
+void __drm_printfn_line(struct drm_printer *p, struct va_format *vaf)
+{
+ unsigned int counter = ++p->line.counter;
+ const char *prefix = p->prefix ?: "";
+ const char *pad = p->prefix ? " " : "";
+
+ if (p->line.series)
+ drm_printf(p->arg, "%s%s%u.%u: %pV",
+ prefix, pad, p->line.series, counter, vaf);
+ else
+ drm_printf(p->arg, "%s%s%u: %pV", prefix, pad, counter, vaf);
+}
+EXPORT_SYMBOL(__drm_printfn_line);
+
/**
* drm_puts - print a const string to a &drm_printer stream
* @p: the &drm printer
diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h
index 5d9dff5149c9..4bdcba581739 100644
--- a/include/drm/drm_print.h
+++ b/include/drm/drm_print.h
@@ -177,6 +177,10 @@ struct drm_printer {
void *arg;
const void *origin;
const char *prefix;
+ struct {
+ unsigned int series;
+ unsigned int counter;
+ } line;
enum drm_debug_category category;
};
@@ -187,6 +191,7 @@ void __drm_puts_seq_file(struct drm_printer *p, const char *str);
void __drm_printfn_info(struct drm_printer *p, struct va_format *vaf);
void __drm_printfn_dbg(struct drm_printer *p, struct va_format *vaf);
void __drm_printfn_err(struct drm_printer *p, struct va_format *vaf);
+void __drm_printfn_line(struct drm_printer *p, struct va_format *vaf);
__printf(2, 3)
void drm_printf(struct drm_printer *p, const char *f, ...);
@@ -359,6 +364,65 @@ static inline struct drm_printer drm_err_printer(struct drm_device *drm,
return p;
}
+/**
+ * drm_line_printer - construct a &drm_printer that prefixes outputs with line numbers
+ * @p: the &struct drm_printer which actually generates the output
+ * @prefix: optional output prefix, or NULL for no prefix
+ * @series: optional unique series identifier, or 0 to omit identifier in the output
+ *
+ * This printer can be used to increase the robustness of the captured output
+ * to make sure we didn't lost any intermediate lines of the output. Helpful
+ * while capturing some crash data.
+ *
+ * Example 1::
+ *
+ * void crash_dump(struct drm_device *drm)
+ * {
+ * static unsigned int id;
+ * struct drm_printer p = drm_err_printer(drm, "crash");
+ * struct drm_printer lp = drm_line_printer(&p, "dump", ++id);
+ *
+ * drm_printf(&lp, "foo");
+ * drm_printf(&lp, "bar");
+ * }
+ *
+ * Above code will print into the dmesg something like::
+ *
+ * [ ] 0000:00:00.0: [drm] *ERROR* crash dump 1.1: foo
+ * [ ] 0000:00:00.0: [drm] *ERROR* crash dump 1.2: bar
+ *
+ * Example 2::
+ *
+ * void line_dump(struct device *dev)
+ * {
+ * struct drm_printer p = drm_info_printer(dev);
+ * struct drm_printer lp = drm_line_printer(&p, NULL, 0);
+ *
+ * drm_printf(&lp, "foo");
+ * drm_printf(&lp, "bar");
+ * }
+ *
+ * Above code will print::
+ *
+ * [ ] 0000:00:00.0: [drm] 1: foo
+ * [ ] 0000:00:00.0: [drm] 2: bar
+ *
+ * RETURNS:
+ * The &drm_printer object
+ */
+static inline struct drm_printer drm_line_printer(struct drm_printer *p,
+ const char *prefix,
+ unsigned int series)
+{
+ struct drm_printer lp = {
+ .printfn = __drm_printfn_line,
+ .arg = p,
+ .prefix = prefix,
+ .line = { .series = series, },
+ };
+ return lp;
+}
+
/*
* struct device based logging
*
--
2.43.2
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v4 5/7] drm/xe/guc: Add a helper function for dumping GuC log to dmesg
2024-06-11 1:20 [PATCH v4 0/7] drm/xe/guc: Improve quality and robustness of GuC log dumping John.C.Harrison
` (3 preceding siblings ...)
2024-06-11 1:20 ` [PATCH v4 4/7] drm/print: Introduce drm_line_printer John.C.Harrison
@ 2024-06-11 1:20 ` John.C.Harrison
2024-06-11 1:20 ` [PATCH v4 6/7] drm/xe/guc: Dead CT helper John.C.Harrison
` (9 subsequent siblings)
14 siblings, 0 replies; 23+ messages in thread
From: John.C.Harrison @ 2024-06-11 1:20 UTC (permalink / raw)
To: Intel-Xe; +Cc: John Harrison
From: John Harrison <John.C.Harrison@Intel.com>
Create a helper function that can be used to dump the GuC log to dmesg
in a manner that is reliable for extraction and decode. The intention
is that calls to this can be added by developers when debugging
specific issues that require a GuC log but do not allow easy capture
of the log - e.g. failures in selftests and failues that lead to
kernel hangs.
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
---
drivers/gpu/drm/xe/xe_guc_log.c | 14 ++++++++++++++
drivers/gpu/drm/xe/xe_guc_log.h | 1 +
2 files changed, 15 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_guc_log.c b/drivers/gpu/drm/xe/xe_guc_log.c
index a35d3cc0c369..9714ee6f99e0 100644
--- a/drivers/gpu/drm/xe/xe_guc_log.c
+++ b/drivers/gpu/drm/xe/xe_guc_log.c
@@ -245,6 +245,20 @@ void xe_guc_log_snapshot_print(struct xe_device *xe, struct xe_guc_log_snapshot
}
}
+void xe_guc_log_print_dmesg(struct xe_guc_log *log, bool atomic)
+{
+ struct xe_gt *gt = log_to_gt(log);
+ static int g_count;
+ struct drm_printer ip = xe_gt_info_printer(gt);
+ struct drm_printer lp = drm_line_printer(&ip, "Capture", ++g_count);
+
+ drm_printf(&lp, "Dumping GuC log for %ps...\n", __builtin_return_address(0));
+
+ xe_guc_log_print(log, &lp, atomic);
+
+ drm_printf(&lp, "Done.\n");
+}
+
void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p, bool atomic)
{
struct xe_guc_log_snapshot *snapshot;
diff --git a/drivers/gpu/drm/xe/xe_guc_log.h b/drivers/gpu/drm/xe/xe_guc_log.h
index 6e4d0b369c19..29154ab507ff 100644
--- a/drivers/gpu/drm/xe/xe_guc_log.h
+++ b/drivers/gpu/drm/xe/xe_guc_log.h
@@ -39,6 +39,7 @@ struct xe_device;
int xe_guc_log_init(struct xe_guc_log *log);
void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p, bool atomic);
+void xe_guc_log_print_dmesg(struct xe_guc_log *log, bool atomic);
struct xe_guc_log_snapshot *xe_guc_log_snapshot_alloc(struct xe_guc_log *log, bool atomic);
struct xe_guc_log_snapshot *xe_guc_log_snapshot_capture(struct xe_guc_log *log, bool atomic);
void xe_guc_log_snapshot_print(struct xe_device *xe, struct xe_guc_log_snapshot *snapshot,
--
2.43.2
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v4 6/7] drm/xe/guc: Dead CT helper
2024-06-11 1:20 [PATCH v4 0/7] drm/xe/guc: Improve quality and robustness of GuC log dumping John.C.Harrison
` (4 preceding siblings ...)
2024-06-11 1:20 ` [PATCH v4 5/7] drm/xe/guc: Add a helper function for dumping GuC log to dmesg John.C.Harrison
@ 2024-06-11 1:20 ` John.C.Harrison
2024-06-11 23:20 ` Michal Wajdeczko
2024-06-11 1:20 ` [PATCH v4 7/7] drm/xe/guc: Dump entire CTB on errors John.C.Harrison
` (8 subsequent siblings)
14 siblings, 1 reply; 23+ messages in thread
From: John.C.Harrison @ 2024-06-11 1:20 UTC (permalink / raw)
To: Intel-Xe; +Cc: John Harrison
From: John Harrison <John.C.Harrison@Intel.com>
Add a worker function helper for asynchronously dumping state when an
internal/fatal error is detected in CT processing. Being asynchronous
is required to avoid deadlocks and scheduling-while-atomic or
process-stalled-for-too-long issues. Also check for a bunch more error
conditions and improve the handling of some existing checks.
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
---
.../drm/xe/abi/guc_communication_ctb_abi.h | 1 +
drivers/gpu/drm/xe/xe_guc_ct.c | 257 ++++++++++++++++--
drivers/gpu/drm/xe/xe_guc_ct_types.h | 22 ++
3 files changed, 259 insertions(+), 21 deletions(-)
diff --git a/drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h b/drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h
index 8f86a16dc577..f58198cf2cf6 100644
--- a/drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h
+++ b/drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h
@@ -52,6 +52,7 @@ struct guc_ct_buffer_desc {
#define GUC_CTB_STATUS_OVERFLOW (1 << 0)
#define GUC_CTB_STATUS_UNDERFLOW (1 << 1)
#define GUC_CTB_STATUS_MISMATCH (1 << 2)
+#define GUC_CTB_STATUS_DISABLED (1 << 3)
u32 reserved[13];
} __packed;
static_assert(sizeof(struct guc_ct_buffer_desc) == 64);
diff --git a/drivers/gpu/drm/xe/xe_guc_ct.c b/drivers/gpu/drm/xe/xe_guc_ct.c
index fd74243c416c..744402f9e774 100644
--- a/drivers/gpu/drm/xe/xe_guc_ct.c
+++ b/drivers/gpu/drm/xe/xe_guc_ct.c
@@ -25,12 +25,58 @@
#include "xe_gt_sriov_pf_monitor.h"
#include "xe_gt_tlb_invalidation.h"
#include "xe_guc.h"
+#include "xe_guc_log.h"
#include "xe_guc_relay.h"
#include "xe_guc_submit.h"
#include "xe_map.h"
#include "xe_pm.h"
#include "xe_trace.h"
+#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
+enum {
+ CT_DEAD_ALIVE = 0,
+ CT_DEAD_RESET, /* 0x0001 */
+ CT_DEAD_SETUP, /* 0x0002 */
+ CT_DEAD_H2G_WRITE, /* 0x0004 */
+ CT_DEAD_H2G_HAS_ROOM, /* 0x0008 */
+ CT_DEAD_G2H_READ, /* 0x0010 */
+ CT_DEAD_G2H_RECV, /* 0x0020 */
+ CT_DEAD_G2H_RELEASE, /* 0x0040 */
+ CT_DEAD_DEADLOCK, /* 0x0080 */
+ CT_DEAD_PROCESS_FAILED, /* 0x0100 */
+ CT_DEAD_FAST_G2H, /* 0x0200 */
+ CT_DEAD_PARSE_G2H_RESPONSE, /* 0x0400 */
+ CT_DEAD_PARSE_G2H_UNKNOWN, /* 0x0800 */
+ CT_DEAD_PARSE_G2H_ORIGIN, /* 0x1000 */
+ CT_DEAD_PARSE_G2H_TYPE, /* 0x2000 */
+};
+
+static void ct_dead_worker_func(struct work_struct *w);
+
+#define CT_DEAD(ct, hxg, reason_code) \
+ do { \
+ struct guc_ctb *_hxg = (hxg); \
+ if (_hxg) \
+ _hxg->info.broken = true; \
+ if (!(ct)->dead.reported) { \
+ struct xe_guc *guc = ct_to_guc(ct); \
+ spin_lock_irq(&ct->dead.lock); \
+ (ct)->dead.reason |= 1 << CT_DEAD_##reason_code; \
+ (ct)->dead.snapshot_log = xe_guc_log_snapshot_capture(&guc->log, true); \
+ (ct)->dead.snapshot_ct = xe_guc_ct_snapshot_capture((ct), true); \
+ spin_unlock_irq(&ct->dead.lock); \
+ queue_work(system_unbound_wq, &(ct)->dead.worker); \
+ } \
+ } while (0)
+#else
+#define CT_DEAD(ct, hxg, reason) \
+ do { \
+ struct guc_ctb *_hxg = (hxg); \
+ if (_hxg) \
+ _hxg->info.broken = true; \
+ } while (0)
+#endif
+
/* Used when a CT send wants to block and / or receive data */
struct g2h_fence {
u32 *response_buffer;
@@ -158,6 +204,10 @@ int xe_guc_ct_init(struct xe_guc_ct *ct)
xa_init(&ct->fence_lookup);
INIT_WORK(&ct->g2h_worker, g2h_worker_func);
INIT_DELAYED_WORK(&ct->safe_mode_worker, safe_mode_worker_func);
+#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
+ spin_lock_init(&ct->dead.lock);
+ INIT_WORK(&ct->dead.worker, ct_dead_worker_func);
+#endif
init_waitqueue_head(&ct->wq);
init_waitqueue_head(&ct->g2h_fence_wq);
@@ -392,10 +442,18 @@ int xe_guc_ct_enable(struct xe_guc_ct *ct)
if (ct_needs_safe_mode(ct))
ct_enter_safe_mode(ct);
+#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
+ spin_lock_irq(&ct->dead.lock);
+ if (ct->dead.reason)
+ ct->dead.reason |= CT_DEAD_RESET;
+ spin_unlock_irq(&ct->dead.lock);
+#endif
+
return 0;
err_out:
xe_gt_err(gt, "Failed to enable GuC CT (%pe)\n", ERR_PTR(err));
+ CT_DEAD(ct, NULL, SETUP);
return err;
}
@@ -439,6 +497,19 @@ static bool h2g_has_room(struct xe_guc_ct *ct, u32 cmd_len)
if (cmd_len > h2g->info.space) {
h2g->info.head = desc_read(ct_to_xe(ct), h2g, head);
+
+ if (h2g->info.head > h2g->info.size) {
+ struct xe_device *xe = ct_to_xe(ct);
+ u32 desc_status = desc_read(xe, h2g, status);
+
+ desc_write(xe, h2g, status, desc_status | GUC_CTB_STATUS_OVERFLOW);
+
+ xe_gt_err(ct_to_gt(ct), "CT: invalid head offset %u >= %u)\n",
+ h2g->info.head, h2g->info.size);
+ CT_DEAD(ct, h2g, H2G_HAS_ROOM);
+ return false;
+ }
+
h2g->info.space = CIRC_SPACE(h2g->info.tail, h2g->info.head,
h2g->info.size) -
h2g->info.resv_space;
@@ -490,8 +561,16 @@ static void __g2h_reserve_space(struct xe_guc_ct *ct, u32 g2h_len, u32 num_g2h)
static void __g2h_release_space(struct xe_guc_ct *ct, u32 g2h_len)
{
lockdep_assert_held(&ct->fast_lock);
- xe_gt_assert(ct_to_gt(ct), ct->ctbs.g2h.info.space + g2h_len <=
- ct->ctbs.g2h.info.size - ct->ctbs.g2h.info.resv_space);
+ if (ct->ctbs.g2h.info.space + g2h_len >
+ ct->ctbs.g2h.info.size - ct->ctbs.g2h.info.resv_space) {
+ xe_gt_err(ct_to_gt(ct), "Invalid G2H release: %d + %d vs %d - %d -> %d vs %d!\n",
+ ct->ctbs.g2h.info.space, g2h_len,
+ ct->ctbs.g2h.info.size, ct->ctbs.g2h.info.resv_space,
+ ct->ctbs.g2h.info.space + g2h_len,
+ ct->ctbs.g2h.info.size - ct->ctbs.g2h.info.resv_space);
+ CT_DEAD(ct, &ct->ctbs.g2h, G2H_RELEASE);
+ return;
+ }
ct->ctbs.g2h.info.space += g2h_len;
--ct->g2h_outstanding;
@@ -517,12 +596,44 @@ static int h2g_write(struct xe_guc_ct *ct, const u32 *action, u32 len,
u32 full_len;
struct iosys_map map = IOSYS_MAP_INIT_OFFSET(&h2g->cmds,
tail * sizeof(u32));
+ u32 desc_status;
full_len = len + GUC_CTB_HDR_LEN;
lockdep_assert_held(&ct->lock);
xe_gt_assert(gt, full_len <= GUC_CTB_MSG_MAX_LEN);
- xe_gt_assert(gt, tail <= h2g->info.size);
+
+ desc_status = desc_read(xe, h2g, status);
+ if (desc_status) {
+ xe_gt_err(gt, "CT write: non-zero status: %u\n", desc_status);
+ goto corrupted;
+ }
+
+#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
+{
+ u32 desc_tail = desc_read(xe, h2g, tail);
+ u32 desc_head = desc_read(xe, h2g, head);
+
+ if (tail != desc_tail) {
+ desc_write(xe, h2g, status, desc_status | GUC_CTB_STATUS_MISMATCH);
+ xe_gt_err(gt, "CT write: tail was modified %u != %u\n", desc_tail, tail);
+ goto corrupted;
+ }
+
+ if (tail > h2g->info.size) {
+ desc_write(xe, h2g, status, desc_status | GUC_CTB_STATUS_OVERFLOW);
+ xe_gt_err(gt, "CT write: tail out of range: %u vs %u\n", tail, h2g->info.size);
+ goto corrupted;
+ }
+
+ if (desc_head >= h2g->info.size) {
+ desc_write(xe, h2g, status, desc_status | GUC_CTB_STATUS_OVERFLOW);
+ xe_gt_err(gt, "CT write: invalid head offset %u >= %u)\n",
+ desc_head, h2g->info.size);
+ goto corrupted;
+ }
+}
+#endif
/* Command will wrap, zero fill (NOPs), return and check credits again */
if (tail + full_len > h2g->info.size) {
@@ -575,6 +686,10 @@ static int h2g_write(struct xe_guc_ct *ct, const u32 *action, u32 len,
desc_read(xe, h2g, head), h2g->info.tail);
return 0;
+
+corrupted:
+ CT_DEAD(ct, &ct->ctbs.h2g, H2G_WRITE);
+ return -EPIPE;
}
/*
@@ -685,7 +800,6 @@ static int guc_ct_send_locked(struct xe_guc_ct *ct, const u32 *action, u32 len,
struct g2h_fence *g2h_fence)
{
struct xe_gt *gt = ct_to_gt(ct);
- struct drm_printer p = xe_gt_info_printer(gt);
unsigned int sleep_period_ms = 1;
int ret;
@@ -738,8 +852,13 @@ static int guc_ct_send_locked(struct xe_guc_ct *ct, const u32 *action, u32 len,
goto broken;
#undef g2h_avail
- if (dequeue_one_g2h(ct) < 0)
+ ret = dequeue_one_g2h(ct);
+ if (ret < 0) {
+ if (ret != -ECANCELED)
+ xe_gt_err(ct_to_gt(ct), "CTB receive failed (%pe)",
+ ERR_PTR(ret));
goto broken;
+ }
goto try_again;
}
@@ -748,8 +867,7 @@ static int guc_ct_send_locked(struct xe_guc_ct *ct, const u32 *action, u32 len,
broken:
xe_gt_err(gt, "No forward process on H2G, reset required\n");
- xe_guc_ct_print(ct, &p, true);
- ct->ctbs.h2g.info.broken = true;
+ CT_DEAD(ct, &ct->ctbs.h2g, DEADLOCK);
return -EDEADLK;
}
@@ -976,6 +1094,7 @@ static int parse_g2h_response(struct xe_guc_ct *ct, u32 *msg, u32 len)
else
xe_gt_err(gt, "unexpected response %u for FAST_REQ H2G fence 0x%x!\n",
type, fence);
+ CT_DEAD(ct, NULL, PARSE_G2H_RESPONSE);
return -EPROTO;
}
@@ -984,8 +1103,9 @@ static int parse_g2h_response(struct xe_guc_ct *ct, u32 *msg, u32 len)
if (unlikely(!g2h_fence)) {
/* Don't tear down channel, as send could've timed out */
xe_gt_warn(gt, "G2H fence (%u) not found!\n", fence);
+ CT_DEAD(ct, NULL, PARSE_G2H_UNKNOWN);
g2h_release_space(ct, GUC_CTB_HXG_MSG_MAX_LEN);
- return 0;
+ return -EPROTO;
}
xe_gt_assert(gt, fence == g2h_fence->seqno);
@@ -1027,7 +1147,7 @@ static int parse_g2h_msg(struct xe_guc_ct *ct, u32 *msg, u32 len)
if (unlikely(origin != GUC_HXG_ORIGIN_GUC)) {
xe_gt_err(gt, "G2H channel broken on read, origin=%u, reset required\n",
origin);
- ct->ctbs.g2h.info.broken = true;
+ CT_DEAD(ct, &ct->ctbs.g2h, PARSE_G2H_ORIGIN);
return -EPROTO;
}
@@ -1045,7 +1165,7 @@ static int parse_g2h_msg(struct xe_guc_ct *ct, u32 *msg, u32 len)
default:
xe_gt_err(gt, "G2H channel broken on read, type=%u, reset required\n",
type);
- ct->ctbs.g2h.info.broken = true;
+ CT_DEAD(ct, &ct->ctbs.g2h, PARSE_G2H_TYPE);
ret = -EOPNOTSUPP;
}
@@ -1122,9 +1242,11 @@ static int process_g2h_msg(struct xe_guc_ct *ct, u32 *msg, u32 len)
xe_gt_err(gt, "unexpected G2H action 0x%04x\n", action);
}
- if (ret)
+ if (ret) {
xe_gt_err(gt, "G2H action 0x%04x failed (%pe)\n",
action, ERR_PTR(ret));
+ CT_DEAD(ct, NULL, PROCESS_FAILED);
+ }
return 0;
}
@@ -1134,7 +1256,7 @@ static int g2h_read(struct xe_guc_ct *ct, u32 *msg, bool fast_path)
struct xe_device *xe = ct_to_xe(ct);
struct xe_gt *gt = ct_to_gt(ct);
struct guc_ctb *g2h = &ct->ctbs.g2h;
- u32 tail, head, len;
+ u32 tail, head, len, desc_status;
s32 avail;
u32 action;
u32 *hxg;
@@ -1153,6 +1275,52 @@ static int g2h_read(struct xe_guc_ct *ct, u32 *msg, bool fast_path)
xe_gt_assert(gt, xe_guc_ct_enabled(ct));
+ desc_status = desc_read(xe, g2h, status);
+ if (desc_status) {
+ if (desc_status & GUC_CTB_STATUS_DISABLED) {
+ /*
+ * Potentially valid if a CLIENT_RESET request resulted in
+ * contexts/engines being reset. But should never happen as
+ * no contexts should be active when CLIENT_RESET is sent.
+ */
+ xe_gt_err(gt, "CT read: unexpected G2H after GuC has stopped!\n");
+ desc_status &= ~GUC_CTB_STATUS_DISABLED;
+ }
+
+ if (desc_status) {
+ xe_gt_err(gt, "CT read: non-zero status: %u\n", desc_status);
+ goto corrupted;
+ }
+ }
+
+#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
+{
+ u32 desc_tail = desc_read(xe, g2h, tail);
+ u32 desc_head = desc_read(xe, g2h, head);
+
+ if (g2h->info.head != desc_head) {
+ desc_write(xe, g2h, status, desc_status | GUC_CTB_STATUS_MISMATCH);
+ xe_gt_err(gt, "CT read: head was modified %u != %u\n",
+ desc_head, g2h->info.head);
+ goto corrupted;
+ }
+
+ if (g2h->info.head > g2h->info.size) {
+ desc_write(xe, g2h, status, desc_status | GUC_CTB_STATUS_OVERFLOW);
+ xe_gt_err(gt, "CT read: head out of range: %u vs %u\n",
+ g2h->info.head, g2h->info.size);
+ goto corrupted;
+ }
+
+ if (desc_tail >= g2h->info.size) {
+ desc_write(xe, g2h, status, desc_status | GUC_CTB_STATUS_OVERFLOW);
+ xe_gt_err(gt, "CT read: invalid tail offset %u >= %u)\n",
+ desc_tail, g2h->info.size);
+ goto corrupted;
+ }
+}
+#endif
+
/* Calculate DW available to read */
tail = desc_read(xe, g2h, tail);
avail = tail - g2h->info.head;
@@ -1169,9 +1337,7 @@ static int g2h_read(struct xe_guc_ct *ct, u32 *msg, bool fast_path)
if (len > avail) {
xe_gt_err(gt, "G2H channel broken on read, avail=%d, len=%d, reset required\n",
avail, len);
- g2h->info.broken = true;
-
- return -EPROTO;
+ goto corrupted;
}
head = (g2h->info.head + 1) % g2h->info.size;
@@ -1217,6 +1383,10 @@ static int g2h_read(struct xe_guc_ct *ct, u32 *msg, bool fast_path)
g2h->info.head, tail);
return len;
+
+corrupted:
+ CT_DEAD(ct, &ct->ctbs.g2h, G2H_READ);
+ return -EPROTO;
}
static void g2h_fast_path(struct xe_guc_ct *ct, u32 *msg, u32 len)
@@ -1243,9 +1413,11 @@ static void g2h_fast_path(struct xe_guc_ct *ct, u32 *msg, u32 len)
xe_gt_warn(gt, "NOT_POSSIBLE");
}
- if (ret)
+ if (ret) {
xe_gt_err(gt, "G2H action 0x%04x failed (%pe)\n",
action, ERR_PTR(ret));
+ CT_DEAD(ct, NULL, FAST_G2H);
+ }
}
/**
@@ -1305,7 +1477,6 @@ static int dequeue_one_g2h(struct xe_guc_ct *ct)
static void receive_g2h(struct xe_guc_ct *ct)
{
- struct xe_gt *gt = ct_to_gt(ct);
bool ongoing;
int ret;
@@ -1342,9 +1513,8 @@ static void receive_g2h(struct xe_guc_ct *ct)
mutex_unlock(&ct->lock);
if (unlikely(ret == -EPROTO || ret == -EOPNOTSUPP)) {
- struct drm_printer p = xe_gt_info_printer(gt);
-
- xe_guc_ct_print(ct, &p, false);
+ xe_gt_err(ct_to_gt(ct), "CT dequeue failed: %d", ret);
+ CT_DEAD(ct, NULL, G2H_RECV);
kick_reset(ct);
}
} while (ret == 1);
@@ -1374,7 +1544,7 @@ static void guc_ctb_snapshot_capture(struct xe_device *xe, struct guc_ctb *ctb,
atomic ? GFP_ATOMIC : GFP_KERNEL);
if (!snapshot->cmds) {
- drm_err(&xe->drm, "Skipping CTB commands snapshot. Only CTB info will be available.\n");
+ drm_err(&xe->drm, "Skipping CTB commands snapshot. Only CT info will be available.\n");
return;
}
@@ -1532,3 +1702,48 @@ void xe_guc_ct_print(struct xe_guc_ct *ct, struct drm_printer *p, bool atomic)
xe_guc_ct_snapshot_print(snapshot, p);
xe_guc_ct_snapshot_free(snapshot);
}
+
+#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
+static void ct_dead_print(struct xe_dead_ct *dead)
+{
+ struct xe_guc_ct *ct = container_of(dead, struct xe_guc_ct, dead);
+ struct xe_gt *gt = ct_to_gt(ct);
+ static int g_count;
+ struct drm_printer ip = xe_gt_info_printer(gt);
+ struct drm_printer lp = drm_line_printer(&ip, "Capture", ++g_count);
+
+ if (!dead->reason) {
+ xe_gt_err(gt, "CTB is dead for no reason!?\n");
+ return;
+ }
+
+ drm_printf(&lp, "CTB is dead - reason=0x%X\n", dead->reason);
+
+ xe_guc_log_snapshot_print(ct_to_xe(ct), dead->snapshot_log, &lp, false);
+ xe_guc_ct_snapshot_print(dead->snapshot_ct, &lp);
+
+ drm_printf(&lp, "Done.\n");
+}
+
+static void ct_dead_worker_func(struct work_struct *w)
+{
+ struct xe_guc_ct *ct = container_of(w, struct xe_guc_ct, dead.worker);
+
+ if (!ct->dead.reported) {
+ ct->dead.reported = true;
+ ct_dead_print(&ct->dead);
+ }
+
+ spin_lock_irq(&ct->dead.lock);
+
+ xe_guc_log_snapshot_free(ct->dead.snapshot_log);
+ xe_guc_ct_snapshot_free(ct->dead.snapshot_ct);
+
+ if (ct->dead.reason & CT_DEAD_RESET) {
+ ct->dead.reason = CT_DEAD_ALIVE;
+ ct->dead.reported = false;
+ }
+
+ spin_unlock_irq(&ct->dead.lock);
+}
+#endif
diff --git a/drivers/gpu/drm/xe/xe_guc_ct_types.h b/drivers/gpu/drm/xe/xe_guc_ct_types.h
index 761cb9031298..db1d45b7be2b 100644
--- a/drivers/gpu/drm/xe/xe_guc_ct_types.h
+++ b/drivers/gpu/drm/xe/xe_guc_ct_types.h
@@ -86,6 +86,24 @@ enum xe_guc_ct_state {
XE_GUC_CT_STATE_ENABLED,
};
+#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
+/** struct xe_dead_ct - Information for debugging a dead CT */
+struct xe_dead_ct {
+ /** @lock: protects memory allocation/free operations, and @reason updates */
+ spinlock_t lock;
+ /** @reason: bit mask of CT_DEAD_* reason codes */
+ int reason;
+ /** @reported: for preventing multiple dumps per error sequence */
+ bool reported;
+ /** @worker: worker thread to get out of interrupt context before dumping */
+ struct work_struct worker;
+ /** snapshot_ct: copy of CT state and CTB content at point of error */
+ struct xe_guc_ct_snapshot *snapshot_ct;
+ /** snapshot_log: copy of GuC log at point of error */
+ struct xe_guc_log_snapshot *snapshot_log;
+};
+#endif
+
/**
* struct xe_guc_ct - GuC command transport (CT) layer
*
@@ -128,6 +146,10 @@ struct xe_guc_ct {
u32 msg[GUC_CTB_MSG_MAX_LEN];
/** @fast_msg: Message buffer */
u32 fast_msg[GUC_CTB_MSG_MAX_LEN];
+
+#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
+ struct xe_dead_ct dead;
+#endif
};
#endif
--
2.43.2
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v4 7/7] drm/xe/guc: Dump entire CTB on errors
2024-06-11 1:20 [PATCH v4 0/7] drm/xe/guc: Improve quality and robustness of GuC log dumping John.C.Harrison
` (5 preceding siblings ...)
2024-06-11 1:20 ` [PATCH v4 6/7] drm/xe/guc: Dead CT helper John.C.Harrison
@ 2024-06-11 1:20 ` John.C.Harrison
2024-06-11 1:25 ` ✓ CI.Patch_applied: success for drm/xe/guc: Improve quality and robustness of GuC log dumping (rev2) Patchwork
` (7 subsequent siblings)
14 siblings, 0 replies; 23+ messages in thread
From: John.C.Harrison @ 2024-06-11 1:20 UTC (permalink / raw)
To: Intel-Xe; +Cc: John Harrison
From: John Harrison <John.C.Harrison@Intel.com>
The dump of the CT buffers was only showing the unprocessed data which
is not generally useful for saying why a hang occurred - because it
was probably caused by the commands that were just processed. So save
and dump the entire buffer but in a more compact dump format. Also
zero fill it on allocation to avoid confusion over uninitialised data
in the dump.
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
---
drivers/gpu/drm/xe/xe_devcoredump.c | 2 +-
drivers/gpu/drm/xe/xe_guc_ct.c | 101 ++++++++++++---------------
drivers/gpu/drm/xe/xe_guc_ct.h | 9 +--
drivers/gpu/drm/xe/xe_guc_ct_types.h | 2 +
drivers/gpu/drm/xe/xe_guc_log.c | 4 +-
drivers/gpu/drm/xe/xe_guc_log.h | 2 +
6 files changed, 55 insertions(+), 65 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_devcoredump.c b/drivers/gpu/drm/xe/xe_devcoredump.c
index d7f2d19a77c1..eb078265b751 100644
--- a/drivers/gpu/drm/xe/xe_devcoredump.c
+++ b/drivers/gpu/drm/xe/xe_devcoredump.c
@@ -114,7 +114,7 @@ static ssize_t xe_devcoredump_read(char *buffer, loff_t offset,
xe_device_snapshot_print(xe, &p);
drm_printf(&p, "\n**** GuC CT ****\n");
- xe_guc_ct_snapshot_print(coredump->snapshot.ct, &p);
+ xe_guc_ct_snapshot_print(xe, coredump->snapshot.ct, &p, false);
xe_guc_exec_queue_snapshot_print(coredump->snapshot.ge, &p);
drm_printf(&p, "\n**** Job ****\n");
diff --git a/drivers/gpu/drm/xe/xe_guc_ct.c b/drivers/gpu/drm/xe/xe_guc_ct.c
index 744402f9e774..47916d773525 100644
--- a/drivers/gpu/drm/xe/xe_guc_ct.c
+++ b/drivers/gpu/drm/xe/xe_guc_ct.c
@@ -418,6 +418,7 @@ int xe_guc_ct_enable(struct xe_guc_ct *ct)
xe_gt_assert(gt, !xe_guc_ct_enabled(ct));
+ xe_map_memset(xe, &ct->bo->vmap, 0, 0, ct->bo->size);
guc_ct_ctb_h2g_init(xe, &ct->ctbs.h2g, &ct->bo->vmap);
guc_ct_ctb_g2h_init(xe, &ct->ctbs.g2h, &ct->bo->vmap);
@@ -1530,49 +1531,43 @@ static void g2h_worker_func(struct work_struct *w)
receive_g2h(ct);
}
-static void guc_ctb_snapshot_capture(struct xe_device *xe, struct guc_ctb *ctb,
- struct guc_ctb_snapshot *snapshot,
- bool atomic)
+static void guc_ctb_snapshot_alloc(struct guc_ctb *ctb, struct guc_ctb_snapshot *snapshot,
+ bool atomic)
{
- u32 head, tail;
+ snapshot->size = ctb->info.size * sizeof(u32);
+ snapshot->cmds = kmalloc(snapshot->size, atomic ? GFP_ATOMIC : GFP_KERNEL);
+}
- xe_map_memcpy_from(xe, &snapshot->desc, &ctb->desc, 0,
- sizeof(struct guc_ct_buffer_desc));
- memcpy(&snapshot->info, &ctb->info, sizeof(struct guc_ctb_info));
+struct xe_guc_ct_snapshot *xe_guc_ct_snapshot_alloc(struct xe_guc_ct *ct, bool atomic)
+{
+ struct xe_guc_ct_snapshot *snapshot;
- snapshot->cmds = kmalloc_array(ctb->info.size, sizeof(u32),
- atomic ? GFP_ATOMIC : GFP_KERNEL);
+ snapshot = kzalloc(sizeof(*snapshot), atomic ? GFP_ATOMIC : GFP_KERNEL);
+ if (!snapshot)
+ return NULL;
- if (!snapshot->cmds) {
- drm_err(&xe->drm, "Skipping CTB commands snapshot. Only CT info will be available.\n");
- return;
- }
+ /* Don't give up if the CTB storage fails to allocate */
+ guc_ctb_snapshot_alloc(&ct->ctbs.h2g, &snapshot->h2g, atomic);
+ guc_ctb_snapshot_alloc(&ct->ctbs.g2h, &snapshot->g2h, atomic);
- head = snapshot->desc.head;
- tail = snapshot->desc.tail;
-
- if (head != tail) {
- struct iosys_map map =
- IOSYS_MAP_INIT_OFFSET(&ctb->cmds, head * sizeof(u32));
-
- while (head != tail) {
- snapshot->cmds[head] = xe_map_rd(xe, &map, 0, u32);
- ++head;
- if (head == ctb->info.size) {
- head = 0;
- map = ctb->cmds;
- } else {
- iosys_map_incr(&map, sizeof(u32));
- }
- }
- }
+ return snapshot;
}
-static void guc_ctb_snapshot_print(struct guc_ctb_snapshot *snapshot,
- struct drm_printer *p)
+static void guc_ctb_snapshot_capture(struct xe_device *xe, struct guc_ctb *ctb,
+ struct guc_ctb_snapshot *snapshot)
{
- u32 head, tail;
+ xe_map_memcpy_from(xe, &snapshot->desc, &ctb->desc, 0,
+ sizeof(struct guc_ct_buffer_desc));
+ memcpy(&snapshot->info, &ctb->info, sizeof(struct guc_ctb_info));
+
+ if (snapshot->cmds)
+ xe_map_memcpy_from(xe, snapshot->cmds, &ctb->cmds, 0, snapshot->size);
+}
+static void guc_ctb_snapshot_print(struct xe_device *xe,
+ struct guc_ctb_snapshot *snapshot,
+ struct drm_printer *p, bool atomic)
+{
drm_printf(p, "\tsize: %d\n", snapshot->info.size);
drm_printf(p, "\tresv_space: %d\n", snapshot->info.resv_space);
drm_printf(p, "\thead: %d\n", snapshot->info.head);
@@ -1583,19 +1578,13 @@ static void guc_ctb_snapshot_print(struct guc_ctb_snapshot *snapshot,
drm_printf(p, "\ttail (memory): %d\n", snapshot->desc.tail);
drm_printf(p, "\tstatus (memory): 0x%x\n", snapshot->desc.status);
- if (!snapshot->cmds)
+ if (!snapshot->cmds) {
+ drm_printf(p, "CT buffer allocation missing!\n");
return;
-
- head = snapshot->desc.head;
- tail = snapshot->desc.tail;
-
- while (head != tail) {
- drm_printf(p, "\tcmd[%d]: 0x%08x\n", head,
- snapshot->cmds[head]);
- ++head;
- if (head == snapshot->info.size)
- head = 0;
}
+
+ drm_printf(p, "CT buffer:\n");
+ xe_hexdump_blob(xe, snapshot->cmds, snapshot->size, p, atomic);
}
static void guc_ctb_snapshot_free(struct guc_ctb_snapshot *snapshot)
@@ -1621,9 +1610,7 @@ struct xe_guc_ct_snapshot *xe_guc_ct_snapshot_capture(struct xe_guc_ct *ct,
struct xe_device *xe = ct_to_xe(ct);
struct xe_guc_ct_snapshot *snapshot;
- snapshot = kzalloc(sizeof(*snapshot),
- atomic ? GFP_ATOMIC : GFP_KERNEL);
-
+ snapshot = xe_guc_ct_snapshot_alloc(ct, atomic);
if (!snapshot) {
drm_err(&xe->drm, "Skipping CTB snapshot entirely.\n");
return NULL;
@@ -1632,10 +1619,8 @@ struct xe_guc_ct_snapshot *xe_guc_ct_snapshot_capture(struct xe_guc_ct *ct,
if (xe_guc_ct_enabled(ct) || ct->state == XE_GUC_CT_STATE_STOPPED) {
snapshot->ct_enabled = true;
snapshot->g2h_outstanding = READ_ONCE(ct->g2h_outstanding);
- guc_ctb_snapshot_capture(xe, &ct->ctbs.h2g,
- &snapshot->h2g, atomic);
- guc_ctb_snapshot_capture(xe, &ct->ctbs.g2h,
- &snapshot->g2h, atomic);
+ guc_ctb_snapshot_capture(xe, &ct->ctbs.h2g, &snapshot->h2g);
+ guc_ctb_snapshot_capture(xe, &ct->ctbs.g2h, &snapshot->g2h);
}
return snapshot;
@@ -1648,18 +1633,18 @@ struct xe_guc_ct_snapshot *xe_guc_ct_snapshot_capture(struct xe_guc_ct *ct,
*
* This function prints out a given GuC CT snapshot object.
*/
-void xe_guc_ct_snapshot_print(struct xe_guc_ct_snapshot *snapshot,
- struct drm_printer *p)
+void xe_guc_ct_snapshot_print(struct xe_device *xe, struct xe_guc_ct_snapshot *snapshot,
+ struct drm_printer *p, bool atomic)
{
if (!snapshot)
return;
if (snapshot->ct_enabled) {
drm_puts(p, "H2G CTB (all sizes in DW):\n");
- guc_ctb_snapshot_print(&snapshot->h2g, p);
+ guc_ctb_snapshot_print(xe, &snapshot->h2g, p, atomic);
drm_puts(p, "G2H CTB (all sizes in DW):\n");
- guc_ctb_snapshot_print(&snapshot->g2h, p);
+ guc_ctb_snapshot_print(xe, &snapshot->g2h, p, atomic);
drm_printf(p, "\tg2h outstanding: %d\n",
snapshot->g2h_outstanding);
@@ -1699,7 +1684,7 @@ void xe_guc_ct_print(struct xe_guc_ct *ct, struct drm_printer *p, bool atomic)
struct xe_guc_ct_snapshot *snapshot;
snapshot = xe_guc_ct_snapshot_capture(ct, atomic);
- xe_guc_ct_snapshot_print(snapshot, p);
+ xe_guc_ct_snapshot_print(ct_to_xe(ct), snapshot, p, atomic);
xe_guc_ct_snapshot_free(snapshot);
}
@@ -1720,7 +1705,7 @@ static void ct_dead_print(struct xe_dead_ct *dead)
drm_printf(&lp, "CTB is dead - reason=0x%X\n", dead->reason);
xe_guc_log_snapshot_print(ct_to_xe(ct), dead->snapshot_log, &lp, false);
- xe_guc_ct_snapshot_print(dead->snapshot_ct, &lp);
+ xe_guc_ct_snapshot_print(ct_to_xe(ct), dead->snapshot_ct, &lp, false);
drm_printf(&lp, "Done.\n");
}
diff --git a/drivers/gpu/drm/xe/xe_guc_ct.h b/drivers/gpu/drm/xe/xe_guc_ct.h
index 105bb8e99a8d..782e821dae1c 100644
--- a/drivers/gpu/drm/xe/xe_guc_ct.h
+++ b/drivers/gpu/drm/xe/xe_guc_ct.h
@@ -9,6 +9,7 @@
#include "xe_guc_ct_types.h"
struct drm_printer;
+struct xe_device;
int xe_guc_ct_init(struct xe_guc_ct *ct);
int xe_guc_ct_enable(struct xe_guc_ct *ct);
@@ -16,10 +17,10 @@ void xe_guc_ct_disable(struct xe_guc_ct *ct);
void xe_guc_ct_stop(struct xe_guc_ct *ct);
void xe_guc_ct_fast_path(struct xe_guc_ct *ct);
-struct xe_guc_ct_snapshot *
-xe_guc_ct_snapshot_capture(struct xe_guc_ct *ct, bool atomic);
-void xe_guc_ct_snapshot_print(struct xe_guc_ct_snapshot *snapshot,
- struct drm_printer *p);
+struct xe_guc_ct_snapshot *xe_guc_ct_snapshot_alloc(struct xe_guc_ct *ct, bool atomic);
+struct xe_guc_ct_snapshot *xe_guc_ct_snapshot_capture(struct xe_guc_ct *ct, bool atomic);
+void xe_guc_ct_snapshot_print(struct xe_device *xe, struct xe_guc_ct_snapshot *snapshot,
+ struct drm_printer *p, bool atomic);
void xe_guc_ct_snapshot_free(struct xe_guc_ct_snapshot *snapshot);
void xe_guc_ct_print(struct xe_guc_ct *ct, struct drm_printer *p, bool atomic);
diff --git a/drivers/gpu/drm/xe/xe_guc_ct_types.h b/drivers/gpu/drm/xe/xe_guc_ct_types.h
index db1d45b7be2b..549112595920 100644
--- a/drivers/gpu/drm/xe/xe_guc_ct_types.h
+++ b/drivers/gpu/drm/xe/xe_guc_ct_types.h
@@ -52,6 +52,8 @@ struct guc_ctb {
struct guc_ctb_snapshot {
/** @desc: snapshot of the CTB descriptor */
struct guc_ct_buffer_desc desc;
+ /** @cmds: size of the snapshot of the CTB commands */
+ size_t size;
/** @cmds: snapshot of the CTB commands */
u32 *cmds;
/** @info: snapshot of the CTB info */
diff --git a/drivers/gpu/drm/xe/xe_guc_log.c b/drivers/gpu/drm/xe/xe_guc_log.c
index 9714ee6f99e0..11453de08cc6 100644
--- a/drivers/gpu/drm/xe/xe_guc_log.c
+++ b/drivers/gpu/drm/xe/xe_guc_log.c
@@ -64,8 +64,8 @@ static size_t guc_log_size(void)
#define LINES_PER_READ 4
#define WORDS_PER_READ (WORDS_PER_DUMP * DUMPS_PER_LINE * LINES_PER_READ)
-static void xe_hexdump_blob(struct xe_device *xe, const void *blob, size_t size,
- struct drm_printer *p, bool atomic)
+void xe_hexdump_blob(struct xe_device *xe, const void *blob, size_t size,
+ struct drm_printer *p, bool atomic)
{
char line_buff[DUMPS_PER_LINE * WORDS_PER_DUMP * 9 + 1];
const u32 *blob32 = (const u32 *)blob;
diff --git a/drivers/gpu/drm/xe/xe_guc_log.h b/drivers/gpu/drm/xe/xe_guc_log.h
index 29154ab507ff..f204b9c85e65 100644
--- a/drivers/gpu/drm/xe/xe_guc_log.h
+++ b/drivers/gpu/drm/xe/xe_guc_log.h
@@ -45,6 +45,8 @@ struct xe_guc_log_snapshot *xe_guc_log_snapshot_capture(struct xe_guc_log *log,
void xe_guc_log_snapshot_print(struct xe_device *xe, struct xe_guc_log_snapshot *snapshot,
struct drm_printer *p, bool atomic);
void xe_guc_log_snapshot_free(struct xe_guc_log_snapshot *snapshot);
+void xe_hexdump_blob(struct xe_device *xe, const void *blob, size_t size,
+ struct drm_printer *p, bool atomic);
static inline u32
xe_guc_log_get_level(struct xe_guc_log *log)
--
2.43.2
^ permalink raw reply related [flat|nested] 23+ messages in thread
* ✓ CI.Patch_applied: success for drm/xe/guc: Improve quality and robustness of GuC log dumping (rev2)
2024-06-11 1:20 [PATCH v4 0/7] drm/xe/guc: Improve quality and robustness of GuC log dumping John.C.Harrison
` (6 preceding siblings ...)
2024-06-11 1:20 ` [PATCH v4 7/7] drm/xe/guc: Dump entire CTB on errors John.C.Harrison
@ 2024-06-11 1:25 ` Patchwork
2024-06-11 1:25 ` ✗ CI.checkpatch: warning " Patchwork
` (6 subsequent siblings)
14 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2024-06-11 1:25 UTC (permalink / raw)
To: john.c.harrison; +Cc: intel-xe
== Series Details ==
Series: drm/xe/guc: Improve quality and robustness of GuC log dumping (rev2)
URL : https://patchwork.freedesktop.org/series/134695/
State : success
== Summary ==
=== Applying kernel patches on branch 'drm-tip' with base: ===
Base commit: bf9d891af55d drm-tip: 2024y-06m-10d-19h-36m-52s UTC integration manifest
=== git am output follows ===
Applying: drm/xe/guc: Remove spurious line feed in debug print
Applying: drm/xe/guc: Copy GuC log prior to dumping
Applying: drm/xe/guc: Use a two stage dump for GuC logs and add more info
Applying: drm/print: Introduce drm_line_printer
Applying: drm/xe/guc: Add a helper function for dumping GuC log to dmesg
Applying: drm/xe/guc: Dead CT helper
Applying: drm/xe/guc: Dump entire CTB on errors
^ permalink raw reply [flat|nested] 23+ messages in thread
* ✗ CI.checkpatch: warning for drm/xe/guc: Improve quality and robustness of GuC log dumping (rev2)
2024-06-11 1:20 [PATCH v4 0/7] drm/xe/guc: Improve quality and robustness of GuC log dumping John.C.Harrison
` (7 preceding siblings ...)
2024-06-11 1:25 ` ✓ CI.Patch_applied: success for drm/xe/guc: Improve quality and robustness of GuC log dumping (rev2) Patchwork
@ 2024-06-11 1:25 ` Patchwork
2024-06-11 1:26 ` ✓ CI.KUnit: success " Patchwork
` (5 subsequent siblings)
14 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2024-06-11 1:25 UTC (permalink / raw)
To: john.c.harrison; +Cc: intel-xe
== Series Details ==
Series: drm/xe/guc: Improve quality and robustness of GuC log dumping (rev2)
URL : https://patchwork.freedesktop.org/series/134695/
State : warning
== Summary ==
+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
51ce9f6cd981d42d7467409d7dbc559a450abc1e
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 55275527a8e3c90264b21af86d1d5b7ee88c4766
Author: John Harrison <John.C.Harrison@Intel.com>
Date: Mon Jun 10 18:20:28 2024 -0700
drm/xe/guc: Dump entire CTB on errors
The dump of the CT buffers was only showing the unprocessed data which
is not generally useful for saying why a hang occurred - because it
was probably caused by the commands that were just processed. So save
and dump the entire buffer but in a more compact dump format. Also
zero fill it on allocation to avoid confusion over uninitialised data
in the dump.
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
+ /mt/dim checkpatch bf9d891af55d3785eb9438efb053c991bf2b4b10 drm-intel
e8032ca02755 drm/xe/guc: Remove spurious line feed in debug print
17086d55b750 drm/xe/guc: Copy GuC log prior to dumping
19dded41b069 drm/xe/guc: Use a two stage dump for GuC logs and add more info
7607b9210892 drm/print: Introduce drm_line_printer
50ff41f41283 drm/xe/guc: Add a helper function for dumping GuC log to dmesg
b06f69de1641 drm/xe/guc: Dead CT helper
-:62: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'ct' - possible side-effects?
#62: FILE: drivers/gpu/drm/xe/xe_guc_ct.c:56:
+#define CT_DEAD(ct, hxg, reason_code) \
+ do { \
+ struct guc_ctb *_hxg = (hxg); \
+ if (_hxg) \
+ _hxg->info.broken = true; \
+ if (!(ct)->dead.reported) { \
+ struct xe_guc *guc = ct_to_guc(ct); \
+ spin_lock_irq(&ct->dead.lock); \
+ (ct)->dead.reason |= 1 << CT_DEAD_##reason_code; \
+ (ct)->dead.snapshot_log = xe_guc_log_snapshot_capture(&guc->log, true); \
+ (ct)->dead.snapshot_ct = xe_guc_ct_snapshot_capture((ct), true); \
+ spin_unlock_irq(&ct->dead.lock); \
+ queue_work(system_unbound_wq, &(ct)->dead.worker); \
+ } \
+ } while (0)
-:78: WARNING:MACRO_ARG_UNUSED: Argument 'ct' is not used in function-like macro
#78: FILE: drivers/gpu/drm/xe/xe_guc_ct.c:72:
+#define CT_DEAD(ct, hxg, reason) \
+ do { \
+ struct guc_ctb *_hxg = (hxg); \
+ if (_hxg) \
+ _hxg->info.broken = true; \
+ } while (0)
-:78: WARNING:MACRO_ARG_UNUSED: Argument 'reason' is not used in function-like macro
#78: FILE: drivers/gpu/drm/xe/xe_guc_ct.c:72:
+#define CT_DEAD(ct, hxg, reason) \
+ do { \
+ struct guc_ctb *_hxg = (hxg); \
+ if (_hxg) \
+ _hxg->info.broken = true; \
+ } while (0)
total: 0 errors, 2 warnings, 1 checks, 460 lines checked
55275527a8e3 drm/xe/guc: Dump entire CTB on errors
^ permalink raw reply [flat|nested] 23+ messages in thread
* ✓ CI.KUnit: success for drm/xe/guc: Improve quality and robustness of GuC log dumping (rev2)
2024-06-11 1:20 [PATCH v4 0/7] drm/xe/guc: Improve quality and robustness of GuC log dumping John.C.Harrison
` (8 preceding siblings ...)
2024-06-11 1:25 ` ✗ CI.checkpatch: warning " Patchwork
@ 2024-06-11 1:26 ` Patchwork
2024-06-11 1:38 ` ✓ CI.Build: " Patchwork
` (4 subsequent siblings)
14 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2024-06-11 1:26 UTC (permalink / raw)
To: john.c.harrison; +Cc: intel-xe
== Series Details ==
Series: drm/xe/guc: Improve quality and robustness of GuC log dumping (rev2)
URL : https://patchwork.freedesktop.org/series/134695/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[01:25:48] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[01:25:52] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make ARCH=um O=.kunit --jobs=48
../lib/iomap.c:156:5: warning: no previous prototype for ‘ioread64_lo_hi’ [-Wmissing-prototypes]
156 | u64 ioread64_lo_hi(const void __iomem *addr)
| ^~~~~~~~~~~~~~
../lib/iomap.c:163:5: warning: no previous prototype for ‘ioread64_hi_lo’ [-Wmissing-prototypes]
163 | u64 ioread64_hi_lo(const void __iomem *addr)
| ^~~~~~~~~~~~~~
../lib/iomap.c:170:5: warning: no previous prototype for ‘ioread64be_lo_hi’ [-Wmissing-prototypes]
170 | u64 ioread64be_lo_hi(const void __iomem *addr)
| ^~~~~~~~~~~~~~~~
../lib/iomap.c:178:5: warning: no previous prototype for ‘ioread64be_hi_lo’ [-Wmissing-prototypes]
178 | u64 ioread64be_hi_lo(const void __iomem *addr)
| ^~~~~~~~~~~~~~~~
../lib/iomap.c:264:6: warning: no previous prototype for ‘iowrite64_lo_hi’ [-Wmissing-prototypes]
264 | void iowrite64_lo_hi(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~
../lib/iomap.c:272:6: warning: no previous prototype for ‘iowrite64_hi_lo’ [-Wmissing-prototypes]
272 | void iowrite64_hi_lo(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~
../lib/iomap.c:280:6: warning: no previous prototype for ‘iowrite64be_lo_hi’ [-Wmissing-prototypes]
280 | void iowrite64be_lo_hi(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~~~
../lib/iomap.c:288:6: warning: no previous prototype for ‘iowrite64be_hi_lo’ [-Wmissing-prototypes]
288 | void iowrite64be_hi_lo(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~~~
[01:26:18] Starting KUnit Kernel (1/1)...
[01:26:18] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[01:26:18] =================== guc_dbm (7 subtests) ===================
[01:26:18] [PASSED] test_empty
[01:26:18] [PASSED] test_default
[01:26:18] ======================== test_size ========================
[01:26:18] [PASSED] 4
[01:26:18] [PASSED] 8
[01:26:18] [PASSED] 32
[01:26:18] [PASSED] 256
[01:26:18] ==================== [PASSED] test_size ====================
[01:26:18] ======================= test_reuse ========================
[01:26:18] [PASSED] 4
[01:26:18] [PASSED] 8
[01:26:18] [PASSED] 32
[01:26:18] [PASSED] 256
[01:26:18] =================== [PASSED] test_reuse ====================
[01:26:18] =================== test_range_overlap ====================
[01:26:18] [PASSED] 4
[01:26:18] [PASSED] 8
[01:26:18] [PASSED] 32
[01:26:18] [PASSED] 256
[01:26:18] =============== [PASSED] test_range_overlap ================
[01:26:18] =================== test_range_compact ====================
[01:26:18] [PASSED] 4
[01:26:18] [PASSED] 8
[01:26:18] [PASSED] 32
[01:26:18] [PASSED] 256
[01:26:18] =============== [PASSED] test_range_compact ================
[01:26:18] ==================== test_range_spare =====================
[01:26:18] [PASSED] 4
[01:26:18] [PASSED] 8
[01:26:18] [PASSED] 32
[01:26:18] [PASSED] 256
[01:26:18] ================ [PASSED] test_range_spare =================
[01:26:18] ===================== [PASSED] guc_dbm =====================
[01:26:18] =================== guc_idm (6 subtests) ===================
[01:26:18] [PASSED] bad_init
[01:26:18] [PASSED] no_init
[01:26:18] [PASSED] init_fini
[01:26:18] [PASSED] check_used
[01:26:18] [PASSED] check_quota
[01:26:18] [PASSED] check_all
[01:26:18] ===================== [PASSED] guc_idm =====================
[01:26:18] ================== no_relay (3 subtests) ===================
[01:26:18] [PASSED] xe_drops_guc2pf_if_not_ready
[01:26:18] [PASSED] xe_drops_guc2vf_if_not_ready
[01:26:18] [PASSED] xe_rejects_send_if_not_ready
[01:26:18] ==================== [PASSED] no_relay =====================
[01:26:18] ================== pf_relay (14 subtests) ==================
[01:26:18] [PASSED] pf_rejects_guc2pf_too_short
[01:26:18] [PASSED] pf_rejects_guc2pf_too_long
[01:26:18] [PASSED] pf_rejects_guc2pf_no_payload
[01:26:18] [PASSED] pf_fails_no_payload
[01:26:18] [PASSED] pf_fails_bad_origin
[01:26:18] [PASSED] pf_fails_bad_type
[01:26:18] [PASSED] pf_txn_reports_error
[01:26:18] [PASSED] pf_txn_sends_pf2guc
[01:26:18] [PASSED] pf_sends_pf2guc
[01:26:18] [SKIPPED] pf_loopback_nop
[01:26:18] [SKIPPED] pf_loopback_echo
[01:26:18] [SKIPPED] pf_loopback_fail
[01:26:18] [SKIPPED] pf_loopback_busy
[01:26:18] [SKIPPED] pf_loopback_retry
[01:26:18] ==================== [PASSED] pf_relay =====================
[01:26:18] ================== vf_relay (3 subtests) ===================
[01:26:18] [PASSED] vf_rejects_guc2vf_too_short
[01:26:18] [PASSED] vf_rejects_guc2vf_too_long
[01:26:18] [PASSED] vf_rejects_guc2vf_no_payload
[01:26:18] ==================== [PASSED] vf_relay =====================
[01:26:18] ================= pf_service (11 subtests) =================
[01:26:18] [PASSED] pf_negotiate_any
[01:26:18] [PASSED] pf_negotiate_base_match
[01:26:18] [PASSED] pf_negotiate_base_newer
[01:26:18] [PASSED] pf_negotiate_base_next
[01:26:18] [SKIPPED] pf_negotiate_base_older
[01:26:18] [PASSED] pf_negotiate_base_prev
[01:26:18] [PASSED] pf_negotiate_latest_match
[01:26:18] [PASSED] pf_negotiate_latest_newer
[01:26:18] [PASSED] pf_negotiate_latest_next
[01:26:18] [SKIPPED] pf_negotiate_latest_older
[01:26:18] [SKIPPED] pf_negotiate_latest_prev
[01:26:18] =================== [PASSED] pf_service ====================
[01:26:18] ===================== lmtt (1 subtest) =====================
[01:26:18] ======================== test_ops =========================
[01:26:18] [PASSED] 2-level
[01:26:18] [PASSED] multi-level
[01:26:18] ==================== [PASSED] test_ops =====================
[01:26:18] ====================== [PASSED] lmtt =======================
[01:26:18] ==================== xe_bo (2 subtests) ====================
[01:26:18] [SKIPPED] xe_ccs_migrate_kunit
[01:26:18] [SKIPPED] xe_bo_evict_kunit
[01:26:18] ===================== [SKIPPED] xe_bo ======================
[01:26:18] ================== xe_dma_buf (1 subtest) ==================
[01:26:18] [SKIPPED] xe_dma_buf_kunit
[01:26:18] =================== [SKIPPED] xe_dma_buf ===================
[01:26:18] ================== xe_migrate (1 subtest) ==================
[01:26:18] [SKIPPED] xe_migrate_sanity_kunit
[01:26:18] =================== [SKIPPED] xe_migrate ===================
[01:26:18] =================== xe_mocs (2 subtests) ===================
[01:26:18] [SKIPPED] xe_live_mocs_kernel_kunit
[01:26:18] [SKIPPED] xe_live_mocs_reset_kunit
[01:26:18] ==================== [SKIPPED] xe_mocs =====================
[01:26:18] ==================== args (11 subtests) ====================
[01:26:18] [PASSED] count_args_test
[01:26:18] [PASSED] call_args_example
[01:26:18] [PASSED] call_args_test
[01:26:18] [PASSED] drop_first_arg_example
[01:26:18] [PASSED] drop_first_arg_test
[01:26:18] [PASSED] first_arg_example
[01:26:18] [PASSED] first_arg_test
[01:26:18] [PASSED] last_arg_example
[01:26:18] [PASSED] last_arg_test
[01:26:18] [PASSED] pick_arg_example
[01:26:18] [PASSED] sep_comma_example
[01:26:18] ====================== [PASSED] args =======================
[01:26:18] =================== xe_pci (2 subtests) ====================
[01:26:18] [PASSED] xe_gmdid_graphics_ip
[01:26:18] [PASSED] xe_gmdid_media_ip
[01:26:18] ===================== [PASSED] xe_pci ======================
[01:26:18] ==================== xe_rtp (1 subtest) ====================
[01:26:18] ================== xe_rtp_process_tests ===================
[01:26:18] [PASSED] coalesce-same-reg
[01:26:18] [PASSED] no-match-no-add
[01:26:18] [PASSED] no-match-no-add-multiple-rules
[01:26:18] [PASSED] two-regs-two-entries
[01:26:18] [PASSED] clr-one-set-other
[01:26:18] [PASSED] set-field
[01:26:18] [PASSED] conflict-duplicate
[01:26:18] [PASSED] conflict-not-disjoint
[01:26:18] [PASSED] conflict-reg-type
[01:26:18] ============== [PASSED] xe_rtp_process_tests ===============
stty: 'standard input': Inappropriate ioctl for device
[01:26:18] ===================== [PASSED] xe_rtp ======================
[01:26:18] ==================== xe_wa (1 subtest) =====================
[01:26:18] ======================== xe_wa_gt =========================
[01:26:18] [PASSED] TIGERLAKE (B0)
[01:26:18] [PASSED] DG1 (A0)
[01:26:18] [PASSED] DG1 (B0)
[01:26:18] [PASSED] ALDERLAKE_S (A0)
[01:26:18] [PASSED] ALDERLAKE_S (B0)
[01:26:18] [PASSED] ALDERLAKE_S (C0)
[01:26:18] [PASSED] ALDERLAKE_S (D0)
[01:26:18] [PASSED] ALDERLAKE_P (A0)
[01:26:18] [PASSED] ALDERLAKE_P (B0)
[01:26:18] [PASSED] ALDERLAKE_P (C0)
[01:26:18] [PASSED] ALDERLAKE_S_RPLS (D0)
[01:26:18] [PASSED] ALDERLAKE_P_RPLU (E0)
[01:26:18] [PASSED] DG2_G10 (C0)
[01:26:18] [PASSED] DG2_G11 (B1)
[01:26:18] [PASSED] DG2_G12 (A1)
[01:26:18] [PASSED] METEORLAKE (g:A0, m:A0)
[01:26:18] [PASSED] METEORLAKE (g:A0, m:A0)
[01:26:18] [PASSED] METEORLAKE (g:A0, m:A0)
[01:26:18] [PASSED] LUNARLAKE (g:A0, m:A0)
[01:26:18] [PASSED] LUNARLAKE (g:B0, m:A0)
[01:26:18] ==================== [PASSED] xe_wa_gt =====================
[01:26:18] ====================== [PASSED] xe_wa ======================
[01:26:18] ============================================================
[01:26:18] Testing complete. Ran 109 tests: passed: 95, skipped: 14
[01:26:18] Elapsed time: 29.826s total, 4.215s configuring, 25.340s building, 0.235s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[01:26:18] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[01:26:20] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make ARCH=um O=.kunit --jobs=48
../lib/iomap.c:156:5: warning: no previous prototype for ‘ioread64_lo_hi’ [-Wmissing-prototypes]
156 | u64 ioread64_lo_hi(const void __iomem *addr)
| ^~~~~~~~~~~~~~
../lib/iomap.c:163:5: warning: no previous prototype for ‘ioread64_hi_lo’ [-Wmissing-prototypes]
163 | u64 ioread64_hi_lo(const void __iomem *addr)
| ^~~~~~~~~~~~~~
../lib/iomap.c:170:5: warning: no previous prototype for ‘ioread64be_lo_hi’ [-Wmissing-prototypes]
170 | u64 ioread64be_lo_hi(const void __iomem *addr)
| ^~~~~~~~~~~~~~~~
../lib/iomap.c:178:5: warning: no previous prototype for ‘ioread64be_hi_lo’ [-Wmissing-prototypes]
178 | u64 ioread64be_hi_lo(const void __iomem *addr)
| ^~~~~~~~~~~~~~~~
../lib/iomap.c:264:6: warning: no previous prototype for ‘iowrite64_lo_hi’ [-Wmissing-prototypes]
264 | void iowrite64_lo_hi(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~
../lib/iomap.c:272:6: warning: no previous prototype for ‘iowrite64_hi_lo’ [-Wmissing-prototypes]
272 | void iowrite64_hi_lo(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~
../lib/iomap.c:280:6: warning: no previous prototype for ‘iowrite64be_lo_hi’ [-Wmissing-prototypes]
280 | void iowrite64be_lo_hi(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~~~
../lib/iomap.c:288:6: warning: no previous prototype for ‘iowrite64be_hi_lo’ [-Wmissing-prototypes]
288 | void iowrite64be_hi_lo(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~~~
[01:26:41] Starting KUnit Kernel (1/1)...
[01:26:41] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[01:26:42] ============ drm_test_pick_cmdline (2 subtests) ============
[01:26:42] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[01:26:42] =============== drm_test_pick_cmdline_named ===============
[01:26:42] [PASSED] NTSC
[01:26:42] [PASSED] NTSC-J
[01:26:42] [PASSED] PAL
[01:26:42] [PASSED] PAL-M
[01:26:42] =========== [PASSED] drm_test_pick_cmdline_named ===========
[01:26:42] ============== [PASSED] drm_test_pick_cmdline ==============
[01:26:42] ================== drm_buddy (7 subtests) ==================
[01:26:42] [PASSED] drm_test_buddy_alloc_limit
[01:26:42] [PASSED] drm_test_buddy_alloc_optimistic
[01:26:42] [PASSED] drm_test_buddy_alloc_pessimistic
[01:26:42] [PASSED] drm_test_buddy_alloc_pathological
[01:26:42] [PASSED] drm_test_buddy_alloc_contiguous
[01:26:42] [PASSED] drm_test_buddy_alloc_clear
[01:26:42] [PASSED] drm_test_buddy_alloc_range_bias
[01:26:42] ==================== [PASSED] drm_buddy ====================
[01:26:42] ============= drm_cmdline_parser (40 subtests) =============
[01:26:42] [PASSED] drm_test_cmdline_force_d_only
[01:26:42] [PASSED] drm_test_cmdline_force_D_only_dvi
[01:26:42] [PASSED] drm_test_cmdline_force_D_only_hdmi
[01:26:42] [PASSED] drm_test_cmdline_force_D_only_not_digital
[01:26:42] [PASSED] drm_test_cmdline_force_e_only
[01:26:42] [PASSED] drm_test_cmdline_res
[01:26:42] [PASSED] drm_test_cmdline_res_vesa
[01:26:42] [PASSED] drm_test_cmdline_res_vesa_rblank
[01:26:42] [PASSED] drm_test_cmdline_res_rblank
[01:26:42] [PASSED] drm_test_cmdline_res_bpp
[01:26:42] [PASSED] drm_test_cmdline_res_refresh
[01:26:42] [PASSED] drm_test_cmdline_res_bpp_refresh
[01:26:42] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[01:26:42] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[01:26:42] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[01:26:42] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[01:26:42] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[01:26:42] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[01:26:42] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[01:26:42] [PASSED] drm_test_cmdline_res_margins_force_on
[01:26:42] [PASSED] drm_test_cmdline_res_vesa_margins
[01:26:42] [PASSED] drm_test_cmdline_name
[01:26:42] [PASSED] drm_test_cmdline_name_bpp
[01:26:42] [PASSED] drm_test_cmdline_name_option
[01:26:42] [PASSED] drm_test_cmdline_name_bpp_option
[01:26:42] [PASSED] drm_test_cmdline_rotate_0
[01:26:42] [PASSED] drm_test_cmdline_rotate_90
[01:26:42] [PASSED] drm_test_cmdline_rotate_180
[01:26:42] [PASSED] drm_test_cmdline_rotate_270
[01:26:42] [PASSED] drm_test_cmdline_hmirror
[01:26:42] [PASSED] drm_test_cmdline_vmirror
[01:26:42] [PASSED] drm_test_cmdline_margin_options
[01:26:42] [PASSED] drm_test_cmdline_multiple_options
[01:26:42] [PASSED] drm_test_cmdline_bpp_extra_and_option
[01:26:42] [PASSED] drm_test_cmdline_extra_and_option
[01:26:42] [PASSED] drm_test_cmdline_freestanding_options
[01:26:42] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[01:26:42] [PASSED] drm_test_cmdline_panel_orientation
[01:26:42] ================ drm_test_cmdline_invalid =================
[01:26:42] [PASSED] margin_only
[01:26:42] [PASSED] interlace_only
[01:26:42] [PASSED] res_missing_x
[01:26:42] [PASSED] res_missing_y
[01:26:42] [PASSED] res_bad_y
[01:26:42] [PASSED] res_missing_y_bpp
[01:26:42] [PASSED] res_bad_bpp
[01:26:42] [PASSED] res_bad_refresh
[01:26:42] [PASSED] res_bpp_refresh_force_on_off
[01:26:42] [PASSED] res_invalid_mode
[01:26:42] [PASSED] res_bpp_wrong_place_mode
[01:26:42] [PASSED] name_bpp_refresh
[01:26:42] [PASSED] name_refresh
[01:26:42] [PASSED] name_refresh_wrong_mode
[01:26:42] [PASSED] name_refresh_invalid_mode
[01:26:42] [PASSED] rotate_multiple
[01:26:42] [PASSED] rotate_invalid_val
[01:26:42] [PASSED] rotate_truncated
[01:26:42] [PASSED] invalid_option
[01:26:42] [PASSED] invalid_tv_option
[01:26:42] [PASSED] truncated_tv_option
[01:26:42] ============ [PASSED] drm_test_cmdline_invalid =============
[01:26:42] =============== drm_test_cmdline_tv_options ===============
[01:26:42] [PASSED] NTSC
[01:26:42] [PASSED] NTSC_443
[01:26:42] [PASSED] NTSC_J
[01:26:42] [PASSED] PAL
[01:26:42] [PASSED] PAL_M
[01:26:42] [PASSED] PAL_N
[01:26:42] [PASSED] SECAM
[01:26:42] =========== [PASSED] drm_test_cmdline_tv_options ===========
[01:26:42] =============== [PASSED] drm_cmdline_parser ================
[01:26:42] ========== drmm_connector_hdmi_init (19 subtests) ==========
[01:26:42] [PASSED] drm_test_connector_hdmi_init_valid
[01:26:42] [PASSED] drm_test_connector_hdmi_init_bpc_8
[01:26:42] [PASSED] drm_test_connector_hdmi_init_bpc_10
[01:26:42] [PASSED] drm_test_connector_hdmi_init_bpc_12
[01:26:42] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[01:26:42] [PASSED] drm_test_connector_hdmi_init_bpc_null
[01:26:42] [PASSED] drm_test_connector_hdmi_init_formats_empty
[01:26:42] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[01:26:42] [PASSED] drm_test_connector_hdmi_init_null_ddc
[01:26:42] [PASSED] drm_test_connector_hdmi_init_null_product
[01:26:42] [PASSED] drm_test_connector_hdmi_init_null_vendor
[01:26:42] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[01:26:42] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[01:26:42] [PASSED] drm_test_connector_hdmi_init_product_valid
[01:26:42] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[01:26:42] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[01:26:42] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[01:26:42] ========= drm_test_connector_hdmi_init_type_valid =========
[01:26:42] [PASSED] HDMI-A
[01:26:42] [PASSED] HDMI-B
[01:26:42] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[01:26:42] ======== drm_test_connector_hdmi_init_type_invalid ========
[01:26:42] [PASSED] Unknown
[01:26:42] [PASSED] VGA
[01:26:42] [PASSED] DVI-I
[01:26:42] [PASSED] DVI-D
[01:26:42] [PASSED] DVI-A
[01:26:42] [PASSED] Composite
[01:26:42] [PASSED] SVIDEO
[01:26:42] [PASSED] LVDS
[01:26:42] [PASSED] Component
[01:26:42] [PASSED] DIN
[01:26:42] [PASSED] DP
[01:26:42] [PASSED] TV
[01:26:42] [PASSED] eDP
[01:26:42] [PASSED] Virtual
[01:26:42] [PASSED] DSI
[01:26:42] [PASSED] DPI
[01:26:42] [PASSED] Writeback
[01:26:42] [PASSED] SPI
[01:26:42] [PASSED] USB
[01:26:42] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[01:26:42] ============ [PASSED] drmm_connector_hdmi_init =============
[01:26:42] ============= drmm_connector_init (3 subtests) =============
[01:26:42] [PASSED] drm_test_drmm_connector_init
[01:26:42] [PASSED] drm_test_drmm_connector_init_null_ddc
[01:26:42] ========= drm_test_drmm_connector_init_type_valid =========
[01:26:42] [PASSED] Unknown
[01:26:42] [PASSED] VGA
[01:26:42] [PASSED] DVI-I
[01:26:42] [PASSED] DVI-D
[01:26:42] [PASSED] DVI-A
[01:26:42] [PASSED] Composite
[01:26:42] [PASSED] SVIDEO
[01:26:42] [PASSED] LVDS
[01:26:42] [PASSED] Component
[01:26:42] [PASSED] DIN
[01:26:42] [PASSED] DP
[01:26:42] [PASSED] HDMI-A
[01:26:42] [PASSED] HDMI-B
[01:26:42] [PASSED] TV
[01:26:42] [PASSED] eDP
[01:26:42] [PASSED] Virtual
[01:26:42] [PASSED] DSI
[01:26:42] [PASSED] DPI
[01:26:42] [PASSED] Writeback
[01:26:42] [PASSED] SPI
[01:26:42] [PASSED] USB
[01:26:42] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[01:26:42] =============== [PASSED] drmm_connector_init ===============
[01:26:42] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[01:26:42] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[01:26:42] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[01:26:42] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[01:26:42] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[01:26:42] ========== drm_test_get_tv_mode_from_name_valid ===========
[01:26:42] [PASSED] NTSC
[01:26:42] [PASSED] NTSC-443
[01:26:42] [PASSED] NTSC-J
[01:26:42] [PASSED] PAL
[01:26:42] [PASSED] PAL-M
[01:26:42] [PASSED] PAL-N
[01:26:42] [PASSED] SECAM
[01:26:42] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[01:26:42] [PASSED] drm_test_get_tv_mode_from_name_truncated
[01:26:42] ============ [PASSED] drm_get_tv_mode_from_name ============
[01:26:42] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[01:26:42] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[01:26:42] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[01:26:42] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[01:26:42] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[01:26:42] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[01:26:42] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[01:26:42] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[01:26:42] [PASSED] VIC 96
[01:26:42] [PASSED] VIC 97
[01:26:42] [PASSED] VIC 101
[01:26:42] [PASSED] VIC 102
[01:26:42] [PASSED] VIC 106
[01:26:42] [PASSED] VIC 107
[01:26:42] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[01:26:42] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[01:26:42] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[01:26:42] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[01:26:42] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[01:26:42] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[01:26:42] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[01:26:42] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[01:26:42] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[01:26:42] [PASSED] Automatic
[01:26:42] [PASSED] Full
[01:26:42] [PASSED] Limited 16:235
[01:26:42] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[01:26:42] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[01:26:42] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[01:26:42] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[01:26:42] === drm_test_drm_hdmi_connector_get_output_format_name ====
[01:26:42] [PASSED] RGB
[01:26:42] [PASSED] YUV 4:2:0
[01:26:42] [PASSED] YUV 4:2:2
[01:26:42] [PASSED] YUV 4:4:4
[01:26:42] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[01:26:42] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[01:26:42] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[01:26:42] ============= drm_damage_helper (21 subtests) ==============
[01:26:42] [PASSED] drm_test_damage_iter_no_damage
[01:26:42] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[01:26:42] [PASSED] drm_test_damage_iter_no_damage_src_moved
[01:26:42] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[01:26:42] [PASSED] drm_test_damage_iter_no_damage_not_visible
[01:26:42] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[01:26:42] [PASSED] drm_test_damage_iter_no_damage_no_fb
[01:26:42] [PASSED] drm_test_damage_iter_simple_damage
[01:26:42] [PASSED] drm_test_damage_iter_single_damage
[01:26:42] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[01:26:42] [PASSED] drm_test_damage_iter_single_damage_outside_src
[01:26:42] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[01:26:42] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[01:26:42] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[01:26:42] [PASSED] drm_test_damage_iter_single_damage_src_moved
[01:26:42] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[01:26:42] [PASSED] drm_test_damage_iter_damage
[01:26:42] [PASSED] drm_test_damage_iter_damage_one_intersect
[01:26:42] [PASSED] drm_test_damage_iter_damage_one_outside
[01:26:42] [PASSED] drm_test_damage_iter_damage_src_moved
[01:26:42] [PASSED] drm_test_damage_iter_damage_not_visible
[01:26:42] ================ [PASSED] drm_damage_helper ================
[01:26:42] ============== drm_dp_mst_helper (3 subtests) ==============
[01:26:42] ============== drm_test_dp_mst_calc_pbn_mode ==============
[01:26:42] [PASSED] Clock 154000 BPP 30 DSC disabled
[01:26:42] [PASSED] Clock 234000 BPP 30 DSC disabled
[01:26:42] [PASSED] Clock 297000 BPP 24 DSC disabled
[01:26:42] [PASSED] Clock 332880 BPP 24 DSC enabled
[01:26:42] [PASSED] Clock 324540 BPP 24 DSC enabled
[01:26:42] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[01:26:42] ============== drm_test_dp_mst_calc_pbn_div ===============
[01:26:42] [PASSED] Link rate 2000000 lane count 4
[01:26:42] [PASSED] Link rate 2000000 lane count 2
[01:26:42] [PASSED] Link rate 2000000 lane count 1
[01:26:42] [PASSED] Link rate 1350000 lane count 4
[01:26:42] [PASSED] Link rate 1350000 lane count 2
[01:26:42] [PASSED] Link rate 1350000 lane count 1
[01:26:42] [PASSED] Link rate 1000000 lane count 4
[01:26:42] [PASSED] Link rate 1000000 lane count 2
[01:26:42] [PASSED] Link rate 1000000 lane count 1
[01:26:42] [PASSED] Link rate 810000 lane count 4
[01:26:42] [PASSED] Link rate 810000 lane count 2
[01:26:42] [PASSED] Link rate 810000 lane count 1
[01:26:42] [PASSED] Link rate 540000 lane count 4
[01:26:42] [PASSED] Link rate 540000 lane count 2
[01:26:42] [PASSED] Link rate 540000 lane count 1
[01:26:42] [PASSED] Link rate 270000 lane count 4
[01:26:42] [PASSED] Link rate 270000 lane count 2
[01:26:42] [PASSED] Link rate 270000 lane count 1
[01:26:42] [PASSED] Link rate 162000 lane count 4
[01:26:42] [PASSED] Link rate 162000 lane count 2
[01:26:42] [PASSED] Link rate 162000 lane count 1
[01:26:42] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[01:26:42] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[01:26:42] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[01:26:42] [PASSED] DP_POWER_UP_PHY with port number
[01:26:42] [PASSED] DP_POWER_DOWN_PHY with port number
[01:26:42] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[01:26:42] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[01:26:42] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[01:26:42] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[01:26:42] [PASSED] DP_QUERY_PAYLOAD with port number
[01:26:42] [PASSED] DP_QUERY_PAYLOAD with VCPI
[01:26:42] [PASSED] DP_REMOTE_DPCD_READ with port number
[01:26:42] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[01:26:42] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[01:26:42] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[01:26:42] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[01:26:42] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[01:26:42] [PASSED] DP_REMOTE_I2C_READ with port number
[01:26:42] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[01:26:42] [PASSED] DP_REMOTE_I2C_READ with transactions array
[01:26:42] [PASSED] DP_REMOTE_I2C_WRITE with port number
[01:26:42] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[01:26:42] [PASSED] DP_REMOTE_I2C_WRITE with data array
[01:26:42] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[01:26:42] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[01:26:42] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[01:26:42] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[01:26:42] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[01:26:42] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[01:26:42] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[01:26:42] ================ [PASSED] drm_dp_mst_helper ================
[01:26:42] ================== drm_exec (7 subtests) ===================
[01:26:42] [PASSED] sanitycheck
[01:26:42] [PASSED] test_lock
[01:26:42] [PASSED] test_lock_unlock
[01:26:42] [PASSED] test_duplicates
[01:26:42] [PASSED] test_prepare
[01:26:42] [PASSED] test_prepare_array
[01:26:42] [PASSED] test_multiple_loops
[01:26:42] ==================== [PASSED] drm_exec =====================
[01:26:42] =========== drm_format_helper_test (17 subtests) ===========
[01:26:42] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[01:26:42] [PASSED] single_pixel_source_buffer
[01:26:42] [PASSED] single_pixel_clip_rectangle
[01:26:42] [PASSED] well_known_colors
[01:26:42] [PASSED] destination_pitch
[01:26:42] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[01:26:42] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[01:26:42] [PASSED] single_pixel_source_buffer
[01:26:42] [PASSED] single_pixel_clip_rectangle
[01:26:42] [PASSED] well_known_colors
[01:26:42] [PASSED] destination_pitch
[01:26:42] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[01:26:42] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[01:26:42] [PASSED] single_pixel_source_buffer
[01:26:42] [PASSED] single_pixel_clip_rectangle
[01:26:42] [PASSED] well_known_colors
[01:26:42] [PASSED] destination_pitch
[01:26:42] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[01:26:42] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[01:26:42] [PASSED] single_pixel_source_buffer
[01:26:42] [PASSED] single_pixel_clip_rectangle
[01:26:42] [PASSED] well_known_colors
[01:26:42] [PASSED] destination_pitch
[01:26:42] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[01:26:42] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[01:26:42] [PASSED] single_pixel_source_buffer
[01:26:42] [PASSED] single_pixel_clip_rectangle
[01:26:42] [PASSED] well_known_colors
[01:26:42] [PASSED] destination_pitch
[01:26:42] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[01:26:42] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[01:26:42] [PASSED] single_pixel_source_buffer
[01:26:42] [PASSED] single_pixel_clip_rectangle
[01:26:42] [PASSED] well_known_colors
[01:26:42] [PASSED] destination_pitch
[01:26:42] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[01:26:42] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[01:26:42] [PASSED] single_pixel_source_buffer
[01:26:42] [PASSED] single_pixel_clip_rectangle
[01:26:42] [PASSED] well_known_colors
[01:26:42] [PASSED] destination_pitch
[01:26:42] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[01:26:42] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[01:26:42] [PASSED] single_pixel_source_buffer
[01:26:42] [PASSED] single_pixel_clip_rectangle
[01:26:42] [PASSED] well_known_colors
[01:26:42] [PASSED] destination_pitch
[01:26:42] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[01:26:42] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[01:26:42] [PASSED] single_pixel_source_buffer
[01:26:42] [PASSED] single_pixel_clip_rectangle
[01:26:42] [PASSED] well_known_colors
[01:26:42] [PASSED] destination_pitch
[01:26:42] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[01:26:42] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[01:26:42] [PASSED] single_pixel_source_buffer
[01:26:42] [PASSED] single_pixel_clip_rectangle
[01:26:42] [PASSED] well_known_colors
[01:26:42] [PASSED] destination_pitch
[01:26:42] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[01:26:42] ============== drm_test_fb_xrgb8888_to_mono ===============
[01:26:42] [PASSED] single_pixel_source_buffer
[01:26:42] [PASSED] single_pixel_clip_rectangle
[01:26:42] [PASSED] well_known_colors
[01:26:42] [PASSED] destination_pitch
[01:26:42] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[01:26:42] ==================== drm_test_fb_swab =====================
[01:26:42] [PASSED] single_pixel_source_buffer
[01:26:42] [PASSED] single_pixel_clip_rectangle
[01:26:42] [PASSED] well_known_colors
[01:26:42] [PASSED] destination_pitch
[01:26:42] ================ [PASSED] drm_test_fb_swab =================
[01:26:42] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[01:26:42] [PASSED] single_pixel_source_buffer
[01:26:42] [PASSED] single_pixel_clip_rectangle
[01:26:42] [PASSED] well_known_colors
[01:26:42] [PASSED] destination_pitch
[01:26:42] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[01:26:42] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[01:26:42] [PASSED] single_pixel_source_buffer
[01:26:42] [PASSED] single_pixel_clip_rectangle
[01:26:42] [PASSED] well_known_colors
[01:26:42] [PASSED] destination_pitch
[01:26:42] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[01:26:42] ================= drm_test_fb_clip_offset =================
[01:26:42] [PASSED] pass through
[01:26:42] [PASSED] horizontal offset
[01:26:42] [PASSED] vertical offset
[01:26:42] [PASSED] horizontal and vertical offset
[01:26:42] [PASSED] horizontal offset (custom pitch)
[01:26:42] [PASSED] vertical offset (custom pitch)
[01:26:42] [PASSED] horizontal and vertical offset (custom pitch)
[01:26:42] ============= [PASSED] drm_test_fb_clip_offset =============
[01:26:42] ============== drm_test_fb_build_fourcc_list ==============
[01:26:42] [PASSED] no native formats
[01:26:42] [PASSED] XRGB8888 as native format
[01:26:42] [PASSED] remove duplicates
[01:26:42] [PASSED] convert alpha formats
[01:26:42] [PASSED] random formats
[01:26:42] ========== [PASSED] drm_test_fb_build_fourcc_list ==========
[01:26:42] =================== drm_test_fb_memcpy ====================
[01:26:42] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[01:26:42] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[01:26:42] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[01:26:42] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[01:26:42] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[01:26:42] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[01:26:42] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[01:26:42] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[01:26:42] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[01:26:42] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[01:26:42] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[01:26:42] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[01:26:42] =============== [PASSED] drm_test_fb_memcpy ================
[01:26:42] ============= [PASSED] drm_format_helper_test ==============
[01:26:42] ================= drm_format (18 subtests) =================
[01:26:42] [PASSED] drm_test_format_block_width_invalid
[01:26:42] [PASSED] drm_test_format_block_width_one_plane
[01:26:42] [PASSED] drm_test_format_block_width_two_plane
[01:26:42] [PASSED] drm_test_format_block_width_three_plane
[01:26:42] [PASSED] drm_test_format_block_width_tiled
[01:26:42] [PASSED] drm_test_format_block_height_invalid
[01:26:42] [PASSED] drm_test_format_block_height_one_plane
[01:26:42] [PASSED] drm_test_format_block_height_two_plane
[01:26:42] [PASSED] drm_test_format_block_height_three_plane
[01:26:42] [PASSED] drm_test_format_block_height_tiled
[01:26:42] [PASSED] drm_test_format_min_pitch_invalid
[01:26:42] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[01:26:42] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[01:26:42] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[01:26:42] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[01:26:42] [PASSED] drm_test_format_min_pitch_two_plane
[01:26:42] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[01:26:42] [PASSED] drm_test_format_min_pitch_tiled
[01:26:42] =================== [PASSED] drm_format ====================
[01:26:42] =============== drm_framebuffer (1 subtest) ================
[01:26:42] =============== drm_test_framebuffer_create ===============
[01:26:42] [PASSED] ABGR8888 normal sizes
[01:26:42] [PASSED] ABGR8888 max sizes
[01:26:42] [PASSED] ABGR8888 pitch greater than min required
[01:26:42] [PASSED] ABGR8888 pitch less than min required
[01:26:42] [PASSED] ABGR8888 Invalid width
[01:26:42] [PASSED] ABGR8888 Invalid buffer handle
[01:26:42] [PASSED] No pixel format
[01:26:42] [PASSED] ABGR8888 Width 0
[01:26:42] [PASSED] ABGR8888 Height 0
[01:26:42] [PASSED] ABGR8888 Out of bound height * pitch combination
[01:26:42] [PASSED] ABGR8888 Large buffer offset
[01:26:42] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[01:26:42] [PASSED] ABGR8888 Valid buffer modifier
[01:26:42] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[01:26:42] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[01:26:42] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[01:26:42] [PASSED] NV12 Normal sizes
[01:26:42] [PASSED] NV12 Max sizes
[01:26:42] [PASSED] NV12 Invalid pitch
[01:26:42] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[01:26:42] [PASSED] NV12 different modifier per-plane
[01:26:42] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[01:26:42] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[01:26:42] [PASSED] NV12 Modifier for inexistent plane
[01:26:42] [PASSED] NV12 Handle for inexistent plane
[01:26:42] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[01:26:42] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[01:26:42] [PASSED] YVU420 Normal sizes
[01:26:42] [PASSED] YVU420 Max sizes
[01:26:42] [PASSED] YVU420 Invalid pitch
[01:26:42] [PASSED] YVU420 Different pitches
[01:26:42] [PASSED] YVU420 Different buffer offsets/pitches
[01:26:42] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[01:26:42] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[01:26:42] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[01:26:42] [PASSED] YVU420 Valid modifier
[01:26:42] [PASSED] YVU420 Different modifiers per plane
[01:26:42] [PASSED] YVU420 Modifier for inexistent plane
[01:26:42] [PASSED] X0L2 Normal sizes
[01:26:42] [PASSED] X0L2 Max sizes
[01:26:42] [PASSED] X0L2 Invalid pitch
[01:26:42] [PASSED] X0L2 Pitch greater than minimum required
[01:26:42] [PASSED] X0L2 Handle for inexistent plane
[01:26:42] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[01:26:42] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[01:26:42] [PASSED] X0L2 Valid modifier
[01:26:42] [PASSED] X0L2 Modifier for inexistent plane
[01:26:42] =========== [PASSED] drm_test_framebuffer_create ===========
[01:26:42] ================= [PASSED] drm_framebuffer =================
[01:26:42] ================ drm_gem_shmem (8 subtests) ================
[01:26:42] [PASSED] drm_gem_shmem_test_obj_create
[01:26:42] [PASSED] drm_gem_shmem_test_obj_create_private
[01:26:42] [PASSED] drm_gem_shmem_test_pin_pages
[01:26:42] [PASSED] drm_gem_shmem_test_vmap
[01:26:42] [PASSED] drm_gem_shmem_test_get_pages_sgt
[01:26:42] [PASSED] drm_gem_shmem_test_get_sg_table
[01:26:42] [PASSED] drm_gem_shmem_test_madvise
[01:26:42] [PASSED] drm_gem_shmem_test_purge
[01:26:42] ================== [PASSED] drm_gem_shmem ==================
[01:26:42] === drm_atomic_helper_connector_hdmi_check (22 subtests) ===
[01:26:42] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[01:26:42] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[01:26:42] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[01:26:42] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[01:26:42] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[01:26:42] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[01:26:42] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[01:26:42] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[01:26:42] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[01:26:42] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback
[01:26:42] [PASSED] drm_test_check_max_tmds_rate_format_fallback
[01:26:42] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[01:26:42] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[01:26:42] [PASSED] drm_test_check_output_bpc_dvi
[01:26:42] [PASSED] drm_test_check_output_bpc_format_vic_1
[01:26:42] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[01:26:42] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[01:26:42] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[01:26:42] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[01:26:42] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[01:26:42] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[01:26:42] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[01:26:42] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[01:26:42] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[01:26:42] [PASSED] drm_test_check_broadcast_rgb_value
[01:26:42] [PASSED] drm_test_check_bpc_8_value
[01:26:42] [PASSED] drm_test_check_bpc_10_value
[01:26:42] [PASSED] drm_test_check_bpc_12_value
[01:26:42] [PASSED] drm_test_check_format_value
[01:26:42] [PASSED] drm_test_check_tmds_char_value
[01:26:42] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[01:26:42] ================= drm_managed (2 subtests) =================
[01:26:42] [PASSED] drm_test_managed_release_action
[01:26:42] [PASSED] drm_test_managed_run_action
[01:26:42] =================== [PASSED] drm_managed ===================
[01:26:42] =================== drm_mm (6 subtests) ====================
[01:26:42] [PASSED] drm_test_mm_init
[01:26:42] [PASSED] drm_test_mm_debug
[01:26:42] [PASSED] drm_test_mm_align32
[01:26:42] [PASSED] drm_test_mm_align64
[01:26:42] [PASSED] drm_test_mm_lowest
[01:26:42] [PASSED] drm_test_mm_highest
[01:26:42] ===================== [PASSED] drm_mm ======================
[01:26:42] ============= drm_modes_analog_tv (4 subtests) =============
[01:26:42] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[01:26:42] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[01:26:42] [PASSED] drm_test_modes_analog_tv_pal_576i
[01:26:42] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[01:26:42] =============== [PASSED] drm_modes_analog_tv ===============
[01:26:42] ============== drm_plane_helper (2 subtests) ===============
[01:26:42] =============== drm_test_check_plane_state ================
[01:26:42] [PASSED] clipping_simple
[01:26:42] [PASSED] clipping_rotate_reflect
[01:26:42] [PASSED] positioning_simple
[01:26:42] [PASSED] upscaling
[01:26:42] [PASSED] downscaling
[01:26:42] [PASSED] rounding1
[01:26:42] [PASSED] rounding2
[01:26:42] [PASSED] rounding3
[01:26:42] [PASSED] rounding4
[01:26:42] =========== [PASSED] drm_test_check_plane_state ============
[01:26:42] =========== drm_test_check_invalid_plane_state ============
[01:26:42] [PASSED] positioning_invalid
[01:26:42] [PASSED] upscaling_invalid
[01:26:42] [PASSED] downscaling_invalid
[01:26:42] ======= [PASSED] drm_test_check_invalid_plane_state ========
[01:26:42] ================ [PASSED] drm_plane_helper =================
stty: 'standard input': Inappropriate ioctl for device
[01:26:42] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[01:26:42] ====== drm_test_connector_helper_tv_get_modes_check =======
[01:26:42] [PASSED] None
[01:26:42] [PASSED] PAL
[01:26:42] [PASSED] NTSC
[01:26:42] [PASSED] Both, NTSC Default
[01:26:42] [PASSED] Both, PAL Default
[01:26:42] [PASSED] Both, NTSC Default, with PAL on command-line
[01:26:42] [PASSED] Both, PAL Default, with NTSC on command-line
[01:26:42] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[01:26:42] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[01:26:42] ================== drm_rect (9 subtests) ===================
[01:26:42] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[01:26:42] [PASSED] drm_test_rect_clip_scaled_not_clipped
[01:26:42] [PASSED] drm_test_rect_clip_scaled_clipped
[01:26:42] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[01:26:42] ================= drm_test_rect_intersect =================
[01:26:42] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[01:26:42] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[01:26:42] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[01:26:42] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[01:26:42] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[01:26:42] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[01:26:42] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[01:26:42] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[01:26:42] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[01:26:42] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[01:26:42] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[01:26:42] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[01:26:42] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[01:26:42] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[01:26:42] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[01:26:42] ============= [PASSED] drm_test_rect_intersect =============
[01:26:42] ================ drm_test_rect_calc_hscale ================
[01:26:42] [PASSED] normal use
[01:26:42] [PASSED] out of max range
[01:26:42] [PASSED] out of min range
[01:26:42] [PASSED] zero dst
[01:26:42] [PASSED] negative src
[01:26:42] [PASSED] negative dst
[01:26:42] ============ [PASSED] drm_test_rect_calc_hscale ============
[01:26:42] ================ drm_test_rect_calc_vscale ================
[01:26:42] [PASSED] normal use
[01:26:42] [PASSED] out of max range
[01:26:42] [PASSED] out of min range
[01:26:42] [PASSED] zero dst
[01:26:42] [PASSED] negative src
[01:26:42] [PASSED] negative dst
[01:26:42] ============ [PASSED] drm_test_rect_calc_vscale ============
[01:26:42] ================== drm_test_rect_rotate ===================
[01:26:42] [PASSED] reflect-x
[01:26:42] [PASSED] reflect-y
[01:26:42] [PASSED] rotate-0
[01:26:42] [PASSED] rotate-90
[01:26:42] [PASSED] rotate-180
[01:26:42] [PASSED] rotate-270
[01:26:42] ============== [PASSED] drm_test_rect_rotate ===============
[01:26:42] ================ drm_test_rect_rotate_inv =================
[01:26:42] [PASSED] reflect-x
[01:26:42] [PASSED] reflect-y
[01:26:42] [PASSED] rotate-0
[01:26:42] [PASSED] rotate-90
[01:26:42] [PASSED] rotate-180
[01:26:42] [PASSED] rotate-270
[01:26:42] ============ [PASSED] drm_test_rect_rotate_inv =============
[01:26:42] ==================== [PASSED] drm_rect =====================
[01:26:42] ============================================================
[01:26:42] Testing complete. Ran 511 tests: passed: 511
[01:26:42] Elapsed time: 23.642s total, 1.731s configuring, 21.664s building, 0.193s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 23+ messages in thread
* ✓ CI.Build: success for drm/xe/guc: Improve quality and robustness of GuC log dumping (rev2)
2024-06-11 1:20 [PATCH v4 0/7] drm/xe/guc: Improve quality and robustness of GuC log dumping John.C.Harrison
` (9 preceding siblings ...)
2024-06-11 1:26 ` ✓ CI.KUnit: success " Patchwork
@ 2024-06-11 1:38 ` Patchwork
2024-06-11 1:40 ` ✗ CI.Hooks: failure " Patchwork
` (3 subsequent siblings)
14 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2024-06-11 1:38 UTC (permalink / raw)
To: john.c.harrison; +Cc: intel-xe
== Series Details ==
Series: drm/xe/guc: Improve quality and robustness of GuC log dumping (rev2)
URL : https://patchwork.freedesktop.org/series/134695/
State : success
== Summary ==
lib/modules/6.10.0-rc3-xe/kernel/sound/core/seq/
lib/modules/6.10.0-rc3-xe/kernel/sound/core/seq/snd-seq.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/core/snd-seq-device.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/core/snd-hwdep.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/core/snd.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/core/snd-pcm.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/core/snd-compress.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/core/snd-timer.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soundcore.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/intel/
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/intel/atom/
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/intel/atom/sst/
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/intel/atom/sst/snd-intel-sst-acpi.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/intel/atom/sst/snd-intel-sst-core.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/intel/common/
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/intel/common/snd-soc-acpi-intel-match.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/amd/
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/amd/snd-acp-config.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/intel/
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-tgl.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda-mlink.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-cnl.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-lnl.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda-common.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda-generic.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-mtl.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/amd/
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/amd/snd-sof-amd-renoir.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/amd/snd-sof-amd-acp.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/snd-sof-utils.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/snd-sof-pci.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/snd-sof.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/snd-sof-probes.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/xtensa/
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/xtensa/snd-sof-xtensa-dsp.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/snd-soc-core.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/snd-soc-acpi.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/codecs/
lib/modules/6.10.0-rc3-xe/kernel/sound/soc/codecs/snd-soc-hdac-hda.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/hda/
lib/modules/6.10.0-rc3-xe/kernel/sound/hda/snd-intel-sdw-acpi.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/hda/ext/
lib/modules/6.10.0-rc3-xe/kernel/sound/hda/ext/snd-hda-ext-core.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/hda/snd-intel-dspcfg.ko
lib/modules/6.10.0-rc3-xe/kernel/sound/hda/snd-hda-core.ko
lib/modules/6.10.0-rc3-xe/kernel/arch/
lib/modules/6.10.0-rc3-xe/kernel/arch/x86/
lib/modules/6.10.0-rc3-xe/kernel/arch/x86/kernel/
lib/modules/6.10.0-rc3-xe/kernel/arch/x86/kernel/msr.ko
lib/modules/6.10.0-rc3-xe/kernel/arch/x86/kernel/cpuid.ko
lib/modules/6.10.0-rc3-xe/kernel/arch/x86/crypto/
lib/modules/6.10.0-rc3-xe/kernel/arch/x86/crypto/sha512-ssse3.ko
lib/modules/6.10.0-rc3-xe/kernel/arch/x86/crypto/crct10dif-pclmul.ko
lib/modules/6.10.0-rc3-xe/kernel/arch/x86/crypto/ghash-clmulni-intel.ko
lib/modules/6.10.0-rc3-xe/kernel/arch/x86/crypto/sha1-ssse3.ko
lib/modules/6.10.0-rc3-xe/kernel/arch/x86/crypto/crc32-pclmul.ko
lib/modules/6.10.0-rc3-xe/kernel/arch/x86/crypto/sha256-ssse3.ko
lib/modules/6.10.0-rc3-xe/kernel/arch/x86/crypto/aesni-intel.ko
lib/modules/6.10.0-rc3-xe/kernel/arch/x86/crypto/polyval-clmulni.ko
lib/modules/6.10.0-rc3-xe/kernel/arch/x86/events/
lib/modules/6.10.0-rc3-xe/kernel/arch/x86/events/intel/
lib/modules/6.10.0-rc3-xe/kernel/arch/x86/events/intel/intel-cstate.ko
lib/modules/6.10.0-rc3-xe/kernel/arch/x86/events/rapl.ko
lib/modules/6.10.0-rc3-xe/kernel/arch/x86/kvm/
lib/modules/6.10.0-rc3-xe/kernel/arch/x86/kvm/kvm.ko
lib/modules/6.10.0-rc3-xe/kernel/arch/x86/kvm/kvm-intel.ko
lib/modules/6.10.0-rc3-xe/kernel/crypto/
lib/modules/6.10.0-rc3-xe/kernel/crypto/crypto_simd.ko
lib/modules/6.10.0-rc3-xe/kernel/crypto/cmac.ko
lib/modules/6.10.0-rc3-xe/kernel/crypto/ccm.ko
lib/modules/6.10.0-rc3-xe/kernel/crypto/cryptd.ko
lib/modules/6.10.0-rc3-xe/kernel/crypto/polyval-generic.ko
lib/modules/6.10.0-rc3-xe/kernel/crypto/async_tx/
lib/modules/6.10.0-rc3-xe/kernel/crypto/async_tx/async_xor.ko
lib/modules/6.10.0-rc3-xe/kernel/crypto/async_tx/async_tx.ko
lib/modules/6.10.0-rc3-xe/kernel/crypto/async_tx/async_memcpy.ko
lib/modules/6.10.0-rc3-xe/kernel/crypto/async_tx/async_pq.ko
lib/modules/6.10.0-rc3-xe/kernel/crypto/async_tx/async_raid6_recov.ko
lib/modules/6.10.0-rc3-xe/build
lib/modules/6.10.0-rc3-xe/modules.alias.bin
lib/modules/6.10.0-rc3-xe/modules.builtin
lib/modules/6.10.0-rc3-xe/modules.softdep
lib/modules/6.10.0-rc3-xe/modules.alias
lib/modules/6.10.0-rc3-xe/modules.order
lib/modules/6.10.0-rc3-xe/modules.symbols
lib/modules/6.10.0-rc3-xe/modules.dep.bin
+ mv kernel-nodebug.tar.gz ..
+ cd ..
+ rm -rf archive
++ date +%s
+ echo -e '\e[0Ksection_end:1718069884:package_x86_64_nodebug\r\e[0K'
+ sync
^[[0Ksection_end:1718069884:package_x86_64_nodebug
^[[0K
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 23+ messages in thread
* ✗ CI.Hooks: failure for drm/xe/guc: Improve quality and robustness of GuC log dumping (rev2)
2024-06-11 1:20 [PATCH v4 0/7] drm/xe/guc: Improve quality and robustness of GuC log dumping John.C.Harrison
` (10 preceding siblings ...)
2024-06-11 1:38 ` ✓ CI.Build: " Patchwork
@ 2024-06-11 1:40 ` Patchwork
2024-06-11 1:41 ` ✗ CI.checksparse: warning " Patchwork
` (2 subsequent siblings)
14 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2024-06-11 1:40 UTC (permalink / raw)
To: john.c.harrison; +Cc: intel-xe
== Series Details ==
Series: drm/xe/guc: Improve quality and robustness of GuC log dumping (rev2)
URL : https://patchwork.freedesktop.org/series/134695/
State : failure
== Summary ==
run-parts: executing /workspace/ci/hooks/00-showenv
+ export
+ grep -Ei '(^|\W)CI_'
declare -x CI_KERNEL_BUILD_DIR="/workspace/kernel/build64-default"
declare -x CI_KERNEL_SRC_DIR="/workspace/kernel"
declare -x CI_TOOLS_SRC_DIR="/workspace/ci"
declare -x CI_WORKSPACE_DIR="/workspace"
run-parts: executing /workspace/ci/hooks/10-build-W1
+ SRC_DIR=/workspace/kernel
+ RESTORE_DISPLAY_CONFIG=0
+ '[' -n /workspace/kernel/build64-default ']'
+ BUILD_DIR=/workspace/kernel/build64-default
+ cd /workspace/kernel
++ nproc
+ make -j48 O=/workspace/kernel/build64-default modules_prepare
make[1]: Entering directory '/workspace/kernel/build64-default'
GEN Makefile
UPD include/generated/compile.h
UPD include/config/kernel.release
mkdir -p /workspace/kernel/build64-default/tools/objtool && make O=/workspace/kernel/build64-default subdir=tools/objtool --no-print-directory -C objtool
UPD include/generated/utsrelease.h
HOSTCC /workspace/kernel/build64-default/tools/objtool/fixdep.o
CALL ../scripts/checksyscalls.sh
HOSTLD /workspace/kernel/build64-default/tools/objtool/fixdep-in.o
LINK /workspace/kernel/build64-default/tools/objtool/fixdep
INSTALL libsubcmd_headers
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/exec-cmd.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/help.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/pager.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/parse-options.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/run-command.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/sigchain.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/subcmd-config.o
LD /workspace/kernel/build64-default/tools/objtool/libsubcmd/libsubcmd-in.o
AR /workspace/kernel/build64-default/tools/objtool/libsubcmd/libsubcmd.a
CC /workspace/kernel/build64-default/tools/objtool/weak.o
CC /workspace/kernel/build64-default/tools/objtool/check.o
CC /workspace/kernel/build64-default/tools/objtool/special.o
CC /workspace/kernel/build64-default/tools/objtool/builtin-check.o
CC /workspace/kernel/build64-default/tools/objtool/elf.o
CC /workspace/kernel/build64-default/tools/objtool/objtool.o
CC /workspace/kernel/build64-default/tools/objtool/orc_gen.o
CC /workspace/kernel/build64-default/tools/objtool/orc_dump.o
CC /workspace/kernel/build64-default/tools/objtool/libstring.o
CC /workspace/kernel/build64-default/tools/objtool/libctype.o
CC /workspace/kernel/build64-default/tools/objtool/str_error_r.o
CC /workspace/kernel/build64-default/tools/objtool/librbtree.o
CC /workspace/kernel/build64-default/tools/objtool/arch/x86/special.o
CC /workspace/kernel/build64-default/tools/objtool/arch/x86/decode.o
CC /workspace/kernel/build64-default/tools/objtool/arch/x86/orc.o
LD /workspace/kernel/build64-default/tools/objtool/arch/x86/objtool-in.o
LD /workspace/kernel/build64-default/tools/objtool/objtool-in.o
LINK /workspace/kernel/build64-default/tools/objtool/objtool
make[1]: Leaving directory '/workspace/kernel/build64-default'
++ nproc
+ make -j48 O=/workspace/kernel/build64-default W=1 drivers/gpu/drm/xe
make[1]: Entering directory '/workspace/kernel/build64-default'
make[2]: Nothing to be done for 'drivers/gpu/drm/xe'.
make[1]: Leaving directory '/workspace/kernel/build64-default'
run-parts: executing /workspace/ci/hooks/11-build-32b
+++ realpath /workspace/ci/hooks/11-build-32b
++ dirname /workspace/ci/hooks/11-build-32b
+ THIS_SCRIPT_DIR=/workspace/ci/hooks
+ SRC_DIR=/workspace/kernel
+ TOOLS_SRC_DIR=/workspace/ci
+ '[' -n /workspace/kernel/build64-default ']'
+ BUILD_DIR=/workspace/kernel/build64-default
+ BUILD_DIR=/workspace/kernel/build64-default/build32
+ cd /workspace/kernel
+ mkdir -p /workspace/kernel/build64-default/build32
++ nproc
+ make -j48 ARCH=i386 O=/workspace/kernel/build64-default/build32 defconfig
make[1]: Entering directory '/workspace/kernel/build64-default/build32'
GEN Makefile
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/confdata.o
HOSTCC scripts/kconfig/expr.o
LEX scripts/kconfig/lexer.lex.c
YACC scripts/kconfig/parser.tab.[ch]
HOSTCC scripts/kconfig/menu.o
HOSTCC scripts/kconfig/symbol.o
HOSTCC scripts/kconfig/preprocess.o
HOSTCC scripts/kconfig/util.o
HOSTCC scripts/kconfig/lexer.lex.o
HOSTCC scripts/kconfig/parser.tab.o
HOSTLD scripts/kconfig/conf
*** Default configuration is based on 'i386_defconfig'
#
# configuration written to .config
#
make[1]: Leaving directory '/workspace/kernel/build64-default/build32'
+ cd /workspace/kernel/build64-default/build32
+ /workspace/kernel/scripts/kconfig/merge_config.sh .config /workspace/ci/kernel/10-xe.fragment
Using .config as base
Merging /workspace/ci/kernel/10-xe.fragment
Value of CONFIG_DRM_XE is redefined by fragment /workspace/ci/kernel/10-xe.fragment:
Previous value: # CONFIG_DRM_XE is not set
New value: CONFIG_DRM_XE=m
Value of CONFIG_SND_DEBUG is redefined by fragment /workspace/ci/kernel/10-xe.fragment:
Previous value: # CONFIG_SND_DEBUG is not set
New value: CONFIG_SND_DEBUG=y
Value of CONFIG_SND_HDA_INTEL is redefined by fragment /workspace/ci/kernel/10-xe.fragment:
Previous value: CONFIG_SND_HDA_INTEL=y
New value: CONFIG_SND_HDA_INTEL=m
Value of CONFIG_SND_HDA_CODEC_HDMI is redefined by fragment /workspace/ci/kernel/10-xe.fragment:
Previous value: # CONFIG_SND_HDA_CODEC_HDMI is not set
New value: CONFIG_SND_HDA_CODEC_HDMI=m
GEN Makefile
WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
Selected by [m]:
- DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m]
#
# configuration written to .config
#
Value requested for CONFIG_HAVE_UID16 not in final .config
Requested value: CONFIG_HAVE_UID16=y
Actual value:
Value requested for CONFIG_UID16 not in final .config
Requested value: CONFIG_UID16=y
Actual value:
Value requested for CONFIG_X86_32 not in final .config
Requested value: CONFIG_X86_32=y
Actual value:
Value requested for CONFIG_OUTPUT_FORMAT not in final .config
Requested value: CONFIG_OUTPUT_FORMAT="elf32-i386"
Actual value: CONFIG_OUTPUT_FORMAT="elf64-x86-64"
Value requested for CONFIG_ARCH_MMAP_RND_BITS_MIN not in final .config
Requested value: CONFIG_ARCH_MMAP_RND_BITS_MIN=8
Actual value: CONFIG_ARCH_MMAP_RND_BITS_MIN=28
Value requested for CONFIG_ARCH_MMAP_RND_BITS_MAX not in final .config
Requested value: CONFIG_ARCH_MMAP_RND_BITS_MAX=16
Actual value: CONFIG_ARCH_MMAP_RND_BITS_MAX=32
Value requested for CONFIG_PGTABLE_LEVELS not in final .config
Requested value: CONFIG_PGTABLE_LEVELS=2
Actual value: CONFIG_PGTABLE_LEVELS=5
Value requested for CONFIG_X86_BIGSMP not in final .config
Requested value: # CONFIG_X86_BIGSMP is not set
Actual value:
Value requested for CONFIG_X86_INTEL_QUARK not in final .config
Requested value: # CONFIG_X86_INTEL_QUARK is not set
Actual value:
Value requested for CONFIG_X86_RDC321X not in final .config
Requested value: # CONFIG_X86_RDC321X is not set
Actual value:
Value requested for CONFIG_X86_32_NON_STANDARD not in final .config
Requested value: # CONFIG_X86_32_NON_STANDARD is not set
Actual value:
Value requested for CONFIG_X86_32_IRIS not in final .config
Requested value: # CONFIG_X86_32_IRIS is not set
Actual value:
Value requested for CONFIG_M486SX not in final .config
Requested value: # CONFIG_M486SX is not set
Actual value:
Value requested for CONFIG_M486 not in final .config
Requested value: # CONFIG_M486 is not set
Actual value:
Value requested for CONFIG_M586 not in final .config
Requested value: # CONFIG_M586 is not set
Actual value:
Value requested for CONFIG_M586TSC not in final .config
Requested value: # CONFIG_M586TSC is not set
Actual value:
Value requested for CONFIG_M586MMX not in final .config
Requested value: # CONFIG_M586MMX is not set
Actual value:
Value requested for CONFIG_M686 not in final .config
Requested value: CONFIG_M686=y
Actual value:
Value requested for CONFIG_MPENTIUMII not in final .config
Requested value: # CONFIG_MPENTIUMII is not set
Actual value:
Value requested for CONFIG_MPENTIUMIII not in final .config
Requested value: # CONFIG_MPENTIUMIII is not set
Actual value:
Value requested for CONFIG_MPENTIUMM not in final .config
Requested value: # CONFIG_MPENTIUMM is not set
Actual value:
Value requested for CONFIG_MPENTIUM4 not in final .config
Requested value: # CONFIG_MPENTIUM4 is not set
Actual value:
Value requested for CONFIG_MK6 not in final .config
Requested value: # CONFIG_MK6 is not set
Actual value:
Value requested for CONFIG_MK7 not in final .config
Requested value: # CONFIG_MK7 is not set
Actual value:
Value requested for CONFIG_MCRUSOE not in final .config
Requested value: # CONFIG_MCRUSOE is not set
Actual value:
Value requested for CONFIG_MEFFICEON not in final .config
Requested value: # CONFIG_MEFFICEON is not set
Actual value:
Value requested for CONFIG_MWINCHIPC6 not in final .config
Requested value: # CONFIG_MWINCHIPC6 is not set
Actual value:
Value requested for CONFIG_MWINCHIP3D not in final .config
Requested value: # CONFIG_MWINCHIP3D is not set
Actual value:
Value requested for CONFIG_MELAN not in final .config
Requested value: # CONFIG_MELAN is not set
Actual value:
Value requested for CONFIG_MGEODEGX1 not in final .config
Requested value: # CONFIG_MGEODEGX1 is not set
Actual value:
Value requested for CONFIG_MGEODE_LX not in final .config
Requested value: # CONFIG_MGEODE_LX is not set
Actual value:
Value requested for CONFIG_MCYRIXIII not in final .config
Requested value: # CONFIG_MCYRIXIII is not set
Actual value:
Value requested for CONFIG_MVIAC3_2 not in final .config
Requested value: # CONFIG_MVIAC3_2 is not set
Actual value:
Value requested for CONFIG_MVIAC7 not in final .config
Requested value: # CONFIG_MVIAC7 is not set
Actual value:
Value requested for CONFIG_X86_GENERIC not in final .config
Requested value: # CONFIG_X86_GENERIC is not set
Actual value:
Value requested for CONFIG_X86_INTERNODE_CACHE_SHIFT not in final .config
Requested value: CONFIG_X86_INTERNODE_CACHE_SHIFT=5
Actual value: CONFIG_X86_INTERNODE_CACHE_SHIFT=6
Value requested for CONFIG_X86_L1_CACHE_SHIFT not in final .config
Requested value: CONFIG_X86_L1_CACHE_SHIFT=5
Actual value: CONFIG_X86_L1_CACHE_SHIFT=6
Value requested for CONFIG_X86_USE_PPRO_CHECKSUM not in final .config
Requested value: CONFIG_X86_USE_PPRO_CHECKSUM=y
Actual value:
Value requested for CONFIG_X86_MINIMUM_CPU_FAMILY not in final .config
Requested value: CONFIG_X86_MINIMUM_CPU_FAMILY=6
Actual value: CONFIG_X86_MINIMUM_CPU_FAMILY=64
Value requested for CONFIG_CPU_SUP_TRANSMETA_32 not in final .config
Requested value: CONFIG_CPU_SUP_TRANSMETA_32=y
Actual value:
Value requested for CONFIG_CPU_SUP_VORTEX_32 not in final .config
Requested value: CONFIG_CPU_SUP_VORTEX_32=y
Actual value:
Value requested for CONFIG_HPET_TIMER not in final .config
Requested value: # CONFIG_HPET_TIMER is not set
Actual value: CONFIG_HPET_TIMER=y
Value requested for CONFIG_NR_CPUS_RANGE_END not in final .config
Requested value: CONFIG_NR_CPUS_RANGE_END=8
Actual value: CONFIG_NR_CPUS_RANGE_END=512
Value requested for CONFIG_NR_CPUS_DEFAULT not in final .config
Requested value: CONFIG_NR_CPUS_DEFAULT=8
Actual value: CONFIG_NR_CPUS_DEFAULT=64
Value requested for CONFIG_X86_ANCIENT_MCE not in final .config
Requested value: # CONFIG_X86_ANCIENT_MCE is not set
Actual value:
Value requested for CONFIG_X86_LEGACY_VM86 not in final .config
Requested value: # CONFIG_X86_LEGACY_VM86 is not set
Actual value:
Value requested for CONFIG_X86_ESPFIX32 not in final .config
Requested value: CONFIG_X86_ESPFIX32=y
Actual value:
Value requested for CONFIG_TOSHIBA not in final .config
Requested value: # CONFIG_TOSHIBA is not set
Actual value:
Value requested for CONFIG_X86_REBOOTFIXUPS not in final .config
Requested value: # CONFIG_X86_REBOOTFIXUPS is not set
Actual value:
Value requested for CONFIG_MICROCODE_INITRD32 not in final .config
Requested value: CONFIG_MICROCODE_INITRD32=y
Actual value:
Value requested for CONFIG_NOHIGHMEM not in final .config
Requested value: # CONFIG_NOHIGHMEM is not set
Actual value:
Value requested for CONFIG_HIGHMEM4G not in final .config
Requested value: CONFIG_HIGHMEM4G=y
Actual value:
Value requested for CONFIG_HIGHMEM64G not in final .config
Requested value: # CONFIG_HIGHMEM64G is not set
Actual value:
Value requested for CONFIG_PAGE_OFFSET not in final .config
Requested value: CONFIG_PAGE_OFFSET=0xC0000000
Actual value:
Value requested for CONFIG_HIGHMEM not in final .config
Requested value: CONFIG_HIGHMEM=y
Actual value:
Value requested for CONFIG_X86_PAE not in final .config
Requested value: # CONFIG_X86_PAE is not set
Actual value:
Value requested for CONFIG_ARCH_FLATMEM_ENABLE not in final .config
Requested value: CONFIG_ARCH_FLATMEM_ENABLE=y
Actual value:
Value requested for CONFIG_ARCH_SELECT_MEMORY_MODEL not in final .config
Requested value: CONFIG_ARCH_SELECT_MEMORY_MODEL=y
Actual value:
Value requested for CONFIG_ILLEGAL_POINTER_VALUE not in final .config
Requested value: CONFIG_ILLEGAL_POINTER_VALUE=0
Actual value: CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
Value requested for CONFIG_HIGHPTE not in final .config
Requested value: # CONFIG_HIGHPTE is not set
Actual value:
Value requested for CONFIG_COMPAT_VDSO not in final .config
Requested value: # CONFIG_COMPAT_VDSO is not set
Actual value:
Value requested for CONFIG_FUNCTION_PADDING_CFI not in final .config
Requested value: CONFIG_FUNCTION_PADDING_CFI=0
Actual value: CONFIG_FUNCTION_PADDING_CFI=11
Value requested for CONFIG_FUNCTION_PADDING_BYTES not in final .config
Requested value: CONFIG_FUNCTION_PADDING_BYTES=4
Actual value: CONFIG_FUNCTION_PADDING_BYTES=16
Value requested for CONFIG_APM not in final .config
Requested value: # CONFIG_APM is not set
Actual value:
Value requested for CONFIG_X86_POWERNOW_K6 not in final .config
Requested value: # CONFIG_X86_POWERNOW_K6 is not set
Actual value:
Value requested for CONFIG_X86_POWERNOW_K7 not in final .config
Requested value: # CONFIG_X86_POWERNOW_K7 is not set
Actual value:
Value requested for CONFIG_X86_GX_SUSPMOD not in final .config
Requested value: # CONFIG_X86_GX_SUSPMOD is not set
Actual value:
Value requested for CONFIG_X86_SPEEDSTEP_ICH not in final .config
Requested value: # CONFIG_X86_SPEEDSTEP_ICH is not set
Actual value:
Value requested for CONFIG_X86_SPEEDSTEP_SMI not in final .config
Requested value: # CONFIG_X86_SPEEDSTEP_SMI is not set
Actual value:
Value requested for CONFIG_X86_CPUFREQ_NFORCE2 not in final .config
Requested value: # CONFIG_X86_CPUFREQ_NFORCE2 is not set
Actual value:
Value requested for CONFIG_X86_LONGRUN not in final .config
Requested value: # CONFIG_X86_LONGRUN is not set
Actual value:
Value requested for CONFIG_X86_LONGHAUL not in final .config
Requested value: # CONFIG_X86_LONGHAUL is not set
Actual value:
Value requested for CONFIG_X86_E_POWERSAVER not in final .config
Requested value: # CONFIG_X86_E_POWERSAVER is not set
Actual value:
Value requested for CONFIG_PCI_GOBIOS not in final .config
Requested value: # CONFIG_PCI_GOBIOS is not set
Actual value:
Value requested for CONFIG_PCI_GOMMCONFIG not in final .config
Requested value: # CONFIG_PCI_GOMMCONFIG is not set
Actual value:
Value requested for CONFIG_PCI_GODIRECT not in final .config
Requested value: # CONFIG_PCI_GODIRECT is not set
Actual value:
Value requested for CONFIG_PCI_GOANY not in final .config
Requested value: CONFIG_PCI_GOANY=y
Actual value:
Value requested for CONFIG_PCI_BIOS not in final .config
Requested value: CONFIG_PCI_BIOS=y
Actual value:
Value requested for CONFIG_ISA not in final .config
Requested value: # CONFIG_ISA is not set
Actual value:
Value requested for CONFIG_SCx200 not in final .config
Requested value: # CONFIG_SCx200 is not set
Actual value:
Value requested for CONFIG_OLPC not in final .config
Requested value: # CONFIG_OLPC is not set
Actual value:
Value requested for CONFIG_ALIX not in final .config
Requested value: # CONFIG_ALIX is not set
Actual value:
Value requested for CONFIG_NET5501 not in final .config
Requested value: # CONFIG_NET5501 is not set
Actual value:
Value requested for CONFIG_GEOS not in final .config
Requested value: # CONFIG_GEOS is not set
Actual value:
Value requested for CONFIG_COMPAT_32 not in final .config
Requested value: CONFIG_COMPAT_32=y
Actual value:
Value requested for CONFIG_HAVE_ATOMIC_IOMAP not in final .config
Requested value: CONFIG_HAVE_ATOMIC_IOMAP=y
Actual value:
Value requested for CONFIG_ARCH_32BIT_OFF_T not in final .config
Requested value: CONFIG_ARCH_32BIT_OFF_T=y
Actual value:
Value requested for CONFIG_ARCH_WANT_IPC_PARSE_VERSION not in final .config
Requested value: CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
Actual value:
Value requested for CONFIG_MODULES_USE_ELF_REL not in final .config
Requested value: CONFIG_MODULES_USE_ELF_REL=y
Actual value:
Value requested for CONFIG_ARCH_MMAP_RND_BITS not in final .config
Requested value: CONFIG_ARCH_MMAP_RND_BITS=8
Actual value: CONFIG_ARCH_MMAP_RND_BITS=28
Value requested for CONFIG_CLONE_BACKWARDS not in final .config
Requested value: CONFIG_CLONE_BACKWARDS=y
Actual value:
Value requested for CONFIG_OLD_SIGSUSPEND3 not in final .config
Requested value: CONFIG_OLD_SIGSUSPEND3=y
Actual value:
Value requested for CONFIG_OLD_SIGACTION not in final .config
Requested value: CONFIG_OLD_SIGACTION=y
Actual value:
Value requested for CONFIG_ARCH_SPLIT_ARG64 not in final .config
Requested value: CONFIG_ARCH_SPLIT_ARG64=y
Actual value:
Value requested for CONFIG_FUNCTION_ALIGNMENT not in final .config
Requested value: CONFIG_FUNCTION_ALIGNMENT=4
Actual value: CONFIG_FUNCTION_ALIGNMENT=16
Value requested for CONFIG_SELECT_MEMORY_MODEL not in final .config
Requested value: CONFIG_SELECT_MEMORY_MODEL=y
Actual value:
Value requested for CONFIG_FLATMEM_MANUAL not in final .config
Requested value: CONFIG_FLATMEM_MANUAL=y
Actual value:
Value requested for CONFIG_SPARSEMEM_MANUAL not in final .config
Requested value: # CONFIG_SPARSEMEM_MANUAL is not set
Actual value:
Value requested for CONFIG_FLATMEM not in final .config
Requested value: CONFIG_FLATMEM=y
Actual value:
Value requested for CONFIG_SPARSEMEM_STATIC not in final .config
Requested value: CONFIG_SPARSEMEM_STATIC=y
Actual value:
Value requested for CONFIG_BOUNCE not in final .config
Requested value: CONFIG_BOUNCE=y
Actual value:
Value requested for CONFIG_KMAP_LOCAL not in final .config
Requested value: CONFIG_KMAP_LOCAL=y
Actual value:
Value requested for CONFIG_HOTPLUG_PCI_COMPAQ not in final .config
Requested value: # CONFIG_HOTPLUG_PCI_COMPAQ is not set
Actual value:
Value requested for CONFIG_HOTPLUG_PCI_IBM not in final .config
Requested value: # CONFIG_HOTPLUG_PCI_IBM is not set
Actual value:
Value requested for CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH not in final .config
Requested value: CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH=y
Actual value:
Value requested for CONFIG_PCH_PHUB not in final .config
Requested value: # CONFIG_PCH_PHUB is not set
Actual value:
Value requested for CONFIG_SCSI_NSP32 not in final .config
Requested value: # CONFIG_SCSI_NSP32 is not set
Actual value:
Value requested for CONFIG_PATA_CS5520 not in final .config
Requested value: # CONFIG_PATA_CS5520 is not set
Actual value:
Value requested for CONFIG_PATA_CS5530 not in final .config
Requested value: # CONFIG_PATA_CS5530 is not set
Actual value:
Value requested for CONFIG_PATA_CS5535 not in final .config
Requested value: # CONFIG_PATA_CS5535 is not set
Actual value:
Value requested for CONFIG_PATA_CS5536 not in final .config
Requested value: # CONFIG_PATA_CS5536 is not set
Actual value:
Value requested for CONFIG_PATA_SC1200 not in final .config
Requested value: # CONFIG_PATA_SC1200 is not set
Actual value:
Value requested for CONFIG_PCH_GBE not in final .config
Requested value: # CONFIG_PCH_GBE is not set
Actual value:
Value requested for CONFIG_INPUT_WISTRON_BTNS not in final .config
Requested value: # CONFIG_INPUT_WISTRON_BTNS is not set
Actual value:
Value requested for CONFIG_SERIAL_TIMBERDALE not in final .config
Requested value: # CONFIG_SERIAL_TIMBERDALE is not set
Actual value:
Value requested for CONFIG_SERIAL_PCH_UART not in final .config
Requested value: # CONFIG_SERIAL_PCH_UART is not set
Actual value:
Value requested for CONFIG_HW_RANDOM_GEODE not in final .config
Requested value: CONFIG_HW_RANDOM_GEODE=y
Actual value:
Value requested for CONFIG_SONYPI not in final .config
Requested value: # CONFIG_SONYPI is not set
Actual value:
Value requested for CONFIG_PC8736x_GPIO not in final .config
Requested value: # CONFIG_PC8736x_GPIO is not set
Actual value:
Value requested for CONFIG_NSC_GPIO not in final .config
Requested value: # CONFIG_NSC_GPIO is not set
Actual value:
Value requested for CONFIG_I2C_EG20T not in final .config
Requested value: # CONFIG_I2C_EG20T is not set
Actual value:
Value requested for CONFIG_SCx200_ACB not in final .config
Requested value: # CONFIG_SCx200_ACB is not set
Actual value:
Value requested for CONFIG_PTP_1588_CLOCK_PCH not in final .config
Requested value: # CONFIG_PTP_1588_CLOCK_PCH is not set
Actual value:
Value requested for CONFIG_SBC8360_WDT not in final .config
Requested value: # CONFIG_SBC8360_WDT is not set
Actual value:
Value requested for CONFIG_SBC7240_WDT not in final .config
Requested value: # CONFIG_SBC7240_WDT is not set
Actual value:
Value requested for CONFIG_MFD_CS5535 not in final .config
Requested value: # CONFIG_MFD_CS5535 is not set
Actual value:
Value requested for CONFIG_AGP_ALI not in final .config
Requested value: # CONFIG_AGP_ALI is not set
Actual value:
Value requested for CONFIG_AGP_ATI not in final .config
Requested value: # CONFIG_AGP_ATI is not set
Actual value:
Value requested for CONFIG_AGP_AMD not in final .config
Requested value: # CONFIG_AGP_AMD is not set
Actual value:
Value requested for CONFIG_AGP_NVIDIA not in final .config
Requested value: # CONFIG_AGP_NVIDIA is not set
Actual value:
Value requested for CONFIG_AGP_SWORKS not in final .config
Requested value: # CONFIG_AGP_SWORKS is not set
Actual value:
Value requested for CONFIG_AGP_EFFICEON not in final .config
Requested value: # CONFIG_AGP_EFFICEON is not set
Actual value:
Value requested for CONFIG_SND_PCM not in final .config
Requested value: CONFIG_SND_PCM=y
Actual value: CONFIG_SND_PCM=m
Value requested for CONFIG_SND_HWDEP not in final .config
Requested value: CONFIG_SND_HWDEP=y
Actual value: CONFIG_SND_HWDEP=m
Value requested for CONFIG_SND_DYNAMIC_MINORS not in final .config
Requested value: # CONFIG_SND_DYNAMIC_MINORS is not set
Actual value: CONFIG_SND_DYNAMIC_MINORS=y
Value requested for CONFIG_SND_CS5530 not in final .config
Requested value: # CONFIG_SND_CS5530 is not set
Actual value:
Value requested for CONFIG_SND_CS5535AUDIO not in final .config
Requested value: # CONFIG_SND_CS5535AUDIO is not set
Actual value:
Value requested for CONFIG_SND_SIS7019 not in final .config
Requested value: # CONFIG_SND_SIS7019 is not set
Actual value:
Value requested for CONFIG_SND_HDA not in final .config
Requested value: CONFIG_SND_HDA=y
Actual value: CONFIG_SND_HDA=m
Value requested for CONFIG_SND_HDA_CORE not in final .config
Requested value: CONFIG_SND_HDA_CORE=y
Actual value: CONFIG_SND_HDA_CORE=m
Value requested for CONFIG_SND_INTEL_DSP_CONFIG not in final .config
Requested value: CONFIG_SND_INTEL_DSP_CONFIG=y
Actual value: CONFIG_SND_INTEL_DSP_CONFIG=m
Value requested for CONFIG_SND_INTEL_SOUNDWIRE_ACPI not in final .config
Requested value: CONFIG_SND_INTEL_SOUNDWIRE_ACPI=y
Actual value: CONFIG_SND_INTEL_SOUNDWIRE_ACPI=m
Value requested for CONFIG_LEDS_OT200 not in final .config
Requested value: # CONFIG_LEDS_OT200 is not set
Actual value:
Value requested for CONFIG_PCH_DMA not in final .config
Requested value: # CONFIG_PCH_DMA is not set
Actual value:
Value requested for CONFIG_CLKSRC_I8253 not in final .config
Requested value: CONFIG_CLKSRC_I8253=y
Actual value:
Value requested for CONFIG_MAILBOX not in final .config
Requested value: # CONFIG_MAILBOX is not set
Actual value: CONFIG_MAILBOX=y
Value requested for CONFIG_CRYPTO_SERPENT_SSE2_586 not in final .config
Requested value: # CONFIG_CRYPTO_SERPENT_SSE2_586 is not set
Actual value:
Value requested for CONFIG_CRYPTO_TWOFISH_586 not in final .config
Requested value: # CONFIG_CRYPTO_TWOFISH_586 is not set
Actual value:
Value requested for CONFIG_CRYPTO_DEV_GEODE not in final .config
Requested value: # CONFIG_CRYPTO_DEV_GEODE is not set
Actual value:
Value requested for CONFIG_CRYPTO_DEV_HIFN_795X not in final .config
Requested value: # CONFIG_CRYPTO_DEV_HIFN_795X is not set
Actual value:
Value requested for CONFIG_CRYPTO_LIB_POLY1305_RSIZE not in final .config
Requested value: CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1
Actual value: CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11
Value requested for CONFIG_AUDIT_GENERIC not in final .config
Requested value: CONFIG_AUDIT_GENERIC=y
Actual value:
Value requested for CONFIG_GENERIC_VDSO_32 not in final .config
Requested value: CONFIG_GENERIC_VDSO_32=y
Actual value:
Value requested for CONFIG_DEBUG_KMAP_LOCAL not in final .config
Requested value: # CONFIG_DEBUG_KMAP_LOCAL is not set
Actual value:
Value requested for CONFIG_DEBUG_HIGHMEM not in final .config
Requested value: # CONFIG_DEBUG_HIGHMEM is not set
Actual value:
Value requested for CONFIG_HAVE_DEBUG_STACKOVERFLOW not in final .config
Requested value: CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
Actual value:
Value requested for CONFIG_DEBUG_STACKOVERFLOW not in final .config
Requested value: # CONFIG_DEBUG_STACKOVERFLOW is not set
Actual value:
Value requested for CONFIG_HAVE_FUNCTION_GRAPH_TRACER not in final .config
Requested value: CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
Actual value:
Value requested for CONFIG_HAVE_FUNCTION_GRAPH_RETVAL not in final .config
Requested value: CONFIG_HAVE_FUNCTION_GRAPH_RETVAL=y
Actual value:
Value requested for CONFIG_DRM_KUNIT_TEST not in final .config
Requested value: CONFIG_DRM_KUNIT_TEST=m
Actual value:
Value requested for CONFIG_DRM_XE_WERROR not in final .config
Requested value: CONFIG_DRM_XE_WERROR=y
Actual value:
Value requested for CONFIG_DRM_XE_DEBUG not in final .config
Requested value: CONFIG_DRM_XE_DEBUG=y
Actual value:
Value requested for CONFIG_DRM_XE_DEBUG_MEM not in final .config
Requested value: CONFIG_DRM_XE_DEBUG_MEM=y
Actual value:
Value requested for CONFIG_DRM_XE_KUNIT_TEST not in final .config
Requested value: CONFIG_DRM_XE_KUNIT_TEST=m
Actual value:
++ nproc
+ make -j48 ARCH=i386 olddefconfig
GEN Makefile
WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
Selected by [m]:
- DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m]
#
# configuration written to .config
#
++ nproc
+ make -j48 ARCH=i386
SYNC include/config/auto.conf.cmd
GEN Makefile
WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
Selected by [m]:
- DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m]
WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
Selected by [m]:
- DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m]
WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
Selected by [m]:
- DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m]
GEN Makefile
WRAP arch/x86/include/generated/uapi/asm/bpf_perf_event.h
WRAP arch/x86/include/generated/uapi/asm/errno.h
WRAP arch/x86/include/generated/uapi/asm/fcntl.h
UPD include/generated/uapi/linux/version.h
WRAP arch/x86/include/generated/uapi/asm/ioctl.h
WRAP arch/x86/include/generated/uapi/asm/ioctls.h
WRAP arch/x86/include/generated/uapi/asm/ipcbuf.h
WRAP arch/x86/include/generated/uapi/asm/param.h
WRAP arch/x86/include/generated/uapi/asm/poll.h
WRAP arch/x86/include/generated/uapi/asm/resource.h
WRAP arch/x86/include/generated/uapi/asm/socket.h
WRAP arch/x86/include/generated/uapi/asm/sockios.h
WRAP arch/x86/include/generated/uapi/asm/termbits.h
WRAP arch/x86/include/generated/uapi/asm/termios.h
WRAP arch/x86/include/generated/uapi/asm/types.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_32.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_64.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_x32.h
SYSTBL arch/x86/include/generated/asm/syscalls_32.h
UPD include/generated/compile.h
WRAP arch/x86/include/generated/asm/early_ioremap.h
WRAP arch/x86/include/generated/asm/mcs_spinlock.h
HOSTCC arch/x86/tools/relocs_32.o
WRAP arch/x86/include/generated/asm/irq_regs.h
WRAP arch/x86/include/generated/asm/kmap_size.h
HOSTCC arch/x86/tools/relocs_64.o
WRAP arch/x86/include/generated/asm/local64.h
WRAP arch/x86/include/generated/asm/mmiowb.h
HOSTCC arch/x86/tools/relocs_common.o
WRAP arch/x86/include/generated/asm/module.lds.h
WRAP arch/x86/include/generated/asm/rwonce.h
WRAP arch/x86/include/generated/asm/unaligned.h
HOSTCC scripts/kallsyms
HOSTCC scripts/sorttable
HOSTCC scripts/asn1_compiler
HOSTCC scripts/selinux/mdp/mdp
HOSTCC scripts/selinux/genheaders/genheaders
HOSTLD arch/x86/tools/relocs
UPD include/config/kernel.release
UPD include/generated/utsrelease.h
CC scripts/mod/empty.o
HOSTCC scripts/mod/mk_elfconfig
CC scripts/mod/devicetable-offsets.s
UPD scripts/mod/devicetable-offsets.h
MKELF scripts/mod/elfconfig.h
HOSTCC scripts/mod/modpost.o
HOSTCC scripts/mod/file2alias.o
HOSTCC scripts/mod/sumversion.o
HOSTCC scripts/mod/symsearch.o
HOSTLD scripts/mod/modpost
CC kernel/bounds.s
CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-arch-fallback.h
CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-instrumented.h
CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-long.h
UPD include/generated/timeconst.h
UPD include/generated/bounds.h
CC arch/x86/kernel/asm-offsets.s
UPD include/generated/asm-offsets.h
CALL /workspace/kernel/scripts/checksyscalls.sh
LDS scripts/module.lds
CC ipc/util.o
CC ipc/msgutil.o
CC ipc/msg.o
HOSTCC usr/gen_init_cpio
CC ipc/sem.o
CC certs/system_keyring.o
CC ipc/shm.o
CC ipc/syscall.o
CC ipc/ipc_sysctl.o
AS arch/x86/lib/atomic64_cx8_32.o
CC init/main.o
CC ipc/mqueue.o
AS arch/x86/lib/checksum_32.o
CC ipc/namespace.o
CC block/bdev.o
CC mm/filemap.o
CC arch/x86/power/cpu.o
CC arch/x86/lib/cmdline.o
CC ipc/mq_sysctl.o
CC io_uring/io_uring.o
CC block/fops.o
CC init/do_mounts.o
CC mm/mempool.o
CC arch/x86/pci/i386.o
CC arch/x86/video/video-common.o
CC block/partitions/core.o
AS arch/x86/lib/cmpxchg8b_emu.o
UPD init/utsversion-tmp.h
CC arch/x86/realmode/init.o
AR sound/ppc/built-in.a
AR sound/arm/built-in.a
AR drivers/cache/built-in.a
CC security/keys/gc.o
AR virt/lib/built-in.a
AR sound/i2c/other/built-in.a
AR sound/isa/ad1816a/built-in.a
AR sound/drivers/opl3/built-in.a
CC sound/core/seq/seq.o
CC lib/math/div64.o
CC net/core/sock.o
AR sound/pci/ac97/built-in.a
CC lib/math/gcd.o
CC arch/x86/mm/pat/set_memory.o
CC arch/x86/kernel/fpu/init.o
AR virt/built-in.a
CC arch/x86/events/amd/core.o
AR sound/i2c/built-in.a
CC fs/notify/dnotify/dnotify.o
AR sound/isa/ad1848/built-in.a
AR sound/sh/built-in.a
AS arch/x86/realmode/rm/header.o
CC net/ethernet/eth.o
AR drivers/irqchip/built-in.a
CC lib/math/lcm.o
AR sound/drivers/opl4/built-in.a
AR sound/pci/ali5451/built-in.a
AS arch/x86/realmode/rm/trampoline_32.o
CC lib/math/int_log.o
CC kernel/locking/mutex.o
AR sound/drivers/mpu401/built-in.a
CC arch/x86/entry/vdso/vma.o
AR sound/isa/cs423x/built-in.a
CC kernel/sched/core.o
AR sound/pci/asihpi/built-in.a
AR drivers/bus/mhi/built-in.a
AR sound/drivers/vx/built-in.a
AS arch/x86/realmode/rm/stack.o
AR drivers/pwm/built-in.a
AR sound/isa/es1688/built-in.a
CC arch/x86/entry/vdso/extable.o
AR drivers/bus/built-in.a
AR sound/drivers/pcsp/built-in.a
AR sound/pci/au88x0/built-in.a
CC lib/math/int_pow.o
AR sound/drivers/built-in.a
AR sound/isa/galaxy/built-in.a
AR sound/synth/emux/built-in.a
AR sound/pci/aw2/built-in.a
AS arch/x86/realmode/rm/reboot.o
AR sound/isa/gus/built-in.a
CC lib/crypto/mpi/generic_mpih-lshift.o
AR sound/synth/built-in.a
AR sound/pci/ctxfi/built-in.a
CC crypto/asymmetric_keys/asymmetric_type.o
CC arch/x86/lib/cpu.o
CC drivers/pci/msi/pcidev_msi.o
AR sound/isa/msnd/built-in.a
CC lib/zlib_inflate/inffast.o
CC security/keys/key.o
AR sound/pci/ca0106/built-in.a
AR sound/isa/opti9xx/built-in.a
CC lib/zlib_deflate/deflate.o
AS arch/x86/realmode/rm/wakeup_asm.o
AR sound/pci/cs46xx/built-in.a
CC lib/math/int_sqrt.o
AR sound/isa/sb/built-in.a
CC drivers/pci/pcie/portdrv.o
CC arch/x86/realmode/rm/wakemain.o
AR sound/pci/cs5535audio/built-in.a
AR sound/isa/wavefront/built-in.a
AR sound/pci/lola/built-in.a
AR sound/isa/wss/built-in.a
AR sound/isa/built-in.a
AR sound/pci/lx6464es/built-in.a
AR sound/pci/echoaudio/built-in.a
CC lib/math/reciprocal_div.o
AR sound/pci/emu10k1/built-in.a
CC arch/x86/mm/init.o
CC arch/x86/realmode/rm/video-mode.o
AR sound/pci/hda/built-in.a
CC [M] sound/pci/hda/hda_bind.o
GEN usr/initramfs_data.cpio
CC lib/zlib_inflate/inflate.o
HOSTCC certs/extract-cert
COPY usr/initramfs_inc_data
AS usr/initramfs_data.o
CC lib/math/rational.o
CC arch/x86/kernel/fpu/bugs.o
AR usr/built-in.a
CC arch/x86/kernel/fpu/core.o
CC drivers/pci/hotplug/pci_hotplug_core.o
AS arch/x86/realmode/rm/copy.o
AS arch/x86/realmode/rm/bioscall.o
CC arch/x86/realmode/rm/regs.o
CC drivers/pci/msi/api.o
CC arch/x86/kernel/cpu/mce/core.o
CC arch/x86/lib/delay.o
CC sound/core/seq/seq_lock.o
CC arch/x86/realmode/rm/video-vga.o
CC arch/x86/realmode/rm/video-vesa.o
CC lib/lzo/lzo1x_compress.o
AR arch/x86/video/built-in.a
CERT certs/x509_certificate_list
CC block/bio.o
CERT certs/signing_key.x509
AS certs/system_certificates.o
LDS arch/x86/entry/vdso/vdso32/vdso32.lds
CC arch/x86/realmode/rm/video-bios.o
AR certs/built-in.a
AR sound/pci/ice1712/built-in.a
CC lib/lzo/lzo1x_decompress_safe.o
CC mm/oom_kill.o
CC mm/fadvise.o
CC lib/crypto/mpi/generic_mpih-mul1.o
CC arch/x86/pci/init.o
AR lib/math/built-in.a
AS arch/x86/lib/getuser.o
AR sound/pci/korg1212/built-in.a
CC drivers/pci/pcie/rcec.o
CC init/do_mounts_initrd.o
PASYMS arch/x86/realmode/rm/pasyms.h
CC drivers/pci/pcie/aspm.o
AR fs/notify/dnotify/built-in.a
CC drivers/pci/pcie/pme.o
LDS arch/x86/realmode/rm/realmode.lds
CC sound/core/seq/seq_clientmgr.o
CC fs/notify/inotify/inotify_fsnotify.o
LD arch/x86/realmode/rm/realmode.elf
CC crypto/asymmetric_keys/restrict.o
CC init/initramfs.o
RELOCS arch/x86/realmode/rm/realmode.relocs
OBJCOPY arch/x86/realmode/rm/realmode.bin
GEN arch/x86/lib/inat-tables.c
AS arch/x86/realmode/rmpiggy.o
AS arch/x86/entry/vdso/vdso32/note.o
CC arch/x86/power/hibernate_32.o
AR arch/x86/realmode/built-in.a
AS arch/x86/entry/vdso/vdso32/system_call.o
CC crypto/asymmetric_keys/signature.o
AS arch/x86/entry/vdso/vdso32/sigreturn.o
CC arch/x86/lib/insn-eval.o
CC arch/x86/entry/vdso/vdso32/vclock_gettime.o
CC block/partitions/msdos.o
CC block/partitions/efi.o
AS arch/x86/power/hibernate_asm_32.o
CC lib/zlib_inflate/infutil.o
CC lib/zlib_deflate/deftree.o
AR sound/pci/mixart/built-in.a
CC lib/zlib_deflate/deflate_syms.o
CC [M] sound/pci/hda/hda_codec.o
AR fs/notify/fanotify/built-in.a
AR sound/pci/nm256/built-in.a
CC lib/lz4/lz4_decompress.o
AR sound/pci/oxygen/built-in.a
CC fs/nfs_common/nfsacl.o
CC arch/x86/kernel/cpu/mtrr/mtrr.o
CC lib/zstd/zstd_decompress_module.o
CC arch/x86/events/amd/lbr.o
CC security/keys/keyring.o
AR lib/lzo/built-in.a
CC arch/x86/kernel/cpu/mtrr/if.o
CC drivers/pci/msi/msi.o
CC lib/xz/xz_dec_syms.o
CC drivers/pci/msi/irqdomain.o
CC lib/zstd/decompress/huf_decompress.o
CC drivers/pci/hotplug/acpi_pcihp.o
CC fs/notify/fsnotify.o
CC sound/core/sound.o
CC lib/crypto/mpi/generic_mpih-mul2.o
CC lib/zlib_inflate/inftrees.o
CC fs/notify/inotify/inotify_user.o
CC arch/x86/mm/pat/memtype.o
CC arch/x86/pci/pcbios.o
CC arch/x86/kernel/cpu/mce/severity.o
CC kernel/locking/semaphore.o
CC crypto/asymmetric_keys/public_key.o
AR net/ethernet/built-in.a
CC lib/dim/dim.o
AR net/802/built-in.a
CC init/calibrate.o
CC lib/zlib_inflate/inflate_syms.o
CC lib/crypto/memneq.o
CC lib/fonts/fonts.o
CC arch/x86/power/hibernate.o
AR arch/x86/entry/vsyscall/built-in.a
AS arch/x86/entry/entry.o
CC lib/argv_split.o
CC lib/crypto/mpi/generic_mpih-mul3.o
CC lib/xz/xz_dec_stream.o
CC sound/core/init.o
AR lib/zlib_deflate/built-in.a
CC lib/bug.o
CC arch/x86/kernel/acpi/boot.o
CC arch/x86/entry/vdso/vdso32/vgetcpu.o
CC arch/x86/kernel/fpu/regset.o
AR ipc/built-in.a
CC sound/core/memory.o
HOSTCC arch/x86/entry/vdso/vdso2c
CC arch/x86/kernel/cpu/mtrr/generic.o
CC arch/x86/kernel/cpu/mce/genpool.o
CC arch/x86/lib/insn.o
CC fs/nfs_common/grace.o
CC lib/dim/net_dim.o
AR lib/zlib_inflate/built-in.a
CC mm/maccess.o
CC init/init_task.o
AR arch/x86/crypto/built-in.a
CC arch/x86/lib/kaslr.o
CC lib/dim/rdma_dim.o
AR arch/x86/net/built-in.a
CC lib/fonts/font_8x16.o
AR arch/x86/platform/atom/built-in.a
CC [M] sound/pci/hda/hda_jack.o
CC init/version.o
AR block/partitions/built-in.a
AR arch/x86/platform/ce4100/built-in.a
CC arch/x86/kernel/apic/apic.o
CC [M] sound/pci/hda/hda_auto_parser.o
AR drivers/pci/hotplug/built-in.a
CC arch/x86/platform/efi/memmap.o
CC sound/core/seq/seq_memory.o
CC arch/x86/events/amd/ibs.o
AR drivers/pci/pcie/built-in.a
CC arch/x86/platform/efi/quirks.o
CC arch/x86/lib/memcpy_32.o
ASN.1 crypto/asymmetric_keys/x509.asn1.[ch]
ASN.1 crypto/asymmetric_keys/x509_akid.asn1.[ch]
CC crypto/asymmetric_keys/x509_loader.o
CC kernel/locking/rwsem.o
CC arch/x86/entry/vdso/vdso32-setup.o
CC crypto/asymmetric_keys/x509_public_key.o
ASN.1 crypto/asymmetric_keys/pkcs7.asn1.[ch]
CC arch/x86/pci/mmconfig_32.o
CC sound/core/control.o
CC security/keys/keyctl.o
AS arch/x86/lib/memmove_32.o
CC arch/x86/events/intel/core.o
CC lib/xz/xz_dec_lzma2.o
AR drivers/pci/msi/built-in.a
CC lib/crypto/mpi/generic_mpih-rshift.o
CC arch/x86/lib/misc.o
CC arch/x86/events/zhaoxin/core.o
AR drivers/pci/controller/dwc/built-in.a
CC arch/x86/lib/pc-conf-reg.o
CC arch/x86/mm/pat/memtype_interval.o
AR drivers/pci/controller/mobiveil/built-in.a
CC arch/x86/events/intel/bts.o
AR drivers/pci/controller/built-in.a
CC mm/page-writeback.o
AR drivers/pci/switch/built-in.a
CC drivers/pci/access.o
AR fs/notify/inotify/built-in.a
CC drivers/pci/bus.o
AR arch/x86/power/built-in.a
CC fs/notify/notification.o
CC sound/core/seq/seq_queue.o
CC arch/x86/platform/efi/efi.o
AR lib/lz4/built-in.a
CC fs/notify/group.o
CC arch/x86/kernel/fpu/signal.o
AR lib/fonts/built-in.a
CC arch/x86/kernel/fpu/xstate.o
CC drivers/video/console/dummycon.o
AR lib/dim/built-in.a
GEN security/selinux/flask.h security/selinux/av_permissions.h
CC security/selinux/avc.o
CC security/selinux/hooks.o
CC lib/crypto/utils.o
VDSO arch/x86/entry/vdso/vdso32.so.dbg
AS arch/x86/lib/putuser.o
OBJCOPY arch/x86/entry/vdso/vdso32.so
VDSO2C arch/x86/entry/vdso/vdso-image-32.c
CC arch/x86/kernel/cpu/mce/intel.o
CC arch/x86/entry/vdso/vdso-image-32.o
CC security/selinux/selinuxfs.o
AS arch/x86/lib/retpoline.o
CC block/elevator.o
CC arch/x86/lib/string_32.o
CC fs/notify/mark.o
AR fs/nfs_common/built-in.a
CC kernel/locking/percpu-rwsem.o
AR init/built-in.a
CC arch/x86/lib/strstr_32.o
AR arch/x86/virt/svm/built-in.a
CC kernel/power/qos.o
AR arch/x86/virt/vmx/built-in.a
CC arch/x86/lib/usercopy.o
AR arch/x86/virt/built-in.a
CC kernel/power/main.o
CC lib/zstd/decompress/zstd_ddict.o
AR arch/x86/entry/vdso/built-in.a
CC arch/x86/kernel/cpu/mtrr/cleanup.o
AS arch/x86/entry/entry_32.o
CC crypto/asymmetric_keys/pkcs7_trust.o
CC drivers/video/backlight/backlight.o
CC arch/x86/pci/direct.o
CC lib/crypto/mpi/generic_mpih-sub1.o
CC arch/x86/kernel/acpi/sleep.o
CC arch/x86/entry/syscall_32.o
CC lib/zstd/decompress/zstd_decompress.o
CC lib/crypto/mpi/generic_mpih-add1.o
CC net/core/request_sock.o
AR arch/x86/mm/pat/built-in.a
CC lib/xz/xz_dec_bcj.o
CC arch/x86/mm/init_32.o
CC arch/x86/lib/usercopy_32.o
AR arch/x86/platform/geode/built-in.a
AR arch/x86/platform/iris/built-in.a
CC kernel/locking/spinlock.o
CC [M] sound/pci/hda/hda_sysfs.o
CC fs/notify/fdinfo.o
CC security/keys/permission.o
CC drivers/video/console/vgacon.o
CC sound/core/misc.o
AR sound/usb/misc/built-in.a
CC arch/x86/kernel/cpu/mce/amd.o
AR sound/firewire/built-in.a
AR arch/x86/events/zhaoxin/built-in.a
AR sound/usb/usx2y/built-in.a
CC security/selinux/netlink.o
CC lib/zstd/decompress/zstd_decompress_block.o
CC lib/buildid.o
AR sound/usb/caiaq/built-in.a
CC arch/x86/events/core.o
CC drivers/pci/probe.o
AR sound/usb/6fire/built-in.a
CC sound/core/seq/seq_fifo.o
CC crypto/asymmetric_keys/pkcs7_verify.o
AR sound/usb/hiface/built-in.a
CC [M] sound/pci/hda/hda_controller.o
AR sound/usb/bcd2000/built-in.a
CC security/selinux/nlmsgtab.o
AR sound/usb/built-in.a
CC arch/x86/events/intel/ds.o
CC security/selinux/netif.o
CC arch/x86/events/intel/knc.o
CC arch/x86/events/amd/uncore.o
CC arch/x86/lib/msr-smp.o
CC arch/x86/platform/efi/efi_32.o
CC arch/x86/events/probe.o
CC kernel/locking/osq_lock.o
AR lib/xz/built-in.a
CC io_uring/opdef.o
CC lib/crypto/mpi/ec.o
AR drivers/video/fbdev/core/built-in.a
AR drivers/video/fbdev/omap/built-in.a
AR drivers/video/fbdev/omap2/omapfb/dss/built-in.a
AR drivers/video/fbdev/omap2/omapfb/displays/built-in.a
CC arch/x86/pci/mmconfig-shared.o
AR drivers/video/fbdev/omap2/omapfb/built-in.a
AS arch/x86/kernel/acpi/wakeup_32.o
CC arch/x86/kernel/cpu/mtrr/amd.o
AR drivers/video/fbdev/omap2/built-in.a
CC arch/x86/kernel/cpu/mtrr/cyrix.o
AR arch/x86/kernel/fpu/built-in.a
AR drivers/video/fbdev/built-in.a
CC io_uring/kbuf.o
CC arch/x86/kernel/acpi/cstate.o
CC arch/x86/pci/fixup.o
CC arch/x86/lib/cache-smp.o
CC kernel/printk/printk.o
AR fs/notify/built-in.a
CC crypto/asymmetric_keys/x509.asn1.o
CC kernel/locking/qspinlock.o
CC fs/iomap/trace.o
CC crypto/asymmetric_keys/x509_akid.asn1.o
AR sound/sparc/built-in.a
CC fs/iomap/iter.o
CC crypto/asymmetric_keys/x509_cert_parser.o
CC fs/iomap/buffered-io.o
AR drivers/video/backlight/built-in.a
CC lib/crypto/mpi/mpicoder.o
CC lib/crypto/mpi/mpi-add.o
CC [M] sound/pci/hda/hda_proc.o
CC security/keys/process_keys.o
CC arch/x86/kernel/cpu/microcode/core.o
CC arch/x86/lib/msr.o
CC block/blk-core.o
CC arch/x86/kernel/apic/apic_common.o
CC arch/x86/kernel/apic/apic_noop.o
CC sound/core/seq/seq_prioq.o
CC kernel/power/console.o
CC arch/x86/kernel/cpu/cacheinfo.o
CC net/core/skbuff.o
CC arch/x86/mm/fault.o
CC security/selinux/netnode.o
CC fs/iomap/direct-io.o
AS arch/x86/platform/efi/efi_stub_32.o
CC arch/x86/kernel/kprobes/core.o
AR drivers/video/console/built-in.a
CC arch/x86/platform/efi/runtime-map.o
CC drivers/video/aperture.o
CC arch/x86/entry/common.o
CC arch/x86/kernel/kprobes/opt.o
CC kernel/locking/rtmutex_api.o
AR arch/x86/kernel/acpi/built-in.a
CC arch/x86/mm/ioremap.o
CC arch/x86/kernel/cpu/mtrr/centaur.o
CC arch/x86/mm/extable.o
CC sound/core/seq/seq_timer.o
CC mm/folio-compat.o
CC arch/x86/kernel/apic/ipi.o
CC crypto/asymmetric_keys/pkcs7.asn1.o
AS arch/x86/entry/thunk.o
CC crypto/asymmetric_keys/pkcs7_parser.o
CC security/selinux/netport.o
CC fs/quota/dquot.o
CC lib/crypto/mpi/mpi-bit.o
CC security/selinux/status.o
AR arch/x86/events/amd/built-in.a
CC kernel/locking/qrwlock.o
CC fs/quota/quota_v2.o
CC arch/x86/kernel/cpu/microcode/intel.o
CC arch/x86/events/utils.o
CC security/selinux/ss/ebitmap.o
CC arch/x86/pci/acpi.o
CC kernel/power/process.o
CC fs/proc/task_mmu.o
CC fs/kernfs/mount.o
CC fs/iomap/fiemap.o
AS arch/x86/lib/msr-reg.o
CC arch/x86/lib/msr-reg-export.o
CC drivers/pci/host-bridge.o
CC arch/x86/kernel/cpu/mce/threshold.o
CC arch/x86/kernel/cpu/mtrr/legacy.o
CC security/keys/request_key.o
CC io_uring/rsrc.o
AR arch/x86/platform/efi/built-in.a
CC arch/x86/kernel/apic/vector.o
CC [M] sound/pci/hda/hda_hwdep.o
CC arch/x86/platform/intel/iosf_mbi.o
AS arch/x86/lib/hweight.o
CC drivers/video/cmdline.o
AR crypto/asymmetric_keys/built-in.a
CC arch/x86/lib/iomem.o
CC crypto/api.o
CC drivers/video/nomodeset.o
AR arch/x86/entry/built-in.a
CC fs/sysfs/file.o
CC fs/devpts/inode.o
CC fs/sysfs/dir.o
CC sound/core/device.o
CC sound/core/seq/seq_system.o
CC mm/readahead.o
AR arch/x86/kernel/kprobes/built-in.a
LDS arch/x86/kernel/vmlinux.lds
CC drivers/pci/remove.o
CC arch/x86/events/intel/lbr.o
CC fs/sysfs/symlink.o
CC arch/x86/kernel/apic/init.o
AR kernel/locking/built-in.a
CC arch/x86/kernel/cpu/scattered.o
CC sound/core/seq/seq_ports.o
CC lib/zstd/zstd_common_module.o
CC arch/x86/kernel/apic/hw_nmi.o
AR arch/x86/kernel/cpu/mtrr/built-in.a
CC arch/x86/mm/mmap.o
CC kernel/printk/conopt.o
CC lib/crypto/mpi/mpi-cmp.o
AS arch/x86/kernel/head_32.o
AR drivers/idle/built-in.a
CC arch/x86/mm/pgtable.o
CC arch/x86/mm/physaddr.o
CC fs/sysfs/mount.o
CC arch/x86/pci/legacy.o
CC arch/x86/pci/irq.o
CC arch/x86/kernel/cpu/microcode/amd.o
CC arch/x86/lib/atomic64_32.o
AR drivers/char/ipmi/built-in.a
CC arch/x86/kernel/head32.o
CC arch/x86/pci/common.o
CC sound/core/seq/seq_info.o
CC kernel/sched/fair.o
CC sound/core/seq/seq_dummy.o
CC fs/kernfs/inode.o
CC arch/x86/lib/inat.o
CC lib/zstd/common/debug.o
CC sound/core/info.o
CC [M] sound/pci/hda/patch_hdmi.o
CC lib/zstd/common/entropy_common.o
CC security/selinux/ss/hashtab.o
AR arch/x86/lib/built-in.a
CC lib/zstd/common/error_private.o
CC fs/sysfs/group.o
CC fs/kernfs/dir.o
AR arch/x86/lib/lib.a
CC sound/core/isadma.o
CC drivers/pci/pci.o
CC drivers/video/hdmi.o
CC sound/core/vmaster.o
AR arch/x86/platform/intel/built-in.a
AR arch/x86/platform/intel-mid/built-in.a
CC kernel/printk/printk_safe.o
AR arch/x86/platform/intel-quark/built-in.a
CC drivers/pci/pci-driver.o
AR arch/x86/platform/olpc/built-in.a
AR arch/x86/platform/scx200/built-in.a
CC kernel/power/suspend.o
CC lib/zstd/common/fse_decompress.o
AR arch/x86/platform/ts5500/built-in.a
AR arch/x86/platform/uv/built-in.a
CC fs/iomap/seek.o
CC lib/zstd/common/zstd_common.o
AR arch/x86/platform/built-in.a
CC security/keys/request_key_auth.o
CC fs/proc/inode.o
CC fs/iomap/swapfile.o
CC drivers/acpi/acpica/dsargs.o
CC crypto/cipher.o
CC arch/x86/mm/tlb.o
AR fs/devpts/built-in.a
CC lib/crypto/mpi/mpi-sub-ui.o
CC drivers/pci/search.o
CC drivers/acpi/acpica/dscontrol.o
AR drivers/acpi/pmic/built-in.a
CC drivers/acpi/acpica/dsdebug.o
CC drivers/acpi/dptf/int340x_thermal.o
CC crypto/compress.o
AR arch/x86/kernel/cpu/mce/built-in.a
CC drivers/acpi/acpica/dsfield.o
CC kernel/irq/irqdesc.o
CC block/blk-sysfs.o
CC kernel/irq/handle.o
AR sound/core/seq/built-in.a
CC arch/x86/kernel/ebda.o
CC block/blk-flush.o
CC io_uring/notif.o
CC drivers/pci/rom.o
CC arch/x86/pci/early.o
CC arch/x86/kernel/cpu/topology_common.o
CC security/selinux/ss/symtab.o
AR sound/pci/pcxhr/built-in.a
CC lib/clz_tab.o
CC mm/swap.o
CC net/core/datagram.o
CC security/integrity/iint.o
AR arch/x86/kernel/cpu/microcode/built-in.a
CC lib/crypto/mpi/mpi-div.o
CC security/integrity/integrity_audit.o
CC kernel/rcu/update.o
CC arch/x86/kernel/cpu/topology_ext.o
CC arch/x86/kernel/apic/io_apic.o
CC fs/kernfs/file.o
AR fs/sysfs/built-in.a
AR kernel/livepatch/built-in.a
CC sound/core/ctljack.o
CC io_uring/tctx.o
CC fs/netfs/buffered_read.o
AR lib/zstd/built-in.a
CC io_uring/filetable.o
CC kernel/printk/nbcon.o
CC security/selinux/ss/sidtab.o
AR drivers/acpi/dptf/built-in.a
CC drivers/acpi/x86/apple.o
CC drivers/acpi/acpica/dsinit.o
CC security/keys/user_defined.o
CC arch/x86/events/intel/p4.o
AR drivers/video/built-in.a
CC drivers/acpi/x86/cmos_rtc.o
CC arch/x86/events/intel/p6.o
CC crypto/algapi.o
CC fs/quota/quota_tree.o
CC kernel/power/hibernate.o
CC drivers/acpi/x86/lpss.o
CC drivers/pnp/pnpacpi/core.o
CC drivers/pnp/core.o
CC drivers/pnp/pnpacpi/rsparser.o
CC drivers/pnp/card.o
CC drivers/pnp/driver.o
AR fs/iomap/built-in.a
CC arch/x86/kernel/cpu/topology_amd.o
CC fs/proc/root.o
AR drivers/amba/built-in.a
CC drivers/pnp/resource.o
AR drivers/clk/actions/built-in.a
AR drivers/clk/analogbits/built-in.a
CC arch/x86/pci/bus_numa.o
CC arch/x86/pci/amd_bus.o
CC kernel/irq/manage.o
CC drivers/pci/setup-res.o
CC sound/core/jack.o
AR drivers/clk/bcm/built-in.a
AR drivers/clk/imgtec/built-in.a
AR drivers/clk/imx/built-in.a
AR drivers/clk/ingenic/built-in.a
CC kernel/printk/printk_ringbuffer.o
AR drivers/clk/mediatek/built-in.a
AR drivers/clk/microchip/built-in.a
CC sound/core/timer.o
CC drivers/acpi/acpica/dsmethod.o
CC arch/x86/mm/cpu_entry_area.o
AR drivers/clk/mstar/built-in.a
AR drivers/clk/mvebu/built-in.a
AR drivers/clk/ralink/built-in.a
AR drivers/clk/renesas/built-in.a
AR drivers/clk/socfpga/built-in.a
CC lib/crypto/mpi/mpi-inv.o
CC block/blk-settings.o
AR drivers/clk/sophgo/built-in.a
CC sound/core/hrtimer.o
AR drivers/clk/sprd/built-in.a
AR security/integrity/built-in.a
CC sound/core/seq_device.o
CC fs/proc/base.o
CC mm/truncate.o
AR drivers/clk/starfive/built-in.a
CC drivers/acpi/acpica/dsmthdat.o
AR drivers/clk/sunxi-ng/built-in.a
CC drivers/acpi/acpica/dsobject.o
AR drivers/clk/ti/built-in.a
AR drivers/clk/versatile/built-in.a
CC security/keys/proc.o
AR drivers/clk/xilinx/built-in.a
AR drivers/clk/built-in.a
CC arch/x86/kernel/cpu/common.o
CC kernel/rcu/sync.o
CC fs/proc/generic.o
CC kernel/rcu/srcutree.o
CC kernel/power/snapshot.o
CC drivers/dma/dw/core.o
CC arch/x86/events/intel/pt.o
CC drivers/acpi/x86/s2idle.o
CC security/keys/sysctl.o
CC drivers/dma/hsu/hsu.o
CC io_uring/rw.o
CC fs/kernfs/symlink.o
CC security/keys/keyctl_pkey.o
CC drivers/dma/dw/dw.o
CC kernel/dma/mapping.o
CC mm/vmscan.o
CC fs/quota/quota.o
CC kernel/printk/sysctl.o
CC drivers/acpi/acpica/dsopcode.o
CC drivers/dma/dw/idma32.o
CC drivers/acpi/acpica/dspkginit.o
AR arch/x86/pci/built-in.a
CC security/commoncap.o
CC kernel/dma/direct.o
CC arch/x86/mm/maccess.o
CC fs/quota/kqid.o
CC fs/netfs/buffered_write.o
CC arch/x86/events/intel/uncore.o
CC [M] sound/pci/hda/hda_eld.o
CC drivers/acpi/acpica/dsutils.o
CC lib/crypto/mpi/mpi-mod.o
AR drivers/pnp/pnpacpi/built-in.a
CC block/blk-ioc.o
CC lib/cmdline.o
AR kernel/printk/built-in.a
CC security/selinux/ss/avtab.o
CC kernel/sched/build_policy.o
CC crypto/scatterwalk.o
CC fs/quota/netlink.o
CC lib/crypto/mpi/mpi-mul.o
CC drivers/pnp/manager.o
CC arch/x86/mm/pgprot.o
CC lib/crypto/mpi/mpih-cmp.o
CC security/lsm_syscalls.o
CC net/core/stream.o
CC security/selinux/ss/policydb.o
CC lib/crypto/chacha.o
CC arch/x86/events/rapl.o
CC fs/netfs/direct_read.o
AR security/keys/built-in.a
CC mm/shrinker.o
CC arch/x86/kernel/apic/msi.o
CC lib/cpumask.o
CC lib/crypto/aes.o
CC drivers/pnp/support.o
CC drivers/acpi/acpica/dswexec.o
CC mm/shmem.o
CC drivers/acpi/acpica/dswload.o
AR fs/kernfs/built-in.a
CC lib/ctype.o
CC kernel/irq/spurious.o
CC lib/dec_and_lock.o
AR drivers/dma/hsu/built-in.a
AR drivers/dma/idxd/built-in.a
CC drivers/dma/dw/acpi.o
CC drivers/acpi/x86/utils.o
AR drivers/dma/mediatek/built-in.a
CC lib/decompress.o
CC fs/proc/array.o
CC kernel/entry/common.o
CC drivers/pci/irq.o
CC [M] sound/core/hwdep.o
CC kernel/irq/resend.o
CC kernel/entry/syscall_user_dispatch.o
CC block/blk-map.o
CC crypto/proc.o
CC block/blk-merge.o
CC arch/x86/mm/pgtable_32.o
CC kernel/power/swap.o
CC drivers/pnp/interface.o
CC lib/crypto/mpi/mpih-div.o
CC [M] sound/pci/hda/hda_intel.o
CC kernel/dma/ops_helpers.o
CC kernel/dma/dummy.o
CC drivers/acpi/acpica/dswload2.o
CC kernel/module/main.o
CC drivers/acpi/acpica/dswscope.o
CC arch/x86/kernel/apic/probe_32.o
CC drivers/acpi/acpica/dswstate.o
AR fs/quota/built-in.a
AR drivers/dma/qcom/built-in.a
AR drivers/dma/ti/built-in.a
CC kernel/rcu/tree.o
CC arch/x86/events/msr.o
CC drivers/dma/dmaengine.o
AR drivers/dma/xilinx/built-in.a
CC fs/ext4/balloc.o
CC fs/proc/fd.o
CC kernel/rcu/rcu_segcblist.o
CC arch/x86/kernel/cpu/rdrand.o
CC net/core/scm.o
CC kernel/irq/chip.o
CC drivers/acpi/x86/blacklist.o
CC fs/ext4/bitmap.o
CC io_uring/net.o
CC arch/x86/kernel/cpu/match.o
CC io_uring/poll.o
CC fs/ext4/block_validity.o
CC lib/crypto/mpi/mpih-mul.o
CC block/blk-timeout.o
CC fs/proc/proc_tty.o
CC fs/netfs/direct_write.o
AR drivers/dma/dw/built-in.a
CC drivers/acpi/acpica/evevent.o
CC fs/jbd2/transaction.o
CC fs/jbd2/commit.o
AR sound/spi/built-in.a
CC drivers/pci/vpd.o
CC drivers/acpi/acpica/evgpe.o
CC fs/ext4/dir.o
CC fs/ext4/ext4_jbd2.o
CC crypto/aead.o
CC fs/ramfs/inode.o
AR arch/x86/kernel/apic/built-in.a
CC arch/x86/mm/iomap_32.o
CC [M] sound/core/pcm.o
CC kernel/irq/dummychip.o
CC arch/x86/kernel/cpu/bugs.o
CC drivers/pnp/quirks.o
CC arch/x86/kernel/cpu/aperfmperf.o
CC arch/x86/events/intel/uncore_nhmex.o
CC kernel/dma/remap.o
AR drivers/acpi/x86/built-in.a
CC kernel/sched/build_utility.o
LD [M] sound/pci/hda/snd-hda-codec.o
CC crypto/geniv.o
CC crypto/lskcipher.o
CC drivers/pnp/system.o
CC crypto/skcipher.o
AR kernel/entry/built-in.a
CC kernel/time/time.o
AR sound/pci/riptide/built-in.a
CC fs/hugetlbfs/inode.o
AR sound/pci/rme9652/built-in.a
CC drivers/acpi/acpica/evgpeblk.o
CC [M] sound/core/pcm_native.o
CC kernel/time/timer.o
CC fs/proc/cmdline.o
CC security/min_addr.o
CC security/selinux/ss/services.o
CC fs/proc/consoles.o
CC arch/x86/mm/hugetlbpage.o
CC security/selinux/ss/conditional.o
CC kernel/irq/devres.o
CC lib/crypto/mpi/mpi-pow.o
CC lib/crypto/mpi/mpiutil.o
CC fs/ext4/extents.o
CC kernel/power/user.o
CC kernel/time/hrtimer.o
AR kernel/dma/built-in.a
CC fs/ramfs/file-mmu.o
CC fs/fat/cache.o
CC drivers/pci/setup-bus.o
CC fs/fat/dir.o
AR drivers/pnp/built-in.a
CC fs/netfs/io.o
CC drivers/dma/virt-dma.o
CC fs/fat/fatent.o
CC net/core/gen_stats.o
CC fs/proc/cpuinfo.o
CC drivers/acpi/acpica/evgpeinit.o
LD [M] sound/pci/hda/snd-hda-codec-hdmi.o
LD [M] sound/pci/hda/snd-hda-intel.o
AR sound/pci/trident/built-in.a
CC fs/ext4/extents_status.o
CC fs/netfs/iterator.o
AR sound/pci/ymfpci/built-in.a
AR sound/pci/vx222/built-in.a
CC fs/isofs/namei.o
CC block/blk-lib.o
AR sound/pci/built-in.a
CC fs/netfs/locking.o
CC fs/isofs/inode.o
CC fs/fat/file.o
CC kernel/irq/autoprobe.o
CC security/selinux/ss/mls.o
CC drivers/dma/acpi-dma.o
CC arch/x86/mm/dump_pagetables.o
CC mm/util.o
CC drivers/acpi/acpica/evgpeutil.o
CC fs/fat/inode.o
CC mm/mmzone.o
CC kernel/irq/irqdomain.o
CC arch/x86/events/intel/uncore_snb.o
CC arch/x86/mm/highmem_32.o
AR lib/crypto/mpi/built-in.a
CC lib/crypto/arc4.o
CC fs/jbd2/recovery.o
AR fs/ramfs/built-in.a
CC fs/proc/devices.o
CC crypto/seqiv.o
CC crypto/echainiv.o
CC mm/vmstat.o
CC kernel/power/poweroff.o
CC kernel/module/strict_rwx.o
CC fs/nfs/client.o
CC fs/nfs/dir.o
CC arch/x86/kernel/cpu/cpuid-deps.o
CC fs/netfs/main.o
CC fs/nfs/file.o
CC io_uring/uring_cmd.o
AR fs/hugetlbfs/built-in.a
CC lib/crypto/gf128mul.o
CC fs/jbd2/checkpoint.o
CC drivers/acpi/acpica/evglock.o
AR kernel/power/built-in.a
CC fs/jbd2/revoke.o
CC fs/jbd2/journal.o
CC [M] sound/core/pcm_lib.o
CC lib/crypto/blake2s.o
CC lib/decompress_bunzip2.o
CC block/blk-mq.o
CC net/core/gen_estimator.o
CC kernel/time/timekeeping.o
AR drivers/dma/built-in.a
AR sound/parisc/built-in.a
CC kernel/module/kmod.o
AR sound/pcmcia/vx/built-in.a
CC arch/x86/kernel/cpu/umwait.o
CC security/security.o
AR sound/pcmcia/pdaudiocf/built-in.a
AR sound/pcmcia/built-in.a
CC lib/crypto/blake2s-generic.o
CC lib/decompress_inflate.o
CC mm/backing-dev.o
CC fs/netfs/misc.o
AR arch/x86/mm/built-in.a
CC fs/netfs/objects.o
CC kernel/module/tree_lookup.o
CC crypto/ahash.o
CC fs/proc/interrupts.o
CC drivers/acpi/acpica/evhandler.o
CC fs/ext4/file.o
CC fs/ext4/fsmap.o
CC fs/ext4/fsync.o
CC security/lsm_audit.o
CC fs/isofs/dir.o
CC drivers/pci/vc.o
CC mm/mm_init.o
CC drivers/pci/mmap.o
CC security/selinux/ss/context.o
CC arch/x86/events/intel/uncore_snbep.o
CC fs/isofs/util.o
MKCAP arch/x86/kernel/cpu/capflags.c
AR drivers/soc/apple/built-in.a
AR drivers/soc/aspeed/built-in.a
AR drivers/soc/bcm/built-in.a
CC kernel/irq/proc.o
AR drivers/soc/fsl/built-in.a
CC lib/crypto/sha1.o
AR drivers/soc/fujitsu/built-in.a
AR drivers/soc/hisilicon/built-in.a
AR drivers/soc/imx/built-in.a
CC drivers/acpi/acpica/evmisc.o
AR drivers/soc/ixp4xx/built-in.a
AR drivers/soc/loongson/built-in.a
CC lib/crypto/sha256.o
AR drivers/soc/mediatek/built-in.a
CC kernel/time/ntp.o
AR drivers/soc/microchip/built-in.a
CC fs/proc/loadavg.o
AR drivers/soc/nuvoton/built-in.a
CC fs/fat/misc.o
AR drivers/soc/pxa/built-in.a
CC arch/x86/kernel/cpu/powerflags.o
CC arch/x86/events/intel/uncore_discovery.o
AR drivers/soc/amlogic/built-in.a
CC fs/proc/meminfo.o
AR drivers/soc/qcom/built-in.a
AR drivers/soc/renesas/built-in.a
CC fs/proc/stat.o
AR drivers/soc/rockchip/built-in.a
AR drivers/soc/sunxi/built-in.a
CC kernel/time/clocksource.o
AR drivers/soc/ti/built-in.a
AR drivers/soc/xilinx/built-in.a
AR drivers/soc/built-in.a
CC arch/x86/kernel/cpu/topology.o
CC kernel/module/kallsyms.o
CC drivers/acpi/acpica/evregion.o
CC net/core/net_namespace.o
CC security/selinux/netlabel.o
CC io_uring/openclose.o
CC fs/ext4/hash.o
CC lib/decompress_unlz4.o
CC kernel/module/procfs.o
CC kernel/module/sysfs.o
CC fs/isofs/rock.o
CC drivers/acpi/acpica/evrgnini.o
CC drivers/pci/devres.o
CC drivers/pci/proc.o
CC fs/netfs/write_collect.o
CC crypto/shash.o
CC net/sched/sch_generic.o
AR lib/crypto/built-in.a
CC drivers/virtio/virtio.o
CC drivers/virtio/virtio_ring.o
CC kernel/irq/migration.o
CC kernel/time/jiffies.o
CC drivers/tty/vt/vt_ioctl.o
CC drivers/tty/hvc/hvc_console.o
CC drivers/tty/serial/8250/8250_core.o
CC drivers/tty/serial/serial_core.o
CC fs/ext4/ialloc.o
CC [M] sound/core/pcm_misc.o
CC drivers/tty/vt/vc_screen.o
CC mm/percpu.o
CC drivers/tty/serial/serial_base_bus.o
CC fs/fat/nfs.o
CC arch/x86/kernel/platform-quirks.o
CC lib/decompress_unlzma.o
CC fs/proc/uptime.o
CC drivers/acpi/acpica/evsci.o
CC fs/proc/util.o
CC fs/proc/version.o
AR kernel/rcu/built-in.a
CC fs/proc/softirqs.o
CC drivers/tty/serial/8250/8250_pnp.o
CC [M] sound/core/pcm_memory.o
CC fs/netfs/write_issue.o
CC fs/nfs/getroot.o
CC drivers/char/hw_random/core.o
CC kernel/time/timer_list.o
AR kernel/module/built-in.a
CC kernel/time/timeconv.o
CC kernel/irq/cpuhotplug.o
CC kernel/irq/pm.o
CC fs/nfs/inode.o
CC fs/isofs/export.o
CC mm/slab_common.o
AR kernel/sched/built-in.a
CC drivers/acpi/acpica/evxface.o
CC fs/isofs/joliet.o
CC io_uring/sqpoll.o
CC io_uring/xattr.o
CC drivers/pci/pci-sysfs.o
CC io_uring/nop.o
CC security/device_cgroup.o
CC kernel/time/timecounter.o
CC fs/proc/namespaces.o
CC crypto/akcipher.o
AR drivers/tty/ipwireless/built-in.a
CC crypto/sig.o
CC io_uring/fs.o
CC fs/proc/self.o
CC io_uring/splice.o
AR drivers/tty/hvc/built-in.a
CC arch/x86/kernel/process_32.o
CC kernel/time/alarmtimer.o
CC fs/nfs/super.o
AR security/selinux/built-in.a
CC fs/fat/namei_vfat.o
CC fs/nfs/io.o
CC drivers/tty/vt/selection.o
CC drivers/char/agp/backend.o
CC lib/decompress_unlzo.o
CC lib/decompress_unxz.o
CC net/core/secure_seq.o
CC net/netlink/af_netlink.o
AR fs/jbd2/built-in.a
AR net/bpf/built-in.a
CC arch/x86/kernel/signal.o
CC [M] sound/core/memalloc.o
CC drivers/acpi/acpica/evxfevnt.o
CC drivers/tty/serial/8250/8250_port.o
CC drivers/char/hw_random/intel-rng.o
CC net/netlink/genetlink.o
CC drivers/char/mem.o
CC drivers/char/random.o
CC net/netlink/policy.o
CC fs/isofs/compress.o
CC kernel/irq/msi.o
CC arch/x86/events/intel/cstate.o
CC drivers/char/agp/generic.o
CC drivers/virtio/virtio_anchor.o
CC drivers/char/hw_random/amd-rng.o
CC fs/nfs/direct.o
AR fs/netfs/built-in.a
CC fs/proc/thread_self.o
CC [M] sound/core/pcm_timer.o
CC fs/nfs/pagelist.o
CC lib/decompress_unzstd.o
CC drivers/acpi/acpica/evxfgpe.o
CC fs/nfs/read.o
CC fs/proc/proc_sysctl.o
CC fs/nfs/symlink.o
CC drivers/acpi/acpica/evxfregn.o
CC drivers/tty/serial/8250/8250_dma.o
CC crypto/kpp.o
CC arch/x86/kernel/signal_32.o
CC drivers/char/agp/isoch.o
CC io_uring/sync.o
CC drivers/tty/vt/keyboard.o
CC fs/fat/namei_msdos.o
CC drivers/pci/slot.o
AR security/built-in.a
CC mm/compaction.o
CC mm/show_mem.o
CC arch/x86/kernel/traps.o
CC drivers/virtio/virtio_pci_modern_dev.o
CC drivers/acpi/acpica/exconcat.o
CC net/sched/sch_mq.o
CC net/sched/sch_frag.o
CC arch/x86/kernel/idt.o
LD [M] sound/core/snd-hwdep.o
CC arch/x86/kernel/irq.o
CC drivers/acpi/acpica/exconfig.o
CC kernel/time/posix-timers.o
CC drivers/char/hw_random/geode-rng.o
CC block/blk-mq-tag.o
CC fs/nfs/unlink.o
CC lib/dump_stack.o
CC block/blk-stat.o
AR fs/isofs/built-in.a
CC lib/earlycpio.o
CC kernel/time/posix-cpu-timers.o
AR sound/core/built-in.a
LD [M] sound/core/snd-pcm.o
CC drivers/tty/serial/serial_ctrl.o
AR sound/mips/built-in.a
AR arch/x86/events/intel/built-in.a
AR sound/soc/built-in.a
AR arch/x86/events/built-in.a
CC io_uring/msg_ring.o
CC fs/proc/proc_net.o
CC drivers/tty/serial/serial_port.o
AR sound/atmel/built-in.a
AR sound/hda/built-in.a
CC net/core/flow_dissector.o
AR sound/x86/built-in.a
CC [M] sound/hda/hda_bus_type.o
CC net/core/sysctl_net_core.o
CC net/core/dev.o
CC fs/proc/kcore.o
CC drivers/tty/vt/vt.o
CC drivers/tty/serial/earlycon.o
CC kernel/irq/affinity.o
CC drivers/char/agp/amd64-agp.o
ASN.1 crypto/rsapubkey.asn1.[ch]
ASN.1 crypto/rsaprivkey.asn1.[ch]
CC crypto/rsa.o
CC drivers/acpi/acpica/exconvrt.o
CC drivers/tty/tty_io.o
CC arch/x86/kernel/irq_32.o
CC fs/ext4/indirect.o
CC fs/exportfs/expfs.o
CC drivers/pci/pci-acpi.o
CC fs/nfs/write.o
CC drivers/virtio/virtio_pci_legacy_dev.o
AR fs/fat/built-in.a
CC drivers/char/hw_random/via-rng.o
CC drivers/pci/iomap.o
CC lib/extable.o
CC lib/flex_proportions.o
CC drivers/tty/serial/8250/8250_dwlib.o
CC lib/idr.o
CC drivers/virtio/virtio_pci_modern.o
CC drivers/tty/n_tty.o
CC drivers/virtio/virtio_pci_common.o
CC kernel/irq/matrix.o
CC drivers/acpi/acpica/excreate.o
CC [M] sound/hda/hdac_bus.o
CC fs/lockd/clntlock.o
CC fs/nls/nls_base.o
AR fs/unicode/built-in.a
CC [M] sound/hda/hdac_device.o
CC kernel/time/posix-clock.o
CC net/sched/sch_api.o
CC fs/nls/nls_cp437.o
CC crypto/rsa_helper.o
AR drivers/char/hw_random/built-in.a
CC fs/nls/nls_ascii.o
CC crypto/rsa-pkcs1pad.o
CC mm/shmem_quota.o
CC mm/interval_tree.o
CC block/blk-mq-sysfs.o
CC drivers/tty/tty_ioctl.o
CC drivers/tty/tty_ldisc.o
CC io_uring/advise.o
CC drivers/pci/quirks.o
CC drivers/tty/tty_buffer.o
AR fs/exportfs/built-in.a
CC drivers/tty/tty_port.o
CC drivers/char/agp/intel-agp.o
CC drivers/char/agp/intel-gtt.o
CC fs/proc/vmcore.o
CC fs/nls/nls_iso8859-1.o
CC fs/nls/nls_utf8.o
CC drivers/acpi/acpica/exdebug.o
CC lib/irq_regs.o
CC fs/autofs/init.o
CC fs/9p/vfs_super.o
CC fs/nfs/namespace.o
AR net/netlink/built-in.a
CC lib/is_single_threaded.o
CC drivers/tty/serial/8250/8250_pcilib.o
CC kernel/time/itimer.o
CC kernel/time/clockevents.o
AR fs/hostfs/built-in.a
CC drivers/acpi/tables.o
CC fs/debugfs/inode.o
CC drivers/virtio/virtio_pci_legacy.o
CC drivers/virtio/virtio_pci_admin_legacy_io.o
CC block/blk-mq-cpumap.o
CC drivers/pci/pci-label.o
CC drivers/acpi/acpica/exdump.o
AR fs/nls/built-in.a
CC drivers/pci/vgaarb.o
CC fs/nfs/mount_clnt.o
CC fs/nfs/nfstrace.o
CC fs/autofs/inode.o
CC crypto/acompress.o
CC fs/tracefs/inode.o
CC mm/list_lru.o
CC lib/klist.o
CC fs/tracefs/event_inode.o
CC arch/x86/kernel/dumpstack_32.o
CC arch/x86/kernel/time.o
CC drivers/tty/tty_mutex.o
CC [M] sound/hda/hdac_sysfs.o
CC [M] fs/efivarfs/inode.o
CC fs/9p/vfs_inode.o
CC kernel/time/tick-common.o
CC drivers/acpi/acpica/exfield.o
CC fs/open.o
CC arch/x86/kernel/ioport.o
CC fs/read_write.o
CC [M] fs/efivarfs/file.o
CC io_uring/epoll.o
CC drivers/tty/tty_ldsem.o
CC drivers/tty/tty_baudrate.o
CC fs/lockd/clntproc.o
AR kernel/irq/built-in.a
CC fs/file_table.o
CC fs/9p/vfs_inode_dotl.o
CC lib/kobject.o
CC drivers/tty/serial/8250/8250_early.o
AR drivers/char/agp/built-in.a
CC drivers/char/misc.o
CC net/core/dev_addr_lists.o
CC fs/proc/kmsg.o
CC drivers/virtio/virtio_input.o
CC drivers/virtio/virtio_dma_buf.o
CC net/core/dst.o
CC fs/lockd/clntxdr.o
CC fs/lockd/host.o
CC block/blk-mq-sched.o
CC drivers/acpi/acpica/exfldio.o
CC fs/lockd/svc.o
CC drivers/acpi/acpica/exmisc.o
CC fs/debugfs/file.o
CC net/sched/sch_blackhole.o
CC fs/autofs/root.o
CC drivers/tty/serial/8250/8250_exar.o
CC drivers/tty/serial/8250/8250_lpss.o
CC lib/kobject_uevent.o
CC drivers/tty/tty_jobctrl.o
CC crypto/scompress.o
CC [M] fs/efivarfs/super.o
COPY drivers/tty/vt/defkeymap.c
CC drivers/tty/vt/consolemap.o
CC [M] fs/efivarfs/vars.o
CC crypto/algboss.o
CC mm/workingset.o
CC io_uring/statx.o
CC drivers/tty/n_null.o
CC fs/proc/page.o
CC [M] sound/hda/hdac_regmap.o
CC arch/x86/kernel/dumpstack.o
CC fs/nfs/export.o
CC arch/x86/kernel/cpu/proc.o
CC fs/ext4/inline.o
AR fs/tracefs/built-in.a
CC arch/x86/kernel/nmi.o
CC crypto/testmgr.o
CC net/ethtool/ioctl.o
CC drivers/tty/serial/8250/8250_mid.o
CC drivers/char/virtio_console.o
CC mm/debug.o
CC drivers/acpi/acpica/exmutex.o
CC net/sched/cls_api.o
CC fs/super.o
CC fs/9p/vfs_addr.o
CC drivers/acpi/acpica/exnames.o
AR drivers/virtio/built-in.a
CC net/sched/act_api.o
CC kernel/time/tick-broadcast.o
CC mm/gup.o
AR drivers/pci/built-in.a
CC block/ioctl.o
CC drivers/tty/serial/8250/8250_pci.o
CC arch/x86/kernel/cpu/feat_ctl.o
CC net/netfilter/core.o
CC arch/x86/kernel/cpu/intel.o
CC net/netfilter/nf_log.o
CC fs/autofs/symlink.o
CC net/netfilter/nf_queue.o
CC fs/lockd/svclock.o
CC drivers/tty/serial/8250/8250_pericom.o
CC net/netfilter/nf_sockopt.o
CC net/netfilter/utils.o
CC lib/logic_pio.o
AR sound/xen/built-in.a
LD [M] fs/efivarfs/efivarfs.o
CC fs/ext4/inode.o
CC arch/x86/kernel/cpu/intel_pconfig.o
HOSTCC drivers/tty/vt/conmakehash
CC drivers/acpi/acpica/exoparg1.o
CC lib/maple_tree.o
CC crypto/cmac.o
AR fs/proc/built-in.a
CC arch/x86/kernel/cpu/tsx.o
AR sound/virtio/built-in.a
CC arch/x86/kernel/cpu/intel_epb.o
CC net/netfilter/nfnetlink.o
CC fs/ext4/ioctl.o
CC fs/char_dev.o
CC arch/x86/kernel/cpu/amd.o
CC [M] sound/hda/hdac_controller.o
CC drivers/char/hpet.o
CC arch/x86/kernel/cpu/hygon.o
CC [M] sound/hda/hdac_stream.o
CC net/netfilter/nfnetlink_log.o
CC io_uring/timeout.o
CC block/genhd.o
AR fs/debugfs/built-in.a
CC drivers/tty/vt/defkeymap.o
CC drivers/acpi/acpica/exoparg2.o
CC drivers/char/nvram.o
CC arch/x86/kernel/ldt.o
AR drivers/iommu/amd/built-in.a
AR drivers/iommu/intel/built-in.a
CC kernel/time/tick-broadcast-hrtimer.o
AR drivers/iommu/iommufd/built-in.a
AR drivers/iommu/arm/arm-smmu/built-in.a
CC arch/x86/kernel/cpu/centaur.o
AR drivers/iommu/arm/arm-smmu-v3/built-in.a
CC drivers/tty/pty.o
AR drivers/iommu/arm/built-in.a
CONMK drivers/tty/vt/consolemap_deftbl.c
CC drivers/tty/vt/consolemap_deftbl.o
CC drivers/iommu/iommu.o
AR drivers/tty/vt/built-in.a
CC [M] sound/hda/array.o
CC fs/9p/vfs_file.o
CC fs/nfs/sysfs.o
CC arch/x86/kernel/cpu/transmeta.o
CC arch/x86/kernel/setup.o
CC crypto/hmac.o
CC fs/stat.o
CC drivers/iommu/iommu-traces.o
CC fs/autofs/waitq.o
CC drivers/acpi/acpica/exoparg3.o
CC arch/x86/kernel/x86_init.o
CC block/ioprio.o
CC net/ipv4/netfilter/nf_defrag_ipv4.o
CC kernel/time/tick-oneshot.o
CC net/ipv4/route.o
CC fs/exec.o
CC fs/autofs/expire.o
CC fs/pipe.o
CC block/badblocks.o
CC drivers/iommu/iommu-sysfs.o
CC kernel/time/tick-sched.o
CC net/sched/sch_fifo.o
CC fs/autofs/dev-ioctl.o
CC drivers/acpi/osi.o
CC drivers/acpi/acpica/exoparg6.o
AR drivers/char/built-in.a
CC [M] sound/hda/hdmi_chmap.o
CC net/core/netevent.o
CC sound/sound_core.o
CC arch/x86/kernel/cpu/zhaoxin.o
AR drivers/tty/serial/8250/built-in.a
AR drivers/tty/serial/built-in.a
CC arch/x86/kernel/i8259.o
CC drivers/tty/tty_audit.o
CC drivers/tty/sysrq.o
CC net/netfilter/nf_conntrack_core.o
CC net/netfilter/nf_conntrack_standalone.o
CC fs/9p/vfs_dir.o
CC net/netfilter/nf_conntrack_expect.o
CC kernel/time/timer_migration.o
CC fs/lockd/svcshare.o
CC crypto/crypto_null.o
CC net/netfilter/nf_conntrack_helper.o
CC io_uring/fdinfo.o
CC fs/9p/vfs_dentry.o
CC block/blk-rq-qos.o
CC mm/mmap_lock.o
CC kernel/futex/core.o
CC arch/x86/kernel/cpu/vortex.o
CC drivers/acpi/acpica/exprep.o
CC kernel/futex/syscalls.o
CC kernel/cgroup/cgroup.o
CC net/sched/cls_cgroup.o
CC drivers/acpi/osl.o
CC net/sched/ematch.o
CC block/disk-events.o
CC sound/last.o
CC fs/lockd/svcproc.o
CC kernel/futex/pi.o
CC fs/ext4/mballoc.o
CC drivers/acpi/acpica/exregion.o
CC net/core/neighbour.o
CC fs/ext4/migrate.o
CC net/ethtool/common.o
CC arch/x86/kernel/cpu/perfctr-watchdog.o
CC net/ipv4/netfilter/nf_reject_ipv4.o
CC io_uring/cancel.o
CC mm/highmem.o
CC io_uring/waitid.o
CC crypto/md5.o
AR fs/autofs/built-in.a
CC fs/namei.o
CC fs/9p/v9fs.o
CC net/ipv4/netfilter/ip_tables.o
CC crypto/sha256_generic.o
CC [M] sound/hda/trace.o
CC fs/nfs/fs_context.o
CC kernel/futex/requeue.o
CC kernel/time/vsyscall.o
CC lib/memcat_p.o
CC drivers/acpi/acpica/exresnte.o
AR drivers/tty/built-in.a
CC drivers/iommu/dma-iommu.o
CC net/xfrm/xfrm_policy.o
CC drivers/iommu/iova.o
CC kernel/time/timekeeping_debug.o
CC net/xfrm/xfrm_state.o
CC net/unix/af_unix.o
CC fs/nfs/nfsroot.o
CC net/unix/garbage.o
CC net/ipv6/netfilter/ip6_tables.o
CC net/unix/sysctl_net_unix.o
CC block/blk-ia-ranges.o
CC net/ipv6/netfilter/ip6table_filter.o
CC net/ipv6/af_inet6.o
CC net/ethtool/netlink.o
CC net/ipv6/anycast.o
CC net/netfilter/nf_conntrack_proto.o
CC arch/x86/kernel/cpu/vmware.o
CC fs/nfs/sysctl.o
CC crypto/sha512_generic.o
CC drivers/acpi/acpica/exresolv.o
CC net/netfilter/nf_conntrack_proto_generic.o
CC kernel/time/namespace.o
CC net/netfilter/nf_conntrack_proto_tcp.o
CC fs/9p/fid.o
AR net/sched/built-in.a
CC fs/9p/xattr.o
CC kernel/futex/waitwake.o
CC fs/lockd/svcsubs.o
CC drivers/acpi/utils.o
CC net/packet/af_packet.o
AR net/dsa/built-in.a
CC fs/ext4/mmp.o
CC fs/ext4/move_extent.o
CC mm/memory.o
CC net/sunrpc/auth_gss/auth_gss.o
CC io_uring/register.o
CC net/sunrpc/auth_gss/gss_generic_token.o
AR net/wireless/tests/built-in.a
CC net/wireless/core.o
CC [M] sound/hda/hdac_component.o
CC drivers/acpi/acpica/exresop.o
CC net/wireless/sysfs.o
CC arch/x86/kernel/cpu/hypervisor.o
CC net/core/rtnetlink.o
CC net/ethtool/bitset.o
CC block/early-lookup.o
CC block/bounce.o
AR kernel/time/built-in.a
CC drivers/acpi/acpica/exserial.o
CC net/ipv4/netfilter/iptable_filter.o
CC crypto/sha3_generic.o
CC io_uring/truncate.o
CC io_uring/memmap.o
CC arch/x86/kernel/cpu/mshyperv.o
CC net/sunrpc/auth_gss/gss_mech_switch.o
AR fs/9p/built-in.a
CC fs/ext4/namei.o
CC net/xfrm/xfrm_hash.o
CC drivers/acpi/acpica/exstore.o
AR kernel/futex/built-in.a
CC kernel/trace/trace_clock.o
CC drivers/acpi/acpica/exstoren.o
AR drivers/iommu/built-in.a
CC kernel/trace/ring_buffer.o
CC fs/ext4/page-io.o
CC net/ipv4/netfilter/iptable_mangle.o
CC net/ipv6/netfilter/ip6table_mangle.o
CC net/netfilter/nf_conntrack_proto_udp.o
CC [M] sound/hda/hdac_i915.o
CC kernel/bpf/core.o
CC drivers/acpi/acpica/exstorob.o
CC kernel/fork.o
CC kernel/events/core.o
CC net/xfrm/xfrm_input.o
AR drivers/gpu/host1x/built-in.a
CC drivers/acpi/acpica/exsystem.o
AR drivers/gpu/vga/built-in.a
CC drivers/acpi/acpica/extrace.o
CC fs/lockd/mon.o
CC net/ipv4/netfilter/ipt_REJECT.o
CC arch/x86/kernel/irqinit.o
CC crypto/ecb.o
CC block/bsg.o
CC crypto/cbc.o
CC arch/x86/kernel/cpu/debugfs.o
CC net/wireless/radiotap.o
AR drivers/gpu/drm/tests/built-in.a
AR drivers/gpu/drm/arm/built-in.a
CC [M] net/ipv4/netfilter/iptable_nat.o
CC drivers/gpu/drm/display/drm_display_helper_mod.o
AR net/mac80211/tests/built-in.a
CC net/mac80211/main.o
CC drivers/gpu/drm/display/drm_dp_dual_mode_helper.o
CC fs/nfs/nfs3super.o
CC drivers/acpi/acpica/exutils.o
CC crypto/ctr.o
CC io_uring/io-wq.o
CC net/ipv6/ip6_output.o
CC drivers/gpu/drm/ttm/ttm_tt.o
CC net/ethtool/strset.o
CC [M] sound/hda/intel-dsp-config.o
CC drivers/gpu/drm/ttm/ttm_bo.o
CC io_uring/futex.o
CC net/ipv6/netfilter/nf_defrag_ipv6_hooks.o
CC [M] sound/hda/intel-nhlt.o
CC drivers/connector/cn_queue.o
CC drivers/base/power/sysfs.o
CC drivers/base/firmware_loader/builtin/main.o
CC arch/x86/kernel/cpu/capflags.o
CC drivers/base/regmap/regmap.o
AR net/unix/built-in.a
AR arch/x86/kernel/cpu/built-in.a
CC net/ethtool/linkinfo.o
CC drivers/base/regmap/regcache.o
CC drivers/acpi/acpica/hwacpi.o
CC block/blk-cgroup.o
CC drivers/base/firmware_loader/main.o
CC drivers/connector/connector.o
CC crypto/gcm.o
CC net/netfilter/nf_conntrack_proto_icmp.o
CC drivers/acpi/acpica/hwesleep.o
CC arch/x86/kernel/jump_label.o
CC kernel/trace/trace.o
AR drivers/base/firmware_loader/builtin/built-in.a
CC net/ipv4/inetpeer.o
CC net/sunrpc/auth_gss/svcauth_gss.o
CC fs/ext4/readpage.o
CC net/core/utils.o
CC fs/lockd/trace.o
CC net/ipv6/netfilter/nf_conntrack_reasm.o
AR drivers/base/test/built-in.a
AR net/ipv4/netfilter/built-in.a
CC drivers/gpu/drm/display/drm_dp_helper.o
CC kernel/exec_domain.o
CC drivers/gpu/drm/display/drm_dp_mst_topology.o
CC drivers/base/power/generic_ops.o
CC [M] sound/hda/intel-sdw-acpi.o
CC lib/nmi_backtrace.o
CC fs/fcntl.o
CC drivers/acpi/acpica/hwgpe.o
CC fs/nfs/nfs3client.o
CC net/ethtool/linkmodes.o
CC net/xfrm/xfrm_output.o
CC drivers/gpu/drm/ttm/ttm_bo_util.o
CC kernel/cgroup/rstat.o
CC kernel/trace/trace_output.o
CC fs/ext4/resize.o
CC arch/x86/kernel/irq_work.o
CC fs/ioctl.o
CC drivers/connector/cn_proc.o
CC drivers/base/power/common.o
CC io_uring/napi.o
CC kernel/panic.o
LD [M] sound/hda/snd-hda-core.o
AR drivers/base/firmware_loader/built-in.a
LD [M] sound/hda/snd-intel-dspcfg.o
CC drivers/base/component.o
LD [M] sound/hda/snd-intel-sdw-acpi.o
AR sound/built-in.a
CC drivers/acpi/acpica/hwregs.o
CC kernel/cgroup/namespace.o
CC kernel/cgroup/cgroup-v1.o
AR net/packet/built-in.a
CC net/wireless/util.o
CC crypto/ccm.o
CC crypto/aes_generic.o
CC mm/mincore.o
CC lib/objpool.o
CC fs/ext4/super.o
CC net/netlabel/netlabel_user.o
CC fs/ext4/symlink.o
CC net/ipv6/ip6_input.o
CC net/ipv4/protocol.o
CC mm/mlock.o
CC net/netfilter/nf_conntrack_extend.o
CC drivers/base/power/qos.o
CC drivers/base/regmap/regcache-rbtree.o
CC fs/readdir.o
CC kernel/events/ring_buffer.o
CC kernel/cpu.o
CC drivers/acpi/acpica/hwsleep.o
CC fs/lockd/xdr.o
CC drivers/base/core.o
CC drivers/gpu/drm/ttm/ttm_bo_vm.o
CC block/blk-ioprio.o
CC lib/plist.o
CC net/ethtool/rss.o
CC fs/nfs/nfs3proc.o
AR kernel/bpf/built-in.a
CC lib/radix-tree.o
CC net/ethtool/linkstate.o
CC drivers/base/bus.o
CC kernel/trace/trace_seq.o
CC net/ipv6/netfilter/nf_reject_ipv6.o
CC net/netlabel/netlabel_kapi.o
CC fs/lockd/clnt4xdr.o
CC arch/x86/kernel/probe_roms.o
CC drivers/acpi/acpica/hwvalid.o
AR drivers/connector/built-in.a
CC drivers/acpi/acpica/hwxface.o
CC drivers/acpi/acpica/hwxfsleep.o
CC net/ipv6/netfilter/ip6t_ipv6header.o
CC net/netfilter/nf_conntrack_acct.o
CC net/netlabel/netlabel_domainhash.o
CC crypto/crc32c_generic.o
CC net/core/link_watch.o
CC drivers/gpu/drm/ttm/ttm_module.o
CC drivers/base/regmap/regcache-flat.o
CC fs/ext4/sysfs.o
CC kernel/trace/trace_stat.o
CC drivers/base/regmap/regcache-maple.o
CC crypto/authenc.o
CC net/core/filter.o
CC drivers/block/loop.o
CC net/sunrpc/auth_gss/gss_rpc_upcall.o
CC net/ipv4/ip_input.o
CC drivers/acpi/acpica/hwpci.o
CC block/blk-iolatency.o
CC drivers/acpi/acpica/nsaccess.o
AR io_uring/built-in.a
CC drivers/gpu/drm/ttm/ttm_execbuf_util.o
CC net/xfrm/xfrm_sysctl.o
CC arch/x86/kernel/sys_ia32.o
CC drivers/gpu/drm/ttm/ttm_range_manager.o
CC net/ipv4/ip_fragment.o
CC drivers/base/regmap/regmap-debugfs.o
CC kernel/trace/trace_printk.o
AR drivers/misc/eeprom/built-in.a
CC kernel/cgroup/freezer.o
AR drivers/misc/cb710/built-in.a
CC net/netfilter/nf_conntrack_seqadj.o
AR drivers/misc/ti-st/built-in.a
CC net/ipv6/netfilter/ip6t_REJECT.o
AR drivers/misc/lis3lv02d/built-in.a
CC net/mac80211/status.o
CC net/ethtool/debug.o
CC arch/x86/kernel/ksysfs.o
CC lib/ratelimit.o
AR drivers/misc/cardreader/built-in.a
AR drivers/misc/built-in.a
CC net/mac80211/driver-ops.o
CC kernel/events/callchain.o
CC mm/mmap.o
CC drivers/base/power/runtime.o
CC fs/lockd/xdr4.o
CC net/core/sock_diag.o
CC net/netfilter/nf_conntrack_proto_icmpv6.o
CC net/core/dev_ioctl.o
CC lib/rbtree.o
CC drivers/acpi/acpica/nsalloc.o
CC drivers/acpi/acpica/nsarguments.o
CC net/mac80211/sta_info.o
CC net/xfrm/xfrm_replay.o
CC fs/nfs/nfs3xdr.o
CC kernel/events/hw_breakpoint.o
CC net/ethtool/wol.o
CC net/mac80211/wep.o
CC drivers/acpi/acpica/nsconvert.o
CC drivers/gpu/drm/ttm/ttm_resource.o
CC net/sunrpc/auth_gss/gss_rpc_xdr.o
CC drivers/base/power/wakeirq.o
CC net/netlabel/netlabel_addrlist.o
CC lib/seq_buf.o
CC drivers/gpu/drm/display/drm_dsc_helper.o
CC net/xfrm/xfrm_device.o
CC drivers/acpi/acpica/nsdump.o
CC crypto/authencesn.o
CC net/netfilter/nf_conntrack_netlink.o
CC net/netfilter/nf_conntrack_ftp.o
AR drivers/base/regmap/built-in.a
CC net/netlabel/netlabel_mgmt.o
CC drivers/gpu/drm/display/drm_hdcp_helper.o
CC arch/x86/kernel/bootflag.o
CC drivers/acpi/acpica/nseval.o
CC net/xfrm/xfrm_algo.o
CC net/sunrpc/auth_gss/trace.o
CC kernel/exit.o
CC kernel/events/uprobes.o
CC kernel/cgroup/legacy_freezer.o
CC kernel/cgroup/pids.o
CC kernel/softirq.o
CC net/netlabel/netlabel_unlabeled.o
CC drivers/base/power/main.o
CC drivers/gpu/drm/ttm/ttm_pool.o
CC drivers/acpi/acpica/nsinit.o
CC kernel/trace/pid_list.o
AR net/ipv6/netfilter/built-in.a
CC drivers/acpi/acpica/nsload.o
CC net/ipv6/addrconf.o
CC net/ipv4/ip_forward.o
CC block/blk-iocost.o
CC lib/siphash.o
CC crypto/lzo.o
CC drivers/block/virtio_blk.o
CC fs/lockd/svc4proc.o
CC fs/lockd/procfs.o
CC arch/x86/kernel/e820.o
CC drivers/gpu/drm/ttm/ttm_device.o
CC net/sunrpc/auth_gss/gss_krb5_mech.o
CC net/ethtool/features.o
CC kernel/resource.o
CC net/sunrpc/clnt.o
CC drivers/base/power/wakeup.o
CC lib/string.o
CC drivers/gpu/drm/display/drm_hdmi_helper.o
CC kernel/cgroup/rdma.o
CC net/netlabel/netlabel_cipso_v4.o
CC net/mac80211/aead_api.o
CC drivers/acpi/acpica/nsnames.o
CC kernel/cgroup/cpuset.o
CC net/sunrpc/xprt.o
CC net/netfilter/nf_conntrack_irc.o
CC drivers/gpu/drm/ttm/ttm_sys_manager.o
CC fs/ext4/xattr.o
CC crypto/lzo-rle.o
CC lib/timerqueue.o
CC kernel/cgroup/misc.o
CC net/ipv6/addrlabel.o
CC net/netlabel/netlabel_calipso.o
CC net/xfrm/xfrm_user.o
CC lib/vsprintf.o
CC drivers/gpu/drm/display/drm_scdc_helper.o
CC kernel/trace/trace_sched_switch.o
AR drivers/mfd/built-in.a
CC kernel/cgroup/debug.o
CC drivers/acpi/acpica/nsobject.o
CC drivers/gpu/drm/i915/i915_config.o
CC kernel/sysctl.o
CC drivers/gpu/drm/ttm/ttm_agp_backend.o
CC net/sunrpc/auth_gss/gss_krb5_seal.o
AR drivers/gpu/drm/renesas/rcar-du/built-in.a
CC drivers/acpi/acpica/nsparse.o
CC net/mac80211/wpa.o
AR drivers/gpu/drm/renesas/rz-du/built-in.a
AR drivers/gpu/drm/renesas/built-in.a
CC lib/win_minmax.o
CC fs/select.o
CC lib/xarray.o
CC crypto/rng.o
CC net/wireless/reg.o
AR drivers/gpu/drm/omapdrm/built-in.a
CC drivers/gpu/drm/i915/i915_driver.o
CC net/ethtool/privflags.o
AR fs/lockd/built-in.a
AR drivers/gpu/drm/tilcdc/built-in.a
CC crypto/drbg.o
CC net/rfkill/core.o
CC block/mq-deadline.o
AR drivers/block/built-in.a
CC net/rfkill/input.o
CC net/ipv4/ip_options.o
AR kernel/events/built-in.a
CC arch/x86/kernel/pci-dma.o
CC arch/x86/kernel/quirks.o
CC mm/mmu_gather.o
CC kernel/trace/trace_nop.o
CC arch/x86/kernel/kdebugfs.o
CC drivers/acpi/acpica/nspredef.o
CC mm/mprotect.o
CC fs/nfs/nfs3acl.o
CC drivers/base/dd.o
CC drivers/gpu/drm/virtio/virtgpu_drv.o
CC drivers/gpu/drm/virtio/virtgpu_kms.o
AR drivers/gpu/drm/imx/built-in.a
CC drivers/base/power/wakeup_stats.o
CC arch/x86/kernel/alternative.o
AR drivers/gpu/drm/ttm/built-in.a
CC net/netfilter/nf_conntrack_sip.o
AR drivers/gpu/drm/display/built-in.a
CC net/sunrpc/auth_gss/gss_krb5_unseal.o
CC lib/lockref.o
CC net/ipv6/route.o
CC net/sunrpc/socklib.o
CC net/ipv4/ip_output.o
CC net/ethtool/rings.o
CC fs/dcache.o
CC crypto/jitterentropy.o
AR net/netlabel/built-in.a
CC net/ethtool/channels.o
CC drivers/acpi/acpica/nsprepkg.o
CC net/ethtool/coalesce.o
CC lib/bcd.o
CC net/netfilter/nf_nat_core.o
CC lib/sort.o
CC arch/x86/kernel/i8253.o
CC crypto/jitterentropy-kcapi.o
CC lib/parser.o
CC arch/x86/kernel/hw_breakpoint.o
CC drivers/base/power/trace.o
CC crypto/ghash-generic.o
CC block/kyber-iosched.o
CC lib/debug_locks.o
CC kernel/trace/blktrace.o
CC mm/mremap.o
CC net/mac80211/scan.o
AR net/rfkill/built-in.a
CC net/9p/mod.o
CC drivers/base/syscore.o
CC drivers/acpi/acpica/nsrepair.o
CC lib/random32.o
CC net/sunrpc/auth_gss/gss_krb5_wrap.o
CC net/ethtool/pause.o
CC drivers/gpu/drm/virtio/virtgpu_gem.o
CC net/mac80211/offchannel.o
CC mm/msync.o
CC net/ipv6/ip6_fib.o
CC arch/x86/kernel/tsc.o
CC drivers/gpu/drm/i915/i915_drm_client.o
CC drivers/acpi/acpica/nsrepair2.o
CC drivers/acpi/acpica/nssearch.o
CC crypto/hash_info.o
CC drivers/acpi/acpica/nsutils.o
AR kernel/cgroup/built-in.a
CC drivers/acpi/acpica/nswalk.o
CC block/blk-mq-pci.o
CC crypto/rsapubkey.asn1.o
CC arch/x86/kernel/tsc_msr.o
CC net/ipv4/ip_sockglue.o
CC crypto/rsaprivkey.asn1.o
CC fs/ext4/xattr_hurd.o
CC net/dns_resolver/dns_key.o
AR crypto/built-in.a
CC fs/nfs/nfs4proc.o
CC drivers/gpu/drm/virtio/virtgpu_vram.o
CC net/dns_resolver/dns_query.o
CC drivers/acpi/acpica/nsxfeval.o
CC net/ethtool/eee.o
CC mm/page_vma_mapped.o
CC net/9p/client.o
AR drivers/base/power/built-in.a
CC net/mac80211/ht.o
AR drivers/gpu/drm/i2c/built-in.a
CC net/ethtool/tsinfo.o
CC net/sunrpc/xprtsock.o
AR drivers/gpu/drm/panel/built-in.a
CC drivers/gpu/drm/i915/i915_getparam.o
CC drivers/gpu/drm/i915/i915_ioctl.o
AR drivers/gpu/drm/bridge/analogix/built-in.a
AR drivers/gpu/drm/bridge/cadence/built-in.a
AR drivers/gpu/drm/bridge/imx/built-in.a
CC net/sunrpc/auth_gss/gss_krb5_crypto.o
CC drivers/gpu/drm/i915/i915_irq.o
AR drivers/gpu/drm/bridge/synopsys/built-in.a
CC net/ethtool/cabletest.o
AR drivers/gpu/drm/bridge/built-in.a
CC fs/ext4/xattr_trusted.o
CC fs/ext4/xattr_user.o
CC drivers/gpu/drm/virtio/virtgpu_display.o
CC lib/bust_spinlocks.o
CC net/core/tso.o
CC net/core/sock_reuseport.o
CC net/wireless/scan.o
CC drivers/acpi/acpica/nsxfname.o
CC mm/pagewalk.o
CC kernel/capability.o
CC kernel/ptrace.o
CC net/sunrpc/sched.o
CC fs/inode.o
AR net/xfrm/built-in.a
AR net/dns_resolver/built-in.a
AR drivers/gpu/drm/hisilicon/built-in.a
CC drivers/gpu/drm/virtio/virtgpu_vq.o
CC drivers/base/driver.o
CC net/handshake/alert.o
AR drivers/gpu/drm/mxsfb/built-in.a
AR drivers/gpu/drm/tiny/built-in.a
CC net/sunrpc/auth_gss/gss_krb5_keys.o
CC net/netfilter/nf_nat_proto.o
AR drivers/gpu/drm/xlnx/built-in.a
CC net/devres.o
CC net/sunrpc/auth.o
CC drivers/gpu/drm/virtio/virtgpu_fence.o
CC lib/kasprintf.o
CC net/netfilter/nf_nat_helper.o
CC arch/x86/kernel/io_delay.o
CC drivers/acpi/acpica/nsxfobj.o
CC lib/bitmap.o
CC net/socket.o
CC block/blk-mq-virtio.o
CC drivers/acpi/acpica/psargs.o
CC net/sunrpc/auth_null.o
CC fs/attr.o
CC drivers/acpi/acpica/psloop.o
CC fs/ext4/fast_commit.o
CC kernel/trace/trace_events.o
CC net/sysctl_net.o
CC net/ethtool/tunnels.o
CC net/ethtool/fec.o
CC drivers/gpu/drm/i915/i915_mitigations.o
CC net/ethtool/eeprom.o
CC drivers/base/class.o
CC arch/x86/kernel/rtc.o
CC drivers/acpi/acpica/psobject.o
CC mm/pgtable-generic.o
CC net/9p/error.o
CC kernel/user.o
CC kernel/trace/trace_export.o
CC net/core/fib_notifier.o
CC net/core/xdp.o
CC kernel/trace/trace_event_perf.o
CC kernel/trace/trace_events_filter.o
CC block/blk-mq-debugfs.o
AR net/sunrpc/auth_gss/built-in.a
CC drivers/gpu/drm/virtio/virtgpu_object.o
CC kernel/trace/trace_events_trigger.o
CC kernel/signal.o
CC net/ipv4/inet_hashtables.o
CC lib/scatterlist.o
CC fs/bad_inode.o
CC net/netfilter/nf_nat_masquerade.o
CC drivers/acpi/acpica/psopcode.o
CC net/netfilter/nf_nat_ftp.o
CC net/ipv6/ipv6_sockglue.o
CC net/ipv4/inet_timewait_sock.o
CC net/9p/protocol.o
CC arch/x86/kernel/resource.o
CC fs/file.o
AR drivers/nfc/built-in.a
CC drivers/base/platform.o
CC drivers/gpu/drm/virtio/virtgpu_debugfs.o
CC net/sunrpc/auth_tls.o
CC mm/rmap.o
CC drivers/gpu/drm/i915/i915_module.o
AS arch/x86/kernel/irqflags.o
CC arch/x86/kernel/static_call.o
CC net/netfilter/nf_nat_irc.o
CC net/handshake/genl.o
CC net/handshake/netlink.o
CC drivers/acpi/acpica/psopinfo.o
CC drivers/acpi/acpica/psparse.o
CC drivers/gpu/drm/virtio/virtgpu_plane.o
CC net/9p/trans_common.o
CC fs/filesystems.o
CC net/sunrpc/auth_unix.o
CC net/ethtool/stats.o
CC net/netfilter/nf_nat_sip.o
CC net/core/flow_offload.o
CC net/mac80211/agg-tx.o
CC net/ethtool/phc_vclocks.o
CC fs/namespace.o
CC kernel/sys.o
AR drivers/dax/hmem/built-in.a
AR drivers/dax/built-in.a
CC arch/x86/kernel/process.o
CC arch/x86/kernel/ptrace.o
CC block/blk-pm.o
CC net/core/gro.o
CC lib/list_sort.o
CC drivers/acpi/acpica/psscope.o
CC lib/uuid.o
CC net/mac80211/agg-rx.o
CC lib/iov_iter.o
CC lib/clz_ctz.o
CC net/ipv6/ndisc.o
CC net/ethtool/mm.o
CC net/core/netdev-genl.o
CC drivers/dma-buf/dma-buf.o
CC net/9p/trans_fd.o
CC drivers/dma-buf/dma-fence.o
CC net/ipv6/udp.o
CC drivers/dma-buf/dma-fence-array.o
CC kernel/umh.o
CC drivers/gpu/drm/virtio/virtgpu_ioctl.o
CC net/core/netdev-genl-gen.o
CC drivers/acpi/acpica/pstree.o
CC drivers/base/cpu.o
CC fs/ext4/orphan.o
CC lib/bsearch.o
CC net/sunrpc/svc.o
CC net/ipv4/inet_connection_sock.o
CC net/netfilter/x_tables.o
CC net/core/gso.o
CC drivers/gpu/drm/i915/i915_params.o
AR drivers/cxl/core/built-in.a
AR drivers/cxl/built-in.a
CC net/handshake/request.o
CC drivers/macintosh/mac_hid.o
CC block/holder.o
CC net/handshake/tlshd.o
CC kernel/trace/trace_eprobe.o
CC drivers/gpu/drm/virtio/virtgpu_prime.o
CC net/ethtool/module.o
CC net/handshake/trace.o
CC drivers/acpi/acpica/psutils.o
CC lib/find_bit.o
CC net/core/net-sysfs.o
CC arch/x86/kernel/tls.o
CC net/netfilter/xt_tcpudp.o
AR drivers/scsi/pcmcia/built-in.a
CC drivers/scsi/scsi.o
CC lib/llist.o
CC lib/lwq.o
CC net/ipv6/udplite.o
CC net/core/hotdata.o
CC net/ipv6/raw.o
AR drivers/nvme/common/built-in.a
CC drivers/ata/libata-core.o
AR drivers/nvme/host/built-in.a
AR drivers/macintosh/built-in.a
AR drivers/nvme/target/built-in.a
CC net/core/net-procfs.o
CC drivers/acpi/acpica/pswalk.o
CC drivers/net/phy/mdio-boardinfo.o
AR drivers/net/phy/qcom/built-in.a
AR drivers/nvme/built-in.a
CC drivers/ata/libata-scsi.o
CC drivers/firewire/init_ohci1394_dma.o
CC mm/vmalloc.o
CC drivers/cdrom/cdrom.o
CC drivers/net/phy/stubs.o
CC drivers/base/firmware.o
CC drivers/net/phy/mdio_devres.o
CC drivers/dma-buf/dma-fence-chain.o
CC drivers/gpu/drm/virtio/virtgpu_trace_points.o
AR block/built-in.a
CC net/mac80211/vht.o
CC net/ethtool/pse-pd.o
CC fs/ext4/acl.o
CC arch/x86/kernel/step.o
CC drivers/net/phy/phy.o
CC drivers/gpu/drm/i915/i915_pci.o
CC net/9p/trans_virtio.o
CC drivers/acpi/acpica/psxface.o
CC drivers/acpi/acpica/rsaddr.o
CC mm/process_vm_access.o
CC net/ethtool/plca.o
AR drivers/auxdisplay/built-in.a
CC drivers/base/init.o
CC drivers/pcmcia/cs.o
CC fs/nfs/nfs4xdr.o
CC drivers/usb/common/common.o
CC mm/page_alloc.o
CC drivers/usb/core/usb.o
CC drivers/dma-buf/dma-fence-unwrap.o
CC net/wireless/nl80211.o
AR drivers/firewire/built-in.a
CC drivers/usb/core/hub.o
CC drivers/acpi/acpica/rscalc.o
CC drivers/acpi/acpica/rscreate.o
CC net/core/netpoll.o
CC kernel/trace/trace_kprobe.o
CC drivers/base/map.o
CC kernel/trace/error_report-traces.o
CC lib/memweight.o
AR drivers/usb/phy/built-in.a
CC net/ipv6/icmp.o
CC drivers/base/devres.o
CC drivers/usb/mon/mon_main.o
CC arch/x86/kernel/i8237.o
CC lib/kfifo.o
CC drivers/gpu/drm/virtio/virtgpu_submit.o
CC drivers/usb/mon/mon_stat.o
CC net/ipv6/mcast.o
CC fs/ext4/xattr_security.o
AR net/handshake/built-in.a
CC kernel/trace/power-traces.o
CC net/core/fib_rules.o
CC net/sunrpc/svcsock.o
CC net/netfilter/xt_CONNSECMARK.o
CC drivers/dma-buf/dma-resv.o
CC drivers/scsi/hosts.o
CC fs/nfs/nfs4state.o
CC drivers/acpi/acpica/rsdumpinfo.o
CC net/sunrpc/svcauth.o
CC net/netfilter/xt_NFLOG.o
CC net/mac80211/he.o
CC net/ipv4/tcp.o
CC drivers/usb/common/debug.o
CC drivers/scsi/scsi_ioctl.o
CC drivers/acpi/acpica/rsinfo.o
CC arch/x86/kernel/stacktrace.o
CC drivers/pcmcia/socket_sysfs.o
AR drivers/usb/common/built-in.a
CC drivers/gpu/drm/i915/i915_scatterlist.o
CC drivers/usb/mon/mon_text.o
CC drivers/usb/host/pci-quirks.o
CC net/core/net-traces.o
AR net/ethtool/built-in.a
AR drivers/gpu/drm/gud/built-in.a
CC drivers/usb/host/ehci-hcd.o
CC fs/nfs/nfs4renewd.o
CC drivers/acpi/acpica/rsio.o
CC drivers/acpi/acpica/rsirq.o
CC net/ipv4/tcp_input.o
CC net/ipv4/tcp_output.o
CC net/mac80211/s1g.o
CC drivers/base/attribute_container.o
AR net/9p/built-in.a
CC net/ipv6/reassembly.o
CC drivers/base/transport_class.o
AR drivers/cdrom/built-in.a
CC drivers/usb/core/hcd.o
CC drivers/input/serio/serio.o
CC drivers/net/phy/phy-c45.o
CC lib/percpu-refcount.o
AR drivers/gpu/drm/virtio/built-in.a
AR fs/ext4/built-in.a
CC fs/seq_file.o
CC drivers/input/keyboard/atkbd.o
CC drivers/acpi/acpica/rslist.o
CC drivers/input/mouse/psmouse-base.o
CC arch/x86/kernel/reboot.o
CC drivers/input/mouse/synaptics.o
CC drivers/dma-buf/sync_file.o
CC drivers/pcmcia/cardbus.o
CC drivers/rtc/lib.o
CC drivers/input/serio/i8042.o
CC drivers/ata/libata-eh.o
CC drivers/rtc/class.o
CC drivers/base/topology.o
CC drivers/gpu/drm/i915/i915_suspend.o
CC drivers/scsi/scsicam.o
CC net/netfilter/xt_SECMARK.o
CC drivers/usb/mon/mon_bin.o
CC drivers/acpi/acpica/rsmemory.o
CC drivers/usb/host/ehci-pci.o
CC net/core/selftests.o
CC drivers/i2c/algos/i2c-algo-bit.o
CC drivers/i2c/busses/i2c-i801.o
CC lib/rhashtable.o
AR drivers/i2c/muxes/built-in.a
CC drivers/i2c/i2c-boardinfo.o
CC drivers/scsi/scsi_error.o
CC drivers/ata/libata-transport.o
CC net/ipv6/tcp_ipv6.o
AR drivers/dma-buf/built-in.a
CC drivers/usb/host/ohci-hcd.o
CC drivers/pcmcia/ds.o
CC drivers/acpi/acpica/rsmisc.o
CC drivers/acpi/acpica/rsserial.o
CC drivers/usb/class/usblp.o
CC arch/x86/kernel/msr.o
CC kernel/trace/rpm-traces.o
CC drivers/rtc/interface.o
CC drivers/base/container.o
CC drivers/rtc/nvmem.o
AR drivers/input/keyboard/built-in.a
AR drivers/i3c/built-in.a
CC drivers/pcmcia/pcmcia_resource.o
CC net/mac80211/ibss.o
AR drivers/media/i2c/built-in.a
AR drivers/media/tuners/built-in.a
AR drivers/media/rc/keymaps/built-in.a
CC net/mac80211/iface.o
AR drivers/media/rc/built-in.a
CC drivers/net/phy/phy-core.o
CC drivers/input/mouse/focaltech.o
AR drivers/media/common/b2c2/built-in.a
AR drivers/media/common/saa7146/built-in.a
AR drivers/media/platform/allegro-dvt/built-in.a
CC drivers/scsi/scsi_lib.o
AR drivers/media/common/siano/built-in.a
AR drivers/media/platform/amlogic/meson-ge2d/built-in.a
AR drivers/media/common/v4l2-tpg/built-in.a
AR drivers/media/platform/amlogic/built-in.a
CC net/netfilter/xt_TCPMSS.o
AR drivers/media/common/videobuf2/built-in.a
AR drivers/media/common/built-in.a
AR drivers/media/platform/amphion/built-in.a
CC net/netfilter/xt_conntrack.o
AR drivers/media/platform/aspeed/built-in.a
CC drivers/acpi/acpica/rsutils.o
AR drivers/media/platform/atmel/built-in.a
CC drivers/net/phy/phy_device.o
AR drivers/media/platform/broadcom/built-in.a
CC net/core/ptp_classifier.o
AR drivers/media/platform/cadence/built-in.a
CC drivers/base/property.o
AR drivers/media/platform/chips-media/coda/built-in.a
CC drivers/rtc/dev.o
AR drivers/media/platform/chips-media/wave5/built-in.a
AR drivers/i2c/algos/built-in.a
AR drivers/media/platform/chips-media/built-in.a
CC drivers/usb/host/ohci-pci.o
CC drivers/input/serio/serport.o
CC drivers/gpu/drm/i915/i915_switcheroo.o
AR drivers/media/platform/intel/built-in.a
AR drivers/usb/mon/built-in.a
AR drivers/media/platform/marvell/built-in.a
CC drivers/usb/core/urb.o
CC drivers/usb/storage/scsiglue.o
AR drivers/media/platform/mediatek/jpeg/built-in.a
AR drivers/usb/misc/built-in.a
AR drivers/media/platform/mediatek/mdp/built-in.a
AR drivers/media/platform/microchip/built-in.a
AR drivers/media/platform/mediatek/vcodec/common/built-in.a
CC drivers/input/serio/libps2.o
AR drivers/media/platform/mediatek/vcodec/encoder/built-in.a
CC drivers/usb/core/message.o
AR drivers/media/platform/mediatek/vcodec/decoder/built-in.a
AR drivers/media/platform/mediatek/vcodec/built-in.a
CC lib/base64.o
CC arch/x86/kernel/cpuid.o
AR drivers/media/platform/mediatek/vpu/built-in.a
CC lib/once.o
AR drivers/media/platform/mediatek/mdp3/built-in.a
AR drivers/media/platform/mediatek/built-in.a
AR drivers/media/platform/nuvoton/built-in.a
CC drivers/acpi/acpica/rsxface.o
AR drivers/media/platform/nvidia/tegra-vde/built-in.a
CC mm/init-mm.o
CC drivers/usb/core/driver.o
AR drivers/media/platform/nvidia/built-in.a
CC fs/nfs/nfs4super.o
AR drivers/i2c/busses/built-in.a
AR drivers/usb/class/built-in.a
AR drivers/media/platform/nxp/dw100/built-in.a
CC drivers/ata/libata-trace.o
CC drivers/i2c/i2c-core-base.o
AR drivers/media/platform/qcom/camss/built-in.a
AR drivers/media/platform/nxp/imx-jpeg/built-in.a
CC drivers/input/mouse/alps.o
AR drivers/media/platform/renesas/rcar-vin/built-in.a
AR drivers/media/platform/nxp/imx8-isi/built-in.a
AR drivers/media/platform/qcom/venus/built-in.a
AR drivers/media/platform/nxp/built-in.a
AR drivers/media/platform/qcom/built-in.a
AR drivers/media/platform/renesas/rzg2l-cru/built-in.a
CC drivers/usb/early/ehci-dbgp.o
AR drivers/media/platform/renesas/vsp1/built-in.a
CC drivers/input/mouse/byd.o
AR drivers/media/platform/renesas/built-in.a
AR drivers/media/platform/rockchip/rga/built-in.a
AR drivers/media/platform/rockchip/rkisp1/built-in.a
AR drivers/media/platform/rockchip/built-in.a
AR drivers/media/platform/samsung/exynos-gsc/built-in.a
AR drivers/media/platform/samsung/exynos4-is/built-in.a
CC drivers/input/mouse/logips2pp.o
CC drivers/net/phy/linkmode.o
CC kernel/trace/trace_dynevent.o
AR drivers/media/platform/samsung/s3c-camif/built-in.a
AR drivers/media/platform/samsung/s5p-g2d/built-in.a
AR drivers/media/platform/samsung/s5p-jpeg/built-in.a
AR drivers/media/platform/samsung/s5p-mfc/built-in.a
AR drivers/media/platform/samsung/built-in.a
CC drivers/pcmcia/cistpl.o
AR drivers/media/platform/st/sti/bdisp/built-in.a
CC net/sunrpc/svcauth_unix.o
AR drivers/media/platform/st/sti/c8sectpfe/built-in.a
CC lib/refcount.o
AR drivers/media/platform/st/sti/delta/built-in.a
AR drivers/media/platform/sunxi/sun4i-csi/built-in.a
AR drivers/media/platform/st/sti/hva/built-in.a
AR drivers/media/platform/sunxi/sun6i-csi/built-in.a
AR drivers/net/pse-pd/built-in.a
AR drivers/media/platform/st/stm32/built-in.a
CC drivers/i2c/i2c-core-smbus.o
AR drivers/media/platform/sunxi/sun6i-mipi-csi2/built-in.a
AR drivers/media/platform/st/built-in.a
AR drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/built-in.a
CC drivers/i2c/i2c-core-acpi.o
AR drivers/media/platform/sunxi/sun8i-di/built-in.a
CC fs/xattr.o
CC net/core/netprio_cgroup.o
AR drivers/media/platform/sunxi/sun8i-rotate/built-in.a
AR drivers/media/platform/sunxi/built-in.a
CC drivers/usb/host/uhci-hcd.o
AR drivers/media/platform/ti/am437x/built-in.a
CC drivers/input/mouse/lifebook.o
CC drivers/acpi/acpica/tbdata.o
CC arch/x86/kernel/early-quirks.o
CC drivers/usb/host/xhci.o
AR drivers/media/platform/ti/cal/built-in.a
AR drivers/media/platform/ti/vpe/built-in.a
AR drivers/media/platform/ti/davinci/built-in.a
AR drivers/media/platform/ti/j721e-csi2rx/built-in.a
AR drivers/media/platform/ti/omap/built-in.a
CC lib/rcuref.o
AR drivers/media/platform/ti/omap3isp/built-in.a
AR drivers/input/serio/built-in.a
AR drivers/media/platform/ti/built-in.a
CC net/core/netclassid_cgroup.o
CC drivers/rtc/proc.o
CC mm/memblock.o
AR drivers/media/platform/verisilicon/built-in.a
AR drivers/gpu/drm/solomon/built-in.a
CC mm/slub.o
AR drivers/media/platform/via/built-in.a
CC net/mac80211/link.o
CC mm/madvise.o
CC mm/page_io.o
AR drivers/media/platform/xilinx/built-in.a
AR drivers/media/platform/built-in.a
CC drivers/usb/storage/protocol.o
AR drivers/input/joystick/built-in.a
CC drivers/gpu/drm/i915/i915_sysfs.o
CC net/netfilter/xt_policy.o
AR drivers/media/pci/ttpci/built-in.a
CC lib/usercopy.o
CC fs/libfs.o
AR drivers/media/pci/b2c2/built-in.a
CC drivers/base/cacheinfo.o
AR drivers/media/pci/pluto2/built-in.a
CC drivers/base/swnode.o
AR drivers/media/pci/dm1105/built-in.a
AR drivers/input/tablet/built-in.a
AR drivers/media/pci/pt1/built-in.a
CC lib/errseq.o
AR drivers/media/pci/pt3/built-in.a
AR drivers/media/pci/mantis/built-in.a
AR drivers/media/pci/ngene/built-in.a
CC net/netfilter/xt_state.o
AR drivers/media/pci/ddbridge/built-in.a
CC [M] net/netfilter/nf_log_syslog.o
AR drivers/media/pci/saa7146/built-in.a
AR drivers/media/pci/smipcie/built-in.a
AR drivers/media/pci/netup_unidvb/built-in.a
CC [M] net/netfilter/xt_mark.o
AR drivers/media/pci/intel/ipu3/built-in.a
AR drivers/usb/early/built-in.a
CC drivers/acpi/acpica/tbfadt.o
CC drivers/net/phy/mdio_bus.o
AR drivers/media/pci/intel/ivsc/built-in.a
CC drivers/net/phy/mdio_device.o
AR drivers/media/pci/intel/built-in.a
CC kernel/trace/trace_probe.o
CC [M] net/netfilter/xt_nat.o
CC kernel/trace/trace_uprobe.o
AR drivers/media/pci/built-in.a
CC fs/nfs/nfs4file.o
CC lib/bucket_locks.o
CC kernel/trace/rethook.o
AR drivers/media/usb/b2c2/built-in.a
AR drivers/media/usb/dvb-usb/built-in.a
AR drivers/media/usb/dvb-usb-v2/built-in.a
CC drivers/rtc/sysfs.o
AR drivers/media/usb/s2255/built-in.a
AR drivers/media/usb/siano/built-in.a
CC drivers/ata/libata-sata.o
AR drivers/media/usb/ttusb-budget/built-in.a
CC net/ipv4/tcp_timer.o
AR drivers/media/usb/ttusb-dec/built-in.a
CC drivers/usb/core/config.o
AR drivers/media/usb/built-in.a
CC drivers/scsi/constants.o
AR drivers/media/mmc/siano/built-in.a
CC drivers/usb/core/file.o
AR drivers/media/mmc/built-in.a
CC drivers/rtc/rtc-mc146818-lib.o
CC arch/x86/kernel/smp.o
AR drivers/media/firewire/built-in.a
AR drivers/media/spi/built-in.a
AR drivers/media/test-drivers/built-in.a
AR drivers/media/built-in.a
CC fs/fs-writeback.o
CC drivers/acpi/acpica/tbfind.o
CC net/core/dst_cache.o
CC drivers/usb/storage/transport.o
CC net/core/gro_cells.o
CC net/core/failover.o
CC drivers/base/auxiliary.o
CC drivers/pcmcia/pcmcia_cis.o
CC drivers/rtc/rtc-cmos.o
CC drivers/input/mouse/trackpoint.o
CC net/ipv6/ping.o
CC drivers/base/devtmpfs.o
CC lib/generic-radix-tree.o
CC drivers/net/phy/swphy.o
CC drivers/gpu/drm/i915/i915_utils.o
CC drivers/scsi/scsi_lib_dma.o
CC net/sunrpc/addr.o
CC drivers/usb/storage/usb.o
CC drivers/acpi/acpica/tbinstal.o
CC net/sunrpc/rpcb_clnt.o
CC drivers/ata/libata-sff.o
CC lib/bitmap-str.o
CC drivers/i2c/i2c-smbus.o
CC lib/string_helpers.o
CC [M] net/netfilter/xt_LOG.o
CC net/ipv6/exthdrs.o
CC fs/pnode.o
CC drivers/usb/storage/initializers.o
CC [M] net/netfilter/xt_MASQUERADE.o
CC mm/swap_state.o
CC lib/hexdump.o
CC drivers/scsi/scsi_scan.o
CC net/sunrpc/timer.o
CC drivers/usb/core/buffer.o
CC drivers/acpi/acpica/tbprint.o
CC net/ipv4/tcp_ipv4.o
CC drivers/net/phy/fixed_phy.o
CC drivers/input/mouse/cypress_ps2.o
CC mm/swapfile.o
CC [M] net/netfilter/xt_addrtype.o
CC net/sunrpc/xdr.o
CC drivers/input/mouse/psmouse-smbus.o
CC net/wireless/mlme.o
CC net/wireless/ibss.o
CC drivers/net/phy/realtek.o
CC drivers/pcmcia/rsrc_mgr.o
AR net/netfilter/built-in.a
CC net/sunrpc/sunrpc_syms.o
AR net/core/built-in.a
CC drivers/usb/host/xhci-mem.o
CC net/wireless/sme.o
CC mm/swap_slots.o
CC lib/kstrtox.o
CC drivers/base/module.o
CC drivers/base/devcoredump.o
CC fs/nfs/delegation.o
AR drivers/rtc/built-in.a
CC drivers/acpi/acpica/tbutils.o
CC drivers/gpu/drm/i915/intel_clock_gating.o
AR drivers/i2c/built-in.a
CC arch/x86/kernel/smpboot.o
CC drivers/acpi/acpica/tbxface.o
CC [M] drivers/gpu/drm/scheduler/sched_main.o
CC drivers/acpi/acpica/tbxfload.o
CC drivers/gpu/drm/i915/intel_device_info.o
CC [M] drivers/gpu/drm/scheduler/sched_fence.o
CC drivers/gpu/drm/drm_aperture.o
CC [M] drivers/gpu/drm/xe/xe_bb.o
AR kernel/trace/built-in.a
CC kernel/workqueue.o
CC drivers/gpu/drm/drm_atomic.o
CC drivers/usb/storage/sierra_ms.o
CC drivers/gpu/drm/drm_atomic_uapi.o
CC drivers/usb/core/sysfs.o
CC fs/splice.o
CC drivers/base/platform-msi.o
CC lib/iomap.o
AR drivers/input/touchscreen/built-in.a
CC drivers/acpi/acpica/tbxfroot.o
CC net/sunrpc/cache.o
CC drivers/gpu/drm/drm_auth.o
CC kernel/pid.o
CC drivers/net/mdio/acpi_mdio.o
CC drivers/pcmcia/rsrc_nonstatic.o
GEN drivers/scsi/scsi_devinfo_tbl.c
CC drivers/pcmcia/yenta_socket.o
AR drivers/input/mouse/built-in.a
CC drivers/net/mdio/fwnode_mdio.o
AR drivers/input/misc/built-in.a
CC drivers/input/input.o
CC net/ipv6/datagram.o
CC [M] drivers/gpu/drm/scheduler/sched_entity.o
CC drivers/scsi/scsi_devinfo.o
CC drivers/gpu/drm/drm_blend.o
CC drivers/gpu/drm/drm_bridge.o
CC drivers/acpi/reboot.o
CC net/mac80211/rate.o
CC drivers/scsi/scsi_sysctl.o
AR drivers/net/pcs/built-in.a
CC drivers/scsi/scsi_proc.o
CC drivers/acpi/acpica/utaddress.o
CC drivers/base/physical_location.o
CC [M] drivers/gpu/drm/xe/xe_bo.o
CC net/sunrpc/rpc_pipe.o
CC fs/sync.o
CC net/ipv6/ip6_flowlabel.o
AR drivers/net/phy/built-in.a
CC drivers/usb/storage/option_ms.o
AR drivers/net/ethernet/3com/built-in.a
CC drivers/net/ethernet/8390/ne2k-pci.o
CC lib/iomap_copy.o
CC arch/x86/kernel/tsc_sync.o
CC drivers/net/ethernet/8390/8390.o
CC lib/devres.o
CC drivers/gpu/drm/i915/intel_memory_region.o
CC drivers/ata/libata-pmp.o
CC drivers/acpi/acpica/utalloc.o
CC drivers/gpu/drm/drm_cache.o
CC drivers/usb/core/endpoint.o
CC drivers/gpu/drm/drm_client.o
CC lib/check_signature.o
AR drivers/net/ethernet/adaptec/built-in.a
CC drivers/base/trace.o
CC fs/utimes.o
CC drivers/usb/host/xhci-ext-caps.o
CC drivers/gpu/drm/drm_client_modeset.o
CC fs/nfs/nfs4idmap.o
CC drivers/scsi/scsi_debugfs.o
CC fs/nfs/callback.o
AR drivers/net/mdio/built-in.a
CC drivers/scsi/scsi_trace.o
CC drivers/acpi/nvs.o
CC drivers/usb/host/xhci-ring.o
LD [M] drivers/gpu/drm/scheduler/gpu-sched.o
CC drivers/usb/core/devio.o
CC drivers/acpi/acpica/utascii.o
CC drivers/usb/core/notify.o
CC drivers/acpi/acpica/utbuffer.o
CC drivers/input/input-compat.o
AR drivers/pps/clients/built-in.a
AR drivers/pps/generators/built-in.a
CC drivers/pps/pps.o
CC lib/interval_tree.o
CC drivers/pps/kapi.o
CC arch/x86/kernel/setup_percpu.o
CC drivers/pps/sysfs.o
AR drivers/pcmcia/built-in.a
CC drivers/usb/storage/usual-tables.o
CC drivers/scsi/scsi_logging.o
CC fs/d_path.o
CC mm/dmapool.o
CC drivers/acpi/acpica/utcksum.o
CC kernel/task_work.o
CC drivers/usb/core/generic.o
CC drivers/acpi/acpica/utcopy.o
CC drivers/usb/core/quirks.o
CC lib/assoc_array.o
CC net/ipv4/tcp_minisocks.o
CC fs/nfs/callback_xdr.o
CC kernel/extable.o
CC fs/stack.o
CC net/mac80211/michael.o
AR drivers/base/built-in.a
CC drivers/gpu/drm/i915/intel_pcode.o
CC drivers/gpu/drm/i915/intel_region_ttm.o
CC net/mac80211/tkip.o
CC net/mac80211/aes_cmac.o
CC drivers/input/input-mt.o
CC drivers/acpi/wakeup.o
CC drivers/gpu/drm/drm_color_mgmt.o
CC drivers/usb/host/xhci-hub.o
CC kernel/params.o
CC net/ipv6/inet6_connection_sock.o
AR drivers/net/ethernet/8390/built-in.a
AR drivers/net/ethernet/agere/built-in.a
CC drivers/acpi/acpica/utexcep.o
CC drivers/acpi/acpica/utdebug.o
AR drivers/net/ethernet/alacritech/built-in.a
AR drivers/pps/built-in.a
AR drivers/net/ethernet/alteon/built-in.a
CC drivers/scsi/scsi_pm.o
CC kernel/kthread.o
AR drivers/usb/storage/built-in.a
CC drivers/ptp/ptp_clock.o
AR drivers/net/ethernet/amazon/built-in.a
CC drivers/ptp/ptp_chardev.o
CC drivers/ata/libata-acpi.o
AR drivers/net/ethernet/amd/built-in.a
AR drivers/net/ethernet/aquantia/built-in.a
CC arch/x86/kernel/mpparse.o
AR drivers/net/ethernet/arc/built-in.a
CC arch/x86/kernel/trace_clock.o
CC kernel/sys_ni.o
AR drivers/net/ethernet/asix/built-in.a
AR drivers/net/ethernet/atheros/built-in.a
AR drivers/net/ethernet/cadence/built-in.a
CC drivers/net/ethernet/broadcom/bnx2.o
AR drivers/net/ethernet/brocade/built-in.a
CC kernel/nsproxy.o
CC mm/hugetlb.o
CC drivers/net/ethernet/broadcom/tg3.o
CC drivers/gpu/drm/i915/intel_runtime_pm.o
CC kernel/notifier.o
CC net/ipv4/tcp_cong.o
CC arch/x86/kernel/trace.o
CC arch/x86/kernel/rethook.o
AR drivers/net/ethernet/cavium/common/built-in.a
AR drivers/net/ethernet/cavium/thunder/built-in.a
CC mm/mmu_notifier.o
CC net/wireless/chan.o
CC drivers/acpi/acpica/utdecode.o
CC lib/bitrev.o
AR drivers/net/ethernet/cavium/liquidio/built-in.a
AR drivers/net/ethernet/cavium/octeon/built-in.a
AR drivers/net/ethernet/cavium/built-in.a
AR drivers/net/ethernet/chelsio/built-in.a
CC net/ipv4/tcp_metrics.o
CC fs/nfs/callback_proc.o
CC drivers/usb/core/devices.o
CC kernel/ksysfs.o
CC drivers/power/supply/power_supply_core.o
CC drivers/hwmon/hwmon.o
CC [M] drivers/gpu/drm/xe/xe_bo_evict.o
CC drivers/input/input-poller.o
CC drivers/acpi/acpica/utdelete.o
CC net/wireless/ethtool.o
CC lib/crc-ccitt.o
CC net/mac80211/aes_gmac.o
CC drivers/gpu/drm/i915/intel_sbi.o
CC net/mac80211/fils_aead.o
CC kernel/cred.o
CC drivers/scsi/scsi_bsg.o
CC drivers/ptp/ptp_sysfs.o
CC drivers/gpu/drm/i915/intel_step.o
CC net/ipv4/tcp_fastopen.o
CC net/wireless/mesh.o
CC arch/x86/kernel/vmcore_info_32.o
CC kernel/reboot.o
CC arch/x86/kernel/machine_kexec_32.o
CC kernel/async.o
CC fs/nfs/nfs4namespace.o
CC drivers/input/ff-core.o
CC fs/nfs/nfs4getroot.o
CC lib/crc16.o
CC net/ipv6/udp_offload.o
AR drivers/thermal/broadcom/built-in.a
CC drivers/acpi/acpica/uterror.o
CC drivers/acpi/acpica/uteval.o
CC drivers/ata/libata-pata-timings.o
AR drivers/thermal/samsung/built-in.a
CC drivers/thermal/intel/intel_tcc.o
CC drivers/input/touchscreen.o
CC net/sunrpc/sysfs.o
CC drivers/thermal/intel/therm_throt.o
CC net/sunrpc/svc_xprt.o
CC drivers/input/ff-memless.o
AS arch/x86/kernel/relocate_kernel_32.o
CC drivers/gpu/drm/drm_connector.o
CC net/ipv4/tcp_rate.o
CC drivers/power/supply/power_supply_sysfs.o
CC drivers/usb/core/phy.o
CC [M] drivers/gpu/drm/xe/xe_debugfs.o
CC drivers/acpi/sleep.o
CC fs/nfs/nfs4client.o
CC drivers/usb/core/port.o
CC net/mac80211/cfg.o
HOSTCC lib/gen_crc32table
AR drivers/thermal/st/built-in.a
CC arch/x86/kernel/crash_dump_32.o
CC drivers/gpu/drm/drm_crtc.o
AR drivers/net/ethernet/cisco/built-in.a
CC drivers/acpi/acpica/utglobal.o
CC drivers/scsi/scsi_common.o
AR drivers/net/ethernet/cortina/built-in.a
CC arch/x86/kernel/crash.o
CC lib/xxhash.o
CC fs/fs_struct.o
AR drivers/hwmon/built-in.a
CC drivers/ptp/ptp_vclock.o
AR drivers/watchdog/built-in.a
CC drivers/input/sparse-keymap.o
CC drivers/md/md.o
CC drivers/acpi/acpica/uthex.o
AR drivers/net/ethernet/dec/tulip/built-in.a
AR drivers/net/ethernet/dec/built-in.a
CC drivers/gpu/drm/drm_displayid.o
CC drivers/gpu/drm/drm_drv.o
CC drivers/acpi/acpica/utids.o
CC drivers/power/supply/power_supply_leds.o
CC drivers/usb/host/xhci-dbg.o
CC arch/x86/kernel/module.o
CC net/ipv4/tcp_recovery.o
CC drivers/gpu/drm/i915/intel_uncore.o
CC drivers/acpi/acpica/utinit.o
CC net/sunrpc/xprtmultipath.o
CC fs/nfs/nfs4session.o
CC kernel/range.o
CC net/ipv4/tcp_ulp.o
CC net/mac80211/ethtool.o
CC drivers/scsi/scsi_transport_spi.o
CC drivers/ata/ahci.o
CC net/ipv4/tcp_offload.o
CC drivers/cpufreq/cpufreq.o
CC fs/nfs/dns_resolve.o
CC fs/nfs/nfs4trace.o
CC kernel/smpboot.o
CC drivers/acpi/acpica/utlock.o
CC drivers/scsi/virtio_scsi.o
CC net/ipv4/tcp_plb.o
CC [M] drivers/thermal/intel/x86_pkg_temp_thermal.o
CC lib/genalloc.o
CC drivers/power/supply/power_supply_hwmon.o
CC lib/percpu_counter.o
CC net/mac80211/rx.o
CC drivers/input/vivaldi-fmap.o
CC net/ipv6/seg6.o
CC [M] drivers/gpu/drm/xe/xe_devcoredump.o
CC drivers/cpufreq/freq_table.o
CC net/sunrpc/stats.o
CC drivers/gpu/drm/drm_dumb_buffers.o
CC net/wireless/ap.o
CC drivers/usb/host/xhci-trace.o
CC drivers/usb/core/hcd-pci.o
CC arch/x86/kernel/doublefault_32.o
CC drivers/gpu/drm/drm_edid.o
CC drivers/ptp/ptp_kvm_x86.o
CC drivers/acpi/acpica/utmath.o
CC net/ipv4/datagram.o
CC drivers/input/input-leds.o
CC drivers/cpuidle/governors/menu.o
CC drivers/input/evdev.o
AR drivers/power/supply/built-in.a
CC kernel/ucount.o
AR drivers/power/built-in.a
CC drivers/cpuidle/governors/haltpoll.o
CC drivers/acpi/acpica/utmisc.o
CC drivers/cpuidle/cpuidle.o
CC lib/audit.o
CC arch/x86/kernel/early_printk.o
CC drivers/ata/libahci.o
AR drivers/thermal/intel/built-in.a
AR drivers/thermal/qcom/built-in.a
CC drivers/acpi/acpica/utmutex.o
AR drivers/thermal/tegra/built-in.a
AR drivers/thermal/mediatek/built-in.a
CC drivers/thermal/thermal_core.o
CC drivers/gpu/drm/drm_eld.o
CC net/ipv4/raw.o
CC arch/x86/kernel/hpet.o
CC [M] drivers/gpu/drm/xe/xe_device.o
CC net/mac80211/spectmgmt.o
CC drivers/acpi/acpica/utnonansi.o
CC [M] drivers/gpu/drm/xe/xe_device_sysfs.o
CC fs/nfs/nfs4sysctl.o
CC drivers/ptp/ptp_kvm_common.o
CC kernel/regset.o
CC drivers/cpuidle/driver.o
AR drivers/mmc/built-in.a
CC drivers/usb/core/usb-acpi.o
CC drivers/cpuidle/governor.o
CC drivers/acpi/acpica/utobject.o
CC drivers/cpuidle/sysfs.o
CC net/ipv4/udp.o
CC net/wireless/trace.o
CC drivers/ata/ata_piix.o
CC mm/migrate.o
CC lib/syscall.o
CC lib/errname.o
CC net/ipv6/fib6_notifier.o
AR drivers/ufs/built-in.a
CC net/ipv6/rpl.o
CC drivers/ata/pata_amd.o
CC drivers/ata/pata_oldpiix.o
CC drivers/cpufreq/cpufreq_performance.o
CC drivers/scsi/sd.o
CC drivers/ata/pata_sch.o
CC net/ipv4/udplite.o
CC kernel/ksyms_common.o
CC drivers/acpi/device_sysfs.o
CC drivers/acpi/acpica/utosi.o
CC drivers/cpuidle/poll_state.o
CC net/ipv6/ioam6.o
AR drivers/input/built-in.a
AR drivers/cpuidle/governors/built-in.a
CC drivers/acpi/device_pm.o
CC net/ipv4/udp_offload.o
AR drivers/leds/trigger/built-in.a
AR drivers/leds/blink/built-in.a
AR drivers/leds/simple/built-in.a
CC drivers/leds/led-core.o
CC mm/page_counter.o
CC net/ipv6/sysctl_net_ipv6.o
CC drivers/scsi/sr.o
CC lib/nlattr.o
AR drivers/ptp/built-in.a
CC drivers/scsi/sr_ioctl.o
AR drivers/usb/core/built-in.a
CC fs/statfs.o
CC drivers/scsi/sr_vendor.o
CC arch/x86/kernel/amd_nb.o
CC drivers/cpufreq/cpufreq_userspace.o
CC drivers/scsi/sg.o
CC drivers/cpuidle/cpuidle-haltpoll.o
CC mm/hugetlb_cgroup.o
CC drivers/acpi/acpica/utownerid.o
CC drivers/gpu/drm/i915/intel_wakeref.o
CC drivers/acpi/acpica/utpredef.o
CC drivers/ata/pata_mpiix.o
CC drivers/gpu/drm/drm_encoder.o
CC lib/cpu_rmap.o
CC [M] drivers/gpu/drm/xe/xe_dma_buf.o
CC kernel/groups.o
CC mm/early_ioremap.o
AR drivers/net/wireless/admtek/built-in.a
CC net/ipv6/xfrm6_policy.o
AR drivers/net/wireless/ath/built-in.a
CC drivers/leds/led-class.o
CC drivers/thermal/thermal_sysfs.o
AR drivers/net/wireless/atmel/built-in.a
AR drivers/net/wireless/broadcom/built-in.a
CC net/ipv6/xfrm6_state.o
AR drivers/net/usb/built-in.a
AR drivers/net/wireless/intel/built-in.a
CC drivers/acpi/proc.o
CC mm/secretmem.o
AR drivers/net/wireless/intersil/built-in.a
CC drivers/cpufreq/cpufreq_ondemand.o
AR drivers/net/wireless/marvell/built-in.a
AR drivers/cpuidle/built-in.a
AR drivers/net/wireless/mediatek/built-in.a
CC net/mac80211/tx.o
CC drivers/leds/led-triggers.o
AR drivers/net/wireless/microchip/built-in.a
AR drivers/net/wireless/purelifi/built-in.a
CC drivers/acpi/acpica/utresdecode.o
CC drivers/usb/host/xhci-debugfs.o
AR drivers/net/wireless/quantenna/built-in.a
AR drivers/net/wireless/ralink/built-in.a
CC net/mac80211/key.o
AR drivers/net/wireless/realtek/built-in.a
AR drivers/net/wireless/rsi/built-in.a
CC net/sunrpc/sysctl.o
CC drivers/gpu/drm/i915/vlv_sideband.o
CC drivers/acpi/acpica/utresrc.o
AR drivers/net/wireless/silabs/built-in.a
AR drivers/net/wireless/st/built-in.a
CC net/wireless/ocb.o
AR drivers/net/wireless/ti/built-in.a
AR drivers/net/wireless/zydas/built-in.a
AR drivers/net/wireless/virtual/built-in.a
AR drivers/net/wireless/built-in.a
CC net/ipv4/arp.o
CC net/mac80211/util.o
CC drivers/usb/host/xhci-pci.o
CC arch/x86/kernel/kvm.o
CC fs/fs_pin.o
CC drivers/net/mii.o
CC drivers/acpi/bus.o
CC fs/nsfs.o
CC drivers/gpu/drm/i915/vlv_suspend.o
CC drivers/gpu/drm/i915/soc/intel_dram.o
CC drivers/acpi/glue.o
CC net/wireless/pmsr.o
CC drivers/net/loopback.o
CC net/ipv4/icmp.o
CC drivers/gpu/drm/drm_file.o
CC fs/fs_types.o
CC drivers/acpi/acpica/utstate.o
CC drivers/thermal/thermal_trip.o
CC drivers/ata/ata_generic.o
CC lib/dynamic_queue_limits.o
CC [M] drivers/gpu/drm/xe/xe_drm_client.o
CC kernel/kcmp.o
CC mm/hmm.o
CC drivers/gpu/drm/i915/soc/intel_gmch.o
CC drivers/gpu/drm/i915/soc/intel_pch.o
CC fs/fs_context.o
CC drivers/cpufreq/cpufreq_governor.o
CC drivers/acpi/scan.o
AR drivers/leds/built-in.a
CC drivers/acpi/mipi-disco-img.o
CC fs/fs_parser.o
AR net/sunrpc/built-in.a
CC drivers/md/md-bitmap.o
CC net/ipv6/xfrm6_input.o
AR fs/nfs/built-in.a
CC fs/fsopen.o
CC drivers/acpi/acpica/utstring.o
CC net/ipv6/xfrm6_output.o
CC drivers/acpi/acpica/utstrsuppt.o
CC drivers/thermal/thermal_helpers.o
CC drivers/md/md-autodetect.o
CC drivers/acpi/acpica/utstrtoul64.o
GEN net/wireless/shipped-certs.c
CC drivers/thermal/thermal_hwmon.o
CC net/ipv6/xfrm6_protocol.o
CC drivers/gpu/drm/i915/i915_memcpy.o
CC drivers/scsi/scsi_sysfs.o
CC net/ipv4/devinet.o
CC net/mac80211/parse.o
CC drivers/gpu/drm/i915/i915_mm.o
CC drivers/gpu/drm/i915/i915_sw_fence.o
CC drivers/md/dm.o
CC drivers/acpi/resource.o
CC net/ipv6/netfilter.o
CC drivers/thermal/gov_step_wise.o
AR drivers/ata/built-in.a
CC fs/init.o
CC drivers/cpufreq/cpufreq_governor_attr_set.o
CC drivers/acpi/acpica/utxface.o
CC kernel/freezer.o
AR drivers/firmware/arm_ffa/built-in.a
CC lib/glob.o
AR drivers/firmware/arm_scmi/built-in.a
AR drivers/firmware/broadcom/built-in.a
CC lib/strncpy_from_user.o
CC drivers/net/netconsole.o
AR drivers/firmware/cirrus/built-in.a
CC drivers/acpi/acpi_processor.o
AR drivers/crypto/stm32/built-in.a
AR drivers/firmware/meson/built-in.a
AR drivers/firmware/microchip/built-in.a
AR drivers/crypto/xilinx/built-in.a
CC kernel/profile.o
AR drivers/crypto/hisilicon/built-in.a
CC mm/memfd.o
AR drivers/firmware/imx/built-in.a
CC mm/ptdump.o
AR drivers/crypto/intel/keembay/built-in.a
AR drivers/crypto/intel/ixp4xx/built-in.a
AR drivers/crypto/intel/built-in.a
CC arch/x86/kernel/kvmclock.o
AR drivers/crypto/starfive/built-in.a
CC drivers/firmware/efi/libstub/efi-stub-helper.o
AR drivers/firmware/psci/built-in.a
AR drivers/crypto/built-in.a
CC fs/kernel_read_file.o
CC drivers/gpu/drm/i915/i915_sw_fence_work.o
CC lib/strnlen_user.o
CC drivers/firmware/efi/libstub/gop.o
CC drivers/firmware/efi/efi-bgrt.o
CC kernel/stacktrace.o
CC drivers/gpu/drm/i915/i915_syncmap.o
AR drivers/usb/host/built-in.a
AR drivers/usb/built-in.a
CC [M] drivers/gpu/drm/xe/xe_exec.o
CC drivers/thermal/gov_user_space.o
AR drivers/firmware/qcom/built-in.a
CC net/ipv6/proc.o
CC mm/execmem.o
CC drivers/acpi/acpica/utxfinit.o
CC drivers/gpu/drm/i915/i915_user_extensions.o
CC drivers/acpi/processor_core.o
CC drivers/cpufreq/acpi-cpufreq.o
CC drivers/acpi/processor_pdc.o
CC kernel/dma.o
CC lib/net_utils.o
CC net/ipv4/af_inet.o
CC drivers/acpi/ec.o
CC net/ipv4/igmp.o
CC drivers/gpu/drm/i915/i915_debugfs.o
CC drivers/clocksource/acpi_pm.o
CC net/ipv6/syncookies.o
CC drivers/hid/hid-core.o
CC drivers/md/dm-table.o
CC drivers/hid/usbhid/hid-core.o
CC drivers/hid/hid-input.o
CC drivers/acpi/acpica/utxferror.o
CC drivers/hid/hid-quirks.o
CC drivers/clocksource/i8253.o
AR drivers/thermal/built-in.a
CC net/ipv6/calipso.o
CC drivers/hid/usbhid/hiddev.o
CC drivers/hid/hid-debug.o
CC net/mac80211/wme.o
CC arch/x86/kernel/paravirt.o
CC kernel/smp.o
AR drivers/scsi/built-in.a
CC fs/mnt_idmapping.o
CC kernel/uid16.o
CC drivers/gpu/drm/i915/i915_debugfs_params.o
CC drivers/acpi/dock.o
CC kernel/kallsyms.o
CC drivers/net/virtio_net.o
AR mm/built-in.a
CC drivers/hid/usbhid/hid-pidff.o
CC drivers/firmware/efi/libstub/secureboot.o
AR drivers/platform/x86/amd/built-in.a
CC drivers/mailbox/mailbox.o
CC drivers/mailbox/pcc.o
AR drivers/platform/x86/intel/built-in.a
AR drivers/platform/surface/built-in.a
CC drivers/platform/x86/wmi.o
CC drivers/acpi/pci_root.o
CC drivers/firmware/efi/libstub/tpm.o
CC drivers/acpi/acpica/utxfmutex.o
CC [M] drivers/gpu/drm/xe/xe_execlist.o
CC net/ipv6/ah6.o
CC net/ipv6/esp6.o
CC lib/sg_pool.o
CC drivers/cpufreq/amd-pstate.o
CC drivers/gpu/drm/i915/i915_pmu.o
AR drivers/clocksource/built-in.a
AR drivers/perf/built-in.a
AR drivers/hwtracing/intel_th/built-in.a
AR drivers/android/built-in.a
AR drivers/nvmem/layouts/built-in.a
CC drivers/nvmem/core.o
CC fs/remap_range.o
CC net/mac80211/chan.o
CC drivers/gpu/drm/drm_fourcc.o
AR drivers/acpi/acpica/built-in.a
CC drivers/gpu/drm/i915/gt/gen2_engine_cs.o
CC drivers/cpufreq/amd-pstate-trace.o
CC drivers/gpu/drm/drm_framebuffer.o
CC lib/stackdepot.o
CC arch/x86/kernel/pvclock.o
CC drivers/firmware/efi/libstub/file.o
AR drivers/mailbox/built-in.a
CC drivers/md/dm-target.o
CC arch/x86/kernel/pcspeaker.o
CC net/mac80211/trace.o
CC kernel/acct.o
CC drivers/platform/x86/wmi-bmof.o
CC lib/asn1_decoder.o
GEN lib/oid_registry_data.c
CC drivers/cpufreq/intel_pstate.o
CC drivers/platform/x86/eeepc-laptop.o
CC drivers/hid/hidraw.o
CC kernel/vmcore_info.o
CC drivers/md/dm-linear.o
CC kernel/elfcorehdr.o
CC net/wireless/shipped-certs.o
CC net/ipv6/sit.o
CC drivers/acpi/pci_link.o
CC drivers/acpi/pci_irq.o
CC kernel/crash_reserve.o
CC drivers/acpi/acpi_apd.o
CC net/mac80211/mlme.o
CC arch/x86/kernel/check.o
AR drivers/hid/usbhid/built-in.a
CC [M] drivers/gpu/drm/xe/xe_exec_queue.o
CC drivers/md/dm-stripe.o
CC drivers/acpi/acpi_platform.o
CC net/mac80211/tdls.o
CC arch/x86/kernel/uprobes.o
CC drivers/net/net_failover.o
CC drivers/md/dm-ioctl.o
CC net/ipv6/addrconf_core.o
CC drivers/hid/hid-generic.o
CC drivers/firmware/efi/libstub/mem.o
CC lib/ucs2_string.o
CC drivers/md/dm-io.o
CC kernel/kexec_core.o
CC fs/pidfs.o
CC drivers/platform/x86/p2sb.o
CC [M] drivers/gpu/drm/xe/xe_force_wake.o
CC net/ipv6/exthdrs_core.o
AR drivers/nvmem/built-in.a
CC net/ipv4/fib_frontend.o
CC drivers/acpi/acpi_pnp.o
CC drivers/gpu/drm/i915/gt/gen6_engine_cs.o
CC net/mac80211/ocb.o
CC drivers/md/dm-kcopyd.o
CC drivers/gpu/drm/i915/gt/gen6_ppgtt.o
CC drivers/md/dm-sysfs.o
CC net/ipv4/fib_semantics.o
CC drivers/gpu/drm/i915/gt/gen7_renderclear.o
CC arch/x86/kernel/perf_regs.o
CC net/mac80211/airtime.o
CC fs/buffer.o
CC drivers/gpu/drm/i915/gt/gen8_engine_cs.o
CC fs/mpage.o
CC drivers/gpu/drm/drm_gem.o
CC kernel/crash_core.o
CC drivers/hid/hid-a4tech.o
CC lib/sbitmap.o
AR drivers/net/ethernet/broadcom/built-in.a
CC net/ipv6/ip6_checksum.o
AR drivers/net/ethernet/dlink/built-in.a
AR drivers/net/ethernet/emulex/built-in.a
AR drivers/net/ethernet/engleder/built-in.a
CC drivers/acpi/power.o
AR drivers/net/ethernet/ezchip/built-in.a
AR drivers/net/ethernet/fujitsu/built-in.a
AR drivers/net/ethernet/fungible/built-in.a
CC kernel/kexec.o
AR drivers/net/ethernet/google/built-in.a
AR drivers/net/ethernet/huawei/built-in.a
CC drivers/md/dm-stats.o
CC net/mac80211/eht.o
CC net/ipv6/ip6_icmp.o
CC drivers/net/ethernet/intel/e1000/e1000_main.o
CC net/ipv6/output_core.o
CC drivers/firmware/efi/libstub/random.o
CC drivers/net/ethernet/intel/e1000/e1000_hw.o
CC drivers/firmware/efi/libstub/randomalloc.o
CC drivers/hid/hid-apple.o
AR drivers/platform/x86/built-in.a
AR drivers/platform/built-in.a
CC drivers/net/ethernet/intel/e1000e/82571.o
CC net/mac80211/led.o
CC [M] drivers/gpu/drm/xe/xe_ggtt.o
CC arch/x86/kernel/tracepoint.o
CC net/mac80211/pm.o
CC net/mac80211/rc80211_minstrel_ht.o
CC drivers/md/dm-rq.o
CC drivers/gpu/drm/i915/gt/gen8_ppgtt.o
CC fs/proc_namespace.o
CC net/ipv6/protocol.o
CC drivers/net/ethernet/intel/e1000e/ich8lan.o
CC drivers/acpi/event.o
CC lib/group_cpus.o
CC lib/fw_table.o
CC drivers/net/ethernet/intel/e100.o
CC kernel/utsname.o
CC drivers/net/ethernet/intel/e1000/e1000_ethtool.o
CC drivers/md/dm-io-rewind.o
AR drivers/net/ethernet/i825xx/built-in.a
CC drivers/firmware/efi/libstub/pci.o
CC drivers/gpu/drm/i915/gt/intel_breadcrumbs.o
CC drivers/gpu/drm/i915/gt/intel_context.o
CC drivers/hid/hid-belkin.o
CC drivers/md/dm-builtin.o
CC arch/x86/kernel/itmt.o
AR drivers/cpufreq/built-in.a
CC drivers/md/dm-raid1.o
AR drivers/firmware/smccc/built-in.a
CC drivers/net/ethernet/intel/e1000e/80003es2lan.o
CC kernel/pid_namespace.o
CC drivers/hid/hid-cherry.o
CC net/mac80211/wbrf.o
CC drivers/firmware/efi/efi.o
CC drivers/md/dm-log.o
CC [M] drivers/gpu/drm/xe/xe_gpu_scheduler.o
HOSTCC drivers/gpu/drm/xe/xe_gen_wa_oob
CC drivers/gpu/drm/i915/gt/intel_context_sseu.o
CC drivers/acpi/evged.o
CC drivers/net/ethernet/intel/e1000e/mac.o
CC drivers/acpi/sysfs.o
CC drivers/hid/hid-chicony.o
AR lib/lib.a
GEN lib/crc32table.h
CC lib/oid_registry.o
CC [M] drivers/gpu/drm/xe/xe_gsc_proxy.o
CC fs/direct-io.o
CC fs/eventpoll.o
CC drivers/firmware/efi/libstub/skip_spaces.o
CC drivers/firmware/efi/libstub/lib-cmdline.o
CC arch/x86/kernel/umip.o
CC [M] drivers/gpu/drm/xe/xe_gsc_submit.o
CC drivers/firmware/efi/libstub/lib-ctype.o
CC drivers/net/ethernet/intel/e1000e/manage.o
CC drivers/firmware/efi/libstub/alignedmem.o
CC drivers/gpu/drm/i915/gt/intel_engine_cs.o
CC fs/anon_inodes.o
CC arch/x86/kernel/unwind_frame.o
CC net/ipv6/ip6_offload.o
CC drivers/acpi/property.o
CC [M] drivers/gpu/drm/xe/xe_gt.o
CC drivers/gpu/drm/drm_ioctl.o
CC [M] drivers/gpu/drm/xe/xe_gt_ccs_mode.o
CC drivers/gpu/drm/i915/gt/intel_engine_heartbeat.o
CC lib/crc32.o
CC drivers/gpu/drm/drm_lease.o
AR drivers/net/ethernet/microsoft/built-in.a
AR drivers/net/ethernet/litex/built-in.a
AR drivers/net/ethernet/marvell/octeon_ep/built-in.a
AR drivers/net/ethernet/marvell/octeon_ep_vf/built-in.a
AR drivers/net/ethernet/marvell/octeontx2/built-in.a
AR drivers/net/ethernet/marvell/prestera/built-in.a
CC drivers/net/ethernet/marvell/sky2.o
AR drivers/net/ethernet/mellanox/built-in.a
CC kernel/stop_machine.o
AR drivers/net/ethernet/micrel/built-in.a
CC drivers/firmware/efi/vars.o
AR drivers/firmware/tegra/built-in.a
AR drivers/net/ethernet/microchip/built-in.a
CC drivers/firmware/dmi_scan.o
AR drivers/firmware/xilinx/built-in.a
CC drivers/firmware/efi/reboot.o
CC net/ipv4/fib_trie.o
CC drivers/net/ethernet/intel/e1000e/nvm.o
CC drivers/hid/hid-cypress.o
CC drivers/hid/hid-ezkey.o
CC drivers/firmware/dmi-id.o
CC drivers/gpu/drm/i915/gt/intel_engine_pm.o
CC drivers/acpi/debugfs.o
CC kernel/audit.o
CC drivers/gpu/drm/drm_managed.o
CC fs/signalfd.o
AR drivers/net/ethernet/mscc/built-in.a
CC drivers/firmware/efi/libstub/relocate.o
CC fs/timerfd.o
CC fs/eventfd.o
CC drivers/hid/hid-gyration.o
CC drivers/md/dm-region-hash.o
CC drivers/firmware/efi/memattr.o
CC drivers/acpi/acpi_lpat.o
CC drivers/acpi/acpi_pcc.o
AR lib/built-in.a
CC drivers/net/ethernet/intel/e1000/e1000_param.o
CC drivers/md/dm-zero.o
CC fs/aio.o
AR arch/x86/kernel/built-in.a
AR arch/x86/built-in.a
CC [M] drivers/gpu/drm/xe/xe_gt_clock.o
CC net/ipv4/fib_notifier.o
CC drivers/firmware/efi/tpm.o
CC drivers/net/ethernet/intel/e1000e/phy.o
CC drivers/gpu/drm/drm_mm.o
CC drivers/acpi/ac.o
CC [M] drivers/gpu/drm/xe/xe_gt_debugfs.o
CC drivers/gpu/drm/drm_mode_config.o
CC [M] drivers/gpu/drm/xe/xe_gt_freq.o
CC net/ipv6/tcpv6_offload.o
CC drivers/gpu/drm/i915/gt/intel_engine_user.o
CC drivers/firmware/efi/memmap.o
AR drivers/net/ethernet/myricom/built-in.a
AR drivers/net/ethernet/natsemi/built-in.a
AR drivers/net/ethernet/neterion/built-in.a
AR drivers/net/ethernet/netronome/built-in.a
AR drivers/net/ethernet/ni/built-in.a
CC drivers/net/ethernet/nvidia/forcedeth.o
CC [M] drivers/gpu/drm/xe/xe_gt_idle.o
AR drivers/net/ethernet/oki-semi/built-in.a
CC [M] drivers/gpu/drm/xe/xe_gt_mcr.o
CC drivers/gpu/drm/drm_mode_object.o
CC drivers/gpu/drm/i915/gt/intel_execlists_submission.o
CC drivers/acpi/button.o
CC drivers/firmware/efi/capsule.o
CC kernel/auditfilter.o
CC drivers/firmware/efi/libstub/printk.o
CC drivers/firmware/memmap.o
CC drivers/firmware/efi/esrt.o
AR drivers/net/ethernet/packetengines/built-in.a
CC drivers/firmware/efi/libstub/vsprintf.o
CC drivers/net/ethernet/intel/e1000e/param.o
AR drivers/net/ethernet/qlogic/built-in.a
CC drivers/net/ethernet/intel/e1000e/ethtool.o
CC drivers/gpu/drm/i915/gt/intel_ggtt.o
CC drivers/firmware/efi/libstub/x86-stub.o
CC drivers/hid/hid-ite.o
CC drivers/acpi/fan_core.o
CC fs/locks.o
AR drivers/net/ethernet/qualcomm/emac/built-in.a
AR drivers/net/ethernet/qualcomm/built-in.a
CC net/ipv6/exthdrs_offload.o
CC drivers/acpi/fan_attr.o
CC fs/binfmt_misc.o
CC [M] drivers/gpu/drm/xe/xe_gt_pagefault.o
CC drivers/firmware/efi/runtime-wrappers.o
CC drivers/hid/hid-kensington.o
CC net/ipv6/inet6_hashtables.o
CC net/ipv4/inet_fragment.o
AR drivers/md/built-in.a
CC net/ipv4/ping.o
CC drivers/net/ethernet/intel/e1000e/netdev.o
CC [M] drivers/gpu/drm/xe/xe_gt_sysfs.o
CC [M] drivers/gpu/drm/xe/xe_gt_throttle.o
CC drivers/acpi/acpi_video.o
CC drivers/net/ethernet/intel/e1000e/ptp.o
CC drivers/gpu/drm/drm_modes.o
AR drivers/net/ethernet/intel/e1000/built-in.a
CC net/ipv4/ip_tunnel_core.o
CC fs/binfmt_script.o
CC net/ipv6/mcast_snoop.o
STUBCPY drivers/firmware/efi/libstub/alignedmem.stub.o
CC [M] drivers/gpu/drm/xe/xe_gt_tlb_invalidation.o
STUBCPY drivers/firmware/efi/libstub/efi-stub-helper.stub.o
STUBCPY drivers/firmware/efi/libstub/file.stub.o
CC [M] drivers/gpu/drm/xe/xe_gt_topology.o
CC drivers/firmware/efi/capsule-loader.o
STUBCPY drivers/firmware/efi/libstub/gop.stub.o
CC drivers/gpu/drm/i915/gt/intel_ggtt_fencing.o
CC drivers/gpu/drm/i915/gt/intel_gt.o
CC drivers/acpi/video_detect.o
CC drivers/gpu/drm/drm_modeset_lock.o
CC drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.o
STUBCPY drivers/firmware/efi/libstub/lib-cmdline.stub.o
STUBCPY drivers/firmware/efi/libstub/lib-ctype.stub.o
CC fs/binfmt_elf.o
CC drivers/gpu/drm/drm_plane.o
STUBCPY drivers/firmware/efi/libstub/mem.stub.o
STUBCPY drivers/firmware/efi/libstub/pci.stub.o
STUBCPY drivers/firmware/efi/libstub/printk.stub.o
CC drivers/firmware/efi/earlycon.o
STUBCPY drivers/firmware/efi/libstub/random.stub.o
STUBCPY drivers/firmware/efi/libstub/randomalloc.stub.o
CC drivers/gpu/drm/i915/gt/intel_gt_ccs_mode.o
STUBCPY drivers/firmware/efi/libstub/relocate.stub.o
STUBCPY drivers/firmware/efi/libstub/secureboot.stub.o
STUBCPY drivers/firmware/efi/libstub/skip_spaces.stub.o
STUBCPY drivers/firmware/efi/libstub/tpm.stub.o
STUBCPY drivers/firmware/efi/libstub/vsprintf.stub.o
CC drivers/gpu/drm/i915/gt/intel_gt_clock_utils.o
CC kernel/auditsc.o
CC fs/mbcache.o
CC drivers/hid/hid-lg.o
STUBCPY drivers/firmware/efi/libstub/x86-stub.stub.o
AR drivers/firmware/efi/libstub/lib.a
CC drivers/gpu/drm/i915/gt/intel_gt_debugfs.o
CC drivers/acpi/processor_driver.o
CC drivers/acpi/processor_thermal.o
CC drivers/net/ethernet/realtek/8139too.o
GEN xe_wa_oob.c xe_wa_oob.h
CC drivers/net/ethernet/realtek/r8169_main.o
CC drivers/acpi/processor_idle.o
CC [M] drivers/gpu/drm/xe/xe_guc_ct.o
CC drivers/net/ethernet/realtek/r8169_firmware.o
CC drivers/acpi/processor_throttling.o
CC [M] drivers/gpu/drm/xe/xe_guc_db_mgr.o
CC net/ipv4/gre_offload.o
CC net/ipv4/metrics.o
CC net/ipv4/netlink.o
CC kernel/audit_watch.o
CC drivers/gpu/drm/drm_prime.o
CC [M] drivers/gpu/drm/xe/xe_guc_debugfs.o
AR drivers/net/ethernet/renesas/built-in.a
AR drivers/net/ethernet/rdc/built-in.a
AR drivers/net/ethernet/rocker/built-in.a
AR drivers/net/ethernet/samsung/built-in.a
AR drivers/net/ethernet/seeq/built-in.a
AR drivers/firmware/efi/built-in.a
AR drivers/net/ethernet/silan/built-in.a
AR drivers/firmware/built-in.a
CC drivers/net/ethernet/realtek/r8169_phy_config.o
AR drivers/net/ethernet/sis/built-in.a
CC drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.o
AR drivers/net/ethernet/sfc/built-in.a
CC net/ipv4/nexthop.o
AR drivers/net/ethernet/smsc/built-in.a
CC net/ipv4/udp_tunnel_stub.o
AR drivers/net/ethernet/socionext/built-in.a
AR net/wireless/built-in.a
CC [M] drivers/gpu/drm/xe/xe_guc_hwconfig.o
AR drivers/net/ethernet/stmicro/built-in.a
CC [M] drivers/gpu/drm/xe/xe_guc_id_mgr.o
CC fs/posix_acl.o
CC kernel/audit_fsnotify.o
CC drivers/acpi/processor_perflib.o
CC drivers/hid/hid-lgff.o
CC [M] drivers/gpu/drm/xe/xe_guc_klv_helpers.o
AR net/ipv6/built-in.a
AR drivers/net/ethernet/sun/built-in.a
AR drivers/net/ethernet/tehuti/built-in.a
AR drivers/net/ethernet/ti/built-in.a
AR drivers/net/ethernet/vertexcom/built-in.a
CC drivers/acpi/container.o
AR drivers/net/ethernet/via/built-in.a
CC net/ipv4/ip_tunnel.o
AR drivers/net/ethernet/marvell/built-in.a
CC drivers/gpu/drm/i915/gt/intel_gt_irq.o
AR drivers/net/ethernet/wangxun/built-in.a
CC drivers/gpu/drm/i915/gt/intel_gt_mcr.o
AR drivers/net/ethernet/wiznet/built-in.a
CC drivers/gpu/drm/i915/gt/intel_gt_pm.o
CC drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.o
CC drivers/gpu/drm/i915/gt/intel_gt_pm_irq.o
CC fs/coredump.o
CC drivers/gpu/drm/drm_print.o
CC drivers/hid/hid-lg4ff.o
CC drivers/gpu/drm/drm_property.o
CC drivers/acpi/thermal_lib.o
CC drivers/gpu/drm/i915/gt/intel_gt_requests.o
CC net/ipv4/sysctl_net_ipv4.o
CC net/ipv4/proc.o
CC drivers/gpu/drm/drm_syncobj.o
CC drivers/hid/hid-lg-g15.o
CC drivers/gpu/drm/i915/gt/intel_gt_sysfs.o
AR drivers/net/ethernet/xilinx/built-in.a
AR drivers/net/ethernet/xircom/built-in.a
AR drivers/net/ethernet/synopsys/built-in.a
AR drivers/net/ethernet/pensando/built-in.a
CC drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.o
CC [M] drivers/gpu/drm/xe/xe_guc_log.o
CC [M] drivers/gpu/drm/xe/xe_guc_pc.o
CC kernel/audit_tree.o
CC drivers/acpi/thermal.o
CC fs/drop_caches.o
CC drivers/gpu/drm/i915/gt/intel_gtt.o
CC drivers/gpu/drm/drm_sysfs.o
CC kernel/kprobes.o
CC fs/sysctls.o
CC kernel/seccomp.o
CC drivers/hid/hid-microsoft.o
CC [M] drivers/gpu/drm/xe/xe_guc_submit.o
CC net/ipv4/fib_rules.o
CC [M] drivers/gpu/drm/xe/xe_heci_gsc.o
CC [M] drivers/gpu/drm/xe/xe_hw_engine.o
CC kernel/relay.o
CC net/ipv4/ipmr.o
CC net/ipv4/ipmr_base.o
CC drivers/gpu/drm/drm_trace_points.o
CC drivers/gpu/drm/drm_vblank.o
CC kernel/utsname_sysctl.o
CC drivers/gpu/drm/drm_vblank_work.o
CC drivers/gpu/drm/drm_vma_manager.o
AR drivers/net/ethernet/nvidia/built-in.a
CC drivers/gpu/drm/drm_writeback.o
CC net/ipv4/syncookies.o
CC net/ipv4/tunnel4.o
CC kernel/delayacct.o
CC [M] drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.o
CC kernel/taskstats.o
CC drivers/gpu/drm/i915/gt/intel_llc.o
CC drivers/acpi/nhlt.o
In file included from /workspace/kernel/include/linux/device.h:15,
from /workspace/kernel/include/drm/drm_print.h:31,
from /workspace/kernel/include/drm/drm_mm.h:51,
from /workspace/kernel/drivers/gpu/drm/xe/xe_bo_types.h:11,
from /workspace/kernel/drivers/gpu/drm/xe/xe_bo.h:11,
from /workspace/kernel/drivers/gpu/drm/xe/xe_guc_log.c:11:
/workspace/kernel/drivers/gpu/drm/xe/xe_guc_log.c: In function ‘xe_hexdump_blob’:
/workspace/kernel/include/drm/drm_print.h:534:47: error: format ‘%lX’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘size_t’ {aka ‘unsigned int’} [-Werror=format=]
534 | dev_##level##type((drm) ? (drm)->dev : NULL, "[drm] " fmt, ##__VA_ARGS__)
| ^~~~~~~~
/workspace/kernel/include/linux/dev_printk.h:110:16: note: in definition of macro ‘dev_printk_index_wrap’
110 | _p_func(dev, fmt, ##__VA_ARGS__); \
| ^~~
/workspace/kernel/include/linux/dev_printk.h:154:49: note: in expansion of macro ‘dev_fmt’
154 | dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~
/workspace/kernel/include/drm/drm_print.h:534:2: note: in expansion of macro ‘dev_err’
534 | dev_##level##type((drm) ? (drm)->dev : NULL, "[drm] " fmt, ##__VA_ARGS__)
| ^~~~
/workspace/kernel/include/drm/drm_print.h:547:2: note: in expansion of macro ‘__drm_printk’
547 | __drm_printk((drm), err,, "*ERROR* " fmt, ##__VA_ARGS__)
| ^~~~~~~~~~~~
/workspace/kernel/drivers/gpu/drm/xe/xe_guc_log.c:77:3: note: in expansion of macro ‘drm_err’
77 | drm_err(&xe->drm, "Invalid size for hexdump: 0x%lX vs 0x%lX (%d * %ld) -> 0x%X\n",
| ^~~~~~~
/workspace/kernel/drivers/gpu/drm/xe/xe_guc_log.c:77:52: note: format string is defined here
77 | drm_err(&xe->drm, "Invalid size for hexdump: 0x%lX vs 0x%lX (%d * %ld) -> 0x%X\n",
| ~~^
| |
| long unsigned int
| %X
In file included from /workspace/kernel/include/linux/device.h:15,
from /workspace/kernel/include/drm/drm_print.h:31,
from /workspace/kernel/include/drm/drm_mm.h:51,
from /workspace/kernel/drivers/gpu/drm/xe/xe_bo_types.h:11,
from /workspace/kernel/drivers/gpu/drm/xe/xe_bo.h:11,
from /workspace/kernel/drivers/gpu/drm/xe/xe_guc_log.c:11:
/workspace/kernel/include/drm/drm_print.h:534:47: error: format ‘%lX’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘unsigned int’ [-Werror=format=]
534 | dev_##level##type((drm) ? (drm)->dev : NULL, "[drm] " fmt, ##__VA_ARGS__)
| ^~~~~~~~
/workspace/kernel/include/linux/dev_printk.h:110:16: note: in definition of macro ‘dev_printk_index_wrap’
110 | _p_func(dev, fmt, ##__VA_ARGS__); \
| ^~~
/workspace/kernel/include/linux/dev_printk.h:154:49: note: in expansion of macro ‘dev_fmt’
154 | dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~
/workspace/kernel/include/drm/drm_print.h:534:2: note: in expansion of macro ‘dev_err’
534 | dev_##level##type((drm) ? (drm)->dev : NULL, "[drm] " fmt, ##__VA_ARGS__)
| ^~~~
/workspace/kernel/include/drm/drm_print.h:547:2: note: in expansion of macro ‘__drm_printk’
547 | __drm_printk((drm), err,, "*ERROR* " fmt, ##__VA_ARGS__)
| ^~~~~~~~~~~~
/workspace/kernel/drivers/gpu/drm/xe/xe_guc_log.c:77:3: note: in expansion of macro ‘drm_err’
77 | drm_err(&xe->drm, "Invalid size for hexdump: 0x%lX vs 0x%lX (%d * %ld) -> 0x%X\n",
| ^~~~~~~
/workspace/kernel/drivers/gpu/drm/xe/xe_guc_log.c:77:61: note: format string is defined here
77 | drm_err(&xe->drm, "Invalid size for hexdump: 0x%lX vs 0x%lX (%d * %ld) -> 0x%X\n",
| ~~^
| |
| long unsigned int
| %X
In file included from /workspace/kernel/include/linux/device.h:15,
from /workspace/kernel/include/drm/drm_print.h:31,
from /workspace/kernel/include/drm/drm_mm.h:51,
from /workspace/kernel/drivers/gpu/drm/xe/xe_bo_types.h:11,
from /workspace/kernel/drivers/gpu/drm/xe/xe_bo.h:11,
from /workspace/kernel/drivers/gpu/drm/xe/xe_guc_log.c:11:
/workspace/kernel/include/drm/drm_print.h:534:47: error: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘unsigned int’ [-Werror=format=]
534 | dev_##level##type((drm) ? (drm)->dev : NULL, "[drm] " fmt, ##__VA_ARGS__)
| ^~~~~~~~
/workspace/kernel/include/linux/dev_printk.h:110:16: note: in definition of macro ‘dev_printk_index_wrap’
110 | _p_func(dev, fmt, ##__VA_ARGS__); \
| ^~~
/workspace/kernel/include/linux/dev_printk.h:154:49: note: in expansion of macro ‘dev_fmt’
154 | dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~
/workspace/kernel/include/drm/drm_print.h:534:2: note: in expansion of macro ‘dev_err’
534 | dev_##level##type((drm) ? (drm)->dev : NULL, "[drm] " fmt, ##__VA_ARGS__)
| ^~~~
/workspace/kernel/include/drm/drm_print.h:547:2: note: in expansion of macro ‘__drm_printk’
547 | __drm_printk((drm), err,, "*ERROR* " fmt, ##__VA_ARGS__)
| ^~~~~~~~~~~~
/workspace/kernel/drivers/gpu/drm/xe/xe_guc_log.c:77:3: note: in expansion of macro ‘drm_err’
77 | drm_err(&xe->drm, "Invalid size for hexdump: 0x%lX vs 0x%lX (%d * %ld) -> 0x%X\n",
| ^~~~~~~
/workspace/kernel/drivers/gpu/drm/xe/xe_guc_log.c:77:71: note: format string is defined here
77 | drm_err(&xe->drm, "Invalid size for hexdump: 0x%lX vs 0x%lX (%d * %ld) -> 0x%X\n",
| ~~^
| |
| long int
| %d
CC drivers/gpu/drm/drm_panel.o
CC fs/fhandle.o
CC drivers/gpu/drm/i915/gt/intel_lrc.o
CC drivers/gpu/drm/i915/gt/intel_migrate.o
CC drivers/hid/hid-monterey.o
cc1: all warnings being treated as errors
make[6]: *** [/workspace/kernel/scripts/Makefile.build:244: drivers/gpu/drm/xe/xe_guc_log.o] Error 1
make[6]: *** Waiting for unfinished jobs....
CC drivers/gpu/drm/drm_pci.o
CC net/ipv4/ipconfig.o
CC drivers/acpi/acpi_memhotplug.o
CC drivers/gpu/drm/i915/gt/intel_mocs.o
CC drivers/hid/hid-ntrig.o
CC drivers/gpu/drm/i915/gt/intel_ppgtt.o
CC drivers/gpu/drm/i915/gt/intel_rc6.o
CC drivers/gpu/drm/i915/gt/intel_region_lmem.o
CC drivers/gpu/drm/drm_debugfs.o
CC drivers/gpu/drm/i915/gt/intel_renderstate.o
CC drivers/hid/hid-pl.o
CC net/ipv4/netfilter.o
CC kernel/tsacct.o
CC kernel/tracepoint.o
CC net/ipv4/tcp_cubic.o
CC drivers/gpu/drm/drm_debugfs_crc.o
CC drivers/gpu/drm/i915/gt/intel_reset.o
CC kernel/irq_work.o
CC drivers/acpi/ioapic.o
CC drivers/gpu/drm/drm_panel_orientation_quirks.o
CC drivers/hid/hid-petalynx.o
CC drivers/gpu/drm/i915/gt/intel_ring.o
CC net/ipv4/tcp_sigpool.o
CC drivers/acpi/battery.o
CC drivers/acpi/bgrt.o
AR net/mac80211/built-in.a
CC drivers/acpi/spcr.o
CC net/ipv4/cipso_ipv4.o
CC drivers/gpu/drm/i915/gt/intel_ring_submission.o
CC drivers/gpu/drm/drm_buddy.o
CC drivers/gpu/drm/i915/gt/intel_rps.o
CC drivers/gpu/drm/drm_gem_shmem_helper.o
CC drivers/gpu/drm/drm_atomic_helper.o
CC net/ipv4/xfrm4_policy.o
AR fs/built-in.a
CC drivers/hid/hid-redragon.o
CC drivers/hid/hid-samsung.o
CC net/ipv4/xfrm4_state.o
CC kernel/static_call.o
CC net/ipv4/xfrm4_input.o
CC drivers/gpu/drm/i915/gt/intel_sa_media.o
AR drivers/net/ethernet/realtek/built-in.a
CC drivers/hid/hid-sony.o
CC drivers/gpu/drm/i915/gt/intel_sseu.o
CC drivers/gpu/drm/i915/gt/intel_sseu_debugfs.o
CC kernel/padata.o
CC drivers/gpu/drm/drm_atomic_state_helper.o
CC net/ipv4/xfrm4_output.o
CC drivers/gpu/drm/drm_bridge_connector.o
CC drivers/gpu/drm/drm_crtc_helper.o
CC drivers/gpu/drm/drm_damage_helper.o
CC net/ipv4/xfrm4_protocol.o
CC kernel/jump_label.o
CC kernel/context_tracking.o
CC drivers/hid/hid-sunplus.o
CC drivers/gpu/drm/i915/gt/intel_timeline.o
CC kernel/iomem.o
CC drivers/gpu/drm/drm_encoder_slave.o
CC kernel/rseq.o
CC drivers/gpu/drm/i915/gt/intel_tlb.o
AR drivers/net/ethernet/intel/e1000e/built-in.a
AR drivers/net/ethernet/intel/built-in.a
AR drivers/net/ethernet/built-in.a
CC drivers/hid/hid-topseed.o
CC drivers/gpu/drm/i915/gt/intel_wopcm.o
CC drivers/gpu/drm/i915/gt/intel_workarounds.o
CC drivers/gpu/drm/drm_flip_work.o
CC drivers/gpu/drm/i915/gt/shmem_utils.o
CC drivers/gpu/drm/i915/gt/sysfs_engines.o
AR drivers/net/built-in.a
CC drivers/gpu/drm/i915/gt/intel_ggtt_gmch.o
CC drivers/gpu/drm/i915/gt/gen6_renderstate.o
CC drivers/gpu/drm/i915/gt/gen7_renderstate.o
make[5]: *** [/workspace/kernel/scripts/Makefile.build:485: drivers/gpu/drm/xe] Error 2
make[5]: *** Waiting for unfinished jobs....
CC drivers/gpu/drm/i915/gt/gen8_renderstate.o
CC drivers/gpu/drm/i915/gt/gen9_renderstate.o
CC drivers/gpu/drm/i915/gem/i915_gem_busy.o
AR drivers/acpi/built-in.a
CC drivers/gpu/drm/i915/gem/i915_gem_clflush.o
CC drivers/gpu/drm/i915/gem/i915_gem_context.o
CC drivers/gpu/drm/i915/gem/i915_gem_create.o
CC drivers/gpu/drm/i915/gem/i915_gem_dmabuf.o
CC drivers/gpu/drm/i915/gem/i915_gem_domain.o
CC drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o
CC drivers/gpu/drm/i915/gem/i915_gem_internal.o
CC drivers/gpu/drm/i915/gem/i915_gem_lmem.o
CC drivers/gpu/drm/i915/gem/i915_gem_mman.o
CC drivers/gpu/drm/i915/gem/i915_gem_object.o
CC drivers/gpu/drm/i915/gem/i915_gem_pages.o
CC drivers/gpu/drm/i915/gem/i915_gem_phys.o
CC drivers/gpu/drm/i915/gem/i915_gem_pm.o
CC drivers/gpu/drm/i915/gem/i915_gem_region.o
CC drivers/gpu/drm/i915/gem/i915_gem_shmem.o
CC drivers/gpu/drm/i915/gem/i915_gem_shrinker.o
CC drivers/gpu/drm/i915/gem/i915_gem_stolen.o
CC drivers/gpu/drm/i915/gem/i915_gem_throttle.o
CC drivers/gpu/drm/i915/gem/i915_gem_tiling.o
CC drivers/gpu/drm/i915/gem/i915_gem_ttm.o
CC drivers/gpu/drm/i915/gem/i915_gem_ttm_move.o
CC drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.o
CC drivers/gpu/drm/i915/gem/i915_gem_userptr.o
CC drivers/gpu/drm/i915/gem/i915_gem_wait.o
CC drivers/gpu/drm/i915/gem/i915_gemfs.o
CC drivers/gpu/drm/i915/i915_active.o
CC drivers/gpu/drm/i915/i915_cmd_parser.o
CC drivers/gpu/drm/i915/i915_deps.o
CC drivers/gpu/drm/i915/i915_gem.o
AR drivers/hid/built-in.a
CC drivers/gpu/drm/i915/i915_gem_evict.o
CC drivers/gpu/drm/i915/i915_gem_gtt.o
CC drivers/gpu/drm/i915/i915_gem_ww.o
AR kernel/built-in.a
CC drivers/gpu/drm/i915/i915_query.o
CC drivers/gpu/drm/i915/i915_request.o
CC drivers/gpu/drm/i915/i915_scheduler.o
CC drivers/gpu/drm/i915/i915_trace_points.o
CC drivers/gpu/drm/i915/i915_ttm_buddy_manager.o
CC drivers/gpu/drm/i915/i915_vma.o
CC drivers/gpu/drm/i915/i915_vma_resource.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_fw.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_proxy.o
AR net/ipv4/built-in.a
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.o
AR net/built-in.a
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_debugfs.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_heci_cmd_submit.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_ads.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_capture.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_ct.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_fw.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_hwconfig.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_log.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_log_debugfs.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_rc.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_submission.o
CC drivers/gpu/drm/i915/gt/uc/intel_huc.o
CC drivers/gpu/drm/i915/gt/uc/intel_huc_debugfs.o
CC drivers/gpu/drm/i915/gt/uc/intel_huc_fw.o
CC drivers/gpu/drm/i915/gt/uc/intel_uc.o
CC drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.o
CC drivers/gpu/drm/i915/gt/uc/intel_uc_fw.o
CC drivers/gpu/drm/i915/i915_hwmon.o
CC drivers/gpu/drm/i915/gt/intel_gsc.o
CC drivers/gpu/drm/i915/display/hsw_ips.o
CC drivers/gpu/drm/i915/display/i9xx_plane.o
CC drivers/gpu/drm/i915/display/i9xx_wm.o
CC drivers/gpu/drm/i915/display/intel_alpm.o
CC drivers/gpu/drm/i915/display/intel_atomic.o
CC drivers/gpu/drm/i915/display/intel_atomic_plane.o
CC drivers/gpu/drm/i915/display/intel_audio.o
CC drivers/gpu/drm/i915/display/intel_bios.o
CC drivers/gpu/drm/i915/display/intel_bw.o
CC drivers/gpu/drm/i915/display/intel_cdclk.o
CC drivers/gpu/drm/i915/display/intel_color.o
CC drivers/gpu/drm/i915/display/intel_combo_phy.o
CC drivers/gpu/drm/i915/display/intel_connector.o
CC drivers/gpu/drm/i915/display/intel_crtc.o
CC drivers/gpu/drm/i915/display/intel_crtc_state_dump.o
CC drivers/gpu/drm/i915/display/intel_cursor.o
CC drivers/gpu/drm/i915/display/intel_display.o
CC drivers/gpu/drm/i915/display/intel_display_driver.o
CC drivers/gpu/drm/i915/display/intel_display_irq.o
CC drivers/gpu/drm/i915/display/intel_display_params.o
CC drivers/gpu/drm/i915/display/intel_display_power.o
CC drivers/gpu/drm/i915/display/intel_display_power_map.o
CC drivers/gpu/drm/i915/display/intel_display_power_well.o
CC drivers/gpu/drm/i915/display/intel_display_reset.o
CC drivers/gpu/drm/i915/display/intel_display_rps.o
CC drivers/gpu/drm/i915/display/intel_display_wa.o
CC drivers/gpu/drm/i915/display/intel_dmc.o
CC drivers/gpu/drm/i915/display/intel_dmc_wl.o
CC drivers/gpu/drm/i915/display/intel_dpio_phy.o
CC drivers/gpu/drm/i915/display/intel_dpll.o
CC drivers/gpu/drm/i915/display/intel_dpll_mgr.o
CC drivers/gpu/drm/i915/display/intel_dpt.o
CC drivers/gpu/drm/i915/display/intel_dpt_common.o
CC drivers/gpu/drm/i915/display/intel_drrs.o
CC drivers/gpu/drm/i915/display/intel_dsb.o
CC drivers/gpu/drm/i915/display/intel_dsb_buffer.o
CC drivers/gpu/drm/i915/display/intel_fb.o
CC drivers/gpu/drm/i915/display/intel_fb_bo.o
CC drivers/gpu/drm/i915/display/intel_fb_pin.o
CC drivers/gpu/drm/i915/display/intel_fbc.o
CC drivers/gpu/drm/i915/display/intel_fdi.o
CC drivers/gpu/drm/i915/display/intel_fifo_underrun.o
CC drivers/gpu/drm/i915/display/intel_frontbuffer.o
CC drivers/gpu/drm/i915/display/intel_global_state.o
CC drivers/gpu/drm/i915/display/intel_hdcp.o
CC drivers/gpu/drm/i915/display/intel_hdcp_gsc.o
CC drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.o
CC drivers/gpu/drm/i915/display/intel_hotplug.o
CC drivers/gpu/drm/i915/display/intel_hotplug_irq.o
CC drivers/gpu/drm/i915/display/intel_hti.o
CC drivers/gpu/drm/i915/display/intel_link_bw.o
CC drivers/gpu/drm/i915/display/intel_load_detect.o
CC drivers/gpu/drm/i915/display/intel_lpe_audio.o
CC drivers/gpu/drm/i915/display/intel_modeset_lock.o
CC drivers/gpu/drm/i915/display/intel_modeset_setup.o
CC drivers/gpu/drm/i915/display/intel_modeset_verify.o
CC drivers/gpu/drm/i915/display/intel_overlay.o
CC drivers/gpu/drm/i915/display/intel_pch_display.o
CC drivers/gpu/drm/i915/display/intel_pch_refclk.o
CC drivers/gpu/drm/i915/display/intel_plane_initial.o
CC drivers/gpu/drm/i915/display/intel_pmdemand.o
CC drivers/gpu/drm/i915/display/intel_psr.o
CC drivers/gpu/drm/i915/display/intel_quirks.o
CC drivers/gpu/drm/i915/display/intel_sprite.o
CC drivers/gpu/drm/i915/display/intel_sprite_uapi.o
CC drivers/gpu/drm/i915/display/intel_tc.o
CC drivers/gpu/drm/i915/display/intel_vblank.o
CC drivers/gpu/drm/i915/display/intel_vga.o
CC drivers/gpu/drm/i915/display/intel_wm.o
CC drivers/gpu/drm/i915/display/skl_scaler.o
CC drivers/gpu/drm/i915/display/skl_universal_plane.o
CC drivers/gpu/drm/i915/display/skl_watermark.o
CC drivers/gpu/drm/i915/display/intel_acpi.o
CC drivers/gpu/drm/i915/display/intel_opregion.o
CC drivers/gpu/drm/i915/display/intel_display_debugfs.o
CC drivers/gpu/drm/i915/display/intel_display_debugfs_params.o
CC drivers/gpu/drm/i915/display/intel_pipe_crc.o
CC drivers/gpu/drm/i915/display/dvo_ch7017.o
CC drivers/gpu/drm/i915/display/dvo_ch7xxx.o
CC drivers/gpu/drm/i915/display/dvo_ivch.o
CC drivers/gpu/drm/i915/display/dvo_ns2501.o
CC drivers/gpu/drm/i915/display/dvo_sil164.o
CC drivers/gpu/drm/i915/display/dvo_tfp410.o
CC drivers/gpu/drm/i915/display/g4x_dp.o
CC drivers/gpu/drm/i915/display/g4x_hdmi.o
CC drivers/gpu/drm/i915/display/icl_dsi.o
CC drivers/gpu/drm/i915/display/intel_backlight.o
CC drivers/gpu/drm/i915/display/intel_crt.o
CC drivers/gpu/drm/i915/display/intel_cx0_phy.o
CC drivers/gpu/drm/i915/display/intel_ddi.o
CC drivers/gpu/drm/i915/display/intel_ddi_buf_trans.o
CC drivers/gpu/drm/i915/display/intel_display_device.o
CC drivers/gpu/drm/i915/display/intel_display_trace.o
CC drivers/gpu/drm/i915/display/intel_dkl_phy.o
CC drivers/gpu/drm/i915/display/intel_dp.o
CC drivers/gpu/drm/i915/display/intel_dp_aux.o
CC drivers/gpu/drm/i915/display/intel_dp_aux_backlight.o
CC drivers/gpu/drm/i915/display/intel_dp_hdcp.o
CC drivers/gpu/drm/i915/display/intel_dp_link_training.o
CC drivers/gpu/drm/i915/display/intel_dp_mst.o
CC drivers/gpu/drm/i915/display/intel_dsi.o
CC drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.o
CC drivers/gpu/drm/i915/display/intel_dsi_vbt.o
CC drivers/gpu/drm/i915/display/intel_dvo.o
CC drivers/gpu/drm/i915/display/intel_gmbus.o
CC drivers/gpu/drm/i915/display/intel_hdmi.o
CC drivers/gpu/drm/i915/display/intel_lspcon.o
CC drivers/gpu/drm/i915/display/intel_lvds.o
CC drivers/gpu/drm/i915/display/intel_panel.o
CC drivers/gpu/drm/i915/display/intel_pps.o
CC drivers/gpu/drm/i915/display/intel_qp_tables.o
CC drivers/gpu/drm/i915/display/intel_sdvo.o
CC drivers/gpu/drm/i915/display/intel_snps_phy.o
CC drivers/gpu/drm/i915/display/intel_tv.o
CC drivers/gpu/drm/i915/display/intel_vdsc.o
CC drivers/gpu/drm/i915/display/intel_vrr.o
CC drivers/gpu/drm/i915/display/vlv_dsi.o
CC drivers/gpu/drm/i915/display/vlv_dsi_pll.o
CC drivers/gpu/drm/i915/i915_perf.o
CC drivers/gpu/drm/i915/pxp/intel_pxp.o
CC drivers/gpu/drm/i915/pxp/intel_pxp_huc.o
CC drivers/gpu/drm/i915/pxp/intel_pxp_tee.o
CC drivers/gpu/drm/i915/i915_gpu_error.o
CC drivers/gpu/drm/i915/i915_vgpu.o
AR drivers/gpu/drm/i915/built-in.a
make[4]: *** [/workspace/kernel/scripts/Makefile.build:485: drivers/gpu/drm] Error 2
make[3]: *** [/workspace/kernel/scripts/Makefile.build:485: drivers/gpu] Error 2
make[2]: *** [/workspace/kernel/scripts/Makefile.build:485: drivers] Error 2
make[1]: *** [/workspace/kernel/Makefile:1934: .] Error 2
make: *** [/workspace/kernel/Makefile:240: __sub-make] Error 2
run-parts: /workspace/ci/hooks/11-build-32b exited with return code 2
^ permalink raw reply [flat|nested] 23+ messages in thread
* ✗ CI.checksparse: warning for drm/xe/guc: Improve quality and robustness of GuC log dumping (rev2)
2024-06-11 1:20 [PATCH v4 0/7] drm/xe/guc: Improve quality and robustness of GuC log dumping John.C.Harrison
` (11 preceding siblings ...)
2024-06-11 1:40 ` ✗ CI.Hooks: failure " Patchwork
@ 2024-06-11 1:41 ` Patchwork
2024-06-11 2:31 ` ✗ CI.BAT: failure " Patchwork
2024-06-11 3:53 ` ✗ CI.FULL: " Patchwork
14 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2024-06-11 1:41 UTC (permalink / raw)
To: john.c.harrison; +Cc: intel-xe
== Series Details ==
Series: drm/xe/guc: Improve quality and robustness of GuC log dumping (rev2)
URL : https://patchwork.freedesktop.org/series/134695/
State : warning
== Summary ==
+ trap cleanup EXIT
+ KERNEL=/kernel
+ MT=/root/linux/maintainer-tools
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools /root/linux/maintainer-tools
Cloning into '/root/linux/maintainer-tools'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ make -C /root/linux/maintainer-tools
make: Entering directory '/root/linux/maintainer-tools'
cc -O2 -g -Wextra -o remap-log remap-log.c
make: Leaving directory '/root/linux/maintainer-tools'
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ /root/linux/maintainer-tools/dim sparse --fast bf9d891af55d3785eb9438efb053c991bf2b4b10
Sparse version: 0.6.1 (Ubuntu: 0.6.1-2build1)
Fast mode used, each commit won't be checked separately.
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 23+ messages in thread
* ✗ CI.BAT: failure for drm/xe/guc: Improve quality and robustness of GuC log dumping (rev2)
2024-06-11 1:20 [PATCH v4 0/7] drm/xe/guc: Improve quality and robustness of GuC log dumping John.C.Harrison
` (12 preceding siblings ...)
2024-06-11 1:41 ` ✗ CI.checksparse: warning " Patchwork
@ 2024-06-11 2:31 ` Patchwork
2024-06-11 3:53 ` ✗ CI.FULL: " Patchwork
14 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2024-06-11 2:31 UTC (permalink / raw)
To: john.c.harrison; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 1808 bytes --]
== Series Details ==
Series: drm/xe/guc: Improve quality and robustness of GuC log dumping (rev2)
URL : https://patchwork.freedesktop.org/series/134695/
State : failure
== Summary ==
CI Bug Log - changes from xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10_BAT -> xe-pw-134695v2_BAT
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with xe-pw-134695v2_BAT absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in xe-pw-134695v2_BAT, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (4 -> 4)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in xe-pw-134695v2_BAT:
### IGT changes ###
#### Possible regressions ####
* igt@xe_vm@shared-pde3-page:
- bat-atsm-2: [PASS][1] -> [DMESG-WARN][2]
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/bat-atsm-2/igt@xe_vm@shared-pde3-page.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/bat-atsm-2/igt@xe_vm@shared-pde3-page.html
Build changes
-------------
* Linux: xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10 -> xe-pw-134695v2
IGT_7880: 73618605b4370cf902267aaf1d25666ff5e26112 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10: bf9d891af55d3785eb9438efb053c991bf2b4b10
xe-pw-134695v2: 134695v2
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/index.html
[-- Attachment #2: Type: text/html, Size: 2393 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* ✗ CI.FULL: failure for drm/xe/guc: Improve quality and robustness of GuC log dumping (rev2)
2024-06-11 1:20 [PATCH v4 0/7] drm/xe/guc: Improve quality and robustness of GuC log dumping John.C.Harrison
` (13 preceding siblings ...)
2024-06-11 2:31 ` ✗ CI.BAT: failure " Patchwork
@ 2024-06-11 3:53 ` Patchwork
14 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2024-06-11 3:53 UTC (permalink / raw)
To: john.c.harrison; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 72322 bytes --]
== Series Details ==
Series: drm/xe/guc: Improve quality and robustness of GuC log dumping (rev2)
URL : https://patchwork.freedesktop.org/series/134695/
State : failure
== Summary ==
CI Bug Log - changes from xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10_full -> xe-pw-134695v2_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with xe-pw-134695v2_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in xe-pw-134695v2_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (3 -> 3)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in xe-pw-134695v2_full:
### IGT changes ###
#### Possible regressions ####
* igt@xe_exec_reset@virtual-close-fd:
- shard-dg2-set2: NOTRUN -> [ABORT][1]
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@xe_exec_reset@virtual-close-fd.html
* igt@xe_exec_threads@threads-hang-fd-userptr-invalidate:
- shard-dg2-set2: [PASS][2] -> [ABORT][3]
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-435/igt@xe_exec_threads@threads-hang-fd-userptr-invalidate.html
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-466/igt@xe_exec_threads@threads-hang-fd-userptr-invalidate.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@xe_debugfs@base:
- {shard-lnl}: [PASS][4] -> [INCOMPLETE][5]
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-lnl-5/igt@xe_debugfs@base.html
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-lnl-6/igt@xe_debugfs@base.html
Known issues
------------
Here are the changes found in xe-pw-134695v2_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@intel_hwmon@hwmon-read:
- shard-adlp: NOTRUN -> [SKIP][6] ([Intel XE#1125] / [Intel XE#1201])
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-6/igt@intel_hwmon@hwmon-read.html
* igt@kms_async_flips@async-flip-with-page-flip-events:
- shard-adlp: NOTRUN -> [DMESG-WARN][7] ([Intel XE#1033] / [Intel XE#1214] / [Intel XE#324])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@kms_async_flips@async-flip-with-page-flip-events.html
* igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-hdmi-a-1-y:
- shard-adlp: NOTRUN -> [DMESG-WARN][8] ([Intel XE#1033] / [Intel XE#1214])
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-hdmi-a-1-y.html
* igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-1-y:
- shard-adlp: NOTRUN -> [DMESG-WARN][9] ([Intel XE#1214] / [Intel XE#324]) +1 other test dmesg-warn
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-1-y.html
* igt@kms_async_flips@invalid-async-flip:
- shard-dg2-set2: NOTRUN -> [SKIP][10] ([Intel XE#1201] / [Intel XE#873])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-463/igt@kms_async_flips@invalid-async-flip.html
* igt@kms_big_fb@linear-16bpp-rotate-90:
- shard-dg2-set2: NOTRUN -> [SKIP][11] ([Intel XE#1201] / [Intel XE#316]) +2 other tests skip
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-464/igt@kms_big_fb@linear-16bpp-rotate-90.html
* igt@kms_big_fb@x-tiled-32bpp-rotate-90:
- shard-dg2-set2: NOTRUN -> [SKIP][12] ([Intel XE#316]) +1 other test skip
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_big_fb@x-tiled-32bpp-rotate-90.html
* igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
- shard-adlp: NOTRUN -> [FAIL][13] ([Intel XE#1242])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-8/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
* igt@kms_big_fb@y-tiled-16bpp-rotate-270:
- shard-adlp: NOTRUN -> [SKIP][14] ([Intel XE#1201] / [Intel XE#316])
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@kms_big_fb@y-tiled-16bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-addfb:
- shard-dg2-set2: NOTRUN -> [SKIP][15] ([Intel XE#1201] / [Intel XE#619])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-464/igt@kms_big_fb@y-tiled-addfb.html
* igt@kms_big_fb@yf-tiled-64bpp-rotate-90:
- shard-dg2-set2: NOTRUN -> [SKIP][16] ([Intel XE#1124] / [Intel XE#1201]) +5 other tests skip
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-463/igt@kms_big_fb@yf-tiled-64bpp-rotate-90.html
* igt@kms_big_fb@yf-tiled-8bpp-rotate-0:
- shard-adlp: NOTRUN -> [SKIP][17] ([Intel XE#1124] / [Intel XE#1201]) +4 other tests skip
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@kms_big_fb@yf-tiled-8bpp-rotate-0.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip:
- shard-dg2-set2: NOTRUN -> [SKIP][18] ([Intel XE#1124])
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip.html
* igt@kms_big_joiner@basic:
- shard-dg2-set2: NOTRUN -> [SKIP][19] ([Intel XE#1201] / [Intel XE#346])
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-463/igt@kms_big_joiner@basic.html
* igt@kms_big_joiner@invalid-modeset:
- shard-adlp: NOTRUN -> [SKIP][20] ([Intel XE#1201] / [Intel XE#346])
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-6/igt@kms_big_joiner@invalid-modeset.html
* igt@kms_bw@linear-tiling-1-displays-2560x1440p:
- shard-adlp: NOTRUN -> [SKIP][21] ([Intel XE#1201] / [Intel XE#367])
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@kms_bw@linear-tiling-1-displays-2560x1440p.html
* igt@kms_bw@linear-tiling-2-displays-2560x1440p:
- shard-dg2-set2: NOTRUN -> [SKIP][22] ([Intel XE#1201] / [Intel XE#367])
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-464/igt@kms_bw@linear-tiling-2-displays-2560x1440p.html
* igt@kms_bw@linear-tiling-2-displays-3840x2160p:
- shard-dg2-set2: NOTRUN -> [SKIP][23] ([Intel XE#367])
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_bw@linear-tiling-2-displays-3840x2160p.html
* igt@kms_ccs@bad-aux-stride-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-1:
- shard-adlp: NOTRUN -> [SKIP][24] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) +15 other tests skip
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-1.html
* igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-6:
- shard-dg2-set2: NOTRUN -> [SKIP][25] ([Intel XE#787]) +13 other tests skip
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-6.html
* igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc@pipe-d-dp-4:
- shard-dg2-set2: NOTRUN -> [SKIP][26] ([Intel XE#455] / [Intel XE#787]) +3 other tests skip
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc@pipe-d-dp-4.html
* igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs-cc@pipe-d-dp-4:
- shard-dg2-set2: NOTRUN -> [SKIP][27] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) +21 other tests skip
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-464/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs-cc@pipe-d-dp-4.html
* igt@kms_ccs@ccs-on-another-bo-yf-tiled-ccs@pipe-a-dp-4:
- shard-dg2-set2: NOTRUN -> [SKIP][28] ([Intel XE#1201] / [Intel XE#787]) +76 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-463/igt@kms_ccs@ccs-on-another-bo-yf-tiled-ccs@pipe-a-dp-4.html
* igt@kms_ccs@crc-primary-basic-4-tiled-xe2-ccs:
- shard-adlp: NOTRUN -> [SKIP][29] ([Intel XE#1201] / [Intel XE#1252])
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@kms_ccs@crc-primary-basic-4-tiled-xe2-ccs.html
* igt@kms_ccs@crc-primary-rotation-180-y-tiled-ccs@pipe-b-hdmi-a-1:
- shard-adlp: NOTRUN -> [SKIP][30] ([Intel XE#1201] / [Intel XE#787]) +23 other tests skip
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@kms_ccs@crc-primary-rotation-180-y-tiled-ccs@pipe-b-hdmi-a-1.html
* igt@kms_chamelium_color@ctm-max:
- shard-adlp: NOTRUN -> [SKIP][31] ([Intel XE#1201] / [Intel XE#306]) +1 other test skip
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@kms_chamelium_color@ctm-max.html
* igt@kms_chamelium_color@ctm-red-to-blue:
- shard-dg2-set2: NOTRUN -> [SKIP][32] ([Intel XE#1201] / [Intel XE#306]) +1 other test skip
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-464/igt@kms_chamelium_color@ctm-red-to-blue.html
* igt@kms_chamelium_edid@dp-edid-read:
- shard-adlp: NOTRUN -> [SKIP][33] ([Intel XE#1201] / [Intel XE#373]) +7 other tests skip
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-8/igt@kms_chamelium_edid@dp-edid-read.html
* igt@kms_chamelium_hpd@hdmi-hpd-with-enabled-mode:
- shard-dg2-set2: NOTRUN -> [SKIP][34] ([Intel XE#1201] / [Intel XE#373]) +3 other tests skip
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-464/igt@kms_chamelium_hpd@hdmi-hpd-with-enabled-mode.html
* igt@kms_chamelium_hpd@vga-hpd-for-each-pipe:
- shard-dg2-set2: NOTRUN -> [SKIP][35] ([Intel XE#373]) +2 other tests skip
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_chamelium_hpd@vga-hpd-for-each-pipe.html
* igt@kms_content_protection@atomic:
- shard-adlp: NOTRUN -> [SKIP][36] ([Intel XE#1201] / [Intel XE#455]) +14 other tests skip
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@kms_content_protection@atomic.html
* igt@kms_cursor_crc@cursor-random-512x170:
- shard-adlp: NOTRUN -> [SKIP][37] ([Intel XE#1201] / [Intel XE#308])
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@kms_cursor_crc@cursor-random-512x170.html
* igt@kms_cursor_crc@cursor-sliding-max-size:
- shard-dg2-set2: NOTRUN -> [SKIP][38] ([Intel XE#1201] / [Intel XE#455]) +5 other tests skip
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-463/igt@kms_cursor_crc@cursor-sliding-max-size.html
* igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
- shard-dg2-set2: NOTRUN -> [DMESG-WARN][39] ([Intel XE#1214] / [Intel XE#282]) +11 other tests dmesg-warn
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-463/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size:
- shard-dg2-set2: NOTRUN -> [SKIP][40] ([Intel XE#323])
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html
* igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions:
- shard-adlp: NOTRUN -> [SKIP][41] ([Intel XE#1201] / [Intel XE#309]) +2 other tests skip
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-6/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
- shard-dg2-set2: [PASS][42] -> [DMESG-WARN][43] ([Intel XE#1214] / [Intel XE#282] / [Intel XE#910])
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-463/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-464/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
* igt@kms_cursor_legacy@forked-move@pipe-b:
- shard-dg2-set2: [PASS][44] -> [DMESG-WARN][45] ([Intel XE#1214] / [Intel XE#282]) +8 other tests dmesg-warn
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_cursor_legacy@forked-move@pipe-b.html
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-435/igt@kms_cursor_legacy@forked-move@pipe-b.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:
- shard-dg2-set2: NOTRUN -> [SKIP][46] ([Intel XE#1201] / [Intel XE#323])
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-464/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
- shard-adlp: NOTRUN -> [SKIP][47] ([Intel XE#1201] / [Intel XE#323])
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-6/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
* igt@kms_fbcon_fbt@fbc-suspend:
- shard-dg2-set2: [PASS][48] -> [FAIL][49] ([Intel XE#1609])
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-435/igt@kms_fbcon_fbt@fbc-suspend.html
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_fbcon_fbt@fbc-suspend.html
* igt@kms_feature_discovery@psr1:
- shard-adlp: NOTRUN -> [SKIP][50] ([Intel XE#1135] / [Intel XE#1201]) +1 other test skip
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@kms_feature_discovery@psr1.html
* igt@kms_flip@2x-plain-flip-fb-recreate-interruptible:
- shard-adlp: NOTRUN -> [SKIP][51] ([Intel XE#1201] / [Intel XE#310]) +2 other tests skip
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html
* igt@kms_flip@flip-vs-suspend@b-hdmi-a1:
- shard-adlp: NOTRUN -> [DMESG-FAIL][52] ([Intel XE#1608]) +8 other tests dmesg-fail
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-6/igt@kms_flip@flip-vs-suspend@b-hdmi-a1.html
* igt@kms_flip@plain-flip-ts-check-interruptible:
- shard-dg2-set2: NOTRUN -> [INCOMPLETE][53] ([Intel XE#1195]) +2 other tests incomplete
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-464/igt@kms_flip@plain-flip-ts-check-interruptible.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-render:
- shard-adlp: NOTRUN -> [SKIP][54] ([Intel XE#1201] / [Intel XE#656]) +23 other tests skip
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-move:
- shard-dg2-set2: NOTRUN -> [SKIP][55] ([Intel XE#651]) +3 other tests skip
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-move.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-shrfb-msflip-blt:
- shard-dg2-set2: NOTRUN -> [SKIP][56] ([Intel XE#1201] / [Intel XE#651]) +21 other tests skip
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-464/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-shrfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-suspend:
- shard-dg2-set2: NOTRUN -> [FAIL][57] ([Intel XE#616])
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-463/igt@kms_frontbuffer_tracking@fbc-suspend.html
* igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-shrfb-pgflip-blt:
- shard-adlp: NOTRUN -> [SKIP][58] ([Intel XE#1201] / [Intel XE#651]) +8 other tests skip
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-8/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-shrfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-blt:
- shard-adlp: NOTRUN -> [SKIP][59] ([Intel XE#1201] / [Intel XE#653]) +7 other tests skip
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-8/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-blt:
- shard-dg2-set2: NOTRUN -> [SKIP][60] ([Intel XE#1201] / [Intel XE#653]) +17 other tests skip
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-463/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-wc:
- shard-dg2-set2: NOTRUN -> [SKIP][61] ([Intel XE#653]) +6 other tests skip
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-wc.html
* igt@kms_pipe_crc_basic@suspend-read-crc:
- shard-dg2-set2: NOTRUN -> [DMESG-WARN][62] ([Intel XE#1214]) +2 other tests dmesg-warn
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-464/igt@kms_pipe_crc_basic@suspend-read-crc.html
* igt@kms_plane_lowres@tiling-y@pipe-d-hdmi-a-1:
- shard-adlp: NOTRUN -> [FAIL][63] ([Intel XE#1874]) +3 other tests fail
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@kms_plane_lowres@tiling-y@pipe-d-hdmi-a-1.html
* igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-6:
- shard-dg2-set2: [PASS][64] -> [FAIL][65] ([Intel XE#361])
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-466/igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-6.html
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-463/igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-6.html
* igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-b-hdmi-a-1:
- shard-adlp: NOTRUN -> [SKIP][66] ([Intel XE#1201] / [Intel XE#498]) +2 other tests skip
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-6/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-b-hdmi-a-1.html
* igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-d-hdmi-a-1:
- shard-adlp: NOTRUN -> [SKIP][67] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#498]) +1 other test skip
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-6/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-d-hdmi-a-1.html
* igt@kms_pm_backlight@basic-brightness:
- shard-adlp: NOTRUN -> [SKIP][68] ([Intel XE#1201] / [Intel XE#870])
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-8/igt@kms_pm_backlight@basic-brightness.html
* igt@kms_pm_rpm@modeset-lpsp-stress:
- shard-adlp: NOTRUN -> [SKIP][69] ([Intel XE#1201] / [Intel XE#1211]) +2 other tests skip
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-8/igt@kms_pm_rpm@modeset-lpsp-stress.html
* igt@kms_psr2_sf@fbc-overlay-plane-move-continuous-sf:
- shard-adlp: NOTRUN -> [SKIP][70] ([Intel XE#1201]) +2 other tests skip
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-6/igt@kms_psr2_sf@fbc-overlay-plane-move-continuous-sf.html
* igt@kms_psr2_su@page_flip-p010:
- shard-dg2-set2: NOTRUN -> [SKIP][71] ([Intel XE#1122] / [Intel XE#1201])
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-463/igt@kms_psr2_su@page_flip-p010.html
* igt@kms_psr@fbc-psr2-cursor-plane-move:
- shard-dg2-set2: NOTRUN -> [SKIP][72] ([Intel XE#929])
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_psr@fbc-psr2-cursor-plane-move.html
* igt@kms_psr@pr-primary-page-flip:
- shard-adlp: NOTRUN -> [SKIP][73] ([Intel XE#1201] / [Intel XE#929]) +10 other tests skip
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-6/igt@kms_psr@pr-primary-page-flip.html
* igt@kms_psr@psr2-basic:
- shard-dg2-set2: NOTRUN -> [SKIP][74] ([Intel XE#1201] / [Intel XE#929]) +11 other tests skip
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-463/igt@kms_psr@psr2-basic.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
- shard-dg2-set2: NOTRUN -> [SKIP][75] ([Intel XE#1127])
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
- shard-adlp: NOTRUN -> [SKIP][76] ([Intel XE#1127] / [Intel XE#1201])
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-8/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
* igt@kms_rotation_crc@sprite-rotation-90:
- shard-adlp: NOTRUN -> [SKIP][77] ([Intel XE#1201] / [Intel XE#327])
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-8/igt@kms_rotation_crc@sprite-rotation-90.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-adlp: NOTRUN -> [SKIP][78] ([Intel XE#1201] / [Intel XE#362])
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@kms_tiled_display@basic-test-pattern.html
* igt@kms_universal_plane@cursor-fb-leak@pipe-b-dp-4:
- shard-dg2-set2: [PASS][79] -> [FAIL][80] ([Intel XE#899])
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_universal_plane@cursor-fb-leak@pipe-b-dp-4.html
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-433/igt@kms_universal_plane@cursor-fb-leak@pipe-b-dp-4.html
* igt@kms_writeback@writeback-check-output:
- shard-adlp: NOTRUN -> [SKIP][81] ([Intel XE#1201] / [Intel XE#756])
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@kms_writeback@writeback-check-output.html
* igt@sriov_basic@enable-vfs-bind-unbind-each:
- shard-dg2-set2: NOTRUN -> [SKIP][82] ([Intel XE#1091] / [Intel XE#1201])
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-463/igt@sriov_basic@enable-vfs-bind-unbind-each.html
* igt@xe_ccs@block-copy-compressed:
- shard-adlp: NOTRUN -> [SKIP][83] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#488])
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-8/igt@xe_ccs@block-copy-compressed.html
* igt@xe_copy_basic@mem-set-linear-0xfd:
- shard-dg2-set2: NOTRUN -> [SKIP][84] ([Intel XE#1126] / [Intel XE#1201])
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-464/igt@xe_copy_basic@mem-set-linear-0xfd.html
- shard-adlp: NOTRUN -> [SKIP][85] ([Intel XE#1126] / [Intel XE#1201])
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-6/igt@xe_copy_basic@mem-set-linear-0xfd.html
* igt@xe_copy_basic@mem-set-linear-0xfffe:
- shard-dg2-set2: NOTRUN -> [SKIP][86] ([Intel XE#1126])
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@xe_copy_basic@mem-set-linear-0xfffe.html
* igt@xe_evict@evict-beng-cm-threads-large:
- shard-dg2-set2: [PASS][87] -> [TIMEOUT][88] ([Intel XE#1473] / [Intel XE#392])
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-435/igt@xe_evict@evict-beng-cm-threads-large.html
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-463/igt@xe_evict@evict-beng-cm-threads-large.html
* igt@xe_evict@evict-mixed-many-threads-small:
- shard-adlp: NOTRUN -> [SKIP][89] ([Intel XE#1201] / [Intel XE#261]) +2 other tests skip
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-6/igt@xe_evict@evict-mixed-many-threads-small.html
* igt@xe_evict@evict-threads-small:
- shard-adlp: NOTRUN -> [SKIP][90] ([Intel XE#1201] / [Intel XE#261] / [Intel XE#688]) +1 other test skip
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@xe_evict@evict-threads-small.html
* igt@xe_evict_ccs@evict-overcommit-parallel-nofree-samefd:
- shard-adlp: NOTRUN -> [SKIP][91] ([Intel XE#1201] / [Intel XE#688]) +1 other test skip
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-8/igt@xe_evict_ccs@evict-overcommit-parallel-nofree-samefd.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-defer-mmap:
- shard-adlp: NOTRUN -> [SKIP][92] ([Intel XE#1201] / [Intel XE#1392]) +4 other tests skip
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-defer-mmap.html
* igt@xe_exec_fault_mode@invalid-va:
- shard-adlp: NOTRUN -> [SKIP][93] ([Intel XE#1201] / [Intel XE#288]) +13 other tests skip
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-8/igt@xe_exec_fault_mode@invalid-va.html
* igt@xe_exec_fault_mode@many-bindexecqueue-rebind:
- shard-dg2-set2: NOTRUN -> [SKIP][94] ([Intel XE#1201] / [Intel XE#288]) +17 other tests skip
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-464/igt@xe_exec_fault_mode@many-bindexecqueue-rebind.html
* igt@xe_exec_fault_mode@many-bindexecqueue-userptr-invalidate:
- shard-dg2-set2: NOTRUN -> [SKIP][95] ([Intel XE#288]) +3 other tests skip
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@xe_exec_fault_mode@many-bindexecqueue-userptr-invalidate.html
* igt@xe_live_ktest@xe_dma_buf:
- shard-adlp: NOTRUN -> [SKIP][96] ([Intel XE#1192] / [Intel XE#1201])
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-6/igt@xe_live_ktest@xe_dma_buf.html
* igt@xe_mmap@small-bar:
- shard-dg2-set2: NOTRUN -> [SKIP][97] ([Intel XE#1201] / [Intel XE#512])
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-464/igt@xe_mmap@small-bar.html
* igt@xe_module_load@force-load:
- shard-dg2-set2: NOTRUN -> [SKIP][98] ([Intel XE#378])
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@xe_module_load@force-load.html
* igt@xe_module_load@load:
- shard-dg2-set2: NOTRUN -> [SKIP][99] ([Intel XE#1201] / [Intel XE#378])
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-463/igt@xe_module_load@load.html
* igt@xe_pm@d3hot-multiple-execs:
- shard-adlp: NOTRUN -> [FAIL][100] ([Intel XE#355])
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@xe_pm@d3hot-multiple-execs.html
* igt@xe_pm@s3-d3cold-basic-exec:
- shard-adlp: NOTRUN -> [SKIP][101] ([Intel XE#1201] / [Intel XE#366])
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@xe_pm@s3-d3cold-basic-exec.html
* igt@xe_pm@s3-multiple-execs:
- shard-adlp: NOTRUN -> [FAIL][102] ([Intel XE#1924])
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-8/igt@xe_pm@s3-multiple-execs.html
* igt@xe_pm_residency@gt-c6-freeze:
- shard-adlp: NOTRUN -> [FAIL][103] ([Intel XE#2009])
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-6/igt@xe_pm_residency@gt-c6-freeze.html
* igt@xe_query@multigpu-query-invalid-cs-cycles:
- shard-dg2-set2: NOTRUN -> [SKIP][104] ([Intel XE#1201] / [Intel XE#944])
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-463/igt@xe_query@multigpu-query-invalid-cs-cycles.html
* igt@xe_query@multigpu-query-invalid-size:
- shard-adlp: NOTRUN -> [SKIP][105] ([Intel XE#1201] / [Intel XE#944]) +2 other tests skip
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-8/igt@xe_query@multigpu-query-invalid-size.html
* igt@xe_query@multigpu-query-topology:
- shard-dg2-set2: NOTRUN -> [SKIP][106] ([Intel XE#944])
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@xe_query@multigpu-query-topology.html
#### Possible fixes ####
* igt@kms_async_flips@alternate-sync-async-flip@pipe-d-hdmi-a-6:
- shard-dg2-set2: [FAIL][107] ([Intel XE#827]) -> [PASS][108] +1 other test pass
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-464/igt@kms_async_flips@alternate-sync-async-flip@pipe-d-hdmi-a-6.html
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-433/igt@kms_async_flips@alternate-sync-async-flip@pipe-d-hdmi-a-6.html
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0:
- {shard-lnl}: [FAIL][109] ([Intel XE#1659]) -> [PASS][110]
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-lnl-3/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0.html
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-lnl-3/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0.html
* igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic:
- shard-dg2-set2: [DMESG-WARN][111] ([Intel XE#1214] / [Intel XE#282]) -> [PASS][112] +3 other tests pass
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-435/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-466/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
* igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions:
- shard-dg2-set2: [DMESG-WARN][113] ([Intel XE#282]) -> [PASS][114]
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions.html
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions.html
* igt@kms_flip@flip-vs-panning-interruptible:
- shard-dg2-set2: [INCOMPLETE][115] ([Intel XE#1195] / [Intel XE#2049]) -> [PASS][116]
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-466/igt@kms_flip@flip-vs-panning-interruptible.html
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-463/igt@kms_flip@flip-vs-panning-interruptible.html
* igt@kms_pm_rpm@drm-resources-equal:
- {shard-lnl}: [SKIP][117] ([Intel XE#1211]) -> [PASS][118]
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-lnl-3/igt@kms_pm_rpm@drm-resources-equal.html
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-lnl-3/igt@kms_pm_rpm@drm-resources-equal.html
* igt@kms_vblank@wait-idle-hang@pipe-a-hdmi-a-6:
- shard-dg2-set2: [INCOMPLETE][119] ([Intel XE#1195]) -> [PASS][120] +4 other tests pass
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-464/igt@kms_vblank@wait-idle-hang@pipe-a-hdmi-a-6.html
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-464/igt@kms_vblank@wait-idle-hang@pipe-a-hdmi-a-6.html
* igt@xe_evict@evict-beng-mixed-threads-large:
- shard-dg2-set2: [INCOMPLETE][121] ([Intel XE#1195] / [Intel XE#1473] / [Intel XE#392]) -> [PASS][122]
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-466/igt@xe_evict@evict-beng-mixed-threads-large.html
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-463/igt@xe_evict@evict-beng-mixed-threads-large.html
* igt@xe_exec_fault_mode@many-userptr-invalidate-race:
- {shard-lnl}: [ABORT][123] -> [PASS][124]
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-lnl-6/igt@xe_exec_fault_mode@many-userptr-invalidate-race.html
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-lnl-1/igt@xe_exec_fault_mode@many-userptr-invalidate-race.html
* igt@xe_exercise_blt@fast-copy:
- shard-dg2-set2: [ABORT][125] ([Intel XE#1205] / [Intel XE#1553]) -> [PASS][126]
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-466/igt@xe_exercise_blt@fast-copy.html
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-464/igt@xe_exercise_blt@fast-copy.html
* igt@xe_exercise_blt@fast-copy@linear-system-vram01:
- shard-dg2-set2: [ABORT][127] -> [PASS][128]
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-466/igt@xe_exercise_blt@fast-copy@linear-system-vram01.html
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-464/igt@xe_exercise_blt@fast-copy@linear-system-vram01.html
* igt@xe_exercise_blt@fast-copy@linear-vram01-system:
- shard-dg2-set2: [DMESG-WARN][129] ([Intel XE#1214] / [Intel XE#1553]) -> [PASS][130]
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-466/igt@xe_exercise_blt@fast-copy@linear-vram01-system.html
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-464/igt@xe_exercise_blt@fast-copy@linear-vram01-system.html
* igt@xe_gt_freq@freq_fixed_exec:
- shard-adlp: [FAIL][131] ([Intel XE#1414]) -> [PASS][132]
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-adlp-8/igt@xe_gt_freq@freq_fixed_exec.html
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-6/igt@xe_gt_freq@freq_fixed_exec.html
* igt@xe_pm@s2idle-multiple-execs:
- shard-dg2-set2: [INCOMPLETE][133] ([Intel XE#1195] / [Intel XE#1358]) -> [PASS][134]
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-435/igt@xe_pm@s2idle-multiple-execs.html
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@xe_pm@s2idle-multiple-execs.html
* igt@xe_pm@s4-vm-bind-prefetch:
- shard-adlp: [DMESG-WARN][135] ([Intel XE#1214]) -> [PASS][136]
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-adlp-4/igt@xe_pm@s4-vm-bind-prefetch.html
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-8/igt@xe_pm@s4-vm-bind-prefetch.html
#### Warnings ####
* igt@kms_big_fb@x-tiled-16bpp-rotate-270:
- shard-dg2-set2: [SKIP][137] ([Intel XE#1201] / [Intel XE#316]) -> [SKIP][138] ([Intel XE#316]) +1 other test skip
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-436/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0:
- shard-dg2-set2: [SKIP][139] ([Intel XE#1124] / [Intel XE#1201]) -> [SKIP][140] ([Intel XE#1124]) +3 other tests skip
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-436/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0.html
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-async-flip:
- shard-adlp: [FAIL][141] ([Intel XE#1231]) -> [DMESG-FAIL][142] ([Intel XE#324])
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-adlp-4/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
- shard-adlp: [DMESG-FAIL][143] ([Intel XE#324]) -> [FAIL][144] ([Intel XE#1231])
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-adlp-2/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-9/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
* igt@kms_big_fb@yf-tiled-64bpp-rotate-0:
- shard-dg2-set2: [SKIP][145] ([Intel XE#1124]) -> [SKIP][146] ([Intel XE#1124] / [Intel XE#1201]) +4 other tests skip
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_big_fb@yf-tiled-64bpp-rotate-0.html
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-433/igt@kms_big_fb@yf-tiled-64bpp-rotate-0.html
* igt@kms_bw@linear-tiling-2-displays-2160x1440p:
- shard-dg2-set2: [SKIP][147] ([Intel XE#1201] / [Intel XE#367]) -> [SKIP][148] ([Intel XE#367])
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-436/igt@kms_bw@linear-tiling-2-displays-2160x1440p.html
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_bw@linear-tiling-2-displays-2160x1440p.html
* igt@kms_bw@linear-tiling-3-displays-3840x2160p:
- shard-dg2-set2: [SKIP][149] ([Intel XE#367]) -> [SKIP][150] ([Intel XE#1201] / [Intel XE#367])
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_bw@linear-tiling-3-displays-3840x2160p.html
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-435/igt@kms_bw@linear-tiling-3-displays-3840x2160p.html
* igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-rc-ccs@pipe-c-dp-4:
- shard-dg2-set2: [SKIP][151] ([Intel XE#787]) -> [SKIP][152] ([Intel XE#1201] / [Intel XE#787]) +34 other tests skip
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-rc-ccs@pipe-c-dp-4.html
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-433/igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-rc-ccs@pipe-c-dp-4.html
* igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-6:
- shard-dg2-set2: [SKIP][153] ([Intel XE#1201] / [Intel XE#787]) -> [SKIP][154] ([Intel XE#787]) +34 other tests skip
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-435/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-6.html
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-6.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs-cc@pipe-d-dp-4:
- shard-dg2-set2: [SKIP][155] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) -> [SKIP][156] ([Intel XE#455] / [Intel XE#787]) +9 other tests skip
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-436/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs-cc@pipe-d-dp-4.html
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs-cc@pipe-d-dp-4.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-xe2-ccs:
- shard-dg2-set2: [SKIP][157] ([Intel XE#1252]) -> [SKIP][158] ([Intel XE#1201] / [Intel XE#1252])
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_ccs@crc-primary-rotation-180-4-tiled-xe2-ccs.html
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-433/igt@kms_ccs@crc-primary-rotation-180-4-tiled-xe2-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs@pipe-d-dp-4:
- shard-dg2-set2: [SKIP][159] ([Intel XE#455] / [Intel XE#787]) -> [SKIP][160] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) +9 other tests skip
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs@pipe-d-dp-4.html
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-435/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs@pipe-d-dp-4.html
* igt@kms_cdclk@plane-scaling@pipe-b-dp-4:
- shard-dg2-set2: [SKIP][161] ([Intel XE#1152]) -> [SKIP][162] ([Intel XE#1152] / [Intel XE#1201]) +3 other tests skip
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_cdclk@plane-scaling@pipe-b-dp-4.html
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-433/igt@kms_cdclk@plane-scaling@pipe-b-dp-4.html
* igt@kms_chamelium_color@ctm-0-25:
- shard-dg2-set2: [SKIP][163] ([Intel XE#1201] / [Intel XE#306]) -> [SKIP][164] ([Intel XE#306])
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-436/igt@kms_chamelium_color@ctm-0-25.html
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_chamelium_color@ctm-0-25.html
* igt@kms_chamelium_color@ctm-0-75:
- shard-dg2-set2: [SKIP][165] ([Intel XE#306]) -> [SKIP][166] ([Intel XE#1201] / [Intel XE#306])
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_chamelium_color@ctm-0-75.html
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-433/igt@kms_chamelium_color@ctm-0-75.html
* igt@kms_chamelium_edid@dp-edid-stress-resolution-4k:
- shard-dg2-set2: [SKIP][167] ([Intel XE#373]) -> [SKIP][168] ([Intel XE#1201] / [Intel XE#373]) +3 other tests skip
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_chamelium_edid@dp-edid-stress-resolution-4k.html
[168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-435/igt@kms_chamelium_edid@dp-edid-stress-resolution-4k.html
* igt@kms_chamelium_hpd@vga-hpd-after-suspend:
- shard-dg2-set2: [SKIP][169] ([Intel XE#1201] / [Intel XE#373]) -> [SKIP][170] ([Intel XE#373]) +3 other tests skip
[169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-436/igt@kms_chamelium_hpd@vga-hpd-after-suspend.html
[170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_chamelium_hpd@vga-hpd-after-suspend.html
* igt@kms_cursor_legacy@cursor-vs-flip-atomic:
- shard-dg2-set2: [INCOMPLETE][171] -> [DMESG-WARN][172] ([Intel XE#282])
[171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_cursor_legacy@cursor-vs-flip-atomic.html
[172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_cursor_legacy@cursor-vs-flip-atomic.html
* igt@kms_cursor_legacy@cursor-vs-flip-varying-size:
- shard-dg2-set2: [DMESG-WARN][173] ([Intel XE#1214] / [Intel XE#282]) -> [DMESG-WARN][174] ([Intel XE#282]) +4 other tests dmesg-warn
[173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-436/igt@kms_cursor_legacy@cursor-vs-flip-varying-size.html
[174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_cursor_legacy@cursor-vs-flip-varying-size.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-dg2-set2: [DMESG-WARN][175] ([Intel XE#282]) -> [DMESG-WARN][176] ([Intel XE#1214] / [Intel XE#282]) +3 other tests dmesg-warn
[175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
[176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-433/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
- shard-dg2-set2: [SKIP][177] ([Intel XE#323]) -> [SKIP][178] ([Intel XE#1201] / [Intel XE#323])
[177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html
[178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-433/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html
* igt@kms_display_modes@mst-extended-mode-negative:
- shard-dg2-set2: [SKIP][179] ([Intel XE#307]) -> [SKIP][180] ([Intel XE#1201] / [Intel XE#307]) +1 other test skip
[179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_display_modes@mst-extended-mode-negative.html
[180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-433/igt@kms_display_modes@mst-extended-mode-negative.html
* igt@kms_feature_discovery@dp-mst:
- shard-dg2-set2: [SKIP][181] ([Intel XE#1137]) -> [SKIP][182] ([Intel XE#1137] / [Intel XE#1201])
[181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_feature_discovery@dp-mst.html
[182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-433/igt@kms_feature_discovery@dp-mst.html
* igt@kms_flip@flip-vs-suspend:
- shard-adlp: [INCOMPLETE][183] ([Intel XE#1195] / [Intel XE#927]) -> [DMESG-FAIL][184] ([Intel XE#1608] / [Intel XE#2034])
[183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-adlp-9/igt@kms_flip@flip-vs-suspend.html
[184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-6/igt@kms_flip@flip-vs-suspend.html
* igt@kms_flip@flip-vs-suspend@a-hdmi-a1:
- shard-adlp: [INCOMPLETE][185] ([Intel XE#1195]) -> [DMESG-FAIL][186] ([Intel XE#1608])
[185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-adlp-9/igt@kms_flip@flip-vs-suspend@a-hdmi-a1.html
[186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-6/igt@kms_flip@flip-vs-suspend@a-hdmi-a1.html
* igt@kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-mmap-wc:
- shard-dg2-set2: [SKIP][187] ([Intel XE#651]) -> [SKIP][188] ([Intel XE#1201] / [Intel XE#651]) +12 other tests skip
[187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-mmap-wc.html
[188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-435/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-indfb-msflip-blt:
- shard-dg2-set2: [SKIP][189] ([Intel XE#1201] / [Intel XE#651]) -> [SKIP][190] ([Intel XE#651]) +9 other tests skip
[189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-436/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-indfb-msflip-blt.html
[190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-indfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y:
- shard-dg2-set2: [SKIP][191] ([Intel XE#658]) -> [SKIP][192] ([Intel XE#1201] / [Intel XE#658])
[191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y.html
[192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-435/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-render:
- shard-dg2-set2: [SKIP][193] ([Intel XE#1201] / [Intel XE#653]) -> [SKIP][194] ([Intel XE#653]) +7 other tests skip
[193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-436/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-render.html
[194]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-render.html
* igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-wc:
- shard-dg2-set2: [SKIP][195] ([Intel XE#653]) -> [SKIP][196] ([Intel XE#1201] / [Intel XE#653]) +13 other tests skip
[195]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-wc.html
[196]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-435/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-wc.html
* igt@kms_hdr@invalid-hdr:
- shard-dg2-set2: [SKIP][197] ([Intel XE#455]) -> [SKIP][198] ([Intel XE#1201] / [Intel XE#455]) +16 other tests skip
[197]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_hdr@invalid-hdr.html
[198]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-433/igt@kms_hdr@invalid-hdr.html
* igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format:
- shard-dg2-set2: [SKIP][199] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#498]) -> [SKIP][200] ([Intel XE#455] / [Intel XE#498]) +1 other test skip
[199]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-435/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format.html
[200]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format.html
* igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-c-hdmi-a-6:
- shard-dg2-set2: [SKIP][201] ([Intel XE#1201] / [Intel XE#498]) -> [SKIP][202] ([Intel XE#498]) +2 other tests skip
[201]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-435/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-c-hdmi-a-6.html
[202]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-c-hdmi-a-6.html
* igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25:
- shard-dg2-set2: [SKIP][203] ([Intel XE#305] / [Intel XE#455]) -> [SKIP][204] ([Intel XE#1201] / [Intel XE#305] / [Intel XE#455])
[203]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25.html
[204]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-435/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25.html
* igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-a-hdmi-a-6:
- shard-dg2-set2: [SKIP][205] ([Intel XE#305]) -> [SKIP][206] ([Intel XE#1201] / [Intel XE#305]) +2 other tests skip
[205]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-a-hdmi-a-6.html
[206]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-435/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-a-hdmi-a-6.html
* igt@kms_pm_backlight@fade:
- shard-dg2-set2: [SKIP][207] ([Intel XE#1201] / [Intel XE#870]) -> [SKIP][208] ([Intel XE#870])
[207]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-436/igt@kms_pm_backlight@fade.html
[208]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_pm_backlight@fade.html
* igt@kms_pm_dc@deep-pkgc:
- shard-dg2-set2: [SKIP][209] ([Intel XE#908]) -> [SKIP][210] ([Intel XE#1201] / [Intel XE#908])
[209]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_pm_dc@deep-pkgc.html
[210]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-433/igt@kms_pm_dc@deep-pkgc.html
* igt@kms_psr2_su@page_flip-xrgb8888:
- shard-dg2-set2: [SKIP][211] ([Intel XE#1122]) -> [SKIP][212] ([Intel XE#1122] / [Intel XE#1201])
[211]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_psr2_su@page_flip-xrgb8888.html
[212]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-435/igt@kms_psr2_su@page_flip-xrgb8888.html
* igt@kms_psr@fbc-psr2-primary-blt:
- shard-dg2-set2: [SKIP][213] ([Intel XE#929]) -> [SKIP][214] ([Intel XE#1201] / [Intel XE#929]) +7 other tests skip
[213]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_psr@fbc-psr2-primary-blt.html
[214]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-435/igt@kms_psr@fbc-psr2-primary-blt.html
* igt@kms_psr@psr-sprite-plane-onoff:
- shard-dg2-set2: [SKIP][215] ([Intel XE#1201] / [Intel XE#929]) -> [SKIP][216] ([Intel XE#929]) +11 other tests skip
[215]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-435/igt@kms_psr@psr-sprite-plane-onoff.html
[216]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_psr@psr-sprite-plane-onoff.html
* igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
- shard-dg2-set2: [SKIP][217] ([Intel XE#1149]) -> [SKIP][218] ([Intel XE#1149] / [Intel XE#1201])
[217]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
[218]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-435/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
* igt@kms_rotation_crc@bad-pixel-format:
- shard-dg2-set2: [SKIP][219] ([Intel XE#1201] / [Intel XE#327]) -> [SKIP][220] ([Intel XE#327])
[219]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-435/igt@kms_rotation_crc@bad-pixel-format.html
[220]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_rotation_crc@bad-pixel-format.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
- shard-dg2-set2: [SKIP][221] ([Intel XE#327]) -> [SKIP][222] ([Intel XE#1201] / [Intel XE#327])
[221]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html
[222]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-433/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-dg2-set2: [SKIP][223] ([Intel XE#1201] / [Intel XE#362]) -> [SKIP][224] ([Intel XE#1201] / [Intel XE#1500])
[223]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-463/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
[224]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-466/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
* igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-1:
- shard-adlp: [INCOMPLETE][225] ([Intel XE#1034] / [Intel XE#1195]) -> [DMESG-FAIL][226] ([Intel XE#1608]) +1 other test dmesg-fail
[225]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-adlp-9/igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-1.html
[226]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-8/igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-1.html
* igt@kms_vrr@flip-dpms:
- shard-dg2-set2: [SKIP][227] ([Intel XE#1201] / [Intel XE#455]) -> [SKIP][228] ([Intel XE#455]) +6 other tests skip
[227]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-435/igt@kms_vrr@flip-dpms.html
[228]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@kms_vrr@flip-dpms.html
* igt@xe_compute_preempt@compute-preempt-many:
- shard-dg2-set2: [SKIP][229] ([Intel XE#1280] / [Intel XE#455]) -> [SKIP][230] ([Intel XE#1201] / [Intel XE#1280] / [Intel XE#455]) +1 other test skip
[229]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@xe_compute_preempt@compute-preempt-many.html
[230]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-433/igt@xe_compute_preempt@compute-preempt-many.html
* igt@xe_exec_fault_mode@once-bindexecqueue-rebind-prefetch:
- shard-dg2-set2: [SKIP][231] ([Intel XE#1201] / [Intel XE#288]) -> [SKIP][232] ([Intel XE#288]) +9 other tests skip
[231]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-436/igt@xe_exec_fault_mode@once-bindexecqueue-rebind-prefetch.html
[232]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@xe_exec_fault_mode@once-bindexecqueue-rebind-prefetch.html
* igt@xe_exec_fault_mode@twice-bindexecqueue-rebind-imm:
- shard-dg2-set2: [SKIP][233] ([Intel XE#288]) -> [SKIP][234] ([Intel XE#1201] / [Intel XE#288]) +11 other tests skip
[233]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@xe_exec_fault_mode@twice-bindexecqueue-rebind-imm.html
[234]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-433/igt@xe_exec_fault_mode@twice-bindexecqueue-rebind-imm.html
* igt@xe_gt_freq@freq_suspend:
- shard-adlp: [INCOMPLETE][235] ([Intel XE#1195]) -> [DMESG-FAIL][236] ([Intel XE#1608] / [Intel XE#1782] / [Intel XE#2034])
[235]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-adlp-9/igt@xe_gt_freq@freq_suspend.html
[236]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@xe_gt_freq@freq_suspend.html
* igt@xe_media_fill@media-fill:
- shard-dg2-set2: [SKIP][237] ([Intel XE#1201] / [Intel XE#560]) -> [SKIP][238] ([Intel XE#560])
[237]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-436/igt@xe_media_fill@media-fill.html
[238]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@xe_media_fill@media-fill.html
* igt@xe_pat@display-vs-wb-transient:
- shard-dg2-set2: [SKIP][239] ([Intel XE#1337]) -> [SKIP][240] ([Intel XE#1201] / [Intel XE#1337])
[239]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@xe_pat@display-vs-wb-transient.html
[240]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-435/igt@xe_pat@display-vs-wb-transient.html
* igt@xe_pm@s2idle-exec-after:
- shard-adlp: [DMESG-FAIL][241] ([Intel XE#1608] / [Intel XE#2034]) -> [INCOMPLETE][242] ([Intel XE#1195] / [Intel XE#1358])
[241]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-adlp-6/igt@xe_pm@s2idle-exec-after.html
[242]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-9/igt@xe_pm@s2idle-exec-after.html
* igt@xe_pm@s3-basic-exec:
- shard-dg2-set2: [DMESG-WARN][243] ([Intel XE#1551]) -> [DMESG-WARN][244] ([Intel XE#1214] / [Intel XE#1551])
[243]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-432/igt@xe_pm@s3-basic-exec.html
[244]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-433/igt@xe_pm@s3-basic-exec.html
* igt@xe_pm@s3-exec-after:
- shard-adlp: [DMESG-FAIL][245] ([Intel XE#1608]) -> [ABORT][246] ([Intel XE#1358] / [Intel XE#1608])
[245]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-adlp-2/igt@xe_pm@s3-exec-after.html
[246]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-2/igt@xe_pm@s3-exec-after.html
* igt@xe_pm@s3-vm-bind-prefetch:
- shard-adlp: [DMESG-FAIL][247] ([Intel XE#1608] / [Intel XE#2034]) -> [DMESG-FAIL][248] ([Intel XE#1191] / [Intel XE#2034])
[247]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-adlp-8/igt@xe_pm@s3-vm-bind-prefetch.html
[248]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-4/igt@xe_pm@s3-vm-bind-prefetch.html
* igt@xe_query@multigpu-query-topology-l3-bank-mask:
- shard-dg2-set2: [SKIP][249] ([Intel XE#1201] / [Intel XE#944]) -> [SKIP][250] ([Intel XE#944])
[249]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-435/igt@xe_query@multigpu-query-topology-l3-bank-mask.html
[250]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-432/igt@xe_query@multigpu-query-topology-l3-bank-mask.html
* igt@xe_wedged@wedged-at-any-timeout:
- shard-dg2-set2: [DMESG-FAIL][251] ([Intel XE#1760]) -> [DMESG-WARN][252] ([Intel XE#1214] / [Intel XE#1760])
[251]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-dg2-434/igt@xe_wedged@wedged-at-any-timeout.html
[252]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-dg2-434/igt@xe_wedged@wedged-at-any-timeout.html
- shard-adlp: [DMESG-WARN][253] ([Intel XE#1214] / [Intel XE#1760]) -> [DMESG-FAIL][254] ([Intel XE#1760])
[253]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10/shard-adlp-4/igt@xe_wedged@wedged-at-any-timeout.html
[254]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/shard-adlp-6/igt@xe_wedged@wedged-at-any-timeout.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[Intel XE#1033]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1033
[Intel XE#1034]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1034
[Intel XE#1081]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1081
[Intel XE#1091]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1091
[Intel XE#1122]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1122
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1125]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1125
[Intel XE#1126]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1126
[Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
[Intel XE#1135]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1135
[Intel XE#1137]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1137
[Intel XE#1138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1138
[Intel XE#1149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1149
[Intel XE#1152]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1152
[Intel XE#1191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1191
[Intel XE#1192]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1192
[Intel XE#1195]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1195
[Intel XE#1201]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1201
[Intel XE#1205]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1205
[Intel XE#1211]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1211
[Intel XE#1214]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1214
[Intel XE#1231]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1231
[Intel XE#1242]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1242
[Intel XE#1252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1252
[Intel XE#1280]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1280
[Intel XE#1337]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1337
[Intel XE#1358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1358
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1399
[Intel XE#1401]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1401
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
[Intel XE#1414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1414
[Intel XE#1416]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1416
[Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
[Intel XE#1437]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1437
[Intel XE#1446]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1446
[Intel XE#1462]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1462
[Intel XE#1473]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1473
[Intel XE#1477]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1477
[Intel XE#1500]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1500
[Intel XE#1551]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1551
[Intel XE#1553]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1553
[Intel XE#1595]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1595
[Intel XE#1608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1608
[Intel XE#1609]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1609
[Intel XE#1622]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1622
[Intel XE#1659]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1659
[Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
[Intel XE#1760]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1760
[Intel XE#1782]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1782
[Intel XE#1874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1874
[Intel XE#1901]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1901
[Intel XE#1924]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1924
[Intel XE#2009]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2009
[Intel XE#2024]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2024
[Intel XE#2028]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2028
[Intel XE#2034]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2034
[Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
[Intel XE#261]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/261
[Intel XE#282]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/282
[Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
[Intel XE#305]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/305
[Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
[Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
[Intel XE#308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/308
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#310]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/310
[Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316
[Intel XE#323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/323
[Intel XE#324]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/324
[Intel XE#327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/327
[Intel XE#346]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/346
[Intel XE#355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/355
[Intel XE#361]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/361
[Intel XE#362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/362
[Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/378
[Intel XE#392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/392
[Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
[Intel XE#488]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/488
[Intel XE#498]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/498
[Intel XE#512]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/512
[Intel XE#560]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/560
[Intel XE#584]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/584
[Intel XE#616]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/616
[Intel XE#619]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/619
[Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
[Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#658]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/658
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/718
[Intel XE#756]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/756
[Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
[Intel XE#827]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/827
[Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
[Intel XE#873]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/873
[Intel XE#899]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/899
[Intel XE#908]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/908
[Intel XE#910]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/910
[Intel XE#927]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/927
[Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
[Intel XE#958]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/958
Build changes
-------------
* Linux: xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10 -> xe-pw-134695v2
IGT_7880: 73618605b4370cf902267aaf1d25666ff5e26112 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-1439-bf9d891af55d3785eb9438efb053c991bf2b4b10: bf9d891af55d3785eb9438efb053c991bf2b4b10
xe-pw-134695v2: 134695v2
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134695v2/index.html
[-- Attachment #2: Type: text/html, Size: 95270 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v4 2/7] drm/xe/guc: Copy GuC log prior to dumping
2024-06-11 1:20 ` [PATCH v4 2/7] drm/xe/guc: Copy GuC log prior to dumping John.C.Harrison
@ 2024-06-11 22:30 ` Michal Wajdeczko
2024-06-12 23:36 ` John Harrison
0 siblings, 1 reply; 23+ messages in thread
From: Michal Wajdeczko @ 2024-06-11 22:30 UTC (permalink / raw)
To: John.C.Harrison, Intel-Xe
On 11.06.2024 03:20, John.C.Harrison@Intel.com wrote:
> From: John Harrison <John.C.Harrison@Intel.com>
>
> Refactor the hexdump code into a separate function ready to be used
maybe this separate function shall be promoted to drm_print_blob() ?
> for dumps of other objects. Also change to dumping a host memory copy
> rather than the live GPU buffer object. Doing so helps prevent
> inconsistencies due to the log being updated as it is being dumped. It
> also paves the way for decoupling the save from the print to allow
> inclusion in error reports such as the devcoredump.
>
> Switch to use the dedicated kernel hexdump helper rather than printf.
> The helper makes it easier to print out much wider lines which can
> dramatically reduce the total line count of the dump (useful when
> dumping to dmesg).
as you are changing the format of the output, did you consider switching
over to base64 ?
>
> Another issue with dumping such a large buffer is that it can be slow,
> especially if dumping to dmesg over a serial port. So add a yield to
> prevent the 'task has been stuck for 120s' kernel hang check feature
> from firing.
>
> Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
> ---
> drivers/gpu/drm/xe/xe_guc_debugfs.c | 2 +-
> drivers/gpu/drm/xe/xe_guc_log.c | 119 ++++++++++++++++++++++++----
> drivers/gpu/drm/xe/xe_guc_log.h | 2 +-
> 3 files changed, 106 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_guc_debugfs.c b/drivers/gpu/drm/xe/xe_guc_debugfs.c
> index d3822cbea273..68f1f728c22c 100644
> --- a/drivers/gpu/drm/xe/xe_guc_debugfs.c
> +++ b/drivers/gpu/drm/xe/xe_guc_debugfs.c
> @@ -41,7 +41,7 @@ static int guc_log(struct seq_file *m, void *data)
> struct drm_printer p = drm_seq_file_printer(m);
>
> xe_pm_runtime_get(xe);
> - xe_guc_log_print(&guc->log, &p);
> + xe_guc_log_print(&guc->log, &p, false);
> xe_pm_runtime_put(xe);
>
> return 0;
> diff --git a/drivers/gpu/drm/xe/xe_guc_log.c b/drivers/gpu/drm/xe/xe_guc_log.c
> index a37ee3419428..a35309926271 100644
> --- a/drivers/gpu/drm/xe/xe_guc_log.c
> +++ b/drivers/gpu/drm/xe/xe_guc_log.c
> @@ -9,6 +9,7 @@
>
> #include "xe_bo.h"
> #include "xe_gt.h"
> +#include "xe_gt_printk.h"
> #include "xe_map.h"
> #include "xe_module.h"
>
> @@ -49,32 +50,120 @@ static size_t guc_log_size(void)
> CAPTURE_BUFFER_SIZE;
> }
>
> -void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p)
> +#define BYTES_PER_WORD sizeof(u32)
by WORD isn't we usually mean u16 ? u32 is DWORD
> +#define WORDS_PER_DUMP 8
> +#define DUMPS_PER_LINE 4
> +#define LINES_PER_READ 4
> +#define WORDS_PER_READ (WORDS_PER_DUMP * DUMPS_PER_LINE * LINES_PER_READ)
> +
> +static void xe_hexdump_blob(struct xe_device *xe, const void *blob, size_t size,
> + struct drm_printer *p, bool atomic)
> +{
> + char line_buff[DUMPS_PER_LINE * WORDS_PER_DUMP * 9 + 1];
and magic "9" is from ...
> + const u32 *blob32 = (const u32 *)blob;
> + int i, j, k;
> +
> + if (size % (WORDS_PER_READ * BYTES_PER_WORD)) {
> + u32 remain = size % (WORDS_PER_READ * BYTES_PER_WORD);
> +
> + drm_err(&xe->drm, "Invalid size for hexdump: 0x%lX vs 0x%lX (%d * %ld) -> 0x%X\n",
> + size, WORDS_PER_READ * BYTES_PER_WORD,
> + WORDS_PER_READ, BYTES_PER_WORD, remain);
hmm, all this seems to be due to bad coding by the caller
maybe just
if (WARN_ON(size % (WORDS_PER_READ * BYTES_PER_WORD)))
return;
as this should never happen
> +
> + size -= remain;
> + if (!size)
> + return;
> + }
> +
> + for (i = 0; i < size / BYTES_PER_WORD; i += WORDS_PER_READ) {
> + const u32 *src = ((const u32 *)blob32) + i;
no need to cast, blob32 is already const u32*
> +
> + for (j = 0; j < WORDS_PER_READ; ) {
> + u32 done = 0;
> +
> + for (k = 0; k < DUMPS_PER_LINE; k++) {
> + line_buff[done++] = ' ';
> + done += hex_dump_to_buffer(src + j,
> + sizeof(*src) * (WORDS_PER_READ - j),
> + WORDS_PER_DUMP * BYTES_PER_WORD,
> + BYTES_PER_WORD,
> + line_buff + done,
> + sizeof(line_buff) - done,
> + false);
> + j += WORDS_PER_DUMP;
> + }
> +
> + drm_printf(p, "%s\n", line_buff);
> +
> + /*
> + * If spewing large amounts of data via a serial console,
> + * this can be a very slow process. So be friendly and try
> + * not to cause 'softlockup on CPU' problems.
> + */
> + if (!atomic)
> + cond_resched();
> + }
> + }
> +}
> +
> +#define GUC_LOG_CHUNK_SIZE SZ_2M
> +
missing kernel-doc
> +void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p, bool atomic)
> {
> struct xe_device *xe = log_to_xe(log);
> - size_t size;
> - int i, j;
> + size_t size, remain;
> + void **copy;
> + int num_chunks, i;
>
> xe_assert(xe, log->bo);
>
> + /*
> + * NB: kmalloc has a hard limit well below the maximum GuC log buffer size.
> + * Also, can't use vmalloc as might be called from atomic context. So need
> + * to break the buffer up into smaller chunks that can be allocated.
> + */
> size = log->bo->size;
> + num_chunks = (size + GUC_LOG_CHUNK_SIZE - 1) / GUC_LOG_CHUNK_SIZE;
DIV_ROUND_UP ?
>
> -#define DW_PER_READ 128
> - xe_assert(xe, !(size % (DW_PER_READ * sizeof(u32))));
> - for (i = 0; i < size / sizeof(u32); i += DW_PER_READ) {
> - u32 read[DW_PER_READ];
> + copy = kcalloc(num_chunks, sizeof(*copy), atomic ? GFP_ATOMIC : GFP_KERNEL);
> + if (!copy) {
> + drm_printf(p, "Failed to allocate array x%d", num_chunks);
I'm not sure that caller wants this message in it's printer output
> + return;
> + }
>
> - xe_map_memcpy_from(xe, read, &log->bo->vmap, i * sizeof(u32),
> - DW_PER_READ * sizeof(u32));
> -#define DW_PER_PRINT 4
> - for (j = 0; j < DW_PER_READ / DW_PER_PRINT; ++j) {
> - u32 *print = read + j * DW_PER_PRINT;
> + remain = size;
> + for (i = 0; i < num_chunks; i++) {
> + size_t size = min(GUC_LOG_CHUNK_SIZE, remain);
it's usually bad idea to overlap variable names
>
> - drm_printf(p, "0x%08x 0x%08x 0x%08x 0x%08x\n",
> - *(print + 0), *(print + 1),
> - *(print + 2), *(print + 3));
> + copy[i] = kmalloc(size, atomic ? GFP_ATOMIC : GFP_KERNEL);
> + if (!copy[i]) {
> + drm_printf(p, "Failed to allocate %ld at chunk %d of %d",
> + size, i, num_chunks);
ditto
> + goto out;
> }
> + remain -= size;
> }
> +
> + remain = size;
> + for (i = 0; i < num_chunks; i++) {
> + size_t size = min(GUC_LOG_CHUNK_SIZE, remain);
ditto
> +
> + xe_map_memcpy_from(xe, copy[i], &log->bo->vmap, i * GUC_LOG_CHUNK_SIZE, size);
> + remain -= size;
> + }
> +
> + remain = size;
> + for (i = 0; i < num_chunks; i++) {
> + size_t size = min(GUC_LOG_CHUNK_SIZE, remain);
ditto
> +
> + xe_hexdump_blob(xe, copy[i], size, p, atomic);
> + remain -= size;
> + }
> +
> +out:
> + for (i = 0; i < num_chunks; i++)
> + kfree(copy[i]);
> + kfree(copy);
> }
>
> int xe_guc_log_init(struct xe_guc_log *log)
> diff --git a/drivers/gpu/drm/xe/xe_guc_log.h b/drivers/gpu/drm/xe/xe_guc_log.h
> index 2d25ab28b4b3..5149b492c3b8 100644
> --- a/drivers/gpu/drm/xe/xe_guc_log.h
> +++ b/drivers/gpu/drm/xe/xe_guc_log.h
> @@ -37,7 +37,7 @@ struct drm_printer;
> #define GUC_LOG_LEVEL_MAX GUC_VERBOSITY_TO_LOG_LEVEL(GUC_LOG_VERBOSITY_MAX)
>
> int xe_guc_log_init(struct xe_guc_log *log);
> -void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p);
> +void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p, bool atomic);
>
> static inline u32
> xe_guc_log_get_level(struct xe_guc_log *log)
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v4 3/7] drm/xe/guc: Use a two stage dump for GuC logs and add more info
2024-06-11 1:20 ` [PATCH v4 3/7] drm/xe/guc: Use a two stage dump for GuC logs and add more info John.C.Harrison
@ 2024-06-11 22:49 ` Michal Wajdeczko
2024-06-12 23:52 ` John Harrison
0 siblings, 1 reply; 23+ messages in thread
From: Michal Wajdeczko @ 2024-06-11 22:49 UTC (permalink / raw)
To: John.C.Harrison, Intel-Xe
On 11.06.2024 03:20, John.C.Harrison@Intel.com wrote:
> From: John Harrison <John.C.Harrison@Intel.com>
>
> Split the GuC log dump into a two stage snapshot and print mechanism.
> This allows the log to be captured at the point of an error (which may
> be in a resticted context) and then dump it out later (from a regular
typo
> context such as a worker function or a sysfs file handler).
>
> Also add a bunch of other useful pieces of information that can help
> (or are fundamentally required!) to decode and parse the log.
>
> Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
> ---
> drivers/gpu/drm/xe/regs/xe_guc_regs.h | 1 +
> drivers/gpu/drm/xe/xe_guc_log.c | 150 ++++++++++++++++++++------
> drivers/gpu/drm/xe/xe_guc_log.h | 6 ++
> drivers/gpu/drm/xe/xe_guc_log_types.h | 29 +++++
> 4 files changed, 155 insertions(+), 31 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/regs/xe_guc_regs.h b/drivers/gpu/drm/xe/regs/xe_guc_regs.h
> index a5fd14307f94..b27b73680c12 100644
> --- a/drivers/gpu/drm/xe/regs/xe_guc_regs.h
> +++ b/drivers/gpu/drm/xe/regs/xe_guc_regs.h
> @@ -84,6 +84,7 @@
> #define HUC_LOADING_AGENT_GUC REG_BIT(1)
> #define GUC_WOPCM_OFFSET_VALID REG_BIT(0)
> #define GUC_MAX_IDLE_COUNT XE_REG(0xc3e4)
> +#define GUC_PMTIMESTAMP XE_REG(0xc3e8)
>
> #define GUC_SEND_INTERRUPT XE_REG(0xc4c8)
> #define GUC_SEND_TRIGGER REG_BIT(0)
> diff --git a/drivers/gpu/drm/xe/xe_guc_log.c b/drivers/gpu/drm/xe/xe_guc_log.c
> index a35309926271..a35d3cc0c369 100644
> --- a/drivers/gpu/drm/xe/xe_guc_log.c
> +++ b/drivers/gpu/drm/xe/xe_guc_log.c
> @@ -7,12 +7,20 @@
>
> #include <drm/drm_managed.h>
>
> +#include "regs/xe_guc_regs.h"
> #include "xe_bo.h"
> #include "xe_gt.h"
> #include "xe_gt_printk.h"
> #include "xe_map.h"
> +#include "xe_mmio.h"
> #include "xe_module.h"
>
> +static struct xe_guc *
> +log_to_guc(struct xe_guc_log *log)
any reason why to split signature into two lines?
> +{
> + return container_of(log, struct xe_guc, log);
> +}
> +
> static struct xe_gt *
> log_to_gt(struct xe_guc_log *log)
> {
> @@ -108,62 +116,142 @@ static void xe_hexdump_blob(struct xe_device *xe, const void *blob, size_t size,
>
> #define GUC_LOG_CHUNK_SIZE SZ_2M
>
> -void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p, bool atomic)
no kernel-doc
> +struct xe_guc_log_snapshot *xe_guc_log_snapshot_alloc(struct xe_guc_log *log, bool atomic)
> {
> - struct xe_device *xe = log_to_xe(log);
> - size_t size, remain;
> - void **copy;
> - int num_chunks, i;
> + struct xe_guc_log_snapshot *snapshot;
> + size_t remain;
> + int i;
>
> - xe_assert(xe, log->bo);
> + snapshot = kzalloc(sizeof(*snapshot), atomic ? GFP_ATOMIC : GFP_KERNEL);
> + if (!snapshot)
> + return NULL;
>
> /*
> * NB: kmalloc has a hard limit well below the maximum GuC log buffer size.
> * Also, can't use vmalloc as might be called from atomic context. So need
> * to break the buffer up into smaller chunks that can be allocated.
> */
> - size = log->bo->size;
> - num_chunks = (size + GUC_LOG_CHUNK_SIZE - 1) / GUC_LOG_CHUNK_SIZE;
> + snapshot->size = log->bo->size;
> + snapshot->num_chunks = (snapshot->size + GUC_LOG_CHUNK_SIZE - 1) / GUC_LOG_CHUNK_SIZE;
>
> - copy = kcalloc(num_chunks, sizeof(*copy), atomic ? GFP_ATOMIC : GFP_KERNEL);
> - if (!copy) {
> - drm_printf(p, "Failed to allocate array x%d", num_chunks);
> - return;
> - }
> + snapshot->copy = kcalloc(snapshot->num_chunks, sizeof(*snapshot->copy),
> + atomic ? GFP_ATOMIC : GFP_KERNEL);
> + if (!snapshot->copy)
> + goto fail_snap;
>
> - remain = size;
> - for (i = 0; i < num_chunks; i++) {
> + remain = snapshot->size;
> + for (i = 0; i < snapshot->num_chunks; i++) {
> size_t size = min(GUC_LOG_CHUNK_SIZE, remain);
>
> - copy[i] = kmalloc(size, atomic ? GFP_ATOMIC : GFP_KERNEL);
> - if (!copy[i]) {
> - drm_printf(p, "Failed to allocate %ld at chunk %d of %d",
> - size, i, num_chunks);
> - goto out;
> - }
> + snapshot->copy[i] = kmalloc(size, atomic ? GFP_ATOMIC : GFP_KERNEL);
> + if (!snapshot->copy[i])
> + goto fail_copy;
> remain -= size;
> }
>
> - remain = size;
> - for (i = 0; i < num_chunks; i++) {
> + return snapshot;
> +
> +fail_copy:
> + for (i = 0; i < snapshot->num_chunks; i++)
> + kfree(snapshot->copy[i]);
> + kfree(snapshot->copy);
> +fail_snap:
> + kfree(snapshot);
> + return NULL;
> +}
> +
> +void xe_guc_log_snapshot_free(struct xe_guc_log_snapshot *snapshot)
> +{
> + int i;
> +
> + if (!snapshot)
> + return;
> +
> + if (!snapshot->copy) {
> + for (i = 0; i < snapshot->num_chunks; i++)
> + kfree(snapshot->copy[i]);
> + kfree(snapshot->copy);
> + }
> +
> + kfree(snapshot);
> +}
> +
> +struct xe_guc_log_snapshot *xe_guc_log_snapshot_capture(struct xe_guc_log *log, bool atomic)
> +{
> + struct xe_guc_log_snapshot *snapshot;
> + struct xe_device *xe = log_to_xe(log);
> + struct xe_guc *guc = log_to_guc(log);
> + struct xe_gt *gt = log_to_gt(log);
> + size_t remain;
> + int i;
> +
> + if (!log->bo) {
> + xe_gt_err(gt, "GuC log not allocated!\n");
> + return NULL;
> + }
> +
> + snapshot = xe_guc_log_snapshot_alloc(log, atomic);
> + if (!snapshot) {
> + xe_gt_err(gt, "GuC log snapshot not allocated!\n");
> + return NULL;
> + }
> +
> + remain = snapshot->size;
> + for (i = 0; i < snapshot->num_chunks; i++) {
> size_t size = min(GUC_LOG_CHUNK_SIZE, remain);
>
> - xe_map_memcpy_from(xe, copy[i], &log->bo->vmap, i * GUC_LOG_CHUNK_SIZE, size);
> + xe_map_memcpy_from(xe, snapshot->copy[i], &log->bo->vmap,
> + i * GUC_LOG_CHUNK_SIZE, size);
> remain -= size;
> }
>
> - remain = size;
> - for (i = 0; i < num_chunks; i++) {
> + snapshot->ktime = ktime_get_boottime_ns();
> + snapshot->stamp = xe_mmio_read32(gt, GUC_PMTIMESTAMP);
> + snapshot->ref_clk = gt->info.reference_clock;
> + snapshot->level = log->level;
> + snapshot->ver_found = guc->fw.versions.found[XE_UC_FW_VER_RELEASE];
> + snapshot->ver_want = guc->fw.versions.wanted;
> + snapshot->path = guc->fw.path;
shouldn't we use kstrdup() instead ?
> +
> + return snapshot;
> +}
> +
> +void xe_guc_log_snapshot_print(struct xe_device *xe, struct xe_guc_log_snapshot *snapshot,
> + struct drm_printer *p, bool atomic)
> +{
> + size_t remain;
> + int i;
> +
> + if (!snapshot) {
> + drm_printf(p, "GuC log snapshot not allocated!\n");
> + return;
> + }
> +
> + drm_printf(p, "GuC version %u.%u.%u (wanted %u.%u.%u)\n",
> + snapshot->ver_found.major, snapshot->ver_found.minor, snapshot->ver_found.patch,
> + snapshot->ver_want.major, snapshot->ver_want.minor, snapshot->ver_want.patch);
> + drm_printf(p, "GuC firmware: %s\n", snapshot->path);
> + drm_printf(p, "Kernel timestamp: 0x%08llX [%llu]\n", snapshot->ktime, snapshot->ktime);
> + drm_printf(p, "GuC timestamp: 0x%08X [%u]\n", snapshot->stamp, snapshot->stamp);
> + drm_printf(p, "CS timestamp frequency: %u Hz\n", snapshot->ref_clk);
> + drm_printf(p, "Log level: %u\n", snapshot->level);
> +
> + remain = snapshot->size;
> + for (i = 0; i < snapshot->num_chunks; i++) {
> size_t size = min(GUC_LOG_CHUNK_SIZE, remain);
>
> - xe_hexdump_blob(xe, copy[i], size, p, atomic);
> + xe_hexdump_blob(xe, snapshot->copy[i], size, p, atomic);
we really should get rid of xe in xe_hexdump_blob
> remain -= size;
> }
> +}
> +
> +void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p, bool atomic)
> +{
> + struct xe_guc_log_snapshot *snapshot;
>
> -out:
> - for (i = 0; i < num_chunks; i++)
> - kfree(copy[i]);
> - kfree(copy);
> + snapshot = xe_guc_log_snapshot_capture(log, atomic);
> + xe_guc_log_snapshot_print(log_to_xe(log), snapshot, p, atomic);
> + xe_guc_log_snapshot_free(snapshot);
> }
>
> int xe_guc_log_init(struct xe_guc_log *log)
> diff --git a/drivers/gpu/drm/xe/xe_guc_log.h b/drivers/gpu/drm/xe/xe_guc_log.h
> index 5149b492c3b8..6e4d0b369c19 100644
> --- a/drivers/gpu/drm/xe/xe_guc_log.h
> +++ b/drivers/gpu/drm/xe/xe_guc_log.h
> @@ -9,6 +9,7 @@
> #include "xe_guc_log_types.h"
>
> struct drm_printer;
> +struct xe_device;
>
> #if IS_ENABLED(CONFIG_DRM_XE_LARGE_GUC_BUFFER)
> #define CRASH_BUFFER_SIZE SZ_1M
> @@ -38,6 +39,11 @@ struct drm_printer;
>
> int xe_guc_log_init(struct xe_guc_log *log);
> void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p, bool atomic);
> +struct xe_guc_log_snapshot *xe_guc_log_snapshot_alloc(struct xe_guc_log *log, bool atomic);
> +struct xe_guc_log_snapshot *xe_guc_log_snapshot_capture(struct xe_guc_log *log, bool atomic);
> +void xe_guc_log_snapshot_print(struct xe_device *xe, struct xe_guc_log_snapshot *snapshot,
> + struct drm_printer *p, bool atomic);
> +void xe_guc_log_snapshot_free(struct xe_guc_log_snapshot *snapshot);
>
> static inline u32
> xe_guc_log_get_level(struct xe_guc_log *log)
> diff --git a/drivers/gpu/drm/xe/xe_guc_log_types.h b/drivers/gpu/drm/xe/xe_guc_log_types.h
> index 125080d138a7..e3a6a44c2f18 100644
> --- a/drivers/gpu/drm/xe/xe_guc_log_types.h
> +++ b/drivers/gpu/drm/xe/xe_guc_log_types.h
> @@ -8,8 +8,37 @@
>
> #include <linux/types.h>
>
> +#include "xe_uc_fw_types.h"
> +
> struct xe_bo;
>
> +/**
> + * struct xe_guc_log_snapshot:
> + * Capture of the GuC log plus various state useful for decoding the log
> + */
> +struct xe_guc_log_snapshot {
> + /** @size: Size in bytes of the @copy allocation */
> + size_t size;
> + /** @copy: Host memory copy of the log buffer for later dumping, split into chunks */
> + void **copy;
> + /** @num_chunks: Number of chunks withint @copy */
typo
> + int num_chunks;
> + /** @ktime: Kernel time the snapshot was taken */
> + u64 ktime;
> + /** @stamp: GuC timestamp at which the snapshot was taken */
> + u32 stamp;
> + /** @ref_clk: GuC timestamp frequency */
> + u32 ref_clk;
> + /** @level: GuC log verbosity level */
> + u32 level;
> + /** @ver_found: GuC firmware version */
> + struct xe_uc_fw_version ver_found;
didn't you mention that platform and/or revision is also mandatory to
correctly decode GuC log ?
> + /** @ver_want: GuC firmware version that driver expected */
> + struct xe_uc_fw_version ver_want;
I'm still not convinced that it's relevant to the actual GuC log what
driver wanted to use - this should be part of the GuC snapshot instead
> + /** @path: Path of GuC firmware blob */
> + const char *path;
ditto
> +};
> +
> /**
> * struct xe_guc_log - GuC log
> */
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v4 6/7] drm/xe/guc: Dead CT helper
2024-06-11 1:20 ` [PATCH v4 6/7] drm/xe/guc: Dead CT helper John.C.Harrison
@ 2024-06-11 23:20 ` Michal Wajdeczko
2024-06-13 0:43 ` John Harrison
0 siblings, 1 reply; 23+ messages in thread
From: Michal Wajdeczko @ 2024-06-11 23:20 UTC (permalink / raw)
To: John.C.Harrison, Intel-Xe
On 11.06.2024 03:20, John.C.Harrison@Intel.com wrote:
> From: John Harrison <John.C.Harrison@Intel.com>
>
> Add a worker function helper for asynchronously dumping state when an
> internal/fatal error is detected in CT processing. Being asynchronous
> is required to avoid deadlocks and scheduling-while-atomic or
> process-stalled-for-too-long issues. Also check for a bunch more error
> conditions and improve the handling of some existing checks.
>
> Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
> ---
> .../drm/xe/abi/guc_communication_ctb_abi.h | 1 +
> drivers/gpu/drm/xe/xe_guc_ct.c | 257 ++++++++++++++++--
> drivers/gpu/drm/xe/xe_guc_ct_types.h | 22 ++
> 3 files changed, 259 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h b/drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h
> index 8f86a16dc577..f58198cf2cf6 100644
> --- a/drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h
> +++ b/drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h
> @@ -52,6 +52,7 @@ struct guc_ct_buffer_desc {
> #define GUC_CTB_STATUS_OVERFLOW (1 << 0)
> #define GUC_CTB_STATUS_UNDERFLOW (1 << 1)
> #define GUC_CTB_STATUS_MISMATCH (1 << 2)
> +#define GUC_CTB_STATUS_DISABLED (1 << 3)
> u32 reserved[13];
> } __packed;
> static_assert(sizeof(struct guc_ct_buffer_desc) == 64);
> diff --git a/drivers/gpu/drm/xe/xe_guc_ct.c b/drivers/gpu/drm/xe/xe_guc_ct.c
> index fd74243c416c..744402f9e774 100644
> --- a/drivers/gpu/drm/xe/xe_guc_ct.c
> +++ b/drivers/gpu/drm/xe/xe_guc_ct.c
> @@ -25,12 +25,58 @@
> #include "xe_gt_sriov_pf_monitor.h"
> #include "xe_gt_tlb_invalidation.h"
> #include "xe_guc.h"
> +#include "xe_guc_log.h"
> #include "xe_guc_relay.h"
> #include "xe_guc_submit.h"
> #include "xe_map.h"
> #include "xe_pm.h"
> #include "xe_trace.h"
>
> +#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
> +enum {
> + CT_DEAD_ALIVE = 0,
> + CT_DEAD_RESET, /* 0x0001 */
all these annotations seem to be wrong as CT_DEAD_RESET is 1 and
(1 << CT_DEAD_RESET) will be 0x0002
> + CT_DEAD_SETUP, /* 0x0002 */
> + CT_DEAD_H2G_WRITE, /* 0x0004 */
> + CT_DEAD_H2G_HAS_ROOM, /* 0x0008 */
> + CT_DEAD_G2H_READ, /* 0x0010 */
> + CT_DEAD_G2H_RECV, /* 0x0020 */
> + CT_DEAD_G2H_RELEASE, /* 0x0040 */
> + CT_DEAD_DEADLOCK, /* 0x0080 */
> + CT_DEAD_PROCESS_FAILED, /* 0x0100 */
> + CT_DEAD_FAST_G2H, /* 0x0200 */
> + CT_DEAD_PARSE_G2H_RESPONSE, /* 0x0400 */
> + CT_DEAD_PARSE_G2H_UNKNOWN, /* 0x0800 */
> + CT_DEAD_PARSE_G2H_ORIGIN, /* 0x1000 */
> + CT_DEAD_PARSE_G2H_TYPE, /* 0x2000 */
> +};
> +
> +static void ct_dead_worker_func(struct work_struct *w);
> +
> +#define CT_DEAD(ct, hxg, reason_code) \
by hxg we usually mean actual message, not guc_ctb (which, btw shall be
named xe_guc_ctb)
> + do { \
> + struct guc_ctb *_hxg = (hxg); \
> + if (_hxg) \
> + _hxg->info.broken = true; \
> + if (!(ct)->dead.reported) { \
> + struct xe_guc *guc = ct_to_guc(ct); \
> + spin_lock_irq(&ct->dead.lock); \
> + (ct)->dead.reason |= 1 << CT_DEAD_##reason_code; \
> + (ct)->dead.snapshot_log = xe_guc_log_snapshot_capture(&guc->log, true); \
> + (ct)->dead.snapshot_ct = xe_guc_ct_snapshot_capture((ct), true); \
> + spin_unlock_irq(&ct->dead.lock); \
> + queue_work(system_unbound_wq, &(ct)->dead.worker); \
> + } \
> + } while (0)
for clarity, can you align trailing \ at the most right column
> +#else
> +#define CT_DEAD(ct, hxg, reason) \
> + do { \
> + struct guc_ctb *_hxg = (hxg); \
> + if (_hxg) \
> + _hxg->info.broken = true; \
> + } while (0)
> +#endif
> +
> /* Used when a CT send wants to block and / or receive data */
> struct g2h_fence {
> u32 *response_buffer;
> @@ -158,6 +204,10 @@ int xe_guc_ct_init(struct xe_guc_ct *ct)
> xa_init(&ct->fence_lookup);
> INIT_WORK(&ct->g2h_worker, g2h_worker_func);
> INIT_DELAYED_WORK(&ct->safe_mode_worker, safe_mode_worker_func);
> +#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
> + spin_lock_init(&ct->dead.lock);
> + INIT_WORK(&ct->dead.worker, ct_dead_worker_func);
> +#endif
> init_waitqueue_head(&ct->wq);
> init_waitqueue_head(&ct->g2h_fence_wq);
>
> @@ -392,10 +442,18 @@ int xe_guc_ct_enable(struct xe_guc_ct *ct)
> if (ct_needs_safe_mode(ct))
> ct_enter_safe_mode(ct);
>
> +#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
> + spin_lock_irq(&ct->dead.lock);
> + if (ct->dead.reason)
> + ct->dead.reason |= CT_DEAD_RESET;
can you explain why RESET ? it's 'enable' call
> + spin_unlock_irq(&ct->dead.lock);
> +#endif
> +
> return 0;
>
> err_out:
> xe_gt_err(gt, "Failed to enable GuC CT (%pe)\n", ERR_PTR(err));
> + CT_DEAD(ct, NULL, SETUP);
>
> return err;
> }
> @@ -439,6 +497,19 @@ static bool h2g_has_room(struct xe_guc_ct *ct, u32 cmd_len)
>
> if (cmd_len > h2g->info.space) {
> h2g->info.head = desc_read(ct_to_xe(ct), h2g, head);
> +
> + if (h2g->info.head > h2g->info.size) {
> + struct xe_device *xe = ct_to_xe(ct);
> + u32 desc_status = desc_read(xe, h2g, status);
> +
> + desc_write(xe, h2g, status, desc_status | GUC_CTB_STATUS_OVERFLOW);
> +
> + xe_gt_err(ct_to_gt(ct), "CT: invalid head offset %u >= %u)\n",
> + h2g->info.head, h2g->info.size);
> + CT_DEAD(ct, h2g, H2G_HAS_ROOM);
> + return false;
> + }
> +
> h2g->info.space = CIRC_SPACE(h2g->info.tail, h2g->info.head,
> h2g->info.size) -
> h2g->info.resv_space;
> @@ -490,8 +561,16 @@ static void __g2h_reserve_space(struct xe_guc_ct *ct, u32 g2h_len, u32 num_g2h)
> static void __g2h_release_space(struct xe_guc_ct *ct, u32 g2h_len)
> {
> lockdep_assert_held(&ct->fast_lock);
> - xe_gt_assert(ct_to_gt(ct), ct->ctbs.g2h.info.space + g2h_len <=
> - ct->ctbs.g2h.info.size - ct->ctbs.g2h.info.resv_space);
> + if (ct->ctbs.g2h.info.space + g2h_len >
> + ct->ctbs.g2h.info.size - ct->ctbs.g2h.info.resv_space) {
> + xe_gt_err(ct_to_gt(ct), "Invalid G2H release: %d + %d vs %d - %d -> %d vs %d!\n",
> + ct->ctbs.g2h.info.space, g2h_len,
> + ct->ctbs.g2h.info.size, ct->ctbs.g2h.info.resv_space,
> + ct->ctbs.g2h.info.space + g2h_len,
> + ct->ctbs.g2h.info.size - ct->ctbs.g2h.info.resv_space);
> + CT_DEAD(ct, &ct->ctbs.g2h, G2H_RELEASE);
> + return;
> + }
>
> ct->ctbs.g2h.info.space += g2h_len;
> --ct->g2h_outstanding;
> @@ -517,12 +596,44 @@ static int h2g_write(struct xe_guc_ct *ct, const u32 *action, u32 len,
> u32 full_len;
> struct iosys_map map = IOSYS_MAP_INIT_OFFSET(&h2g->cmds,
> tail * sizeof(u32));
> + u32 desc_status;
>
> full_len = len + GUC_CTB_HDR_LEN;
>
> lockdep_assert_held(&ct->lock);
> xe_gt_assert(gt, full_len <= GUC_CTB_MSG_MAX_LEN);
> - xe_gt_assert(gt, tail <= h2g->info.size);
> +
> + desc_status = desc_read(xe, h2g, status);
> + if (desc_status) {
> + xe_gt_err(gt, "CT write: non-zero status: %u\n", desc_status);
> + goto corrupted;
> + }
> +
> +#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
likely you can use
if (IS_ENABLED(CONFIG_DRM_XE_DEBUG))
and use normal indent
> +{
> + u32 desc_tail = desc_read(xe, h2g, tail);
> + u32 desc_head = desc_read(xe, h2g, head);
> +
> + if (tail != desc_tail) {
> + desc_write(xe, h2g, status, desc_status | GUC_CTB_STATUS_MISMATCH);
> + xe_gt_err(gt, "CT write: tail was modified %u != %u\n", desc_tail, tail);
> + goto corrupted;
> + }
> +
> + if (tail > h2g->info.size) {
> + desc_write(xe, h2g, status, desc_status | GUC_CTB_STATUS_OVERFLOW);
> + xe_gt_err(gt, "CT write: tail out of range: %u vs %u\n", tail, h2g->info.size);
> + goto corrupted;
> + }
> +
> + if (desc_head >= h2g->info.size) {
> + desc_write(xe, h2g, status, desc_status | GUC_CTB_STATUS_OVERFLOW);
> + xe_gt_err(gt, "CT write: invalid head offset %u >= %u)\n",
> + desc_head, h2g->info.size);
> + goto corrupted;
> + }
> +}
> +#endif
>
> /* Command will wrap, zero fill (NOPs), return and check credits again */
> if (tail + full_len > h2g->info.size) {
> @@ -575,6 +686,10 @@ static int h2g_write(struct xe_guc_ct *ct, const u32 *action, u32 len,
> desc_read(xe, h2g, head), h2g->info.tail);
>
> return 0;
> +
> +corrupted:
> + CT_DEAD(ct, &ct->ctbs.h2g, H2G_WRITE);
> + return -EPIPE;
> }
>
> /*
> @@ -685,7 +800,6 @@ static int guc_ct_send_locked(struct xe_guc_ct *ct, const u32 *action, u32 len,
> struct g2h_fence *g2h_fence)
> {
> struct xe_gt *gt = ct_to_gt(ct);
> - struct drm_printer p = xe_gt_info_printer(gt);
> unsigned int sleep_period_ms = 1;
> int ret;
>
> @@ -738,8 +852,13 @@ static int guc_ct_send_locked(struct xe_guc_ct *ct, const u32 *action, u32 len,
> goto broken;
> #undef g2h_avail
>
> - if (dequeue_one_g2h(ct) < 0)
> + ret = dequeue_one_g2h(ct);
> + if (ret < 0) {
> + if (ret != -ECANCELED)
> + xe_gt_err(ct_to_gt(ct), "CTB receive failed (%pe)",
> + ERR_PTR(ret));
> goto broken;
> + }
>
> goto try_again;
> }
> @@ -748,8 +867,7 @@ static int guc_ct_send_locked(struct xe_guc_ct *ct, const u32 *action, u32 len,
>
> broken:
> xe_gt_err(gt, "No forward process on H2G, reset required\n");
> - xe_guc_ct_print(ct, &p, true);
> - ct->ctbs.h2g.info.broken = true;
> + CT_DEAD(ct, &ct->ctbs.h2g, DEADLOCK);
>
> return -EDEADLK;
> }
> @@ -976,6 +1094,7 @@ static int parse_g2h_response(struct xe_guc_ct *ct, u32 *msg, u32 len)
> else
> xe_gt_err(gt, "unexpected response %u for FAST_REQ H2G fence 0x%x!\n",
> type, fence);
> + CT_DEAD(ct, NULL, PARSE_G2H_RESPONSE);
>
> return -EPROTO;
> }
> @@ -984,8 +1103,9 @@ static int parse_g2h_response(struct xe_guc_ct *ct, u32 *msg, u32 len)
> if (unlikely(!g2h_fence)) {
> /* Don't tear down channel, as send could've timed out */
> xe_gt_warn(gt, "G2H fence (%u) not found!\n", fence);
> + CT_DEAD(ct, NULL, PARSE_G2H_UNKNOWN);
> g2h_release_space(ct, GUC_CTB_HXG_MSG_MAX_LEN);
> - return 0;
> + return -EPROTO;
> }
>
> xe_gt_assert(gt, fence == g2h_fence->seqno);
> @@ -1027,7 +1147,7 @@ static int parse_g2h_msg(struct xe_guc_ct *ct, u32 *msg, u32 len)
> if (unlikely(origin != GUC_HXG_ORIGIN_GUC)) {
> xe_gt_err(gt, "G2H channel broken on read, origin=%u, reset required\n",
> origin);
> - ct->ctbs.g2h.info.broken = true;
> + CT_DEAD(ct, &ct->ctbs.g2h, PARSE_G2H_ORIGIN);
>
> return -EPROTO;
> }
> @@ -1045,7 +1165,7 @@ static int parse_g2h_msg(struct xe_guc_ct *ct, u32 *msg, u32 len)
> default:
> xe_gt_err(gt, "G2H channel broken on read, type=%u, reset required\n",
> type);
> - ct->ctbs.g2h.info.broken = true;
> + CT_DEAD(ct, &ct->ctbs.g2h, PARSE_G2H_TYPE);
>
> ret = -EOPNOTSUPP;
> }
> @@ -1122,9 +1242,11 @@ static int process_g2h_msg(struct xe_guc_ct *ct, u32 *msg, u32 len)
> xe_gt_err(gt, "unexpected G2H action 0x%04x\n", action);
> }
>
> - if (ret)
> + if (ret) {
> xe_gt_err(gt, "G2H action 0x%04x failed (%pe)\n",
> action, ERR_PTR(ret));
> + CT_DEAD(ct, NULL, PROCESS_FAILED);
I'm not sure this warrants triggering CT_DEAD
or at least I just hope it wont trigger full GuC log dump into dmesg
that would kill normal debug/bringup activities
> + }
>
> return 0;
> }
> @@ -1134,7 +1256,7 @@ static int g2h_read(struct xe_guc_ct *ct, u32 *msg, bool fast_path)
> struct xe_device *xe = ct_to_xe(ct);
> struct xe_gt *gt = ct_to_gt(ct);
> struct guc_ctb *g2h = &ct->ctbs.g2h;
> - u32 tail, head, len;
> + u32 tail, head, len, desc_status;
> s32 avail;
> u32 action;
> u32 *hxg;
> @@ -1153,6 +1275,52 @@ static int g2h_read(struct xe_guc_ct *ct, u32 *msg, bool fast_path)
>
> xe_gt_assert(gt, xe_guc_ct_enabled(ct));
>
> + desc_status = desc_read(xe, g2h, status);
> + if (desc_status) {
> + if (desc_status & GUC_CTB_STATUS_DISABLED) {
> + /*
> + * Potentially valid if a CLIENT_RESET request resulted in
> + * contexts/engines being reset. But should never happen as
> + * no contexts should be active when CLIENT_RESET is sent.
> + */
> + xe_gt_err(gt, "CT read: unexpected G2H after GuC has stopped!\n");
> + desc_status &= ~GUC_CTB_STATUS_DISABLED;
> + }
> +
> + if (desc_status) {
> + xe_gt_err(gt, "CT read: non-zero status: %u\n", desc_status);
> + goto corrupted;
> + }
> + }
> +
> +#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
again, use if() not #if
> +{
> + u32 desc_tail = desc_read(xe, g2h, tail);
> + u32 desc_head = desc_read(xe, g2h, head);
> +
> + if (g2h->info.head != desc_head) {
> + desc_write(xe, g2h, status, desc_status | GUC_CTB_STATUS_MISMATCH);
> + xe_gt_err(gt, "CT read: head was modified %u != %u\n",
> + desc_head, g2h->info.head);
> + goto corrupted;
> + }
> +
> + if (g2h->info.head > g2h->info.size) {
> + desc_write(xe, g2h, status, desc_status | GUC_CTB_STATUS_OVERFLOW);
> + xe_gt_err(gt, "CT read: head out of range: %u vs %u\n",
> + g2h->info.head, g2h->info.size);
> + goto corrupted;
> + }
> +
> + if (desc_tail >= g2h->info.size) {
> + desc_write(xe, g2h, status, desc_status | GUC_CTB_STATUS_OVERFLOW);
> + xe_gt_err(gt, "CT read: invalid tail offset %u >= %u)\n",
> + desc_tail, g2h->info.size);
> + goto corrupted;
> + }
> +}
> +#endif
> +
> /* Calculate DW available to read */
> tail = desc_read(xe, g2h, tail);
> avail = tail - g2h->info.head;
> @@ -1169,9 +1337,7 @@ static int g2h_read(struct xe_guc_ct *ct, u32 *msg, bool fast_path)
> if (len > avail) {
> xe_gt_err(gt, "G2H channel broken on read, avail=%d, len=%d, reset required\n",
> avail, len);
> - g2h->info.broken = true;
> -
> - return -EPROTO;
> + goto corrupted;
> }
>
> head = (g2h->info.head + 1) % g2h->info.size;
> @@ -1217,6 +1383,10 @@ static int g2h_read(struct xe_guc_ct *ct, u32 *msg, bool fast_path)
> g2h->info.head, tail);
>
> return len;
> +
> +corrupted:
> + CT_DEAD(ct, &ct->ctbs.g2h, G2H_READ);
> + return -EPROTO;
> }
>
> static void g2h_fast_path(struct xe_guc_ct *ct, u32 *msg, u32 len)
> @@ -1243,9 +1413,11 @@ static void g2h_fast_path(struct xe_guc_ct *ct, u32 *msg, u32 len)
> xe_gt_warn(gt, "NOT_POSSIBLE");
> }
>
> - if (ret)
> + if (ret) {
> xe_gt_err(gt, "G2H action 0x%04x failed (%pe)\n",
> action, ERR_PTR(ret));
> + CT_DEAD(ct, NULL, FAST_G2H);
> + }
> }
>
> /**
> @@ -1305,7 +1477,6 @@ static int dequeue_one_g2h(struct xe_guc_ct *ct)
>
> static void receive_g2h(struct xe_guc_ct *ct)
> {
> - struct xe_gt *gt = ct_to_gt(ct);
> bool ongoing;
> int ret;
>
> @@ -1342,9 +1513,8 @@ static void receive_g2h(struct xe_guc_ct *ct)
> mutex_unlock(&ct->lock);
>
> if (unlikely(ret == -EPROTO || ret == -EOPNOTSUPP)) {
> - struct drm_printer p = xe_gt_info_printer(gt);
> -
> - xe_guc_ct_print(ct, &p, false);
> + xe_gt_err(ct_to_gt(ct), "CT dequeue failed: %d", ret);
> + CT_DEAD(ct, NULL, G2H_RECV);
> kick_reset(ct);
> }
> } while (ret == 1);
> @@ -1374,7 +1544,7 @@ static void guc_ctb_snapshot_capture(struct xe_device *xe, struct guc_ctb *ctb,
> atomic ? GFP_ATOMIC : GFP_KERNEL);
>
> if (!snapshot->cmds) {
> - drm_err(&xe->drm, "Skipping CTB commands snapshot. Only CTB info will be available.\n");
> + drm_err(&xe->drm, "Skipping CTB commands snapshot. Only CT info will be available.\n");
> return;
> }
>
> @@ -1532,3 +1702,48 @@ void xe_guc_ct_print(struct xe_guc_ct *ct, struct drm_printer *p, bool atomic)
> xe_guc_ct_snapshot_print(snapshot, p);
> xe_guc_ct_snapshot_free(snapshot);
> }
> +
> +#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
> +static void ct_dead_print(struct xe_dead_ct *dead)
> +{
> + struct xe_guc_ct *ct = container_of(dead, struct xe_guc_ct, dead);
> + struct xe_gt *gt = ct_to_gt(ct);
> + static int g_count;
> + struct drm_printer ip = xe_gt_info_printer(gt);
> + struct drm_printer lp = drm_line_printer(&ip, "Capture", ++g_count);
> +
> + if (!dead->reason) {
> + xe_gt_err(gt, "CTB is dead for no reason!?\n");
> + return;
> + }
> +
> + drm_printf(&lp, "CTB is dead - reason=0x%X\n", dead->reason);
> +
> + xe_guc_log_snapshot_print(ct_to_xe(ct), dead->snapshot_log, &lp, false);
> + xe_guc_ct_snapshot_print(dead->snapshot_ct, &lp);
> +
> + drm_printf(&lp, "Done.\n");
> +}
> +
> +static void ct_dead_worker_func(struct work_struct *w)
> +{
> + struct xe_guc_ct *ct = container_of(w, struct xe_guc_ct, dead.worker);
> +
> + if (!ct->dead.reported) {
> + ct->dead.reported = true;
> + ct_dead_print(&ct->dead);
> + }
> +
> + spin_lock_irq(&ct->dead.lock);
> +
> + xe_guc_log_snapshot_free(ct->dead.snapshot_log);
> + xe_guc_ct_snapshot_free(ct->dead.snapshot_ct);
> +
> + if (ct->dead.reason & CT_DEAD_RESET) {
> + ct->dead.reason = CT_DEAD_ALIVE;
> + ct->dead.reported = false;
> + }
> +
> + spin_unlock_irq(&ct->dead.lock);
> +}
> +#endif
> diff --git a/drivers/gpu/drm/xe/xe_guc_ct_types.h b/drivers/gpu/drm/xe/xe_guc_ct_types.h
> index 761cb9031298..db1d45b7be2b 100644
> --- a/drivers/gpu/drm/xe/xe_guc_ct_types.h
> +++ b/drivers/gpu/drm/xe/xe_guc_ct_types.h
> @@ -86,6 +86,24 @@ enum xe_guc_ct_state {
> XE_GUC_CT_STATE_ENABLED,
> };
>
> +#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
> +/** struct xe_dead_ct - Information for debugging a dead CT */
> +struct xe_dead_ct {
> + /** @lock: protects memory allocation/free operations, and @reason updates */
> + spinlock_t lock;
> + /** @reason: bit mask of CT_DEAD_* reason codes */
> + int reason;
if it's bitmask then likely you want unsigned int (or long)
> + /** @reported: for preventing multiple dumps per error sequence */
> + bool reported;
> + /** @worker: worker thread to get out of interrupt context before dumping */
> + struct work_struct worker;
> + /** snapshot_ct: copy of CT state and CTB content at point of error */
> + struct xe_guc_ct_snapshot *snapshot_ct;
> + /** snapshot_log: copy of GuC log at point of error */
> + struct xe_guc_log_snapshot *snapshot_log;
> +};
> +#endif
> +
> /**
> * struct xe_guc_ct - GuC command transport (CT) layer
> *
> @@ -128,6 +146,10 @@ struct xe_guc_ct {
> u32 msg[GUC_CTB_MSG_MAX_LEN];
> /** @fast_msg: Message buffer */
> u32 fast_msg[GUC_CTB_MSG_MAX_LEN];
> +
> +#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
> + struct xe_dead_ct dead;
> +#endif
> };
>
> #endif
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v4 2/7] drm/xe/guc: Copy GuC log prior to dumping
2024-06-11 22:30 ` Michal Wajdeczko
@ 2024-06-12 23:36 ` John Harrison
0 siblings, 0 replies; 23+ messages in thread
From: John Harrison @ 2024-06-12 23:36 UTC (permalink / raw)
To: Michal Wajdeczko, Intel-Xe
On 6/11/2024 15:30, Michal Wajdeczko wrote:
> On 11.06.2024 03:20, John.C.Harrison@Intel.com wrote:
>> From: John Harrison <John.C.Harrison@Intel.com>
>>
>> Refactor the hexdump code into a separate function ready to be used
> maybe this separate function shall be promoted to drm_print_blob() ?
Maybe. That can happen as a follow up if people see a need for it from
outside of the Xe driver. But see below about this being only a stop gap
solution.
>
>> for dumps of other objects. Also change to dumping a host memory copy
>> rather than the live GPU buffer object. Doing so helps prevent
>> inconsistencies due to the log being updated as it is being dumped. It
>> also paves the way for decoupling the save from the print to allow
>> inclusion in error reports such as the devcoredump.
>>
>> Switch to use the dedicated kernel hexdump helper rather than printf.
>> The helper makes it easier to print out much wider lines which can
>> dramatically reduce the total line count of the dump (useful when
>> dumping to dmesg).
> as you are changing the format of the output, did you consider switching
> over to base64 ?
I don't see it as being worth the effort. The current changes are the
low hanging fruit. Switching to base64 encoding seems like a lot more
effort. There is not just the encoding effort in the KMD but also the
decoding effort in user land to consider. And the ultimate aim is to
move to compression. That's the only thing that really makes it feasible
to dump BLOBs via dmesg. Moving to compression is definitely worth the
effort in both the KMD and the user sides. But that ideally involves
also moving to use devcoredump as the unified collection and dumping
mechanism. That way only one set of tools need updating to support new
formats. But devcoredump support is also not trivial for various reasons
beyond simply adding the GuC log buffer to the dump.
>
>> Another issue with dumping such a large buffer is that it can be slow,
>> especially if dumping to dmesg over a serial port. So add a yield to
>> prevent the 'task has been stuck for 120s' kernel hang check feature
>> from firing.
>>
>> Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
>> ---
>> drivers/gpu/drm/xe/xe_guc_debugfs.c | 2 +-
>> drivers/gpu/drm/xe/xe_guc_log.c | 119 ++++++++++++++++++++++++----
>> drivers/gpu/drm/xe/xe_guc_log.h | 2 +-
>> 3 files changed, 106 insertions(+), 17 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_guc_debugfs.c b/drivers/gpu/drm/xe/xe_guc_debugfs.c
>> index d3822cbea273..68f1f728c22c 100644
>> --- a/drivers/gpu/drm/xe/xe_guc_debugfs.c
>> +++ b/drivers/gpu/drm/xe/xe_guc_debugfs.c
>> @@ -41,7 +41,7 @@ static int guc_log(struct seq_file *m, void *data)
>> struct drm_printer p = drm_seq_file_printer(m);
>>
>> xe_pm_runtime_get(xe);
>> - xe_guc_log_print(&guc->log, &p);
>> + xe_guc_log_print(&guc->log, &p, false);
>> xe_pm_runtime_put(xe);
>>
>> return 0;
>> diff --git a/drivers/gpu/drm/xe/xe_guc_log.c b/drivers/gpu/drm/xe/xe_guc_log.c
>> index a37ee3419428..a35309926271 100644
>> --- a/drivers/gpu/drm/xe/xe_guc_log.c
>> +++ b/drivers/gpu/drm/xe/xe_guc_log.c
>> @@ -9,6 +9,7 @@
>>
>> #include "xe_bo.h"
>> #include "xe_gt.h"
>> +#include "xe_gt_printk.h"
>> #include "xe_map.h"
>> #include "xe_module.h"
>>
>> @@ -49,32 +50,120 @@ static size_t guc_log_size(void)
>> CAPTURE_BUFFER_SIZE;
>> }
>>
>> -void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p)
>> +#define BYTES_PER_WORD sizeof(u32)
> by WORD isn't we usually mean u16 ? u32 is DWORD
It is in Windows land. I'm not aware of the Linux kernel using DWORD as
a type. And strictly speaking, isn't 'word' meant to be the native size
of the architecture, i.e. 'int'?
>
>> +#define WORDS_PER_DUMP 8
>> +#define DUMPS_PER_LINE 4
>> +#define LINES_PER_READ 4
>> +#define WORDS_PER_READ (WORDS_PER_DUMP * DUMPS_PER_LINE * LINES_PER_READ)
>> +
>> +static void xe_hexdump_blob(struct xe_device *xe, const void *blob, size_t size,
>> + struct drm_printer *p, bool atomic)
>> +{
>> + char line_buff[DUMPS_PER_LINE * WORDS_PER_DUMP * 9 + 1];
> and magic "9" is from ...
That is the length of the ASCII string - 8 hex digits and one space.
With a +1 for the null terminator. I suppose it could be wrapped up as
ASCII_LENGTH_PER_WORD.
>
>> + const u32 *blob32 = (const u32 *)blob;
>> + int i, j, k;
>> +
>> + if (size % (WORDS_PER_READ * BYTES_PER_WORD)) {
>> + u32 remain = size % (WORDS_PER_READ * BYTES_PER_WORD);
>> +
>> + drm_err(&xe->drm, "Invalid size for hexdump: 0x%lX vs 0x%lX (%d * %ld) -> 0x%X\n",
>> + size, WORDS_PER_READ * BYTES_PER_WORD,
>> + WORDS_PER_READ, BYTES_PER_WORD, remain);
> hmm, all this seems to be due to bad coding by the caller
> maybe just
>
> if (WARN_ON(size % (WORDS_PER_READ * BYTES_PER_WORD)))
> return;
>
> as this should never happen
It could just be a WARN and bail. But given that this is all about
getting debug output for hard to debug situations, it seems prudent to
get what we can out than to just abort and get nothing.
>
>> +
>> + size -= remain;
>> + if (!size)
>> + return;
>> + }
>> +
>> + for (i = 0; i < size / BYTES_PER_WORD; i += WORDS_PER_READ) {
>> + const u32 *src = ((const u32 *)blob32) + i;
> no need to cast, blob32 is already const u32*
Hmm. I think the intention was to get rid of blob32 and just cast blob
here given that this is the only use of blob32.
>
>> +
>> + for (j = 0; j < WORDS_PER_READ; ) {
>> + u32 done = 0;
>> +
>> + for (k = 0; k < DUMPS_PER_LINE; k++) {
>> + line_buff[done++] = ' ';
>> + done += hex_dump_to_buffer(src + j,
>> + sizeof(*src) * (WORDS_PER_READ - j),
>> + WORDS_PER_DUMP * BYTES_PER_WORD,
>> + BYTES_PER_WORD,
>> + line_buff + done,
>> + sizeof(line_buff) - done,
>> + false);
>> + j += WORDS_PER_DUMP;
>> + }
>> +
>> + drm_printf(p, "%s\n", line_buff);
>> +
>> + /*
>> + * If spewing large amounts of data via a serial console,
>> + * this can be a very slow process. So be friendly and try
>> + * not to cause 'softlockup on CPU' problems.
>> + */
>> + if (!atomic)
>> + cond_resched();
>> + }
>> + }
>> +}
>> +
>> +#define GUC_LOG_CHUNK_SIZE SZ_2M
>> +
> missing kernel-doc
Yup.
>
>> +void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p, bool atomic)
>> {
>> struct xe_device *xe = log_to_xe(log);
>> - size_t size;
>> - int i, j;
>> + size_t size, remain;
>> + void **copy;
>> + int num_chunks, i;
>>
>> xe_assert(xe, log->bo);
>>
>> + /*
>> + * NB: kmalloc has a hard limit well below the maximum GuC log buffer size.
>> + * Also, can't use vmalloc as might be called from atomic context. So need
>> + * to break the buffer up into smaller chunks that can be allocated.
>> + */
>> size = log->bo->size;
>> + num_chunks = (size + GUC_LOG_CHUNK_SIZE - 1) / GUC_LOG_CHUNK_SIZE;
> DIV_ROUND_UP ?
Yup.
>
>>
>> -#define DW_PER_READ 128
>> - xe_assert(xe, !(size % (DW_PER_READ * sizeof(u32))));
>> - for (i = 0; i < size / sizeof(u32); i += DW_PER_READ) {
>> - u32 read[DW_PER_READ];
>> + copy = kcalloc(num_chunks, sizeof(*copy), atomic ? GFP_ATOMIC : GFP_KERNEL);
>> + if (!copy) {
>> + drm_printf(p, "Failed to allocate array x%d", num_chunks);
> I'm not sure that caller wants this message in it's printer output
It's better than having no output at all. Which is what you get otherwise.
>
>> + return;
>> + }
>>
>> - xe_map_memcpy_from(xe, read, &log->bo->vmap, i * sizeof(u32),
>> - DW_PER_READ * sizeof(u32));
>> -#define DW_PER_PRINT 4
>> - for (j = 0; j < DW_PER_READ / DW_PER_PRINT; ++j) {
>> - u32 *print = read + j * DW_PER_PRINT;
>> + remain = size;
>> + for (i = 0; i < num_chunks; i++) {
>> + size_t size = min(GUC_LOG_CHUNK_SIZE, remain);
> it's usually bad idea to overlap variable names
Yeah, but the outer size becomes snapshot->size in the next patch. I
could rename the outer one total_size.
>
>>
>> - drm_printf(p, "0x%08x 0x%08x 0x%08x 0x%08x\n",
>> - *(print + 0), *(print + 1),
>> - *(print + 2), *(print + 3));
>> + copy[i] = kmalloc(size, atomic ? GFP_ATOMIC : GFP_KERNEL);
>> + if (!copy[i]) {
>> + drm_printf(p, "Failed to allocate %ld at chunk %d of %d",
>> + size, i, num_chunks);
> ditto
Ditto to what? Printing an error message in the output file? As above,
it is better than having an empty file with no explanation as to why.
>
>> + goto out;
>> }
>> + remain -= size;
>> }
>> +
>> + remain = size;
>> + for (i = 0; i < num_chunks; i++) {
>> + size_t size = min(GUC_LOG_CHUNK_SIZE, remain);
> ditto
>
>> +
>> + xe_map_memcpy_from(xe, copy[i], &log->bo->vmap, i * GUC_LOG_CHUNK_SIZE, size);
>> + remain -= size;
>> + }
>> +
>> + remain = size;
>> + for (i = 0; i < num_chunks; i++) {
>> + size_t size = min(GUC_LOG_CHUNK_SIZE, remain);
> ditto
As above, the outer size is only a temporary thing until the next patch.
Whereas these stick around forever.
John.
>
>> +
>> + xe_hexdump_blob(xe, copy[i], size, p, atomic);
>> + remain -= size;
>> + }
>> +
>> +out:
>> + for (i = 0; i < num_chunks; i++)
>> + kfree(copy[i]);
>> + kfree(copy);
>> }
>>
>> int xe_guc_log_init(struct xe_guc_log *log)
>> diff --git a/drivers/gpu/drm/xe/xe_guc_log.h b/drivers/gpu/drm/xe/xe_guc_log.h
>> index 2d25ab28b4b3..5149b492c3b8 100644
>> --- a/drivers/gpu/drm/xe/xe_guc_log.h
>> +++ b/drivers/gpu/drm/xe/xe_guc_log.h
>> @@ -37,7 +37,7 @@ struct drm_printer;
>> #define GUC_LOG_LEVEL_MAX GUC_VERBOSITY_TO_LOG_LEVEL(GUC_LOG_VERBOSITY_MAX)
>>
>> int xe_guc_log_init(struct xe_guc_log *log);
>> -void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p);
>> +void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p, bool atomic);
>>
>> static inline u32
>> xe_guc_log_get_level(struct xe_guc_log *log)
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v4 3/7] drm/xe/guc: Use a two stage dump for GuC logs and add more info
2024-06-11 22:49 ` Michal Wajdeczko
@ 2024-06-12 23:52 ` John Harrison
0 siblings, 0 replies; 23+ messages in thread
From: John Harrison @ 2024-06-12 23:52 UTC (permalink / raw)
To: Michal Wajdeczko, Intel-Xe
On 6/11/2024 15:49, Michal Wajdeczko wrote:
>
> On 11.06.2024 03:20, John.C.Harrison@Intel.com wrote:
>> From: John Harrison <John.C.Harrison@Intel.com>
>>
>> Split the GuC log dump into a two stage snapshot and print mechanism.
>> This allows the log to be captured at the point of an error (which may
>> be in a resticted context) and then dump it out later (from a regular
> typo
>
>> context such as a worker function or a sysfs file handler).
>>
>> Also add a bunch of other useful pieces of information that can help
>> (or are fundamentally required!) to decode and parse the log.
>>
>> Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
>> ---
>> drivers/gpu/drm/xe/regs/xe_guc_regs.h | 1 +
>> drivers/gpu/drm/xe/xe_guc_log.c | 150 ++++++++++++++++++++------
>> drivers/gpu/drm/xe/xe_guc_log.h | 6 ++
>> drivers/gpu/drm/xe/xe_guc_log_types.h | 29 +++++
>> 4 files changed, 155 insertions(+), 31 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/regs/xe_guc_regs.h b/drivers/gpu/drm/xe/regs/xe_guc_regs.h
>> index a5fd14307f94..b27b73680c12 100644
>> --- a/drivers/gpu/drm/xe/regs/xe_guc_regs.h
>> +++ b/drivers/gpu/drm/xe/regs/xe_guc_regs.h
>> @@ -84,6 +84,7 @@
>> #define HUC_LOADING_AGENT_GUC REG_BIT(1)
>> #define GUC_WOPCM_OFFSET_VALID REG_BIT(0)
>> #define GUC_MAX_IDLE_COUNT XE_REG(0xc3e4)
>> +#define GUC_PMTIMESTAMP XE_REG(0xc3e8)
>>
>> #define GUC_SEND_INTERRUPT XE_REG(0xc4c8)
>> #define GUC_SEND_TRIGGER REG_BIT(0)
>> diff --git a/drivers/gpu/drm/xe/xe_guc_log.c b/drivers/gpu/drm/xe/xe_guc_log.c
>> index a35309926271..a35d3cc0c369 100644
>> --- a/drivers/gpu/drm/xe/xe_guc_log.c
>> +++ b/drivers/gpu/drm/xe/xe_guc_log.c
>> @@ -7,12 +7,20 @@
>>
>> #include <drm/drm_managed.h>
>>
>> +#include "regs/xe_guc_regs.h"
>> #include "xe_bo.h"
>> #include "xe_gt.h"
>> #include "xe_gt_printk.h"
>> #include "xe_map.h"
>> +#include "xe_mmio.h"
>> #include "xe_module.h"
>>
>> +static struct xe_guc *
>> +log_to_guc(struct xe_guc_log *log)
> any reason why to split signature into two lines?
Because the similar log_to_gt underneath was done that way so I figured
it would be best to match that. And no, I don't know why that (or indeed
the same in many other files) is done that way but it does appear to be
the common convention.
>
>> +{
>> + return container_of(log, struct xe_guc, log);
>> +}
>> +
>> static struct xe_gt *
>> log_to_gt(struct xe_guc_log *log)
>> {
>> @@ -108,62 +116,142 @@ static void xe_hexdump_blob(struct xe_device *xe, const void *blob, size_t size,
>>
>> #define GUC_LOG_CHUNK_SIZE SZ_2M
>>
>> -void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p, bool atomic)
> no kernel-doc
>
>> +struct xe_guc_log_snapshot *xe_guc_log_snapshot_alloc(struct xe_guc_log *log, bool atomic)
>> {
>> - struct xe_device *xe = log_to_xe(log);
>> - size_t size, remain;
>> - void **copy;
>> - int num_chunks, i;
>> + struct xe_guc_log_snapshot *snapshot;
>> + size_t remain;
>> + int i;
>>
>> - xe_assert(xe, log->bo);
>> + snapshot = kzalloc(sizeof(*snapshot), atomic ? GFP_ATOMIC : GFP_KERNEL);
>> + if (!snapshot)
>> + return NULL;
>>
>> /*
>> * NB: kmalloc has a hard limit well below the maximum GuC log buffer size.
>> * Also, can't use vmalloc as might be called from atomic context. So need
>> * to break the buffer up into smaller chunks that can be allocated.
>> */
>> - size = log->bo->size;
>> - num_chunks = (size + GUC_LOG_CHUNK_SIZE - 1) / GUC_LOG_CHUNK_SIZE;
>> + snapshot->size = log->bo->size;
>> + snapshot->num_chunks = (snapshot->size + GUC_LOG_CHUNK_SIZE - 1) / GUC_LOG_CHUNK_SIZE;
>>
>> - copy = kcalloc(num_chunks, sizeof(*copy), atomic ? GFP_ATOMIC : GFP_KERNEL);
>> - if (!copy) {
>> - drm_printf(p, "Failed to allocate array x%d", num_chunks);
>> - return;
>> - }
>> + snapshot->copy = kcalloc(snapshot->num_chunks, sizeof(*snapshot->copy),
>> + atomic ? GFP_ATOMIC : GFP_KERNEL);
>> + if (!snapshot->copy)
>> + goto fail_snap;
>>
>> - remain = size;
>> - for (i = 0; i < num_chunks; i++) {
>> + remain = snapshot->size;
>> + for (i = 0; i < snapshot->num_chunks; i++) {
>> size_t size = min(GUC_LOG_CHUNK_SIZE, remain);
>>
>> - copy[i] = kmalloc(size, atomic ? GFP_ATOMIC : GFP_KERNEL);
>> - if (!copy[i]) {
>> - drm_printf(p, "Failed to allocate %ld at chunk %d of %d",
>> - size, i, num_chunks);
>> - goto out;
>> - }
>> + snapshot->copy[i] = kmalloc(size, atomic ? GFP_ATOMIC : GFP_KERNEL);
>> + if (!snapshot->copy[i])
>> + goto fail_copy;
>> remain -= size;
>> }
>>
>> - remain = size;
>> - for (i = 0; i < num_chunks; i++) {
>> + return snapshot;
>> +
>> +fail_copy:
>> + for (i = 0; i < snapshot->num_chunks; i++)
>> + kfree(snapshot->copy[i]);
>> + kfree(snapshot->copy);
>> +fail_snap:
>> + kfree(snapshot);
>> + return NULL;
>> +}
>> +
>> +void xe_guc_log_snapshot_free(struct xe_guc_log_snapshot *snapshot)
>> +{
>> + int i;
>> +
>> + if (!snapshot)
>> + return;
>> +
>> + if (!snapshot->copy) {
>> + for (i = 0; i < snapshot->num_chunks; i++)
>> + kfree(snapshot->copy[i]);
>> + kfree(snapshot->copy);
>> + }
>> +
>> + kfree(snapshot);
>> +}
>> +
>> +struct xe_guc_log_snapshot *xe_guc_log_snapshot_capture(struct xe_guc_log *log, bool atomic)
>> +{
>> + struct xe_guc_log_snapshot *snapshot;
>> + struct xe_device *xe = log_to_xe(log);
>> + struct xe_guc *guc = log_to_guc(log);
>> + struct xe_gt *gt = log_to_gt(log);
>> + size_t remain;
>> + int i;
>> +
>> + if (!log->bo) {
>> + xe_gt_err(gt, "GuC log not allocated!\n");
>> + return NULL;
>> + }
>> +
>> + snapshot = xe_guc_log_snapshot_alloc(log, atomic);
>> + if (!snapshot) {
>> + xe_gt_err(gt, "GuC log snapshot not allocated!\n");
>> + return NULL;
>> + }
>> +
>> + remain = snapshot->size;
>> + for (i = 0; i < snapshot->num_chunks; i++) {
>> size_t size = min(GUC_LOG_CHUNK_SIZE, remain);
>>
>> - xe_map_memcpy_from(xe, copy[i], &log->bo->vmap, i * GUC_LOG_CHUNK_SIZE, size);
>> + xe_map_memcpy_from(xe, snapshot->copy[i], &log->bo->vmap,
>> + i * GUC_LOG_CHUNK_SIZE, size);
>> remain -= size;
>> }
>>
>> - remain = size;
>> - for (i = 0; i < num_chunks; i++) {
>> + snapshot->ktime = ktime_get_boottime_ns();
>> + snapshot->stamp = xe_mmio_read32(gt, GUC_PMTIMESTAMP);
>> + snapshot->ref_clk = gt->info.reference_clock;
>> + snapshot->level = log->level;
>> + snapshot->ver_found = guc->fw.versions.found[XE_UC_FW_VER_RELEASE];
>> + snapshot->ver_want = guc->fw.versions.wanted;
>> + snapshot->path = guc->fw.path;
> shouldn't we use kstrdup() instead ?
The firmware path is always a static string. It is either an actual
static const thing from the compiled in table or it has come from the
kernel command line as a module parameter. Either way, it is not going
to change or disappear for the lifetime of the Xe module. So no reason
to waste memory duplicating it.
>
>> +
>> + return snapshot;
>> +}
>> +
>> +void xe_guc_log_snapshot_print(struct xe_device *xe, struct xe_guc_log_snapshot *snapshot,
>> + struct drm_printer *p, bool atomic)
>> +{
>> + size_t remain;
>> + int i;
>> +
>> + if (!snapshot) {
>> + drm_printf(p, "GuC log snapshot not allocated!\n");
>> + return;
>> + }
>> +
>> + drm_printf(p, "GuC version %u.%u.%u (wanted %u.%u.%u)\n",
>> + snapshot->ver_found.major, snapshot->ver_found.minor, snapshot->ver_found.patch,
>> + snapshot->ver_want.major, snapshot->ver_want.minor, snapshot->ver_want.patch);
>> + drm_printf(p, "GuC firmware: %s\n", snapshot->path);
>> + drm_printf(p, "Kernel timestamp: 0x%08llX [%llu]\n", snapshot->ktime, snapshot->ktime);
>> + drm_printf(p, "GuC timestamp: 0x%08X [%u]\n", snapshot->stamp, snapshot->stamp);
>> + drm_printf(p, "CS timestamp frequency: %u Hz\n", snapshot->ref_clk);
>> + drm_printf(p, "Log level: %u\n", snapshot->level);
>> +
>> + remain = snapshot->size;
>> + for (i = 0; i < snapshot->num_chunks; i++) {
>> size_t size = min(GUC_LOG_CHUNK_SIZE, remain);
>>
>> - xe_hexdump_blob(xe, copy[i], size, p, atomic);
>> + xe_hexdump_blob(xe, snapshot->copy[i], size, p, atomic);
> we really should get rid of xe in xe_hexdump_blob
I'm not seeing why but that can be done as a follow up patch if you
really think it is necessary. Personally, I'd rather spend the effort on
completely removing it and going with compressed ASCII encoded blobs in
devcoredump.
>
>> remain -= size;
>> }
>> +}
>> +
>> +void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p, bool atomic)
>> +{
>> + struct xe_guc_log_snapshot *snapshot;
>>
>> -out:
>> - for (i = 0; i < num_chunks; i++)
>> - kfree(copy[i]);
>> - kfree(copy);
>> + snapshot = xe_guc_log_snapshot_capture(log, atomic);
>> + xe_guc_log_snapshot_print(log_to_xe(log), snapshot, p, atomic);
>> + xe_guc_log_snapshot_free(snapshot);
>> }
>>
>> int xe_guc_log_init(struct xe_guc_log *log)
>> diff --git a/drivers/gpu/drm/xe/xe_guc_log.h b/drivers/gpu/drm/xe/xe_guc_log.h
>> index 5149b492c3b8..6e4d0b369c19 100644
>> --- a/drivers/gpu/drm/xe/xe_guc_log.h
>> +++ b/drivers/gpu/drm/xe/xe_guc_log.h
>> @@ -9,6 +9,7 @@
>> #include "xe_guc_log_types.h"
>>
>> struct drm_printer;
>> +struct xe_device;
>>
>> #if IS_ENABLED(CONFIG_DRM_XE_LARGE_GUC_BUFFER)
>> #define CRASH_BUFFER_SIZE SZ_1M
>> @@ -38,6 +39,11 @@ struct drm_printer;
>>
>> int xe_guc_log_init(struct xe_guc_log *log);
>> void xe_guc_log_print(struct xe_guc_log *log, struct drm_printer *p, bool atomic);
>> +struct xe_guc_log_snapshot *xe_guc_log_snapshot_alloc(struct xe_guc_log *log, bool atomic);
>> +struct xe_guc_log_snapshot *xe_guc_log_snapshot_capture(struct xe_guc_log *log, bool atomic);
>> +void xe_guc_log_snapshot_print(struct xe_device *xe, struct xe_guc_log_snapshot *snapshot,
>> + struct drm_printer *p, bool atomic);
>> +void xe_guc_log_snapshot_free(struct xe_guc_log_snapshot *snapshot);
>>
>> static inline u32
>> xe_guc_log_get_level(struct xe_guc_log *log)
>> diff --git a/drivers/gpu/drm/xe/xe_guc_log_types.h b/drivers/gpu/drm/xe/xe_guc_log_types.h
>> index 125080d138a7..e3a6a44c2f18 100644
>> --- a/drivers/gpu/drm/xe/xe_guc_log_types.h
>> +++ b/drivers/gpu/drm/xe/xe_guc_log_types.h
>> @@ -8,8 +8,37 @@
>>
>> #include <linux/types.h>
>>
>> +#include "xe_uc_fw_types.h"
>> +
>> struct xe_bo;
>>
>> +/**
>> + * struct xe_guc_log_snapshot:
>> + * Capture of the GuC log plus various state useful for decoding the log
>> + */
>> +struct xe_guc_log_snapshot {
>> + /** @size: Size in bytes of the @copy allocation */
>> + size_t size;
>> + /** @copy: Host memory copy of the log buffer for later dumping, split into chunks */
>> + void **copy;
>> + /** @num_chunks: Number of chunks withint @copy */
> typo
>
>> + int num_chunks;
>> + /** @ktime: Kernel time the snapshot was taken */
>> + u64 ktime;
>> + /** @stamp: GuC timestamp at which the snapshot was taken */
>> + u32 stamp;
>> + /** @ref_clk: GuC timestamp frequency */
>> + u32 ref_clk;
>> + /** @level: GuC log verbosity level */
>> + u32 level;
>> + /** @ver_found: GuC firmware version */
>> + struct xe_uc_fw_version ver_found;
> didn't you mention that platform and/or revision is also mandatory to
> correctly decode GuC log ?
Yeah, but the platform is not really a GuC related thing. So putting
that inside a GuC specific structure seems even more wrong.
>
>> + /** @ver_want: GuC firmware version that driver expected */
>> + struct xe_uc_fw_version ver_want;
> I'm still not convinced that it's relevant to the actual GuC log what
> driver wanted to use - this should be part of the GuC snapshot instead
>
>> + /** @path: Path of GuC firmware blob */
>> + const char *path;
> ditto
When the snapshot moves into the devcoredump, then all of this gets
moved into a GuC specific structure within the core dump. But for now,
there is no GuC snapshot. So therefore, they are here. As already
stated, this is all stop gap measures until the proper solution is
implemented.
John.
>
>> +};
>> +
>> /**
>> * struct xe_guc_log - GuC log
>> */
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v4 6/7] drm/xe/guc: Dead CT helper
2024-06-11 23:20 ` Michal Wajdeczko
@ 2024-06-13 0:43 ` John Harrison
0 siblings, 0 replies; 23+ messages in thread
From: John Harrison @ 2024-06-13 0:43 UTC (permalink / raw)
To: Michal Wajdeczko, Intel-Xe
On 6/11/2024 16:20, Michal Wajdeczko wrote:
> On 11.06.2024 03:20, John.C.Harrison@Intel.com wrote:
>> From: John Harrison <John.C.Harrison@Intel.com>
>>
>> Add a worker function helper for asynchronously dumping state when an
>> internal/fatal error is detected in CT processing. Being asynchronous
>> is required to avoid deadlocks and scheduling-while-atomic or
>> process-stalled-for-too-long issues. Also check for a bunch more error
>> conditions and improve the handling of some existing checks.
>>
>> Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
>> ---
>> .../drm/xe/abi/guc_communication_ctb_abi.h | 1 +
>> drivers/gpu/drm/xe/xe_guc_ct.c | 257 ++++++++++++++++--
>> drivers/gpu/drm/xe/xe_guc_ct_types.h | 22 ++
>> 3 files changed, 259 insertions(+), 21 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h b/drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h
>> index 8f86a16dc577..f58198cf2cf6 100644
>> --- a/drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h
>> +++ b/drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h
>> @@ -52,6 +52,7 @@ struct guc_ct_buffer_desc {
>> #define GUC_CTB_STATUS_OVERFLOW (1 << 0)
>> #define GUC_CTB_STATUS_UNDERFLOW (1 << 1)
>> #define GUC_CTB_STATUS_MISMATCH (1 << 2)
>> +#define GUC_CTB_STATUS_DISABLED (1 << 3)
>> u32 reserved[13];
>> } __packed;
>> static_assert(sizeof(struct guc_ct_buffer_desc) == 64);
>> diff --git a/drivers/gpu/drm/xe/xe_guc_ct.c b/drivers/gpu/drm/xe/xe_guc_ct.c
>> index fd74243c416c..744402f9e774 100644
>> --- a/drivers/gpu/drm/xe/xe_guc_ct.c
>> +++ b/drivers/gpu/drm/xe/xe_guc_ct.c
>> @@ -25,12 +25,58 @@
>> #include "xe_gt_sriov_pf_monitor.h"
>> #include "xe_gt_tlb_invalidation.h"
>> #include "xe_guc.h"
>> +#include "xe_guc_log.h"
>> #include "xe_guc_relay.h"
>> #include "xe_guc_submit.h"
>> #include "xe_map.h"
>> #include "xe_pm.h"
>> #include "xe_trace.h"
>>
>> +#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
>> +enum {
>> + CT_DEAD_ALIVE = 0,
>> + CT_DEAD_RESET, /* 0x0001 */
> all these annotations seem to be wrong as CT_DEAD_RESET is 1 and
>
> (1 << CT_DEAD_RESET) will be 0x0002
Doh!
>
>> + CT_DEAD_SETUP, /* 0x0002 */
>> + CT_DEAD_H2G_WRITE, /* 0x0004 */
>> + CT_DEAD_H2G_HAS_ROOM, /* 0x0008 */
>> + CT_DEAD_G2H_READ, /* 0x0010 */
>> + CT_DEAD_G2H_RECV, /* 0x0020 */
>> + CT_DEAD_G2H_RELEASE, /* 0x0040 */
>> + CT_DEAD_DEADLOCK, /* 0x0080 */
>> + CT_DEAD_PROCESS_FAILED, /* 0x0100 */
>> + CT_DEAD_FAST_G2H, /* 0x0200 */
>> + CT_DEAD_PARSE_G2H_RESPONSE, /* 0x0400 */
>> + CT_DEAD_PARSE_G2H_UNKNOWN, /* 0x0800 */
>> + CT_DEAD_PARSE_G2H_ORIGIN, /* 0x1000 */
>> + CT_DEAD_PARSE_G2H_TYPE, /* 0x2000 */
>> +};
>> +
>> +static void ct_dead_worker_func(struct work_struct *w);
>> +
>> +#define CT_DEAD(ct, hxg, reason_code) \
> by hxg we usually mean actual message, not guc_ctb (which, btw shall be
> named xe_guc_ctb)
Because it is called by passing in ct->ctbs.g2h or ct->ctbs.h2g.
Therefore it seems sensible to name the parameter hxg meaning h2g or g2h.
>
>> + do { \
>> + struct guc_ctb *_hxg = (hxg); \
>> + if (_hxg) \
>> + _hxg->info.broken = true; \
>> + if (!(ct)->dead.reported) { \
>> + struct xe_guc *guc = ct_to_guc(ct); \
>> + spin_lock_irq(&ct->dead.lock); \
>> + (ct)->dead.reason |= 1 << CT_DEAD_##reason_code; \
>> + (ct)->dead.snapshot_log = xe_guc_log_snapshot_capture(&guc->log, true); \
>> + (ct)->dead.snapshot_ct = xe_guc_ct_snapshot_capture((ct), true); \
>> + spin_unlock_irq(&ct->dead.lock); \
>> + queue_work(system_unbound_wq, &(ct)->dead.worker); \
>> + } \
>> + } while (0)
> for clarity, can you align trailing \ at the most right column
Are we actually allowed to do that? I thought the linux kernel style
guide explicitly forbade any kind of vertical alignment via whitespace?
>
>> +#else
>> +#define CT_DEAD(ct, hxg, reason) \
>> + do { \
>> + struct guc_ctb *_hxg = (hxg); \
>> + if (_hxg) \
>> + _hxg->info.broken = true; \
>> + } while (0)
>> +#endif
>> +
>> /* Used when a CT send wants to block and / or receive data */
>> struct g2h_fence {
>> u32 *response_buffer;
>> @@ -158,6 +204,10 @@ int xe_guc_ct_init(struct xe_guc_ct *ct)
>> xa_init(&ct->fence_lookup);
>> INIT_WORK(&ct->g2h_worker, g2h_worker_func);
>> INIT_DELAYED_WORK(&ct->safe_mode_worker, safe_mode_worker_func);
>> +#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
>> + spin_lock_init(&ct->dead.lock);
>> + INIT_WORK(&ct->dead.worker, ct_dead_worker_func);
>> +#endif
>> init_waitqueue_head(&ct->wq);
>> init_waitqueue_head(&ct->g2h_fence_wq);
>>
>> @@ -392,10 +442,18 @@ int xe_guc_ct_enable(struct xe_guc_ct *ct)
>> if (ct_needs_safe_mode(ct))
>> ct_enter_safe_mode(ct);
>>
>> +#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
>> + spin_lock_irq(&ct->dead.lock);
>> + if (ct->dead.reason)
>> + ct->dead.reason |= CT_DEAD_RESET;
> can you explain why RESET ? it's 'enable' call
The dump code suppresses further dumps after the first error to prevent
spamming dmesg with dump after dump when the system is in a bad state.
This is saying that the system has been reset and thus the dump code
should re-arm itself and produce more dumps on the next error event.
>
>> + spin_unlock_irq(&ct->dead.lock);
>> +#endif
>> +
>> return 0;
>>
>> err_out:
>> xe_gt_err(gt, "Failed to enable GuC CT (%pe)\n", ERR_PTR(err));
>> + CT_DEAD(ct, NULL, SETUP);
>>
>> return err;
>> }
>> @@ -439,6 +497,19 @@ static bool h2g_has_room(struct xe_guc_ct *ct, u32 cmd_len)
>>
>> if (cmd_len > h2g->info.space) {
>> h2g->info.head = desc_read(ct_to_xe(ct), h2g, head);
>> +
>> + if (h2g->info.head > h2g->info.size) {
>> + struct xe_device *xe = ct_to_xe(ct);
>> + u32 desc_status = desc_read(xe, h2g, status);
>> +
>> + desc_write(xe, h2g, status, desc_status | GUC_CTB_STATUS_OVERFLOW);
>> +
>> + xe_gt_err(ct_to_gt(ct), "CT: invalid head offset %u >= %u)\n",
>> + h2g->info.head, h2g->info.size);
>> + CT_DEAD(ct, h2g, H2G_HAS_ROOM);
>> + return false;
>> + }
>> +
>> h2g->info.space = CIRC_SPACE(h2g->info.tail, h2g->info.head,
>> h2g->info.size) -
>> h2g->info.resv_space;
>> @@ -490,8 +561,16 @@ static void __g2h_reserve_space(struct xe_guc_ct *ct, u32 g2h_len, u32 num_g2h)
>> static void __g2h_release_space(struct xe_guc_ct *ct, u32 g2h_len)
>> {
>> lockdep_assert_held(&ct->fast_lock);
>> - xe_gt_assert(ct_to_gt(ct), ct->ctbs.g2h.info.space + g2h_len <=
>> - ct->ctbs.g2h.info.size - ct->ctbs.g2h.info.resv_space);
>> + if (ct->ctbs.g2h.info.space + g2h_len >
>> + ct->ctbs.g2h.info.size - ct->ctbs.g2h.info.resv_space) {
>> + xe_gt_err(ct_to_gt(ct), "Invalid G2H release: %d + %d vs %d - %d -> %d vs %d!\n",
>> + ct->ctbs.g2h.info.space, g2h_len,
>> + ct->ctbs.g2h.info.size, ct->ctbs.g2h.info.resv_space,
>> + ct->ctbs.g2h.info.space + g2h_len,
>> + ct->ctbs.g2h.info.size - ct->ctbs.g2h.info.resv_space);
>> + CT_DEAD(ct, &ct->ctbs.g2h, G2H_RELEASE);
>> + return;
>> + }
>>
>> ct->ctbs.g2h.info.space += g2h_len;
>> --ct->g2h_outstanding;
>> @@ -517,12 +596,44 @@ static int h2g_write(struct xe_guc_ct *ct, const u32 *action, u32 len,
>> u32 full_len;
>> struct iosys_map map = IOSYS_MAP_INIT_OFFSET(&h2g->cmds,
>> tail * sizeof(u32));
>> + u32 desc_status;
>>
>> full_len = len + GUC_CTB_HDR_LEN;
>>
>> lockdep_assert_held(&ct->lock);
>> xe_gt_assert(gt, full_len <= GUC_CTB_MSG_MAX_LEN);
>> - xe_gt_assert(gt, tail <= h2g->info.size);
>> +
>> + desc_status = desc_read(xe, h2g, status);
>> + if (desc_status) {
>> + xe_gt_err(gt, "CT write: non-zero status: %u\n", desc_status);
>> + goto corrupted;
>> + }
>> +
>> +#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
> likely you can use
>
> if (IS_ENABLED(CONFIG_DRM_XE_DEBUG))
>
> and use normal indent
One could. I guess these checks aren't directly related to the CT_DEAD
dumping.
>
>> +{
>> + u32 desc_tail = desc_read(xe, h2g, tail);
>> + u32 desc_head = desc_read(xe, h2g, head);
>> +
>> + if (tail != desc_tail) {
>> + desc_write(xe, h2g, status, desc_status | GUC_CTB_STATUS_MISMATCH);
>> + xe_gt_err(gt, "CT write: tail was modified %u != %u\n", desc_tail, tail);
>> + goto corrupted;
>> + }
>> +
>> + if (tail > h2g->info.size) {
>> + desc_write(xe, h2g, status, desc_status | GUC_CTB_STATUS_OVERFLOW);
>> + xe_gt_err(gt, "CT write: tail out of range: %u vs %u\n", tail, h2g->info.size);
>> + goto corrupted;
>> + }
>> +
>> + if (desc_head >= h2g->info.size) {
>> + desc_write(xe, h2g, status, desc_status | GUC_CTB_STATUS_OVERFLOW);
>> + xe_gt_err(gt, "CT write: invalid head offset %u >= %u)\n",
>> + desc_head, h2g->info.size);
>> + goto corrupted;
>> + }
>> +}
>> +#endif
>>
>> /* Command will wrap, zero fill (NOPs), return and check credits again */
>> if (tail + full_len > h2g->info.size) {
>> @@ -575,6 +686,10 @@ static int h2g_write(struct xe_guc_ct *ct, const u32 *action, u32 len,
>> desc_read(xe, h2g, head), h2g->info.tail);
>>
>> return 0;
>> +
>> +corrupted:
>> + CT_DEAD(ct, &ct->ctbs.h2g, H2G_WRITE);
>> + return -EPIPE;
>> }
>>
>> /*
>> @@ -685,7 +800,6 @@ static int guc_ct_send_locked(struct xe_guc_ct *ct, const u32 *action, u32 len,
>> struct g2h_fence *g2h_fence)
>> {
>> struct xe_gt *gt = ct_to_gt(ct);
>> - struct drm_printer p = xe_gt_info_printer(gt);
>> unsigned int sleep_period_ms = 1;
>> int ret;
>>
>> @@ -738,8 +852,13 @@ static int guc_ct_send_locked(struct xe_guc_ct *ct, const u32 *action, u32 len,
>> goto broken;
>> #undef g2h_avail
>>
>> - if (dequeue_one_g2h(ct) < 0)
>> + ret = dequeue_one_g2h(ct);
>> + if (ret < 0) {
>> + if (ret != -ECANCELED)
>> + xe_gt_err(ct_to_gt(ct), "CTB receive failed (%pe)",
>> + ERR_PTR(ret));
>> goto broken;
>> + }
>>
>> goto try_again;
>> }
>> @@ -748,8 +867,7 @@ static int guc_ct_send_locked(struct xe_guc_ct *ct, const u32 *action, u32 len,
>>
>> broken:
>> xe_gt_err(gt, "No forward process on H2G, reset required\n");
>> - xe_guc_ct_print(ct, &p, true);
>> - ct->ctbs.h2g.info.broken = true;
>> + CT_DEAD(ct, &ct->ctbs.h2g, DEADLOCK);
>>
>> return -EDEADLK;
>> }
>> @@ -976,6 +1094,7 @@ static int parse_g2h_response(struct xe_guc_ct *ct, u32 *msg, u32 len)
>> else
>> xe_gt_err(gt, "unexpected response %u for FAST_REQ H2G fence 0x%x!\n",
>> type, fence);
>> + CT_DEAD(ct, NULL, PARSE_G2H_RESPONSE);
>>
>> return -EPROTO;
>> }
>> @@ -984,8 +1103,9 @@ static int parse_g2h_response(struct xe_guc_ct *ct, u32 *msg, u32 len)
>> if (unlikely(!g2h_fence)) {
>> /* Don't tear down channel, as send could've timed out */
>> xe_gt_warn(gt, "G2H fence (%u) not found!\n", fence);
>> + CT_DEAD(ct, NULL, PARSE_G2H_UNKNOWN);
>> g2h_release_space(ct, GUC_CTB_HXG_MSG_MAX_LEN);
>> - return 0;
>> + return -EPROTO;
>> }
>>
>> xe_gt_assert(gt, fence == g2h_fence->seqno);
>> @@ -1027,7 +1147,7 @@ static int parse_g2h_msg(struct xe_guc_ct *ct, u32 *msg, u32 len)
>> if (unlikely(origin != GUC_HXG_ORIGIN_GUC)) {
>> xe_gt_err(gt, "G2H channel broken on read, origin=%u, reset required\n",
>> origin);
>> - ct->ctbs.g2h.info.broken = true;
>> + CT_DEAD(ct, &ct->ctbs.g2h, PARSE_G2H_ORIGIN);
>>
>> return -EPROTO;
>> }
>> @@ -1045,7 +1165,7 @@ static int parse_g2h_msg(struct xe_guc_ct *ct, u32 *msg, u32 len)
>> default:
>> xe_gt_err(gt, "G2H channel broken on read, type=%u, reset required\n",
>> type);
>> - ct->ctbs.g2h.info.broken = true;
>> + CT_DEAD(ct, &ct->ctbs.g2h, PARSE_G2H_TYPE);
>>
>> ret = -EOPNOTSUPP;
>> }
>> @@ -1122,9 +1242,11 @@ static int process_g2h_msg(struct xe_guc_ct *ct, u32 *msg, u32 len)
>> xe_gt_err(gt, "unexpected G2H action 0x%04x\n", action);
>> }
>>
>> - if (ret)
>> + if (ret) {
>> xe_gt_err(gt, "G2H action 0x%04x failed (%pe)\n",
>> action, ERR_PTR(ret));
>> + CT_DEAD(ct, NULL, PROCESS_FAILED);
> I'm not sure this warrants triggering CT_DEAD
> or at least I just hope it wont trigger full GuC log dump into dmesg
> that would kill normal debug/bringup activities
Feel free to disable it locally if you are working on something that is
likely to generate failed notification processing. But that is not
something that should ever happen in a live system. So if CI hits one
then we want to know how and why.
>
>> + }
>>
>> return 0;
>> }
>> @@ -1134,7 +1256,7 @@ static int g2h_read(struct xe_guc_ct *ct, u32 *msg, bool fast_path)
>> struct xe_device *xe = ct_to_xe(ct);
>> struct xe_gt *gt = ct_to_gt(ct);
>> struct guc_ctb *g2h = &ct->ctbs.g2h;
>> - u32 tail, head, len;
>> + u32 tail, head, len, desc_status;
>> s32 avail;
>> u32 action;
>> u32 *hxg;
>> @@ -1153,6 +1275,52 @@ static int g2h_read(struct xe_guc_ct *ct, u32 *msg, bool fast_path)
>>
>> xe_gt_assert(gt, xe_guc_ct_enabled(ct));
>>
>> + desc_status = desc_read(xe, g2h, status);
>> + if (desc_status) {
>> + if (desc_status & GUC_CTB_STATUS_DISABLED) {
>> + /*
>> + * Potentially valid if a CLIENT_RESET request resulted in
>> + * contexts/engines being reset. But should never happen as
>> + * no contexts should be active when CLIENT_RESET is sent.
>> + */
>> + xe_gt_err(gt, "CT read: unexpected G2H after GuC has stopped!\n");
>> + desc_status &= ~GUC_CTB_STATUS_DISABLED;
>> + }
>> +
>> + if (desc_status) {
>> + xe_gt_err(gt, "CT read: non-zero status: %u\n", desc_status);
>> + goto corrupted;
>> + }
>> + }
>> +
>> +#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
> again, use if() not #if
>
>> +{
>> + u32 desc_tail = desc_read(xe, g2h, tail);
>> + u32 desc_head = desc_read(xe, g2h, head);
>> +
>> + if (g2h->info.head != desc_head) {
>> + desc_write(xe, g2h, status, desc_status | GUC_CTB_STATUS_MISMATCH);
>> + xe_gt_err(gt, "CT read: head was modified %u != %u\n",
>> + desc_head, g2h->info.head);
>> + goto corrupted;
>> + }
>> +
>> + if (g2h->info.head > g2h->info.size) {
>> + desc_write(xe, g2h, status, desc_status | GUC_CTB_STATUS_OVERFLOW);
>> + xe_gt_err(gt, "CT read: head out of range: %u vs %u\n",
>> + g2h->info.head, g2h->info.size);
>> + goto corrupted;
>> + }
>> +
>> + if (desc_tail >= g2h->info.size) {
>> + desc_write(xe, g2h, status, desc_status | GUC_CTB_STATUS_OVERFLOW);
>> + xe_gt_err(gt, "CT read: invalid tail offset %u >= %u)\n",
>> + desc_tail, g2h->info.size);
>> + goto corrupted;
>> + }
>> +}
>> +#endif
>> +
>> /* Calculate DW available to read */
>> tail = desc_read(xe, g2h, tail);
>> avail = tail - g2h->info.head;
>> @@ -1169,9 +1337,7 @@ static int g2h_read(struct xe_guc_ct *ct, u32 *msg, bool fast_path)
>> if (len > avail) {
>> xe_gt_err(gt, "G2H channel broken on read, avail=%d, len=%d, reset required\n",
>> avail, len);
>> - g2h->info.broken = true;
>> -
>> - return -EPROTO;
>> + goto corrupted;
>> }
>>
>> head = (g2h->info.head + 1) % g2h->info.size;
>> @@ -1217,6 +1383,10 @@ static int g2h_read(struct xe_guc_ct *ct, u32 *msg, bool fast_path)
>> g2h->info.head, tail);
>>
>> return len;
>> +
>> +corrupted:
>> + CT_DEAD(ct, &ct->ctbs.g2h, G2H_READ);
>> + return -EPROTO;
>> }
>>
>> static void g2h_fast_path(struct xe_guc_ct *ct, u32 *msg, u32 len)
>> @@ -1243,9 +1413,11 @@ static void g2h_fast_path(struct xe_guc_ct *ct, u32 *msg, u32 len)
>> xe_gt_warn(gt, "NOT_POSSIBLE");
>> }
>>
>> - if (ret)
>> + if (ret) {
>> xe_gt_err(gt, "G2H action 0x%04x failed (%pe)\n",
>> action, ERR_PTR(ret));
>> + CT_DEAD(ct, NULL, FAST_G2H);
>
>
>> + }
>> }
>>
>> /**
>> @@ -1305,7 +1477,6 @@ static int dequeue_one_g2h(struct xe_guc_ct *ct)
>>
>> static void receive_g2h(struct xe_guc_ct *ct)
>> {
>> - struct xe_gt *gt = ct_to_gt(ct);
>> bool ongoing;
>> int ret;
>>
>> @@ -1342,9 +1513,8 @@ static void receive_g2h(struct xe_guc_ct *ct)
>> mutex_unlock(&ct->lock);
>>
>> if (unlikely(ret == -EPROTO || ret == -EOPNOTSUPP)) {
>> - struct drm_printer p = xe_gt_info_printer(gt);
>> -
>> - xe_guc_ct_print(ct, &p, false);
>> + xe_gt_err(ct_to_gt(ct), "CT dequeue failed: %d", ret);
>> + CT_DEAD(ct, NULL, G2H_RECV);
>> kick_reset(ct);
>> }
>> } while (ret == 1);
>> @@ -1374,7 +1544,7 @@ static void guc_ctb_snapshot_capture(struct xe_device *xe, struct guc_ctb *ctb,
>> atomic ? GFP_ATOMIC : GFP_KERNEL);
>>
>> if (!snapshot->cmds) {
>> - drm_err(&xe->drm, "Skipping CTB commands snapshot. Only CTB info will be available.\n");
>> + drm_err(&xe->drm, "Skipping CTB commands snapshot. Only CT info will be available.\n");
>> return;
>> }
>>
>> @@ -1532,3 +1702,48 @@ void xe_guc_ct_print(struct xe_guc_ct *ct, struct drm_printer *p, bool atomic)
>> xe_guc_ct_snapshot_print(snapshot, p);
>> xe_guc_ct_snapshot_free(snapshot);
>> }
>> +
>> +#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
>> +static void ct_dead_print(struct xe_dead_ct *dead)
>> +{
>> + struct xe_guc_ct *ct = container_of(dead, struct xe_guc_ct, dead);
>> + struct xe_gt *gt = ct_to_gt(ct);
>> + static int g_count;
>> + struct drm_printer ip = xe_gt_info_printer(gt);
>> + struct drm_printer lp = drm_line_printer(&ip, "Capture", ++g_count);
>> +
>> + if (!dead->reason) {
>> + xe_gt_err(gt, "CTB is dead for no reason!?\n");
>> + return;
>> + }
>> +
>> + drm_printf(&lp, "CTB is dead - reason=0x%X\n", dead->reason);
>> +
>> + xe_guc_log_snapshot_print(ct_to_xe(ct), dead->snapshot_log, &lp, false);
>> + xe_guc_ct_snapshot_print(dead->snapshot_ct, &lp);
>> +
>> + drm_printf(&lp, "Done.\n");
>> +}
>> +
>> +static void ct_dead_worker_func(struct work_struct *w)
>> +{
>> + struct xe_guc_ct *ct = container_of(w, struct xe_guc_ct, dead.worker);
>> +
>> + if (!ct->dead.reported) {
>> + ct->dead.reported = true;
>> + ct_dead_print(&ct->dead);
>> + }
>> +
>> + spin_lock_irq(&ct->dead.lock);
>> +
>> + xe_guc_log_snapshot_free(ct->dead.snapshot_log);
>> + xe_guc_ct_snapshot_free(ct->dead.snapshot_ct);
>> +
>> + if (ct->dead.reason & CT_DEAD_RESET) {
>> + ct->dead.reason = CT_DEAD_ALIVE;
>> + ct->dead.reported = false;
>> + }
>> +
>> + spin_unlock_irq(&ct->dead.lock);
>> +}
>> +#endif
>> diff --git a/drivers/gpu/drm/xe/xe_guc_ct_types.h b/drivers/gpu/drm/xe/xe_guc_ct_types.h
>> index 761cb9031298..db1d45b7be2b 100644
>> --- a/drivers/gpu/drm/xe/xe_guc_ct_types.h
>> +++ b/drivers/gpu/drm/xe/xe_guc_ct_types.h
>> @@ -86,6 +86,24 @@ enum xe_guc_ct_state {
>> XE_GUC_CT_STATE_ENABLED,
>> };
>>
>> +#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
>> +/** struct xe_dead_ct - Information for debugging a dead CT */
>> +struct xe_dead_ct {
>> + /** @lock: protects memory allocation/free operations, and @reason updates */
>> + spinlock_t lock;
>> + /** @reason: bit mask of CT_DEAD_* reason codes */
>> + int reason;
> if it's bitmask then likely you want unsigned int (or long)
Yup. No need for long, there aren't that many bits defined yet.
John.
>
>> + /** @reported: for preventing multiple dumps per error sequence */
>> + bool reported;
>> + /** @worker: worker thread to get out of interrupt context before dumping */
>> + struct work_struct worker;
>> + /** snapshot_ct: copy of CT state and CTB content at point of error */
>> + struct xe_guc_ct_snapshot *snapshot_ct;
>> + /** snapshot_log: copy of GuC log at point of error */
>> + struct xe_guc_log_snapshot *snapshot_log;
>> +};
>> +#endif
>> +
>> /**
>> * struct xe_guc_ct - GuC command transport (CT) layer
>> *
>> @@ -128,6 +146,10 @@ struct xe_guc_ct {
>> u32 msg[GUC_CTB_MSG_MAX_LEN];
>> /** @fast_msg: Message buffer */
>> u32 fast_msg[GUC_CTB_MSG_MAX_LEN];
>> +
>> +#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
>> + struct xe_dead_ct dead;
>> +#endif
>> };
>>
>> #endif
^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2024-06-13 0:43 UTC | newest]
Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-11 1:20 [PATCH v4 0/7] drm/xe/guc: Improve quality and robustness of GuC log dumping John.C.Harrison
2024-06-11 1:20 ` [PATCH v4 1/7] drm/xe/guc: Remove spurious line feed in debug print John.C.Harrison
2024-06-11 1:20 ` [PATCH v4 2/7] drm/xe/guc: Copy GuC log prior to dumping John.C.Harrison
2024-06-11 22:30 ` Michal Wajdeczko
2024-06-12 23:36 ` John Harrison
2024-06-11 1:20 ` [PATCH v4 3/7] drm/xe/guc: Use a two stage dump for GuC logs and add more info John.C.Harrison
2024-06-11 22:49 ` Michal Wajdeczko
2024-06-12 23:52 ` John Harrison
2024-06-11 1:20 ` [PATCH v4 4/7] drm/print: Introduce drm_line_printer John.C.Harrison
2024-06-11 1:20 ` [PATCH v4 5/7] drm/xe/guc: Add a helper function for dumping GuC log to dmesg John.C.Harrison
2024-06-11 1:20 ` [PATCH v4 6/7] drm/xe/guc: Dead CT helper John.C.Harrison
2024-06-11 23:20 ` Michal Wajdeczko
2024-06-13 0:43 ` John Harrison
2024-06-11 1:20 ` [PATCH v4 7/7] drm/xe/guc: Dump entire CTB on errors John.C.Harrison
2024-06-11 1:25 ` ✓ CI.Patch_applied: success for drm/xe/guc: Improve quality and robustness of GuC log dumping (rev2) Patchwork
2024-06-11 1:25 ` ✗ CI.checkpatch: warning " Patchwork
2024-06-11 1:26 ` ✓ CI.KUnit: success " Patchwork
2024-06-11 1:38 ` ✓ CI.Build: " Patchwork
2024-06-11 1:40 ` ✗ CI.Hooks: failure " Patchwork
2024-06-11 1:41 ` ✗ CI.checksparse: warning " Patchwork
2024-06-11 2:31 ` ✗ CI.BAT: failure " Patchwork
2024-06-11 3:53 ` ✗ CI.FULL: " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2024-06-10 22:56 [PATCH v4 0/7] drm/xe/guc: Improve quality and robustness of GuC log dumping John.C.Harrison
2024-06-10 22:56 ` [PATCH v4 1/7] drm/xe/guc: Remove spurious line feed in debug print John.C.Harrison
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox