* ✗ CI.checkpatch: warning for Add support for clear counter and error event in DRM RAS
2026-03-11 10:29 [PATCH 0/4] Add support for clear counter and error event in DRM RAS Riana Tauro
@ 2026-03-11 10:04 ` Patchwork
2026-03-11 10:05 ` ✓ CI.KUnit: success " Patchwork
` (6 subsequent siblings)
7 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2026-03-11 10:04 UTC (permalink / raw)
To: Riana Tauro; +Cc: intel-xe
== Series Details ==
Series: Add support for clear counter and error event in DRM RAS
URL : https://patchwork.freedesktop.org/series/163019/
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
1f57ba1afceae32108bd24770069f764d940a0e4
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 067e2bc41e77793d2ee002505da87a0a35e47e82
Author: Riana Tauro <riana.tauro@intel.com>
Date: Wed Mar 11 15:59:18 2026 +0530
drm/xe/xe_drm_ras: Add error-event support in XE DRM RAS
Add error-event support in XE DRM RAS to notify userspace
whenever a GT or SoC error occurs.
$ sudo ynl --family drm_ras --subscribe error-notify
{'msg': {'error-id': 1, 'node-id': 1}, 'name': 'error-event'}
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
+ /mt/dim checkpatch 9a6bac4a4a289d3ac043f885758d208ccf07f149 drm-intel
b6cbf1e2d654 drm/drm_ras: Add clear-error-counter netlink command to drm_ras
-:163: WARNING:LONG_LINE: line length of 116 exceeds 100 columns
#163: FILE: drivers/gpu/drm/drm_ras_nl.c:26:
+static const struct nla_policy drm_ras_clear_error_counter_nl_policy[DRM_RAS_A_ERROR_COUNTER_ATTRS_ERROR_ID + 1] = {
total: 0 errors, 1 warnings, 0 checks, 163 lines checked
eada54315c38 drm/xe/xe_drm_ras: Add support for clear-error-counter in XE DRM RAS
b302fa1fb4f2 drm/drm_ras: Add DRM RAS netlink error event notification
067e2bc41e77 drm/xe/xe_drm_ras: Add error-event support in XE DRM RAS
^ permalink raw reply [flat|nested] 16+ messages in thread
* ✓ CI.KUnit: success for Add support for clear counter and error event in DRM RAS
2026-03-11 10:29 [PATCH 0/4] Add support for clear counter and error event in DRM RAS Riana Tauro
2026-03-11 10:04 ` ✗ CI.checkpatch: warning for " Patchwork
@ 2026-03-11 10:05 ` Patchwork
2026-03-11 10:29 ` [PATCH 1/4] drm/drm_ras: Add clear-error-counter netlink command to drm_ras Riana Tauro
` (5 subsequent siblings)
7 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2026-03-11 10:05 UTC (permalink / raw)
To: Riana Tauro; +Cc: intel-xe
== Series Details ==
Series: Add support for clear counter and error event in DRM RAS
URL : https://patchwork.freedesktop.org/series/163019/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[10:04:10] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:04:14] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[10:04:45] Starting KUnit Kernel (1/1)...
[10:04:45] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:04:45] ================== guc_buf (11 subtests) ===================
[10:04:45] [PASSED] test_smallest
[10:04:45] [PASSED] test_largest
[10:04:45] [PASSED] test_granular
[10:04:45] [PASSED] test_unique
[10:04:45] [PASSED] test_overlap
[10:04:45] [PASSED] test_reusable
[10:04:45] [PASSED] test_too_big
[10:04:45] [PASSED] test_flush
[10:04:45] [PASSED] test_lookup
[10:04:45] [PASSED] test_data
[10:04:45] [PASSED] test_class
[10:04:45] ===================== [PASSED] guc_buf =====================
[10:04:45] =================== guc_dbm (7 subtests) ===================
[10:04:45] [PASSED] test_empty
[10:04:45] [PASSED] test_default
[10:04:45] ======================== test_size ========================
[10:04:45] [PASSED] 4
[10:04:45] [PASSED] 8
[10:04:45] [PASSED] 32
[10:04:45] [PASSED] 256
[10:04:45] ==================== [PASSED] test_size ====================
[10:04:45] ======================= test_reuse ========================
[10:04:45] [PASSED] 4
[10:04:45] [PASSED] 8
[10:04:45] [PASSED] 32
[10:04:45] [PASSED] 256
[10:04:45] =================== [PASSED] test_reuse ====================
[10:04:45] =================== test_range_overlap ====================
[10:04:45] [PASSED] 4
[10:04:45] [PASSED] 8
[10:04:45] [PASSED] 32
[10:04:45] [PASSED] 256
[10:04:45] =============== [PASSED] test_range_overlap ================
[10:04:45] =================== test_range_compact ====================
[10:04:45] [PASSED] 4
[10:04:45] [PASSED] 8
[10:04:45] [PASSED] 32
[10:04:45] [PASSED] 256
[10:04:45] =============== [PASSED] test_range_compact ================
[10:04:45] ==================== test_range_spare =====================
[10:04:45] [PASSED] 4
[10:04:45] [PASSED] 8
[10:04:45] [PASSED] 32
[10:04:45] [PASSED] 256
[10:04:45] ================ [PASSED] test_range_spare =================
[10:04:45] ===================== [PASSED] guc_dbm =====================
[10:04:45] =================== guc_idm (6 subtests) ===================
[10:04:45] [PASSED] bad_init
[10:04:45] [PASSED] no_init
[10:04:45] [PASSED] init_fini
[10:04:45] [PASSED] check_used
[10:04:45] [PASSED] check_quota
[10:04:45] [PASSED] check_all
[10:04:45] ===================== [PASSED] guc_idm =====================
[10:04:45] ================== no_relay (3 subtests) ===================
[10:04:45] [PASSED] xe_drops_guc2pf_if_not_ready
[10:04:45] [PASSED] xe_drops_guc2vf_if_not_ready
[10:04:45] [PASSED] xe_rejects_send_if_not_ready
[10:04:45] ==================== [PASSED] no_relay =====================
[10:04:45] ================== pf_relay (14 subtests) ==================
[10:04:45] [PASSED] pf_rejects_guc2pf_too_short
[10:04:45] [PASSED] pf_rejects_guc2pf_too_long
[10:04:45] [PASSED] pf_rejects_guc2pf_no_payload
[10:04:45] [PASSED] pf_fails_no_payload
[10:04:45] [PASSED] pf_fails_bad_origin
[10:04:45] [PASSED] pf_fails_bad_type
[10:04:45] [PASSED] pf_txn_reports_error
[10:04:45] [PASSED] pf_txn_sends_pf2guc
[10:04:45] [PASSED] pf_sends_pf2guc
[10:04:45] [SKIPPED] pf_loopback_nop
[10:04:45] [SKIPPED] pf_loopback_echo
[10:04:45] [SKIPPED] pf_loopback_fail
[10:04:45] [SKIPPED] pf_loopback_busy
[10:04:45] [SKIPPED] pf_loopback_retry
[10:04:45] ==================== [PASSED] pf_relay =====================
[10:04:45] ================== vf_relay (3 subtests) ===================
[10:04:45] [PASSED] vf_rejects_guc2vf_too_short
[10:04:45] [PASSED] vf_rejects_guc2vf_too_long
[10:04:45] [PASSED] vf_rejects_guc2vf_no_payload
[10:04:45] ==================== [PASSED] vf_relay =====================
[10:04:45] ================ pf_gt_config (9 subtests) =================
[10:04:45] [PASSED] fair_contexts_1vf
[10:04:45] [PASSED] fair_doorbells_1vf
[10:04:45] [PASSED] fair_ggtt_1vf
[10:04:45] ====================== fair_vram_1vf ======================
[10:04:45] [PASSED] 3.50 GiB
[10:04:45] [PASSED] 11.5 GiB
[10:04:45] [PASSED] 15.5 GiB
[10:04:45] [PASSED] 31.5 GiB
[10:04:45] [PASSED] 63.5 GiB
[10:04:45] [PASSED] 1.91 GiB
[10:04:45] ================== [PASSED] fair_vram_1vf ==================
[10:04:45] ================ fair_vram_1vf_admin_only =================
[10:04:45] [PASSED] 3.50 GiB
[10:04:45] [PASSED] 11.5 GiB
[10:04:45] [PASSED] 15.5 GiB
[10:04:45] [PASSED] 31.5 GiB
[10:04:45] [PASSED] 63.5 GiB
[10:04:45] [PASSED] 1.91 GiB
[10:04:45] ============ [PASSED] fair_vram_1vf_admin_only =============
[10:04:45] ====================== fair_contexts ======================
[10:04:45] [PASSED] 1 VF
[10:04:45] [PASSED] 2 VFs
[10:04:45] [PASSED] 3 VFs
[10:04:45] [PASSED] 4 VFs
[10:04:45] [PASSED] 5 VFs
[10:04:45] [PASSED] 6 VFs
[10:04:45] [PASSED] 7 VFs
[10:04:45] [PASSED] 8 VFs
[10:04:45] [PASSED] 9 VFs
[10:04:45] [PASSED] 10 VFs
[10:04:45] [PASSED] 11 VFs
[10:04:45] [PASSED] 12 VFs
[10:04:45] [PASSED] 13 VFs
[10:04:45] [PASSED] 14 VFs
[10:04:45] [PASSED] 15 VFs
[10:04:45] [PASSED] 16 VFs
[10:04:45] [PASSED] 17 VFs
[10:04:45] [PASSED] 18 VFs
[10:04:45] [PASSED] 19 VFs
[10:04:45] [PASSED] 20 VFs
[10:04:45] [PASSED] 21 VFs
[10:04:45] [PASSED] 22 VFs
[10:04:45] [PASSED] 23 VFs
[10:04:45] [PASSED] 24 VFs
[10:04:45] [PASSED] 25 VFs
[10:04:45] [PASSED] 26 VFs
[10:04:45] [PASSED] 27 VFs
[10:04:45] [PASSED] 28 VFs
[10:04:45] [PASSED] 29 VFs
[10:04:45] [PASSED] 30 VFs
[10:04:45] [PASSED] 31 VFs
[10:04:45] [PASSED] 32 VFs
[10:04:45] [PASSED] 33 VFs
[10:04:45] [PASSED] 34 VFs
[10:04:45] [PASSED] 35 VFs
[10:04:45] [PASSED] 36 VFs
[10:04:45] [PASSED] 37 VFs
[10:04:45] [PASSED] 38 VFs
[10:04:45] [PASSED] 39 VFs
[10:04:45] [PASSED] 40 VFs
[10:04:45] [PASSED] 41 VFs
[10:04:45] [PASSED] 42 VFs
[10:04:45] [PASSED] 43 VFs
[10:04:45] [PASSED] 44 VFs
[10:04:45] [PASSED] 45 VFs
[10:04:45] [PASSED] 46 VFs
[10:04:45] [PASSED] 47 VFs
[10:04:45] [PASSED] 48 VFs
[10:04:45] [PASSED] 49 VFs
[10:04:45] [PASSED] 50 VFs
[10:04:45] [PASSED] 51 VFs
[10:04:45] [PASSED] 52 VFs
[10:04:45] [PASSED] 53 VFs
[10:04:45] [PASSED] 54 VFs
[10:04:45] [PASSED] 55 VFs
[10:04:45] [PASSED] 56 VFs
[10:04:45] [PASSED] 57 VFs
[10:04:45] [PASSED] 58 VFs
[10:04:45] [PASSED] 59 VFs
[10:04:45] [PASSED] 60 VFs
[10:04:45] [PASSED] 61 VFs
[10:04:45] [PASSED] 62 VFs
[10:04:45] [PASSED] 63 VFs
[10:04:45] ================== [PASSED] fair_contexts ==================
[10:04:45] ===================== fair_doorbells ======================
[10:04:45] [PASSED] 1 VF
[10:04:45] [PASSED] 2 VFs
[10:04:45] [PASSED] 3 VFs
[10:04:45] [PASSED] 4 VFs
[10:04:45] [PASSED] 5 VFs
[10:04:45] [PASSED] 6 VFs
[10:04:45] [PASSED] 7 VFs
[10:04:45] [PASSED] 8 VFs
[10:04:45] [PASSED] 9 VFs
[10:04:45] [PASSED] 10 VFs
[10:04:45] [PASSED] 11 VFs
[10:04:45] [PASSED] 12 VFs
[10:04:45] [PASSED] 13 VFs
[10:04:45] [PASSED] 14 VFs
[10:04:45] [PASSED] 15 VFs
[10:04:45] [PASSED] 16 VFs
[10:04:45] [PASSED] 17 VFs
[10:04:45] [PASSED] 18 VFs
[10:04:45] [PASSED] 19 VFs
[10:04:45] [PASSED] 20 VFs
[10:04:45] [PASSED] 21 VFs
[10:04:45] [PASSED] 22 VFs
[10:04:45] [PASSED] 23 VFs
[10:04:45] [PASSED] 24 VFs
[10:04:45] [PASSED] 25 VFs
[10:04:45] [PASSED] 26 VFs
[10:04:45] [PASSED] 27 VFs
[10:04:45] [PASSED] 28 VFs
[10:04:45] [PASSED] 29 VFs
[10:04:45] [PASSED] 30 VFs
[10:04:45] [PASSED] 31 VFs
[10:04:45] [PASSED] 32 VFs
[10:04:45] [PASSED] 33 VFs
[10:04:45] [PASSED] 34 VFs
[10:04:45] [PASSED] 35 VFs
[10:04:45] [PASSED] 36 VFs
[10:04:45] [PASSED] 37 VFs
[10:04:45] [PASSED] 38 VFs
[10:04:45] [PASSED] 39 VFs
[10:04:45] [PASSED] 40 VFs
[10:04:45] [PASSED] 41 VFs
[10:04:45] [PASSED] 42 VFs
[10:04:45] [PASSED] 43 VFs
[10:04:45] [PASSED] 44 VFs
[10:04:45] [PASSED] 45 VFs
[10:04:45] [PASSED] 46 VFs
[10:04:45] [PASSED] 47 VFs
[10:04:45] [PASSED] 48 VFs
[10:04:45] [PASSED] 49 VFs
[10:04:45] [PASSED] 50 VFs
[10:04:45] [PASSED] 51 VFs
[10:04:45] [PASSED] 52 VFs
[10:04:45] [PASSED] 53 VFs
[10:04:45] [PASSED] 54 VFs
[10:04:45] [PASSED] 55 VFs
[10:04:45] [PASSED] 56 VFs
[10:04:45] [PASSED] 57 VFs
[10:04:45] [PASSED] 58 VFs
[10:04:45] [PASSED] 59 VFs
[10:04:45] [PASSED] 60 VFs
[10:04:45] [PASSED] 61 VFs
[10:04:45] [PASSED] 62 VFs
[10:04:45] [PASSED] 63 VFs
[10:04:45] ================= [PASSED] fair_doorbells ==================
[10:04:45] ======================== fair_ggtt ========================
[10:04:45] [PASSED] 1 VF
[10:04:45] [PASSED] 2 VFs
[10:04:45] [PASSED] 3 VFs
[10:04:45] [PASSED] 4 VFs
[10:04:45] [PASSED] 5 VFs
[10:04:45] [PASSED] 6 VFs
[10:04:45] [PASSED] 7 VFs
[10:04:45] [PASSED] 8 VFs
[10:04:45] [PASSED] 9 VFs
[10:04:45] [PASSED] 10 VFs
[10:04:45] [PASSED] 11 VFs
[10:04:45] [PASSED] 12 VFs
[10:04:45] [PASSED] 13 VFs
[10:04:45] [PASSED] 14 VFs
[10:04:45] [PASSED] 15 VFs
[10:04:45] [PASSED] 16 VFs
[10:04:45] [PASSED] 17 VFs
[10:04:45] [PASSED] 18 VFs
[10:04:45] [PASSED] 19 VFs
[10:04:45] [PASSED] 20 VFs
[10:04:45] [PASSED] 21 VFs
[10:04:45] [PASSED] 22 VFs
[10:04:45] [PASSED] 23 VFs
[10:04:45] [PASSED] 24 VFs
[10:04:45] [PASSED] 25 VFs
[10:04:45] [PASSED] 26 VFs
[10:04:45] [PASSED] 27 VFs
[10:04:45] [PASSED] 28 VFs
[10:04:45] [PASSED] 29 VFs
[10:04:45] [PASSED] 30 VFs
[10:04:45] [PASSED] 31 VFs
[10:04:45] [PASSED] 32 VFs
[10:04:45] [PASSED] 33 VFs
[10:04:45] [PASSED] 34 VFs
[10:04:45] [PASSED] 35 VFs
[10:04:45] [PASSED] 36 VFs
[10:04:45] [PASSED] 37 VFs
[10:04:45] [PASSED] 38 VFs
[10:04:45] [PASSED] 39 VFs
[10:04:45] [PASSED] 40 VFs
[10:04:45] [PASSED] 41 VFs
[10:04:45] [PASSED] 42 VFs
[10:04:45] [PASSED] 43 VFs
[10:04:45] [PASSED] 44 VFs
[10:04:45] [PASSED] 45 VFs
[10:04:45] [PASSED] 46 VFs
[10:04:45] [PASSED] 47 VFs
[10:04:45] [PASSED] 48 VFs
[10:04:45] [PASSED] 49 VFs
[10:04:45] [PASSED] 50 VFs
[10:04:45] [PASSED] 51 VFs
[10:04:45] [PASSED] 52 VFs
[10:04:45] [PASSED] 53 VFs
[10:04:45] [PASSED] 54 VFs
[10:04:45] [PASSED] 55 VFs
[10:04:45] [PASSED] 56 VFs
[10:04:45] [PASSED] 57 VFs
[10:04:45] [PASSED] 58 VFs
[10:04:45] [PASSED] 59 VFs
[10:04:45] [PASSED] 60 VFs
[10:04:45] [PASSED] 61 VFs
[10:04:45] [PASSED] 62 VFs
[10:04:45] [PASSED] 63 VFs
[10:04:45] ==================== [PASSED] fair_ggtt ====================
[10:04:45] ======================== fair_vram ========================
[10:04:45] [PASSED] 1 VF
[10:04:45] [PASSED] 2 VFs
[10:04:45] [PASSED] 3 VFs
[10:04:45] [PASSED] 4 VFs
[10:04:45] [PASSED] 5 VFs
[10:04:45] [PASSED] 6 VFs
[10:04:45] [PASSED] 7 VFs
[10:04:45] [PASSED] 8 VFs
[10:04:45] [PASSED] 9 VFs
[10:04:45] [PASSED] 10 VFs
[10:04:45] [PASSED] 11 VFs
[10:04:45] [PASSED] 12 VFs
[10:04:45] [PASSED] 13 VFs
[10:04:45] [PASSED] 14 VFs
[10:04:45] [PASSED] 15 VFs
[10:04:45] [PASSED] 16 VFs
[10:04:45] [PASSED] 17 VFs
[10:04:45] [PASSED] 18 VFs
[10:04:45] [PASSED] 19 VFs
[10:04:45] [PASSED] 20 VFs
[10:04:45] [PASSED] 21 VFs
[10:04:45] [PASSED] 22 VFs
[10:04:45] [PASSED] 23 VFs
[10:04:45] [PASSED] 24 VFs
[10:04:45] [PASSED] 25 VFs
[10:04:45] [PASSED] 26 VFs
[10:04:45] [PASSED] 27 VFs
[10:04:45] [PASSED] 28 VFs
[10:04:45] [PASSED] 29 VFs
[10:04:45] [PASSED] 30 VFs
[10:04:45] [PASSED] 31 VFs
[10:04:45] [PASSED] 32 VFs
[10:04:45] [PASSED] 33 VFs
[10:04:45] [PASSED] 34 VFs
[10:04:45] [PASSED] 35 VFs
[10:04:45] [PASSED] 36 VFs
[10:04:45] [PASSED] 37 VFs
[10:04:45] [PASSED] 38 VFs
[10:04:45] [PASSED] 39 VFs
[10:04:45] [PASSED] 40 VFs
[10:04:45] [PASSED] 41 VFs
[10:04:45] [PASSED] 42 VFs
[10:04:45] [PASSED] 43 VFs
[10:04:45] [PASSED] 44 VFs
[10:04:45] [PASSED] 45 VFs
[10:04:45] [PASSED] 46 VFs
[10:04:45] [PASSED] 47 VFs
[10:04:45] [PASSED] 48 VFs
[10:04:45] [PASSED] 49 VFs
[10:04:45] [PASSED] 50 VFs
[10:04:45] [PASSED] 51 VFs
[10:04:45] [PASSED] 52 VFs
[10:04:45] [PASSED] 53 VFs
[10:04:45] [PASSED] 54 VFs
[10:04:45] [PASSED] 55 VFs
[10:04:45] [PASSED] 56 VFs
[10:04:45] [PASSED] 57 VFs
[10:04:45] [PASSED] 58 VFs
[10:04:45] [PASSED] 59 VFs
[10:04:45] [PASSED] 60 VFs
[10:04:45] [PASSED] 61 VFs
[10:04:45] [PASSED] 62 VFs
[10:04:45] [PASSED] 63 VFs
[10:04:45] ==================== [PASSED] fair_vram ====================
[10:04:45] ================== [PASSED] pf_gt_config ===================
[10:04:45] ===================== lmtt (1 subtest) =====================
[10:04:45] ======================== test_ops =========================
[10:04:45] [PASSED] 2-level
[10:04:45] [PASSED] multi-level
[10:04:45] ==================== [PASSED] test_ops =====================
[10:04:45] ====================== [PASSED] lmtt =======================
[10:04:45] ================= pf_service (11 subtests) =================
[10:04:45] [PASSED] pf_negotiate_any
[10:04:45] [PASSED] pf_negotiate_base_match
[10:04:45] [PASSED] pf_negotiate_base_newer
[10:04:45] [PASSED] pf_negotiate_base_next
[10:04:45] [SKIPPED] pf_negotiate_base_older
[10:04:45] [PASSED] pf_negotiate_base_prev
[10:04:45] [PASSED] pf_negotiate_latest_match
[10:04:45] [PASSED] pf_negotiate_latest_newer
[10:04:45] [PASSED] pf_negotiate_latest_next
[10:04:45] [SKIPPED] pf_negotiate_latest_older
[10:04:45] [SKIPPED] pf_negotiate_latest_prev
[10:04:45] =================== [PASSED] pf_service ====================
[10:04:45] ================= xe_guc_g2g (2 subtests) ==================
[10:04:45] ============== xe_live_guc_g2g_kunit_default ==============
[10:04:45] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[10:04:45] ============== xe_live_guc_g2g_kunit_allmem ===============
[10:04:45] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[10:04:45] =================== [SKIPPED] xe_guc_g2g ===================
[10:04:45] =================== xe_mocs (2 subtests) ===================
[10:04:45] ================ xe_live_mocs_kernel_kunit ================
[10:04:45] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[10:04:45] ================ xe_live_mocs_reset_kunit =================
[10:04:45] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[10:04:45] ==================== [SKIPPED] xe_mocs =====================
[10:04:45] ================= xe_migrate (2 subtests) ==================
[10:04:45] ================= xe_migrate_sanity_kunit =================
[10:04:45] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[10:04:45] ================== xe_validate_ccs_kunit ==================
[10:04:45] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[10:04:45] =================== [SKIPPED] xe_migrate ===================
[10:04:45] ================== xe_dma_buf (1 subtest) ==================
[10:04:45] ==================== xe_dma_buf_kunit =====================
[10:04:45] ================ [SKIPPED] xe_dma_buf_kunit ================
[10:04:45] =================== [SKIPPED] xe_dma_buf ===================
[10:04:45] ================= xe_bo_shrink (1 subtest) =================
[10:04:45] =================== xe_bo_shrink_kunit ====================
[10:04:45] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[10:04:45] ================== [SKIPPED] xe_bo_shrink ==================
[10:04:45] ==================== xe_bo (2 subtests) ====================
[10:04:45] ================== xe_ccs_migrate_kunit ===================
[10:04:45] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[10:04:45] ==================== xe_bo_evict_kunit ====================
[10:04:45] =============== [SKIPPED] xe_bo_evict_kunit ================
[10:04:45] ===================== [SKIPPED] xe_bo ======================
[10:04:45] ==================== args (13 subtests) ====================
[10:04:45] [PASSED] count_args_test
[10:04:45] [PASSED] call_args_example
[10:04:45] [PASSED] call_args_test
[10:04:45] [PASSED] drop_first_arg_example
[10:04:45] [PASSED] drop_first_arg_test
[10:04:45] [PASSED] first_arg_example
[10:04:45] [PASSED] first_arg_test
[10:04:45] [PASSED] last_arg_example
[10:04:45] [PASSED] last_arg_test
[10:04:45] [PASSED] pick_arg_example
[10:04:45] [PASSED] if_args_example
[10:04:45] [PASSED] if_args_test
[10:04:45] [PASSED] sep_comma_example
[10:04:45] ====================== [PASSED] args =======================
[10:04:45] =================== xe_pci (3 subtests) ====================
[10:04:45] ==================== check_graphics_ip ====================
[10:04:45] [PASSED] 12.00 Xe_LP
[10:04:45] [PASSED] 12.10 Xe_LP+
[10:04:45] [PASSED] 12.55 Xe_HPG
[10:04:45] [PASSED] 12.60 Xe_HPC
[10:04:45] [PASSED] 12.70 Xe_LPG
[10:04:45] [PASSED] 12.71 Xe_LPG
[10:04:45] [PASSED] 12.74 Xe_LPG+
[10:04:45] [PASSED] 20.01 Xe2_HPG
[10:04:45] [PASSED] 20.02 Xe2_HPG
[10:04:45] [PASSED] 20.04 Xe2_LPG
[10:04:45] [PASSED] 30.00 Xe3_LPG
[10:04:45] [PASSED] 30.01 Xe3_LPG
[10:04:45] [PASSED] 30.03 Xe3_LPG
[10:04:45] [PASSED] 30.04 Xe3_LPG
[10:04:45] [PASSED] 30.05 Xe3_LPG
[10:04:45] [PASSED] 35.10 Xe3p_LPG
[10:04:45] [PASSED] 35.11 Xe3p_XPC
[10:04:45] ================ [PASSED] check_graphics_ip ================
[10:04:45] ===================== check_media_ip ======================
[10:04:45] [PASSED] 12.00 Xe_M
[10:04:45] [PASSED] 12.55 Xe_HPM
[10:04:45] [PASSED] 13.00 Xe_LPM+
[10:04:45] [PASSED] 13.01 Xe2_HPM
[10:04:45] [PASSED] 20.00 Xe2_LPM
[10:04:45] [PASSED] 30.00 Xe3_LPM
[10:04:45] [PASSED] 30.02 Xe3_LPM
[10:04:45] [PASSED] 35.00 Xe3p_LPM
[10:04:45] [PASSED] 35.03 Xe3p_HPM
[10:04:45] ================= [PASSED] check_media_ip ==================
[10:04:45] =================== check_platform_desc ===================
[10:04:45] [PASSED] 0x9A60 (TIGERLAKE)
[10:04:45] [PASSED] 0x9A68 (TIGERLAKE)
[10:04:45] [PASSED] 0x9A70 (TIGERLAKE)
[10:04:45] [PASSED] 0x9A40 (TIGERLAKE)
[10:04:45] [PASSED] 0x9A49 (TIGERLAKE)
[10:04:45] [PASSED] 0x9A59 (TIGERLAKE)
[10:04:45] [PASSED] 0x9A78 (TIGERLAKE)
[10:04:45] [PASSED] 0x9AC0 (TIGERLAKE)
[10:04:45] [PASSED] 0x9AC9 (TIGERLAKE)
[10:04:45] [PASSED] 0x9AD9 (TIGERLAKE)
[10:04:45] [PASSED] 0x9AF8 (TIGERLAKE)
[10:04:45] [PASSED] 0x4C80 (ROCKETLAKE)
[10:04:45] [PASSED] 0x4C8A (ROCKETLAKE)
[10:04:45] [PASSED] 0x4C8B (ROCKETLAKE)
[10:04:45] [PASSED] 0x4C8C (ROCKETLAKE)
[10:04:45] [PASSED] 0x4C90 (ROCKETLAKE)
[10:04:45] [PASSED] 0x4C9A (ROCKETLAKE)
[10:04:45] [PASSED] 0x4680 (ALDERLAKE_S)
[10:04:45] [PASSED] 0x4682 (ALDERLAKE_S)
[10:04:45] [PASSED] 0x4688 (ALDERLAKE_S)
[10:04:45] [PASSED] 0x468A (ALDERLAKE_S)
[10:04:45] [PASSED] 0x468B (ALDERLAKE_S)
[10:04:45] [PASSED] 0x4690 (ALDERLAKE_S)
[10:04:45] [PASSED] 0x4692 (ALDERLAKE_S)
[10:04:45] [PASSED] 0x4693 (ALDERLAKE_S)
[10:04:45] [PASSED] 0x46A0 (ALDERLAKE_P)
[10:04:45] [PASSED] 0x46A1 (ALDERLAKE_P)
[10:04:45] [PASSED] 0x46A2 (ALDERLAKE_P)
[10:04:45] [PASSED] 0x46A3 (ALDERLAKE_P)
[10:04:45] [PASSED] 0x46A6 (ALDERLAKE_P)
[10:04:45] [PASSED] 0x46A8 (ALDERLAKE_P)
[10:04:45] [PASSED] 0x46AA (ALDERLAKE_P)
[10:04:45] [PASSED] 0x462A (ALDERLAKE_P)
[10:04:45] [PASSED] 0x4626 (ALDERLAKE_P)
[10:04:45] [PASSED] 0x4628 (ALDERLAKE_P)
[10:04:45] [PASSED] 0x46B0 (ALDERLAKE_P)
[10:04:45] [PASSED] 0x46B1 (ALDERLAKE_P)
[10:04:45] [PASSED] 0x46B2 (ALDERLAKE_P)
[10:04:45] [PASSED] 0x46B3 (ALDERLAKE_P)
[10:04:45] [PASSED] 0x46C0 (ALDERLAKE_P)
[10:04:45] [PASSED] 0x46C1 (ALDERLAKE_P)
[10:04:45] [PASSED] 0x46C2 (ALDERLAKE_P)
[10:04:45] [PASSED] 0x46C3 (ALDERLAKE_P)
[10:04:45] [PASSED] 0x46D0 (ALDERLAKE_N)
[10:04:45] [PASSED] 0x46D1 (ALDERLAKE_N)
[10:04:45] [PASSED] 0x46D2 (ALDERLAKE_N)
[10:04:45] [PASSED] 0x46D3 (ALDERLAKE_N)
[10:04:45] [PASSED] 0x46D4 (ALDERLAKE_N)
[10:04:45] [PASSED] 0xA721 (ALDERLAKE_P)
[10:04:45] [PASSED] 0xA7A1 (ALDERLAKE_P)
[10:04:45] [PASSED] 0xA7A9 (ALDERLAKE_P)
[10:04:45] [PASSED] 0xA7AC (ALDERLAKE_P)
[10:04:45] [PASSED] 0xA7AD (ALDERLAKE_P)
[10:04:45] [PASSED] 0xA720 (ALDERLAKE_P)
[10:04:45] [PASSED] 0xA7A0 (ALDERLAKE_P)
[10:04:45] [PASSED] 0xA7A8 (ALDERLAKE_P)
[10:04:45] [PASSED] 0xA7AA (ALDERLAKE_P)
[10:04:45] [PASSED] 0xA7AB (ALDERLAKE_P)
[10:04:45] [PASSED] 0xA780 (ALDERLAKE_S)
[10:04:45] [PASSED] 0xA781 (ALDERLAKE_S)
[10:04:45] [PASSED] 0xA782 (ALDERLAKE_S)
[10:04:45] [PASSED] 0xA783 (ALDERLAKE_S)
[10:04:45] [PASSED] 0xA788 (ALDERLAKE_S)
[10:04:45] [PASSED] 0xA789 (ALDERLAKE_S)
[10:04:45] [PASSED] 0xA78A (ALDERLAKE_S)
[10:04:45] [PASSED] 0xA78B (ALDERLAKE_S)
[10:04:45] [PASSED] 0x4905 (DG1)
[10:04:45] [PASSED] 0x4906 (DG1)
[10:04:45] [PASSED] 0x4907 (DG1)
[10:04:45] [PASSED] 0x4908 (DG1)
[10:04:45] [PASSED] 0x4909 (DG1)
[10:04:45] [PASSED] 0x56C0 (DG2)
[10:04:45] [PASSED] 0x56C2 (DG2)
[10:04:45] [PASSED] 0x56C1 (DG2)
[10:04:45] [PASSED] 0x7D51 (METEORLAKE)
[10:04:45] [PASSED] 0x7DD1 (METEORLAKE)
[10:04:45] [PASSED] 0x7D41 (METEORLAKE)
[10:04:45] [PASSED] 0x7D67 (METEORLAKE)
[10:04:45] [PASSED] 0xB640 (METEORLAKE)
[10:04:45] [PASSED] 0x56A0 (DG2)
[10:04:45] [PASSED] 0x56A1 (DG2)
[10:04:45] [PASSED] 0x56A2 (DG2)
[10:04:45] [PASSED] 0x56BE (DG2)
[10:04:45] [PASSED] 0x56BF (DG2)
[10:04:45] [PASSED] 0x5690 (DG2)
[10:04:45] [PASSED] 0x5691 (DG2)
[10:04:45] [PASSED] 0x5692 (DG2)
[10:04:45] [PASSED] 0x56A5 (DG2)
[10:04:45] [PASSED] 0x56A6 (DG2)
[10:04:45] [PASSED] 0x56B0 (DG2)
[10:04:45] [PASSED] 0x56B1 (DG2)
[10:04:45] [PASSED] 0x56BA (DG2)
[10:04:45] [PASSED] 0x56BB (DG2)
[10:04:45] [PASSED] 0x56BC (DG2)
[10:04:45] [PASSED] 0x56BD (DG2)
[10:04:45] [PASSED] 0x5693 (DG2)
[10:04:45] [PASSED] 0x5694 (DG2)
[10:04:45] [PASSED] 0x5695 (DG2)
[10:04:45] [PASSED] 0x56A3 (DG2)
[10:04:45] [PASSED] 0x56A4 (DG2)
[10:04:45] [PASSED] 0x56B2 (DG2)
[10:04:45] [PASSED] 0x56B3 (DG2)
[10:04:45] [PASSED] 0x5696 (DG2)
[10:04:45] [PASSED] 0x5697 (DG2)
[10:04:45] [PASSED] 0xB69 (PVC)
[10:04:45] [PASSED] 0xB6E (PVC)
[10:04:45] [PASSED] 0xBD4 (PVC)
[10:04:45] [PASSED] 0xBD5 (PVC)
[10:04:45] [PASSED] 0xBD6 (PVC)
[10:04:45] [PASSED] 0xBD7 (PVC)
[10:04:45] [PASSED] 0xBD8 (PVC)
[10:04:45] [PASSED] 0xBD9 (PVC)
[10:04:45] [PASSED] 0xBDA (PVC)
[10:04:45] [PASSED] 0xBDB (PVC)
[10:04:45] [PASSED] 0xBE0 (PVC)
[10:04:45] [PASSED] 0xBE1 (PVC)
[10:04:45] [PASSED] 0xBE5 (PVC)
[10:04:45] [PASSED] 0x7D40 (METEORLAKE)
[10:04:45] [PASSED] 0x7D45 (METEORLAKE)
[10:04:45] [PASSED] 0x7D55 (METEORLAKE)
[10:04:45] [PASSED] 0x7D60 (METEORLAKE)
[10:04:45] [PASSED] 0x7DD5 (METEORLAKE)
[10:04:45] [PASSED] 0x6420 (LUNARLAKE)
[10:04:45] [PASSED] 0x64A0 (LUNARLAKE)
[10:04:45] [PASSED] 0x64B0 (LUNARLAKE)
[10:04:45] [PASSED] 0xE202 (BATTLEMAGE)
[10:04:45] [PASSED] 0xE209 (BATTLEMAGE)
[10:04:45] [PASSED] 0xE20B (BATTLEMAGE)
[10:04:45] [PASSED] 0xE20C (BATTLEMAGE)
[10:04:45] [PASSED] 0xE20D (BATTLEMAGE)
[10:04:45] [PASSED] 0xE210 (BATTLEMAGE)
[10:04:45] [PASSED] 0xE211 (BATTLEMAGE)
[10:04:45] [PASSED] 0xE212 (BATTLEMAGE)
[10:04:45] [PASSED] 0xE216 (BATTLEMAGE)
[10:04:45] [PASSED] 0xE220 (BATTLEMAGE)
[10:04:45] [PASSED] 0xE221 (BATTLEMAGE)
[10:04:45] [PASSED] 0xE222 (BATTLEMAGE)
[10:04:45] [PASSED] 0xE223 (BATTLEMAGE)
[10:04:45] [PASSED] 0xB080 (PANTHERLAKE)
[10:04:45] [PASSED] 0xB081 (PANTHERLAKE)
[10:04:45] [PASSED] 0xB082 (PANTHERLAKE)
[10:04:45] [PASSED] 0xB083 (PANTHERLAKE)
[10:04:45] [PASSED] 0xB084 (PANTHERLAKE)
[10:04:45] [PASSED] 0xB085 (PANTHERLAKE)
[10:04:45] [PASSED] 0xB086 (PANTHERLAKE)
[10:04:45] [PASSED] 0xB087 (PANTHERLAKE)
[10:04:45] [PASSED] 0xB08F (PANTHERLAKE)
[10:04:45] [PASSED] 0xB090 (PANTHERLAKE)
[10:04:45] [PASSED] 0xB0A0 (PANTHERLAKE)
[10:04:45] [PASSED] 0xB0B0 (PANTHERLAKE)
[10:04:45] [PASSED] 0xFD80 (PANTHERLAKE)
[10:04:45] [PASSED] 0xFD81 (PANTHERLAKE)
[10:04:45] [PASSED] 0xD740 (NOVALAKE_S)
[10:04:45] [PASSED] 0xD741 (NOVALAKE_S)
[10:04:45] [PASSED] 0xD742 (NOVALAKE_S)
[10:04:45] [PASSED] 0xD743 (NOVALAKE_S)
[10:04:45] [PASSED] 0xD744 (NOVALAKE_S)
[10:04:45] [PASSED] 0xD745 (NOVALAKE_S)
[10:04:45] [PASSED] 0x674C (CRESCENTISLAND)
[10:04:45] [PASSED] 0xD750 (NOVALAKE_P)
[10:04:45] [PASSED] 0xD751 (NOVALAKE_P)
[10:04:45] [PASSED] 0xD752 (NOVALAKE_P)
[10:04:45] [PASSED] 0xD753 (NOVALAKE_P)
[10:04:45] [PASSED] 0xD754 (NOVALAKE_P)
[10:04:45] [PASSED] 0xD755 (NOVALAKE_P)
[10:04:45] [PASSED] 0xD756 (NOVALAKE_P)
[10:04:45] [PASSED] 0xD757 (NOVALAKE_P)
[10:04:45] [PASSED] 0xD75F (NOVALAKE_P)
[10:04:45] =============== [PASSED] check_platform_desc ===============
[10:04:45] ===================== [PASSED] xe_pci ======================
[10:04:45] =================== xe_rtp (2 subtests) ====================
[10:04:45] =============== xe_rtp_process_to_sr_tests ================
[10:04:45] [PASSED] coalesce-same-reg
[10:04:45] [PASSED] no-match-no-add
[10:04:45] [PASSED] match-or
[10:04:45] [PASSED] match-or-xfail
[10:04:45] [PASSED] no-match-no-add-multiple-rules
[10:04:45] [PASSED] two-regs-two-entries
[10:04:45] [PASSED] clr-one-set-other
[10:04:45] [PASSED] set-field
[10:04:45] [PASSED] conflict-duplicate
stty: 'standard input': Inappropriate ioctl for device
[10:04:45] [PASSED] conflict-not-disjoint
[10:04:45] [PASSED] conflict-reg-type
[10:04:45] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[10:04:45] ================== xe_rtp_process_tests ===================
[10:04:45] [PASSED] active1
[10:04:45] [PASSED] active2
[10:04:45] [PASSED] active-inactive
[10:04:45] [PASSED] inactive-active
[10:04:45] [PASSED] inactive-1st_or_active-inactive
[10:04:45] [PASSED] inactive-2nd_or_active-inactive
[10:04:45] [PASSED] inactive-last_or_active-inactive
[10:04:45] [PASSED] inactive-no_or_active-inactive
[10:04:45] ============== [PASSED] xe_rtp_process_tests ===============
[10:04:45] ===================== [PASSED] xe_rtp ======================
[10:04:45] ==================== xe_wa (1 subtest) =====================
[10:04:45] ======================== xe_wa_gt =========================
[10:04:45] [PASSED] TIGERLAKE B0
[10:04:45] [PASSED] DG1 A0
[10:04:45] [PASSED] DG1 B0
[10:04:45] [PASSED] ALDERLAKE_S A0
[10:04:45] [PASSED] ALDERLAKE_S B0
[10:04:45] [PASSED] ALDERLAKE_S C0
[10:04:45] [PASSED] ALDERLAKE_S D0
[10:04:45] [PASSED] ALDERLAKE_P A0
[10:04:45] [PASSED] ALDERLAKE_P B0
[10:04:45] [PASSED] ALDERLAKE_P C0
[10:04:45] [PASSED] ALDERLAKE_S RPLS D0
[10:04:45] [PASSED] ALDERLAKE_P RPLU E0
[10:04:45] [PASSED] DG2 G10 C0
[10:04:45] [PASSED] DG2 G11 B1
[10:04:45] [PASSED] DG2 G12 A1
[10:04:45] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[10:04:45] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[10:04:45] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[10:04:45] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[10:04:45] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[10:04:45] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[10:04:45] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[10:04:45] ==================== [PASSED] xe_wa_gt =====================
[10:04:45] ====================== [PASSED] xe_wa ======================
[10:04:45] ============================================================
[10:04:45] Testing complete. Ran 597 tests: passed: 579, skipped: 18
[10:04:45] Elapsed time: 35.707s total, 4.270s configuring, 30.818s building, 0.589s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[10:04:46] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:04:47] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[10:05:11] Starting KUnit Kernel (1/1)...
[10:05:11] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:05:12] ============ drm_test_pick_cmdline (2 subtests) ============
[10:05:12] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[10:05:12] =============== drm_test_pick_cmdline_named ===============
[10:05:12] [PASSED] NTSC
[10:05:12] [PASSED] NTSC-J
[10:05:12] [PASSED] PAL
[10:05:12] [PASSED] PAL-M
[10:05:12] =========== [PASSED] drm_test_pick_cmdline_named ===========
[10:05:12] ============== [PASSED] drm_test_pick_cmdline ==============
[10:05:12] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[10:05:12] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[10:05:12] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[10:05:12] =========== drm_validate_clone_mode (2 subtests) ===========
[10:05:12] ============== drm_test_check_in_clone_mode ===============
[10:05:12] [PASSED] in_clone_mode
[10:05:12] [PASSED] not_in_clone_mode
[10:05:12] ========== [PASSED] drm_test_check_in_clone_mode ===========
[10:05:12] =============== drm_test_check_valid_clones ===============
[10:05:12] [PASSED] not_in_clone_mode
[10:05:12] [PASSED] valid_clone
[10:05:12] [PASSED] invalid_clone
[10:05:12] =========== [PASSED] drm_test_check_valid_clones ===========
[10:05:12] ============= [PASSED] drm_validate_clone_mode =============
[10:05:12] ============= drm_validate_modeset (1 subtest) =============
[10:05:12] [PASSED] drm_test_check_connector_changed_modeset
[10:05:12] ============== [PASSED] drm_validate_modeset ===============
[10:05:12] ====== drm_test_bridge_get_current_state (2 subtests) ======
[10:05:12] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[10:05:12] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[10:05:12] ======== [PASSED] drm_test_bridge_get_current_state ========
[10:05:12] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[10:05:12] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[10:05:12] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[10:05:12] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[10:05:12] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[10:05:12] ============== drm_bridge_alloc (2 subtests) ===============
[10:05:12] [PASSED] drm_test_drm_bridge_alloc_basic
[10:05:12] [PASSED] drm_test_drm_bridge_alloc_get_put
[10:05:12] ================ [PASSED] drm_bridge_alloc =================
[10:05:12] ============= drm_cmdline_parser (40 subtests) =============
[10:05:12] [PASSED] drm_test_cmdline_force_d_only
[10:05:12] [PASSED] drm_test_cmdline_force_D_only_dvi
[10:05:12] [PASSED] drm_test_cmdline_force_D_only_hdmi
[10:05:12] [PASSED] drm_test_cmdline_force_D_only_not_digital
[10:05:12] [PASSED] drm_test_cmdline_force_e_only
[10:05:12] [PASSED] drm_test_cmdline_res
[10:05:12] [PASSED] drm_test_cmdline_res_vesa
[10:05:12] [PASSED] drm_test_cmdline_res_vesa_rblank
[10:05:12] [PASSED] drm_test_cmdline_res_rblank
[10:05:12] [PASSED] drm_test_cmdline_res_bpp
[10:05:12] [PASSED] drm_test_cmdline_res_refresh
[10:05:12] [PASSED] drm_test_cmdline_res_bpp_refresh
[10:05:12] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[10:05:12] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[10:05:12] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[10:05:12] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[10:05:12] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[10:05:12] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[10:05:12] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[10:05:12] [PASSED] drm_test_cmdline_res_margins_force_on
[10:05:12] [PASSED] drm_test_cmdline_res_vesa_margins
[10:05:12] [PASSED] drm_test_cmdline_name
[10:05:12] [PASSED] drm_test_cmdline_name_bpp
[10:05:12] [PASSED] drm_test_cmdline_name_option
[10:05:12] [PASSED] drm_test_cmdline_name_bpp_option
[10:05:12] [PASSED] drm_test_cmdline_rotate_0
[10:05:12] [PASSED] drm_test_cmdline_rotate_90
[10:05:12] [PASSED] drm_test_cmdline_rotate_180
[10:05:12] [PASSED] drm_test_cmdline_rotate_270
[10:05:12] [PASSED] drm_test_cmdline_hmirror
[10:05:12] [PASSED] drm_test_cmdline_vmirror
[10:05:12] [PASSED] drm_test_cmdline_margin_options
[10:05:12] [PASSED] drm_test_cmdline_multiple_options
[10:05:12] [PASSED] drm_test_cmdline_bpp_extra_and_option
[10:05:12] [PASSED] drm_test_cmdline_extra_and_option
[10:05:12] [PASSED] drm_test_cmdline_freestanding_options
[10:05:12] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[10:05:12] [PASSED] drm_test_cmdline_panel_orientation
[10:05:12] ================ drm_test_cmdline_invalid =================
[10:05:12] [PASSED] margin_only
[10:05:12] [PASSED] interlace_only
[10:05:12] [PASSED] res_missing_x
[10:05:12] [PASSED] res_missing_y
[10:05:12] [PASSED] res_bad_y
[10:05:12] [PASSED] res_missing_y_bpp
[10:05:12] [PASSED] res_bad_bpp
[10:05:12] [PASSED] res_bad_refresh
[10:05:12] [PASSED] res_bpp_refresh_force_on_off
[10:05:12] [PASSED] res_invalid_mode
[10:05:12] [PASSED] res_bpp_wrong_place_mode
[10:05:12] [PASSED] name_bpp_refresh
[10:05:12] [PASSED] name_refresh
[10:05:12] [PASSED] name_refresh_wrong_mode
[10:05:12] [PASSED] name_refresh_invalid_mode
[10:05:12] [PASSED] rotate_multiple
[10:05:12] [PASSED] rotate_invalid_val
[10:05:12] [PASSED] rotate_truncated
[10:05:12] [PASSED] invalid_option
[10:05:12] [PASSED] invalid_tv_option
[10:05:12] [PASSED] truncated_tv_option
[10:05:12] ============ [PASSED] drm_test_cmdline_invalid =============
[10:05:12] =============== drm_test_cmdline_tv_options ===============
[10:05:12] [PASSED] NTSC
[10:05:12] [PASSED] NTSC_443
[10:05:12] [PASSED] NTSC_J
[10:05:12] [PASSED] PAL
[10:05:12] [PASSED] PAL_M
[10:05:12] [PASSED] PAL_N
[10:05:12] [PASSED] SECAM
[10:05:12] [PASSED] MONO_525
[10:05:12] [PASSED] MONO_625
[10:05:12] =========== [PASSED] drm_test_cmdline_tv_options ===========
[10:05:12] =============== [PASSED] drm_cmdline_parser ================
[10:05:12] ========== drmm_connector_hdmi_init (20 subtests) ==========
[10:05:12] [PASSED] drm_test_connector_hdmi_init_valid
[10:05:12] [PASSED] drm_test_connector_hdmi_init_bpc_8
[10:05:12] [PASSED] drm_test_connector_hdmi_init_bpc_10
[10:05:12] [PASSED] drm_test_connector_hdmi_init_bpc_12
[10:05:12] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[10:05:12] [PASSED] drm_test_connector_hdmi_init_bpc_null
[10:05:12] [PASSED] drm_test_connector_hdmi_init_formats_empty
[10:05:12] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[10:05:12] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[10:05:12] [PASSED] supported_formats=0x9 yuv420_allowed=1
[10:05:12] [PASSED] supported_formats=0x9 yuv420_allowed=0
[10:05:12] [PASSED] supported_formats=0x3 yuv420_allowed=1
[10:05:12] [PASSED] supported_formats=0x3 yuv420_allowed=0
[10:05:12] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[10:05:12] [PASSED] drm_test_connector_hdmi_init_null_ddc
[10:05:12] [PASSED] drm_test_connector_hdmi_init_null_product
[10:05:12] [PASSED] drm_test_connector_hdmi_init_null_vendor
[10:05:12] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[10:05:12] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[10:05:12] [PASSED] drm_test_connector_hdmi_init_product_valid
[10:05:12] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[10:05:12] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[10:05:12] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[10:05:12] ========= drm_test_connector_hdmi_init_type_valid =========
[10:05:12] [PASSED] HDMI-A
[10:05:12] [PASSED] HDMI-B
[10:05:12] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[10:05:12] ======== drm_test_connector_hdmi_init_type_invalid ========
[10:05:12] [PASSED] Unknown
[10:05:12] [PASSED] VGA
[10:05:12] [PASSED] DVI-I
[10:05:12] [PASSED] DVI-D
[10:05:12] [PASSED] DVI-A
[10:05:12] [PASSED] Composite
[10:05:12] [PASSED] SVIDEO
[10:05:12] [PASSED] LVDS
[10:05:12] [PASSED] Component
[10:05:12] [PASSED] DIN
[10:05:12] [PASSED] DP
[10:05:12] [PASSED] TV
[10:05:12] [PASSED] eDP
[10:05:12] [PASSED] Virtual
[10:05:12] [PASSED] DSI
[10:05:12] [PASSED] DPI
[10:05:12] [PASSED] Writeback
[10:05:12] [PASSED] SPI
[10:05:12] [PASSED] USB
[10:05:12] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[10:05:12] ============ [PASSED] drmm_connector_hdmi_init =============
[10:05:12] ============= drmm_connector_init (3 subtests) =============
[10:05:12] [PASSED] drm_test_drmm_connector_init
[10:05:12] [PASSED] drm_test_drmm_connector_init_null_ddc
[10:05:12] ========= drm_test_drmm_connector_init_type_valid =========
[10:05:12] [PASSED] Unknown
[10:05:12] [PASSED] VGA
[10:05:12] [PASSED] DVI-I
[10:05:12] [PASSED] DVI-D
[10:05:12] [PASSED] DVI-A
[10:05:12] [PASSED] Composite
[10:05:12] [PASSED] SVIDEO
[10:05:12] [PASSED] LVDS
[10:05:12] [PASSED] Component
[10:05:12] [PASSED] DIN
[10:05:12] [PASSED] DP
[10:05:12] [PASSED] HDMI-A
[10:05:12] [PASSED] HDMI-B
[10:05:12] [PASSED] TV
[10:05:12] [PASSED] eDP
[10:05:12] [PASSED] Virtual
[10:05:12] [PASSED] DSI
[10:05:12] [PASSED] DPI
[10:05:12] [PASSED] Writeback
[10:05:12] [PASSED] SPI
[10:05:12] [PASSED] USB
[10:05:12] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[10:05:12] =============== [PASSED] drmm_connector_init ===============
[10:05:12] ========= drm_connector_dynamic_init (6 subtests) ==========
[10:05:12] [PASSED] drm_test_drm_connector_dynamic_init
[10:05:12] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[10:05:12] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[10:05:12] [PASSED] drm_test_drm_connector_dynamic_init_properties
[10:05:12] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[10:05:12] [PASSED] Unknown
[10:05:12] [PASSED] VGA
[10:05:12] [PASSED] DVI-I
[10:05:12] [PASSED] DVI-D
[10:05:12] [PASSED] DVI-A
[10:05:12] [PASSED] Composite
[10:05:12] [PASSED] SVIDEO
[10:05:12] [PASSED] LVDS
[10:05:12] [PASSED] Component
[10:05:12] [PASSED] DIN
[10:05:12] [PASSED] DP
[10:05:12] [PASSED] HDMI-A
[10:05:12] [PASSED] HDMI-B
[10:05:12] [PASSED] TV
[10:05:12] [PASSED] eDP
[10:05:12] [PASSED] Virtual
[10:05:12] [PASSED] DSI
[10:05:12] [PASSED] DPI
[10:05:12] [PASSED] Writeback
[10:05:12] [PASSED] SPI
[10:05:12] [PASSED] USB
[10:05:12] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[10:05:12] ======== drm_test_drm_connector_dynamic_init_name =========
[10:05:12] [PASSED] Unknown
[10:05:12] [PASSED] VGA
[10:05:12] [PASSED] DVI-I
[10:05:12] [PASSED] DVI-D
[10:05:12] [PASSED] DVI-A
[10:05:12] [PASSED] Composite
[10:05:12] [PASSED] SVIDEO
[10:05:12] [PASSED] LVDS
[10:05:12] [PASSED] Component
[10:05:12] [PASSED] DIN
[10:05:12] [PASSED] DP
[10:05:12] [PASSED] HDMI-A
[10:05:12] [PASSED] HDMI-B
[10:05:12] [PASSED] TV
[10:05:12] [PASSED] eDP
[10:05:12] [PASSED] Virtual
[10:05:12] [PASSED] DSI
[10:05:12] [PASSED] DPI
[10:05:12] [PASSED] Writeback
[10:05:12] [PASSED] SPI
[10:05:12] [PASSED] USB
[10:05:12] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[10:05:12] =========== [PASSED] drm_connector_dynamic_init ============
[10:05:12] ==== drm_connector_dynamic_register_early (4 subtests) =====
[10:05:12] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[10:05:12] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[10:05:12] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[10:05:12] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[10:05:12] ====== [PASSED] drm_connector_dynamic_register_early =======
[10:05:12] ======= drm_connector_dynamic_register (7 subtests) ========
[10:05:12] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[10:05:12] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[10:05:12] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[10:05:12] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[10:05:12] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[10:05:12] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[10:05:12] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[10:05:12] ========= [PASSED] drm_connector_dynamic_register ==========
[10:05:12] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[10:05:12] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[10:05:12] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[10:05:12] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[10:05:12] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[10:05:12] ========== drm_test_get_tv_mode_from_name_valid ===========
[10:05:12] [PASSED] NTSC
[10:05:12] [PASSED] NTSC-443
[10:05:12] [PASSED] NTSC-J
[10:05:12] [PASSED] PAL
[10:05:12] [PASSED] PAL-M
[10:05:12] [PASSED] PAL-N
[10:05:12] [PASSED] SECAM
[10:05:12] [PASSED] Mono
[10:05:12] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[10:05:12] [PASSED] drm_test_get_tv_mode_from_name_truncated
[10:05:12] ============ [PASSED] drm_get_tv_mode_from_name ============
[10:05:12] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[10:05:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[10:05:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[10:05:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[10:05:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[10:05:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[10:05:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[10:05:12] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[10:05:12] [PASSED] VIC 96
[10:05:12] [PASSED] VIC 97
[10:05:12] [PASSED] VIC 101
[10:05:12] [PASSED] VIC 102
[10:05:12] [PASSED] VIC 106
[10:05:12] [PASSED] VIC 107
[10:05:12] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[10:05:12] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[10:05:12] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[10:05:12] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[10:05:12] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[10:05:12] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[10:05:12] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[10:05:12] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[10:05:12] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[10:05:12] [PASSED] Automatic
[10:05:12] [PASSED] Full
[10:05:12] [PASSED] Limited 16:235
[10:05:12] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[10:05:12] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[10:05:12] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[10:05:12] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[10:05:12] === drm_test_drm_hdmi_connector_get_output_format_name ====
[10:05:12] [PASSED] RGB
[10:05:12] [PASSED] YUV 4:2:0
[10:05:12] [PASSED] YUV 4:2:2
[10:05:12] [PASSED] YUV 4:4:4
[10:05:12] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[10:05:12] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[10:05:12] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[10:05:12] ============= drm_damage_helper (21 subtests) ==============
[10:05:12] [PASSED] drm_test_damage_iter_no_damage
[10:05:12] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[10:05:12] [PASSED] drm_test_damage_iter_no_damage_src_moved
[10:05:12] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[10:05:12] [PASSED] drm_test_damage_iter_no_damage_not_visible
[10:05:12] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[10:05:12] [PASSED] drm_test_damage_iter_no_damage_no_fb
[10:05:12] [PASSED] drm_test_damage_iter_simple_damage
[10:05:12] [PASSED] drm_test_damage_iter_single_damage
[10:05:12] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[10:05:12] [PASSED] drm_test_damage_iter_single_damage_outside_src
[10:05:12] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[10:05:12] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[10:05:12] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[10:05:12] [PASSED] drm_test_damage_iter_single_damage_src_moved
[10:05:12] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[10:05:12] [PASSED] drm_test_damage_iter_damage
[10:05:12] [PASSED] drm_test_damage_iter_damage_one_intersect
[10:05:12] [PASSED] drm_test_damage_iter_damage_one_outside
[10:05:12] [PASSED] drm_test_damage_iter_damage_src_moved
[10:05:12] [PASSED] drm_test_damage_iter_damage_not_visible
[10:05:12] ================ [PASSED] drm_damage_helper ================
[10:05:12] ============== drm_dp_mst_helper (3 subtests) ==============
[10:05:12] ============== drm_test_dp_mst_calc_pbn_mode ==============
[10:05:12] [PASSED] Clock 154000 BPP 30 DSC disabled
[10:05:12] [PASSED] Clock 234000 BPP 30 DSC disabled
[10:05:12] [PASSED] Clock 297000 BPP 24 DSC disabled
[10:05:12] [PASSED] Clock 332880 BPP 24 DSC enabled
[10:05:12] [PASSED] Clock 324540 BPP 24 DSC enabled
[10:05:12] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[10:05:12] ============== drm_test_dp_mst_calc_pbn_div ===============
[10:05:12] [PASSED] Link rate 2000000 lane count 4
[10:05:12] [PASSED] Link rate 2000000 lane count 2
[10:05:12] [PASSED] Link rate 2000000 lane count 1
[10:05:12] [PASSED] Link rate 1350000 lane count 4
[10:05:12] [PASSED] Link rate 1350000 lane count 2
[10:05:12] [PASSED] Link rate 1350000 lane count 1
[10:05:12] [PASSED] Link rate 1000000 lane count 4
[10:05:12] [PASSED] Link rate 1000000 lane count 2
[10:05:12] [PASSED] Link rate 1000000 lane count 1
[10:05:12] [PASSED] Link rate 810000 lane count 4
[10:05:12] [PASSED] Link rate 810000 lane count 2
[10:05:12] [PASSED] Link rate 810000 lane count 1
[10:05:12] [PASSED] Link rate 540000 lane count 4
[10:05:12] [PASSED] Link rate 540000 lane count 2
[10:05:12] [PASSED] Link rate 540000 lane count 1
[10:05:12] [PASSED] Link rate 270000 lane count 4
[10:05:12] [PASSED] Link rate 270000 lane count 2
[10:05:12] [PASSED] Link rate 270000 lane count 1
[10:05:12] [PASSED] Link rate 162000 lane count 4
[10:05:12] [PASSED] Link rate 162000 lane count 2
[10:05:12] [PASSED] Link rate 162000 lane count 1
[10:05:12] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[10:05:12] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[10:05:12] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[10:05:12] [PASSED] DP_POWER_UP_PHY with port number
[10:05:12] [PASSED] DP_POWER_DOWN_PHY with port number
[10:05:12] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[10:05:12] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[10:05:12] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[10:05:12] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[10:05:12] [PASSED] DP_QUERY_PAYLOAD with port number
[10:05:12] [PASSED] DP_QUERY_PAYLOAD with VCPI
[10:05:12] [PASSED] DP_REMOTE_DPCD_READ with port number
[10:05:12] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[10:05:12] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[10:05:12] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[10:05:12] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[10:05:12] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[10:05:12] [PASSED] DP_REMOTE_I2C_READ with port number
[10:05:12] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[10:05:12] [PASSED] DP_REMOTE_I2C_READ with transactions array
[10:05:12] [PASSED] DP_REMOTE_I2C_WRITE with port number
[10:05:12] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[10:05:12] [PASSED] DP_REMOTE_I2C_WRITE with data array
[10:05:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[10:05:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[10:05:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[10:05:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[10:05:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[10:05:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[10:05:12] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[10:05:12] ================ [PASSED] drm_dp_mst_helper ================
[10:05:12] ================== drm_exec (7 subtests) ===================
[10:05:12] [PASSED] sanitycheck
[10:05:12] [PASSED] test_lock
[10:05:12] [PASSED] test_lock_unlock
[10:05:12] [PASSED] test_duplicates
[10:05:12] [PASSED] test_prepare
[10:05:12] [PASSED] test_prepare_array
[10:05:12] [PASSED] test_multiple_loops
[10:05:12] ==================== [PASSED] drm_exec =====================
[10:05:12] =========== drm_format_helper_test (17 subtests) ===========
[10:05:12] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[10:05:12] [PASSED] single_pixel_source_buffer
[10:05:12] [PASSED] single_pixel_clip_rectangle
[10:05:12] [PASSED] well_known_colors
[10:05:12] [PASSED] destination_pitch
[10:05:12] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[10:05:12] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[10:05:12] [PASSED] single_pixel_source_buffer
[10:05:12] [PASSED] single_pixel_clip_rectangle
[10:05:12] [PASSED] well_known_colors
[10:05:12] [PASSED] destination_pitch
[10:05:12] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[10:05:12] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[10:05:12] [PASSED] single_pixel_source_buffer
[10:05:12] [PASSED] single_pixel_clip_rectangle
[10:05:12] [PASSED] well_known_colors
[10:05:12] [PASSED] destination_pitch
[10:05:12] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[10:05:12] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[10:05:12] [PASSED] single_pixel_source_buffer
[10:05:12] [PASSED] single_pixel_clip_rectangle
[10:05:12] [PASSED] well_known_colors
[10:05:12] [PASSED] destination_pitch
[10:05:12] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[10:05:12] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[10:05:12] [PASSED] single_pixel_source_buffer
[10:05:12] [PASSED] single_pixel_clip_rectangle
[10:05:12] [PASSED] well_known_colors
[10:05:12] [PASSED] destination_pitch
[10:05:12] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[10:05:12] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[10:05:12] [PASSED] single_pixel_source_buffer
[10:05:12] [PASSED] single_pixel_clip_rectangle
[10:05:12] [PASSED] well_known_colors
[10:05:12] [PASSED] destination_pitch
[10:05:12] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[10:05:12] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[10:05:12] [PASSED] single_pixel_source_buffer
[10:05:12] [PASSED] single_pixel_clip_rectangle
[10:05:12] [PASSED] well_known_colors
[10:05:12] [PASSED] destination_pitch
[10:05:12] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[10:05:12] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[10:05:12] [PASSED] single_pixel_source_buffer
[10:05:12] [PASSED] single_pixel_clip_rectangle
[10:05:12] [PASSED] well_known_colors
[10:05:12] [PASSED] destination_pitch
[10:05:12] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[10:05:12] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[10:05:12] [PASSED] single_pixel_source_buffer
[10:05:12] [PASSED] single_pixel_clip_rectangle
[10:05:12] [PASSED] well_known_colors
[10:05:12] [PASSED] destination_pitch
[10:05:12] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[10:05:12] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[10:05:12] [PASSED] single_pixel_source_buffer
[10:05:12] [PASSED] single_pixel_clip_rectangle
[10:05:12] [PASSED] well_known_colors
[10:05:12] [PASSED] destination_pitch
[10:05:12] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[10:05:12] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[10:05:12] [PASSED] single_pixel_source_buffer
[10:05:12] [PASSED] single_pixel_clip_rectangle
[10:05:12] [PASSED] well_known_colors
[10:05:12] [PASSED] destination_pitch
[10:05:12] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[10:05:12] ============== drm_test_fb_xrgb8888_to_mono ===============
[10:05:12] [PASSED] single_pixel_source_buffer
[10:05:12] [PASSED] single_pixel_clip_rectangle
[10:05:12] [PASSED] well_known_colors
[10:05:12] [PASSED] destination_pitch
[10:05:12] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[10:05:12] ==================== drm_test_fb_swab =====================
[10:05:12] [PASSED] single_pixel_source_buffer
[10:05:12] [PASSED] single_pixel_clip_rectangle
[10:05:12] [PASSED] well_known_colors
[10:05:12] [PASSED] destination_pitch
[10:05:12] ================ [PASSED] drm_test_fb_swab =================
[10:05:12] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[10:05:12] [PASSED] single_pixel_source_buffer
[10:05:12] [PASSED] single_pixel_clip_rectangle
[10:05:12] [PASSED] well_known_colors
[10:05:12] [PASSED] destination_pitch
[10:05:12] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[10:05:12] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[10:05:12] [PASSED] single_pixel_source_buffer
[10:05:12] [PASSED] single_pixel_clip_rectangle
[10:05:12] [PASSED] well_known_colors
[10:05:12] [PASSED] destination_pitch
[10:05:12] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[10:05:12] ================= drm_test_fb_clip_offset =================
[10:05:12] [PASSED] pass through
[10:05:12] [PASSED] horizontal offset
[10:05:12] [PASSED] vertical offset
[10:05:12] [PASSED] horizontal and vertical offset
[10:05:12] [PASSED] horizontal offset (custom pitch)
[10:05:12] [PASSED] vertical offset (custom pitch)
[10:05:12] [PASSED] horizontal and vertical offset (custom pitch)
[10:05:12] ============= [PASSED] drm_test_fb_clip_offset =============
[10:05:12] =================== drm_test_fb_memcpy ====================
[10:05:12] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[10:05:12] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[10:05:12] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[10:05:12] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[10:05:12] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[10:05:12] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[10:05:12] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[10:05:12] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[10:05:12] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[10:05:12] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[10:05:12] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[10:05:12] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[10:05:12] =============== [PASSED] drm_test_fb_memcpy ================
[10:05:12] ============= [PASSED] drm_format_helper_test ==============
[10:05:12] ================= drm_format (18 subtests) =================
[10:05:12] [PASSED] drm_test_format_block_width_invalid
[10:05:12] [PASSED] drm_test_format_block_width_one_plane
[10:05:12] [PASSED] drm_test_format_block_width_two_plane
[10:05:12] [PASSED] drm_test_format_block_width_three_plane
[10:05:12] [PASSED] drm_test_format_block_width_tiled
[10:05:12] [PASSED] drm_test_format_block_height_invalid
[10:05:12] [PASSED] drm_test_format_block_height_one_plane
[10:05:12] [PASSED] drm_test_format_block_height_two_plane
[10:05:12] [PASSED] drm_test_format_block_height_three_plane
[10:05:12] [PASSED] drm_test_format_block_height_tiled
[10:05:12] [PASSED] drm_test_format_min_pitch_invalid
[10:05:12] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[10:05:12] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[10:05:12] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[10:05:12] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[10:05:12] [PASSED] drm_test_format_min_pitch_two_plane
[10:05:12] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[10:05:12] [PASSED] drm_test_format_min_pitch_tiled
[10:05:12] =================== [PASSED] drm_format ====================
[10:05:12] ============== drm_framebuffer (10 subtests) ===============
[10:05:12] ========== drm_test_framebuffer_check_src_coords ==========
[10:05:12] [PASSED] Success: source fits into fb
[10:05:12] [PASSED] Fail: overflowing fb with x-axis coordinate
[10:05:12] [PASSED] Fail: overflowing fb with y-axis coordinate
[10:05:12] [PASSED] Fail: overflowing fb with source width
[10:05:12] [PASSED] Fail: overflowing fb with source height
[10:05:12] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[10:05:12] [PASSED] drm_test_framebuffer_cleanup
[10:05:12] =============== drm_test_framebuffer_create ===============
[10:05:12] [PASSED] ABGR8888 normal sizes
[10:05:12] [PASSED] ABGR8888 max sizes
[10:05:12] [PASSED] ABGR8888 pitch greater than min required
[10:05:12] [PASSED] ABGR8888 pitch less than min required
[10:05:12] [PASSED] ABGR8888 Invalid width
[10:05:12] [PASSED] ABGR8888 Invalid buffer handle
[10:05:12] [PASSED] No pixel format
[10:05:12] [PASSED] ABGR8888 Width 0
[10:05:12] [PASSED] ABGR8888 Height 0
[10:05:12] [PASSED] ABGR8888 Out of bound height * pitch combination
[10:05:12] [PASSED] ABGR8888 Large buffer offset
[10:05:12] [PASSED] ABGR8888 Buffer offset for inexistent plane
[10:05:12] [PASSED] ABGR8888 Invalid flag
[10:05:12] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[10:05:12] [PASSED] ABGR8888 Valid buffer modifier
[10:05:12] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[10:05:12] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[10:05:12] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[10:05:12] [PASSED] NV12 Normal sizes
[10:05:12] [PASSED] NV12 Max sizes
[10:05:12] [PASSED] NV12 Invalid pitch
[10:05:12] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[10:05:12] [PASSED] NV12 different modifier per-plane
[10:05:12] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[10:05:12] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[10:05:12] [PASSED] NV12 Modifier for inexistent plane
[10:05:12] [PASSED] NV12 Handle for inexistent plane
[10:05:12] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[10:05:12] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[10:05:12] [PASSED] YVU420 Normal sizes
[10:05:12] [PASSED] YVU420 Max sizes
[10:05:12] [PASSED] YVU420 Invalid pitch
[10:05:12] [PASSED] YVU420 Different pitches
[10:05:12] [PASSED] YVU420 Different buffer offsets/pitches
[10:05:12] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[10:05:12] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[10:05:12] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[10:05:12] [PASSED] YVU420 Valid modifier
[10:05:12] [PASSED] YVU420 Different modifiers per plane
[10:05:12] [PASSED] YVU420 Modifier for inexistent plane
[10:05:12] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[10:05:12] [PASSED] X0L2 Normal sizes
[10:05:12] [PASSED] X0L2 Max sizes
[10:05:12] [PASSED] X0L2 Invalid pitch
[10:05:12] [PASSED] X0L2 Pitch greater than minimum required
[10:05:12] [PASSED] X0L2 Handle for inexistent plane
[10:05:12] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[10:05:12] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[10:05:12] [PASSED] X0L2 Valid modifier
[10:05:12] [PASSED] X0L2 Modifier for inexistent plane
[10:05:12] =========== [PASSED] drm_test_framebuffer_create ===========
[10:05:12] [PASSED] drm_test_framebuffer_free
[10:05:12] [PASSED] drm_test_framebuffer_init
[10:05:12] [PASSED] drm_test_framebuffer_init_bad_format
[10:05:12] [PASSED] drm_test_framebuffer_init_dev_mismatch
[10:05:12] [PASSED] drm_test_framebuffer_lookup
[10:05:12] [PASSED] drm_test_framebuffer_lookup_inexistent
[10:05:12] [PASSED] drm_test_framebuffer_modifiers_not_supported
[10:05:12] ================= [PASSED] drm_framebuffer =================
[10:05:12] ================ drm_gem_shmem (8 subtests) ================
[10:05:12] [PASSED] drm_gem_shmem_test_obj_create
[10:05:12] [PASSED] drm_gem_shmem_test_obj_create_private
[10:05:12] [PASSED] drm_gem_shmem_test_pin_pages
[10:05:12] [PASSED] drm_gem_shmem_test_vmap
[10:05:12] [PASSED] drm_gem_shmem_test_get_sg_table
[10:05:12] [PASSED] drm_gem_shmem_test_get_pages_sgt
[10:05:12] [PASSED] drm_gem_shmem_test_madvise
[10:05:12] [PASSED] drm_gem_shmem_test_purge
[10:05:12] ================== [PASSED] drm_gem_shmem ==================
[10:05:12] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[10:05:12] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[10:05:12] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[10:05:12] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[10:05:12] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[10:05:12] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[10:05:12] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[10:05:12] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[10:05:12] [PASSED] Automatic
[10:05:12] [PASSED] Full
[10:05:12] [PASSED] Limited 16:235
[10:05:12] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[10:05:12] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[10:05:12] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[10:05:12] [PASSED] drm_test_check_disable_connector
[10:05:12] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[10:05:12] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[10:05:12] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[10:05:12] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[10:05:12] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[10:05:12] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[10:05:12] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[10:05:12] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[10:05:12] [PASSED] drm_test_check_output_bpc_dvi
[10:05:12] [PASSED] drm_test_check_output_bpc_format_vic_1
[10:05:12] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[10:05:12] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[10:05:12] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[10:05:12] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[10:05:12] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[10:05:12] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[10:05:12] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[10:05:12] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[10:05:12] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[10:05:12] [PASSED] drm_test_check_broadcast_rgb_value
[10:05:12] [PASSED] drm_test_check_bpc_8_value
[10:05:12] [PASSED] drm_test_check_bpc_10_value
[10:05:12] [PASSED] drm_test_check_bpc_12_value
[10:05:12] [PASSED] drm_test_check_format_value
[10:05:12] [PASSED] drm_test_check_tmds_char_value
[10:05:12] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[10:05:12] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[10:05:12] [PASSED] drm_test_check_mode_valid
[10:05:12] [PASSED] drm_test_check_mode_valid_reject
[10:05:12] [PASSED] drm_test_check_mode_valid_reject_rate
[10:05:12] [PASSED] drm_test_check_mode_valid_reject_max_clock
[10:05:12] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[10:05:12] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[10:05:12] [PASSED] drm_test_check_infoframes
[10:05:12] [PASSED] drm_test_check_reject_avi_infoframe
[10:05:12] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[10:05:12] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[10:05:12] [PASSED] drm_test_check_reject_audio_infoframe
[10:05:12] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[10:05:12] ================= drm_managed (2 subtests) =================
[10:05:12] [PASSED] drm_test_managed_release_action
[10:05:12] [PASSED] drm_test_managed_run_action
[10:05:12] =================== [PASSED] drm_managed ===================
[10:05:12] =================== drm_mm (6 subtests) ====================
[10:05:12] [PASSED] drm_test_mm_init
[10:05:12] [PASSED] drm_test_mm_debug
[10:05:12] [PASSED] drm_test_mm_align32
[10:05:12] [PASSED] drm_test_mm_align64
[10:05:12] [PASSED] drm_test_mm_lowest
[10:05:12] [PASSED] drm_test_mm_highest
[10:05:12] ===================== [PASSED] drm_mm ======================
[10:05:12] ============= drm_modes_analog_tv (5 subtests) =============
[10:05:12] [PASSED] drm_test_modes_analog_tv_mono_576i
[10:05:12] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[10:05:12] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[10:05:12] [PASSED] drm_test_modes_analog_tv_pal_576i
[10:05:12] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[10:05:12] =============== [PASSED] drm_modes_analog_tv ===============
[10:05:12] ============== drm_plane_helper (2 subtests) ===============
[10:05:12] =============== drm_test_check_plane_state ================
[10:05:12] [PASSED] clipping_simple
[10:05:12] [PASSED] clipping_rotate_reflect
[10:05:12] [PASSED] positioning_simple
[10:05:12] [PASSED] upscaling
[10:05:12] [PASSED] downscaling
[10:05:12] [PASSED] rounding1
[10:05:12] [PASSED] rounding2
[10:05:12] [PASSED] rounding3
[10:05:12] [PASSED] rounding4
[10:05:12] =========== [PASSED] drm_test_check_plane_state ============
[10:05:12] =========== drm_test_check_invalid_plane_state ============
[10:05:12] [PASSED] positioning_invalid
[10:05:12] [PASSED] upscaling_invalid
[10:05:12] [PASSED] downscaling_invalid
[10:05:12] ======= [PASSED] drm_test_check_invalid_plane_state ========
[10:05:12] ================ [PASSED] drm_plane_helper =================
[10:05:12] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[10:05:12] ====== drm_test_connector_helper_tv_get_modes_check =======
[10:05:12] [PASSED] None
[10:05:12] [PASSED] PAL
[10:05:12] [PASSED] NTSC
[10:05:12] [PASSED] Both, NTSC Default
[10:05:12] [PASSED] Both, PAL Default
[10:05:12] [PASSED] Both, NTSC Default, with PAL on command-line
[10:05:12] [PASSED] Both, PAL Default, with NTSC on command-line
[10:05:12] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[10:05:12] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[10:05:12] ================== drm_rect (9 subtests) ===================
[10:05:12] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[10:05:12] [PASSED] drm_test_rect_clip_scaled_not_clipped
[10:05:12] [PASSED] drm_test_rect_clip_scaled_clipped
[10:05:12] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[10:05:12] ================= drm_test_rect_intersect =================
[10:05:12] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[10:05:12] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[10:05:12] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[10:05:12] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[10:05:12] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[10:05:12] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[10:05:12] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[10:05:12] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[10:05:12] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[10:05:12] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[10:05:12] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[10:05:12] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[10:05:12] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[10:05:12] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[10:05:12] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[10:05:12] ============= [PASSED] drm_test_rect_intersect =============
[10:05:12] ================ drm_test_rect_calc_hscale ================
[10:05:12] [PASSED] normal use
[10:05:12] [PASSED] out of max range
[10:05:12] [PASSED] out of min range
[10:05:12] [PASSED] zero dst
[10:05:12] [PASSED] negative src
[10:05:12] [PASSED] negative dst
[10:05:12] ============ [PASSED] drm_test_rect_calc_hscale ============
[10:05:12] ================ drm_test_rect_calc_vscale ================
[10:05:12] [PASSED] normal use
[10:05:12] [PASSED] out of max range
[10:05:12] [PASSED] out of min range
[10:05:12] [PASSED] zero dst
[10:05:12] [PASSED] negative src
[10:05:12] [PASSED] negative dst
stty: 'standard input': Inappropriate ioctl for device
[10:05:12] ============ [PASSED] drm_test_rect_calc_vscale ============
[10:05:12] ================== drm_test_rect_rotate ===================
[10:05:12] [PASSED] reflect-x
[10:05:12] [PASSED] reflect-y
[10:05:12] [PASSED] rotate-0
[10:05:12] [PASSED] rotate-90
[10:05:12] [PASSED] rotate-180
[10:05:12] [PASSED] rotate-270
[10:05:12] ============== [PASSED] drm_test_rect_rotate ===============
[10:05:12] ================ drm_test_rect_rotate_inv =================
[10:05:12] [PASSED] reflect-x
[10:05:12] [PASSED] reflect-y
[10:05:12] [PASSED] rotate-0
[10:05:12] [PASSED] rotate-90
[10:05:12] [PASSED] rotate-180
[10:05:12] [PASSED] rotate-270
[10:05:12] ============ [PASSED] drm_test_rect_rotate_inv =============
[10:05:12] ==================== [PASSED] drm_rect =====================
[10:05:12] ============ drm_sysfb_modeset_test (1 subtest) ============
[10:05:12] ============ drm_test_sysfb_build_fourcc_list =============
[10:05:12] [PASSED] no native formats
[10:05:12] [PASSED] XRGB8888 as native format
[10:05:12] [PASSED] remove duplicates
[10:05:12] [PASSED] convert alpha formats
[10:05:12] [PASSED] random formats
[10:05:12] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[10:05:12] ============= [PASSED] drm_sysfb_modeset_test ==============
[10:05:12] ================== drm_fixp (2 subtests) ===================
[10:05:12] [PASSED] drm_test_int2fixp
[10:05:12] [PASSED] drm_test_sm2fixp
[10:05:12] ==================== [PASSED] drm_fixp =====================
[10:05:12] ============================================================
[10:05:12] Testing complete. Ran 621 tests: passed: 621
[10:05:12] Elapsed time: 26.027s total, 1.649s configuring, 24.208s building, 0.139s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[10:05:12] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:05:13] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[10:05:23] Starting KUnit Kernel (1/1)...
[10:05:23] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:05:23] ================= ttm_device (5 subtests) ==================
[10:05:23] [PASSED] ttm_device_init_basic
[10:05:23] [PASSED] ttm_device_init_multiple
[10:05:23] [PASSED] ttm_device_fini_basic
[10:05:23] [PASSED] ttm_device_init_no_vma_man
[10:05:23] ================== ttm_device_init_pools ==================
[10:05:23] [PASSED] No DMA allocations, no DMA32 required
[10:05:23] [PASSED] DMA allocations, DMA32 required
[10:05:23] [PASSED] No DMA allocations, DMA32 required
[10:05:23] [PASSED] DMA allocations, no DMA32 required
[10:05:23] ============== [PASSED] ttm_device_init_pools ==============
[10:05:23] =================== [PASSED] ttm_device ====================
[10:05:23] ================== ttm_pool (8 subtests) ===================
[10:05:23] ================== ttm_pool_alloc_basic ===================
[10:05:23] [PASSED] One page
[10:05:23] [PASSED] More than one page
[10:05:23] [PASSED] Above the allocation limit
[10:05:23] [PASSED] One page, with coherent DMA mappings enabled
[10:05:23] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[10:05:23] ============== [PASSED] ttm_pool_alloc_basic ===============
[10:05:23] ============== ttm_pool_alloc_basic_dma_addr ==============
[10:05:23] [PASSED] One page
[10:05:23] [PASSED] More than one page
[10:05:23] [PASSED] Above the allocation limit
[10:05:23] [PASSED] One page, with coherent DMA mappings enabled
[10:05:23] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[10:05:23] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[10:05:23] [PASSED] ttm_pool_alloc_order_caching_match
[10:05:23] [PASSED] ttm_pool_alloc_caching_mismatch
[10:05:23] [PASSED] ttm_pool_alloc_order_mismatch
[10:05:23] [PASSED] ttm_pool_free_dma_alloc
[10:05:23] [PASSED] ttm_pool_free_no_dma_alloc
[10:05:23] [PASSED] ttm_pool_fini_basic
[10:05:23] ==================== [PASSED] ttm_pool =====================
[10:05:23] ================ ttm_resource (8 subtests) =================
[10:05:23] ================= ttm_resource_init_basic =================
[10:05:23] [PASSED] Init resource in TTM_PL_SYSTEM
[10:05:23] [PASSED] Init resource in TTM_PL_VRAM
[10:05:23] [PASSED] Init resource in a private placement
[10:05:23] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[10:05:23] ============= [PASSED] ttm_resource_init_basic =============
[10:05:23] [PASSED] ttm_resource_init_pinned
[10:05:23] [PASSED] ttm_resource_fini_basic
[10:05:23] [PASSED] ttm_resource_manager_init_basic
[10:05:23] [PASSED] ttm_resource_manager_usage_basic
[10:05:23] [PASSED] ttm_resource_manager_set_used_basic
[10:05:23] [PASSED] ttm_sys_man_alloc_basic
[10:05:23] [PASSED] ttm_sys_man_free_basic
[10:05:23] ================== [PASSED] ttm_resource ===================
[10:05:23] =================== ttm_tt (15 subtests) ===================
[10:05:23] ==================== ttm_tt_init_basic ====================
[10:05:23] [PASSED] Page-aligned size
[10:05:23] [PASSED] Extra pages requested
[10:05:23] ================ [PASSED] ttm_tt_init_basic ================
[10:05:23] [PASSED] ttm_tt_init_misaligned
[10:05:23] [PASSED] ttm_tt_fini_basic
[10:05:23] [PASSED] ttm_tt_fini_sg
[10:05:23] [PASSED] ttm_tt_fini_shmem
[10:05:23] [PASSED] ttm_tt_create_basic
[10:05:23] [PASSED] ttm_tt_create_invalid_bo_type
[10:05:23] [PASSED] ttm_tt_create_ttm_exists
[10:05:23] [PASSED] ttm_tt_create_failed
[10:05:23] [PASSED] ttm_tt_destroy_basic
[10:05:23] [PASSED] ttm_tt_populate_null_ttm
[10:05:23] [PASSED] ttm_tt_populate_populated_ttm
[10:05:23] [PASSED] ttm_tt_unpopulate_basic
[10:05:23] [PASSED] ttm_tt_unpopulate_empty_ttm
[10:05:23] [PASSED] ttm_tt_swapin_basic
[10:05:23] ===================== [PASSED] ttm_tt ======================
[10:05:23] =================== ttm_bo (14 subtests) ===================
[10:05:23] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[10:05:23] [PASSED] Cannot be interrupted and sleeps
[10:05:23] [PASSED] Cannot be interrupted, locks straight away
[10:05:23] [PASSED] Can be interrupted, sleeps
[10:05:23] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[10:05:23] [PASSED] ttm_bo_reserve_locked_no_sleep
[10:05:23] [PASSED] ttm_bo_reserve_no_wait_ticket
[10:05:23] [PASSED] ttm_bo_reserve_double_resv
[10:05:23] [PASSED] ttm_bo_reserve_interrupted
[10:05:23] [PASSED] ttm_bo_reserve_deadlock
[10:05:23] [PASSED] ttm_bo_unreserve_basic
[10:05:23] [PASSED] ttm_bo_unreserve_pinned
[10:05:23] [PASSED] ttm_bo_unreserve_bulk
[10:05:23] [PASSED] ttm_bo_fini_basic
[10:05:23] [PASSED] ttm_bo_fini_shared_resv
[10:05:23] [PASSED] ttm_bo_pin_basic
[10:05:23] [PASSED] ttm_bo_pin_unpin_resource
[10:05:23] [PASSED] ttm_bo_multiple_pin_one_unpin
[10:05:23] ===================== [PASSED] ttm_bo ======================
[10:05:23] ============== ttm_bo_validate (21 subtests) ===============
[10:05:23] ============== ttm_bo_init_reserved_sys_man ===============
[10:05:23] [PASSED] Buffer object for userspace
[10:05:23] [PASSED] Kernel buffer object
[10:05:23] [PASSED] Shared buffer object
[10:05:23] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[10:05:23] ============== ttm_bo_init_reserved_mock_man ==============
[10:05:23] [PASSED] Buffer object for userspace
[10:05:23] [PASSED] Kernel buffer object
[10:05:23] [PASSED] Shared buffer object
[10:05:23] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[10:05:23] [PASSED] ttm_bo_init_reserved_resv
[10:05:23] ================== ttm_bo_validate_basic ==================
[10:05:23] [PASSED] Buffer object for userspace
[10:05:23] [PASSED] Kernel buffer object
[10:05:23] [PASSED] Shared buffer object
[10:05:23] ============== [PASSED] ttm_bo_validate_basic ==============
[10:05:23] [PASSED] ttm_bo_validate_invalid_placement
[10:05:23] ============= ttm_bo_validate_same_placement ==============
[10:05:23] [PASSED] System manager
[10:05:23] [PASSED] VRAM manager
[10:05:23] ========= [PASSED] ttm_bo_validate_same_placement ==========
[10:05:23] [PASSED] ttm_bo_validate_failed_alloc
[10:05:23] [PASSED] ttm_bo_validate_pinned
[10:05:23] [PASSED] ttm_bo_validate_busy_placement
[10:05:23] ================ ttm_bo_validate_multihop =================
[10:05:23] [PASSED] Buffer object for userspace
[10:05:23] [PASSED] Kernel buffer object
[10:05:23] [PASSED] Shared buffer object
[10:05:23] ============ [PASSED] ttm_bo_validate_multihop =============
[10:05:23] ========== ttm_bo_validate_no_placement_signaled ==========
[10:05:23] [PASSED] Buffer object in system domain, no page vector
[10:05:23] [PASSED] Buffer object in system domain with an existing page vector
[10:05:23] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[10:05:23] ======== ttm_bo_validate_no_placement_not_signaled ========
[10:05:23] [PASSED] Buffer object for userspace
[10:05:23] [PASSED] Kernel buffer object
[10:05:23] [PASSED] Shared buffer object
[10:05:23] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[10:05:23] [PASSED] ttm_bo_validate_move_fence_signaled
[10:05:23] ========= ttm_bo_validate_move_fence_not_signaled =========
[10:05:23] [PASSED] Waits for GPU
[10:05:23] [PASSED] Tries to lock straight away
[10:05:23] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[10:05:23] [PASSED] ttm_bo_validate_happy_evict
[10:05:23] [PASSED] ttm_bo_validate_all_pinned_evict
[10:05:23] [PASSED] ttm_bo_validate_allowed_only_evict
[10:05:23] [PASSED] ttm_bo_validate_deleted_evict
[10:05:23] [PASSED] ttm_bo_validate_busy_domain_evict
[10:05:23] [PASSED] ttm_bo_validate_evict_gutting
[10:05:23] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[10:05:23] ================= [PASSED] ttm_bo_validate =================
[10:05:23] ============================================================
[10:05:23] Testing complete. Ran 101 tests: passed: 101
[10:05:23] Elapsed time: 11.387s total, 1.724s configuring, 9.397s building, 0.223s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 0/4] Add support for clear counter and error event in DRM RAS
@ 2026-03-11 10:29 Riana Tauro
2026-03-11 10:04 ` ✗ CI.checkpatch: warning for " Patchwork
` (7 more replies)
0 siblings, 8 replies; 16+ messages in thread
From: Riana Tauro @ 2026-03-11 10:29 UTC (permalink / raw)
To: intel-xe, dri-devel, netdev
Cc: aravind.iddamsetty, anshuman.gupta, rodrigo.vivi, joonas.lahtinen,
simona.vetter, airlied, pratik.bari, joshua.santosh.ranjan,
ashwin.kumar.kulkarni, shubham.kumar, ravi.kishore.koppuravuri,
raag.jadav, anvesh.bakwad, maarten.lankhorst, Riana Tauro
Clear Error Counter : Add clear-error-counter command to DRM RAS to clear
a specific error counter of a node. Implement the callback in XE driver
to demonstrate usage.
Usage with both get-error-counter and clear-error-counter:
$ sudo ynl --family drm_ras --dump get-error-counter --json '{"node-id":1}'
[{'error-id': 1, 'error-name': 'core-compute', 'error-value': 0},
{'error-id': 2, 'error-name': 'soc-internal', 'error-value': 3}]
$ sudo ynl --family drm_ras --do clear-error-counter --json \
'{"node-id":1, "error-id":2}'
None
$ sudo ynl --family drm_ras --dump get-error-counter --json '{"node-id":1}'
[{'error-id': 1, 'error-name': 'core-compute', 'error-value': 0},
{'error-id': 2, 'error-name': 'soc-internal', 'error-value': 0}]
Error Event Support: Introduce `error-event` support in DRM RAS to notify
userspace whenever an error occurs.
Each notification includes the node-id and error-id to identify
the source and type of the error. To receive notifications,
userspace must subscribe to the 'error-notify' multicast group.
Userspace can receive the event by subscribing to multicast group.
$ sudo ynl --family drm_ras --subscribe error-notify
{'msg': {'error-id': 2, 'node-id': 1}, 'name': 'error-event'}
Riana Tauro (4):
drm/drm_ras: Add clear-error-counter netlink command to drm_ras
drm/xe/xe_drm_ras: Add support for clear-error-counter in XE DRM RAS
drm/drm_ras: Add DRM RAS netlink error event notification
drm/xe/xe_drm_ras: Add error-event support in XE DRM RAS
Documentation/gpu/drm-ras.rst | 17 +++++
Documentation/netlink/specs/drm_ras.yaml | 27 ++++++-
drivers/gpu/drm/drm_ras.c | 91 +++++++++++++++++++++++-
drivers/gpu/drm/drm_ras_nl.c | 19 +++++
drivers/gpu/drm/drm_ras_nl.h | 6 ++
drivers/gpu/drm/xe/xe_drm_ras.c | 52 +++++++++++++-
drivers/gpu/drm/xe/xe_drm_ras.h | 7 ++
drivers/gpu/drm/xe/xe_hw_error.c | 5 ++
include/drm/drm_ras.h | 13 ++++
include/uapi/drm/drm_ras.h | 4 ++
10 files changed, 237 insertions(+), 4 deletions(-)
--
2.47.1
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 1/4] drm/drm_ras: Add clear-error-counter netlink command to drm_ras
2026-03-11 10:29 [PATCH 0/4] Add support for clear counter and error event in DRM RAS Riana Tauro
2026-03-11 10:04 ` ✗ CI.checkpatch: warning for " Patchwork
2026-03-11 10:05 ` ✓ CI.KUnit: success " Patchwork
@ 2026-03-11 10:29 ` Riana Tauro
2026-03-12 0:29 ` Jakub Kicinski
2026-03-25 12:40 ` Raag Jadav
2026-03-11 10:29 ` [PATCH 2/4] drm/xe/xe_drm_ras: Add support for clear-error-counter in XE DRM RAS Riana Tauro
` (4 subsequent siblings)
7 siblings, 2 replies; 16+ messages in thread
From: Riana Tauro @ 2026-03-11 10:29 UTC (permalink / raw)
To: intel-xe, dri-devel, netdev
Cc: aravind.iddamsetty, anshuman.gupta, rodrigo.vivi, joonas.lahtinen,
simona.vetter, airlied, pratik.bari, joshua.santosh.ranjan,
ashwin.kumar.kulkarni, shubham.kumar, ravi.kishore.koppuravuri,
raag.jadav, anvesh.bakwad, maarten.lankhorst, Riana Tauro,
Jakub Kicinski, Zack McKevitt, Lijo Lazar, Hawking Zhang,
David S. Miller, Paolo Abeni, Eric Dumazet
Introduce a new 'clear-error-counter' DRM RAS command to reset the counter
value for a specific error counter of a given node.
The command is a 'do' netlink request with 'node-id' and 'error-id'
as parameters with no additional response payload.
Usage
$ sudo ynl --family drm_ras --do clear-error-counter --json \
'{"node-id":1, "error-id":1}'
None
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Zack McKevitt <zachary.mckevitt@oss.qualcomm.com>
Cc: Lijo Lazar <lijo.lazar@amd.com>
Cc: Hawking Zhang <Hawking.Zhang@amd.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Eric Dumazet <edumazet@google.com>
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
---
Documentation/gpu/drm-ras.rst | 8 +++++
Documentation/netlink/specs/drm_ras.yaml | 13 ++++++-
drivers/gpu/drm/drm_ras.c | 43 +++++++++++++++++++++++-
drivers/gpu/drm/drm_ras_nl.c | 13 +++++++
drivers/gpu/drm/drm_ras_nl.h | 2 ++
include/drm/drm_ras.h | 11 ++++++
include/uapi/drm/drm_ras.h | 1 +
7 files changed, 89 insertions(+), 2 deletions(-)
diff --git a/Documentation/gpu/drm-ras.rst b/Documentation/gpu/drm-ras.rst
index 70b246a78fc8..4636e68f5678 100644
--- a/Documentation/gpu/drm-ras.rst
+++ b/Documentation/gpu/drm-ras.rst
@@ -52,6 +52,8 @@ User space tools can:
as a parameter.
* Query specific error counter values with the ``get-error-counter`` command, using both
``node-id`` and ``error-id`` as parameters.
+* Clear specific error counters with the ``clear-error-counter`` command, using both
+ ``node-id`` and ``error-id`` as parameters.
YAML-based Interface
--------------------
@@ -101,3 +103,9 @@ Example: Query an error counter for a given node
sudo ynl --family drm_ras --do get-error-counter --json '{"node-id":0, "error-id":1}'
{'error-id': 1, 'error-name': 'error_name1', 'error-value': 0}
+Example: Clear an error counter for a given node
+
+.. code-block:: bash
+
+ sudo ynl --family drm_ras --do clear-error-counter --json '{"node-id":0, "error-id":1}'
+ None
diff --git a/Documentation/netlink/specs/drm_ras.yaml b/Documentation/netlink/specs/drm_ras.yaml
index 79af25dac3c5..e113056f8c01 100644
--- a/Documentation/netlink/specs/drm_ras.yaml
+++ b/Documentation/netlink/specs/drm_ras.yaml
@@ -99,7 +99,7 @@ operations:
flags: [admin-perm]
do:
request:
- attributes:
+ attributes: &id-attrs
- node-id
- error-id
reply:
@@ -113,3 +113,14 @@ operations:
- node-id
reply:
attributes: *errorinfo
+ -
+ name: clear-error-counter
+ doc: >-
+ Clear error counter for a given node.
+ The request includes the error-id and node-id of the
+ counter to be cleared.
+ attribute-set: error-counter-attrs
+ flags: [admin-perm]
+ do:
+ request:
+ attributes: *id-attrs
diff --git a/drivers/gpu/drm/drm_ras.c b/drivers/gpu/drm/drm_ras.c
index b2fa5ab86d87..d6eab29a1394 100644
--- a/drivers/gpu/drm/drm_ras.c
+++ b/drivers/gpu/drm/drm_ras.c
@@ -26,7 +26,7 @@
* efficient lookup by ID. Nodes can be registered or unregistered
* dynamically at runtime.
*
- * A Generic Netlink family `drm_ras` exposes two main operations to
+ * A Generic Netlink family `drm_ras` exposes the below operations to
* userspace:
*
* 1. LIST_NODES: Dump all currently registered RAS nodes.
@@ -37,6 +37,10 @@
* Returns all counters of a node if only Node ID is provided or specific
* error counters.
*
+ * 3. CLEAR_ERROR_COUNTER: Clear error counter of a given node.
+ * Userspace must provide Node ID, Error ID.
+ * Clears specific error counter of a node if supported.
+ *
* Node registration:
*
* - drm_ras_node_register(): Registers a new node and assigns
@@ -66,6 +70,8 @@
* operation, fetching all counters from a specific node.
* - drm_ras_nl_get_error_counter_doit(): Implements the GET_ERROR_COUNTER doit
* operation, fetching a counter value from a specific node.
+ * - drm_ras_nl_clear_error_counter_doit(): Implements the CLEAR_ERROR_COUNTER doit
+ * operation, clearing a counter value from a specific node.
*/
static DEFINE_XARRAY_ALLOC(drm_ras_xa);
@@ -314,6 +320,41 @@ int drm_ras_nl_get_error_counter_doit(struct sk_buff *skb,
return doit_reply_value(info, node_id, error_id);
}
+/**
+ * drm_ras_nl_clear_error_counter_doit() - Clear an error counter of a node
+ * @skb: Netlink message buffer
+ * @info: Generic Netlink info containing attributes of the request
+ *
+ * Extracts the node ID and error ID from the netlink attributes and
+ * clears the current value.
+ *
+ * Return: 0 on success, or negative errno on failure.
+ */
+int drm_ras_nl_clear_error_counter_doit(struct sk_buff *skb,
+ struct genl_info *info)
+{
+ struct drm_ras_node *node;
+ u32 node_id, error_id;
+
+ if (!info->attrs ||
+ GENL_REQ_ATTR_CHECK(info, DRM_RAS_A_ERROR_COUNTER_ATTRS_NODE_ID) ||
+ GENL_REQ_ATTR_CHECK(info, DRM_RAS_A_ERROR_COUNTER_ATTRS_ERROR_ID))
+ return -EINVAL;
+
+ node_id = nla_get_u32(info->attrs[DRM_RAS_A_ERROR_COUNTER_ATTRS_NODE_ID]);
+ error_id = nla_get_u32(info->attrs[DRM_RAS_A_ERROR_COUNTER_ATTRS_ERROR_ID]);
+
+ node = xa_load(&drm_ras_xa, node_id);
+ if (!node || !node->clear_error_counter)
+ return -ENOENT;
+
+ if (error_id < node->error_counter_range.first ||
+ error_id > node->error_counter_range.last)
+ return -EINVAL;
+
+ return node->clear_error_counter(node, error_id);
+}
+
/**
* drm_ras_node_register() - Register a new RAS node
* @node: Node structure to register
diff --git a/drivers/gpu/drm/drm_ras_nl.c b/drivers/gpu/drm/drm_ras_nl.c
index 16803d0c4a44..dea1c1b2494e 100644
--- a/drivers/gpu/drm/drm_ras_nl.c
+++ b/drivers/gpu/drm/drm_ras_nl.c
@@ -22,6 +22,12 @@ static const struct nla_policy drm_ras_get_error_counter_dump_nl_policy[DRM_RAS_
[DRM_RAS_A_ERROR_COUNTER_ATTRS_NODE_ID] = { .type = NLA_U32, },
};
+/* DRM_RAS_CMD_CLEAR_ERROR_COUNTER - do */
+static const struct nla_policy drm_ras_clear_error_counter_nl_policy[DRM_RAS_A_ERROR_COUNTER_ATTRS_ERROR_ID + 1] = {
+ [DRM_RAS_A_ERROR_COUNTER_ATTRS_NODE_ID] = { .type = NLA_U32, },
+ [DRM_RAS_A_ERROR_COUNTER_ATTRS_ERROR_ID] = { .type = NLA_U32, },
+};
+
/* Ops table for drm_ras */
static const struct genl_split_ops drm_ras_nl_ops[] = {
{
@@ -43,6 +49,13 @@ static const struct genl_split_ops drm_ras_nl_ops[] = {
.maxattr = DRM_RAS_A_ERROR_COUNTER_ATTRS_NODE_ID,
.flags = GENL_ADMIN_PERM | GENL_CMD_CAP_DUMP,
},
+ {
+ .cmd = DRM_RAS_CMD_CLEAR_ERROR_COUNTER,
+ .doit = drm_ras_nl_clear_error_counter_doit,
+ .policy = drm_ras_clear_error_counter_nl_policy,
+ .maxattr = DRM_RAS_A_ERROR_COUNTER_ATTRS_ERROR_ID,
+ .flags = GENL_ADMIN_PERM | GENL_CMD_CAP_DO,
+ },
};
struct genl_family drm_ras_nl_family __ro_after_init = {
diff --git a/drivers/gpu/drm/drm_ras_nl.h b/drivers/gpu/drm/drm_ras_nl.h
index 06ccd9342773..a398643572a5 100644
--- a/drivers/gpu/drm/drm_ras_nl.h
+++ b/drivers/gpu/drm/drm_ras_nl.h
@@ -18,6 +18,8 @@ int drm_ras_nl_get_error_counter_doit(struct sk_buff *skb,
struct genl_info *info);
int drm_ras_nl_get_error_counter_dumpit(struct sk_buff *skb,
struct netlink_callback *cb);
+int drm_ras_nl_clear_error_counter_doit(struct sk_buff *skb,
+ struct genl_info *info);
extern struct genl_family drm_ras_nl_family;
diff --git a/include/drm/drm_ras.h b/include/drm/drm_ras.h
index 5d50209e51db..f2a787bc4f64 100644
--- a/include/drm/drm_ras.h
+++ b/include/drm/drm_ras.h
@@ -58,6 +58,17 @@ struct drm_ras_node {
int (*query_error_counter)(struct drm_ras_node *node, u32 error_id,
const char **name, u32 *val);
+ /**
+ * @clear_error_counter:
+ *
+ * This callback is used by drm_ras to clear a specific error counter.
+ * Driver should implement this callback to support clearing error counters
+ * of a node.
+ *
+ * Returns: 0 on success, negative error code on failure.
+ */
+ int (*clear_error_counter)(struct drm_ras_node *node, u32 error_id);
+
/** @priv: Driver private data */
void *priv;
};
diff --git a/include/uapi/drm/drm_ras.h b/include/uapi/drm/drm_ras.h
index 5f40fa5b869d..218a3ee86805 100644
--- a/include/uapi/drm/drm_ras.h
+++ b/include/uapi/drm/drm_ras.h
@@ -41,6 +41,7 @@ enum {
enum {
DRM_RAS_CMD_LIST_NODES = 1,
DRM_RAS_CMD_GET_ERROR_COUNTER,
+ DRM_RAS_CMD_CLEAR_ERROR_COUNTER,
__DRM_RAS_CMD_MAX,
DRM_RAS_CMD_MAX = (__DRM_RAS_CMD_MAX - 1)
--
2.47.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 2/4] drm/xe/xe_drm_ras: Add support for clear-error-counter in XE DRM RAS
2026-03-11 10:29 [PATCH 0/4] Add support for clear counter and error event in DRM RAS Riana Tauro
` (2 preceding siblings ...)
2026-03-11 10:29 ` [PATCH 1/4] drm/drm_ras: Add clear-error-counter netlink command to drm_ras Riana Tauro
@ 2026-03-11 10:29 ` Riana Tauro
2026-03-12 10:17 ` Raag Jadav
2026-03-11 10:29 ` [PATCH 3/4] drm/drm_ras: Add DRM RAS netlink error event notification Riana Tauro
` (3 subsequent siblings)
7 siblings, 1 reply; 16+ messages in thread
From: Riana Tauro @ 2026-03-11 10:29 UTC (permalink / raw)
To: intel-xe, dri-devel, netdev
Cc: aravind.iddamsetty, anshuman.gupta, rodrigo.vivi, joonas.lahtinen,
simona.vetter, airlied, pratik.bari, joshua.santosh.ranjan,
ashwin.kumar.kulkarni, shubham.kumar, ravi.kishore.koppuravuri,
raag.jadav, anvesh.bakwad, maarten.lankhorst, Riana Tauro
Add support for clear-error-counter command in XE DRM RAS.
This resets the counter value.
Usage:
$ sudo ynl --family drm_ras --do clear-error-counter --json \
'{"node-id":1, "error-id":1}'
None
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
---
drivers/gpu/drm/xe/xe_drm_ras.c | 35 +++++++++++++++++++++++++++++++--
1 file changed, 33 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c b/drivers/gpu/drm/xe/xe_drm_ras.c
index e07dc23a155e..c21c8b428de6 100644
--- a/drivers/gpu/drm/xe/xe_drm_ras.c
+++ b/drivers/gpu/drm/xe/xe_drm_ras.c
@@ -27,6 +27,16 @@ static int hw_query_error_counter(struct xe_drm_ras_counter *info,
return 0;
}
+static int hw_clear_error_counter(struct xe_drm_ras_counter *info, u32 error_id)
+{
+ if (!info || !info[error_id].name)
+ return -ENOENT;
+
+ atomic_set(&info[error_id].counter, 0);
+
+ return 0;
+}
+
static int query_uncorrectable_error_counter(struct drm_ras_node *ep, u32 error_id,
const char **name, u32 *val)
{
@@ -37,6 +47,15 @@ static int query_uncorrectable_error_counter(struct drm_ras_node *ep, u32 error_
return hw_query_error_counter(info, error_id, name, val);
}
+static int clear_uncorrectable_error_counter(struct drm_ras_node *node, u32 error_id)
+{
+ struct xe_device *xe = node->priv;
+ struct xe_drm_ras *ras = &xe->ras;
+ struct xe_drm_ras_counter *info = ras->info[DRM_XE_RAS_ERR_SEV_UNCORRECTABLE];
+
+ return hw_clear_error_counter(info, error_id);
+}
+
static int query_correctable_error_counter(struct drm_ras_node *ep, u32 error_id,
const char **name, u32 *val)
{
@@ -47,6 +66,15 @@ static int query_correctable_error_counter(struct drm_ras_node *ep, u32 error_id
return hw_query_error_counter(info, error_id, name, val);
}
+static int clear_correctable_error_counter(struct drm_ras_node *node, u32 error_id)
+{
+ struct xe_device *xe = node->priv;
+ struct xe_drm_ras *ras = &xe->ras;
+ struct xe_drm_ras_counter *info = ras->info[DRM_XE_RAS_ERR_SEV_CORRECTABLE];
+
+ return hw_clear_error_counter(info, error_id);
+}
+
static struct xe_drm_ras_counter *allocate_and_copy_counters(struct xe_device *xe)
{
struct xe_drm_ras_counter *counter;
@@ -92,10 +120,13 @@ static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
if (IS_ERR(ras->info[severity]))
return PTR_ERR(ras->info[severity]);
- if (severity == DRM_XE_RAS_ERR_SEV_CORRECTABLE)
+ if (severity == DRM_XE_RAS_ERR_SEV_CORRECTABLE) {
node->query_error_counter = query_correctable_error_counter;
- else
+ node->clear_error_counter = clear_correctable_error_counter;
+ } else {
node->query_error_counter = query_uncorrectable_error_counter;
+ node->clear_error_counter = clear_uncorrectable_error_counter;
+ }
return 0;
}
--
2.47.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 3/4] drm/drm_ras: Add DRM RAS netlink error event notification
2026-03-11 10:29 [PATCH 0/4] Add support for clear counter and error event in DRM RAS Riana Tauro
` (3 preceding siblings ...)
2026-03-11 10:29 ` [PATCH 2/4] drm/xe/xe_drm_ras: Add support for clear-error-counter in XE DRM RAS Riana Tauro
@ 2026-03-11 10:29 ` Riana Tauro
2026-03-25 13:31 ` Raag Jadav
2026-03-11 10:29 ` [PATCH 4/4] drm/xe/xe_drm_ras: Add error-event support in XE DRM RAS Riana Tauro
` (2 subsequent siblings)
7 siblings, 1 reply; 16+ messages in thread
From: Riana Tauro @ 2026-03-11 10:29 UTC (permalink / raw)
To: intel-xe, dri-devel, netdev
Cc: aravind.iddamsetty, anshuman.gupta, rodrigo.vivi, joonas.lahtinen,
simona.vetter, airlied, pratik.bari, joshua.santosh.ranjan,
ashwin.kumar.kulkarni, shubham.kumar, ravi.kishore.koppuravuri,
raag.jadav, anvesh.bakwad, maarten.lankhorst, Riana Tauro,
Jakub Kicinski, Zack McKevitt, Lijo Lazar, Hawking Zhang,
David S. Miller, Paolo Abeni, Eric Dumazet
Add support for asynchronous error notifications in drm_ras.
Define a new `error-event` netlink event and a new multicast
group `error-notify` in drm_ras spec. Each event contains
a node-id and error-id to identify the type and source
of error.
Add drm_ras_error_notify() to trigger this event from drivers.
Userspace can receive this event by subscribing to the
multicast group error-notify.
Example: Using ynl tool
$ sudo ynl --family drm_ras --subscribe error-notify
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Zack McKevitt <zachary.mckevitt@oss.qualcomm.com>
Cc: Lijo Lazar <lijo.lazar@amd.com>
Cc: Hawking Zhang <Hawking.Zhang@amd.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Eric Dumazet <edumazet@google.com>
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
---
Documentation/gpu/drm-ras.rst | 9 +++++
Documentation/netlink/specs/drm_ras.yaml | 14 +++++++
drivers/gpu/drm/drm_ras.c | 48 ++++++++++++++++++++++++
drivers/gpu/drm/drm_ras_nl.c | 6 +++
drivers/gpu/drm/drm_ras_nl.h | 4 ++
include/drm/drm_ras.h | 2 +
include/uapi/drm/drm_ras.h | 3 ++
7 files changed, 86 insertions(+)
diff --git a/Documentation/gpu/drm-ras.rst b/Documentation/gpu/drm-ras.rst
index 4636e68f5678..09b2918f67bd 100644
--- a/Documentation/gpu/drm-ras.rst
+++ b/Documentation/gpu/drm-ras.rst
@@ -54,6 +54,8 @@ User space tools can:
``node-id`` and ``error-id`` as parameters.
* Clear specific error counters with the ``clear-error-counter`` command, using both
``node-id`` and ``error-id`` as parameters.
+* Listen to ``error-event`` notifications for error events by subscribing to the
+ ``error-notify`` multicast group.
YAML-based Interface
--------------------
@@ -109,3 +111,10 @@ Example: Clear an error counter for a given node
sudo ynl --family drm_ras --do clear-error-counter --json '{"node-id":0, "error-id":1}'
None
+
+Example: Listen to error events
+
+.. code-block:: bash
+
+ sudo ynl --family drm_ras --subscribe error-notify
+ {'msg': {'error-id': 1, 'node-id': 1}, 'name': 'error-event'}
diff --git a/Documentation/netlink/specs/drm_ras.yaml b/Documentation/netlink/specs/drm_ras.yaml
index e113056f8c01..4dc047be59e9 100644
--- a/Documentation/netlink/specs/drm_ras.yaml
+++ b/Documentation/netlink/specs/drm_ras.yaml
@@ -124,3 +124,17 @@ operations:
do:
request:
attributes: *id-attrs
+ -
+ name: error-event
+ doc: >-
+ Notify userspace of an error event.
+ The event includes the error-id and node-id of the error
+ that triggered the event.
+ attribute-set: error-counter-attrs
+ event:
+ attributes: *id-attrs
+
+mcast-groups:
+ list:
+ -
+ name: error-notify
diff --git a/drivers/gpu/drm/drm_ras.c b/drivers/gpu/drm/drm_ras.c
index d6eab29a1394..36a3a79cbbea 100644
--- a/drivers/gpu/drm/drm_ras.c
+++ b/drivers/gpu/drm/drm_ras.c
@@ -41,6 +41,10 @@
* Userspace must provide Node ID, Error ID.
* Clears specific error counter of a node if supported.
*
+ * 4. ERROR_EVENT: Notify userspace of an error event.
+ * The event includes the error-id and node-id of the error
+ * that triggered the event.
+ *
* Node registration:
*
* - drm_ras_node_register(): Registers a new node and assigns
@@ -355,6 +359,50 @@ int drm_ras_nl_clear_error_counter_doit(struct sk_buff *skb,
return node->clear_error_counter(node, error_id);
}
+/**
+ * drm_ras_error_notify() - Notify userspace of an error event
+ * @node: Node structure
+ * @error_id: ID of the error counter that triggered the event
+ * @flags: GFP flags for memory allocation
+ *
+ * Notifies userspace of an error event related to a specific RAS node and error counter.
+ */
+void drm_ras_error_notify(struct drm_ras_node *node, u32 error_id, gfp_t flags)
+{
+ struct genl_info info;
+ struct sk_buff *msg;
+ struct nlattr *hdr;
+ int ret;
+
+ genl_info_init_ntf(&info, &drm_ras_nl_family, DRM_RAS_CMD_ERROR_EVENT);
+
+ msg = genlmsg_new(NLMSG_GOODSIZE, flags);
+ if (!msg)
+ return;
+
+ hdr = genlmsg_iput(msg, &info);
+ if (!hdr)
+ goto err_free;
+
+ ret = nla_put_u32(msg, DRM_RAS_A_ERROR_COUNTER_ATTRS_NODE_ID, node->id);
+ if (ret)
+ goto err_cancel;
+
+ ret = nla_put_u32(msg, DRM_RAS_A_ERROR_COUNTER_ATTRS_ERROR_ID, error_id);
+ if (ret)
+ goto err_cancel;
+
+ genlmsg_end(msg, hdr);
+ genlmsg_multicast(&drm_ras_nl_family, msg, 0, DRM_RAS_NLGRP_ERROR_NOTIFY, flags);
+ return;
+
+err_cancel:
+ genlmsg_cancel(msg, hdr);
+err_free:
+ nlmsg_free(msg);
+}
+EXPORT_SYMBOL(drm_ras_error_notify);
+
/**
* drm_ras_node_register() - Register a new RAS node
* @node: Node structure to register
diff --git a/drivers/gpu/drm/drm_ras_nl.c b/drivers/gpu/drm/drm_ras_nl.c
index dea1c1b2494e..ac724bb87a3b 100644
--- a/drivers/gpu/drm/drm_ras_nl.c
+++ b/drivers/gpu/drm/drm_ras_nl.c
@@ -58,6 +58,10 @@ static const struct genl_split_ops drm_ras_nl_ops[] = {
},
};
+static const struct genl_multicast_group drm_ras_nl_mcgrps[] = {
+ [DRM_RAS_NLGRP_ERROR_NOTIFY] = { "error-notify", },
+};
+
struct genl_family drm_ras_nl_family __ro_after_init = {
.name = DRM_RAS_FAMILY_NAME,
.version = DRM_RAS_FAMILY_VERSION,
@@ -66,4 +70,6 @@ struct genl_family drm_ras_nl_family __ro_after_init = {
.module = THIS_MODULE,
.split_ops = drm_ras_nl_ops,
.n_split_ops = ARRAY_SIZE(drm_ras_nl_ops),
+ .mcgrps = drm_ras_nl_mcgrps,
+ .n_mcgrps = ARRAY_SIZE(drm_ras_nl_mcgrps),
};
diff --git a/drivers/gpu/drm/drm_ras_nl.h b/drivers/gpu/drm/drm_ras_nl.h
index a398643572a5..17e1af8cc3b3 100644
--- a/drivers/gpu/drm/drm_ras_nl.h
+++ b/drivers/gpu/drm/drm_ras_nl.h
@@ -21,6 +21,10 @@ int drm_ras_nl_get_error_counter_dumpit(struct sk_buff *skb,
int drm_ras_nl_clear_error_counter_doit(struct sk_buff *skb,
struct genl_info *info);
+enum {
+ DRM_RAS_NLGRP_ERROR_NOTIFY,
+};
+
extern struct genl_family drm_ras_nl_family;
#endif /* _LINUX_DRM_RAS_GEN_H */
diff --git a/include/drm/drm_ras.h b/include/drm/drm_ras.h
index f2a787bc4f64..a2d4f257c9c2 100644
--- a/include/drm/drm_ras.h
+++ b/include/drm/drm_ras.h
@@ -78,9 +78,11 @@ struct drm_device;
#if IS_ENABLED(CONFIG_DRM_RAS)
int drm_ras_node_register(struct drm_ras_node *node);
void drm_ras_node_unregister(struct drm_ras_node *node);
+void drm_ras_error_notify(struct drm_ras_node *node, u32 error_id, gfp_t flags);
#else
static inline int drm_ras_node_register(struct drm_ras_node *node) { return 0; }
static inline void drm_ras_node_unregister(struct drm_ras_node *node) { }
+static inline void drm_ras_error_notify(struct drm_ras_node *node, u32 error_id, gfp_t flags) { }
#endif
#endif
diff --git a/include/uapi/drm/drm_ras.h b/include/uapi/drm/drm_ras.h
index 218a3ee86805..47fafeff93e7 100644
--- a/include/uapi/drm/drm_ras.h
+++ b/include/uapi/drm/drm_ras.h
@@ -42,9 +42,12 @@ enum {
DRM_RAS_CMD_LIST_NODES = 1,
DRM_RAS_CMD_GET_ERROR_COUNTER,
DRM_RAS_CMD_CLEAR_ERROR_COUNTER,
+ DRM_RAS_CMD_ERROR_EVENT,
__DRM_RAS_CMD_MAX,
DRM_RAS_CMD_MAX = (__DRM_RAS_CMD_MAX - 1)
};
+#define DRM_RAS_MCGRP_ERROR_NOTIFY "error-notify"
+
#endif /* _UAPI_LINUX_DRM_RAS_H */
--
2.47.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 4/4] drm/xe/xe_drm_ras: Add error-event support in XE DRM RAS
2026-03-11 10:29 [PATCH 0/4] Add support for clear counter and error event in DRM RAS Riana Tauro
` (4 preceding siblings ...)
2026-03-11 10:29 ` [PATCH 3/4] drm/drm_ras: Add DRM RAS netlink error event notification Riana Tauro
@ 2026-03-11 10:29 ` Riana Tauro
2026-03-11 10:53 ` ✓ Xe.CI.BAT: success for Add support for clear counter and error event in " Patchwork
2026-03-12 0:58 ` ✗ Xe.CI.FULL: failure " Patchwork
7 siblings, 0 replies; 16+ messages in thread
From: Riana Tauro @ 2026-03-11 10:29 UTC (permalink / raw)
To: intel-xe, dri-devel, netdev
Cc: aravind.iddamsetty, anshuman.gupta, rodrigo.vivi, joonas.lahtinen,
simona.vetter, airlied, pratik.bari, joshua.santosh.ranjan,
ashwin.kumar.kulkarni, shubham.kumar, ravi.kishore.koppuravuri,
raag.jadav, anvesh.bakwad, maarten.lankhorst, Riana Tauro
Add error-event support in XE DRM RAS to notify userspace
whenever a GT or SoC error occurs.
$ sudo ynl --family drm_ras --subscribe error-notify
{'msg': {'error-id': 1, 'node-id': 1}, 'name': 'error-event'}
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
---
drivers/gpu/drm/xe/xe_drm_ras.c | 17 +++++++++++++++++
drivers/gpu/drm/xe/xe_drm_ras.h | 7 +++++++
drivers/gpu/drm/xe/xe_hw_error.c | 5 +++++
3 files changed, 29 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c b/drivers/gpu/drm/xe/xe_drm_ras.c
index c21c8b428de6..47c040c80175 100644
--- a/drivers/gpu/drm/xe/xe_drm_ras.c
+++ b/drivers/gpu/drm/xe/xe_drm_ras.c
@@ -181,6 +181,23 @@ static void xe_drm_ras_unregister_nodes(struct drm_device *device, void *arg)
}
}
+/**
+ * xe_drm_ras_notify() - Notify userspace of an error event
+ * @ras: ras structure
+ * @error_id: error id
+ * @severity: error severity
+ * @flags: flags for allocation
+ *
+ * Notifies userspace of an error.
+ */
+void xe_drm_ras_notify(struct xe_drm_ras *ras, u32 error_id,
+ const enum drm_xe_ras_error_severity severity, gfp_t flags)
+{
+ struct drm_ras_node *node = &ras->node[severity];
+
+ drm_ras_error_notify(node, error_id, flags);
+}
+
/**
* xe_drm_ras_init() - Initialize DRM RAS
* @xe: xe device instance
diff --git a/drivers/gpu/drm/xe/xe_drm_ras.h b/drivers/gpu/drm/xe/xe_drm_ras.h
index 5cc8f0124411..ac347d0d63eb 100644
--- a/drivers/gpu/drm/xe/xe_drm_ras.h
+++ b/drivers/gpu/drm/xe/xe_drm_ras.h
@@ -5,11 +5,18 @@
#ifndef XE_DRM_RAS_H_
#define XE_DRM_RAS_H_
+#include <linux/types.h>
+
+#include <drm/xe_drm.h>
+
struct xe_device;
+struct xe_drm_ras;
#define for_each_error_severity(i) \
for (i = 0; i < DRM_XE_RAS_ERR_SEV_MAX; i++)
int xe_drm_ras_init(struct xe_device *xe);
+void xe_drm_ras_notify(struct xe_drm_ras *ras, u32 error_id,
+ const enum drm_xe_ras_error_severity severity, gfp_t flags);
#endif
diff --git a/drivers/gpu/drm/xe/xe_hw_error.c b/drivers/gpu/drm/xe/xe_hw_error.c
index 2a31b430570e..17424e07e72c 100644
--- a/drivers/gpu/drm/xe/xe_hw_error.c
+++ b/drivers/gpu/drm/xe/xe_hw_error.c
@@ -332,6 +332,8 @@ static void gt_hw_error_handler(struct xe_tile *tile, const enum hardware_error
xe_mmio_write32(mmio, ERR_STAT_GT_VECTOR_REG(hw_err, i), vector);
}
+
+ xe_drm_ras_notify(ras, error_id, severity, GFP_ATOMIC);
}
static void soc_slave_ieh_handler(struct xe_tile *tile, const enum hardware_error hw_err, u32 error_id)
@@ -368,6 +370,7 @@ static void soc_hw_error_handler(struct xe_tile *tile, const enum hardware_error
{
const enum drm_xe_ras_error_severity severity = hw_err_to_severity(hw_err);
struct xe_device *xe = tile_to_xe(tile);
+ struct xe_drm_ras *ras = &xe->ras;
struct xe_mmio *mmio = &tile->mmio;
unsigned long master_global_errstat, master_local_errstat;
u32 master, slave, regbit;
@@ -418,6 +421,8 @@ static void soc_hw_error_handler(struct xe_tile *tile, const enum hardware_error
for (i = 0; i < XE_SOC_NUM_IEH; i++)
xe_mmio_write32(mmio, SOC_GSYSEVTCTL_REG(master, slave, i),
(HARDWARE_ERROR_MAX << 1) + 1);
+
+ xe_drm_ras_notify(ras, error_id, severity, GFP_ATOMIC);
}
static void hw_error_source_handler(struct xe_tile *tile, const enum hardware_error hw_err)
--
2.47.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* ✓ Xe.CI.BAT: success for Add support for clear counter and error event in DRM RAS
2026-03-11 10:29 [PATCH 0/4] Add support for clear counter and error event in DRM RAS Riana Tauro
` (5 preceding siblings ...)
2026-03-11 10:29 ` [PATCH 4/4] drm/xe/xe_drm_ras: Add error-event support in XE DRM RAS Riana Tauro
@ 2026-03-11 10:53 ` Patchwork
2026-03-12 0:58 ` ✗ Xe.CI.FULL: failure " Patchwork
7 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2026-03-11 10:53 UTC (permalink / raw)
To: Riana Tauro; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 1915 bytes --]
== Series Details ==
Series: Add support for clear counter and error event in DRM RAS
URL : https://patchwork.freedesktop.org/series/163019/
State : success
== Summary ==
CI Bug Log - changes from xe-4697-c8f35befe90e623b470375bd529506c431fd8a07_BAT -> xe-pw-163019v1_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (13 -> 13)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-163019v1_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_flip@basic-flip-vs-wf_vblank@d-edp1:
- bat-adlp-7: [PASS][1] -> [DMESG-WARN][2] ([Intel XE#7483])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@d-edp1.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@d-edp1.html
#### Possible fixes ####
* igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1:
- bat-adlp-7: [DMESG-WARN][3] ([Intel XE#7483]) -> [PASS][4]
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1.html
[Intel XE#7483]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7483
Build changes
-------------
* Linux: xe-4697-c8f35befe90e623b470375bd529506c431fd8a07 -> xe-pw-163019v1
IGT_8792: 8792
xe-4697-c8f35befe90e623b470375bd529506c431fd8a07: c8f35befe90e623b470375bd529506c431fd8a07
xe-pw-163019v1: 163019v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/index.html
[-- Attachment #2: Type: text/html, Size: 2578 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 1/4] drm/drm_ras: Add clear-error-counter netlink command to drm_ras
2026-03-11 10:29 ` [PATCH 1/4] drm/drm_ras: Add clear-error-counter netlink command to drm_ras Riana Tauro
@ 2026-03-12 0:29 ` Jakub Kicinski
2026-03-25 12:40 ` Raag Jadav
1 sibling, 0 replies; 16+ messages in thread
From: Jakub Kicinski @ 2026-03-12 0:29 UTC (permalink / raw)
To: Riana Tauro
Cc: intel-xe, dri-devel, netdev, aravind.iddamsetty, anshuman.gupta,
rodrigo.vivi, joonas.lahtinen, simona.vetter, airlied,
pratik.bari, joshua.santosh.ranjan, ashwin.kumar.kulkarni,
shubham.kumar, ravi.kishore.koppuravuri, raag.jadav,
anvesh.bakwad, maarten.lankhorst, Zack McKevitt, Lijo Lazar,
Hawking Zhang, David S. Miller, Paolo Abeni, Eric Dumazet
On Wed, 11 Mar 2026 15:59:15 +0530 Riana Tauro wrote:
> Documentation/gpu/drm-ras.rst | 8 +++++
> Documentation/netlink/specs/drm_ras.yaml | 13 ++++++-
Reviewed-by: Jakub Kicinski <kuba@kernel.org>
^ permalink raw reply [flat|nested] 16+ messages in thread
* ✗ Xe.CI.FULL: failure for Add support for clear counter and error event in DRM RAS
2026-03-11 10:29 [PATCH 0/4] Add support for clear counter and error event in DRM RAS Riana Tauro
` (6 preceding siblings ...)
2026-03-11 10:53 ` ✓ Xe.CI.BAT: success for Add support for clear counter and error event in " Patchwork
@ 2026-03-12 0:58 ` Patchwork
7 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2026-03-12 0:58 UTC (permalink / raw)
To: Riana Tauro; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 25983 bytes --]
== Series Details ==
Series: Add support for clear counter and error event in DRM RAS
URL : https://patchwork.freedesktop.org/series/163019/
State : failure
== Summary ==
CI Bug Log - changes from xe-4697-c8f35befe90e623b470375bd529506c431fd8a07_FULL -> xe-pw-163019v1_FULL
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with xe-pw-163019v1_FULL absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in xe-pw-163019v1_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 (2 -> 2)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in xe-pw-163019v1_FULL:
### IGT changes ###
#### Possible regressions ####
* igt@kms_plane_multiple@2x-tiling-x@pipe-a-dp-2-pipe-c-hdmi-a-3:
- shard-bmg: [PASS][1] -> [DMESG-WARN][2] +1 other test dmesg-warn
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-1/igt@kms_plane_multiple@2x-tiling-x@pipe-a-dp-2-pipe-c-hdmi-a-3.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-2/igt@kms_plane_multiple@2x-tiling-x@pipe-a-dp-2-pipe-c-hdmi-a-3.html
Known issues
------------
Here are the changes found in xe-pw-163019v1_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_async_flips@async-flip-with-page-flip-events-linear-atomic@pipe-c-edp-1:
- shard-lnl: [PASS][3] -> [FAIL][4] ([Intel XE#6054]) +3 other tests fail
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-lnl-5/igt@kms_async_flips@async-flip-with-page-flip-events-linear-atomic@pipe-c-edp-1.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-lnl-5/igt@kms_async_flips@async-flip-with-page-flip-events-linear-atomic@pipe-c-edp-1.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
- shard-bmg: NOTRUN -> [SKIP][5] ([Intel XE#1124]) +2 other tests skip
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-6/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html
* igt@kms_bw@linear-tiling-3-displays-1920x1080p:
- shard-bmg: NOTRUN -> [SKIP][6] ([Intel XE#367] / [Intel XE#7354])
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-1/igt@kms_bw@linear-tiling-3-displays-1920x1080p.html
* igt@kms_ccs@bad-pixel-format-4-tiled-dg2-rc-ccs:
- shard-bmg: NOTRUN -> [SKIP][7] ([Intel XE#2887]) +4 other tests skip
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-1/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-rc-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-b-dp-2:
- shard-bmg: [PASS][8] -> [INCOMPLETE][9] ([Intel XE#5545] / [Intel XE#7084])
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-4/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-b-dp-2.html
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-2/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-b-dp-2.html
* igt@kms_chamelium_hpd@dp-hpd-storm-disable:
- shard-bmg: NOTRUN -> [SKIP][10] ([Intel XE#2252]) +1 other test skip
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-6/igt@kms_chamelium_hpd@dp-hpd-storm-disable.html
* igt@kms_content_protection@lic-type-0-hdcp14@pipe-a-dp-2:
- shard-bmg: NOTRUN -> [FAIL][11] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) +1 other test fail
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-6/igt@kms_content_protection@lic-type-0-hdcp14@pipe-a-dp-2.html
* igt@kms_cursor_crc@cursor-rapid-movement-256x85:
- shard-bmg: NOTRUN -> [SKIP][12] ([Intel XE#2320])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-6/igt@kms_cursor_crc@cursor-rapid-movement-256x85.html
* igt@kms_cursor_legacy@cursorb-vs-flipa-legacy:
- shard-bmg: [PASS][13] -> [SKIP][14] ([Intel XE#2291]) +3 other tests skip
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-9/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-5/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html
* igt@kms_dp_link_training@non-uhbr-sst:
- shard-bmg: [PASS][15] -> [SKIP][16] ([Intel XE#4354])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-6/igt@kms_dp_link_training@non-uhbr-sst.html
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-5/igt@kms_dp_link_training@non-uhbr-sst.html
* igt@kms_flip@2x-flip-vs-wf_vblank-interruptible:
- shard-bmg: [PASS][17] -> [SKIP][18] ([Intel XE#2316]) +4 other tests skip
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-9/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-5/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling:
- shard-bmg: NOTRUN -> [SKIP][19] ([Intel XE#7178] / [Intel XE#7351])
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-6/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][20] ([Intel XE#2311]) +4 other tests skip
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-1/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@drrs-argb161616f-draw-render:
- shard-bmg: NOTRUN -> [SKIP][21] ([Intel XE#7061] / [Intel XE#7356]) +1 other test skip
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-argb161616f-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw:
- shard-bmg: NOTRUN -> [SKIP][22] ([Intel XE#4141]) +1 other test skip
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw.html
* igt@kms_frontbuffer_tracking@plane-fbc-rte:
- shard-bmg: NOTRUN -> [SKIP][23] ([Intel XE#2350] / [Intel XE#7503])
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-6/igt@kms_frontbuffer_tracking@plane-fbc-rte.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-render:
- shard-bmg: NOTRUN -> [SKIP][24] ([Intel XE#2313]) +1 other test skip
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-render.html
* igt@kms_hdr@static-toggle:
- shard-bmg: [PASS][25] -> [SKIP][26] ([Intel XE#1503])
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-9/igt@kms_hdr@static-toggle.html
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-5/igt@kms_hdr@static-toggle.html
* igt@kms_plane_multiple@2x-tiling-x:
- shard-bmg: [PASS][27] -> [DMESG-WARN][28] ([Intel XE#5175])
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-1/igt@kms_plane_multiple@2x-tiling-x.html
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-2/igt@kms_plane_multiple@2x-tiling-x.html
* igt@kms_pm_backlight@fade:
- shard-bmg: NOTRUN -> [SKIP][29] ([Intel XE#7376] / [Intel XE#870])
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-6/igt@kms_pm_backlight@fade.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf:
- shard-bmg: NOTRUN -> [SKIP][30] ([Intel XE#1489]) +2 other tests skip
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-6/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr@fbc-psr-no-drrs:
- shard-bmg: NOTRUN -> [SKIP][31] ([Intel XE#2234] / [Intel XE#2850]) +1 other test skip
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-6/igt@kms_psr@fbc-psr-no-drrs.html
* igt@kms_vrr@cmrr@pipe-a-edp-1:
- shard-lnl: [PASS][32] -> [FAIL][33] ([Intel XE#4459]) +1 other test fail
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-lnl-7/igt@kms_vrr@cmrr@pipe-a-edp-1.html
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-lnl-8/igt@kms_vrr@cmrr@pipe-a-edp-1.html
* igt@kms_vrr@flip-suspend:
- shard-bmg: NOTRUN -> [SKIP][34] ([Intel XE#1499])
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-1/igt@kms_vrr@flip-suspend.html
* igt@xe_eudebug@basic-exec-queues-enable:
- shard-bmg: NOTRUN -> [SKIP][35] ([Intel XE#4837])
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-6/igt@xe_eudebug@basic-exec-queues-enable.html
* igt@xe_exec_fault_mode@once-multi-queue-userptr-invalidate-imm:
- shard-bmg: NOTRUN -> [SKIP][36] ([Intel XE#7136]) +5 other tests skip
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-6/igt@xe_exec_fault_mode@once-multi-queue-userptr-invalidate-imm.html
* igt@xe_exec_multi_queue@max-queues-preempt-mode-fault-dyn-priority:
- shard-bmg: NOTRUN -> [SKIP][37] ([Intel XE#6874]) +4 other tests skip
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-1/igt@xe_exec_multi_queue@max-queues-preempt-mode-fault-dyn-priority.html
* igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma:
- shard-lnl: [PASS][38] -> [FAIL][39] ([Intel XE#5625])
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-lnl-5/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma.html
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-lnl-5/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma.html
* igt@xe_exec_threads@threads-multi-queue-cm-shared-vm-basic:
- shard-bmg: NOTRUN -> [SKIP][40] ([Intel XE#7138]) +1 other test skip
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-1/igt@xe_exec_threads@threads-multi-queue-cm-shared-vm-basic.html
* igt@xe_multigpu_svm@mgpu-latency-prefetch:
- shard-bmg: NOTRUN -> [SKIP][41] ([Intel XE#6964])
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-6/igt@xe_multigpu_svm@mgpu-latency-prefetch.html
* igt@xe_pm@d3cold-mmap-system:
- shard-bmg: NOTRUN -> [SKIP][42] ([Intel XE#2284] / [Intel XE#7370])
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-6/igt@xe_pm@d3cold-mmap-system.html
* igt@xe_pxp@pxp-optout:
- shard-bmg: NOTRUN -> [SKIP][43] ([Intel XE#4733] / [Intel XE#7417])
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-6/igt@xe_pxp@pxp-optout.html
#### Possible fixes ####
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180:
- shard-bmg: [INCOMPLETE][44] ([Intel XE#5643]) -> [PASS][45]
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-2/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180.html
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180.html
* igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p:
- shard-bmg: [SKIP][46] ([Intel XE#2314] / [Intel XE#2894] / [Intel XE#7373]) -> [PASS][47]
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-5/igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p.html
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-8/igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p.html
* igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions-varying-size:
- shard-bmg: [SKIP][48] ([Intel XE#2291]) -> [PASS][49] +2 other tests pass
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-5/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions-varying-size.html
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-8/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size:
- shard-bmg: [SKIP][50] ([Intel XE#2291] / [Intel XE#7343]) -> [PASS][51]
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-5/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-8/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html
* igt@kms_feature_discovery@display-2x:
- shard-bmg: [SKIP][52] ([Intel XE#2373] / [Intel XE#7344]) -> [PASS][53]
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-5/igt@kms_feature_discovery@display-2x.html
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-8/igt@kms_feature_discovery@display-2x.html
* igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset:
- shard-bmg: [SKIP][54] ([Intel XE#2316]) -> [PASS][55] +6 other tests pass
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-5/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset.html
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-10/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset.html
* igt@kms_hdr@invalid-hdr:
- shard-bmg: [SKIP][56] ([Intel XE#1503]) -> [PASS][57]
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-2/igt@kms_hdr@invalid-hdr.html
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-1/igt@kms_hdr@invalid-hdr.html
* igt@kms_joiner@basic-force-big-joiner:
- shard-bmg: [SKIP][58] ([Intel XE#7086]) -> [PASS][59]
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-5/igt@kms_joiner@basic-force-big-joiner.html
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-8/igt@kms_joiner@basic-force-big-joiner.html
#### Warnings ####
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
- shard-bmg: [INCOMPLETE][60] ([Intel XE#7084]) -> [INCOMPLETE][61] ([Intel XE#5545] / [Intel XE#7084])
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-4/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-2/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
* igt@kms_content_protection@atomic-dpms-hdcp14:
- shard-bmg: [FAIL][62] ([Intel XE#3304] / [Intel XE#7374]) -> [SKIP][63] ([Intel XE#7194])
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-6/igt@kms_content_protection@atomic-dpms-hdcp14.html
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-5/igt@kms_content_protection@atomic-dpms-hdcp14.html
* igt@kms_content_protection@atomic-hdcp14:
- shard-bmg: [FAIL][64] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) -> [SKIP][65] ([Intel XE#7194])
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-8/igt@kms_content_protection@atomic-hdcp14.html
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-5/igt@kms_content_protection@atomic-hdcp14.html
* igt@kms_content_protection@suspend-resume:
- shard-bmg: [FAIL][66] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) -> [SKIP][67] ([Intel XE#6705])
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-9/igt@kms_content_protection@suspend-resume.html
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-5/igt@kms_content_protection@suspend-resume.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc:
- shard-bmg: [SKIP][68] ([Intel XE#2312]) -> [SKIP][69] ([Intel XE#2311]) +11 other tests skip
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc.html
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-8/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-fullscreen:
- shard-bmg: [SKIP][70] ([Intel XE#4141]) -> [SKIP][71] ([Intel XE#2312]) +3 other tests skip
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-9/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-fullscreen.html
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-fullscreen.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-fullscreen:
- shard-bmg: [SKIP][72] ([Intel XE#4141]) -> [INCOMPLETE][73] ([Intel XE#6819])
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-fullscreen.html
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-fullscreen.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff:
- shard-bmg: [SKIP][74] ([Intel XE#2312]) -> [SKIP][75] ([Intel XE#4141]) +6 other tests skip
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-blt:
- shard-bmg: [SKIP][76] ([Intel XE#2311]) -> [SKIP][77] ([Intel XE#2312]) +12 other tests skip
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-9/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-blt.html
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt:
- shard-bmg: [SKIP][78] ([Intel XE#2313]) -> [SKIP][79] ([Intel XE#2312]) +11 other tests skip
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-8/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt.html
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-5/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-pgflip-blt:
- shard-bmg: [SKIP][80] ([Intel XE#2312]) -> [SKIP][81] ([Intel XE#2313]) +10 other tests skip
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-5/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-pgflip-blt.html
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-10/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-pgflip-blt.html
* igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv:
- shard-bmg: [ABORT][82] ([Intel XE#5466] / [Intel XE#6652] / [Intel XE#7577]) -> [ABORT][83] ([Intel XE#5466] / [Intel XE#7577])
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4697-c8f35befe90e623b470375bd529506c431fd8a07/shard-bmg-1/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/shard-bmg-4/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
[Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499
[Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
[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#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#2350]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2350
[Intel XE#2373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2373
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
[Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
[Intel XE#4459]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4459
[Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
[Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
[Intel XE#5175]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5175
[Intel XE#5466]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5466
[Intel XE#5545]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5545
[Intel XE#5625]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5625
[Intel XE#5643]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5643
[Intel XE#6054]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6054
[Intel XE#6652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6652
[Intel XE#6705]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6705
[Intel XE#6819]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6819
[Intel XE#6874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6874
[Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
[Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
[Intel XE#7084]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7084
[Intel XE#7086]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7086
[Intel XE#7136]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7136
[Intel XE#7138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7138
[Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
[Intel XE#7194]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7194
[Intel XE#7343]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7343
[Intel XE#7344]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7344
[Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351
[Intel XE#7354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7354
[Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356
[Intel XE#7370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7370
[Intel XE#7373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7373
[Intel XE#7374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7374
[Intel XE#7376]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7376
[Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417
[Intel XE#7503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7503
[Intel XE#7577]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7577
[Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
Build changes
-------------
* Linux: xe-4697-c8f35befe90e623b470375bd529506c431fd8a07 -> xe-pw-163019v1
IGT_8792: 8792
xe-4697-c8f35befe90e623b470375bd529506c431fd8a07: c8f35befe90e623b470375bd529506c431fd8a07
xe-pw-163019v1: 163019v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163019v1/index.html
[-- Attachment #2: Type: text/html, Size: 29744 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 2/4] drm/xe/xe_drm_ras: Add support for clear-error-counter in XE DRM RAS
2026-03-11 10:29 ` [PATCH 2/4] drm/xe/xe_drm_ras: Add support for clear-error-counter in XE DRM RAS Riana Tauro
@ 2026-03-12 10:17 ` Raag Jadav
0 siblings, 0 replies; 16+ messages in thread
From: Raag Jadav @ 2026-03-12 10:17 UTC (permalink / raw)
To: Riana Tauro
Cc: intel-xe, dri-devel, netdev, aravind.iddamsetty, anshuman.gupta,
rodrigo.vivi, joonas.lahtinen, simona.vetter, airlied,
pratik.bari, joshua.santosh.ranjan, ashwin.kumar.kulkarni,
shubham.kumar, ravi.kishore.koppuravuri, anvesh.bakwad,
maarten.lankhorst
On Wed, Mar 11, 2026 at 03:59:16PM +0530, Riana Tauro wrote:
> Add support for clear-error-counter command in XE DRM RAS.
> This resets the counter value.
>
> Usage:
>
> $ sudo ynl --family drm_ras --do clear-error-counter --json \
> '{"node-id":1, "error-id":1}'
> None
>
> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
> ---
> drivers/gpu/drm/xe/xe_drm_ras.c | 35 +++++++++++++++++++++++++++++++--
> 1 file changed, 33 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c b/drivers/gpu/drm/xe/xe_drm_ras.c
> index e07dc23a155e..c21c8b428de6 100644
> --- a/drivers/gpu/drm/xe/xe_drm_ras.c
> +++ b/drivers/gpu/drm/xe/xe_drm_ras.c
> @@ -27,6 +27,16 @@ static int hw_query_error_counter(struct xe_drm_ras_counter *info,
> return 0;
> }
>
> +static int hw_clear_error_counter(struct xe_drm_ras_counter *info, u32 error_id)
> +{
> + if (!info || !info[error_id].name)
> + return -ENOENT;
> +
> + atomic_set(&info[error_id].counter, 0);
> +
> + return 0;
> +}
> +
> static int query_uncorrectable_error_counter(struct drm_ras_node *ep, u32 error_id,
> const char **name, u32 *val)
> {
> @@ -37,6 +47,15 @@ static int query_uncorrectable_error_counter(struct drm_ras_node *ep, u32 error_
> return hw_query_error_counter(info, error_id, name, val);
> }
>
> +static int clear_uncorrectable_error_counter(struct drm_ras_node *node, u32 error_id)
> +{
> + struct xe_device *xe = node->priv;
> + struct xe_drm_ras *ras = &xe->ras;
> + struct xe_drm_ras_counter *info = ras->info[DRM_XE_RAS_ERR_SEV_UNCORRECTABLE];
> +
> + return hw_clear_error_counter(info, error_id);
> +}
> +
> static int query_correctable_error_counter(struct drm_ras_node *ep, u32 error_id,
> const char **name, u32 *val)
> {
> @@ -47,6 +66,15 @@ static int query_correctable_error_counter(struct drm_ras_node *ep, u32 error_id
> return hw_query_error_counter(info, error_id, name, val);
> }
>
> +static int clear_correctable_error_counter(struct drm_ras_node *node, u32 error_id)
> +{
> + struct xe_device *xe = node->priv;
> + struct xe_drm_ras *ras = &xe->ras;
> + struct xe_drm_ras_counter *info = ras->info[DRM_XE_RAS_ERR_SEV_CORRECTABLE];
> +
> + return hw_clear_error_counter(info, error_id);
> +}
This would've been much simpler if we had per node info, but for now
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
> static struct xe_drm_ras_counter *allocate_and_copy_counters(struct xe_device *xe)
> {
> struct xe_drm_ras_counter *counter;
> @@ -92,10 +120,13 @@ static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
> if (IS_ERR(ras->info[severity]))
> return PTR_ERR(ras->info[severity]);
>
> - if (severity == DRM_XE_RAS_ERR_SEV_CORRECTABLE)
> + if (severity == DRM_XE_RAS_ERR_SEV_CORRECTABLE) {
> node->query_error_counter = query_correctable_error_counter;
> - else
> + node->clear_error_counter = clear_correctable_error_counter;
> + } else {
> node->query_error_counter = query_uncorrectable_error_counter;
> + node->clear_error_counter = clear_uncorrectable_error_counter;
> + }
>
> return 0;
> }
> --
> 2.47.1
>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 1/4] drm/drm_ras: Add clear-error-counter netlink command to drm_ras
2026-03-11 10:29 ` [PATCH 1/4] drm/drm_ras: Add clear-error-counter netlink command to drm_ras Riana Tauro
2026-03-12 0:29 ` Jakub Kicinski
@ 2026-03-25 12:40 ` Raag Jadav
1 sibling, 0 replies; 16+ messages in thread
From: Raag Jadav @ 2026-03-25 12:40 UTC (permalink / raw)
To: Riana Tauro
Cc: intel-xe, dri-devel, netdev, aravind.iddamsetty, anshuman.gupta,
rodrigo.vivi, joonas.lahtinen, simona.vetter, airlied,
pratik.bari, joshua.santosh.ranjan, ashwin.kumar.kulkarni,
shubham.kumar, ravi.kishore.koppuravuri, anvesh.bakwad,
maarten.lankhorst, Jakub Kicinski, Zack McKevitt, Lijo Lazar,
Hawking Zhang, David S. Miller, Paolo Abeni, Eric Dumazet
On Wed, Mar 11, 2026 at 03:59:15PM +0530, Riana Tauro wrote:
> Introduce a new 'clear-error-counter' DRM RAS command to reset the counter
> value for a specific error counter of a given node.
>
> The command is a 'do' netlink request with 'node-id' and 'error-id'
> as parameters with no additional response payload.
>
> Usage
Missing ":"
> $ sudo ynl --family drm_ras --do clear-error-counter --json \
> '{"node-id":1, "error-id":1}'
> None
>
> Cc: Jakub Kicinski <kuba@kernel.org>
> Cc: Zack McKevitt <zachary.mckevitt@oss.qualcomm.com>
> Cc: Lijo Lazar <lijo.lazar@amd.com>
> Cc: Hawking Zhang <Hawking.Zhang@amd.com>
> Cc: David S. Miller <davem@davemloft.net>
> Cc: Paolo Abeni <pabeni@redhat.com>
> Cc: Eric Dumazet <edumazet@google.com>
> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 3/4] drm/drm_ras: Add DRM RAS netlink error event notification
2026-03-11 10:29 ` [PATCH 3/4] drm/drm_ras: Add DRM RAS netlink error event notification Riana Tauro
@ 2026-03-25 13:31 ` Raag Jadav
2026-04-08 14:29 ` Tauro, Riana
0 siblings, 1 reply; 16+ messages in thread
From: Raag Jadav @ 2026-03-25 13:31 UTC (permalink / raw)
To: Riana Tauro
Cc: intel-xe, dri-devel, netdev, aravind.iddamsetty, anshuman.gupta,
rodrigo.vivi, joonas.lahtinen, simona.vetter, airlied,
pratik.bari, joshua.santosh.ranjan, ashwin.kumar.kulkarni,
shubham.kumar, ravi.kishore.koppuravuri, anvesh.bakwad,
maarten.lankhorst, Jakub Kicinski, Zack McKevitt, Lijo Lazar,
Hawking Zhang, David S. Miller, Paolo Abeni, Eric Dumazet
On Wed, Mar 11, 2026 at 03:59:17PM +0530, Riana Tauro wrote:
> Add support for asynchronous error notifications in drm_ras.
It's either drm_ras or DRM RAS, make it consistent in all patches
(both commit message and subject).
> Define a new `error-event` netlink event and a new multicast
> group `error-notify` in drm_ras spec. Each event contains
> a node-id and error-id to identify the type and source
> of error.
>
> Add drm_ras_error_notify() to trigger this event from drivers.
> Userspace can receive this event by subscribing to the
> multicast group error-notify.
>
> Example: Using ynl tool
Ditto. Either Usage or Example, make it consistent in all patches.
Also, please utilize the full 75 character space where possible.
> $ sudo ynl --family drm_ras --subscribe error-notify
>
> Cc: Jakub Kicinski <kuba@kernel.org>
> Cc: Zack McKevitt <zachary.mckevitt@oss.qualcomm.com>
> Cc: Lijo Lazar <lijo.lazar@amd.com>
> Cc: Hawking Zhang <Hawking.Zhang@amd.com>
> Cc: David S. Miller <davem@davemloft.net>
> Cc: Paolo Abeni <pabeni@redhat.com>
> Cc: Eric Dumazet <edumazet@google.com>
> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
> ---
> Documentation/gpu/drm-ras.rst | 9 +++++
> Documentation/netlink/specs/drm_ras.yaml | 14 +++++++
> drivers/gpu/drm/drm_ras.c | 48 ++++++++++++++++++++++++
> drivers/gpu/drm/drm_ras_nl.c | 6 +++
> drivers/gpu/drm/drm_ras_nl.h | 4 ++
> include/drm/drm_ras.h | 2 +
> include/uapi/drm/drm_ras.h | 3 ++
> 7 files changed, 86 insertions(+)
>
> diff --git a/Documentation/gpu/drm-ras.rst b/Documentation/gpu/drm-ras.rst
> index 4636e68f5678..09b2918f67bd 100644
> --- a/Documentation/gpu/drm-ras.rst
> +++ b/Documentation/gpu/drm-ras.rst
> @@ -54,6 +54,8 @@ User space tools can:
> ``node-id`` and ``error-id`` as parameters.
> * Clear specific error counters with the ``clear-error-counter`` command, using both
> ``node-id`` and ``error-id`` as parameters.
> +* Listen to ``error-event`` notifications for error events by subscribing to the
> + ``error-notify`` multicast group.
>
> YAML-based Interface
> --------------------
> @@ -109,3 +111,10 @@ Example: Clear an error counter for a given node
>
> sudo ynl --family drm_ras --do clear-error-counter --json '{"node-id":0, "error-id":1}'
> None
> +
> +Example: Listen to error events
> +
> +.. code-block:: bash
> +
> + sudo ynl --family drm_ras --subscribe error-notify
> + {'msg': {'error-id': 1, 'node-id': 1}, 'name': 'error-event'}
Can we also have error-name and node-name? I'd be pulling my hair off
if I need to remember all the ids.
On that note, I think it'll be good to have them as part of request
attributes as an alternative to ids (also for existing commands) but
that can done as a follow up.
Also, what if I have multiple devices with multiple nodes. Do they need
separate subscription?
Raag
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 3/4] drm/drm_ras: Add DRM RAS netlink error event notification
2026-03-25 13:31 ` Raag Jadav
@ 2026-04-08 14:29 ` Tauro, Riana
2026-04-09 5:35 ` Raag Jadav
0 siblings, 1 reply; 16+ messages in thread
From: Tauro, Riana @ 2026-04-08 14:29 UTC (permalink / raw)
To: Raag Jadav, aravind.iddamsetty, rodrigo.vivi
Cc: intel-xe, dri-devel, netdev, anshuman.gupta, joonas.lahtinen,
simona.vetter, airlied, pratik.bari, joshua.santosh.ranjan,
ashwin.kumar.kulkarni, shubham.kumar, ravi.kishore.koppuravuri,
anvesh.bakwad, maarten.lankhorst, Zack McKevitt, Lijo Lazar,
Hawking Zhang, David S. Miller, Paolo Abeni, Eric Dumazet,
Jakub Kicinski
On 3/25/2026 7:01 PM, Raag Jadav wrote:
> On Wed, Mar 11, 2026 at 03:59:17PM +0530, Riana Tauro wrote:
>> Add support for asynchronous error notifications in drm_ras.
> It's either drm_ras or DRM RAS, make it consistent in all patches
> (both commit message and subject).
Sure.
>
>> Define a new `error-event` netlink event and a new multicast
>> group `error-notify` in drm_ras spec. Each event contains
>> a node-id and error-id to identify the type and source
>> of error.
>>
>> Add drm_ras_error_notify() to trigger this event from drivers.
>> Userspace can receive this event by subscribing to the
>> multicast group error-notify.
>>
>> Example: Using ynl tool
> Ditto. Either Usage or Example, make it consistent in all patches.
>
> Also, please utilize the full 75 character space where possible.
Will fix.
>
>> $ sudo ynl --family drm_ras --subscribe error-notify
>>
>> Cc: Jakub Kicinski <kuba@kernel.org>
>> Cc: Zack McKevitt <zachary.mckevitt@oss.qualcomm.com>
>> Cc: Lijo Lazar <lijo.lazar@amd.com>
>> Cc: Hawking Zhang <Hawking.Zhang@amd.com>
>> Cc: David S. Miller <davem@davemloft.net>
>> Cc: Paolo Abeni <pabeni@redhat.com>
>> Cc: Eric Dumazet <edumazet@google.com>
>> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
>> ---
>> Documentation/gpu/drm-ras.rst | 9 +++++
>> Documentation/netlink/specs/drm_ras.yaml | 14 +++++++
>> drivers/gpu/drm/drm_ras.c | 48 ++++++++++++++++++++++++
>> drivers/gpu/drm/drm_ras_nl.c | 6 +++
>> drivers/gpu/drm/drm_ras_nl.h | 4 ++
>> include/drm/drm_ras.h | 2 +
>> include/uapi/drm/drm_ras.h | 3 ++
>> 7 files changed, 86 insertions(+)
>>
>> diff --git a/Documentation/gpu/drm-ras.rst b/Documentation/gpu/drm-ras.rst
>> index 4636e68f5678..09b2918f67bd 100644
>> --- a/Documentation/gpu/drm-ras.rst
>> +++ b/Documentation/gpu/drm-ras.rst
>> @@ -54,6 +54,8 @@ User space tools can:
>> ``node-id`` and ``error-id`` as parameters.
>> * Clear specific error counters with the ``clear-error-counter`` command, using both
>> ``node-id`` and ``error-id`` as parameters.
>> +* Listen to ``error-event`` notifications for error events by subscribing to the
>> + ``error-notify`` multicast group.
>>
>> YAML-based Interface
>> --------------------
>> @@ -109,3 +111,10 @@ Example: Clear an error counter for a given node
>>
>> sudo ynl --family drm_ras --do clear-error-counter --json '{"node-id":0, "error-id":1}'
>> None
>> +
>> +Example: Listen to error events
>> +
>> +.. code-block:: bash
>> +
>> + sudo ynl --family drm_ras --subscribe error-notify
>> + {'msg': {'error-id': 1, 'node-id': 1}, 'name': 'error-event'}
> Can we also have error-name and node-name? I'd be pulling my hair off
> if I need to remember all the ids.
Yeah makes sense. We can add the node_name, error_name.
Adding device_name would also be more useful in the event.
@Rodrigo/@aravind thoughts?
>
> On that note, I think it'll be good to have them as part of request
> attributes as an alternative to ids (also for existing commands) but
> that can done as a follow up.
>
We cannot use names as alternative because it won't work for multiple cards.
example in xe: Suppose there are 2 cards and each has 2 nodes. We cannot
query using node_name+error_name.
Also most of the netlink implementations use id's as unique identifiers.
$ sudo ./cli.py --family drm_ras --dump list-nodes
[{'device-name': 'bdf_1', 'node-id': 0, 'node-name':
'correctable-errors', 'node-type': 'error-counter'},
{'device-name': 'bdf_1, 'node-id': 1, 'node-name':
'uncorrectable-errors', 'node-type': 'error-counter'},
{'device-name': 'bdf_2', 'node-id': 2, 'node-name':
'correctable-errors', 'node-type': 'error-counter'},
{'device-name': 'bdf_2', 'node-id': 3, 'node-name':
'uncorrectable-errors', 'node-type': 'error-counter'}]
>
> Also, what if I have multiple devices with multiple nodes. Do they need
> separate subscription?
>
No, we subscribe only to the group not the nodes. In this case the group
is 'error-notify'
$ sudo ./cli.py --family drm_ras --subscribe error-notify
{'msg': {'error-id': 1, 'node-id': 1}, 'name': 'error-event'}
{'msg': {'error-id': 1, 'node-id': 3}, 'name': 'error-event'}
Thanks
Riana
>
> Raag
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 3/4] drm/drm_ras: Add DRM RAS netlink error event notification
2026-04-08 14:29 ` Tauro, Riana
@ 2026-04-09 5:35 ` Raag Jadav
2026-04-10 6:20 ` Tauro, Riana
0 siblings, 1 reply; 16+ messages in thread
From: Raag Jadav @ 2026-04-09 5:35 UTC (permalink / raw)
To: Tauro, Riana
Cc: aravind.iddamsetty, rodrigo.vivi, intel-xe, dri-devel, netdev,
anshuman.gupta, joonas.lahtinen, simona.vetter, airlied,
pratik.bari, joshua.santosh.ranjan, ashwin.kumar.kulkarni,
shubham.kumar, ravi.kishore.koppuravuri, anvesh.bakwad,
maarten.lankhorst, Zack McKevitt, Lijo Lazar, Hawking Zhang,
David S. Miller, Paolo Abeni, Eric Dumazet, Jakub Kicinski
On Wed, Apr 08, 2026 at 07:59:33PM +0530, Tauro, Riana wrote:
> On 3/25/2026 7:01 PM, Raag Jadav wrote:
> > On Wed, Mar 11, 2026 at 03:59:17PM +0530, Riana Tauro wrote:
...
> > > +Example: Listen to error events
> > > +
> > > +.. code-block:: bash
> > > +
> > > + sudo ynl --family drm_ras --subscribe error-notify
> > > + {'msg': {'error-id': 1, 'node-id': 1}, 'name': 'error-event'}
> > Can we also have error-name and node-name? I'd be pulling my hair off
> > if I need to remember all the ids.
>
> Yeah makes sense. We can add the node_name, error_name.
> Adding device_name would also be more useful in the event.
>
> @Rodrigo/@aravind thoughts?
>
> >
> > On that note, I think it'll be good to have them as part of request
> > attributes as an alternative to ids (also for existing commands) but
> > that can done as a follow up.
> >
> We cannot use names as alternative because it won't work for multiple cards.
> example in xe: Suppose there are 2 cards and each has 2 nodes. We cannot
> query using node_name+error_name.
> Also most of the netlink implementations use id's as unique identifiers.
>
> $ sudo ./cli.py --family drm_ras --dump list-nodes
> [{'device-name': 'bdf_1', 'node-id': 0, 'node-name': 'correctable-errors',
> 'node-type': 'error-counter'},
> {'device-name': 'bdf_1, 'node-id': 1, 'node-name': 'uncorrectable-errors',
> 'node-type': 'error-counter'},
> {'device-name': 'bdf_2', 'node-id': 2, 'node-name': 'correctable-errors',
> 'node-type': 'error-counter'},
> {'device-name': 'bdf_2', 'node-id': 3, 'node-name': 'uncorrectable-errors',
> 'node-type': 'error-counter'}]
This means they don't persist the user needs to figures out all the ids before
anything can happen. In device node world we have /dev/dri/by-path/<bdf> which
makes it much easier.
Also, I'm not much informed about the history and it's still unclear to me what
problem did netlink solve here that cannot be solved by anything else? But we're
too late for that discussion, and again, not my call.
> > Also, what if I have multiple devices with multiple nodes. Do they need
> > separate subscription?
> >
> No, we subscribe only to the group not the nodes. In this case the group is
> 'error-notify'
>
> $ sudo ./cli.py --family drm_ras --subscribe error-notify
> {'msg': {'error-id': 1, 'node-id': 1}, 'name': 'error-event'}
> {'msg': {'error-id': 1, 'node-id': 3}, 'name': 'error-event'}
Hm, perhaps I need to spend some time wrapping my head around the new concept.
Let's catch up sometime this week.
Raag
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 3/4] drm/drm_ras: Add DRM RAS netlink error event notification
2026-04-09 5:35 ` Raag Jadav
@ 2026-04-10 6:20 ` Tauro, Riana
0 siblings, 0 replies; 16+ messages in thread
From: Tauro, Riana @ 2026-04-10 6:20 UTC (permalink / raw)
To: Raag Jadav, aravind.iddamsetty, intel-xe
Cc: rodrigo.vivi, dri-devel, netdev, anshuman.gupta, joonas.lahtinen,
simona.vetter, airlied, pratik.bari, joshua.santosh.ranjan,
ashwin.kumar.kulkarni, shubham.kumar, ravi.kishore.koppuravuri,
anvesh.bakwad, maarten.lankhorst, Zack McKevitt, Lijo Lazar,
Hawking Zhang, David S. Miller, Paolo Abeni, Eric Dumazet,
Jakub Kicinski
On 4/9/2026 11:05 AM, Raag Jadav wrote:
> On Wed, Apr 08, 2026 at 07:59:33PM +0530, Tauro, Riana wrote:
>> On 3/25/2026 7:01 PM, Raag Jadav wrote:
>>> On Wed, Mar 11, 2026 at 03:59:17PM +0530, Riana Tauro wrote:
> ...
>
>>>> +Example: Listen to error events
>>>> +
>>>> +.. code-block:: bash
>>>> +
>>>> + sudo ynl --family drm_ras --subscribe error-notify
>>>> + {'msg': {'error-id': 1, 'node-id': 1}, 'name': 'error-event'}
>>> Can we also have error-name and node-name? I'd be pulling my hair off
>>> if I need to remember all the ids.
>> Yeah makes sense. We can add the node_name, error_name.
>> Adding device_name would also be more useful in the event.
>>
>> @Rodrigo/@aravind thoughts?
>>
I tried adding all parameters, but the event response seems overloaded.
I think node-name, error-name is not necessary since this will be mostly
used
by tools and scripts that get the nodes and error-ids prior to subscribing.
Let me know your thoughts
$ sudo ./tools/net/ynl/pyynl/cli.py --family drm_ras --subscribe
error-notify
{'msg': {'device-name': '0000:03:00.0', 'error-id': 1, 'error-name':
'core-compute', 'node-id': 3, 'node-name': 'uncorrectable-errors'},
'name': 'error-event'}
{'msg': {'device-name': '0000:04:00.0', 'error-id': 1, 'error-name':
'core-compute', 'node-id': 1, 'node-name': 'uncorrectable-errors'},
'name': 'error-event'}
Thanks
Riana
>>
>>> On that note, I think it'll be good to have them as part of request
>>> attributes as an alternative to ids (also for existing commands) but
>>> that can done as a follow up.
>>>
>> We cannot use names as alternative because it won't work for multiple cards.
>> example in xe: Suppose there are 2 cards and each has 2 nodes. We cannot
>> query using node_name+error_name.
>> Also most of the netlink implementations use id's as unique identifiers.
>>
>> $ sudo ./cli.py --family drm_ras --dump list-nodes
>> [{'device-name': 'bdf_1', 'node-id': 0, 'node-name': 'correctable-errors',
>> 'node-type': 'error-counter'},
>> {'device-name': 'bdf_1, 'node-id': 1, 'node-name': 'uncorrectable-errors',
>> 'node-type': 'error-counter'},
>> {'device-name': 'bdf_2', 'node-id': 2, 'node-name': 'correctable-errors',
>> 'node-type': 'error-counter'},
>> {'device-name': 'bdf_2', 'node-id': 3, 'node-name': 'uncorrectable-errors',
>> 'node-type': 'error-counter'}]
> This means they don't persist the user needs to figures out all the ids before
> anything can happen. In device node world we have /dev/dri/by-path/<bdf> which
> makes it much easier.
>
> Also, I'm not much informed about the history and it's still unclear to me what
> problem did netlink solve here that cannot be solved by anything else? But we're
> too late for that discussion, and again, not my call.
>
>>> Also, what if I have multiple devices with multiple nodes. Do they need
>>> separate subscription?
>>>
>> No, we subscribe only to the group not the nodes. In this case the group is
>> 'error-notify'
>>
>> $ sudo ./cli.py --family drm_ras --subscribe error-notify
>> {'msg': {'error-id': 1, 'node-id': 1}, 'name': 'error-event'}
>> {'msg': {'error-id': 1, 'node-id': 3}, 'name': 'error-event'}
> Hm, perhaps I need to spend some time wrapping my head around the new concept.
> Let's catch up sometime this week.
>
> Raag
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2026-04-10 6:20 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-11 10:29 [PATCH 0/4] Add support for clear counter and error event in DRM RAS Riana Tauro
2026-03-11 10:04 ` ✗ CI.checkpatch: warning for " Patchwork
2026-03-11 10:05 ` ✓ CI.KUnit: success " Patchwork
2026-03-11 10:29 ` [PATCH 1/4] drm/drm_ras: Add clear-error-counter netlink command to drm_ras Riana Tauro
2026-03-12 0:29 ` Jakub Kicinski
2026-03-25 12:40 ` Raag Jadav
2026-03-11 10:29 ` [PATCH 2/4] drm/xe/xe_drm_ras: Add support for clear-error-counter in XE DRM RAS Riana Tauro
2026-03-12 10:17 ` Raag Jadav
2026-03-11 10:29 ` [PATCH 3/4] drm/drm_ras: Add DRM RAS netlink error event notification Riana Tauro
2026-03-25 13:31 ` Raag Jadav
2026-04-08 14:29 ` Tauro, Riana
2026-04-09 5:35 ` Raag Jadav
2026-04-10 6:20 ` Tauro, Riana
2026-03-11 10:29 ` [PATCH 4/4] drm/xe/xe_drm_ras: Add error-event support in XE DRM RAS Riana Tauro
2026-03-11 10:53 ` ✓ Xe.CI.BAT: success for Add support for clear counter and error event in " Patchwork
2026-03-12 0:58 ` ✗ Xe.CI.FULL: failure " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox