* [PATCH v6 00/10] Add CPER logging support for CRI
@ 2026-10-28 9:57 Badal Nilawar
2026-10-28 9:57 ` [PATCH v6 01/10] drm/xe/cper: Add CPER reporting entry point for xe_log Badal Nilawar
` (13 more replies)
0 siblings, 14 replies; 24+ messages in thread
From: Badal Nilawar @ 2026-10-28 9:57 UTC (permalink / raw)
To: intel-xe
Cc: anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio, raag.jadav,
riana.tauro, mallesh.koujalagi, aravind.iddamsetty,
himal.prasad.ghimiray, arvind.yadav, syed.abdul.muqthyar.ahmed,
nitin.r.gote
This patch series adds CPER (Common Platform Error Record) logging support
for RAS errors reported by Intel Xe GPUs. CPER records are emitted through
a trace event.
v2:
- Extended CPER logging to Uncorrectable errors and xe_ras_get_counter
request
- Log CPER records via xe_log SIGID infra
v3:
- Added the patches in incremental order (Raag)
- Fixed Sashiko warnings which are applicable
v4:
- Split the patches further for incremental review (Raag)
- Refactor info queue handling (Raag)
- Fix applicable Sashiko warnings
v5:
- Fixed v4 comments
- Covered default paths in error handling flow
- Moved info queue related patches at top
- Added example logs
v6:
- Fixed v6 comments
- Dropped the Info Queue patches; they will be submitted separately
- Dropped "drm/xe/xe_ras: Report unknown errors using SIGID" as
SIGID logging is not needed for it (Riana/Raag)
Badal Nilawar (10):
drm/xe/cper: Add CPER reporting entry point for xe_log
drm/xe/cper: Retrieve the error counter record for CPER reporting
drm/xe/cper: Initialize Intel-specific CPER header
drm/xe/cper: Construct CPER record for hardware errors
drm/xe/cper: Log CPER records for aggregate counter retrieval
drm/xe/cper: Emit cper record to trace buf
drm/xe/xe_ras: Report device memory errors using SIGID
drm/xe/xe_ras: Report core compute errors using SIGID
drm/xe/xe_ras: Report soc internal errors using SIGID
drm/xe/xe_ras: Report correctable errors using SIGID
.../ABI/testing/sysfs-driver-intel-xe-cper | 18 +
drivers/gpu/drm/xe/Makefile | 3 +
drivers/gpu/drm/xe/xe_cper.c | 318 ++++++++++++++++++
drivers/gpu/drm/xe/xe_cper.h | 37 ++
drivers/gpu/drm/xe/xe_cper_types.h | 110 ++++++
drivers/gpu/drm/xe/xe_device_types.h | 4 +
drivers/gpu/drm/xe/xe_log.c | 5 +-
drivers/gpu/drm/xe/xe_ras.c | 142 ++++++--
drivers/gpu/drm/xe/xe_ras.h | 2 +
drivers/gpu/drm/xe/xe_trace_cper.c | 9 +
drivers/gpu/drm/xe/xe_trace_cper.h | 65 ++++
11 files changed, 687 insertions(+), 26 deletions(-)
create mode 100644 Documentation/ABI/testing/sysfs-driver-intel-xe-cper
create mode 100644 drivers/gpu/drm/xe/xe_cper.c
create mode 100644 drivers/gpu/drm/xe/xe_cper.h
create mode 100644 drivers/gpu/drm/xe/xe_cper_types.h
create mode 100644 drivers/gpu/drm/xe/xe_trace_cper.c
create mode 100644 drivers/gpu/drm/xe/xe_trace_cper.h
--
2.56.0
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v6 01/10] drm/xe/cper: Add CPER reporting entry point for xe_log
2026-10-28 9:57 [PATCH v6 00/10] Add CPER logging support for CRI Badal Nilawar
@ 2026-10-28 9:57 ` Badal Nilawar
2026-10-28 16:22 ` Raag Jadav
2026-10-28 9:57 ` [PATCH v6 02/10] drm/xe/cper: Retrieve the error counter record for CPER reporting Badal Nilawar
` (12 subsequent siblings)
13 siblings, 1 reply; 24+ messages in thread
From: Badal Nilawar @ 2026-10-28 9:57 UTC (permalink / raw)
To: intel-xe
Cc: anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio, raag.jadav,
riana.tauro, mallesh.koujalagi, aravind.iddamsetty,
himal.prasad.ghimiray, arvind.yadav, syed.abdul.muqthyar.ahmed,
nitin.r.gote
Introduce xe_cper_emit() as the single entry point for emitting
CPER records from xe_log. xe_log now forwards every SIGID log entry
with its full context (component, location, data/len and formatted
message), and xe_cper decides how to report it. Hardware SIGIDs are
routed to a hardware error helper, software SIGIDs are left as TODO.
Assisted-by: LLM
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
v5:
- Drop xe and len check (Raag)
- s/*error_class/*counter
- drop xe_ from static function to shorten function name
v4:
- s/CONFIG_UEFI_CPER_X86/CONFIG_UEFI_CPER/ (Raag)
- Use in_range() for hardware SIGID check in xe_cper (Raag)
- Drop unused response param and constify error_class
- Check data len against struct xe_ras_error_class before use (Michal)
---
drivers/gpu/drm/xe/Makefile | 2 ++
drivers/gpu/drm/xe/xe_cper.c | 47 ++++++++++++++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_cper.h | 26 ++++++++++++++++++++
drivers/gpu/drm/xe/xe_log.c | 5 +++-
4 files changed, 79 insertions(+), 1 deletion(-)
create mode 100644 drivers/gpu/drm/xe/xe_cper.c
create mode 100644 drivers/gpu/drm/xe/xe_cper.h
diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
index a8476e2e8d54..655487a6550f 100644
--- a/drivers/gpu/drm/xe/Makefile
+++ b/drivers/gpu/drm/xe/Makefile
@@ -169,6 +169,8 @@ xe-$(CONFIG_HWMON) += xe_hwmon.o
xe-$(CONFIG_PERF_EVENTS) += xe_pmu.o
xe-$(CONFIG_CONFIGFS_FS) += xe_configfs.o
+xe-$(CONFIG_UEFI_CPER) += xe_cper.o
+
# graphics virtualization (SR-IOV) support
xe-y += \
xe_gt_sriov_vf.o \
diff --git a/drivers/gpu/drm/xe/xe_cper.c b/drivers/gpu/drm/xe/xe_cper.c
new file mode 100644
index 000000000000..ee7ca3cbae9b
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_cper.c
@@ -0,0 +1,47 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2026 Intel Corporation
+ */
+
+#include <linux/err.h>
+#include <linux/minmax.h>
+
+#include "xe_cper.h"
+#include "xe_device.h"
+#include "xe_ras_types.h"
+
+static bool is_hw_sigid(enum xe_sigid sigid)
+{
+ return in_range(sigid, INTEL_SIGID_GPU_XE_HARDWARE_START, INTEL_SIGID_BATCH);
+}
+
+static void cper_emit_hw_err(struct xe_device *xe, int cper_sev, enum xe_sigid sigid,
+ const struct xe_ras_error_class *counter)
+{
+ /* TODO */
+}
+
+/**
+ * xe_cper_emit() - Emit a CPER record for a SIGID log entry
+ * @xe: The &xe_device
+ * @cper_sev: CPER severity
+ * @sigid: Error signature identifier
+ * @component: Component identifier
+ * @location: Location details of the @component
+ * @data: Pointer to the additional details, or ERR_PTR, or NULL if not applicable
+ * @len: Length of the @data in bytes, or 0 if not applicable
+ * @vaf: Formatted log message
+ *
+ * Emit a CPER record for a SIGID log entry
+ */
+void xe_cper_emit(struct xe_device *xe, int cper_sev, enum xe_sigid sigid,
+ u32 component, u32 location, const void *data, size_t len,
+ struct va_format *vaf)
+{
+ if (is_hw_sigid(sigid) && !IS_ERR_OR_NULL(data)) {
+ cper_emit_hw_err(xe, cper_sev, sigid, data);
+ return;
+ }
+
+ /* TODO software CPER */
+}
diff --git a/drivers/gpu/drm/xe/xe_cper.h b/drivers/gpu/drm/xe/xe_cper.h
new file mode 100644
index 000000000000..84676c7645a5
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_cper.h
@@ -0,0 +1,26 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2026 Intel Corporation
+ */
+
+#ifndef _XE_CPER_H_
+#define _XE_CPER_H_
+
+#include <linux/types.h>
+
+#include "abi/xe_sigid_abi.h"
+
+struct va_format;
+struct xe_device;
+
+#if IS_ENABLED(CONFIG_UEFI_CPER)
+void xe_cper_emit(struct xe_device *xe, int cper_sev, enum xe_sigid sigid,
+ u32 component, u32 location, const void *data, size_t len,
+ struct va_format *vaf);
+#else
+static inline void xe_cper_emit(struct xe_device *xe, int cper_sev, enum xe_sigid sigid,
+ u32 component, u32 location, const void *data, size_t len,
+ struct va_format *vaf) {}
+#endif
+
+#endif /* _XE_CPER_H_ */
diff --git a/drivers/gpu/drm/xe/xe_log.c b/drivers/gpu/drm/xe/xe_log.c
index 29eb16db3320..80e2b1724ceb 100644
--- a/drivers/gpu/drm/xe/xe_log.c
+++ b/drivers/gpu/drm/xe/xe_log.c
@@ -8,6 +8,7 @@
#include "abi/xe_log_abi.h"
+#include "xe_cper.h"
#include "xe_device.h"
#include "xe_log.h"
#include "xe_pci_types.h"
@@ -19,7 +20,9 @@ static void log_emit_cper(struct pci_dev *pdev, int cper_sev, enum xe_sigid sigi
{
KUNIT_STATIC_STUB_REDIRECT(log_emit_cper, pdev, cper_sev, sigid,
component, location, data, len, vaf);
- /* TODO */
+
+ xe_cper_emit(xe_any_to_xe(pdev), cper_sev, sigid,
+ component, location, data, len, vaf);
}
static const char *log_unknown_component_prefix(u32 component)
--
2.56.0
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v6 02/10] drm/xe/cper: Retrieve the error counter record for CPER reporting
2026-10-28 9:57 [PATCH v6 00/10] Add CPER logging support for CRI Badal Nilawar
2026-10-28 9:57 ` [PATCH v6 01/10] drm/xe/cper: Add CPER reporting entry point for xe_log Badal Nilawar
@ 2026-10-28 9:57 ` Badal Nilawar
2026-10-28 16:25 ` Raag Jadav
2026-10-28 9:57 ` [PATCH v6 03/10] drm/xe/cper: Initialize Intel-specific CPER header Badal Nilawar
` (11 subsequent siblings)
13 siblings, 1 reply; 24+ messages in thread
From: Badal Nilawar @ 2026-10-28 9:57 UTC (permalink / raw)
To: intel-xe
Cc: anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio, raag.jadav,
riana.tauro, mallesh.koujalagi, aravind.iddamsetty,
himal.prasad.ghimiray, arvind.yadav, syed.abdul.muqthyar.ahmed,
nitin.r.gote
Retrieve error counter record required to build a CPER record.
Assisted-by: LLM
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
v6:
- v5 review comments
v5:
- Retain get_counter() (Raag)
v4:
- Drop redundant xe_ras_counter_is_valid() check (Raag)
- Add might_sleep() to assert that the caller is in a sleepable
context (sashiko)
- Add xe_device_assert_mem_access() to assert the outer runtime PM
wake reference requirement (sashiko)
---
drivers/gpu/drm/xe/xe_cper.c | 14 ++++++++++++-
drivers/gpu/drm/xe/xe_ras.c | 39 ++++++++++++++++++++++++++++--------
drivers/gpu/drm/xe/xe_ras.h | 2 ++
3 files changed, 46 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_cper.c b/drivers/gpu/drm/xe/xe_cper.c
index ee7ca3cbae9b..484f1b025558 100644
--- a/drivers/gpu/drm/xe/xe_cper.c
+++ b/drivers/gpu/drm/xe/xe_cper.c
@@ -4,10 +4,13 @@
*/
#include <linux/err.h>
+#include <linux/kernel.h>
#include <linux/minmax.h>
#include "xe_cper.h"
#include "xe_device.h"
+#include "xe_printk.h"
+#include "xe_ras.h"
#include "xe_ras_types.h"
static bool is_hw_sigid(enum xe_sigid sigid)
@@ -18,7 +21,16 @@ static bool is_hw_sigid(enum xe_sigid sigid)
static void cper_emit_hw_err(struct xe_device *xe, int cper_sev, enum xe_sigid sigid,
const struct xe_ras_error_class *counter)
{
- /* TODO */
+ struct xe_ras_get_counter_response response = {};
+
+ /* Fetching the counter sends a sysctrl command */
+ might_sleep();
+ xe_device_assert_mem_access(xe);
+
+ if (xe_ras_get_counter_response(xe, counter, &response)) {
+ xe_err(xe, "CPER: failed to get counter, skipping record\n");
+ return;
+ }
}
/**
diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
index db3cbc186a51..0555b86b63b2 100644
--- a/drivers/gpu/drm/xe/xe_ras.c
+++ b/drivers/gpu/drm/xe/xe_ras.c
@@ -679,6 +679,30 @@ void xe_ras_counter_threshold_crossed(struct xe_device *xe,
static int get_counter(struct xe_device *xe, struct xe_ras_error_class *counter, u32 *value)
{
struct xe_ras_get_counter_response response = {0};
+ int ret;
+
+ ret = xe_ras_get_counter_response(xe, counter, &response);
+ if (ret)
+ return ret;
+
+ *value = response.value;
+
+ return 0;
+}
+
+/**
+ * xe_ras_get_counter_response() - Get error counter record
+ * @xe: Xe device instance
+ * @counter: RAS error class
+ * @response: Counter record retrieved
+ *
+ * Retrieve the counter record of a specific error class from firmware.
+ *
+ * Return: 0 on success, negative error code on failure.
+ */
+int xe_ras_get_counter_response(struct xe_device *xe, const struct xe_ras_error_class *counter,
+ struct xe_ras_get_counter_response *response)
+{
struct xe_ras_get_counter_request request = {0};
struct xe_sysctrl_mailbox_command command = {0};
struct xe_ras_error_common *common;
@@ -688,7 +712,7 @@ static int get_counter(struct xe_device *xe, struct xe_ras_error_class *counter,
request.counter = *counter;
xe_sysctrl_create_command(&command, XE_SYSCTRL_GROUP_GFSP, XE_SYSCTRL_CMD_GET_COUNTER,
- &request, sizeof(request), &response, sizeof(response));
+ &request, sizeof(request), response, sizeof(*response));
ret = xe_sysctrl_send_command(&xe->sc, &command, &rlen);
if (ret) {
@@ -696,20 +720,19 @@ static int get_counter(struct xe_device *xe, struct xe_ras_error_class *counter,
return ret;
}
- if (rlen != sizeof(response)) {
+ if (rlen != sizeof(*response)) {
xe_err(xe, "sysctrl: unexpected get counter response length %zu (expected %zu)\n",
- rlen, sizeof(response));
+ rlen, sizeof(*response));
return -EIO;
}
- if (!ras_counter_is_valid(xe, &response.counter))
+ if (!ras_counter_is_valid(xe, &response->counter))
return -EBADMSG;
- common = &response.counter.common;
- *value = response.value;
+ common = &response->counter.common;
- xe_dbg(xe, "[RAS]: get counter %u for %s %s\n", *value, comp_to_str(common->component),
- sev_to_str(common->severity));
+ xe_dbg(xe, "[RAS]: get counter %u for %s %s\n", response->value,
+ comp_to_str(common->component), sev_to_str(common->severity));
return 0;
}
diff --git a/drivers/gpu/drm/xe/xe_ras.h b/drivers/gpu/drm/xe/xe_ras.h
index 1b358c7d040f..c44fa172011f 100644
--- a/drivers/gpu/drm/xe/xe_ras.h
+++ b/drivers/gpu/drm/xe/xe_ras.h
@@ -23,5 +23,7 @@ int xe_ras_init(struct xe_device *xe);
enum xe_ras_recovery_action xe_ras_process_errors(struct xe_device *xe);
bool xe_ras_get_disable_vram_page_offline(struct xe_device *xe);
u32 xe_ras_get_max_pages(struct xe_device *xe);
+int xe_ras_get_counter_response(struct xe_device *xe, const struct xe_ras_error_class *counter,
+ struct xe_ras_get_counter_response *response);
#endif
--
2.56.0
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v6 03/10] drm/xe/cper: Initialize Intel-specific CPER header
2026-10-28 9:57 [PATCH v6 00/10] Add CPER logging support for CRI Badal Nilawar
2026-10-28 9:57 ` [PATCH v6 01/10] drm/xe/cper: Add CPER reporting entry point for xe_log Badal Nilawar
2026-10-28 9:57 ` [PATCH v6 02/10] drm/xe/cper: Retrieve the error counter record for CPER reporting Badal Nilawar
@ 2026-10-28 9:57 ` Badal Nilawar
2026-10-28 16:34 ` Raag Jadav
2026-10-28 9:57 ` [PATCH v6 04/10] drm/xe/cper: Construct CPER record for hardware errors Badal Nilawar
` (10 subsequent siblings)
13 siblings, 1 reply; 24+ messages in thread
From: Badal Nilawar @ 2026-10-28 9:57 UTC (permalink / raw)
To: intel-xe
Cc: anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio, raag.jadav,
riana.tauro, mallesh.koujalagi, aravind.iddamsetty,
himal.prasad.ghimiray, arvind.yadav, syed.abdul.muqthyar.ahmed,
nitin.r.gote
Define the Intel-specific CPER header and initialize it
from the error counter record for Intel GPU hardware errors.
Assisted-by: LLM
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
v6:
- Handle INTEL_SIGID_INVALID (Sashiko)
v5:
- Move xe_cper_emit_counter() from patch 7 of rev4 to this patch to
avoid code churn (Raag)
- Use __packed for individual structures instead of #pragma pack (Raag)
- Drop redundent 'err'/'error' references, shorten structure name (Raag)
v4:
- Split from "drm/xe/cper: Prepare CPER record" (Raag)
- Add dedicated struct xe_cper_error_class (Michal)
- Drop empty fill_fw_id() stub, leave a TODO instead
v2:
- Guard against NULL THIS_MODULE->srcversion (sashiko)
---
drivers/gpu/drm/xe/xe_cper.c | 50 ++++++++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_cper_types.h | 49 +++++++++++++++++++++++++++++
2 files changed, 99 insertions(+)
create mode 100644 drivers/gpu/drm/xe/xe_cper_types.h
diff --git a/drivers/gpu/drm/xe/xe_cper.c b/drivers/gpu/drm/xe/xe_cper.c
index 484f1b025558..3a6e3ad1e130 100644
--- a/drivers/gpu/drm/xe/xe_cper.c
+++ b/drivers/gpu/drm/xe/xe_cper.c
@@ -6,18 +6,66 @@
#include <linux/err.h>
#include <linux/kernel.h>
#include <linux/minmax.h>
+#include <linux/pci.h>
#include "xe_cper.h"
+#include "xe_cper_types.h"
#include "xe_device.h"
#include "xe_printk.h"
#include "xe_ras.h"
#include "xe_ras_types.h"
+static bool is_sigid(u32 sigid)
+{
+ return sigid != INTEL_SIGID_INVALID && sigid != U32_MAX;
+}
+
static bool is_hw_sigid(enum xe_sigid sigid)
{
return in_range(sigid, INTEL_SIGID_GPU_XE_HARDWARE_START, INTEL_SIGID_BATCH);
}
+static void cper_init_intel_hdr(struct xe_device *xe, const struct xe_ras_error_class *counter,
+ u64 first_timestamp, u32 sig_id, u32 error_count,
+ struct xe_cper_intel_hdr *ihdr)
+{
+ ihdr->counter = *counter;
+ ihdr->validation_bits |= XE_CPER_VALID_LOCATION;
+ ihdr->sig_id = U32_MAX;
+
+ if (first_timestamp) {
+ ihdr->first_timestamp = first_timestamp;
+ ihdr->validation_bits |= XE_CPER_VALID_FIRST_TIMESTAMP;
+ }
+
+ if (is_sigid(sig_id)) {
+ ihdr->sig_id = sig_id;
+ ihdr->validation_bits |= XE_CPER_VALID_SIG_ID;
+ }
+
+ ihdr->error_count = error_count;
+
+ strscpy(ihdr->pci_bdf, pci_name(to_pci_dev(xe->drm.dev)), sizeof(ihdr->pci_bdf));
+ ihdr->validation_bits |= XE_CPER_VALID_PCI_BDF;
+
+#ifdef MODULE
+ if (THIS_MODULE->srcversion) {
+ strscpy(ihdr->drv_version, THIS_MODULE->srcversion, sizeof(ihdr->drv_version));
+ ihdr->validation_bits |= XE_CPER_VALID_DRV_VERSION;
+ }
+#endif
+}
+
+static void cper_emit_counter(struct xe_device *xe, int cper_sev, enum xe_sigid sigid,
+ const struct xe_ras_error_class *counter,
+ const struct xe_ras_get_counter_response *response)
+{
+ struct xe_cper_intel_hdr ihdr = {};
+
+ cper_init_intel_hdr(xe, counter, response->timestamp,
+ sigid, response->value, &ihdr);
+}
+
static void cper_emit_hw_err(struct xe_device *xe, int cper_sev, enum xe_sigid sigid,
const struct xe_ras_error_class *counter)
{
@@ -31,6 +79,8 @@ static void cper_emit_hw_err(struct xe_device *xe, int cper_sev, enum xe_sigid s
xe_err(xe, "CPER: failed to get counter, skipping record\n");
return;
}
+
+ cper_emit_counter(xe, cper_sev, sigid, counter, &response);
}
/**
diff --git a/drivers/gpu/drm/xe/xe_cper_types.h b/drivers/gpu/drm/xe/xe_cper_types.h
new file mode 100644
index 000000000000..a42f4f2bd719
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_cper_types.h
@@ -0,0 +1,49 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2026 Intel Corporation
+ */
+
+#ifndef _XE_CPER_TYPES_H_
+#define _XE_CPER_TYPES_H_
+
+#include <linux/types.h>
+
+#include "xe_ras_types.h"
+
+/*
+ * Validation bits definition for validation_bits in struct
+ * xe_cper_intel_hdr. When set, corresponding fields in header
+ * contains valid data
+ */
+#define XE_CPER_VALID_LOCATION 0x0001
+#define XE_CPER_VALID_FIRST_TIMESTAMP 0x0002
+#define XE_CPER_VALID_SIG_ID 0x0004
+#define XE_CPER_VALID_PCI_BDF 0x0008
+#define XE_CPER_VALID_DRV_VERSION 0x0010
+
+/**
+ * struct xe_cper_intel_hdr - Intel-specific CPER header
+ *
+ * Fixed-size header for the Intel GPU error section of a CPER record.
+ * All multi-byte fields are little-endian.
+ */
+struct xe_cper_intel_hdr {
+ /** @counter: Error class (severity, component, location, cause) */
+ struct xe_ras_error_class counter;
+ /** @first_timestamp: First occurrence of this error class, in ticks */
+ u64 first_timestamp;
+ /** @sig_id: Aggregated error class SIG ID; set to U32_MAX if unknown */
+ u32 sig_id;
+ /** @error_count: Number of times this error has been observed */
+ u32 error_count;
+ /** @validation_bits: Raw u16 view of all valid bits */
+ u16 validation_bits;
+ /** @pci_bdf: PCI location string, format "DDDD:bb:dd.f" */
+ char pci_bdf[16];
+ /** @drv_version: Driver source version string (THIS_MODULE->srcversion) */
+ char drv_version[25];
+ /** @reserved: Reserved for future use, must be zero */
+ u8 reserved[261];
+} __packed;
+
+#endif
--
2.56.0
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v6 04/10] drm/xe/cper: Construct CPER record for hardware errors
2026-10-28 9:57 [PATCH v6 00/10] Add CPER logging support for CRI Badal Nilawar
` (2 preceding siblings ...)
2026-10-28 9:57 ` [PATCH v6 03/10] drm/xe/cper: Initialize Intel-specific CPER header Badal Nilawar
@ 2026-10-28 9:57 ` Badal Nilawar
2026-10-28 16:52 ` Raag Jadav
2026-10-28 9:57 ` [PATCH v6 05/10] drm/xe/cper: Log CPER records for aggregate counter retrieval Badal Nilawar
` (9 subsequent siblings)
13 siblings, 1 reply; 24+ messages in thread
From: Badal Nilawar @ 2026-10-28 9:57 UTC (permalink / raw)
To: intel-xe
Cc: anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio, raag.jadav,
riana.tauro, mallesh.koujalagi, aravind.iddamsetty,
himal.prasad.ghimiray, arvind.yadav, syed.abdul.muqthyar.ahmed,
nitin.r.gote
Assemble the CPER record header, section descriptor and the Intel
error section for Intel GPU hardware errors.
Assisted-by: LLM
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
v6:
- Warn once for missing PCI ID to GUID mappings
- Make record header timestamp non precise
- %s/xe_platform_id/xe_device_guid/ (Raag)
v5:
- Rebased
- Add helpers to initialize CPER headers (Raag)
v4:
- Split from "drm/xe/cper: Prepare CPER record" (Raag)
- Use xe->device_uid for FRU ID
- Add platform IDs for all CRI PCI device IDs
v2:
- Encode cper_record_header timestamp in BCD format (sashiko)
---
drivers/gpu/drm/xe/xe_cper.c | 137 +++++++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_cper_types.h | 53 +++++++++++
2 files changed, 190 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_cper.c b/drivers/gpu/drm/xe/xe_cper.c
index 3a6e3ad1e130..ac9a3d724e5a 100644
--- a/drivers/gpu/drm/xe/xe_cper.c
+++ b/drivers/gpu/drm/xe/xe_cper.c
@@ -3,10 +3,14 @@
* Copyright © 2026 Intel Corporation
*/
+#include <linux/bcd.h>
#include <linux/err.h>
#include <linux/kernel.h>
#include <linux/minmax.h>
#include <linux/pci.h>
+#include <linux/slab.h>
+#include <linux/time.h>
+#include <linux/timekeeping.h>
#include "xe_cper.h"
#include "xe_cper_types.h"
@@ -25,6 +29,55 @@ static bool is_hw_sigid(enum xe_sigid sigid)
return in_range(sigid, INTEL_SIGID_GPU_XE_HARDWARE_START, INTEL_SIGID_BATCH);
}
+/* CPER platform_id GUIDs (RFC 9562 UUIDv5) for each PCI device ID. */
+static const struct xe_device_guid_entry xe_device_guids[] = {
+ { 0x674C, GUID_INIT(0x9046afe5, 0x9041, 0x5124,
+ 0x86, 0x14, 0x92, 0x55, 0x0d, 0x9e, 0x9d, 0xa6) },
+ { 0x674D, GUID_INIT(0xf95911b8, 0x6564, 0x5905,
+ 0xa6, 0xa7, 0xb9, 0xbf, 0x54, 0xab, 0x6c, 0x27) },
+ { 0x674E, GUID_INIT(0xb8d24106, 0x0108, 0x59f1,
+ 0x8f, 0xfc, 0x9f, 0xc4, 0xa9, 0xc9, 0xb7, 0xb0) },
+ { 0x674F, GUID_INIT(0xdd8dd88e, 0xef2f, 0x59b1,
+ 0x99, 0x15, 0xdb, 0x6f, 0x1d, 0xc9, 0xb4, 0x5d) },
+ { 0x6750, GUID_INIT(0x1dd66c44, 0x87d5, 0x524a,
+ 0xad, 0x6e, 0xfc, 0x18, 0x9d, 0x42, 0x6f, 0x1a) },
+ { 0x6751, GUID_INIT(0x17d0dd04, 0x2fad, 0x5400,
+ 0x99, 0xc8, 0x9b, 0x45, 0x51, 0x3b, 0x67, 0xe3) },
+};
+
+static const guid_t *lookup_device_guid(const struct pci_dev *pdev)
+{
+ unsigned int i;
+
+ for (i = 0; i < ARRAY_SIZE(xe_device_guids); i++)
+ if (xe_device_guids[i].device_id == pdev->device)
+ return &xe_device_guids[i].guid;
+ return NULL;
+}
+
+static u64 cper_timestamp_now(void)
+{
+ struct tm tm;
+ u64 ts = 0;
+ u8 *p = (u8 *)&ts;
+ int year;
+
+ time64_to_tm(ktime_get_real_seconds(), 0, &tm);
+
+ year = tm.tm_year + 1900;
+
+ p[0] = bin2bcd(tm.tm_sec);
+ p[1] = bin2bcd(tm.tm_min);
+ p[2] = bin2bcd(tm.tm_hour);
+ p[3] = 0x0;
+ p[4] = bin2bcd(tm.tm_mday);
+ p[5] = bin2bcd(tm.tm_mon + 1);
+ p[6] = bin2bcd(year % 100);
+ p[7] = bin2bcd(year / 100);
+
+ return ts;
+}
+
static void cper_init_intel_hdr(struct xe_device *xe, const struct xe_ras_error_class *counter,
u64 first_timestamp, u32 sig_id, u32 error_count,
struct xe_cper_intel_hdr *ihdr)
@@ -56,6 +109,89 @@ static void cper_init_intel_hdr(struct xe_device *xe, const struct xe_ras_error_
#endif
}
+static void cper_init_record_hdr(struct xe_device *xe, u8 severity,
+ const guid_t *notification_type,
+ struct cper_record_header *rhdr,
+ u32 total_len)
+{
+ const guid_t *device_guid;
+ struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
+
+ /* Assemble the CPER record header (UEFI Appendix N.2.1) */
+ memcpy(rhdr->signature, CPER_SIG_RECORD, CPER_SIG_SIZE);
+ rhdr->revision = CPER_RECORD_REV;
+ rhdr->signature_end = CPER_SIG_END;
+ rhdr->section_count = 1;
+ rhdr->error_severity = severity;
+ rhdr->validation_bits = CPER_VALID_TIMESTAMP;
+ rhdr->record_length = total_len;
+ rhdr->timestamp = cper_timestamp_now();
+ rhdr->creator_id = INTEL_CPER_CREATOR_XEKMD;
+ rhdr->notification_type = *notification_type;
+ rhdr->record_id = cper_next_record_id();
+ device_guid = lookup_device_guid(pdev);
+ if (device_guid) {
+ rhdr->platform_id = *device_guid;
+ rhdr->validation_bits |= CPER_VALID_PLATFORM_ID;
+ } else {
+ xe_printk(xe, warn_once, "CPER: no platform GUID for device %04x\n",
+ pdev->device);
+ }
+}
+
+static void cper_init_section_desc(struct xe_device *xe, u8 severity,
+ struct cper_section_descriptor *sdesc,
+ u32 einfo_len)
+{
+ sdesc->section_offset = sizeof(struct cper_record_header) +
+ sizeof(struct cper_section_descriptor);
+ sdesc->section_length = sizeof(struct xe_cper_intel_hdr) + einfo_len;
+ sdesc->revision = CPER_SEC_REV;
+ sdesc->validation_bits = 0;
+ sdesc->section_type = INTEL_CPER_SECTION_ACCEL_GENERIC;
+ sdesc->section_severity = severity;
+ if (xe->info.has_device_uid) {
+ memcpy(&sdesc->fru_id, &xe->device_uid, sizeof(xe->device_uid));
+ sdesc->validation_bits |= CPER_SEC_VALID_FRU_ID;
+ }
+}
+
+static void cper_record_emit(struct xe_device *xe, u8 severity,
+ const guid_t *notification_type,
+ const struct xe_cper_intel_hdr *ihdr,
+ const void *einfo, u32 einfo_len)
+{
+ struct cper_section_descriptor *sdesc;
+ struct cper_record_header *rhdr;
+ struct xe_cper_nonstd_record *rec;
+ u32 total_len;
+
+ total_len = sizeof(struct xe_cper_nonstd_record) + einfo_len;
+ rec = kzalloc(total_len, GFP_KERNEL);
+ if (!rec)
+ return;
+
+ rhdr = &rec->record_hdr;
+ sdesc = &rec->section_desc;
+
+ /* Assemble the CPER record header (UEFI Appendix N.2.1) */
+ cper_init_record_hdr(xe, severity, notification_type, rhdr, total_len);
+
+ /* Assemble the section descriptor (UEFI Appendix N.2.2) */
+ cper_init_section_desc(xe, severity, sdesc, einfo_len);
+
+ /* Copy the Intel-specific section header */
+ rec->intel_hdr = *ihdr;
+
+ /* Append optional variable-length error info */
+ if (einfo && einfo_len)
+ memcpy((u8 *)rec + sizeof(*rec), einfo, einfo_len);
+
+ /* TODO: Emit trace event */
+
+ kfree(rec);
+}
+
static void cper_emit_counter(struct xe_device *xe, int cper_sev, enum xe_sigid sigid,
const struct xe_ras_error_class *counter,
const struct xe_ras_get_counter_response *response)
@@ -64,6 +200,7 @@ static void cper_emit_counter(struct xe_device *xe, int cper_sev, enum xe_sigid
cper_init_intel_hdr(xe, counter, response->timestamp,
sigid, response->value, &ihdr);
+ cper_record_emit(xe, cper_sev, &INTEL_CPER_NOTIFY_GPU_ERROR, &ihdr, NULL, 0);
}
static void cper_emit_hw_err(struct xe_device *xe, int cper_sev, enum xe_sigid sigid,
diff --git a/drivers/gpu/drm/xe/xe_cper_types.h b/drivers/gpu/drm/xe/xe_cper_types.h
index a42f4f2bd719..ce1ae53b3415 100644
--- a/drivers/gpu/drm/xe/xe_cper_types.h
+++ b/drivers/gpu/drm/xe/xe_cper_types.h
@@ -6,7 +6,9 @@
#ifndef _XE_CPER_TYPES_H_
#define _XE_CPER_TYPES_H_
+#include <linux/cper.h>
#include <linux/types.h>
+#include <linux/uuid.h>
#include "xe_ras_types.h"
@@ -21,6 +23,28 @@
#define XE_CPER_VALID_PCI_BDF 0x0008
#define XE_CPER_VALID_DRV_VERSION 0x0010
+/*
+ * Intel CPER GUID Namespace — RFC 9562 UUIDv5 (SHA-1 name-based)
+ *
+ * All values below are generated deterministically by uuid generator.
+ * Do not hand-edit the byte values.
+ */
+
+/* Creator IDs */
+#define INTEL_CPER_CREATOR_XEKMD \
+ GUID_INIT(0x9a42070f, 0xdf9d, 0x555e, \
+ 0xba, 0x02, 0x7c, 0xbc, 0x86, 0x3d, 0x37, 0x1c)
+
+/* Notification Types */
+#define INTEL_CPER_NOTIFY_GPU_ERROR \
+ GUID_INIT(0x4ae12aef, 0x8745, 0x5fc7, \
+ 0xb9, 0x96, 0x71, 0xee, 0xbb, 0x51, 0xf2, 0x23)
+
+/* Section Types */
+#define INTEL_CPER_SECTION_ACCEL_GENERIC \
+ GUID_INIT(0xea9d8f84, 0x4258, 0x5227, \
+ 0x80, 0x28, 0xb9, 0xb1, 0x3e, 0x6d, 0x58, 0xb0)
+
/**
* struct xe_cper_intel_hdr - Intel-specific CPER header
*
@@ -46,4 +70,33 @@ struct xe_cper_intel_hdr {
u8 reserved[261];
} __packed;
+/**
+ * struct xe_cper_nonstd_record - Intel GPU CPER record
+ *
+ * Contains the standard CPER record header, section descriptor, and the
+ * Intel error section header.
+ */
+struct xe_cper_nonstd_record {
+ /** @record_hdr: Standard CPER record header (UEFI Appendix N.2.1) */
+ struct cper_record_header record_hdr;
+ /** @section_desc: CPER section descriptor */
+ struct cper_section_descriptor section_desc;
+ /** @intel_hdr: Intel-specific CPER header */
+ struct xe_cper_intel_hdr intel_hdr;
+} __packed;
+
+/**
+ * struct xe_device_guid_entry - Mapping from PCI device ID to CPER device GUID
+ *
+ * Used to resolve the platform_id field in a CPER record header.
+ * GUIDs are UUIDv5 (RFC 9562, SHA-1) derived from the Intel CPER namespace
+ * with name string "platform/8086:<dev_id_hex_lower>".
+ */
+struct xe_device_guid_entry {
+ /** @device_id: PCI device ID */
+ u16 device_id;
+ /** @guid: Corresponding UUIDv5 device GUID */
+ guid_t guid;
+};
+
#endif
--
2.56.0
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v6 05/10] drm/xe/cper: Log CPER records for aggregate counter retrieval
2026-10-28 9:57 [PATCH v6 00/10] Add CPER logging support for CRI Badal Nilawar
` (3 preceding siblings ...)
2026-10-28 9:57 ` [PATCH v6 04/10] drm/xe/cper: Construct CPER record for hardware errors Badal Nilawar
@ 2026-10-28 9:57 ` Badal Nilawar
2026-10-28 10:30 ` sashiko-bot
2026-10-28 17:05 ` Raag Jadav
2026-10-28 9:57 ` [PATCH v6 06/10] drm/xe/cper: Emit cper record to trace buf Badal Nilawar
` (8 subsequent siblings)
13 siblings, 2 replies; 24+ messages in thread
From: Badal Nilawar @ 2026-10-28 9:57 UTC (permalink / raw)
To: intel-xe
Cc: anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio, raag.jadav,
riana.tauro, mallesh.koujalagi, aravind.iddamsetty,
himal.prasad.ghimiray, arvind.yadav, syed.abdul.muqthyar.ahmed,
nitin.r.gote
Log CPER records for aggregate counter retrieval from userspace when
cper_on_query sysfs is enabled.
Assisted-by: LLM
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
v6:
- Return if sysfs init failure (Raag)
v5:
- Refactor get_counter() to conditionally emit cper (Raag)
v4:
- Add xe_cper_emit_counter() to emit records from the counter response
already fetched for userspace, instead of fetching it again
- Move cper_on_query to struct xe_cper and xe_cper.c (Raag)
- Document cper_on_query sysfs in ABI
- Fix sysfs attribute cper_on_query permissions (sashiko)
---
.../ABI/testing/sysfs-driver-intel-xe-cper | 18 +++++
drivers/gpu/drm/xe/xe_cper.c | 67 +++++++++++++++++--
drivers/gpu/drm/xe/xe_cper.h | 11 +++
drivers/gpu/drm/xe/xe_cper_types.h | 8 +++
drivers/gpu/drm/xe/xe_device_types.h | 4 ++
drivers/gpu/drm/xe/xe_ras.c | 52 ++++++++++++--
6 files changed, 151 insertions(+), 9 deletions(-)
create mode 100644 Documentation/ABI/testing/sysfs-driver-intel-xe-cper
diff --git a/Documentation/ABI/testing/sysfs-driver-intel-xe-cper b/Documentation/ABI/testing/sysfs-driver-intel-xe-cper
new file mode 100644
index 000000000000..2faccc318b34
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-driver-intel-xe-cper
@@ -0,0 +1,18 @@
+What: /sys/bus/pci/drivers/xe/.../cper_on_query
+Date: October 2026
+KernelVersion: 7.5
+Contact: intel-xe@lists.freedesktop.org
+Description:
+ This file controls whether a CPER (Common Platform Error Record)
+ is emitted each time a RAS error counter is queried.
+
+ This sysfs file is present only on Intel Xe platforms that support
+ the RAS error counter interface and when the kernel is built with
+ CPER support. Reading the current setting is available to all
+ users, while updating it is restricted to administrative users
+ only.
+
+ The value is a boolean. When set to 1, every counter query emits
+ a CPER record built from the counter and its associated info
+ queue data. When set to 0 (default), no record is emitted on
+ query.
diff --git a/drivers/gpu/drm/xe/xe_cper.c b/drivers/gpu/drm/xe/xe_cper.c
index ac9a3d724e5a..34117e194928 100644
--- a/drivers/gpu/drm/xe/xe_cper.c
+++ b/drivers/gpu/drm/xe/xe_cper.c
@@ -4,11 +4,13 @@
*/
#include <linux/bcd.h>
+#include <linux/device.h>
#include <linux/err.h>
#include <linux/kernel.h>
#include <linux/minmax.h>
#include <linux/pci.h>
#include <linux/slab.h>
+#include <linux/sysfs.h>
#include <linux/time.h>
#include <linux/timekeeping.h>
@@ -192,12 +194,24 @@ static void cper_record_emit(struct xe_device *xe, u8 severity,
kfree(rec);
}
-static void cper_emit_counter(struct xe_device *xe, int cper_sev, enum xe_sigid sigid,
- const struct xe_ras_error_class *counter,
- const struct xe_ras_get_counter_response *response)
+/**
+ * xe_cper_emit_counter() - Emit CPER records for an already fetched error counter
+ * @xe: The &xe_device
+ * @cper_sev: CPER severity
+ * @sigid: Error signature identifier
+ * @counter: RAS error class
+ * @response: Counter response returned by firmware for @counter
+ *
+ * Build and emit a CPER record from @response.
+ */
+void xe_cper_emit_counter(struct xe_device *xe, int cper_sev, enum xe_sigid sigid,
+ const struct xe_ras_error_class *counter,
+ const struct xe_ras_get_counter_response *response)
{
struct xe_cper_intel_hdr ihdr = {};
+ xe_assert(xe, is_hw_sigid(sigid));
+
cper_init_intel_hdr(xe, counter, response->timestamp,
sigid, response->value, &ihdr);
cper_record_emit(xe, cper_sev, &INTEL_CPER_NOTIFY_GPU_ERROR, &ihdr, NULL, 0);
@@ -217,7 +231,7 @@ static void cper_emit_hw_err(struct xe_device *xe, int cper_sev, enum xe_sigid s
return;
}
- cper_emit_counter(xe, cper_sev, sigid, counter, &response);
+ xe_cper_emit_counter(xe, cper_sev, sigid, counter, &response);
}
/**
@@ -244,3 +258,48 @@ void xe_cper_emit(struct xe_device *xe, int cper_sev, enum xe_sigid sigid,
/* TODO software CPER */
}
+
+static ssize_t cper_on_query_show(struct device *dev, struct device_attribute *attr, char *buf)
+{
+ struct xe_device *xe = kdev_to_xe_device(dev);
+
+ return sysfs_emit(buf, "%u\n", READ_ONCE(xe->cper.on_query));
+}
+
+static ssize_t cper_on_query_store(struct device *dev, struct device_attribute *attr,
+ const char *buf, size_t count)
+{
+ struct xe_device *xe = kdev_to_xe_device(dev);
+ bool enable;
+ int ret;
+
+ ret = kstrtobool(buf, &enable);
+ if (ret)
+ return ret;
+
+ WRITE_ONCE(xe->cper.on_query, enable);
+
+ return count;
+}
+static DEVICE_ATTR_RW(cper_on_query);
+
+static struct attribute *cper_attrs[] = {
+ &dev_attr_cper_on_query.attr,
+ NULL
+};
+
+/* See Documentation/ABI/testing/sysfs-driver-intel-xe-cper */
+static const struct attribute_group cper_group = {
+ .attrs = cper_attrs,
+};
+
+/**
+ * xe_cper_sysfs_init() - Create the CPER sysfs attributes
+ * @xe: The &xe_device
+ *
+ * Return: 0 on success, negative error code on failure.
+ */
+int xe_cper_sysfs_init(struct xe_device *xe)
+{
+ return devm_device_add_group(xe->drm.dev, &cper_group);
+}
diff --git a/drivers/gpu/drm/xe/xe_cper.h b/drivers/gpu/drm/xe/xe_cper.h
index 84676c7645a5..ad50349c0a6f 100644
--- a/drivers/gpu/drm/xe/xe_cper.h
+++ b/drivers/gpu/drm/xe/xe_cper.h
@@ -12,15 +12,26 @@
struct va_format;
struct xe_device;
+struct xe_ras_error_class;
+struct xe_ras_get_counter_response;
#if IS_ENABLED(CONFIG_UEFI_CPER)
void xe_cper_emit(struct xe_device *xe, int cper_sev, enum xe_sigid sigid,
u32 component, u32 location, const void *data, size_t len,
struct va_format *vaf);
+void xe_cper_emit_counter(struct xe_device *xe, int cper_sev, enum xe_sigid sigid,
+ const struct xe_ras_error_class *error_class,
+ const struct xe_ras_get_counter_response *resp);
+int xe_cper_sysfs_init(struct xe_device *xe);
#else
static inline void xe_cper_emit(struct xe_device *xe, int cper_sev, enum xe_sigid sigid,
u32 component, u32 location, const void *data, size_t len,
struct va_format *vaf) {}
+static inline void xe_cper_emit_counter(struct xe_device *xe, int cper_sev,
+ enum xe_sigid sigid,
+ const struct xe_ras_error_class *error_class,
+ const struct xe_ras_get_counter_response *resp) {}
+static inline int xe_cper_sysfs_init(struct xe_device *xe) { return 0; }
#endif
#endif /* _XE_CPER_H_ */
diff --git a/drivers/gpu/drm/xe/xe_cper_types.h b/drivers/gpu/drm/xe/xe_cper_types.h
index ce1ae53b3415..68e30df0440e 100644
--- a/drivers/gpu/drm/xe/xe_cper_types.h
+++ b/drivers/gpu/drm/xe/xe_cper_types.h
@@ -99,4 +99,12 @@ struct xe_device_guid_entry {
guid_t guid;
};
+/**
+ * struct xe_cper - Xe CPER state
+ */
+struct xe_cper {
+ /** @on_query: Emit a CPER record on each RAS counter query */
+ bool on_query;
+};
+
#endif
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index 6a6f9a24365c..b98418795d5e 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -12,6 +12,7 @@
#include <drm/drm_file.h>
#include <drm/ttm/ttm_device.h>
+#include "xe_cper_types.h"
#include "xe_devcoredump_types.h"
#include "xe_drm_ras_types.h"
#include "xe_heci_gsc.h"
@@ -566,6 +567,9 @@ struct xe_device {
struct xe_ras_state state;
} ras;
+ /** @cper: CPER state */
+ struct xe_cper cper;
+
/** @i2c: I2C host controller */
struct xe_i2c *i2c;
diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
index 0555b86b63b2..6664153b3cae 100644
--- a/drivers/gpu/drm/xe/xe_ras.c
+++ b/drivers/gpu/drm/xe/xe_ras.c
@@ -6,6 +6,7 @@
#include "xe_assert.h"
#include "xe_bo.h"
#include "xe_configfs.h"
+#include "xe_cper.h"
#include "xe_debugfs.h"
#include "xe_device.h"
#include "xe_drm_ras.h"
@@ -110,7 +111,8 @@ static const char * const gpu_health_states[] = {
};
static_assert(ARRAY_SIZE(gpu_health_states) == XE_RAS_HEALTH_MAX);
-static int get_counter(struct xe_device *xe, struct xe_ras_error_class *counter, u32 *value);
+static int get_counter(struct xe_device *xe, struct xe_ras_error_class *counter,
+ u32 *value, bool emit_cper);
static u8 drm_to_xe_ras_severity(u8 severity)
{
@@ -136,6 +138,20 @@ static u8 xe_to_drm_ras_severity(u8 severity)
}
}
+static u8 ras_sev_to_cper_sev(u8 severity)
+{
+ switch (severity) {
+ case XE_RAS_SEV_CORRECTABLE:
+ return CPER_SEV_CORRECTED;
+ case XE_RAS_SEV_UNCORRECTABLE:
+ return CPER_SEV_RECOVERABLE;
+ case XE_RAS_SEV_INFORMATIONAL:
+ return CPER_SEV_INFORMATIONAL;
+ default:
+ return CPER_SEV_RECOVERABLE;
+ }
+}
+
static u8 drm_to_xe_ras_component(u8 component)
{
switch (component) {
@@ -172,6 +188,24 @@ static u8 xe_to_drm_ras_component(u8 component)
}
}
+static enum xe_sigid ras_comp_to_hw_sigid(u8 component)
+{
+ switch (component) {
+ case XE_RAS_COMP_DEVICE_MEMORY:
+ return XE_SIGID_DEVICE_MEMORY;
+ case XE_RAS_COMP_CORE_COMPUTE:
+ return XE_SIGID_CORE_COMPUTE;
+ case XE_RAS_COMP_PCIE:
+ return XE_SIGID_PCIE;
+ case XE_RAS_COMP_FABRIC:
+ return XE_SIGID_FABRIC;
+ case XE_RAS_COMP_SOC_INTERNAL:
+ return XE_SIGID_SOC_INTERNAL;
+ default:
+ return XE_SIGID_HW;
+ }
+}
+
static int ras_status_to_errno(u32 status)
{
switch (status) {
@@ -534,7 +568,7 @@ static void ras_send_error_event(struct xe_device *xe, u8 severity, u8 component
counter.common.severity = severity;
counter.common.component = component;
- ret = get_counter(xe, &counter, &value);
+ ret = get_counter(xe, &counter, &value, false);
if (ret)
return;
@@ -676,7 +710,8 @@ void xe_ras_counter_threshold_crossed(struct xe_device *xe,
}
}
-static int get_counter(struct xe_device *xe, struct xe_ras_error_class *counter, u32 *value)
+static int get_counter(struct xe_device *xe, struct xe_ras_error_class *counter,
+ u32 *value, bool emit_cper)
{
struct xe_ras_get_counter_response response = {0};
int ret;
@@ -686,7 +721,10 @@ static int get_counter(struct xe_device *xe, struct xe_ras_error_class *counter,
return ret;
*value = response.value;
-
+ if (emit_cper)
+ xe_cper_emit_counter(xe, ras_sev_to_cper_sev(counter->common.severity),
+ ras_comp_to_hw_sigid(counter->common.component),
+ counter, &response);
return 0;
}
@@ -867,7 +905,7 @@ int xe_ras_get_counter(struct xe_device *xe, u8 severity, u8 component, u32 *val
counter.common.component = drm_to_xe_ras_component(component);
guard(xe_pm_runtime)(xe);
- return get_counter(xe, &counter, value);
+ return get_counter(xe, &counter, value, READ_ONCE(xe->cper.on_query));
}
/**
@@ -1246,5 +1284,9 @@ int xe_ras_init(struct xe_device *xe)
if (ret)
xe_err(xe, "Failed to create GPU health sysfs, err=%d\n", ret);
+ ret = xe_cper_sysfs_init(xe);
+ if (ret)
+ return ret;
+
return devm_add_action_or_reset(xe->drm.dev, ras_fini, xe);
}
--
2.56.0
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v6 06/10] drm/xe/cper: Emit cper record to trace buf
2026-10-28 9:57 [PATCH v6 00/10] Add CPER logging support for CRI Badal Nilawar
` (4 preceding siblings ...)
2026-10-28 9:57 ` [PATCH v6 05/10] drm/xe/cper: Log CPER records for aggregate counter retrieval Badal Nilawar
@ 2026-10-28 9:57 ` Badal Nilawar
2026-10-28 17:06 ` Raag Jadav
2026-10-28 9:57 ` [PATCH v6 07/10] drm/xe/xe_ras: Report device memory errors using SIGID Badal Nilawar
` (7 subsequent siblings)
13 siblings, 1 reply; 24+ messages in thread
From: Badal Nilawar @ 2026-10-28 9:57 UTC (permalink / raw)
To: intel-xe
Cc: anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio, raag.jadav,
riana.tauro, mallesh.koujalagi, aravind.iddamsetty,
himal.prasad.ghimiray, arvind.yadav, syed.abdul.muqthyar.ahmed,
nitin.r.gote
Add the xe_error_cper tracepoint and emit each assembled CPER record
through it. Besides the raw record, the event carries the device name,
platform ID, FRU ID, severity and the Intel error section header, so
tools can pick up the records from the trace buffer.
Assisted-by: LLM
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
v6:
- %s/intel_err_hdr_raw/intel_hdr_raw/ (Raag)
v5:
- Add example CPER trace
- Use %pUl for platform and FRU GUIDs (Sashiko)
v4:
- Build xe_trace_cper.o with CONFIG_UEFI_CPER instead of
CONFIG_UEFI_CPER_X86
---
drivers/gpu/drm/xe/Makefile | 3 +-
drivers/gpu/drm/xe/xe_cper.c | 15 ++++++-
drivers/gpu/drm/xe/xe_trace_cper.c | 9 +++++
drivers/gpu/drm/xe/xe_trace_cper.h | 65 ++++++++++++++++++++++++++++++
4 files changed, 90 insertions(+), 2 deletions(-)
create mode 100644 drivers/gpu/drm/xe/xe_trace_cper.c
create mode 100644 drivers/gpu/drm/xe/xe_trace_cper.h
diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
index 655487a6550f..0392ba58dd65 100644
--- a/drivers/gpu/drm/xe/Makefile
+++ b/drivers/gpu/drm/xe/Makefile
@@ -169,7 +169,8 @@ xe-$(CONFIG_HWMON) += xe_hwmon.o
xe-$(CONFIG_PERF_EVENTS) += xe_pmu.o
xe-$(CONFIG_CONFIGFS_FS) += xe_configfs.o
-xe-$(CONFIG_UEFI_CPER) += xe_cper.o
+xe-$(CONFIG_UEFI_CPER) += xe_cper.o \
+ xe_trace_cper.o
# graphics virtualization (SR-IOV) support
xe-y += \
diff --git a/drivers/gpu/drm/xe/xe_cper.c b/drivers/gpu/drm/xe/xe_cper.c
index 34117e194928..3639fe23297c 100644
--- a/drivers/gpu/drm/xe/xe_cper.c
+++ b/drivers/gpu/drm/xe/xe_cper.c
@@ -20,6 +20,7 @@
#include "xe_printk.h"
#include "xe_ras.h"
#include "xe_ras_types.h"
+#include "xe_trace_cper.h"
static bool is_sigid(u32 sigid)
{
@@ -189,7 +190,8 @@ static void cper_record_emit(struct xe_device *xe, u8 severity,
if (einfo && einfo_len)
memcpy((u8 *)rec + sizeof(*rec), einfo, einfo_len);
- /* TODO: Emit trace event */
+ trace_xe_error_cper(xe, &rhdr->platform_id, &sdesc->fru_id, severity,
+ &rec->intel_hdr, total_len, (u8 *)rec);
kfree(rec);
}
@@ -246,6 +248,17 @@ static void cper_emit_hw_err(struct xe_device *xe, int cper_sev, enum xe_sigid s
* @vaf: Formatted log message
*
* Emit a CPER record for a SIGID log entry
+ *
+ * Example trace output::
+ *
+ * xe_error_cper: dev=0000:03:00.0 severity=2
+ * platform_id=9046afe5-9041-5124-8614-92550d9e9da6
+ * fru_id=91befe38-2f61-3d7b-0000-000000000000
+ * intel_hdr_raw=
+ * 01 02 00 18 00 00 00 01 00 00 00 00 64 77 51 14 ...
+ * cper_len=1772
+ * cper_raw=
+ * 43 50 45 52 00 01 ff ff ff ff 01 00 02 00 00 00 ...
*/
void xe_cper_emit(struct xe_device *xe, int cper_sev, enum xe_sigid sigid,
u32 component, u32 location, const void *data, size_t len,
diff --git a/drivers/gpu/drm/xe/xe_trace_cper.c b/drivers/gpu/drm/xe/xe_trace_cper.c
new file mode 100644
index 000000000000..caea8783ab7c
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_trace_cper.c
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright © 2026 Intel Corporation
+ */
+
+#ifndef __CHECKER__
+#define CREATE_TRACE_POINTS
+#include "xe_trace_cper.h"
+#endif
diff --git a/drivers/gpu/drm/xe/xe_trace_cper.h b/drivers/gpu/drm/xe/xe_trace_cper.h
new file mode 100644
index 000000000000..af952a6e168c
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_trace_cper.h
@@ -0,0 +1,65 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright © 2026 Intel Corporation
+ */
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM xe
+
+#if !defined(_XE_TRACE_CPER_H_) || defined(TRACE_HEADER_MULTI_READ)
+#define _XE_TRACE_CPER_H_
+
+#include <linux/tracepoint.h>
+#include <linux/types.h>
+
+#include "xe_cper_types.h"
+#include "xe_device_types.h"
+
+#define __dev_name_xe(xe) dev_name((xe)->drm.dev)
+
+TRACE_EVENT(xe_error_cper,
+ TP_PROTO(struct xe_device *xe,
+ const guid_t *platform_id, const guid_t *fru_id,
+ const u8 severity,
+ const struct xe_cper_intel_hdr *ihdr,
+ u32 cper_len, const u8 *cper),
+ TP_ARGS(xe, platform_id, fru_id, severity, ihdr, cper_len, cper),
+
+ TP_STRUCT__entry(
+ __string(dev, __dev_name_xe(xe))
+ __array(char, platform_id, UUID_SIZE)
+ __array(char, fru_id, UUID_SIZE)
+ __field(u8, sev)
+ __array(u8, ihdr_raw, sizeof(struct xe_cper_intel_hdr))
+ __field(u32, cper_len)
+ __dynamic_array(u8, cper, cper_len)
+ ),
+
+ TP_fast_assign(
+ __assign_str(dev);
+ __entry->sev = severity;
+ memcpy(__entry->platform_id, platform_id, UUID_SIZE);
+ memcpy(__entry->fru_id, fru_id, UUID_SIZE);
+ memcpy(__entry->ihdr_raw, ihdr, sizeof(struct xe_cper_intel_hdr));
+ __entry->cper_len = cper_len;
+ memcpy(__get_dynamic_array(cper), cper, cper_len);
+ ),
+
+ TP_printk("dev=%s severity=%d platform_id=%pUl fru_id=%pUl intel_hdr_raw=%s cper_len=%u cper_raw=%s",
+ __get_str(dev), __entry->sev,
+ __entry->platform_id, __entry->fru_id,
+ __print_hex(__entry->ihdr_raw,
+ sizeof(struct xe_cper_intel_hdr)),
+ __entry->cper_len,
+ __print_hex(__get_dynamic_array(cper),
+ __entry->cper_len))
+);
+
+#endif
+
+/* This part must be outside protection */
+#undef TRACE_INCLUDE_PATH
+#undef TRACE_INCLUDE_FILE
+#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/xe
+#define TRACE_INCLUDE_FILE xe_trace_cper
+#include <trace/define_trace.h>
--
2.56.0
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v6 07/10] drm/xe/xe_ras: Report device memory errors using SIGID
2026-10-28 9:57 [PATCH v6 00/10] Add CPER logging support for CRI Badal Nilawar
` (5 preceding siblings ...)
2026-10-28 9:57 ` [PATCH v6 06/10] drm/xe/cper: Emit cper record to trace buf Badal Nilawar
@ 2026-10-28 9:57 ` Badal Nilawar
2026-10-28 17:07 ` Raag Jadav
2026-10-28 9:57 ` [PATCH v6 08/10] drm/xe/xe_ras: Report core compute " Badal Nilawar
` (6 subsequent siblings)
13 siblings, 1 reply; 24+ messages in thread
From: Badal Nilawar @ 2026-10-28 9:57 UTC (permalink / raw)
To: intel-xe
Cc: anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio, raag.jadav,
riana.tauro, mallesh.koujalagi, aravind.iddamsetty,
himal.prasad.ghimiray, arvind.yadav, syed.abdul.muqthyar.ahmed,
nitin.r.gote
Use xe_log_comp_info helper to report device memory errors using the
corresponding SIGID.
Example:
xe 0000:03:00.0: [drm] SIGID=202 (020100020008002000300000)
DEVICE_MEMORY: Double-bit ECC error at sw address 0x63000
Reviewed-by: Mallesh Koujalagi <mallesh.koujalagi@intel.com>
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
Cc: Riana Tauro <riana.tauro@intel.com>
---
v6:
- Consolidate double-bit ECC logs into a single log; informational if the
page was offlined, error otherwise (Raag)
v5:
- Log unknown memory errors
- Add example log in commit message (Raag)
---
drivers/gpu/drm/xe/xe_ras.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
index 6664153b3cae..8ed3c4d5b580 100644
--- a/drivers/gpu/drm/xe/xe_ras.c
+++ b/drivers/gpu/drm/xe/xe_ras.c
@@ -644,6 +644,7 @@ static u8 handle_soc_internal_errors(struct xe_device *xe, struct xe_ras_error_a
static u8 handle_device_memory_errors(struct xe_device *xe, struct xe_ras_error_array *arr)
{
struct xe_ras_memory_error *info = (void *)arr->details;
+ u8 cper_sev = ras_sev_to_cper_sev(arr->counter.common.severity);
int ret;
/*
@@ -655,17 +656,25 @@ static u8 handle_device_memory_errors(struct xe_device *xe, struct xe_ras_error_
*/
switch (info->category) {
case XE_RAS_MEMORY_POISON:
- xe_info(xe, "[RAS]: Poison error detected\n");
+ xe_log_comp_info(xe, DEVICE_MEMORY, &arr->counter, sizeof(arr->counter),
+ "Poison error detected\n");
break;
case XE_RAS_MEMORY_DATA_PARITY:
- xe_info(xe, "[RAS]: Data parity error detected\n");
+ xe_log_comp_info(xe, DEVICE_MEMORY, &arr->counter, sizeof(arr->counter),
+ "Data parity error detected\n");
break;
case XE_RAS_MEMORY_DB_ECC:
ret = handle_page_offline(xe, info->sw_address, true);
+ xe_log_comp(xe, ret ? cper_sev : CPER_SEV_INFORMATIONAL,
+ DEVICE_MEMORY, &arr->counter, sizeof(arr->counter),
+ "Double-bit ECC error detected at sw address 0x%llx\n",
+ info->sw_address);
if (ret)
return XE_RAS_RECOVERY_ACTION_RESET;
break;
default:
+ xe_log_comp(xe, cper_sev, DEVICE_MEMORY, &arr->counter, sizeof(arr->counter),
+ "Unknown error detected\n");
return XE_RAS_RECOVERY_ACTION_RESET;
}
--
2.56.0
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v6 08/10] drm/xe/xe_ras: Report core compute errors using SIGID
2026-10-28 9:57 [PATCH v6 00/10] Add CPER logging support for CRI Badal Nilawar
` (6 preceding siblings ...)
2026-10-28 9:57 ` [PATCH v6 07/10] drm/xe/xe_ras: Report device memory errors using SIGID Badal Nilawar
@ 2026-10-28 9:57 ` Badal Nilawar
2026-10-28 9:57 ` [PATCH v6 09/10] drm/xe/xe_ras: Report soc internal " Badal Nilawar
` (5 subsequent siblings)
13 siblings, 0 replies; 24+ messages in thread
From: Badal Nilawar @ 2026-10-28 9:57 UTC (permalink / raw)
To: intel-xe
Cc: anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio, raag.jadav,
riana.tauro, mallesh.koujalagi, aravind.iddamsetty,
himal.prasad.ghimiray, arvind.yadav, syed.abdul.muqthyar.ahmed,
nitin.r.gote
Use xe_log_* helpers to report core compute errors.
Example:
xe 0000:03:00.0: [drm] *ERROR* SIGID=203 (02020012000a000200000800)
[Hardware Error]: CORE_COMPUTE: Uncorrectable error detected, type 2
Reviewed-by: Mallesh Koujalagi <mallesh.koujalagi@intel.com>
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
Cc: Riana Tauro <riana.tauro@intel.com>
---
v5:
- Print uncorr error type in sig id log (Riana)
v2:
- Pass RAS firmware reported severity to xe_log
---
drivers/gpu/drm/xe/xe_ras.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
index 8ed3c4d5b580..d7789beb2f6f 100644
--- a/drivers/gpu/drm/xe/xe_ras.c
+++ b/drivers/gpu/drm/xe/xe_ras.c
@@ -578,13 +578,17 @@ static void ras_send_error_event(struct xe_device *xe, u8 severity, u8 component
xe_drm_ras_event(xe, drm_component, drm_severity, value);
}
-static u8 handle_core_compute_errors(struct xe_ras_error_array *arr)
+static u8 handle_core_compute_errors(struct xe_device *xe, struct xe_ras_error_array *arr)
{
struct xe_ras_compute_error *error_info = (void *)arr->details;
+ u8 cper_sev = ras_sev_to_cper_sev(arr->counter.common.severity);
u8 uncorr_type;
uncorr_type = FIELD_GET(CORE_COMPUTE_UNCORR_TYPE, error_info->log_header);
+ xe_log_comp(xe, cper_sev, CORE_COMPUTE, &arr->counter, sizeof(arr->counter),
+ "Uncorrectable error detected, type %u\n", uncorr_type);
+
/* Request a reset if error is global */
if (uncorr_type == GLOBAL_UNCORR_ERROR)
return XE_RAS_RECOVERY_ACTION_RESET;
@@ -861,7 +865,7 @@ enum xe_ras_recovery_action xe_ras_process_errors(struct xe_device *xe)
switch (component) {
case XE_RAS_COMP_CORE_COMPUTE:
- action = handle_core_compute_errors(arr);
+ action = handle_core_compute_errors(xe, arr);
break;
case XE_RAS_COMP_SOC_INTERNAL:
action = handle_soc_internal_errors(xe, arr);
--
2.56.0
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v6 09/10] drm/xe/xe_ras: Report soc internal errors using SIGID
2026-10-28 9:57 [PATCH v6 00/10] Add CPER logging support for CRI Badal Nilawar
` (7 preceding siblings ...)
2026-10-28 9:57 ` [PATCH v6 08/10] drm/xe/xe_ras: Report core compute " Badal Nilawar
@ 2026-10-28 9:57 ` Badal Nilawar
2026-10-28 17:17 ` Raag Jadav
2026-10-28 9:57 ` [PATCH v6 10/10] drm/xe/xe_ras: Report correctable " Badal Nilawar
` (4 subsequent siblings)
13 siblings, 1 reply; 24+ messages in thread
From: Badal Nilawar @ 2026-10-28 9:57 UTC (permalink / raw)
To: intel-xe
Cc: anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio, raag.jadav,
riana.tauro, mallesh.koujalagi, aravind.iddamsetty,
himal.prasad.ghimiray, arvind.yadav, syed.abdul.muqthyar.ahmed,
nitin.r.gote
Use xe_log_* helpers to report soc internal errors.
Example:
xe 0000:03:00.0: [drm] *ERROR* SIGID=205 FATAL
(020600700000000000000000) [Hardware Error]: SOC_INTERNAL:
PUNIT error detected: 0x00000002
Reviewed-by: Mallesh Koujalagi <mallesh.koujalagi@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
Cc: Riana Tauro <riana.tauro@intel.com>
---
v6:
- Print entire xe_ras_soc_error_source for unknown errors (Raag)
v5:
- Log unknown soc internal errors
---
drivers/gpu/drm/xe/xe_ras.c | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
index d7789beb2f6f..5eeccc920d7c 100644
--- a/drivers/gpu/drm/xe/xe_ras.c
+++ b/drivers/gpu/drm/xe/xe_ras.c
@@ -609,7 +609,7 @@ static u8 handle_soc_internal_errors(struct xe_device *xe, struct xe_ras_error_a
{
struct xe_ras_soc_error *info = (void *)arr->details;
struct xe_ras_soc_error_source *source = &info->source;
- struct xe_ras_error_class *counter = &arr->counter;
+ u32 raw_source;
if (source->csc) {
struct xe_ras_csc_error *csc_error = (void *)info->details;
@@ -623,9 +623,8 @@ static u8 handle_soc_internal_errors(struct xe_device *xe, struct xe_ras_error_a
* is required.
*/
if (csc_error->hec_fw_error) {
- xe_err(xe, "[RAS]: CSC %s detected: 0x%x\n",
- sev_to_str(counter->common.severity),
- csc_error->hec_fw_error);
+ xe_log_comp_fatal(xe, SOC_INTERNAL, &arr->counter, sizeof(arr->counter),
+ "CSC error detected: 0x%08x\n", csc_error->hec_fw_error);
xe_survivability_mode_runtime_enable(xe);
return XE_RAS_RECOVERY_ACTION_DISCONNECT;
}
@@ -633,15 +632,19 @@ static u8 handle_soc_internal_errors(struct xe_device *xe, struct xe_ras_error_a
struct xe_ras_ieh_error *ieh_error = (void *)info->details;
if (ieh_error->global_error_status & XE_RAS_SOC_IEH_PUNIT) {
- xe_err(xe, "[RAS]: PUNIT %s detected: 0x%x\n",
- sev_to_str(counter->common.severity),
- ieh_error->global_error_status);
+ xe_log_comp_fatal(xe, SOC_INTERNAL, &arr->counter, sizeof(arr->counter),
+ "PUNIT error detected: 0x%08x\n",
+ ieh_error->global_error_status);
punit_error_handler(xe);
return XE_RAS_RECOVERY_ACTION_DISCONNECT;
}
}
/* For other SoC internal errors, request a reset as recovery mechanism */
+ memcpy(&raw_source, source, sizeof(raw_source));
+ xe_log_comp(xe, ras_sev_to_cper_sev(arr->counter.common.severity), SOC_INTERNAL,
+ &arr->counter, sizeof(arr->counter),
+ "Unknown error detected (source=0x%08x)\n", raw_source);
return XE_RAS_RECOVERY_ACTION_RESET;
}
--
2.56.0
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v6 10/10] drm/xe/xe_ras: Report correctable errors using SIGID
2026-10-28 9:57 [PATCH v6 00/10] Add CPER logging support for CRI Badal Nilawar
` (8 preceding siblings ...)
2026-10-28 9:57 ` [PATCH v6 09/10] drm/xe/xe_ras: Report soc internal " Badal Nilawar
@ 2026-10-28 9:57 ` Badal Nilawar
2026-10-28 10:05 ` ✗ CI.checkpatch: warning for Add CPER logging support for CRI (rev6) Patchwork
` (3 subsequent siblings)
13 siblings, 0 replies; 24+ messages in thread
From: Badal Nilawar @ 2026-10-28 9:57 UTC (permalink / raw)
To: intel-xe
Cc: anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio, raag.jadav,
riana.tauro, mallesh.koujalagi, aravind.iddamsetty,
himal.prasad.ghimiray, arvind.yadav, syed.abdul.muqthyar.ahmed,
nitin.r.gote
Use xe_log_* helper to report correctable errors.
Example:
xe 0000:03:00.0: [drm] *ERROR* SIGID=203 CORRECTED
(010200180000000100000000) [Hardware Error]: CORE_COMPUTE: error detected
Assisted-by: LLM
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
Cc: Raag Jadav <raag.jadav@intel.com>
---
v4:
- Pass structured log component to xe_log_from() (sashiko)
---
drivers/gpu/drm/xe/xe_ras.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
index 5eeccc920d7c..c4ff618cccf0 100644
--- a/drivers/gpu/drm/xe/xe_ras.c
+++ b/drivers/gpu/drm/xe/xe_ras.c
@@ -3,6 +3,8 @@
* Copyright © 2026 Intel Corporation
*/
+#include <linux/bitfield.h>
+
#include "xe_assert.h"
#include "xe_bo.h"
#include "xe_configfs.h"
@@ -226,6 +228,12 @@ static int ras_status_to_errno(u32 status)
}
}
+static u16 ras_comp_to_log_comp(u8 component)
+{
+ return FIELD_PREP(XE_LOG_COMPONENT_CLASS_MASK, XE_LOG_COMPONENT_CLASS_HARDWARE) |
+ FIELD_PREP(XE_LOG_COMPONENT_TYPE_MASK, component);
+}
+
static inline const char *sev_to_str(u8 severity)
{
if (severity >= XE_RAS_SEV_MAX)
@@ -714,8 +722,11 @@ void xe_ras_counter_threshold_crossed(struct xe_device *xe,
if (!ras_counter_is_valid(xe, &errors[id]))
continue;
- xe_warn(xe, "[RAS]: %s %s detected\n",
- comp_to_str(component), sev_to_str(severity));
+ xe_log_from(xe, ras_sev_to_cper_sev(severity),
+ ras_comp_to_hw_sigid(component),
+ ras_comp_to_log_comp(component),
+ &errors[id], sizeof(errors[id]),
+ "error detected\n");
/* Send event once per component */
if (sent & BIT(component))
--
2.56.0
^ permalink raw reply related [flat|nested] 24+ messages in thread
* ✗ CI.checkpatch: warning for Add CPER logging support for CRI (rev6)
2026-10-28 9:57 [PATCH v6 00/10] Add CPER logging support for CRI Badal Nilawar
` (9 preceding siblings ...)
2026-10-28 9:57 ` [PATCH v6 10/10] drm/xe/xe_ras: Report correctable " Badal Nilawar
@ 2026-10-28 10:05 ` Patchwork
2026-10-28 10:07 ` ✓ CI.KUnit: success " Patchwork
` (2 subsequent siblings)
13 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2026-10-28 10:05 UTC (permalink / raw)
To: Badal Nilawar; +Cc: intel-xe
== Series Details ==
Series: Add CPER logging support for CRI (rev6)
URL : https://patchwork.freedesktop.org/series/169692/
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
3009867cd31863246e4afc138520a7a8bd37bb11
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit ba83bd0c7d5b9c5a65e21c98eaba3320ce17e731
Author: Badal Nilawar <badal.nilawar@intel.com>
Date: Wed Oct 28 15:27:34 2026 +0530
drm/xe/xe_ras: Report correctable errors using SIGID
Use xe_log_* helper to report correctable errors.
Example:
xe 0000:03:00.0: [drm] *ERROR* SIGID=203 CORRECTED
(010200180000000100000000) [Hardware Error]: CORE_COMPUTE: error detected
Assisted-by: LLM
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
Cc: Raag Jadav <raag.jadav@intel.com>
+ /mt/dim checkpatch 6a182ac542350dbca9147134654c35e463aa1382 drm-intel
ed6d68ebb144 drm/xe/cper: Add CPER reporting entry point for xe_log
-:29: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#29:
new file mode 100644
total: 0 errors, 1 warnings, 0 checks, 98 lines checked
5c987277bc31 drm/xe/cper: Retrieve the error counter record for CPER reporting
fb73d6fa17ba drm/xe/cper: Initialize Intel-specific CPER header
-:93: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#93:
new file mode 100644
total: 0 errors, 1 warnings, 0 checks, 123 lines checked
a6d906b5f87f drm/xe/cper: Construct CPER record for hardware errors
e9e509a2313e drm/xe/cper: Log CPER records for aggregate counter retrieval
-:13: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#13:
new file mode 100644
total: 0 errors, 1 warnings, 0 checks, 273 lines checked
2aff6bb1715e drm/xe/cper: Emit cper record to trace buf
-:69: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#69:
new file mode 100644
-:116: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#116: FILE: drivers/gpu/drm/xe/xe_trace_cper.h:28:
+ TP_STRUCT__entry(
-:126: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#126: FILE: drivers/gpu/drm/xe/xe_trace_cper.h:38:
+ TP_fast_assign(
-:151: CHECK:SPACING: spaces preferred around that '/' (ctx:VxV)
#151: FILE: drivers/gpu/drm/xe/xe_trace_cper.h:63:
+#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/xe
^
-:151: CHECK:SPACING: spaces preferred around that '/' (ctx:VxV)
#151: FILE: drivers/gpu/drm/xe/xe_trace_cper.h:63:
+#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/xe
^
-:151: CHECK:SPACING: spaces preferred around that '/' (ctx:VxV)
#151: FILE: drivers/gpu/drm/xe/xe_trace_cper.h:63:
+#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/xe
^
-:151: CHECK:SPACING: spaces preferred around that '/' (ctx:VxV)
#151: FILE: drivers/gpu/drm/xe/xe_trace_cper.h:63:
+#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/xe
^
-:151: CHECK:SPACING: spaces preferred around that '/' (ctx:VxV)
#151: FILE: drivers/gpu/drm/xe/xe_trace_cper.h:63:
+#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/xe
^
total: 0 errors, 1 warnings, 7 checks, 116 lines checked
9d27d3249520 drm/xe/xe_ras: Report device memory errors using SIGID
2691cdd8a2a5 drm/xe/xe_ras: Report core compute errors using SIGID
f87ad526ddbd drm/xe/xe_ras: Report soc internal errors using SIGID
ba83bd0c7d5b drm/xe/xe_ras: Report correctable errors using SIGID
^ permalink raw reply [flat|nested] 24+ messages in thread
* ✓ CI.KUnit: success for Add CPER logging support for CRI (rev6)
2026-10-28 9:57 [PATCH v6 00/10] Add CPER logging support for CRI Badal Nilawar
` (10 preceding siblings ...)
2026-10-28 10:05 ` ✗ CI.checkpatch: warning for Add CPER logging support for CRI (rev6) Patchwork
@ 2026-10-28 10:07 ` Patchwork
2026-10-28 10:43 ` ✓ Xe.CI.BAT: " Patchwork
2026-10-28 18:37 ` ✓ Xe.CI.FULL: " Patchwork
13 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2026-10-28 10:07 UTC (permalink / raw)
To: Badal Nilawar; +Cc: intel-xe
== Series Details ==
Series: Add CPER logging support for CRI (rev6)
URL : https://patchwork.freedesktop.org/series/169692/
State : success
== Summary ==
+ trap cleanup EXIT
+ kunitconfigs=('/kernel/drivers/gpu/tests/.kunitconfig' '/kernel/drivers/gpu/drm/xe/.kunitconfig' '/kernel/drivers/gpu/drm/tests/.kunitconfig' '/kernel/drivers/gpu/drm/ttm/tests/.kunitconfig' '/kernel/drivers/dma-buf/.kunitconfig')
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/tests/.kunitconfig
[10:05:51] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:05:55] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[10:06:15] Starting KUnit Kernel (1/1)...
[10:06:15] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:06:16] ================= gpu_buddy (14 subtests) ==================
[10:06:16] [PASSED] gpu_test_buddy_alloc_limit
[10:06:16] [PASSED] gpu_test_buddy_alloc_optimistic
[10:06:16] [PASSED] gpu_test_buddy_alloc_pessimistic
[10:06:16] [PASSED] gpu_test_buddy_alloc_pathological
[10:06:16] [PASSED] gpu_test_buddy_alloc_contiguous
[10:06:16] [PASSED] gpu_test_buddy_alloc_clear
[10:06:16] [PASSED] gpu_test_buddy_alloc_range
[10:06:16] [PASSED] gpu_test_buddy_alloc_range_bias
[10:06:17] [PASSED] gpu_test_buddy_fragmentation_performance
[10:06:17] [PASSED] gpu_test_buddy_dirty_tracker_performance
[10:06:17] [PASSED] gpu_test_buddy_alloc_exceeds_max_order
[10:06:17] [PASSED] gpu_test_buddy_offset_aligned_allocation
[10:06:17] [PASSED] gpu_test_buddy_subtree_offset_alignment_stress
[10:06:17] [PASSED] gpu_test_buddy_addr_to_block
[10:06:17] ==================== [PASSED] gpu_buddy ====================
[10:06:17] ============================================================
[10:06:17] Testing complete. Ran 14 tests: passed: 14
[10:06:17] Elapsed time: 26.615s total, 4.436s configuring, 20.312s building, 1.807s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/xe/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[10:06:17] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:06:19] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[10:06:58] Starting KUnit Kernel (1/1)...
[10:06:58] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:06:58] ================== guc_buf (11 subtests) ===================
[10:06:58] [PASSED] test_smallest
[10:06:58] [PASSED] test_largest
[10:06:58] [PASSED] test_granular
[10:06:58] [PASSED] test_unique
[10:06:58] [PASSED] test_overlap
[10:06:58] [PASSED] test_reusable
[10:06:58] [PASSED] test_too_big
[10:06:58] [PASSED] test_flush
[10:06:58] [PASSED] test_lookup
[10:06:58] [PASSED] test_data
[10:06:58] [PASSED] test_class
[10:06:58] ===================== [PASSED] guc_buf =====================
[10:06:58] =================== guc_dbm (7 subtests) ===================
[10:06:58] [PASSED] test_empty
[10:06:58] [PASSED] test_default
[10:06:58] ======================== test_size ========================
[10:06:58] [PASSED] 4
[10:06:58] [PASSED] 8
[10:06:58] [PASSED] 32
[10:06:58] [PASSED] 256
[10:06:58] ==================== [PASSED] test_size ====================
[10:06:58] ======================= test_reuse ========================
[10:06:58] [PASSED] 4
[10:06:58] [PASSED] 8
[10:06:58] [PASSED] 32
[10:06:58] [PASSED] 256
[10:06:58] =================== [PASSED] test_reuse ====================
[10:06:58] =================== test_range_overlap ====================
[10:06:58] [PASSED] 4
[10:06:58] [PASSED] 8
[10:06:58] [PASSED] 32
[10:06:58] [PASSED] 256
[10:06:58] =============== [PASSED] test_range_overlap ================
[10:06:58] =================== test_range_compact ====================
[10:06:58] [PASSED] 4
[10:06:58] [PASSED] 8
[10:06:58] [PASSED] 32
[10:06:58] [PASSED] 256
[10:06:58] =============== [PASSED] test_range_compact ================
[10:06:58] ==================== test_range_spare =====================
[10:06:58] [PASSED] 4
[10:06:58] [PASSED] 8
[10:06:58] [PASSED] 32
[10:06:58] [PASSED] 256
[10:06:58] ================ [PASSED] test_range_spare =================
[10:06:58] ===================== [PASSED] guc_dbm =====================
[10:06:58] ================== guc_idm (22 subtests) ===================
[10:06:58] [PASSED] bad_init
[10:06:58] [PASSED] no_init
[10:06:58] [PASSED] init_fini
[10:06:58] [PASSED] check_init_small
[10:06:58] [PASSED] check_init_shared
[10:06:58] [PASSED] check_used
[10:06:58] [PASSED] check_quota
[10:06:58] [PASSED] check_all
[10:06:58] [PASSED] check_limits
[10:06:58] [PASSED] check_overlap
[10:06:58] [PASSED] check_overlap_alloc
[10:06:58] [PASSED] check_overlap_release
[10:06:58] [PASSED] check_overlap_partial_init
[10:06:58] [PASSED] check_overlap_partial_shared_range_blocking
[10:06:58] [PASSED] check_used_usable
[10:06:58] [PASSED] check_used_shareable
[10:06:58] [PASSED] check_used_mixed
[10:06:58] [PASSED] check_release_usable_range
[10:06:58] [PASSED] check_release_shareable_range
[10:06:58] [PASSED] check_split_boundaries
[10:06:58] [PASSED] check_shareable_spare
[10:06:58] [PASSED] check_shareable_spare_fragmented_tail
[10:06:58] ===================== [PASSED] guc_idm =====================
[10:06:58] ============== guc_klv_helpers (13 subtests) ===============
[10:06:58] [PASSED] test_count
[10:06:58] [PASSED] test_encode_u32
[10:06:58] [PASSED] test_encode_u64
[10:06:58] [PASSED] test_encode_string
[10:06:58] [PASSED] test_encode_object_raw
[10:06:58] [PASSED] test_encode_object_klv
[10:06:58] [PASSED] test_encode_object_nested
[10:06:58] [PASSED] test_encode_object_basic
[10:06:58] ===================== test_decode_u16 =====================
[10:06:58] [PASSED] empty
[10:06:58] [PASSED] valid
[10:06:58] [PASSED] max
[10:06:58] [PASSED] big
[10:06:58] [PASSED] long
[10:06:58] ================= [PASSED] test_decode_u16 =================
[10:06:58] ===================== test_decode_u32 =====================
[10:06:58] [PASSED] empty
[10:06:58] [PASSED] valid
[10:06:58] [PASSED] max
[10:06:58] [PASSED] long
[10:06:58] ================= [PASSED] test_decode_u32 =================
[10:06:58] ===================== test_decode_u64 =====================
[10:06:58] [PASSED] empty
[10:06:58] [PASSED] short
[10:06:58] [PASSED] valid
[10:06:58] [PASSED] max
[10:06:58] [PASSED] long
[10:06:58] ================= [PASSED] test_decode_u64 =================
[10:06:58] ===================== test_decode_str =====================
[10:06:58] [PASSED] empty
[10:06:58] [PASSED] one
[10:06:58] [PASSED] one_trash
[10:06:58] [PASSED] two
[10:06:58] [PASSED] two_trash
[10:06:58] [PASSED] three
[10:06:58] [PASSED] dword
[10:06:58] [PASSED] four
[10:06:58] [PASSED] five
[10:06:58] [PASSED] six
[10:06:58] [PASSED] seven
[10:06:58] [PASSED] qword
[10:06:58] ================= [PASSED] test_decode_str =================
[10:06:58] [PASSED] test_print
[10:06:58] ================= [PASSED] guc_klv_helpers =================
[10:06:58] =================== xe_log (4 subtests) ====================
[10:06:58] [PASSED] demo_cper
[10:06:58] [PASSED] demo_dmesg
[10:06:58] ======================= test_dmesg ========================
[10:06:58] [PASSED] test_fatal
[10:06:58] [PASSED] test_fatal_tile
[10:06:58] [PASSED] test_fatal_gt
[10:06:58] [PASSED] test_fatal_comp
[10:06:58] [PASSED] test_fatal_comp_tile
[10:06:58] [PASSED] test_fatal_comp_gt
[10:06:58] [PASSED] test_fatal_all
[10:06:58] [PASSED] test_recoverable
[10:06:58] [PASSED] test_recoverable_tile
[10:06:58] [PASSED] test_recoverable_gt
[10:06:58] [PASSED] test_recoverable_comp
[10:06:58] [PASSED] test_recoverable_comp_tile
[10:06:58] [PASSED] test_recoverable_comp_gt
[10:06:58] [PASSED] test_recoverable_all
[10:06:58] [PASSED] test_info
[10:06:58] [PASSED] test_info_tile
[10:06:58] [PASSED] test_info_gt
[10:06:58] [PASSED] test_info_err
[10:06:58] [PASSED] test_info_comp
[10:06:58] [PASSED] test_info_comp_tile
[10:06:58] [PASSED] test_info_comp_gt
[10:06:58] [PASSED] test_info_all
[10:06:58] [PASSED] test_hw_fatal
[10:06:58] [PASSED] test_hw_recoverable
[10:06:58] [PASSED] test_hw_corrected
[10:06:58] [PASSED] test_hw_informational
[10:06:58] =================== [PASSED] test_dmesg ====================
[10:06:58] ====================== test_invalid =======================
[10:06:58] [SKIPPED] no-component no-location no-warn (requires CONFIG_DRM_XE_DEBUG)
[10:06:58] [SKIPPED] reserved location (requires CONFIG_DRM_XE_DEBUG)
[10:06:58] [SKIPPED] unknown location (requires CONFIG_DRM_XE_DEBUG)
[10:06:58] [SKIPPED] nonzero-device-id location (requires CONFIG_DRM_XE_DEBUG)
[10:06:58] [SKIPPED] invalid-tile-id location (requires CONFIG_DRM_XE_DEBUG)
[10:06:58] [SKIPPED] invalid-gt-id location (requires CONFIG_DRM_XE_DEBUG)
[10:06:58] [SKIPPED] unknown component class (requires CONFIG_DRM_XE_DEBUG)
[10:06:58] [SKIPPED] unknown system component (requires CONFIG_DRM_XE_DEBUG)
[10:06:58] [SKIPPED] unknown hardware component (requires CONFIG_DRM_XE_DEBUG)
[10:06:58] [SKIPPED] unknown component and location (requires CONFIG_DRM_XE_DEBUG)
[10:06:58] ================== [SKIPPED] test_invalid ==================
[10:06:58] ===================== [PASSED] xe_log ======================
[10:06:58] ================== no_relay (3 subtests) ===================
[10:06:58] [PASSED] xe_drops_guc2pf_if_not_ready
[10:06:58] [PASSED] xe_drops_guc2vf_if_not_ready
[10:06:58] [PASSED] xe_rejects_send_if_not_ready
[10:06:58] ==================== [PASSED] no_relay =====================
[10:06:58] ================== pf_relay (14 subtests) ==================
[10:06:58] [PASSED] pf_rejects_guc2pf_too_short
[10:06:58] [PASSED] pf_rejects_guc2pf_too_long
[10:06:58] [PASSED] pf_rejects_guc2pf_no_payload
[10:06:58] [PASSED] pf_fails_no_payload
[10:06:58] [PASSED] pf_fails_bad_origin
[10:06:58] [PASSED] pf_fails_bad_type
[10:06:58] [PASSED] pf_txn_reports_error
[10:06:58] [PASSED] pf_txn_sends_pf2guc
[10:06:58] [PASSED] pf_sends_pf2guc
[10:06:58] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[10:06:58] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[10:06:58] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[10:06:58] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[10:06:58] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[10:06:58] ==================== [PASSED] pf_relay =====================
[10:06:58] ================== vf_relay (3 subtests) ===================
[10:06:58] [PASSED] vf_rejects_guc2vf_too_short
[10:06:58] [PASSED] vf_rejects_guc2vf_too_long
[10:06:58] [PASSED] vf_rejects_guc2vf_no_payload
[10:06:58] ==================== [PASSED] vf_relay =====================
[10:06:58] ================ pf_gt_config (9 subtests) =================
[10:06:58] [PASSED] fair_contexts_1vf
[10:06:58] [PASSED] fair_doorbells_1vf
[10:06:58] [PASSED] fair_ggtt_1vf
[10:06:58] ====================== fair_vram_1vf ======================
[10:06:58] [PASSED] 3.50 GiB
[10:06:58] [PASSED] 11.5 GiB
[10:06:58] [PASSED] 15.5 GiB
[10:06:58] [PASSED] 31.5 GiB
[10:06:58] [PASSED] 63.5 GiB
[10:06:58] [PASSED] 1.91 GiB
[10:06:58] ================== [PASSED] fair_vram_1vf ==================
[10:06:58] ================ fair_vram_1vf_admin_only =================
[10:06:58] [PASSED] 3.50 GiB
[10:06:58] [PASSED] 11.5 GiB
[10:06:58] [PASSED] 15.5 GiB
[10:06:58] [PASSED] 31.5 GiB
[10:06:58] [PASSED] 63.5 GiB
[10:06:58] [PASSED] 1.91 GiB
[10:06:58] ============ [PASSED] fair_vram_1vf_admin_only =============
[10:06:58] ====================== fair_contexts ======================
[10:06:58] [PASSED] 1 VF
[10:06:58] [PASSED] 2 VFs
[10:06:58] [PASSED] 3 VFs
[10:06:58] [PASSED] 4 VFs
[10:06:58] [PASSED] 5 VFs
[10:06:58] [PASSED] 6 VFs
[10:06:58] [PASSED] 7 VFs
[10:06:58] [PASSED] 8 VFs
[10:06:58] [PASSED] 9 VFs
[10:06:58] [PASSED] 10 VFs
[10:06:58] [PASSED] 11 VFs
[10:06:58] [PASSED] 12 VFs
[10:06:58] [PASSED] 13 VFs
[10:06:58] [PASSED] 14 VFs
[10:06:58] [PASSED] 15 VFs
[10:06:58] [PASSED] 16 VFs
[10:06:58] [PASSED] 17 VFs
[10:06:58] [PASSED] 18 VFs
[10:06:58] [PASSED] 19 VFs
[10:06:58] [PASSED] 20 VFs
[10:06:58] [PASSED] 21 VFs
[10:06:58] [PASSED] 22 VFs
[10:06:58] [PASSED] 23 VFs
[10:06:58] [PASSED] 24 VFs
[10:06:58] [PASSED] 25 VFs
[10:06:58] [PASSED] 26 VFs
[10:06:58] [PASSED] 27 VFs
[10:06:58] [PASSED] 28 VFs
[10:06:58] [PASSED] 29 VFs
[10:06:58] [PASSED] 30 VFs
[10:06:58] [PASSED] 31 VFs
[10:06:58] [PASSED] 32 VFs
[10:06:58] [PASSED] 33 VFs
[10:06:58] [PASSED] 34 VFs
[10:06:58] [PASSED] 35 VFs
[10:06:58] [PASSED] 36 VFs
[10:06:58] [PASSED] 37 VFs
[10:06:58] [PASSED] 38 VFs
[10:06:59] [PASSED] 39 VFs
[10:06:59] [PASSED] 40 VFs
[10:06:59] [PASSED] 41 VFs
[10:06:59] [PASSED] 42 VFs
[10:06:59] [PASSED] 43 VFs
[10:06:59] [PASSED] 44 VFs
[10:06:59] [PASSED] 45 VFs
[10:06:59] [PASSED] 46 VFs
[10:06:59] [PASSED] 47 VFs
[10:06:59] [PASSED] 48 VFs
[10:06:59] [PASSED] 49 VFs
[10:06:59] [PASSED] 50 VFs
[10:06:59] [PASSED] 51 VFs
[10:06:59] [PASSED] 52 VFs
[10:06:59] [PASSED] 53 VFs
[10:06:59] [PASSED] 54 VFs
[10:06:59] [PASSED] 55 VFs
[10:06:59] [PASSED] 56 VFs
[10:06:59] [PASSED] 57 VFs
[10:06:59] [PASSED] 58 VFs
[10:06:59] [PASSED] 59 VFs
[10:06:59] [PASSED] 60 VFs
[10:06:59] [PASSED] 61 VFs
[10:06:59] [PASSED] 62 VFs
[10:06:59] [PASSED] 63 VFs
[10:06:59] ================== [PASSED] fair_contexts ==================
[10:06:59] ===================== fair_doorbells ======================
[10:06:59] [PASSED] 1 VF
[10:06:59] [PASSED] 2 VFs
[10:06:59] [PASSED] 3 VFs
[10:06:59] [PASSED] 4 VFs
[10:06:59] [PASSED] 5 VFs
[10:06:59] [PASSED] 6 VFs
[10:06:59] [PASSED] 7 VFs
[10:06:59] [PASSED] 8 VFs
[10:06:59] [PASSED] 9 VFs
[10:06:59] [PASSED] 10 VFs
[10:06:59] [PASSED] 11 VFs
[10:06:59] [PASSED] 12 VFs
[10:06:59] [PASSED] 13 VFs
[10:06:59] [PASSED] 14 VFs
[10:06:59] [PASSED] 15 VFs
[10:06:59] [PASSED] 16 VFs
[10:06:59] [PASSED] 17 VFs
[10:06:59] [PASSED] 18 VFs
[10:06:59] [PASSED] 19 VFs
[10:06:59] [PASSED] 20 VFs
[10:06:59] [PASSED] 21 VFs
[10:06:59] [PASSED] 22 VFs
[10:06:59] [PASSED] 23 VFs
[10:06:59] [PASSED] 24 VFs
[10:06:59] [PASSED] 25 VFs
[10:06:59] [PASSED] 26 VFs
[10:06:59] [PASSED] 27 VFs
[10:06:59] [PASSED] 28 VFs
[10:06:59] [PASSED] 29 VFs
[10:06:59] [PASSED] 30 VFs
[10:06:59] [PASSED] 31 VFs
[10:06:59] [PASSED] 32 VFs
[10:06:59] [PASSED] 33 VFs
[10:06:59] [PASSED] 34 VFs
[10:06:59] [PASSED] 35 VFs
[10:06:59] [PASSED] 36 VFs
[10:06:59] [PASSED] 37 VFs
[10:06:59] [PASSED] 38 VFs
[10:06:59] [PASSED] 39 VFs
[10:06:59] [PASSED] 40 VFs
[10:06:59] [PASSED] 41 VFs
[10:06:59] [PASSED] 42 VFs
[10:06:59] [PASSED] 43 VFs
[10:06:59] [PASSED] 44 VFs
[10:06:59] [PASSED] 45 VFs
[10:06:59] [PASSED] 46 VFs
[10:06:59] [PASSED] 47 VFs
[10:06:59] [PASSED] 48 VFs
[10:06:59] [PASSED] 49 VFs
[10:06:59] [PASSED] 50 VFs
[10:06:59] [PASSED] 51 VFs
[10:06:59] [PASSED] 52 VFs
[10:06:59] [PASSED] 53 VFs
[10:06:59] [PASSED] 54 VFs
[10:06:59] [PASSED] 55 VFs
[10:06:59] [PASSED] 56 VFs
[10:06:59] [PASSED] 57 VFs
[10:06:59] [PASSED] 58 VFs
[10:06:59] [PASSED] 59 VFs
[10:06:59] [PASSED] 60 VFs
[10:06:59] [PASSED] 61 VFs
[10:06:59] [PASSED] 62 VFs
[10:06:59] [PASSED] 63 VFs
[10:06:59] ================= [PASSED] fair_doorbells ==================
[10:06:59] ======================== fair_ggtt ========================
[10:06:59] [PASSED] 1 VF
[10:06:59] [PASSED] 2 VFs
[10:06:59] [PASSED] 3 VFs
[10:06:59] [PASSED] 4 VFs
[10:06:59] [PASSED] 5 VFs
[10:06:59] [PASSED] 6 VFs
[10:06:59] [PASSED] 7 VFs
[10:06:59] [PASSED] 8 VFs
[10:06:59] [PASSED] 9 VFs
[10:06:59] [PASSED] 10 VFs
[10:06:59] [PASSED] 11 VFs
[10:06:59] [PASSED] 12 VFs
[10:06:59] [PASSED] 13 VFs
[10:06:59] [PASSED] 14 VFs
[10:06:59] [PASSED] 15 VFs
[10:06:59] [PASSED] 16 VFs
[10:06:59] [PASSED] 17 VFs
[10:06:59] [PASSED] 18 VFs
[10:06:59] [PASSED] 19 VFs
[10:06:59] [PASSED] 20 VFs
[10:06:59] [PASSED] 21 VFs
[10:06:59] [PASSED] 22 VFs
[10:06:59] [PASSED] 23 VFs
[10:06:59] [PASSED] 24 VFs
[10:06:59] [PASSED] 25 VFs
[10:06:59] [PASSED] 26 VFs
[10:06:59] [PASSED] 27 VFs
[10:06:59] [PASSED] 28 VFs
[10:06:59] [PASSED] 29 VFs
[10:06:59] [PASSED] 30 VFs
[10:06:59] [PASSED] 31 VFs
[10:06:59] [PASSED] 32 VFs
[10:06:59] [PASSED] 33 VFs
[10:06:59] [PASSED] 34 VFs
[10:06:59] [PASSED] 35 VFs
[10:06:59] [PASSED] 36 VFs
[10:06:59] [PASSED] 37 VFs
[10:06:59] [PASSED] 38 VFs
[10:06:59] [PASSED] 39 VFs
[10:06:59] [PASSED] 40 VFs
[10:06:59] [PASSED] 41 VFs
[10:06:59] [PASSED] 42 VFs
[10:06:59] [PASSED] 43 VFs
[10:06:59] [PASSED] 44 VFs
[10:06:59] [PASSED] 45 VFs
[10:06:59] [PASSED] 46 VFs
[10:06:59] [PASSED] 47 VFs
[10:06:59] [PASSED] 48 VFs
[10:06:59] [PASSED] 49 VFs
[10:06:59] [PASSED] 50 VFs
[10:06:59] [PASSED] 51 VFs
[10:06:59] [PASSED] 52 VFs
[10:06:59] [PASSED] 53 VFs
[10:06:59] [PASSED] 54 VFs
[10:06:59] [PASSED] 55 VFs
[10:06:59] [PASSED] 56 VFs
[10:06:59] [PASSED] 57 VFs
[10:06:59] [PASSED] 58 VFs
[10:06:59] [PASSED] 59 VFs
[10:06:59] [PASSED] 60 VFs
[10:06:59] [PASSED] 61 VFs
[10:06:59] [PASSED] 62 VFs
[10:06:59] [PASSED] 63 VFs
[10:06:59] ==================== [PASSED] fair_ggtt ====================
[10:06:59] ======================== fair_vram ========================
[10:06:59] [PASSED] 1 VF
[10:06:59] [PASSED] 2 VFs
[10:06:59] [PASSED] 3 VFs
[10:06:59] [PASSED] 4 VFs
[10:06:59] [PASSED] 5 VFs
[10:06:59] [PASSED] 6 VFs
[10:06:59] [PASSED] 7 VFs
[10:06:59] [PASSED] 8 VFs
[10:06:59] [PASSED] 9 VFs
[10:06:59] [PASSED] 10 VFs
[10:06:59] [PASSED] 11 VFs
[10:06:59] [PASSED] 12 VFs
[10:06:59] [PASSED] 13 VFs
[10:06:59] [PASSED] 14 VFs
[10:06:59] [PASSED] 15 VFs
[10:06:59] [PASSED] 16 VFs
[10:06:59] [PASSED] 17 VFs
[10:06:59] [PASSED] 18 VFs
[10:06:59] [PASSED] 19 VFs
[10:06:59] [PASSED] 20 VFs
[10:06:59] [PASSED] 21 VFs
[10:06:59] [PASSED] 22 VFs
[10:06:59] [PASSED] 23 VFs
[10:06:59] [PASSED] 24 VFs
[10:06:59] [PASSED] 25 VFs
[10:06:59] [PASSED] 26 VFs
[10:06:59] [PASSED] 27 VFs
[10:06:59] [PASSED] 28 VFs
[10:06:59] [PASSED] 29 VFs
[10:06:59] [PASSED] 30 VFs
[10:06:59] [PASSED] 31 VFs
[10:06:59] [PASSED] 32 VFs
[10:06:59] [PASSED] 33 VFs
[10:06:59] [PASSED] 34 VFs
[10:06:59] [PASSED] 35 VFs
[10:06:59] [PASSED] 36 VFs
[10:06:59] [PASSED] 37 VFs
[10:06:59] [PASSED] 38 VFs
[10:06:59] [PASSED] 39 VFs
[10:06:59] [PASSED] 40 VFs
[10:06:59] [PASSED] 41 VFs
[10:06:59] [PASSED] 42 VFs
[10:06:59] [PASSED] 43 VFs
[10:06:59] [PASSED] 44 VFs
[10:06:59] [PASSED] 45 VFs
[10:06:59] [PASSED] 46 VFs
[10:06:59] [PASSED] 47 VFs
[10:06:59] [PASSED] 48 VFs
[10:06:59] [PASSED] 49 VFs
[10:06:59] [PASSED] 50 VFs
[10:06:59] [PASSED] 51 VFs
[10:06:59] [PASSED] 52 VFs
[10:06:59] [PASSED] 53 VFs
[10:06:59] [PASSED] 54 VFs
[10:06:59] [PASSED] 55 VFs
[10:06:59] [PASSED] 56 VFs
[10:06:59] [PASSED] 57 VFs
[10:06:59] [PASSED] 58 VFs
[10:06:59] [PASSED] 59 VFs
[10:06:59] [PASSED] 60 VFs
[10:06:59] [PASSED] 61 VFs
[10:06:59] [PASSED] 62 VFs
[10:06:59] [PASSED] 63 VFs
[10:06:59] ==================== [PASSED] fair_vram ====================
[10:06:59] ================== [PASSED] pf_gt_config ===================
[10:06:59] ===================== lmtt (1 subtest) =====================
[10:06:59] ======================== test_ops =========================
[10:06:59] [PASSED] 2-level
[10:06:59] [PASSED] multi-level
[10:06:59] ==================== [PASSED] test_ops =====================
[10:06:59] ====================== [PASSED] lmtt =======================
[10:06:59] ================= sriov_packet (1 subtest) =================
[10:06:59] [PASSED] test_descriptor_init
[10:06:59] ================== [PASSED] sriov_packet ===================
[10:06:59] ================= pf_service (11 subtests) =================
[10:06:59] [PASSED] pf_negotiate_any
[10:06:59] [PASSED] pf_negotiate_base_match
[10:06:59] [PASSED] pf_negotiate_base_newer
[10:06:59] [PASSED] pf_negotiate_base_next
[10:06:59] [SKIPPED] pf_negotiate_base_older (no older minor)
[10:06:59] [PASSED] pf_negotiate_base_prev
[10:06:59] [PASSED] pf_negotiate_latest_match
[10:06:59] [PASSED] pf_negotiate_latest_newer
[10:06:59] [PASSED] pf_negotiate_latest_next
[10:06:59] [SKIPPED] pf_negotiate_latest_older (no older minor)
[10:06:59] [SKIPPED] pf_negotiate_latest_prev (no prev major)
[10:06:59] =================== [PASSED] pf_service ====================
[10:06:59] ================= xe_guc_g2g (2 subtests) ==================
[10:06:59] ============== xe_live_guc_g2g_kunit_default ==============
[10:06:59] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[10:06:59] ============== xe_live_guc_g2g_kunit_allmem ===============
[10:06:59] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[10:06:59] =================== [SKIPPED] xe_guc_g2g ===================
[10:06:59] =================== xe_mocs (2 subtests) ===================
[10:06:59] ================ xe_live_mocs_kernel_kunit ================
[10:06:59] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[10:06:59] ================ xe_live_mocs_reset_kunit =================
[10:06:59] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[10:06:59] ==================== [SKIPPED] xe_mocs =====================
[10:06:59] ================= xe_migrate (3 subtests) ==================
[10:06:59] ================= xe_migrate_sanity_kunit =================
[10:06:59] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[10:06:59] ================== xe_validate_ccs_kunit ==================
[10:06:59] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[10:06:59] ============= xe_migrate_access_memory_kunit ==============
[10:06:59] ========= [SKIPPED] xe_migrate_access_memory_kunit =========
[10:06:59] =================== [SKIPPED] xe_migrate ===================
[10:06:59] ================== xe_dma_buf (1 subtest) ==================
[10:06:59] ==================== xe_dma_buf_kunit =====================
[10:06:59] ================ [SKIPPED] xe_dma_buf_kunit ================
[10:06:59] =================== [SKIPPED] xe_dma_buf ===================
[10:06:59] ================= xe_bo_shrink (1 subtest) =================
[10:06:59] =================== xe_bo_shrink_kunit ====================
[10:06:59] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[10:06:59] ================== [SKIPPED] xe_bo_shrink ==================
[10:06:59] ==================== xe_bo (2 subtests) ====================
[10:06:59] ================== xe_ccs_migrate_kunit ===================
[10:06:59] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[10:06:59] ==================== xe_bo_evict_kunit ====================
[10:06:59] =============== [SKIPPED] xe_bo_evict_kunit ================
[10:06:59] ===================== [SKIPPED] xe_bo ======================
[10:06:59] =================== xe_any (9 subtests) ====================
[10:06:59] [PASSED] test_to_xe
[10:06:59] [PASSED] test_to_dev
[10:06:59] [PASSED] test_to_pdev
[10:06:59] [PASSED] test_to_drm
[10:06:59] [PASSED] test_if_pdev
[10:06:59] [PASSED] test_if_xe
[10:06:59] [PASSED] test_if_tile
[10:06:59] [PASSED] test_if_gt
[10:06:59] [PASSED] test_to_id
[10:06:59] ===================== [PASSED] xe_any ======================
[10:06:59] ==================== args (13 subtests) ====================
[10:06:59] [PASSED] count_args_test
[10:06:59] [PASSED] call_args_example
[10:06:59] [PASSED] call_args_test
[10:06:59] [PASSED] drop_first_arg_example
[10:06:59] [PASSED] drop_first_arg_test
[10:06:59] [PASSED] first_arg_example
[10:06:59] [PASSED] first_arg_test
[10:06:59] [PASSED] last_arg_example
[10:06:59] [PASSED] last_arg_test
[10:06:59] [PASSED] pick_arg_example
[10:06:59] [PASSED] if_args_example
[10:06:59] [PASSED] if_args_test
[10:06:59] [PASSED] sep_comma_example
[10:06:59] ====================== [PASSED] args =======================
[10:06:59] =================== xe_pci (3 subtests) ====================
[10:06:59] ==================== check_graphics_ip ====================
[10:06:59] [PASSED] 12.00 Xe_LP
[10:06:59] [PASSED] 12.10 Xe_LP+
[10:06:59] [PASSED] 12.55 Xe_HPG
[10:06:59] [PASSED] 12.60 Xe_HPC
[10:06:59] [PASSED] 12.70 Xe_LPG
[10:06:59] [PASSED] 12.71 Xe_LPG
[10:06:59] [PASSED] 12.74 Xe_LPG+
[10:06:59] [PASSED] 20.01 Xe2_HPG
[10:06:59] [PASSED] 20.02 Xe2_HPG
[10:06:59] [PASSED] 20.04 Xe2_LPG
[10:06:59] [PASSED] 30.00 Xe3_LPG
[10:06:59] [PASSED] 30.01 Xe3_LPG
[10:06:59] [PASSED] 30.03 Xe3_LPG
[10:06:59] [PASSED] 30.04 Xe3_LPG
[10:06:59] [PASSED] 30.05 Xe3_LPG
[10:06:59] [PASSED] 35.10 Xe3p_LPG
[10:06:59] [PASSED] 35.11 Xe3p_XPC
[10:06:59] ================ [PASSED] check_graphics_ip ================
[10:06:59] ===================== check_media_ip ======================
[10:06:59] [PASSED] 12.00 Xe_M
[10:06:59] [PASSED] 12.55 Xe_HPM
[10:06:59] [PASSED] 13.00 Xe_LPM+
[10:06:59] [PASSED] 13.01 Xe2_HPM
[10:06:59] [PASSED] 20.00 Xe2_LPM
[10:06:59] [PASSED] 30.00 Xe3_LPM
[10:06:59] [PASSED] 30.02 Xe3_LPM
[10:06:59] [PASSED] 35.00 Xe3p_LPM
[10:06:59] [PASSED] 35.03 Xe3p_HPM
[10:06:59] ================= [PASSED] check_media_ip ==================
[10:06:59] =================== check_platform_desc ===================
[10:06:59] [PASSED] 0x9A60 (TIGERLAKE)
[10:06:59] [PASSED] 0x9A68 (TIGERLAKE)
[10:06:59] [PASSED] 0x9A70 (TIGERLAKE)
[10:06:59] [PASSED] 0x9A40 (TIGERLAKE)
[10:06:59] [PASSED] 0x9A49 (TIGERLAKE)
[10:06:59] [PASSED] 0x9A59 (TIGERLAKE)
[10:06:59] [PASSED] 0x9A78 (TIGERLAKE)
[10:06:59] [PASSED] 0x9AC0 (TIGERLAKE)
[10:06:59] [PASSED] 0x9AC9 (TIGERLAKE)
[10:06:59] [PASSED] 0x9AD9 (TIGERLAKE)
[10:06:59] [PASSED] 0x9AF8 (TIGERLAKE)
[10:06:59] [PASSED] 0x4C80 (ROCKETLAKE)
[10:06:59] [PASSED] 0x4C8A (ROCKETLAKE)
[10:06:59] [PASSED] 0x4C8B (ROCKETLAKE)
[10:06:59] [PASSED] 0x4C8C (ROCKETLAKE)
[10:06:59] [PASSED] 0x4C90 (ROCKETLAKE)
[10:06:59] [PASSED] 0x4C9A (ROCKETLAKE)
[10:06:59] [PASSED] 0x4680 (ALDERLAKE_S)
[10:06:59] [PASSED] 0x4682 (ALDERLAKE_S)
[10:06:59] [PASSED] 0x4688 (ALDERLAKE_S)
[10:06:59] [PASSED] 0x468A (ALDERLAKE_S)
[10:06:59] [PASSED] 0x468B (ALDERLAKE_S)
[10:06:59] [PASSED] 0x4690 (ALDERLAKE_S)
[10:06:59] [PASSED] 0x4692 (ALDERLAKE_S)
[10:06:59] [PASSED] 0x4693 (ALDERLAKE_S)
[10:06:59] [PASSED] 0x46A0 (ALDERLAKE_P)
[10:06:59] [PASSED] 0x46A1 (ALDERLAKE_P)
[10:06:59] [PASSED] 0x46A2 (ALDERLAKE_P)
[10:06:59] [PASSED] 0x46A3 (ALDERLAKE_P)
[10:06:59] [PASSED] 0x46A6 (ALDERLAKE_P)
[10:06:59] [PASSED] 0x46A8 (ALDERLAKE_P)
[10:06:59] [PASSED] 0x46AA (ALDERLAKE_P)
[10:06:59] [PASSED] 0x462A (ALDERLAKE_P)
[10:06:59] [PASSED] 0x4626 (ALDERLAKE_P)
[10:06:59] [PASSED] 0x4628 (ALDERLAKE_P)
[10:06:59] [PASSED] 0x46B0 (ALDERLAKE_P)
[10:06:59] [PASSED] 0x46B1 (ALDERLAKE_P)
[10:06:59] [PASSED] 0x46B2 (ALDERLAKE_P)
[10:06:59] [PASSED] 0x46B3 (ALDERLAKE_P)
[10:06:59] [PASSED] 0x46C0 (ALDERLAKE_P)
[10:06:59] [PASSED] 0x46C1 (ALDERLAKE_P)
[10:06:59] [PASSED] 0x46C2 (ALDERLAKE_P)
[10:06:59] [PASSED] 0x46C3 (ALDERLAKE_P)
[10:06:59] [PASSED] 0x46D0 (ALDERLAKE_N)
[10:06:59] [PASSED] 0x46D1 (ALDERLAKE_N)
[10:06:59] [PASSED] 0x46D2 (ALDERLAKE_N)
[10:06:59] [PASSED] 0x46D3 (ALDERLAKE_N)
[10:06:59] [PASSED] 0x46D4 (ALDERLAKE_N)
[10:06:59] [PASSED] 0xA721 (ALDERLAKE_P)
[10:06:59] [PASSED] 0xA7A1 (ALDERLAKE_P)
[10:06:59] [PASSED] 0xA7A9 (ALDERLAKE_P)
[10:06:59] [PASSED] 0xA7AC (ALDERLAKE_P)
[10:06:59] [PASSED] 0xA7AD (ALDERLAKE_P)
[10:06:59] [PASSED] 0xA720 (ALDERLAKE_P)
[10:06:59] [PASSED] 0xA7A0 (ALDERLAKE_P)
[10:06:59] [PASSED] 0xA7A8 (ALDERLAKE_P)
[10:06:59] [PASSED] 0xA7AA (ALDERLAKE_P)
[10:06:59] [PASSED] 0xA7AB (ALDERLAKE_P)
[10:06:59] [PASSED] 0xA780 (ALDERLAKE_S)
[10:06:59] [PASSED] 0xA781 (ALDERLAKE_S)
[10:06:59] [PASSED] 0xA782 (ALDERLAKE_S)
[10:06:59] [PASSED] 0xA783 (ALDERLAKE_S)
[10:06:59] [PASSED] 0xA788 (ALDERLAKE_S)
[10:06:59] [PASSED] 0xA789 (ALDERLAKE_S)
[10:06:59] [PASSED] 0xA78A (ALDERLAKE_S)
[10:06:59] [PASSED] 0xA78B (ALDERLAKE_S)
[10:06:59] [PASSED] 0x4905 (DG1)
[10:06:59] [PASSED] 0x4906 (DG1)
[10:06:59] [PASSED] 0x4907 (DG1)
[10:06:59] [PASSED] 0x4908 (DG1)
[10:06:59] [PASSED] 0x4909 (DG1)
[10:06:59] [PASSED] 0x56C0 (DG2)
[10:06:59] [PASSED] 0x56C2 (DG2)
[10:06:59] [PASSED] 0x56C1 (DG2)
[10:06:59] [PASSED] 0x7D51 (METEORLAKE)
[10:06:59] [PASSED] 0x7DD1 (METEORLAKE)
[10:06:59] [PASSED] 0x7D41 (METEORLAKE)
[10:06:59] [PASSED] 0x7D67 (METEORLAKE)
[10:06:59] [PASSED] 0xB640 (METEORLAKE)
[10:06:59] [PASSED] 0x56A0 (DG2)
[10:06:59] [PASSED] 0x56A1 (DG2)
[10:06:59] [PASSED] 0x56A2 (DG2)
[10:06:59] [PASSED] 0x56BE (DG2)
[10:06:59] [PASSED] 0x56BF (DG2)
[10:06:59] [PASSED] 0x5690 (DG2)
[10:06:59] [PASSED] 0x5691 (DG2)
[10:06:59] [PASSED] 0x5692 (DG2)
[10:06:59] [PASSED] 0x56A5 (DG2)
[10:06:59] [PASSED] 0x56A6 (DG2)
[10:06:59] [PASSED] 0x56B0 (DG2)
[10:06:59] [PASSED] 0x56B1 (DG2)
[10:06:59] [PASSED] 0x56BA (DG2)
[10:06:59] [PASSED] 0x56BB (DG2)
[10:06:59] [PASSED] 0x56BC (DG2)
[10:06:59] [PASSED] 0x56BD (DG2)
[10:06:59] [PASSED] 0x5693 (DG2)
[10:06:59] [PASSED] 0x5694 (DG2)
[10:06:59] [PASSED] 0x5695 (DG2)
[10:06:59] [PASSED] 0x56A3 (DG2)
[10:06:59] [PASSED] 0x56A4 (DG2)
[10:06:59] [PASSED] 0x56B2 (DG2)
[10:06:59] [PASSED] 0x56B3 (DG2)
[10:06:59] [PASSED] 0x5696 (DG2)
[10:06:59] [PASSED] 0x5697 (DG2)
[10:06:59] [PASSED] 0xB69 (PVC)
[10:06:59] [PASSED] 0xB6E (PVC)
[10:06:59] [PASSED] 0xBD4 (PVC)
[10:06:59] [PASSED] 0xBD5 (PVC)
[10:06:59] [PASSED] 0xBD6 (PVC)
[10:06:59] [PASSED] 0xBD7 (PVC)
[10:06:59] [PASSED] 0xBD8 (PVC)
[10:06:59] [PASSED] 0xBD9 (PVC)
[10:06:59] [PASSED] 0xBDA (PVC)
[10:06:59] [PASSED] 0xBDB (PVC)
[10:06:59] [PASSED] 0xBE0 (PVC)
[10:06:59] [PASSED] 0xBE1 (PVC)
[10:06:59] [PASSED] 0xBE5 (PVC)
[10:06:59] [PASSED] 0x7D40 (METEORLAKE)
[10:06:59] [PASSED] 0x7D45 (METEORLAKE)
[10:06:59] [PASSED] 0x7D55 (METEORLAKE)
[10:06:59] [PASSED] 0x7D60 (METEORLAKE)
[10:06:59] [PASSED] 0x7DD5 (METEORLAKE)
[10:06:59] [PASSED] 0x6420 (LUNARLAKE)
[10:06:59] [PASSED] 0x64A0 (LUNARLAKE)
[10:06:59] [PASSED] 0x64B0 (LUNARLAKE)
[10:06:59] [PASSED] 0xE202 (BATTLEMAGE)
[10:06:59] [PASSED] 0xE209 (BATTLEMAGE)
[10:06:59] [PASSED] 0xE20B (BATTLEMAGE)
[10:06:59] [PASSED] 0xE20C (BATTLEMAGE)
[10:06:59] [PASSED] 0xE20D (BATTLEMAGE)
[10:06:59] [PASSED] 0xE210 (BATTLEMAGE)
[10:06:59] [PASSED] 0xE211 (BATTLEMAGE)
[10:06:59] [PASSED] 0xE212 (BATTLEMAGE)
[10:06:59] [PASSED] 0xE216 (BATTLEMAGE)
[10:06:59] [PASSED] 0xE220 (BATTLEMAGE)
[10:06:59] [PASSED] 0xE221 (BATTLEMAGE)
[10:06:59] [PASSED] 0xE222 (BATTLEMAGE)
[10:06:59] [PASSED] 0xE223 (BATTLEMAGE)
[10:06:59] [PASSED] 0xB080 (PANTHERLAKE)
[10:06:59] [PASSED] 0xB081 (PANTHERLAKE)
[10:06:59] [PASSED] 0xB082 (PANTHERLAKE)
[10:06:59] [PASSED] 0xB083 (PANTHERLAKE)
[10:06:59] [PASSED] 0xB084 (PANTHERLAKE)
[10:06:59] [PASSED] 0xB085 (PANTHERLAKE)
[10:06:59] [PASSED] 0xB086 (PANTHERLAKE)
[10:06:59] [PASSED] 0xB087 (PANTHERLAKE)
[10:06:59] [PASSED] 0xB08F (PANTHERLAKE)
[10:06:59] [PASSED] 0xB090 (PANTHERLAKE)
[10:06:59] [PASSED] 0xB0A0 (PANTHERLAKE)
[10:06:59] [PASSED] 0xB0A1 (PANTHERLAKE)
[10:06:59] [PASSED] 0xB0B0 (PANTHERLAKE)
[10:06:59] [PASSED] 0xFD80 (PANTHERLAKE)
[10:06:59] [PASSED] 0xFD81 (PANTHERLAKE)
[10:06:59] [PASSED] 0xD740 (NOVALAKE_S)
[10:06:59] [PASSED] 0xD741 (NOVALAKE_S)
[10:06:59] [PASSED] 0xD742 (NOVALAKE_S)
[10:06:59] [PASSED] 0xD743 (NOVALAKE_S)
[10:06:59] [PASSED] 0xD745 (NOVALAKE_S)
[10:06:59] [PASSED] 0xD74A (NOVALAKE_S)
[10:06:59] [PASSED] 0xD74B (NOVALAKE_S)
[10:06:59] [PASSED] 0x674C (CRESCENTISLAND)
[10:06:59] [PASSED] 0x674D (CRESCENTISLAND)
[10:06:59] [PASSED] 0x674E (CRESCENTISLAND)
[10:06:59] [PASSED] 0x674F (CRESCENTISLAND)
[10:06:59] [PASSED] 0x6750 (CRESCENTISLAND)
[10:06:59] [PASSED] 0x6751 (CRESCENTISLAND)
[10:06:59] [PASSED] 0xD750 (NOVALAKE_P)
[10:06:59] [PASSED] 0xD751 (NOVALAKE_P)
[10:06:59] [PASSED] 0xD752 (NOVALAKE_P)
[10:06:59] [PASSED] 0xD753 (NOVALAKE_P)
[10:06:59] [PASSED] 0xD754 (NOVALAKE_P)
[10:06:59] [PASSED] 0xD755 (NOVALAKE_P)
[10:06:59] [PASSED] 0xD756 (NOVALAKE_P)
[10:06:59] [PASSED] 0xD757 (NOVALAKE_P)
[10:06:59] [PASSED] 0xD75F (NOVALAKE_P)
[10:06:59] =============== [PASSED] check_platform_desc ===============
[10:06:59] ===================== [PASSED] xe_pci ======================
[10:06:59] ============= xe_rtp_tables_test (5 subtests) ==============
[10:06:59] ================== xe_rtp_table_gt_test ===================
[10:06:59] [PASSED] gt_was/14011060649
[10:06:59] [PASSED] gt_was/14011059788
[10:06:59] [PASSED] gt_was/14015795083
[10:06:59] [PASSED] gt_was/16021867713
[10:06:59] [PASSED] gt_was/14019449301
[10:06:59] [PASSED] gt_was/16028005424
[10:06:59] [PASSED] gt_was/14026578760
[10:06:59] [PASSED] gt_was/1409420604
[10:06:59] [PASSED] gt_was/1408615072
[10:06:59] [PASSED] gt_was/22010523718
[10:06:59] [PASSED] gt_was/14011006942
[10:06:59] [PASSED] gt_was/14014830051
[10:06:59] [PASSED] gt_was/18018781329
[10:06:59] [PASSED] gt_was/1509235366
[10:06:59] [PASSED] gt_was/18018781329
[10:06:59] [PASSED] gt_was/16016694945
[10:06:59] [PASSED] gt_was/14018575942
[10:06:59] [PASSED] gt_was/22016670082
[10:06:59] [PASSED] gt_was/22016670082
[10:06:59] [PASSED] gt_was/14017421178
[10:06:59] [PASSED] gt_was/16025250150
[10:06:59] [PASSED] gt_was/14021871409
[10:06:59] [PASSED] gt_was/16021865536
[10:06:59] [PASSED] gt_was/14021486841
[10:06:59] [PASSED] gt_was/14025160223
[10:06:59] [PASSED] gt_was/14026144927, 16029437861, 14026127056
[10:06:59] [PASSED] gt_was/14025635424
[10:06:59] [PASSED] gt_was/16028005424
[10:06:59] ============== [PASSED] xe_rtp_table_gt_test ===============
[10:06:59] ================== xe_rtp_table_gt_test ===================
[10:06:59] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable
[10:06:59] [PASSED] gt_tunings/Tuning: 32B Access Enable
[10:06:59] [PASSED] gt_tunings/Tuning: L3 cache
[10:06:59] [PASSED] gt_tunings/Tuning: L3 cache - media
[10:06:59] [PASSED] gt_tunings/Tuning: Compression Overfetch
[10:06:59] [PASSED] gt_tunings/Tuning: Compression Overfetch - media
[10:06:59] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3
[10:06:59] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media
[10:06:59] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only
[10:06:59] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media
[10:06:59] [PASSED] gt_tunings/Tuning: Stateless compression control
[10:06:59] [PASSED] gt_tunings/Tuning: Stateless compression control - media
[10:06:59] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache
[10:06:59] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media
[10:06:59] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB
[10:06:59] [PASSED] gt_tunings/Tuning: Force All Non-Compressible Memory Reads to be 256B Overfetches
[10:06:59] ============== [PASSED] xe_rtp_table_gt_test ===============
[10:06:59] ================== xe_rtp_table_oob_test ==================
[10:06:59] [PASSED] oob_was/1607983814
[10:06:59] [PASSED] oob_was/16010904313
[10:06:59] [PASSED] oob_was/18022495364
[10:06:59] [PASSED] oob_was/22012773006
[10:06:59] [PASSED] oob_was/14014475959
[10:06:59] [PASSED] oob_was/22011391025
[10:06:59] [PASSED] oob_was/22012727170
[10:06:59] [PASSED] oob_was/22012727685
[10:06:59] [PASSED] oob_was/22016596838
[10:06:59] [PASSED] oob_was/18020744125
[10:06:59] [PASSED] oob_was/1409600907
[10:06:59] [PASSED] oob_was/22014953428
[10:06:59] [PASSED] oob_was/16017236439
[10:06:59] [PASSED] oob_was/14019821291
[10:06:59] [PASSED] oob_was/14015076503
[10:06:59] [PASSED] oob_was/22016122933
[10:06:59] [PASSED] oob_was/14018913170
[10:06:59] [PASSED] oob_was/14018094691
[10:06:59] [PASSED] oob_was/18024947630
[10:06:59] [PASSED] oob_was/16022287689
[10:06:59] [PASSED] oob_was/13011645652
[10:06:59] [PASSED] oob_was/14022293748
[10:06:59] [PASSED] oob_was/22019794406
[10:06:59] [PASSED] oob_was/22019338487
[10:06:59] [PASSED] oob_was/16023588340
[10:06:59] [PASSED] oob_was/14019789679
[10:06:59] [PASSED] oob_was/14022866841
[10:06:59] [PASSED] oob_was/16021333562
[10:06:59] [PASSED] oob_was/14016712196
[10:06:59] [PASSED] oob_was/14015568240
[10:06:59] [PASSED] oob_was/18013179988
[10:06:59] [PASSED] oob_was/1508761755
[10:06:59] [PASSED] oob_was/16023105232
[10:06:59] [PASSED] oob_was/16026508708
[10:06:59] [PASSED] oob_was/14020001231
[10:06:59] [PASSED] oob_was/16023683509
[10:06:59] [PASSED] oob_was/14025515070
[10:06:59] [PASSED] oob_was/15015404425_disable
[10:06:59] [PASSED] oob_was/16026007364
[10:06:59] [PASSED] oob_was/14020316580
[10:06:59] [PASSED] oob_was/14025883347
[10:06:59] [PASSED] oob_was/16029380221
[10:06:59] [PASSED] oob_was/22022079272
[10:06:59] [PASSED] oob_was/16029897822
[10:06:59] [PASSED] oob_was/14026539277
[10:06:59] [PASSED] oob_was/14027054324
[10:06:59] [PASSED] oob_was/14025941587
[10:06:59] [PASSED] oob_was/16030224309
[10:06:59] ============== [PASSED] xe_rtp_table_oob_test ==============
[10:06:59] ================ xe_rtp_table_dev_oob_test ================
[10:06:59] [PASSED] device_oob_was/22010954014
[10:06:59] [PASSED] device_oob_was/15015404425
[10:06:59] [PASSED] device_oob_was/22019338487_display
[10:06:59] [PASSED] device_oob_was/14022085890
[10:06:59] [PASSED] device_oob_was/14026633728
[10:06:59] [PASSED] device_oob_was/14026746987
[10:06:59] [PASSED] device_oob_was/14026779378
[10:06:59] ============ [PASSED] xe_rtp_table_dev_oob_test ============
[10:06:59] ========== xe_rtp_table_missing_upper_bound_test ==========
[10:06:59] [PASSED] register_whitelist/WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865
[10:06:59] [PASSED] register_whitelist/1508744258, 14012131227, 1808121037
[10:06:59] [PASSED] register_whitelist/1806527549
[10:06:59] [PASSED] register_whitelist/allow_read_ctx_timestamp
[10:06:59] [PASSED] register_whitelist/allow_read_queue_timestamp
[10:06:59] [PASSED] register_whitelist/16014440446
[10:06:59] [PASSED] register_whitelist/16017236439
[10:06:59] [PASSED] register_whitelist/16020183090
[10:06:59] [PASSED] register_whitelist/14024997852
[10:06:59] [PASSED] register_whitelist/14024997852
[10:06:59] ====== [PASSED] xe_rtp_table_missing_upper_bound_test ======
[10:06:59] =============== [PASSED] xe_rtp_tables_test ================
[10:06:59] =================== xe_rtp (3 subtests) ====================
[10:06:59] =================== xe_rtp_rules_tests ====================
[10:06:59] [PASSED] no
[10:06:59] [PASSED] yes
[10:06:59] [PASSED] no-and-no
[10:06:59] [PASSED] no-and-yes
[10:06:59] [PASSED] yes-and-no
[10:06:59] [PASSED] yes-and-yes
[10:06:59] [PASSED] no-or-no
[10:06:59] [PASSED] no-or-yes
[10:06:59] [PASSED] yes-or-no
[10:06:59] [PASSED] yes-or-yes
[10:06:59] [PASSED] no-yes-or-yes-no
[10:06:59] [PASSED] no-yes-or-yes-yes
[10:06:59] [PASSED] yes-yes-or-no-yes
[10:06:59] [PASSED] yes-yes-or-yes-yes
[10:06:59] [PASSED] no-no-or-yes-or-no
[10:06:59] [PASSED] or
[10:06:59] [PASSED] or-yes
[10:06:59] [PASSED] or-no
[10:06:59] [PASSED] yes-or
[10:06:59] [PASSED] no-or
[10:06:59] [PASSED] no-or-or-yes
[10:06:59] [PASSED] yes-or-or-no
[10:06:59] [PASSED] no-or-or-no
[10:06:59] [PASSED] missing-context-engine-class
[10:06:59] [PASSED] missing-context-engine-class-or-yes
[10:06:59] [PASSED] missing-context-engine-class-or-or-yes
[10:06:59] =============== [PASSED] xe_rtp_rules_tests ================
[10:06:59] =============== xe_rtp_process_to_sr_tests ================
[10:06:59] [PASSED] coalesce-same-reg
[10:06:59] [PASSED] coalesce-same-reg-literal-and-func
[10:06:59] [PASSED] no-match-no-add
[10:06:59] [PASSED] two-regs-two-entries
[10:06:59] [PASSED] clr-one-set-other
[10:06:59] [PASSED] set-field
[10:06:59] [PASSED] conflict-duplicate
[10:06:59] [PASSED] conflict-not-disjoint
[10:06:59] [PASSED] conflict-not-disjoint-literal-and-func
[10:06:59] [PASSED] conflict-reg-type
[10:06:59] [PASSED] bad-mcr-reg-forced-to-regular
[10:06:59] [PASSED] bad-regular-reg-forced-to-mcr
[10:06:59] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[10:06:59] ================== xe_rtp_process_tests ===================
[10:06:59] [PASSED] active1
[10:06:59] [PASSED] active2
[10:06:59] [PASSED] active-inactive
[10:06:59] [PASSED] inactive-active
[10:06:59] [PASSED] inactive-active-inactive
[10:06:59] [PASSED] inactive-inactive-inactive
[10:06:59] ============== [PASSED] xe_rtp_process_tests ===============
[10:06:59] ===================== [PASSED] xe_rtp ======================
[10:06:59] ==================== xe_wa (1 subtest) =====================
[10:06:59] ======================== xe_wa_gt =========================
[10:06:59] [PASSED] TIGERLAKE B0
[10:06:59] [PASSED] DG1 A0
[10:06:59] [PASSED] DG1 B0
[10:06:59] [PASSED] ALDERLAKE_S A0
[10:06:59] [PASSED] ALDERLAKE_S B0
[10:06:59] [PASSED] ALDERLAKE_S C0
[10:06:59] [PASSED] ALDERLAKE_S D0
[10:06:59] [PASSED] ALDERLAKE_P A0
[10:06:59] [PASSED] ALDERLAKE_P B0
[10:06:59] [PASSED] ALDERLAKE_P C0
[10:06:59] [PASSED] ALDERLAKE_S RPLS D0
[10:06:59] [PASSED] ALDERLAKE_P RPLU E0
[10:06:59] [PASSED] DG2 G10 C0
[10:06:59] [PASSED] DG2 G11 B1
[10:06:59] [PASSED] DG2 G12 A1
[10:06:59] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[10:06:59] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[10:06:59] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[10:06:59] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[10:06:59] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[10:06:59] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[10:06:59] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[10:06:59] ==================== [PASSED] xe_wa_gt =====================
[10:06:59] ====================== [PASSED] xe_wa ======================
[10:06:59] ============================================================
[10:06:59] Testing complete. Ran 838 tests: passed: 809, skipped: 29
[10:06:59] Elapsed time: 41.398s total, 1.861s configuring, 38.771s building, 0.716s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[10:06:59] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:07:01] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[10:07:26] Starting KUnit Kernel (1/1)...
[10:07:26] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:07:26] ============ drm_test_pick_cmdline (2 subtests) ============
[10:07:26] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[10:07:26] =============== drm_test_pick_cmdline_named ===============
[10:07:26] [PASSED] NTSC
[10:07:26] [PASSED] NTSC-J
[10:07:26] [PASSED] PAL
[10:07:26] [PASSED] PAL-M
[10:07:26] =========== [PASSED] drm_test_pick_cmdline_named ===========
[10:07:26] ============== [PASSED] drm_test_pick_cmdline ==============
[10:07:26] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[10:07:26] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[10:07:26] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[10:07:26] =========== drm_validate_clone_mode (2 subtests) ===========
[10:07:26] ============== drm_test_check_in_clone_mode ===============
[10:07:26] [PASSED] in_clone_mode
[10:07:26] [PASSED] not_in_clone_mode
[10:07:26] ========== [PASSED] drm_test_check_in_clone_mode ===========
[10:07:26] =============== drm_test_check_valid_clones ===============
[10:07:26] [PASSED] not_in_clone_mode
[10:07:26] [PASSED] valid_clone
[10:07:26] [PASSED] invalid_clone
[10:07:26] =========== [PASSED] drm_test_check_valid_clones ===========
[10:07:26] ============= [PASSED] drm_validate_clone_mode =============
[10:07:26] ============= drm_validate_modeset (1 subtest) =============
[10:07:26] [PASSED] drm_test_check_connector_changed_modeset
[10:07:26] ============== [PASSED] drm_validate_modeset ===============
[10:07:26] ====== drm_test_bridge_get_current_state (1 subtest) =======
[10:07:26] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[10:07:26] ======== [PASSED] drm_test_bridge_get_current_state ========
[10:07:26] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[10:07:26] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[10:07:26] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[10:07:26] [PASSED] drm_test_drm_bridge_helper_hdmi_output_bus_fmts
[10:07:26] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[10:07:26] ============== drm_bridge_alloc (2 subtests) ===============
[10:07:26] [PASSED] drm_test_drm_bridge_alloc_basic
[10:07:26] [PASSED] drm_test_drm_bridge_alloc_get_put
[10:07:26] ================ [PASSED] drm_bridge_alloc =================
[10:07:26] ============= drm_bridge_bus_fmt (5 subtests) ==============
[10:07:26] [PASSED] drm_test_bridge_rgb_yuv_rgb
[10:07:26] [PASSED] drm_test_bridge_must_convert_to_yuv444
[10:07:26] [PASSED] drm_test_bridge_hdmi_auto_rgb
[10:07:26] [PASSED] drm_test_bridge_auto_first
[10:07:26] [PASSED] drm_test_bridge_rgb_yuv_no_path
[10:07:26] =============== [PASSED] drm_bridge_bus_fmt ================
[10:07:26] ============= drm_cmdline_parser (40 subtests) =============
[10:07:26] [PASSED] drm_test_cmdline_force_d_only
[10:07:26] [PASSED] drm_test_cmdline_force_D_only_dvi
[10:07:26] [PASSED] drm_test_cmdline_force_D_only_hdmi
[10:07:26] [PASSED] drm_test_cmdline_force_D_only_not_digital
[10:07:26] [PASSED] drm_test_cmdline_force_e_only
[10:07:26] [PASSED] drm_test_cmdline_res
[10:07:26] [PASSED] drm_test_cmdline_res_vesa
[10:07:26] [PASSED] drm_test_cmdline_res_vesa_rblank
[10:07:26] [PASSED] drm_test_cmdline_res_rblank
[10:07:26] [PASSED] drm_test_cmdline_res_bpp
[10:07:26] [PASSED] drm_test_cmdline_res_refresh
[10:07:26] [PASSED] drm_test_cmdline_res_bpp_refresh
[10:07:26] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[10:07:26] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[10:07:26] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[10:07:26] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[10:07:26] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[10:07:26] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[10:07:26] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[10:07:26] [PASSED] drm_test_cmdline_res_margins_force_on
[10:07:26] [PASSED] drm_test_cmdline_res_vesa_margins
[10:07:26] [PASSED] drm_test_cmdline_name
[10:07:26] [PASSED] drm_test_cmdline_name_bpp
[10:07:26] [PASSED] drm_test_cmdline_name_option
[10:07:26] [PASSED] drm_test_cmdline_name_bpp_option
[10:07:26] [PASSED] drm_test_cmdline_rotate_0
[10:07:26] [PASSED] drm_test_cmdline_rotate_90
[10:07:26] [PASSED] drm_test_cmdline_rotate_180
[10:07:26] [PASSED] drm_test_cmdline_rotate_270
[10:07:26] [PASSED] drm_test_cmdline_hmirror
[10:07:26] [PASSED] drm_test_cmdline_vmirror
[10:07:26] [PASSED] drm_test_cmdline_margin_options
[10:07:26] [PASSED] drm_test_cmdline_multiple_options
[10:07:26] [PASSED] drm_test_cmdline_bpp_extra_and_option
[10:07:26] [PASSED] drm_test_cmdline_extra_and_option
[10:07:26] [PASSED] drm_test_cmdline_freestanding_options
[10:07:26] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[10:07:26] [PASSED] drm_test_cmdline_panel_orientation
[10:07:26] ================ drm_test_cmdline_invalid =================
[10:07:26] [PASSED] margin_only
[10:07:26] [PASSED] interlace_only
[10:07:26] [PASSED] res_missing_x
[10:07:26] [PASSED] res_missing_y
[10:07:26] [PASSED] res_bad_y
[10:07:26] [PASSED] res_missing_y_bpp
[10:07:26] [PASSED] res_bad_bpp
[10:07:26] [PASSED] res_bad_refresh
[10:07:26] [PASSED] res_bpp_refresh_force_on_off
[10:07:26] [PASSED] res_invalid_mode
[10:07:26] [PASSED] res_bpp_wrong_place_mode
[10:07:26] [PASSED] name_bpp_refresh
[10:07:26] [PASSED] name_refresh
[10:07:26] [PASSED] name_refresh_wrong_mode
[10:07:26] [PASSED] name_refresh_invalid_mode
[10:07:26] [PASSED] rotate_multiple
[10:07:26] [PASSED] rotate_invalid_val
[10:07:26] [PASSED] rotate_truncated
[10:07:26] [PASSED] invalid_option
[10:07:26] [PASSED] invalid_tv_option
[10:07:26] [PASSED] truncated_tv_option
[10:07:26] ============ [PASSED] drm_test_cmdline_invalid =============
[10:07:26] =============== drm_test_cmdline_tv_options ===============
[10:07:26] [PASSED] NTSC
[10:07:26] [PASSED] NTSC_443
[10:07:26] [PASSED] NTSC_J
[10:07:26] [PASSED] PAL
[10:07:26] [PASSED] PAL_M
[10:07:26] [PASSED] PAL_N
[10:07:26] [PASSED] SECAM
[10:07:26] [PASSED] MONO_525
[10:07:26] [PASSED] MONO_625
[10:07:26] =========== [PASSED] drm_test_cmdline_tv_options ===========
[10:07:26] =============== [PASSED] drm_cmdline_parser ================
[10:07:26] ========== drmm_connector_hdmi_init (20 subtests) ==========
[10:07:26] [PASSED] drm_test_connector_hdmi_init_valid
[10:07:26] [PASSED] drm_test_connector_hdmi_init_bpc_8
[10:07:26] [PASSED] drm_test_connector_hdmi_init_bpc_10
[10:07:26] [PASSED] drm_test_connector_hdmi_init_bpc_12
[10:07:26] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[10:07:26] [PASSED] drm_test_connector_hdmi_init_bpc_null
[10:07:26] [PASSED] drm_test_connector_hdmi_init_formats_empty
[10:07:26] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[10:07:26] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[10:07:26] [PASSED] supported_formats=0x9 yuv420_allowed=1
[10:07:26] [PASSED] supported_formats=0x9 yuv420_allowed=0
[10:07:26] [PASSED] supported_formats=0x5 yuv420_allowed=1
[10:07:26] [PASSED] supported_formats=0x5 yuv420_allowed=0
[10:07:26] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[10:07:26] [PASSED] drm_test_connector_hdmi_init_null_ddc
[10:07:26] [PASSED] drm_test_connector_hdmi_init_null_product
[10:07:26] [PASSED] drm_test_connector_hdmi_init_null_vendor
[10:07:26] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[10:07:26] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[10:07:26] [PASSED] drm_test_connector_hdmi_init_product_valid
[10:07:26] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[10:07:26] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[10:07:26] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[10:07:26] ========= drm_test_connector_hdmi_init_type_valid =========
[10:07:26] [PASSED] HDMI-A
[10:07:26] [PASSED] HDMI-B
[10:07:26] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[10:07:26] ======== drm_test_connector_hdmi_init_type_invalid ========
[10:07:26] [PASSED] Unknown
[10:07:26] [PASSED] VGA
[10:07:26] [PASSED] DVI-I
[10:07:26] [PASSED] DVI-D
[10:07:26] [PASSED] DVI-A
[10:07:26] [PASSED] Composite
[10:07:26] [PASSED] SVIDEO
[10:07:26] [PASSED] LVDS
[10:07:26] [PASSED] Component
[10:07:26] [PASSED] DIN
[10:07:26] [PASSED] DP
[10:07:26] [PASSED] TV
[10:07:26] [PASSED] eDP
[10:07:26] [PASSED] Virtual
[10:07:26] [PASSED] DSI
[10:07:26] [PASSED] DPI
[10:07:26] [PASSED] Writeback
[10:07:26] [PASSED] SPI
[10:07:26] [PASSED] USB
[10:07:26] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[10:07:26] ============ [PASSED] drmm_connector_hdmi_init =============
[10:07:26] ============= drmm_connector_init (3 subtests) =============
[10:07:26] [PASSED] drm_test_drmm_connector_init
[10:07:26] [PASSED] drm_test_drmm_connector_init_null_ddc
[10:07:26] ========= drm_test_drmm_connector_init_type_valid =========
[10:07:26] [PASSED] Unknown
[10:07:26] [PASSED] VGA
[10:07:26] [PASSED] DVI-I
[10:07:26] [PASSED] DVI-D
[10:07:26] [PASSED] DVI-A
[10:07:26] [PASSED] Composite
[10:07:26] [PASSED] SVIDEO
[10:07:26] [PASSED] LVDS
[10:07:26] [PASSED] Component
[10:07:26] [PASSED] DIN
[10:07:26] [PASSED] DP
[10:07:26] [PASSED] HDMI-A
[10:07:26] [PASSED] HDMI-B
[10:07:26] [PASSED] TV
[10:07:26] [PASSED] eDP
[10:07:26] [PASSED] Virtual
[10:07:26] [PASSED] DSI
[10:07:26] [PASSED] DPI
[10:07:26] [PASSED] Writeback
[10:07:26] [PASSED] SPI
[10:07:26] [PASSED] USB
[10:07:26] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[10:07:26] =============== [PASSED] drmm_connector_init ===============
[10:07:26] ========= drm_connector_dynamic_init (6 subtests) ==========
[10:07:26] [PASSED] drm_test_drm_connector_dynamic_init
[10:07:26] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[10:07:26] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[10:07:26] [PASSED] drm_test_drm_connector_dynamic_init_properties
[10:07:26] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[10:07:26] [PASSED] Unknown
[10:07:26] [PASSED] VGA
[10:07:26] [PASSED] DVI-I
[10:07:26] [PASSED] DVI-D
[10:07:26] [PASSED] DVI-A
[10:07:26] [PASSED] Composite
[10:07:26] [PASSED] SVIDEO
[10:07:26] [PASSED] LVDS
[10:07:26] [PASSED] Component
[10:07:26] [PASSED] DIN
[10:07:26] [PASSED] DP
[10:07:26] [PASSED] HDMI-A
[10:07:26] [PASSED] HDMI-B
[10:07:26] [PASSED] TV
[10:07:26] [PASSED] eDP
[10:07:26] [PASSED] Virtual
[10:07:26] [PASSED] DSI
[10:07:26] [PASSED] DPI
[10:07:26] [PASSED] Writeback
[10:07:26] [PASSED] SPI
[10:07:26] [PASSED] USB
[10:07:26] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[10:07:26] ======== drm_test_drm_connector_dynamic_init_name =========
[10:07:26] [PASSED] Unknown
[10:07:26] [PASSED] VGA
[10:07:26] [PASSED] DVI-I
[10:07:26] [PASSED] DVI-D
[10:07:26] [PASSED] DVI-A
[10:07:26] [PASSED] Composite
[10:07:26] [PASSED] SVIDEO
[10:07:26] [PASSED] LVDS
[10:07:26] [PASSED] Component
[10:07:26] [PASSED] DIN
[10:07:26] [PASSED] DP
[10:07:26] [PASSED] HDMI-A
[10:07:26] [PASSED] HDMI-B
[10:07:26] [PASSED] TV
[10:07:26] [PASSED] eDP
[10:07:26] [PASSED] Virtual
[10:07:26] [PASSED] DSI
[10:07:26] [PASSED] DPI
[10:07:26] [PASSED] Writeback
[10:07:26] [PASSED] SPI
[10:07:26] [PASSED] USB
[10:07:26] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[10:07:26] =========== [PASSED] drm_connector_dynamic_init ============
[10:07:26] ==== drm_connector_dynamic_register_early (4 subtests) =====
[10:07:26] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[10:07:26] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[10:07:26] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[10:07:26] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[10:07:26] ====== [PASSED] drm_connector_dynamic_register_early =======
[10:07:26] ======= drm_connector_dynamic_register (7 subtests) ========
[10:07:26] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[10:07:26] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[10:07:26] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[10:07:26] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[10:07:26] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[10:07:26] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[10:07:26] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[10:07:26] ========= [PASSED] drm_connector_dynamic_register ==========
[10:07:26] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[10:07:26] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[10:07:26] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[10:07:26] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[10:07:26] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[10:07:26] ========== drm_test_get_tv_mode_from_name_valid ===========
[10:07:26] [PASSED] NTSC
[10:07:26] [PASSED] NTSC-443
[10:07:26] [PASSED] NTSC-J
[10:07:26] [PASSED] PAL
[10:07:26] [PASSED] PAL-M
[10:07:26] [PASSED] PAL-N
[10:07:26] [PASSED] SECAM
[10:07:26] [PASSED] Mono
[10:07:26] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[10:07:26] [PASSED] drm_test_get_tv_mode_from_name_truncated
[10:07:26] ============ [PASSED] drm_get_tv_mode_from_name ============
[10:07:26] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[10:07:26] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[10:07:26] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[10:07:26] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[10:07:26] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[10:07:26] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[10:07:26] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[10:07:26] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[10:07:26] [PASSED] VIC 96
[10:07:26] [PASSED] VIC 97
[10:07:26] [PASSED] VIC 101
[10:07:26] [PASSED] VIC 102
[10:07:26] [PASSED] VIC 106
[10:07:26] [PASSED] VIC 107
[10:07:26] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[10:07:26] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[10:07:26] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[10:07:26] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[10:07:26] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[10:07:26] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[10:07:26] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[10:07:26] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[10:07:26] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[10:07:26] [PASSED] Automatic
[10:07:26] [PASSED] Full
[10:07:26] [PASSED] Limited 16:235
[10:07:26] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[10:07:26] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[10:07:26] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[10:07:26] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[10:07:26] === drm_test_drm_hdmi_connector_get_output_format_name ====
[10:07:26] [PASSED] RGB
[10:07:26] [PASSED] YUV 4:2:0
[10:07:26] [PASSED] YUV 4:2:2
[10:07:26] [PASSED] YUV 4:4:4
[10:07:26] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[10:07:26] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[10:07:26] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[10:07:26] ============= drm_damage_helper (21 subtests) ==============
[10:07:26] [PASSED] drm_test_damage_iter_no_damage
[10:07:26] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[10:07:26] [PASSED] drm_test_damage_iter_no_damage_src_moved
[10:07:26] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[10:07:26] [PASSED] drm_test_damage_iter_no_damage_not_visible
[10:07:26] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[10:07:26] [PASSED] drm_test_damage_iter_no_damage_no_fb
[10:07:26] [PASSED] drm_test_damage_iter_simple_damage
[10:07:26] [PASSED] drm_test_damage_iter_single_damage
[10:07:26] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[10:07:26] [PASSED] drm_test_damage_iter_single_damage_outside_src
[10:07:26] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[10:07:26] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[10:07:26] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[10:07:26] [PASSED] drm_test_damage_iter_single_damage_src_moved
[10:07:26] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[10:07:26] [PASSED] drm_test_damage_iter_damage
[10:07:26] [PASSED] drm_test_damage_iter_damage_one_intersect
[10:07:26] [PASSED] drm_test_damage_iter_damage_one_outside
[10:07:26] [PASSED] drm_test_damage_iter_damage_src_moved
[10:07:26] [PASSED] drm_test_damage_iter_damage_not_visible
[10:07:26] ================ [PASSED] drm_damage_helper ================
[10:07:26] ============== drm_dp_mst_helper (3 subtests) ==============
[10:07:26] ============== drm_test_dp_mst_calc_pbn_mode ==============
[10:07:26] [PASSED] Clock 154000 BPP 30 DSC disabled
[10:07:26] [PASSED] Clock 234000 BPP 30 DSC disabled
[10:07:26] [PASSED] Clock 297000 BPP 24 DSC disabled
[10:07:26] [PASSED] Clock 332880 BPP 24 DSC enabled
[10:07:26] [PASSED] Clock 324540 BPP 24 DSC enabled
[10:07:26] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[10:07:26] ============== drm_test_dp_mst_calc_pbn_div ===============
[10:07:26] [PASSED] Link rate 2000000 lane count 4
[10:07:26] [PASSED] Link rate 2000000 lane count 2
[10:07:26] [PASSED] Link rate 2000000 lane count 1
[10:07:26] [PASSED] Link rate 1350000 lane count 4
[10:07:26] [PASSED] Link rate 1350000 lane count 2
[10:07:26] [PASSED] Link rate 1350000 lane count 1
[10:07:26] [PASSED] Link rate 1000000 lane count 4
[10:07:26] [PASSED] Link rate 1000000 lane count 2
[10:07:26] [PASSED] Link rate 1000000 lane count 1
[10:07:26] [PASSED] Link rate 810000 lane count 4
[10:07:26] [PASSED] Link rate 810000 lane count 2
[10:07:26] [PASSED] Link rate 810000 lane count 1
[10:07:26] [PASSED] Link rate 540000 lane count 4
[10:07:26] [PASSED] Link rate 540000 lane count 2
[10:07:26] [PASSED] Link rate 540000 lane count 1
[10:07:26] [PASSED] Link rate 270000 lane count 4
[10:07:26] [PASSED] Link rate 270000 lane count 2
[10:07:26] [PASSED] Link rate 270000 lane count 1
[10:07:26] [PASSED] Link rate 162000 lane count 4
[10:07:26] [PASSED] Link rate 162000 lane count 2
[10:07:26] [PASSED] Link rate 162000 lane count 1
[10:07:26] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[10:07:26] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[10:07:26] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[10:07:26] [PASSED] DP_POWER_UP_PHY with port number
[10:07:26] [PASSED] DP_POWER_DOWN_PHY with port number
[10:07:26] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[10:07:26] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[10:07:26] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[10:07:26] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[10:07:26] [PASSED] DP_QUERY_PAYLOAD with port number
[10:07:26] [PASSED] DP_QUERY_PAYLOAD with VCPI
[10:07:26] [PASSED] DP_REMOTE_DPCD_READ with port number
[10:07:26] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[10:07:26] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[10:07:26] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[10:07:26] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[10:07:26] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[10:07:26] [PASSED] DP_REMOTE_I2C_READ with port number
[10:07:26] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[10:07:26] [PASSED] DP_REMOTE_I2C_READ with transactions array
[10:07:26] [PASSED] DP_REMOTE_I2C_WRITE with port number
[10:07:26] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[10:07:26] [PASSED] DP_REMOTE_I2C_WRITE with data array
[10:07:26] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[10:07:26] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[10:07:26] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[10:07:26] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[10:07:26] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[10:07:26] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[10:07:26] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[10:07:26] ================ [PASSED] drm_dp_mst_helper ================
[10:07:26] ================== drm_exec (7 subtests) ===================
[10:07:26] [PASSED] sanitycheck
[10:07:26] [PASSED] test_lock
[10:07:26] [PASSED] test_lock_unlock
[10:07:26] [PASSED] test_duplicates
[10:07:26] [PASSED] test_prepare
[10:07:26] [PASSED] test_prepare_array
[10:07:26] [PASSED] test_multiple_loops
[10:07:26] ==================== [PASSED] drm_exec =====================
[10:07:26] =========== drm_format_helper_test (17 subtests) ===========
[10:07:26] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[10:07:26] [PASSED] single_pixel_source_buffer
[10:07:26] [PASSED] single_pixel_clip_rectangle
[10:07:26] [PASSED] well_known_colors
[10:07:26] [PASSED] destination_pitch
[10:07:26] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[10:07:26] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[10:07:26] [PASSED] single_pixel_source_buffer
[10:07:26] [PASSED] single_pixel_clip_rectangle
[10:07:26] [PASSED] well_known_colors
[10:07:26] [PASSED] destination_pitch
[10:07:26] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[10:07:26] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[10:07:26] [PASSED] single_pixel_source_buffer
[10:07:26] [PASSED] single_pixel_clip_rectangle
[10:07:26] [PASSED] well_known_colors
[10:07:26] [PASSED] destination_pitch
[10:07:26] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[10:07:26] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[10:07:26] [PASSED] single_pixel_source_buffer
[10:07:26] [PASSED] single_pixel_clip_rectangle
[10:07:26] [PASSED] well_known_colors
[10:07:26] [PASSED] destination_pitch
[10:07:26] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[10:07:26] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[10:07:26] [PASSED] single_pixel_source_buffer
[10:07:26] [PASSED] single_pixel_clip_rectangle
[10:07:26] [PASSED] well_known_colors
[10:07:26] [PASSED] destination_pitch
[10:07:26] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[10:07:26] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[10:07:26] [PASSED] single_pixel_source_buffer
[10:07:26] [PASSED] single_pixel_clip_rectangle
[10:07:26] [PASSED] well_known_colors
[10:07:26] [PASSED] destination_pitch
[10:07:26] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[10:07:26] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[10:07:26] [PASSED] single_pixel_source_buffer
[10:07:26] [PASSED] single_pixel_clip_rectangle
[10:07:26] [PASSED] well_known_colors
[10:07:26] [PASSED] destination_pitch
[10:07:26] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[10:07:26] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[10:07:26] [PASSED] single_pixel_source_buffer
[10:07:26] [PASSED] single_pixel_clip_rectangle
[10:07:26] [PASSED] well_known_colors
[10:07:26] [PASSED] destination_pitch
[10:07:26] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[10:07:26] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[10:07:26] [PASSED] single_pixel_source_buffer
[10:07:26] [PASSED] single_pixel_clip_rectangle
[10:07:26] [PASSED] well_known_colors
[10:07:26] [PASSED] destination_pitch
[10:07:26] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[10:07:26] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[10:07:26] [PASSED] single_pixel_source_buffer
[10:07:26] [PASSED] single_pixel_clip_rectangle
[10:07:26] [PASSED] well_known_colors
[10:07:26] [PASSED] destination_pitch
[10:07:26] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[10:07:26] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[10:07:26] [PASSED] single_pixel_source_buffer
[10:07:26] [PASSED] single_pixel_clip_rectangle
[10:07:26] [PASSED] well_known_colors
[10:07:26] [PASSED] destination_pitch
[10:07:26] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[10:07:26] ============== drm_test_fb_xrgb8888_to_mono ===============
[10:07:26] [PASSED] single_pixel_source_buffer
[10:07:26] [PASSED] single_pixel_clip_rectangle
[10:07:26] [PASSED] well_known_colors
[10:07:26] [PASSED] destination_pitch
[10:07:26] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[10:07:26] ==================== drm_test_fb_swab =====================
[10:07:26] [PASSED] single_pixel_source_buffer
[10:07:26] [PASSED] single_pixel_clip_rectangle
[10:07:26] [PASSED] well_known_colors
[10:07:26] [PASSED] destination_pitch
[10:07:26] ================ [PASSED] drm_test_fb_swab =================
[10:07:26] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[10:07:26] [PASSED] single_pixel_source_buffer
[10:07:26] [PASSED] single_pixel_clip_rectangle
[10:07:26] [PASSED] well_known_colors
[10:07:26] [PASSED] destination_pitch
[10:07:26] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[10:07:26] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[10:07:26] [PASSED] single_pixel_source_buffer
[10:07:26] [PASSED] single_pixel_clip_rectangle
[10:07:26] [PASSED] well_known_colors
[10:07:26] [PASSED] destination_pitch
[10:07:26] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[10:07:26] ================= drm_test_fb_clip_offset =================
[10:07:26] [PASSED] pass through
[10:07:26] [PASSED] horizontal offset
[10:07:26] [PASSED] vertical offset
[10:07:26] [PASSED] horizontal and vertical offset
[10:07:26] [PASSED] horizontal offset (custom pitch)
[10:07:26] [PASSED] vertical offset (custom pitch)
[10:07:26] [PASSED] horizontal and vertical offset (custom pitch)
[10:07:26] ============= [PASSED] drm_test_fb_clip_offset =============
[10:07:26] =================== drm_test_fb_memcpy ====================
[10:07:26] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[10:07:26] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[10:07:26] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[10:07:26] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[10:07:26] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[10:07:26] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[10:07:26] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[10:07:26] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[10:07:26] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[10:07:26] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[10:07:26] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[10:07:26] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[10:07:26] =============== [PASSED] drm_test_fb_memcpy ================
[10:07:26] ============= [PASSED] drm_format_helper_test ==============
[10:07:26] ================= drm_format (18 subtests) =================
[10:07:26] [PASSED] drm_test_format_block_width_invalid
[10:07:26] [PASSED] drm_test_format_block_width_one_plane
[10:07:26] [PASSED] drm_test_format_block_width_two_plane
[10:07:26] [PASSED] drm_test_format_block_width_three_plane
[10:07:26] [PASSED] drm_test_format_block_width_tiled
[10:07:26] [PASSED] drm_test_format_block_height_invalid
[10:07:26] [PASSED] drm_test_format_block_height_one_plane
[10:07:26] [PASSED] drm_test_format_block_height_two_plane
[10:07:26] [PASSED] drm_test_format_block_height_three_plane
[10:07:26] [PASSED] drm_test_format_block_height_tiled
[10:07:26] [PASSED] drm_test_format_min_pitch_invalid
[10:07:26] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[10:07:26] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[10:07:26] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[10:07:26] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[10:07:26] [PASSED] drm_test_format_min_pitch_two_plane
[10:07:26] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[10:07:26] [PASSED] drm_test_format_min_pitch_tiled
[10:07:26] =================== [PASSED] drm_format ====================
[10:07:26] ============== drm_framebuffer (10 subtests) ===============
[10:07:26] ========== drm_test_framebuffer_check_src_coords ==========
[10:07:26] [PASSED] Success: source fits into fb
[10:07:26] [PASSED] Fail: overflowing fb with x-axis coordinate
[10:07:26] [PASSED] Fail: overflowing fb with y-axis coordinate
[10:07:26] [PASSED] Fail: overflowing fb with source width
[10:07:26] [PASSED] Fail: overflowing fb with source height
[10:07:26] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[10:07:26] [PASSED] drm_test_framebuffer_cleanup
[10:07:26] =============== drm_test_framebuffer_create ===============
[10:07:26] [PASSED] ABGR8888 normal sizes
[10:07:26] [PASSED] ABGR8888 max sizes
[10:07:26] [PASSED] ABGR8888 pitch greater than min required
[10:07:26] [PASSED] ABGR8888 pitch less than min required
[10:07:26] [PASSED] ABGR8888 Invalid width
[10:07:26] [PASSED] ABGR8888 Invalid buffer handle
[10:07:26] [PASSED] No pixel format
[10:07:26] [PASSED] ABGR8888 Width 0
[10:07:26] [PASSED] ABGR8888 Height 0
[10:07:26] [PASSED] ABGR8888 Out of bound height * pitch combination
[10:07:26] [PASSED] ABGR8888 Large buffer offset
[10:07:26] [PASSED] ABGR8888 Buffer offset for inexistent plane
[10:07:26] [PASSED] ABGR8888 Invalid flag
[10:07:26] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[10:07:26] [PASSED] ABGR8888 Valid buffer modifier
[10:07:26] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[10:07:26] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[10:07:26] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[10:07:26] [PASSED] NV12 Normal sizes
[10:07:26] [PASSED] NV12 Max sizes
[10:07:26] [PASSED] NV12 Invalid pitch
[10:07:26] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[10:07:26] [PASSED] NV12 different modifier per-plane
[10:07:26] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[10:07:26] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[10:07:26] [PASSED] NV12 Modifier for inexistent plane
[10:07:26] [PASSED] NV12 Handle for inexistent plane
[10:07:26] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[10:07:26] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[10:07:26] [PASSED] YVU420 Normal sizes
[10:07:26] [PASSED] YVU420 Max sizes
[10:07:26] [PASSED] YVU420 Invalid pitch
[10:07:26] [PASSED] YVU420 Different pitches
[10:07:26] [PASSED] YVU420 Different buffer offsets/pitches
[10:07:26] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[10:07:26] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[10:07:26] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[10:07:26] [PASSED] YVU420 Valid modifier
[10:07:26] [PASSED] YVU420 Different modifiers per plane
[10:07:26] [PASSED] YVU420 Modifier for inexistent plane
[10:07:26] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[10:07:26] [PASSED] X0L2 Normal sizes
[10:07:26] [PASSED] X0L2 Max sizes
[10:07:26] [PASSED] X0L2 Invalid pitch
[10:07:26] [PASSED] X0L2 Pitch greater than minimum required
[10:07:26] [PASSED] X0L2 Handle for inexistent plane
[10:07:26] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[10:07:26] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[10:07:26] [PASSED] X0L2 Valid modifier
[10:07:26] [PASSED] X0L2 Modifier for inexistent plane
[10:07:26] =========== [PASSED] drm_test_framebuffer_create ===========
[10:07:26] [PASSED] drm_test_framebuffer_free
[10:07:26] [PASSED] drm_test_framebuffer_init
[10:07:26] [PASSED] drm_test_framebuffer_init_bad_format
[10:07:26] [PASSED] drm_test_framebuffer_init_dev_mismatch
[10:07:26] [PASSED] drm_test_framebuffer_lookup
[10:07:26] [PASSED] drm_test_framebuffer_lookup_inexistent
[10:07:26] [PASSED] drm_test_framebuffer_modifiers_not_supported
[10:07:26] ================= [PASSED] drm_framebuffer =================
[10:07:26] ================ drm_gem_shmem (8 subtests) ================
[10:07:26] [PASSED] drm_gem_shmem_test_obj_create
[10:07:26] [PASSED] drm_gem_shmem_test_obj_create_private
[10:07:26] [PASSED] drm_gem_shmem_test_pin_pages
[10:07:26] [PASSED] drm_gem_shmem_test_vmap
[10:07:26] [PASSED] drm_gem_shmem_test_get_sg_table
[10:07:26] [PASSED] drm_gem_shmem_test_get_pages_sgt
[10:07:26] [PASSED] drm_gem_shmem_test_madvise
[10:07:26] [PASSED] drm_gem_shmem_test_purge
[10:07:26] ================== [PASSED] drm_gem_shmem ==================
[10:07:26] === drm_atomic_helper_connector_hdmi_check (29 subtests) ===
[10:07:26] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[10:07:26] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[10:07:26] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[10:07:26] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[10:07:26] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[10:07:26] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[10:07:26] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[10:07:26] [PASSED] Automatic
[10:07:26] [PASSED] Full
[10:07:26] [PASSED] Limited 16:235
[10:07:26] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[10:07:26] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[10:07:26] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[10:07:26] [PASSED] drm_test_check_disable_connector
[10:07:26] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[10:07:26] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[10:07:26] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[10:07:26] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[10:07:26] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[10:07:26] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[10:07:26] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[10:07:26] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[10:07:26] [PASSED] drm_test_check_output_bpc_dvi
[10:07:26] [PASSED] drm_test_check_output_bpc_format_vic_1
[10:07:26] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[10:07:26] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[10:07:26] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[10:07:26] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[10:07:26] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[10:07:26] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[10:07:26] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[10:07:26] ============ drm_test_check_hdmi_color_format =============
[10:07:26] [PASSED] AUTO -> RGB
[10:07:26] [PASSED] YCBCR422 -> YUV422
[10:07:26] [PASSED] YCBCR420 -> YUV420
[10:07:26] [PASSED] YCBCR444 -> YUV444
[10:07:26] [PASSED] RGB -> RGB
[10:07:26] ======== [PASSED] drm_test_check_hdmi_color_format =========
[10:07:26] ======== drm_test_check_hdmi_color_format_420_only ========
[10:07:26] [PASSED] RGB should fail
[10:07:26] [PASSED] YUV444 should fail
[10:07:26] [PASSED] YUV422 should fail
[10:07:26] [PASSED] YUV420 should work
[10:07:26] ==== [PASSED] drm_test_check_hdmi_color_format_420_only ====
[10:07:26] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[10:07:26] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[10:07:26] [PASSED] drm_test_check_broadcast_rgb_value
[10:07:26] [PASSED] drm_test_check_bpc_8_value
[10:07:26] [PASSED] drm_test_check_bpc_10_value
[10:07:26] [PASSED] drm_test_check_bpc_12_value
[10:07:26] [PASSED] drm_test_check_format_value
[10:07:26] [PASSED] drm_test_check_tmds_char_value
[10:07:26] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[10:07:26] = drm_atomic_helper_connector_hdmi_mode_valid (7 subtests) =
[10:07:26] [PASSED] drm_test_check_mode_valid
[10:07:26] [PASSED] drm_test_check_mode_valid_reject
[10:07:26] [PASSED] drm_test_check_mode_valid_reject_rate
[10:07:26] [PASSED] drm_test_check_mode_valid_reject_max_clock
[10:07:26] [PASSED] drm_test_check_mode_valid_yuv420_only_max_clock
[10:07:26] [PASSED] drm_test_check_mode_valid_reject_yuv420_only_connector
[10:07:26] [PASSED] drm_test_check_mode_valid_accept_yuv420_also_connector_rgb
[10:07:26] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[10:07:26] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[10:07:26] [PASSED] drm_test_check_infoframes
[10:07:26] [PASSED] drm_test_check_reject_avi_infoframe
[10:07:26] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[10:07:26] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[10:07:26] [PASSED] drm_test_check_reject_audio_infoframe
[10:07:26] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[10:07:26] ================= drm_managed (2 subtests) =================
[10:07:26] [PASSED] drm_test_managed_release_action
[10:07:26] [PASSED] drm_test_managed_run_action
[10:07:26] =================== [PASSED] drm_managed ===================
[10:07:26] =================== drm_mm (6 subtests) ====================
[10:07:26] [PASSED] drm_test_mm_init
[10:07:26] [PASSED] drm_test_mm_debug
[10:07:26] [PASSED] drm_test_mm_align32
[10:07:26] [PASSED] drm_test_mm_align64
[10:07:26] [PASSED] drm_test_mm_lowest
[10:07:26] [PASSED] drm_test_mm_highest
[10:07:26] ===================== [PASSED] drm_mm ======================
[10:07:26] ============= drm_modes_analog_tv (5 subtests) =============
[10:07:26] [PASSED] drm_test_modes_analog_tv_mono_576i
[10:07:26] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[10:07:26] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[10:07:26] [PASSED] drm_test_modes_analog_tv_pal_576i
[10:07:26] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[10:07:26] =============== [PASSED] drm_modes_analog_tv ===============
[10:07:26] ============== drm_panic_helper (3 subtests) ===============
[10:07:26] ============= drm_test_panic_screen_user_map ==============
[10:07:26] [PASSED] Panic screen user, mode: 1024 x 768 XR24 little-endian (0x34325258)
[10:07:26] [PASSED] Panic screen user, mode: 494 x 494 XR24 little-endian (0x34325258)
[10:07:26] [PASSED] Panic screen user, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[10:07:26] [PASSED] Panic screen user, mode: 1024 x 768 RG16 little-endian (0x36314752)
[10:07:26] [PASSED] Panic screen user, mode: 1024 x 768 RG24 little-endian (0x34324752)
[10:07:26] [PASSED] Panic screen kmsg, mode: 1024 x 768 XR24 little-endian (0x34325258)
[10:07:26] [PASSED] Panic screen kmsg, mode: 494 x 494 XR24 little-endian (0x34325258)
[10:07:26] [PASSED] Panic screen kmsg, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[10:07:26] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG16 little-endian (0x36314752)
[10:07:26] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG24 little-endian (0x34324752)
[10:07:26] ========= [PASSED] drm_test_panic_screen_user_map ==========
[10:07:26] ============= drm_test_panic_screen_user_page =============
[10:07:26] [PASSED] Panic screen user, mode: 1024 x 768 XR24 little-endian (0x34325258)
[10:07:26] [PASSED] Panic screen user, mode: 494 x 494 XR24 little-endian (0x34325258)
[10:07:26] [PASSED] Panic screen user, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[10:07:26] [PASSED] Panic screen user, mode: 1024 x 768 RG16 little-endian (0x36314752)
[10:07:26] [PASSED] Panic screen user, mode: 1024 x 768 RG24 little-endian (0x34324752)
[10:07:26] [PASSED] Panic screen kmsg, mode: 1024 x 768 XR24 little-endian (0x34325258)
[10:07:26] [PASSED] Panic screen kmsg, mode: 494 x 494 XR24 little-endian (0x34325258)
[10:07:26] [PASSED] Panic screen kmsg, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[10:07:26] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG16 little-endian (0x36314752)
[10:07:26] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG24 little-endian (0x34324752)
[10:07:26] ========= [PASSED] drm_test_panic_screen_user_page =========
[10:07:26] ========== drm_test_panic_screen_user_set_pixel ===========
[10:07:26] [PASSED] Panic screen user, mode: 1024 x 768 XR24 little-endian (0x34325258)
[10:07:26] [PASSED] Panic screen user, mode: 494 x 494 XR24 little-endian (0x34325258)
[10:07:26] [PASSED] Panic screen user, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[10:07:26] [PASSED] Panic screen user, mode: 1024 x 768 RG16 little-endian (0x36314752)
[10:07:26] [PASSED] Panic screen user, mode: 1024 x 768 RG24 little-endian (0x34324752)
[10:07:26] [PASSED] Panic screen kmsg, mode: 1024 x 768 XR24 little-endian (0x34325258)
[10:07:26] [PASSED] Panic screen kmsg, mode: 494 x 494 XR24 little-endian (0x34325258)
[10:07:26] [PASSED] Panic screen kmsg, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[10:07:26] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG16 little-endian (0x36314752)
[10:07:26] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG24 little-endian (0x34324752)
[10:07:26] ====== [PASSED] drm_test_panic_screen_user_set_pixel =======
[10:07:26] ================ [PASSED] drm_panic_helper =================
[10:07:26] ============== drm_plane_helper (2 subtests) ===============
[10:07:26] =============== drm_test_check_plane_state ================
[10:07:26] [PASSED] clipping_simple
[10:07:26] [PASSED] clipping_rotate_reflect
[10:07:26] [PASSED] positioning_simple
[10:07:26] [PASSED] upscaling
[10:07:26] [PASSED] downscaling
[10:07:26] [PASSED] rounding1
[10:07:26] [PASSED] rounding2
[10:07:26] [PASSED] rounding3
[10:07:26] [PASSED] rounding4
[10:07:26] =========== [PASSED] drm_test_check_plane_state ============
[10:07:26] =========== drm_test_check_invalid_plane_state ============
[10:07:26] [PASSED] positioning_invalid
[10:07:26] [PASSED] upscaling_invalid
[10:07:26] [PASSED] downscaling_invalid
[10:07:26] ======= [PASSED] drm_test_check_invalid_plane_state ========
[10:07:26] ================ [PASSED] drm_plane_helper =================
[10:07:26] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[10:07:26] ====== drm_test_connector_helper_tv_get_modes_check =======
[10:07:26] [PASSED] None
[10:07:26] [PASSED] PAL
[10:07:26] [PASSED] NTSC
[10:07:26] [PASSED] Both, NTSC Default
[10:07:26] [PASSED] Both, PAL Default
[10:07:26] [PASSED] Both, NTSC Default, with PAL on command-line
[10:07:26] [PASSED] Both, PAL Default, with NTSC on command-line
[10:07:26] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[10:07:26] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[10:07:26] ================== drm_rect (9 subtests) ===================
[10:07:26] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[10:07:26] [PASSED] drm_test_rect_clip_scaled_not_clipped
[10:07:26] [PASSED] drm_test_rect_clip_scaled_clipped
[10:07:26] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[10:07:26] ================= drm_test_rect_intersect =================
[10:07:26] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[10:07:26] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[10:07:26] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[10:07:26] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[10:07:26] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[10:07:26] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[10:07:26] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[10:07:26] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[10:07:26] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[10:07:26] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[10:07:26] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[10:07:26] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[10:07:26] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[10:07:26] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[10:07:26] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[10:07:26] ============= [PASSED] drm_test_rect_intersect =============
[10:07:26] ================ drm_test_rect_calc_hscale ================
[10:07:26] [PASSED] normal use
[10:07:26] [PASSED] out of max range
[10:07:26] [PASSED] out of min range
[10:07:26] [PASSED] zero dst
[10:07:26] [PASSED] negative src
[10:07:26] [PASSED] negative dst
[10:07:26] ============ [PASSED] drm_test_rect_calc_hscale ============
[10:07:26] ================ drm_test_rect_calc_vscale ================
[10:07:26] [PASSED] normal use
[10:07:26] [PASSED] out of max range
[10:07:26] [PASSED] out of min range
[10:07:26] [PASSED] zero dst
[10:07:26] [PASSED] negative src
[10:07:26] [PASSED] negative dst
[10:07:26] ============ [PASSED] drm_test_rect_calc_vscale ============
[10:07:26] ================== drm_test_rect_rotate ===================
[10:07:26] [PASSED] reflect-x
[10:07:26] [PASSED] reflect-y
[10:07:26] [PASSED] rotate-0
[10:07:26] [PASSED] rotate-90
[10:07:26] [PASSED] rotate-180
[10:07:26] [PASSED] rotate-270
[10:07:26] ============== [PASSED] drm_test_rect_rotate ===============
[10:07:26] ================ drm_test_rect_rotate_inv =================
[10:07:26] [PASSED] reflect-x
[10:07:26] [PASSED] reflect-y
[10:07:26] [PASSED] rotate-0
[10:07:26] [PASSED] rotate-90
[10:07:26] [PASSED] rotate-180
[10:07:26] [PASSED] rotate-270
[10:07:26] ============ [PASSED] drm_test_rect_rotate_inv =============
[10:07:26] ==================== [PASSED] drm_rect =====================
[10:07:26] ============ drm_sysfb_modeset_test (1 subtest) ============
[10:07:26] ============ drm_test_sysfb_build_fourcc_list =============
[10:07:26] [PASSED] no native formats
[10:07:26] [PASSED] XRGB8888 as native format
[10:07:26] [PASSED] remove duplicates
[10:07:26] [PASSED] convert alpha formats
[10:07:26] [PASSED] random formats
[10:07:26] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[10:07:26] ============= [PASSED] drm_sysfb_modeset_test ==============
[10:07:26] ================== drm_fixp (2 subtests) ===================
[10:07:26] [PASSED] drm_test_int2fixp
[10:07:26] [PASSED] drm_test_sm2fixp
[10:07:26] ==================== [PASSED] drm_fixp =====================
[10:07:26] ============================================================
[10:07:26] Testing complete. Ran 667 tests: passed: 667
[10:07:26] Elapsed time: 27.097s total, 1.864s configuring, 24.818s building, 0.411s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[10:07:26] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:07:28] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[10:07:38] Starting KUnit Kernel (1/1)...
[10:07:38] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:07:38] ================= ttm_device (5 subtests) ==================
[10:07:38] [PASSED] ttm_device_init_basic
[10:07:38] [PASSED] ttm_device_init_multiple
[10:07:38] [PASSED] ttm_device_fini_basic
[10:07:38] [PASSED] ttm_device_init_no_vma_man
[10:07:38] ================== ttm_device_init_pools ==================
[10:07:38] [PASSED] No DMA allocations, no DMA32 required
[10:07:38] [PASSED] DMA allocations, DMA32 required
[10:07:38] [PASSED] No DMA allocations, DMA32 required
[10:07:38] [PASSED] DMA allocations, no DMA32 required
[10:07:38] ============== [PASSED] ttm_device_init_pools ==============
[10:07:38] =================== [PASSED] ttm_device ====================
[10:07:38] ================== ttm_pool (8 subtests) ===================
[10:07:38] ================== ttm_pool_alloc_basic ===================
[10:07:38] [PASSED] One page
[10:07:38] [PASSED] More than one page
[10:07:38] [PASSED] Above the allocation limit
[10:07:38] [PASSED] One page, with coherent DMA mappings enabled
[10:07:38] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[10:07:38] ============== [PASSED] ttm_pool_alloc_basic ===============
[10:07:38] ============== ttm_pool_alloc_basic_dma_addr ==============
[10:07:38] [PASSED] One page
[10:07:38] [PASSED] More than one page
[10:07:38] [PASSED] Above the allocation limit
[10:07:38] [PASSED] One page, with coherent DMA mappings enabled
[10:07:38] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[10:07:38] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[10:07:38] [PASSED] ttm_pool_alloc_order_caching_match
[10:07:38] [PASSED] ttm_pool_alloc_caching_mismatch
[10:07:38] [PASSED] ttm_pool_alloc_order_mismatch
[10:07:38] [PASSED] ttm_pool_free_dma_alloc
[10:07:38] [PASSED] ttm_pool_free_no_dma_alloc
[10:07:38] [PASSED] ttm_pool_fini_basic
[10:07:38] ==================== [PASSED] ttm_pool =====================
[10:07:38] ================ ttm_resource (8 subtests) =================
[10:07:38] ================= ttm_resource_init_basic =================
[10:07:38] [PASSED] Init resource in TTM_PL_SYSTEM
[10:07:38] [PASSED] Init resource in TTM_PL_VRAM
[10:07:38] [PASSED] Init resource in a private placement
[10:07:38] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[10:07:38] ============= [PASSED] ttm_resource_init_basic =============
[10:07:38] [PASSED] ttm_resource_init_pinned
[10:07:38] [PASSED] ttm_resource_fini_basic
[10:07:38] [PASSED] ttm_resource_manager_init_basic
[10:07:38] [PASSED] ttm_resource_manager_usage_basic
[10:07:38] [PASSED] ttm_resource_manager_set_used_basic
[10:07:38] [PASSED] ttm_sys_man_alloc_basic
[10:07:38] [PASSED] ttm_sys_man_free_basic
[10:07:38] ================== [PASSED] ttm_resource ===================
[10:07:38] =================== ttm_tt (15 subtests) ===================
[10:07:38] ==================== ttm_tt_init_basic ====================
[10:07:38] [PASSED] Page-aligned size
[10:07:38] [PASSED] Extra pages requested
[10:07:38] ================ [PASSED] ttm_tt_init_basic ================
[10:07:38] [PASSED] ttm_tt_init_misaligned
[10:07:38] [PASSED] ttm_tt_fini_basic
[10:07:38] [PASSED] ttm_tt_fini_sg
[10:07:38] [PASSED] ttm_tt_fini_shmem
[10:07:38] [PASSED] ttm_tt_create_basic
[10:07:38] [PASSED] ttm_tt_create_invalid_bo_type
[10:07:38] [PASSED] ttm_tt_create_ttm_exists
[10:07:38] [PASSED] ttm_tt_create_failed
[10:07:38] [PASSED] ttm_tt_destroy_basic
[10:07:38] [PASSED] ttm_tt_populate_null_ttm
[10:07:38] [PASSED] ttm_tt_populate_populated_ttm
[10:07:38] [PASSED] ttm_tt_unpopulate_basic
[10:07:38] [PASSED] ttm_tt_unpopulate_empty_ttm
[10:07:38] [PASSED] ttm_tt_swapin_basic
[10:07:38] ===================== [PASSED] ttm_tt ======================
[10:07:38] =================== ttm_bo (14 subtests) ===================
[10:07:38] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[10:07:38] [PASSED] Cannot be interrupted and sleeps
[10:07:38] [PASSED] Cannot be interrupted, locks straight away
[10:07:38] [PASSED] Can be interrupted, sleeps
[10:07:38] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[10:07:38] [PASSED] ttm_bo_reserve_locked_no_sleep
[10:07:38] [PASSED] ttm_bo_reserve_no_wait_ticket
[10:07:38] [PASSED] ttm_bo_reserve_double_resv
[10:07:38] [PASSED] ttm_bo_reserve_interrupted
[10:07:38] [PASSED] ttm_bo_reserve_deadlock
[10:07:38] [PASSED] ttm_bo_unreserve_basic
[10:07:38] [PASSED] ttm_bo_unreserve_pinned
[10:07:38] [PASSED] ttm_bo_unreserve_bulk
[10:07:38] [PASSED] ttm_bo_fini_basic
[10:07:38] [PASSED] ttm_bo_fini_shared_resv
[10:07:38] [PASSED] ttm_bo_pin_basic
[10:07:38] [PASSED] ttm_bo_pin_unpin_resource
[10:07:38] [PASSED] ttm_bo_multiple_pin_one_unpin
[10:07:38] ===================== [PASSED] ttm_bo ======================
[10:07:38] ============== ttm_bo_validate (22 subtests) ===============
[10:07:38] ============== ttm_bo_init_reserved_sys_man ===============
[10:07:38] [PASSED] Buffer object for userspace
[10:07:38] [PASSED] Kernel buffer object
[10:07:38] [PASSED] Shared buffer object
[10:07:38] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[10:07:38] ============== ttm_bo_init_reserved_mock_man ==============
[10:07:38] [PASSED] Buffer object for userspace
[10:07:38] [PASSED] Kernel buffer object
[10:07:38] [PASSED] Shared buffer object
[10:07:38] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[10:07:38] [PASSED] ttm_bo_init_reserved_resv
[10:07:38] ================== ttm_bo_validate_basic ==================
[10:07:38] [PASSED] Buffer object for userspace
[10:07:38] [PASSED] Kernel buffer object
[10:07:38] [PASSED] Shared buffer object
[10:07:38] ============== [PASSED] ttm_bo_validate_basic ==============
[10:07:38] [PASSED] ttm_bo_validate_invalid_placement
[10:07:38] ============= ttm_bo_validate_same_placement ==============
[10:07:38] [PASSED] System manager
[10:07:38] [PASSED] VRAM manager
[10:07:38] ========= [PASSED] ttm_bo_validate_same_placement ==========
[10:07:38] [PASSED] ttm_bo_validate_failed_alloc
[10:07:38] [PASSED] ttm_bo_validate_pinned
[10:07:38] [PASSED] ttm_bo_validate_busy_placement
[10:07:38] ================ ttm_bo_validate_multihop =================
[10:07:38] [PASSED] Buffer object for userspace
[10:07:38] [PASSED] Kernel buffer object
[10:07:38] [PASSED] Shared buffer object
[10:07:38] ============ [PASSED] ttm_bo_validate_multihop =============
[10:07:38] ========== ttm_bo_validate_no_placement_signaled ==========
[10:07:38] [PASSED] Buffer object in system domain, no page vector
[10:07:38] [PASSED] Buffer object in system domain with an existing page vector
[10:07:38] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[10:07:38] ======== ttm_bo_validate_no_placement_not_signaled ========
[10:07:38] [PASSED] Buffer object for userspace
[10:07:38] [PASSED] Kernel buffer object
[10:07:38] [PASSED] Shared buffer object
[10:07:38] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[10:07:38] [PASSED] ttm_bo_validate_move_fence_signaled
[10:07:39] ========= ttm_bo_validate_move_fence_not_signaled =========
[10:07:39] [PASSED] Waits for GPU
[10:07:39] [PASSED] Tries to lock straight away
[10:07:39] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[10:07:39] [PASSED] ttm_bo_validate_swapout
[10:07:39] [PASSED] ttm_bo_validate_happy_evict
[10:07:39] [PASSED] ttm_bo_validate_all_pinned_evict
[10:07:39] [PASSED] ttm_bo_validate_allowed_only_evict
[10:07:39] [PASSED] ttm_bo_validate_deleted_evict
[10:07:39] [PASSED] ttm_bo_validate_busy_domain_evict
[10:07:39] [PASSED] ttm_bo_validate_evict_gutting
[10:07:39] [PASSED] ttm_bo_validate_recrusive_evict
[10:07:39] ================= [PASSED] ttm_bo_validate =================
[10:07:39] ============================================================
[10:07:39] Testing complete. Ran 102 tests: passed: 102
[10:07:39] Elapsed time: 12.353s total, 1.873s configuring, 10.264s building, 0.173s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/dma-buf/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/dma-buf/.kunitconfig
[10:07:39] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:07:40] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[10:07:49] Starting KUnit Kernel (1/1)...
[10:07:49] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:07:49] =============== dma-buf-fence (12 subtests) ================
[10:07:49] [PASSED] test_sanitycheck
[10:07:49] [PASSED] test_signaling
[10:07:49] [PASSED] test_add_callback
[10:07:49] [PASSED] test_late_add_callback
[10:07:49] [PASSED] test_rm_callback
[10:07:49] [PASSED] test_late_rm_callback
[10:07:49] [PASSED] test_status
[10:07:49] [PASSED] test_error
[10:07:49] [PASSED] test_wait
[10:07:49] [PASSED] test_wait_timeout
[10:07:49] [PASSED] test_stub
[10:07:49] [SKIPPED] test_race_signal_callback (requires at least 2 CPUs)
[10:07:49] ================== [PASSED] dma-buf-fence ==================
[10:07:49] ============ dma-buf-fence-chain (11 subtests) =============
[10:07:49] [PASSED] test_sanitycheck
[10:07:49] [PASSED] test_find_seqno
[10:07:49] [PASSED] test_find_signaled
[10:07:49] [PASSED] test_find_out_of_order
[10:07:54] [PASSED] test_find_gap
[10:07:54] [PASSED] test_find_race
[10:07:54] [PASSED] test_signal_forward
[10:07:54] [PASSED] test_signal_backward
[10:07:54] [PASSED] test_wait_forward
[10:07:54] [PASSED] test_wait_backward
[10:07:54] [PASSED] test_wait_random
[10:07:54] =============== [PASSED] dma-buf-fence-chain ===============
[10:07:54] ============ dma-buf-fence-unwrap (11 subtests) ============
[10:07:54] [PASSED] test_sanitycheck
[10:07:54] [PASSED] test_unwrap_array
[10:07:54] [PASSED] test_unwrap_chain
[10:07:54] [PASSED] test_unwrap_chain_array
[10:07:54] [PASSED] test_unwrap_merge
[10:07:54] [PASSED] test_unwrap_merge_duplicate
[10:07:54] [PASSED] test_unwrap_merge_seqno
[10:07:54] [PASSED] test_unwrap_merge_order
[10:07:54] [PASSED] test_unwrap_merge_complex
[10:07:54] [PASSED] test_unwrap_merge_complex_seqno
[10:07:54] [PASSED] test_dedup_empty
[10:07:54] ============== [PASSED] dma-buf-fence-unwrap ===============
[10:07:54] ================ dma-buf-resv (5 subtests) =================
[10:07:54] [PASSED] test_sanitycheck
[10:07:54] ===================== test_signaling ======================
[10:07:54] [PASSED] kernel
[10:07:54] [PASSED] write
[10:07:54] [PASSED] read
[10:07:54] [PASSED] bookkeep
[10:07:54] ================= [PASSED] test_signaling ==================
[10:07:54] ====================== test_for_each ======================
[10:07:54] [PASSED] kernel
[10:07:54] [PASSED] write
[10:07:54] [PASSED] read
[10:07:54] [PASSED] bookkeep
[10:07:54] ================== [PASSED] test_for_each ==================
[10:07:54] ================= test_for_each_unlocked ==================
[10:07:54] [PASSED] kernel
[10:07:54] [PASSED] write
[10:07:54] [PASSED] read
[10:07:54] [PASSED] bookkeep
[10:07:54] ============= [PASSED] test_for_each_unlocked ==============
[10:07:54] ===================== test_get_fences =====================
[10:07:54] [PASSED] kernel
[10:07:54] [PASSED] write
[10:07:54] [PASSED] read
[10:07:54] [PASSED] bookkeep
[10:07:54] ================= [PASSED] test_get_fences =================
[10:07:54] ================== [PASSED] dma-buf-resv ===================
[10:07:54] ============================================================
[10:07:54] Testing complete. Ran 51 tests: passed: 50, skipped: 1
[10:07:54] Elapsed time: 15.683s total, 1.733s configuring, 8.677s building, 5.263s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v6 05/10] drm/xe/cper: Log CPER records for aggregate counter retrieval
2026-10-28 9:57 ` [PATCH v6 05/10] drm/xe/cper: Log CPER records for aggregate counter retrieval Badal Nilawar
@ 2026-10-28 10:30 ` sashiko-bot
2026-10-28 17:05 ` Raag Jadav
1 sibling, 0 replies; 24+ messages in thread
From: sashiko-bot @ 2026-10-28 10:30 UTC (permalink / raw)
To: Badal Nilawar, intel-xe
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] drm/xe/ras: leak offlined_pages XArray on xe_cper_sysfs_init() error
--
commit 6077a66c6338e4db5c918ef6aa2f82fb393dd9be
Author: Badal Nilawar <badal.nilawar@intel.com>
drm/xe/cper: Log CPER records for aggregate counter retrieval
This commit adds a cper_on_query sysfs attribute to control whether CPER
records are emitted when userspace queries RAS error counters, and updates
xe_ras_get_counter() and xe_ras_init() to support it.
> diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
> index 0555b86b63b27..6664153b3cae7 100644
> --- a/drivers/gpu/drm/xe/xe_ras.c
> +++ b/drivers/gpu/drm/xe/xe_ras.c
[ ... ]
> @@ -1246,5 +1284,9 @@ int xe_ras_init(struct xe_device *xe)
> if (ret)
> xe_err(xe, "Failed to create GPU health sysfs, err=%d\n", ret);
>
> + ret = xe_cper_sysfs_init(xe);
> + if (ret)
> + return ret;
> +
> return devm_add_action_or_reset(xe->drm.dev, ras_fini, xe);
> }
[Severity: Medium]
Does returning early here on xe_cper_sysfs_init() failure leak the entries
allocated in state->offlined_pages?
Earlier in xe_ras_init(), state->offlined_pages is initialized and populated:
drivers/gpu/drm/xe/xe_ras.c:xe_ras_init() {
...
xa_init(&state->offlined_pages);
/* Fetch the offline list before queue to avoid duplication */
get_offline_list(xe);
get_offline_queue(xe);
...
xe_ras_process_errors(xe);
}
Those helpers store entries into state->offlined_pages via xa_store(...,
GFP_KERNEL), which is normally cleaned up by ras_fini():
static void ras_fini(void *arg)
{
struct xe_device *xe = arg;
xa_destroy(&xe->ras.state.offlined_pages);
}
If xe_cper_sysfs_init() fails and returns before devm_add_action_or_reset()
registers ras_fini(), nothing calls xa_destroy(&state->offlined_pages). Should
devm_add_action_or_reset(xe->drm.dev, ras_fini, xe) be registered right after
xa_init(), or should xa_destroy() be called on this error path (or should
xe_cper_sysfs_init() failure be logged as non-fatal like gpu_health_group
above)?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261028095723.734387-12-badal.nilawar@intel.com?part=5
^ permalink raw reply [flat|nested] 24+ messages in thread
* ✓ Xe.CI.BAT: success for Add CPER logging support for CRI (rev6)
2026-10-28 9:57 [PATCH v6 00/10] Add CPER logging support for CRI Badal Nilawar
` (11 preceding siblings ...)
2026-10-28 10:07 ` ✓ CI.KUnit: success " Patchwork
@ 2026-10-28 10:43 ` Patchwork
2026-10-28 18:37 ` ✓ Xe.CI.FULL: " Patchwork
13 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2026-10-28 10:43 UTC (permalink / raw)
To: Badal Nilawar; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 1937 bytes --]
== Series Details ==
Series: Add CPER logging support for CRI (rev6)
URL : https://patchwork.freedesktop.org/series/169692/
State : success
== Summary ==
CI Bug Log - changes from xe-6018-6a182ac542350dbca9147134654c35e463aa1382_BAT -> xe-pw-169692v6_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (15 -> 15)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-169692v6_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@xe_exec_fault_mode@twice-userptr-prefetch:
- bat-atsm-2: NOTRUN -> [SKIP][1] ([Intel XE#288]) +32 other tests skip
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/bat-atsm-2/igt@xe_exec_fault_mode@twice-userptr-prefetch.html
#### Possible fixes ####
* igt@xe_live_ktest@xe_migrate@xe_migrate_access_memory_kunit:
- bat-atsm-2: [ABORT][2] ([Intel XE#9663]) -> [PASS][3] +1 other test pass
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6018-6a182ac542350dbca9147134654c35e463aa1382/bat-atsm-2/igt@xe_live_ktest@xe_migrate@xe_migrate_access_memory_kunit.html
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/bat-atsm-2/igt@xe_live_ktest@xe_migrate@xe_migrate_access_memory_kunit.html
[Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
[Intel XE#9663]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9663
Build changes
-------------
* IGT: IGT_9168 -> IGT_9169
* Linux: xe-6018-6a182ac542350dbca9147134654c35e463aa1382 -> xe-pw-169692v6
IGT_9168: 9168
IGT_9169: 9169
xe-6018-6a182ac542350dbca9147134654c35e463aa1382: 6a182ac542350dbca9147134654c35e463aa1382
xe-pw-169692v6: 169692v6
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/index.html
[-- Attachment #2: Type: text/html, Size: 2538 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v6 01/10] drm/xe/cper: Add CPER reporting entry point for xe_log
2026-10-28 9:57 ` [PATCH v6 01/10] drm/xe/cper: Add CPER reporting entry point for xe_log Badal Nilawar
@ 2026-10-28 16:22 ` Raag Jadav
0 siblings, 0 replies; 24+ messages in thread
From: Raag Jadav @ 2026-10-28 16:22 UTC (permalink / raw)
To: Badal Nilawar
Cc: intel-xe, anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio,
riana.tauro, mallesh.koujalagi, aravind.iddamsetty,
himal.prasad.ghimiray, arvind.yadav, syed.abdul.muqthyar.ahmed,
nitin.r.gote
On Wed, Oct 28, 2026 at 03:27:25PM +0530, Badal Nilawar wrote:
> Introduce xe_cper_emit() as the single entry point for emitting
> CPER records from xe_log. xe_log now forwards every SIGID log entry
> with its full context (component, location, data/len and formatted
> message), and xe_cper decides how to report it. Hardware SIGIDs are
> routed to a hardware error helper, software SIGIDs are left as TODO.
>
> Assisted-by: LLM
> Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v6 02/10] drm/xe/cper: Retrieve the error counter record for CPER reporting
2026-10-28 9:57 ` [PATCH v6 02/10] drm/xe/cper: Retrieve the error counter record for CPER reporting Badal Nilawar
@ 2026-10-28 16:25 ` Raag Jadav
0 siblings, 0 replies; 24+ messages in thread
From: Raag Jadav @ 2026-10-28 16:25 UTC (permalink / raw)
To: Badal Nilawar
Cc: intel-xe, anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio,
riana.tauro, mallesh.koujalagi, aravind.iddamsetty,
himal.prasad.ghimiray, arvind.yadav, syed.abdul.muqthyar.ahmed,
nitin.r.gote
On Wed, Oct 28, 2026 at 03:27:26PM +0530, Badal Nilawar wrote:
> Retrieve error counter record required to build a CPER record.
>
> Assisted-by: LLM
> Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v6 03/10] drm/xe/cper: Initialize Intel-specific CPER header
2026-10-28 9:57 ` [PATCH v6 03/10] drm/xe/cper: Initialize Intel-specific CPER header Badal Nilawar
@ 2026-10-28 16:34 ` Raag Jadav
0 siblings, 0 replies; 24+ messages in thread
From: Raag Jadav @ 2026-10-28 16:34 UTC (permalink / raw)
To: Badal Nilawar
Cc: intel-xe, anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio,
riana.tauro, mallesh.koujalagi, aravind.iddamsetty,
himal.prasad.ghimiray, arvind.yadav, syed.abdul.muqthyar.ahmed,
nitin.r.gote
On Wed, Oct 28, 2026 at 03:27:27PM +0530, Badal Nilawar wrote:
> Define the Intel-specific CPER header and initialize it
> from the error counter record for Intel GPU hardware errors.
>
> Assisted-by: LLM
> Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v6 04/10] drm/xe/cper: Construct CPER record for hardware errors
2026-10-28 9:57 ` [PATCH v6 04/10] drm/xe/cper: Construct CPER record for hardware errors Badal Nilawar
@ 2026-10-28 16:52 ` Raag Jadav
0 siblings, 0 replies; 24+ messages in thread
From: Raag Jadav @ 2026-10-28 16:52 UTC (permalink / raw)
To: Badal Nilawar
Cc: intel-xe, anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio,
riana.tauro, mallesh.koujalagi, aravind.iddamsetty,
himal.prasad.ghimiray, arvind.yadav, syed.abdul.muqthyar.ahmed,
nitin.r.gote
On Wed, Oct 28, 2026 at 03:27:28PM +0530, Badal Nilawar wrote:
> Assemble the CPER record header, section descriptor and the Intel
> error section for Intel GPU hardware errors.
...
> +static void cper_init_record_hdr(struct xe_device *xe, u8 severity,
> + const guid_t *notification_type,
> + struct cper_record_header *rhdr,
> + u32 total_len)
> +{
> + const guid_t *device_guid;
> + struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
Reverse xmas order please!
> + /* Assemble the CPER record header (UEFI Appendix N.2.1) */
> + memcpy(rhdr->signature, CPER_SIG_RECORD, CPER_SIG_SIZE);
> + rhdr->revision = CPER_RECORD_REV;
> + rhdr->signature_end = CPER_SIG_END;
> + rhdr->section_count = 1;
> + rhdr->error_severity = severity;
> + rhdr->validation_bits = CPER_VALID_TIMESTAMP;
> + rhdr->record_length = total_len;
> + rhdr->timestamp = cper_timestamp_now();
> + rhdr->creator_id = INTEL_CPER_CREATOR_XEKMD;
> + rhdr->notification_type = *notification_type;
> + rhdr->record_id = cper_next_record_id();
Blank line here.
> + device_guid = lookup_device_guid(pdev);
> + if (device_guid) {
> + rhdr->platform_id = *device_guid;
> + rhdr->validation_bits |= CPER_VALID_PLATFORM_ID;
> + } else {
> + xe_printk(xe, warn_once, "CPER: no platform GUID for device %04x\n",
> + pdev->device);
Move this to lookup_device_guid() before returning NULL.
> + }
> +}
> +
> +static void cper_init_section_desc(struct xe_device *xe, u8 severity,
> + struct cper_section_descriptor *sdesc,
> + u32 einfo_len)
> +{
> + sdesc->section_offset = sizeof(struct cper_record_header) +
> + sizeof(struct cper_section_descriptor);
> + sdesc->section_length = sizeof(struct xe_cper_intel_hdr) + einfo_len;
> + sdesc->revision = CPER_SEC_REV;
> + sdesc->validation_bits = 0;
> + sdesc->section_type = INTEL_CPER_SECTION_ACCEL_GENERIC;
> + sdesc->section_severity = severity;
Blank line here.
> + if (xe->info.has_device_uid) {
> + memcpy(&sdesc->fru_id, &xe->device_uid, sizeof(xe->device_uid));
> + sdesc->validation_bits |= CPER_SEC_VALID_FRU_ID;
> + }
> +}
> +
> +static void cper_record_emit(struct xe_device *xe, u8 severity,
> + const guid_t *notification_type,
> + const struct xe_cper_intel_hdr *ihdr,
> + const void *einfo, u32 einfo_len)
> +{
> + struct cper_section_descriptor *sdesc;
> + struct cper_record_header *rhdr;
> + struct xe_cper_nonstd_record *rec;
> + u32 total_len;
Reverse xmas order please!
And with that
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
> + total_len = sizeof(struct xe_cper_nonstd_record) + einfo_len;
> + rec = kzalloc(total_len, GFP_KERNEL);
> + if (!rec)
> + return;
> +
> + rhdr = &rec->record_hdr;
> + sdesc = &rec->section_desc;
> +
> + /* Assemble the CPER record header (UEFI Appendix N.2.1) */
> + cper_init_record_hdr(xe, severity, notification_type, rhdr, total_len);
> +
> + /* Assemble the section descriptor (UEFI Appendix N.2.2) */
> + cper_init_section_desc(xe, severity, sdesc, einfo_len);
> +
> + /* Copy the Intel-specific section header */
> + rec->intel_hdr = *ihdr;
> +
> + /* Append optional variable-length error info */
> + if (einfo && einfo_len)
> + memcpy((u8 *)rec + sizeof(*rec), einfo, einfo_len);
> +
> + /* TODO: Emit trace event */
> +
> + kfree(rec);
> +}
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v6 05/10] drm/xe/cper: Log CPER records for aggregate counter retrieval
2026-10-28 9:57 ` [PATCH v6 05/10] drm/xe/cper: Log CPER records for aggregate counter retrieval Badal Nilawar
2026-10-28 10:30 ` sashiko-bot
@ 2026-10-28 17:05 ` Raag Jadav
1 sibling, 0 replies; 24+ messages in thread
From: Raag Jadav @ 2026-10-28 17:05 UTC (permalink / raw)
To: Badal Nilawar
Cc: intel-xe, anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio,
riana.tauro, mallesh.koujalagi, aravind.iddamsetty,
himal.prasad.ghimiray, arvind.yadav, syed.abdul.muqthyar.ahmed,
nitin.r.gote
On Wed, Oct 28, 2026 at 03:27:29PM +0530, Badal Nilawar wrote:
> Log CPER records for aggregate counter retrieval from userspace when
> cper_on_query sysfs is enabled.
...
> +void xe_cper_emit_counter(struct xe_device *xe, int cper_sev, enum xe_sigid sigid,
> + const struct xe_ras_error_class *counter,
> + const struct xe_ras_get_counter_response *response)
[1] This is good.
> {
> struct xe_cper_intel_hdr ihdr = {};
>
> + xe_assert(xe, is_hw_sigid(sigid));
> +
> cper_init_intel_hdr(xe, counter, response->timestamp,
> sigid, response->value, &ihdr);
> cper_record_emit(xe, cper_sev, &INTEL_CPER_NOTIFY_GPU_ERROR, &ihdr, NULL, 0);
> @@ -217,7 +231,7 @@ static void cper_emit_hw_err(struct xe_device *xe, int cper_sev, enum xe_sigid s
> return;
> }
>
> - cper_emit_counter(xe, cper_sev, sigid, counter, &response);
> + xe_cper_emit_counter(xe, cper_sev, sigid, counter, &response);
> }
...
> +void xe_cper_emit_counter(struct xe_device *xe, int cper_sev, enum xe_sigid sigid,
> + const struct xe_ras_error_class *error_class,
> + const struct xe_ras_get_counter_response *resp);
Please make the parameter naming consistent with above[1].
> +int xe_cper_sysfs_init(struct xe_device *xe);
> #else
> static inline void xe_cper_emit(struct xe_device *xe, int cper_sev, enum xe_sigid sigid,
> u32 component, u32 location, const void *data, size_t len,
> struct va_format *vaf) {}
> +static inline void xe_cper_emit_counter(struct xe_device *xe, int cper_sev,
> + enum xe_sigid sigid,
> + const struct xe_ras_error_class *error_class,
> + const struct xe_ras_get_counter_response *resp) {}
Ditto.
And with that
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
> +static inline int xe_cper_sysfs_init(struct xe_device *xe) { return 0; }
> #endif
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v6 06/10] drm/xe/cper: Emit cper record to trace buf
2026-10-28 9:57 ` [PATCH v6 06/10] drm/xe/cper: Emit cper record to trace buf Badal Nilawar
@ 2026-10-28 17:06 ` Raag Jadav
0 siblings, 0 replies; 24+ messages in thread
From: Raag Jadav @ 2026-10-28 17:06 UTC (permalink / raw)
To: Badal Nilawar
Cc: intel-xe, anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio,
riana.tauro, mallesh.koujalagi, aravind.iddamsetty,
himal.prasad.ghimiray, arvind.yadav, syed.abdul.muqthyar.ahmed,
nitin.r.gote
On Wed, Oct 28, 2026 at 03:27:30PM +0530, Badal Nilawar wrote:
> Add the xe_error_cper tracepoint and emit each assembled CPER record
> through it. Besides the raw record, the event carries the device name,
> platform ID, FRU ID, severity and the Intel error section header, so
> tools can pick up the records from the trace buffer.
>
> Assisted-by: LLM
> Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v6 07/10] drm/xe/xe_ras: Report device memory errors using SIGID
2026-10-28 9:57 ` [PATCH v6 07/10] drm/xe/xe_ras: Report device memory errors using SIGID Badal Nilawar
@ 2026-10-28 17:07 ` Raag Jadav
0 siblings, 0 replies; 24+ messages in thread
From: Raag Jadav @ 2026-10-28 17:07 UTC (permalink / raw)
To: Badal Nilawar
Cc: intel-xe, anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio,
riana.tauro, mallesh.koujalagi, aravind.iddamsetty,
himal.prasad.ghimiray, arvind.yadav, syed.abdul.muqthyar.ahmed,
nitin.r.gote
On Wed, Oct 28, 2026 at 03:27:31PM +0530, Badal Nilawar wrote:
> Use xe_log_comp_info helper to report device memory errors using the
> corresponding SIGID.
>
> Example:
> xe 0000:03:00.0: [drm] SIGID=202 (020100020008002000300000)
> DEVICE_MEMORY: Double-bit ECC error at sw address 0x63000
>
> Reviewed-by: Mallesh Koujalagi <mallesh.koujalagi@intel.com>
> Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
> Cc: Riana Tauro <riana.tauro@intel.com>
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v6 09/10] drm/xe/xe_ras: Report soc internal errors using SIGID
2026-10-28 9:57 ` [PATCH v6 09/10] drm/xe/xe_ras: Report soc internal " Badal Nilawar
@ 2026-10-28 17:17 ` Raag Jadav
0 siblings, 0 replies; 24+ messages in thread
From: Raag Jadav @ 2026-10-28 17:17 UTC (permalink / raw)
To: Badal Nilawar
Cc: intel-xe, anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio,
riana.tauro, mallesh.koujalagi, aravind.iddamsetty,
himal.prasad.ghimiray, arvind.yadav, syed.abdul.muqthyar.ahmed,
nitin.r.gote
On Wed, Oct 28, 2026 at 03:27:33PM +0530, Badal Nilawar wrote:
> Use xe_log_* helpers to report soc internal errors.
>
> Example:
> xe 0000:03:00.0: [drm] *ERROR* SIGID=205 FATAL
> (020600700000000000000000) [Hardware Error]: SOC_INTERNAL:
> PUNIT error detected: 0x00000002
>
> Reviewed-by: Mallesh Koujalagi <mallesh.koujalagi@intel.com>
> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
> Cc: Riana Tauro <riana.tauro@intel.com>
> ---
> v6:
> - Print entire xe_ras_soc_error_source for unknown errors (Raag)
> v5:
> - Log unknown soc internal errors
> ---
> drivers/gpu/drm/xe/xe_ras.c | 17 ++++++++++-------
> 1 file changed, 10 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
> index d7789beb2f6f..5eeccc920d7c 100644
> --- a/drivers/gpu/drm/xe/xe_ras.c
> +++ b/drivers/gpu/drm/xe/xe_ras.c
> @@ -609,7 +609,7 @@ static u8 handle_soc_internal_errors(struct xe_device *xe, struct xe_ras_error_a
> {
> struct xe_ras_soc_error *info = (void *)arr->details;
> struct xe_ras_soc_error_source *source = &info->source;
> - struct xe_ras_error_class *counter = &arr->counter;
> + u32 raw_source;
BUILD_BUG_ON(sizeof(raw_source) != sizeof(*source));
> if (source->csc) {
> struct xe_ras_csc_error *csc_error = (void *)info->details;
> @@ -623,9 +623,8 @@ static u8 handle_soc_internal_errors(struct xe_device *xe, struct xe_ras_error_a
> * is required.
> */
> if (csc_error->hec_fw_error) {
> - xe_err(xe, "[RAS]: CSC %s detected: 0x%x\n",
> - sev_to_str(counter->common.severity),
> - csc_error->hec_fw_error);
> + xe_log_comp_fatal(xe, SOC_INTERNAL, &arr->counter, sizeof(arr->counter),
> + "CSC error detected: 0x%08x\n", csc_error->hec_fw_error);
> xe_survivability_mode_runtime_enable(xe);
> return XE_RAS_RECOVERY_ACTION_DISCONNECT;
> }
> @@ -633,15 +632,19 @@ static u8 handle_soc_internal_errors(struct xe_device *xe, struct xe_ras_error_a
> struct xe_ras_ieh_error *ieh_error = (void *)info->details;
>
> if (ieh_error->global_error_status & XE_RAS_SOC_IEH_PUNIT) {
> - xe_err(xe, "[RAS]: PUNIT %s detected: 0x%x\n",
> - sev_to_str(counter->common.severity),
> - ieh_error->global_error_status);
> + xe_log_comp_fatal(xe, SOC_INTERNAL, &arr->counter, sizeof(arr->counter),
> + "PUNIT error detected: 0x%08x\n",
> + ieh_error->global_error_status);
> punit_error_handler(xe);
> return XE_RAS_RECOVERY_ACTION_DISCONNECT;
> }
> }
>
> /* For other SoC internal errors, request a reset as recovery mechanism */
> + memcpy(&raw_source, source, sizeof(raw_source));
> + xe_log_comp(xe, ras_sev_to_cper_sev(arr->counter.common.severity), SOC_INTERNAL,
> + &arr->counter, sizeof(arr->counter),
> + "Unknown error detected (source=0x%08x)\n", raw_source);
The logs are already too busy with all the parentheses. Rather,
make this consistent with CSC and PUNIT error format, i.e.
"Unknown error detected: 0x%08x\n"
Raag
> return XE_RAS_RECOVERY_ACTION_RESET;
> }
>
> --
> 2.56.0
>
^ permalink raw reply [flat|nested] 24+ messages in thread
* ✓ Xe.CI.FULL: success for Add CPER logging support for CRI (rev6)
2026-10-28 9:57 [PATCH v6 00/10] Add CPER logging support for CRI Badal Nilawar
` (12 preceding siblings ...)
2026-10-28 10:43 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-10-28 18:37 ` Patchwork
13 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2026-10-28 18:37 UTC (permalink / raw)
To: Badal Nilawar; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 23752 bytes --]
== Series Details ==
Series: Add CPER logging support for CRI (rev6)
URL : https://patchwork.freedesktop.org/series/169692/
State : success
== Summary ==
CI Bug Log - changes from xe-6018-6a182ac542350dbca9147134654c35e463aa1382_FULL -> xe-pw-169692v6_FULL
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (3 -> 3)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-169692v6_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_big_fb@4-tiled-16bpp-rotate-90:
- shard-bmg: NOTRUN -> [SKIP][1] ([Intel XE#2327]) +1 other test skip
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-1/igt@kms_big_fb@4-tiled-16bpp-rotate-90.html
* igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-0-hflip:
- shard-bmg: NOTRUN -> [SKIP][2] ([Intel XE#7059] / [Intel XE#7085])
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-2/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-0-hflip.html
* igt@kms_big_fb@yf-tiled-32bpp-rotate-0:
- shard-bmg: NOTRUN -> [SKIP][3] ([Intel XE#1124]) +2 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-9/igt@kms_big_fb@yf-tiled-32bpp-rotate-0.html
* igt@kms_ccs@bad-pixel-format-4-tiled-mtl-mc-ccs:
- shard-bmg: NOTRUN -> [SKIP][4] ([Intel XE#2887]) +5 other tests skip
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-9/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-mc-ccs.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs@pipe-c-dp-1:
- shard-bmg: NOTRUN -> [SKIP][5] ([Intel XE#2652]) +7 other tests skip
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-7/igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs@pipe-c-dp-1.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc:
- shard-bmg: NOTRUN -> [SKIP][6] ([Intel XE#3432])
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-2/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_chamelium_audio@hdmi-audio-after-suspend:
- shard-bmg: NOTRUN -> [SKIP][7] ([Intel XE#2252])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-8/igt@kms_chamelium_audio@hdmi-audio-after-suspend.html
* igt@kms_chamelium_color_pipeline@plane-fixed-matrix-yuv-rgb-bt2020-lim-lut1d:
- shard-bmg: NOTRUN -> [SKIP][8] ([Intel XE#7358])
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-3/igt@kms_chamelium_color_pipeline@plane-fixed-matrix-yuv-rgb-bt2020-lim-lut1d.html
* igt@kms_content_protection@legacy-hdcp14@pipe-a-dp-1:
- shard-bmg: NOTRUN -> [FAIL][9] ([Intel XE#3304] / [Intel XE#7374])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-7/igt@kms_content_protection@legacy-hdcp14@pipe-a-dp-1.html
* igt@kms_content_protection@legacy@pipe-a-dp-1:
- shard-bmg: NOTRUN -> [FAIL][10] ([Intel XE#3304]) +1 other test fail
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-7/igt@kms_content_protection@legacy@pipe-a-dp-1.html
* igt@kms_content_protection@lic-type-0@pipe-a-dp-2:
- shard-bmg: NOTRUN -> [FAIL][11] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374])
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-3/igt@kms_content_protection@lic-type-0@pipe-a-dp-2.html
* igt@kms_cursor_crc@cursor-offscreen-32x10:
- shard-bmg: NOTRUN -> [SKIP][12] ([Intel XE#2320]) +1 other test skip
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-4/igt@kms_cursor_crc@cursor-offscreen-32x10.html
* igt@kms_dsc@dsc-fractional-bpp-with-bpc-bigjoiner:
- shard-bmg: NOTRUN -> [SKIP][13] ([Intel XE#8265]) +1 other test skip
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-5/igt@kms_dsc@dsc-fractional-bpp-with-bpc-bigjoiner.html
* igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area:
- shard-bmg: NOTRUN -> [SKIP][14] ([Intel XE#4422] / [Intel XE#7442])
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-3/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area.html
* igt@kms_flip@flip-vs-expired-vblank@a-edp1:
- shard-lnl: [PASS][15] -> [FAIL][16] ([Intel XE#301]) +1 other test fail
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6018-6a182ac542350dbca9147134654c35e463aa1382/shard-lnl-6/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling:
- shard-bmg: NOTRUN -> [SKIP][17] ([Intel XE#7178] / [Intel XE#7349])
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-2/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling:
- shard-bmg: NOTRUN -> [SKIP][18] ([Intel XE#7178] / [Intel XE#7351])
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-7/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling.html
* igt@kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-fullscreen:
- shard-bmg: NOTRUN -> [SKIP][19] ([Intel XE#2311]) +22 other tests skip
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-9/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-fullscreen.html
* igt@kms_frontbuffer_tracking@drrs-abgr161616f-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][20] ([Intel XE#7061] / [Intel XE#7356]) +1 other test skip
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-4/igt@kms_frontbuffer_tracking@drrs-abgr161616f-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-msflip-blt:
- shard-bmg: NOTRUN -> [SKIP][21] ([Intel XE#4141]) +5 other tests skip
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-9/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-onoff:
- shard-bmg: NOTRUN -> [SKIP][22] ([Intel XE#2313]) +22 other tests skip
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-4/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-onoff.html
* igt@kms_frontbuffer_tracking@psrhdr-argb161616f-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][23] ([Intel XE#7061]) +2 other tests skip
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-7/igt@kms_frontbuffer_tracking@psrhdr-argb161616f-draw-mmap-wc.html
* igt@kms_hdmi_audio_bw@audio-bw-hblank80:
- shard-bmg: [PASS][24] -> [FAIL][25] ([Intel XE#9313])
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6018-6a182ac542350dbca9147134654c35e463aa1382/shard-bmg-2/igt@kms_hdmi_audio_bw@audio-bw-hblank80.html
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-6/igt@kms_hdmi_audio_bw@audio-bw-hblank80.html
* igt@kms_hdmi_inject@inject-audio:
- shard-bmg: [PASS][26] -> [SKIP][27] ([Intel XE#7308])
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6018-6a182ac542350dbca9147134654c35e463aa1382/shard-bmg-8/igt@kms_hdmi_inject@inject-audio.html
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-7/igt@kms_hdmi_inject@inject-audio.html
* igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-cc-modifier:
- shard-bmg: NOTRUN -> [SKIP][28] ([Intel XE#7283])
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-5/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-cc-modifier.html
* igt@kms_pm_backlight@fade:
- shard-bmg: NOTRUN -> [SKIP][29] ([Intel XE#7376] / [Intel XE#7760] / [Intel XE#870])
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-1/igt@kms_pm_backlight@fade.html
* igt@kms_pm_rpm@i2c:
- shard-bmg: [PASS][30] -> [FAIL][31] ([Intel XE#9472])
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6018-6a182ac542350dbca9147134654c35e463aa1382/shard-bmg-3/igt@kms_pm_rpm@i2c.html
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-6/igt@kms_pm_rpm@i2c.html
* igt@kms_psr2_sf@psr2-overlay-plane-update-continuous-sf:
- shard-bmg: NOTRUN -> [SKIP][32] ([Intel XE#1489]) +4 other tests skip
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-2/igt@kms_psr2_sf@psr2-overlay-plane-update-continuous-sf.html
* igt@kms_psr@fbc-psr-sprite-blt:
- shard-bmg: NOTRUN -> [SKIP][33] ([Intel XE#2234] / [Intel XE#2850]) +2 other tests skip
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-7/igt@kms_psr@fbc-psr-sprite-blt.html
* igt@kms_psr@psr2-primary-render:
- shard-bmg: NOTRUN -> [SKIP][34] ([Intel XE#2234])
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-9/igt@kms_psr@psr2-primary-render.html
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-0:
- shard-bmg: NOTRUN -> [SKIP][35] ([Intel XE#2330] / [Intel XE#5813])
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-9/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html
* igt@kms_sharpness_filter@invalid-filter-with-scaling-mode:
- shard-bmg: NOTRUN -> [SKIP][36] ([Intel XE#6503]) +1 other test skip
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-5/igt@kms_sharpness_filter@invalid-filter-with-scaling-mode.html
* igt@xe_evict@evict-beng-mixed-many-threads-small:
- shard-bmg: [PASS][37] -> [INCOMPLETE][38] ([Intel XE#6321] / [Intel XE#8355])
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6018-6a182ac542350dbca9147134654c35e463aa1382/shard-bmg-9/igt@xe_evict@evict-beng-mixed-many-threads-small.html
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-1/igt@xe_evict@evict-beng-mixed-many-threads-small.html
* igt@xe_evict@evict-threads-small-multi-queue:
- shard-bmg: NOTRUN -> [SKIP][39] ([Intel XE#8370]) +1 other test skip
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-1/igt@xe_evict@evict-threads-small-multi-queue.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-invalidate-race:
- shard-bmg: NOTRUN -> [SKIP][40] ([Intel XE#2322] / [Intel XE#7372]) +3 other tests skip
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-5/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-invalidate-race.html
* igt@xe_exec_fault_mode@many-execqueues-multi-queue-imm:
- shard-bmg: NOTRUN -> [SKIP][41] ([Intel XE#8374]) +7 other tests skip
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-4/igt@xe_exec_fault_mode@many-execqueues-multi-queue-imm.html
* igt@xe_exec_multi_queue@many-execs-preempt-mode-dyn-priority-smem:
- shard-bmg: NOTRUN -> [SKIP][42] ([Intel XE#8364]) +6 other tests skip
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-1/igt@xe_exec_multi_queue@many-execs-preempt-mode-dyn-priority-smem.html
* igt@xe_exec_reset@cm-multi-queue-close-execqueues:
- shard-bmg: NOTRUN -> [SKIP][43] ([Intel XE#8369])
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-2/igt@xe_exec_reset@cm-multi-queue-close-execqueues.html
* igt@xe_exec_threads@threads-multi-queue-cm-fd-userptr:
- shard-bmg: NOTRUN -> [SKIP][44] ([Intel XE#8378]) +4 other tests skip
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-3/igt@xe_exec_threads@threads-multi-queue-cm-fd-userptr.html
* igt@xe_multigpu_svm@mgpu-atomic-op-basic:
- shard-bmg: NOTRUN -> [SKIP][45] ([Intel XE#6964]) +2 other tests skip
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-10/igt@xe_multigpu_svm@mgpu-atomic-op-basic.html
* igt@xe_peer2peer@write:
- shard-bmg: NOTRUN -> [SKIP][46] ([Intel XE#2427] / [Intel XE#6953] / [Intel XE#7326] / [Intel XE#7353])
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-2/igt@xe_peer2peer@write.html
* igt@xe_pm@d3cold-basic:
- shard-bmg: NOTRUN -> [SKIP][47] ([Intel XE#2284] / [Intel XE#7370])
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-8/igt@xe_pm@d3cold-basic.html
* igt@xe_pm@s4-vm-bind-unbind-all:
- shard-lnl: [PASS][48] -> [ABORT][49] ([Intel XE#9362])
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6018-6a182ac542350dbca9147134654c35e463aa1382/shard-lnl-8/igt@xe_pm@s4-vm-bind-unbind-all.html
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-lnl-2/igt@xe_pm@s4-vm-bind-unbind-all.html
* igt@xe_pxp@pxp-termination-key-update-post-rpm:
- shard-bmg: NOTRUN -> [SKIP][50] ([Intel XE#4733] / [Intel XE#7417])
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-2/igt@xe_pxp@pxp-termination-key-update-post-rpm.html
* igt@xe_query@multigpu-query-gt-list:
- shard-bmg: NOTRUN -> [SKIP][51] ([Intel XE#944]) +1 other test skip
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-6/igt@xe_query@multigpu-query-gt-list.html
* igt@xe_sriov_flr@flr-vfs-parallel:
- shard-bmg: [PASS][52] -> [FAIL][53] ([Intel XE#6569])
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6018-6a182ac542350dbca9147134654c35e463aa1382/shard-bmg-9/igt@xe_sriov_flr@flr-vfs-parallel.html
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-8/igt@xe_sriov_flr@flr-vfs-parallel.html
#### Possible fixes ####
* igt@kms_bw@linear-tiling-1-displays-target-3840x2160p:
- shard-bmg: [SKIP][54] ([Intel XE#367]) -> [PASS][55]
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6018-6a182ac542350dbca9147134654c35e463aa1382/shard-bmg-2/igt@kms_bw@linear-tiling-1-displays-target-3840x2160p.html
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-7/igt@kms_bw@linear-tiling-1-displays-target-3840x2160p.html
* igt@kms_hdmi_audio_bw@audio-bw-hblank160:
- shard-bmg: [FAIL][56] ([Intel XE#9313]) -> [PASS][57]
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6018-6a182ac542350dbca9147134654c35e463aa1382/shard-bmg-2/igt@kms_hdmi_audio_bw@audio-bw-hblank160.html
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-7/igt@kms_hdmi_audio_bw@audio-bw-hblank160.html
* igt@kms_hdr@invalid-hdr:
- shard-bmg: [SKIP][58] ([Intel XE#1503]) -> [PASS][59]
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6018-6a182ac542350dbca9147134654c35e463aa1382/shard-bmg-4/igt@kms_hdr@invalid-hdr.html
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-6/igt@kms_hdr@invalid-hdr.html
* igt@xe_evict@evict-mixed-many-threads-small:
- shard-bmg: [INCOMPLETE][60] ([Intel XE#6321] / [Intel XE#8355]) -> [PASS][61]
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6018-6a182ac542350dbca9147134654c35e463aa1382/shard-bmg-4/igt@xe_evict@evict-mixed-many-threads-small.html
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-6/igt@xe_evict@evict-mixed-many-threads-small.html
* igt@xe_pm_residency@gt-c6-freeze@gt0:
- shard-bmg: [FAIL][62] ([Intel XE#9254]) -> [PASS][63] +1 other test pass
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6018-6a182ac542350dbca9147134654c35e463aa1382/shard-bmg-6/igt@xe_pm_residency@gt-c6-freeze@gt0.html
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-4/igt@xe_pm_residency@gt-c6-freeze@gt0.html
* igt@xe_sriov_flr@flr-each-isolation:
- shard-bmg: [FAIL][64] ([Intel XE#6569]) -> [PASS][65]
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6018-6a182ac542350dbca9147134654c35e463aa1382/shard-bmg-7/igt@xe_sriov_flr@flr-each-isolation.html
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-4/igt@xe_sriov_flr@flr-each-isolation.html
#### Warnings ####
* igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions:
- shard-lnl: [SKIP][66] ([Intel XE#309] / [Intel XE#7343] / [Intel XE#7935]) -> [SKIP][67] ([Intel XE#309] / [Intel XE#7343])
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6018-6a182ac542350dbca9147134654c35e463aa1382/shard-lnl-8/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-lnl-2/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html
* igt@kms_hdr@brightness-with-hdr:
- shard-bmg: [SKIP][68] ([Intel XE#3544]) -> [SKIP][69] ([Intel XE#3374] / [Intel XE#3544])
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6018-6a182ac542350dbca9147134654c35e463aa1382/shard-bmg-5/igt@kms_hdr@brightness-with-hdr.html
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-8/igt@kms_hdr@brightness-with-hdr.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-bmg: [FAIL][70] ([Intel XE#1729] / [Intel XE#7424]) -> [SKIP][71] ([Intel XE#2426] / [Intel XE#5848])
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6018-6a182ac542350dbca9147134654c35e463aa1382/shard-bmg-1/igt@kms_tiled_display@basic-test-pattern.html
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/shard-bmg-6/igt@kms_tiled_display@basic-test-pattern.html
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
[Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
[Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
[Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
[Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2427]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2427
[Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
[Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
[Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
[Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4422
[Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
[Intel XE#5813]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5813
[Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
[Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321
[Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
[Intel XE#6569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6569
[Intel XE#6953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6953
[Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
[Intel XE#7059]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7059
[Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
[Intel XE#7085]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7085
[Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
[Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
[Intel XE#7308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7308
[Intel XE#7326]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7326
[Intel XE#7343]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7343
[Intel XE#7349]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7349
[Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351
[Intel XE#7353]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7353
[Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356
[Intel XE#7358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7358
[Intel XE#7370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7370
[Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
[Intel XE#7374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7374
[Intel XE#7376]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7376
[Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417
[Intel XE#7424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7424
[Intel XE#7442]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7442
[Intel XE#7760]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7760
[Intel XE#7935]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7935
[Intel XE#8265]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8265
[Intel XE#8355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8355
[Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364
[Intel XE#8369]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8369
[Intel XE#8370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8370
[Intel XE#8374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8374
[Intel XE#8378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8378
[Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
[Intel XE#9254]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9254
[Intel XE#9313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9313
[Intel XE#9362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9362
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
[Intel XE#9472]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9472
Build changes
-------------
* IGT: IGT_9168 -> IGT_9169
* Linux: xe-6018-6a182ac542350dbca9147134654c35e463aa1382 -> xe-pw-169692v6
IGT_9168: 9168
IGT_9169: 9169
xe-6018-6a182ac542350dbca9147134654c35e463aa1382: 6a182ac542350dbca9147134654c35e463aa1382
xe-pw-169692v6: 169692v6
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169692v6/index.html
[-- Attachment #2: Type: text/html, Size: 26328 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2026-10-28 18:38 UTC | newest]
Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-28 9:57 [PATCH v6 00/10] Add CPER logging support for CRI Badal Nilawar
2026-10-28 9:57 ` [PATCH v6 01/10] drm/xe/cper: Add CPER reporting entry point for xe_log Badal Nilawar
2026-10-28 16:22 ` Raag Jadav
2026-10-28 9:57 ` [PATCH v6 02/10] drm/xe/cper: Retrieve the error counter record for CPER reporting Badal Nilawar
2026-10-28 16:25 ` Raag Jadav
2026-10-28 9:57 ` [PATCH v6 03/10] drm/xe/cper: Initialize Intel-specific CPER header Badal Nilawar
2026-10-28 16:34 ` Raag Jadav
2026-10-28 9:57 ` [PATCH v6 04/10] drm/xe/cper: Construct CPER record for hardware errors Badal Nilawar
2026-10-28 16:52 ` Raag Jadav
2026-10-28 9:57 ` [PATCH v6 05/10] drm/xe/cper: Log CPER records for aggregate counter retrieval Badal Nilawar
2026-10-28 10:30 ` sashiko-bot
2026-10-28 17:05 ` Raag Jadav
2026-10-28 9:57 ` [PATCH v6 06/10] drm/xe/cper: Emit cper record to trace buf Badal Nilawar
2026-10-28 17:06 ` Raag Jadav
2026-10-28 9:57 ` [PATCH v6 07/10] drm/xe/xe_ras: Report device memory errors using SIGID Badal Nilawar
2026-10-28 17:07 ` Raag Jadav
2026-10-28 9:57 ` [PATCH v6 08/10] drm/xe/xe_ras: Report core compute " Badal Nilawar
2026-10-28 9:57 ` [PATCH v6 09/10] drm/xe/xe_ras: Report soc internal " Badal Nilawar
2026-10-28 17:17 ` Raag Jadav
2026-10-28 9:57 ` [PATCH v6 10/10] drm/xe/xe_ras: Report correctable " Badal Nilawar
2026-10-28 10:05 ` ✗ CI.checkpatch: warning for Add CPER logging support for CRI (rev6) Patchwork
2026-10-28 10:07 ` ✓ CI.KUnit: success " Patchwork
2026-10-28 10:43 ` ✓ Xe.CI.BAT: " Patchwork
2026-10-28 18:37 ` ✓ Xe.CI.FULL: " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox