* [PATCH v5] drm/xe: Poll GT for C6 before D3
@ 2026-09-15 21:01 Vinay Belgaumkar
2026-09-15 21:14 ` ✓ CI.KUnit: success for drm/xe: Poll GT for C6 before D3 (rev2) Patchwork
` (4 more replies)
0 siblings, 5 replies; 11+ messages in thread
From: Vinay Belgaumkar @ 2026-09-15 21:01 UTC (permalink / raw)
To: intel-xe; +Cc: Vinay Belgaumkar, Badal Nilawar, Rodrigo Vivi
Ensure GT C6 state before D3 transition in runtime suspend flow.
This avoids the scenario where GT is being accessed after D3 state
is programmed. If the check for C6 fails, resume the device so it is
not stuck in an intermediate state.
v2: Force resume when we cancel suspend due to C6 check (Sashiko)
v3: Abort the suspend properly when idle check fails (Sashiko)
v4: Only check for C6 during suspend (Rodrigo). Have check in
xe_pci_runtime_suspend() instead of xe_pci_suspend().
v5: Don't checkfor PVC (Sashiko), rename function from_device_c6
to _device_idle
Cc: Badal Nilawar <badal.nilawar@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
---
drivers/gpu/drm/xe/xe_gt_idle.c | 36 +++++++++++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_gt_idle.h | 1 +
drivers/gpu/drm/xe/xe_pci.c | 13 +++++++++++-
drivers/gpu/drm/xe/xe_pm.c | 24 ++++++++++++++++++++++
drivers/gpu/drm/xe/xe_pm.h | 1 +
5 files changed, 74 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/xe/xe_gt_idle.c b/drivers/gpu/drm/xe/xe_gt_idle.c
index c208d7563e36..8242feede1dd 100644
--- a/drivers/gpu/drm/xe/xe_gt_idle.c
+++ b/drivers/gpu/drm/xe/xe_gt_idle.c
@@ -8,10 +8,12 @@
#include <drm/drm_managed.h>
#include <generated/xe_wa_oob.h>
+#include <linux/iopoll.h>
#include "xe_force_wake.h"
#include "xe_device.h"
#include "xe_gt.h"
#include "xe_gt_idle.h"
+#include "xe_gt_printk.h"
#include "xe_gt_sysfs.h"
#include "xe_guc_pc.h"
#include "regs/xe_gt_regs.h"
@@ -451,3 +453,37 @@ int xe_gt_idle_disable_c6(struct xe_gt *gt)
return 0;
}
+
+static int wait_for_gt_c6_state(struct xe_gt *gt, u32 timeout_ms)
+{
+ struct xe_guc_pc *pc = >->uc.guc.pc;
+ enum xe_gt_idle_state state;
+
+ return poll_timeout_us(state = gt->gtidle.idle_status(pc),
+ state == GT_IDLE_C6,
+ 20,
+ timeout_ms * USEC_PER_MSEC,
+ false);
+}
+
+/**
+ * xe_gt_idle_wait_for_c6 - Poll for GT C6
+ * @gt: GT object
+ * @timeout_ms: wait time in ms
+ *
+ * This function waits for GT to enter C6.
+ *
+ * Return: 0 on success, -EAGAIN otherwise
+ */
+int xe_gt_idle_wait_for_c6(struct xe_gt *gt, u32 timeout_ms)
+{
+ if (IS_SRIOV_VF(gt_to_xe(gt)))
+ return 0;
+
+ if (wait_for_gt_c6_state(gt, timeout_ms)) {
+ xe_gt_dbg(gt, "GT is not in C6\n");
+ return -EAGAIN;
+ }
+
+ return 0;
+}
diff --git a/drivers/gpu/drm/xe/xe_gt_idle.h b/drivers/gpu/drm/xe/xe_gt_idle.h
index 9c34a155e102..2c8e9adf4a68 100644
--- a/drivers/gpu/drm/xe/xe_gt_idle.h
+++ b/drivers/gpu/drm/xe/xe_gt_idle.h
@@ -18,5 +18,6 @@ void xe_gt_idle_enable_pg(struct xe_gt *gt);
void xe_gt_idle_disable_pg(struct xe_gt *gt);
int xe_gt_idle_pg_print(struct xe_gt *gt, struct drm_printer *p);
u64 xe_gt_idle_residency_msec(struct xe_gt_idle *gtidle);
+int xe_gt_idle_wait_for_c6(struct xe_gt *gt, u32 timeout_ms);
#endif /* _XE_GT_IDLE_H_ */
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index ab4da1d9a9f1..379795ac5e7b 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -1381,7 +1381,7 @@ static int xe_pci_runtime_suspend(struct device *dev)
{
struct pci_dev *pdev = to_pci_dev(dev);
struct xe_device *xe = pdev_to_xe_device(pdev);
- int err;
+ int err, ret;
/*
* We hold an additional reference to the runtime PM to keep PF in D0
@@ -1396,6 +1396,17 @@ static int xe_pci_runtime_suspend(struct device *dev)
if (err)
return err;
+ err = xe_pm_check_device_idle(xe);
+ if (err) {
+ drm_dbg(&xe->drm, "Resuming - Device idle check failed!");
+ ret = xe_pm_runtime_resume(xe);
+ if (ret) {
+ drm_err(&xe->drm, "Resume failed after suspend was canceled");
+ return ret;
+ }
+ return err;
+ }
+
pci_save_state(pdev);
if (xe->d3cold.allowed) {
diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
index f517bf453b54..f03a463d2a05 100644
--- a/drivers/gpu/drm/xe/xe_pm.c
+++ b/drivers/gpu/drm/xe/xe_pm.c
@@ -1030,6 +1030,30 @@ void xe_pm_d3cold_allowed_toggle(struct xe_device *xe)
mutex_unlock(&xe->d3cold.lock);
}
+/**
+ * xe_pm_check_device_idle() - Check if all GTs are idle.
+ * @xe: xe device instance
+ *
+ * One of the ways to do this is to check for GT C6 state. This check
+ * will fail if some component is holding a forcewake, for example.
+ *
+ * Return: 0 on success, -EAGAIN on failure
+ */
+int xe_pm_check_device_idle(struct xe_device *xe)
+{
+ struct xe_gt *gt;
+ u8 id;
+
+ if (xe->info.platform == XE_PVC)
+ return 0;
+
+ for_each_gt(gt, xe, id)
+ if (xe_gt_idle_wait_for_c6(gt, 200))
+ return -EAGAIN;
+
+ return 0;
+}
+
/**
* xe_pm_module_init() - Perform xe_pm specific module initialization.
*
diff --git a/drivers/gpu/drm/xe/xe_pm.h b/drivers/gpu/drm/xe/xe_pm.h
index 6d5ab09cb769..a4fdc9c5cb10 100644
--- a/drivers/gpu/drm/xe/xe_pm.h
+++ b/drivers/gpu/drm/xe/xe_pm.h
@@ -36,6 +36,7 @@ void xe_pm_d3cold_allowed_toggle(struct xe_device *xe);
bool xe_rpm_reclaim_safe(const struct xe_device *xe);
struct task_struct *xe_pm_read_callback_task(struct xe_device *xe);
int xe_pm_block_on_suspend(struct xe_device *xe);
+int xe_pm_check_device_idle(struct xe_device *xe);
void xe_pm_might_block_on_suspend(void);
int xe_pm_module_init(void);
--
2.38.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* ✓ CI.KUnit: success for drm/xe: Poll GT for C6 before D3 (rev2)
2026-09-15 21:01 [PATCH v5] drm/xe: Poll GT for C6 before D3 Vinay Belgaumkar
@ 2026-09-15 21:14 ` Patchwork
2026-09-15 21:20 ` [PATCH v5] drm/xe: Poll GT for C6 before D3 sashiko-bot
` (3 subsequent siblings)
4 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2026-09-15 21:14 UTC (permalink / raw)
To: Vinay Belgaumkar; +Cc: intel-xe
== Series Details ==
Series: drm/xe: Poll GT for C6 before D3 (rev2)
URL : https://patchwork.freedesktop.org/series/174091/
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
[21:12:34] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[21:12:39] 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
[21:12:59] Starting KUnit Kernel (1/1)...
[21:12:59] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[21:12:59] ============= refcount_interrupt (4 subtests) ==============
[21:12:59] [PASSED] test_single_irq_change
[21:12:59] [PASSED] test_nested_irq_change
[21:12:59] [PASSED] test_multiple_irq_change
[21:12:59] [PASSED] test_irq_save
[21:12:59] =============== [PASSED] refcount_interrupt ================
[21:12:59] ================= gpu_buddy (14 subtests) ==================
[21:12:59] [PASSED] gpu_test_buddy_alloc_limit
[21:12:59] [PASSED] gpu_test_buddy_alloc_optimistic
[21:12:59] [PASSED] gpu_test_buddy_alloc_pessimistic
[21:12:59] [PASSED] gpu_test_buddy_alloc_pathological
[21:12:59] [PASSED] gpu_test_buddy_alloc_contiguous
[21:12:59] [PASSED] gpu_test_buddy_alloc_clear
[21:12:59] [PASSED] gpu_test_buddy_alloc_range
[21:12:59] [PASSED] gpu_test_buddy_alloc_range_bias
[21:13:00] [PASSED] gpu_test_buddy_fragmentation_performance
[21:13:01] [PASSED] gpu_test_buddy_dirty_tracker_performance
[21:13:01] [PASSED] gpu_test_buddy_alloc_exceeds_max_order
[21:13:01] [PASSED] gpu_test_buddy_offset_aligned_allocation
[21:13:01] [PASSED] gpu_test_buddy_subtree_offset_alignment_stress
[21:13:01] [PASSED] gpu_test_buddy_addr_to_block
[21:13:01] ==================== [PASSED] gpu_buddy ====================
[21:13:01] ============================================================
[21:13:01] Testing complete. Ran 18 tests: passed: 18
[21:13:01] Elapsed time: 26.467s total, 4.326s configuring, 20.224s building, 1.885s 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
[21:13:01] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[21:13:03] 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
[21:13:36] Starting KUnit Kernel (1/1)...
[21:13:36] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[21:13:37] ============= refcount_interrupt (4 subtests) ==============
[21:13:37] [PASSED] test_single_irq_change
[21:13:37] [PASSED] test_nested_irq_change
[21:13:37] [PASSED] test_multiple_irq_change
[21:13:37] [PASSED] test_irq_save
[21:13:37] =============== [PASSED] refcount_interrupt ================
[21:13:37] ================== guc_buf (11 subtests) ===================
[21:13:37] [PASSED] test_smallest
[21:13:37] [PASSED] test_largest
[21:13:37] [PASSED] test_granular
[21:13:37] [PASSED] test_unique
[21:13:37] [PASSED] test_overlap
[21:13:37] [PASSED] test_reusable
[21:13:37] [PASSED] test_too_big
[21:13:37] [PASSED] test_flush
[21:13:37] [PASSED] test_lookup
[21:13:37] [PASSED] test_data
[21:13:37] [PASSED] test_class
[21:13:37] ===================== [PASSED] guc_buf =====================
[21:13:37] =================== guc_dbm (7 subtests) ===================
[21:13:37] [PASSED] test_empty
[21:13:37] [PASSED] test_default
[21:13:37] ======================== test_size ========================
[21:13:37] [PASSED] 4
[21:13:37] [PASSED] 8
[21:13:37] [PASSED] 32
[21:13:37] [PASSED] 256
[21:13:37] ==================== [PASSED] test_size ====================
[21:13:37] ======================= test_reuse ========================
[21:13:37] [PASSED] 4
[21:13:37] [PASSED] 8
[21:13:37] [PASSED] 32
[21:13:37] [PASSED] 256
[21:13:37] =================== [PASSED] test_reuse ====================
[21:13:37] =================== test_range_overlap ====================
[21:13:37] [PASSED] 4
[21:13:37] [PASSED] 8
[21:13:37] [PASSED] 32
[21:13:37] [PASSED] 256
[21:13:37] =============== [PASSED] test_range_overlap ================
[21:13:37] =================== test_range_compact ====================
[21:13:37] [PASSED] 4
[21:13:37] [PASSED] 8
[21:13:37] [PASSED] 32
[21:13:37] [PASSED] 256
[21:13:37] =============== [PASSED] test_range_compact ================
[21:13:37] ==================== test_range_spare =====================
[21:13:37] [PASSED] 4
[21:13:37] [PASSED] 8
[21:13:37] [PASSED] 32
[21:13:37] [PASSED] 256
[21:13:37] ================ [PASSED] test_range_spare =================
[21:13:37] ===================== [PASSED] guc_dbm =====================
[21:13:37] =================== guc_idm (6 subtests) ===================
[21:13:37] [PASSED] bad_init
[21:13:37] [PASSED] no_init
[21:13:37] [PASSED] init_fini
[21:13:37] [PASSED] check_used
[21:13:37] [PASSED] check_quota
[21:13:37] [PASSED] check_all
[21:13:37] ===================== [PASSED] guc_idm =====================
[21:13:37] =============== guc_klv_helpers (9 subtests) ===============
[21:13:37] [PASSED] test_count
[21:13:37] [PASSED] test_encode_u32
[21:13:37] [PASSED] test_encode_u64
[21:13:37] [PASSED] test_encode_string
[21:13:37] [PASSED] test_encode_object_raw
[21:13:37] [PASSED] test_encode_object_klv
[21:13:37] [PASSED] test_encode_object_nested
[21:13:37] [PASSED] test_encode_object_basic
[21:13:37] [PASSED] test_print
[21:13:37] ================= [PASSED] guc_klv_helpers =================
[21:13:37] =================== xe_log (4 subtests) ====================
[21:13:37] [PASSED] demo_cper
[21:13:37] [PASSED] demo_dmesg
[21:13:37] ======================= test_dmesg ========================
[21:13:37] [PASSED] test_fatal
[21:13:37] [PASSED] test_fatal_tile
[21:13:37] [PASSED] test_fatal_gt
[21:13:37] [PASSED] test_fatal_comp
[21:13:37] [PASSED] test_fatal_comp_tile
[21:13:37] [PASSED] test_fatal_comp_gt
[21:13:37] [PASSED] test_fatal_all
[21:13:37] [PASSED] test_recoverable
[21:13:37] [PASSED] test_recoverable_tile
[21:13:37] [PASSED] test_recoverable_gt
[21:13:37] [PASSED] test_recoverable_comp
[21:13:37] [PASSED] test_recoverable_comp_tile
[21:13:37] [PASSED] test_recoverable_comp_gt
[21:13:37] [PASSED] test_recoverable_all
[21:13:37] [PASSED] test_info
[21:13:37] [PASSED] test_info_tile
[21:13:37] [PASSED] test_info_gt
[21:13:37] [PASSED] test_info_err
[21:13:37] [PASSED] test_info_comp
[21:13:37] [PASSED] test_info_comp_tile
[21:13:37] [PASSED] test_info_comp_gt
[21:13:37] [PASSED] test_info_all
[21:13:37] [PASSED] test_hw_fatal
[21:13:37] [PASSED] test_hw_recoverable
[21:13:37] [PASSED] test_hw_corrected
[21:13:37] [PASSED] test_hw_informational
[21:13:37] =================== [PASSED] test_dmesg ====================
[21:13:37] ====================== test_invalid =======================
[21:13:37] [SKIPPED] no-component no-location no-warn (requires CONFIG_DRM_XE_DEBUG)
[21:13:37] [SKIPPED] reserved location (requires CONFIG_DRM_XE_DEBUG)
[21:13:37] [SKIPPED] unknown location (requires CONFIG_DRM_XE_DEBUG)
[21:13:37] [SKIPPED] nonzero-device-id location (requires CONFIG_DRM_XE_DEBUG)
[21:13:37] [SKIPPED] invalid-tile-id location (requires CONFIG_DRM_XE_DEBUG)
[21:13:37] [SKIPPED] invalid-gt-id location (requires CONFIG_DRM_XE_DEBUG)
[21:13:37] [SKIPPED] unknown component class (requires CONFIG_DRM_XE_DEBUG)
[21:13:37] [SKIPPED] unknown system component (requires CONFIG_DRM_XE_DEBUG)
[21:13:37] [SKIPPED] unknown hardware component (requires CONFIG_DRM_XE_DEBUG)
[21:13:37] [SKIPPED] unknown component and location (requires CONFIG_DRM_XE_DEBUG)
[21:13:37] ================== [SKIPPED] test_invalid ==================
[21:13:37] ===================== [PASSED] xe_log ======================
[21:13:37] ================== no_relay (3 subtests) ===================
[21:13:37] [PASSED] xe_drops_guc2pf_if_not_ready
[21:13:37] [PASSED] xe_drops_guc2vf_if_not_ready
[21:13:37] [PASSED] xe_rejects_send_if_not_ready
[21:13:37] ==================== [PASSED] no_relay =====================
[21:13:37] ================== pf_relay (14 subtests) ==================
[21:13:37] [PASSED] pf_rejects_guc2pf_too_short
[21:13:37] [PASSED] pf_rejects_guc2pf_too_long
[21:13:37] [PASSED] pf_rejects_guc2pf_no_payload
[21:13:37] [PASSED] pf_fails_no_payload
[21:13:37] [PASSED] pf_fails_bad_origin
[21:13:37] [PASSED] pf_fails_bad_type
[21:13:37] [PASSED] pf_txn_reports_error
[21:13:37] [PASSED] pf_txn_sends_pf2guc
[21:13:37] [PASSED] pf_sends_pf2guc
[21:13:37] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[21:13:37] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[21:13:37] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[21:13:37] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[21:13:37] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[21:13:37] ==================== [PASSED] pf_relay =====================
[21:13:37] ================== vf_relay (3 subtests) ===================
[21:13:37] [PASSED] vf_rejects_guc2vf_too_short
[21:13:37] [PASSED] vf_rejects_guc2vf_too_long
[21:13:37] [PASSED] vf_rejects_guc2vf_no_payload
[21:13:37] ==================== [PASSED] vf_relay =====================
[21:13:37] ================ pf_gt_config (9 subtests) =================
[21:13:37] [PASSED] fair_contexts_1vf
[21:13:37] [PASSED] fair_doorbells_1vf
[21:13:37] [PASSED] fair_ggtt_1vf
[21:13:37] ====================== fair_vram_1vf ======================
[21:13:37] [PASSED] 3.50 GiB
[21:13:37] [PASSED] 11.5 GiB
[21:13:37] [PASSED] 15.5 GiB
[21:13:37] [PASSED] 31.5 GiB
[21:13:37] [PASSED] 63.5 GiB
[21:13:37] [PASSED] 1.91 GiB
[21:13:37] ================== [PASSED] fair_vram_1vf ==================
[21:13:37] ================ fair_vram_1vf_admin_only =================
[21:13:37] [PASSED] 3.50 GiB
[21:13:37] [PASSED] 11.5 GiB
[21:13:37] [PASSED] 15.5 GiB
[21:13:37] [PASSED] 31.5 GiB
[21:13:37] [PASSED] 63.5 GiB
[21:13:37] [PASSED] 1.91 GiB
[21:13:37] ============ [PASSED] fair_vram_1vf_admin_only =============
[21:13:37] ====================== fair_contexts ======================
[21:13:37] [PASSED] 1 VF
[21:13:37] [PASSED] 2 VFs
[21:13:37] [PASSED] 3 VFs
[21:13:37] [PASSED] 4 VFs
[21:13:37] [PASSED] 5 VFs
[21:13:37] [PASSED] 6 VFs
[21:13:37] [PASSED] 7 VFs
[21:13:37] [PASSED] 8 VFs
[21:13:37] [PASSED] 9 VFs
[21:13:37] [PASSED] 10 VFs
[21:13:37] [PASSED] 11 VFs
[21:13:37] [PASSED] 12 VFs
[21:13:37] [PASSED] 13 VFs
[21:13:37] [PASSED] 14 VFs
[21:13:37] [PASSED] 15 VFs
[21:13:37] [PASSED] 16 VFs
[21:13:37] [PASSED] 17 VFs
[21:13:37] [PASSED] 18 VFs
[21:13:37] [PASSED] 19 VFs
[21:13:37] [PASSED] 20 VFs
[21:13:37] [PASSED] 21 VFs
[21:13:37] [PASSED] 22 VFs
[21:13:37] [PASSED] 23 VFs
[21:13:37] [PASSED] 24 VFs
[21:13:37] [PASSED] 25 VFs
[21:13:37] [PASSED] 26 VFs
[21:13:37] [PASSED] 27 VFs
[21:13:37] [PASSED] 28 VFs
[21:13:37] [PASSED] 29 VFs
[21:13:37] [PASSED] 30 VFs
[21:13:37] [PASSED] 31 VFs
[21:13:37] [PASSED] 32 VFs
[21:13:37] [PASSED] 33 VFs
[21:13:37] [PASSED] 34 VFs
[21:13:37] [PASSED] 35 VFs
[21:13:37] [PASSED] 36 VFs
[21:13:37] [PASSED] 37 VFs
[21:13:37] [PASSED] 38 VFs
[21:13:37] [PASSED] 39 VFs
[21:13:37] [PASSED] 40 VFs
[21:13:37] [PASSED] 41 VFs
[21:13:37] [PASSED] 42 VFs
[21:13:37] [PASSED] 43 VFs
[21:13:37] [PASSED] 44 VFs
[21:13:37] [PASSED] 45 VFs
[21:13:37] [PASSED] 46 VFs
[21:13:37] [PASSED] 47 VFs
[21:13:37] [PASSED] 48 VFs
[21:13:37] [PASSED] 49 VFs
[21:13:37] [PASSED] 50 VFs
[21:13:37] [PASSED] 51 VFs
[21:13:37] [PASSED] 52 VFs
[21:13:37] [PASSED] 53 VFs
[21:13:37] [PASSED] 54 VFs
[21:13:37] [PASSED] 55 VFs
[21:13:37] [PASSED] 56 VFs
[21:13:37] [PASSED] 57 VFs
[21:13:37] [PASSED] 58 VFs
[21:13:37] [PASSED] 59 VFs
[21:13:37] [PASSED] 60 VFs
[21:13:37] [PASSED] 61 VFs
[21:13:37] [PASSED] 62 VFs
[21:13:37] [PASSED] 63 VFs
[21:13:37] ================== [PASSED] fair_contexts ==================
[21:13:37] ===================== fair_doorbells ======================
[21:13:37] [PASSED] 1 VF
[21:13:37] [PASSED] 2 VFs
[21:13:37] [PASSED] 3 VFs
[21:13:37] [PASSED] 4 VFs
[21:13:37] [PASSED] 5 VFs
[21:13:37] [PASSED] 6 VFs
[21:13:37] [PASSED] 7 VFs
[21:13:37] [PASSED] 8 VFs
[21:13:37] [PASSED] 9 VFs
[21:13:37] [PASSED] 10 VFs
[21:13:37] [PASSED] 11 VFs
[21:13:37] [PASSED] 12 VFs
[21:13:37] [PASSED] 13 VFs
[21:13:37] [PASSED] 14 VFs
[21:13:37] [PASSED] 15 VFs
[21:13:37] [PASSED] 16 VFs
[21:13:37] [PASSED] 17 VFs
[21:13:37] [PASSED] 18 VFs
[21:13:37] [PASSED] 19 VFs
[21:13:37] [PASSED] 20 VFs
[21:13:37] [PASSED] 21 VFs
[21:13:37] [PASSED] 22 VFs
[21:13:37] [PASSED] 23 VFs
[21:13:37] [PASSED] 24 VFs
[21:13:37] [PASSED] 25 VFs
[21:13:37] [PASSED] 26 VFs
[21:13:37] [PASSED] 27 VFs
[21:13:37] [PASSED] 28 VFs
[21:13:37] [PASSED] 29 VFs
[21:13:37] [PASSED] 30 VFs
[21:13:37] [PASSED] 31 VFs
[21:13:37] [PASSED] 32 VFs
[21:13:37] [PASSED] 33 VFs
[21:13:37] [PASSED] 34 VFs
[21:13:37] [PASSED] 35 VFs
[21:13:37] [PASSED] 36 VFs
[21:13:37] [PASSED] 37 VFs
[21:13:37] [PASSED] 38 VFs
[21:13:37] [PASSED] 39 VFs
[21:13:37] [PASSED] 40 VFs
[21:13:37] [PASSED] 41 VFs
[21:13:37] [PASSED] 42 VFs
[21:13:37] [PASSED] 43 VFs
[21:13:37] [PASSED] 44 VFs
[21:13:37] [PASSED] 45 VFs
[21:13:37] [PASSED] 46 VFs
[21:13:37] [PASSED] 47 VFs
[21:13:37] [PASSED] 48 VFs
[21:13:37] [PASSED] 49 VFs
[21:13:37] [PASSED] 50 VFs
[21:13:37] [PASSED] 51 VFs
[21:13:37] [PASSED] 52 VFs
[21:13:37] [PASSED] 53 VFs
[21:13:37] [PASSED] 54 VFs
[21:13:37] [PASSED] 55 VFs
[21:13:37] [PASSED] 56 VFs
[21:13:37] [PASSED] 57 VFs
[21:13:37] [PASSED] 58 VFs
[21:13:37] [PASSED] 59 VFs
[21:13:37] [PASSED] 60 VFs
[21:13:37] [PASSED] 61 VFs
[21:13:37] [PASSED] 62 VFs
[21:13:37] [PASSED] 63 VFs
[21:13:37] ================= [PASSED] fair_doorbells ==================
[21:13:37] ======================== fair_ggtt ========================
[21:13:37] [PASSED] 1 VF
[21:13:37] [PASSED] 2 VFs
[21:13:37] [PASSED] 3 VFs
[21:13:37] [PASSED] 4 VFs
[21:13:37] [PASSED] 5 VFs
[21:13:37] [PASSED] 6 VFs
[21:13:37] [PASSED] 7 VFs
[21:13:37] [PASSED] 8 VFs
[21:13:37] [PASSED] 9 VFs
[21:13:37] [PASSED] 10 VFs
[21:13:37] [PASSED] 11 VFs
[21:13:37] [PASSED] 12 VFs
[21:13:37] [PASSED] 13 VFs
[21:13:37] [PASSED] 14 VFs
[21:13:37] [PASSED] 15 VFs
[21:13:37] [PASSED] 16 VFs
[21:13:37] [PASSED] 17 VFs
[21:13:37] [PASSED] 18 VFs
[21:13:37] [PASSED] 19 VFs
[21:13:37] [PASSED] 20 VFs
[21:13:37] [PASSED] 21 VFs
[21:13:37] [PASSED] 22 VFs
[21:13:37] [PASSED] 23 VFs
[21:13:37] [PASSED] 24 VFs
[21:13:37] [PASSED] 25 VFs
[21:13:37] [PASSED] 26 VFs
[21:13:37] [PASSED] 27 VFs
[21:13:37] [PASSED] 28 VFs
[21:13:37] [PASSED] 29 VFs
[21:13:37] [PASSED] 30 VFs
[21:13:37] [PASSED] 31 VFs
[21:13:37] [PASSED] 32 VFs
[21:13:37] [PASSED] 33 VFs
[21:13:37] [PASSED] 34 VFs
[21:13:37] [PASSED] 35 VFs
[21:13:37] [PASSED] 36 VFs
[21:13:37] [PASSED] 37 VFs
[21:13:37] [PASSED] 38 VFs
[21:13:37] [PASSED] 39 VFs
[21:13:37] [PASSED] 40 VFs
[21:13:37] [PASSED] 41 VFs
[21:13:37] [PASSED] 42 VFs
[21:13:37] [PASSED] 43 VFs
[21:13:37] [PASSED] 44 VFs
[21:13:37] [PASSED] 45 VFs
[21:13:37] [PASSED] 46 VFs
[21:13:37] [PASSED] 47 VFs
[21:13:37] [PASSED] 48 VFs
[21:13:37] [PASSED] 49 VFs
[21:13:37] [PASSED] 50 VFs
[21:13:37] [PASSED] 51 VFs
[21:13:37] [PASSED] 52 VFs
[21:13:37] [PASSED] 53 VFs
[21:13:37] [PASSED] 54 VFs
[21:13:37] [PASSED] 55 VFs
[21:13:37] [PASSED] 56 VFs
[21:13:37] [PASSED] 57 VFs
[21:13:37] [PASSED] 58 VFs
[21:13:37] [PASSED] 59 VFs
[21:13:37] [PASSED] 60 VFs
[21:13:37] [PASSED] 61 VFs
[21:13:37] [PASSED] 62 VFs
[21:13:37] [PASSED] 63 VFs
[21:13:37] ==================== [PASSED] fair_ggtt ====================
[21:13:37] ======================== fair_vram ========================
[21:13:37] [PASSED] 1 VF
[21:13:37] [PASSED] 2 VFs
[21:13:37] [PASSED] 3 VFs
[21:13:37] [PASSED] 4 VFs
[21:13:37] [PASSED] 5 VFs
[21:13:37] [PASSED] 6 VFs
[21:13:37] [PASSED] 7 VFs
[21:13:37] [PASSED] 8 VFs
[21:13:37] [PASSED] 9 VFs
[21:13:37] [PASSED] 10 VFs
[21:13:37] [PASSED] 11 VFs
[21:13:37] [PASSED] 12 VFs
[21:13:37] [PASSED] 13 VFs
[21:13:37] [PASSED] 14 VFs
[21:13:37] [PASSED] 15 VFs
[21:13:37] [PASSED] 16 VFs
[21:13:37] [PASSED] 17 VFs
[21:13:37] [PASSED] 18 VFs
[21:13:37] [PASSED] 19 VFs
[21:13:37] [PASSED] 20 VFs
[21:13:37] [PASSED] 21 VFs
[21:13:37] [PASSED] 22 VFs
[21:13:37] [PASSED] 23 VFs
[21:13:37] [PASSED] 24 VFs
[21:13:37] [PASSED] 25 VFs
[21:13:37] [PASSED] 26 VFs
[21:13:37] [PASSED] 27 VFs
[21:13:37] [PASSED] 28 VFs
[21:13:37] [PASSED] 29 VFs
[21:13:37] [PASSED] 30 VFs
[21:13:37] [PASSED] 31 VFs
[21:13:37] [PASSED] 32 VFs
[21:13:37] [PASSED] 33 VFs
[21:13:37] [PASSED] 34 VFs
[21:13:37] [PASSED] 35 VFs
[21:13:37] [PASSED] 36 VFs
[21:13:37] [PASSED] 37 VFs
[21:13:37] [PASSED] 38 VFs
[21:13:37] [PASSED] 39 VFs
[21:13:37] [PASSED] 40 VFs
[21:13:37] [PASSED] 41 VFs
[21:13:37] [PASSED] 42 VFs
[21:13:37] [PASSED] 43 VFs
[21:13:37] [PASSED] 44 VFs
[21:13:37] [PASSED] 45 VFs
[21:13:37] [PASSED] 46 VFs
[21:13:37] [PASSED] 47 VFs
[21:13:37] [PASSED] 48 VFs
[21:13:37] [PASSED] 49 VFs
[21:13:37] [PASSED] 50 VFs
[21:13:37] [PASSED] 51 VFs
[21:13:37] [PASSED] 52 VFs
[21:13:37] [PASSED] 53 VFs
[21:13:37] [PASSED] 54 VFs
[21:13:37] [PASSED] 55 VFs
[21:13:37] [PASSED] 56 VFs
[21:13:37] [PASSED] 57 VFs
[21:13:37] [PASSED] 58 VFs
[21:13:37] [PASSED] 59 VFs
[21:13:37] [PASSED] 60 VFs
[21:13:37] [PASSED] 61 VFs
[21:13:37] [PASSED] 62 VFs
[21:13:37] [PASSED] 63 VFs
[21:13:37] ==================== [PASSED] fair_vram ====================
[21:13:37] ================== [PASSED] pf_gt_config ===================
[21:13:37] ===================== lmtt (1 subtest) =====================
[21:13:37] ======================== test_ops =========================
[21:13:37] [PASSED] 2-level
[21:13:37] [PASSED] multi-level
[21:13:37] ==================== [PASSED] test_ops =====================
[21:13:37] ====================== [PASSED] lmtt =======================
[21:13:37] ================= sriov_packet (1 subtest) =================
[21:13:37] [PASSED] test_descriptor_init
[21:13:37] ================== [PASSED] sriov_packet ===================
[21:13:37] ================= pf_service (11 subtests) =================
[21:13:37] [PASSED] pf_negotiate_any
[21:13:37] [PASSED] pf_negotiate_base_match
[21:13:37] [PASSED] pf_negotiate_base_newer
[21:13:37] [PASSED] pf_negotiate_base_next
[21:13:37] [SKIPPED] pf_negotiate_base_older (no older minor)
[21:13:37] [PASSED] pf_negotiate_base_prev
[21:13:37] [PASSED] pf_negotiate_latest_match
[21:13:37] [PASSED] pf_negotiate_latest_newer
[21:13:37] [PASSED] pf_negotiate_latest_next
[21:13:37] [SKIPPED] pf_negotiate_latest_older (no older minor)
[21:13:37] [SKIPPED] pf_negotiate_latest_prev (no prev major)
[21:13:37] =================== [PASSED] pf_service ====================
[21:13:37] ================= xe_guc_g2g (2 subtests) ==================
[21:13:37] ============== xe_live_guc_g2g_kunit_default ==============
[21:13:37] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[21:13:37] ============== xe_live_guc_g2g_kunit_allmem ===============
[21:13:37] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[21:13:37] =================== [SKIPPED] xe_guc_g2g ===================
[21:13:37] =================== xe_mocs (2 subtests) ===================
[21:13:37] ================ xe_live_mocs_kernel_kunit ================
[21:13:37] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[21:13:37] ================ xe_live_mocs_reset_kunit =================
[21:13:37] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[21:13:37] ==================== [SKIPPED] xe_mocs =====================
[21:13:37] ================= xe_migrate (2 subtests) ==================
[21:13:37] ================= xe_migrate_sanity_kunit =================
[21:13:37] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[21:13:37] ================== xe_validate_ccs_kunit ==================
[21:13:37] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[21:13:37] =================== [SKIPPED] xe_migrate ===================
[21:13:37] ================== xe_dma_buf (1 subtest) ==================
[21:13:37] ==================== xe_dma_buf_kunit =====================
[21:13:37] ================ [SKIPPED] xe_dma_buf_kunit ================
[21:13:37] =================== [SKIPPED] xe_dma_buf ===================
[21:13:37] ================= xe_bo_shrink (1 subtest) =================
[21:13:37] =================== xe_bo_shrink_kunit ====================
[21:13:37] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[21:13:37] ================== [SKIPPED] xe_bo_shrink ==================
[21:13:37] ==================== xe_bo (2 subtests) ====================
[21:13:37] ================== xe_ccs_migrate_kunit ===================
[21:13:37] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[21:13:37] ==================== xe_bo_evict_kunit ====================
[21:13:37] =============== [SKIPPED] xe_bo_evict_kunit ================
[21:13:37] ===================== [SKIPPED] xe_bo ======================
[21:13:37] =================== xe_any (9 subtests) ====================
[21:13:37] [PASSED] test_to_xe
[21:13:37] [PASSED] test_to_dev
[21:13:37] [PASSED] test_to_pdev
[21:13:37] [PASSED] test_to_drm
[21:13:37] [PASSED] test_if_pdev
[21:13:37] [PASSED] test_if_xe
[21:13:37] [PASSED] test_if_tile
[21:13:37] [PASSED] test_if_gt
[21:13:37] [PASSED] test_to_id
[21:13:37] ===================== [PASSED] xe_any ======================
[21:13:37] ==================== args (13 subtests) ====================
[21:13:37] [PASSED] count_args_test
[21:13:37] [PASSED] call_args_example
[21:13:37] [PASSED] call_args_test
[21:13:37] [PASSED] drop_first_arg_example
[21:13:37] [PASSED] drop_first_arg_test
[21:13:37] [PASSED] first_arg_example
[21:13:37] [PASSED] first_arg_test
[21:13:37] [PASSED] last_arg_example
[21:13:37] [PASSED] last_arg_test
[21:13:37] [PASSED] pick_arg_example
[21:13:37] [PASSED] if_args_example
[21:13:37] [PASSED] if_args_test
[21:13:37] [PASSED] sep_comma_example
[21:13:37] ====================== [PASSED] args =======================
[21:13:37] =================== xe_pci (3 subtests) ====================
[21:13:37] ==================== check_graphics_ip ====================
[21:13:37] [PASSED] 12.00 Xe_LP
[21:13:37] [PASSED] 12.10 Xe_LP+
[21:13:37] [PASSED] 12.55 Xe_HPG
[21:13:37] [PASSED] 12.60 Xe_HPC
[21:13:37] [PASSED] 12.70 Xe_LPG
[21:13:37] [PASSED] 12.71 Xe_LPG
[21:13:37] [PASSED] 12.74 Xe_LPG+
[21:13:37] [PASSED] 20.01 Xe2_HPG
[21:13:37] [PASSED] 20.02 Xe2_HPG
[21:13:37] [PASSED] 20.04 Xe2_LPG
[21:13:37] [PASSED] 30.00 Xe3_LPG
[21:13:37] [PASSED] 30.01 Xe3_LPG
[21:13:37] [PASSED] 30.03 Xe3_LPG
[21:13:37] [PASSED] 30.04 Xe3_LPG
[21:13:37] [PASSED] 30.05 Xe3_LPG
[21:13:37] [PASSED] 35.10 Xe3p_LPG
[21:13:37] [PASSED] 35.11 Xe3p_XPC
[21:13:37] ================ [PASSED] check_graphics_ip ================
[21:13:37] ===================== check_media_ip ======================
[21:13:37] [PASSED] 12.00 Xe_M
[21:13:37] [PASSED] 12.55 Xe_HPM
[21:13:37] [PASSED] 13.00 Xe_LPM+
[21:13:37] [PASSED] 13.01 Xe2_HPM
[21:13:37] [PASSED] 20.00 Xe2_LPM
[21:13:37] [PASSED] 30.00 Xe3_LPM
[21:13:37] [PASSED] 30.02 Xe3_LPM
[21:13:37] [PASSED] 35.00 Xe3p_LPM
[21:13:37] [PASSED] 35.03 Xe3p_HPM
[21:13:37] ================= [PASSED] check_media_ip ==================
[21:13:37] =================== check_platform_desc ===================
[21:13:37] [PASSED] 0x9A60 (TIGERLAKE)
[21:13:37] [PASSED] 0x9A68 (TIGERLAKE)
[21:13:37] [PASSED] 0x9A70 (TIGERLAKE)
[21:13:37] [PASSED] 0x9A40 (TIGERLAKE)
[21:13:37] [PASSED] 0x9A49 (TIGERLAKE)
[21:13:37] [PASSED] 0x9A59 (TIGERLAKE)
[21:13:37] [PASSED] 0x9A78 (TIGERLAKE)
[21:13:37] [PASSED] 0x9AC0 (TIGERLAKE)
[21:13:37] [PASSED] 0x9AC9 (TIGERLAKE)
[21:13:37] [PASSED] 0x9AD9 (TIGERLAKE)
[21:13:37] [PASSED] 0x9AF8 (TIGERLAKE)
[21:13:37] [PASSED] 0x4C80 (ROCKETLAKE)
[21:13:37] [PASSED] 0x4C8A (ROCKETLAKE)
[21:13:37] [PASSED] 0x4C8B (ROCKETLAKE)
[21:13:37] [PASSED] 0x4C8C (ROCKETLAKE)
[21:13:37] [PASSED] 0x4C90 (ROCKETLAKE)
[21:13:37] [PASSED] 0x4C9A (ROCKETLAKE)
[21:13:37] [PASSED] 0x4680 (ALDERLAKE_S)
[21:13:37] [PASSED] 0x4682 (ALDERLAKE_S)
[21:13:37] [PASSED] 0x4688 (ALDERLAKE_S)
[21:13:37] [PASSED] 0x468A (ALDERLAKE_S)
[21:13:37] [PASSED] 0x468B (ALDERLAKE_S)
[21:13:37] [PASSED] 0x4690 (ALDERLAKE_S)
[21:13:37] [PASSED] 0x4692 (ALDERLAKE_S)
[21:13:37] [PASSED] 0x4693 (ALDERLAKE_S)
[21:13:37] [PASSED] 0x46A0 (ALDERLAKE_P)
[21:13:37] [PASSED] 0x46A1 (ALDERLAKE_P)
[21:13:37] [PASSED] 0x46A2 (ALDERLAKE_P)
[21:13:37] [PASSED] 0x46A3 (ALDERLAKE_P)
[21:13:37] [PASSED] 0x46A6 (ALDERLAKE_P)
[21:13:37] [PASSED] 0x46A8 (ALDERLAKE_P)
[21:13:37] [PASSED] 0x46AA (ALDERLAKE_P)
[21:13:37] [PASSED] 0x462A (ALDERLAKE_P)
[21:13:37] [PASSED] 0x4626 (ALDERLAKE_P)
[21:13:37] [PASSED] 0x4628 (ALDERLAKE_P)
[21:13:37] [PASSED] 0x46B0 (ALDERLAKE_P)
[21:13:37] [PASSED] 0x46B1 (ALDERLAKE_P)
[21:13:37] [PASSED] 0x46B2 (ALDERLAKE_P)
[21:13:37] [PASSED] 0x46B3 (ALDERLAKE_P)
[21:13:37] [PASSED] 0x46C0 (ALDERLAKE_P)
[21:13:37] [PASSED] 0x46C1 (ALDERLAKE_P)
[21:13:37] [PASSED] 0x46C2 (ALDERLAKE_P)
[21:13:37] [PASSED] 0x46C3 (ALDERLAKE_P)
[21:13:37] [PASSED] 0x46D0 (ALDERLAKE_N)
[21:13:37] [PASSED] 0x46D1 (ALDERLAKE_N)
[21:13:37] [PASSED] 0x46D2 (ALDERLAKE_N)
[21:13:37] [PASSED] 0x46D3 (ALDERLAKE_N)
[21:13:37] [PASSED] 0x46D4 (ALDERLAKE_N)
[21:13:37] [PASSED] 0xA721 (ALDERLAKE_P)
[21:13:37] [PASSED] 0xA7A1 (ALDERLAKE_P)
[21:13:37] [PASSED] 0xA7A9 (ALDERLAKE_P)
[21:13:37] [PASSED] 0xA7AC (ALDERLAKE_P)
[21:13:37] [PASSED] 0xA7AD (ALDERLAKE_P)
[21:13:37] [PASSED] 0xA720 (ALDERLAKE_P)
[21:13:37] [PASSED] 0xA7A0 (ALDERLAKE_P)
[21:13:37] [PASSED] 0xA7A8 (ALDERLAKE_P)
[21:13:37] [PASSED] 0xA7AA (ALDERLAKE_P)
[21:13:37] [PASSED] 0xA7AB (ALDERLAKE_P)
[21:13:37] [PASSED] 0xA780 (ALDERLAKE_S)
[21:13:37] [PASSED] 0xA781 (ALDERLAKE_S)
[21:13:37] [PASSED] 0xA782 (ALDERLAKE_S)
[21:13:37] [PASSED] 0xA783 (ALDERLAKE_S)
[21:13:37] [PASSED] 0xA788 (ALDERLAKE_S)
[21:13:37] [PASSED] 0xA789 (ALDERLAKE_S)
[21:13:37] [PASSED] 0xA78A (ALDERLAKE_S)
[21:13:37] [PASSED] 0xA78B (ALDERLAKE_S)
[21:13:37] [PASSED] 0x4905 (DG1)
[21:13:37] [PASSED] 0x4906 (DG1)
[21:13:37] [PASSED] 0x4907 (DG1)
[21:13:37] [PASSED] 0x4908 (DG1)
[21:13:37] [PASSED] 0x4909 (DG1)
[21:13:37] [PASSED] 0x56C0 (DG2)
[21:13:37] [PASSED] 0x56C2 (DG2)
[21:13:37] [PASSED] 0x56C1 (DG2)
[21:13:37] [PASSED] 0x7D51 (METEORLAKE)
[21:13:37] [PASSED] 0x7DD1 (METEORLAKE)
[21:13:37] [PASSED] 0x7D41 (METEORLAKE)
[21:13:37] [PASSED] 0x7D67 (METEORLAKE)
[21:13:37] [PASSED] 0xB640 (METEORLAKE)
[21:13:37] [PASSED] 0x56A0 (DG2)
[21:13:37] [PASSED] 0x56A1 (DG2)
[21:13:37] [PASSED] 0x56A2 (DG2)
[21:13:37] [PASSED] 0x56BE (DG2)
[21:13:37] [PASSED] 0x56BF (DG2)
[21:13:37] [PASSED] 0x5690 (DG2)
[21:13:37] [PASSED] 0x5691 (DG2)
[21:13:37] [PASSED] 0x5692 (DG2)
[21:13:37] [PASSED] 0x56A5 (DG2)
[21:13:37] [PASSED] 0x56A6 (DG2)
[21:13:37] [PASSED] 0x56B0 (DG2)
[21:13:37] [PASSED] 0x56B1 (DG2)
[21:13:37] [PASSED] 0x56BA (DG2)
[21:13:37] [PASSED] 0x56BB (DG2)
[21:13:37] [PASSED] 0x56BC (DG2)
[21:13:37] [PASSED] 0x56BD (DG2)
[21:13:37] [PASSED] 0x5693 (DG2)
[21:13:37] [PASSED] 0x5694 (DG2)
[21:13:37] [PASSED] 0x5695 (DG2)
[21:13:37] [PASSED] 0x56A3 (DG2)
[21:13:37] [PASSED] 0x56A4 (DG2)
[21:13:37] [PASSED] 0x56B2 (DG2)
[21:13:37] [PASSED] 0x56B3 (DG2)
[21:13:37] [PASSED] 0x5696 (DG2)
[21:13:37] [PASSED] 0x5697 (DG2)
[21:13:37] [PASSED] 0xB69 (PVC)
[21:13:37] [PASSED] 0xB6E (PVC)
[21:13:37] [PASSED] 0xBD4 (PVC)
[21:13:37] [PASSED] 0xBD5 (PVC)
[21:13:37] [PASSED] 0xBD6 (PVC)
[21:13:37] [PASSED] 0xBD7 (PVC)
[21:13:37] [PASSED] 0xBD8 (PVC)
[21:13:37] [PASSED] 0xBD9 (PVC)
[21:13:37] [PASSED] 0xBDA (PVC)
[21:13:37] [PASSED] 0xBDB (PVC)
[21:13:37] [PASSED] 0xBE0 (PVC)
[21:13:37] [PASSED] 0xBE1 (PVC)
[21:13:37] [PASSED] 0xBE5 (PVC)
[21:13:37] [PASSED] 0x7D40 (METEORLAKE)
[21:13:37] [PASSED] 0x7D45 (METEORLAKE)
[21:13:37] [PASSED] 0x7D55 (METEORLAKE)
[21:13:37] [PASSED] 0x7D60 (METEORLAKE)
[21:13:37] [PASSED] 0x7DD5 (METEORLAKE)
[21:13:37] [PASSED] 0x6420 (LUNARLAKE)
[21:13:37] [PASSED] 0x64A0 (LUNARLAKE)
[21:13:37] [PASSED] 0x64B0 (LUNARLAKE)
[21:13:37] [PASSED] 0xE202 (BATTLEMAGE)
[21:13:37] [PASSED] 0xE209 (BATTLEMAGE)
[21:13:37] [PASSED] 0xE20B (BATTLEMAGE)
[21:13:37] [PASSED] 0xE20C (BATTLEMAGE)
[21:13:37] [PASSED] 0xE20D (BATTLEMAGE)
[21:13:37] [PASSED] 0xE210 (BATTLEMAGE)
[21:13:37] [PASSED] 0xE211 (BATTLEMAGE)
[21:13:37] [PASSED] 0xE212 (BATTLEMAGE)
[21:13:37] [PASSED] 0xE216 (BATTLEMAGE)
[21:13:37] [PASSED] 0xE220 (BATTLEMAGE)
[21:13:37] [PASSED] 0xE221 (BATTLEMAGE)
[21:13:37] [PASSED] 0xE222 (BATTLEMAGE)
[21:13:37] [PASSED] 0xE223 (BATTLEMAGE)
[21:13:37] [PASSED] 0xB080 (PANTHERLAKE)
[21:13:37] [PASSED] 0xB081 (PANTHERLAKE)
[21:13:37] [PASSED] 0xB082 (PANTHERLAKE)
[21:13:37] [PASSED] 0xB083 (PANTHERLAKE)
[21:13:37] [PASSED] 0xB084 (PANTHERLAKE)
[21:13:37] [PASSED] 0xB085 (PANTHERLAKE)
[21:13:37] [PASSED] 0xB086 (PANTHERLAKE)
[21:13:37] [PASSED] 0xB087 (PANTHERLAKE)
[21:13:37] [PASSED] 0xB08F (PANTHERLAKE)
[21:13:37] [PASSED] 0xB090 (PANTHERLAKE)
[21:13:37] [PASSED] 0xB0A0 (PANTHERLAKE)
[21:13:37] [PASSED] 0xB0B0 (PANTHERLAKE)
[21:13:37] [PASSED] 0xFD80 (PANTHERLAKE)
[21:13:37] [PASSED] 0xFD81 (PANTHERLAKE)
[21:13:37] [PASSED] 0xD740 (NOVALAKE_S)
[21:13:37] [PASSED] 0xD741 (NOVALAKE_S)
[21:13:37] [PASSED] 0xD742 (NOVALAKE_S)
[21:13:37] [PASSED] 0xD743 (NOVALAKE_S)
[21:13:37] [PASSED] 0xD745 (NOVALAKE_S)
[21:13:37] [PASSED] 0xD74A (NOVALAKE_S)
[21:13:37] [PASSED] 0xD74B (NOVALAKE_S)
[21:13:37] [PASSED] 0x674C (CRESCENTISLAND)
[21:13:37] [PASSED] 0x674D (CRESCENTISLAND)
[21:13:37] [PASSED] 0x674E (CRESCENTISLAND)
[21:13:37] [PASSED] 0x674F (CRESCENTISLAND)
[21:13:37] [PASSED] 0x6750 (CRESCENTISLAND)
[21:13:37] [PASSED] 0xD750 (NOVALAKE_P)
[21:13:37] [PASSED] 0xD751 (NOVALAKE_P)
[21:13:37] [PASSED] 0xD752 (NOVALAKE_P)
[21:13:37] [PASSED] 0xD753 (NOVALAKE_P)
[21:13:37] [PASSED] 0xD754 (NOVALAKE_P)
[21:13:37] [PASSED] 0xD755 (NOVALAKE_P)
[21:13:37] [PASSED] 0xD756 (NOVALAKE_P)
[21:13:37] [PASSED] 0xD757 (NOVALAKE_P)
[21:13:37] [PASSED] 0xD75F (NOVALAKE_P)
[21:13:37] =============== [PASSED] check_platform_desc ===============
[21:13:37] ===================== [PASSED] xe_pci ======================
[21:13:37] ============= xe_rtp_tables_test (5 subtests) ==============
[21:13:37] ================== xe_rtp_table_gt_test ===================
[21:13:37] [PASSED] gt_was/14011060649
[21:13:37] [PASSED] gt_was/14011059788
[21:13:37] [PASSED] gt_was/14015795083
[21:13:37] [PASSED] gt_was/16021867713
[21:13:37] [PASSED] gt_was/14019449301
[21:13:37] [PASSED] gt_was/16028005424
[21:13:37] [PASSED] gt_was/14026578760
[21:13:37] [PASSED] gt_was/1409420604
[21:13:37] [PASSED] gt_was/1408615072
[21:13:37] [PASSED] gt_was/22010523718
[21:13:37] [PASSED] gt_was/14011006942
[21:13:37] [PASSED] gt_was/14014830051
[21:13:37] [PASSED] gt_was/18018781329
[21:13:37] [PASSED] gt_was/1509235366
[21:13:37] [PASSED] gt_was/18018781329
[21:13:37] [PASSED] gt_was/16016694945
[21:13:37] [PASSED] gt_was/14018575942
[21:13:37] [PASSED] gt_was/22016670082
[21:13:37] [PASSED] gt_was/22016670082
[21:13:37] [PASSED] gt_was/14017421178
[21:13:37] [PASSED] gt_was/16025250150
[21:13:37] [PASSED] gt_was/14021871409
[21:13:37] [PASSED] gt_was/16021865536
[21:13:37] [PASSED] gt_was/14021486841
[21:13:37] [PASSED] gt_was/14025160223
[21:13:37] [PASSED] gt_was/14026144927, 16029437861, 14026127056
[21:13:37] [PASSED] gt_was/14025635424
[21:13:37] [PASSED] gt_was/16028005424
[21:13:37] ============== [PASSED] xe_rtp_table_gt_test ===============
[21:13:37] ================== xe_rtp_table_gt_test ===================
[21:13:37] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable
[21:13:37] [PASSED] gt_tunings/Tuning: 32B Access Enable
[21:13:37] [PASSED] gt_tunings/Tuning: L3 cache
[21:13:37] [PASSED] gt_tunings/Tuning: L3 cache - media
[21:13:37] [PASSED] gt_tunings/Tuning: Compression Overfetch
[21:13:37] [PASSED] gt_tunings/Tuning: Compression Overfetch - media
[21:13:37] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3
[21:13:37] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media
[21:13:37] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only
[21:13:37] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media
[21:13:37] [PASSED] gt_tunings/Tuning: Stateless compression control
[21:13:37] [PASSED] gt_tunings/Tuning: Stateless compression control - media
[21:13:37] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache
[21:13:37] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media
[21:13:37] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB
[21:13:37] ============== [PASSED] xe_rtp_table_gt_test ===============
[21:13:37] ================== xe_rtp_table_oob_test ==================
[21:13:37] [PASSED] oob_was/1607983814
[21:13:37] [PASSED] oob_was/16010904313
[21:13:37] [PASSED] oob_was/18022495364
[21:13:37] [PASSED] oob_was/22012773006
[21:13:37] [PASSED] oob_was/14014475959
[21:13:37] [PASSED] oob_was/22011391025
[21:13:37] [PASSED] oob_was/22012727170
[21:13:37] [PASSED] oob_was/22012727685
[21:13:37] [PASSED] oob_was/22016596838
[21:13:37] [PASSED] oob_was/18020744125
[21:13:37] [PASSED] oob_was/1409600907
[21:13:37] [PASSED] oob_was/22014953428
[21:13:37] [PASSED] oob_was/16017236439
[21:13:37] [PASSED] oob_was/14019821291
[21:13:37] [PASSED] oob_was/14015076503
[21:13:37] [PASSED] oob_was/14018913170
[21:13:37] [PASSED] oob_was/14018094691
[21:13:37] [PASSED] oob_was/18024947630
[21:13:37] [PASSED] oob_was/16022287689
[21:13:37] [PASSED] oob_was/13011645652
[21:13:37] [PASSED] oob_was/14022293748
[21:13:37] [PASSED] oob_was/22019794406
[21:13:37] [PASSED] oob_was/22019338487
[21:13:37] [PASSED] oob_was/16023588340
[21:13:37] [PASSED] oob_was/14019789679
[21:13:37] [PASSED] oob_was/14022866841
[21:13:37] [PASSED] oob_was/16021333562
[21:13:37] [PASSED] oob_was/14016712196
[21:13:37] [PASSED] oob_was/14015568240
[21:13:37] [PASSED] oob_was/18013179988
[21:13:37] [PASSED] oob_was/1508761755
[21:13:37] [PASSED] oob_was/16023105232
[21:13:37] [PASSED] oob_was/16026508708
[21:13:37] [PASSED] oob_was/14020001231
[21:13:37] [PASSED] oob_was/16023683509
[21:13:37] [PASSED] oob_was/14025515070
[21:13:37] [PASSED] oob_was/15015404425_disable
[21:13:37] [PASSED] oob_was/16026007364
[21:13:37] [PASSED] oob_was/14020316580
[21:13:37] [PASSED] oob_was/14025883347
[21:13:37] [PASSED] oob_was/16029380221
[21:13:37] [PASSED] oob_was/22022079272
[21:13:37] [PASSED] oob_was/16029897822
[21:13:37] [PASSED] oob_was/14027054324
[21:13:37] ============== [PASSED] xe_rtp_table_oob_test ==============
[21:13:37] ================ xe_rtp_table_dev_oob_test ================
[21:13:37] [PASSED] device_oob_was/22010954014
[21:13:37] [PASSED] device_oob_was/15015404425
[21:13:37] [PASSED] device_oob_was/22019338487_display
[21:13:37] [PASSED] device_oob_was/14022085890
[21:13:37] [PASSED] device_oob_was/14026539277
[21:13:37] [PASSED] device_oob_was/14026633728
[21:13:37] [PASSED] device_oob_was/14026746987
[21:13:37] [PASSED] device_oob_was/14026779378
[21:13:37] ============ [PASSED] xe_rtp_table_dev_oob_test ============
[21:13:37] ========== xe_rtp_table_missing_upper_bound_test ==========
[21:13:37] [PASSED] register_whitelist/WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865
[21:13:37] [PASSED] register_whitelist/1508744258, 14012131227, 1808121037
[21:13:37] [PASSED] register_whitelist/1806527549
[21:13:37] [PASSED] register_whitelist/allow_read_ctx_timestamp
[21:13:37] [PASSED] register_whitelist/allow_read_queue_timestamp
[21:13:37] [PASSED] register_whitelist/16014440446
[21:13:37] [PASSED] register_whitelist/16017236439
[21:13:37] [PASSED] register_whitelist/16020183090
[21:13:37] [PASSED] register_whitelist/14024997852
[21:13:37] [PASSED] register_whitelist/14024997852
[21:13:37] ====== [PASSED] xe_rtp_table_missing_upper_bound_test ======
[21:13:37] =============== [PASSED] xe_rtp_tables_test ================
[21:13:37] =================== xe_rtp (3 subtests) ====================
[21:13:37] =================== xe_rtp_rules_tests ====================
[21:13:37] [PASSED] no
[21:13:37] [PASSED] yes
[21:13:37] [PASSED] no-and-no
[21:13:37] [PASSED] no-and-yes
[21:13:37] [PASSED] yes-and-no
[21:13:37] [PASSED] yes-and-yes
[21:13:37] [PASSED] no-or-no
[21:13:37] [PASSED] no-or-yes
[21:13:37] [PASSED] yes-or-no
[21:13:37] [PASSED] yes-or-yes
[21:13:37] [PASSED] no-yes-or-yes-no
[21:13:37] [PASSED] no-yes-or-yes-yes
[21:13:37] [PASSED] yes-yes-or-no-yes
[21:13:37] [PASSED] yes-yes-or-yes-yes
[21:13:37] [PASSED] no-no-or-yes-or-no
[21:13:37] [PASSED] or
[21:13:37] [PASSED] or-yes
[21:13:37] [PASSED] or-no
[21:13:37] [PASSED] yes-or
[21:13:37] [PASSED] no-or
[21:13:37] [PASSED] no-or-or-yes
[21:13:37] [PASSED] yes-or-or-no
[21:13:37] [PASSED] no-or-or-no
[21:13:37] [PASSED] missing-context-engine-class
[21:13:37] [PASSED] missing-context-engine-class-or-yes
[21:13:37] [PASSED] missing-context-engine-class-or-or-yes
[21:13:37] =============== [PASSED] xe_rtp_rules_tests ================
[21:13:37] =============== xe_rtp_process_to_sr_tests ================
[21:13:37] [PASSED] coalesce-same-reg
[21:13:37] [PASSED] coalesce-same-reg-literal-and-func
[21:13:37] [PASSED] no-match-no-add
[21:13:37] [PASSED] two-regs-two-entries
[21:13:37] [PASSED] clr-one-set-other
[21:13:37] [PASSED] set-field
[21:13:37] [PASSED] conflict-duplicate
[21:13:37] [PASSED] conflict-not-disjoint
[21:13:37] [PASSED] conflict-not-disjoint-literal-and-func
[21:13:37] [PASSED] conflict-reg-type
[21:13:37] [PASSED] bad-mcr-reg-forced-to-regular
[21:13:37] [PASSED] bad-regular-reg-forced-to-mcr
[21:13:37] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[21:13:37] ================== xe_rtp_process_tests ===================
[21:13:37] [PASSED] active1
[21:13:37] [PASSED] active2
[21:13:37] [PASSED] active-inactive
[21:13:37] [PASSED] inactive-active
[21:13:37] [PASSED] inactive-active-inactive
[21:13:37] [PASSED] inactive-inactive-inactive
[21:13:37] ============== [PASSED] xe_rtp_process_tests ===============
[21:13:37] ===================== [PASSED] xe_rtp ======================
[21:13:37] ==================== xe_wa (1 subtest) =====================
[21:13:37] ======================== xe_wa_gt =========================
[21:13:37] [PASSED] TIGERLAKE B0
[21:13:37] [PASSED] DG1 A0
[21:13:37] [PASSED] DG1 B0
[21:13:37] [PASSED] ALDERLAKE_S A0
[21:13:37] [PASSED] ALDERLAKE_S B0
[21:13:37] [PASSED] ALDERLAKE_S C0
[21:13:37] [PASSED] ALDERLAKE_S D0
[21:13:37] [PASSED] ALDERLAKE_P A0
[21:13:37] [PASSED] ALDERLAKE_P B0
[21:13:37] [PASSED] ALDERLAKE_P C0
[21:13:37] [PASSED] ALDERLAKE_S RPLS D0
[21:13:37] [PASSED] ALDERLAKE_P RPLU E0
[21:13:37] [PASSED] DG2 G10 C0
[21:13:37] [PASSED] DG2 G11 B1
[21:13:37] [PASSED] DG2 G12 A1
[21:13:37] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[21:13:37] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[21:13:37] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[21:13:37] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[21:13:37] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[21:13:37] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[21:13:37] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[21:13:37] ==================== [PASSED] xe_wa_gt =====================
[21:13:37] ====================== [PASSED] xe_wa ======================
[21:13:37] ============================================================
[21:13:37] Testing complete. Ran 793 tests: passed: 765, skipped: 28
[21:13:37] Elapsed time: 36.152s total, 1.840s configuring, 33.595s building, 0.709s 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
[21:13:37] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[21:13:39] 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
[21:14:04] Starting KUnit Kernel (1/1)...
[21:14:04] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[21:14:04] ============= refcount_interrupt (4 subtests) ==============
[21:14:04] [PASSED] test_single_irq_change
[21:14:04] [PASSED] test_nested_irq_change
[21:14:04] [PASSED] test_multiple_irq_change
[21:14:04] [PASSED] test_irq_save
[21:14:04] =============== [PASSED] refcount_interrupt ================
[21:14:04] ============ drm_test_pick_cmdline (2 subtests) ============
[21:14:04] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[21:14:04] =============== drm_test_pick_cmdline_named ===============
[21:14:04] [PASSED] NTSC
[21:14:04] [PASSED] NTSC-J
[21:14:04] [PASSED] PAL
[21:14:04] [PASSED] PAL-M
[21:14:04] =========== [PASSED] drm_test_pick_cmdline_named ===========
[21:14:04] ============== [PASSED] drm_test_pick_cmdline ==============
[21:14:04] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[21:14:04] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[21:14:04] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[21:14:04] =========== drm_validate_clone_mode (2 subtests) ===========
[21:14:04] ============== drm_test_check_in_clone_mode ===============
[21:14:04] [PASSED] in_clone_mode
[21:14:04] [PASSED] not_in_clone_mode
[21:14:04] ========== [PASSED] drm_test_check_in_clone_mode ===========
[21:14:04] =============== drm_test_check_valid_clones ===============
[21:14:04] [PASSED] not_in_clone_mode
[21:14:04] [PASSED] valid_clone
[21:14:04] [PASSED] invalid_clone
[21:14:04] =========== [PASSED] drm_test_check_valid_clones ===========
[21:14:04] ============= [PASSED] drm_validate_clone_mode =============
[21:14:04] ============= drm_validate_modeset (1 subtest) =============
[21:14:04] [PASSED] drm_test_check_connector_changed_modeset
[21:14:04] ============== [PASSED] drm_validate_modeset ===============
[21:14:04] ====== drm_test_bridge_get_current_state (1 subtest) =======
[21:14:04] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[21:14:04] ======== [PASSED] drm_test_bridge_get_current_state ========
[21:14:04] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[21:14:04] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[21:14:04] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[21:14:04] [PASSED] drm_test_drm_bridge_helper_hdmi_output_bus_fmts
[21:14:04] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[21:14:04] ============== drm_bridge_alloc (2 subtests) ===============
[21:14:04] [PASSED] drm_test_drm_bridge_alloc_basic
[21:14:04] [PASSED] drm_test_drm_bridge_alloc_get_put
[21:14:04] ================ [PASSED] drm_bridge_alloc =================
[21:14:04] ============= drm_bridge_bus_fmt (5 subtests) ==============
[21:14:04] [PASSED] drm_test_bridge_rgb_yuv_rgb
[21:14:04] [PASSED] drm_test_bridge_must_convert_to_yuv444
[21:14:04] [PASSED] drm_test_bridge_hdmi_auto_rgb
[21:14:04] [PASSED] drm_test_bridge_auto_first
[21:14:04] [PASSED] drm_test_bridge_rgb_yuv_no_path
[21:14:04] =============== [PASSED] drm_bridge_bus_fmt ================
[21:14:04] ============= drm_cmdline_parser (40 subtests) =============
[21:14:04] [PASSED] drm_test_cmdline_force_d_only
[21:14:04] [PASSED] drm_test_cmdline_force_D_only_dvi
[21:14:04] [PASSED] drm_test_cmdline_force_D_only_hdmi
[21:14:04] [PASSED] drm_test_cmdline_force_D_only_not_digital
[21:14:04] [PASSED] drm_test_cmdline_force_e_only
[21:14:04] [PASSED] drm_test_cmdline_res
[21:14:04] [PASSED] drm_test_cmdline_res_vesa
[21:14:04] [PASSED] drm_test_cmdline_res_vesa_rblank
[21:14:04] [PASSED] drm_test_cmdline_res_rblank
[21:14:04] [PASSED] drm_test_cmdline_res_bpp
[21:14:04] [PASSED] drm_test_cmdline_res_refresh
[21:14:04] [PASSED] drm_test_cmdline_res_bpp_refresh
[21:14:04] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[21:14:04] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[21:14:04] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[21:14:04] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[21:14:04] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[21:14:04] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[21:14:04] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[21:14:04] [PASSED] drm_test_cmdline_res_margins_force_on
[21:14:04] [PASSED] drm_test_cmdline_res_vesa_margins
[21:14:04] [PASSED] drm_test_cmdline_name
[21:14:04] [PASSED] drm_test_cmdline_name_bpp
[21:14:04] [PASSED] drm_test_cmdline_name_option
[21:14:04] [PASSED] drm_test_cmdline_name_bpp_option
[21:14:04] [PASSED] drm_test_cmdline_rotate_0
[21:14:04] [PASSED] drm_test_cmdline_rotate_90
[21:14:04] [PASSED] drm_test_cmdline_rotate_180
[21:14:04] [PASSED] drm_test_cmdline_rotate_270
[21:14:04] [PASSED] drm_test_cmdline_hmirror
[21:14:04] [PASSED] drm_test_cmdline_vmirror
[21:14:04] [PASSED] drm_test_cmdline_margin_options
[21:14:04] [PASSED] drm_test_cmdline_multiple_options
[21:14:04] [PASSED] drm_test_cmdline_bpp_extra_and_option
[21:14:04] [PASSED] drm_test_cmdline_extra_and_option
[21:14:04] [PASSED] drm_test_cmdline_freestanding_options
[21:14:04] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[21:14:04] [PASSED] drm_test_cmdline_panel_orientation
[21:14:04] ================ drm_test_cmdline_invalid =================
[21:14:04] [PASSED] margin_only
[21:14:04] [PASSED] interlace_only
[21:14:04] [PASSED] res_missing_x
[21:14:04] [PASSED] res_missing_y
[21:14:04] [PASSED] res_bad_y
[21:14:04] [PASSED] res_missing_y_bpp
[21:14:04] [PASSED] res_bad_bpp
[21:14:04] [PASSED] res_bad_refresh
[21:14:04] [PASSED] res_bpp_refresh_force_on_off
[21:14:04] [PASSED] res_invalid_mode
[21:14:04] [PASSED] res_bpp_wrong_place_mode
[21:14:04] [PASSED] name_bpp_refresh
[21:14:04] [PASSED] name_refresh
[21:14:04] [PASSED] name_refresh_wrong_mode
[21:14:04] [PASSED] name_refresh_invalid_mode
[21:14:04] [PASSED] rotate_multiple
[21:14:04] [PASSED] rotate_invalid_val
[21:14:04] [PASSED] rotate_truncated
[21:14:04] [PASSED] invalid_option
[21:14:04] [PASSED] invalid_tv_option
[21:14:04] [PASSED] truncated_tv_option
[21:14:04] ============ [PASSED] drm_test_cmdline_invalid =============
[21:14:04] =============== drm_test_cmdline_tv_options ===============
[21:14:04] [PASSED] NTSC
[21:14:04] [PASSED] NTSC_443
[21:14:04] [PASSED] NTSC_J
[21:14:04] [PASSED] PAL
[21:14:04] [PASSED] PAL_M
[21:14:04] [PASSED] PAL_N
[21:14:04] [PASSED] SECAM
[21:14:04] [PASSED] MONO_525
[21:14:04] [PASSED] MONO_625
[21:14:04] =========== [PASSED] drm_test_cmdline_tv_options ===========
[21:14:04] =============== [PASSED] drm_cmdline_parser ================
[21:14:04] ========== drmm_connector_hdmi_init (20 subtests) ==========
[21:14:04] [PASSED] drm_test_connector_hdmi_init_valid
[21:14:04] [PASSED] drm_test_connector_hdmi_init_bpc_8
[21:14:04] [PASSED] drm_test_connector_hdmi_init_bpc_10
[21:14:04] [PASSED] drm_test_connector_hdmi_init_bpc_12
[21:14:04] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[21:14:04] [PASSED] drm_test_connector_hdmi_init_bpc_null
[21:14:04] [PASSED] drm_test_connector_hdmi_init_formats_empty
[21:14:04] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[21:14:04] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[21:14:04] [PASSED] supported_formats=0x9 yuv420_allowed=1
[21:14:04] [PASSED] supported_formats=0x9 yuv420_allowed=0
[21:14:04] [PASSED] supported_formats=0x5 yuv420_allowed=1
[21:14:04] [PASSED] supported_formats=0x5 yuv420_allowed=0
[21:14:04] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[21:14:04] [PASSED] drm_test_connector_hdmi_init_null_ddc
[21:14:04] [PASSED] drm_test_connector_hdmi_init_null_product
[21:14:04] [PASSED] drm_test_connector_hdmi_init_null_vendor
[21:14:04] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[21:14:04] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[21:14:04] [PASSED] drm_test_connector_hdmi_init_product_valid
[21:14:04] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[21:14:04] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[21:14:04] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[21:14:04] ========= drm_test_connector_hdmi_init_type_valid =========
[21:14:04] [PASSED] HDMI-A
[21:14:04] [PASSED] HDMI-B
[21:14:04] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[21:14:04] ======== drm_test_connector_hdmi_init_type_invalid ========
[21:14:04] [PASSED] Unknown
[21:14:04] [PASSED] VGA
[21:14:04] [PASSED] DVI-I
[21:14:04] [PASSED] DVI-D
[21:14:04] [PASSED] DVI-A
[21:14:04] [PASSED] Composite
[21:14:04] [PASSED] SVIDEO
[21:14:04] [PASSED] LVDS
[21:14:04] [PASSED] Component
[21:14:04] [PASSED] DIN
[21:14:04] [PASSED] DP
[21:14:04] [PASSED] TV
[21:14:04] [PASSED] eDP
[21:14:04] [PASSED] Virtual
[21:14:04] [PASSED] DSI
[21:14:04] [PASSED] DPI
[21:14:04] [PASSED] Writeback
[21:14:04] [PASSED] SPI
[21:14:04] [PASSED] USB
[21:14:04] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[21:14:04] ============ [PASSED] drmm_connector_hdmi_init =============
[21:14:04] ============= drmm_connector_init (3 subtests) =============
[21:14:04] [PASSED] drm_test_drmm_connector_init
[21:14:04] [PASSED] drm_test_drmm_connector_init_null_ddc
[21:14:04] ========= drm_test_drmm_connector_init_type_valid =========
[21:14:04] [PASSED] Unknown
[21:14:04] [PASSED] VGA
[21:14:04] [PASSED] DVI-I
[21:14:04] [PASSED] DVI-D
[21:14:04] [PASSED] DVI-A
[21:14:04] [PASSED] Composite
[21:14:04] [PASSED] SVIDEO
[21:14:04] [PASSED] LVDS
[21:14:04] [PASSED] Component
[21:14:04] [PASSED] DIN
[21:14:04] [PASSED] DP
[21:14:04] [PASSED] HDMI-A
[21:14:04] [PASSED] HDMI-B
[21:14:04] [PASSED] TV
[21:14:04] [PASSED] eDP
[21:14:04] [PASSED] Virtual
[21:14:04] [PASSED] DSI
[21:14:04] [PASSED] DPI
[21:14:04] [PASSED] Writeback
[21:14:04] [PASSED] SPI
[21:14:04] [PASSED] USB
[21:14:04] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[21:14:04] =============== [PASSED] drmm_connector_init ===============
[21:14:04] ========= drm_connector_dynamic_init (6 subtests) ==========
[21:14:04] [PASSED] drm_test_drm_connector_dynamic_init
[21:14:04] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[21:14:04] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[21:14:04] [PASSED] drm_test_drm_connector_dynamic_init_properties
[21:14:04] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[21:14:04] [PASSED] Unknown
[21:14:04] [PASSED] VGA
[21:14:04] [PASSED] DVI-I
[21:14:04] [PASSED] DVI-D
[21:14:04] [PASSED] DVI-A
[21:14:04] [PASSED] Composite
[21:14:04] [PASSED] SVIDEO
[21:14:04] [PASSED] LVDS
[21:14:04] [PASSED] Component
[21:14:04] [PASSED] DIN
[21:14:04] [PASSED] DP
[21:14:04] [PASSED] HDMI-A
[21:14:04] [PASSED] HDMI-B
[21:14:04] [PASSED] TV
[21:14:04] [PASSED] eDP
[21:14:04] [PASSED] Virtual
[21:14:04] [PASSED] DSI
[21:14:04] [PASSED] DPI
[21:14:04] [PASSED] Writeback
[21:14:04] [PASSED] SPI
[21:14:04] [PASSED] USB
[21:14:04] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[21:14:04] ======== drm_test_drm_connector_dynamic_init_name =========
[21:14:04] [PASSED] Unknown
[21:14:04] [PASSED] VGA
[21:14:04] [PASSED] DVI-I
[21:14:04] [PASSED] DVI-D
[21:14:04] [PASSED] DVI-A
[21:14:04] [PASSED] Composite
[21:14:04] [PASSED] SVIDEO
[21:14:04] [PASSED] LVDS
[21:14:04] [PASSED] Component
[21:14:04] [PASSED] DIN
[21:14:04] [PASSED] DP
[21:14:04] [PASSED] HDMI-A
[21:14:04] [PASSED] HDMI-B
[21:14:04] [PASSED] TV
[21:14:04] [PASSED] eDP
[21:14:04] [PASSED] Virtual
[21:14:04] [PASSED] DSI
[21:14:04] [PASSED] DPI
[21:14:04] [PASSED] Writeback
[21:14:04] [PASSED] SPI
[21:14:04] [PASSED] USB
[21:14:04] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[21:14:04] =========== [PASSED] drm_connector_dynamic_init ============
[21:14:04] ==== drm_connector_dynamic_register_early (4 subtests) =====
[21:14:04] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[21:14:04] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[21:14:04] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[21:14:04] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[21:14:04] ====== [PASSED] drm_connector_dynamic_register_early =======
[21:14:04] ======= drm_connector_dynamic_register (7 subtests) ========
[21:14:04] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[21:14:04] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[21:14:04] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[21:14:04] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[21:14:04] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[21:14:04] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[21:14:04] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[21:14:04] ========= [PASSED] drm_connector_dynamic_register ==========
[21:14:04] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[21:14:04] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[21:14:04] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[21:14:04] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[21:14:04] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[21:14:04] ========== drm_test_get_tv_mode_from_name_valid ===========
[21:14:04] [PASSED] NTSC
[21:14:04] [PASSED] NTSC-443
[21:14:04] [PASSED] NTSC-J
[21:14:04] [PASSED] PAL
[21:14:04] [PASSED] PAL-M
[21:14:04] [PASSED] PAL-N
[21:14:04] [PASSED] SECAM
[21:14:04] [PASSED] Mono
[21:14:04] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[21:14:04] [PASSED] drm_test_get_tv_mode_from_name_truncated
[21:14:04] ============ [PASSED] drm_get_tv_mode_from_name ============
[21:14:04] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[21:14:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[21:14:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[21:14:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[21:14:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[21:14:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[21:14:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[21:14:04] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[21:14:04] [PASSED] VIC 96
[21:14:04] [PASSED] VIC 97
[21:14:04] [PASSED] VIC 101
[21:14:04] [PASSED] VIC 102
[21:14:04] [PASSED] VIC 106
[21:14:04] [PASSED] VIC 107
[21:14:04] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[21:14:04] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[21:14:04] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[21:14:04] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[21:14:04] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[21:14:04] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[21:14:04] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[21:14:04] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[21:14:04] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[21:14:04] [PASSED] Automatic
[21:14:04] [PASSED] Full
[21:14:04] [PASSED] Limited 16:235
[21:14:04] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[21:14:04] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[21:14:04] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[21:14:04] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[21:14:04] === drm_test_drm_hdmi_connector_get_output_format_name ====
[21:14:04] [PASSED] RGB
[21:14:04] [PASSED] YUV 4:2:0
[21:14:04] [PASSED] YUV 4:2:2
[21:14:04] [PASSED] YUV 4:4:4
[21:14:04] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[21:14:04] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[21:14:04] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[21:14:04] ============= drm_damage_helper (21 subtests) ==============
[21:14:04] [PASSED] drm_test_damage_iter_no_damage
[21:14:04] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[21:14:04] [PASSED] drm_test_damage_iter_no_damage_src_moved
[21:14:04] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[21:14:04] [PASSED] drm_test_damage_iter_no_damage_not_visible
[21:14:04] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[21:14:04] [PASSED] drm_test_damage_iter_no_damage_no_fb
[21:14:04] [PASSED] drm_test_damage_iter_simple_damage
[21:14:04] [PASSED] drm_test_damage_iter_single_damage
[21:14:04] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[21:14:04] [PASSED] drm_test_damage_iter_single_damage_outside_src
[21:14:04] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[21:14:04] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[21:14:04] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[21:14:04] [PASSED] drm_test_damage_iter_single_damage_src_moved
[21:14:04] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[21:14:04] [PASSED] drm_test_damage_iter_damage
[21:14:04] [PASSED] drm_test_damage_iter_damage_one_intersect
[21:14:04] [PASSED] drm_test_damage_iter_damage_one_outside
[21:14:04] [PASSED] drm_test_damage_iter_damage_src_moved
[21:14:04] [PASSED] drm_test_damage_iter_damage_not_visible
[21:14:04] ================ [PASSED] drm_damage_helper ================
[21:14:04] ============== drm_dp_mst_helper (3 subtests) ==============
[21:14:04] ============== drm_test_dp_mst_calc_pbn_mode ==============
[21:14:04] [PASSED] Clock 154000 BPP 30 DSC disabled
[21:14:04] [PASSED] Clock 234000 BPP 30 DSC disabled
[21:14:04] [PASSED] Clock 297000 BPP 24 DSC disabled
[21:14:04] [PASSED] Clock 332880 BPP 24 DSC enabled
[21:14:04] [PASSED] Clock 324540 BPP 24 DSC enabled
[21:14:04] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[21:14:04] ============== drm_test_dp_mst_calc_pbn_div ===============
[21:14:04] [PASSED] Link rate 2000000 lane count 4
[21:14:04] [PASSED] Link rate 2000000 lane count 2
[21:14:04] [PASSED] Link rate 2000000 lane count 1
[21:14:04] [PASSED] Link rate 1350000 lane count 4
[21:14:04] [PASSED] Link rate 1350000 lane count 2
[21:14:04] [PASSED] Link rate 1350000 lane count 1
[21:14:04] [PASSED] Link rate 1000000 lane count 4
[21:14:04] [PASSED] Link rate 1000000 lane count 2
[21:14:04] [PASSED] Link rate 1000000 lane count 1
[21:14:04] [PASSED] Link rate 810000 lane count 4
[21:14:04] [PASSED] Link rate 810000 lane count 2
[21:14:04] [PASSED] Link rate 810000 lane count 1
[21:14:04] [PASSED] Link rate 540000 lane count 4
[21:14:04] [PASSED] Link rate 540000 lane count 2
[21:14:04] [PASSED] Link rate 540000 lane count 1
[21:14:04] [PASSED] Link rate 270000 lane count 4
[21:14:04] [PASSED] Link rate 270000 lane count 2
[21:14:04] [PASSED] Link rate 270000 lane count 1
[21:14:04] [PASSED] Link rate 162000 lane count 4
[21:14:04] [PASSED] Link rate 162000 lane count 2
[21:14:04] [PASSED] Link rate 162000 lane count 1
[21:14:04] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[21:14:04] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[21:14:04] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[21:14:04] [PASSED] DP_POWER_UP_PHY with port number
[21:14:04] [PASSED] DP_POWER_DOWN_PHY with port number
[21:14:04] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[21:14:04] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[21:14:04] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[21:14:04] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[21:14:04] [PASSED] DP_QUERY_PAYLOAD with port number
[21:14:04] [PASSED] DP_QUERY_PAYLOAD with VCPI
[21:14:04] [PASSED] DP_REMOTE_DPCD_READ with port number
[21:14:04] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[21:14:04] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[21:14:04] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[21:14:04] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[21:14:04] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[21:14:04] [PASSED] DP_REMOTE_I2C_READ with port number
[21:14:04] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[21:14:04] [PASSED] DP_REMOTE_I2C_READ with transactions array
[21:14:04] [PASSED] DP_REMOTE_I2C_WRITE with port number
[21:14:04] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[21:14:04] [PASSED] DP_REMOTE_I2C_WRITE with data array
[21:14:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[21:14:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[21:14:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[21:14:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[21:14:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[21:14:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[21:14:04] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[21:14:04] ================ [PASSED] drm_dp_mst_helper ================
[21:14:04] ================== drm_exec (7 subtests) ===================
[21:14:04] [PASSED] sanitycheck
[21:14:04] [PASSED] test_lock
[21:14:04] [PASSED] test_lock_unlock
[21:14:04] [PASSED] test_duplicates
[21:14:04] [PASSED] test_prepare
[21:14:04] [PASSED] test_prepare_array
[21:14:04] [PASSED] test_multiple_loops
[21:14:04] ==================== [PASSED] drm_exec =====================
[21:14:04] =========== drm_format_helper_test (17 subtests) ===========
[21:14:04] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[21:14:04] [PASSED] single_pixel_source_buffer
[21:14:04] [PASSED] single_pixel_clip_rectangle
[21:14:04] [PASSED] well_known_colors
[21:14:04] [PASSED] destination_pitch
[21:14:04] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[21:14:04] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[21:14:04] [PASSED] single_pixel_source_buffer
[21:14:04] [PASSED] single_pixel_clip_rectangle
[21:14:04] [PASSED] well_known_colors
[21:14:04] [PASSED] destination_pitch
[21:14:04] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[21:14:04] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[21:14:04] [PASSED] single_pixel_source_buffer
[21:14:04] [PASSED] single_pixel_clip_rectangle
[21:14:04] [PASSED] well_known_colors
[21:14:04] [PASSED] destination_pitch
[21:14:04] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[21:14:04] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[21:14:04] [PASSED] single_pixel_source_buffer
[21:14:04] [PASSED] single_pixel_clip_rectangle
[21:14:04] [PASSED] well_known_colors
[21:14:04] [PASSED] destination_pitch
[21:14:04] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[21:14:04] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[21:14:04] [PASSED] single_pixel_source_buffer
[21:14:04] [PASSED] single_pixel_clip_rectangle
[21:14:04] [PASSED] well_known_colors
[21:14:04] [PASSED] destination_pitch
[21:14:04] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[21:14:04] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[21:14:04] [PASSED] single_pixel_source_buffer
[21:14:04] [PASSED] single_pixel_clip_rectangle
[21:14:04] [PASSED] well_known_colors
[21:14:04] [PASSED] destination_pitch
[21:14:04] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[21:14:04] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[21:14:04] [PASSED] single_pixel_source_buffer
[21:14:04] [PASSED] single_pixel_clip_rectangle
[21:14:04] [PASSED] well_known_colors
[21:14:04] [PASSED] destination_pitch
[21:14:04] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[21:14:04] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[21:14:04] [PASSED] single_pixel_source_buffer
[21:14:04] [PASSED] single_pixel_clip_rectangle
[21:14:04] [PASSED] well_known_colors
[21:14:04] [PASSED] destination_pitch
[21:14:04] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[21:14:04] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[21:14:04] [PASSED] single_pixel_source_buffer
[21:14:04] [PASSED] single_pixel_clip_rectangle
[21:14:04] [PASSED] well_known_colors
[21:14:04] [PASSED] destination_pitch
[21:14:04] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[21:14:04] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[21:14:04] [PASSED] single_pixel_source_buffer
[21:14:04] [PASSED] single_pixel_clip_rectangle
[21:14:04] [PASSED] well_known_colors
[21:14:04] [PASSED] destination_pitch
[21:14:04] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[21:14:04] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[21:14:04] [PASSED] single_pixel_source_buffer
[21:14:04] [PASSED] single_pixel_clip_rectangle
[21:14:04] [PASSED] well_known_colors
[21:14:04] [PASSED] destination_pitch
[21:14:04] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[21:14:04] ============== drm_test_fb_xrgb8888_to_mono ===============
[21:14:04] [PASSED] single_pixel_source_buffer
[21:14:04] [PASSED] single_pixel_clip_rectangle
[21:14:04] [PASSED] well_known_colors
[21:14:04] [PASSED] destination_pitch
[21:14:04] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[21:14:04] ==================== drm_test_fb_swab =====================
[21:14:04] [PASSED] single_pixel_source_buffer
[21:14:04] [PASSED] single_pixel_clip_rectangle
[21:14:04] [PASSED] well_known_colors
[21:14:04] [PASSED] destination_pitch
[21:14:04] ================ [PASSED] drm_test_fb_swab =================
[21:14:04] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[21:14:04] [PASSED] single_pixel_source_buffer
[21:14:04] [PASSED] single_pixel_clip_rectangle
[21:14:04] [PASSED] well_known_colors
[21:14:04] [PASSED] destination_pitch
[21:14:04] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[21:14:04] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[21:14:04] [PASSED] single_pixel_source_buffer
[21:14:04] [PASSED] single_pixel_clip_rectangle
[21:14:04] [PASSED] well_known_colors
[21:14:04] [PASSED] destination_pitch
[21:14:04] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[21:14:04] ================= drm_test_fb_clip_offset =================
[21:14:04] [PASSED] pass through
[21:14:04] [PASSED] horizontal offset
[21:14:04] [PASSED] vertical offset
[21:14:04] [PASSED] horizontal and vertical offset
[21:14:04] [PASSED] horizontal offset (custom pitch)
[21:14:04] [PASSED] vertical offset (custom pitch)
[21:14:04] [PASSED] horizontal and vertical offset (custom pitch)
[21:14:04] ============= [PASSED] drm_test_fb_clip_offset =============
[21:14:04] =================== drm_test_fb_memcpy ====================
[21:14:04] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[21:14:04] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[21:14:04] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[21:14:04] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[21:14:04] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[21:14:04] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[21:14:04] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[21:14:04] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[21:14:04] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[21:14:04] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[21:14:04] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[21:14:04] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[21:14:04] =============== [PASSED] drm_test_fb_memcpy ================
[21:14:04] ============= [PASSED] drm_format_helper_test ==============
[21:14:04] ================= drm_format (18 subtests) =================
[21:14:04] [PASSED] drm_test_format_block_width_invalid
[21:14:04] [PASSED] drm_test_format_block_width_one_plane
[21:14:04] [PASSED] drm_test_format_block_width_two_plane
[21:14:04] [PASSED] drm_test_format_block_width_three_plane
[21:14:04] [PASSED] drm_test_format_block_width_tiled
[21:14:04] [PASSED] drm_test_format_block_height_invalid
[21:14:04] [PASSED] drm_test_format_block_height_one_plane
[21:14:04] [PASSED] drm_test_format_block_height_two_plane
[21:14:04] [PASSED] drm_test_format_block_height_three_plane
[21:14:04] [PASSED] drm_test_format_block_height_tiled
[21:14:04] [PASSED] drm_test_format_min_pitch_invalid
[21:14:04] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[21:14:04] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[21:14:04] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[21:14:04] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[21:14:04] [PASSED] drm_test_format_min_pitch_two_plane
[21:14:04] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[21:14:04] [PASSED] drm_test_format_min_pitch_tiled
[21:14:04] =================== [PASSED] drm_format ====================
[21:14:04] ============== drm_framebuffer (10 subtests) ===============
[21:14:04] ========== drm_test_framebuffer_check_src_coords ==========
[21:14:04] [PASSED] Success: source fits into fb
[21:14:04] [PASSED] Fail: overflowing fb with x-axis coordinate
[21:14:04] [PASSED] Fail: overflowing fb with y-axis coordinate
[21:14:04] [PASSED] Fail: overflowing fb with source width
[21:14:04] [PASSED] Fail: overflowing fb with source height
[21:14:04] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[21:14:04] [PASSED] drm_test_framebuffer_cleanup
[21:14:04] =============== drm_test_framebuffer_create ===============
[21:14:04] [PASSED] ABGR8888 normal sizes
[21:14:04] [PASSED] ABGR8888 max sizes
[21:14:04] [PASSED] ABGR8888 pitch greater than min required
[21:14:04] [PASSED] ABGR8888 pitch less than min required
[21:14:04] [PASSED] ABGR8888 Invalid width
[21:14:04] [PASSED] ABGR8888 Invalid buffer handle
[21:14:04] [PASSED] No pixel format
[21:14:04] [PASSED] ABGR8888 Width 0
[21:14:04] [PASSED] ABGR8888 Height 0
[21:14:04] [PASSED] ABGR8888 Out of bound height * pitch combination
[21:14:04] [PASSED] ABGR8888 Large buffer offset
[21:14:04] [PASSED] ABGR8888 Buffer offset for inexistent plane
[21:14:04] [PASSED] ABGR8888 Invalid flag
[21:14:04] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[21:14:04] [PASSED] ABGR8888 Valid buffer modifier
[21:14:04] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[21:14:04] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[21:14:04] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[21:14:04] [PASSED] NV12 Normal sizes
[21:14:04] [PASSED] NV12 Max sizes
[21:14:04] [PASSED] NV12 Invalid pitch
[21:14:04] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[21:14:04] [PASSED] NV12 different modifier per-plane
[21:14:04] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[21:14:04] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[21:14:04] [PASSED] NV12 Modifier for inexistent plane
[21:14:04] [PASSED] NV12 Handle for inexistent plane
[21:14:04] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[21:14:04] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[21:14:04] [PASSED] YVU420 Normal sizes
[21:14:04] [PASSED] YVU420 Max sizes
[21:14:04] [PASSED] YVU420 Invalid pitch
[21:14:04] [PASSED] YVU420 Different pitches
[21:14:04] [PASSED] YVU420 Different buffer offsets/pitches
[21:14:04] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[21:14:04] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[21:14:04] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[21:14:04] [PASSED] YVU420 Valid modifier
[21:14:04] [PASSED] YVU420 Different modifiers per plane
[21:14:04] [PASSED] YVU420 Modifier for inexistent plane
[21:14:04] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[21:14:04] [PASSED] X0L2 Normal sizes
[21:14:04] [PASSED] X0L2 Max sizes
[21:14:04] [PASSED] X0L2 Invalid pitch
[21:14:04] [PASSED] X0L2 Pitch greater than minimum required
[21:14:04] [PASSED] X0L2 Handle for inexistent plane
[21:14:04] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[21:14:04] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[21:14:04] [PASSED] X0L2 Valid modifier
[21:14:04] [PASSED] X0L2 Modifier for inexistent plane
[21:14:04] =========== [PASSED] drm_test_framebuffer_create ===========
[21:14:04] [PASSED] drm_test_framebuffer_free
[21:14:04] [PASSED] drm_test_framebuffer_init
[21:14:04] [PASSED] drm_test_framebuffer_init_bad_format
[21:14:04] [PASSED] drm_test_framebuffer_init_dev_mismatch
[21:14:04] [PASSED] drm_test_framebuffer_lookup
[21:14:04] [PASSED] drm_test_framebuffer_lookup_inexistent
[21:14:04] [PASSED] drm_test_framebuffer_modifiers_not_supported
[21:14:04] ================= [PASSED] drm_framebuffer =================
[21:14:04] ================ drm_gem_shmem (8 subtests) ================
[21:14:04] [PASSED] drm_gem_shmem_test_obj_create
[21:14:04] [PASSED] drm_gem_shmem_test_obj_create_private
[21:14:04] [PASSED] drm_gem_shmem_test_pin_pages
[21:14:04] [PASSED] drm_gem_shmem_test_vmap
[21:14:04] [PASSED] drm_gem_shmem_test_get_sg_table
[21:14:04] [PASSED] drm_gem_shmem_test_get_pages_sgt
[21:14:04] [PASSED] drm_gem_shmem_test_madvise
[21:14:04] [PASSED] drm_gem_shmem_test_purge
[21:14:04] ================== [PASSED] drm_gem_shmem ==================
[21:14:04] === drm_atomic_helper_connector_hdmi_check (29 subtests) ===
[21:14:04] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[21:14:04] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[21:14:04] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[21:14:04] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[21:14:04] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[21:14:04] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[21:14:04] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[21:14:04] [PASSED] Automatic
[21:14:04] [PASSED] Full
[21:14:04] [PASSED] Limited 16:235
[21:14:04] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[21:14:04] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[21:14:04] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[21:14:04] [PASSED] drm_test_check_disable_connector
[21:14:04] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[21:14:04] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[21:14:04] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[21:14:04] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[21:14:04] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[21:14:04] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[21:14:04] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[21:14:04] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[21:14:04] [PASSED] drm_test_check_output_bpc_dvi
[21:14:04] [PASSED] drm_test_check_output_bpc_format_vic_1
[21:14:04] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[21:14:04] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[21:14:04] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[21:14:04] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[21:14:04] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[21:14:04] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[21:14:04] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[21:14:04] ============ drm_test_check_hdmi_color_format =============
[21:14:04] [PASSED] AUTO -> RGB
[21:14:04] [PASSED] YCBCR422 -> YUV422
[21:14:04] [PASSED] YCBCR420 -> YUV420
[21:14:04] [PASSED] YCBCR444 -> YUV444
[21:14:04] [PASSED] RGB -> RGB
[21:14:04] ======== [PASSED] drm_test_check_hdmi_color_format =========
[21:14:04] ======== drm_test_check_hdmi_color_format_420_only ========
[21:14:04] [PASSED] RGB should fail
[21:14:04] [PASSED] YUV444 should fail
[21:14:04] [PASSED] YUV422 should fail
[21:14:04] [PASSED] YUV420 should work
[21:14:04] ==== [PASSED] drm_test_check_hdmi_color_format_420_only ====
[21:14:04] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[21:14:04] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[21:14:04] [PASSED] drm_test_check_broadcast_rgb_value
[21:14:04] [PASSED] drm_test_check_bpc_8_value
[21:14:04] [PASSED] drm_test_check_bpc_10_value
[21:14:04] [PASSED] drm_test_check_bpc_12_value
[21:14:04] [PASSED] drm_test_check_format_value
[21:14:04] [PASSED] drm_test_check_tmds_char_value
[21:14:04] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[21:14:04] = drm_atomic_helper_connector_hdmi_mode_valid (7 subtests) =
[21:14:04] [PASSED] drm_test_check_mode_valid
[21:14:04] [PASSED] drm_test_check_mode_valid_reject
[21:14:04] [PASSED] drm_test_check_mode_valid_reject_rate
[21:14:04] [PASSED] drm_test_check_mode_valid_reject_max_clock
[21:14:04] [PASSED] drm_test_check_mode_valid_yuv420_only_max_clock
[21:14:04] [PASSED] drm_test_check_mode_valid_reject_yuv420_only_connector
[21:14:04] [PASSED] drm_test_check_mode_valid_accept_yuv420_also_connector_rgb
[21:14:04] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[21:14:04] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[21:14:04] [PASSED] drm_test_check_infoframes
[21:14:04] [PASSED] drm_test_check_reject_avi_infoframe
[21:14:04] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[21:14:04] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[21:14:04] [PASSED] drm_test_check_reject_audio_infoframe
[21:14:04] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[21:14:04] ================= drm_managed (2 subtests) =================
[21:14:04] [PASSED] drm_test_managed_release_action
[21:14:04] [PASSED] drm_test_managed_run_action
[21:14:04] =================== [PASSED] drm_managed ===================
[21:14:04] =================== drm_mm (6 subtests) ====================
[21:14:04] [PASSED] drm_test_mm_init
[21:14:04] [PASSED] drm_test_mm_debug
[21:14:04] [PASSED] drm_test_mm_align32
[21:14:04] [PASSED] drm_test_mm_align64
[21:14:04] [PASSED] drm_test_mm_lowest
[21:14:04] [PASSED] drm_test_mm_highest
[21:14:04] ===================== [PASSED] drm_mm ======================
[21:14:04] ============= drm_modes_analog_tv (5 subtests) =============
[21:14:04] [PASSED] drm_test_modes_analog_tv_mono_576i
[21:14:04] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[21:14:04] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[21:14:04] [PASSED] drm_test_modes_analog_tv_pal_576i
[21:14:04] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[21:14:04] =============== [PASSED] drm_modes_analog_tv ===============
[21:14:04] ============== drm_plane_helper (2 subtests) ===============
[21:14:04] =============== drm_test_check_plane_state ================
[21:14:04] [PASSED] clipping_simple
[21:14:04] [PASSED] clipping_rotate_reflect
[21:14:04] [PASSED] positioning_simple
[21:14:04] [PASSED] upscaling
[21:14:04] [PASSED] downscaling
[21:14:04] [PASSED] rounding1
[21:14:04] [PASSED] rounding2
[21:14:04] [PASSED] rounding3
[21:14:04] [PASSED] rounding4
[21:14:04] =========== [PASSED] drm_test_check_plane_state ============
[21:14:04] =========== drm_test_check_invalid_plane_state ============
[21:14:04] [PASSED] positioning_invalid
[21:14:04] [PASSED] upscaling_invalid
[21:14:04] [PASSED] downscaling_invalid
[21:14:04] ======= [PASSED] drm_test_check_invalid_plane_state ========
[21:14:04] ================ [PASSED] drm_plane_helper =================
[21:14:04] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[21:14:04] ====== drm_test_connector_helper_tv_get_modes_check =======
[21:14:04] [PASSED] None
[21:14:04] [PASSED] PAL
[21:14:04] [PASSED] NTSC
[21:14:04] [PASSED] Both, NTSC Default
[21:14:04] [PASSED] Both, PAL Default
[21:14:04] [PASSED] Both, NTSC Default, with PAL on command-line
[21:14:04] [PASSED] Both, PAL Default, with NTSC on command-line
[21:14:04] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[21:14:04] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[21:14:04] ================== drm_rect (9 subtests) ===================
[21:14:04] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[21:14:04] [PASSED] drm_test_rect_clip_scaled_not_clipped
[21:14:04] [PASSED] drm_test_rect_clip_scaled_clipped
[21:14:04] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[21:14:04] ================= drm_test_rect_intersect =================
[21:14:04] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[21:14:04] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[21:14:04] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[21:14:04] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[21:14:04] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[21:14:04] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[21:14:04] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[21:14:04] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[21:14:04] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[21:14:04] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[21:14:04] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[21:14:04] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[21:14:04] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[21:14:04] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[21:14:04] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[21:14:04] ============= [PASSED] drm_test_rect_intersect =============
[21:14:04] ================ drm_test_rect_calc_hscale ================
[21:14:04] [PASSED] normal use
[21:14:04] [PASSED] out of max range
[21:14:04] [PASSED] out of min range
[21:14:04] [PASSED] zero dst
[21:14:04] [PASSED] negative src
[21:14:04] [PASSED] negative dst
[21:14:04] ============ [PASSED] drm_test_rect_calc_hscale ============
[21:14:04] ================ drm_test_rect_calc_vscale ================
[21:14:04] [PASSED] normal use
[21:14:04] [PASSED] out of max range
[21:14:04] [PASSED] out of min range
[21:14:04] [PASSED] zero dst
[21:14:04] [PASSED] negative src
[21:14:04] [PASSED] negative dst
[21:14:04] ============ [PASSED] drm_test_rect_calc_vscale ============
[21:14:04] ================== drm_test_rect_rotate ===================
[21:14:04] [PASSED] reflect-x
[21:14:04] [PASSED] reflect-y
[21:14:04] [PASSED] rotate-0
[21:14:04] [PASSED] rotate-90
[21:14:04] [PASSED] rotate-180
[21:14:04] [PASSED] rotate-270
[21:14:04] ============== [PASSED] drm_test_rect_rotate ===============
[21:14:04] ================ drm_test_rect_rotate_inv =================
[21:14:04] [PASSED] reflect-x
[21:14:04] [PASSED] reflect-y
[21:14:04] [PASSED] rotate-0
[21:14:04] [PASSED] rotate-90
[21:14:04] [PASSED] rotate-180
[21:14:04] [PASSED] rotate-270
[21:14:04] ============ [PASSED] drm_test_rect_rotate_inv =============
[21:14:04] ==================== [PASSED] drm_rect =====================
[21:14:04] ============ drm_sysfb_modeset_test (1 subtest) ============
[21:14:04] ============ drm_test_sysfb_build_fourcc_list =============
[21:14:04] [PASSED] no native formats
[21:14:04] [PASSED] XRGB8888 as native format
[21:14:04] [PASSED] remove duplicates
[21:14:04] [PASSED] convert alpha formats
[21:14:04] [PASSED] random formats
[21:14:04] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[21:14:04] ============= [PASSED] drm_sysfb_modeset_test ==============
[21:14:04] ================== drm_fixp (2 subtests) ===================
[21:14:04] [PASSED] drm_test_int2fixp
[21:14:04] [PASSED] drm_test_sm2fixp
[21:14:04] ==================== [PASSED] drm_fixp =====================
[21:14:04] ============================================================
[21:14:04] Testing complete. Ran 641 tests: passed: 641
[21:14:04] Elapsed time: 26.835s total, 1.777s configuring, 24.837s building, 0.195s 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
[21:14:04] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[21:14:06] 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
[21:14:16] Starting KUnit Kernel (1/1)...
[21:14:16] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[21:14:16] ============= refcount_interrupt (4 subtests) ==============
[21:14:16] [PASSED] test_single_irq_change
[21:14:16] [PASSED] test_nested_irq_change
[21:14:16] [PASSED] test_multiple_irq_change
[21:14:16] [PASSED] test_irq_save
[21:14:16] =============== [PASSED] refcount_interrupt ================
[21:14:16] ================= ttm_device (5 subtests) ==================
[21:14:16] [PASSED] ttm_device_init_basic
[21:14:16] [PASSED] ttm_device_init_multiple
[21:14:16] [PASSED] ttm_device_fini_basic
[21:14:16] [PASSED] ttm_device_init_no_vma_man
[21:14:16] ================== ttm_device_init_pools ==================
[21:14:16] [PASSED] No DMA allocations, no DMA32 required
[21:14:16] [PASSED] DMA allocations, DMA32 required
[21:14:16] [PASSED] No DMA allocations, DMA32 required
[21:14:16] [PASSED] DMA allocations, no DMA32 required
[21:14:16] ============== [PASSED] ttm_device_init_pools ==============
[21:14:16] =================== [PASSED] ttm_device ====================
[21:14:16] ================== ttm_pool (8 subtests) ===================
[21:14:16] ================== ttm_pool_alloc_basic ===================
[21:14:16] [PASSED] One page
[21:14:16] [PASSED] More than one page
[21:14:16] [PASSED] Above the allocation limit
[21:14:16] [PASSED] One page, with coherent DMA mappings enabled
[21:14:16] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[21:14:16] ============== [PASSED] ttm_pool_alloc_basic ===============
[21:14:16] ============== ttm_pool_alloc_basic_dma_addr ==============
[21:14:16] [PASSED] One page
[21:14:16] [PASSED] More than one page
[21:14:16] [PASSED] Above the allocation limit
[21:14:16] [PASSED] One page, with coherent DMA mappings enabled
[21:14:16] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[21:14:16] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[21:14:16] [PASSED] ttm_pool_alloc_order_caching_match
[21:14:16] [PASSED] ttm_pool_alloc_caching_mismatch
[21:14:16] [PASSED] ttm_pool_alloc_order_mismatch
[21:14:16] [PASSED] ttm_pool_free_dma_alloc
[21:14:16] [PASSED] ttm_pool_free_no_dma_alloc
[21:14:16] [PASSED] ttm_pool_fini_basic
[21:14:16] ==================== [PASSED] ttm_pool =====================
[21:14:16] ================ ttm_resource (8 subtests) =================
[21:14:16] ================= ttm_resource_init_basic =================
[21:14:16] [PASSED] Init resource in TTM_PL_SYSTEM
[21:14:16] [PASSED] Init resource in TTM_PL_VRAM
[21:14:16] [PASSED] Init resource in a private placement
[21:14:16] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[21:14:16] ============= [PASSED] ttm_resource_init_basic =============
[21:14:16] [PASSED] ttm_resource_init_pinned
[21:14:16] [PASSED] ttm_resource_fini_basic
[21:14:16] [PASSED] ttm_resource_manager_init_basic
[21:14:16] [PASSED] ttm_resource_manager_usage_basic
[21:14:16] [PASSED] ttm_resource_manager_set_used_basic
[21:14:16] [PASSED] ttm_sys_man_alloc_basic
[21:14:16] [PASSED] ttm_sys_man_free_basic
[21:14:16] ================== [PASSED] ttm_resource ===================
[21:14:16] =================== ttm_tt (15 subtests) ===================
[21:14:16] ==================== ttm_tt_init_basic ====================
[21:14:16] [PASSED] Page-aligned size
[21:14:16] [PASSED] Extra pages requested
[21:14:16] ================ [PASSED] ttm_tt_init_basic ================
[21:14:16] [PASSED] ttm_tt_init_misaligned
[21:14:16] [PASSED] ttm_tt_fini_basic
[21:14:16] [PASSED] ttm_tt_fini_sg
[21:14:16] [PASSED] ttm_tt_fini_shmem
[21:14:16] [PASSED] ttm_tt_create_basic
[21:14:16] [PASSED] ttm_tt_create_invalid_bo_type
[21:14:16] [PASSED] ttm_tt_create_ttm_exists
[21:14:16] [PASSED] ttm_tt_create_failed
[21:14:16] [PASSED] ttm_tt_destroy_basic
[21:14:16] [PASSED] ttm_tt_populate_null_ttm
[21:14:16] [PASSED] ttm_tt_populate_populated_ttm
[21:14:16] [PASSED] ttm_tt_unpopulate_basic
[21:14:16] [PASSED] ttm_tt_unpopulate_empty_ttm
[21:14:16] [PASSED] ttm_tt_swapin_basic
[21:14:16] ===================== [PASSED] ttm_tt ======================
[21:14:16] =================== ttm_bo (14 subtests) ===================
[21:14:16] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[21:14:16] [PASSED] Cannot be interrupted and sleeps
[21:14:16] [PASSED] Cannot be interrupted, locks straight away
[21:14:16] [PASSED] Can be interrupted, sleeps
[21:14:16] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[21:14:16] [PASSED] ttm_bo_reserve_locked_no_sleep
[21:14:16] [PASSED] ttm_bo_reserve_no_wait_ticket
[21:14:16] [PASSED] ttm_bo_reserve_double_resv
[21:14:16] [PASSED] ttm_bo_reserve_interrupted
[21:14:16] [PASSED] ttm_bo_reserve_deadlock
[21:14:16] [PASSED] ttm_bo_unreserve_basic
[21:14:16] [PASSED] ttm_bo_unreserve_pinned
[21:14:16] [PASSED] ttm_bo_unreserve_bulk
[21:14:16] [PASSED] ttm_bo_fini_basic
[21:14:16] [PASSED] ttm_bo_fini_shared_resv
[21:14:16] [PASSED] ttm_bo_pin_basic
[21:14:16] [PASSED] ttm_bo_pin_unpin_resource
[21:14:16] [PASSED] ttm_bo_multiple_pin_one_unpin
[21:14:16] ===================== [PASSED] ttm_bo ======================
[21:14:16] ============== ttm_bo_validate (22 subtests) ===============
[21:14:16] ============== ttm_bo_init_reserved_sys_man ===============
[21:14:16] [PASSED] Buffer object for userspace
[21:14:16] [PASSED] Kernel buffer object
[21:14:16] [PASSED] Shared buffer object
[21:14:16] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[21:14:16] ============== ttm_bo_init_reserved_mock_man ==============
[21:14:16] [PASSED] Buffer object for userspace
[21:14:16] [PASSED] Kernel buffer object
[21:14:16] [PASSED] Shared buffer object
[21:14:16] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[21:14:16] [PASSED] ttm_bo_init_reserved_resv
[21:14:16] ================== ttm_bo_validate_basic ==================
[21:14:16] [PASSED] Buffer object for userspace
[21:14:16] [PASSED] Kernel buffer object
[21:14:16] [PASSED] Shared buffer object
[21:14:16] ============== [PASSED] ttm_bo_validate_basic ==============
[21:14:16] [PASSED] ttm_bo_validate_invalid_placement
[21:14:16] ============= ttm_bo_validate_same_placement ==============
[21:14:16] [PASSED] System manager
[21:14:16] [PASSED] VRAM manager
[21:14:16] ========= [PASSED] ttm_bo_validate_same_placement ==========
[21:14:16] [PASSED] ttm_bo_validate_failed_alloc
[21:14:16] [PASSED] ttm_bo_validate_pinned
[21:14:16] [PASSED] ttm_bo_validate_busy_placement
[21:14:16] ================ ttm_bo_validate_multihop =================
[21:14:16] [PASSED] Buffer object for userspace
[21:14:16] [PASSED] Kernel buffer object
[21:14:16] [PASSED] Shared buffer object
[21:14:16] ============ [PASSED] ttm_bo_validate_multihop =============
[21:14:16] ========== ttm_bo_validate_no_placement_signaled ==========
[21:14:16] [PASSED] Buffer object in system domain, no page vector
[21:14:16] [PASSED] Buffer object in system domain with an existing page vector
[21:14:16] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[21:14:16] ======== ttm_bo_validate_no_placement_not_signaled ========
[21:14:16] [PASSED] Buffer object for userspace
[21:14:16] [PASSED] Kernel buffer object
[21:14:16] [PASSED] Shared buffer object
[21:14:16] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[21:14:16] [PASSED] ttm_bo_validate_move_fence_signaled
[21:14:16] ========= ttm_bo_validate_move_fence_not_signaled =========
[21:14:16] [PASSED] Waits for GPU
[21:14:16] [PASSED] Tries to lock straight away
[21:14:16] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[21:14:16] [PASSED] ttm_bo_validate_swapout
[21:14:16] [PASSED] ttm_bo_validate_happy_evict
[21:14:16] [PASSED] ttm_bo_validate_all_pinned_evict
[21:14:16] [PASSED] ttm_bo_validate_allowed_only_evict
[21:14:16] [PASSED] ttm_bo_validate_deleted_evict
[21:14:16] [PASSED] ttm_bo_validate_busy_domain_evict
[21:14:16] [PASSED] ttm_bo_validate_evict_gutting
[21:14:16] [PASSED] ttm_bo_validate_recrusive_evict
[21:14:16] ================= [PASSED] ttm_bo_validate =================
[21:14:16] ============================================================
[21:14:16] Testing complete. Ran 106 tests: passed: 106
[21:14:16] Elapsed time: 11.899s total, 1.840s configuring, 9.794s building, 0.230s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/dma-buf/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/dma-buf/.kunitconfig
[21:14:16] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[21:14:18] 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
[21:14:27] Starting KUnit Kernel (1/1)...
[21:14:27] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[21:14:27] ============= refcount_interrupt (4 subtests) ==============
[21:14:27] [PASSED] test_single_irq_change
[21:14:27] [PASSED] test_nested_irq_change
[21:14:27] [PASSED] test_multiple_irq_change
[21:14:27] [PASSED] test_irq_save
[21:14:27] =============== [PASSED] refcount_interrupt ================
[21:14:27] =============== dma-buf-fence (12 subtests) ================
[21:14:27] [PASSED] test_sanitycheck
[21:14:27] [PASSED] test_signaling
[21:14:27] [PASSED] test_add_callback
[21:14:27] [PASSED] test_late_add_callback
[21:14:27] [PASSED] test_rm_callback
[21:14:27] [PASSED] test_late_rm_callback
[21:14:27] [PASSED] test_status
[21:14:27] [PASSED] test_error
[21:14:27] [PASSED] test_wait
[21:14:27] [PASSED] test_wait_timeout
[21:14:27] [PASSED] test_stub
[21:14:27] [SKIPPED] test_race_signal_callback (requires at least 2 CPUs)
[21:14:27] ================== [PASSED] dma-buf-fence ==================
[21:14:27] ============ dma-buf-fence-chain (11 subtests) =============
[21:14:27] [PASSED] test_sanitycheck
[21:14:27] [PASSED] test_find_seqno
[21:14:27] [PASSED] test_find_signaled
[21:14:27] [PASSED] test_find_out_of_order
[21:14:32] [PASSED] test_find_gap
[21:14:32] [PASSED] test_find_race
[21:14:32] [PASSED] test_signal_forward
[21:14:32] [PASSED] test_signal_backward
[21:14:32] [PASSED] test_wait_forward
[21:14:32] [PASSED] test_wait_backward
[21:14:32] [PASSED] test_wait_random
[21:14:32] =============== [PASSED] dma-buf-fence-chain ===============
[21:14:32] ============ dma-buf-fence-unwrap (10 subtests) ============
[21:14:32] [PASSED] test_sanitycheck
[21:14:32] [PASSED] test_unwrap_array
[21:14:32] [PASSED] test_unwrap_chain
[21:14:32] [PASSED] test_unwrap_chain_array
[21:14:32] [PASSED] test_unwrap_merge
[21:14:32] [PASSED] test_unwrap_merge_duplicate
[21:14:32] [PASSED] test_unwrap_merge_seqno
[21:14:32] [PASSED] test_unwrap_merge_order
[21:14:32] [PASSED] test_unwrap_merge_complex
[21:14:32] [PASSED] test_unwrap_merge_complex_seqno
[21:14:32] ============== [PASSED] dma-buf-fence-unwrap ===============
[21:14:32] ================ dma-buf-resv (5 subtests) =================
[21:14:32] [PASSED] test_sanitycheck
[21:14:32] ===================== test_signaling ======================
[21:14:32] [PASSED] kernel
[21:14:32] [PASSED] write
[21:14:32] [PASSED] read
[21:14:32] [PASSED] bookkeep
[21:14:32] ================= [PASSED] test_signaling ==================
[21:14:32] ====================== test_for_each ======================
[21:14:32] [PASSED] kernel
[21:14:32] [PASSED] write
[21:14:32] [PASSED] read
[21:14:32] [PASSED] bookkeep
[21:14:32] ================== [PASSED] test_for_each ==================
[21:14:32] ================= test_for_each_unlocked ==================
[21:14:32] [PASSED] kernel
[21:14:32] [PASSED] write
[21:14:32] [PASSED] read
[21:14:32] [PASSED] bookkeep
[21:14:32] ============= [PASSED] test_for_each_unlocked ==============
[21:14:32] ===================== test_get_fences =====================
[21:14:32] [PASSED] kernel
[21:14:32] [PASSED] write
[21:14:32] [PASSED] read
[21:14:32] [PASSED] bookkeep
[21:14:32] ================= [PASSED] test_get_fences =================
[21:14:32] ================== [PASSED] dma-buf-resv ===================
[21:14:32] ============================================================
[21:14:32] Testing complete. Ran 54 tests: passed: 53, skipped: 1
[21:14:32] Elapsed time: 15.744s total, 1.857s configuring, 8.616s building, 5.256s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v5] drm/xe: Poll GT for C6 before D3
2026-09-15 21:01 [PATCH v5] drm/xe: Poll GT for C6 before D3 Vinay Belgaumkar
2026-09-15 21:14 ` ✓ CI.KUnit: success for drm/xe: Poll GT for C6 before D3 (rev2) Patchwork
@ 2026-09-15 21:20 ` sashiko-bot
2026-09-16 12:21 ` Rodrigo Vivi
2026-09-15 21:51 ` ✓ Xe.CI.BAT: success for drm/xe: Poll GT for C6 before D3 (rev2) Patchwork
` (2 subsequent siblings)
4 siblings, 1 reply; 11+ messages in thread
From: sashiko-bot @ 2026-09-15 21:20 UTC (permalink / raw)
To: Vinay Belgaumkar; +Cc: intel-xe
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] drm/xe: D3cold runtime suspend always fails due to C6 check after GT PG disable
--
commit 691645f0da262033183939383983163842757c50
Author: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
drm/xe: Poll GT for C6 before D3
This commit adds a check for GT C6 state before the D3 transition in the
runtime suspend flow, aborting and resuming if the check fails.
> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> index 00b2b5dfb8f6c..488745ce0473f 100644
> --- a/drivers/gpu/drm/xe/xe_pci.c
> +++ b/drivers/gpu/drm/xe/xe_pci.c
[ ... ]
> @@ -1394,6 +1394,17 @@ static int xe_pci_runtime_suspend(struct device *dev)
> if (err)
> return err;
>
> + err = xe_pm_check_device_idle(xe);
> + if (err) {
> + drm_dbg(&xe->drm, "Resuming - Device idle check failed!");
> + ret = xe_pm_runtime_resume(xe);
[Severity: Medium]
Will this idle check always fail when D3cold is allowed?
Looking at the sequence, xe_pci_runtime_suspend() calls
xe_pm_runtime_suspend() right before this check. When D3cold is allowed,
xe_pm_runtime_suspend() executes xe_gt_suspend():
drivers/gpu/drm/xe/xe_pm.c:xe_pm_runtime_suspend() {
...
for_each_gt(gt, xe, id) {
err = xe->d3cold.allowed ? xe_gt_suspend(gt) : xe_gt_runtime_suspend(gt);
...
}
xe_gt_suspend() then prepares the GT for power removal by explicitly disabling
power gating:
drivers/gpu/drm/xe/xe_gt.c:xe_gt_suspend() {
...
xe_gt_idle_disable_pg(gt);
...
}
Because xe_gt_idle_disable_pg() writes 0 to the POWERGATE_ENABLE register,
the hardware is prevented from entering the C6 power gating state. Won't
the subsequent poll for GT_IDLE_C6 in xe_pm_check_device_idle() always
timeout and return -EAGAIN, causing the device to constantly abort suspend
and immediately resume?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260915210113.2915363-1-vinay.belgaumkar@intel.com?part=1
^ permalink raw reply [flat|nested] 11+ messages in thread
* ✓ Xe.CI.BAT: success for drm/xe: Poll GT for C6 before D3 (rev2)
2026-09-15 21:01 [PATCH v5] drm/xe: Poll GT for C6 before D3 Vinay Belgaumkar
2026-09-15 21:14 ` ✓ CI.KUnit: success for drm/xe: Poll GT for C6 before D3 (rev2) Patchwork
2026-09-15 21:20 ` [PATCH v5] drm/xe: Poll GT for C6 before D3 sashiko-bot
@ 2026-09-15 21:51 ` Patchwork
2026-09-16 4:04 ` ✓ Xe.CI.FULL: " Patchwork
2026-09-16 12:19 ` [PATCH v5] drm/xe: Poll GT for C6 before D3 Rodrigo Vivi
4 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2026-09-15 21:51 UTC (permalink / raw)
To: Vinay Belgaumkar; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 1422 bytes --]
== Series Details ==
Series: drm/xe: Poll GT for C6 before D3 (rev2)
URL : https://patchwork.freedesktop.org/series/174091/
State : success
== Summary ==
CI Bug Log - changes from xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8_BAT -> xe-pw-174091v2_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-174091v2_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@core_hotunplug@unbind-rebind:
- bat-bmg-2: [PASS][1] -> [ABORT][2] ([Intel XE#8007])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/bat-bmg-2/igt@core_hotunplug@unbind-rebind.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/bat-bmg-2/igt@core_hotunplug@unbind-rebind.html
[Intel XE#8007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8007
Build changes
-------------
* Linux: xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8 -> xe-pw-174091v2
IGT_9098: 9098
xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8: 0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8
xe-pw-174091v2: 174091v2
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/index.html
[-- Attachment #2: Type: text/html, Size: 1987 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* ✓ Xe.CI.FULL: success for drm/xe: Poll GT for C6 before D3 (rev2)
2026-09-15 21:01 [PATCH v5] drm/xe: Poll GT for C6 before D3 Vinay Belgaumkar
` (2 preceding siblings ...)
2026-09-15 21:51 ` ✓ Xe.CI.BAT: success for drm/xe: Poll GT for C6 before D3 (rev2) Patchwork
@ 2026-09-16 4:04 ` Patchwork
2026-09-16 12:19 ` [PATCH v5] drm/xe: Poll GT for C6 before D3 Rodrigo Vivi
4 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2026-09-16 4:04 UTC (permalink / raw)
To: Vinay Belgaumkar; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 44531 bytes --]
== Series Details ==
Series: drm/xe: Poll GT for C6 before D3 (rev2)
URL : https://patchwork.freedesktop.org/series/174091/
State : success
== Summary ==
CI Bug Log - changes from xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8_FULL -> xe-pw-174091v2_FULL
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (2 -> 2)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-174091v2_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@intel_hwmon@hwmon-write:
- shard-lnl: NOTRUN -> [SKIP][1] ([Intel XE#1125] / [Intel XE#7312])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-2/igt@intel_hwmon@hwmon-write.html
* igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
- shard-lnl: NOTRUN -> [SKIP][2] ([Intel XE#3279])
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
* igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels:
- shard-bmg: NOTRUN -> [SKIP][3] ([Intel XE#2370])
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html
* igt@kms_big_fb@4-tiled-16bpp-rotate-270:
- shard-lnl: NOTRUN -> [SKIP][4] ([Intel XE#1407]) +3 other tests skip
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-2/igt@kms_big_fb@4-tiled-16bpp-rotate-270.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
- shard-lnl: NOTRUN -> [SKIP][5] ([Intel XE#3658] / [Intel XE#7360]) +1 other test skip
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-2/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html
* igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip:
- shard-lnl: NOTRUN -> [SKIP][6] ([Intel XE#7059] / [Intel XE#7085])
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-1/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip.html
* igt@kms_big_fb@y-tiled-addfb-size-offset-overflow:
- shard-bmg: NOTRUN -> [SKIP][7] ([Intel XE#607] / [Intel XE#7361])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html
* igt@kms_big_fb@yf-tiled-8bpp-rotate-90:
- shard-bmg: NOTRUN -> [SKIP][8] ([Intel XE#1124]) +1 other test skip
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_big_fb@yf-tiled-8bpp-rotate-90.html
* igt@kms_big_fb@yf-tiled-addfb:
- shard-lnl: NOTRUN -> [SKIP][9] ([Intel XE#1467] / [Intel XE#7367])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_big_fb@yf-tiled-addfb.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180:
- shard-lnl: NOTRUN -> [SKIP][10] ([Intel XE#1124]) +9 other tests skip
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180.html
* igt@kms_bw@connected-linear-tiling-2-displays-target-2160x1440p:
- shard-lnl: NOTRUN -> [SKIP][11] ([Intel XE#7679])
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-2/igt@kms_bw@connected-linear-tiling-2-displays-target-2160x1440p.html
* igt@kms_bw@connected-linear-tiling-4-displays-target-2560x1440p:
- shard-bmg: NOTRUN -> [SKIP][12] ([Intel XE#7679])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_bw@connected-linear-tiling-4-displays-target-2560x1440p.html
* igt@kms_bw@linear-tiling-3-displays-target-2560x1440p:
- shard-lnl: NOTRUN -> [SKIP][13] ([Intel XE#367]) +1 other test skip
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-1/igt@kms_bw@linear-tiling-3-displays-target-2560x1440p.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
- shard-bmg: [PASS][14] -> [INCOMPLETE][15] ([Intel XE#7084] / [Intel XE#8150]) +1 other test incomplete
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-1/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-7/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc:
- shard-lnl: NOTRUN -> [SKIP][16] ([Intel XE#3432]) +2 other tests skip
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc.html
* igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-rc-ccs-cc:
- shard-lnl: NOTRUN -> [SKIP][17] ([Intel XE#2887]) +11 other tests skip
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-2/igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-rc-ccs-cc.html
* igt@kms_ccs@random-ccs-data-y-tiled-gen12-rc-ccs:
- shard-bmg: NOTRUN -> [SKIP][18] ([Intel XE#2887]) +4 other tests skip
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_ccs@random-ccs-data-y-tiled-gen12-rc-ccs.html
* igt@kms_chamelium_color@ctm-max:
- shard-lnl: NOTRUN -> [SKIP][19] ([Intel XE#306] / [Intel XE#7358]) +1 other test skip
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_chamelium_color@ctm-max.html
* igt@kms_chamelium_color_pipeline@plane-ctm3x4-lut1d:
- shard-lnl: NOTRUN -> [SKIP][20] ([Intel XE#7358]) +1 other test skip
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-2/igt@kms_chamelium_color_pipeline@plane-ctm3x4-lut1d.html
* igt@kms_chamelium_hpd@dp-hpd:
- shard-lnl: NOTRUN -> [SKIP][21] ([Intel XE#373]) +7 other tests skip
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_chamelium_hpd@dp-hpd.html
* igt@kms_chamelium_hpd@dp-hpd-storm:
- shard-bmg: NOTRUN -> [SKIP][22] ([Intel XE#2252]) +2 other tests skip
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_chamelium_hpd@dp-hpd-storm.html
* igt@kms_color_pipeline@plane-lut1d-ctm3x4@pipe-b-plane-3:
- shard-bmg: NOTRUN -> [SKIP][23] ([Intel XE#6969]) +7 other tests skip
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_color_pipeline@plane-lut1d-ctm3x4@pipe-b-plane-3.html
* igt@kms_content_protection@lic-type-1:
- shard-lnl: NOTRUN -> [SKIP][24] ([Intel XE#7642]) +4 other tests skip
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_content_protection@lic-type-1.html
* igt@kms_content_protection@suspend-resume@pipe-a-dp-2:
- shard-bmg: NOTRUN -> [FAIL][25] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) +1 other test fail
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_content_protection@suspend-resume@pipe-a-dp-2.html
* igt@kms_cursor_crc@cursor-offscreen-512x512:
- shard-bmg: NOTRUN -> [SKIP][26] ([Intel XE#2321] / [Intel XE#7355]) +1 other test skip
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_cursor_crc@cursor-offscreen-512x512.html
* igt@kms_cursor_crc@cursor-onscreen-512x170:
- shard-lnl: NOTRUN -> [SKIP][27] ([Intel XE#2321] / [Intel XE#7355])
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-2/igt@kms_cursor_crc@cursor-onscreen-512x170.html
* igt@kms_cursor_crc@cursor-rapid-movement-64x21:
- shard-lnl: NOTRUN -> [SKIP][28] ([Intel XE#1424]) +3 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_cursor_crc@cursor-rapid-movement-64x21.html
* igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic:
- shard-lnl: NOTRUN -> [SKIP][29] ([Intel XE#309] / [Intel XE#7343]) +3 other tests skip
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-1/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
* igt@kms_dp_link_training@non-uhbr-mst:
- shard-lnl: NOTRUN -> [SKIP][30] ([Intel XE#4354] / [Intel XE#5882])
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-1/igt@kms_dp_link_training@non-uhbr-mst.html
* igt@kms_dsc@dsc-fractional-bpp-with-bpc:
- shard-bmg: NOTRUN -> [SKIP][31] ([Intel XE#8265])
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html
* igt@kms_dsc@dsc-with-bpc:
- shard-lnl: NOTRUN -> [SKIP][32] ([Intel XE#8265]) +2 other tests skip
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_dsc@dsc-with-bpc.html
* igt@kms_feature_discovery@dp-mst:
- shard-lnl: NOTRUN -> [SKIP][33] ([Intel XE#1137] / [Intel XE#2375])
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_feature_discovery@dp-mst.html
* igt@kms_flip@2x-dpms-vs-vblank-race:
- shard-lnl: NOTRUN -> [SKIP][34] ([Intel XE#1421]) +7 other tests skip
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-2/igt@kms_flip@2x-dpms-vs-vblank-race.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-lnl: NOTRUN -> [FAIL][35] ([Intel XE#301]) +1 other test fail
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
* igt@kms_flip_scaled_crc@flip-32bpp-linear-to-32bpp-linear-reflect-x:
- shard-lnl: NOTRUN -> [SKIP][36] ([Intel XE#7179])
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_flip_scaled_crc@flip-32bpp-linear-to-32bpp-linear-reflect-x.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling:
- shard-lnl: NOTRUN -> [SKIP][37] ([Intel XE#1397] / [Intel XE#1745] / [Intel XE#7385] / [Intel XE#9144]) +2 other tests skip
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-2/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode:
- shard-lnl: NOTRUN -> [SKIP][38] ([Intel XE#1397] / [Intel XE#7385] / [Intel XE#9144]) +2 other tests skip
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling:
- shard-bmg: NOTRUN -> [SKIP][39] ([Intel XE#7178] / [Intel XE#7351]) +1 other test skip
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling:
- shard-lnl: NOTRUN -> [SKIP][40] ([Intel XE#7178] / [Intel XE#7351]) +1 other test skip
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling.html
* igt@kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-render:
- shard-lnl: NOTRUN -> [SKIP][41] ([Intel XE#6312] / [Intel XE#651]) +15 other tests skip
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@drrs-rgb565-draw-render:
- shard-bmg: NOTRUN -> [SKIP][42] ([Intel XE#2311]) +10 other tests skip
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_frontbuffer_tracking@drrs-rgb565-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-render:
- shard-bmg: NOTRUN -> [SKIP][43] ([Intel XE#4141])
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-abgr161616f-draw-mmap-wc:
- shard-lnl: NOTRUN -> [SKIP][44] ([Intel XE#7061] / [Intel XE#7356]) +1 other test skip
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-1/igt@kms_frontbuffer_tracking@fbc-abgr161616f-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcdrrs-argb161616f-draw-render:
- shard-bmg: NOTRUN -> [SKIP][45] ([Intel XE#7061] / [Intel XE#7356]) +1 other test skip
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_frontbuffer_tracking@fbcdrrs-argb161616f-draw-render.html
* igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-shrfb-pgflip-blt:
- shard-lnl: NOTRUN -> [SKIP][46] ([Intel XE#6312]) +10 other tests skip
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-shrfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-onoff:
- shard-lnl: NOTRUN -> [SKIP][47] ([Intel XE#7865]) +25 other tests skip
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-onoff.html
* igt@kms_frontbuffer_tracking@hdr-argb161616f-draw-render:
- shard-lnl: NOTRUN -> [SKIP][48] ([Intel XE#7061]) +4 other tests skip
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-2/igt@kms_frontbuffer_tracking@hdr-argb161616f-draw-render.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render:
- shard-lnl: NOTRUN -> [SKIP][49] ([Intel XE#656] / [Intel XE#7905]) +36 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-spr-indfb-draw-render:
- shard-bmg: NOTRUN -> [SKIP][50] ([Intel XE#2313]) +13 other tests skip
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-spr-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-cur-indfb-move:
- shard-lnl: NOTRUN -> [SKIP][51] ([Intel XE#7905]) +49 other tests skip
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-cur-indfb-move.html
* igt@kms_frontbuffer_tracking@psrhdr-argb161616f-draw-render:
- shard-bmg: NOTRUN -> [SKIP][52] ([Intel XE#7061]) +1 other test skip
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_frontbuffer_tracking@psrhdr-argb161616f-draw-render.html
* igt@kms_hdmi_inject@inject-4k:
- shard-lnl: NOTRUN -> [SKIP][53] ([Intel XE#1470])
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-2/igt@kms_hdmi_inject@inject-4k.html
* igt@kms_hdr@static-toggle-suspend:
- shard-lnl: NOTRUN -> [SKIP][54] ([Intel XE#1503])
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-1/igt@kms_hdr@static-toggle-suspend.html
* igt@kms_joiner@basic-max-non-joiner:
- shard-lnl: NOTRUN -> [SKIP][55] ([Intel XE#4298] / [Intel XE#5873])
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_joiner@basic-max-non-joiner.html
* igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
- shard-bmg: NOTRUN -> [SKIP][56] ([Intel XE#7591])
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
* igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping:
- shard-bmg: NOTRUN -> [SKIP][57] ([Intel XE#7283]) +1 other test skip
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping.html
* igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier:
- shard-lnl: NOTRUN -> [SKIP][58] ([Intel XE#7283]) +4 other tests skip
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-2/igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier.html
* igt@kms_plane_lowres@tiling-yf:
- shard-lnl: NOTRUN -> [SKIP][59] ([Intel XE#599])
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-1/igt@kms_plane_lowres@tiling-yf.html
* igt@kms_plane_multiple@2x-tiling-none:
- shard-lnl: NOTRUN -> [SKIP][60] ([Intel XE#4596] / [Intel XE#5854]) +1 other test skip
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_plane_multiple@2x-tiling-none.html
* igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-c:
- shard-lnl: NOTRUN -> [SKIP][61] ([Intel XE#2763] / [Intel XE#6886]) +13 other tests skip
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-c.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5:
- shard-bmg: NOTRUN -> [SKIP][62] ([Intel XE#2763] / [Intel XE#6886]) +4 other tests skip
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5.html
* igt@kms_pm_dc@dc3co-after-dc6@pr-xrgb8888:
- shard-lnl: NOTRUN -> [SKIP][63] ([Intel XE#8395] / [Intel XE#8396]) +1 other test skip
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_pm_dc@dc3co-after-dc6@pr-xrgb8888.html
* igt@kms_pm_dc@dc3co-after-dc6@psr2-yuv420:
- shard-lnl: NOTRUN -> [SKIP][64] ([Intel XE#8396]) +1 other test skip
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_pm_dc@dc3co-after-dc6@psr2-yuv420.html
* igt@kms_pm_rpm@dpms-mode-unset-lpsp:
- shard-bmg: NOTRUN -> [SKIP][65] ([Intel XE#1439] / [Intel XE#7402] / [Intel XE#836])
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf:
- shard-lnl: NOTRUN -> [SKIP][66] ([Intel XE#2893] / [Intel XE#4608] / [Intel XE#7304]) +2 other tests skip
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-1/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf@pipe-b-edp-1:
- shard-lnl: NOTRUN -> [SKIP][67] ([Intel XE#4608] / [Intel XE#7304]) +2 other tests skip
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-1/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf@pipe-b-edp-1.html
* igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-sf@pipe-a-edp-1:
- shard-lnl: NOTRUN -> [SKIP][68] ([Intel XE#4608]) +2 other tests skip
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-sf@pipe-a-edp-1.html
* igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-fully-sf:
- shard-lnl: NOTRUN -> [SKIP][69] ([Intel XE#2893] / [Intel XE#7304]) +1 other test skip
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@psr2-plane-move-sf-dmg-area:
- shard-bmg: NOTRUN -> [SKIP][70] ([Intel XE#1489]) +2 other tests skip
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_psr2_sf@psr2-plane-move-sf-dmg-area.html
* igt@kms_psr2_su@frontbuffer-xrgb8888:
- shard-lnl: NOTRUN -> [SKIP][71] ([Intel XE#1128] / [Intel XE#7413])
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-2/igt@kms_psr2_su@frontbuffer-xrgb8888.html
* igt@kms_psr@pr-no-drrs:
- shard-lnl: NOTRUN -> [SKIP][72] ([Intel XE#1406]) +6 other tests skip
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@kms_psr@pr-no-drrs.html
* igt@kms_psr@psr2-sprite-plane-onoff:
- shard-bmg: NOTRUN -> [SKIP][73] ([Intel XE#2234] / [Intel XE#2850]) +1 other test skip
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_psr@psr2-sprite-plane-onoff.html
* igt@kms_rotation_crc@bad-pixel-format:
- shard-bmg: NOTRUN -> [SKIP][74] ([Intel XE#3904] / [Intel XE#7342])
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_rotation_crc@bad-pixel-format.html
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-180:
- shard-lnl: NOTRUN -> [SKIP][75] ([Intel XE#1127] / [Intel XE#5813])
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-2/igt@kms_rotation_crc@primary-y-tiled-reflect-x-180.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
- shard-lnl: NOTRUN -> [SKIP][76] ([Intel XE#3414] / [Intel XE#3904] / [Intel XE#7342])
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-1/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html
* igt@kms_scaling_modes@scaling-mode-center:
- shard-bmg: NOTRUN -> [SKIP][77] ([Intel XE#2413])
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_scaling_modes@scaling-mode-center.html
* igt@kms_vrr@flip-basic:
- shard-bmg: NOTRUN -> [SKIP][78] ([Intel XE#1499] / [Intel XE#9271])
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@kms_vrr@flip-basic.html
* igt@sriov_basic@pf-unbind-with-vfs-enabled-numvfs-all:
- shard-lnl: NOTRUN -> [SKIP][79] ([Intel XE#8866])
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-1/igt@sriov_basic@pf-unbind-with-vfs-enabled-numvfs-all.html
* igt@xe_cw_post_sync@walker-post-sync:
- shard-bmg: NOTRUN -> [SKIP][80] ([Intel XE#8608])
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@xe_cw_post_sync@walker-post-sync.html
* igt@xe_evict@evict-beng-mixed-threads-large-multi-vm:
- shard-lnl: NOTRUN -> [SKIP][81] ([Intel XE#6540] / [Intel XE#688]) +9 other tests skip
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@xe_evict@evict-beng-mixed-threads-large-multi-vm.html
* igt@xe_evict@evict-small-multi-queue-priority:
- shard-bmg: NOTRUN -> [SKIP][82] ([Intel XE#8370])
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@xe_evict@evict-small-multi-queue-priority.html
* igt@xe_exec_balancer@once-parallel-userptr-rebind:
- shard-lnl: NOTRUN -> [SKIP][83] ([Intel XE#7482]) +18 other tests skip
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-1/igt@xe_exec_balancer@once-parallel-userptr-rebind.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-invalidate-race:
- shard-lnl: NOTRUN -> [SKIP][84] ([Intel XE#1392]) +7 other tests skip
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-invalidate-race.html
* igt@xe_exec_basic@multigpu-no-exec-bindexecqueue:
- shard-bmg: NOTRUN -> [SKIP][85] ([Intel XE#2322] / [Intel XE#7372]) +1 other test skip
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue.html
* igt@xe_exec_fault_mode@many-multi-queue-rebind-prefetch:
- shard-bmg: NOTRUN -> [SKIP][86] ([Intel XE#8374]) +1 other test skip
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@xe_exec_fault_mode@many-multi-queue-rebind-prefetch.html
* igt@xe_exec_fault_mode@once-multi-queue-userptr-rebind:
- shard-lnl: NOTRUN -> [SKIP][87] ([Intel XE#8374]) +8 other tests skip
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-2/igt@xe_exec_fault_mode@once-multi-queue-userptr-rebind.html
* igt@xe_exec_mix_modes@exec-multi-queue-spinner-interrupted-lr:
- shard-lnl: NOTRUN -> [SKIP][88] ([Intel XE#9003])
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@xe_exec_mix_modes@exec-multi-queue-spinner-interrupted-lr.html
* igt@xe_exec_multi_queue@few-execs-preempt-mode-close-fd-smem:
- shard-bmg: NOTRUN -> [SKIP][89] ([Intel XE#8364]) +6 other tests skip
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@xe_exec_multi_queue@few-execs-preempt-mode-close-fd-smem.html
* igt@xe_exec_multi_queue@many-queues-preempt-mode-userptr:
- shard-lnl: NOTRUN -> [SKIP][90] ([Intel XE#8364]) +27 other tests skip
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@xe_exec_multi_queue@many-queues-preempt-mode-userptr.html
* igt@xe_exec_reset@cm-multi-queue-close-fd:
- shard-bmg: NOTRUN -> [SKIP][91] ([Intel XE#8369])
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@xe_exec_reset@cm-multi-queue-close-fd.html
* igt@xe_exec_reset@gt-reset-fault-injection:
- shard-lnl: NOTRUN -> [DMESG-WARN][92] ([Intel XE#9130])
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@xe_exec_reset@gt-reset-fault-injection.html
* igt@xe_exec_reset@gt-stress-reset-memory-pressure:
- shard-lnl: [PASS][93] -> [DMESG-WARN][94] ([Intel XE#8652])
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-lnl-4/igt@xe_exec_reset@gt-stress-reset-memory-pressure.html
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-3/igt@xe_exec_reset@gt-stress-reset-memory-pressure.html
* igt@xe_exec_threads@threads-hang-userptr-invalidate-race:
- shard-lnl: [PASS][95] -> [FAIL][96] ([Intel XE#9096])
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-lnl-3/igt@xe_exec_threads@threads-hang-userptr-invalidate-race.html
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-5/igt@xe_exec_threads@threads-hang-userptr-invalidate-race.html
* igt@xe_exec_threads@threads-multi-queue-cm-shared-vm-userptr-rebind:
- shard-bmg: NOTRUN -> [SKIP][97] ([Intel XE#8378])
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@xe_exec_threads@threads-multi-queue-cm-shared-vm-userptr-rebind.html
* igt@xe_exec_threads@threads-multi-queue-mixed-shared-vm-rebind:
- shard-lnl: NOTRUN -> [SKIP][98] ([Intel XE#8378]) +7 other tests skip
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@xe_exec_threads@threads-multi-queue-mixed-shared-vm-rebind.html
* igt@xe_gpgpu_fill@offset-4x4:
- shard-lnl: NOTRUN -> [SKIP][99] ([Intel XE#7954])
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-1/igt@xe_gpgpu_fill@offset-4x4.html
* igt@xe_mmap@pci-membarrier:
- shard-lnl: NOTRUN -> [SKIP][100] ([Intel XE#5100] / [Intel XE#7322] / [Intel XE#7408])
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-2/igt@xe_mmap@pci-membarrier.html
* igt@xe_multigpu_svm@mgpu-pagefault-conflict:
- shard-lnl: NOTRUN -> [SKIP][101] ([Intel XE#6964]) +2 other tests skip
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-1/igt@xe_multigpu_svm@mgpu-pagefault-conflict.html
* igt@xe_multigpu_svm@mgpu-xgpu-access-prefetch:
- shard-bmg: NOTRUN -> [SKIP][102] ([Intel XE#6964])
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@xe_multigpu_svm@mgpu-xgpu-access-prefetch.html
* igt@xe_page_reclaim@basic-mixed:
- shard-bmg: NOTRUN -> [SKIP][103] ([Intel XE#7793])
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@xe_page_reclaim@basic-mixed.html
* igt@xe_page_reclaim@binds-null-vma:
- shard-lnl: NOTRUN -> [SKIP][104] ([Intel XE#7793]) +1 other test skip
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@xe_page_reclaim@binds-null-vma.html
* igt@xe_pat@l2-flush-opt-svm-pat-restrict:
- shard-lnl: NOTRUN -> [SKIP][105] ([Intel XE#7590] / [Intel XE#7772])
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-2/igt@xe_pat@l2-flush-opt-svm-pat-restrict.html
* igt@xe_pat@pat-index-xelp:
- shard-bmg: NOTRUN -> [SKIP][106] ([Intel XE#2245] / [Intel XE#7590])
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@xe_pat@pat-index-xelp.html
* igt@xe_pm@d3cold-mmap-vram:
- shard-lnl: NOTRUN -> [SKIP][107] ([Intel XE#2284] / [Intel XE#366] / [Intel XE#7370])
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-2/igt@xe_pm@d3cold-mmap-vram.html
* igt@xe_prefetch_fault@prefetch-fault:
- shard-lnl: NOTRUN -> [SKIP][108] ([Intel XE#7599])
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@xe_prefetch_fault@prefetch-fault.html
* igt@xe_prefetch_fault@prefetch-fault-svm:
- shard-bmg: NOTRUN -> [SKIP][109] ([Intel XE#7599])
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@xe_prefetch_fault@prefetch-fault-svm.html
* igt@xe_query@multigpu-query-pxp-status:
- shard-lnl: NOTRUN -> [SKIP][110] ([Intel XE#944]) +1 other test skip
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@xe_query@multigpu-query-pxp-status.html
* igt@xe_query@multigpu-query-uc-fw-version-guc:
- shard-bmg: NOTRUN -> [SKIP][111] ([Intel XE#944])
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@xe_query@multigpu-query-uc-fw-version-guc.html
* igt@xe_sriov_admin@bulk-sched-priority-vfs-disabled:
- shard-lnl: NOTRUN -> [SKIP][112] ([Intel XE#7174]) +1 other test skip
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-1/igt@xe_sriov_admin@bulk-sched-priority-vfs-disabled.html
* igt@xe_sriov_flr@flr-twice:
- shard-lnl: NOTRUN -> [SKIP][113] ([Intel XE#4273])
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@xe_sriov_flr@flr-twice.html
* igt@xe_sriov_scheduling@nonpreempt-engine-resets-low-priority:
- shard-lnl: NOTRUN -> [SKIP][114] ([Intel XE#8339])
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-1/igt@xe_sriov_scheduling@nonpreempt-engine-resets-low-priority.html
* igt@xe_survivability@runtime-survivability:
- shard-lnl: NOTRUN -> [SKIP][115] ([Intel XE#8415])
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-4/igt@xe_survivability@runtime-survivability.html
* igt@xe_vm@overcommit-fault-vram-lr-no-overcommit:
- shard-lnl: NOTRUN -> [SKIP][116] ([Intel XE#7892])
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-1/igt@xe_vm@overcommit-fault-vram-lr-no-overcommit.html
* igt@xe_wedged@basic-wedged:
- shard-lnl: NOTRUN -> [ABORT][117] ([Intel XE#8963])
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-lnl-2/igt@xe_wedged@basic-wedged.html
#### Possible fixes ####
* igt@kms_hdr@invalid-hdr:
- shard-bmg: [SKIP][118] ([Intel XE#1503]) -> [PASS][119]
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-10/igt@kms_hdr@invalid-hdr.html
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-8/igt@kms_hdr@invalid-hdr.html
* igt@xe_pm@s3-basic-exec:
- shard-bmg: [INCOMPLETE][120] ([Intel XE#8175]) -> [PASS][121]
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-6/igt@xe_pm@s3-basic-exec.html
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-9/igt@xe_pm@s3-basic-exec.html
#### Warnings ####
* igt@kms_tiled_display@basic-test-pattern:
- shard-bmg: [SKIP][122] ([Intel XE#2426] / [Intel XE#5848]) -> [FAIL][123] ([Intel XE#1729] / [Intel XE#7424])
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-8/igt@kms_tiled_display@basic-test-pattern.html
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-3/igt@kms_tiled_display@basic-test-pattern.html
* igt@xe_exec_reset@gt-reset-fault-injection:
- shard-bmg: [DMESG-WARN][124] ([Intel XE#9130]) -> [ABORT][125] ([Intel XE#9131] / [Intel XE#9145])
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8/shard-bmg-6/igt@xe_exec_reset@gt-reset-fault-injection.html
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/shard-bmg-8/igt@xe_exec_reset@gt-reset-fault-injection.html
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1125]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1125
[Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
[Intel XE#1128]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1128
[Intel XE#1137]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1137
[Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1397
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
[Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
[Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
[Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
[Intel XE#1467]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1467
[Intel XE#1470]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1470
[Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
[Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499
[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#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2245]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2245
[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#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2370
[Intel XE#2375]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2375
[Intel XE#2413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2413
[Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
[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#2893]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2893
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#3279]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3279
[Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
[Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
[Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
[Intel XE#3658]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3658
[Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4273]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4273
[Intel XE#4298]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4298
[Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
[Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596
[Intel XE#4608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4608
[Intel XE#5100]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5100
[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#5854]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5854
[Intel XE#5873]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5873
[Intel XE#5882]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5882
[Intel XE#599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/599
[Intel XE#607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/607
[Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312
[Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
[Intel XE#6540]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6540
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886
[Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
[Intel XE#6969]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6969
[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#7084]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7084
[Intel XE#7085]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7085
[Intel XE#7174]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7174
[Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
[Intel XE#7179]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7179
[Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
[Intel XE#7304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7304
[Intel XE#7312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7312
[Intel XE#7322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7322
[Intel XE#7342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7342
[Intel XE#7343]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7343
[Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351
[Intel XE#7355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7355
[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#7360]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7360
[Intel XE#7361]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7361
[Intel XE#7367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7367
[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#7385]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7385
[Intel XE#7402]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7402
[Intel XE#7408]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7408
[Intel XE#7413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7413
[Intel XE#7424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7424
[Intel XE#7482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7482
[Intel XE#7590]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7590
[Intel XE#7591]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7591
[Intel XE#7599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7599
[Intel XE#7642]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7642
[Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679
[Intel XE#7772]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7772
[Intel XE#7793]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7793
[Intel XE#7865]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7865
[Intel XE#7892]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7892
[Intel XE#7905]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7905
[Intel XE#7954]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7954
[Intel XE#8150]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8150
[Intel XE#8175]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8175
[Intel XE#8265]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8265
[Intel XE#8339]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8339
[Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
[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#8395]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8395
[Intel XE#8396]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8396
[Intel XE#8415]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8415
[Intel XE#8608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8608
[Intel XE#8652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8652
[Intel XE#8866]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8866
[Intel XE#8963]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8963
[Intel XE#9003]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9003
[Intel XE#9096]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9096
[Intel XE#9130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9130
[Intel XE#9131]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9131
[Intel XE#9144]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9144
[Intel XE#9145]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9145
[Intel XE#9271]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9271
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
Build changes
-------------
* Linux: xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8 -> xe-pw-174091v2
IGT_9098: 9098
xe-5755-0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8: 0fb8d1900f1a6b9d21aadbfa5f784979b950bcf8
xe-pw-174091v2: 174091v2
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174091v2/index.html
[-- Attachment #2: Type: text/html, Size: 50231 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v5] drm/xe: Poll GT for C6 before D3
2026-09-15 21:01 [PATCH v5] drm/xe: Poll GT for C6 before D3 Vinay Belgaumkar
` (3 preceding siblings ...)
2026-09-16 4:04 ` ✓ Xe.CI.FULL: " Patchwork
@ 2026-09-16 12:19 ` Rodrigo Vivi
2026-09-16 15:05 ` Belgaumkar, Vinay
4 siblings, 1 reply; 11+ messages in thread
From: Rodrigo Vivi @ 2026-09-16 12:19 UTC (permalink / raw)
To: Vinay Belgaumkar; +Cc: intel-xe, Badal Nilawar
On Tue, Sep 15, 2026 at 02:01:13PM -0700, Vinay Belgaumkar wrote:
> Ensure GT C6 state before D3 transition in runtime suspend flow.
> This avoids the scenario where GT is being accessed after D3 state
> is programmed. If the check for C6 fails, resume the device so it is
> not stuck in an intermediate state.
>
> v2: Force resume when we cancel suspend due to C6 check (Sashiko)
> v3: Abort the suspend properly when idle check fails (Sashiko)
> v4: Only check for C6 during suspend (Rodrigo). Have check in
> xe_pci_runtime_suspend() instead of xe_pci_suspend().
> v5: Don't checkfor PVC (Sashiko), rename function from_device_c6
> to _device_idle
>
> Cc: Badal Nilawar <badal.nilawar@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
> ---
> drivers/gpu/drm/xe/xe_gt_idle.c | 36 +++++++++++++++++++++++++++++++++
> drivers/gpu/drm/xe/xe_gt_idle.h | 1 +
> drivers/gpu/drm/xe/xe_pci.c | 13 +++++++++++-
> drivers/gpu/drm/xe/xe_pm.c | 24 ++++++++++++++++++++++
> drivers/gpu/drm/xe/xe_pm.h | 1 +
> 5 files changed, 74 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_gt_idle.c b/drivers/gpu/drm/xe/xe_gt_idle.c
> index c208d7563e36..8242feede1dd 100644
> --- a/drivers/gpu/drm/xe/xe_gt_idle.c
> +++ b/drivers/gpu/drm/xe/xe_gt_idle.c
> @@ -8,10 +8,12 @@
> #include <drm/drm_managed.h>
>
> #include <generated/xe_wa_oob.h>
> +#include <linux/iopoll.h>
> #include "xe_force_wake.h"
> #include "xe_device.h"
> #include "xe_gt.h"
> #include "xe_gt_idle.h"
> +#include "xe_gt_printk.h"
> #include "xe_gt_sysfs.h"
> #include "xe_guc_pc.h"
> #include "regs/xe_gt_regs.h"
> @@ -451,3 +453,37 @@ int xe_gt_idle_disable_c6(struct xe_gt *gt)
>
> return 0;
> }
> +
> +static int wait_for_gt_c6_state(struct xe_gt *gt, u32 timeout_ms)
> +{
> + struct xe_guc_pc *pc = >->uc.guc.pc;
> + enum xe_gt_idle_state state;
> +
> + return poll_timeout_us(state = gt->gtidle.idle_status(pc),
> + state == GT_IDLE_C6,
> + 20,
> + timeout_ms * USEC_PER_MSEC,
> + false);
> +}
> +
> +/**
> + * xe_gt_idle_wait_for_c6 - Poll for GT C6
> + * @gt: GT object
> + * @timeout_ms: wait time in ms
> + *
> + * This function waits for GT to enter C6.
> + *
> + * Return: 0 on success, -EAGAIN otherwise
> + */
> +int xe_gt_idle_wait_for_c6(struct xe_gt *gt, u32 timeout_ms)
> +{
> + if (IS_SRIOV_VF(gt_to_xe(gt)))
> + return 0;
Why?
And why not the PVC check right in here?
> +
> + if (wait_for_gt_c6_state(gt, timeout_ms)) {
> + xe_gt_dbg(gt, "GT is not in C6\n");
> + return -EAGAIN;
> + }
> +
> + return 0;
> +}
> diff --git a/drivers/gpu/drm/xe/xe_gt_idle.h b/drivers/gpu/drm/xe/xe_gt_idle.h
> index 9c34a155e102..2c8e9adf4a68 100644
> --- a/drivers/gpu/drm/xe/xe_gt_idle.h
> +++ b/drivers/gpu/drm/xe/xe_gt_idle.h
> @@ -18,5 +18,6 @@ void xe_gt_idle_enable_pg(struct xe_gt *gt);
> void xe_gt_idle_disable_pg(struct xe_gt *gt);
> int xe_gt_idle_pg_print(struct xe_gt *gt, struct drm_printer *p);
> u64 xe_gt_idle_residency_msec(struct xe_gt_idle *gtidle);
> +int xe_gt_idle_wait_for_c6(struct xe_gt *gt, u32 timeout_ms);
>
> #endif /* _XE_GT_IDLE_H_ */
> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> index ab4da1d9a9f1..379795ac5e7b 100644
> --- a/drivers/gpu/drm/xe/xe_pci.c
> +++ b/drivers/gpu/drm/xe/xe_pci.c
> @@ -1381,7 +1381,7 @@ static int xe_pci_runtime_suspend(struct device *dev)
> {
> struct pci_dev *pdev = to_pci_dev(dev);
> struct xe_device *xe = pdev_to_xe_device(pdev);
> - int err;
> + int err, ret;
>
> /*
> * We hold an additional reference to the runtime PM to keep PF in D0
> @@ -1396,6 +1396,17 @@ static int xe_pci_runtime_suspend(struct device *dev)
> if (err)
> return err;
>
> + err = xe_pm_check_device_idle(xe);
I still don't like _idle prefix in here...
> + if (err) {
> + drm_dbg(&xe->drm, "Resuming - Device idle check failed!");
> + ret = xe_pm_runtime_resume(xe);
> + if (ret) {
> + drm_err(&xe->drm, "Resume failed after suspend was canceled");
> + return ret;
> + }
> + return err;
> + }
> +
> pci_save_state(pdev);
>
> if (xe->d3cold.allowed) {
> diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
> index f517bf453b54..f03a463d2a05 100644
> --- a/drivers/gpu/drm/xe/xe_pm.c
> +++ b/drivers/gpu/drm/xe/xe_pm.c
> @@ -1030,6 +1030,30 @@ void xe_pm_d3cold_allowed_toggle(struct xe_device *xe)
> mutex_unlock(&xe->d3cold.lock);
> }
>
> +/**
> + * xe_pm_check_device_idle() - Check if all GTs are idle.
> + * @xe: xe device instance
> + *
> + * One of the ways to do this is to check for GT C6 state. This check
> + * will fail if some component is holding a forcewake, for example.
> + *
> + * Return: 0 on success, -EAGAIN on failure
> + */
> +int xe_pm_check_device_idle(struct xe_device *xe)
> +{
> + struct xe_gt *gt;
> + u8 id;
> +
> + if (xe->info.platform == XE_PVC)
> + return 0;
PVC check belongs inside the gt_idle component,
where the RC xe decisions are made
> +
> + for_each_gt(gt, xe, id)
> + if (xe_gt_idle_wait_for_c6(gt, 200))
> + return -EAGAIN;
> +
> + return 0;
> +}
But anyway, why this indirection through xe_pm? Why can't the xe_pci call
directly the gt_idle waiting for c6 inside the runtime_suspend function?
> +
> /**
> * xe_pm_module_init() - Perform xe_pm specific module initialization.
> *
> diff --git a/drivers/gpu/drm/xe/xe_pm.h b/drivers/gpu/drm/xe/xe_pm.h
> index 6d5ab09cb769..a4fdc9c5cb10 100644
> --- a/drivers/gpu/drm/xe/xe_pm.h
> +++ b/drivers/gpu/drm/xe/xe_pm.h
> @@ -36,6 +36,7 @@ void xe_pm_d3cold_allowed_toggle(struct xe_device *xe);
> bool xe_rpm_reclaim_safe(const struct xe_device *xe);
> struct task_struct *xe_pm_read_callback_task(struct xe_device *xe);
> int xe_pm_block_on_suspend(struct xe_device *xe);
> +int xe_pm_check_device_idle(struct xe_device *xe);
> void xe_pm_might_block_on_suspend(void);
> int xe_pm_module_init(void);
>
> --
> 2.38.1
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v5] drm/xe: Poll GT for C6 before D3
2026-09-15 21:20 ` [PATCH v5] drm/xe: Poll GT for C6 before D3 sashiko-bot
@ 2026-09-16 12:21 ` Rodrigo Vivi
2026-09-16 18:50 ` Belgaumkar, Vinay
0 siblings, 1 reply; 11+ messages in thread
From: Rodrigo Vivi @ 2026-09-16 12:21 UTC (permalink / raw)
To: sashiko-reviews; +Cc: Vinay Belgaumkar, intel-xe
On Tue, Sep 15, 2026 at 09:20:50PM +0000, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [Medium] drm/xe: D3cold runtime suspend always fails due to C6 check after GT PG disable
> --
>
> commit 691645f0da262033183939383983163842757c50
> Author: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
>
> drm/xe: Poll GT for C6 before D3
>
> This commit adds a check for GT C6 state before the D3 transition in the
> runtime suspend flow, aborting and resuming if the check fails.
>
> > diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> > index 00b2b5dfb8f6c..488745ce0473f 100644
> > --- a/drivers/gpu/drm/xe/xe_pci.c
> > +++ b/drivers/gpu/drm/xe/xe_pci.c
> [ ... ]
> > @@ -1394,6 +1394,17 @@ static int xe_pci_runtime_suspend(struct device *dev)
> > if (err)
> > return err;
> >
> > + err = xe_pm_check_device_idle(xe);
> > + if (err) {
> > + drm_dbg(&xe->drm, "Resuming - Device idle check failed!");
> > + ret = xe_pm_runtime_resume(xe);
>
> [Severity: Medium]
> Will this idle check always fail when D3cold is allowed?
>
> Looking at the sequence, xe_pci_runtime_suspend() calls
> xe_pm_runtime_suspend() right before this check. When D3cold is allowed,
> xe_pm_runtime_suspend() executes xe_gt_suspend():
>
> drivers/gpu/drm/xe/xe_pm.c:xe_pm_runtime_suspend() {
> ...
> for_each_gt(gt, xe, id) {
> err = xe->d3cold.allowed ? xe_gt_suspend(gt) : xe_gt_runtime_suspend(gt);
> ...
> }
>
> xe_gt_suspend() then prepares the GT for power removal by explicitly disabling
> power gating:
>
> drivers/gpu/drm/xe/xe_gt.c:xe_gt_suspend() {
> ...
> xe_gt_idle_disable_pg(gt);
> ...
> }
>
> Because xe_gt_idle_disable_pg() writes 0 to the POWERGATE_ENABLE register,
> the hardware is prevented from entering the C6 power gating state. Won't
> the subsequent poll for GT_IDLE_C6 in xe_pm_check_device_idle() always
> timeout and return -EAGAIN, causing the device to constantly abort suspend
> and immediately resume?
I believe this can be dismissed. But it would be good to run some experiments
to confirm this.
If this is right, then the CRI bug is a different FW bug...
>
> --
> Sashiko AI review · https://sashiko.dev/#/patchset/20260915210113.2915363-1-vinay.belgaumkar@intel.com?part=1
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v5] drm/xe: Poll GT for C6 before D3
2026-09-16 12:19 ` [PATCH v5] drm/xe: Poll GT for C6 before D3 Rodrigo Vivi
@ 2026-09-16 15:05 ` Belgaumkar, Vinay
2026-09-16 15:44 ` Rodrigo Vivi
0 siblings, 1 reply; 11+ messages in thread
From: Belgaumkar, Vinay @ 2026-09-16 15:05 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: intel-xe, Badal Nilawar
On 9/16/2026 5:19 AM, Rodrigo Vivi wrote:
> On Tue, Sep 15, 2026 at 02:01:13PM -0700, Vinay Belgaumkar wrote:
>> Ensure GT C6 state before D3 transition in runtime suspend flow.
>> This avoids the scenario where GT is being accessed after D3 state
>> is programmed. If the check for C6 fails, resume the device so it is
>> not stuck in an intermediate state.
>>
>> v2: Force resume when we cancel suspend due to C6 check (Sashiko)
>> v3: Abort the suspend properly when idle check fails (Sashiko)
>> v4: Only check for C6 during suspend (Rodrigo). Have check in
>> xe_pci_runtime_suspend() instead of xe_pci_suspend().
>> v5: Don't checkfor PVC (Sashiko), rename function from_device_c6
>> to _device_idle
>>
>> Cc: Badal Nilawar <badal.nilawar@intel.com>
>> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>> Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
>> ---
>> drivers/gpu/drm/xe/xe_gt_idle.c | 36 +++++++++++++++++++++++++++++++++
>> drivers/gpu/drm/xe/xe_gt_idle.h | 1 +
>> drivers/gpu/drm/xe/xe_pci.c | 13 +++++++++++-
>> drivers/gpu/drm/xe/xe_pm.c | 24 ++++++++++++++++++++++
>> drivers/gpu/drm/xe/xe_pm.h | 1 +
>> 5 files changed, 74 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_gt_idle.c b/drivers/gpu/drm/xe/xe_gt_idle.c
>> index c208d7563e36..8242feede1dd 100644
>> --- a/drivers/gpu/drm/xe/xe_gt_idle.c
>> +++ b/drivers/gpu/drm/xe/xe_gt_idle.c
>> @@ -8,10 +8,12 @@
>> #include <drm/drm_managed.h>
>>
>> #include <generated/xe_wa_oob.h>
>> +#include <linux/iopoll.h>
>> #include "xe_force_wake.h"
>> #include "xe_device.h"
>> #include "xe_gt.h"
>> #include "xe_gt_idle.h"
>> +#include "xe_gt_printk.h"
>> #include "xe_gt_sysfs.h"
>> #include "xe_guc_pc.h"
>> #include "regs/xe_gt_regs.h"
>> @@ -451,3 +453,37 @@ int xe_gt_idle_disable_c6(struct xe_gt *gt)
>>
>> return 0;
>> }
>> +
>> +static int wait_for_gt_c6_state(struct xe_gt *gt, u32 timeout_ms)
>> +{
>> + struct xe_guc_pc *pc = >->uc.guc.pc;
>> + enum xe_gt_idle_state state;
>> +
>> + return poll_timeout_us(state = gt->gtidle.idle_status(pc),
>> + state == GT_IDLE_C6,
>> + 20,
>> + timeout_ms * USEC_PER_MSEC,
>> + false);
>> +}
>> +
>> +/**
>> + * xe_gt_idle_wait_for_c6 - Poll for GT C6
>> + * @gt: GT object
>> + * @timeout_ms: wait time in ms
>> + *
>> + * This function waits for GT to enter C6.
>> + *
>> + * Return: 0 on success, -EAGAIN otherwise
>> + */
>> +int xe_gt_idle_wait_for_c6(struct xe_gt *gt, u32 timeout_ms)
>> +{
>> + if (IS_SRIOV_VF(gt_to_xe(gt)))
>> + return 0;
> Why?
We skip GuC RC init for VFs, so cannot check for it.
>
> And why not the PVC check right in here?
>
>> +
>> + if (wait_for_gt_c6_state(gt, timeout_ms)) {
>> + xe_gt_dbg(gt, "GT is not in C6\n");
>> + return -EAGAIN;
>> + }
>> +
>> + return 0;
>> +}
>> diff --git a/drivers/gpu/drm/xe/xe_gt_idle.h b/drivers/gpu/drm/xe/xe_gt_idle.h
>> index 9c34a155e102..2c8e9adf4a68 100644
>> --- a/drivers/gpu/drm/xe/xe_gt_idle.h
>> +++ b/drivers/gpu/drm/xe/xe_gt_idle.h
>> @@ -18,5 +18,6 @@ void xe_gt_idle_enable_pg(struct xe_gt *gt);
>> void xe_gt_idle_disable_pg(struct xe_gt *gt);
>> int xe_gt_idle_pg_print(struct xe_gt *gt, struct drm_printer *p);
>> u64 xe_gt_idle_residency_msec(struct xe_gt_idle *gtidle);
>> +int xe_gt_idle_wait_for_c6(struct xe_gt *gt, u32 timeout_ms);
>>
>> #endif /* _XE_GT_IDLE_H_ */
>> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
>> index ab4da1d9a9f1..379795ac5e7b 100644
>> --- a/drivers/gpu/drm/xe/xe_pci.c
>> +++ b/drivers/gpu/drm/xe/xe_pci.c
>> @@ -1381,7 +1381,7 @@ static int xe_pci_runtime_suspend(struct device *dev)
>> {
>> struct pci_dev *pdev = to_pci_dev(dev);
>> struct xe_device *xe = pdev_to_xe_device(pdev);
>> - int err;
>> + int err, ret;
>>
>> /*
>> * We hold an additional reference to the runtime PM to keep PF in D0
>> @@ -1396,6 +1396,17 @@ static int xe_pci_runtime_suspend(struct device *dev)
>> if (err)
>> return err;
>>
>> + err = xe_pm_check_device_idle(xe);
> I still don't like _idle prefix in here...
I initially had it as _check_device_c6, then realized it is a misleading
term.
>
>> + if (err) {
>> + drm_dbg(&xe->drm, "Resuming - Device idle check failed!");
>> + ret = xe_pm_runtime_resume(xe);
>> + if (ret) {
>> + drm_err(&xe->drm, "Resume failed after suspend was canceled");
>> + return ret;
>> + }
>> + return err;
>> + }
>> +
>> pci_save_state(pdev);
>>
>> if (xe->d3cold.allowed) {
>> diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
>> index f517bf453b54..f03a463d2a05 100644
>> --- a/drivers/gpu/drm/xe/xe_pm.c
>> +++ b/drivers/gpu/drm/xe/xe_pm.c
>> @@ -1030,6 +1030,30 @@ void xe_pm_d3cold_allowed_toggle(struct xe_device *xe)
>> mutex_unlock(&xe->d3cold.lock);
>> }
>>
>> +/**
>> + * xe_pm_check_device_idle() - Check if all GTs are idle.
>> + * @xe: xe device instance
>> + *
>> + * One of the ways to do this is to check for GT C6 state. This check
>> + * will fail if some component is holding a forcewake, for example.
>> + *
>> + * Return: 0 on success, -EAGAIN on failure
>> + */
>> +int xe_pm_check_device_idle(struct xe_device *xe)
>> +{
>> + struct xe_gt *gt;
>> + u8 id;
>> +
>> + if (xe->info.platform == XE_PVC)
>> + return 0;
> PVC check belongs inside the gt_idle component,
> where the RC xe decisions are made
Sure, I added it there since it is a device level flag.
>
>> +
>> + for_each_gt(gt, xe, id)
>> + if (xe_gt_idle_wait_for_c6(gt, 200))
>> + return -EAGAIN;
>> +
>> + return 0;
>> +}
> But anyway, why this indirection through xe_pm? Why can't the xe_pci call
> directly the gt_idle waiting for c6 inside the runtime_suspend function?
The only reason was that all gt_idle functions take GT as param, not Xe.
In that case, I would have had the for_all_gts loop in xe_pci, which I
was trying to avoid.
Thanks,
Vinay.
>
>> +
>> /**
>> * xe_pm_module_init() - Perform xe_pm specific module initialization.
>> *
>> diff --git a/drivers/gpu/drm/xe/xe_pm.h b/drivers/gpu/drm/xe/xe_pm.h
>> index 6d5ab09cb769..a4fdc9c5cb10 100644
>> --- a/drivers/gpu/drm/xe/xe_pm.h
>> +++ b/drivers/gpu/drm/xe/xe_pm.h
>> @@ -36,6 +36,7 @@ void xe_pm_d3cold_allowed_toggle(struct xe_device *xe);
>> bool xe_rpm_reclaim_safe(const struct xe_device *xe);
>> struct task_struct *xe_pm_read_callback_task(struct xe_device *xe);
>> int xe_pm_block_on_suspend(struct xe_device *xe);
>> +int xe_pm_check_device_idle(struct xe_device *xe);
>> void xe_pm_might_block_on_suspend(void);
>> int xe_pm_module_init(void);
>>
>> --
>> 2.38.1
>>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v5] drm/xe: Poll GT for C6 before D3
2026-09-16 15:05 ` Belgaumkar, Vinay
@ 2026-09-16 15:44 ` Rodrigo Vivi
2026-09-16 17:06 ` Belgaumkar, Vinay
0 siblings, 1 reply; 11+ messages in thread
From: Rodrigo Vivi @ 2026-09-16 15:44 UTC (permalink / raw)
To: Belgaumkar, Vinay; +Cc: intel-xe, Badal Nilawar
On Wed, Sep 16, 2026 at 08:05:56AM -0700, Belgaumkar, Vinay wrote:
>
> On 9/16/2026 5:19 AM, Rodrigo Vivi wrote:
> > On Tue, Sep 15, 2026 at 02:01:13PM -0700, Vinay Belgaumkar wrote:
> > > Ensure GT C6 state before D3 transition in runtime suspend flow.
> > > This avoids the scenario where GT is being accessed after D3 state
> > > is programmed. If the check for C6 fails, resume the device so it is
> > > not stuck in an intermediate state.
> > >
> > > v2: Force resume when we cancel suspend due to C6 check (Sashiko)
> > > v3: Abort the suspend properly when idle check fails (Sashiko)
> > > v4: Only check for C6 during suspend (Rodrigo). Have check in
> > > xe_pci_runtime_suspend() instead of xe_pci_suspend().
> > > v5: Don't checkfor PVC (Sashiko), rename function from_device_c6
> > > to _device_idle
> > >
> > > Cc: Badal Nilawar <badal.nilawar@intel.com>
> > > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > > Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
> > > ---
> > > drivers/gpu/drm/xe/xe_gt_idle.c | 36 +++++++++++++++++++++++++++++++++
> > > drivers/gpu/drm/xe/xe_gt_idle.h | 1 +
> > > drivers/gpu/drm/xe/xe_pci.c | 13 +++++++++++-
> > > drivers/gpu/drm/xe/xe_pm.c | 24 ++++++++++++++++++++++
> > > drivers/gpu/drm/xe/xe_pm.h | 1 +
> > > 5 files changed, 74 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/gpu/drm/xe/xe_gt_idle.c b/drivers/gpu/drm/xe/xe_gt_idle.c
> > > index c208d7563e36..8242feede1dd 100644
> > > --- a/drivers/gpu/drm/xe/xe_gt_idle.c
> > > +++ b/drivers/gpu/drm/xe/xe_gt_idle.c
> > > @@ -8,10 +8,12 @@
> > > #include <drm/drm_managed.h>
> > > #include <generated/xe_wa_oob.h>
> > > +#include <linux/iopoll.h>
> > > #include "xe_force_wake.h"
> > > #include "xe_device.h"
> > > #include "xe_gt.h"
> > > #include "xe_gt_idle.h"
> > > +#include "xe_gt_printk.h"
> > > #include "xe_gt_sysfs.h"
> > > #include "xe_guc_pc.h"
> > > #include "regs/xe_gt_regs.h"
> > > @@ -451,3 +453,37 @@ int xe_gt_idle_disable_c6(struct xe_gt *gt)
> > > return 0;
> > > }
> > > +
> > > +static int wait_for_gt_c6_state(struct xe_gt *gt, u32 timeout_ms)
> > > +{
> > > + struct xe_guc_pc *pc = >->uc.guc.pc;
> > > + enum xe_gt_idle_state state;
> > > +
> > > + return poll_timeout_us(state = gt->gtidle.idle_status(pc),
> > > + state == GT_IDLE_C6,
> > > + 20,
> > > + timeout_ms * USEC_PER_MSEC,
> > > + false);
> > > +}
> > > +
> > > +/**
> > > + * xe_gt_idle_wait_for_c6 - Poll for GT C6
> > > + * @gt: GT object
> > > + * @timeout_ms: wait time in ms
> > > + *
> > > + * This function waits for GT to enter C6.
> > > + *
> > > + * Return: 0 on success, -EAGAIN otherwise
> > > + */
> > > +int xe_gt_idle_wait_for_c6(struct xe_gt *gt, u32 timeout_ms)
> > > +{
> > > + if (IS_SRIOV_VF(gt_to_xe(gt)))
> > > + return 0;
> > Why?
> We skip GuC RC init for VFs, so cannot check for it.
Fair enough. To keep consistency.
In my view you wouldn't get here on rpm flow, but you are right,
since it is a different scope on this component itself, let's keep it.
> >
> > And why not the PVC check right in here?
> >
> > > +
> > > + if (wait_for_gt_c6_state(gt, timeout_ms)) {
> > > + xe_gt_dbg(gt, "GT is not in C6\n");
> > > + return -EAGAIN;
> > > + }
> > > +
> > > + return 0;
> > > +}
> > > diff --git a/drivers/gpu/drm/xe/xe_gt_idle.h b/drivers/gpu/drm/xe/xe_gt_idle.h
> > > index 9c34a155e102..2c8e9adf4a68 100644
> > > --- a/drivers/gpu/drm/xe/xe_gt_idle.h
> > > +++ b/drivers/gpu/drm/xe/xe_gt_idle.h
> > > @@ -18,5 +18,6 @@ void xe_gt_idle_enable_pg(struct xe_gt *gt);
> > > void xe_gt_idle_disable_pg(struct xe_gt *gt);
> > > int xe_gt_idle_pg_print(struct xe_gt *gt, struct drm_printer *p);
> > > u64 xe_gt_idle_residency_msec(struct xe_gt_idle *gtidle);
> > > +int xe_gt_idle_wait_for_c6(struct xe_gt *gt, u32 timeout_ms);
> > > #endif /* _XE_GT_IDLE_H_ */
> > > diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> > > index ab4da1d9a9f1..379795ac5e7b 100644
> > > --- a/drivers/gpu/drm/xe/xe_pci.c
> > > +++ b/drivers/gpu/drm/xe/xe_pci.c
> > > @@ -1381,7 +1381,7 @@ static int xe_pci_runtime_suspend(struct device *dev)
> > > {
> > > struct pci_dev *pdev = to_pci_dev(dev);
> > > struct xe_device *xe = pdev_to_xe_device(pdev);
> > > - int err;
> > > + int err, ret;
> > > /*
> > > * We hold an additional reference to the runtime PM to keep PF in D0
> > > @@ -1396,6 +1396,17 @@ static int xe_pci_runtime_suspend(struct device *dev)
> > > if (err)
> > > return err;
> > > + err = xe_pm_check_device_idle(xe);
> > I still don't like _idle prefix in here...
> I initially had it as _check_device_c6, then realized it is a misleading
> term.
I know the pain... I'm bad with naming myself.
But idleness is not what we are actually checking and _idle is already
a rpm sufix that has a different meaning in the flow and might be confusing...
> >
> > > + if (err) {
> > > + drm_dbg(&xe->drm, "Resuming - Device idle check failed!");
> > > + ret = xe_pm_runtime_resume(xe);
> > > + if (ret) {
> > > + drm_err(&xe->drm, "Resume failed after suspend was canceled");
> > > + return ret;
> > > + }
> > > + return err;
> > > + }
> > > +
> > > pci_save_state(pdev);
> > > if (xe->d3cold.allowed) {
> > > diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
> > > index f517bf453b54..f03a463d2a05 100644
> > > --- a/drivers/gpu/drm/xe/xe_pm.c
> > > +++ b/drivers/gpu/drm/xe/xe_pm.c
> > > @@ -1030,6 +1030,30 @@ void xe_pm_d3cold_allowed_toggle(struct xe_device *xe)
> > > mutex_unlock(&xe->d3cold.lock);
> > > }
> > > +/**
> > > + * xe_pm_check_device_idle() - Check if all GTs are idle.
> > > + * @xe: xe device instance
> > > + *
> > > + * One of the ways to do this is to check for GT C6 state. This check
> > > + * will fail if some component is holding a forcewake, for example.
> > > + *
> > > + * Return: 0 on success, -EAGAIN on failure
> > > + */
> > > +int xe_pm_check_device_idle(struct xe_device *xe)
> > > +{
> > > + struct xe_gt *gt;
> > > + u8 id;
> > > +
> > > + if (xe->info.platform == XE_PVC)
> > > + return 0;
> > PVC check belongs inside the gt_idle component,
> > where the RC xe decisions are made
> Sure, I added it there since it is a device level flag.
> >
> > > +
> > > + for_each_gt(gt, xe, id)
> > > + if (xe_gt_idle_wait_for_c6(gt, 200))
> > > + return -EAGAIN;
> > > +
> > > + return 0;
> > > +}
> > But anyway, why this indirection through xe_pm? Why can't the xe_pci call
> > directly the gt_idle waiting for c6 inside the runtime_suspend function?
>
> The only reason was that all gt_idle functions take GT as param, not Xe. In
> that case, I would have had the for_all_gts loop in xe_pci, which I was
> trying to avoid.
it makes sense. Just rename to xe_pm_wait_all_c6 or something like that...
>
> Thanks,
>
> Vinay.
>
> >
> > > +
> > > /**
> > > * xe_pm_module_init() - Perform xe_pm specific module initialization.
> > > *
> > > diff --git a/drivers/gpu/drm/xe/xe_pm.h b/drivers/gpu/drm/xe/xe_pm.h
> > > index 6d5ab09cb769..a4fdc9c5cb10 100644
> > > --- a/drivers/gpu/drm/xe/xe_pm.h
> > > +++ b/drivers/gpu/drm/xe/xe_pm.h
> > > @@ -36,6 +36,7 @@ void xe_pm_d3cold_allowed_toggle(struct xe_device *xe);
> > > bool xe_rpm_reclaim_safe(const struct xe_device *xe);
> > > struct task_struct *xe_pm_read_callback_task(struct xe_device *xe);
> > > int xe_pm_block_on_suspend(struct xe_device *xe);
> > > +int xe_pm_check_device_idle(struct xe_device *xe);
> > > void xe_pm_might_block_on_suspend(void);
> > > int xe_pm_module_init(void);
> > > --
> > > 2.38.1
> > >
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v5] drm/xe: Poll GT for C6 before D3
2026-09-16 15:44 ` Rodrigo Vivi
@ 2026-09-16 17:06 ` Belgaumkar, Vinay
0 siblings, 0 replies; 11+ messages in thread
From: Belgaumkar, Vinay @ 2026-09-16 17:06 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: intel-xe, Badal Nilawar
On 9/16/2026 8:44 AM, Rodrigo Vivi wrote:
> On Wed, Sep 16, 2026 at 08:05:56AM -0700, Belgaumkar, Vinay wrote:
>> On 9/16/2026 5:19 AM, Rodrigo Vivi wrote:
>>> On Tue, Sep 15, 2026 at 02:01:13PM -0700, Vinay Belgaumkar wrote:
>>>> Ensure GT C6 state before D3 transition in runtime suspend flow.
>>>> This avoids the scenario where GT is being accessed after D3 state
>>>> is programmed. If the check for C6 fails, resume the device so it is
>>>> not stuck in an intermediate state.
>>>>
>>>> v2: Force resume when we cancel suspend due to C6 check (Sashiko)
>>>> v3: Abort the suspend properly when idle check fails (Sashiko)
>>>> v4: Only check for C6 during suspend (Rodrigo). Have check in
>>>> xe_pci_runtime_suspend() instead of xe_pci_suspend().
>>>> v5: Don't checkfor PVC (Sashiko), rename function from_device_c6
>>>> to _device_idle
>>>>
>>>> Cc: Badal Nilawar <badal.nilawar@intel.com>
>>>> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>>>> Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
>>>> ---
>>>> drivers/gpu/drm/xe/xe_gt_idle.c | 36 +++++++++++++++++++++++++++++++++
>>>> drivers/gpu/drm/xe/xe_gt_idle.h | 1 +
>>>> drivers/gpu/drm/xe/xe_pci.c | 13 +++++++++++-
>>>> drivers/gpu/drm/xe/xe_pm.c | 24 ++++++++++++++++++++++
>>>> drivers/gpu/drm/xe/xe_pm.h | 1 +
>>>> 5 files changed, 74 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/xe/xe_gt_idle.c b/drivers/gpu/drm/xe/xe_gt_idle.c
>>>> index c208d7563e36..8242feede1dd 100644
>>>> --- a/drivers/gpu/drm/xe/xe_gt_idle.c
>>>> +++ b/drivers/gpu/drm/xe/xe_gt_idle.c
>>>> @@ -8,10 +8,12 @@
>>>> #include <drm/drm_managed.h>
>>>> #include <generated/xe_wa_oob.h>
>>>> +#include <linux/iopoll.h>
>>>> #include "xe_force_wake.h"
>>>> #include "xe_device.h"
>>>> #include "xe_gt.h"
>>>> #include "xe_gt_idle.h"
>>>> +#include "xe_gt_printk.h"
>>>> #include "xe_gt_sysfs.h"
>>>> #include "xe_guc_pc.h"
>>>> #include "regs/xe_gt_regs.h"
>>>> @@ -451,3 +453,37 @@ int xe_gt_idle_disable_c6(struct xe_gt *gt)
>>>> return 0;
>>>> }
>>>> +
>>>> +static int wait_for_gt_c6_state(struct xe_gt *gt, u32 timeout_ms)
>>>> +{
>>>> + struct xe_guc_pc *pc = >->uc.guc.pc;
>>>> + enum xe_gt_idle_state state;
>>>> +
>>>> + return poll_timeout_us(state = gt->gtidle.idle_status(pc),
>>>> + state == GT_IDLE_C6,
>>>> + 20,
>>>> + timeout_ms * USEC_PER_MSEC,
>>>> + false);
>>>> +}
>>>> +
>>>> +/**
>>>> + * xe_gt_idle_wait_for_c6 - Poll for GT C6
>>>> + * @gt: GT object
>>>> + * @timeout_ms: wait time in ms
>>>> + *
>>>> + * This function waits for GT to enter C6.
>>>> + *
>>>> + * Return: 0 on success, -EAGAIN otherwise
>>>> + */
>>>> +int xe_gt_idle_wait_for_c6(struct xe_gt *gt, u32 timeout_ms)
>>>> +{
>>>> + if (IS_SRIOV_VF(gt_to_xe(gt)))
>>>> + return 0;
>>> Why?
>> We skip GuC RC init for VFs, so cannot check for it.
> Fair enough. To keep consistency.
> In my view you wouldn't get here on rpm flow, but you are right,
> since it is a different scope on this component itself, let's keep it.
>
>>> And why not the PVC check right in here?
>>>
>>>> +
>>>> + if (wait_for_gt_c6_state(gt, timeout_ms)) {
>>>> + xe_gt_dbg(gt, "GT is not in C6\n");
>>>> + return -EAGAIN;
>>>> + }
>>>> +
>>>> + return 0;
>>>> +}
>>>> diff --git a/drivers/gpu/drm/xe/xe_gt_idle.h b/drivers/gpu/drm/xe/xe_gt_idle.h
>>>> index 9c34a155e102..2c8e9adf4a68 100644
>>>> --- a/drivers/gpu/drm/xe/xe_gt_idle.h
>>>> +++ b/drivers/gpu/drm/xe/xe_gt_idle.h
>>>> @@ -18,5 +18,6 @@ void xe_gt_idle_enable_pg(struct xe_gt *gt);
>>>> void xe_gt_idle_disable_pg(struct xe_gt *gt);
>>>> int xe_gt_idle_pg_print(struct xe_gt *gt, struct drm_printer *p);
>>>> u64 xe_gt_idle_residency_msec(struct xe_gt_idle *gtidle);
>>>> +int xe_gt_idle_wait_for_c6(struct xe_gt *gt, u32 timeout_ms);
>>>> #endif /* _XE_GT_IDLE_H_ */
>>>> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
>>>> index ab4da1d9a9f1..379795ac5e7b 100644
>>>> --- a/drivers/gpu/drm/xe/xe_pci.c
>>>> +++ b/drivers/gpu/drm/xe/xe_pci.c
>>>> @@ -1381,7 +1381,7 @@ static int xe_pci_runtime_suspend(struct device *dev)
>>>> {
>>>> struct pci_dev *pdev = to_pci_dev(dev);
>>>> struct xe_device *xe = pdev_to_xe_device(pdev);
>>>> - int err;
>>>> + int err, ret;
>>>> /*
>>>> * We hold an additional reference to the runtime PM to keep PF in D0
>>>> @@ -1396,6 +1396,17 @@ static int xe_pci_runtime_suspend(struct device *dev)
>>>> if (err)
>>>> return err;
>>>> + err = xe_pm_check_device_idle(xe);
>>> I still don't like _idle prefix in here...
>> I initially had it as _check_device_c6, then realized it is a misleading
>> term.
> I know the pain... I'm bad with naming myself.
> But idleness is not what we are actually checking and _idle is already
> a rpm sufix that has a different meaning in the flow and might be confusing...
>
>>>> + if (err) {
>>>> + drm_dbg(&xe->drm, "Resuming - Device idle check failed!");
>>>> + ret = xe_pm_runtime_resume(xe);
>>>> + if (ret) {
>>>> + drm_err(&xe->drm, "Resume failed after suspend was canceled");
>>>> + return ret;
>>>> + }
>>>> + return err;
>>>> + }
>>>> +
>>>> pci_save_state(pdev);
>>>> if (xe->d3cold.allowed) {
>>>> diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
>>>> index f517bf453b54..f03a463d2a05 100644
>>>> --- a/drivers/gpu/drm/xe/xe_pm.c
>>>> +++ b/drivers/gpu/drm/xe/xe_pm.c
>>>> @@ -1030,6 +1030,30 @@ void xe_pm_d3cold_allowed_toggle(struct xe_device *xe)
>>>> mutex_unlock(&xe->d3cold.lock);
>>>> }
>>>> +/**
>>>> + * xe_pm_check_device_idle() - Check if all GTs are idle.
>>>> + * @xe: xe device instance
>>>> + *
>>>> + * One of the ways to do this is to check for GT C6 state. This check
>>>> + * will fail if some component is holding a forcewake, for example.
>>>> + *
>>>> + * Return: 0 on success, -EAGAIN on failure
>>>> + */
>>>> +int xe_pm_check_device_idle(struct xe_device *xe)
>>>> +{
>>>> + struct xe_gt *gt;
>>>> + u8 id;
>>>> +
>>>> + if (xe->info.platform == XE_PVC)
>>>> + return 0;
>>> PVC check belongs inside the gt_idle component,
>>> where the RC xe decisions are made
>> Sure, I added it there since it is a device level flag.
>>>> +
>>>> + for_each_gt(gt, xe, id)
>>>> + if (xe_gt_idle_wait_for_c6(gt, 200))
>>>> + return -EAGAIN;
>>>> +
>>>> + return 0;
>>>> +}
>>> But anyway, why this indirection through xe_pm? Why can't the xe_pci call
>>> directly the gt_idle waiting for c6 inside the runtime_suspend function?
>> The only reason was that all gt_idle functions take GT as param, not Xe. In
>> that case, I would have had the for_all_gts loop in xe_pci, which I was
>> trying to avoid.
> it makes sense. Just rename to xe_pm_wait_all_c6 or something like that...
Yes, that seems better.
Thanks,
Vinay.
>
>> Thanks,
>>
>> Vinay.
>>
>>>> +
>>>> /**
>>>> * xe_pm_module_init() - Perform xe_pm specific module initialization.
>>>> *
>>>> diff --git a/drivers/gpu/drm/xe/xe_pm.h b/drivers/gpu/drm/xe/xe_pm.h
>>>> index 6d5ab09cb769..a4fdc9c5cb10 100644
>>>> --- a/drivers/gpu/drm/xe/xe_pm.h
>>>> +++ b/drivers/gpu/drm/xe/xe_pm.h
>>>> @@ -36,6 +36,7 @@ void xe_pm_d3cold_allowed_toggle(struct xe_device *xe);
>>>> bool xe_rpm_reclaim_safe(const struct xe_device *xe);
>>>> struct task_struct *xe_pm_read_callback_task(struct xe_device *xe);
>>>> int xe_pm_block_on_suspend(struct xe_device *xe);
>>>> +int xe_pm_check_device_idle(struct xe_device *xe);
>>>> void xe_pm_might_block_on_suspend(void);
>>>> int xe_pm_module_init(void);
>>>> --
>>>> 2.38.1
>>>>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v5] drm/xe: Poll GT for C6 before D3
2026-09-16 12:21 ` Rodrigo Vivi
@ 2026-09-16 18:50 ` Belgaumkar, Vinay
0 siblings, 0 replies; 11+ messages in thread
From: Belgaumkar, Vinay @ 2026-09-16 18:50 UTC (permalink / raw)
To: Rodrigo Vivi, sashiko-reviews; +Cc: intel-xe
On 9/16/2026 5:21 AM, Rodrigo Vivi wrote:
> On Tue, Sep 15, 2026 at 09:20:50PM +0000, sashiko-bot@kernel.org wrote:
>> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
>> - [Medium] drm/xe: D3cold runtime suspend always fails due to C6 check after GT PG disable
>> --
>>
>> commit 691645f0da262033183939383983163842757c50
>> Author: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
>>
>> drm/xe: Poll GT for C6 before D3
>>
>> This commit adds a check for GT C6 state before the D3 transition in the
>> runtime suspend flow, aborting and resuming if the check fails.
>>
>>> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
>>> index 00b2b5dfb8f6c..488745ce0473f 100644
>>> --- a/drivers/gpu/drm/xe/xe_pci.c
>>> +++ b/drivers/gpu/drm/xe/xe_pci.c
>> [ ... ]
>>> @@ -1394,6 +1394,17 @@ static int xe_pci_runtime_suspend(struct device *dev)
>>> if (err)
>>> return err;
>>>
>>> + err = xe_pm_check_device_idle(xe);
>>> + if (err) {
>>> + drm_dbg(&xe->drm, "Resuming - Device idle check failed!");
>>> + ret = xe_pm_runtime_resume(xe);
>> [Severity: Medium]
>> Will this idle check always fail when D3cold is allowed?
>>
>> Looking at the sequence, xe_pci_runtime_suspend() calls
>> xe_pm_runtime_suspend() right before this check. When D3cold is allowed,
>> xe_pm_runtime_suspend() executes xe_gt_suspend():
>>
>> drivers/gpu/drm/xe/xe_pm.c:xe_pm_runtime_suspend() {
>> ...
>> for_each_gt(gt, xe, id) {
>> err = xe->d3cold.allowed ? xe_gt_suspend(gt) : xe_gt_runtime_suspend(gt);
>> ...
>> }
>>
>> xe_gt_suspend() then prepares the GT for power removal by explicitly disabling
>> power gating:
>>
>> drivers/gpu/drm/xe/xe_gt.c:xe_gt_suspend() {
>> ...
>> xe_gt_idle_disable_pg(gt);
>> ...
>> }
>>
>> Because xe_gt_idle_disable_pg() writes 0 to the POWERGATE_ENABLE register,
>> the hardware is prevented from entering the C6 power gating state. Won't
>> the subsequent poll for GT_IDLE_C6 in xe_pm_check_device_idle() always
>> timeout and return -EAGAIN, causing the device to constantly abort suspend
>> and immediately resume?
> I believe this can be dismissed. But it would be good to run some experiments
> to confirm this.
> If this is right, then the CRI bug is a different FW bug...
Disabling render/media power gating does not block C6 in any way. This
is a non-issue as you mentioned.
Thanks,
Vinay.
>
>> --
>> Sashiko AI review · https://sashiko.dev/#/patchset/20260915210113.2915363-1-vinay.belgaumkar@intel.com?part=1
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2026-09-16 18:50 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-15 21:01 [PATCH v5] drm/xe: Poll GT for C6 before D3 Vinay Belgaumkar
2026-09-15 21:14 ` ✓ CI.KUnit: success for drm/xe: Poll GT for C6 before D3 (rev2) Patchwork
2026-09-15 21:20 ` [PATCH v5] drm/xe: Poll GT for C6 before D3 sashiko-bot
2026-09-16 12:21 ` Rodrigo Vivi
2026-09-16 18:50 ` Belgaumkar, Vinay
2026-09-15 21:51 ` ✓ Xe.CI.BAT: success for drm/xe: Poll GT for C6 before D3 (rev2) Patchwork
2026-09-16 4:04 ` ✓ Xe.CI.FULL: " Patchwork
2026-09-16 12:19 ` [PATCH v5] drm/xe: Poll GT for C6 before D3 Rodrigo Vivi
2026-09-16 15:05 ` Belgaumkar, Vinay
2026-09-16 15:44 ` Rodrigo Vivi
2026-09-16 17:06 ` Belgaumkar, Vinay
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox