* ✗ CI.checkpatch: warning for Handle Firmware reported Hardware Errors (rev2)
2025-06-23 10:01 [PATCH v2 0/5] Handle Firmware reported Hardware Errors Riana Tauro
@ 2025-06-23 9:42 ` Patchwork
2025-06-23 9:44 ` ✓ CI.KUnit: success " Patchwork
` (8 subsequent siblings)
9 siblings, 0 replies; 25+ messages in thread
From: Patchwork @ 2025-06-23 9:42 UTC (permalink / raw)
To: Riana Tauro; +Cc: intel-xe
== Series Details ==
Series: Handle Firmware reported Hardware Errors (rev2)
URL : https://patchwork.freedesktop.org/series/149756/
State : warning
== Summary ==
+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
f8ff75ae1d2127635239b134695774ed4045d05b
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 784f3772bf87838a1a12f35269eb90b612675fb8
Author: Riana Tauro <riana.tauro@intel.com>
Date: Mon Jun 23 15:31:08 2025 +0530
drm/xe/xe_hw_error: Add fault injection to trigger csc error handler
Add a debugfs fault handler to trigger csc error handler that
wedges the device and sends drm uevent
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
+ /mt/dim checkpatch 5aa80933c50abb7ebb5776aea2d14762d8449c5e drm-intel
7227a67fcd78 drm: Add a firmware flash method to device wedged uevent
e5101f6dd347 drm/xe: Add a helper function to set recovery method
d50f5f724ddf drm/xe: Add support to handle hardware errors
-:39: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#39:
new file mode 100644
total: 0 errors, 1 warnings, 0 checks, 174 lines checked
b52b4665c3d6 drm/xe/xe_hw_error: Handle CSC Firmware reported Hardware errors
784f3772bf87 drm/xe/xe_hw_error: Add fault injection to trigger csc error handler
^ permalink raw reply [flat|nested] 25+ messages in thread* ✓ CI.KUnit: success for Handle Firmware reported Hardware Errors (rev2)
2025-06-23 10:01 [PATCH v2 0/5] Handle Firmware reported Hardware Errors Riana Tauro
2025-06-23 9:42 ` ✗ CI.checkpatch: warning for Handle Firmware reported Hardware Errors (rev2) Patchwork
@ 2025-06-23 9:44 ` Patchwork
2025-06-23 10:01 ` [PATCH v2 1/5] drm: Add a firmware flash method to device wedged uevent Riana Tauro
` (7 subsequent siblings)
9 siblings, 0 replies; 25+ messages in thread
From: Patchwork @ 2025-06-23 9:44 UTC (permalink / raw)
To: Riana Tauro; +Cc: intel-xe
== Series Details ==
Series: Handle Firmware reported Hardware Errors (rev2)
URL : https://patchwork.freedesktop.org/series/149756/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[09:42:47] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[09:42:51] 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=25
[09:43:25] Starting KUnit Kernel (1/1)...
[09:43:25] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[09:43:25] ================== guc_buf (11 subtests) ===================
[09:43:25] [PASSED] test_smallest
[09:43:25] [PASSED] test_largest
[09:43:25] [PASSED] test_granular
[09:43:25] [PASSED] test_unique
[09:43:25] [PASSED] test_overlap
[09:43:25] [PASSED] test_reusable
[09:43:25] [PASSED] test_too_big
[09:43:25] [PASSED] test_flush
[09:43:25] [PASSED] test_lookup
[09:43:25] [PASSED] test_data
[09:43:25] [PASSED] test_class
[09:43:25] ===================== [PASSED] guc_buf =====================
[09:43:25] =================== guc_dbm (7 subtests) ===================
[09:43:25] [PASSED] test_empty
[09:43:25] [PASSED] test_default
[09:43:25] ======================== test_size ========================
[09:43:25] [PASSED] 4
[09:43:25] [PASSED] 8
[09:43:25] [PASSED] 32
[09:43:25] [PASSED] 256
[09:43:25] ==================== [PASSED] test_size ====================
[09:43:25] ======================= test_reuse ========================
[09:43:25] [PASSED] 4
[09:43:25] [PASSED] 8
[09:43:25] [PASSED] 32
[09:43:25] [PASSED] 256
[09:43:25] =================== [PASSED] test_reuse ====================
[09:43:25] =================== test_range_overlap ====================
[09:43:25] [PASSED] 4
[09:43:25] [PASSED] 8
[09:43:25] [PASSED] 32
[09:43:25] [PASSED] 256
[09:43:25] =============== [PASSED] test_range_overlap ================
[09:43:25] =================== test_range_compact ====================
[09:43:25] [PASSED] 4
[09:43:25] [PASSED] 8
[09:43:25] [PASSED] 32
[09:43:25] [PASSED] 256
[09:43:25] =============== [PASSED] test_range_compact ================
[09:43:25] ==================== test_range_spare =====================
[09:43:25] [PASSED] 4
[09:43:25] [PASSED] 8
[09:43:25] [PASSED] 32
[09:43:25] [PASSED] 256
[09:43:25] ================ [PASSED] test_range_spare =================
[09:43:25] ===================== [PASSED] guc_dbm =====================
[09:43:25] =================== guc_idm (6 subtests) ===================
[09:43:25] [PASSED] bad_init
[09:43:25] [PASSED] no_init
[09:43:25] [PASSED] init_fini
[09:43:25] [PASSED] check_used
[09:43:25] [PASSED] check_quota
[09:43:25] [PASSED] check_all
[09:43:25] ===================== [PASSED] guc_idm =====================
[09:43:25] ================== no_relay (3 subtests) ===================
[09:43:25] [PASSED] xe_drops_guc2pf_if_not_ready
[09:43:25] [PASSED] xe_drops_guc2vf_if_not_ready
[09:43:25] [PASSED] xe_rejects_send_if_not_ready
[09:43:25] ==================== [PASSED] no_relay =====================
[09:43:25] ================== pf_relay (14 subtests) ==================
[09:43:25] [PASSED] pf_rejects_guc2pf_too_short
[09:43:25] [PASSED] pf_rejects_guc2pf_too_long
[09:43:25] [PASSED] pf_rejects_guc2pf_no_payload
[09:43:25] [PASSED] pf_fails_no_payload
[09:43:25] [PASSED] pf_fails_bad_origin
[09:43:25] [PASSED] pf_fails_bad_type
[09:43:25] [PASSED] pf_txn_reports_error
[09:43:25] [PASSED] pf_txn_sends_pf2guc
[09:43:25] [PASSED] pf_sends_pf2guc
[09:43:25] [SKIPPED] pf_loopback_nop
[09:43:25] [SKIPPED] pf_loopback_echo
[09:43:25] [SKIPPED] pf_loopback_fail
[09:43:25] [SKIPPED] pf_loopback_busy
[09:43:25] [SKIPPED] pf_loopback_retry
[09:43:25] ==================== [PASSED] pf_relay =====================
[09:43:25] ================== vf_relay (3 subtests) ===================
[09:43:25] [PASSED] vf_rejects_guc2vf_too_short
[09:43:25] [PASSED] vf_rejects_guc2vf_too_long
[09:43:25] [PASSED] vf_rejects_guc2vf_no_payload
[09:43:25] ==================== [PASSED] vf_relay =====================
[09:43:25] ================= pf_service (11 subtests) =================
[09:43:25] [PASSED] pf_negotiate_any
[09:43:25] [PASSED] pf_negotiate_base_match
[09:43:25] [PASSED] pf_negotiate_base_newer
[09:43:25] [PASSED] pf_negotiate_base_next
[09:43:25] [SKIPPED] pf_negotiate_base_older
[09:43:25] [PASSED] pf_negotiate_base_prev
[09:43:25] [PASSED] pf_negotiate_latest_match
[09:43:25] [PASSED] pf_negotiate_latest_newer
[09:43:25] [PASSED] pf_negotiate_latest_next
[09:43:25] [SKIPPED] pf_negotiate_latest_older
[09:43:25] [SKIPPED] pf_negotiate_latest_prev
[09:43:25] =================== [PASSED] pf_service ====================
[09:43:25] ===================== lmtt (1 subtest) =====================
[09:43:25] ======================== test_ops =========================
[09:43:25] [PASSED] 2-level
[09:43:25] [PASSED] multi-level
[09:43:25] ==================== [PASSED] test_ops =====================
[09:43:25] ====================== [PASSED] lmtt =======================
[09:43:25] =================== xe_mocs (2 subtests) ===================
[09:43:25] ================ xe_live_mocs_kernel_kunit ================
[09:43:25] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[09:43:25] ================ xe_live_mocs_reset_kunit =================
[09:43:25] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[09:43:25] ==================== [SKIPPED] xe_mocs =====================
[09:43:25] ================= xe_migrate (2 subtests) ==================
[09:43:25] ================= xe_migrate_sanity_kunit =================
[09:43:25] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[09:43:25] ================== xe_validate_ccs_kunit ==================
[09:43:25] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[09:43:25] =================== [SKIPPED] xe_migrate ===================
[09:43:25] ================== xe_dma_buf (1 subtest) ==================
[09:43:25] ==================== xe_dma_buf_kunit =====================
[09:43:25] ================ [SKIPPED] xe_dma_buf_kunit ================
[09:43:25] =================== [SKIPPED] xe_dma_buf ===================
[09:43:25] ================= xe_bo_shrink (1 subtest) =================
[09:43:25] =================== xe_bo_shrink_kunit ====================
[09:43:25] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[09:43:25] ================== [SKIPPED] xe_bo_shrink ==================
[09:43:25] ==================== xe_bo (2 subtests) ====================
[09:43:25] ================== xe_ccs_migrate_kunit ===================
[09:43:25] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[09:43:25] ==================== xe_bo_evict_kunit ====================
[09:43:25] =============== [SKIPPED] xe_bo_evict_kunit ================
[09:43:25] ===================== [SKIPPED] xe_bo ======================
[09:43:25] ==================== args (11 subtests) ====================
[09:43:25] [PASSED] count_args_test
[09:43:25] [PASSED] call_args_example
[09:43:25] [PASSED] call_args_test
[09:43:25] [PASSED] drop_first_arg_example
[09:43:25] [PASSED] drop_first_arg_test
[09:43:25] [PASSED] first_arg_example
[09:43:25] [PASSED] first_arg_test
[09:43:25] [PASSED] last_arg_example
[09:43:25] [PASSED] last_arg_test
[09:43:25] [PASSED] pick_arg_example
[09:43:25] [PASSED] sep_comma_example
[09:43:25] ====================== [PASSED] args =======================
[09:43:25] =================== xe_pci (2 subtests) ====================
[09:43:25] ==================== check_graphics_ip ====================
[09:43:25] [PASSED] 12.70 Xe_LPG
[09:43:25] [PASSED] 12.71 Xe_LPG
[09:43:25] [PASSED] 12.74 Xe_LPG+
[09:43:25] [PASSED] 20.01 Xe2_HPG
[09:43:25] [PASSED] 20.02 Xe2_HPG
[09:43:25] [PASSED] 20.04 Xe2_LPG
[09:43:25] [PASSED] 30.00 Xe3_LPG
[09:43:25] [PASSED] 30.01 Xe3_LPG
[09:43:25] [PASSED] 30.03 Xe3_LPG
[09:43:25] ================ [PASSED] check_graphics_ip ================
[09:43:25] ===================== check_media_ip ======================
[09:43:25] [PASSED] 13.00 Xe_LPM+
[09:43:25] [PASSED] 13.01 Xe2_HPM
[09:43:25] [PASSED] 20.00 Xe2_LPM
[09:43:25] [PASSED] 30.00 Xe3_LPM
[09:43:25] [PASSED] 30.02 Xe3_LPM
stty: 'standard input': Inappropriate ioctl for device
[09:43:25] ================= [PASSED] check_media_ip ==================
[09:43:25] ===================== [PASSED] xe_pci ======================
[09:43:25] =================== xe_rtp (2 subtests) ====================
[09:43:25] =============== xe_rtp_process_to_sr_tests ================
[09:43:25] [PASSED] coalesce-same-reg
[09:43:25] [PASSED] no-match-no-add
[09:43:25] [PASSED] match-or
[09:43:25] [PASSED] match-or-xfail
[09:43:25] [PASSED] no-match-no-add-multiple-rules
[09:43:25] [PASSED] two-regs-two-entries
[09:43:25] [PASSED] clr-one-set-other
[09:43:25] [PASSED] set-field
[09:43:25] [PASSED] conflict-duplicate
[09:43:25] [PASSED] conflict-not-disjoint
[09:43:25] [PASSED] conflict-reg-type
[09:43:25] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[09:43:25] ================== xe_rtp_process_tests ===================
[09:43:25] [PASSED] active1
[09:43:25] [PASSED] active2
[09:43:25] [PASSED] active-inactive
[09:43:25] [PASSED] inactive-active
[09:43:25] [PASSED] inactive-1st_or_active-inactive
[09:43:25] [PASSED] inactive-2nd_or_active-inactive
[09:43:25] [PASSED] inactive-last_or_active-inactive
[09:43:25] [PASSED] inactive-no_or_active-inactive
[09:43:25] ============== [PASSED] xe_rtp_process_tests ===============
[09:43:25] ===================== [PASSED] xe_rtp ======================
[09:43:25] ==================== xe_wa (1 subtest) =====================
[09:43:25] ======================== xe_wa_gt =========================
[09:43:25] [PASSED] TIGERLAKE (B0)
[09:43:25] [PASSED] DG1 (A0)
[09:43:25] [PASSED] DG1 (B0)
[09:43:25] [PASSED] ALDERLAKE_S (A0)
[09:43:25] [PASSED] ALDERLAKE_S (B0)
[09:43:25] [PASSED] ALDERLAKE_S (C0)
[09:43:25] [PASSED] ALDERLAKE_S (D0)
[09:43:25] [PASSED] ALDERLAKE_P (A0)
[09:43:25] [PASSED] ALDERLAKE_P (B0)
[09:43:25] [PASSED] ALDERLAKE_P (C0)
[09:43:25] [PASSED] ALDERLAKE_S_RPLS (D0)
[09:43:25] [PASSED] ALDERLAKE_P_RPLU (E0)
[09:43:25] [PASSED] DG2_G10 (C0)
[09:43:25] [PASSED] DG2_G11 (B1)
[09:43:25] [PASSED] DG2_G12 (A1)
[09:43:25] [PASSED] METEORLAKE (g:A0, m:A0)
[09:43:25] [PASSED] METEORLAKE (g:A0, m:A0)
[09:43:25] [PASSED] METEORLAKE (g:A0, m:A0)
[09:43:25] [PASSED] LUNARLAKE (g:A0, m:A0)
[09:43:25] [PASSED] LUNARLAKE (g:B0, m:A0)
[09:43:25] [PASSED] BATTLEMAGE (g:A0, m:A1)
[09:43:25] ==================== [PASSED] xe_wa_gt =====================
[09:43:25] ====================== [PASSED] xe_wa ======================
[09:43:25] ============================================================
[09:43:25] Testing complete. Ran 145 tests: passed: 129, skipped: 16
[09:43:25] Elapsed time: 38.167s total, 4.239s configuring, 33.662s building, 0.259s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[09:43:26] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[09:43:27] 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=25
[09:43:53] Starting KUnit Kernel (1/1)...
[09:43:53] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[09:43:53] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[09:43:53] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[09:43:53] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[09:43:53] =========== drm_validate_clone_mode (2 subtests) ===========
[09:43:53] ============== drm_test_check_in_clone_mode ===============
[09:43:53] [PASSED] in_clone_mode
[09:43:53] [PASSED] not_in_clone_mode
[09:43:53] ========== [PASSED] drm_test_check_in_clone_mode ===========
[09:43:53] =============== drm_test_check_valid_clones ===============
[09:43:53] [PASSED] not_in_clone_mode
[09:43:53] [PASSED] valid_clone
[09:43:53] [PASSED] invalid_clone
[09:43:53] =========== [PASSED] drm_test_check_valid_clones ===========
[09:43:53] ============= [PASSED] drm_validate_clone_mode =============
[09:43:53] ============= drm_validate_modeset (1 subtest) =============
[09:43:53] [PASSED] drm_test_check_connector_changed_modeset
[09:43:53] ============== [PASSED] drm_validate_modeset ===============
[09:43:53] ====== drm_test_bridge_get_current_state (2 subtests) ======
[09:43:53] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[09:43:53] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[09:43:53] ======== [PASSED] drm_test_bridge_get_current_state ========
[09:43:53] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[09:43:53] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[09:43:53] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[09:43:53] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[09:43:53] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[09:43:53] ============== drm_bridge_alloc (2 subtests) ===============
[09:43:53] [PASSED] drm_test_drm_bridge_alloc_basic
[09:43:53] [PASSED] drm_test_drm_bridge_alloc_get_put
[09:43:53] ================ [PASSED] drm_bridge_alloc =================
[09:43:53] ================== drm_buddy (7 subtests) ==================
[09:43:53] [PASSED] drm_test_buddy_alloc_limit
[09:43:53] [PASSED] drm_test_buddy_alloc_optimistic
[09:43:53] [PASSED] drm_test_buddy_alloc_pessimistic
[09:43:53] [PASSED] drm_test_buddy_alloc_pathological
[09:43:53] [PASSED] drm_test_buddy_alloc_contiguous
[09:43:53] [PASSED] drm_test_buddy_alloc_clear
[09:43:53] [PASSED] drm_test_buddy_alloc_range_bias
[09:43:53] ==================== [PASSED] drm_buddy ====================
[09:43:53] ============= drm_cmdline_parser (40 subtests) =============
[09:43:53] [PASSED] drm_test_cmdline_force_d_only
[09:43:53] [PASSED] drm_test_cmdline_force_D_only_dvi
[09:43:53] [PASSED] drm_test_cmdline_force_D_only_hdmi
[09:43:53] [PASSED] drm_test_cmdline_force_D_only_not_digital
[09:43:53] [PASSED] drm_test_cmdline_force_e_only
[09:43:53] [PASSED] drm_test_cmdline_res
[09:43:53] [PASSED] drm_test_cmdline_res_vesa
[09:43:53] [PASSED] drm_test_cmdline_res_vesa_rblank
[09:43:53] [PASSED] drm_test_cmdline_res_rblank
[09:43:53] [PASSED] drm_test_cmdline_res_bpp
[09:43:53] [PASSED] drm_test_cmdline_res_refresh
[09:43:53] [PASSED] drm_test_cmdline_res_bpp_refresh
[09:43:53] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[09:43:53] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[09:43:53] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[09:43:53] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[09:43:53] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[09:43:53] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[09:43:53] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[09:43:53] [PASSED] drm_test_cmdline_res_margins_force_on
[09:43:53] [PASSED] drm_test_cmdline_res_vesa_margins
[09:43:53] [PASSED] drm_test_cmdline_name
[09:43:53] [PASSED] drm_test_cmdline_name_bpp
[09:43:53] [PASSED] drm_test_cmdline_name_option
[09:43:53] [PASSED] drm_test_cmdline_name_bpp_option
[09:43:53] [PASSED] drm_test_cmdline_rotate_0
[09:43:53] [PASSED] drm_test_cmdline_rotate_90
[09:43:53] [PASSED] drm_test_cmdline_rotate_180
[09:43:53] [PASSED] drm_test_cmdline_rotate_270
[09:43:53] [PASSED] drm_test_cmdline_hmirror
[09:43:53] [PASSED] drm_test_cmdline_vmirror
[09:43:53] [PASSED] drm_test_cmdline_margin_options
[09:43:53] [PASSED] drm_test_cmdline_multiple_options
[09:43:53] [PASSED] drm_test_cmdline_bpp_extra_and_option
[09:43:53] [PASSED] drm_test_cmdline_extra_and_option
[09:43:53] [PASSED] drm_test_cmdline_freestanding_options
[09:43:53] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[09:43:53] [PASSED] drm_test_cmdline_panel_orientation
[09:43:53] ================ drm_test_cmdline_invalid =================
[09:43:53] [PASSED] margin_only
[09:43:53] [PASSED] interlace_only
[09:43:53] [PASSED] res_missing_x
[09:43:53] [PASSED] res_missing_y
[09:43:53] [PASSED] res_bad_y
[09:43:53] [PASSED] res_missing_y_bpp
[09:43:53] [PASSED] res_bad_bpp
[09:43:53] [PASSED] res_bad_refresh
[09:43:53] [PASSED] res_bpp_refresh_force_on_off
[09:43:53] [PASSED] res_invalid_mode
[09:43:53] [PASSED] res_bpp_wrong_place_mode
[09:43:53] [PASSED] name_bpp_refresh
[09:43:53] [PASSED] name_refresh
[09:43:53] [PASSED] name_refresh_wrong_mode
[09:43:53] [PASSED] name_refresh_invalid_mode
[09:43:53] [PASSED] rotate_multiple
[09:43:53] [PASSED] rotate_invalid_val
[09:43:53] [PASSED] rotate_truncated
[09:43:53] [PASSED] invalid_option
[09:43:53] [PASSED] invalid_tv_option
[09:43:53] [PASSED] truncated_tv_option
[09:43:53] ============ [PASSED] drm_test_cmdline_invalid =============
[09:43:53] =============== drm_test_cmdline_tv_options ===============
[09:43:53] [PASSED] NTSC
[09:43:53] [PASSED] NTSC_443
[09:43:53] [PASSED] NTSC_J
[09:43:53] [PASSED] PAL
[09:43:53] [PASSED] PAL_M
[09:43:53] [PASSED] PAL_N
[09:43:53] [PASSED] SECAM
[09:43:53] [PASSED] MONO_525
[09:43:53] [PASSED] MONO_625
[09:43:53] =========== [PASSED] drm_test_cmdline_tv_options ===========
[09:43:53] =============== [PASSED] drm_cmdline_parser ================
[09:43:53] ========== drmm_connector_hdmi_init (20 subtests) ==========
[09:43:53] [PASSED] drm_test_connector_hdmi_init_valid
[09:43:53] [PASSED] drm_test_connector_hdmi_init_bpc_8
[09:43:53] [PASSED] drm_test_connector_hdmi_init_bpc_10
[09:43:53] [PASSED] drm_test_connector_hdmi_init_bpc_12
[09:43:53] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[09:43:53] [PASSED] drm_test_connector_hdmi_init_bpc_null
[09:43:53] [PASSED] drm_test_connector_hdmi_init_formats_empty
[09:43:53] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[09:43:53] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[09:43:53] [PASSED] supported_formats=0x9 yuv420_allowed=1
[09:43:53] [PASSED] supported_formats=0x9 yuv420_allowed=0
[09:43:53] [PASSED] supported_formats=0x3 yuv420_allowed=1
[09:43:53] [PASSED] supported_formats=0x3 yuv420_allowed=0
[09:43:53] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[09:43:53] [PASSED] drm_test_connector_hdmi_init_null_ddc
[09:43:53] [PASSED] drm_test_connector_hdmi_init_null_product
[09:43:53] [PASSED] drm_test_connector_hdmi_init_null_vendor
[09:43:53] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[09:43:53] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[09:43:53] [PASSED] drm_test_connector_hdmi_init_product_valid
[09:43:53] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[09:43:53] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[09:43:53] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[09:43:53] ========= drm_test_connector_hdmi_init_type_valid =========
[09:43:53] [PASSED] HDMI-A
[09:43:53] [PASSED] HDMI-B
[09:43:53] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[09:43:53] ======== drm_test_connector_hdmi_init_type_invalid ========
[09:43:53] [PASSED] Unknown
[09:43:53] [PASSED] VGA
[09:43:53] [PASSED] DVI-I
[09:43:53] [PASSED] DVI-D
[09:43:53] [PASSED] DVI-A
[09:43:53] [PASSED] Composite
[09:43:53] [PASSED] SVIDEO
[09:43:53] [PASSED] LVDS
[09:43:53] [PASSED] Component
[09:43:53] [PASSED] DIN
[09:43:53] [PASSED] DP
[09:43:53] [PASSED] TV
[09:43:53] [PASSED] eDP
[09:43:53] [PASSED] Virtual
[09:43:53] [PASSED] DSI
[09:43:53] [PASSED] DPI
[09:43:53] [PASSED] Writeback
[09:43:53] [PASSED] SPI
[09:43:53] [PASSED] USB
[09:43:53] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[09:43:53] ============ [PASSED] drmm_connector_hdmi_init =============
[09:43:53] ============= drmm_connector_init (3 subtests) =============
[09:43:53] [PASSED] drm_test_drmm_connector_init
[09:43:53] [PASSED] drm_test_drmm_connector_init_null_ddc
[09:43:53] ========= drm_test_drmm_connector_init_type_valid =========
[09:43:53] [PASSED] Unknown
[09:43:53] [PASSED] VGA
[09:43:53] [PASSED] DVI-I
[09:43:53] [PASSED] DVI-D
[09:43:53] [PASSED] DVI-A
[09:43:53] [PASSED] Composite
[09:43:53] [PASSED] SVIDEO
[09:43:53] [PASSED] LVDS
[09:43:53] [PASSED] Component
[09:43:53] [PASSED] DIN
[09:43:53] [PASSED] DP
[09:43:53] [PASSED] HDMI-A
[09:43:53] [PASSED] HDMI-B
[09:43:53] [PASSED] TV
[09:43:53] [PASSED] eDP
[09:43:53] [PASSED] Virtual
[09:43:53] [PASSED] DSI
[09:43:53] [PASSED] DPI
[09:43:53] [PASSED] Writeback
[09:43:53] [PASSED] SPI
[09:43:53] [PASSED] USB
[09:43:53] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[09:43:53] =============== [PASSED] drmm_connector_init ===============
[09:43:53] ========= drm_connector_dynamic_init (6 subtests) ==========
[09:43:53] [PASSED] drm_test_drm_connector_dynamic_init
[09:43:53] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[09:43:53] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[09:43:53] [PASSED] drm_test_drm_connector_dynamic_init_properties
[09:43:53] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[09:43:53] [PASSED] Unknown
[09:43:53] [PASSED] VGA
[09:43:53] [PASSED] DVI-I
[09:43:53] [PASSED] DVI-D
[09:43:53] [PASSED] DVI-A
[09:43:53] [PASSED] Composite
[09:43:53] [PASSED] SVIDEO
[09:43:53] [PASSED] LVDS
[09:43:53] [PASSED] Component
[09:43:53] [PASSED] DIN
[09:43:53] [PASSED] DP
[09:43:53] [PASSED] HDMI-A
[09:43:53] [PASSED] HDMI-B
[09:43:53] [PASSED] TV
[09:43:53] [PASSED] eDP
[09:43:53] [PASSED] Virtual
[09:43:53] [PASSED] DSI
[09:43:53] [PASSED] DPI
[09:43:53] [PASSED] Writeback
[09:43:53] [PASSED] SPI
[09:43:53] [PASSED] USB
[09:43:53] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[09:43:53] ======== drm_test_drm_connector_dynamic_init_name =========
[09:43:53] [PASSED] Unknown
[09:43:53] [PASSED] VGA
[09:43:53] [PASSED] DVI-I
[09:43:53] [PASSED] DVI-D
[09:43:53] [PASSED] DVI-A
[09:43:53] [PASSED] Composite
[09:43:53] [PASSED] SVIDEO
[09:43:53] [PASSED] LVDS
[09:43:53] [PASSED] Component
[09:43:53] [PASSED] DIN
[09:43:53] [PASSED] DP
[09:43:53] [PASSED] HDMI-A
[09:43:53] [PASSED] HDMI-B
[09:43:53] [PASSED] TV
[09:43:53] [PASSED] eDP
[09:43:53] [PASSED] Virtual
[09:43:53] [PASSED] DSI
[09:43:53] [PASSED] DPI
[09:43:53] [PASSED] Writeback
[09:43:53] [PASSED] SPI
[09:43:53] [PASSED] USB
[09:43:53] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[09:43:53] =========== [PASSED] drm_connector_dynamic_init ============
[09:43:53] ==== drm_connector_dynamic_register_early (4 subtests) =====
[09:43:53] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[09:43:53] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[09:43:53] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[09:43:53] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[09:43:53] ====== [PASSED] drm_connector_dynamic_register_early =======
[09:43:53] ======= drm_connector_dynamic_register (7 subtests) ========
[09:43:53] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[09:43:53] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[09:43:53] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[09:43:53] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[09:43:53] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[09:43:53] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[09:43:53] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[09:43:53] ========= [PASSED] drm_connector_dynamic_register ==========
[09:43:53] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[09:43:53] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[09:43:53] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[09:43:53] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[09:43:53] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[09:43:53] ========== drm_test_get_tv_mode_from_name_valid ===========
[09:43:53] [PASSED] NTSC
[09:43:53] [PASSED] NTSC-443
[09:43:53] [PASSED] NTSC-J
[09:43:53] [PASSED] PAL
[09:43:53] [PASSED] PAL-M
[09:43:53] [PASSED] PAL-N
[09:43:53] [PASSED] SECAM
[09:43:53] [PASSED] Mono
[09:43:53] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[09:43:53] [PASSED] drm_test_get_tv_mode_from_name_truncated
[09:43:53] ============ [PASSED] drm_get_tv_mode_from_name ============
[09:43:53] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[09:43:53] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[09:43:53] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[09:43:53] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[09:43:53] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[09:43:53] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[09:43:53] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[09:43:53] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[09:43:53] [PASSED] VIC 96
[09:43:53] [PASSED] VIC 97
[09:43:53] [PASSED] VIC 101
[09:43:53] [PASSED] VIC 102
[09:43:53] [PASSED] VIC 106
[09:43:53] [PASSED] VIC 107
[09:43:53] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[09:43:53] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[09:43:53] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[09:43:53] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[09:43:53] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[09:43:53] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[09:43:53] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[09:43:53] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[09:43:53] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[09:43:53] [PASSED] Automatic
[09:43:53] [PASSED] Full
[09:43:53] [PASSED] Limited 16:235
[09:43:53] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[09:43:53] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[09:43:53] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[09:43:53] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[09:43:53] === drm_test_drm_hdmi_connector_get_output_format_name ====
[09:43:53] [PASSED] RGB
[09:43:53] [PASSED] YUV 4:2:0
[09:43:53] [PASSED] YUV 4:2:2
[09:43:53] [PASSED] YUV 4:4:4
[09:43:53] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[09:43:53] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[09:43:53] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[09:43:53] ============= drm_damage_helper (21 subtests) ==============
[09:43:53] [PASSED] drm_test_damage_iter_no_damage
[09:43:53] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[09:43:53] [PASSED] drm_test_damage_iter_no_damage_src_moved
[09:43:53] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[09:43:53] [PASSED] drm_test_damage_iter_no_damage_not_visible
[09:43:53] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[09:43:53] [PASSED] drm_test_damage_iter_no_damage_no_fb
[09:43:53] [PASSED] drm_test_damage_iter_simple_damage
[09:43:53] [PASSED] drm_test_damage_iter_single_damage
[09:43:53] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[09:43:53] [PASSED] drm_test_damage_iter_single_damage_outside_src
[09:43:53] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[09:43:53] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[09:43:53] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[09:43:53] [PASSED] drm_test_damage_iter_single_damage_src_moved
[09:43:53] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[09:43:53] [PASSED] drm_test_damage_iter_damage
[09:43:53] [PASSED] drm_test_damage_iter_damage_one_intersect
[09:43:53] [PASSED] drm_test_damage_iter_damage_one_outside
[09:43:53] [PASSED] drm_test_damage_iter_damage_src_moved
[09:43:53] [PASSED] drm_test_damage_iter_damage_not_visible
[09:43:53] ================ [PASSED] drm_damage_helper ================
[09:43:53] ============== drm_dp_mst_helper (3 subtests) ==============
[09:43:53] ============== drm_test_dp_mst_calc_pbn_mode ==============
[09:43:53] [PASSED] Clock 154000 BPP 30 DSC disabled
[09:43:53] [PASSED] Clock 234000 BPP 30 DSC disabled
[09:43:53] [PASSED] Clock 297000 BPP 24 DSC disabled
[09:43:53] [PASSED] Clock 332880 BPP 24 DSC enabled
[09:43:53] [PASSED] Clock 324540 BPP 24 DSC enabled
[09:43:53] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[09:43:53] ============== drm_test_dp_mst_calc_pbn_div ===============
[09:43:53] [PASSED] Link rate 2000000 lane count 4
[09:43:53] [PASSED] Link rate 2000000 lane count 2
[09:43:53] [PASSED] Link rate 2000000 lane count 1
[09:43:53] [PASSED] Link rate 1350000 lane count 4
[09:43:53] [PASSED] Link rate 1350000 lane count 2
[09:43:53] [PASSED] Link rate 1350000 lane count 1
[09:43:53] [PASSED] Link rate 1000000 lane count 4
[09:43:53] [PASSED] Link rate 1000000 lane count 2
[09:43:53] [PASSED] Link rate 1000000 lane count 1
[09:43:53] [PASSED] Link rate 810000 lane count 4
[09:43:53] [PASSED] Link rate 810000 lane count 2
[09:43:53] [PASSED] Link rate 810000 lane count 1
[09:43:53] [PASSED] Link rate 540000 lane count 4
[09:43:53] [PASSED] Link rate 540000 lane count 2
[09:43:53] [PASSED] Link rate 540000 lane count 1
[09:43:53] [PASSED] Link rate 270000 lane count 4
[09:43:53] [PASSED] Link rate 270000 lane count 2
[09:43:53] [PASSED] Link rate 270000 lane count 1
[09:43:53] [PASSED] Link rate 162000 lane count 4
[09:43:53] [PASSED] Link rate 162000 lane count 2
[09:43:53] [PASSED] Link rate 162000 lane count 1
[09:43:53] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[09:43:53] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[09:43:53] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[09:43:53] [PASSED] DP_POWER_UP_PHY with port number
[09:43:53] [PASSED] DP_POWER_DOWN_PHY with port number
[09:43:53] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[09:43:53] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[09:43:53] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[09:43:53] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[09:43:53] [PASSED] DP_QUERY_PAYLOAD with port number
[09:43:53] [PASSED] DP_QUERY_PAYLOAD with VCPI
[09:43:53] [PASSED] DP_REMOTE_DPCD_READ with port number
[09:43:53] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[09:43:53] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[09:43:53] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[09:43:53] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[09:43:53] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[09:43:53] [PASSED] DP_REMOTE_I2C_READ with port number
[09:43:53] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[09:43:53] [PASSED] DP_REMOTE_I2C_READ with transactions array
[09:43:53] [PASSED] DP_REMOTE_I2C_WRITE with port number
[09:43:53] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[09:43:53] [PASSED] DP_REMOTE_I2C_WRITE with data array
[09:43:53] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[09:43:53] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[09:43:53] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[09:43:53] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[09:43:53] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[09:43:53] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[09:43:53] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[09:43:53] ================ [PASSED] drm_dp_mst_helper ================
[09:43:53] ================== drm_exec (7 subtests) ===================
[09:43:53] [PASSED] sanitycheck
[09:43:53] [PASSED] test_lock
[09:43:53] [PASSED] test_lock_unlock
[09:43:53] [PASSED] test_duplicates
[09:43:53] [PASSED] test_prepare
[09:43:53] [PASSED] test_prepare_array
[09:43:53] [PASSED] test_multiple_loops
[09:43:53] ==================== [PASSED] drm_exec =====================
[09:43:53] =========== drm_format_helper_test (17 subtests) ===========
[09:43:53] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[09:43:53] [PASSED] single_pixel_source_buffer
[09:43:53] [PASSED] single_pixel_clip_rectangle
[09:43:53] [PASSED] well_known_colors
[09:43:53] [PASSED] destination_pitch
[09:43:53] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[09:43:53] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[09:43:53] [PASSED] single_pixel_source_buffer
[09:43:53] [PASSED] single_pixel_clip_rectangle
[09:43:53] [PASSED] well_known_colors
[09:43:53] [PASSED] destination_pitch
[09:43:53] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[09:43:53] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[09:43:53] [PASSED] single_pixel_source_buffer
[09:43:53] [PASSED] single_pixel_clip_rectangle
[09:43:53] [PASSED] well_known_colors
[09:43:53] [PASSED] destination_pitch
[09:43:53] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[09:43:53] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[09:43:53] [PASSED] single_pixel_source_buffer
[09:43:53] [PASSED] single_pixel_clip_rectangle
[09:43:53] [PASSED] well_known_colors
[09:43:53] [PASSED] destination_pitch
[09:43:53] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[09:43:53] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[09:43:53] [PASSED] single_pixel_source_buffer
[09:43:53] [PASSED] single_pixel_clip_rectangle
[09:43:53] [PASSED] well_known_colors
[09:43:53] [PASSED] destination_pitch
[09:43:53] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[09:43:53] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[09:43:53] [PASSED] single_pixel_source_buffer
[09:43:53] [PASSED] single_pixel_clip_rectangle
[09:43:53] [PASSED] well_known_colors
[09:43:53] [PASSED] destination_pitch
[09:43:53] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[09:43:53] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[09:43:53] [PASSED] single_pixel_source_buffer
[09:43:53] [PASSED] single_pixel_clip_rectangle
[09:43:53] [PASSED] well_known_colors
[09:43:53] [PASSED] destination_pitch
[09:43:53] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[09:43:53] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[09:43:53] [PASSED] single_pixel_source_buffer
[09:43:53] [PASSED] single_pixel_clip_rectangle
[09:43:53] [PASSED] well_known_colors
[09:43:53] [PASSED] destination_pitch
[09:43:53] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[09:43:53] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[09:43:53] [PASSED] single_pixel_source_buffer
[09:43:53] [PASSED] single_pixel_clip_rectangle
[09:43:53] [PASSED] well_known_colors
[09:43:53] [PASSED] destination_pitch
[09:43:53] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[09:43:53] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[09:43:53] [PASSED] single_pixel_source_buffer
[09:43:53] [PASSED] single_pixel_clip_rectangle
[09:43:53] [PASSED] well_known_colors
[09:43:53] [PASSED] destination_pitch
[09:43:53] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[09:43:53] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[09:43:53] [PASSED] single_pixel_source_buffer
[09:43:53] [PASSED] single_pixel_clip_rectangle
[09:43:53] [PASSED] well_known_colors
[09:43:53] [PASSED] destination_pitch
[09:43:53] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[09:43:53] ============== drm_test_fb_xrgb8888_to_mono ===============
[09:43:53] [PASSED] single_pixel_source_buffer
[09:43:53] [PASSED] single_pixel_clip_rectangle
[09:43:53] [PASSED] well_known_colors
[09:43:53] [PASSED] destination_pitch
[09:43:53] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[09:43:53] ==================== drm_test_fb_swab =====================
[09:43:53] [PASSED] single_pixel_source_buffer
[09:43:53] [PASSED] single_pixel_clip_rectangle
[09:43:53] [PASSED] well_known_colors
[09:43:53] [PASSED] destination_pitch
[09:43:53] ================ [PASSED] drm_test_fb_swab =================
[09:43:53] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[09:43:53] [PASSED] single_pixel_source_buffer
[09:43:53] [PASSED] single_pixel_clip_rectangle
[09:43:53] [PASSED] well_known_colors
[09:43:53] [PASSED] destination_pitch
[09:43:53] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[09:43:53] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[09:43:53] [PASSED] single_pixel_source_buffer
[09:43:53] [PASSED] single_pixel_clip_rectangle
[09:43:53] [PASSED] well_known_colors
[09:43:53] [PASSED] destination_pitch
[09:43:53] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[09:43:53] ================= drm_test_fb_clip_offset =================
[09:43:53] [PASSED] pass through
[09:43:53] [PASSED] horizontal offset
[09:43:53] [PASSED] vertical offset
[09:43:53] [PASSED] horizontal and vertical offset
[09:43:53] [PASSED] horizontal offset (custom pitch)
[09:43:53] [PASSED] vertical offset (custom pitch)
[09:43:53] [PASSED] horizontal and vertical offset (custom pitch)
[09:43:53] ============= [PASSED] drm_test_fb_clip_offset =============
[09:43:53] =================== drm_test_fb_memcpy ====================
[09:43:53] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[09:43:53] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[09:43:53] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[09:43:53] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[09:43:53] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[09:43:53] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[09:43:53] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[09:43:53] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[09:43:53] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[09:43:53] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[09:43:53] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[09:43:53] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[09:43:53] =============== [PASSED] drm_test_fb_memcpy ================
[09:43:53] ============= [PASSED] drm_format_helper_test ==============
[09:43:53] ================= drm_format (18 subtests) =================
[09:43:53] [PASSED] drm_test_format_block_width_invalid
[09:43:53] [PASSED] drm_test_format_block_width_one_plane
[09:43:53] [PASSED] drm_test_format_block_width_two_plane
[09:43:53] [PASSED] drm_test_format_block_width_three_plane
[09:43:53] [PASSED] drm_test_format_block_width_tiled
[09:43:53] [PASSED] drm_test_format_block_height_invalid
[09:43:53] [PASSED] drm_test_format_block_height_one_plane
[09:43:53] [PASSED] drm_test_format_block_height_two_plane
[09:43:53] [PASSED] drm_test_format_block_height_three_plane
[09:43:53] [PASSED] drm_test_format_block_height_tiled
[09:43:53] [PASSED] drm_test_format_min_pitch_invalid
[09:43:53] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[09:43:53] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[09:43:53] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[09:43:53] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[09:43:53] [PASSED] drm_test_format_min_pitch_two_plane
[09:43:53] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[09:43:53] [PASSED] drm_test_format_min_pitch_tiled
[09:43:53] =================== [PASSED] drm_format ====================
[09:43:53] ============== drm_framebuffer (10 subtests) ===============
[09:43:53] ========== drm_test_framebuffer_check_src_coords ==========
[09:43:53] [PASSED] Success: source fits into fb
[09:43:53] [PASSED] Fail: overflowing fb with x-axis coordinate
[09:43:53] [PASSED] Fail: overflowing fb with y-axis coordinate
[09:43:53] [PASSED] Fail: overflowing fb with source width
[09:43:53] [PASSED] Fail: overflowing fb with source height
[09:43:53] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[09:43:53] [PASSED] drm_test_framebuffer_cleanup
[09:43:53] =============== drm_test_framebuffer_create ===============
[09:43:53] [PASSED] ABGR8888 normal sizes
[09:43:53] [PASSED] ABGR8888 max sizes
[09:43:53] [PASSED] ABGR8888 pitch greater than min required
[09:43:53] [PASSED] ABGR8888 pitch less than min required
[09:43:53] [PASSED] ABGR8888 Invalid width
[09:43:53] [PASSED] ABGR8888 Invalid buffer handle
[09:43:53] [PASSED] No pixel format
[09:43:53] [PASSED] ABGR8888 Width 0
[09:43:53] [PASSED] ABGR8888 Height 0
[09:43:53] [PASSED] ABGR8888 Out of bound height * pitch combination
[09:43:53] [PASSED] ABGR8888 Large buffer offset
[09:43:53] [PASSED] ABGR8888 Buffer offset for inexistent plane
[09:43:53] [PASSED] ABGR8888 Invalid flag
[09:43:53] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[09:43:53] [PASSED] ABGR8888 Valid buffer modifier
[09:43:53] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[09:43:53] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[09:43:53] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[09:43:53] [PASSED] NV12 Normal sizes
[09:43:53] [PASSED] NV12 Max sizes
[09:43:53] [PASSED] NV12 Invalid pitch
[09:43:53] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[09:43:53] [PASSED] NV12 different modifier per-plane
[09:43:53] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[09:43:53] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[09:43:53] [PASSED] NV12 Modifier for inexistent plane
[09:43:53] [PASSED] NV12 Handle for inexistent plane
[09:43:53] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[09:43:53] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[09:43:53] [PASSED] YVU420 Normal sizes
[09:43:53] [PASSED] YVU420 Max sizes
[09:43:53] [PASSED] YVU420 Invalid pitch
[09:43:53] [PASSED] YVU420 Different pitches
[09:43:53] [PASSED] YVU420 Different buffer offsets/pitches
[09:43:53] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[09:43:53] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[09:43:53] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[09:43:53] [PASSED] YVU420 Valid modifier
[09:43:53] [PASSED] YVU420 Different modifiers per plane
[09:43:53] [PASSED] YVU420 Modifier for inexistent plane
[09:43:53] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[09:43:53] [PASSED] X0L2 Normal sizes
[09:43:53] [PASSED] X0L2 Max sizes
[09:43:53] [PASSED] X0L2 Invalid pitch
[09:43:53] [PASSED] X0L2 Pitch greater than minimum required
[09:43:53] [PASSED] X0L2 Handle for inexistent plane
[09:43:53] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[09:43:53] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[09:43:53] [PASSED] X0L2 Valid modifier
[09:43:53] [PASSED] X0L2 Modifier for inexistent plane
[09:43:53] =========== [PASSED] drm_test_framebuffer_create ===========
[09:43:53] [PASSED] drm_test_framebuffer_free
[09:43:53] [PASSED] drm_test_framebuffer_init
[09:43:53] [PASSED] drm_test_framebuffer_init_bad_format
[09:43:53] [PASSED] drm_test_framebuffer_init_dev_mismatch
[09:43:53] [PASSED] drm_test_framebuffer_lookup
[09:43:53] [PASSED] drm_test_framebuffer_lookup_inexistent
[09:43:53] [PASSED] drm_test_framebuffer_modifiers_not_supported
[09:43:53] ================= [PASSED] drm_framebuffer =================
[09:43:53] ================ drm_gem_shmem (8 subtests) ================
[09:43:53] [PASSED] drm_gem_shmem_test_obj_create
[09:43:53] [PASSED] drm_gem_shmem_test_obj_create_private
[09:43:53] [PASSED] drm_gem_shmem_test_pin_pages
[09:43:53] [PASSED] drm_gem_shmem_test_vmap
[09:43:53] [PASSED] drm_gem_shmem_test_get_pages_sgt
[09:43:53] [PASSED] drm_gem_shmem_test_get_sg_table
[09:43:53] [PASSED] drm_gem_shmem_test_madvise
[09:43:53] [PASSED] drm_gem_shmem_test_purge
[09:43:53] ================== [PASSED] drm_gem_shmem ==================
[09:43:53] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[09:43:53] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[09:43:53] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[09:43:53] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[09:43:53] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[09:43:53] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[09:43:53] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[09:43:53] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[09:43:53] [PASSED] Automatic
[09:43:53] [PASSED] Full
[09:43:53] [PASSED] Limited 16:235
[09:43:53] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[09:43:53] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[09:43:53] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[09:43:53] [PASSED] drm_test_check_disable_connector
[09:43:53] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[09:43:53] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[09:43:53] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[09:43:53] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[09:43:53] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[09:43:53] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[09:43:53] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[09:43:53] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[09:43:53] [PASSED] drm_test_check_output_bpc_dvi
[09:43:53] [PASSED] drm_test_check_output_bpc_format_vic_1
[09:43:53] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[09:43:53] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[09:43:53] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[09:43:53] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[09:43:53] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[09:43:53] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[09:43:53] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[09:43:53] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[09:43:53] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[09:43:53] [PASSED] drm_test_check_broadcast_rgb_value
[09:43:53] [PASSED] drm_test_check_bpc_8_value
[09:43:53] [PASSED] drm_test_check_bpc_10_value
[09:43:53] [PASSED] drm_test_check_bpc_12_value
[09:43:53] [PASSED] drm_test_check_format_value
[09:43:53] [PASSED] drm_test_check_tmds_char_value
[09:43:53] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[09:43:53] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[09:43:53] [PASSED] drm_test_check_mode_valid
[09:43:53] [PASSED] drm_test_check_mode_valid_reject
[09:43:53] [PASSED] drm_test_check_mode_valid_reject_rate
[09:43:53] [PASSED] drm_test_check_mode_valid_reject_max_clock
[09:43:53] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[09:43:53] ================= drm_managed (2 subtests) =================
[09:43:53] [PASSED] drm_test_managed_release_action
[09:43:53] [PASSED] drm_test_managed_run_action
[09:43:53] =================== [PASSED] drm_managed ===================
[09:43:53] =================== drm_mm (6 subtests) ====================
[09:43:53] [PASSED] drm_test_mm_init
[09:43:53] [PASSED] drm_test_mm_debug
[09:43:53] [PASSED] drm_test_mm_align32
[09:43:53] [PASSED] drm_test_mm_align64
[09:43:53] [PASSED] drm_test_mm_lowest
[09:43:53] [PASSED] drm_test_mm_highest
[09:43:53] ===================== [PASSED] drm_mm ======================
[09:43:53] ============= drm_modes_analog_tv (5 subtests) =============
[09:43:53] [PASSED] drm_test_modes_analog_tv_mono_576i
[09:43:53] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[09:43:53] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[09:43:53] [PASSED] drm_test_modes_analog_tv_pal_576i
[09:43:53] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[09:43:53] =============== [PASSED] drm_modes_analog_tv ===============
[09:43:53] ============== drm_plane_helper (2 subtests) ===============
[09:43:53] =============== drm_test_check_plane_state ================
[09:43:53] [PASSED] clipping_simple
[09:43:53] [PASSED] clipping_rotate_reflect
[09:43:53] [PASSED] positioning_simple
[09:43:53] [PASSED] upscaling
[09:43:53] [PASSED] downscaling
[09:43:53] [PASSED] rounding1
[09:43:53] [PASSED] rounding2
[09:43:53] [PASSED] rounding3
[09:43:53] [PASSED] rounding4
[09:43:53] =========== [PASSED] drm_test_check_plane_state ============
[09:43:53] =========== drm_test_check_invalid_plane_state ============
[09:43:53] [PASSED] positioning_invalid
[09:43:53] [PASSED] upscaling_invalid
[09:43:53] [PASSED] downscaling_invalid
[09:43:53] ======= [PASSED] drm_test_check_invalid_plane_state ========
[09:43:53] ================ [PASSED] drm_plane_helper =================
[09:43:53] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[09:43:53] ====== drm_test_connector_helper_tv_get_modes_check =======
[09:43:53] [PASSED] None
[09:43:53] [PASSED] PAL
[09:43:53] [PASSED] NTSC
[09:43:53] [PASSED] Both, NTSC Default
[09:43:53] [PASSED] Both, PAL Default
[09:43:53] [PASSED] Both, NTSC Default, with PAL on command-line
[09:43:53] [PASSED] Both, PAL Default, with NTSC on command-line
[09:43:53] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[09:43:53] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[09:43:53] ================== drm_rect (9 subtests) ===================
[09:43:53] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[09:43:53] [PASSED] drm_test_rect_clip_scaled_not_clipped
[09:43:53] [PASSED] drm_test_rect_clip_scaled_clipped
[09:43:53] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[09:43:53] ================= drm_test_rect_intersect =================
[09:43:53] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[09:43:53] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[09:43:53] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[09:43:53] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[09:43:53] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[09:43:53] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[09:43:53] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[09:43:53] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[09:43:53] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[09:43:53] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[09:43:53] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[09:43:53] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[09:43:53] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[09:43:53] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[09:43:53] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[09:43:53] ============= [PASSED] drm_test_rect_intersect =============
[09:43:53] ================ drm_test_rect_calc_hscale ================
[09:43:53] [PASSED] normal use
[09:43:53] [PASSED] out of max range
[09:43:53] [PASSED] out of min range
[09:43:53] [PASSED] zero dst
[09:43:53] [PASSED] negative src
[09:43:53] [PASSED] negative dst
[09:43:53] ============ [PASSED] drm_test_rect_calc_hscale ============
[09:43:53] ================ drm_test_rect_calc_vscale ================
[09:43:53] [PASSED] normal use
[09:43:53] [PASSED] out of max range
[09:43:53] [PASSED] out of min range
[09:43:53] [PASSED] zero dst
[09:43:53] [PASSED] negative src
[09:43:53] [PASSED] negative dst
[09:43:53] ============ [PASSED] drm_test_rect_calc_vscale ============
[09:43:53] ================== drm_test_rect_rotate ===================
[09:43:53] [PASSED] reflect-x
[09:43:53] [PASSED] reflect-y
[09:43:53] [PASSED] rotate-0
[09:43:53] [PASSED] rotate-90
[09:43:53] [PASSED] rotate-180
[09:43:53] [PASSED] rotate-270
stty: 'standard input': Inappropriate ioctl for device
[09:43:53] ============== [PASSED] drm_test_rect_rotate ===============
[09:43:53] ================ drm_test_rect_rotate_inv =================
[09:43:53] [PASSED] reflect-x
[09:43:53] [PASSED] reflect-y
[09:43:53] [PASSED] rotate-0
[09:43:53] [PASSED] rotate-90
[09:43:53] [PASSED] rotate-180
[09:43:53] [PASSED] rotate-270
[09:43:53] ============ [PASSED] drm_test_rect_rotate_inv =============
[09:43:53] ==================== [PASSED] drm_rect =====================
[09:43:53] ============ drm_sysfb_modeset_test (1 subtest) ============
[09:43:53] ============ drm_test_sysfb_build_fourcc_list =============
[09:43:53] [PASSED] no native formats
[09:43:53] [PASSED] XRGB8888 as native format
[09:43:53] [PASSED] remove duplicates
[09:43:53] [PASSED] convert alpha formats
[09:43:53] [PASSED] random formats
[09:43:53] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[09:43:53] ============= [PASSED] drm_sysfb_modeset_test ==============
[09:43:53] ============================================================
[09:43:53] Testing complete. Ran 616 tests: passed: 616
[09:43:53] Elapsed time: 27.628s total, 1.610s configuring, 25.798s building, 0.189s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[09:43:53] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[09:43:55] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=25
[09:44:03] Starting KUnit Kernel (1/1)...
[09:44:03] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[09:44:03] ================= ttm_device (5 subtests) ==================
[09:44:03] [PASSED] ttm_device_init_basic
[09:44:03] [PASSED] ttm_device_init_multiple
[09:44:03] [PASSED] ttm_device_fini_basic
[09:44:03] [PASSED] ttm_device_init_no_vma_man
[09:44:03] ================== ttm_device_init_pools ==================
[09:44:03] [PASSED] No DMA allocations, no DMA32 required
[09:44:03] [PASSED] DMA allocations, DMA32 required
[09:44:03] [PASSED] No DMA allocations, DMA32 required
[09:44:03] [PASSED] DMA allocations, no DMA32 required
[09:44:03] ============== [PASSED] ttm_device_init_pools ==============
[09:44:03] =================== [PASSED] ttm_device ====================
[09:44:03] ================== ttm_pool (8 subtests) ===================
[09:44:03] ================== ttm_pool_alloc_basic ===================
[09:44:03] [PASSED] One page
[09:44:03] [PASSED] More than one page
[09:44:03] [PASSED] Above the allocation limit
[09:44:03] [PASSED] One page, with coherent DMA mappings enabled
[09:44:03] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[09:44:03] ============== [PASSED] ttm_pool_alloc_basic ===============
[09:44:03] ============== ttm_pool_alloc_basic_dma_addr ==============
[09:44:03] [PASSED] One page
[09:44:03] [PASSED] More than one page
[09:44:03] [PASSED] Above the allocation limit
[09:44:03] [PASSED] One page, with coherent DMA mappings enabled
[09:44:03] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[09:44:03] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[09:44:03] [PASSED] ttm_pool_alloc_order_caching_match
[09:44:03] [PASSED] ttm_pool_alloc_caching_mismatch
[09:44:03] [PASSED] ttm_pool_alloc_order_mismatch
[09:44:03] [PASSED] ttm_pool_free_dma_alloc
[09:44:03] [PASSED] ttm_pool_free_no_dma_alloc
[09:44:03] [PASSED] ttm_pool_fini_basic
[09:44:03] ==================== [PASSED] ttm_pool =====================
[09:44:03] ================ ttm_resource (8 subtests) =================
[09:44:03] ================= ttm_resource_init_basic =================
[09:44:03] [PASSED] Init resource in TTM_PL_SYSTEM
[09:44:03] [PASSED] Init resource in TTM_PL_VRAM
[09:44:03] [PASSED] Init resource in a private placement
[09:44:03] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[09:44:03] ============= [PASSED] ttm_resource_init_basic =============
[09:44:03] [PASSED] ttm_resource_init_pinned
[09:44:03] [PASSED] ttm_resource_fini_basic
[09:44:03] [PASSED] ttm_resource_manager_init_basic
[09:44:03] [PASSED] ttm_resource_manager_usage_basic
[09:44:03] [PASSED] ttm_resource_manager_set_used_basic
[09:44:03] [PASSED] ttm_sys_man_alloc_basic
[09:44:03] [PASSED] ttm_sys_man_free_basic
[09:44:03] ================== [PASSED] ttm_resource ===================
[09:44:03] =================== ttm_tt (15 subtests) ===================
[09:44:03] ==================== ttm_tt_init_basic ====================
[09:44:03] [PASSED] Page-aligned size
[09:44:03] [PASSED] Extra pages requested
[09:44:03] ================ [PASSED] ttm_tt_init_basic ================
[09:44:03] [PASSED] ttm_tt_init_misaligned
[09:44:03] [PASSED] ttm_tt_fini_basic
[09:44:03] [PASSED] ttm_tt_fini_sg
[09:44:03] [PASSED] ttm_tt_fini_shmem
[09:44:03] [PASSED] ttm_tt_create_basic
[09:44:03] [PASSED] ttm_tt_create_invalid_bo_type
[09:44:03] [PASSED] ttm_tt_create_ttm_exists
[09:44:03] [PASSED] ttm_tt_create_failed
[09:44:03] [PASSED] ttm_tt_destroy_basic
[09:44:03] [PASSED] ttm_tt_populate_null_ttm
[09:44:03] [PASSED] ttm_tt_populate_populated_ttm
[09:44:03] [PASSED] ttm_tt_unpopulate_basic
[09:44:03] [PASSED] ttm_tt_unpopulate_empty_ttm
[09:44:03] [PASSED] ttm_tt_swapin_basic
[09:44:03] ===================== [PASSED] ttm_tt ======================
[09:44:03] =================== ttm_bo (14 subtests) ===================
[09:44:03] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[09:44:03] [PASSED] Cannot be interrupted and sleeps
[09:44:03] [PASSED] Cannot be interrupted, locks straight away
[09:44:03] [PASSED] Can be interrupted, sleeps
[09:44:03] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[09:44:03] [PASSED] ttm_bo_reserve_locked_no_sleep
[09:44:03] [PASSED] ttm_bo_reserve_no_wait_ticket
[09:44:03] [PASSED] ttm_bo_reserve_double_resv
[09:44:03] [PASSED] ttm_bo_reserve_interrupted
[09:44:03] [PASSED] ttm_bo_reserve_deadlock
[09:44:03] [PASSED] ttm_bo_unreserve_basic
[09:44:03] [PASSED] ttm_bo_unreserve_pinned
[09:44:03] [PASSED] ttm_bo_unreserve_bulk
[09:44:03] [PASSED] ttm_bo_put_basic
[09:44:03] [PASSED] ttm_bo_put_shared_resv
[09:44:03] [PASSED] ttm_bo_pin_basic
[09:44:03] [PASSED] ttm_bo_pin_unpin_resource
[09:44:03] [PASSED] ttm_bo_multiple_pin_one_unpin
[09:44:03] ===================== [PASSED] ttm_bo ======================
[09:44:03] ============== ttm_bo_validate (22 subtests) ===============
[09:44:03] ============== ttm_bo_init_reserved_sys_man ===============
[09:44:03] [PASSED] Buffer object for userspace
[09:44:03] [PASSED] Kernel buffer object
[09:44:03] [PASSED] Shared buffer object
[09:44:03] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[09:44:03] ============== ttm_bo_init_reserved_mock_man ==============
[09:44:03] [PASSED] Buffer object for userspace
[09:44:03] [PASSED] Kernel buffer object
[09:44:03] [PASSED] Shared buffer object
[09:44:03] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[09:44:03] [PASSED] ttm_bo_init_reserved_resv
[09:44:03] ================== ttm_bo_validate_basic ==================
[09:44:03] [PASSED] Buffer object for userspace
[09:44:03] [PASSED] Kernel buffer object
[09:44:03] [PASSED] Shared buffer object
[09:44:03] ============== [PASSED] ttm_bo_validate_basic ==============
[09:44:03] [PASSED] ttm_bo_validate_invalid_placement
[09:44:03] ============= ttm_bo_validate_same_placement ==============
[09:44:03] [PASSED] System manager
[09:44:03] [PASSED] VRAM manager
[09:44:03] ========= [PASSED] ttm_bo_validate_same_placement ==========
[09:44:03] [PASSED] ttm_bo_validate_failed_alloc
[09:44:03] [PASSED] ttm_bo_validate_pinned
[09:44:03] [PASSED] ttm_bo_validate_busy_placement
[09:44:03] ================ ttm_bo_validate_multihop =================
[09:44:03] [PASSED] Buffer object for userspace
[09:44:03] [PASSED] Kernel buffer object
[09:44:03] [PASSED] Shared buffer object
[09:44:03] ============ [PASSED] ttm_bo_validate_multihop =============
[09:44:03] ========== ttm_bo_validate_no_placement_signaled ==========
[09:44:03] [PASSED] Buffer object in system domain, no page vector
[09:44:03] [PASSED] Buffer object in system domain with an existing page vector
[09:44:03] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[09:44:03] ======== ttm_bo_validate_no_placement_not_signaled ========
[09:44:03] [PASSED] Buffer object for userspace
[09:44:03] [PASSED] Kernel buffer object
[09:44:03] [PASSED] Shared buffer object
[09:44:03] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[09:44:03] [PASSED] ttm_bo_validate_move_fence_signaled
[09:44:03] ========= ttm_bo_validate_move_fence_not_signaled =========
[09:44:03] [PASSED] Waits for GPU
[09:44:03] [PASSED] Tries to lock straight away
[09:44:03] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[09:44:03] [PASSED] ttm_bo_validate_swapout
[09:44:03] [PASSED] ttm_bo_validate_happy_evict
[09:44:03] [PASSED] ttm_bo_validate_all_pinned_evict
[09:44:03] [PASSED] ttm_bo_validate_allowed_only_evict
[09:44:03] [PASSED] ttm_bo_validate_deleted_evict
[09:44:03] [PASSED] ttm_bo_validate_busy_domain_evict
[09:44:03] [PASSED] ttm_bo_validate_evict_gutting
[09:44:03] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[09:44:03] ================= [PASSED] ttm_bo_validate =================
[09:44:03] ============================================================
[09:44:03] Testing complete. Ran 102 tests: passed: 102
[09:44:03] Elapsed time: 10.014s total, 1.582s configuring, 7.714s building, 0.591s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 25+ messages in thread* [PATCH v2 1/5] drm: Add a firmware flash method to device wedged uevent
2025-06-23 10:01 [PATCH v2 0/5] Handle Firmware reported Hardware Errors Riana Tauro
2025-06-23 9:42 ` ✗ CI.checkpatch: warning for Handle Firmware reported Hardware Errors (rev2) Patchwork
2025-06-23 9:44 ` ✓ CI.KUnit: success " Patchwork
@ 2025-06-23 10:01 ` Riana Tauro
2025-06-24 12:26 ` Christian König
2025-06-23 10:01 ` [PATCH v2 2/5] drm/xe: Add a helper function to set recovery method Riana Tauro
` (6 subsequent siblings)
9 siblings, 1 reply; 25+ messages in thread
From: Riana Tauro @ 2025-06-23 10:01 UTC (permalink / raw)
To: intel-xe
Cc: riana.tauro, anshuman.gupta, rodrigo.vivi, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, André Almeida, Christian König
A device is declared wedged when it is non-recoverable from
the driver context. Some firmware errors can also cause
the device to enter this state and the only method to recover
from this would be to do a firmware flash
v2: modify documentation (Raag, Rodrigo)
Cc: André Almeida <andrealmeid@igalia.com>
Cc: Christian König <christian.koenig@amd.com>
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
---
Documentation/gpu/drm-uapi.rst | 6 +++---
drivers/gpu/drm/drm_drv.c | 2 ++
include/drm/drm_device.h | 1 +
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/Documentation/gpu/drm-uapi.rst b/Documentation/gpu/drm-uapi.rst
index 263e5a97c080..cd2481458755 100644
--- a/Documentation/gpu/drm-uapi.rst
+++ b/Documentation/gpu/drm-uapi.rst
@@ -422,9 +422,8 @@ Current implementation defines three recovery methods, out of which, drivers
can use any one, multiple or none. Method(s) of choice will be sent in the
uevent environment as ``WEDGED=<method1>[,..,<methodN>]`` in order of less to
more side-effects. If driver is unsure about recovery or method is unknown
-(like soft/hard system reboot, firmware flashing, physical device replacement
-or any other procedure which can't be attempted on the fly), ``WEDGED=unknown``
-will be sent instead.
+(like soft/hard system reboot, physical device replacement or any other procedure
+which can't be attempted on the fly), ``WEDGED=unknown`` will be sent instead.
Userspace consumers can parse this event and attempt recovery as per the
following expectations.
@@ -435,6 +434,7 @@ following expectations.
none optional telemetry collection
rebind unbind + bind driver
bus-reset unbind + bus reset/re-enumeration + bind
+ firmware-flash firmware flash
unknown consumer policy
=============== ========================================
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index 02556363e918..5f3bbe01c207 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -535,6 +535,8 @@ static const char *drm_get_wedge_recovery(unsigned int opt)
return "rebind";
case DRM_WEDGE_RECOVERY_BUS_RESET:
return "bus-reset";
+ case DRM_WEDGE_RECOVERY_FW_FLASH:
+ return "firmware-flash";
default:
return NULL;
}
diff --git a/include/drm/drm_device.h b/include/drm/drm_device.h
index 08b3b2467c4c..9d57c8882d93 100644
--- a/include/drm/drm_device.h
+++ b/include/drm/drm_device.h
@@ -30,6 +30,7 @@ struct pci_controller;
#define DRM_WEDGE_RECOVERY_NONE BIT(0) /* optional telemetry collection */
#define DRM_WEDGE_RECOVERY_REBIND BIT(1) /* unbind + bind driver */
#define DRM_WEDGE_RECOVERY_BUS_RESET BIT(2) /* unbind + reset bus device + bind */
+#define DRM_WEDGE_RECOVERY_FW_FLASH BIT(3) /* firmware flash */
/**
* struct drm_wedge_task_info - information about the guilty task of a wedge dev
--
2.47.1
^ permalink raw reply related [flat|nested] 25+ messages in thread* Re: [PATCH v2 1/5] drm: Add a firmware flash method to device wedged uevent
2025-06-23 10:01 ` [PATCH v2 1/5] drm: Add a firmware flash method to device wedged uevent Riana Tauro
@ 2025-06-24 12:26 ` Christian König
2025-06-24 14:03 ` Riana Tauro
0 siblings, 1 reply; 25+ messages in thread
From: Christian König @ 2025-06-24 12:26 UTC (permalink / raw)
To: Riana Tauro, intel-xe
Cc: anshuman.gupta, rodrigo.vivi, lucas.demarchi, aravind.iddamsetty,
raag.jadav, umesh.nerlige.ramappa, frank.scarbrough,
André Almeida
On 23.06.25 12:01, Riana Tauro wrote:
> A device is declared wedged when it is non-recoverable from
> the driver context.
Well, not quite.
> Some firmware errors can also cause
> the device to enter this state and the only method to recover
> from this would be to do a firmware flash
What? What exactly do you mean with firmware flash here?
Usually that means updating the firmware, but I don't see how this will bring you out of a wedge state?
Where is the rest of the series?
Regards,
Christian.
> v2: modify documentation (Raag, Rodrigo)
>
> Cc: André Almeida <andrealmeid@igalia.com>
> Cc: Christian König <christian.koenig@amd.com>
> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
> ---
> Documentation/gpu/drm-uapi.rst | 6 +++---
> drivers/gpu/drm/drm_drv.c | 2 ++
> include/drm/drm_device.h | 1 +
> 3 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/gpu/drm-uapi.rst b/Documentation/gpu/drm-uapi.rst
> index 263e5a97c080..cd2481458755 100644
> --- a/Documentation/gpu/drm-uapi.rst
> +++ b/Documentation/gpu/drm-uapi.rst
> @@ -422,9 +422,8 @@ Current implementation defines three recovery methods, out of which, drivers
> can use any one, multiple or none. Method(s) of choice will be sent in the
> uevent environment as ``WEDGED=<method1>[,..,<methodN>]`` in order of less to
> more side-effects. If driver is unsure about recovery or method is unknown
> -(like soft/hard system reboot, firmware flashing, physical device replacement
> -or any other procedure which can't be attempted on the fly), ``WEDGED=unknown``
> -will be sent instead.
> +(like soft/hard system reboot, physical device replacement or any other procedure
> +which can't be attempted on the fly), ``WEDGED=unknown`` will be sent instead.
>
> Userspace consumers can parse this event and attempt recovery as per the
> following expectations.
> @@ -435,6 +434,7 @@ following expectations.
> none optional telemetry collection
> rebind unbind + bind driver
> bus-reset unbind + bus reset/re-enumeration + bind
> + firmware-flash firmware flash
> unknown consumer policy
> =============== ========================================
>
> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
> index 02556363e918..5f3bbe01c207 100644
> --- a/drivers/gpu/drm/drm_drv.c
> +++ b/drivers/gpu/drm/drm_drv.c
> @@ -535,6 +535,8 @@ static const char *drm_get_wedge_recovery(unsigned int opt)
> return "rebind";
> case DRM_WEDGE_RECOVERY_BUS_RESET:
> return "bus-reset";
> + case DRM_WEDGE_RECOVERY_FW_FLASH:
> + return "firmware-flash";
> default:
> return NULL;
> }
> diff --git a/include/drm/drm_device.h b/include/drm/drm_device.h
> index 08b3b2467c4c..9d57c8882d93 100644
> --- a/include/drm/drm_device.h
> +++ b/include/drm/drm_device.h
> @@ -30,6 +30,7 @@ struct pci_controller;
> #define DRM_WEDGE_RECOVERY_NONE BIT(0) /* optional telemetry collection */
> #define DRM_WEDGE_RECOVERY_REBIND BIT(1) /* unbind + bind driver */
> #define DRM_WEDGE_RECOVERY_BUS_RESET BIT(2) /* unbind + reset bus device + bind */
> +#define DRM_WEDGE_RECOVERY_FW_FLASH BIT(3) /* firmware flash */
>
> /**
> * struct drm_wedge_task_info - information about the guilty task of a wedge dev
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/5] drm: Add a firmware flash method to device wedged uevent
2025-06-24 12:26 ` Christian König
@ 2025-06-24 14:03 ` Riana Tauro
2025-06-24 14:23 ` Christian König
0 siblings, 1 reply; 25+ messages in thread
From: Riana Tauro @ 2025-06-24 14:03 UTC (permalink / raw)
To: Christian König, intel-xe, dri-devel
Cc: anshuman.gupta, rodrigo.vivi, lucas.demarchi, aravind.iddamsetty,
raag.jadav, umesh.nerlige.ramappa, frank.scarbrough,
André Almeida
Hi Christian
On 6/24/2025 5:56 PM, Christian König wrote:
> On 23.06.25 12:01, Riana Tauro wrote:
>> A device is declared wedged when it is non-recoverable from
>> the driver context.
>
> Well, not quite.
i took this from the below document. Should it be changed?
https://www.kernel.org/doc/html/v6.16-rc3/gpu/drm-uapi.html#device-wedging
>
>> Some firmware errors can also cause
>> the device to enter this state and the only method to recover
>> from this would be to do a firmware flash
>
> What? What exactly do you mean with firmware flash here?
>
> Usually that means updating the firmware, but I don't see how this will bring you out of a wedge state?
It means updating the firmware.
Series: https://patchwork.freedesktop.org/series/149756/
In this xe kmd series, there are few firmware errors that cause the card
to be non-functional. The device is declared wedged and a firmware-flash
action is sent.
There is corresponding fwupd PR in work that uses this uevent to trigger
a firmware flash
fwupd PR: https://github.com/fwupd/fwupd/pull/8944/
Thanks
Riana
>
> Where is the rest of the series?
>
> Regards,
> Christian.
>
>> v2: modify documentation (Raag, Rodrigo)
>>
>> Cc: André Almeida <andrealmeid@igalia.com>
>> Cc: Christian König <christian.koenig@amd.com>
>> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
>> ---
>> Documentation/gpu/drm-uapi.rst | 6 +++---
>> drivers/gpu/drm/drm_drv.c | 2 ++
>> include/drm/drm_device.h | 1 +
>> 3 files changed, 6 insertions(+), 3 deletions(-)
>>
>> diff --git a/Documentation/gpu/drm-uapi.rst b/Documentation/gpu/drm-uapi.rst
>> index 263e5a97c080..cd2481458755 100644
>> --- a/Documentation/gpu/drm-uapi.rst
>> +++ b/Documentation/gpu/drm-uapi.rst
>> @@ -422,9 +422,8 @@ Current implementation defines three recovery methods, out of which, drivers
>> can use any one, multiple or none. Method(s) of choice will be sent in the
>> uevent environment as ``WEDGED=<method1>[,..,<methodN>]`` in order of less to
>> more side-effects. If driver is unsure about recovery or method is unknown
>> -(like soft/hard system reboot, firmware flashing, physical device replacement
>> -or any other procedure which can't be attempted on the fly), ``WEDGED=unknown``
>> -will be sent instead.
>> +(like soft/hard system reboot, physical device replacement or any other procedure
>> +which can't be attempted on the fly), ``WEDGED=unknown`` will be sent instead.
>>
>> Userspace consumers can parse this event and attempt recovery as per the
>> following expectations.
>> @@ -435,6 +434,7 @@ following expectations.
>> none optional telemetry collection
>> rebind unbind + bind driver
>> bus-reset unbind + bus reset/re-enumeration + bind
>> + firmware-flash firmware flash
>> unknown consumer policy
>> =============== ========================================
>>
>> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
>> index 02556363e918..5f3bbe01c207 100644
>> --- a/drivers/gpu/drm/drm_drv.c
>> +++ b/drivers/gpu/drm/drm_drv.c
>> @@ -535,6 +535,8 @@ static const char *drm_get_wedge_recovery(unsigned int opt)
>> return "rebind";
>> case DRM_WEDGE_RECOVERY_BUS_RESET:
>> return "bus-reset";
>> + case DRM_WEDGE_RECOVERY_FW_FLASH:
>> + return "firmware-flash";
>> default:
>> return NULL;
>> }
>> diff --git a/include/drm/drm_device.h b/include/drm/drm_device.h
>> index 08b3b2467c4c..9d57c8882d93 100644
>> --- a/include/drm/drm_device.h
>> +++ b/include/drm/drm_device.h
>> @@ -30,6 +30,7 @@ struct pci_controller;
>> #define DRM_WEDGE_RECOVERY_NONE BIT(0) /* optional telemetry collection */
>> #define DRM_WEDGE_RECOVERY_REBIND BIT(1) /* unbind + bind driver */
>> #define DRM_WEDGE_RECOVERY_BUS_RESET BIT(2) /* unbind + reset bus device + bind */
>> +#define DRM_WEDGE_RECOVERY_FW_FLASH BIT(3) /* firmware flash */
>>
>> /**
>> * struct drm_wedge_task_info - information about the guilty task of a wedge dev
>
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/5] drm: Add a firmware flash method to device wedged uevent
2025-06-24 14:03 ` Riana Tauro
@ 2025-06-24 14:23 ` Christian König
2025-06-24 21:36 ` Rodrigo Vivi
0 siblings, 1 reply; 25+ messages in thread
From: Christian König @ 2025-06-24 14:23 UTC (permalink / raw)
To: Riana Tauro, intel-xe, dri-devel
Cc: anshuman.gupta, rodrigo.vivi, lucas.demarchi, aravind.iddamsetty,
raag.jadav, umesh.nerlige.ramappa, frank.scarbrough,
André Almeida, David Airlie
On 24.06.25 16:03, Riana Tauro wrote:
> Hi Christian
>
> On 6/24/2025 5:56 PM, Christian König wrote:
>> On 23.06.25 12:01, Riana Tauro wrote:
>>> A device is declared wedged when it is non-recoverable from
>>> the driver context.
>>
>> Well, not quite.
>
> i took this from the below document. Should it be changed?
The wedge event basically meant that something unexpected happened during the lifetime of the the device (crash, hang whatever).
It can be that the device recovered on it's own and nothing needs to be done (the none case in the documentation) and the event is just send for telemetry collection.
But the usual case is to trigger a bus reset, rebing or even reboot.
> https://www.kernel.org/doc/html/v6.16-rc3/gpu/drm-uapi.html#device-wedging
>
>>
>>> Some firmware errors can also cause
>>> the device to enter this state and the only method to recover
>>> from this would be to do a firmware flash
>>
>> What? What exactly do you mean with firmware flash here?
>>
>> Usually that means updating the firmware, but I don't see how this will bring you out of a wedge state?
>
> It means updating the firmware.
>
> Series: https://patchwork.freedesktop.org/series/149756/
>
> In this xe kmd series, there are few firmware errors that cause the card to be non-functional. The device is declared wedged and a firmware-flash action is sent.
Ok, so let me recap that just to make sure that I did understood that correctly.
You find that the firmware flashed into the device is buggy and then raise a wedge event to automatically trigger a firmware update?
Why not fail to load the driver in the first place? Or at least print a big warning into the system log?
I mean a firmware update is usually something which the system administrator triggers very explicitly because when it fails for some reason (e.g. unexpected reset, power outage or whatever) it can sometimes brick the HW.
I think it's rather brave to do this automatically. Are you sure we don't talk past each other on the meaning of the wedge event?
Thanks,
Christian.
>
> There is corresponding fwupd PR in work that uses this uevent to trigger a firmware flash
>
> fwupd PR: https://github.com/fwupd/fwupd/pull/8944/
>
> Thanks
> Riana
>
>>
>> Where is the rest of the series?
>>
>> Regards,
>> Christian.
>>
>>> v2: modify documentation (Raag, Rodrigo)
>>>
>>> Cc: André Almeida <andrealmeid@igalia.com>
>>> Cc: Christian König <christian.koenig@amd.com>
>>> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
>>> ---
>>> Documentation/gpu/drm-uapi.rst | 6 +++---
>>> drivers/gpu/drm/drm_drv.c | 2 ++
>>> include/drm/drm_device.h | 1 +
>>> 3 files changed, 6 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/Documentation/gpu/drm-uapi.rst b/Documentation/gpu/drm-uapi.rst
>>> index 263e5a97c080..cd2481458755 100644
>>> --- a/Documentation/gpu/drm-uapi.rst
>>> +++ b/Documentation/gpu/drm-uapi.rst
>>> @@ -422,9 +422,8 @@ Current implementation defines three recovery methods, out of which, drivers
>>> can use any one, multiple or none. Method(s) of choice will be sent in the
>>> uevent environment as ``WEDGED=<method1>[,..,<methodN>]`` in order of less to
>>> more side-effects. If driver is unsure about recovery or method is unknown
>>> -(like soft/hard system reboot, firmware flashing, physical device replacement
>>> -or any other procedure which can't be attempted on the fly), ``WEDGED=unknown``
>>> -will be sent instead.
>>> +(like soft/hard system reboot, physical device replacement or any other procedure
>>> +which can't be attempted on the fly), ``WEDGED=unknown`` will be sent instead.
>>> Userspace consumers can parse this event and attempt recovery as per the
>>> following expectations.
>>> @@ -435,6 +434,7 @@ following expectations.
>>> none optional telemetry collection
>>> rebind unbind + bind driver
>>> bus-reset unbind + bus reset/re-enumeration + bind
>>> + firmware-flash firmware flash
>>> unknown consumer policy
>>> =============== ========================================
>>> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
>>> index 02556363e918..5f3bbe01c207 100644
>>> --- a/drivers/gpu/drm/drm_drv.c
>>> +++ b/drivers/gpu/drm/drm_drv.c
>>> @@ -535,6 +535,8 @@ static const char *drm_get_wedge_recovery(unsigned int opt)
>>> return "rebind";
>>> case DRM_WEDGE_RECOVERY_BUS_RESET:
>>> return "bus-reset";
>>> + case DRM_WEDGE_RECOVERY_FW_FLASH:
>>> + return "firmware-flash";
>>> default:
>>> return NULL;
>>> }
>>> diff --git a/include/drm/drm_device.h b/include/drm/drm_device.h
>>> index 08b3b2467c4c..9d57c8882d93 100644
>>> --- a/include/drm/drm_device.h
>>> +++ b/include/drm/drm_device.h
>>> @@ -30,6 +30,7 @@ struct pci_controller;
>>> #define DRM_WEDGE_RECOVERY_NONE BIT(0) /* optional telemetry collection */
>>> #define DRM_WEDGE_RECOVERY_REBIND BIT(1) /* unbind + bind driver */
>>> #define DRM_WEDGE_RECOVERY_BUS_RESET BIT(2) /* unbind + reset bus device + bind */
>>> +#define DRM_WEDGE_RECOVERY_FW_FLASH BIT(3) /* firmware flash */
>>> /**
>>> * struct drm_wedge_task_info - information about the guilty task of a wedge dev
>>
>
>
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/5] drm: Add a firmware flash method to device wedged uevent
2025-06-24 14:23 ` Christian König
@ 2025-06-24 21:36 ` Rodrigo Vivi
2025-06-27 21:38 ` Rodrigo Vivi
0 siblings, 1 reply; 25+ messages in thread
From: Rodrigo Vivi @ 2025-06-24 21:36 UTC (permalink / raw)
To: Christian König
Cc: Riana Tauro, intel-xe, dri-devel, anshuman.gupta, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, André Almeida, David Airlie
On Tue, Jun 24, 2025 at 04:23:31PM +0200, Christian König wrote:
> On 24.06.25 16:03, Riana Tauro wrote:
> > Hi Christian
> >
> > On 6/24/2025 5:56 PM, Christian König wrote:
> >> On 23.06.25 12:01, Riana Tauro wrote:
> >>> A device is declared wedged when it is non-recoverable from
> >>> the driver context.
> >>
> >> Well, not quite.
> >
> > i took this from the below document. Should it be changed?
>
> The wedge event basically meant that something unexpected happened during the lifetime of the the device (crash, hang whatever).
>
> It can be that the device recovered on it's own and nothing needs to be done (the none case in the documentation) and the event is just send for telemetry collection.
>
> But the usual case is to trigger a bus reset, rebing or even reboot.
>
> > https://www.kernel.org/doc/html/v6.16-rc3/gpu/drm-uapi.html#device-wedging
> >
> >>
> >>> Some firmware errors can also cause
> >>> the device to enter this state and the only method to recover
> >>> from this would be to do a firmware flash
> >>
> >> What? What exactly do you mean with firmware flash here?
> >>
> >> Usually that means updating the firmware, but I don't see how this will bring you out of a wedge state?
> >
> > It means updating the firmware.
> >
> > Series: https://patchwork.freedesktop.org/series/149756/
> >
> > In this xe kmd series, there are few firmware errors that cause the card to be non-functional. The device is declared wedged and a firmware-flash action is sent.
>
> Ok, so let me recap that just to make sure that I did understood that correctly.
>
> You find that the firmware flashed into the device is buggy and then raise a wedge event to automatically trigger a firmware update?
>
> Why not fail to load the driver in the first place?
We already have that in place. If during the probe the fw machinery underneath
identified something is so bad that it needs to be flashed we boot in the
'survivability mode'. The device is not discoverable for any gpu command
submission or memory management, but only fw flashing is possible on that
mode.
This is on top of that. If the fw machinery had a bad unrecoverable error
and decided that fw updating is needed.
> Or at least print a big warning into the system log?
>
> I mean a firmware update is usually something which the system administrator triggers very explicitly because when it fails for some reason (e.g. unexpected reset, power outage or whatever) it can sometimes brick the HW.
>
> I think it's rather brave to do this automatically. Are you sure we don't talk past each other on the meaning of the wedge event?
The goal is not to do that automatically, but raise the uevent to the admin
with enough information that they can decide for the right correctable
action.
Thanks,
Rodrigo.
>
> Thanks,
> Christian.
>
> >
> > There is corresponding fwupd PR in work that uses this uevent to trigger a firmware flash
> >
> > fwupd PR: https://github.com/fwupd/fwupd/pull/8944/
> >
> > Thanks
> > Riana
> >
> >>
> >> Where is the rest of the series?
> >>
> >> Regards,
> >> Christian.
> >>
> >>> v2: modify documentation (Raag, Rodrigo)
> >>>
> >>> Cc: André Almeida <andrealmeid@igalia.com>
> >>> Cc: Christian König <christian.koenig@amd.com>
> >>> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
> >>> ---
> >>> Documentation/gpu/drm-uapi.rst | 6 +++---
> >>> drivers/gpu/drm/drm_drv.c | 2 ++
> >>> include/drm/drm_device.h | 1 +
> >>> 3 files changed, 6 insertions(+), 3 deletions(-)
> >>>
> >>> diff --git a/Documentation/gpu/drm-uapi.rst b/Documentation/gpu/drm-uapi.rst
> >>> index 263e5a97c080..cd2481458755 100644
> >>> --- a/Documentation/gpu/drm-uapi.rst
> >>> +++ b/Documentation/gpu/drm-uapi.rst
> >>> @@ -422,9 +422,8 @@ Current implementation defines three recovery methods, out of which, drivers
> >>> can use any one, multiple or none. Method(s) of choice will be sent in the
> >>> uevent environment as ``WEDGED=<method1>[,..,<methodN>]`` in order of less to
> >>> more side-effects. If driver is unsure about recovery or method is unknown
> >>> -(like soft/hard system reboot, firmware flashing, physical device replacement
> >>> -or any other procedure which can't be attempted on the fly), ``WEDGED=unknown``
> >>> -will be sent instead.
> >>> +(like soft/hard system reboot, physical device replacement or any other procedure
> >>> +which can't be attempted on the fly), ``WEDGED=unknown`` will be sent instead.
> >>> Userspace consumers can parse this event and attempt recovery as per the
> >>> following expectations.
> >>> @@ -435,6 +434,7 @@ following expectations.
> >>> none optional telemetry collection
> >>> rebind unbind + bind driver
> >>> bus-reset unbind + bus reset/re-enumeration + bind
> >>> + firmware-flash firmware flash
> >>> unknown consumer policy
> >>> =============== ========================================
> >>> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
> >>> index 02556363e918..5f3bbe01c207 100644
> >>> --- a/drivers/gpu/drm/drm_drv.c
> >>> +++ b/drivers/gpu/drm/drm_drv.c
> >>> @@ -535,6 +535,8 @@ static const char *drm_get_wedge_recovery(unsigned int opt)
> >>> return "rebind";
> >>> case DRM_WEDGE_RECOVERY_BUS_RESET:
> >>> return "bus-reset";
> >>> + case DRM_WEDGE_RECOVERY_FW_FLASH:
> >>> + return "firmware-flash";
> >>> default:
> >>> return NULL;
> >>> }
> >>> diff --git a/include/drm/drm_device.h b/include/drm/drm_device.h
> >>> index 08b3b2467c4c..9d57c8882d93 100644
> >>> --- a/include/drm/drm_device.h
> >>> +++ b/include/drm/drm_device.h
> >>> @@ -30,6 +30,7 @@ struct pci_controller;
> >>> #define DRM_WEDGE_RECOVERY_NONE BIT(0) /* optional telemetry collection */
> >>> #define DRM_WEDGE_RECOVERY_REBIND BIT(1) /* unbind + bind driver */
> >>> #define DRM_WEDGE_RECOVERY_BUS_RESET BIT(2) /* unbind + reset bus device + bind */
> >>> +#define DRM_WEDGE_RECOVERY_FW_FLASH BIT(3) /* firmware flash */
> >>> /**
> >>> * struct drm_wedge_task_info - information about the guilty task of a wedge dev
> >>
> >
> >
>
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/5] drm: Add a firmware flash method to device wedged uevent
2025-06-24 21:36 ` Rodrigo Vivi
@ 2025-06-27 21:38 ` Rodrigo Vivi
2025-06-30 8:29 ` Christian König
0 siblings, 1 reply; 25+ messages in thread
From: Rodrigo Vivi @ 2025-06-27 21:38 UTC (permalink / raw)
To: Christian König
Cc: Riana Tauro, intel-xe, dri-devel, anshuman.gupta, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, André Almeida, David Airlie
On Tue, Jun 24, 2025 at 05:36:29PM -0400, Rodrigo Vivi wrote:
> On Tue, Jun 24, 2025 at 04:23:31PM +0200, Christian König wrote:
> > On 24.06.25 16:03, Riana Tauro wrote:
> > > Hi Christian
> > >
> > > On 6/24/2025 5:56 PM, Christian König wrote:
> > >> On 23.06.25 12:01, Riana Tauro wrote:
> > >>> A device is declared wedged when it is non-recoverable from
> > >>> the driver context.
> > >>
> > >> Well, not quite.
> > >
> > > i took this from the below document. Should it be changed?
> >
> > The wedge event basically meant that something unexpected happened during the lifetime of the the device (crash, hang whatever).
> >
> > It can be that the device recovered on it's own and nothing needs to be done (the none case in the documentation) and the event is just send for telemetry collection.
> >
> > But the usual case is to trigger a bus reset, rebing or even reboot.
> >
> > > https://www.kernel.org/doc/html/v6.16-rc3/gpu/drm-uapi.html#device-wedging
> > >
> > >>
> > >>> Some firmware errors can also cause
> > >>> the device to enter this state and the only method to recover
> > >>> from this would be to do a firmware flash
> > >>
> > >> What? What exactly do you mean with firmware flash here?
> > >>
> > >> Usually that means updating the firmware, but I don't see how this will bring you out of a wedge state?
> > >
> > > It means updating the firmware.
> > >
> > > Series: https://patchwork.freedesktop.org/series/149756/
> > >
> > > In this xe kmd series, there are few firmware errors that cause the card to be non-functional. The device is declared wedged and a firmware-flash action is sent.
> >
> > Ok, so let me recap that just to make sure that I did understood that correctly.
> >
> > You find that the firmware flashed into the device is buggy and then raise a wedge event to automatically trigger a firmware update?
> >
> > Why not fail to load the driver in the first place?
>
> We already have that in place. If during the probe the fw machinery underneath
> identified something is so bad that it needs to be flashed we boot in the
> 'survivability mode'. The device is not discoverable for any gpu command
> submission or memory management, but only fw flashing is possible on that
> mode.
>
> This is on top of that. If the fw machinery had a bad unrecoverable error
> and decided that fw updating is needed.
>
> > Or at least print a big warning into the system log?
> >
> > I mean a firmware update is usually something which the system administrator triggers very explicitly because when it fails for some reason (e.g. unexpected reset, power outage or whatever) it can sometimes brick the HW.
> >
> > I think it's rather brave to do this automatically. Are you sure we don't talk past each other on the meaning of the wedge event?
>
> The goal is not to do that automatically, but raise the uevent to the admin
> with enough information that they can decide for the right correctable
> action.
Christian, Andre, any concerns with this still?
>
> Thanks,
> Rodrigo.
>
> >
> > Thanks,
> > Christian.
> >
> > >
> > > There is corresponding fwupd PR in work that uses this uevent to trigger a firmware flash
> > >
> > > fwupd PR: https://github.com/fwupd/fwupd/pull/8944/
> > >
> > > Thanks
> > > Riana
> > >
> > >>
> > >> Where is the rest of the series?
> > >>
> > >> Regards,
> > >> Christian.
> > >>
> > >>> v2: modify documentation (Raag, Rodrigo)
> > >>>
> > >>> Cc: André Almeida <andrealmeid@igalia.com>
> > >>> Cc: Christian König <christian.koenig@amd.com>
> > >>> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
> > >>> ---
> > >>> Documentation/gpu/drm-uapi.rst | 6 +++---
> > >>> drivers/gpu/drm/drm_drv.c | 2 ++
> > >>> include/drm/drm_device.h | 1 +
> > >>> 3 files changed, 6 insertions(+), 3 deletions(-)
> > >>>
> > >>> diff --git a/Documentation/gpu/drm-uapi.rst b/Documentation/gpu/drm-uapi.rst
> > >>> index 263e5a97c080..cd2481458755 100644
> > >>> --- a/Documentation/gpu/drm-uapi.rst
> > >>> +++ b/Documentation/gpu/drm-uapi.rst
> > >>> @@ -422,9 +422,8 @@ Current implementation defines three recovery methods, out of which, drivers
> > >>> can use any one, multiple or none. Method(s) of choice will be sent in the
> > >>> uevent environment as ``WEDGED=<method1>[,..,<methodN>]`` in order of less to
> > >>> more side-effects. If driver is unsure about recovery or method is unknown
> > >>> -(like soft/hard system reboot, firmware flashing, physical device replacement
> > >>> -or any other procedure which can't be attempted on the fly), ``WEDGED=unknown``
> > >>> -will be sent instead.
> > >>> +(like soft/hard system reboot, physical device replacement or any other procedure
> > >>> +which can't be attempted on the fly), ``WEDGED=unknown`` will be sent instead.
> > >>> Userspace consumers can parse this event and attempt recovery as per the
> > >>> following expectations.
> > >>> @@ -435,6 +434,7 @@ following expectations.
> > >>> none optional telemetry collection
> > >>> rebind unbind + bind driver
> > >>> bus-reset unbind + bus reset/re-enumeration + bind
> > >>> + firmware-flash firmware flash
> > >>> unknown consumer policy
> > >>> =============== ========================================
> > >>> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
> > >>> index 02556363e918..5f3bbe01c207 100644
> > >>> --- a/drivers/gpu/drm/drm_drv.c
> > >>> +++ b/drivers/gpu/drm/drm_drv.c
> > >>> @@ -535,6 +535,8 @@ static const char *drm_get_wedge_recovery(unsigned int opt)
> > >>> return "rebind";
> > >>> case DRM_WEDGE_RECOVERY_BUS_RESET:
> > >>> return "bus-reset";
> > >>> + case DRM_WEDGE_RECOVERY_FW_FLASH:
> > >>> + return "firmware-flash";
> > >>> default:
> > >>> return NULL;
> > >>> }
> > >>> diff --git a/include/drm/drm_device.h b/include/drm/drm_device.h
> > >>> index 08b3b2467c4c..9d57c8882d93 100644
> > >>> --- a/include/drm/drm_device.h
> > >>> +++ b/include/drm/drm_device.h
> > >>> @@ -30,6 +30,7 @@ struct pci_controller;
> > >>> #define DRM_WEDGE_RECOVERY_NONE BIT(0) /* optional telemetry collection */
> > >>> #define DRM_WEDGE_RECOVERY_REBIND BIT(1) /* unbind + bind driver */
> > >>> #define DRM_WEDGE_RECOVERY_BUS_RESET BIT(2) /* unbind + reset bus device + bind */
> > >>> +#define DRM_WEDGE_RECOVERY_FW_FLASH BIT(3) /* firmware flash */
> > >>> /**
> > >>> * struct drm_wedge_task_info - information about the guilty task of a wedge dev
> > >>
> > >
> > >
> >
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/5] drm: Add a firmware flash method to device wedged uevent
2025-06-27 21:38 ` Rodrigo Vivi
@ 2025-06-30 8:29 ` Christian König
2025-06-30 17:33 ` Rodrigo Vivi
0 siblings, 1 reply; 25+ messages in thread
From: Christian König @ 2025-06-30 8:29 UTC (permalink / raw)
To: Rodrigo Vivi
Cc: Riana Tauro, intel-xe, dri-devel, anshuman.gupta, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, André Almeida, David Airlie
On 27.06.25 23:38, Rodrigo Vivi wrote:
>>> Or at least print a big warning into the system log?
>>>
>>> I mean a firmware update is usually something which the system administrator triggers very explicitly because when it fails for some reason (e.g. unexpected reset, power outage or whatever) it can sometimes brick the HW.
>>>
>>> I think it's rather brave to do this automatically. Are you sure we don't talk past each other on the meaning of the wedge event?
>>
>> The goal is not to do that automatically, but raise the uevent to the admin
>> with enough information that they can decide for the right correctable
>> action.
>
> Christian, Andre, any concerns with this still?
Well, that sounds not quite the correct use case for wedge events.
See the wedge event is made for automation. For example to allow a process supervising containers get the device working again and re-start the container which used it or gather crash log etc .....
When you want to notify the system administrator which manual intervention is necessary then I would just write that into the system log and raise a device event with WEDGED=unknown.
What we could potentially do is to separate between WEDGED=unknown and WEDGED=manual, e.g. between driver has no idea what to do and driver printed useful info into the system log.
But creating an event with WEDGED=firmware-flash just sounds to specific, when we go down that route we might soon have WEDGE=change-bios-setting, WEDGE=....
Regards,
Christian.
>
>>
>> Thanks,
>> Rodrigo.
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/5] drm: Add a firmware flash method to device wedged uevent
2025-06-30 8:29 ` Christian König
@ 2025-06-30 17:33 ` Rodrigo Vivi
2025-07-01 11:37 ` Riana Tauro
0 siblings, 1 reply; 25+ messages in thread
From: Rodrigo Vivi @ 2025-06-30 17:33 UTC (permalink / raw)
To: Christian König
Cc: Riana Tauro, intel-xe, dri-devel, anshuman.gupta, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, André Almeida, David Airlie
On Mon, Jun 30, 2025 at 10:29:10AM +0200, Christian König wrote:
> On 27.06.25 23:38, Rodrigo Vivi wrote:
> >>> Or at least print a big warning into the system log?
> >>>
> >>> I mean a firmware update is usually something which the system administrator triggers very explicitly because when it fails for some reason (e.g. unexpected reset, power outage or whatever) it can sometimes brick the HW.
> >>>
> >>> I think it's rather brave to do this automatically. Are you sure we don't talk past each other on the meaning of the wedge event?
> >>
> >> The goal is not to do that automatically, but raise the uevent to the admin
> >> with enough information that they can decide for the right correctable
> >> action.
> >
> > Christian, Andre, any concerns with this still?
>
> Well, that sounds not quite the correct use case for wedge events.
>
> See the wedge event is made for automation.
I respectfully disagree with this statement.
The wedged state in i915 and xe, then ported to drm, was never just about
automation. Of course, the unbind + flr + rebind is one that driver cannot
do by itself, hence needs automation. But wedge cases were also very useful
in other situations like keeping the device in the failure stage for debuging
(without automation) or keeping other critical things up like display with SW
rendering (again, nothing about automation).
> For example to allow a process supervising containers get the device working again and re-start the container which used it or gather crash log etc .....
>
> When you want to notify the system administrator which manual intervention is necessary then I would just write that into the system log and raise a device event with WEDGED=unknown.
>
> What we could potentially do is to separate between WEDGED=unknown and WEDGED=manual, e.g. between driver has no idea what to do and driver printed useful info into the system log.
Well, you are right here. Even our official documentation in drm-uapi.rst
already tells that firmware flashing should be a case for 'unknown'.
Let's go with that then. And use other hints like logs and sysfs so, Admin
has a better information of what to do.
>
> But creating an event with WEDGED=firmware-flash just sounds to specific, when we go down that route we might soon have WEDGE=change-bios-setting, WEDGE=....
Well, I agree that we shouldn't explode the options exponentially here.
Although I believe that firmware flashing should be a common case in many
case and could be a candidate for another indication.
But let's move on with WEDGE='unknown' for this case.
Thanks,
Rodrigo.
>
> Regards,
> Christian.
>
> >
> >>
> >> Thanks,
> >> Rodrigo.
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/5] drm: Add a firmware flash method to device wedged uevent
2025-06-30 17:33 ` Rodrigo Vivi
@ 2025-07-01 11:37 ` Riana Tauro
2025-07-01 11:41 ` Riana Tauro
0 siblings, 1 reply; 25+ messages in thread
From: Riana Tauro @ 2025-07-01 11:37 UTC (permalink / raw)
To: Rodrigo Vivi, Christian König
Cc: intel-xe, dri-devel, anshuman.gupta, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, André Almeida, David Airlie
Hi Rodrigo/Christian
On 6/30/2025 11:03 PM, Rodrigo Vivi wrote:
> On Mon, Jun 30, 2025 at 10:29:10AM +0200, Christian König wrote:
>> On 27.06.25 23:38, Rodrigo Vivi wrote:
>>>>> Or at least print a big warning into the system log?
>>>>>
>>>>> I mean a firmware update is usually something which the system administrator triggers very explicitly because when it fails for some reason (e.g. unexpected reset, power outage or whatever) it can sometimes brick the HW.
>>>>>
>>>>> I think it's rather brave to do this automatically. Are you sure we don't talk past each other on the meaning of the wedge event?
>>>>
>>>> The goal is not to do that automatically, but raise the uevent to the admin
>>>> with enough information that they can decide for the right correctable
>>>> action.
>>>
>>> Christian, Andre, any concerns with this still?
>>
>> Well, that sounds not quite the correct use case for wedge events.
>>
>> See the wedge event is made for automation.
>
> I respectfully disagree with this statement.
>
> The wedged state in i915 and xe, then ported to drm, was never just about
> automation. Of course, the unbind + flr + rebind is one that driver cannot
> do by itself, hence needs automation. But wedge cases were also very useful
> in other situations like keeping the device in the failure stage for debuging
> (without automation) or keeping other critical things up like display with SW
> rendering (again, nothing about automation).
>
>> For example to allow a process supervising containers get the device working again and re-start the container which used it or gather crash log etc .....
>>
>> When you want to notify the system administrator which manual intervention is necessary then I would just write that into the system log and raise a device event with WEDGED=unknown.
>>
>> What we could potentially do is to separate between WEDGED=unknown and WEDGED=manual, e.g. between driver has no idea what to do and driver printed useful info into the system log.
>
> Well, you are right here. Even our official documentation in drm-uapi.rst
> already tells that firmware flashing should be a case for 'unknown'.
I had added specific method since we know firmware flash will recover
the error. Sure will change it.
In the current code, there is no recovery method named "unknown" even
though the document mentions it
https://elixir.bootlin.com/linux/v6.16-rc4/source/drivers/gpu/drm/drm_drv.c#L534
Since we are adding something new, can it be "manual" instead of unknown?
Thanks
Riana
> Let's go with that then. And use other hints like logs and sysfs so, Admin
> has a better information of what to do.
>
>>
>> But creating an event with WEDGED=firmware-flash just sounds to specific, when we go down that route we might soon have WEDGE=change-bios-setting, WEDGE=....
>
> Well, I agree that we shouldn't explode the options exponentially here.
>
> Although I believe that firmware flashing should be a common case in many
> case and could be a candidate for another indication.
>
> But let's move on with WEDGE='unknown' for this case.
>
> Thanks,
> Rodrigo.
>
>>
>> Regards,
>> Christian.
>>
>>>
>>>>
>>>> Thanks,
>>>> Rodrigo.
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/5] drm: Add a firmware flash method to device wedged uevent
2025-07-01 11:37 ` Riana Tauro
@ 2025-07-01 11:41 ` Riana Tauro
2025-07-01 14:23 ` Raag Jadav
0 siblings, 1 reply; 25+ messages in thread
From: Riana Tauro @ 2025-07-01 11:41 UTC (permalink / raw)
To: Rodrigo Vivi, Christian König
Cc: intel-xe, dri-devel, anshuman.gupta, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, André Almeida, David Airlie
On 7/1/2025 5:07 PM, Riana Tauro wrote:
> Hi Rodrigo/Christian
>
> On 6/30/2025 11:03 PM, Rodrigo Vivi wrote:
>> On Mon, Jun 30, 2025 at 10:29:10AM +0200, Christian König wrote:
>>> On 27.06.25 23:38, Rodrigo Vivi wrote:
>>>>>> Or at least print a big warning into the system log?
>>>>>>
>>>>>> I mean a firmware update is usually something which the system
>>>>>> administrator triggers very explicitly because when it fails for
>>>>>> some reason (e.g. unexpected reset, power outage or whatever) it
>>>>>> can sometimes brick the HW.
>>>>>>
>>>>>> I think it's rather brave to do this automatically. Are you sure
>>>>>> we don't talk past each other on the meaning of the wedge event?
>>>>>
>>>>> The goal is not to do that automatically, but raise the uevent to
>>>>> the admin
>>>>> with enough information that they can decide for the right correctable
>>>>> action.
>>>>
>>>> Christian, Andre, any concerns with this still?
>>>
>>> Well, that sounds not quite the correct use case for wedge events.
>>>
>>> See the wedge event is made for automation.
>>
>> I respectfully disagree with this statement.
>>
>> The wedged state in i915 and xe, then ported to drm, was never just about
>> automation. Of course, the unbind + flr + rebind is one that driver
>> cannot
>> do by itself, hence needs automation. But wedge cases were also very
>> useful
>> in other situations like keeping the device in the failure stage for
>> debuging
>> (without automation) or keeping other critical things up like display
>> with SW
>> rendering (again, nothing about automation).
>>
>>> For example to allow a process supervising containers get the device
>>> working again and re-start the container which used it or gather
>>> crash log etc .....
>>>
>>> When you want to notify the system administrator which manual
>>> intervention is necessary then I would just write that into the
>>> system log and raise a device event with WEDGED=unknown.
>>>
>>> What we could potentially do is to separate between WEDGED=unknown
>>> and WEDGED=manual, e.g. between driver has no idea what to do and
>>> driver printed useful info into the system log.
>>
>> Well, you are right here. Even our official documentation in drm-uapi.rst
>> already tells that firmware flashing should be a case for 'unknown'.
>
> I had added specific method since we know firmware flash will recover
> the error. Sure will change it.
>
> In the current code, there is no recovery method named "unknown" even
> though the document mentions it
>
> https://elixir.bootlin.com/linux/v6.16-rc4/source/drivers/gpu/drm/
> drm_drv.c#L534
>
> Since we are adding something new, can it be "manual" instead of unknown?
Okay missed it. It's in the drm_dev_wedged_event function. Will use unknown
>
>
> Thanks
> Riana
>
>> Let's go with that then. And use other hints like logs and sysfs so,
>> Admin
>> has a better information of what to do.
>>
>>>
>>> But creating an event with WEDGED=firmware-flash just sounds to
>>> specific, when we go down that route we might soon have WEDGE=change-
>>> bios-setting, WEDGE=....
>>
>> Well, I agree that we shouldn't explode the options exponentially here.
>>
>> Although I believe that firmware flashing should be a common case in many
>> case and could be a candidate for another indication.
>>
>> But let's move on with WEDGE='unknown' for this case.
>>
>> Thanks,
>> Rodrigo.
>>
>>>
>>> Regards,
>>> Christian.
>>>
>>>>
>>>>>
>>>>> Thanks,
>>>>> Rodrigo.
>
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/5] drm: Add a firmware flash method to device wedged uevent
2025-07-01 11:41 ` Riana Tauro
@ 2025-07-01 14:23 ` Raag Jadav
2025-07-01 14:35 ` Christian König
0 siblings, 1 reply; 25+ messages in thread
From: Raag Jadav @ 2025-07-01 14:23 UTC (permalink / raw)
To: Riana Tauro
Cc: Rodrigo Vivi, Christian König, intel-xe, dri-devel,
anshuman.gupta, lucas.demarchi, aravind.iddamsetty,
umesh.nerlige.ramappa, frank.scarbrough, André Almeida,
David Airlie
On Tue, Jul 01, 2025 at 05:11:24PM +0530, Riana Tauro wrote:
> On 7/1/2025 5:07 PM, Riana Tauro wrote:
> > On 6/30/2025 11:03 PM, Rodrigo Vivi wrote:
> > > On Mon, Jun 30, 2025 at 10:29:10AM +0200, Christian König wrote:
> > > > On 27.06.25 23:38, Rodrigo Vivi wrote:
> > > > > > > Or at least print a big warning into the system log?
> > > > > > >
> > > > > > > I mean a firmware update is usually something which
> > > > > > > the system administrator triggers very explicitly
> > > > > > > because when it fails for some reason (e.g.
> > > > > > > unexpected reset, power outage or whatever) it can
> > > > > > > sometimes brick the HW.
> > > > > > >
> > > > > > > I think it's rather brave to do this automatically.
> > > > > > > Are you sure we don't talk past each other on the
> > > > > > > meaning of the wedge event?
> > > > > >
> > > > > > The goal is not to do that automatically, but raise the
> > > > > > uevent to the admin
> > > > > > with enough information that they can decide for the right correctable
> > > > > > action.
> > > > >
> > > > > Christian, Andre, any concerns with this still?
> > > >
> > > > Well, that sounds not quite the correct use case for wedge events.
> > > >
> > > > See the wedge event is made for automation.
> > >
> > > I respectfully disagree with this statement.
> > >
> > > The wedged state in i915 and xe, then ported to drm, was never just about
> > > automation. Of course, the unbind + flr + rebind is one that driver
> > > cannot
> > > do by itself, hence needs automation. But wedge cases were also very
> > > useful
> > > in other situations like keeping the device in the failure stage for
> > > debuging
> > > (without automation) or keeping other critical things up like
> > > display with SW
> > > rendering (again, nothing about automation).
> > >
> > > > For example to allow a process supervising containers get the
> > > > device working again and re-start the container which used it or
> > > > gather crash log etc .....
> > > >
> > > > When you want to notify the system administrator which manual
> > > > intervention is necessary then I would just write that into the
> > > > system log and raise a device event with WEDGED=unknown.
> > > >
> > > > What we could potentially do is to separate between
> > > > WEDGED=unknown and WEDGED=manual, e.g. between driver has no
> > > > idea what to do and driver printed useful info into the system
> > > > log.
> > >
> > > Well, you are right here. Even our official documentation in drm-uapi.rst
> > > already tells that firmware flashing should be a case for 'unknown'.
> >
> > I had added specific method since we know firmware flash will recover
> > the error. Sure will change it.
> >
> > In the current code, there is no recovery method named "unknown" even
> > though the document mentions it
> >
> > https://elixir.bootlin.com/linux/v6.16-rc4/source/drivers/gpu/drm/
> > drm_drv.c#L534
> >
> > Since we are adding something new, can it be "manual" instead of unknown?
>
> Okay missed it. It's in the drm_dev_wedged_event function. Will use unknown
> >
> > > Let's go with that then. And use other hints like logs and sysfs so,
> > > Admin
> > > has a better information of what to do.
> > >
> > > > But creating an event with WEDGED=firmware-flash just sounds to
> > > > specific, when we go down that route we might soon have
> > > > WEDGE=change- bios-setting, WEDGE=....
> > >
> > > Well, I agree that we shouldn't explode the options exponentially here.
> > >
> > > Although I believe that firmware flashing should be a common case in many
> > > case and could be a candidate for another indication.
> > >
> > > But let's move on with WEDGE='unknown' for this case.
I understand that WEDGED=firmware-flash can't be handled in a generic way
for all drivers but it is simply not as same as WEDGED=unknown since the
driver knows something specific needs to be done here.
I'm wondering if we could add a WEDGED=vendor-specific method for such
cases?
Chris? André?
Raag
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/5] drm: Add a firmware flash method to device wedged uevent
2025-07-01 14:23 ` Raag Jadav
@ 2025-07-01 14:35 ` Christian König
2025-07-01 16:02 ` Raag Jadav
0 siblings, 1 reply; 25+ messages in thread
From: Christian König @ 2025-07-01 14:35 UTC (permalink / raw)
To: Raag Jadav, Riana Tauro
Cc: Rodrigo Vivi, intel-xe, dri-devel, anshuman.gupta, lucas.demarchi,
aravind.iddamsetty, umesh.nerlige.ramappa, frank.scarbrough,
André Almeida, David Airlie
On 01.07.25 16:23, Raag Jadav wrote:
> On Tue, Jul 01, 2025 at 05:11:24PM +0530, Riana Tauro wrote:
>> On 7/1/2025 5:07 PM, Riana Tauro wrote:
>>> On 6/30/2025 11:03 PM, Rodrigo Vivi wrote:
>>>> On Mon, Jun 30, 2025 at 10:29:10AM +0200, Christian König wrote:
>>>>> On 27.06.25 23:38, Rodrigo Vivi wrote:
>>>>>>>> Or at least print a big warning into the system log?
>>>>>>>>
>>>>>>>> I mean a firmware update is usually something which
>>>>>>>> the system administrator triggers very explicitly
>>>>>>>> because when it fails for some reason (e.g.
>>>>>>>> unexpected reset, power outage or whatever) it can
>>>>>>>> sometimes brick the HW.
>>>>>>>>
>>>>>>>> I think it's rather brave to do this automatically.
>>>>>>>> Are you sure we don't talk past each other on the
>>>>>>>> meaning of the wedge event?
>>>>>>>
>>>>>>> The goal is not to do that automatically, but raise the
>>>>>>> uevent to the admin
>>>>>>> with enough information that they can decide for the right correctable
>>>>>>> action.
>>>>>>
>>>>>> Christian, Andre, any concerns with this still?
>>>>>
>>>>> Well, that sounds not quite the correct use case for wedge events.
>>>>>
>>>>> See the wedge event is made for automation.
>>>>
>>>> I respectfully disagree with this statement.
>>>>
>>>> The wedged state in i915 and xe, then ported to drm, was never just about
>>>> automation. Of course, the unbind + flr + rebind is one that driver
>>>> cannot
>>>> do by itself, hence needs automation. But wedge cases were also very
>>>> useful
>>>> in other situations like keeping the device in the failure stage for
>>>> debuging
>>>> (without automation) or keeping other critical things up like
>>>> display with SW
>>>> rendering (again, nothing about automation).
Granted, automation is probably not the right term.
What I wanted to say is that the wedge event should not replace information in the system log.
>>>>
>>>>> For example to allow a process supervising containers get the
>>>>> device working again and re-start the container which used it or
>>>>> gather crash log etc .....
>>>>>
>>>>> When you want to notify the system administrator which manual
>>>>> intervention is necessary then I would just write that into the
>>>>> system log and raise a device event with WEDGED=unknown.
>>>>>
>>>>> What we could potentially do is to separate between
>>>>> WEDGED=unknown and WEDGED=manual, e.g. between driver has no
>>>>> idea what to do and driver printed useful info into the system
>>>>> log.
>>>>
>>>> Well, you are right here. Even our official documentation in drm-uapi.rst
>>>> already tells that firmware flashing should be a case for 'unknown'.
>>>
>>> I had added specific method since we know firmware flash will recover
>>> the error. Sure will change it.
>>>
>>> In the current code, there is no recovery method named "unknown" even
>>> though the document mentions it
>>>
>>> https://elixir.bootlin.com/linux/v6.16-rc4/source/drivers/gpu/drm/
>>> drm_drv.c#L534
>>>
>>> Since we are adding something new, can it be "manual" instead of unknown?
>>
>> Okay missed it. It's in the drm_dev_wedged_event function. Will use unknown
>>>
>>>> Let's go with that then. And use other hints like logs and sysfs so,
>>>> Admin
>>>> has a better information of what to do.
>>>>
>>>>> But creating an event with WEDGED=firmware-flash just sounds to
>>>>> specific, when we go down that route we might soon have
>>>>> WEDGE=change- bios-setting, WEDGE=....
>>>>
>>>> Well, I agree that we shouldn't explode the options exponentially here.
>>>>
>>>> Although I believe that firmware flashing should be a common case in many
>>>> case and could be a candidate for another indication.
>>>>
>>>> But let's move on with WEDGE='unknown' for this case.
>
> I understand that WEDGED=firmware-flash can't be handled in a generic way
> for all drivers but it is simply not as same as WEDGED=unknown since the
> driver knows something specific needs to be done here.
>
> I'm wondering if we could add a WEDGED=vendor-specific method for such
> cases?
Works for me as well.
My main concern was that we should not start to invent specific wedge events for all kind of different problems.
On the other hand what's the additional value to distinct between unknown and vendor-specific?
In other words even if the necessary handling is unknown to the wedge event, the administrator could and should still examine the logs to see what to do.
Regards,
Christian.
>
> Chris? André?
>
> Raag
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/5] drm: Add a firmware flash method to device wedged uevent
2025-07-01 14:35 ` Christian König
@ 2025-07-01 16:02 ` Raag Jadav
2025-07-01 16:44 ` Riana Tauro
0 siblings, 1 reply; 25+ messages in thread
From: Raag Jadav @ 2025-07-01 16:02 UTC (permalink / raw)
To: Christian König
Cc: Riana Tauro, Rodrigo Vivi, intel-xe, dri-devel, anshuman.gupta,
lucas.demarchi, aravind.iddamsetty, umesh.nerlige.ramappa,
frank.scarbrough, André Almeida, David Airlie
On Tue, Jul 01, 2025 at 04:35:42PM +0200, Christian König wrote:
>On 01.07.25 16:23, Raag Jadav wrote:
>> On Tue, Jul 01, 2025 at 05:11:24PM +0530, Riana Tauro wrote:
>>> On 7/1/2025 5:07 PM, Riana Tauro wrote:
>>>> On 6/30/2025 11:03 PM, Rodrigo Vivi wrote:
>>>>> On Mon, Jun 30, 2025 at 10:29:10AM +0200, Christian König wrote:
>>>>>> On 27.06.25 23:38, Rodrigo Vivi wrote:
>>>>>>>>> Or at least print a big warning into the system log?
>>>>>>>>>
>>>>>>>>> I mean a firmware update is usually something which
>>>>>>>>> the system administrator triggers very explicitly
>>>>>>>>> because when it fails for some reason (e.g.
>>>>>>>>> unexpected reset, power outage or whatever) it can
>>>>>>>>> sometimes brick the HW.
>>>>>>>>>
>>>>>>>>> I think it's rather brave to do this automatically.
>>>>>>>>> Are you sure we don't talk past each other on the
>>>>>>>>> meaning of the wedge event?
>>>>>>>>
>>>>>>>> The goal is not to do that automatically, but raise the
>>>>>>>> uevent to the admin
>>>>>>>> with enough information that they can decide for the right correctable
>>>>>>>> action.
>>>>>>>
>>>>>>> Christian, Andre, any concerns with this still?
>>>>>>
>>>>>> Well, that sounds not quite the correct use case for wedge events.
>>>>>>
>>>>>> See the wedge event is made for automation.
>>>>>
>>>>> I respectfully disagree with this statement.
>>>>>
>>>>> The wedged state in i915 and xe, then ported to drm, was never just about
>>>>> automation. Of course, the unbind + flr + rebind is one that driver
>>>>> cannot
>>>>> do by itself, hence needs automation. But wedge cases were also very
>>>>> useful
>>>>> in other situations like keeping the device in the failure stage for
>>>>> debuging
>>>>> (without automation) or keeping other critical things up like
>>>>> display with SW
>>>>> rendering (again, nothing about automation).
>
> Granted, automation is probably not the right term.
>
> What I wanted to say is that the wedge event should not replace information in the system log.
>
>>>>>
>>>>>> For example to allow a process supervising containers get the
>>>>>> device working again and re-start the container which used it or
>>>>>> gather crash log etc .....
>>>>>>
>>>>>> When you want to notify the system administrator which manual
>>>>>> intervention is necessary then I would just write that into the
>>>>>> system log and raise a device event with WEDGED=unknown.
>>>>>>
>>>>>> What we could potentially do is to separate between
>>>>>> WEDGED=unknown and WEDGED=manual, e.g. between driver has no
>>>>>> idea what to do and driver printed useful info into the system
>>>>>> log.
>>>>>
>>>>> Well, you are right here. Even our official documentation in drm-uapi.rst
>>>>> already tells that firmware flashing should be a case for 'unknown'.
>>>>
>>>> I had added specific method since we know firmware flash will recover
>>>> the error. Sure will change it.
>>>>
>>>> In the current code, there is no recovery method named "unknown" even
>>>> though the document mentions it
>>>>
>>>> https://elixir.bootlin.com/linux/v6.16-rc4/source/drivers/gpu/drm/
>>>> drm_drv.c#L534
>>>>
>>>> Since we are adding something new, can it be "manual" instead of unknown?
>>>
>>> Okay missed it. It's in the drm_dev_wedged_event function. Will use unknown
>>>>
>>>>> Let's go with that then. And use other hints like logs and sysfs so,
>>>>> Admin
>>>>> has a better information of what to do.
>>>>>
>>>>>> But creating an event with WEDGED=firmware-flash just sounds to
>>>>>> specific, when we go down that route we might soon have
>>>>>> WEDGE=change- bios-setting, WEDGE=....
>>>>>
>>>>> Well, I agree that we shouldn't explode the options exponentially here.
>>>>>
>>>>> Although I believe that firmware flashing should be a common case in many
>>>>> case and could be a candidate for another indication.
>>>>>
>>>>> But let's move on with WEDGE='unknown' for this case.
>>
>> I understand that WEDGED=firmware-flash can't be handled in a generic way
>> for all drivers but it is simply not as same as WEDGED=unknown since the
>> driver knows something specific needs to be done here.
>>
>> I'm wondering if we could add a WEDGED=vendor-specific method for such
>> cases?
>
> Works for me as well.
>
> My main concern was that we should not start to invent specific wedge events for all kind of different problems.
>
> On the other hand what's the additional value to distinct between unknown and vendor-specific?
>
> In other words even if the necessary handling is unknown to the wedge event, the administrator could and should still examine the logs to see what to do.
They're somewhat similar except the consumer can execute vendor specific
triggers (look at some sys/proc entries or logs) based on device id that
the consumer is already familiar with as defined by the vendor, and could
potentially be automated.
Unknown is basically "I'm clueless and good luck with your investigation".
So the distinction is whether the driver is able to provide definition for
its vendor specific cases and how well documented they are.
Raag
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/5] drm: Add a firmware flash method to device wedged uevent
2025-07-01 16:02 ` Raag Jadav
@ 2025-07-01 16:44 ` Riana Tauro
2025-07-01 17:15 ` André Almeida
0 siblings, 1 reply; 25+ messages in thread
From: Riana Tauro @ 2025-07-01 16:44 UTC (permalink / raw)
To: Raag Jadav, Christian König
Cc: Rodrigo Vivi, intel-xe, dri-devel, anshuman.gupta, lucas.demarchi,
aravind.iddamsetty, umesh.nerlige.ramappa, frank.scarbrough,
André Almeida, David Airlie
On 7/1/2025 9:32 PM, Raag Jadav wrote:
> On Tue, Jul 01, 2025 at 04:35:42PM +0200, Christian König wrote:
>> On 01.07.25 16:23, Raag Jadav wrote:
>>> On Tue, Jul 01, 2025 at 05:11:24PM +0530, Riana Tauro wrote:
>>>> On 7/1/2025 5:07 PM, Riana Tauro wrote:
>>>>> On 6/30/2025 11:03 PM, Rodrigo Vivi wrote:
>>>>>> On Mon, Jun 30, 2025 at 10:29:10AM +0200, Christian König wrote:
>>>>>>> On 27.06.25 23:38, Rodrigo Vivi wrote:
>>>>>>>>>> Or at least print a big warning into the system log?
>>>>>>>>>>
>>>>>>>>>> I mean a firmware update is usually something which
>>>>>>>>>> the system administrator triggers very explicitly
>>>>>>>>>> because when it fails for some reason (e.g.
>>>>>>>>>> unexpected reset, power outage or whatever) it can
>>>>>>>>>> sometimes brick the HW.
>>>>>>>>>>
>>>>>>>>>> I think it's rather brave to do this automatically.
>>>>>>>>>> Are you sure we don't talk past each other on the
>>>>>>>>>> meaning of the wedge event?
>>>>>>>>>
>>>>>>>>> The goal is not to do that automatically, but raise the
>>>>>>>>> uevent to the admin
>>>>>>>>> with enough information that they can decide for the right correctable
>>>>>>>>> action.
>>>>>>>>
>>>>>>>> Christian, Andre, any concerns with this still?
>>>>>>>
>>>>>>> Well, that sounds not quite the correct use case for wedge events.
>>>>>>>
>>>>>>> See the wedge event is made for automation.
>>>>>>
>>>>>> I respectfully disagree with this statement.
>>>>>>
>>>>>> The wedged state in i915 and xe, then ported to drm, was never just about
>>>>>> automation. Of course, the unbind + flr + rebind is one that driver
>>>>>> cannot
>>>>>> do by itself, hence needs automation. But wedge cases were also very
>>>>>> useful
>>>>>> in other situations like keeping the device in the failure stage for
>>>>>> debuging
>>>>>> (without automation) or keeping other critical things up like
>>>>>> display with SW
>>>>>> rendering (again, nothing about automation).
>>
>> Granted, automation is probably not the right term.
>>
>> What I wanted to say is that the wedge event should not replace information in the system log.
>>
>>>>>>
>>>>>>> For example to allow a process supervising containers get the
>>>>>>> device working again and re-start the container which used it or
>>>>>>> gather crash log etc .....
>>>>>>>
>>>>>>> When you want to notify the system administrator which manual
>>>>>>> intervention is necessary then I would just write that into the
>>>>>>> system log and raise a device event with WEDGED=unknown.
>>>>>>>
>>>>>>> What we could potentially do is to separate between
>>>>>>> WEDGED=unknown and WEDGED=manual, e.g. between driver has no
>>>>>>> idea what to do and driver printed useful info into the system
>>>>>>> log.
>>>>>>
>>>>>> Well, you are right here. Even our official documentation in drm-uapi.rst
>>>>>> already tells that firmware flashing should be a case for 'unknown'.
>>>>>
>>>>> I had added specific method since we know firmware flash will recover
>>>>> the error. Sure will change it.
>>>>>
>>>>> In the current code, there is no recovery method named "unknown" even
>>>>> though the document mentions it
>>>>>
>>>>> https://elixir.bootlin.com/linux/v6.16-rc4/source/drivers/gpu/drm/
>>>>> drm_drv.c#L534
>>>>>
>>>>> Since we are adding something new, can it be "manual" instead of unknown?
>>>>
>>>> Okay missed it. It's in the drm_dev_wedged_event function. Will use unknown
>>>>>
>>>>>> Let's go with that then. And use other hints like logs and sysfs so,
>>>>>> Admin
>>>>>> has a better information of what to do.
>>>>>>
>>>>>>> But creating an event with WEDGED=firmware-flash just sounds to
>>>>>>> specific, when we go down that route we might soon have
>>>>>>> WEDGE=change- bios-setting, WEDGE=....
>>>>>>
>>>>>> Well, I agree that we shouldn't explode the options exponentially here.
>>>>>>
>>>>>> Although I believe that firmware flashing should be a common case in many
>>>>>> case and could be a candidate for another indication.
>>>>>>
>>>>>> But let's move on with WEDGE='unknown' for this case.
>>>
>>> I understand that WEDGED=firmware-flash can't be handled in a generic way
>>> for all drivers but it is simply not as same as WEDGED=unknown since the
>>> driver knows something specific needs to be done here.
>>>
>>> I'm wondering if we could add a WEDGED=vendor-specific method for such
>>> cases?
>>
>> Works for me as well.
>>
>> My main concern was that we should not start to invent specific wedge events for all kind of different problems.
>>
>> On the other hand what's the additional value to distinct between unknown and vendor-specific?
>>
>> In other words even if the necessary handling is unknown to the wedge event, the administrator could and should still examine the logs to see what to do.
>
> They're somewhat similar except the consumer can execute vendor specific
> triggers (look at some sys/proc entries or logs) based on device id that
> the consumer is already familiar with as defined by the vendor, and could
> potentially be automated.
>
> Unknown is basically "I'm clueless and good luck with your investigation".
>
> So the distinction is whether the driver is able to provide definition for
> its vendor specific cases and how well documented they are.
Agree with Raag. We know which recovery method works here. Rather than
using 'unknown', 'manual/vendor' macro seems better with vendor specific
documentation for recovery.
Thanks
Riana
>
> Raag
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/5] drm: Add a firmware flash method to device wedged uevent
2025-07-01 16:44 ` Riana Tauro
@ 2025-07-01 17:15 ` André Almeida
0 siblings, 0 replies; 25+ messages in thread
From: André Almeida @ 2025-07-01 17:15 UTC (permalink / raw)
To: Riana Tauro, Raag Jadav, Christian König
Cc: Rodrigo Vivi, intel-xe, dri-devel, anshuman.gupta, lucas.demarchi,
aravind.iddamsetty, umesh.nerlige.ramappa, frank.scarbrough,
David Airlie
Em 01/07/2025 13:44, Riana Tauro escreveu:
>
>
> On 7/1/2025 9:32 PM, Raag Jadav wrote:
>> On Tue, Jul 01, 2025 at 04:35:42PM +0200, Christian König wrote:
>>> On 01.07.25 16:23, Raag Jadav wrote:
>>>> On Tue, Jul 01, 2025 at 05:11:24PM +0530, Riana Tauro wrote:
>>>>> On 7/1/2025 5:07 PM, Riana Tauro wrote:
>>>>>> On 6/30/2025 11:03 PM, Rodrigo Vivi wrote:
>>>>>>> On Mon, Jun 30, 2025 at 10:29:10AM +0200, Christian König wrote:
>>>>>>>> On 27.06.25 23:38, Rodrigo Vivi wrote:
>>>>>>>>>>> Or at least print a big warning into the system log?
>>>>>>>>>>>
>>>>>>>>>>> I mean a firmware update is usually something which
>>>>>>>>>>> the system administrator triggers very explicitly
>>>>>>>>>>> because when it fails for some reason (e.g.
>>>>>>>>>>> unexpected reset, power outage or whatever) it can
>>>>>>>>>>> sometimes brick the HW.
>>>>>>>>>>>
>>>>>>>>>>> I think it's rather brave to do this automatically.
>>>>>>>>>>> Are you sure we don't talk past each other on the
>>>>>>>>>>> meaning of the wedge event?
>>>>>>>>>>
>>>>>>>>>> The goal is not to do that automatically, but raise the
>>>>>>>>>> uevent to the admin
>>>>>>>>>> with enough information that they can decide for the right
>>>>>>>>>> correctable
>>>>>>>>>> action.
>>>>>>>>>
>>>>>>>>> Christian, Andre, any concerns with this still?
>>>>>>>>
>>>>>>>> Well, that sounds not quite the correct use case for wedge events.
>>>>>>>>
>>>>>>>> See the wedge event is made for automation.
>>>>>>>
>>>>>>> I respectfully disagree with this statement.
>>>>>>>
>>>>>>> The wedged state in i915 and xe, then ported to drm, was never
>>>>>>> just about
>>>>>>> automation. Of course, the unbind + flr + rebind is one that driver
>>>>>>> cannot
>>>>>>> do by itself, hence needs automation. But wedge cases were also very
>>>>>>> useful
>>>>>>> in other situations like keeping the device in the failure stage for
>>>>>>> debuging
>>>>>>> (without automation) or keeping other critical things up like
>>>>>>> display with SW
>>>>>>> rendering (again, nothing about automation).
>>>
>>> Granted, automation is probably not the right term.
>>>
>>> What I wanted to say is that the wedge event should not replace
>>> information in the system log.
>>>
>>>>>>>
>>>>>>>> For example to allow a process supervising containers get the
>>>>>>>> device working again and re-start the container which used it or
>>>>>>>> gather crash log etc .....
>>>>>>>>
>>>>>>>> When you want to notify the system administrator which manual
>>>>>>>> intervention is necessary then I would just write that into the
>>>>>>>> system log and raise a device event with WEDGED=unknown.
>>>>>>>>
>>>>>>>> What we could potentially do is to separate between
>>>>>>>> WEDGED=unknown and WEDGED=manual, e.g. between driver has no
>>>>>>>> idea what to do and driver printed useful info into the system
>>>>>>>> log.
>>>>>>>
>>>>>>> Well, you are right here. Even our official documentation in drm-
>>>>>>> uapi.rst
>>>>>>> already tells that firmware flashing should be a case for 'unknown'.
>>>>>>
>>>>>> I had added specific method since we know firmware flash will recover
>>>>>> the error. Sure will change it.
>>>>>>
>>>>>> In the current code, there is no recovery method named "unknown" even
>>>>>> though the document mentions it
>>>>>>
>>>>>> https://elixir.bootlin.com/linux/v6.16-rc4/source/drivers/gpu/drm/
>>>>>> drm_drv.c#L534
>>>>>>
>>>>>> Since we are adding something new, can it be "manual" instead of
>>>>>> unknown?
>>>>>
>>>>> Okay missed it. It's in the drm_dev_wedged_event function. Will use
>>>>> unknown
>>>>>>
>>>>>>> Let's go with that then. And use other hints like logs and sysfs so,
>>>>>>> Admin
>>>>>>> has a better information of what to do.
>>>>>>>
>>>>>>>> But creating an event with WEDGED=firmware-flash just sounds to
>>>>>>>> specific, when we go down that route we might soon have
>>>>>>>> WEDGE=change- bios-setting, WEDGE=....
>>>>>>>
>>>>>>> Well, I agree that we shouldn't explode the options exponentially
>>>>>>> here.
>>>>>>>
>>>>>>> Although I believe that firmware flashing should be a common case
>>>>>>> in many
>>>>>>> case and could be a candidate for another indication.
>>>>>>>
>>>>>>> But let's move on with WEDGE='unknown' for this case.
>>>>
>>>> I understand that WEDGED=firmware-flash can't be handled in a
>>>> generic way
>>>> for all drivers but it is simply not as same as WEDGED=unknown since
>>>> the
>>>> driver knows something specific needs to be done here.
>>>>
>>>> I'm wondering if we could add a WEDGED=vendor-specific method for such
>>>> cases?
>>>
>>> Works for me as well.
>>>
>>> My main concern was that we should not start to invent specific wedge
>>> events for all kind of different problems.
>>>
>>> On the other hand what's the additional value to distinct between
>>> unknown and vendor-specific?
>>>
>>> In other words even if the necessary handling is unknown to the wedge
>>> event, the administrator could and should still examine the logs to
>>> see what to do.
>>
>> They're somewhat similar except the consumer can execute vendor specific
>> triggers (look at some sys/proc entries or logs) based on device id that
>> the consumer is already familiar with as defined by the vendor, and could
>> potentially be automated.
>>
>> Unknown is basically "I'm clueless and good luck with your
>> investigation".
>>
>> So the distinction is whether the driver is able to provide definition
>> for
>> its vendor specific cases and how well documented they are.
>
> Agree with Raag. We know which recovery method works here. Rather than
> using 'unknown', 'manual/vendor' macro seems better with vendor specific
> documentation for recovery.
>
That makes sense for me as well, thanks!
> Thanks
> Riana
>
>>
>> Raag
>
>
^ permalink raw reply [flat|nested] 25+ messages in thread
* [PATCH v2 2/5] drm/xe: Add a helper function to set recovery method
2025-06-23 10:01 [PATCH v2 0/5] Handle Firmware reported Hardware Errors Riana Tauro
` (2 preceding siblings ...)
2025-06-23 10:01 ` [PATCH v2 1/5] drm: Add a firmware flash method to device wedged uevent Riana Tauro
@ 2025-06-23 10:01 ` Riana Tauro
2025-06-23 10:01 ` [PATCH v2 3/5] drm/xe: Add support to handle hardware errors Riana Tauro
` (5 subsequent siblings)
9 siblings, 0 replies; 25+ messages in thread
From: Riana Tauro @ 2025-06-23 10:01 UTC (permalink / raw)
To: intel-xe
Cc: riana.tauro, anshuman.gupta, rodrigo.vivi, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough
Add a helper function to set recovery method. The recovery
method has to be set before declaring the device wedged and sending the
drm wedged uevent. If no method is set, default unbind/re-bind method
will be set
v2: wrap to 80 characters
move gt wedged before uevent
fix kernel-doc (Raag)
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
---
drivers/gpu/drm/xe/xe_device.c | 48 ++++++++++++++++++----------
drivers/gpu/drm/xe/xe_device.h | 1 +
drivers/gpu/drm/xe/xe_device_types.h | 2 ++
3 files changed, 35 insertions(+), 16 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 8cfcfff250ca..eaff79257d85 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -1121,20 +1121,33 @@ static void xe_device_wedged_fini(struct drm_device *drm, void *arg)
xe_pm_runtime_put(xe);
}
+/**
+ * xe_device_set_wedged_method - Set wedged recovery method
+ * @xe: xe device instance
+ * @method: recovery method to set
+ *
+ * Set wedged recovery method to be sent using drm wedged uevent.
+ */
+void xe_device_set_wedged_method(struct xe_device *xe, unsigned long method)
+{
+ xe->wedged.method = method;
+}
+
/**
* xe_device_declare_wedged - Declare device wedged
* @xe: xe device instance
*
- * This is a final state that can only be cleared with a module
- * re-probe (unbind + bind).
- * In this state every IOCTL will be blocked so the GT cannot be used.
- * In general it will be called upon any critical error such as gt reset
- * failure or guc loading failure. Userspace will be notified of this state
- * through device wedged uevent.
- * If xe.wedged module parameter is set to 2, this function will be called
- * on every single execution timeout (a.k.a. GPU hang) right after devcoredump
- * snapshot capture. In this mode, GT reset won't be attempted so the state of
- * the issue is preserved for further debugging.
+ * This is a final state that can only be cleared with the method specified
+ * in the drm wedged uevent. The method needs to be set using
+ * xe_device_set_wedged_method before declaring the device as wedged or the
+ * default method of reprobe (unbind/re-bind) will be sent. In this state every
+ * IOCTL will be blocked so the GT cannot be used. In general it will be called
+ * upon any critical error such as gt reset failure or guc loading failure or
+ * firmware failure. Userspace will be notified of this state through device
+ * wedged uevent. If xe.wedged module parameter is set to 2, this function will
+ * be called on every single execution timeout (a.k.a. GPU hang) right after
+ * devcoredump snapshot capture. In this mode, GT reset won't be attempted so
+ * the state of the issue is preserved for further debugging.
*/
void xe_device_declare_wedged(struct xe_device *xe)
{
@@ -1153,6 +1166,14 @@ void xe_device_declare_wedged(struct xe_device *xe)
return;
}
+ /* If no wedge recovery method is set, use default */
+ if (!xe->wedged.method)
+ xe_device_set_wedged_method(xe, DRM_WEDGE_RECOVERY_REBIND |
+ DRM_WEDGE_RECOVERY_BUS_RESET);
+
+ for_each_gt(gt, xe, id)
+ xe_gt_declare_wedged(gt);
+
if (!atomic_xchg(&xe->wedged.flag, 1)) {
xe->needs_flr_on_fini = true;
drm_err(&xe->drm,
@@ -1162,11 +1183,6 @@ void xe_device_declare_wedged(struct xe_device *xe)
dev_name(xe->drm.dev));
/* Notify userspace of wedged device */
- drm_dev_wedged_event(&xe->drm,
- DRM_WEDGE_RECOVERY_REBIND | DRM_WEDGE_RECOVERY_BUS_RESET,
- NULL);
+ drm_dev_wedged_event(&xe->drm, xe->wedged.method, NULL);
}
-
- for_each_gt(gt, xe, id)
- xe_gt_declare_wedged(gt);
}
diff --git a/drivers/gpu/drm/xe/xe_device.h b/drivers/gpu/drm/xe/xe_device.h
index e4da797a984b..40518af2333b 100644
--- a/drivers/gpu/drm/xe/xe_device.h
+++ b/drivers/gpu/drm/xe/xe_device.h
@@ -191,6 +191,7 @@ static inline bool xe_device_wedged(struct xe_device *xe)
}
void xe_device_declare_wedged(struct xe_device *xe);
+void xe_device_set_wedged_method(struct xe_device *xe, unsigned long method);
struct xe_file *xe_file_get(struct xe_file *xef);
void xe_file_put(struct xe_file *xef);
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index 003afb279a5e..d898238e8994 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -564,6 +564,8 @@ struct xe_device {
atomic_t flag;
/** @wedged.mode: Mode controlled by kernel parameter and debugfs */
int mode;
+ /** @wedged.method: Recovery method to be sent in the drm device wedged uevent */
+ unsigned long method;
} wedged;
/** @bo_device: Struct to control async free of BOs */
--
2.47.1
^ permalink raw reply related [flat|nested] 25+ messages in thread* [PATCH v2 3/5] drm/xe: Add support to handle hardware errors
2025-06-23 10:01 [PATCH v2 0/5] Handle Firmware reported Hardware Errors Riana Tauro
` (3 preceding siblings ...)
2025-06-23 10:01 ` [PATCH v2 2/5] drm/xe: Add a helper function to set recovery method Riana Tauro
@ 2025-06-23 10:01 ` Riana Tauro
2025-06-23 10:01 ` [PATCH v2 4/5] drm/xe/xe_hw_error: Handle CSC Firmware reported Hardware errors Riana Tauro
` (4 subsequent siblings)
9 siblings, 0 replies; 25+ messages in thread
From: Riana Tauro @ 2025-06-23 10:01 UTC (permalink / raw)
To: intel-xe
Cc: riana.tauro, anshuman.gupta, rodrigo.vivi, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, Himal Prasad Ghimiray
Gfx device reports two classes of errors: uncorrectable and
correctable. Depending on the severity uncorrectable errors are
further classified as non fatal and fatal
Correctable and non-fatal errors are reported as MSI's and bits in
the Master Interrupt Register indicate the class of the error.
The source of the error is then read from the Device Error Source
Register. Fatal errors are reported as PCIe errors
When a PCIe error is asserted, the OS will perform a device warm reset
which causes the driver to reload. The error registers are sticky
and the values are maintained through a warm reset
Add basic support to handle these errors
Bspec: 50875, 53073, 53074, 53075, 53076
Co-developed-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
---
drivers/gpu/drm/xe/Makefile | 1 +
drivers/gpu/drm/xe/regs/xe_hw_error_regs.h | 15 +++
drivers/gpu/drm/xe/regs/xe_irq_regs.h | 1 +
drivers/gpu/drm/xe/xe_hw_error.c | 108 +++++++++++++++++++++
drivers/gpu/drm/xe/xe_hw_error.h | 15 +++
drivers/gpu/drm/xe/xe_irq.c | 4 +
6 files changed, 144 insertions(+)
create mode 100644 drivers/gpu/drm/xe/regs/xe_hw_error_regs.h
create mode 100644 drivers/gpu/drm/xe/xe_hw_error.c
create mode 100644 drivers/gpu/drm/xe/xe_hw_error.h
diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
index f5f5775acdc0..ce01ca6c97af 100644
--- a/drivers/gpu/drm/xe/Makefile
+++ b/drivers/gpu/drm/xe/Makefile
@@ -73,6 +73,7 @@ xe-y += xe_bb.o \
xe_hw_engine.o \
xe_hw_engine_class_sysfs.o \
xe_hw_engine_group.o \
+ xe_hw_error.o \
xe_hw_fence.o \
xe_irq.o \
xe_lrc.o \
diff --git a/drivers/gpu/drm/xe/regs/xe_hw_error_regs.h b/drivers/gpu/drm/xe/regs/xe_hw_error_regs.h
new file mode 100644
index 000000000000..ed9b81fb28a0
--- /dev/null
+++ b/drivers/gpu/drm/xe/regs/xe_hw_error_regs.h
@@ -0,0 +1,15 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+
+#ifndef _XE_HW_ERROR_REGS_H_
+#define _XE_HW_ERROR_REGS_H_
+
+#define DEV_ERR_STAT_NONFATAL 0x100178
+#define DEV_ERR_STAT_CORRECTABLE 0x10017c
+#define DEV_ERR_STAT_REG(x) XE_REG(_PICK_EVEN((x), \
+ DEV_ERR_STAT_CORRECTABLE, \
+ DEV_ERR_STAT_NONFATAL))
+
+#endif
diff --git a/drivers/gpu/drm/xe/regs/xe_irq_regs.h b/drivers/gpu/drm/xe/regs/xe_irq_regs.h
index f0ecfcac4003..2758b64cec9e 100644
--- a/drivers/gpu/drm/xe/regs/xe_irq_regs.h
+++ b/drivers/gpu/drm/xe/regs/xe_irq_regs.h
@@ -18,6 +18,7 @@
#define GFX_MSTR_IRQ XE_REG(0x190010, XE_REG_OPTION_VF)
#define MASTER_IRQ REG_BIT(31)
#define GU_MISC_IRQ REG_BIT(29)
+#define ERROR_IRQ(x) REG_BIT(26 + (x))
#define DISPLAY_IRQ REG_BIT(16)
#define GT_DW_IRQ(x) REG_BIT(x)
diff --git a/drivers/gpu/drm/xe/xe_hw_error.c b/drivers/gpu/drm/xe/xe_hw_error.c
new file mode 100644
index 000000000000..0f2590839900
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_hw_error.c
@@ -0,0 +1,108 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+
+#include "regs/xe_hw_error_regs.h"
+#include "regs/xe_irq_regs.h"
+
+#include "xe_device.h"
+#include "xe_hw_error.h"
+#include "xe_mmio.h"
+
+/* Error categories reported by hardware */
+enum hardware_error {
+ HARDWARE_ERROR_CORRECTABLE = 0,
+ HARDWARE_ERROR_NONFATAL = 1,
+ HARDWARE_ERROR_FATAL = 2,
+ HARDWARE_ERROR_MAX,
+};
+
+static const char *hw_error_to_str(const enum hardware_error hw_err)
+{
+ switch (hw_err) {
+ case HARDWARE_ERROR_CORRECTABLE:
+ return "CORRECTABLE";
+ case HARDWARE_ERROR_NONFATAL:
+ return "NONFATAL";
+ case HARDWARE_ERROR_FATAL:
+ return "FATAL";
+ default:
+ return "UNKNOWN";
+ }
+}
+
+static void hw_error_source_handler(struct xe_tile *tile, const enum hardware_error hw_err)
+{
+ const char *hw_err_str = hw_error_to_str(hw_err);
+ struct xe_device *xe = tile_to_xe(tile);
+ unsigned long flags;
+ u32 err_src;
+
+ if (xe->info.platform != XE_BATTLEMAGE)
+ return;
+
+ spin_lock_irqsave(&xe->irq.lock, flags);
+ err_src = xe_mmio_read32(&tile->mmio, DEV_ERR_STAT_REG(hw_err));
+ if (!err_src) {
+ drm_err_ratelimited(&xe->drm, HW_ERR "Tile%d reported DEV_ERR_STAT_%s blank!\n",
+ tile->id, hw_err_str);
+ goto unlock;
+ }
+
+ /* TODO: Process errrors per source */
+
+ xe_mmio_write32(&tile->mmio, DEV_ERR_STAT_REG(hw_err), err_src);
+
+unlock:
+ spin_unlock_irqrestore(&xe->irq.lock, flags);
+}
+
+/**
+ * xe_hw_error_irq_handler - irq handling for hw errors
+ * @tile: tile instance
+ * @master_ctl: value read from master interrupt register
+ *
+ * Xe platforms add three error bits to the master interrupt register to support error handling.
+ * These three bits are used to convey the class of error FATAL, NONFATAL, or CORRECTABLE.
+ * To process the interrupt, determine the source of error by reading the Device Error Source
+ * Register that corresponds to the class of error being serviced.
+ */
+void xe_hw_error_irq_handler(struct xe_tile *tile, const u32 master_ctl)
+{
+ enum hardware_error hw_err;
+
+ for (hw_err = 0; hw_err < HARDWARE_ERROR_MAX; hw_err++)
+ if (master_ctl & ERROR_IRQ(hw_err))
+ hw_error_source_handler(tile, hw_err);
+}
+
+/*
+ * Process hardware errors during boot
+ */
+static void process_hw_errors(struct xe_device *xe)
+{
+ struct xe_tile *tile;
+ u32 master_ctl;
+ u8 id;
+
+ for_each_tile(tile, xe, id) {
+ master_ctl = xe_mmio_read32(&tile->mmio, GFX_MSTR_IRQ);
+ xe_hw_error_irq_handler(tile, master_ctl);
+ xe_mmio_write32(&tile->mmio, GFX_MSTR_IRQ, master_ctl);
+ }
+}
+
+/**
+ * xe_hw_error_init - Initialize hw errors
+ * @xe: xe device instance
+ *
+ * Initialize and process hw errors
+ */
+void xe_hw_error_init(struct xe_device *xe)
+{
+ if (!IS_DGFX(xe) || IS_SRIOV_VF(xe))
+ return;
+
+ process_hw_errors(xe);
+}
diff --git a/drivers/gpu/drm/xe/xe_hw_error.h b/drivers/gpu/drm/xe/xe_hw_error.h
new file mode 100644
index 000000000000..d86e28c5180c
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_hw_error.h
@@ -0,0 +1,15 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+#ifndef XE_HW_ERROR_H_
+#define XE_HW_ERROR_H_
+
+#include <linux/types.h>
+
+struct xe_tile;
+struct xe_device;
+
+void xe_hw_error_irq_handler(struct xe_tile *tile, const u32 master_ctl);
+void xe_hw_error_init(struct xe_device *xe);
+#endif
diff --git a/drivers/gpu/drm/xe/xe_irq.c b/drivers/gpu/drm/xe/xe_irq.c
index 5362d3174b06..24ccf3bec52c 100644
--- a/drivers/gpu/drm/xe/xe_irq.c
+++ b/drivers/gpu/drm/xe/xe_irq.c
@@ -18,6 +18,7 @@
#include "xe_gt.h"
#include "xe_guc.h"
#include "xe_hw_engine.h"
+#include "xe_hw_error.h"
#include "xe_memirq.h"
#include "xe_mmio.h"
#include "xe_pxp.h"
@@ -466,6 +467,7 @@ static irqreturn_t dg1_irq_handler(int irq, void *arg)
xe_mmio_write32(mmio, GFX_MSTR_IRQ, master_ctl);
gt_irq_handler(tile, master_ctl, intr_dw, identity);
+ xe_hw_error_irq_handler(tile, master_ctl);
/*
* Display interrupts (including display backlight operations
@@ -753,6 +755,8 @@ int xe_irq_install(struct xe_device *xe)
int nvec = 1;
int err;
+ xe_hw_error_init(xe);
+
xe_irq_reset(xe);
if (xe_device_has_msix(xe)) {
--
2.47.1
^ permalink raw reply related [flat|nested] 25+ messages in thread* [PATCH v2 4/5] drm/xe/xe_hw_error: Handle CSC Firmware reported Hardware errors
2025-06-23 10:01 [PATCH v2 0/5] Handle Firmware reported Hardware Errors Riana Tauro
` (4 preceding siblings ...)
2025-06-23 10:01 ` [PATCH v2 3/5] drm/xe: Add support to handle hardware errors Riana Tauro
@ 2025-06-23 10:01 ` Riana Tauro
2025-06-23 10:01 ` [PATCH v2 5/5] drm/xe/xe_hw_error: Add fault injection to trigger csc error handler Riana Tauro
` (3 subsequent siblings)
9 siblings, 0 replies; 25+ messages in thread
From: Riana Tauro @ 2025-06-23 10:01 UTC (permalink / raw)
To: intel-xe
Cc: riana.tauro, anshuman.gupta, rodrigo.vivi, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough
Add support to handle CSC firmware reported errors. When CSC firmware
errors are encoutered, a error interrupt is received by the GFX device as
a MSI interrupt.
Device Source control registers indicates the source of the error as CSC
The HEC error status register indicates that the error is firmware reported
Depending on the type of error, the error cause is written to the HEC
Firmware error register.
On encountering such CSC firmware errors, the graphics device is
non-recoverable from driver context. The only way to recover from these
errors is firmware flash. The device is then wedged and userspace is
notified with a drm uevent
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
---
drivers/gpu/drm/xe/regs/xe_gsc_regs.h | 2 +
drivers/gpu/drm/xe/regs/xe_hw_error_regs.h | 7 ++-
drivers/gpu/drm/xe/xe_device_types.h | 3 +
drivers/gpu/drm/xe/xe_hw_error.c | 65 +++++++++++++++++++++-
4 files changed, 75 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/xe/regs/xe_gsc_regs.h b/drivers/gpu/drm/xe/regs/xe_gsc_regs.h
index 7702364b65f1..fcb6003f3226 100644
--- a/drivers/gpu/drm/xe/regs/xe_gsc_regs.h
+++ b/drivers/gpu/drm/xe/regs/xe_gsc_regs.h
@@ -13,6 +13,8 @@
/* Definitions of GSC H/W registers, bits, etc */
+#define BMG_GSC_HECI1_BASE 0x373000
+
#define MTL_GSC_HECI1_BASE 0x00116000
#define MTL_GSC_HECI2_BASE 0x00117000
diff --git a/drivers/gpu/drm/xe/regs/xe_hw_error_regs.h b/drivers/gpu/drm/xe/regs/xe_hw_error_regs.h
index ed9b81fb28a0..c146b9ef44eb 100644
--- a/drivers/gpu/drm/xe/regs/xe_hw_error_regs.h
+++ b/drivers/gpu/drm/xe/regs/xe_hw_error_regs.h
@@ -6,10 +6,15 @@
#ifndef _XE_HW_ERROR_REGS_H_
#define _XE_HW_ERROR_REGS_H_
+#define HEC_UNCORR_ERR_STATUS(base) XE_REG((base) + 0x118)
+#define UNCORR_FW_REPORTED_ERR BIT(6)
+
+#define HEC_UNCORR_FW_ERR_DW0(base) XE_REG((base) + 0x124)
+
#define DEV_ERR_STAT_NONFATAL 0x100178
#define DEV_ERR_STAT_CORRECTABLE 0x10017c
#define DEV_ERR_STAT_REG(x) XE_REG(_PICK_EVEN((x), \
DEV_ERR_STAT_CORRECTABLE, \
DEV_ERR_STAT_NONFATAL))
-
+#define XE_CSC_ERROR BIT(17)
#endif
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index d898238e8994..c5b297e25019 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -240,6 +240,9 @@ struct xe_tile {
/** @memirq: Memory Based Interrupts. */
struct xe_memirq memirq;
+ /** @csc_hw_error_work: worker to report CSC HW errors */
+ struct work_struct csc_hw_error_work;
+
/** @pcode: tile's PCODE */
struct {
/** @pcode.lock: protecting tile's PCODE mailbox data */
diff --git a/drivers/gpu/drm/xe/xe_hw_error.c b/drivers/gpu/drm/xe/xe_hw_error.c
index 0f2590839900..ad1e244ea612 100644
--- a/drivers/gpu/drm/xe/xe_hw_error.c
+++ b/drivers/gpu/drm/xe/xe_hw_error.c
@@ -3,6 +3,7 @@
* Copyright © 2025 Intel Corporation
*/
+#include "regs/xe_gsc_regs.h"
#include "regs/xe_hw_error_regs.h"
#include "regs/xe_irq_regs.h"
@@ -10,6 +11,8 @@
#include "xe_hw_error.h"
#include "xe_mmio.h"
+#define HEC_UNCORR_FW_ERR_BITS 4
+
/* Error categories reported by hardware */
enum hardware_error {
HARDWARE_ERROR_CORRECTABLE = 0,
@@ -18,6 +21,13 @@ enum hardware_error {
HARDWARE_ERROR_MAX,
};
+static const char * const hec_uncorrected_fw_errors[] = {
+ "Fatal",
+ "CSE Disabled",
+ "FD Corruption",
+ "Data Corruption"
+};
+
static const char *hw_error_to_str(const enum hardware_error hw_err)
{
switch (hw_err) {
@@ -32,6 +42,54 @@ static const char *hw_error_to_str(const enum hardware_error hw_err)
}
}
+static void csc_hw_error_work(struct work_struct *work)
+{
+ struct xe_tile *tile = container_of(work, typeof(*tile), csc_hw_error_work);
+ struct xe_device *xe = tile_to_xe(tile);
+
+ xe_device_set_wedged_method(xe, DRM_WEDGE_RECOVERY_FW_FLASH);
+ xe_device_declare_wedged(xe);
+}
+
+static void csc_hw_error_handler(struct xe_tile *tile, const enum hardware_error hw_err)
+{
+ const char *hw_err_str = hw_error_to_str(hw_err);
+ struct xe_device *xe = tile_to_xe(tile);
+ struct xe_mmio *mmio = &tile->mmio;
+ u32 base, err_bit, err_src;
+ unsigned long fw_err;
+
+ if (xe->info.platform != XE_BATTLEMAGE)
+ return;
+
+ /* Not supported in BMG */
+ if (hw_err == HARDWARE_ERROR_CORRECTABLE)
+ return;
+
+ base = BMG_GSC_HECI1_BASE;
+ lockdep_assert_held(&xe->irq.lock);
+ err_src = xe_mmio_read32(mmio, HEC_UNCORR_ERR_STATUS(base));
+ if (!err_src) {
+ drm_err_ratelimited(&xe->drm, HW_ERR "Tile%d reported HEC_ERR_STATUS_%s blank\n",
+ tile->id, hw_err_str);
+ return;
+ }
+
+ if (err_src & UNCORR_FW_REPORTED_ERR) {
+ fw_err = xe_mmio_read32(mmio, HEC_UNCORR_FW_ERR_DW0(base));
+ for_each_set_bit(err_bit, &fw_err, HEC_UNCORR_FW_ERR_BITS) {
+ drm_err_ratelimited(&xe->drm, HW_ERR
+ "%s: HEC Uncorrected FW %s error reported, bit[%d] is set\n",
+ hw_err_str, hec_uncorrected_fw_errors[err_bit],
+ err_bit);
+
+ schedule_work(&tile->csc_hw_error_work);
+ }
+ }
+
+ xe_mmio_write32(mmio, HEC_UNCORR_ERR_STATUS(base), err_src);
+}
+
static void hw_error_source_handler(struct xe_tile *tile, const enum hardware_error hw_err)
{
const char *hw_err_str = hw_error_to_str(hw_err);
@@ -50,7 +108,8 @@ static void hw_error_source_handler(struct xe_tile *tile, const enum hardware_er
goto unlock;
}
- /* TODO: Process errrors per source */
+ if (err_src & XE_CSC_ERROR)
+ csc_hw_error_handler(tile, hw_err);
xe_mmio_write32(&tile->mmio, DEV_ERR_STAT_REG(hw_err), err_src);
@@ -101,8 +160,12 @@ static void process_hw_errors(struct xe_device *xe)
*/
void xe_hw_error_init(struct xe_device *xe)
{
+ struct xe_tile *tile = xe_device_get_root_tile(xe);
+
if (!IS_DGFX(xe) || IS_SRIOV_VF(xe))
return;
+ INIT_WORK(&tile->csc_hw_error_work, csc_hw_error_work);
+
process_hw_errors(xe);
}
--
2.47.1
^ permalink raw reply related [flat|nested] 25+ messages in thread* [PATCH v2 5/5] drm/xe/xe_hw_error: Add fault injection to trigger csc error handler
2025-06-23 10:01 [PATCH v2 0/5] Handle Firmware reported Hardware Errors Riana Tauro
` (5 preceding siblings ...)
2025-06-23 10:01 ` [PATCH v2 4/5] drm/xe/xe_hw_error: Handle CSC Firmware reported Hardware errors Riana Tauro
@ 2025-06-23 10:01 ` Riana Tauro
2025-06-23 10:02 ` ✗ CI.checksparse: warning for Handle Firmware reported Hardware Errors (rev2) Patchwork
` (2 subsequent siblings)
9 siblings, 0 replies; 25+ messages in thread
From: Riana Tauro @ 2025-06-23 10:01 UTC (permalink / raw)
To: intel-xe
Cc: riana.tauro, anshuman.gupta, rodrigo.vivi, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough
Add a debugfs fault handler to trigger csc error handler that
wedges the device and sends drm uevent
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
---
drivers/gpu/drm/xe/xe_debugfs.c | 2 ++
drivers/gpu/drm/xe/xe_hw_error.c | 11 +++++++++++
2 files changed, 13 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_debugfs.c b/drivers/gpu/drm/xe/xe_debugfs.c
index d83cd6ed3fa8..134610437aea 100644
--- a/drivers/gpu/drm/xe/xe_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_debugfs.c
@@ -29,6 +29,7 @@
#endif
DECLARE_FAULT_ATTR(gt_reset_failure);
+DECLARE_FAULT_ATTR(inject_csc_hw_error);
static struct xe_device *node_to_xe(struct drm_info_node *node)
{
@@ -273,4 +274,5 @@ void xe_debugfs_register(struct xe_device *xe)
xe_pxp_debugfs_register(xe->pxp);
fault_create_debugfs_attr("fail_gt_reset", root, >_reset_failure);
+ fault_create_debugfs_attr("inject_csc_hw_error", root, &inject_csc_hw_error);
}
diff --git a/drivers/gpu/drm/xe/xe_hw_error.c b/drivers/gpu/drm/xe/xe_hw_error.c
index ad1e244ea612..544d28c799dc 100644
--- a/drivers/gpu/drm/xe/xe_hw_error.c
+++ b/drivers/gpu/drm/xe/xe_hw_error.c
@@ -3,6 +3,8 @@
* Copyright © 2025 Intel Corporation
*/
+#include <linux/fault-inject.h>
+
#include "regs/xe_gsc_regs.h"
#include "regs/xe_hw_error_regs.h"
#include "regs/xe_irq_regs.h"
@@ -12,6 +14,7 @@
#include "xe_mmio.h"
#define HEC_UNCORR_FW_ERR_BITS 4
+extern struct fault_attr inject_csc_hw_error;
/* Error categories reported by hardware */
enum hardware_error {
@@ -42,6 +45,11 @@ static const char *hw_error_to_str(const enum hardware_error hw_err)
}
}
+static bool fault_inject_csc_hw_error(void)
+{
+ return should_fail(&inject_csc_hw_error, 1);
+}
+
static void csc_hw_error_work(struct work_struct *work)
{
struct xe_tile *tile = container_of(work, typeof(*tile), csc_hw_error_work);
@@ -131,6 +139,9 @@ void xe_hw_error_irq_handler(struct xe_tile *tile, const u32 master_ctl)
{
enum hardware_error hw_err;
+ if (fault_inject_csc_hw_error())
+ schedule_work(&tile->csc_hw_error_work);
+
for (hw_err = 0; hw_err < HARDWARE_ERROR_MAX; hw_err++)
if (master_ctl & ERROR_IRQ(hw_err))
hw_error_source_handler(tile, hw_err);
--
2.47.1
^ permalink raw reply related [flat|nested] 25+ messages in thread* ✗ CI.checksparse: warning for Handle Firmware reported Hardware Errors (rev2)
2025-06-23 10:01 [PATCH v2 0/5] Handle Firmware reported Hardware Errors Riana Tauro
` (6 preceding siblings ...)
2025-06-23 10:01 ` [PATCH v2 5/5] drm/xe/xe_hw_error: Add fault injection to trigger csc error handler Riana Tauro
@ 2025-06-23 10:02 ` Patchwork
2025-06-23 11:11 ` ✓ Xe.CI.BAT: success " Patchwork
2025-06-23 14:11 ` ✗ Xe.CI.Full: failure " Patchwork
9 siblings, 0 replies; 25+ messages in thread
From: Patchwork @ 2025-06-23 10:02 UTC (permalink / raw)
To: Riana Tauro; +Cc: intel-xe
== Series Details ==
Series: Handle Firmware reported Hardware Errors (rev2)
URL : https://patchwork.freedesktop.org/series/149756/
State : warning
== Summary ==
+ trap cleanup EXIT
+ KERNEL=/kernel
+ MT=/root/linux/maintainer-tools
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools /root/linux/maintainer-tools
Cloning into '/root/linux/maintainer-tools'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ make -C /root/linux/maintainer-tools
make: Entering directory '/root/linux/maintainer-tools'
cc -O2 -g -Wextra -o remap-log remap-log.c
make: Leaving directory '/root/linux/maintainer-tools'
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ /root/linux/maintainer-tools/dim sparse --fast 5aa80933c50abb7ebb5776aea2d14762d8449c5e
Sparse version: 0.6.4 (Ubuntu: 0.6.4-4ubuntu3)
Fast mode used, each commit won't be checked separately.
-
+drivers/gpu/drm/drm_drv.c:452:6: warning: context imbalance in 'drm_dev_enter' - different lock contexts for basic block
+drivers/gpu/drm/drm_drv.c: note: in included file (through include/linux/notifier.h, arch/x86/include/asm/uprobes.h, include/linux/uprobes.h, include/linux/mm_types.h, include/linux/mmzone.h, include/linux/gfp.h, ...):
+drivers/gpu/drm/drm_plane.c:213:24: warning: Using plain integer as NULL pointer
+drivers/gpu/drm/i915/display/intel_alpm.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_cdclk.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_ddi.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_display_types.h:1995:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:1995:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:1995:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:1995:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:1995:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:1995:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:1995:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:1995:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:1995:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:1995:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:1995:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:1995:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:1995:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:1995:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:1995:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2008:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2008:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_hdcp.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_hotplug.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_pps.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_psr.c: note: in included file:
+drivers/gpu/drm/i915/gt/intel_reset.c:1572:12: warning: context imbalance in '_intel_gt_reset_lock' - different lock contexts for basic block
+drivers/gpu/drm/i915/gt/intel_sseu.c:598:17: error: too long token expansion
+drivers/gpu/drm/i915/i915_active.c:1063:16: warning: context imbalance in '__i915_active_fence_set' - different lock contexts for basic block
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: error: incompatible types in comparison expression (different address spaces):
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: error: incompatible types in comparison expression (different address spaces):
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: expected struct list_head const *list
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: got struct list_head [noderef] __rcu *pos
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: struct list_head *
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: struct list_head *
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: struct list_head [noderef] __rcu *
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: struct list_head [noderef] __rcu *
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: warning: incorrect type in argument 1 (different address spaces)
+drivers/gpu/drm/i915/i915_irq.c:492:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:492:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:500:16: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:500:16: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:505:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:505:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:505:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:543:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:543:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:551:16: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:551:16: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:556:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:556:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:556:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:600:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:600:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:603:15: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:603:15: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:607:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:607:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:614:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:614:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:614:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:614:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/intel_uncore.c:1927:1: warning: context imbalance in 'fwtable_read8' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1928:1: warning: context imbalance in 'fwtable_read16' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1929:1: warning: context imbalance in 'fwtable_read32' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1930:1: warning: context imbalance in 'fwtable_read64' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1995:1: warning: context imbalance in 'gen6_write8' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1996:1: warning: context imbalance in 'gen6_write16' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1997:1: warning: context imbalance in 'gen6_write32' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:2017:1: warning: context imbalance in 'fwtable_write8' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:2018:1: warning: context imbalance in 'fwtable_write16' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:2019:1: warning: context imbalance in 'fwtable_write32' - unexpected unlock
+drivers/gpu/drm/i915/intel_wakeref.c:145:19: warning: context imbalance in 'wakeref_auto_timeout' - unexpected unlock
+drivers/gpu/drm/ttm/ttm_bo.c:1197:31: warning: symbol 'ttm_swap_ops' was not declared. Should it be static?
+drivers/gpu/drm/ttm/ttm_bo_util.c:328:38: expected void *virtual
+drivers/gpu/drm/ttm/ttm_bo_util.c:328:38: got void [noderef] __iomem *
+drivers/gpu/drm/ttm/ttm_bo_util.c:328:38: warning: incorrect type in assignment (different address spaces)
+drivers/gpu/drm/ttm/ttm_bo_util.c:331:38: expected void *virtual
+drivers/gpu/drm/ttm/ttm_bo_util.c:331:38: got void [noderef] __iomem *
+drivers/gpu/drm/ttm/ttm_bo_util.c:331:38: warning: incorrect type in assignment (different address spaces)
+drivers/gpu/drm/ttm/ttm_bo_util.c:334:38: expected void *virtual
+drivers/gpu/drm/ttm/ttm_bo_util.c:334:38: got void [noderef] __iomem *
+drivers/gpu/drm/ttm/ttm_bo_util.c:334:38: warning: incorrect type in assignment (different address spaces)
+drivers/gpu/drm/ttm/ttm_bo_util.c:440:28: expected void volatile [noderef] __iomem *addr
+drivers/gpu/drm/ttm/ttm_bo_util.c:440:28: got void *virtual
+drivers/gpu/drm/ttm/ttm_bo_util.c:440:28: warning: incorrect type in argument 1 (different address spaces)
+./include/linux/srcu.h:400:9: warning: context imbalance in 'drm_dev_exit' - unexpected unlock
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 25+ messages in thread* ✓ Xe.CI.BAT: success for Handle Firmware reported Hardware Errors (rev2)
2025-06-23 10:01 [PATCH v2 0/5] Handle Firmware reported Hardware Errors Riana Tauro
` (7 preceding siblings ...)
2025-06-23 10:02 ` ✗ CI.checksparse: warning for Handle Firmware reported Hardware Errors (rev2) Patchwork
@ 2025-06-23 11:11 ` Patchwork
2025-06-23 14:11 ` ✗ Xe.CI.Full: failure " Patchwork
9 siblings, 0 replies; 25+ messages in thread
From: Patchwork @ 2025-06-23 11:11 UTC (permalink / raw)
To: Riana Tauro; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 1011 bytes --]
== Series Details ==
Series: Handle Firmware reported Hardware Errors (rev2)
URL : https://patchwork.freedesktop.org/series/149756/
State : success
== Summary ==
CI Bug Log - changes from xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b_BAT -> xe-pw-149756v2_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (9 -> 7)
------------------------------
Missing (2): bat-pvc-2 bat-adlp-vm
Changes
-------
No changes found
Build changes
-------------
* IGT: IGT_8420 -> IGT_8421
* Linux: xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b -> xe-pw-149756v2
IGT_8420: 7da0c57182cc149656dde626cf09ccf6353e8ed2 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
IGT_8421: 8421
xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b: cc5c19e59842d7e522f9f9f3943efe34943ed70b
xe-pw-149756v2: 149756v2
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/index.html
[-- Attachment #2: Type: text/html, Size: 1573 bytes --]
^ permalink raw reply [flat|nested] 25+ messages in thread* ✗ Xe.CI.Full: failure for Handle Firmware reported Hardware Errors (rev2)
2025-06-23 10:01 [PATCH v2 0/5] Handle Firmware reported Hardware Errors Riana Tauro
` (8 preceding siblings ...)
2025-06-23 11:11 ` ✓ Xe.CI.BAT: success " Patchwork
@ 2025-06-23 14:11 ` Patchwork
9 siblings, 0 replies; 25+ messages in thread
From: Patchwork @ 2025-06-23 14:11 UTC (permalink / raw)
To: Riana Tauro; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 70744 bytes --]
== Series Details ==
Series: Handle Firmware reported Hardware Errors (rev2)
URL : https://patchwork.freedesktop.org/series/149756/
State : failure
== Summary ==
CI Bug Log - changes from xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b_FULL -> xe-pw-149756v2_FULL
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with xe-pw-149756v2_FULL absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in xe-pw-149756v2_FULL, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (4 -> 4)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in xe-pw-149756v2_FULL:
### IGT changes ###
#### Possible regressions ####
* igt@kms_async_flips@async-flip-with-page-flip-events-linear:
- shard-bmg: [PASS][1] -> [DMESG-WARN][2]
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-5/igt@kms_async_flips@async-flip-with-page-flip-events-linear.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-6/igt@kms_async_flips@async-flip-with-page-flip-events-linear.html
#### Warnings ####
* igt@kms_big_fb@4-tiled-8bpp-rotate-90:
- shard-lnl: [SKIP][3] ([Intel XE#1407]) -> [ABORT][4]
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-lnl-1/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-3/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling:
- shard-lnl: [SKIP][5] ([Intel XE#1397] / [Intel XE#1745]) -> [ABORT][6]
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-lnl-1/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling.html
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-3/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode:
- shard-lnl: [SKIP][7] ([Intel XE#1397]) -> [ABORT][8]
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-lnl-1/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode.html
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-3/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode.html
New tests
---------
New tests have been introduced between xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b_FULL and xe-pw-149756v2_FULL:
### New IGT tests (4) ###
* igt@kms_async_flips@alternate-sync-async-flip@pipe-d-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [2.13] s
* igt@kms_async_flips@test-cursor@pipe-c-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [0.12] s
* igt@kms_async_flips@test-cursor@pipe-d-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [0.12] s
* igt@kms_plane_lowres@tiling-none@pipe-d-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [8.83] s
Known issues
------------
Here are the changes found in xe-pw-149756v2_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@intel_sysfs_debugfs@xe-debugfs-read-all-entries-display-on:
- shard-adlp: [PASS][9] -> [DMESG-WARN][10] ([Intel XE#2953] / [Intel XE#4173]) +2 other tests dmesg-warn
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-adlp-4/igt@intel_sysfs_debugfs@xe-debugfs-read-all-entries-display-on.html
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-2/igt@intel_sysfs_debugfs@xe-debugfs-read-all-entries-display-on.html
* igt@kms_async_flips@alternate-sync-async-flip:
- shard-adlp: [PASS][11] -> [FAIL][12] ([Intel XE#827]) +1 other test fail
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-adlp-8/igt@kms_async_flips@alternate-sync-async-flip.html
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-2/igt@kms_async_flips@alternate-sync-async-flip.html
* igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-d-hdmi-a-3:
- shard-bmg: [PASS][13] -> [DMESG-WARN][14] ([Intel XE#3428])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-5/igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-d-hdmi-a-3.html
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-6/igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-d-hdmi-a-3.html
* igt@kms_async_flips@async-flip-with-page-flip-events-tiled-atomic@pipe-d-hdmi-a-1-y:
- shard-adlp: [PASS][15] -> [DMESG-WARN][16] ([Intel XE#4543]) +3 other tests dmesg-warn
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-adlp-2/igt@kms_async_flips@async-flip-with-page-flip-events-tiled-atomic@pipe-d-hdmi-a-1-y.html
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-8/igt@kms_async_flips@async-flip-with-page-flip-events-tiled-atomic@pipe-d-hdmi-a-1-y.html
* igt@kms_async_flips@async-flip-with-page-flip-events-tiled@pipe-d-dp-4-4-rc-ccs-cc:
- shard-dg2-set2: NOTRUN -> [SKIP][17] ([Intel XE#3767]) +15 other tests skip
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-435/igt@kms_async_flips@async-flip-with-page-flip-events-tiled@pipe-d-dp-4-4-rc-ccs-cc.html
* igt@kms_async_flips@crc-atomic@pipe-d-hdmi-a-1:
- shard-adlp: [PASS][18] -> [FAIL][19] ([Intel XE#3884]) +1 other test fail
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-adlp-1/igt@kms_async_flips@crc-atomic@pipe-d-hdmi-a-1.html
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-1/igt@kms_async_flips@crc-atomic@pipe-d-hdmi-a-1.html
* igt@kms_big_fb@4-tiled-8bpp-rotate-90:
- shard-dg2-set2: NOTRUN -> [SKIP][20] ([Intel XE#316]) +1 other test skip
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-432/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html
* igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
- shard-adlp: [PASS][21] -> [DMESG-FAIL][22] ([Intel XE#4543]) +12 other tests dmesg-fail
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-adlp-4/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-1/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
* igt@kms_big_fb@y-tiled-16bpp-rotate-0:
- shard-bmg: NOTRUN -> [SKIP][23] ([Intel XE#1124]) +2 other tests skip
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-8/igt@kms_big_fb@y-tiled-16bpp-rotate-0.html
- shard-lnl: NOTRUN -> [SKIP][24] ([Intel XE#1124]) +2 other tests skip
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-4/igt@kms_big_fb@y-tiled-16bpp-rotate-0.html
* igt@kms_big_fb@y-tiled-64bpp-rotate-270:
- shard-dg2-set2: NOTRUN -> [SKIP][25] ([Intel XE#1124]) +2 other tests skip
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-464/igt@kms_big_fb@y-tiled-64bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-addfb-size-overflow:
- shard-dg2-set2: NOTRUN -> [SKIP][26] ([Intel XE#610])
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-463/igt@kms_big_fb@y-tiled-addfb-size-overflow.html
* igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p:
- shard-lnl: NOTRUN -> [SKIP][27] ([Intel XE#2191]) +2 other tests skip
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-3/igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p.html
* igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p:
- shard-bmg: NOTRUN -> [SKIP][28] ([Intel XE#2314] / [Intel XE#2894]) +3 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-5/igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p.html
* igt@kms_bw@connected-linear-tiling-4-displays-2160x1440p:
- shard-adlp: NOTRUN -> [SKIP][29] ([Intel XE#2191]) +1 other test skip
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-8/igt@kms_bw@connected-linear-tiling-4-displays-2160x1440p.html
- shard-dg2-set2: NOTRUN -> [SKIP][30] ([Intel XE#2191]) +2 other tests skip
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-432/igt@kms_bw@connected-linear-tiling-4-displays-2160x1440p.html
- shard-lnl: NOTRUN -> [SKIP][31] ([Intel XE#1512])
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-6/igt@kms_bw@connected-linear-tiling-4-displays-2160x1440p.html
* igt@kms_bw@linear-tiling-1-displays-2560x1440p:
- shard-bmg: NOTRUN -> [SKIP][32] ([Intel XE#367]) +1 other test skip
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-3/igt@kms_bw@linear-tiling-1-displays-2560x1440p.html
- shard-dg2-set2: NOTRUN -> [SKIP][33] ([Intel XE#367]) +1 other test skip
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-436/igt@kms_bw@linear-tiling-1-displays-2560x1440p.html
* igt@kms_bw@linear-tiling-2-displays-1920x1080p:
- shard-lnl: NOTRUN -> [SKIP][34] ([Intel XE#367])
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-7/igt@kms_bw@linear-tiling-2-displays-1920x1080p.html
* igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs-cc@pipe-b-dp-2:
- shard-dg2-set2: NOTRUN -> [SKIP][35] ([Intel XE#787]) +181 other tests skip
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-432/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs-cc@pipe-b-dp-2.html
* igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs:
- shard-dg2-set2: NOTRUN -> [SKIP][36] ([Intel XE#2907])
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-433/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs@pipe-c-edp-1:
- shard-lnl: NOTRUN -> [SKIP][37] ([Intel XE#2669]) +3 other tests skip
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-4/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs@pipe-c-edp-1.html
* igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs-cc@pipe-d-dp-2:
- shard-dg2-set2: NOTRUN -> [SKIP][38] ([Intel XE#455] / [Intel XE#787]) +31 other tests skip
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-432/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs-cc@pipe-d-dp-2.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc:
- shard-bmg: NOTRUN -> [SKIP][39] ([Intel XE#3432])
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-6/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc.html
- shard-lnl: NOTRUN -> [SKIP][40] ([Intel XE#3432])
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-5/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc.html
* igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs:
- shard-bmg: NOTRUN -> [SKIP][41] ([Intel XE#2887]) +4 other tests skip
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-6/igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs.html
* igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-rc-ccs-cc:
- shard-lnl: NOTRUN -> [SKIP][42] ([Intel XE#2887]) +3 other tests skip
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-2/igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-rc-ccs-cc.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs:
- shard-dg2-set2: [PASS][43] -> [INCOMPLETE][44] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#3124])
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-dg2-432/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-d-hdmi-a-6:
- shard-dg2-set2: NOTRUN -> [INCOMPLETE][45] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#3124])
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-d-hdmi-a-6.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-a-dp-4:
- shard-dg2-set2: [PASS][46] -> [INCOMPLETE][47] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4522]) +1 other test incomplete
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-a-dp-4.html
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-a-dp-4.html
* igt@kms_chamelium_audio@hdmi-audio-edid:
- shard-bmg: NOTRUN -> [SKIP][48] ([Intel XE#2252]) +5 other tests skip
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-3/igt@kms_chamelium_audio@hdmi-audio-edid.html
- shard-dg2-set2: NOTRUN -> [SKIP][49] ([Intel XE#373]) +5 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-463/igt@kms_chamelium_audio@hdmi-audio-edid.html
- shard-lnl: NOTRUN -> [SKIP][50] ([Intel XE#373]) +5 other tests skip
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-2/igt@kms_chamelium_audio@hdmi-audio-edid.html
* igt@kms_chamelium_color@ctm-blue-to-red:
- shard-dg2-set2: NOTRUN -> [SKIP][51] ([Intel XE#306])
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-435/igt@kms_chamelium_color@ctm-blue-to-red.html
* igt@kms_chamelium_hpd@hdmi-hpd-after-hibernate:
- shard-adlp: NOTRUN -> [SKIP][52] ([Intel XE#373])
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-9/igt@kms_chamelium_hpd@hdmi-hpd-after-hibernate.html
* igt@kms_content_protection@dp-mst-lic-type-1:
- shard-bmg: NOTRUN -> [SKIP][53] ([Intel XE#2390])
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-5/igt@kms_content_protection@dp-mst-lic-type-1.html
- shard-dg2-set2: NOTRUN -> [SKIP][54] ([Intel XE#307])
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-433/igt@kms_content_protection@dp-mst-lic-type-1.html
- shard-lnl: NOTRUN -> [SKIP][55] ([Intel XE#307])
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-6/igt@kms_content_protection@dp-mst-lic-type-1.html
* igt@kms_content_protection@srm@pipe-a-dp-4:
- shard-dg2-set2: NOTRUN -> [FAIL][56] ([Intel XE#1178]) +2 other tests fail
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-463/igt@kms_content_protection@srm@pipe-a-dp-4.html
* igt@kms_cursor_crc@cursor-rapid-movement-256x85:
- shard-lnl: NOTRUN -> [SKIP][57] ([Intel XE#1424]) +1 other test skip
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-4/igt@kms_cursor_crc@cursor-rapid-movement-256x85.html
* igt@kms_cursor_crc@cursor-rapid-movement-512x512:
- shard-dg2-set2: NOTRUN -> [SKIP][58] ([Intel XE#308])
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-435/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html
- shard-lnl: NOTRUN -> [SKIP][59] ([Intel XE#2321])
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-8/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html
- shard-adlp: NOTRUN -> [SKIP][60] ([Intel XE#308])
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-6/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html
- shard-bmg: NOTRUN -> [SKIP][61] ([Intel XE#2321])
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-1/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html
* igt@kms_cursor_crc@cursor-sliding-256x85:
- shard-bmg: NOTRUN -> [SKIP][62] ([Intel XE#2320]) +3 other tests skip
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-6/igt@kms_cursor_crc@cursor-sliding-256x85.html
* igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
- shard-bmg: NOTRUN -> [SKIP][63] ([Intel XE#2291])
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-5/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html
- shard-lnl: NOTRUN -> [SKIP][64] ([Intel XE#309])
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-6/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html
* igt@kms_cursor_legacy@cursora-vs-flipb-legacy:
- shard-bmg: [PASS][65] -> [SKIP][66] ([Intel XE#2291]) +5 other tests skip
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-1/igt@kms_cursor_legacy@cursora-vs-flipb-legacy.html
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-5/igt@kms_cursor_legacy@cursora-vs-flipb-legacy.html
* igt@kms_dp_link_training@non-uhbr-sst:
- shard-lnl: NOTRUN -> [SKIP][67] ([Intel XE#4354])
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-3/igt@kms_dp_link_training@non-uhbr-sst.html
* igt@kms_dp_link_training@uhbr-sst:
- shard-dg2-set2: NOTRUN -> [SKIP][68] ([Intel XE#4356])
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-464/igt@kms_dp_link_training@uhbr-sst.html
* igt@kms_flip@2x-flip-vs-dpms:
- shard-bmg: [PASS][69] -> [SKIP][70] ([Intel XE#2316]) +6 other tests skip
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-7/igt@kms_flip@2x-flip-vs-dpms.html
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-6/igt@kms_flip@2x-flip-vs-dpms.html
* igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible:
- shard-bmg: NOTRUN -> [SKIP][71] ([Intel XE#2316]) +2 other tests skip
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-6/igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible.html
- shard-lnl: NOTRUN -> [SKIP][72] ([Intel XE#1421]) +3 other tests skip
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-1/igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible.html
* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ab-hdmi-a6-dp4:
- shard-dg2-set2: [PASS][73] -> [FAIL][74] ([Intel XE#301] / [Intel XE#3321])
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-dg2-464/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ab-hdmi-a6-dp4.html
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-436/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ab-hdmi-a6-dp4.html
* igt@kms_flip@flip-vs-blocking-wf-vblank:
- shard-dg2-set2: [PASS][75] -> [INCOMPLETE][76] ([Intel XE#2049])
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-dg2-432/igt@kms_flip@flip-vs-blocking-wf-vblank.html
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-433/igt@kms_flip@flip-vs-blocking-wf-vblank.html
* igt@kms_flip@flip-vs-blocking-wf-vblank@a-hdmi-a6:
- shard-dg2-set2: NOTRUN -> [INCOMPLETE][77] ([Intel XE#2049])
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-433/igt@kms_flip@flip-vs-blocking-wf-vblank@a-hdmi-a6.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp4:
- shard-dg2-set2: [PASS][78] -> [FAIL][79] ([Intel XE#301]) +2 other tests fail
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-dg2-434/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp4.html
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-463/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp4.html
* igt@kms_flip@flip-vs-suspend@d-dp4:
- shard-dg2-set2: [PASS][80] -> [INCOMPLETE][81] ([Intel XE#2049] / [Intel XE#2597]) +1 other test incomplete
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-dg2-436/igt@kms_flip@flip-vs-suspend@d-dp4.html
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-434/igt@kms_flip@flip-vs-suspend@d-dp4.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling:
- shard-bmg: NOTRUN -> [SKIP][82] ([Intel XE#2293] / [Intel XE#2380])
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-5/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html
- shard-dg2-set2: NOTRUN -> [SKIP][83] ([Intel XE#455]) +3 other tests skip
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-433/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html
- shard-lnl: NOTRUN -> [SKIP][84] ([Intel XE#1401] / [Intel XE#1745])
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-6/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-default-mode:
- shard-lnl: NOTRUN -> [SKIP][85] ([Intel XE#1401])
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-6/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode:
- shard-bmg: NOTRUN -> [SKIP][86] ([Intel XE#2293])
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-5/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling:
- shard-lnl: NOTRUN -> [SKIP][87] ([Intel XE#1397] / [Intel XE#1745])
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-8/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling@pipe-a-default-mode:
- shard-lnl: NOTRUN -> [SKIP][88] ([Intel XE#1397])
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-8/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling@pipe-a-valid-mode:
- shard-adlp: [PASS][89] -> [DMESG-FAIL][90] ([Intel XE#4543] / [Intel XE#4921]) +3 other tests dmesg-fail
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-adlp-2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling@pipe-a-valid-mode.html
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling@pipe-a-valid-mode.html
* igt@kms_force_connector_basic@force-connector-state:
- shard-lnl: NOTRUN -> [SKIP][91] ([Intel XE#352])
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-6/igt@kms_force_connector_basic@force-connector-state.html
* igt@kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-mmap-wc:
- shard-adlp: NOTRUN -> [SKIP][92] ([Intel XE#651])
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-4/igt@kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-render:
- shard-dg2-set2: NOTRUN -> [SKIP][93] ([Intel XE#651]) +17 other tests skip
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-464/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw:
- shard-bmg: NOTRUN -> [SKIP][94] ([Intel XE#4141]) +3 other tests skip
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-render:
- shard-lnl: NOTRUN -> [SKIP][95] ([Intel XE#656]) +6 other tests skip
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-blt:
- shard-lnl: NOTRUN -> [SKIP][96] ([Intel XE#651]) +4 other tests skip
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-7/igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-1p-pri-indfb-multidraw:
- shard-bmg: NOTRUN -> [SKIP][97] ([Intel XE#2311]) +9 other tests skip
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcdrrs-1p-pri-indfb-multidraw.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-mmap-wc:
- shard-adlp: NOTRUN -> [SKIP][98] ([Intel XE#653])
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-9/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-blt:
- shard-adlp: NOTRUN -> [SKIP][99] ([Intel XE#656])
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-tiling-4:
- shard-dg2-set2: NOTRUN -> [SKIP][100] ([Intel XE#653]) +17 other tests skip
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-436/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-msflip-blt:
- shard-bmg: NOTRUN -> [SKIP][101] ([Intel XE#2312]) +3 other tests skip
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@psr-rgb565-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][102] ([Intel XE#2313]) +6 other tests skip
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-7/igt@kms_frontbuffer_tracking@psr-rgb565-draw-mmap-wc.html
* igt@kms_joiner@basic-big-joiner:
- shard-dg2-set2: NOTRUN -> [SKIP][103] ([Intel XE#346]) +1 other test skip
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-464/igt@kms_joiner@basic-big-joiner.html
* igt@kms_joiner@invalid-modeset-big-joiner:
- shard-bmg: NOTRUN -> [SKIP][104] ([Intel XE#346])
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-1/igt@kms_joiner@invalid-modeset-big-joiner.html
- shard-lnl: NOTRUN -> [SKIP][105] ([Intel XE#346])
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-1/igt@kms_joiner@invalid-modeset-big-joiner.html
* igt@kms_joiner@invalid-modeset-force-big-joiner:
- shard-bmg: [PASS][106] -> [SKIP][107] ([Intel XE#3012])
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-2/igt@kms_joiner@invalid-modeset-force-big-joiner.html
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-5/igt@kms_joiner@invalid-modeset-force-big-joiner.html
* igt@kms_panel_fitting@atomic-fastset:
- shard-bmg: NOTRUN -> [SKIP][108] ([Intel XE#2486])
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-4/igt@kms_panel_fitting@atomic-fastset.html
* igt@kms_pipe_stress@stress-xrgb8888-ytiled:
- shard-bmg: NOTRUN -> [SKIP][109] ([Intel XE#4329])
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-3/igt@kms_pipe_stress@stress-xrgb8888-ytiled.html
* igt@kms_plane_multiple@2x-tiling-4:
- shard-bmg: [PASS][110] -> [SKIP][111] ([Intel XE#4596])
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-7/igt@kms_plane_multiple@2x-tiling-4.html
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-6/igt@kms_plane_multiple@2x-tiling-4.html
* igt@kms_plane_scaling@intel-max-src-size:
- shard-bmg: [PASS][112] -> [SKIP][113] ([Intel XE#2685] / [Intel XE#3307])
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-8/igt@kms_plane_scaling@intel-max-src-size.html
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-5/igt@kms_plane_scaling@intel-max-src-size.html
* igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-c:
- shard-lnl: NOTRUN -> [SKIP][114] ([Intel XE#2763]) +3 other tests skip
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-4/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-c.html
* igt@kms_pm_dc@dc5-dpms:
- shard-lnl: [PASS][115] -> [FAIL][116] ([Intel XE#718])
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-lnl-3/igt@kms_pm_dc@dc5-dpms.html
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-6/igt@kms_pm_dc@dc5-dpms.html
* igt@kms_pm_dc@dc6-psr:
- shard-lnl: NOTRUN -> [FAIL][117] ([Intel XE#718])
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-3/igt@kms_pm_dc@dc6-psr.html
- shard-bmg: NOTRUN -> [SKIP][118] ([Intel XE#2392])
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-3/igt@kms_pm_dc@dc6-psr.html
- shard-adlp: NOTRUN -> [SKIP][119] ([Intel XE#1129])
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-1/igt@kms_pm_dc@dc6-psr.html
- shard-dg2-set2: NOTRUN -> [SKIP][120] ([Intel XE#1129])
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-436/igt@kms_pm_dc@dc6-psr.html
* igt@kms_pm_rpm@modeset-lpsp-stress:
- shard-bmg: NOTRUN -> [SKIP][121] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#836])
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-1/igt@kms_pm_rpm@modeset-lpsp-stress.html
* igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait:
- shard-lnl: NOTRUN -> [SKIP][122] ([Intel XE#1439] / [Intel XE#3141])
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-5/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf:
- shard-bmg: NOTRUN -> [SKIP][123] ([Intel XE#1489]) +5 other tests skip
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-3/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf.html
- shard-lnl: NOTRUN -> [SKIP][124] ([Intel XE#2893] / [Intel XE#4608]) +1 other test skip
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-2/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf@pipe-a-edp-1:
- shard-lnl: NOTRUN -> [SKIP][125] ([Intel XE#4608]) +4 other tests skip
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-2/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf@pipe-a-edp-1.html
* igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf:
- shard-adlp: NOTRUN -> [SKIP][126] ([Intel XE#1489])
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-4/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-sf:
- shard-lnl: NOTRUN -> [SKIP][127] ([Intel XE#2893])
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-6/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb:
- shard-dg2-set2: NOTRUN -> [SKIP][128] ([Intel XE#1489]) +3 other tests skip
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-432/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html
* igt@kms_psr@fbc-psr-no-drrs:
- shard-dg2-set2: NOTRUN -> [SKIP][129] ([Intel XE#2850] / [Intel XE#929]) +8 other tests skip
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-432/igt@kms_psr@fbc-psr-no-drrs.html
* igt@kms_psr@fbc-psr2-no-drrs:
- shard-lnl: NOTRUN -> [SKIP][130] ([Intel XE#1406]) +1 other test skip
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-3/igt@kms_psr@fbc-psr2-no-drrs.html
* igt@kms_psr@fbc-psr2-no-drrs@edp-1:
- shard-lnl: NOTRUN -> [SKIP][131] ([Intel XE#4609])
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-3/igt@kms_psr@fbc-psr2-no-drrs@edp-1.html
* igt@kms_psr@pr-suspend:
- shard-bmg: NOTRUN -> [SKIP][132] ([Intel XE#2234] / [Intel XE#2850]) +6 other tests skip
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-4/igt@kms_psr@pr-suspend.html
* igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
- shard-lnl: [PASS][133] -> [SKIP][134] ([Intel XE#4692])
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-lnl-7/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-5/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
* igt@kms_rotation_crc@bad-pixel-format:
- shard-adlp: NOTRUN -> [SKIP][135] ([Intel XE#3414]) +1 other test skip
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-3/igt@kms_rotation_crc@bad-pixel-format.html
- shard-bmg: NOTRUN -> [SKIP][136] ([Intel XE#3414] / [Intel XE#3904]) +2 other tests skip
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-5/igt@kms_rotation_crc@bad-pixel-format.html
- shard-dg2-set2: NOTRUN -> [SKIP][137] ([Intel XE#3414]) +1 other test skip
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-434/igt@kms_rotation_crc@bad-pixel-format.html
- shard-lnl: NOTRUN -> [SKIP][138] ([Intel XE#3414] / [Intel XE#3904]) +1 other test skip
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-7/igt@kms_rotation_crc@bad-pixel-format.html
* igt@kms_setmode@invalid-clone-single-crtc-stealing:
- shard-bmg: [PASS][139] -> [SKIP][140] ([Intel XE#1435])
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-4/igt@kms_setmode@invalid-clone-single-crtc-stealing.html
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-5/igt@kms_setmode@invalid-clone-single-crtc-stealing.html
* igt@kms_vrr@seamless-rr-switch-virtual:
- shard-bmg: NOTRUN -> [SKIP][141] ([Intel XE#1499])
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-8/igt@kms_vrr@seamless-rr-switch-virtual.html
* igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all:
- shard-bmg: NOTRUN -> [SKIP][142] ([Intel XE#1091] / [Intel XE#2849])
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-6/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html
* igt@xe_compute_preempt@compute-threadgroup-preempt@engine-drm_xe_engine_class_compute:
- shard-dg2-set2: NOTRUN -> [SKIP][143] ([Intel XE#1280] / [Intel XE#455]) +1 other test skip
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-464/igt@xe_compute_preempt@compute-threadgroup-preempt@engine-drm_xe_engine_class_compute.html
* igt@xe_configfs@survivability-mode:
- shard-dg2-set2: NOTRUN -> [SKIP][144] ([Intel XE#5249])
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-433/igt@xe_configfs@survivability-mode.html
* igt@xe_eu_stall@invalid-gt-id:
- shard-dg2-set2: NOTRUN -> [SKIP][145] ([Intel XE#5308])
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-432/igt@xe_eu_stall@invalid-gt-id.html
* igt@xe_eudebug@basic-vm-bind-ufence-delay-ack:
- shard-dg2-set2: NOTRUN -> [SKIP][146] ([Intel XE#4837]) +7 other tests skip
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-435/igt@xe_eudebug@basic-vm-bind-ufence-delay-ack.html
* igt@xe_eudebug_online@interrupt-other:
- shard-bmg: NOTRUN -> [SKIP][147] ([Intel XE#4837]) +4 other tests skip
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-1/igt@xe_eudebug_online@interrupt-other.html
* igt@xe_eudebug_online@writes-caching-vram-bb-sram-target-sram:
- shard-adlp: NOTRUN -> [SKIP][148] ([Intel XE#4837])
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-6/igt@xe_eudebug_online@writes-caching-vram-bb-sram-target-sram.html
* igt@xe_eudebug_sriov@deny-eudebug:
- shard-dg2-set2: NOTRUN -> [SKIP][149] ([Intel XE#4518])
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-434/igt@xe_eudebug_sriov@deny-eudebug.html
* igt@xe_evict@evict-beng-small-cm:
- shard-adlp: NOTRUN -> [SKIP][150] ([Intel XE#261] / [Intel XE#688])
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-6/igt@xe_evict@evict-beng-small-cm.html
* igt@xe_evict_ccs@evict-overcommit-standalone-nofree-samefd:
- shard-lnl: NOTRUN -> [SKIP][151] ([Intel XE#688]) +3 other tests skip
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-7/igt@xe_evict_ccs@evict-overcommit-standalone-nofree-samefd.html
* igt@xe_exec_basic@multigpu-no-exec-null-defer-bind:
- shard-lnl: NOTRUN -> [SKIP][152] ([Intel XE#1392]) +2 other tests skip
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-7/igt@xe_exec_basic@multigpu-no-exec-null-defer-bind.html
* igt@xe_exec_basic@multigpu-no-exec-userptr-invalidate-race:
- shard-dg2-set2: [PASS][153] -> [SKIP][154] ([Intel XE#1392]) +8 other tests skip
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-dg2-434/igt@xe_exec_basic@multigpu-no-exec-userptr-invalidate-race.html
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-432/igt@xe_exec_basic@multigpu-no-exec-userptr-invalidate-race.html
* igt@xe_exec_basic@multigpu-once-bindexecqueue-rebind:
- shard-adlp: NOTRUN -> [SKIP][155] ([Intel XE#1392]) +1 other test skip
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-9/igt@xe_exec_basic@multigpu-once-bindexecqueue-rebind.html
- shard-bmg: NOTRUN -> [SKIP][156] ([Intel XE#2322]) +4 other tests skip
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-6/igt@xe_exec_basic@multigpu-once-bindexecqueue-rebind.html
* igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-invalidate-race:
- shard-dg2-set2: NOTRUN -> [SKIP][157] ([Intel XE#288]) +10 other tests skip
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-434/igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-invalidate-race.html
* igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-prefetch:
- shard-adlp: NOTRUN -> [SKIP][158] ([Intel XE#288])
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-9/igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-prefetch.html
* igt@xe_exec_mix_modes@exec-spinner-interrupted-lr:
- shard-dg2-set2: NOTRUN -> [SKIP][159] ([Intel XE#2360])
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-434/igt@xe_exec_mix_modes@exec-spinner-interrupted-lr.html
* igt@xe_exec_reset@gt-reset-stress:
- shard-adlp: [PASS][160] -> [DMESG-WARN][161] ([Intel XE#4812])
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-adlp-4/igt@xe_exec_reset@gt-reset-stress.html
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-8/igt@xe_exec_reset@gt-reset-stress.html
* igt@xe_exec_sip_eudebug@wait-writesip-nodebug:
- shard-lnl: NOTRUN -> [SKIP][162] ([Intel XE#4837]) +2 other tests skip
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-4/igt@xe_exec_sip_eudebug@wait-writesip-nodebug.html
* igt@xe_exec_system_allocator@process-many-large-mmap-huge:
- shard-bmg: NOTRUN -> [SKIP][163] ([Intel XE#4943]) +11 other tests skip
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-7/igt@xe_exec_system_allocator@process-many-large-mmap-huge.html
* igt@xe_exec_system_allocator@threads-many-large-mmap-shared-remap-dontunmap-eocheck:
- shard-dg2-set2: NOTRUN -> [SKIP][164] ([Intel XE#4915]) +135 other tests skip
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-434/igt@xe_exec_system_allocator@threads-many-large-mmap-shared-remap-dontunmap-eocheck.html
* igt@xe_exec_system_allocator@twice-large-mmap-free-huge:
- shard-lnl: NOTRUN -> [SKIP][165] ([Intel XE#4943]) +6 other tests skip
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-8/igt@xe_exec_system_allocator@twice-large-mmap-free-huge.html
* igt@xe_exec_system_allocator@twice-mmap:
- shard-adlp: NOTRUN -> [SKIP][166] ([Intel XE#4915]) +8 other tests skip
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-4/igt@xe_exec_system_allocator@twice-mmap.html
* igt@xe_mmap@pci-membarrier-parallel:
- shard-lnl: NOTRUN -> [SKIP][167] ([Intel XE#5100])
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-7/igt@xe_mmap@pci-membarrier-parallel.html
* igt@xe_oa@create-destroy-userspace-config:
- shard-adlp: NOTRUN -> [SKIP][168] ([Intel XE#2541] / [Intel XE#3573]) +1 other test skip
[168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-6/igt@xe_oa@create-destroy-userspace-config.html
* igt@xe_oa@whitelisted-registers-userspace-config:
- shard-dg2-set2: NOTRUN -> [SKIP][169] ([Intel XE#2541] / [Intel XE#3573]) +4 other tests skip
[169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-434/igt@xe_oa@whitelisted-registers-userspace-config.html
* igt@xe_pm@d3cold-mmap-system:
- shard-dg2-set2: NOTRUN -> [SKIP][170] ([Intel XE#2284] / [Intel XE#366])
[170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-464/igt@xe_pm@d3cold-mmap-system.html
* igt@xe_pm@s4-mocs:
- shard-bmg: NOTRUN -> [ABORT][171] ([Intel XE#5255])
[171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-6/igt@xe_pm@s4-mocs.html
* igt@xe_pm@s4-vm-bind-userptr:
- shard-bmg: [PASS][172] -> [ABORT][173] ([Intel XE#5255])
[172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-7/igt@xe_pm@s4-vm-bind-userptr.html
[173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-6/igt@xe_pm@s4-vm-bind-userptr.html
* igt@xe_pxp@pxp-termination-key-update-post-termination-irq:
- shard-bmg: NOTRUN -> [SKIP][174] ([Intel XE#4733])
[174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-3/igt@xe_pxp@pxp-termination-key-update-post-termination-irq.html
* igt@xe_query@multigpu-query-engines:
- shard-dg2-set2: NOTRUN -> [SKIP][175] ([Intel XE#944]) +1 other test skip
[175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-433/igt@xe_query@multigpu-query-engines.html
* igt@xe_query@multigpu-query-invalid-extension:
- shard-bmg: NOTRUN -> [SKIP][176] ([Intel XE#944]) +1 other test skip
[176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-6/igt@xe_query@multigpu-query-invalid-extension.html
- shard-lnl: NOTRUN -> [SKIP][177] ([Intel XE#944])
[177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-5/igt@xe_query@multigpu-query-invalid-extension.html
* igt@xe_sriov_flr@flr-vfs-parallel:
- shard-dg2-set2: NOTRUN -> [SKIP][178] ([Intel XE#4273])
[178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-464/igt@xe_sriov_flr@flr-vfs-parallel.html
#### Possible fixes ####
* igt@kms_async_flips@async-flip-suspend-resume:
- shard-adlp: [DMESG-WARN][179] ([Intel XE#4543]) -> [PASS][180] +2 other tests pass
[179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-adlp-1/igt@kms_async_flips@async-flip-suspend-resume.html
[180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-8/igt@kms_async_flips@async-flip-suspend-resume.html
* igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
- shard-adlp: [FAIL][181] ([Intel XE#3908]) -> [PASS][182] +1 other test pass
[181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-adlp-2/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
[182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-8/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
* igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p:
- shard-bmg: [SKIP][183] ([Intel XE#2314] / [Intel XE#2894]) -> [PASS][184]
[183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-6/igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p.html
[184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-4/igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p.html
* igt@kms_cursor_legacy@cursora-vs-flipb-toggle:
- shard-bmg: [SKIP][185] ([Intel XE#2291]) -> [PASS][186] +2 other tests pass
[185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-6/igt@kms_cursor_legacy@cursora-vs-flipb-toggle.html
[186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-3/igt@kms_cursor_legacy@cursora-vs-flipb-toggle.html
* igt@kms_feature_discovery@display-2x:
- shard-bmg: [SKIP][187] ([Intel XE#2373]) -> [PASS][188]
[187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-5/igt@kms_feature_discovery@display-2x.html
[188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-3/igt@kms_feature_discovery@display-2x.html
* igt@kms_flip@2x-flip-vs-panning@ad-hdmi-a6-dp4:
- shard-dg2-set2: [INCOMPLETE][189] ([Intel XE#2049] / [Intel XE#4842]) -> [PASS][190] +1 other test pass
[189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-dg2-433/igt@kms_flip@2x-flip-vs-panning@ad-hdmi-a6-dp4.html
[190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-434/igt@kms_flip@2x-flip-vs-panning@ad-hdmi-a6-dp4.html
* igt@kms_flip@2x-plain-flip-fb-recreate:
- shard-bmg: [SKIP][191] ([Intel XE#2316]) -> [PASS][192] +4 other tests pass
[191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-5/igt@kms_flip@2x-plain-flip-fb-recreate.html
[192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-3/igt@kms_flip@2x-plain-flip-fb-recreate.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-adlp: [FAIL][193] ([Intel XE#301]) -> [PASS][194] +1 other test pass
[193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-adlp-8/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
[194]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-2/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
* igt@kms_flip@flip-vs-expired-vblank@a-dp4:
- shard-dg2-set2: [FAIL][195] ([Intel XE#301] / [Intel XE#3321]) -> [PASS][196] +2 other tests pass
[195]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-dg2-435/igt@kms_flip@flip-vs-expired-vblank@a-dp4.html
[196]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-434/igt@kms_flip@flip-vs-expired-vblank@a-dp4.html
* igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a6:
- shard-dg2-set2: [FAIL][197] ([Intel XE#301]) -> [PASS][198] +3 other tests pass
[197]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-dg2-435/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a6.html
[198]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-434/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a6.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling:
- shard-adlp: [DMESG-FAIL][199] ([Intel XE#4543] / [Intel XE#4921]) -> [PASS][200] +1 other test pass
[199]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-adlp-2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling.html
[200]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling.html
* igt@kms_frontbuffer_tracking@fbc-shrfb-scaledprimary:
- shard-adlp: [DMESG-FAIL][201] ([Intel XE#4543]) -> [PASS][202] +7 other tests pass
[201]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-adlp-8/igt@kms_frontbuffer_tracking@fbc-shrfb-scaledprimary.html
[202]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-6/igt@kms_frontbuffer_tracking@fbc-shrfb-scaledprimary.html
* igt@kms_hdr@invalid-hdr:
- shard-dg2-set2: [SKIP][203] ([Intel XE#455]) -> [PASS][204]
[203]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-dg2-433/igt@kms_hdr@invalid-hdr.html
[204]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-463/igt@kms_hdr@invalid-hdr.html
* igt@kms_plane_cursor@overlay@pipe-a-hdmi-a-6-size-64:
- shard-dg2-set2: [FAIL][205] ([Intel XE#616]) -> [PASS][206] +3 other tests pass
[205]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-dg2-436/igt@kms_plane_cursor@overlay@pipe-a-hdmi-a-6-size-64.html
[206]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-436/igt@kms_plane_cursor@overlay@pipe-a-hdmi-a-6-size-64.html
* igt@kms_plane_scaling@planes-scaler-unity-scaling@pipe-c:
- shard-adlp: [DMESG-WARN][207] ([Intel XE#2953] / [Intel XE#4173]) -> [PASS][208] +6 other tests pass
[207]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-adlp-8/igt@kms_plane_scaling@planes-scaler-unity-scaling@pipe-c.html
[208]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-8/igt@kms_plane_scaling@planes-scaler-unity-scaling@pipe-c.html
* igt@xe_exec_basic@multigpu-once-basic-defer-mmap:
- shard-dg2-set2: [SKIP][209] ([Intel XE#1392]) -> [PASS][210] +5 other tests pass
[209]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-dg2-432/igt@xe_exec_basic@multigpu-once-basic-defer-mmap.html
[210]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-436/igt@xe_exec_basic@multigpu-once-basic-defer-mmap.html
* igt@xe_exec_reset@cm-close-fd:
- shard-adlp: [DMESG-WARN][211] ([Intel XE#3868]) -> [PASS][212]
[211]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-adlp-3/igt@xe_exec_reset@cm-close-fd.html
[212]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-adlp-6/igt@xe_exec_reset@cm-close-fd.html
* igt@xe_exec_system_allocator@threads-shared-vm-many-execqueues-new-bo-map-nomemset:
- shard-lnl: [FAIL][213] -> [PASS][214]
[213]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-lnl-1/igt@xe_exec_system_allocator@threads-shared-vm-many-execqueues-new-bo-map-nomemset.html
[214]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-1/igt@xe_exec_system_allocator@threads-shared-vm-many-execqueues-new-bo-map-nomemset.html
* igt@xe_exec_system_allocator@threads-shared-vm-many-large-execqueues-new-bo-map-nomemset:
- shard-lnl: [FAIL][215] ([Intel XE#4937]) -> [PASS][216]
[215]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-lnl-4/igt@xe_exec_system_allocator@threads-shared-vm-many-large-execqueues-new-bo-map-nomemset.html
[216]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-8/igt@xe_exec_system_allocator@threads-shared-vm-many-large-execqueues-new-bo-map-nomemset.html
* igt@xe_pmu@gt-frequency:
- shard-dg2-set2: [FAIL][217] ([Intel XE#4819]) -> [PASS][218] +1 other test pass
[217]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-dg2-435/igt@xe_pmu@gt-frequency.html
[218]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-dg2-435/igt@xe_pmu@gt-frequency.html
#### Warnings ####
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-render:
- shard-bmg: [SKIP][219] ([Intel XE#2312]) -> [SKIP][220] ([Intel XE#2311]) +12 other tests skip
[219]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-render.html
[220]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-4/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-blt:
- shard-bmg: [SKIP][221] ([Intel XE#2312]) -> [SKIP][222] ([Intel XE#4141]) +2 other tests skip
[221]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-blt.html
[222]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render:
- shard-bmg: [SKIP][223] ([Intel XE#4141]) -> [SKIP][224] ([Intel XE#2312]) +7 other tests skip
[223]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render.html
[224]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-blt:
- shard-bmg: [SKIP][225] ([Intel XE#2311]) -> [SKIP][226] ([Intel XE#2312]) +16 other tests skip
[225]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-blt.html
[226]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-mmap-wc:
- shard-bmg: [SKIP][227] ([Intel XE#2311]) -> [SKIP][228] ([Intel XE#2311] / [Intel XE#5042]) +1 other test skip
[227]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-mmap-wc.html
[228]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt:
- shard-bmg: [SKIP][229] ([Intel XE#2312]) -> [SKIP][230] ([Intel XE#2313]) +14 other tests skip
[229]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html
[230]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-render:
- shard-bmg: [SKIP][231] ([Intel XE#2313]) -> [SKIP][232] ([Intel XE#2313] / [Intel XE#5042])
[231]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-5/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-render.html
[232]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-6/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt:
- shard-bmg: [SKIP][233] ([Intel XE#2313]) -> [SKIP][234] ([Intel XE#2312]) +16 other tests skip
[233]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-4/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt.html
[234]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-fullscreen:
- shard-bmg: [SKIP][235] ([Intel XE#2312]) -> [SKIP][236] ([Intel XE#2312] / [Intel XE#5042])
[235]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-fullscreen.html
[236]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-fullscreen.html
* igt@kms_hdr@brightness-with-hdr:
- shard-bmg: [SKIP][237] ([Intel XE#3374] / [Intel XE#3544]) -> [SKIP][238] ([Intel XE#3544])
[237]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-bmg-4/igt@kms_hdr@brightness-with-hdr.html
[238]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-bmg-5/igt@kms_hdr@brightness-with-hdr.html
* igt@kms_pm_dc@dc3co-vpb-simulation:
- shard-lnl: [SKIP][239] ([Intel XE#736]) -> [SKIP][240] ([Intel XE#1909])
[239]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b/shard-lnl-7/igt@kms_pm_dc@dc3co-vpb-simulation.html
[240]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/shard-lnl-1/igt@kms_pm_dc@dc3co-vpb-simulation.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[Intel XE#1091]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1091
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1129]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1129
[Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1280]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1280
[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#1401]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1401
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
[Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
[Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
[Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
[Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
[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#1512]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1512
[Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
[Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
[Intel XE#1909]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1909
[Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
[Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
[Intel XE#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291
[Intel XE#2293]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2293
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2314
[Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
[Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
[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#2360]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2360
[Intel XE#2373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2373
[Intel XE#2380]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2380
[Intel XE#2390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2390
[Intel XE#2392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2392
[Intel XE#2486]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2486
[Intel XE#2541]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2541
[Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
[Intel XE#261]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/261
[Intel XE#2669]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2669
[Intel XE#2685]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2685
[Intel XE#2705]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2705
[Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
[Intel XE#2849]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2849
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
[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#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
[Intel XE#2907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2907
[Intel XE#2953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2953
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#3012]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3012
[Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
[Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
[Intel XE#308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/308
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#3113]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3113
[Intel XE#3124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3124
[Intel XE#3141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3141
[Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316
[Intel XE#3307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3307
[Intel XE#3321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3321
[Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
[Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
[Intel XE#3428]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3428
[Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
[Intel XE#346]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/346
[Intel XE#352]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/352
[Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
[Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573
[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#3767]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3767
[Intel XE#3868]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3868
[Intel XE#3884]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3884
[Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
[Intel XE#3908]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3908
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4173
[Intel XE#4212]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4212
[Intel XE#4273]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4273
[Intel XE#4329]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4329
[Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
[Intel XE#4356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4356
[Intel XE#4518]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4518
[Intel XE#4522]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4522
[Intel XE#4543]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4543
[Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
[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#4609]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4609
[Intel XE#4692]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4692
[Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
[Intel XE#4812]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4812
[Intel XE#4819]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4819
[Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
[Intel XE#4842]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4842
[Intel XE#4915]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4915
[Intel XE#4921]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4921
[Intel XE#4937]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4937
[Intel XE#4943]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4943
[Intel XE#5042]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5042
[Intel XE#5100]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5100
[Intel XE#5249]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5249
[Intel XE#5255]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5255
[Intel XE#5300]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5300
[Intel XE#5308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5308
[Intel XE#610]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/610
[Intel XE#616]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/616
[Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
[Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/718
[Intel XE#736]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/736
[Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
[Intel XE#827]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/827
[Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
[Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
Build changes
-------------
* IGT: IGT_8420 -> IGT_8421
* Linux: xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b -> xe-pw-149756v2
IGT_8420: 7da0c57182cc149656dde626cf09ccf6353e8ed2 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
IGT_8421: 8421
xe-3286-cc5c19e59842d7e522f9f9f3943efe34943ed70b: cc5c19e59842d7e522f9f9f3943efe34943ed70b
xe-pw-149756v2: 149756v2
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v2/index.html
[-- Attachment #2: Type: text/html, Size: 82133 bytes --]
^ permalink raw reply [flat|nested] 25+ messages in thread