* ✓ CI.Patch_applied: success for series starting with [1/3] drm/xe: Introduced needs_scratch bit in device descriptor
2025-02-13 2:23 [PATCH 1/3] drm/xe: Introduced needs_scratch bit in device descriptor Oak Zeng
@ 2025-02-13 2:16 ` Patchwork
2025-02-13 2:16 ` ✗ CI.checkpatch: warning " Patchwork
` (10 subsequent siblings)
11 siblings, 0 replies; 29+ messages in thread
From: Patchwork @ 2025-02-13 2:16 UTC (permalink / raw)
To: Oak Zeng; +Cc: intel-xe
== Series Details ==
Series: series starting with [1/3] drm/xe: Introduced needs_scratch bit in device descriptor
URL : https://patchwork.freedesktop.org/series/144766/
State : success
== Summary ==
=== Applying kernel patches on branch 'drm-tip' with base: ===
Base commit: 1be945721fec drm-tip: 2025y-02m-13d-01h-37m-42s UTC integration manifest
=== git am output follows ===
Applying: drm/xe: Introduced needs_scratch bit in device descriptor
Applying: drm/xe: Clear scratch page on vm_bind
Applying: drm/xe: Allow scratch page under fault mode for certain platform
^ permalink raw reply [flat|nested] 29+ messages in thread* ✗ CI.checkpatch: warning for series starting with [1/3] drm/xe: Introduced needs_scratch bit in device descriptor
2025-02-13 2:23 [PATCH 1/3] drm/xe: Introduced needs_scratch bit in device descriptor Oak Zeng
2025-02-13 2:16 ` ✓ CI.Patch_applied: success for series starting with [1/3] " Patchwork
@ 2025-02-13 2:16 ` Patchwork
2025-02-13 2:18 ` ✓ CI.KUnit: success " Patchwork
` (9 subsequent siblings)
11 siblings, 0 replies; 29+ messages in thread
From: Patchwork @ 2025-02-13 2:16 UTC (permalink / raw)
To: Oak Zeng; +Cc: intel-xe
== Series Details ==
Series: series starting with [1/3] drm/xe: Introduced needs_scratch bit in device descriptor
URL : https://patchwork.freedesktop.org/series/144766/
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
22f9cda3436b4fe965b5c5f31d2f2c1bcb483189
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 2f972e0fc4bad9ceb33660a22495029dd402fe95
Author: Oak Zeng <oak.zeng@intel.com>
Date: Wed Feb 12 21:23:31 2025 -0500
drm/xe: Allow scratch page under fault mode for certain platform
Normally scratch page is not allowed when a vm is operate under page
fault mode, i.e., in the existing codes, DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE
and DRM_XE_VM_CREATE_FLAG_FAULT_MODE are mutual exclusive. The reason
is fault mode relies on recoverable page to work, while scratch page
can mute recoverable page fault.
On xe2 and xe3, out of bound prefetch can cause page fault and further
system hang because xekmd can't resolve such page fault. SYCL and OCL
language runtime requires out of bound prefetch to be silently dropped
without causing any functional problem, thus the existing behavior
doesn't meet language runtime requirement.
At the same time, HW prefetching can cause page fault interrupt. Due to
page fault interrupt overhead (i.e., need Guc and KMD involved to fix
the page fault), HW prefetching can be slowed by many orders of magnitude.
Fix those problems by allowing scratch page under fault mode for xe2 and
xe3. With scratch page in place, HW prefetching could always hit scratch
page instead of causing interrupt.
A side effect is, scratch page could hide application program error.
Application out of bound accesses are hided by scratch page mapping,
instead of get reported to user.
igt test: https://patchwork.freedesktop.org/series/144334/. Test result on
BMG:
root@DUT1130BMGFRD:/home/szeng/dii-tools/igt-public/build/tests# ./xe_exec_fault_mode --run-subtest scratch-fault
IGT-Version: 1.30-gde1a3cb42 (x86_64) (Linux: 6.13.0-xe x86_64)
Using IGT_SRANDOM=1738684805 for randomisation
Opened device: /dev/dri/card0
Starting subtest: scratch-fault
Subtest scratch-fault: SUCCESS (0.080s)
Without this series, the test result is:
root@DUT1130BMGFRD:/home/szeng/dii-tools/igt-public/build/tests# ./xe_exec_fault_mode --run-subtest scratch-fault
IGT-Version: 1.30-gde1a3cb42 (x86_64) (Linux: 6.13.0-xe x86_64)
Using IGT_SRANDOM=1738686046 for randomisation
Opened device: /dev/dri/card0
Starting subtest: scratch-fault
(xe_exec_fault_mode:5047) CRITICAL: Test assertion failure function test_exec, file ../tests/intel/xe_exec_fault_mode.c:349:
(xe_exec_fault_mode:5047) CRITICAL: Failed assertion: __xe_wait_ufence(fd, &exec_sync[i], 0xdeadbeefdeadbeefull, exec_queues[i % n_exec_queues], &timeout) == 0
(xe_exec_fault_mode:5047) CRITICAL: Last errno: 62, Timer expired
(xe_exec_fault_mode:5047) CRITICAL: error: -62 != 0
Stack trace:
#0 ../lib/igt_core.c:2266 __igt_fail_assert()
#1 ../tests/intel/xe_exec_fault_mode.c:346 test_exec()
#2 ../tests/intel/xe_exec_fault_mode.c:537 __igt_unique____real_main407()
#3 ../tests/intel/xe_exec_fault_mode.c:407 main()
#4 ../sysdeps/nptl/libc_start_call_main.h:74 __libc_start_call_main()
#5 ../csu/libc-start.c:128 __libc_start_main@@GLIBC_2.34()
#6 [_start+0x2e]
Subtest scratch-fault failed.
v2: Refine commit message (Thomas)
v3: Move the scratch page flag check to after scratch page wa (Thomas)
Signed-off-by: Oak Zeng <oak.zeng@intel.com>
+ /mt/dim checkpatch 1be945721fec4f48df1fb728863be1b9a594b571 drm-intel
17c2e4aa0a06 drm/xe: Introduced needs_scratch bit in device descriptor
b946e876ff69 drm/xe: Clear scratch page on vm_bind
2f972e0fc4ba drm/xe: Allow scratch page under fault mode for certain platform
-:34: WARNING:COMMIT_LOG_LONG_LINE: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#34:
root@DUT1130BMGFRD:/home/szeng/dii-tools/igt-public/build/tests# ./xe_exec_fault_mode --run-subtest scratch-fault
total: 0 errors, 1 warnings, 0 checks, 9 lines checked
^ permalink raw reply [flat|nested] 29+ messages in thread* ✓ CI.KUnit: success for series starting with [1/3] drm/xe: Introduced needs_scratch bit in device descriptor
2025-02-13 2:23 [PATCH 1/3] drm/xe: Introduced needs_scratch bit in device descriptor Oak Zeng
2025-02-13 2:16 ` ✓ CI.Patch_applied: success for series starting with [1/3] " Patchwork
2025-02-13 2:16 ` ✗ CI.checkpatch: warning " Patchwork
@ 2025-02-13 2:18 ` Patchwork
2025-02-13 2:23 ` [PATCH 2/3] drm/xe: Clear scratch page on vm_bind Oak Zeng
` (8 subsequent siblings)
11 siblings, 0 replies; 29+ messages in thread
From: Patchwork @ 2025-02-13 2:18 UTC (permalink / raw)
To: Oak Zeng; +Cc: intel-xe
== Series Details ==
Series: series starting with [1/3] drm/xe: Introduced needs_scratch bit in device descriptor
URL : https://patchwork.freedesktop.org/series/144766/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[02:16:56] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[02:17:03] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json ARCH=um O=.kunit --jobs=48
../lib/iomap.c:156:5: warning: no previous prototype for ‘ioread64_lo_hi’ [-Wmissing-prototypes]
156 | u64 ioread64_lo_hi(const void __iomem *addr)
| ^~~~~~~~~~~~~~
../lib/iomap.c:163:5: warning: no previous prototype for ‘ioread64_hi_lo’ [-Wmissing-prototypes]
163 | u64 ioread64_hi_lo(const void __iomem *addr)
| ^~~~~~~~~~~~~~
../lib/iomap.c:170:5: warning: no previous prototype for ‘ioread64be_lo_hi’ [-Wmissing-prototypes]
170 | u64 ioread64be_lo_hi(const void __iomem *addr)
| ^~~~~~~~~~~~~~~~
../lib/iomap.c:178:5: warning: no previous prototype for ‘ioread64be_hi_lo’ [-Wmissing-prototypes]
178 | u64 ioread64be_hi_lo(const void __iomem *addr)
| ^~~~~~~~~~~~~~~~
../lib/iomap.c:264:6: warning: no previous prototype for ‘iowrite64_lo_hi’ [-Wmissing-prototypes]
264 | void iowrite64_lo_hi(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~
../lib/iomap.c:272:6: warning: no previous prototype for ‘iowrite64_hi_lo’ [-Wmissing-prototypes]
272 | void iowrite64_hi_lo(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~
../lib/iomap.c:280:6: warning: no previous prototype for ‘iowrite64be_lo_hi’ [-Wmissing-prototypes]
280 | void iowrite64be_lo_hi(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~~~
../lib/iomap.c:288:6: warning: no previous prototype for ‘iowrite64be_hi_lo’ [-Wmissing-prototypes]
288 | void iowrite64be_hi_lo(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~~~
[02:17:40] Starting KUnit Kernel (1/1)...
[02:17:40] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[02:17:40] ================== guc_buf (11 subtests) ===================
[02:17:40] [PASSED] test_smallest
[02:17:40] [PASSED] test_largest
[02:17:40] [PASSED] test_granular
[02:17:40] [PASSED] test_unique
[02:17:40] [PASSED] test_overlap
[02:17:40] [PASSED] test_reusable
[02:17:40] [PASSED] test_too_big
[02:17:40] [PASSED] test_flush
[02:17:40] [PASSED] test_lookup
[02:17:40] [PASSED] test_data
[02:17:40] [PASSED] test_class
[02:17:40] ===================== [PASSED] guc_buf =====================
[02:17:40] =================== guc_dbm (7 subtests) ===================
[02:17:40] [PASSED] test_empty
[02:17:40] [PASSED] test_default
[02:17:40] ======================== test_size ========================
[02:17:40] [PASSED] 4
[02:17:40] [PASSED] 8
[02:17:40] [PASSED] 32
[02:17:40] [PASSED] 256
[02:17:40] ==================== [PASSED] test_size ====================
[02:17:40] ======================= test_reuse ========================
[02:17:40] [PASSED] 4
[02:17:40] [PASSED] 8
[02:17:40] [PASSED] 32
[02:17:40] [PASSED] 256
[02:17:40] =================== [PASSED] test_reuse ====================
[02:17:40] =================== test_range_overlap ====================
[02:17:40] [PASSED] 4
[02:17:40] [PASSED] 8
[02:17:40] [PASSED] 32
[02:17:40] [PASSED] 256
[02:17:40] =============== [PASSED] test_range_overlap ================
[02:17:40] =================== test_range_compact ====================
[02:17:40] [PASSED] 4
[02:17:40] [PASSED] 8
[02:17:40] [PASSED] 32
[02:17:40] [PASSED] 256
[02:17:40] =============== [PASSED] test_range_compact ================
[02:17:40] ==================== test_range_spare =====================
[02:17:40] [PASSED] 4
[02:17:40] [PASSED] 8
[02:17:40] [PASSED] 32
[02:17:40] [PASSED] 256
[02:17:40] ================ [PASSED] test_range_spare =================
[02:17:40] ===================== [PASSED] guc_dbm =====================
[02:17:40] =================== guc_idm (6 subtests) ===================
[02:17:40] [PASSED] bad_init
[02:17:40] [PASSED] no_init
[02:17:40] [PASSED] init_fini
[02:17:40] [PASSED] check_used
[02:17:40] [PASSED] check_quota
[02:17:40] [PASSED] check_all
[02:17:40] ===================== [PASSED] guc_idm =====================
[02:17:40] ================== no_relay (3 subtests) ===================
[02:17:40] [PASSED] xe_drops_guc2pf_if_not_ready
[02:17:40] [PASSED] xe_drops_guc2vf_if_not_ready
[02:17:40] [PASSED] xe_rejects_send_if_not_ready
[02:17:40] ==================== [PASSED] no_relay =====================
[02:17:40] ================== pf_relay (14 subtests) ==================
[02:17:40] [PASSED] pf_rejects_guc2pf_too_short
[02:17:40] [PASSED] pf_rejects_guc2pf_too_long
[02:17:40] [PASSED] pf_rejects_guc2pf_no_payload
[02:17:40] [PASSED] pf_fails_no_payload
[02:17:40] [PASSED] pf_fails_bad_origin
[02:17:40] [PASSED] pf_fails_bad_type
[02:17:40] [PASSED] pf_txn_reports_error
[02:17:40] [PASSED] pf_txn_sends_pf2guc
[02:17:40] [PASSED] pf_sends_pf2guc
[02:17:40] [SKIPPED] pf_loopback_nop
[02:17:40] [SKIPPED] pf_loopback_echo
[02:17:40] [SKIPPED] pf_loopback_fail
[02:17:40] [SKIPPED] pf_loopback_busy
[02:17:40] [SKIPPED] pf_loopback_retry
[02:17:40] ==================== [PASSED] pf_relay =====================
[02:17:40] ================== vf_relay (3 subtests) ===================
[02:17:40] [PASSED] vf_rejects_guc2vf_too_short
[02:17:40] [PASSED] vf_rejects_guc2vf_too_long
[02:17:40] [PASSED] vf_rejects_guc2vf_no_payload
[02:17:40] ==================== [PASSED] vf_relay =====================
[02:17:40] ================= pf_service (11 subtests) =================
[02:17:40] [PASSED] pf_negotiate_any
[02:17:40] [PASSED] pf_negotiate_base_match
[02:17:40] [PASSED] pf_negotiate_base_newer
[02:17:40] [PASSED] pf_negotiate_base_next
[02:17:40] [SKIPPED] pf_negotiate_base_older
[02:17:40] [PASSED] pf_negotiate_base_prev
[02:17:40] [PASSED] pf_negotiate_latest_match
[02:17:40] [PASSED] pf_negotiate_latest_newer
[02:17:40] [PASSED] pf_negotiate_latest_next
[02:17:40] [SKIPPED] pf_negotiate_latest_older
[02:17:40] [SKIPPED] pf_negotiate_latest_prev
[02:17:40] =================== [PASSED] pf_service ====================
[02:17:40] ===================== lmtt (1 subtest) =====================
[02:17:40] ======================== test_ops =========================
[02:17:40] [PASSED] 2-level
[02:17:40] [PASSED] multi-level
[02:17:40] ==================== [PASSED] test_ops =====================
[02:17:40] ====================== [PASSED] lmtt =======================
[02:17:40] =================== xe_mocs (2 subtests) ===================
[02:17:40] ================ xe_live_mocs_kernel_kunit ================
[02:17:40] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[02:17:40] ================ xe_live_mocs_reset_kunit =================
[02:17:40] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[02:17:40] ==================== [SKIPPED] xe_mocs =====================
[02:17:40] ================= xe_migrate (2 subtests) ==================
[02:17:40] ================= xe_migrate_sanity_kunit =================
[02:17:40] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[02:17:40] ================== xe_validate_ccs_kunit ==================
[02:17:40] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[02:17:40] =================== [SKIPPED] xe_migrate ===================
[02:17:40] ================== xe_dma_buf (1 subtest) ==================
[02:17:40] ==================== xe_dma_buf_kunit =====================
[02:17:40] ================ [SKIPPED] xe_dma_buf_kunit ================
[02:17:40] =================== [SKIPPED] xe_dma_buf ===================
[02:17:40] ================= xe_bo_shrink (1 subtest) =================
[02:17:40] =================== xe_bo_shrink_kunit ====================
[02:17:40] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[02:17:40] ================== [SKIPPED] xe_bo_shrink ==================
[02:17:40] ==================== xe_bo (2 subtests) ====================
[02:17:40] ================== xe_ccs_migrate_kunit ===================
[02:17:40] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
stty: 'standard input': Inappropriate ioctl for device
[02:17:40] ==================== xe_bo_evict_kunit ====================
[02:17:40] =============== [SKIPPED] xe_bo_evict_kunit ================
[02:17:40] ===================== [SKIPPED] xe_bo ======================
[02:17:40] ==================== args (11 subtests) ====================
[02:17:40] [PASSED] count_args_test
[02:17:40] [PASSED] call_args_example
[02:17:40] [PASSED] call_args_test
[02:17:40] [PASSED] drop_first_arg_example
[02:17:40] [PASSED] drop_first_arg_test
[02:17:40] [PASSED] first_arg_example
[02:17:40] [PASSED] first_arg_test
[02:17:40] [PASSED] last_arg_example
[02:17:40] [PASSED] last_arg_test
[02:17:40] [PASSED] pick_arg_example
[02:17:40] [PASSED] sep_comma_example
[02:17:40] ====================== [PASSED] args =======================
[02:17:40] =================== xe_pci (2 subtests) ====================
[02:17:40] [PASSED] xe_gmdid_graphics_ip
[02:17:40] [PASSED] xe_gmdid_media_ip
[02:17:40] ===================== [PASSED] xe_pci ======================
[02:17:40] =================== xe_rtp (2 subtests) ====================
[02:17:40] =============== xe_rtp_process_to_sr_tests ================
[02:17:40] [PASSED] coalesce-same-reg
[02:17:40] [PASSED] no-match-no-add
[02:17:40] [PASSED] match-or
[02:17:40] [PASSED] match-or-xfail
[02:17:40] [PASSED] no-match-no-add-multiple-rules
[02:17:40] [PASSED] two-regs-two-entries
[02:17:40] [PASSED] clr-one-set-other
[02:17:40] [PASSED] set-field
[02:17:40] [PASSED] conflict-duplicate
[02:17:40] [PASSED] conflict-not-disjoint
[02:17:40] [PASSED] conflict-reg-type
[02:17:40] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[02:17:40] ================== xe_rtp_process_tests ===================
[02:17:40] [PASSED] active1
[02:17:40] [PASSED] active2
[02:17:40] [PASSED] active-inactive
[02:17:40] [PASSED] inactive-active
[02:17:40] [PASSED] inactive-1st_or_active-inactive
[02:17:40] [PASSED] inactive-2nd_or_active-inactive
[02:17:40] [PASSED] inactive-last_or_active-inactive
[02:17:40] [PASSED] inactive-no_or_active-inactive
[02:17:40] ============== [PASSED] xe_rtp_process_tests ===============
[02:17:40] ===================== [PASSED] xe_rtp ======================
[02:17:40] ==================== xe_wa (1 subtest) =====================
[02:17:40] ======================== xe_wa_gt =========================
[02:17:40] [PASSED] TIGERLAKE (B0)
[02:17:40] [PASSED] DG1 (A0)
[02:17:40] [PASSED] DG1 (B0)
[02:17:40] [PASSED] ALDERLAKE_S (A0)
[02:17:40] [PASSED] ALDERLAKE_S (B0)
[02:17:40] [PASSED] ALDERLAKE_S (C0)
[02:17:40] [PASSED] ALDERLAKE_S (D0)
[02:17:40] [PASSED] ALDERLAKE_P (A0)
[02:17:40] [PASSED] ALDERLAKE_P (B0)
[02:17:40] [PASSED] ALDERLAKE_P (C0)
[02:17:40] [PASSED] ALDERLAKE_S_RPLS (D0)
[02:17:40] [PASSED] ALDERLAKE_P_RPLU (E0)
[02:17:40] [PASSED] DG2_G10 (C0)
[02:17:40] [PASSED] DG2_G11 (B1)
[02:17:40] [PASSED] DG2_G12 (A1)
[02:17:40] [PASSED] METEORLAKE (g:A0, m:A0)
[02:17:40] [PASSED] METEORLAKE (g:A0, m:A0)
[02:17:40] [PASSED] METEORLAKE (g:A0, m:A0)
[02:17:40] [PASSED] LUNARLAKE (g:A0, m:A0)
[02:17:40] [PASSED] LUNARLAKE (g:B0, m:A0)
[02:17:40] [PASSED] BATTLEMAGE (g:A0, m:A1)
[02:17:40] ==================== [PASSED] xe_wa_gt =====================
[02:17:40] ====================== [PASSED] xe_wa ======================
[02:17:40] ============================================================
[02:17:40] Testing complete. Ran 133 tests: passed: 117, skipped: 16
[02:17:40] Elapsed time: 44.087s total, 6.943s configuring, 36.878s building, 0.251s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[02:17:41] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[02:17:42] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json ARCH=um O=.kunit --jobs=48
../lib/iomap.c:156:5: warning: no previous prototype for ‘ioread64_lo_hi’ [-Wmissing-prototypes]
156 | u64 ioread64_lo_hi(const void __iomem *addr)
| ^~~~~~~~~~~~~~
../lib/iomap.c:163:5: warning: no previous prototype for ‘ioread64_hi_lo’ [-Wmissing-prototypes]
163 | u64 ioread64_hi_lo(const void __iomem *addr)
| ^~~~~~~~~~~~~~
../lib/iomap.c:170:5: warning: no previous prototype for ‘ioread64be_lo_hi’ [-Wmissing-prototypes]
170 | u64 ioread64be_lo_hi(const void __iomem *addr)
| ^~~~~~~~~~~~~~~~
../lib/iomap.c:178:5: warning: no previous prototype for ‘ioread64be_hi_lo’ [-Wmissing-prototypes]
178 | u64 ioread64be_hi_lo(const void __iomem *addr)
| ^~~~~~~~~~~~~~~~
../lib/iomap.c:264:6: warning: no previous prototype for ‘iowrite64_lo_hi’ [-Wmissing-prototypes]
264 | void iowrite64_lo_hi(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~
../lib/iomap.c:272:6: warning: no previous prototype for ‘iowrite64_hi_lo’ [-Wmissing-prototypes]
272 | void iowrite64_hi_lo(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~
../lib/iomap.c:280:6: warning: no previous prototype for ‘iowrite64be_lo_hi’ [-Wmissing-prototypes]
280 | void iowrite64be_lo_hi(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~~~
../lib/iomap.c:288:6: warning: no previous prototype for ‘iowrite64be_hi_lo’ [-Wmissing-prototypes]
288 | void iowrite64be_hi_lo(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~~~
[02:18:03] Starting KUnit Kernel (1/1)...
[02:18:03] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[02:18:03] =========== drm_validate_clone_mode (2 subtests) ===========
[02:18:03] ============== drm_test_check_in_clone_mode ===============
[02:18:03] [PASSED] in_clone_mode
[02:18:03] [PASSED] not_in_clone_mode
[02:18:03] ========== [PASSED] drm_test_check_in_clone_mode ===========
[02:18:03] =============== drm_test_check_valid_clones ===============
[02:18:03] [PASSED] not_in_clone_mode
[02:18:03] [PASSED] valid_clone
[02:18:03] [PASSED] invalid_clone
[02:18:03] =========== [PASSED] drm_test_check_valid_clones ===========
[02:18:03] ============= [PASSED] drm_validate_clone_mode =============
[02:18:03] ============= drm_validate_modeset (1 subtest) =============
[02:18:03] [PASSED] drm_test_check_connector_changed_modeset
[02:18:03] ============== [PASSED] drm_validate_modeset ===============
[02:18:03] ================== drm_buddy (7 subtests) ==================
[02:18:03] [PASSED] drm_test_buddy_alloc_limit
[02:18:03] [PASSED] drm_test_buddy_alloc_optimistic
[02:18:03] [PASSED] drm_test_buddy_alloc_pessimistic
[02:18:03] [PASSED] drm_test_buddy_alloc_pathological
[02:18:03] [PASSED] drm_test_buddy_alloc_contiguous
[02:18:03] [PASSED] drm_test_buddy_alloc_clear
[02:18:03] [PASSED] drm_test_buddy_alloc_range_bias
[02:18:03] ==================== [PASSED] drm_buddy ====================
[02:18:03] ============= drm_cmdline_parser (40 subtests) =============
[02:18:03] [PASSED] drm_test_cmdline_force_d_only
[02:18:03] [PASSED] drm_test_cmdline_force_D_only_dvi
[02:18:03] [PASSED] drm_test_cmdline_force_D_only_hdmi
[02:18:03] [PASSED] drm_test_cmdline_force_D_only_not_digital
[02:18:03] [PASSED] drm_test_cmdline_force_e_only
[02:18:03] [PASSED] drm_test_cmdline_res
[02:18:03] [PASSED] drm_test_cmdline_res_vesa
[02:18:03] [PASSED] drm_test_cmdline_res_vesa_rblank
[02:18:03] [PASSED] drm_test_cmdline_res_rblank
[02:18:03] [PASSED] drm_test_cmdline_res_bpp
[02:18:03] [PASSED] drm_test_cmdline_res_refresh
[02:18:03] [PASSED] drm_test_cmdline_res_bpp_refresh
[02:18:03] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[02:18:03] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[02:18:03] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[02:18:03] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[02:18:03] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[02:18:03] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[02:18:03] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[02:18:03] [PASSED] drm_test_cmdline_res_margins_force_on
[02:18:03] [PASSED] drm_test_cmdline_res_vesa_margins
[02:18:03] [PASSED] drm_test_cmdline_name
[02:18:03] [PASSED] drm_test_cmdline_name_bpp
[02:18:03] [PASSED] drm_test_cmdline_name_option
[02:18:03] [PASSED] drm_test_cmdline_name_bpp_option
[02:18:03] [PASSED] drm_test_cmdline_rotate_0
[02:18:03] [PASSED] drm_test_cmdline_rotate_90
[02:18:03] [PASSED] drm_test_cmdline_rotate_180
[02:18:03] [PASSED] drm_test_cmdline_rotate_270
[02:18:03] [PASSED] drm_test_cmdline_hmirror
[02:18:03] [PASSED] drm_test_cmdline_vmirror
[02:18:03] [PASSED] drm_test_cmdline_margin_options
[02:18:03] [PASSED] drm_test_cmdline_multiple_options
[02:18:03] [PASSED] drm_test_cmdline_bpp_extra_and_option
[02:18:03] [PASSED] drm_test_cmdline_extra_and_option
[02:18:03] [PASSED] drm_test_cmdline_freestanding_options
[02:18:03] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[02:18:03] [PASSED] drm_test_cmdline_panel_orientation
[02:18:03] ================ drm_test_cmdline_invalid =================
[02:18:03] [PASSED] margin_only
[02:18:03] [PASSED] interlace_only
[02:18:03] [PASSED] res_missing_x
[02:18:03] [PASSED] res_missing_y
[02:18:03] [PASSED] res_bad_y
[02:18:03] [PASSED] res_missing_y_bpp
[02:18:03] [PASSED] res_bad_bpp
[02:18:03] [PASSED] res_bad_refresh
[02:18:03] [PASSED] res_bpp_refresh_force_on_off
[02:18:03] [PASSED] res_invalid_mode
[02:18:03] [PASSED] res_bpp_wrong_place_mode
[02:18:03] [PASSED] name_bpp_refresh
[02:18:03] [PASSED] name_refresh
[02:18:03] [PASSED] name_refresh_wrong_mode
[02:18:03] [PASSED] name_refresh_invalid_mode
[02:18:03] [PASSED] rotate_multiple
[02:18:03] [PASSED] rotate_invalid_val
[02:18:03] [PASSED] rotate_truncated
[02:18:03] [PASSED] invalid_option
[02:18:03] [PASSED] invalid_tv_option
[02:18:03] [PASSED] truncated_tv_option
[02:18:03] ============ [PASSED] drm_test_cmdline_invalid =============
[02:18:03] =============== drm_test_cmdline_tv_options ===============
[02:18:03] [PASSED] NTSC
[02:18:03] [PASSED] NTSC_443
[02:18:03] [PASSED] NTSC_J
[02:18:03] [PASSED] PAL
[02:18:03] [PASSED] PAL_M
[02:18:03] [PASSED] PAL_N
[02:18:03] [PASSED] SECAM
[02:18:03] [PASSED] MONO_525
[02:18:03] [PASSED] MONO_625
[02:18:03] =========== [PASSED] drm_test_cmdline_tv_options ===========
[02:18:03] =============== [PASSED] drm_cmdline_parser ================
[02:18:03] ========== drmm_connector_hdmi_init (20 subtests) ==========
[02:18:03] [PASSED] drm_test_connector_hdmi_init_valid
[02:18:03] [PASSED] drm_test_connector_hdmi_init_bpc_8
[02:18:03] [PASSED] drm_test_connector_hdmi_init_bpc_10
[02:18:03] [PASSED] drm_test_connector_hdmi_init_bpc_12
[02:18:03] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[02:18:03] [PASSED] drm_test_connector_hdmi_init_bpc_null
[02:18:03] [PASSED] drm_test_connector_hdmi_init_formats_empty
[02:18:03] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[02:18:03] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[02:18:03] [PASSED] supported_formats=0x9 yuv420_allowed=1
[02:18:03] [PASSED] supported_formats=0x9 yuv420_allowed=0
[02:18:03] [PASSED] supported_formats=0x3 yuv420_allowed=1
[02:18:03] [PASSED] supported_formats=0x3 yuv420_allowed=0
[02:18:03] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[02:18:03] [PASSED] drm_test_connector_hdmi_init_null_ddc
[02:18:03] [PASSED] drm_test_connector_hdmi_init_null_product
[02:18:03] [PASSED] drm_test_connector_hdmi_init_null_vendor
[02:18:03] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[02:18:03] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[02:18:03] [PASSED] drm_test_connector_hdmi_init_product_valid
[02:18:03] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[02:18:03] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[02:18:03] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[02:18:03] ========= drm_test_connector_hdmi_init_type_valid =========
[02:18:03] [PASSED] HDMI-A
[02:18:03] [PASSED] HDMI-B
[02:18:03] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[02:18:03] ======== drm_test_connector_hdmi_init_type_invalid ========
[02:18:03] [PASSED] Unknown
[02:18:03] [PASSED] VGA
[02:18:03] [PASSED] DVI-I
[02:18:03] [PASSED] DVI-D
[02:18:03] [PASSED] DVI-A
[02:18:03] [PASSED] Composite
[02:18:03] [PASSED] SVIDEO
[02:18:03] [PASSED] LVDS
[02:18:03] [PASSED] Component
[02:18:03] [PASSED] DIN
[02:18:03] [PASSED] DP
[02:18:03] [PASSED] TV
[02:18:03] [PASSED] eDP
[02:18:03] [PASSED] Virtual
[02:18:03] [PASSED] DSI
[02:18:03] [PASSED] DPI
[02:18:03] [PASSED] Writeback
[02:18:03] [PASSED] SPI
[02:18:03] [PASSED] USB
[02:18:03] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[02:18:03] ============ [PASSED] drmm_connector_hdmi_init =============
[02:18:03] ============= drmm_connector_init (3 subtests) =============
[02:18:03] [PASSED] drm_test_drmm_connector_init
[02:18:03] [PASSED] drm_test_drmm_connector_init_null_ddc
[02:18:03] ========= drm_test_drmm_connector_init_type_valid =========
[02:18:03] [PASSED] Unknown
[02:18:03] [PASSED] VGA
[02:18:03] [PASSED] DVI-I
[02:18:03] [PASSED] DVI-D
[02:18:03] [PASSED] DVI-A
[02:18:03] [PASSED] Composite
[02:18:03] [PASSED] SVIDEO
[02:18:03] [PASSED] LVDS
[02:18:03] [PASSED] Component
[02:18:03] [PASSED] DIN
[02:18:03] [PASSED] DP
[02:18:03] [PASSED] HDMI-A
[02:18:03] [PASSED] HDMI-B
[02:18:03] [PASSED] TV
[02:18:03] [PASSED] eDP
[02:18:03] [PASSED] Virtual
[02:18:03] [PASSED] DSI
[02:18:03] [PASSED] DPI
[02:18:03] [PASSED] Writeback
[02:18:03] [PASSED] SPI
[02:18:03] [PASSED] USB
[02:18:03] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[02:18:03] =============== [PASSED] drmm_connector_init ===============
[02:18:03] ========= drm_connector_dynamic_init (6 subtests) ==========
[02:18:03] [PASSED] drm_test_drm_connector_dynamic_init
[02:18:03] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[02:18:03] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[02:18:03] [PASSED] drm_test_drm_connector_dynamic_init_properties
[02:18:03] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[02:18:03] [PASSED] Unknown
[02:18:03] [PASSED] VGA
[02:18:03] [PASSED] DVI-I
[02:18:03] [PASSED] DVI-D
[02:18:03] [PASSED] DVI-A
[02:18:03] [PASSED] Composite
[02:18:03] [PASSED] SVIDEO
[02:18:03] [PASSED] LVDS
[02:18:03] [PASSED] Component
[02:18:03] [PASSED] DIN
[02:18:03] [PASSED] DP
[02:18:03] [PASSED] HDMI-A
[02:18:03] [PASSED] HDMI-B
[02:18:03] [PASSED] TV
[02:18:03] [PASSED] eDP
[02:18:03] [PASSED] Virtual
[02:18:03] [PASSED] DSI
[02:18:03] [PASSED] DPI
[02:18:03] [PASSED] Writeback
[02:18:03] [PASSED] SPI
[02:18:03] [PASSED] USB
[02:18:03] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[02:18:03] ======== drm_test_drm_connector_dynamic_init_name =========
[02:18:03] [PASSED] Unknown
[02:18:03] [PASSED] VGA
[02:18:03] [PASSED] DVI-I
[02:18:03] [PASSED] DVI-D
[02:18:03] [PASSED] DVI-A
[02:18:03] [PASSED] Composite
[02:18:03] [PASSED] SVIDEO
[02:18:03] [PASSED] LVDS
[02:18:03] [PASSED] Component
[02:18:03] [PASSED] DIN
[02:18:03] [PASSED] DP
[02:18:03] [PASSED] HDMI-A
[02:18:03] [PASSED] HDMI-B
[02:18:03] [PASSED] TV
[02:18:03] [PASSED] eDP
[02:18:03] [PASSED] Virtual
[02:18:03] [PASSED] DSI
[02:18:03] [PASSED] DPI
[02:18:03] [PASSED] Writeback
[02:18:03] [PASSED] SPI
[02:18:03] [PASSED] USB
[02:18:03] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[02:18:03] =========== [PASSED] drm_connector_dynamic_init ============
[02:18:03] ==== drm_connector_dynamic_register_early (4 subtests) =====
[02:18:03] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[02:18:03] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[02:18:03] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[02:18:03] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[02:18:03] ====== [PASSED] drm_connector_dynamic_register_early =======
[02:18:03] ======= drm_connector_dynamic_register (7 subtests) ========
[02:18:03] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[02:18:03] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[02:18:03] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[02:18:03] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[02:18:03] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[02:18:03] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[02:18:03] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[02:18:03] ========= [PASSED] drm_connector_dynamic_register ==========
[02:18:03] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[02:18:03] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[02:18:03] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[02:18:03] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[02:18:03] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[02:18:03] ========== drm_test_get_tv_mode_from_name_valid ===========
[02:18:03] [PASSED] NTSC
[02:18:03] [PASSED] NTSC-443
[02:18:03] [PASSED] NTSC-J
[02:18:03] [PASSED] PAL
[02:18:03] [PASSED] PAL-M
[02:18:03] [PASSED] PAL-N
[02:18:03] [PASSED] SECAM
[02:18:03] [PASSED] Mono
[02:18:03] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[02:18:03] [PASSED] drm_test_get_tv_mode_from_name_truncated
[02:18:03] ============ [PASSED] drm_get_tv_mode_from_name ============
[02:18:03] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[02:18:03] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[02:18:03] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[02:18:03] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[02:18:03] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[02:18:03] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[02:18:03] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[02:18:03] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[02:18:03] [PASSED] VIC 96
[02:18:03] [PASSED] VIC 97
[02:18:03] [PASSED] VIC 101
[02:18:03] [PASSED] VIC 102
[02:18:03] [PASSED] VIC 106
[02:18:03] [PASSED] VIC 107
[02:18:03] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[02:18:03] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[02:18:03] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[02:18:03] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[02:18:03] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[02:18:03] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[02:18:03] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[02:18:03] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[02:18:03] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[02:18:03] [PASSED] Automatic
[02:18:03] [PASSED] Full
[02:18:03] [PASSED] Limited 16:235
[02:18:03] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[02:18:03] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[02:18:03] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[02:18:03] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[02:18:03] === drm_test_drm_hdmi_connector_get_output_format_name ====
[02:18:03] [PASSED] RGB
[02:18:03] [PASSED] YUV 4:2:0
[02:18:03] [PASSED] YUV 4:2:2
[02:18:03] [PASSED] YUV 4:4:4
[02:18:03] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[02:18:03] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[02:18:03] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[02:18:03] ============= drm_damage_helper (21 subtests) ==============
[02:18:03] [PASSED] drm_test_damage_iter_no_damage
[02:18:03] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[02:18:03] [PASSED] drm_test_damage_iter_no_damage_src_moved
[02:18:03] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[02:18:03] [PASSED] drm_test_damage_iter_no_damage_not_visible
[02:18:03] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[02:18:03] [PASSED] drm_test_damage_iter_no_damage_no_fb
[02:18:03] [PASSED] drm_test_damage_iter_simple_damage
[02:18:03] [PASSED] drm_test_damage_iter_single_damage
[02:18:03] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[02:18:03] [PASSED] drm_test_damage_iter_single_damage_outside_src
[02:18:03] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[02:18:03] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[02:18:03] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[02:18:03] [PASSED] drm_test_damage_iter_single_damage_src_moved
[02:18:03] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[02:18:03] [PASSED] drm_test_damage_iter_damage
[02:18:03] [PASSED] drm_test_damage_iter_damage_one_intersect
[02:18:03] [PASSED] drm_test_damage_iter_damage_one_outside
[02:18:03] [PASSED] drm_test_damage_iter_damage_src_moved
[02:18:03] [PASSED] drm_test_damage_iter_damage_not_visible
[02:18:03] ================ [PASSED] drm_damage_helper ================
[02:18:03] ============== drm_dp_mst_helper (3 subtests) ==============
[02:18:03] ============== drm_test_dp_mst_calc_pbn_mode ==============
[02:18:03] [PASSED] Clock 154000 BPP 30 DSC disabled
[02:18:03] [PASSED] Clock 234000 BPP 30 DSC disabled
[02:18:03] [PASSED] Clock 297000 BPP 24 DSC disabled
[02:18:03] [PASSED] Clock 332880 BPP 24 DSC enabled
[02:18:03] [PASSED] Clock 324540 BPP 24 DSC enabled
[02:18:03] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[02:18:03] ============== drm_test_dp_mst_calc_pbn_div ===============
[02:18:03] [PASSED] Link rate 2000000 lane count 4
[02:18:03] [PASSED] Link rate 2000000 lane count 2
[02:18:03] [PASSED] Link rate 2000000 lane count 1
[02:18:03] [PASSED] Link rate 1350000 lane count 4
[02:18:03] [PASSED] Link rate 1350000 lane count 2
[02:18:03] [PASSED] Link rate 1350000 lane count 1
[02:18:03] [PASSED] Link rate 1000000 lane count 4
[02:18:03] [PASSED] Link rate 1000000 lane count 2
[02:18:03] [PASSED] Link rate 1000000 lane count 1
[02:18:03] [PASSED] Link rate 810000 lane count 4
[02:18:03] [PASSED] Link rate 810000 lane count 2
[02:18:03] [PASSED] Link rate 810000 lane count 1
[02:18:03] [PASSED] Link rate 540000 lane count 4
[02:18:03] [PASSED] Link rate 540000 lane count 2
[02:18:03] [PASSED] Link rate 540000 lane count 1
[02:18:03] [PASSED] Link rate 270000 lane count 4
[02:18:03] [PASSED] Link rate 270000 lane count 2
[02:18:03] [PASSED] Link rate 270000 lane count 1
[02:18:03] [PASSED] Link rate 162000 lane count 4
[02:18:03] [PASSED] Link rate 162000 lane count 2
[02:18:03] [PASSED] Link rate 162000 lane count 1
[02:18:03] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[02:18:03] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[02:18:03] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[02:18:03] [PASSED] DP_POWER_UP_PHY with port number
[02:18:03] [PASSED] DP_POWER_DOWN_PHY with port number
[02:18:03] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[02:18:03] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[02:18:03] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[02:18:03] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[02:18:03] [PASSED] DP_QUERY_PAYLOAD with port number
[02:18:03] [PASSED] DP_QUERY_PAYLOAD with VCPI
[02:18:03] [PASSED] DP_REMOTE_DPCD_READ with port number
[02:18:03] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[02:18:03] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[02:18:03] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[02:18:03] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[02:18:03] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[02:18:03] [PASSED] DP_REMOTE_I2C_READ with port number
[02:18:03] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[02:18:03] [PASSED] DP_REMOTE_I2C_READ with transactions array
[02:18:03] [PASSED] DP_REMOTE_I2C_WRITE with port number
[02:18:03] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[02:18:03] [PASSED] DP_REMOTE_I2C_WRITE with data array
[02:18:03] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[02:18:03] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[02:18:03] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[02:18:03] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[02:18:03] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[02:18:03] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[02:18:03] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[02:18:03] ================ [PASSED] drm_dp_mst_helper ================
[02:18:03] ================== drm_exec (7 subtests) ===================
[02:18:03] [PASSED] sanitycheck
[02:18:03] [PASSED] test_lock
[02:18:03] [PASSED] test_lock_unlock
[02:18:03] [PASSED] test_duplicates
[02:18:03] [PASSED] test_prepare
[02:18:03] [PASSED] test_prepare_array
[02:18:03] [PASSED] test_multiple_loops
[02:18:03] ==================== [PASSED] drm_exec =====================
[02:18:03] =========== drm_format_helper_test (17 subtests) ===========
[02:18:03] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[02:18:03] [PASSED] single_pixel_source_buffer
[02:18:03] [PASSED] single_pixel_clip_rectangle
[02:18:03] [PASSED] well_known_colors
[02:18:03] [PASSED] destination_pitch
[02:18:03] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[02:18:03] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[02:18:03] [PASSED] single_pixel_source_buffer
[02:18:03] [PASSED] single_pixel_clip_rectangle
[02:18:03] [PASSED] well_known_colors
[02:18:03] [PASSED] destination_pitch
[02:18:03] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[02:18:03] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[02:18:03] [PASSED] single_pixel_source_buffer
[02:18:03] [PASSED] single_pixel_clip_rectangle
[02:18:03] [PASSED] well_known_colors
[02:18:03] [PASSED] destination_pitch
[02:18:03] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[02:18:03] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[02:18:03] [PASSED] single_pixel_source_buffer
[02:18:03] [PASSED] single_pixel_clip_rectangle
[02:18:03] [PASSED] well_known_colors
[02:18:03] [PASSED] destination_pitch
[02:18:03] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[02:18:03] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[02:18:03] [PASSED] single_pixel_source_buffer
[02:18:03] [PASSED] single_pixel_clip_rectangle
[02:18:03] [PASSED] well_known_colors
[02:18:03] [PASSED] destination_pitch
[02:18:03] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[02:18:03] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[02:18:03] [PASSED] single_pixel_source_buffer
[02:18:03] [PASSED] single_pixel_clip_rectangle
[02:18:03] [PASSED] well_known_colors
[02:18:03] [PASSED] destination_pitch
[02:18:03] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[02:18:03] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[02:18:03] [PASSED] single_pixel_source_buffer
[02:18:03] [PASSED] single_pixel_clip_rectangle
[02:18:03] [PASSED] well_known_colors
[02:18:03] [PASSED] destination_pitch
[02:18:03] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[02:18:03] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[02:18:03] [PASSED] single_pixel_source_buffer
[02:18:03] [PASSED] single_pixel_clip_rectangle
[02:18:03] [PASSED] well_known_colors
[02:18:03] [PASSED] destination_pitch
[02:18:03] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[02:18:03] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[02:18:03] [PASSED] single_pixel_source_buffer
[02:18:03] [PASSED] single_pixel_clip_rectangle
[02:18:03] [PASSED] well_known_colors
[02:18:03] [PASSED] destination_pitch
[02:18:03] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[02:18:03] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[02:18:03] [PASSED] single_pixel_source_buffer
[02:18:03] [PASSED] single_pixel_clip_rectangle
[02:18:03] [PASSED] well_known_colors
[02:18:03] [PASSED] destination_pitch
[02:18:03] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[02:18:03] ============== drm_test_fb_xrgb8888_to_mono ===============
[02:18:03] [PASSED] single_pixel_source_buffer
[02:18:03] [PASSED] single_pixel_clip_rectangle
[02:18:03] [PASSED] well_known_colors
[02:18:03] [PASSED] destination_pitch
[02:18:03] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[02:18:03] ==================== drm_test_fb_swab =====================
[02:18:03] [PASSED] single_pixel_source_buffer
[02:18:03] [PASSED] single_pixel_clip_rectangle
[02:18:03] [PASSED] well_known_colors
[02:18:03] [PASSED] destination_pitch
[02:18:03] ================ [PASSED] drm_test_fb_swab =================
[02:18:03] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[02:18:03] [PASSED] single_pixel_source_buffer
[02:18:03] [PASSED] single_pixel_clip_rectangle
[02:18:03] [PASSED] well_known_colors
[02:18:03] [PASSED] destination_pitch
[02:18:03] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[02:18:03] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[02:18:03] [PASSED] single_pixel_source_buffer
[02:18:03] [PASSED] single_pixel_clip_rectangle
[02:18:03] [PASSED] well_known_colors
[02:18:03] [PASSED] destination_pitch
[02:18:03] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[02:18:03] ================= drm_test_fb_clip_offset =================
[02:18:03] [PASSED] pass through
[02:18:03] [PASSED] horizontal offset
[02:18:03] [PASSED] vertical offset
[02:18:03] [PASSED] horizontal and vertical offset
[02:18:03] [PASSED] horizontal offset (custom pitch)
[02:18:03] [PASSED] vertical offset (custom pitch)
[02:18:03] [PASSED] horizontal and vertical offset (custom pitch)
[02:18:03] ============= [PASSED] drm_test_fb_clip_offset =============
[02:18:03] ============== drm_test_fb_build_fourcc_list ==============
[02:18:03] [PASSED] no native formats
[02:18:03] [PASSED] XRGB8888 as native format
[02:18:03] [PASSED] remove duplicates
[02:18:03] [PASSED] convert alpha formats
[02:18:03] [PASSED] random formats
[02:18:03] ========== [PASSED] drm_test_fb_build_fourcc_list ==========
[02:18:03] =================== drm_test_fb_memcpy ====================
[02:18:03] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[02:18:03] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[02:18:03] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[02:18:03] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[02:18:03] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[02:18:03] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[02:18:03] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[02:18:03] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[02:18:03] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[02:18:03] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[02:18:03] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[02:18:03] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[02:18:03] =============== [PASSED] drm_test_fb_memcpy ================
[02:18:03] ============= [PASSED] drm_format_helper_test ==============
[02:18:03] ================= drm_format (18 subtests) =================
[02:18:03] [PASSED] drm_test_format_block_width_invalid
[02:18:03] [PASSED] drm_test_format_block_width_one_plane
[02:18:03] [PASSED] drm_test_format_block_width_two_plane
[02:18:03] [PASSED] drm_test_format_block_width_three_plane
[02:18:03] [PASSED] drm_test_format_block_width_tiled
[02:18:03] [PASSED] drm_test_format_block_height_invalid
[02:18:03] [PASSED] drm_test_format_block_height_one_plane
[02:18:03] [PASSED] drm_test_format_block_height_two_plane
[02:18:03] [PASSED] drm_test_format_block_height_three_plane
[02:18:03] [PASSED] drm_test_format_block_height_tiled
[02:18:03] [PASSED] drm_test_format_min_pitch_invalid
[02:18:03] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[02:18:03] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[02:18:03] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[02:18:03] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[02:18:03] [PASSED] drm_test_format_min_pitch_two_plane
[02:18:03] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[02:18:03] [PASSED] drm_test_format_min_pitch_tiled
[02:18:03] =================== [PASSED] drm_format ====================
[02:18:03] ============== drm_framebuffer (10 subtests) ===============
[02:18:03] ========== drm_test_framebuffer_check_src_coords ==========
[02:18:03] [PASSED] Success: source fits into fb
[02:18:03] [PASSED] Fail: overflowing fb with x-axis coordinate
[02:18:03] [PASSED] Fail: overflowing fb with y-axis coordinate
[02:18:03] [PASSED] Fail: overflowing fb with source width
[02:18:03] [PASSED] Fail: overflowing fb with source height
[02:18:03] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[02:18:03] [PASSED] drm_test_framebuffer_cleanup
[02:18:03] =============== drm_test_framebuffer_create ===============
[02:18:03] [PASSED] ABGR8888 normal sizes
[02:18:03] [PASSED] ABGR8888 max sizes
[02:18:03] [PASSED] ABGR8888 pitch greater than min required
[02:18:03] [PASSED] ABGR8888 pitch less than min required
[02:18:03] [PASSED] ABGR8888 Invalid width
[02:18:03] [PASSED] ABGR8888 Invalid buffer handle
[02:18:03] [PASSED] No pixel format
[02:18:03] [PASSED] ABGR8888 Width 0
[02:18:03] [PASSED] ABGR8888 Height 0
[02:18:03] [PASSED] ABGR8888 Out of bound height * pitch combination
[02:18:03] [PASSED] ABGR8888 Large buffer offset
[02:18:03] [PASSED] ABGR8888 Buffer offset for inexistent plane
[02:18:03] [PASSED] ABGR8888 Invalid flag
[02:18:03] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[02:18:03] [PASSED] ABGR8888 Valid buffer modifier
[02:18:03] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[02:18:03] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[02:18:03] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[02:18:03] [PASSED] NV12 Normal sizes
[02:18:03] [PASSED] NV12 Max sizes
[02:18:03] [PASSED] NV12 Invalid pitch
[02:18:03] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[02:18:03] [PASSED] NV12 different modifier per-plane
[02:18:03] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[02:18:03] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[02:18:03] [PASSED] NV12 Modifier for inexistent plane
[02:18:03] [PASSED] NV12 Handle for inexistent plane
[02:18:03] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[02:18:03] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[02:18:03] [PASSED] YVU420 Normal sizes
[02:18:03] [PASSED] YVU420 Max sizes
[02:18:03] [PASSED] YVU420 Invalid pitch
[02:18:03] [PASSED] YVU420 Different pitches
[02:18:03] [PASSED] YVU420 Different buffer offsets/pitches
[02:18:03] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[02:18:03] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[02:18:03] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[02:18:03] [PASSED] YVU420 Valid modifier
[02:18:03] [PASSED] YVU420 Different modifiers per plane
[02:18:03] [PASSED] YVU420 Modifier for inexistent plane
[02:18:03] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[02:18:03] [PASSED] X0L2 Normal sizes
[02:18:03] [PASSED] X0L2 Max sizes
[02:18:03] [PASSED] X0L2 Invalid pitch
[02:18:03] [PASSED] X0L2 Pitch greater than minimum required
[02:18:03] [PASSED] X0L2 Handle for inexistent plane
[02:18:03] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[02:18:03] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[02:18:03] [PASSED] X0L2 Valid modifier
[02:18:03] [PASSED] X0L2 Modifier for inexistent plane
[02:18:03] =========== [PASSED] drm_test_framebuffer_create ===========
[02:18:03] [PASSED] drm_test_framebuffer_free
[02:18:03] [PASSED] drm_test_framebuffer_init
[02:18:03] [PASSED] drm_test_framebuffer_init_bad_format
[02:18:03] [PASSED] drm_test_framebuffer_init_dev_mismatch
[02:18:03] [PASSED] drm_test_framebuffer_lookup
[02:18:03] [PASSED] drm_test_framebuffer_lookup_inexistent
[02:18:03] [PASSED] drm_test_framebuffer_modifiers_not_supported
[02:18:03] ================= [PASSED] drm_framebuffer =================
[02:18:03] ================ drm_gem_shmem (8 subtests) ================
[02:18:03] [PASSED] drm_gem_shmem_test_obj_create
[02:18:03] [PASSED] drm_gem_shmem_test_obj_create_private
[02:18:03] [PASSED] drm_gem_shmem_test_pin_pages
[02:18:03] [PASSED] drm_gem_shmem_test_vmap
[02:18:03] [PASSED] drm_gem_shmem_test_get_pages_sgt
[02:18:03] [PASSED] drm_gem_shmem_test_get_sg_table
[02:18:03] [PASSED] drm_gem_shmem_test_madvise
[02:18:03] [PASSED] drm_gem_shmem_test_purge
[02:18:03] ================== [PASSED] drm_gem_shmem ==================
[02:18:03] === drm_atomic_helper_connector_hdmi_check (23 subtests) ===
[02:18:03] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[02:18:03] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[02:18:03] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[02:18:03] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[02:18:03] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[02:18:03] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[02:18:03] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[02:18:03] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[02:18:03] [PASSED] drm_test_check_disable_connector
[02:18:03] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[02:18:03] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback
[02:18:03] [PASSED] drm_test_check_max_tmds_rate_format_fallback
[02:18:03] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[02:18:03] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[02:18:03] [PASSED] drm_test_check_output_bpc_dvi
[02:18:03] [PASSED] drm_test_check_output_bpc_format_vic_1
[02:18:03] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[02:18:03] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[02:18:03] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[02:18:03] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[02:18:03] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[02:18:03] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[02:18:03] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[02:18:03] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[02:18:03] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[02:18:03] [PASSED] drm_test_check_broadcast_rgb_value
[02:18:03] [PASSED] drm_test_check_bpc_8_value
[02:18:03] [PASSED] drm_test_check_bpc_10_value
[02:18:03] [PASSED] drm_test_check_bpc_12_value
[02:18:03] [PASSED] drm_test_check_format_value
[02:18:03] [PASSED] drm_test_check_tmds_char_value
[02:18:03] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[02:18:03] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[02:18:03] [PASSED] drm_test_check_mode_valid
[02:18:03] [PASSED] drm_test_check_mode_valid_reject
[02:18:03] [PASSED] drm_test_check_mode_valid_reject_rate
[02:18:03] [PASSED] drm_test_check_mode_valid_reject_max_clock
[02:18:03] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[02:18:03] ================= drm_managed (2 subtests) =================
[02:18:03] [PASSED] drm_test_managed_release_action
[02:18:03] [PASSED] drm_test_managed_run_action
[02:18:03] =================== [PASSED] drm_managed ===================
[02:18:03] =================== drm_mm (6 subtests) ====================
[02:18:03] [PASSED] drm_test_mm_init
[02:18:03] [PASSED] drm_test_mm_debug
[02:18:03] [PASSED] drm_test_mm_align32
[02:18:03] [PASSED] drm_test_mm_align64
[02:18:03] [PASSED] drm_test_mm_lowest
[02:18:03] [PASSED] drm_test_mm_highest
[02:18:03] ===================== [PASSED] drm_mm ======================
[02:18:03] ============= drm_modes_analog_tv (5 subtests) =============
[02:18:03] [PASSED] drm_test_modes_analog_tv_mono_576i
[02:18:03] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[02:18:03] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[02:18:03] [PASSED] drm_test_modes_analog_tv_pal_576i
[02:18:03] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[02:18:03] =============== [PASSED] drm_modes_analog_tv ===============
[02:18:03] ============== drm_plane_helper (2 subtests) ===============
[02:18:03] =============== drm_test_check_plane_state ================
[02:18:03] [PASSED] clipping_simple
[02:18:03] [PASSED] clipping_rotate_reflect
[02:18:03] [PASSED] positioning_simple
[02:18:03] [PASSED] upscaling
[02:18:03] [PASSED] downscaling
[02:18:03] [PASSED] rounding1
[02:18:03] [PASSED] rounding2
[02:18:03] [PASSED] rounding3
[02:18:03] [PASSED] rounding4
[02:18:03] =========== [PASSED] drm_test_check_plane_state ============
[02:18:03] =========== drm_test_check_invalid_plane_state ============
[02:18:03] [PASSED] positioning_invalid
[02:18:03] [PASSED] upscaling_invalid
[02:18:03] [PASSED] downscaling_invalid
[02:18:03] ======= [PASSED] drm_test_check_invalid_plane_state ========
[02:18:03] ================ [PASSED] drm_plane_helper =================
[02:18:03] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[02:18:03] ====== drm_test_connector_helper_tv_get_modes_check =======
[02:18:03] [PASSED] None
[02:18:03] [PASSED] PAL
[02:18:03] [PASSED] NTSC
[02:18:03] [PASSED] Both, NTSC Default
[02:18:03] [PASSED] Both, PAL Default
[02:18:03] [PASSED] Both, NTSC Default, with PAL on command-line
[02:18:03] [PASSED] Both, PAL Default, with NTSC on command-line
[02:18:03] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[02:18:03] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[02:18:03] ================== drm_rect (9 subtests) ===================
[02:18:03] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[02:18:03] [PASSED] drm_test_rect_clip_scaled_not_clipped
[02:18:03] [PASSED] drm_test_rect_clip_scaled_clipped
[02:18:03] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[02:18:03] ================= drm_test_rect_intersect =================
[02:18:03] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[02:18:03] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[02:18:03] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[02:18:03] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[02:18:03] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[02:18:03] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[02:18:03] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[02:18:03] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[02:18:03] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[02:18:03] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[02:18:03] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[02:18:03] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[02:18:03] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[02:18:03] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[02:18:03] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[02:18:03] ============= [PASSED] drm_test_rect_intersect =============
[02:18:03] ================ drm_test_rect_calc_hscale ================
[02:18:03] [PASSED] normal use
[02:18:03] [PASSED] out of max range
[02:18:03] [PASSED] out of min range
[02:18:03] [PASSED] zero dst
[02:18:03] [PASSED] negative src
[02:18:03] [PASSED] negative dst
[02:18:03] ============ [PASSED] drm_test_rect_calc_hscale ============
[02:18:03] ================ drm_test_rect_calc_vscale ================
[02:18:03] [PASSED] normal use
[02:18:03] [PASSED] out of max range
[02:18:03] [PASSED] out of min range
[02:18:03] [PASSED] zero dst
[02:18:03] [PASSED] negative src
[02:18:03] [PASSED] negative dst
[02:18:03] ============ [PASSED] drm_test_rect_calc_vscale ============
[02:18:03] ================== drm_test_rect_rotate ===================
[02:18:03] [PASSED] reflect-x
[02:18:03] [PASSED] reflect-y
[02:18:03] [PASSED] rotate-0
[02:18:03] [PASSED] rotate-90
[02:18:03] [PASSED] rotate-180
[02:18:03] [PASSED] rotate-270
stty: 'standard input': Inappropriate ioctl for device
[02:18:03] ============== [PASSED] drm_test_rect_rotate ===============
[02:18:03] ================ drm_test_rect_rotate_inv =================
[02:18:03] [PASSED] reflect-x
[02:18:03] [PASSED] reflect-y
[02:18:03] [PASSED] rotate-0
[02:18:03] [PASSED] rotate-90
[02:18:03] [PASSED] rotate-180
[02:18:03] [PASSED] rotate-270
[02:18:03] ============ [PASSED] drm_test_rect_rotate_inv =============
[02:18:03] ==================== [PASSED] drm_rect =====================
[02:18:03] ============================================================
[02:18:03] Testing complete. Ran 598 tests: passed: 598
[02:18:03] Elapsed time: 22.393s total, 1.565s configuring, 20.657s building, 0.145s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[02:18:03] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[02:18:05] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json ARCH=um O=.kunit --jobs=48
[02:18:12] Starting KUnit Kernel (1/1)...
[02:18:12] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[02:18:12] ================= ttm_device (5 subtests) ==================
[02:18:12] [PASSED] ttm_device_init_basic
[02:18:12] [PASSED] ttm_device_init_multiple
[02:18:12] [PASSED] ttm_device_fini_basic
[02:18:12] [PASSED] ttm_device_init_no_vma_man
[02:18:12] ================== ttm_device_init_pools ==================
[02:18:12] [PASSED] No DMA allocations, no DMA32 required
[02:18:12] [PASSED] DMA allocations, DMA32 required
[02:18:12] [PASSED] No DMA allocations, DMA32 required
[02:18:12] [PASSED] DMA allocations, no DMA32 required
[02:18:12] ============== [PASSED] ttm_device_init_pools ==============
[02:18:12] =================== [PASSED] ttm_device ====================
[02:18:12] ================== ttm_pool (8 subtests) ===================
[02:18:12] ================== ttm_pool_alloc_basic ===================
[02:18:12] [PASSED] One page
[02:18:12] [PASSED] More than one page
[02:18:12] [PASSED] Above the allocation limit
[02:18:12] [PASSED] One page, with coherent DMA mappings enabled
[02:18:12] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[02:18:12] ============== [PASSED] ttm_pool_alloc_basic ===============
[02:18:12] ============== ttm_pool_alloc_basic_dma_addr ==============
[02:18:12] [PASSED] One page
[02:18:12] [PASSED] More than one page
[02:18:12] [PASSED] Above the allocation limit
[02:18:12] [PASSED] One page, with coherent DMA mappings enabled
[02:18:12] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[02:18:12] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[02:18:12] [PASSED] ttm_pool_alloc_order_caching_match
[02:18:12] [PASSED] ttm_pool_alloc_caching_mismatch
[02:18:12] [PASSED] ttm_pool_alloc_order_mismatch
[02:18:12] [PASSED] ttm_pool_free_dma_alloc
[02:18:12] [PASSED] ttm_pool_free_no_dma_alloc
[02:18:12] [PASSED] ttm_pool_fini_basic
[02:18:12] ==================== [PASSED] ttm_pool =====================
[02:18:12] ================ ttm_resource (8 subtests) =================
[02:18:12] ================= ttm_resource_init_basic =================
[02:18:12] [PASSED] Init resource in TTM_PL_SYSTEM
[02:18:12] [PASSED] Init resource in TTM_PL_VRAM
[02:18:12] [PASSED] Init resource in a private placement
[02:18:12] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[02:18:12] ============= [PASSED] ttm_resource_init_basic =============
[02:18:12] [PASSED] ttm_resource_init_pinned
[02:18:12] [PASSED] ttm_resource_fini_basic
[02:18:12] [PASSED] ttm_resource_manager_init_basic
[02:18:12] [PASSED] ttm_resource_manager_usage_basic
[02:18:12] [PASSED] ttm_resource_manager_set_used_basic
[02:18:12] [PASSED] ttm_sys_man_alloc_basic
[02:18:12] [PASSED] ttm_sys_man_free_basic
[02:18:12] ================== [PASSED] ttm_resource ===================
[02:18:12] =================== ttm_tt (15 subtests) ===================
[02:18:12] ==================== ttm_tt_init_basic ====================
[02:18:12] [PASSED] Page-aligned size
[02:18:12] [PASSED] Extra pages requested
[02:18:12] ================ [PASSED] ttm_tt_init_basic ================
[02:18:12] [PASSED] ttm_tt_init_misaligned
[02:18:12] [PASSED] ttm_tt_fini_basic
[02:18:12] [PASSED] ttm_tt_fini_sg
[02:18:12] [PASSED] ttm_tt_fini_shmem
[02:18:12] [PASSED] ttm_tt_create_basic
[02:18:12] [PASSED] ttm_tt_create_invalid_bo_type
[02:18:12] [PASSED] ttm_tt_create_ttm_exists
[02:18:12] [PASSED] ttm_tt_create_failed
[02:18:12] [PASSED] ttm_tt_destroy_basic
[02:18:12] [PASSED] ttm_tt_populate_null_ttm
[02:18:12] [PASSED] ttm_tt_populate_populated_ttm
[02:18:12] [PASSED] ttm_tt_unpopulate_basic
[02:18:12] [PASSED] ttm_tt_unpopulate_empty_ttm
[02:18:12] [PASSED] ttm_tt_swapin_basic
[02:18:12] ===================== [PASSED] ttm_tt ======================
[02:18:12] =================== ttm_bo (14 subtests) ===================
[02:18:12] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[02:18:12] [PASSED] Cannot be interrupted and sleeps
[02:18:12] [PASSED] Cannot be interrupted, locks straight away
[02:18:12] [PASSED] Can be interrupted, sleeps
[02:18:12] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[02:18:12] [PASSED] ttm_bo_reserve_locked_no_sleep
[02:18:12] [PASSED] ttm_bo_reserve_no_wait_ticket
[02:18:12] [PASSED] ttm_bo_reserve_double_resv
[02:18:12] [PASSED] ttm_bo_reserve_interrupted
[02:18:12] [PASSED] ttm_bo_reserve_deadlock
[02:18:12] [PASSED] ttm_bo_unreserve_basic
[02:18:12] [PASSED] ttm_bo_unreserve_pinned
[02:18:12] [PASSED] ttm_bo_unreserve_bulk
[02:18:12] [PASSED] ttm_bo_put_basic
[02:18:12] [PASSED] ttm_bo_put_shared_resv
[02:18:12] [PASSED] ttm_bo_pin_basic
[02:18:12] [PASSED] ttm_bo_pin_unpin_resource
[02:18:12] [PASSED] ttm_bo_multiple_pin_one_unpin
[02:18:12] ===================== [PASSED] ttm_bo ======================
[02:18:12] ============== ttm_bo_validate (22 subtests) ===============
[02:18:12] ============== ttm_bo_init_reserved_sys_man ===============
[02:18:12] [PASSED] Buffer object for userspace
[02:18:12] [PASSED] Kernel buffer object
[02:18:12] [PASSED] Shared buffer object
[02:18:12] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[02:18:12] ============== ttm_bo_init_reserved_mock_man ==============
[02:18:12] [PASSED] Buffer object for userspace
[02:18:12] [PASSED] Kernel buffer object
[02:18:12] [PASSED] Shared buffer object
[02:18:12] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[02:18:12] [PASSED] ttm_bo_init_reserved_resv
[02:18:12] ================== ttm_bo_validate_basic ==================
[02:18:12] [PASSED] Buffer object for userspace
[02:18:12] [PASSED] Kernel buffer object
[02:18:12] [PASSED] Shared buffer object
[02:18:12] ============== [PASSED] ttm_bo_validate_basic ==============
[02:18:12] [PASSED] ttm_bo_validate_invalid_placement
[02:18:12] ============= ttm_bo_validate_same_placement ==============
[02:18:12] [PASSED] System manager
[02:18:12] [PASSED] VRAM manager
[02:18:12] ========= [PASSED] ttm_bo_validate_same_placement ==========
[02:18:12] [PASSED] ttm_bo_validate_failed_alloc
[02:18:12] [PASSED] ttm_bo_validate_pinned
[02:18:12] [PASSED] ttm_bo_validate_busy_placement
[02:18:12] ================ ttm_bo_validate_multihop =================
[02:18:12] [PASSED] Buffer object for userspace
[02:18:12] [PASSED] Kernel buffer object
[02:18:12] [PASSED] Shared buffer object
[02:18:12] ============ [PASSED] ttm_bo_validate_multihop =============
[02:18:12] ========== ttm_bo_validate_no_placement_signaled ==========
[02:18:12] [PASSED] Buffer object in system domain, no page vector
[02:18:12] [PASSED] Buffer object in system domain with an existing page vector
[02:18:12] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[02:18:12] ======== ttm_bo_validate_no_placement_not_signaled ========
[02:18:12] [PASSED] Buffer object for userspace
[02:18:12] [PASSED] Kernel buffer object
[02:18:12] [PASSED] Shared buffer object
[02:18:12] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[02:18:12] [PASSED] ttm_bo_validate_move_fence_signaled
[02:18:13] ========= ttm_bo_validate_move_fence_not_signaled =========
[02:18:13] [PASSED] Waits for GPU
[02:18:13] [PASSED] Tries to lock straight away
[02:18:13] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[02:18:13] [PASSED] ttm_bo_validate_swapout
[02:18:13] [PASSED] ttm_bo_validate_happy_evict
[02:18:13] [PASSED] ttm_bo_validate_all_pinned_evict
[02:18:13] [PASSED] ttm_bo_validate_allowed_only_evict
[02:18:13] [PASSED] ttm_bo_validate_deleted_evict
[02:18:13] [PASSED] ttm_bo_validate_busy_domain_evict
[02:18:13] [PASSED] ttm_bo_validate_evict_gutting
[02:18:13] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[02:18:13] ================= [PASSED] ttm_bo_validate =================
[02:18:13] ============================================================
[02:18:13] Testing complete. Ran 102 tests: passed: 102
[02:18:13] Elapsed time: 9.887s total, 1.597s configuring, 7.673s building, 0.525s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 29+ messages in thread* [PATCH 2/3] drm/xe: Clear scratch page on vm_bind
2025-02-13 2:23 [PATCH 1/3] drm/xe: Introduced needs_scratch bit in device descriptor Oak Zeng
` (2 preceding siblings ...)
2025-02-13 2:18 ` ✓ CI.KUnit: success " Patchwork
@ 2025-02-13 2:23 ` Oak Zeng
2025-02-19 17:47 ` Matthew Brost
2025-02-25 22:54 ` Matthew Brost
2025-02-13 2:23 ` [PATCH 3/3] drm/xe: Allow scratch page under fault mode for certain platform Oak Zeng
` (7 subsequent siblings)
11 siblings, 2 replies; 29+ messages in thread
From: Oak Zeng @ 2025-02-13 2:23 UTC (permalink / raw)
To: intel-xe; +Cc: Thomas.Hellstrom, matthew.brost, jonathan.cavitt
When a vm runs under fault mode, if scratch page is enabled, we need
to clear the scratch page mapping on vm_bind for the vm_bind address
range. Under fault mode, we depend on recoverable page fault to
establish mapping in page table. If scratch page is not cleared, GPU
access of address won't cause page fault because it always hits the
existing scratch page mapping.
When vm_bind with IMMEDIATE flag, there is no need of clearing as
immediate bind can overwrite the scratch page mapping.
So far only is xe2 and xe3 products are allowed to enable scratch page
under fault mode. On other platform we don't allow scratch page under
fault mode, so no need of such clearing.
v2: Rework vm_bind pipeline to clear scratch page mapping. This is similar
to a map operation, with the exception that PTEs are cleared instead of
pointing to valid physical pages. (Matt, Thomas)
TLB invalidation is needed after clear scratch page mapping as larger
scratch page mapping could be backed by physical page and cached in
TLB. (Matt, Thomas)
v3: Fix the case of clearing huge pte (Thomas)
Improve commit message (Thomas)
v4: TLB invalidation on all LR cases, not only the clear on bind
cases (Thomas)
Signed-off-by: Oak Zeng <oak.zeng@intel.com>
---
drivers/gpu/drm/xe/xe_pt.c | 53 ++++++++++++++++++++++++--------
drivers/gpu/drm/xe/xe_pt_types.h | 2 ++
drivers/gpu/drm/xe/xe_vm.c | 29 ++++++++++++++---
drivers/gpu/drm/xe/xe_vm_types.h | 2 ++
4 files changed, 70 insertions(+), 16 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
index 1ddcc7e79a93..319769056893 100644
--- a/drivers/gpu/drm/xe/xe_pt.c
+++ b/drivers/gpu/drm/xe/xe_pt.c
@@ -268,6 +268,8 @@ struct xe_pt_stage_bind_walk {
* granularity.
*/
bool needs_64K;
+ /* @clear_pt: clear page table entries during the bind walk */
+ bool clear_pt;
/**
* @vma: VMA being mapped
*/
@@ -415,6 +417,10 @@ static bool xe_pt_hugepte_possible(u64 addr, u64 next, unsigned int level,
if (xe_vma_is_null(xe_walk->vma))
return true;
+ /* if we are clearing page table, no dma addresses*/
+ if (xe_walk->clear_pt)
+ return true;
+
/* Is the DMA address huge PTE size aligned? */
size = next - addr;
dma = addr - xe_walk->va_curs_start + xe_res_dma(xe_walk->curs);
@@ -497,16 +503,19 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
XE_WARN_ON(xe_walk->va_curs_start != addr);
- pte = vm->pt_ops->pte_encode_vma(is_null ? 0 :
- xe_res_dma(curs) + xe_walk->dma_offset,
- xe_walk->vma, pat_index, level);
+ pte = vm->pt_ops->pte_encode_vma(is_null || xe_walk->clear_pt ?
+ 0 : xe_res_dma(curs) + xe_walk->dma_offset,
+ xe_walk->vma, pat_index, level);
pte |= xe_walk->default_pte;
+ if (xe_walk->clear_pt)
+ pte = 0;
+
/*
* Set the XE_PTE_PS64 hint if possible, otherwise if
* this device *requires* 64K PTE size for VRAM, fail.
*/
- if (level == 0 && !xe_parent->is_compact) {
+ if (level == 0 && !xe_parent->is_compact && !xe_walk->clear_pt) {
if (xe_pt_is_pte_ps64K(addr, next, xe_walk)) {
xe_walk->vma->gpuva.flags |= XE_VMA_PTE_64K;
pte |= XE_PTE_PS64;
@@ -519,7 +528,7 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
if (unlikely(ret))
return ret;
- if (!is_null)
+ if (!is_null && !xe_walk->clear_pt)
xe_res_next(curs, next - addr);
xe_walk->va_curs_start = next;
xe_walk->vma->gpuva.flags |= (XE_VMA_PTE_4K << level);
@@ -589,6 +598,7 @@ static const struct xe_pt_walk_ops xe_pt_stage_bind_ops = {
* @vma: The vma indicating the address range.
* @entries: Storage for the update entries used for connecting the tree to
* the main tree at commit time.
+ * @clear_pt: Clear the page table entries.
* @num_entries: On output contains the number of @entries used.
*
* This function builds a disconnected page-table tree for a given address
@@ -602,7 +612,8 @@ static const struct xe_pt_walk_ops xe_pt_stage_bind_ops = {
*/
static int
xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
- struct xe_vm_pgtable_update *entries, u32 *num_entries)
+ struct xe_vm_pgtable_update *entries,
+ bool clear_pt, u32 *num_entries)
{
struct xe_device *xe = tile_to_xe(tile);
struct xe_bo *bo = xe_vma_bo(vma);
@@ -622,10 +633,19 @@ xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
.vma = vma,
.wupd.entries = entries,
.needs_64K = (xe_vma_vm(vma)->flags & XE_VM_FLAG_64K) && is_devmem,
+ .clear_pt = clear_pt,
};
struct xe_pt *pt = xe_vma_vm(vma)->pt_root[tile->id];
int ret;
+ if (clear_pt) {
+ ret = xe_pt_walk_range(&pt->base, pt->level, xe_vma_start(vma),
+ xe_vma_end(vma), &xe_walk.base);
+
+ *num_entries = xe_walk.wupd.num_used_entries;
+ return ret;
+ }
+
/**
* Default atomic expectations for different allocation scenarios are as follows:
*
@@ -981,12 +1001,14 @@ static void xe_pt_free_bind(struct xe_vm_pgtable_update *entries,
static int
xe_pt_prepare_bind(struct xe_tile *tile, struct xe_vma *vma,
- struct xe_vm_pgtable_update *entries, u32 *num_entries)
+ struct xe_vm_pgtable_update *entries,
+ bool invalidate_on_bind, u32 *num_entries)
{
int err;
*num_entries = 0;
- err = xe_pt_stage_bind(tile, vma, entries, num_entries);
+ err = xe_pt_stage_bind(tile, vma, entries, invalidate_on_bind,
+ num_entries);
if (!err)
xe_tile_assert(tile, *num_entries);
@@ -1661,6 +1683,7 @@ static int bind_op_prepare(struct xe_vm *vm, struct xe_tile *tile,
return err;
err = xe_pt_prepare_bind(tile, vma, pt_op->entries,
+ pt_update_ops->invalidate_on_bind,
&pt_op->num_entries);
if (!err) {
xe_tile_assert(tile, pt_op->num_entries <=
@@ -1681,11 +1704,11 @@ static int bind_op_prepare(struct xe_vm *vm, struct xe_tile *tile,
* If !rebind, and scratch enabled VMs, there is a chance the scratch
* PTE is already cached in the TLB so it needs to be invalidated.
* On !LR VMs this is done in the ring ops preceding a batch, but on
- * non-faulting LR, in particular on user-space batch buffer chaining,
- * it needs to be done here.
+ * LR, in particular on user-space batch buffer chaining, it needs to
+ * be done here.
*/
if ((!pt_op->rebind && xe_vm_has_scratch(vm) &&
- xe_vm_in_preempt_fence_mode(vm)))
+ xe_vm_in_lr_mode(vm)))
pt_update_ops->needs_invalidation = true;
else if (pt_op->rebind && !xe_vm_in_lr_mode(vm))
/* We bump also if batch_invalidate_tlb is true */
@@ -1759,9 +1782,13 @@ static int op_prepare(struct xe_vm *vm,
switch (op->base.op) {
case DRM_GPUVA_OP_MAP:
- if (!op->map.immediate && xe_vm_in_fault_mode(vm))
+ if (!op->map.immediate && xe_vm_in_fault_mode(vm) &&
+ !op->map.invalidate_on_bind)
break;
+ if (op->map.invalidate_on_bind)
+ pt_update_ops->invalidate_on_bind = true;
+
err = bind_op_prepare(vm, tile, pt_update_ops, op->map.vma);
pt_update_ops->wait_vm_kernel = true;
break;
@@ -1871,6 +1898,8 @@ static void bind_op_commit(struct xe_vm *vm, struct xe_tile *tile,
}
vma->tile_present |= BIT(tile->id);
vma->tile_staged &= ~BIT(tile->id);
+ if (pt_update_ops->invalidate_on_bind)
+ vma->tile_invalidated |= BIT(tile->id);
if (xe_vma_is_userptr(vma)) {
lockdep_assert_held_read(&vm->userptr.notifier_lock);
to_userptr_vma(vma)->userptr.initial_bind = true;
diff --git a/drivers/gpu/drm/xe/xe_pt_types.h b/drivers/gpu/drm/xe/xe_pt_types.h
index 384cc04de719..3d0aa2a5102e 100644
--- a/drivers/gpu/drm/xe/xe_pt_types.h
+++ b/drivers/gpu/drm/xe/xe_pt_types.h
@@ -108,6 +108,8 @@ struct xe_vm_pgtable_update_ops {
bool needs_userptr_lock;
/** @needs_invalidation: Needs invalidation */
bool needs_invalidation;
+ /** @invalidate_on_bind: Invalidate the range before bind */
+ bool invalidate_on_bind;
/**
* @wait_vm_bookkeep: PT operations need to wait until VM is idle
* (bookkeep dma-resv slots are idle) and stage all future VM activity
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index d664f2e418b2..813d893d9b63 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -1921,6 +1921,23 @@ static void print_op(struct xe_device *xe, struct drm_gpuva_op *op)
}
#endif
+static bool __xe_vm_needs_clear_scratch_pages(struct xe_vm *vm, u32 bind_flags)
+{
+ if (!xe_vm_in_fault_mode(vm))
+ return false;
+
+ if (!NEEDS_SCRATCH(vm->xe))
+ return false;
+
+ if (!xe_vm_has_scratch(vm))
+ return false;
+
+ if (bind_flags & DRM_XE_VM_BIND_FLAG_IMMEDIATE)
+ return false;
+
+ return true;
+}
+
/*
* Create operations list from IOCTL arguments, setup operations fields so parse
* and commit steps are decoupled from IOCTL arguments. This step can fail.
@@ -1991,6 +2008,8 @@ vm_bind_ioctl_ops_create(struct xe_vm *vm, struct xe_bo *bo,
op->map.is_null = flags & DRM_XE_VM_BIND_FLAG_NULL;
op->map.dumpable = flags & DRM_XE_VM_BIND_FLAG_DUMPABLE;
op->map.pat_index = pat_index;
+ op->map.invalidate_on_bind =
+ __xe_vm_needs_clear_scratch_pages(vm, flags);
} else if (__op->op == DRM_GPUVA_OP_PREFETCH) {
op->prefetch.region = prefetch_region;
}
@@ -2188,7 +2207,8 @@ static int vm_bind_ioctl_ops_parse(struct xe_vm *vm, struct drm_gpuva_ops *ops,
return PTR_ERR(vma);
op->map.vma = vma;
- if (op->map.immediate || !xe_vm_in_fault_mode(vm))
+ if (op->map.immediate || !xe_vm_in_fault_mode(vm) ||
+ op->map.invalidate_on_bind)
xe_vma_ops_incr_pt_update_ops(vops,
op->tile_mask);
break;
@@ -2416,9 +2436,10 @@ static int op_lock_and_prep(struct drm_exec *exec, struct xe_vm *vm,
switch (op->base.op) {
case DRM_GPUVA_OP_MAP:
- err = vma_lock_and_validate(exec, op->map.vma,
- !xe_vm_in_fault_mode(vm) ||
- op->map.immediate);
+ if (!op->map.invalidate_on_bind)
+ err = vma_lock_and_validate(exec, op->map.vma,
+ !xe_vm_in_fault_mode(vm) ||
+ op->map.immediate);
break;
case DRM_GPUVA_OP_REMAP:
err = check_ufence(gpuva_to_vma(op->base.remap.unmap->va));
diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
index 52467b9b5348..dace04f4ea5e 100644
--- a/drivers/gpu/drm/xe/xe_vm_types.h
+++ b/drivers/gpu/drm/xe/xe_vm_types.h
@@ -297,6 +297,8 @@ struct xe_vma_op_map {
bool is_null;
/** @dumpable: whether BO is dumped on GPU hang */
bool dumpable;
+ /** @invalidate: invalidate the VMA before bind */
+ bool invalidate_on_bind;
/** @pat_index: The pat index to use for this operation. */
u16 pat_index;
};
--
2.26.3
^ permalink raw reply related [flat|nested] 29+ messages in thread* Re: [PATCH 2/3] drm/xe: Clear scratch page on vm_bind
2025-02-13 2:23 ` [PATCH 2/3] drm/xe: Clear scratch page on vm_bind Oak Zeng
@ 2025-02-19 17:47 ` Matthew Brost
2025-02-19 20:19 ` Zeng, Oak
2025-02-25 22:54 ` Matthew Brost
1 sibling, 1 reply; 29+ messages in thread
From: Matthew Brost @ 2025-02-19 17:47 UTC (permalink / raw)
To: Oak Zeng; +Cc: intel-xe, Thomas.Hellstrom, jonathan.cavitt
On Wed, Feb 12, 2025 at 09:23:30PM -0500, Oak Zeng wrote:
> When a vm runs under fault mode, if scratch page is enabled, we need
> to clear the scratch page mapping on vm_bind for the vm_bind address
> range. Under fault mode, we depend on recoverable page fault to
> establish mapping in page table. If scratch page is not cleared, GPU
> access of address won't cause page fault because it always hits the
> existing scratch page mapping.
>
> When vm_bind with IMMEDIATE flag, there is no need of clearing as
> immediate bind can overwrite the scratch page mapping.
>
> So far only is xe2 and xe3 products are allowed to enable scratch page
> under fault mode. On other platform we don't allow scratch page under
> fault mode, so no need of such clearing.
>
> v2: Rework vm_bind pipeline to clear scratch page mapping. This is similar
> to a map operation, with the exception that PTEs are cleared instead of
> pointing to valid physical pages. (Matt, Thomas)
>
> TLB invalidation is needed after clear scratch page mapping as larger
> scratch page mapping could be backed by physical page and cached in
> TLB. (Matt, Thomas)
>
> v3: Fix the case of clearing huge pte (Thomas)
>
> Improve commit message (Thomas)
>
> v4: TLB invalidation on all LR cases, not only the clear on bind
> cases (Thomas)
>
> Signed-off-by: Oak Zeng <oak.zeng@intel.com>
> ---
> drivers/gpu/drm/xe/xe_pt.c | 53 ++++++++++++++++++++++++--------
> drivers/gpu/drm/xe/xe_pt_types.h | 2 ++
> drivers/gpu/drm/xe/xe_vm.c | 29 ++++++++++++++---
> drivers/gpu/drm/xe/xe_vm_types.h | 2 ++
> 4 files changed, 70 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
> index 1ddcc7e79a93..319769056893 100644
> --- a/drivers/gpu/drm/xe/xe_pt.c
> +++ b/drivers/gpu/drm/xe/xe_pt.c
> @@ -268,6 +268,8 @@ struct xe_pt_stage_bind_walk {
> * granularity.
> */
> bool needs_64K;
> + /* @clear_pt: clear page table entries during the bind walk */
> + bool clear_pt;
> /**
> * @vma: VMA being mapped
> */
> @@ -415,6 +417,10 @@ static bool xe_pt_hugepte_possible(u64 addr, u64 next, unsigned int level,
> if (xe_vma_is_null(xe_walk->vma))
> return true;
>
> + /* if we are clearing page table, no dma addresses*/
> + if (xe_walk->clear_pt)
> + return true;
> +
> /* Is the DMA address huge PTE size aligned? */
> size = next - addr;
> dma = addr - xe_walk->va_curs_start + xe_res_dma(xe_walk->curs);
> @@ -497,16 +503,19 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
>
> XE_WARN_ON(xe_walk->va_curs_start != addr);
>
> - pte = vm->pt_ops->pte_encode_vma(is_null ? 0 :
> - xe_res_dma(curs) + xe_walk->dma_offset,
> - xe_walk->vma, pat_index, level);
> + pte = vm->pt_ops->pte_encode_vma(is_null || xe_walk->clear_pt ?
> + 0 : xe_res_dma(curs) + xe_walk->dma_offset,
> + xe_walk->vma, pat_index, level);
> pte |= xe_walk->default_pte;
>
> + if (xe_walk->clear_pt)
> + pte = 0;
Is there a way to move this clear to later in the pipeline? e.g. At the
step which actually programs the page tables via a GPU job or the CPU? I
ask as I think our userptr code is broken for invalidations which could
hook into clearing to fix this. Also I think prefetch for SVM could also
make use of this too.
I believe for this use case this patch is correct though.
Matt
> +
> /*
> * Set the XE_PTE_PS64 hint if possible, otherwise if
> * this device *requires* 64K PTE size for VRAM, fail.
> */
> - if (level == 0 && !xe_parent->is_compact) {
> + if (level == 0 && !xe_parent->is_compact && !xe_walk->clear_pt) {
> if (xe_pt_is_pte_ps64K(addr, next, xe_walk)) {
> xe_walk->vma->gpuva.flags |= XE_VMA_PTE_64K;
> pte |= XE_PTE_PS64;
> @@ -519,7 +528,7 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
> if (unlikely(ret))
> return ret;
>
> - if (!is_null)
> + if (!is_null && !xe_walk->clear_pt)
> xe_res_next(curs, next - addr);
> xe_walk->va_curs_start = next;
> xe_walk->vma->gpuva.flags |= (XE_VMA_PTE_4K << level);
> @@ -589,6 +598,7 @@ static const struct xe_pt_walk_ops xe_pt_stage_bind_ops = {
> * @vma: The vma indicating the address range.
> * @entries: Storage for the update entries used for connecting the tree to
> * the main tree at commit time.
> + * @clear_pt: Clear the page table entries.
> * @num_entries: On output contains the number of @entries used.
> *
> * This function builds a disconnected page-table tree for a given address
> @@ -602,7 +612,8 @@ static const struct xe_pt_walk_ops xe_pt_stage_bind_ops = {
> */
> static int
> xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
> - struct xe_vm_pgtable_update *entries, u32 *num_entries)
> + struct xe_vm_pgtable_update *entries,
> + bool clear_pt, u32 *num_entries)
> {
> struct xe_device *xe = tile_to_xe(tile);
> struct xe_bo *bo = xe_vma_bo(vma);
> @@ -622,10 +633,19 @@ xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
> .vma = vma,
> .wupd.entries = entries,
> .needs_64K = (xe_vma_vm(vma)->flags & XE_VM_FLAG_64K) && is_devmem,
> + .clear_pt = clear_pt,
> };
> struct xe_pt *pt = xe_vma_vm(vma)->pt_root[tile->id];
> int ret;
>
> + if (clear_pt) {
> + ret = xe_pt_walk_range(&pt->base, pt->level, xe_vma_start(vma),
> + xe_vma_end(vma), &xe_walk.base);
> +
> + *num_entries = xe_walk.wupd.num_used_entries;
> + return ret;
> + }
> +
> /**
> * Default atomic expectations for different allocation scenarios are as follows:
> *
> @@ -981,12 +1001,14 @@ static void xe_pt_free_bind(struct xe_vm_pgtable_update *entries,
>
> static int
> xe_pt_prepare_bind(struct xe_tile *tile, struct xe_vma *vma,
> - struct xe_vm_pgtable_update *entries, u32 *num_entries)
> + struct xe_vm_pgtable_update *entries,
> + bool invalidate_on_bind, u32 *num_entries)
> {
> int err;
>
> *num_entries = 0;
> - err = xe_pt_stage_bind(tile, vma, entries, num_entries);
> + err = xe_pt_stage_bind(tile, vma, entries, invalidate_on_bind,
> + num_entries);
> if (!err)
> xe_tile_assert(tile, *num_entries);
>
> @@ -1661,6 +1683,7 @@ static int bind_op_prepare(struct xe_vm *vm, struct xe_tile *tile,
> return err;
>
> err = xe_pt_prepare_bind(tile, vma, pt_op->entries,
> + pt_update_ops->invalidate_on_bind,
> &pt_op->num_entries);
> if (!err) {
> xe_tile_assert(tile, pt_op->num_entries <=
> @@ -1681,11 +1704,11 @@ static int bind_op_prepare(struct xe_vm *vm, struct xe_tile *tile,
> * If !rebind, and scratch enabled VMs, there is a chance the scratch
> * PTE is already cached in the TLB so it needs to be invalidated.
> * On !LR VMs this is done in the ring ops preceding a batch, but on
> - * non-faulting LR, in particular on user-space batch buffer chaining,
> - * it needs to be done here.
> + * LR, in particular on user-space batch buffer chaining, it needs to
> + * be done here.
> */
> if ((!pt_op->rebind && xe_vm_has_scratch(vm) &&
> - xe_vm_in_preempt_fence_mode(vm)))
> + xe_vm_in_lr_mode(vm)))
> pt_update_ops->needs_invalidation = true;
> else if (pt_op->rebind && !xe_vm_in_lr_mode(vm))
> /* We bump also if batch_invalidate_tlb is true */
> @@ -1759,9 +1782,13 @@ static int op_prepare(struct xe_vm *vm,
>
> switch (op->base.op) {
> case DRM_GPUVA_OP_MAP:
> - if (!op->map.immediate && xe_vm_in_fault_mode(vm))
> + if (!op->map.immediate && xe_vm_in_fault_mode(vm) &&
> + !op->map.invalidate_on_bind)
> break;
>
> + if (op->map.invalidate_on_bind)
> + pt_update_ops->invalidate_on_bind = true;
> +
> err = bind_op_prepare(vm, tile, pt_update_ops, op->map.vma);
> pt_update_ops->wait_vm_kernel = true;
> break;
> @@ -1871,6 +1898,8 @@ static void bind_op_commit(struct xe_vm *vm, struct xe_tile *tile,
> }
> vma->tile_present |= BIT(tile->id);
> vma->tile_staged &= ~BIT(tile->id);
> + if (pt_update_ops->invalidate_on_bind)
> + vma->tile_invalidated |= BIT(tile->id);
> if (xe_vma_is_userptr(vma)) {
> lockdep_assert_held_read(&vm->userptr.notifier_lock);
> to_userptr_vma(vma)->userptr.initial_bind = true;
> diff --git a/drivers/gpu/drm/xe/xe_pt_types.h b/drivers/gpu/drm/xe/xe_pt_types.h
> index 384cc04de719..3d0aa2a5102e 100644
> --- a/drivers/gpu/drm/xe/xe_pt_types.h
> +++ b/drivers/gpu/drm/xe/xe_pt_types.h
> @@ -108,6 +108,8 @@ struct xe_vm_pgtable_update_ops {
> bool needs_userptr_lock;
> /** @needs_invalidation: Needs invalidation */
> bool needs_invalidation;
> + /** @invalidate_on_bind: Invalidate the range before bind */
> + bool invalidate_on_bind;
> /**
> * @wait_vm_bookkeep: PT operations need to wait until VM is idle
> * (bookkeep dma-resv slots are idle) and stage all future VM activity
> diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> index d664f2e418b2..813d893d9b63 100644
> --- a/drivers/gpu/drm/xe/xe_vm.c
> +++ b/drivers/gpu/drm/xe/xe_vm.c
> @@ -1921,6 +1921,23 @@ static void print_op(struct xe_device *xe, struct drm_gpuva_op *op)
> }
> #endif
>
> +static bool __xe_vm_needs_clear_scratch_pages(struct xe_vm *vm, u32 bind_flags)
> +{
> + if (!xe_vm_in_fault_mode(vm))
> + return false;
> +
> + if (!NEEDS_SCRATCH(vm->xe))
> + return false;
> +
> + if (!xe_vm_has_scratch(vm))
> + return false;
> +
> + if (bind_flags & DRM_XE_VM_BIND_FLAG_IMMEDIATE)
> + return false;
> +
> + return true;
> +}
> +
> /*
> * Create operations list from IOCTL arguments, setup operations fields so parse
> * and commit steps are decoupled from IOCTL arguments. This step can fail.
> @@ -1991,6 +2008,8 @@ vm_bind_ioctl_ops_create(struct xe_vm *vm, struct xe_bo *bo,
> op->map.is_null = flags & DRM_XE_VM_BIND_FLAG_NULL;
> op->map.dumpable = flags & DRM_XE_VM_BIND_FLAG_DUMPABLE;
> op->map.pat_index = pat_index;
> + op->map.invalidate_on_bind =
> + __xe_vm_needs_clear_scratch_pages(vm, flags);
> } else if (__op->op == DRM_GPUVA_OP_PREFETCH) {
> op->prefetch.region = prefetch_region;
> }
> @@ -2188,7 +2207,8 @@ static int vm_bind_ioctl_ops_parse(struct xe_vm *vm, struct drm_gpuva_ops *ops,
> return PTR_ERR(vma);
>
> op->map.vma = vma;
> - if (op->map.immediate || !xe_vm_in_fault_mode(vm))
> + if (op->map.immediate || !xe_vm_in_fault_mode(vm) ||
> + op->map.invalidate_on_bind)
> xe_vma_ops_incr_pt_update_ops(vops,
> op->tile_mask);
> break;
> @@ -2416,9 +2436,10 @@ static int op_lock_and_prep(struct drm_exec *exec, struct xe_vm *vm,
>
> switch (op->base.op) {
> case DRM_GPUVA_OP_MAP:
> - err = vma_lock_and_validate(exec, op->map.vma,
> - !xe_vm_in_fault_mode(vm) ||
> - op->map.immediate);
> + if (!op->map.invalidate_on_bind)
> + err = vma_lock_and_validate(exec, op->map.vma,
> + !xe_vm_in_fault_mode(vm) ||
> + op->map.immediate);
> break;
> case DRM_GPUVA_OP_REMAP:
> err = check_ufence(gpuva_to_vma(op->base.remap.unmap->va));
> diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
> index 52467b9b5348..dace04f4ea5e 100644
> --- a/drivers/gpu/drm/xe/xe_vm_types.h
> +++ b/drivers/gpu/drm/xe/xe_vm_types.h
> @@ -297,6 +297,8 @@ struct xe_vma_op_map {
> bool is_null;
> /** @dumpable: whether BO is dumped on GPU hang */
> bool dumpable;
> + /** @invalidate: invalidate the VMA before bind */
> + bool invalidate_on_bind;
> /** @pat_index: The pat index to use for this operation. */
> u16 pat_index;
> };
> --
> 2.26.3
>
^ permalink raw reply [flat|nested] 29+ messages in thread* RE: [PATCH 2/3] drm/xe: Clear scratch page on vm_bind
2025-02-19 17:47 ` Matthew Brost
@ 2025-02-19 20:19 ` Zeng, Oak
2025-02-19 20:46 ` Matthew Brost
0 siblings, 1 reply; 29+ messages in thread
From: Zeng, Oak @ 2025-02-19 20:19 UTC (permalink / raw)
To: Brost, Matthew
Cc: intel-xe@lists.freedesktop.org, Thomas.Hellstrom@linux.intel.com,
Cavitt, Jonathan
> -----Original Message-----
> From: Brost, Matthew <matthew.brost@intel.com>
> Sent: February 19, 2025 12:47 PM
> To: Zeng, Oak <oak.zeng@intel.com>
> Cc: intel-xe@lists.freedesktop.org;
> Thomas.Hellstrom@linux.intel.com; Cavitt, Jonathan
> <jonathan.cavitt@intel.com>
> Subject: Re: [PATCH 2/3] drm/xe: Clear scratch page on vm_bind
>
> On Wed, Feb 12, 2025 at 09:23:30PM -0500, Oak Zeng wrote:
> > When a vm runs under fault mode, if scratch page is enabled, we
> need
> > to clear the scratch page mapping on vm_bind for the vm_bind
> address
> > range. Under fault mode, we depend on recoverable page fault to
> > establish mapping in page table. If scratch page is not cleared, GPU
> > access of address won't cause page fault because it always hits the
> > existing scratch page mapping.
> >
> > When vm_bind with IMMEDIATE flag, there is no need of clearing as
> > immediate bind can overwrite the scratch page mapping.
> >
> > So far only is xe2 and xe3 products are allowed to enable scratch
> page
> > under fault mode. On other platform we don't allow scratch page
> under
> > fault mode, so no need of such clearing.
> >
> > v2: Rework vm_bind pipeline to clear scratch page mapping. This is
> similar
> > to a map operation, with the exception that PTEs are cleared
> instead of
> > pointing to valid physical pages. (Matt, Thomas)
> >
> > TLB invalidation is needed after clear scratch page mapping as larger
> > scratch page mapping could be backed by physical page and cached
> in
> > TLB. (Matt, Thomas)
> >
> > v3: Fix the case of clearing huge pte (Thomas)
> >
> > Improve commit message (Thomas)
> >
> > v4: TLB invalidation on all LR cases, not only the clear on bind
> > cases (Thomas)
> >
> > Signed-off-by: Oak Zeng <oak.zeng@intel.com>
> > ---
> > drivers/gpu/drm/xe/xe_pt.c | 53
> ++++++++++++++++++++++++--------
> > drivers/gpu/drm/xe/xe_pt_types.h | 2 ++
> > drivers/gpu/drm/xe/xe_vm.c | 29 ++++++++++++++---
> > drivers/gpu/drm/xe/xe_vm_types.h | 2 ++
> > 4 files changed, 70 insertions(+), 16 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/xe/xe_pt.c
> b/drivers/gpu/drm/xe/xe_pt.c
> > index 1ddcc7e79a93..319769056893 100644
> > --- a/drivers/gpu/drm/xe/xe_pt.c
> > +++ b/drivers/gpu/drm/xe/xe_pt.c
> > @@ -268,6 +268,8 @@ struct xe_pt_stage_bind_walk {
> > * granularity.
> > */
> > bool needs_64K;
> > + /* @clear_pt: clear page table entries during the bind walk */
> > + bool clear_pt;
> > /**
> > * @vma: VMA being mapped
> > */
> > @@ -415,6 +417,10 @@ static bool xe_pt_hugepte_possible(u64
> addr, u64 next, unsigned int level,
> > if (xe_vma_is_null(xe_walk->vma))
> > return true;
> >
> > + /* if we are clearing page table, no dma addresses*/
> > + if (xe_walk->clear_pt)
> > + return true;
> > +
> > /* Is the DMA address huge PTE size aligned? */
> > size = next - addr;
> > dma = addr - xe_walk->va_curs_start +
> xe_res_dma(xe_walk->curs);
> > @@ -497,16 +503,19 @@ xe_pt_stage_bind_entry(struct xe_ptw
> *parent, pgoff_t offset,
> >
> > XE_WARN_ON(xe_walk->va_curs_start != addr);
> >
> > - pte = vm->pt_ops->pte_encode_vma(is_null ? 0 :
> > - xe_res_dma(curs) +
> xe_walk->dma_offset,
> > - xe_walk->vma,
> pat_index, level);
> > + pte = vm->pt_ops->pte_encode_vma(is_null ||
> xe_walk->clear_pt ?
> > + 0 : xe_res_dma(curs) + xe_walk-
> >dma_offset,
> > + xe_walk->vma, pat_index, level);
> > pte |= xe_walk->default_pte;
> >
> > + if (xe_walk->clear_pt)
> > + pte = 0;
>
> Is there a way to move this clear to later in the pipeline? e.g. At the
> step which actually programs the page tables via a GPU job or the CPU?
Isn't the design here generate all the page table entries in this stage_bind stage,
And actual programming of page table using cpu/gpu just focus on writing the
Page table entries to the actual page table? From this perspective, it is more
Natural to set the entries to 0 here for clear_pt case.
Of cause you can do it later, but it is at the cost of sacrifice the design.
> I
> ask as I think our userptr code is broken for invalidations which could
> hook into clearing to fix this.
Can you elaborate how the userptr invalidation is broken? Is it broken by this patch?
I don't follow here. As I understand it, the userptr invalidation doesn't go to this
Stage_bind function. It goes to xe_pt_zap_ptes. So I don't follow how userptr invalidate
Is broken...
Oak
Also I think prefetch for SVM could also
> make use of this too.
>
> I believe for this use case this patch is correct though.
>
> Matt
>
> > +
> > /*
> > * Set the XE_PTE_PS64 hint if possible, otherwise if
> > * this device *requires* 64K PTE size for VRAM, fail.
> > */
> > - if (level == 0 && !xe_parent->is_compact) {
> > + if (level == 0 && !xe_parent->is_compact
> && !xe_walk->clear_pt) {
> > if (xe_pt_is_pte_ps64K(addr, next, xe_walk))
> {
> > xe_walk->vma->gpuva.flags |=
> XE_VMA_PTE_64K;
> > pte |= XE_PTE_PS64;
> > @@ -519,7 +528,7 @@ xe_pt_stage_bind_entry(struct xe_ptw
> *parent, pgoff_t offset,
> > if (unlikely(ret))
> > return ret;
> >
> > - if (!is_null)
> > + if (!is_null && !xe_walk->clear_pt)
> > xe_res_next(curs, next - addr);
> > xe_walk->va_curs_start = next;
> > xe_walk->vma->gpuva.flags |= (XE_VMA_PTE_4K <<
> level);
> > @@ -589,6 +598,7 @@ static const struct xe_pt_walk_ops
> xe_pt_stage_bind_ops = {
> > * @vma: The vma indicating the address range.
> > * @entries: Storage for the update entries used for connecting the
> tree to
> > * the main tree at commit time.
> > + * @clear_pt: Clear the page table entries.
> > * @num_entries: On output contains the number of @entries
> used.
> > *
> > * This function builds a disconnected page-table tree for a given
> address
> > @@ -602,7 +612,8 @@ static const struct xe_pt_walk_ops
> xe_pt_stage_bind_ops = {
> > */
> > static int
> > xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
> > - struct xe_vm_pgtable_update *entries, u32
> *num_entries)
> > + struct xe_vm_pgtable_update *entries,
> > + bool clear_pt, u32 *num_entries)
> > {
> > struct xe_device *xe = tile_to_xe(tile);
> > struct xe_bo *bo = xe_vma_bo(vma);
> > @@ -622,10 +633,19 @@ xe_pt_stage_bind(struct xe_tile *tile,
> struct xe_vma *vma,
> > .vma = vma,
> > .wupd.entries = entries,
> > .needs_64K = (xe_vma_vm(vma)->flags &
> XE_VM_FLAG_64K) && is_devmem,
> > + .clear_pt = clear_pt,
> > };
> > struct xe_pt *pt = xe_vma_vm(vma)->pt_root[tile->id];
> > int ret;
> >
> > + if (clear_pt) {
> > + ret = xe_pt_walk_range(&pt->base, pt->level,
> xe_vma_start(vma),
> > + xe_vma_end(vma),
> &xe_walk.base);
> > +
> > + *num_entries = xe_walk.wupd.num_used_entries;
> > + return ret;
> > + }
> > +
> > /**
> > * Default atomic expectations for different allocation
> scenarios are as follows:
> > *
> > @@ -981,12 +1001,14 @@ static void xe_pt_free_bind(struct
> xe_vm_pgtable_update *entries,
> >
> > static int
> > xe_pt_prepare_bind(struct xe_tile *tile, struct xe_vma *vma,
> > - struct xe_vm_pgtable_update *entries, u32
> *num_entries)
> > + struct xe_vm_pgtable_update *entries,
> > + bool invalidate_on_bind, u32 *num_entries)
> > {
> > int err;
> >
> > *num_entries = 0;
> > - err = xe_pt_stage_bind(tile, vma, entries, num_entries);
> > + err = xe_pt_stage_bind(tile, vma, entries, invalidate_on_bind,
> > + num_entries);
> > if (!err)
> > xe_tile_assert(tile, *num_entries);
> >
> > @@ -1661,6 +1683,7 @@ static int bind_op_prepare(struct xe_vm
> *vm, struct xe_tile *tile,
> > return err;
> >
> > err = xe_pt_prepare_bind(tile, vma, pt_op->entries,
> > + pt_update_ops->invalidate_on_bind,
> > &pt_op->num_entries);
> > if (!err) {
> > xe_tile_assert(tile, pt_op->num_entries <=
> > @@ -1681,11 +1704,11 @@ static int bind_op_prepare(struct
> xe_vm *vm, struct xe_tile *tile,
> > * If !rebind, and scratch enabled VMs, there is a
> chance the scratch
> > * PTE is already cached in the TLB so it needs to be
> invalidated.
> > * On !LR VMs this is done in the ring ops preceding a
> batch, but on
> > - * non-faulting LR, in particular on user-space batch
> buffer chaining,
> > - * it needs to be done here.
> > + * LR, in particular on user-space batch buffer chaining,
> it needs to
> > + * be done here.
> > */
> > if ((!pt_op->rebind && xe_vm_has_scratch(vm) &&
> > - xe_vm_in_preempt_fence_mode(vm)))
> > + xe_vm_in_lr_mode(vm)))
> > pt_update_ops->needs_invalidation = true;
> > else if (pt_op->rebind && !xe_vm_in_lr_mode(vm))
> > /* We bump also if batch_invalidate_tlb is
> true */
> > @@ -1759,9 +1782,13 @@ static int op_prepare(struct xe_vm *vm,
> >
> > switch (op->base.op) {
> > case DRM_GPUVA_OP_MAP:
> > - if (!op->map.immediate &&
> xe_vm_in_fault_mode(vm))
> > + if (!op->map.immediate &&
> xe_vm_in_fault_mode(vm) &&
> > + !op->map.invalidate_on_bind)
> > break;
> >
> > + if (op->map.invalidate_on_bind)
> > + pt_update_ops->invalidate_on_bind = true;
> > +
> > err = bind_op_prepare(vm, tile, pt_update_ops, op-
> >map.vma);
> > pt_update_ops->wait_vm_kernel = true;
> > break;
> > @@ -1871,6 +1898,8 @@ static void bind_op_commit(struct xe_vm
> *vm, struct xe_tile *tile,
> > }
> > vma->tile_present |= BIT(tile->id);
> > vma->tile_staged &= ~BIT(tile->id);
> > + if (pt_update_ops->invalidate_on_bind)
> > + vma->tile_invalidated |= BIT(tile->id);
> > if (xe_vma_is_userptr(vma)) {
> > lockdep_assert_held_read(&vm-
> >userptr.notifier_lock);
> > to_userptr_vma(vma)->userptr.initial_bind = true;
> > diff --git a/drivers/gpu/drm/xe/xe_pt_types.h
> b/drivers/gpu/drm/xe/xe_pt_types.h
> > index 384cc04de719..3d0aa2a5102e 100644
> > --- a/drivers/gpu/drm/xe/xe_pt_types.h
> > +++ b/drivers/gpu/drm/xe/xe_pt_types.h
> > @@ -108,6 +108,8 @@ struct xe_vm_pgtable_update_ops {
> > bool needs_userptr_lock;
> > /** @needs_invalidation: Needs invalidation */
> > bool needs_invalidation;
> > + /** @invalidate_on_bind: Invalidate the range before bind */
> > + bool invalidate_on_bind;
> > /**
> > * @wait_vm_bookkeep: PT operations need to wait until VM
> is idle
> > * (bookkeep dma-resv slots are idle) and stage all future VM
> activity
> > diff --git a/drivers/gpu/drm/xe/xe_vm.c
> b/drivers/gpu/drm/xe/xe_vm.c
> > index d664f2e418b2..813d893d9b63 100644
> > --- a/drivers/gpu/drm/xe/xe_vm.c
> > +++ b/drivers/gpu/drm/xe/xe_vm.c
> > @@ -1921,6 +1921,23 @@ static void print_op(struct xe_device *xe,
> struct drm_gpuva_op *op)
> > }
> > #endif
> >
> > +static bool __xe_vm_needs_clear_scratch_pages(struct xe_vm
> *vm, u32 bind_flags)
> > +{
> > + if (!xe_vm_in_fault_mode(vm))
> > + return false;
> > +
> > + if (!NEEDS_SCRATCH(vm->xe))
> > + return false;
> > +
> > + if (!xe_vm_has_scratch(vm))
> > + return false;
> > +
> > + if (bind_flags & DRM_XE_VM_BIND_FLAG_IMMEDIATE)
> > + return false;
> > +
> > + return true;
> > +}
> > +
> > /*
> > * Create operations list from IOCTL arguments, setup operations
> fields so parse
> > * and commit steps are decoupled from IOCTL arguments. This
> step can fail.
> > @@ -1991,6 +2008,8 @@ vm_bind_ioctl_ops_create(struct xe_vm
> *vm, struct xe_bo *bo,
> > op->map.is_null = flags &
> DRM_XE_VM_BIND_FLAG_NULL;
> > op->map.dumpable = flags &
> DRM_XE_VM_BIND_FLAG_DUMPABLE;
> > op->map.pat_index = pat_index;
> > + op->map.invalidate_on_bind =
> > +
> __xe_vm_needs_clear_scratch_pages(vm, flags);
> > } else if (__op->op == DRM_GPUVA_OP_PREFETCH) {
> > op->prefetch.region = prefetch_region;
> > }
> > @@ -2188,7 +2207,8 @@ static int vm_bind_ioctl_ops_parse(struct
> xe_vm *vm, struct drm_gpuva_ops *ops,
> > return PTR_ERR(vma);
> >
> > op->map.vma = vma;
> > - if (op->map.immediate
> || !xe_vm_in_fault_mode(vm))
> > + if (op->map.immediate
> || !xe_vm_in_fault_mode(vm) ||
> > + op->map.invalidate_on_bind)
> >
> xe_vma_ops_incr_pt_update_ops(vops,
> > op-
> >tile_mask);
> > break;
> > @@ -2416,9 +2436,10 @@ static int op_lock_and_prep(struct
> drm_exec *exec, struct xe_vm *vm,
> >
> > switch (op->base.op) {
> > case DRM_GPUVA_OP_MAP:
> > - err = vma_lock_and_validate(exec, op->map.vma,
> > - !xe_vm_in_fault_mode(vm)
> ||
> > - op->map.immediate);
> > + if (!op->map.invalidate_on_bind)
> > + err = vma_lock_and_validate(exec, op-
> >map.vma,
> > +
> !xe_vm_in_fault_mode(vm) ||
> > + op-
> >map.immediate);
> > break;
> > case DRM_GPUVA_OP_REMAP:
> > err = check_ufence(gpuva_to_vma(op-
> >base.remap.unmap->va));
> > diff --git a/drivers/gpu/drm/xe/xe_vm_types.h
> b/drivers/gpu/drm/xe/xe_vm_types.h
> > index 52467b9b5348..dace04f4ea5e 100644
> > --- a/drivers/gpu/drm/xe/xe_vm_types.h
> > +++ b/drivers/gpu/drm/xe/xe_vm_types.h
> > @@ -297,6 +297,8 @@ struct xe_vma_op_map {
> > bool is_null;
> > /** @dumpable: whether BO is dumped on GPU hang */
> > bool dumpable;
> > + /** @invalidate: invalidate the VMA before bind */
> > + bool invalidate_on_bind;
> > /** @pat_index: The pat index to use for this operation. */
> > u16 pat_index;
> > };
> > --
> > 2.26.3
> >
^ permalink raw reply [flat|nested] 29+ messages in thread* Re: [PATCH 2/3] drm/xe: Clear scratch page on vm_bind
2025-02-19 20:19 ` Zeng, Oak
@ 2025-02-19 20:46 ` Matthew Brost
2025-02-20 21:09 ` Matthew Brost
0 siblings, 1 reply; 29+ messages in thread
From: Matthew Brost @ 2025-02-19 20:46 UTC (permalink / raw)
To: Zeng, Oak
Cc: intel-xe@lists.freedesktop.org, Thomas.Hellstrom@linux.intel.com,
Cavitt, Jonathan
On Wed, Feb 19, 2025 at 01:19:10PM -0700, Zeng, Oak wrote:
>
>
> > -----Original Message-----
> > From: Brost, Matthew <matthew.brost@intel.com>
> > Sent: February 19, 2025 12:47 PM
> > To: Zeng, Oak <oak.zeng@intel.com>
> > Cc: intel-xe@lists.freedesktop.org;
> > Thomas.Hellstrom@linux.intel.com; Cavitt, Jonathan
> > <jonathan.cavitt@intel.com>
> > Subject: Re: [PATCH 2/3] drm/xe: Clear scratch page on vm_bind
> >
> > On Wed, Feb 12, 2025 at 09:23:30PM -0500, Oak Zeng wrote:
> > > When a vm runs under fault mode, if scratch page is enabled, we
> > need
> > > to clear the scratch page mapping on vm_bind for the vm_bind
> > address
> > > range. Under fault mode, we depend on recoverable page fault to
> > > establish mapping in page table. If scratch page is not cleared, GPU
> > > access of address won't cause page fault because it always hits the
> > > existing scratch page mapping.
> > >
> > > When vm_bind with IMMEDIATE flag, there is no need of clearing as
> > > immediate bind can overwrite the scratch page mapping.
> > >
> > > So far only is xe2 and xe3 products are allowed to enable scratch
> > page
> > > under fault mode. On other platform we don't allow scratch page
> > under
> > > fault mode, so no need of such clearing.
> > >
> > > v2: Rework vm_bind pipeline to clear scratch page mapping. This is
> > similar
> > > to a map operation, with the exception that PTEs are cleared
> > instead of
> > > pointing to valid physical pages. (Matt, Thomas)
> > >
> > > TLB invalidation is needed after clear scratch page mapping as larger
> > > scratch page mapping could be backed by physical page and cached
> > in
> > > TLB. (Matt, Thomas)
> > >
> > > v3: Fix the case of clearing huge pte (Thomas)
> > >
> > > Improve commit message (Thomas)
> > >
> > > v4: TLB invalidation on all LR cases, not only the clear on bind
> > > cases (Thomas)
> > >
> > > Signed-off-by: Oak Zeng <oak.zeng@intel.com>
> > > ---
> > > drivers/gpu/drm/xe/xe_pt.c | 53
> > ++++++++++++++++++++++++--------
> > > drivers/gpu/drm/xe/xe_pt_types.h | 2 ++
> > > drivers/gpu/drm/xe/xe_vm.c | 29 ++++++++++++++---
> > > drivers/gpu/drm/xe/xe_vm_types.h | 2 ++
> > > 4 files changed, 70 insertions(+), 16 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/xe/xe_pt.c
> > b/drivers/gpu/drm/xe/xe_pt.c
> > > index 1ddcc7e79a93..319769056893 100644
> > > --- a/drivers/gpu/drm/xe/xe_pt.c
> > > +++ b/drivers/gpu/drm/xe/xe_pt.c
> > > @@ -268,6 +268,8 @@ struct xe_pt_stage_bind_walk {
> > > * granularity.
> > > */
> > > bool needs_64K;
> > > + /* @clear_pt: clear page table entries during the bind walk */
> > > + bool clear_pt;
> > > /**
> > > * @vma: VMA being mapped
> > > */
> > > @@ -415,6 +417,10 @@ static bool xe_pt_hugepte_possible(u64
> > addr, u64 next, unsigned int level,
> > > if (xe_vma_is_null(xe_walk->vma))
> > > return true;
> > >
> > > + /* if we are clearing page table, no dma addresses*/
> > > + if (xe_walk->clear_pt)
> > > + return true;
> > > +
> > > /* Is the DMA address huge PTE size aligned? */
> > > size = next - addr;
> > > dma = addr - xe_walk->va_curs_start +
> > xe_res_dma(xe_walk->curs);
> > > @@ -497,16 +503,19 @@ xe_pt_stage_bind_entry(struct xe_ptw
> > *parent, pgoff_t offset,
> > >
> > > XE_WARN_ON(xe_walk->va_curs_start != addr);
> > >
> > > - pte = vm->pt_ops->pte_encode_vma(is_null ? 0 :
> > > - xe_res_dma(curs) +
> > xe_walk->dma_offset,
> > > - xe_walk->vma,
> > pat_index, level);
> > > + pte = vm->pt_ops->pte_encode_vma(is_null ||
> > xe_walk->clear_pt ?
> > > + 0 : xe_res_dma(curs) + xe_walk-
> > >dma_offset,
> > > + xe_walk->vma, pat_index, level);
> > > pte |= xe_walk->default_pte;
> > >
> > > + if (xe_walk->clear_pt)
> > > + pte = 0;
> >
> > Is there a way to move this clear to later in the pipeline? e.g. At the
> > step which actually programs the page tables via a GPU job or the CPU?
>
> Isn't the design here generate all the page table entries in this stage_bind stage,
> And actual programming of page table using cpu/gpu just focus on writing the
> Page table entries to the actual page table? From this perspective, it is more
> Natural to set the entries to 0 here for clear_pt case.
>
Yes, but for userptr an invalidation can occur *after* the stage_bind step.
> Of cause you can do it later, but it is at the cost of sacrifice the design.
>
>
> > I
> > ask as I think our userptr code is broken for invalidations which could
> > hook into clearing to fix this.
>
> Can you elaborate how the userptr invalidation is broken? Is it broken by this patch?
The existing code is broken. One option being discussed to fix this is
convert a bind to an invalidation at the very last stage of the bind.
Checking here to see if this viable. Hopefully Thomas and I agree on a
plan in the next day or so.
> I don't follow here. As I understand it, the userptr invalidation doesn't go to this
> Stage_bind function. It goes to xe_pt_zap_ptes. So I don't follow how userptr invalidate
> Is broken...
>
It is about if you have large array of binds and single userptr is
invalidated between xe_userptr_pin rather than restart the entire array
of bind just convert the single bind to an invalidation and fixup pages
in the rebind worker, exec, or page fault. The code tries to do this but
it is wrong from security standpoint and may have a possible UAF.
Anyways let me get back to you once we figure out the direction we want
to go to fix this - we may land on just restart the entire array of
binds when this occurs making my comment here irrelevant.
Matt
> Oak
>
>
> Also I think prefetch for SVM could also
> > make use of this too.
> >
> > I believe for this use case this patch is correct though.
> >
> > Matt
> >
> > > +
> > > /*
> > > * Set the XE_PTE_PS64 hint if possible, otherwise if
> > > * this device *requires* 64K PTE size for VRAM, fail.
> > > */
> > > - if (level == 0 && !xe_parent->is_compact) {
> > > + if (level == 0 && !xe_parent->is_compact
> > && !xe_walk->clear_pt) {
> > > if (xe_pt_is_pte_ps64K(addr, next, xe_walk))
> > {
> > > xe_walk->vma->gpuva.flags |=
> > XE_VMA_PTE_64K;
> > > pte |= XE_PTE_PS64;
> > > @@ -519,7 +528,7 @@ xe_pt_stage_bind_entry(struct xe_ptw
> > *parent, pgoff_t offset,
> > > if (unlikely(ret))
> > > return ret;
> > >
> > > - if (!is_null)
> > > + if (!is_null && !xe_walk->clear_pt)
> > > xe_res_next(curs, next - addr);
> > > xe_walk->va_curs_start = next;
> > > xe_walk->vma->gpuva.flags |= (XE_VMA_PTE_4K <<
> > level);
> > > @@ -589,6 +598,7 @@ static const struct xe_pt_walk_ops
> > xe_pt_stage_bind_ops = {
> > > * @vma: The vma indicating the address range.
> > > * @entries: Storage for the update entries used for connecting the
> > tree to
> > > * the main tree at commit time.
> > > + * @clear_pt: Clear the page table entries.
> > > * @num_entries: On output contains the number of @entries
> > used.
> > > *
> > > * This function builds a disconnected page-table tree for a given
> > address
> > > @@ -602,7 +612,8 @@ static const struct xe_pt_walk_ops
> > xe_pt_stage_bind_ops = {
> > > */
> > > static int
> > > xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
> > > - struct xe_vm_pgtable_update *entries, u32
> > *num_entries)
> > > + struct xe_vm_pgtable_update *entries,
> > > + bool clear_pt, u32 *num_entries)
> > > {
> > > struct xe_device *xe = tile_to_xe(tile);
> > > struct xe_bo *bo = xe_vma_bo(vma);
> > > @@ -622,10 +633,19 @@ xe_pt_stage_bind(struct xe_tile *tile,
> > struct xe_vma *vma,
> > > .vma = vma,
> > > .wupd.entries = entries,
> > > .needs_64K = (xe_vma_vm(vma)->flags &
> > XE_VM_FLAG_64K) && is_devmem,
> > > + .clear_pt = clear_pt,
> > > };
> > > struct xe_pt *pt = xe_vma_vm(vma)->pt_root[tile->id];
> > > int ret;
> > >
> > > + if (clear_pt) {
> > > + ret = xe_pt_walk_range(&pt->base, pt->level,
> > xe_vma_start(vma),
> > > + xe_vma_end(vma),
> > &xe_walk.base);
> > > +
> > > + *num_entries = xe_walk.wupd.num_used_entries;
> > > + return ret;
> > > + }
> > > +
> > > /**
> > > * Default atomic expectations for different allocation
> > scenarios are as follows:
> > > *
> > > @@ -981,12 +1001,14 @@ static void xe_pt_free_bind(struct
> > xe_vm_pgtable_update *entries,
> > >
> > > static int
> > > xe_pt_prepare_bind(struct xe_tile *tile, struct xe_vma *vma,
> > > - struct xe_vm_pgtable_update *entries, u32
> > *num_entries)
> > > + struct xe_vm_pgtable_update *entries,
> > > + bool invalidate_on_bind, u32 *num_entries)
> > > {
> > > int err;
> > >
> > > *num_entries = 0;
> > > - err = xe_pt_stage_bind(tile, vma, entries, num_entries);
> > > + err = xe_pt_stage_bind(tile, vma, entries, invalidate_on_bind,
> > > + num_entries);
> > > if (!err)
> > > xe_tile_assert(tile, *num_entries);
> > >
> > > @@ -1661,6 +1683,7 @@ static int bind_op_prepare(struct xe_vm
> > *vm, struct xe_tile *tile,
> > > return err;
> > >
> > > err = xe_pt_prepare_bind(tile, vma, pt_op->entries,
> > > + pt_update_ops->invalidate_on_bind,
> > > &pt_op->num_entries);
> > > if (!err) {
> > > xe_tile_assert(tile, pt_op->num_entries <=
> > > @@ -1681,11 +1704,11 @@ static int bind_op_prepare(struct
> > xe_vm *vm, struct xe_tile *tile,
> > > * If !rebind, and scratch enabled VMs, there is a
> > chance the scratch
> > > * PTE is already cached in the TLB so it needs to be
> > invalidated.
> > > * On !LR VMs this is done in the ring ops preceding a
> > batch, but on
> > > - * non-faulting LR, in particular on user-space batch
> > buffer chaining,
> > > - * it needs to be done here.
> > > + * LR, in particular on user-space batch buffer chaining,
> > it needs to
> > > + * be done here.
> > > */
> > > if ((!pt_op->rebind && xe_vm_has_scratch(vm) &&
> > > - xe_vm_in_preempt_fence_mode(vm)))
> > > + xe_vm_in_lr_mode(vm)))
> > > pt_update_ops->needs_invalidation = true;
> > > else if (pt_op->rebind && !xe_vm_in_lr_mode(vm))
> > > /* We bump also if batch_invalidate_tlb is
> > true */
> > > @@ -1759,9 +1782,13 @@ static int op_prepare(struct xe_vm *vm,
> > >
> > > switch (op->base.op) {
> > > case DRM_GPUVA_OP_MAP:
> > > - if (!op->map.immediate &&
> > xe_vm_in_fault_mode(vm))
> > > + if (!op->map.immediate &&
> > xe_vm_in_fault_mode(vm) &&
> > > + !op->map.invalidate_on_bind)
> > > break;
> > >
> > > + if (op->map.invalidate_on_bind)
> > > + pt_update_ops->invalidate_on_bind = true;
> > > +
> > > err = bind_op_prepare(vm, tile, pt_update_ops, op-
> > >map.vma);
> > > pt_update_ops->wait_vm_kernel = true;
> > > break;
> > > @@ -1871,6 +1898,8 @@ static void bind_op_commit(struct xe_vm
> > *vm, struct xe_tile *tile,
> > > }
> > > vma->tile_present |= BIT(tile->id);
> > > vma->tile_staged &= ~BIT(tile->id);
> > > + if (pt_update_ops->invalidate_on_bind)
> > > + vma->tile_invalidated |= BIT(tile->id);
> > > if (xe_vma_is_userptr(vma)) {
> > > lockdep_assert_held_read(&vm-
> > >userptr.notifier_lock);
> > > to_userptr_vma(vma)->userptr.initial_bind = true;
> > > diff --git a/drivers/gpu/drm/xe/xe_pt_types.h
> > b/drivers/gpu/drm/xe/xe_pt_types.h
> > > index 384cc04de719..3d0aa2a5102e 100644
> > > --- a/drivers/gpu/drm/xe/xe_pt_types.h
> > > +++ b/drivers/gpu/drm/xe/xe_pt_types.h
> > > @@ -108,6 +108,8 @@ struct xe_vm_pgtable_update_ops {
> > > bool needs_userptr_lock;
> > > /** @needs_invalidation: Needs invalidation */
> > > bool needs_invalidation;
> > > + /** @invalidate_on_bind: Invalidate the range before bind */
> > > + bool invalidate_on_bind;
> > > /**
> > > * @wait_vm_bookkeep: PT operations need to wait until VM
> > is idle
> > > * (bookkeep dma-resv slots are idle) and stage all future VM
> > activity
> > > diff --git a/drivers/gpu/drm/xe/xe_vm.c
> > b/drivers/gpu/drm/xe/xe_vm.c
> > > index d664f2e418b2..813d893d9b63 100644
> > > --- a/drivers/gpu/drm/xe/xe_vm.c
> > > +++ b/drivers/gpu/drm/xe/xe_vm.c
> > > @@ -1921,6 +1921,23 @@ static void print_op(struct xe_device *xe,
> > struct drm_gpuva_op *op)
> > > }
> > > #endif
> > >
> > > +static bool __xe_vm_needs_clear_scratch_pages(struct xe_vm
> > *vm, u32 bind_flags)
> > > +{
> > > + if (!xe_vm_in_fault_mode(vm))
> > > + return false;
> > > +
> > > + if (!NEEDS_SCRATCH(vm->xe))
> > > + return false;
> > > +
> > > + if (!xe_vm_has_scratch(vm))
> > > + return false;
> > > +
> > > + if (bind_flags & DRM_XE_VM_BIND_FLAG_IMMEDIATE)
> > > + return false;
> > > +
> > > + return true;
> > > +}
> > > +
> > > /*
> > > * Create operations list from IOCTL arguments, setup operations
> > fields so parse
> > > * and commit steps are decoupled from IOCTL arguments. This
> > step can fail.
> > > @@ -1991,6 +2008,8 @@ vm_bind_ioctl_ops_create(struct xe_vm
> > *vm, struct xe_bo *bo,
> > > op->map.is_null = flags &
> > DRM_XE_VM_BIND_FLAG_NULL;
> > > op->map.dumpable = flags &
> > DRM_XE_VM_BIND_FLAG_DUMPABLE;
> > > op->map.pat_index = pat_index;
> > > + op->map.invalidate_on_bind =
> > > +
> > __xe_vm_needs_clear_scratch_pages(vm, flags);
> > > } else if (__op->op == DRM_GPUVA_OP_PREFETCH) {
> > > op->prefetch.region = prefetch_region;
> > > }
> > > @@ -2188,7 +2207,8 @@ static int vm_bind_ioctl_ops_parse(struct
> > xe_vm *vm, struct drm_gpuva_ops *ops,
> > > return PTR_ERR(vma);
> > >
> > > op->map.vma = vma;
> > > - if (op->map.immediate
> > || !xe_vm_in_fault_mode(vm))
> > > + if (op->map.immediate
> > || !xe_vm_in_fault_mode(vm) ||
> > > + op->map.invalidate_on_bind)
> > >
> > xe_vma_ops_incr_pt_update_ops(vops,
> > > op-
> > >tile_mask);
> > > break;
> > > @@ -2416,9 +2436,10 @@ static int op_lock_and_prep(struct
> > drm_exec *exec, struct xe_vm *vm,
> > >
> > > switch (op->base.op) {
> > > case DRM_GPUVA_OP_MAP:
> > > - err = vma_lock_and_validate(exec, op->map.vma,
> > > - !xe_vm_in_fault_mode(vm)
> > ||
> > > - op->map.immediate);
> > > + if (!op->map.invalidate_on_bind)
> > > + err = vma_lock_and_validate(exec, op-
> > >map.vma,
> > > +
> > !xe_vm_in_fault_mode(vm) ||
> > > + op-
> > >map.immediate);
> > > break;
> > > case DRM_GPUVA_OP_REMAP:
> > > err = check_ufence(gpuva_to_vma(op-
> > >base.remap.unmap->va));
> > > diff --git a/drivers/gpu/drm/xe/xe_vm_types.h
> > b/drivers/gpu/drm/xe/xe_vm_types.h
> > > index 52467b9b5348..dace04f4ea5e 100644
> > > --- a/drivers/gpu/drm/xe/xe_vm_types.h
> > > +++ b/drivers/gpu/drm/xe/xe_vm_types.h
> > > @@ -297,6 +297,8 @@ struct xe_vma_op_map {
> > > bool is_null;
> > > /** @dumpable: whether BO is dumped on GPU hang */
> > > bool dumpable;
> > > + /** @invalidate: invalidate the VMA before bind */
> > > + bool invalidate_on_bind;
> > > /** @pat_index: The pat index to use for this operation. */
> > > u16 pat_index;
> > > };
> > > --
> > > 2.26.3
> > >
^ permalink raw reply [flat|nested] 29+ messages in thread* Re: [PATCH 2/3] drm/xe: Clear scratch page on vm_bind
2025-02-19 20:46 ` Matthew Brost
@ 2025-02-20 21:09 ` Matthew Brost
0 siblings, 0 replies; 29+ messages in thread
From: Matthew Brost @ 2025-02-20 21:09 UTC (permalink / raw)
To: Zeng, Oak
Cc: intel-xe@lists.freedesktop.org, Thomas.Hellstrom@linux.intel.com,
Cavitt, Jonathan
On Wed, Feb 19, 2025 at 12:46:52PM -0800, Matthew Brost wrote:
> On Wed, Feb 19, 2025 at 01:19:10PM -0700, Zeng, Oak wrote:
> >
> >
> > > -----Original Message-----
> > > From: Brost, Matthew <matthew.brost@intel.com>
> > > Sent: February 19, 2025 12:47 PM
> > > To: Zeng, Oak <oak.zeng@intel.com>
> > > Cc: intel-xe@lists.freedesktop.org;
> > > Thomas.Hellstrom@linux.intel.com; Cavitt, Jonathan
> > > <jonathan.cavitt@intel.com>
> > > Subject: Re: [PATCH 2/3] drm/xe: Clear scratch page on vm_bind
> > >
> > > On Wed, Feb 12, 2025 at 09:23:30PM -0500, Oak Zeng wrote:
> > > > When a vm runs under fault mode, if scratch page is enabled, we
> > > need
> > > > to clear the scratch page mapping on vm_bind for the vm_bind
> > > address
> > > > range. Under fault mode, we depend on recoverable page fault to
> > > > establish mapping in page table. If scratch page is not cleared, GPU
> > > > access of address won't cause page fault because it always hits the
> > > > existing scratch page mapping.
> > > >
> > > > When vm_bind with IMMEDIATE flag, there is no need of clearing as
> > > > immediate bind can overwrite the scratch page mapping.
> > > >
> > > > So far only is xe2 and xe3 products are allowed to enable scratch
> > > page
> > > > under fault mode. On other platform we don't allow scratch page
> > > under
> > > > fault mode, so no need of such clearing.
> > > >
> > > > v2: Rework vm_bind pipeline to clear scratch page mapping. This is
> > > similar
> > > > to a map operation, with the exception that PTEs are cleared
> > > instead of
> > > > pointing to valid physical pages. (Matt, Thomas)
> > > >
> > > > TLB invalidation is needed after clear scratch page mapping as larger
> > > > scratch page mapping could be backed by physical page and cached
> > > in
> > > > TLB. (Matt, Thomas)
> > > >
> > > > v3: Fix the case of clearing huge pte (Thomas)
> > > >
> > > > Improve commit message (Thomas)
> > > >
> > > > v4: TLB invalidation on all LR cases, not only the clear on bind
> > > > cases (Thomas)
> > > >
> > > > Signed-off-by: Oak Zeng <oak.zeng@intel.com>
> > > > ---
> > > > drivers/gpu/drm/xe/xe_pt.c | 53
> > > ++++++++++++++++++++++++--------
> > > > drivers/gpu/drm/xe/xe_pt_types.h | 2 ++
> > > > drivers/gpu/drm/xe/xe_vm.c | 29 ++++++++++++++---
> > > > drivers/gpu/drm/xe/xe_vm_types.h | 2 ++
> > > > 4 files changed, 70 insertions(+), 16 deletions(-)
> > > >
> > > > diff --git a/drivers/gpu/drm/xe/xe_pt.c
> > > b/drivers/gpu/drm/xe/xe_pt.c
> > > > index 1ddcc7e79a93..319769056893 100644
> > > > --- a/drivers/gpu/drm/xe/xe_pt.c
> > > > +++ b/drivers/gpu/drm/xe/xe_pt.c
> > > > @@ -268,6 +268,8 @@ struct xe_pt_stage_bind_walk {
> > > > * granularity.
> > > > */
> > > > bool needs_64K;
> > > > + /* @clear_pt: clear page table entries during the bind walk */
> > > > + bool clear_pt;
> > > > /**
> > > > * @vma: VMA being mapped
> > > > */
> > > > @@ -415,6 +417,10 @@ static bool xe_pt_hugepte_possible(u64
> > > addr, u64 next, unsigned int level,
> > > > if (xe_vma_is_null(xe_walk->vma))
> > > > return true;
> > > >
> > > > + /* if we are clearing page table, no dma addresses*/
> > > > + if (xe_walk->clear_pt)
> > > > + return true;
> > > > +
> > > > /* Is the DMA address huge PTE size aligned? */
> > > > size = next - addr;
> > > > dma = addr - xe_walk->va_curs_start +
> > > xe_res_dma(xe_walk->curs);
> > > > @@ -497,16 +503,19 @@ xe_pt_stage_bind_entry(struct xe_ptw
> > > *parent, pgoff_t offset,
> > > >
> > > > XE_WARN_ON(xe_walk->va_curs_start != addr);
> > > >
> > > > - pte = vm->pt_ops->pte_encode_vma(is_null ? 0 :
> > > > - xe_res_dma(curs) +
> > > xe_walk->dma_offset,
> > > > - xe_walk->vma,
> > > pat_index, level);
> > > > + pte = vm->pt_ops->pte_encode_vma(is_null ||
> > > xe_walk->clear_pt ?
> > > > + 0 : xe_res_dma(curs) + xe_walk-
> > > >dma_offset,
> > > > + xe_walk->vma, pat_index, level);
> > > > pte |= xe_walk->default_pte;
> > > >
> > > > + if (xe_walk->clear_pt)
> > > > + pte = 0;
> > >
> > > Is there a way to move this clear to later in the pipeline? e.g. At the
> > > step which actually programs the page tables via a GPU job or the CPU?
> >
> > Isn't the design here generate all the page table entries in this stage_bind stage,
> > And actual programming of page table using cpu/gpu just focus on writing the
> > Page table entries to the actual page table? From this perspective, it is more
> > Natural to set the entries to 0 here for clear_pt case.
> >
>
> Yes, but for userptr an invalidation can occur *after* the stage_bind step.
>
> > Of cause you can do it later, but it is at the cost of sacrifice the design.
> >
> >
> > > I
> > > ask as I think our userptr code is broken for invalidations which could
> > > hook into clearing to fix this.
> >
> > Can you elaborate how the userptr invalidation is broken? Is it broken by this patch?
>
> The existing code is broken. One option being discussed to fix this is
> convert a bind to an invalidation at the very last stage of the bind.
> Checking here to see if this viable. Hopefully Thomas and I agree on a
> plan in the next day or so.
>
> > I don't follow here. As I understand it, the userptr invalidation doesn't go to this
> > Stage_bind function. It goes to xe_pt_zap_ptes. So I don't follow how userptr invalidate
> > Is broken...
> >
>
> It is about if you have large array of binds and single userptr is
> invalidated between xe_userptr_pin rather than restart the entire array
> of bind just convert the single bind to an invalidation and fixup pages
> in the rebind worker, exec, or page fault. The code tries to do this but
> it is wrong from security standpoint and may have a possible UAF.
>
> Anyways let me get back to you once we figure out the direction we want
> to go to fix this - we may land on just restart the entire array of
> binds when this occurs making my comment here irrelevant.
>
After some further thought, I will be fixing userptr issue converting
userptr invalidations which raced into PTE clears at later step in the
bind process. However, this is a rather costly operation as it has to
search the OPs list to do so, so I think having your solution in this
patch for expected PTE clears also makes sense. Sorry for the noise.
Matt
> Matt
>
> > Oak
> >
> >
> > Also I think prefetch for SVM could also
> > > make use of this too.
> > >
> > > I believe for this use case this patch is correct though.
> > >
> > > Matt
> > >
> > > > +
> > > > /*
> > > > * Set the XE_PTE_PS64 hint if possible, otherwise if
> > > > * this device *requires* 64K PTE size for VRAM, fail.
> > > > */
> > > > - if (level == 0 && !xe_parent->is_compact) {
> > > > + if (level == 0 && !xe_parent->is_compact
> > > && !xe_walk->clear_pt) {
> > > > if (xe_pt_is_pte_ps64K(addr, next, xe_walk))
> > > {
> > > > xe_walk->vma->gpuva.flags |=
> > > XE_VMA_PTE_64K;
> > > > pte |= XE_PTE_PS64;
> > > > @@ -519,7 +528,7 @@ xe_pt_stage_bind_entry(struct xe_ptw
> > > *parent, pgoff_t offset,
> > > > if (unlikely(ret))
> > > > return ret;
> > > >
> > > > - if (!is_null)
> > > > + if (!is_null && !xe_walk->clear_pt)
> > > > xe_res_next(curs, next - addr);
> > > > xe_walk->va_curs_start = next;
> > > > xe_walk->vma->gpuva.flags |= (XE_VMA_PTE_4K <<
> > > level);
> > > > @@ -589,6 +598,7 @@ static const struct xe_pt_walk_ops
> > > xe_pt_stage_bind_ops = {
> > > > * @vma: The vma indicating the address range.
> > > > * @entries: Storage for the update entries used for connecting the
> > > tree to
> > > > * the main tree at commit time.
> > > > + * @clear_pt: Clear the page table entries.
> > > > * @num_entries: On output contains the number of @entries
> > > used.
> > > > *
> > > > * This function builds a disconnected page-table tree for a given
> > > address
> > > > @@ -602,7 +612,8 @@ static const struct xe_pt_walk_ops
> > > xe_pt_stage_bind_ops = {
> > > > */
> > > > static int
> > > > xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
> > > > - struct xe_vm_pgtable_update *entries, u32
> > > *num_entries)
> > > > + struct xe_vm_pgtable_update *entries,
> > > > + bool clear_pt, u32 *num_entries)
> > > > {
> > > > struct xe_device *xe = tile_to_xe(tile);
> > > > struct xe_bo *bo = xe_vma_bo(vma);
> > > > @@ -622,10 +633,19 @@ xe_pt_stage_bind(struct xe_tile *tile,
> > > struct xe_vma *vma,
> > > > .vma = vma,
> > > > .wupd.entries = entries,
> > > > .needs_64K = (xe_vma_vm(vma)->flags &
> > > XE_VM_FLAG_64K) && is_devmem,
> > > > + .clear_pt = clear_pt,
> > > > };
> > > > struct xe_pt *pt = xe_vma_vm(vma)->pt_root[tile->id];
> > > > int ret;
> > > >
> > > > + if (clear_pt) {
> > > > + ret = xe_pt_walk_range(&pt->base, pt->level,
> > > xe_vma_start(vma),
> > > > + xe_vma_end(vma),
> > > &xe_walk.base);
> > > > +
> > > > + *num_entries = xe_walk.wupd.num_used_entries;
> > > > + return ret;
> > > > + }
> > > > +
> > > > /**
> > > > * Default atomic expectations for different allocation
> > > scenarios are as follows:
> > > > *
> > > > @@ -981,12 +1001,14 @@ static void xe_pt_free_bind(struct
> > > xe_vm_pgtable_update *entries,
> > > >
> > > > static int
> > > > xe_pt_prepare_bind(struct xe_tile *tile, struct xe_vma *vma,
> > > > - struct xe_vm_pgtable_update *entries, u32
> > > *num_entries)
> > > > + struct xe_vm_pgtable_update *entries,
> > > > + bool invalidate_on_bind, u32 *num_entries)
> > > > {
> > > > int err;
> > > >
> > > > *num_entries = 0;
> > > > - err = xe_pt_stage_bind(tile, vma, entries, num_entries);
> > > > + err = xe_pt_stage_bind(tile, vma, entries, invalidate_on_bind,
> > > > + num_entries);
> > > > if (!err)
> > > > xe_tile_assert(tile, *num_entries);
> > > >
> > > > @@ -1661,6 +1683,7 @@ static int bind_op_prepare(struct xe_vm
> > > *vm, struct xe_tile *tile,
> > > > return err;
> > > >
> > > > err = xe_pt_prepare_bind(tile, vma, pt_op->entries,
> > > > + pt_update_ops->invalidate_on_bind,
> > > > &pt_op->num_entries);
> > > > if (!err) {
> > > > xe_tile_assert(tile, pt_op->num_entries <=
> > > > @@ -1681,11 +1704,11 @@ static int bind_op_prepare(struct
> > > xe_vm *vm, struct xe_tile *tile,
> > > > * If !rebind, and scratch enabled VMs, there is a
> > > chance the scratch
> > > > * PTE is already cached in the TLB so it needs to be
> > > invalidated.
> > > > * On !LR VMs this is done in the ring ops preceding a
> > > batch, but on
> > > > - * non-faulting LR, in particular on user-space batch
> > > buffer chaining,
> > > > - * it needs to be done here.
> > > > + * LR, in particular on user-space batch buffer chaining,
> > > it needs to
> > > > + * be done here.
> > > > */
> > > > if ((!pt_op->rebind && xe_vm_has_scratch(vm) &&
> > > > - xe_vm_in_preempt_fence_mode(vm)))
> > > > + xe_vm_in_lr_mode(vm)))
> > > > pt_update_ops->needs_invalidation = true;
> > > > else if (pt_op->rebind && !xe_vm_in_lr_mode(vm))
> > > > /* We bump also if batch_invalidate_tlb is
> > > true */
> > > > @@ -1759,9 +1782,13 @@ static int op_prepare(struct xe_vm *vm,
> > > >
> > > > switch (op->base.op) {
> > > > case DRM_GPUVA_OP_MAP:
> > > > - if (!op->map.immediate &&
> > > xe_vm_in_fault_mode(vm))
> > > > + if (!op->map.immediate &&
> > > xe_vm_in_fault_mode(vm) &&
> > > > + !op->map.invalidate_on_bind)
> > > > break;
> > > >
> > > > + if (op->map.invalidate_on_bind)
> > > > + pt_update_ops->invalidate_on_bind = true;
> > > > +
> > > > err = bind_op_prepare(vm, tile, pt_update_ops, op-
> > > >map.vma);
> > > > pt_update_ops->wait_vm_kernel = true;
> > > > break;
> > > > @@ -1871,6 +1898,8 @@ static void bind_op_commit(struct xe_vm
> > > *vm, struct xe_tile *tile,
> > > > }
> > > > vma->tile_present |= BIT(tile->id);
> > > > vma->tile_staged &= ~BIT(tile->id);
> > > > + if (pt_update_ops->invalidate_on_bind)
> > > > + vma->tile_invalidated |= BIT(tile->id);
> > > > if (xe_vma_is_userptr(vma)) {
> > > > lockdep_assert_held_read(&vm-
> > > >userptr.notifier_lock);
> > > > to_userptr_vma(vma)->userptr.initial_bind = true;
> > > > diff --git a/drivers/gpu/drm/xe/xe_pt_types.h
> > > b/drivers/gpu/drm/xe/xe_pt_types.h
> > > > index 384cc04de719..3d0aa2a5102e 100644
> > > > --- a/drivers/gpu/drm/xe/xe_pt_types.h
> > > > +++ b/drivers/gpu/drm/xe/xe_pt_types.h
> > > > @@ -108,6 +108,8 @@ struct xe_vm_pgtable_update_ops {
> > > > bool needs_userptr_lock;
> > > > /** @needs_invalidation: Needs invalidation */
> > > > bool needs_invalidation;
> > > > + /** @invalidate_on_bind: Invalidate the range before bind */
> > > > + bool invalidate_on_bind;
> > > > /**
> > > > * @wait_vm_bookkeep: PT operations need to wait until VM
> > > is idle
> > > > * (bookkeep dma-resv slots are idle) and stage all future VM
> > > activity
> > > > diff --git a/drivers/gpu/drm/xe/xe_vm.c
> > > b/drivers/gpu/drm/xe/xe_vm.c
> > > > index d664f2e418b2..813d893d9b63 100644
> > > > --- a/drivers/gpu/drm/xe/xe_vm.c
> > > > +++ b/drivers/gpu/drm/xe/xe_vm.c
> > > > @@ -1921,6 +1921,23 @@ static void print_op(struct xe_device *xe,
> > > struct drm_gpuva_op *op)
> > > > }
> > > > #endif
> > > >
> > > > +static bool __xe_vm_needs_clear_scratch_pages(struct xe_vm
> > > *vm, u32 bind_flags)
> > > > +{
> > > > + if (!xe_vm_in_fault_mode(vm))
> > > > + return false;
> > > > +
> > > > + if (!NEEDS_SCRATCH(vm->xe))
> > > > + return false;
> > > > +
> > > > + if (!xe_vm_has_scratch(vm))
> > > > + return false;
> > > > +
> > > > + if (bind_flags & DRM_XE_VM_BIND_FLAG_IMMEDIATE)
> > > > + return false;
> > > > +
> > > > + return true;
> > > > +}
> > > > +
> > > > /*
> > > > * Create operations list from IOCTL arguments, setup operations
> > > fields so parse
> > > > * and commit steps are decoupled from IOCTL arguments. This
> > > step can fail.
> > > > @@ -1991,6 +2008,8 @@ vm_bind_ioctl_ops_create(struct xe_vm
> > > *vm, struct xe_bo *bo,
> > > > op->map.is_null = flags &
> > > DRM_XE_VM_BIND_FLAG_NULL;
> > > > op->map.dumpable = flags &
> > > DRM_XE_VM_BIND_FLAG_DUMPABLE;
> > > > op->map.pat_index = pat_index;
> > > > + op->map.invalidate_on_bind =
> > > > +
> > > __xe_vm_needs_clear_scratch_pages(vm, flags);
> > > > } else if (__op->op == DRM_GPUVA_OP_PREFETCH) {
> > > > op->prefetch.region = prefetch_region;
> > > > }
> > > > @@ -2188,7 +2207,8 @@ static int vm_bind_ioctl_ops_parse(struct
> > > xe_vm *vm, struct drm_gpuva_ops *ops,
> > > > return PTR_ERR(vma);
> > > >
> > > > op->map.vma = vma;
> > > > - if (op->map.immediate
> > > || !xe_vm_in_fault_mode(vm))
> > > > + if (op->map.immediate
> > > || !xe_vm_in_fault_mode(vm) ||
> > > > + op->map.invalidate_on_bind)
> > > >
> > > xe_vma_ops_incr_pt_update_ops(vops,
> > > > op-
> > > >tile_mask);
> > > > break;
> > > > @@ -2416,9 +2436,10 @@ static int op_lock_and_prep(struct
> > > drm_exec *exec, struct xe_vm *vm,
> > > >
> > > > switch (op->base.op) {
> > > > case DRM_GPUVA_OP_MAP:
> > > > - err = vma_lock_and_validate(exec, op->map.vma,
> > > > - !xe_vm_in_fault_mode(vm)
> > > ||
> > > > - op->map.immediate);
> > > > + if (!op->map.invalidate_on_bind)
> > > > + err = vma_lock_and_validate(exec, op-
> > > >map.vma,
> > > > +
> > > !xe_vm_in_fault_mode(vm) ||
> > > > + op-
> > > >map.immediate);
> > > > break;
> > > > case DRM_GPUVA_OP_REMAP:
> > > > err = check_ufence(gpuva_to_vma(op-
> > > >base.remap.unmap->va));
> > > > diff --git a/drivers/gpu/drm/xe/xe_vm_types.h
> > > b/drivers/gpu/drm/xe/xe_vm_types.h
> > > > index 52467b9b5348..dace04f4ea5e 100644
> > > > --- a/drivers/gpu/drm/xe/xe_vm_types.h
> > > > +++ b/drivers/gpu/drm/xe/xe_vm_types.h
> > > > @@ -297,6 +297,8 @@ struct xe_vma_op_map {
> > > > bool is_null;
> > > > /** @dumpable: whether BO is dumped on GPU hang */
> > > > bool dumpable;
> > > > + /** @invalidate: invalidate the VMA before bind */
> > > > + bool invalidate_on_bind;
> > > > /** @pat_index: The pat index to use for this operation. */
> > > > u16 pat_index;
> > > > };
> > > > --
> > > > 2.26.3
> > > >
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH 2/3] drm/xe: Clear scratch page on vm_bind
2025-02-13 2:23 ` [PATCH 2/3] drm/xe: Clear scratch page on vm_bind Oak Zeng
2025-02-19 17:47 ` Matthew Brost
@ 2025-02-25 22:54 ` Matthew Brost
2025-02-26 18:49 ` Zeng, Oak
1 sibling, 1 reply; 29+ messages in thread
From: Matthew Brost @ 2025-02-25 22:54 UTC (permalink / raw)
To: Oak Zeng; +Cc: intel-xe, Thomas.Hellstrom, jonathan.cavitt
On Wed, Feb 12, 2025 at 09:23:30PM -0500, Oak Zeng wrote:
> When a vm runs under fault mode, if scratch page is enabled, we need
> to clear the scratch page mapping on vm_bind for the vm_bind address
> range. Under fault mode, we depend on recoverable page fault to
> establish mapping in page table. If scratch page is not cleared, GPU
> access of address won't cause page fault because it always hits the
> existing scratch page mapping.
>
> When vm_bind with IMMEDIATE flag, there is no need of clearing as
> immediate bind can overwrite the scratch page mapping.
>
> So far only is xe2 and xe3 products are allowed to enable scratch page
> under fault mode. On other platform we don't allow scratch page under
> fault mode, so no need of such clearing.
>
> v2: Rework vm_bind pipeline to clear scratch page mapping. This is similar
> to a map operation, with the exception that PTEs are cleared instead of
> pointing to valid physical pages. (Matt, Thomas)
>
> TLB invalidation is needed after clear scratch page mapping as larger
> scratch page mapping could be backed by physical page and cached in
> TLB. (Matt, Thomas)
>
> v3: Fix the case of clearing huge pte (Thomas)
>
> Improve commit message (Thomas)
>
> v4: TLB invalidation on all LR cases, not only the clear on bind
> cases (Thomas)
>
> Signed-off-by: Oak Zeng <oak.zeng@intel.com>
> ---
> drivers/gpu/drm/xe/xe_pt.c | 53 ++++++++++++++++++++++++--------
> drivers/gpu/drm/xe/xe_pt_types.h | 2 ++
> drivers/gpu/drm/xe/xe_vm.c | 29 ++++++++++++++---
> drivers/gpu/drm/xe/xe_vm_types.h | 2 ++
> 4 files changed, 70 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
> index 1ddcc7e79a93..319769056893 100644
> --- a/drivers/gpu/drm/xe/xe_pt.c
> +++ b/drivers/gpu/drm/xe/xe_pt.c
> @@ -268,6 +268,8 @@ struct xe_pt_stage_bind_walk {
> * granularity.
> */
> bool needs_64K;
> + /* @clear_pt: clear page table entries during the bind walk */
> + bool clear_pt;
> /**
> * @vma: VMA being mapped
> */
> @@ -415,6 +417,10 @@ static bool xe_pt_hugepte_possible(u64 addr, u64 next, unsigned int level,
> if (xe_vma_is_null(xe_walk->vma))
> return true;
>
> + /* if we are clearing page table, no dma addresses*/
> + if (xe_walk->clear_pt)
> + return true;
> +
> /* Is the DMA address huge PTE size aligned? */
> size = next - addr;
> dma = addr - xe_walk->va_curs_start + xe_res_dma(xe_walk->curs);
> @@ -497,16 +503,19 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
>
> XE_WARN_ON(xe_walk->va_curs_start != addr);
>
> - pte = vm->pt_ops->pte_encode_vma(is_null ? 0 :
> - xe_res_dma(curs) + xe_walk->dma_offset,
> - xe_walk->vma, pat_index, level);
> + pte = vm->pt_ops->pte_encode_vma(is_null || xe_walk->clear_pt ?
The alignment is wrong now, and the flow control is also strange.
You check xe_walk->clear_pt as an argument and then check it again
later, which overrides the result of the function.
A possible fix could be:
if (xe_walk->clear_pt)
pte = 0;
else
pte = vm->pt_ops->pte_encode_vma(...
> + 0 : xe_res_dma(curs) + xe_walk->dma_offset,
> + xe_walk->vma, pat_index, level);
> pte |= xe_walk->default_pte;
>
> + if (xe_walk->clear_pt)
> + pte = 0;
> +
> /*
> * Set the XE_PTE_PS64 hint if possible, otherwise if
> * this device *requires* 64K PTE size for VRAM, fail.
> */
> - if (level == 0 && !xe_parent->is_compact) {
> + if (level == 0 && !xe_parent->is_compact && !xe_walk->clear_pt) {
> if (xe_pt_is_pte_ps64K(addr, next, xe_walk)) {
> xe_walk->vma->gpuva.flags |= XE_VMA_PTE_64K;
> pte |= XE_PTE_PS64;
> @@ -519,7 +528,7 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
> if (unlikely(ret))
> return ret;
>
> - if (!is_null)
> + if (!is_null && !xe_walk->clear_pt)
> xe_res_next(curs, next - addr);
> xe_walk->va_curs_start = next;
> xe_walk->vma->gpuva.flags |= (XE_VMA_PTE_4K << level);
> @@ -589,6 +598,7 @@ static const struct xe_pt_walk_ops xe_pt_stage_bind_ops = {
> * @vma: The vma indicating the address range.
> * @entries: Storage for the update entries used for connecting the tree to
> * the main tree at commit time.
> + * @clear_pt: Clear the page table entries.
> * @num_entries: On output contains the number of @entries used.
> *
> * This function builds a disconnected page-table tree for a given address
> @@ -602,7 +612,8 @@ static const struct xe_pt_walk_ops xe_pt_stage_bind_ops = {
> */
> static int
> xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
> - struct xe_vm_pgtable_update *entries, u32 *num_entries)
> + struct xe_vm_pgtable_update *entries,
> + bool clear_pt, u32 *num_entries)
> {
> struct xe_device *xe = tile_to_xe(tile);
> struct xe_bo *bo = xe_vma_bo(vma);
> @@ -622,10 +633,19 @@ xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
> .vma = vma,
> .wupd.entries = entries,
> .needs_64K = (xe_vma_vm(vma)->flags & XE_VM_FLAG_64K) && is_devmem,
> + .clear_pt = clear_pt,
> };
> struct xe_pt *pt = xe_vma_vm(vma)->pt_root[tile->id];
> int ret;
>
> + if (clear_pt) {
> + ret = xe_pt_walk_range(&pt->base, pt->level, xe_vma_start(vma),
> + xe_vma_end(vma), &xe_walk.base);
> +
> + *num_entries = xe_walk.wupd.num_used_entries;
> + return ret;
If possible, avoid short-circuiting this function and instead call
xe_pt_walk_range only once. Perhaps use a goto or conditionally skip the
statements below that cause a NULL pointer dereference.
> + }
> +
> /**
> * Default atomic expectations for different allocation scenarios are as follows:
> *
> @@ -981,12 +1001,14 @@ static void xe_pt_free_bind(struct xe_vm_pgtable_update *entries,
>
> static int
> xe_pt_prepare_bind(struct xe_tile *tile, struct xe_vma *vma,
> - struct xe_vm_pgtable_update *entries, u32 *num_entries)
> + struct xe_vm_pgtable_update *entries,
> + bool invalidate_on_bind, u32 *num_entries)
I’d avoid using a bool if possible (one bool is meh, but two are
definitely a no-go). However, if you do add a bool, I’d place it as the
last argument.
> {
> int err;
>
> *num_entries = 0;
> - err = xe_pt_stage_bind(tile, vma, entries, num_entries);
> + err = xe_pt_stage_bind(tile, vma, entries, invalidate_on_bind,
> + num_entries);
> if (!err)
> xe_tile_assert(tile, *num_entries);
>
> @@ -1661,6 +1683,7 @@ static int bind_op_prepare(struct xe_vm *vm, struct xe_tile *tile,
> return err;
>
> err = xe_pt_prepare_bind(tile, vma, pt_op->entries,
> + pt_update_ops->invalidate_on_bind,
See below — I think this needs to be wired in from op->map.invalidate_on_bind.
> &pt_op->num_entries);
> if (!err) {
> xe_tile_assert(tile, pt_op->num_entries <=
> @@ -1681,11 +1704,11 @@ static int bind_op_prepare(struct xe_vm *vm, struct xe_tile *tile,
> * If !rebind, and scratch enabled VMs, there is a chance the scratch
> * PTE is already cached in the TLB so it needs to be invalidated.
> * On !LR VMs this is done in the ring ops preceding a batch, but on
> - * non-faulting LR, in particular on user-space batch buffer chaining,
> - * it needs to be done here.
> + * LR, in particular on user-space batch buffer chaining, it needs to
> + * be done here.
> */
> if ((!pt_op->rebind && xe_vm_has_scratch(vm) &&
> - xe_vm_in_preempt_fence_mode(vm)))
> + xe_vm_in_lr_mode(vm)))
> pt_update_ops->needs_invalidation = true;
> else if (pt_op->rebind && !xe_vm_in_lr_mode(vm))
> /* We bump also if batch_invalidate_tlb is true */
> @@ -1759,9 +1782,13 @@ static int op_prepare(struct xe_vm *vm,
>
> switch (op->base.op) {
> case DRM_GPUVA_OP_MAP:
> - if (!op->map.immediate && xe_vm_in_fault_mode(vm))
> + if (!op->map.immediate && xe_vm_in_fault_mode(vm) &&
> + !op->map.invalidate_on_bind)
> break;
>
> + if (op->map.invalidate_on_bind)
> + pt_update_ops->invalidate_on_bind = true;
Wrong place, see below.
> +
> err = bind_op_prepare(vm, tile, pt_update_ops, op->map.vma);
> pt_update_ops->wait_vm_kernel = true;
> break;
> @@ -1871,6 +1898,8 @@ static void bind_op_commit(struct xe_vm *vm, struct xe_tile *tile,
> }
> vma->tile_present |= BIT(tile->id);
> vma->tile_staged &= ~BIT(tile->id);
> + if (pt_update_ops->invalidate_on_bind)
I think you need to wire in op->map.invalidate_on_bind here. See below
again.
> + vma->tile_invalidated |= BIT(tile->id);
> if (xe_vma_is_userptr(vma)) {
> lockdep_assert_held_read(&vm->userptr.notifier_lock);
> to_userptr_vma(vma)->userptr.initial_bind = true;
> diff --git a/drivers/gpu/drm/xe/xe_pt_types.h b/drivers/gpu/drm/xe/xe_pt_types.h
> index 384cc04de719..3d0aa2a5102e 100644
> --- a/drivers/gpu/drm/xe/xe_pt_types.h
> +++ b/drivers/gpu/drm/xe/xe_pt_types.h
> @@ -108,6 +108,8 @@ struct xe_vm_pgtable_update_ops {
> bool needs_userptr_lock;
> /** @needs_invalidation: Needs invalidation */
> bool needs_invalidation;
> + /** @invalidate_on_bind: Invalidate the range before bind */
> + bool invalidate_on_bind;
This is the wrong place for this. It is a collection of
xe_vm_pgtable_update_op, and each individual xe_vm_pgtable_update_op
should set or clear invalidate_on_bind. I think you can wire this
directly from op->map.invalidate_on_bind in all cases without needing to
store it.
> /**
> * @wait_vm_bookkeep: PT operations need to wait until VM is idle
> * (bookkeep dma-resv slots are idle) and stage all future VM activity
> diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> index d664f2e418b2..813d893d9b63 100644
> --- a/drivers/gpu/drm/xe/xe_vm.c
> +++ b/drivers/gpu/drm/xe/xe_vm.c
> @@ -1921,6 +1921,23 @@ static void print_op(struct xe_device *xe, struct drm_gpuva_op *op)
> }
> #endif
>
> +static bool __xe_vm_needs_clear_scratch_pages(struct xe_vm *vm, u32 bind_flags)
> +{
> + if (!xe_vm_in_fault_mode(vm))
> + return false;
> +
> + if (!NEEDS_SCRATCH(vm->xe))
As mentioned in other patches, I'd drop this macro.
Matt
> + return false;
> +
> + if (!xe_vm_has_scratch(vm))
> + return false;
> +
> + if (bind_flags & DRM_XE_VM_BIND_FLAG_IMMEDIATE)
> + return false;
> +
> + return true;
> +}
> +
> /*
> * Create operations list from IOCTL arguments, setup operations fields so parse
> * and commit steps are decoupled from IOCTL arguments. This step can fail.
> @@ -1991,6 +2008,8 @@ vm_bind_ioctl_ops_create(struct xe_vm *vm, struct xe_bo *bo,
> op->map.is_null = flags & DRM_XE_VM_BIND_FLAG_NULL;
> op->map.dumpable = flags & DRM_XE_VM_BIND_FLAG_DUMPABLE;
> op->map.pat_index = pat_index;
> + op->map.invalidate_on_bind =
> + __xe_vm_needs_clear_scratch_pages(vm, flags);
> } else if (__op->op == DRM_GPUVA_OP_PREFETCH) {
> op->prefetch.region = prefetch_region;
> }
> @@ -2188,7 +2207,8 @@ static int vm_bind_ioctl_ops_parse(struct xe_vm *vm, struct drm_gpuva_ops *ops,
> return PTR_ERR(vma);
>
> op->map.vma = vma;
> - if (op->map.immediate || !xe_vm_in_fault_mode(vm))
> + if (op->map.immediate || !xe_vm_in_fault_mode(vm) ||
> + op->map.invalidate_on_bind)
> xe_vma_ops_incr_pt_update_ops(vops,
> op->tile_mask);
> break;
> @@ -2416,9 +2436,10 @@ static int op_lock_and_prep(struct drm_exec *exec, struct xe_vm *vm,
>
> switch (op->base.op) {
> case DRM_GPUVA_OP_MAP:
> - err = vma_lock_and_validate(exec, op->map.vma,
> - !xe_vm_in_fault_mode(vm) ||
> - op->map.immediate);
> + if (!op->map.invalidate_on_bind)
> + err = vma_lock_and_validate(exec, op->map.vma,
> + !xe_vm_in_fault_mode(vm) ||
> + op->map.immediate);
> break;
> case DRM_GPUVA_OP_REMAP:
> err = check_ufence(gpuva_to_vma(op->base.remap.unmap->va));
> diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
> index 52467b9b5348..dace04f4ea5e 100644
> --- a/drivers/gpu/drm/xe/xe_vm_types.h
> +++ b/drivers/gpu/drm/xe/xe_vm_types.h
> @@ -297,6 +297,8 @@ struct xe_vma_op_map {
> bool is_null;
> /** @dumpable: whether BO is dumped on GPU hang */
> bool dumpable;
> + /** @invalidate: invalidate the VMA before bind */
> + bool invalidate_on_bind;
> /** @pat_index: The pat index to use for this operation. */
> u16 pat_index;
> };
> --
> 2.26.3
>
^ permalink raw reply [flat|nested] 29+ messages in thread* RE: [PATCH 2/3] drm/xe: Clear scratch page on vm_bind
2025-02-25 22:54 ` Matthew Brost
@ 2025-02-26 18:49 ` Zeng, Oak
2025-02-26 21:44 ` Matthew Brost
0 siblings, 1 reply; 29+ messages in thread
From: Zeng, Oak @ 2025-02-26 18:49 UTC (permalink / raw)
To: Brost, Matthew
Cc: intel-xe@lists.freedesktop.org, Thomas.Hellstrom@linux.intel.com,
Cavitt, Jonathan
> -----Original Message-----
> From: Brost, Matthew <matthew.brost@intel.com>
> Sent: February 25, 2025 5:54 PM
> To: Zeng, Oak <oak.zeng@intel.com>
> Cc: intel-xe@lists.freedesktop.org;
> Thomas.Hellstrom@linux.intel.com; Cavitt, Jonathan
> <jonathan.cavitt@intel.com>
> Subject: Re: [PATCH 2/3] drm/xe: Clear scratch page on vm_bind
>
> On Wed, Feb 12, 2025 at 09:23:30PM -0500, Oak Zeng wrote:
> > When a vm runs under fault mode, if scratch page is enabled, we
> need
> > to clear the scratch page mapping on vm_bind for the vm_bind
> address
> > range. Under fault mode, we depend on recoverable page fault to
> > establish mapping in page table. If scratch page is not cleared, GPU
> > access of address won't cause page fault because it always hits the
> > existing scratch page mapping.
> >
> > When vm_bind with IMMEDIATE flag, there is no need of clearing as
> > immediate bind can overwrite the scratch page mapping.
> >
> > So far only is xe2 and xe3 products are allowed to enable scratch
> page
> > under fault mode. On other platform we don't allow scratch page
> under
> > fault mode, so no need of such clearing.
> >
> > v2: Rework vm_bind pipeline to clear scratch page mapping. This is
> similar
> > to a map operation, with the exception that PTEs are cleared
> instead of
> > pointing to valid physical pages. (Matt, Thomas)
> >
> > TLB invalidation is needed after clear scratch page mapping as larger
> > scratch page mapping could be backed by physical page and cached
> in
> > TLB. (Matt, Thomas)
> >
> > v3: Fix the case of clearing huge pte (Thomas)
> >
> > Improve commit message (Thomas)
> >
> > v4: TLB invalidation on all LR cases, not only the clear on bind
> > cases (Thomas)
> >
> > Signed-off-by: Oak Zeng <oak.zeng@intel.com>
> > ---
> > drivers/gpu/drm/xe/xe_pt.c | 53
> ++++++++++++++++++++++++--------
> > drivers/gpu/drm/xe/xe_pt_types.h | 2 ++
> > drivers/gpu/drm/xe/xe_vm.c | 29 ++++++++++++++---
> > drivers/gpu/drm/xe/xe_vm_types.h | 2 ++
> > 4 files changed, 70 insertions(+), 16 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/xe/xe_pt.c
> b/drivers/gpu/drm/xe/xe_pt.c
> > index 1ddcc7e79a93..319769056893 100644
> > --- a/drivers/gpu/drm/xe/xe_pt.c
> > +++ b/drivers/gpu/drm/xe/xe_pt.c
> > @@ -268,6 +268,8 @@ struct xe_pt_stage_bind_walk {
> > * granularity.
> > */
> > bool needs_64K;
> > + /* @clear_pt: clear page table entries during the bind walk */
> > + bool clear_pt;
> > /**
> > * @vma: VMA being mapped
> > */
> > @@ -415,6 +417,10 @@ static bool xe_pt_hugepte_possible(u64
> addr, u64 next, unsigned int level,
> > if (xe_vma_is_null(xe_walk->vma))
> > return true;
> >
> > + /* if we are clearing page table, no dma addresses*/
> > + if (xe_walk->clear_pt)
> > + return true;
> > +
> > /* Is the DMA address huge PTE size aligned? */
> > size = next - addr;
> > dma = addr - xe_walk->va_curs_start +
> xe_res_dma(xe_walk->curs);
> > @@ -497,16 +503,19 @@ xe_pt_stage_bind_entry(struct xe_ptw
> *parent, pgoff_t offset,
> >
> > XE_WARN_ON(xe_walk->va_curs_start != addr);
> >
> > - pte = vm->pt_ops->pte_encode_vma(is_null ? 0 :
> > - xe_res_dma(curs) +
> xe_walk->dma_offset,
> > - xe_walk->vma,
> pat_index, level);
> > + pte = vm->pt_ops->pte_encode_vma(is_null ||
> xe_walk->clear_pt ?
>
> The alignment is wrong now, and the flow control is also strange.
>
> You check xe_walk->clear_pt as an argument and then check it again
> later, which overrides the result of the function.
>
> A possible fix could be:
>
> if (xe_walk->clear_pt)
> pte = 0;
> else
> pte = vm->pt_ops->pte_encode_vma(...
>
> > + 0 : xe_res_dma(curs) + xe_walk-
> >dma_offset,
> > + xe_walk->vma, pat_index, level);
> > pte |= xe_walk->default_pte;
> >
> > + if (xe_walk->clear_pt)
> > + pte = 0;
> > +
> > /*
> > * Set the XE_PTE_PS64 hint if possible, otherwise if
> > * this device *requires* 64K PTE size for VRAM, fail.
> > */
> > - if (level == 0 && !xe_parent->is_compact) {
> > + if (level == 0 && !xe_parent->is_compact
> && !xe_walk->clear_pt) {
> > if (xe_pt_is_pte_ps64K(addr, next, xe_walk))
> {
> > xe_walk->vma->gpuva.flags |=
> XE_VMA_PTE_64K;
> > pte |= XE_PTE_PS64;
> > @@ -519,7 +528,7 @@ xe_pt_stage_bind_entry(struct xe_ptw
> *parent, pgoff_t offset,
> > if (unlikely(ret))
> > return ret;
> >
> > - if (!is_null)
> > + if (!is_null && !xe_walk->clear_pt)
> > xe_res_next(curs, next - addr);
> > xe_walk->va_curs_start = next;
> > xe_walk->vma->gpuva.flags |= (XE_VMA_PTE_4K <<
> level);
> > @@ -589,6 +598,7 @@ static const struct xe_pt_walk_ops
> xe_pt_stage_bind_ops = {
> > * @vma: The vma indicating the address range.
> > * @entries: Storage for the update entries used for connecting the
> tree to
> > * the main tree at commit time.
> > + * @clear_pt: Clear the page table entries.
> > * @num_entries: On output contains the number of @entries
> used.
> > *
> > * This function builds a disconnected page-table tree for a given
> address
> > @@ -602,7 +612,8 @@ static const struct xe_pt_walk_ops
> xe_pt_stage_bind_ops = {
> > */
> > static int
> > xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
> > - struct xe_vm_pgtable_update *entries, u32
> *num_entries)
> > + struct xe_vm_pgtable_update *entries,
> > + bool clear_pt, u32 *num_entries)
> > {
> > struct xe_device *xe = tile_to_xe(tile);
> > struct xe_bo *bo = xe_vma_bo(vma);
> > @@ -622,10 +633,19 @@ xe_pt_stage_bind(struct xe_tile *tile,
> struct xe_vma *vma,
> > .vma = vma,
> > .wupd.entries = entries,
> > .needs_64K = (xe_vma_vm(vma)->flags &
> XE_VM_FLAG_64K) && is_devmem,
> > + .clear_pt = clear_pt,
> > };
> > struct xe_pt *pt = xe_vma_vm(vma)->pt_root[tile->id];
> > int ret;
> >
> > + if (clear_pt) {
> > + ret = xe_pt_walk_range(&pt->base, pt->level,
> xe_vma_start(vma),
> > + xe_vma_end(vma),
> &xe_walk.base);
> > +
> > + *num_entries = xe_walk.wupd.num_used_entries;
> > + return ret;
>
> If possible, avoid short-circuiting this function and instead call
> xe_pt_walk_range only once. Perhaps use a goto or conditionally skip
> the
> statements below that cause a NULL pointer dereference.
>
> > + }
> > +
> > /**
> > * Default atomic expectations for different allocation
> scenarios are as follows:
> > *
> > @@ -981,12 +1001,14 @@ static void xe_pt_free_bind(struct
> xe_vm_pgtable_update *entries,
> >
> > static int
> > xe_pt_prepare_bind(struct xe_tile *tile, struct xe_vma *vma,
> > - struct xe_vm_pgtable_update *entries, u32
> *num_entries)
> > + struct xe_vm_pgtable_update *entries,
> > + bool invalidate_on_bind, u32 *num_entries)
>
> I’d avoid using a bool if possible (one bool is meh, but two are
> definitely a no-go). However, if you do add a bool, I’d place it as the
> last argument.
>
> > {
> > int err;
> >
> > *num_entries = 0;
> > - err = xe_pt_stage_bind(tile, vma, entries, num_entries);
> > + err = xe_pt_stage_bind(tile, vma, entries, invalidate_on_bind,
> > + num_entries);
> > if (!err)
> > xe_tile_assert(tile, *num_entries);
> >
> > @@ -1661,6 +1683,7 @@ static int bind_op_prepare(struct xe_vm
> *vm, struct xe_tile *tile,
> > return err;
> >
> > err = xe_pt_prepare_bind(tile, vma, pt_op->entries,
> > + pt_update_ops->invalidate_on_bind,
>
> See below — I think this needs to be wired in from op-
> >map.invalidate_on_bind.
Did you mean pass an extra parameter struct xe_vma_op *op to bind_op_prepare?
With the existing function parameters, I didn't see a way to access op
>
> > &pt_op->num_entries);
> > if (!err) {
> > xe_tile_assert(tile, pt_op->num_entries <=
> > @@ -1681,11 +1704,11 @@ static int bind_op_prepare(struct
> xe_vm *vm, struct xe_tile *tile,
> > * If !rebind, and scratch enabled VMs, there is a
> chance the scratch
> > * PTE is already cached in the TLB so it needs to be
> invalidated.
> > * On !LR VMs this is done in the ring ops preceding a
> batch, but on
> > - * non-faulting LR, in particular on user-space batch
> buffer chaining,
> > - * it needs to be done here.
> > + * LR, in particular on user-space batch buffer chaining,
> it needs to
> > + * be done here.
> > */
> > if ((!pt_op->rebind && xe_vm_has_scratch(vm) &&
> > - xe_vm_in_preempt_fence_mode(vm)))
> > + xe_vm_in_lr_mode(vm)))
> > pt_update_ops->needs_invalidation = true;
> > else if (pt_op->rebind && !xe_vm_in_lr_mode(vm))
> > /* We bump also if batch_invalidate_tlb is
> true */
> > @@ -1759,9 +1782,13 @@ static int op_prepare(struct xe_vm *vm,
> >
> > switch (op->base.op) {
> > case DRM_GPUVA_OP_MAP:
> > - if (!op->map.immediate &&
> xe_vm_in_fault_mode(vm))
> > + if (!op->map.immediate &&
> xe_vm_in_fault_mode(vm) &&
> > + !op->map.invalidate_on_bind)
> > break;
> >
> > + if (op->map.invalidate_on_bind)
> > + pt_update_ops->invalidate_on_bind = true;
>
> Wrong place, see below.
>
> > +
> > err = bind_op_prepare(vm, tile, pt_update_ops, op-
> >map.vma);
> > pt_update_ops->wait_vm_kernel = true;
> > break;
> > @@ -1871,6 +1898,8 @@ static void bind_op_commit(struct xe_vm
> *vm, struct xe_tile *tile,
> > }
> > vma->tile_present |= BIT(tile->id);
> > vma->tile_staged &= ~BIT(tile->id);
> > + if (pt_update_ops->invalidate_on_bind)
>
> I think you need to wire in op->map.invalidate_on_bind here. See
> below
> again.
Same query as above. Did you mean pass extra parameter to function bind_op_commit?
We right now don't have access to op in this function
>
> > + vma->tile_invalidated |= BIT(tile->id);
> > if (xe_vma_is_userptr(vma)) {
> > lockdep_assert_held_read(&vm-
> >userptr.notifier_lock);
> > to_userptr_vma(vma)->userptr.initial_bind = true;
> > diff --git a/drivers/gpu/drm/xe/xe_pt_types.h
> b/drivers/gpu/drm/xe/xe_pt_types.h
> > index 384cc04de719..3d0aa2a5102e 100644
> > --- a/drivers/gpu/drm/xe/xe_pt_types.h
> > +++ b/drivers/gpu/drm/xe/xe_pt_types.h
> > @@ -108,6 +108,8 @@ struct xe_vm_pgtable_update_ops {
> > bool needs_userptr_lock;
> > /** @needs_invalidation: Needs invalidation */
> > bool needs_invalidation;
> > + /** @invalidate_on_bind: Invalidate the range before bind */
> > + bool invalidate_on_bind;
>
> This is the wrong place for this. It is a collection of
> xe_vm_pgtable_update_op, and each individual
> xe_vm_pgtable_update_op
> should set or clear invalidate_on_bind. I think you can wire this
> directly from op->map.invalidate_on_bind in all cases without
> needing to
> store it.
Same query as above. How do you access op from all those functions
Oak
>
> > /**
> > * @wait_vm_bookkeep: PT operations need to wait until VM
> is idle
> > * (bookkeep dma-resv slots are idle) and stage all future VM
> activity
> > diff --git a/drivers/gpu/drm/xe/xe_vm.c
> b/drivers/gpu/drm/xe/xe_vm.c
> > index d664f2e418b2..813d893d9b63 100644
> > --- a/drivers/gpu/drm/xe/xe_vm.c
> > +++ b/drivers/gpu/drm/xe/xe_vm.c
> > @@ -1921,6 +1921,23 @@ static void print_op(struct xe_device *xe,
> struct drm_gpuva_op *op)
> > }
> > #endif
> >
> > +static bool __xe_vm_needs_clear_scratch_pages(struct xe_vm
> *vm, u32 bind_flags)
> > +{
> > + if (!xe_vm_in_fault_mode(vm))
> > + return false;
> > +
> > + if (!NEEDS_SCRATCH(vm->xe))
>
> As mentioned in other patches, I'd drop this macro.
>
> Matt
>
> > + return false;
> > +
> > + if (!xe_vm_has_scratch(vm))
> > + return false;
> > +
> > + if (bind_flags & DRM_XE_VM_BIND_FLAG_IMMEDIATE)
> > + return false;
> > +
> > + return true;
> > +}
> > +
> > /*
> > * Create operations list from IOCTL arguments, setup operations
> fields so parse
> > * and commit steps are decoupled from IOCTL arguments. This
> step can fail.
> > @@ -1991,6 +2008,8 @@ vm_bind_ioctl_ops_create(struct xe_vm
> *vm, struct xe_bo *bo,
> > op->map.is_null = flags &
> DRM_XE_VM_BIND_FLAG_NULL;
> > op->map.dumpable = flags &
> DRM_XE_VM_BIND_FLAG_DUMPABLE;
> > op->map.pat_index = pat_index;
> > + op->map.invalidate_on_bind =
> > +
> __xe_vm_needs_clear_scratch_pages(vm, flags);
> > } else if (__op->op == DRM_GPUVA_OP_PREFETCH) {
> > op->prefetch.region = prefetch_region;
> > }
> > @@ -2188,7 +2207,8 @@ static int vm_bind_ioctl_ops_parse(struct
> xe_vm *vm, struct drm_gpuva_ops *ops,
> > return PTR_ERR(vma);
> >
> > op->map.vma = vma;
> > - if (op->map.immediate
> || !xe_vm_in_fault_mode(vm))
> > + if (op->map.immediate
> || !xe_vm_in_fault_mode(vm) ||
> > + op->map.invalidate_on_bind)
> >
> xe_vma_ops_incr_pt_update_ops(vops,
> > op-
> >tile_mask);
> > break;
> > @@ -2416,9 +2436,10 @@ static int op_lock_and_prep(struct
> drm_exec *exec, struct xe_vm *vm,
> >
> > switch (op->base.op) {
> > case DRM_GPUVA_OP_MAP:
> > - err = vma_lock_and_validate(exec, op->map.vma,
> > - !xe_vm_in_fault_mode(vm)
> ||
> > - op->map.immediate);
> > + if (!op->map.invalidate_on_bind)
> > + err = vma_lock_and_validate(exec, op-
> >map.vma,
> > +
> !xe_vm_in_fault_mode(vm) ||
> > + op-
> >map.immediate);
> > break;
> > case DRM_GPUVA_OP_REMAP:
> > err = check_ufence(gpuva_to_vma(op-
> >base.remap.unmap->va));
> > diff --git a/drivers/gpu/drm/xe/xe_vm_types.h
> b/drivers/gpu/drm/xe/xe_vm_types.h
> > index 52467b9b5348..dace04f4ea5e 100644
> > --- a/drivers/gpu/drm/xe/xe_vm_types.h
> > +++ b/drivers/gpu/drm/xe/xe_vm_types.h
> > @@ -297,6 +297,8 @@ struct xe_vma_op_map {
> > bool is_null;
> > /** @dumpable: whether BO is dumped on GPU hang */
> > bool dumpable;
> > + /** @invalidate: invalidate the VMA before bind */
> > + bool invalidate_on_bind;
> > /** @pat_index: The pat index to use for this operation. */
> > u16 pat_index;
> > };
> > --
> > 2.26.3
> >
^ permalink raw reply [flat|nested] 29+ messages in thread* Re: [PATCH 2/3] drm/xe: Clear scratch page on vm_bind
2025-02-26 18:49 ` Zeng, Oak
@ 2025-02-26 21:44 ` Matthew Brost
0 siblings, 0 replies; 29+ messages in thread
From: Matthew Brost @ 2025-02-26 21:44 UTC (permalink / raw)
To: Zeng, Oak
Cc: intel-xe@lists.freedesktop.org, Thomas.Hellstrom@linux.intel.com,
Cavitt, Jonathan
On Wed, Feb 26, 2025 at 11:49:38AM -0700, Zeng, Oak wrote:
>
>
> > -----Original Message-----
> > From: Brost, Matthew <matthew.brost@intel.com>
> > Sent: February 25, 2025 5:54 PM
> > To: Zeng, Oak <oak.zeng@intel.com>
> > Cc: intel-xe@lists.freedesktop.org;
> > Thomas.Hellstrom@linux.intel.com; Cavitt, Jonathan
> > <jonathan.cavitt@intel.com>
> > Subject: Re: [PATCH 2/3] drm/xe: Clear scratch page on vm_bind
> >
> > On Wed, Feb 12, 2025 at 09:23:30PM -0500, Oak Zeng wrote:
> > > When a vm runs under fault mode, if scratch page is enabled, we
> > need
> > > to clear the scratch page mapping on vm_bind for the vm_bind
> > address
> > > range. Under fault mode, we depend on recoverable page fault to
> > > establish mapping in page table. If scratch page is not cleared, GPU
> > > access of address won't cause page fault because it always hits the
> > > existing scratch page mapping.
> > >
> > > When vm_bind with IMMEDIATE flag, there is no need of clearing as
> > > immediate bind can overwrite the scratch page mapping.
> > >
> > > So far only is xe2 and xe3 products are allowed to enable scratch
> > page
> > > under fault mode. On other platform we don't allow scratch page
> > under
> > > fault mode, so no need of such clearing.
> > >
> > > v2: Rework vm_bind pipeline to clear scratch page mapping. This is
> > similar
> > > to a map operation, with the exception that PTEs are cleared
> > instead of
> > > pointing to valid physical pages. (Matt, Thomas)
> > >
> > > TLB invalidation is needed after clear scratch page mapping as larger
> > > scratch page mapping could be backed by physical page and cached
> > in
> > > TLB. (Matt, Thomas)
> > >
> > > v3: Fix the case of clearing huge pte (Thomas)
> > >
> > > Improve commit message (Thomas)
> > >
> > > v4: TLB invalidation on all LR cases, not only the clear on bind
> > > cases (Thomas)
> > >
> > > Signed-off-by: Oak Zeng <oak.zeng@intel.com>
> > > ---
> > > drivers/gpu/drm/xe/xe_pt.c | 53
> > ++++++++++++++++++++++++--------
> > > drivers/gpu/drm/xe/xe_pt_types.h | 2 ++
> > > drivers/gpu/drm/xe/xe_vm.c | 29 ++++++++++++++---
> > > drivers/gpu/drm/xe/xe_vm_types.h | 2 ++
> > > 4 files changed, 70 insertions(+), 16 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/xe/xe_pt.c
> > b/drivers/gpu/drm/xe/xe_pt.c
> > > index 1ddcc7e79a93..319769056893 100644
> > > --- a/drivers/gpu/drm/xe/xe_pt.c
> > > +++ b/drivers/gpu/drm/xe/xe_pt.c
> > > @@ -268,6 +268,8 @@ struct xe_pt_stage_bind_walk {
> > > * granularity.
> > > */
> > > bool needs_64K;
> > > + /* @clear_pt: clear page table entries during the bind walk */
> > > + bool clear_pt;
> > > /**
> > > * @vma: VMA being mapped
> > > */
> > > @@ -415,6 +417,10 @@ static bool xe_pt_hugepte_possible(u64
> > addr, u64 next, unsigned int level,
> > > if (xe_vma_is_null(xe_walk->vma))
> > > return true;
> > >
> > > + /* if we are clearing page table, no dma addresses*/
> > > + if (xe_walk->clear_pt)
> > > + return true;
> > > +
> > > /* Is the DMA address huge PTE size aligned? */
> > > size = next - addr;
> > > dma = addr - xe_walk->va_curs_start +
> > xe_res_dma(xe_walk->curs);
> > > @@ -497,16 +503,19 @@ xe_pt_stage_bind_entry(struct xe_ptw
> > *parent, pgoff_t offset,
> > >
> > > XE_WARN_ON(xe_walk->va_curs_start != addr);
> > >
> > > - pte = vm->pt_ops->pte_encode_vma(is_null ? 0 :
> > > - xe_res_dma(curs) +
> > xe_walk->dma_offset,
> > > - xe_walk->vma,
> > pat_index, level);
> > > + pte = vm->pt_ops->pte_encode_vma(is_null ||
> > xe_walk->clear_pt ?
> >
> > The alignment is wrong now, and the flow control is also strange.
> >
> > You check xe_walk->clear_pt as an argument and then check it again
> > later, which overrides the result of the function.
> >
> > A possible fix could be:
> >
> > if (xe_walk->clear_pt)
> > pte = 0;
> > else
> > pte = vm->pt_ops->pte_encode_vma(...
> >
> > > + 0 : xe_res_dma(curs) + xe_walk-
> > >dma_offset,
> > > + xe_walk->vma, pat_index, level);
> > > pte |= xe_walk->default_pte;
> > >
> > > + if (xe_walk->clear_pt)
> > > + pte = 0;
> > > +
> > > /*
> > > * Set the XE_PTE_PS64 hint if possible, otherwise if
> > > * this device *requires* 64K PTE size for VRAM, fail.
> > > */
> > > - if (level == 0 && !xe_parent->is_compact) {
> > > + if (level == 0 && !xe_parent->is_compact
> > && !xe_walk->clear_pt) {
> > > if (xe_pt_is_pte_ps64K(addr, next, xe_walk))
> > {
> > > xe_walk->vma->gpuva.flags |=
> > XE_VMA_PTE_64K;
> > > pte |= XE_PTE_PS64;
> > > @@ -519,7 +528,7 @@ xe_pt_stage_bind_entry(struct xe_ptw
> > *parent, pgoff_t offset,
> > > if (unlikely(ret))
> > > return ret;
> > >
> > > - if (!is_null)
> > > + if (!is_null && !xe_walk->clear_pt)
> > > xe_res_next(curs, next - addr);
> > > xe_walk->va_curs_start = next;
> > > xe_walk->vma->gpuva.flags |= (XE_VMA_PTE_4K <<
> > level);
> > > @@ -589,6 +598,7 @@ static const struct xe_pt_walk_ops
> > xe_pt_stage_bind_ops = {
> > > * @vma: The vma indicating the address range.
> > > * @entries: Storage for the update entries used for connecting the
> > tree to
> > > * the main tree at commit time.
> > > + * @clear_pt: Clear the page table entries.
> > > * @num_entries: On output contains the number of @entries
> > used.
> > > *
> > > * This function builds a disconnected page-table tree for a given
> > address
> > > @@ -602,7 +612,8 @@ static const struct xe_pt_walk_ops
> > xe_pt_stage_bind_ops = {
> > > */
> > > static int
> > > xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
> > > - struct xe_vm_pgtable_update *entries, u32
> > *num_entries)
> > > + struct xe_vm_pgtable_update *entries,
> > > + bool clear_pt, u32 *num_entries)
> > > {
> > > struct xe_device *xe = tile_to_xe(tile);
> > > struct xe_bo *bo = xe_vma_bo(vma);
> > > @@ -622,10 +633,19 @@ xe_pt_stage_bind(struct xe_tile *tile,
> > struct xe_vma *vma,
> > > .vma = vma,
> > > .wupd.entries = entries,
> > > .needs_64K = (xe_vma_vm(vma)->flags &
> > XE_VM_FLAG_64K) && is_devmem,
> > > + .clear_pt = clear_pt,
> > > };
> > > struct xe_pt *pt = xe_vma_vm(vma)->pt_root[tile->id];
> > > int ret;
> > >
> > > + if (clear_pt) {
> > > + ret = xe_pt_walk_range(&pt->base, pt->level,
> > xe_vma_start(vma),
> > > + xe_vma_end(vma),
> > &xe_walk.base);
> > > +
> > > + *num_entries = xe_walk.wupd.num_used_entries;
> > > + return ret;
> >
> > If possible, avoid short-circuiting this function and instead call
> > xe_pt_walk_range only once. Perhaps use a goto or conditionally skip
> > the
> > statements below that cause a NULL pointer dereference.
> >
> > > + }
> > > +
> > > /**
> > > * Default atomic expectations for different allocation
> > scenarios are as follows:
> > > *
> > > @@ -981,12 +1001,14 @@ static void xe_pt_free_bind(struct
> > xe_vm_pgtable_update *entries,
> > >
> > > static int
> > > xe_pt_prepare_bind(struct xe_tile *tile, struct xe_vma *vma,
> > > - struct xe_vm_pgtable_update *entries, u32
> > *num_entries)
> > > + struct xe_vm_pgtable_update *entries,
> > > + bool invalidate_on_bind, u32 *num_entries)
> >
> > I’d avoid using a bool if possible (one bool is meh, but two are
> > definitely a no-go). However, if you do add a bool, I’d place it as the
> > last argument.
> >
> > > {
> > > int err;
> > >
> > > *num_entries = 0;
> > > - err = xe_pt_stage_bind(tile, vma, entries, num_entries);
> > > + err = xe_pt_stage_bind(tile, vma, entries, invalidate_on_bind,
> > > + num_entries);
> > > if (!err)
> > > xe_tile_assert(tile, *num_entries);
> > >
> > > @@ -1661,6 +1683,7 @@ static int bind_op_prepare(struct xe_vm
> > *vm, struct xe_tile *tile,
> > > return err;
> > >
> > > err = xe_pt_prepare_bind(tile, vma, pt_op->entries,
> > > + pt_update_ops->invalidate_on_bind,
> >
> > See below — I think this needs to be wired in from op-
> > >map.invalidate_on_bind.
>
> Did you mean pass an extra parameter struct xe_vma_op *op to bind_op_prepare?
>
No, bind_op_prepare is meant to have the arguments extracted from a
xe_vma_op as it called from multiples op (e.g. DRM_GPUVA_OP_MAP,
DRM_GPUVA_OP_REMAP, or DRM_GPUVA_OP_PREFETCH).
> With the existing function parameters, I didn't see a way to access op
>
Right, you need a new parameter and input for a DRM_GPUVA_OP_MAP is
op->map.invalidate_on_bind. So either a bool or a flag.
> >
> > > &pt_op->num_entries);
> > > if (!err) {
> > > xe_tile_assert(tile, pt_op->num_entries <=
> > > @@ -1681,11 +1704,11 @@ static int bind_op_prepare(struct
> > xe_vm *vm, struct xe_tile *tile,
> > > * If !rebind, and scratch enabled VMs, there is a
> > chance the scratch
> > > * PTE is already cached in the TLB so it needs to be
> > invalidated.
> > > * On !LR VMs this is done in the ring ops preceding a
> > batch, but on
> > > - * non-faulting LR, in particular on user-space batch
> > buffer chaining,
> > > - * it needs to be done here.
> > > + * LR, in particular on user-space batch buffer chaining,
> > it needs to
> > > + * be done here.
> > > */
> > > if ((!pt_op->rebind && xe_vm_has_scratch(vm) &&
> > > - xe_vm_in_preempt_fence_mode(vm)))
> > > + xe_vm_in_lr_mode(vm)))
> > > pt_update_ops->needs_invalidation = true;
> > > else if (pt_op->rebind && !xe_vm_in_lr_mode(vm))
> > > /* We bump also if batch_invalidate_tlb is
> > true */
> > > @@ -1759,9 +1782,13 @@ static int op_prepare(struct xe_vm *vm,
> > >
> > > switch (op->base.op) {
> > > case DRM_GPUVA_OP_MAP:
> > > - if (!op->map.immediate &&
> > xe_vm_in_fault_mode(vm))
> > > + if (!op->map.immediate &&
> > xe_vm_in_fault_mode(vm) &&
> > > + !op->map.invalidate_on_bind)
> > > break;
> > >
> > > + if (op->map.invalidate_on_bind)
> > > + pt_update_ops->invalidate_on_bind = true;
> >
> > Wrong place, see below.
> >
> > > +
> > > err = bind_op_prepare(vm, tile, pt_update_ops, op-
> > >map.vma);
> > > pt_update_ops->wait_vm_kernel = true;
> > > break;
> > > @@ -1871,6 +1898,8 @@ static void bind_op_commit(struct xe_vm
> > *vm, struct xe_tile *tile,
> > > }
> > > vma->tile_present |= BIT(tile->id);
> > > vma->tile_staged &= ~BIT(tile->id);
> > > + if (pt_update_ops->invalidate_on_bind)
> >
> > I think you need to wire in op->map.invalidate_on_bind here. See
> > below
> > again.
>
> Same query as above. Did you mean pass extra parameter to function bind_op_commit?
> We right now don't have access to op in this function
>
Same answer as above.
> >
> > > + vma->tile_invalidated |= BIT(tile->id);
> > > if (xe_vma_is_userptr(vma)) {
> > > lockdep_assert_held_read(&vm-
> > >userptr.notifier_lock);
> > > to_userptr_vma(vma)->userptr.initial_bind = true;
> > > diff --git a/drivers/gpu/drm/xe/xe_pt_types.h
> > b/drivers/gpu/drm/xe/xe_pt_types.h
> > > index 384cc04de719..3d0aa2a5102e 100644
> > > --- a/drivers/gpu/drm/xe/xe_pt_types.h
> > > +++ b/drivers/gpu/drm/xe/xe_pt_types.h
> > > @@ -108,6 +108,8 @@ struct xe_vm_pgtable_update_ops {
> > > bool needs_userptr_lock;
> > > /** @needs_invalidation: Needs invalidation */
> > > bool needs_invalidation;
> > > + /** @invalidate_on_bind: Invalidate the range before bind */
> > > + bool invalidate_on_bind;
> >
> > This is the wrong place for this. It is a collection of
> > xe_vm_pgtable_update_op, and each individual
> > xe_vm_pgtable_update_op
> > should set or clear invalidate_on_bind. I think you can wire this
> > directly from op->map.invalidate_on_bind in all cases without
> > needing to
> > store it.
>
> Same query as above. How do you access op from all those functions
>
See above.
Matt
> Oak
>
> >
> > > /**
> > > * @wait_vm_bookkeep: PT operations need to wait until VM
> > is idle
> > > * (bookkeep dma-resv slots are idle) and stage all future VM
> > activity
> > > diff --git a/drivers/gpu/drm/xe/xe_vm.c
> > b/drivers/gpu/drm/xe/xe_vm.c
> > > index d664f2e418b2..813d893d9b63 100644
> > > --- a/drivers/gpu/drm/xe/xe_vm.c
> > > +++ b/drivers/gpu/drm/xe/xe_vm.c
> > > @@ -1921,6 +1921,23 @@ static void print_op(struct xe_device *xe,
> > struct drm_gpuva_op *op)
> > > }
> > > #endif
> > >
> > > +static bool __xe_vm_needs_clear_scratch_pages(struct xe_vm
> > *vm, u32 bind_flags)
> > > +{
> > > + if (!xe_vm_in_fault_mode(vm))
> > > + return false;
> > > +
> > > + if (!NEEDS_SCRATCH(vm->xe))
> >
> > As mentioned in other patches, I'd drop this macro.
> >
> > Matt
> >
> > > + return false;
> > > +
> > > + if (!xe_vm_has_scratch(vm))
> > > + return false;
> > > +
> > > + if (bind_flags & DRM_XE_VM_BIND_FLAG_IMMEDIATE)
> > > + return false;
> > > +
> > > + return true;
> > > +}
> > > +
> > > /*
> > > * Create operations list from IOCTL arguments, setup operations
> > fields so parse
> > > * and commit steps are decoupled from IOCTL arguments. This
> > step can fail.
> > > @@ -1991,6 +2008,8 @@ vm_bind_ioctl_ops_create(struct xe_vm
> > *vm, struct xe_bo *bo,
> > > op->map.is_null = flags &
> > DRM_XE_VM_BIND_FLAG_NULL;
> > > op->map.dumpable = flags &
> > DRM_XE_VM_BIND_FLAG_DUMPABLE;
> > > op->map.pat_index = pat_index;
> > > + op->map.invalidate_on_bind =
> > > +
> > __xe_vm_needs_clear_scratch_pages(vm, flags);
> > > } else if (__op->op == DRM_GPUVA_OP_PREFETCH) {
> > > op->prefetch.region = prefetch_region;
> > > }
> > > @@ -2188,7 +2207,8 @@ static int vm_bind_ioctl_ops_parse(struct
> > xe_vm *vm, struct drm_gpuva_ops *ops,
> > > return PTR_ERR(vma);
> > >
> > > op->map.vma = vma;
> > > - if (op->map.immediate
> > || !xe_vm_in_fault_mode(vm))
> > > + if (op->map.immediate
> > || !xe_vm_in_fault_mode(vm) ||
> > > + op->map.invalidate_on_bind)
> > >
> > xe_vma_ops_incr_pt_update_ops(vops,
> > > op-
> > >tile_mask);
> > > break;
> > > @@ -2416,9 +2436,10 @@ static int op_lock_and_prep(struct
> > drm_exec *exec, struct xe_vm *vm,
> > >
> > > switch (op->base.op) {
> > > case DRM_GPUVA_OP_MAP:
> > > - err = vma_lock_and_validate(exec, op->map.vma,
> > > - !xe_vm_in_fault_mode(vm)
> > ||
> > > - op->map.immediate);
> > > + if (!op->map.invalidate_on_bind)
> > > + err = vma_lock_and_validate(exec, op-
> > >map.vma,
> > > +
> > !xe_vm_in_fault_mode(vm) ||
> > > + op-
> > >map.immediate);
> > > break;
> > > case DRM_GPUVA_OP_REMAP:
> > > err = check_ufence(gpuva_to_vma(op-
> > >base.remap.unmap->va));
> > > diff --git a/drivers/gpu/drm/xe/xe_vm_types.h
> > b/drivers/gpu/drm/xe/xe_vm_types.h
> > > index 52467b9b5348..dace04f4ea5e 100644
> > > --- a/drivers/gpu/drm/xe/xe_vm_types.h
> > > +++ b/drivers/gpu/drm/xe/xe_vm_types.h
> > > @@ -297,6 +297,8 @@ struct xe_vma_op_map {
> > > bool is_null;
> > > /** @dumpable: whether BO is dumped on GPU hang */
> > > bool dumpable;
> > > + /** @invalidate: invalidate the VMA before bind */
> > > + bool invalidate_on_bind;
> > > /** @pat_index: The pat index to use for this operation. */
> > > u16 pat_index;
> > > };
> > > --
> > > 2.26.3
> > >
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH 3/3] drm/xe: Allow scratch page under fault mode for certain platform
2025-02-13 2:23 [PATCH 1/3] drm/xe: Introduced needs_scratch bit in device descriptor Oak Zeng
` (3 preceding siblings ...)
2025-02-13 2:23 ` [PATCH 2/3] drm/xe: Clear scratch page on vm_bind Oak Zeng
@ 2025-02-13 2:23 ` Oak Zeng
2025-02-25 22:10 ` Matthew Brost
2025-02-13 2:34 ` ✓ CI.Build: success for series starting with [1/3] drm/xe: Introduced needs_scratch bit in device descriptor Patchwork
` (6 subsequent siblings)
11 siblings, 1 reply; 29+ messages in thread
From: Oak Zeng @ 2025-02-13 2:23 UTC (permalink / raw)
To: intel-xe; +Cc: Thomas.Hellstrom, matthew.brost, jonathan.cavitt
Normally scratch page is not allowed when a vm is operate under page
fault mode, i.e., in the existing codes, DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE
and DRM_XE_VM_CREATE_FLAG_FAULT_MODE are mutual exclusive. The reason
is fault mode relies on recoverable page to work, while scratch page
can mute recoverable page fault.
On xe2 and xe3, out of bound prefetch can cause page fault and further
system hang because xekmd can't resolve such page fault. SYCL and OCL
language runtime requires out of bound prefetch to be silently dropped
without causing any functional problem, thus the existing behavior
doesn't meet language runtime requirement.
At the same time, HW prefetching can cause page fault interrupt. Due to
page fault interrupt overhead (i.e., need Guc and KMD involved to fix
the page fault), HW prefetching can be slowed by many orders of magnitude.
Fix those problems by allowing scratch page under fault mode for xe2 and
xe3. With scratch page in place, HW prefetching could always hit scratch
page instead of causing interrupt.
A side effect is, scratch page could hide application program error.
Application out of bound accesses are hided by scratch page mapping,
instead of get reported to user.
igt test: https://patchwork.freedesktop.org/series/144334/. Test result on
BMG:
root@DUT1130BMGFRD:/home/szeng/dii-tools/igt-public/build/tests# ./xe_exec_fault_mode --run-subtest scratch-fault
IGT-Version: 1.30-gde1a3cb42 (x86_64) (Linux: 6.13.0-xe x86_64)
Using IGT_SRANDOM=1738684805 for randomisation
Opened device: /dev/dri/card0
Starting subtest: scratch-fault
Subtest scratch-fault: SUCCESS (0.080s)
Without this series, the test result is:
root@DUT1130BMGFRD:/home/szeng/dii-tools/igt-public/build/tests# ./xe_exec_fault_mode --run-subtest scratch-fault
IGT-Version: 1.30-gde1a3cb42 (x86_64) (Linux: 6.13.0-xe x86_64)
Using IGT_SRANDOM=1738686046 for randomisation
Opened device: /dev/dri/card0
Starting subtest: scratch-fault
(xe_exec_fault_mode:5047) CRITICAL: Test assertion failure function test_exec, file ../tests/intel/xe_exec_fault_mode.c:349:
(xe_exec_fault_mode:5047) CRITICAL: Failed assertion: __xe_wait_ufence(fd, &exec_sync[i], 0xdeadbeefdeadbeefull, exec_queues[i % n_exec_queues], &timeout) == 0
(xe_exec_fault_mode:5047) CRITICAL: Last errno: 62, Timer expired
(xe_exec_fault_mode:5047) CRITICAL: error: -62 != 0
Stack trace:
#0 ../lib/igt_core.c:2266 __igt_fail_assert()
#1 ../tests/intel/xe_exec_fault_mode.c:346 test_exec()
#2 ../tests/intel/xe_exec_fault_mode.c:537 __igt_unique____real_main407()
#3 ../tests/intel/xe_exec_fault_mode.c:407 main()
#4 ../sysdeps/nptl/libc_start_call_main.h:74 __libc_start_call_main()
#5 ../csu/libc-start.c:128 __libc_start_main@@GLIBC_2.34()
#6 [_start+0x2e]
Subtest scratch-fault failed.
v2: Refine commit message (Thomas)
v3: Move the scratch page flag check to after scratch page wa (Thomas)
Signed-off-by: Oak Zeng <oak.zeng@intel.com>
---
drivers/gpu/drm/xe/xe_vm.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index 813d893d9b63..c2dfd0ade403 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -1766,7 +1766,8 @@ int xe_vm_create_ioctl(struct drm_device *dev, void *data,
return -EINVAL;
if (XE_IOCTL_DBG(xe, args->flags & DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE &&
- args->flags & DRM_XE_VM_CREATE_FLAG_FAULT_MODE))
+ args->flags & DRM_XE_VM_CREATE_FLAG_FAULT_MODE &&
+ !(NEEDS_SCRATCH(xe))))
return -EINVAL;
if (XE_IOCTL_DBG(xe, !(args->flags & DRM_XE_VM_CREATE_FLAG_LR_MODE) &&
--
2.26.3
^ permalink raw reply related [flat|nested] 29+ messages in thread* Re: [PATCH 3/3] drm/xe: Allow scratch page under fault mode for certain platform
2025-02-13 2:23 ` [PATCH 3/3] drm/xe: Allow scratch page under fault mode for certain platform Oak Zeng
@ 2025-02-25 22:10 ` Matthew Brost
2025-02-26 22:12 ` Zeng, Oak
0 siblings, 1 reply; 29+ messages in thread
From: Matthew Brost @ 2025-02-25 22:10 UTC (permalink / raw)
To: Oak Zeng; +Cc: intel-xe, Thomas.Hellstrom, jonathan.cavitt
On Wed, Feb 12, 2025 at 09:23:31PM -0500, Oak Zeng wrote:
I replied to the wrong versions... Please generate the patches with:
git format-patch -v<n>
Where <n> is the version number. This will help avoiding replying to the
wrong patch.
Copy / pasting my reply here...
> Normally scratch page is not allowed when a vm is operate under page
> fault mode, i.e., in the existing codes, DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE
> and DRM_XE_VM_CREATE_FLAG_FAULT_MODE are mutual exclusive. The reason
> is fault mode relies on recoverable page to work, while scratch page
> can mute recoverable page fault.
>
> On xe2 and xe3, out of bound prefetch can cause page fault and further
> system hang because xekmd can't resolve such page fault. SYCL and OCL
> language runtime requires out of bound prefetch to be silently dropped
> without causing any functional problem, thus the existing behavior
> doesn't meet language runtime requirement.
>
> At the same time, HW prefetching can cause page fault interrupt. Due to
> page fault interrupt overhead (i.e., need Guc and KMD involved to fix
> the page fault), HW prefetching can be slowed by many orders of magnitude.
>
> Fix those problems by allowing scratch page under fault mode for xe2 and
> xe3. With scratch page in place, HW prefetching could always hit scratch
> page instead of causing interrupt.
>
> A side effect is, scratch page could hide application program error.
> Application out of bound accesses are hided by scratch page mapping,
> instead of get reported to user.
>
I'd include the IGT information in the cover letter, not the patch.
> igt test: https://patchwork.freedesktop.org/series/144334/. Test result on
> BMG:
>
> root@DUT1130BMGFRD:/home/szeng/dii-tools/igt-public/build/tests# ./xe_exec_fault_mode --run-subtest scratch-fault
> IGT-Version: 1.30-gde1a3cb42 (x86_64) (Linux: 6.13.0-xe x86_64)
> Using IGT_SRANDOM=1738684805 for randomisation
> Opened device: /dev/dri/card0
> Starting subtest: scratch-fault
> Subtest scratch-fault: SUCCESS (0.080s)
>
> Without this series, the test result is:
>
> root@DUT1130BMGFRD:/home/szeng/dii-tools/igt-public/build/tests# ./xe_exec_fault_mode --run-subtest scratch-fault
> IGT-Version: 1.30-gde1a3cb42 (x86_64) (Linux: 6.13.0-xe x86_64)
> Using IGT_SRANDOM=1738686046 for randomisation
> Opened device: /dev/dri/card0
> Starting subtest: scratch-fault
> (xe_exec_fault_mode:5047) CRITICAL: Test assertion failure function test_exec, file ../tests/intel/xe_exec_fault_mode.c:349:
> (xe_exec_fault_mode:5047) CRITICAL: Failed assertion: __xe_wait_ufence(fd, &exec_sync[i], 0xdeadbeefdeadbeefull, exec_queues[i % n_exec_queues], &timeout) == 0
> (xe_exec_fault_mode:5047) CRITICAL: Last errno: 62, Timer expired
> (xe_exec_fault_mode:5047) CRITICAL: error: -62 != 0
> Stack trace:
> #0 ../lib/igt_core.c:2266 __igt_fail_assert()
> #1 ../tests/intel/xe_exec_fault_mode.c:346 test_exec()
> #2 ../tests/intel/xe_exec_fault_mode.c:537 __igt_unique____real_main407()
> #3 ../tests/intel/xe_exec_fault_mode.c:407 main()
> #4 ../sysdeps/nptl/libc_start_call_main.h:74 __libc_start_call_main()
> #5 ../csu/libc-start.c:128 __libc_start_main@@GLIBC_2.34()
> #6 [_start+0x2e]
> Subtest scratch-fault failed.
>
> v2: Refine commit message (Thomas)
>
> v3: Move the scratch page flag check to after scratch page wa (Thomas)
>
> Signed-off-by: Oak Zeng <oak.zeng@intel.com>
> ---
> drivers/gpu/drm/xe/xe_vm.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> index 813d893d9b63..c2dfd0ade403 100644
> --- a/drivers/gpu/drm/xe/xe_vm.c
> +++ b/drivers/gpu/drm/xe/xe_vm.c
> @@ -1766,7 +1766,8 @@ int xe_vm_create_ioctl(struct drm_device *dev, void *data,
> return -EINVAL;
>
> if (XE_IOCTL_DBG(xe, args->flags & DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE &&
> - args->flags & DRM_XE_VM_CREATE_FLAG_FAULT_MODE))
> + args->flags & DRM_XE_VM_CREATE_FLAG_FAULT_MODE &&
> + !(NEEDS_SCRATCH(xe))))
Same comment as patch #1, I'd drop this macro.
Do we need a query uAPI so the UMD can test upon process open if the VM
supports scratch page + faults? Or should we just not restrict VM
scratch page + faults ever and have it choose based on platform
recommnedation?
Matt
> return -EINVAL;
>
> if (XE_IOCTL_DBG(xe, !(args->flags & DRM_XE_VM_CREATE_FLAG_LR_MODE) &&
> --
> 2.26.3
>
^ permalink raw reply [flat|nested] 29+ messages in thread
* RE: [PATCH 3/3] drm/xe: Allow scratch page under fault mode for certain platform
2025-02-25 22:10 ` Matthew Brost
@ 2025-02-26 22:12 ` Zeng, Oak
2025-02-27 0:22 ` Matthew Brost
0 siblings, 1 reply; 29+ messages in thread
From: Zeng, Oak @ 2025-02-26 22:12 UTC (permalink / raw)
To: Brost, Matthew
Cc: intel-xe@lists.freedesktop.org, Thomas.Hellstrom@linux.intel.com,
Cavitt, Jonathan
> -----Original Message-----
> From: Brost, Matthew <matthew.brost@intel.com>
> Sent: February 25, 2025 5:11 PM
> To: Zeng, Oak <oak.zeng@intel.com>
> Cc: intel-xe@lists.freedesktop.org;
> Thomas.Hellstrom@linux.intel.com; Cavitt, Jonathan
> <jonathan.cavitt@intel.com>
> Subject: Re: [PATCH 3/3] drm/xe: Allow scratch page under fault
> mode for certain platform
>
> On Wed, Feb 12, 2025 at 09:23:31PM -0500, Oak Zeng wrote:
>
> I replied to the wrong versions... Please generate the patches with:
>
> git format-patch -v<n>
>
> Where <n> is the version number. This will help avoiding replying to
> the
> wrong patch.
>
> Copy / pasting my reply here...
>
> > Normally scratch page is not allowed when a vm is operate under
> page
> > fault mode, i.e., in the existing codes,
> DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE
> > and DRM_XE_VM_CREATE_FLAG_FAULT_MODE are mutual
> exclusive. The reason
> > is fault mode relies on recoverable page to work, while scratch page
> > can mute recoverable page fault.
> >
> > On xe2 and xe3, out of bound prefetch can cause page fault and
> further
> > system hang because xekmd can't resolve such page fault. SYCL and
> OCL
> > language runtime requires out of bound prefetch to be silently
> dropped
> > without causing any functional problem, thus the existing behavior
> > doesn't meet language runtime requirement.
> >
> > At the same time, HW prefetching can cause page fault interrupt.
> Due to
> > page fault interrupt overhead (i.e., need Guc and KMD involved to
> fix
> > the page fault), HW prefetching can be slowed by many orders of
> magnitude.
> >
> > Fix those problems by allowing scratch page under fault mode for
> xe2 and
> > xe3. With scratch page in place, HW prefetching could always hit
> scratch
> > page instead of causing interrupt.
> >
> > A side effect is, scratch page could hide application program error.
> > Application out of bound accesses are hided by scratch page
> mapping,
> > instead of get reported to user.
> >
>
> I'd include the IGT information in the cover letter, not the patch.
>
> > igt test: https://patchwork.freedesktop.org/series/144334/. Test
> result on
> > BMG:
> >
> > root@DUT1130BMGFRD:/home/szeng/dii-tools/igt-
> public/build/tests# ./xe_exec_fault_mode --run-subtest scratch-fault
> > IGT-Version: 1.30-gde1a3cb42 (x86_64) (Linux: 6.13.0-xe x86_64)
> > Using IGT_SRANDOM=1738684805 for randomisation
> > Opened device: /dev/dri/card0
> > Starting subtest: scratch-fault
> > Subtest scratch-fault: SUCCESS (0.080s)
> >
> > Without this series, the test result is:
> >
> > root@DUT1130BMGFRD:/home/szeng/dii-tools/igt-
> public/build/tests# ./xe_exec_fault_mode --run-subtest scratch-fault
> > IGT-Version: 1.30-gde1a3cb42 (x86_64) (Linux: 6.13.0-xe x86_64)
> > Using IGT_SRANDOM=1738686046 for randomisation
> > Opened device: /dev/dri/card0
> > Starting subtest: scratch-fault
> > (xe_exec_fault_mode:5047) CRITICAL: Test assertion failure
> function test_exec, file ../tests/intel/xe_exec_fault_mode.c:349:
> > (xe_exec_fault_mode:5047) CRITICAL: Failed assertion:
> __xe_wait_ufence(fd, &exec_sync[i], 0xdeadbeefdeadbeefull,
> exec_queues[i % n_exec_queues], &timeout) == 0
> > (xe_exec_fault_mode:5047) CRITICAL: Last errno: 62, Timer expired
> > (xe_exec_fault_mode:5047) CRITICAL: error: -62 != 0
> > Stack trace:
> > #0 ../lib/igt_core.c:2266 __igt_fail_assert()
> > #1 ../tests/intel/xe_exec_fault_mode.c:346 test_exec()
> > #2 ../tests/intel/xe_exec_fault_mode.c:537
> __igt_unique____real_main407()
> > #3 ../tests/intel/xe_exec_fault_mode.c:407 main()
> > #4 ../sysdeps/nptl/libc_start_call_main.h:74
> __libc_start_call_main()
> > #5 ../csu/libc-start.c:128 __libc_start_main@@GLIBC_2.34()
> > #6 [_start+0x2e]
> > Subtest scratch-fault failed.
> >
> > v2: Refine commit message (Thomas)
> >
> > v3: Move the scratch page flag check to after scratch page wa
> (Thomas)
> >
> > Signed-off-by: Oak Zeng <oak.zeng@intel.com>
> > ---
> > drivers/gpu/drm/xe/xe_vm.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/xe/xe_vm.c
> b/drivers/gpu/drm/xe/xe_vm.c
> > index 813d893d9b63..c2dfd0ade403 100644
> > --- a/drivers/gpu/drm/xe/xe_vm.c
> > +++ b/drivers/gpu/drm/xe/xe_vm.c
> > @@ -1766,7 +1766,8 @@ int xe_vm_create_ioctl(struct drm_device
> *dev, void *data,
> > return -EINVAL;
> >
> > if (XE_IOCTL_DBG(xe, args->flags &
> DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE &&
> > - args->flags &
> DRM_XE_VM_CREATE_FLAG_FAULT_MODE))
> > + args->flags &
> DRM_XE_VM_CREATE_FLAG_FAULT_MODE &&
> > + !(NEEDS_SCRATCH(xe))))
>
> Same comment as patch #1, I'd drop this macro.
>
> Do we need a query uAPI so the UMD can test upon process open if
> the VM
> supports scratch page + faults?
Introducing a query API seems a little overkill to me.
Maybe I can add a little comment in the xe_drm.h, saying scratch and fault
Flags are normally mutual exclusive except on xe2/3?
Or should we just not restrict VM
> scratch page + faults ever and have it choose based on platform
> recommnedation?
>
I think having above checking/restriction is still helpful.
Oak
> Matt
>
> > return -EINVAL;
> >
> > if (XE_IOCTL_DBG(xe, !(args->flags &
> DRM_XE_VM_CREATE_FLAG_LR_MODE) &&
> > --
> > 2.26.3
> >
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH 3/3] drm/xe: Allow scratch page under fault mode for certain platform
2025-02-26 22:12 ` Zeng, Oak
@ 2025-02-27 0:22 ` Matthew Brost
0 siblings, 0 replies; 29+ messages in thread
From: Matthew Brost @ 2025-02-27 0:22 UTC (permalink / raw)
To: Zeng, Oak
Cc: intel-xe@lists.freedesktop.org, Thomas.Hellstrom@linux.intel.com,
Cavitt, Jonathan
On Wed, Feb 26, 2025 at 03:12:14PM -0700, Zeng, Oak wrote:
>
>
> > -----Original Message-----
> > From: Brost, Matthew <matthew.brost@intel.com>
> > Sent: February 25, 2025 5:11 PM
> > To: Zeng, Oak <oak.zeng@intel.com>
> > Cc: intel-xe@lists.freedesktop.org;
> > Thomas.Hellstrom@linux.intel.com; Cavitt, Jonathan
> > <jonathan.cavitt@intel.com>
> > Subject: Re: [PATCH 3/3] drm/xe: Allow scratch page under fault
> > mode for certain platform
> >
> > On Wed, Feb 12, 2025 at 09:23:31PM -0500, Oak Zeng wrote:
> >
> > I replied to the wrong versions... Please generate the patches with:
> >
> > git format-patch -v<n>
> >
> > Where <n> is the version number. This will help avoiding replying to
> > the
> > wrong patch.
> >
> > Copy / pasting my reply here...
> >
> > > Normally scratch page is not allowed when a vm is operate under
> > page
> > > fault mode, i.e., in the existing codes,
> > DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE
> > > and DRM_XE_VM_CREATE_FLAG_FAULT_MODE are mutual
> > exclusive. The reason
> > > is fault mode relies on recoverable page to work, while scratch page
> > > can mute recoverable page fault.
> > >
> > > On xe2 and xe3, out of bound prefetch can cause page fault and
> > further
> > > system hang because xekmd can't resolve such page fault. SYCL and
> > OCL
> > > language runtime requires out of bound prefetch to be silently
> > dropped
> > > without causing any functional problem, thus the existing behavior
> > > doesn't meet language runtime requirement.
> > >
> > > At the same time, HW prefetching can cause page fault interrupt.
> > Due to
> > > page fault interrupt overhead (i.e., need Guc and KMD involved to
> > fix
> > > the page fault), HW prefetching can be slowed by many orders of
> > magnitude.
> > >
> > > Fix those problems by allowing scratch page under fault mode for
> > xe2 and
> > > xe3. With scratch page in place, HW prefetching could always hit
> > scratch
> > > page instead of causing interrupt.
> > >
> > > A side effect is, scratch page could hide application program error.
> > > Application out of bound accesses are hided by scratch page
> > mapping,
> > > instead of get reported to user.
> > >
> >
> > I'd include the IGT information in the cover letter, not the patch.
> >
> > > igt test: https://patchwork.freedesktop.org/series/144334/. Test
> > result on
> > > BMG:
> > >
> > > root@DUT1130BMGFRD:/home/szeng/dii-tools/igt-
> > public/build/tests# ./xe_exec_fault_mode --run-subtest scratch-fault
> > > IGT-Version: 1.30-gde1a3cb42 (x86_64) (Linux: 6.13.0-xe x86_64)
> > > Using IGT_SRANDOM=1738684805 for randomisation
> > > Opened device: /dev/dri/card0
> > > Starting subtest: scratch-fault
> > > Subtest scratch-fault: SUCCESS (0.080s)
> > >
> > > Without this series, the test result is:
> > >
> > > root@DUT1130BMGFRD:/home/szeng/dii-tools/igt-
> > public/build/tests# ./xe_exec_fault_mode --run-subtest scratch-fault
> > > IGT-Version: 1.30-gde1a3cb42 (x86_64) (Linux: 6.13.0-xe x86_64)
> > > Using IGT_SRANDOM=1738686046 for randomisation
> > > Opened device: /dev/dri/card0
> > > Starting subtest: scratch-fault
> > > (xe_exec_fault_mode:5047) CRITICAL: Test assertion failure
> > function test_exec, file ../tests/intel/xe_exec_fault_mode.c:349:
> > > (xe_exec_fault_mode:5047) CRITICAL: Failed assertion:
> > __xe_wait_ufence(fd, &exec_sync[i], 0xdeadbeefdeadbeefull,
> > exec_queues[i % n_exec_queues], &timeout) == 0
> > > (xe_exec_fault_mode:5047) CRITICAL: Last errno: 62, Timer expired
> > > (xe_exec_fault_mode:5047) CRITICAL: error: -62 != 0
> > > Stack trace:
> > > #0 ../lib/igt_core.c:2266 __igt_fail_assert()
> > > #1 ../tests/intel/xe_exec_fault_mode.c:346 test_exec()
> > > #2 ../tests/intel/xe_exec_fault_mode.c:537
> > __igt_unique____real_main407()
> > > #3 ../tests/intel/xe_exec_fault_mode.c:407 main()
> > > #4 ../sysdeps/nptl/libc_start_call_main.h:74
> > __libc_start_call_main()
> > > #5 ../csu/libc-start.c:128 __libc_start_main@@GLIBC_2.34()
> > > #6 [_start+0x2e]
> > > Subtest scratch-fault failed.
> > >
> > > v2: Refine commit message (Thomas)
> > >
> > > v3: Move the scratch page flag check to after scratch page wa
> > (Thomas)
> > >
> > > Signed-off-by: Oak Zeng <oak.zeng@intel.com>
> > > ---
> > > drivers/gpu/drm/xe/xe_vm.c | 3 ++-
> > > 1 file changed, 2 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/gpu/drm/xe/xe_vm.c
> > b/drivers/gpu/drm/xe/xe_vm.c
> > > index 813d893d9b63..c2dfd0ade403 100644
> > > --- a/drivers/gpu/drm/xe/xe_vm.c
> > > +++ b/drivers/gpu/drm/xe/xe_vm.c
> > > @@ -1766,7 +1766,8 @@ int xe_vm_create_ioctl(struct drm_device
> > *dev, void *data,
> > > return -EINVAL;
> > >
> > > if (XE_IOCTL_DBG(xe, args->flags &
> > DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE &&
> > > - args->flags &
> > DRM_XE_VM_CREATE_FLAG_FAULT_MODE))
> > > + args->flags &
> > DRM_XE_VM_CREATE_FLAG_FAULT_MODE &&
> > > + !(NEEDS_SCRATCH(xe))))
> >
> > Same comment as patch #1, I'd drop this macro.
> >
> > Do we need a query uAPI so the UMD can test upon process open if
> > the VM
> > supports scratch page + faults?
>
> Introducing a query API seems a little overkill to me.
>
This is really a question for the level0 UMD I suppose, I'd follow up
there. They have asked for a query uAPI for other seemly simple things
before.
Matt
> Maybe I can add a little comment in the xe_drm.h, saying scratch and fault
> Flags are normally mutual exclusive except on xe2/3?
>
>
> Or should we just not restrict VM
> > scratch page + faults ever and have it choose based on platform
> > recommnedation?
> >
>
> I think having above checking/restriction is still helpful.
>
> Oak
>
> > Matt
> >
> > > return -EINVAL;
> > >
> > > if (XE_IOCTL_DBG(xe, !(args->flags &
> > DRM_XE_VM_CREATE_FLAG_LR_MODE) &&
> > > --
> > > 2.26.3
> > >
^ permalink raw reply [flat|nested] 29+ messages in thread
* ✓ CI.Build: success for series starting with [1/3] drm/xe: Introduced needs_scratch bit in device descriptor
2025-02-13 2:23 [PATCH 1/3] drm/xe: Introduced needs_scratch bit in device descriptor Oak Zeng
` (4 preceding siblings ...)
2025-02-13 2:23 ` [PATCH 3/3] drm/xe: Allow scratch page under fault mode for certain platform Oak Zeng
@ 2025-02-13 2:34 ` Patchwork
2025-02-13 2:37 ` ✓ CI.Hooks: " Patchwork
` (5 subsequent siblings)
11 siblings, 0 replies; 29+ messages in thread
From: Patchwork @ 2025-02-13 2:34 UTC (permalink / raw)
To: Oak Zeng; +Cc: intel-xe
== Series Details ==
Series: series starting with [1/3] drm/xe: Introduced needs_scratch bit in device descriptor
URL : https://patchwork.freedesktop.org/series/144766/
State : success
== Summary ==
lib/modules/6.14.0-rc2-xe+/kernel/arch/x86/events/amd/
lib/modules/6.14.0-rc2-xe+/kernel/arch/x86/events/amd/amd-uncore.ko
lib/modules/6.14.0-rc2-xe+/kernel/arch/x86/events/rapl.ko
lib/modules/6.14.0-rc2-xe+/kernel/arch/x86/kvm/
lib/modules/6.14.0-rc2-xe+/kernel/arch/x86/kvm/kvm.ko
lib/modules/6.14.0-rc2-xe+/kernel/arch/x86/kvm/kvm-intel.ko
lib/modules/6.14.0-rc2-xe+/kernel/arch/x86/kvm/kvm-amd.ko
lib/modules/6.14.0-rc2-xe+/kernel/kernel/
lib/modules/6.14.0-rc2-xe+/kernel/kernel/kheaders.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/
lib/modules/6.14.0-rc2-xe+/kernel/crypto/ecrdsa_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/xcbc.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/serpent_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/aria_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/crypto_simd.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/adiantum.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/tcrypt.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/crypto_engine.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/zstd.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/asymmetric_keys/
lib/modules/6.14.0-rc2-xe+/kernel/crypto/asymmetric_keys/pkcs7_test_key.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/asymmetric_keys/pkcs8_key_parser.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/des_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/xctr.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/authenc.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/sm4_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/camellia_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/sm3.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/pcrypt.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/aegis128.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/af_alg.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/algif_aead.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/cmac.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/sm3_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/aes_ti.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/chacha_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/poly1305_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/nhpoly1305.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/crc32_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/essiv.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/ccm.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/wp512.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/streebog_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/authencesn.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/echainiv.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/lrw.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/cryptd.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/crypto_user.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/algif_hash.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/polyval-generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/hctr2.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/842.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/pcbc.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/ansi_cprng.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/cast6_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/twofish_common.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/twofish_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/lz4hc.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/blowfish_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/md4.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/chacha20poly1305.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/curve25519-generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/lz4.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/rmd160.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/algif_skcipher.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/cast5_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/fcrypt.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/ecdsa_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/sm4.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/cast_common.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/blowfish_common.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/michael_mic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/async_tx/
lib/modules/6.14.0-rc2-xe+/kernel/crypto/async_tx/async_xor.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/async_tx/async_tx.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/async_tx/async_memcpy.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/async_tx/async_pq.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/async_tx/async_raid6_recov.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/algif_rng.ko
lib/modules/6.14.0-rc2-xe+/kernel/block/
lib/modules/6.14.0-rc2-xe+/kernel/block/bfq.ko
lib/modules/6.14.0-rc2-xe+/kernel/block/kyber-iosched.ko
lib/modules/6.14.0-rc2-xe+/build
lib/modules/6.14.0-rc2-xe+/modules.alias.bin
lib/modules/6.14.0-rc2-xe+/modules.builtin
lib/modules/6.14.0-rc2-xe+/modules.softdep
lib/modules/6.14.0-rc2-xe+/modules.alias
lib/modules/6.14.0-rc2-xe+/modules.order
lib/modules/6.14.0-rc2-xe+/modules.symbols
lib/modules/6.14.0-rc2-xe+/modules.dep.bin
+ mv kernel-nodebug.tar.gz ..
+ cd ..
+ rm -rf archive
++ date +%s
+ echo -e '\e[0Ksection_end:1739414081:package_x86_64_nodebug\r\e[0K'
^[[0Ksection_end:1739414081:package_x86_64_nodebug
^[[0K
+ sync
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 29+ messages in thread* ✓ CI.Hooks: success for series starting with [1/3] drm/xe: Introduced needs_scratch bit in device descriptor
2025-02-13 2:23 [PATCH 1/3] drm/xe: Introduced needs_scratch bit in device descriptor Oak Zeng
` (5 preceding siblings ...)
2025-02-13 2:34 ` ✓ CI.Build: success for series starting with [1/3] drm/xe: Introduced needs_scratch bit in device descriptor Patchwork
@ 2025-02-13 2:37 ` Patchwork
2025-02-13 2:38 ` ✓ CI.checksparse: " Patchwork
` (4 subsequent siblings)
11 siblings, 0 replies; 29+ messages in thread
From: Patchwork @ 2025-02-13 2:37 UTC (permalink / raw)
To: Oak Zeng; +Cc: intel-xe
== Series Details ==
Series: series starting with [1/3] drm/xe: Introduced needs_scratch bit in device descriptor
URL : https://patchwork.freedesktop.org/series/144766/
State : success
== Summary ==
run-parts: executing /workspace/ci/hooks/00-showenv
+ export
+ grep -Ei '(^|\W)CI_'
declare -x CI_KERNEL_BUILD_DIR="/workspace/kernel/build64-default"
declare -x CI_KERNEL_SRC_DIR="/workspace/kernel"
declare -x CI_TOOLS_SRC_DIR="/workspace/ci"
declare -x CI_WORKSPACE_DIR="/workspace"
run-parts: executing /workspace/ci/hooks/10-build-W1
+ SRC_DIR=/workspace/kernel
+ RESTORE_DISPLAY_CONFIG=0
+ '[' -n /workspace/kernel/build64-default ']'
+ BUILD_DIR=/workspace/kernel/build64-default
+ cd /workspace/kernel
++ nproc
+ make -j48 O=/workspace/kernel/build64-default modules_prepare
make[1]: Entering directory '/workspace/kernel/build64-default'
GEN Makefile
mkdir -p /workspace/kernel/build64-default/tools/objtool && make O=/workspace/kernel/build64-default subdir=tools/objtool --no-print-directory -C objtool
CALL ../scripts/checksyscalls.sh
INSTALL libsubcmd_headers
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/exec-cmd.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/help.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/pager.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/parse-options.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/run-command.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/sigchain.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/subcmd-config.o
LD /workspace/kernel/build64-default/tools/objtool/libsubcmd/libsubcmd-in.o
AR /workspace/kernel/build64-default/tools/objtool/libsubcmd/libsubcmd.a
CC /workspace/kernel/build64-default/tools/objtool/weak.o
CC /workspace/kernel/build64-default/tools/objtool/check.o
CC /workspace/kernel/build64-default/tools/objtool/special.o
CC /workspace/kernel/build64-default/tools/objtool/builtin-check.o
CC /workspace/kernel/build64-default/tools/objtool/elf.o
CC /workspace/kernel/build64-default/tools/objtool/objtool.o
CC /workspace/kernel/build64-default/tools/objtool/orc_gen.o
CC /workspace/kernel/build64-default/tools/objtool/orc_dump.o
CC /workspace/kernel/build64-default/tools/objtool/arch/x86/special.o
CC /workspace/kernel/build64-default/tools/objtool/libstring.o
CC /workspace/kernel/build64-default/tools/objtool/libctype.o
CC /workspace/kernel/build64-default/tools/objtool/arch/x86/decode.o
CC /workspace/kernel/build64-default/tools/objtool/arch/x86/orc.o
CC /workspace/kernel/build64-default/tools/objtool/str_error_r.o
CC /workspace/kernel/build64-default/tools/objtool/librbtree.o
LD /workspace/kernel/build64-default/tools/objtool/arch/x86/objtool-in.o
LD /workspace/kernel/build64-default/tools/objtool/objtool-in.o
LINK /workspace/kernel/build64-default/tools/objtool/objtool
make[1]: Leaving directory '/workspace/kernel/build64-default'
++ nproc
+ make -j48 O=/workspace/kernel/build64-default W=1 drivers/gpu/drm/xe
make[1]: Entering directory '/workspace/kernel/build64-default'
make[2]: Nothing to be done for 'drivers/gpu/drm/xe'.
make[1]: Leaving directory '/workspace/kernel/build64-default'
run-parts: executing /workspace/ci/hooks/11-build-32b
+++ realpath /workspace/ci/hooks/11-build-32b
++ dirname /workspace/ci/hooks/11-build-32b
+ THIS_SCRIPT_DIR=/workspace/ci/hooks
+ SRC_DIR=/workspace/kernel
+ TOOLS_SRC_DIR=/workspace/ci
+ '[' -n /workspace/kernel/build64-default ']'
+ BUILD_DIR=/workspace/kernel/build64-default
+ BUILD_DIR=/workspace/kernel/build64-default/build32
+ cd /workspace/kernel
+ mkdir -p /workspace/kernel/build64-default/build32
++ nproc
+ make -j48 ARCH=i386 O=/workspace/kernel/build64-default/build32 defconfig
make[1]: Entering directory '/workspace/kernel/build64-default/build32'
GEN Makefile
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/confdata.o
HOSTCC scripts/kconfig/expr.o
LEX scripts/kconfig/lexer.lex.c
YACC scripts/kconfig/parser.tab.[ch]
HOSTCC scripts/kconfig/menu.o
HOSTCC scripts/kconfig/symbol.o
HOSTCC scripts/kconfig/preprocess.o
HOSTCC scripts/kconfig/util.o
HOSTCC scripts/kconfig/lexer.lex.o
HOSTCC scripts/kconfig/parser.tab.o
HOSTLD scripts/kconfig/conf
*** Default configuration is based on 'i386_defconfig'
#
# configuration written to .config
#
make[1]: Leaving directory '/workspace/kernel/build64-default/build32'
+ cd /workspace/kernel/build64-default/build32
+ /workspace/kernel/scripts/kconfig/merge_config.sh .config /workspace/ci/kernel/fragments/10-xe.fragment
Using .config as base
Merging /workspace/ci/kernel/fragments/10-xe.fragment
Value of CONFIG_DRM_XE is redefined by fragment /workspace/ci/kernel/fragments/10-xe.fragment:
Previous value: # CONFIG_DRM_XE is not set
New value: CONFIG_DRM_XE=m
GEN Makefile
WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
Selected by [m]:
- DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m] && HAS_IOPORT [=y]
#
# configuration written to .config
#
Value requested for CONFIG_HAVE_UID16 not in final .config
Requested value: CONFIG_HAVE_UID16=y
Actual value:
Value requested for CONFIG_UID16 not in final .config
Requested value: CONFIG_UID16=y
Actual value:
Value requested for CONFIG_X86_32 not in final .config
Requested value: CONFIG_X86_32=y
Actual value:
Value requested for CONFIG_OUTPUT_FORMAT not in final .config
Requested value: CONFIG_OUTPUT_FORMAT="elf32-i386"
Actual value: CONFIG_OUTPUT_FORMAT="elf64-x86-64"
Value requested for CONFIG_ARCH_MMAP_RND_BITS_MIN not in final .config
Requested value: CONFIG_ARCH_MMAP_RND_BITS_MIN=8
Actual value: CONFIG_ARCH_MMAP_RND_BITS_MIN=28
Value requested for CONFIG_ARCH_MMAP_RND_BITS_MAX not in final .config
Requested value: CONFIG_ARCH_MMAP_RND_BITS_MAX=16
Actual value: CONFIG_ARCH_MMAP_RND_BITS_MAX=32
Value requested for CONFIG_PGTABLE_LEVELS not in final .config
Requested value: CONFIG_PGTABLE_LEVELS=2
Actual value: CONFIG_PGTABLE_LEVELS=5
Value requested for CONFIG_X86_BIGSMP not in final .config
Requested value: # CONFIG_X86_BIGSMP is not set
Actual value:
Value requested for CONFIG_X86_INTEL_QUARK not in final .config
Requested value: # CONFIG_X86_INTEL_QUARK is not set
Actual value:
Value requested for CONFIG_X86_RDC321X not in final .config
Requested value: # CONFIG_X86_RDC321X is not set
Actual value:
Value requested for CONFIG_X86_32_NON_STANDARD not in final .config
Requested value: # CONFIG_X86_32_NON_STANDARD is not set
Actual value:
Value requested for CONFIG_X86_32_IRIS not in final .config
Requested value: # CONFIG_X86_32_IRIS is not set
Actual value:
Value requested for CONFIG_M486SX not in final .config
Requested value: # CONFIG_M486SX is not set
Actual value:
Value requested for CONFIG_M486 not in final .config
Requested value: # CONFIG_M486 is not set
Actual value:
Value requested for CONFIG_M586 not in final .config
Requested value: # CONFIG_M586 is not set
Actual value:
Value requested for CONFIG_M586TSC not in final .config
Requested value: # CONFIG_M586TSC is not set
Actual value:
Value requested for CONFIG_M586MMX not in final .config
Requested value: # CONFIG_M586MMX is not set
Actual value:
Value requested for CONFIG_M686 not in final .config
Requested value: CONFIG_M686=y
Actual value:
Value requested for CONFIG_MPENTIUMII not in final .config
Requested value: # CONFIG_MPENTIUMII is not set
Actual value:
Value requested for CONFIG_MPENTIUMIII not in final .config
Requested value: # CONFIG_MPENTIUMIII is not set
Actual value:
Value requested for CONFIG_MPENTIUMM not in final .config
Requested value: # CONFIG_MPENTIUMM is not set
Actual value:
Value requested for CONFIG_MPENTIUM4 not in final .config
Requested value: # CONFIG_MPENTIUM4 is not set
Actual value:
Value requested for CONFIG_MK6 not in final .config
Requested value: # CONFIG_MK6 is not set
Actual value:
Value requested for CONFIG_MK7 not in final .config
Requested value: # CONFIG_MK7 is not set
Actual value:
Value requested for CONFIG_MCRUSOE not in final .config
Requested value: # CONFIG_MCRUSOE is not set
Actual value:
Value requested for CONFIG_MEFFICEON not in final .config
Requested value: # CONFIG_MEFFICEON is not set
Actual value:
Value requested for CONFIG_MWINCHIPC6 not in final .config
Requested value: # CONFIG_MWINCHIPC6 is not set
Actual value:
Value requested for CONFIG_MWINCHIP3D not in final .config
Requested value: # CONFIG_MWINCHIP3D is not set
Actual value:
Value requested for CONFIG_MELAN not in final .config
Requested value: # CONFIG_MELAN is not set
Actual value:
Value requested for CONFIG_MGEODEGX1 not in final .config
Requested value: # CONFIG_MGEODEGX1 is not set
Actual value:
Value requested for CONFIG_MGEODE_LX not in final .config
Requested value: # CONFIG_MGEODE_LX is not set
Actual value:
Value requested for CONFIG_MCYRIXIII not in final .config
Requested value: # CONFIG_MCYRIXIII is not set
Actual value:
Value requested for CONFIG_MVIAC3_2 not in final .config
Requested value: # CONFIG_MVIAC3_2 is not set
Actual value:
Value requested for CONFIG_MVIAC7 not in final .config
Requested value: # CONFIG_MVIAC7 is not set
Actual value:
Value requested for CONFIG_X86_GENERIC not in final .config
Requested value: # CONFIG_X86_GENERIC is not set
Actual value:
Value requested for CONFIG_X86_INTERNODE_CACHE_SHIFT not in final .config
Requested value: CONFIG_X86_INTERNODE_CACHE_SHIFT=5
Actual value: CONFIG_X86_INTERNODE_CACHE_SHIFT=6
Value requested for CONFIG_X86_L1_CACHE_SHIFT not in final .config
Requested value: CONFIG_X86_L1_CACHE_SHIFT=5
Actual value: CONFIG_X86_L1_CACHE_SHIFT=6
Value requested for CONFIG_X86_USE_PPRO_CHECKSUM not in final .config
Requested value: CONFIG_X86_USE_PPRO_CHECKSUM=y
Actual value:
Value requested for CONFIG_X86_MINIMUM_CPU_FAMILY not in final .config
Requested value: CONFIG_X86_MINIMUM_CPU_FAMILY=6
Actual value: CONFIG_X86_MINIMUM_CPU_FAMILY=64
Value requested for CONFIG_CPU_SUP_TRANSMETA_32 not in final .config
Requested value: CONFIG_CPU_SUP_TRANSMETA_32=y
Actual value:
Value requested for CONFIG_CPU_SUP_VORTEX_32 not in final .config
Requested value: CONFIG_CPU_SUP_VORTEX_32=y
Actual value:
Value requested for CONFIG_HPET_TIMER not in final .config
Requested value: # CONFIG_HPET_TIMER is not set
Actual value: CONFIG_HPET_TIMER=y
Value requested for CONFIG_NR_CPUS_RANGE_END not in final .config
Requested value: CONFIG_NR_CPUS_RANGE_END=8
Actual value: CONFIG_NR_CPUS_RANGE_END=512
Value requested for CONFIG_NR_CPUS_DEFAULT not in final .config
Requested value: CONFIG_NR_CPUS_DEFAULT=8
Actual value: CONFIG_NR_CPUS_DEFAULT=64
Value requested for CONFIG_X86_ANCIENT_MCE not in final .config
Requested value: # CONFIG_X86_ANCIENT_MCE is not set
Actual value:
Value requested for CONFIG_X86_LEGACY_VM86 not in final .config
Requested value: # CONFIG_X86_LEGACY_VM86 is not set
Actual value:
Value requested for CONFIG_X86_ESPFIX32 not in final .config
Requested value: CONFIG_X86_ESPFIX32=y
Actual value:
Value requested for CONFIG_TOSHIBA not in final .config
Requested value: # CONFIG_TOSHIBA is not set
Actual value:
Value requested for CONFIG_X86_REBOOTFIXUPS not in final .config
Requested value: # CONFIG_X86_REBOOTFIXUPS is not set
Actual value:
Value requested for CONFIG_MICROCODE_INITRD32 not in final .config
Requested value: CONFIG_MICROCODE_INITRD32=y
Actual value:
Value requested for CONFIG_NOHIGHMEM not in final .config
Requested value: # CONFIG_NOHIGHMEM is not set
Actual value:
Value requested for CONFIG_HIGHMEM4G not in final .config
Requested value: CONFIG_HIGHMEM4G=y
Actual value:
Value requested for CONFIG_HIGHMEM64G not in final .config
Requested value: # CONFIG_HIGHMEM64G is not set
Actual value:
Value requested for CONFIG_VMSPLIT_3G not in final .config
Requested value: CONFIG_VMSPLIT_3G=y
Actual value:
Value requested for CONFIG_VMSPLIT_3G_OPT not in final .config
Requested value: # CONFIG_VMSPLIT_3G_OPT is not set
Actual value:
Value requested for CONFIG_VMSPLIT_2G not in final .config
Requested value: # CONFIG_VMSPLIT_2G is not set
Actual value:
Value requested for CONFIG_VMSPLIT_2G_OPT not in final .config
Requested value: # CONFIG_VMSPLIT_2G_OPT is not set
Actual value:
Value requested for CONFIG_VMSPLIT_1G not in final .config
Requested value: # CONFIG_VMSPLIT_1G is not set
Actual value:
Value requested for CONFIG_PAGE_OFFSET not in final .config
Requested value: CONFIG_PAGE_OFFSET=0xC0000000
Actual value:
Value requested for CONFIG_HIGHMEM not in final .config
Requested value: CONFIG_HIGHMEM=y
Actual value:
Value requested for CONFIG_X86_PAE not in final .config
Requested value: # CONFIG_X86_PAE is not set
Actual value:
Value requested for CONFIG_ARCH_FLATMEM_ENABLE not in final .config
Requested value: CONFIG_ARCH_FLATMEM_ENABLE=y
Actual value:
Value requested for CONFIG_ARCH_SELECT_MEMORY_MODEL not in final .config
Requested value: CONFIG_ARCH_SELECT_MEMORY_MODEL=y
Actual value:
Value requested for CONFIG_ILLEGAL_POINTER_VALUE not in final .config
Requested value: CONFIG_ILLEGAL_POINTER_VALUE=0
Actual value: CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
Value requested for CONFIG_HIGHPTE not in final .config
Requested value: # CONFIG_HIGHPTE is not set
Actual value:
Value requested for CONFIG_COMPAT_VDSO not in final .config
Requested value: # CONFIG_COMPAT_VDSO is not set
Actual value:
Value requested for CONFIG_FUNCTION_PADDING_CFI not in final .config
Requested value: CONFIG_FUNCTION_PADDING_CFI=0
Actual value: CONFIG_FUNCTION_PADDING_CFI=11
Value requested for CONFIG_FUNCTION_PADDING_BYTES not in final .config
Requested value: CONFIG_FUNCTION_PADDING_BYTES=4
Actual value: CONFIG_FUNCTION_PADDING_BYTES=16
Value requested for CONFIG_APM not in final .config
Requested value: # CONFIG_APM is not set
Actual value:
Value requested for CONFIG_X86_POWERNOW_K6 not in final .config
Requested value: # CONFIG_X86_POWERNOW_K6 is not set
Actual value:
Value requested for CONFIG_X86_POWERNOW_K7 not in final .config
Requested value: # CONFIG_X86_POWERNOW_K7 is not set
Actual value:
Value requested for CONFIG_X86_GX_SUSPMOD not in final .config
Requested value: # CONFIG_X86_GX_SUSPMOD is not set
Actual value:
Value requested for CONFIG_X86_SPEEDSTEP_ICH not in final .config
Requested value: # CONFIG_X86_SPEEDSTEP_ICH is not set
Actual value:
Value requested for CONFIG_X86_SPEEDSTEP_SMI not in final .config
Requested value: # CONFIG_X86_SPEEDSTEP_SMI is not set
Actual value:
Value requested for CONFIG_X86_CPUFREQ_NFORCE2 not in final .config
Requested value: # CONFIG_X86_CPUFREQ_NFORCE2 is not set
Actual value:
Value requested for CONFIG_X86_LONGRUN not in final .config
Requested value: # CONFIG_X86_LONGRUN is not set
Actual value:
Value requested for CONFIG_X86_LONGHAUL not in final .config
Requested value: # CONFIG_X86_LONGHAUL is not set
Actual value:
Value requested for CONFIG_X86_E_POWERSAVER not in final .config
Requested value: # CONFIG_X86_E_POWERSAVER is not set
Actual value:
Value requested for CONFIG_PCI_GOBIOS not in final .config
Requested value: # CONFIG_PCI_GOBIOS is not set
Actual value:
Value requested for CONFIG_PCI_GOMMCONFIG not in final .config
Requested value: # CONFIG_PCI_GOMMCONFIG is not set
Actual value:
Value requested for CONFIG_PCI_GODIRECT not in final .config
Requested value: # CONFIG_PCI_GODIRECT is not set
Actual value:
Value requested for CONFIG_PCI_GOANY not in final .config
Requested value: CONFIG_PCI_GOANY=y
Actual value:
Value requested for CONFIG_PCI_BIOS not in final .config
Requested value: CONFIG_PCI_BIOS=y
Actual value:
Value requested for CONFIG_ISA not in final .config
Requested value: # CONFIG_ISA is not set
Actual value:
Value requested for CONFIG_SCx200 not in final .config
Requested value: # CONFIG_SCx200 is not set
Actual value:
Value requested for CONFIG_OLPC not in final .config
Requested value: # CONFIG_OLPC is not set
Actual value:
Value requested for CONFIG_ALIX not in final .config
Requested value: # CONFIG_ALIX is not set
Actual value:
Value requested for CONFIG_NET5501 not in final .config
Requested value: # CONFIG_NET5501 is not set
Actual value:
Value requested for CONFIG_GEOS not in final .config
Requested value: # CONFIG_GEOS is not set
Actual value:
Value requested for CONFIG_COMPAT_32 not in final .config
Requested value: CONFIG_COMPAT_32=y
Actual value:
Value requested for CONFIG_HAVE_ATOMIC_IOMAP not in final .config
Requested value: CONFIG_HAVE_ATOMIC_IOMAP=y
Actual value:
Value requested for CONFIG_ARCH_32BIT_OFF_T not in final .config
Requested value: CONFIG_ARCH_32BIT_OFF_T=y
Actual value:
Value requested for CONFIG_ARCH_WANT_IPC_PARSE_VERSION not in final .config
Requested value: CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
Actual value:
Value requested for CONFIG_MODULES_USE_ELF_REL not in final .config
Requested value: CONFIG_MODULES_USE_ELF_REL=y
Actual value:
Value requested for CONFIG_ARCH_MMAP_RND_BITS not in final .config
Requested value: CONFIG_ARCH_MMAP_RND_BITS=8
Actual value: CONFIG_ARCH_MMAP_RND_BITS=28
Value requested for CONFIG_CLONE_BACKWARDS not in final .config
Requested value: CONFIG_CLONE_BACKWARDS=y
Actual value:
Value requested for CONFIG_OLD_SIGSUSPEND3 not in final .config
Requested value: CONFIG_OLD_SIGSUSPEND3=y
Actual value:
Value requested for CONFIG_OLD_SIGACTION not in final .config
Requested value: CONFIG_OLD_SIGACTION=y
Actual value:
Value requested for CONFIG_ARCH_SPLIT_ARG64 not in final .config
Requested value: CONFIG_ARCH_SPLIT_ARG64=y
Actual value:
Value requested for CONFIG_FUNCTION_ALIGNMENT not in final .config
Requested value: CONFIG_FUNCTION_ALIGNMENT=4
Actual value: CONFIG_FUNCTION_ALIGNMENT=16
Value requested for CONFIG_SELECT_MEMORY_MODEL not in final .config
Requested value: CONFIG_SELECT_MEMORY_MODEL=y
Actual value:
Value requested for CONFIG_FLATMEM_MANUAL not in final .config
Requested value: CONFIG_FLATMEM_MANUAL=y
Actual value:
Value requested for CONFIG_SPARSEMEM_MANUAL not in final .config
Requested value: # CONFIG_SPARSEMEM_MANUAL is not set
Actual value:
Value requested for CONFIG_FLATMEM not in final .config
Requested value: CONFIG_FLATMEM=y
Actual value:
Value requested for CONFIG_SPARSEMEM_STATIC not in final .config
Requested value: CONFIG_SPARSEMEM_STATIC=y
Actual value:
Value requested for CONFIG_BOUNCE not in final .config
Requested value: CONFIG_BOUNCE=y
Actual value:
Value requested for CONFIG_KMAP_LOCAL not in final .config
Requested value: CONFIG_KMAP_LOCAL=y
Actual value:
Value requested for CONFIG_HOTPLUG_PCI_COMPAQ not in final .config
Requested value: # CONFIG_HOTPLUG_PCI_COMPAQ is not set
Actual value:
Value requested for CONFIG_HOTPLUG_PCI_IBM not in final .config
Requested value: # CONFIG_HOTPLUG_PCI_IBM is not set
Actual value:
Value requested for CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH not in final .config
Requested value: CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH=y
Actual value:
Value requested for CONFIG_PCH_PHUB not in final .config
Requested value: # CONFIG_PCH_PHUB is not set
Actual value:
Value requested for CONFIG_SCSI_NSP32 not in final .config
Requested value: # CONFIG_SCSI_NSP32 is not set
Actual value:
Value requested for CONFIG_PATA_CS5520 not in final .config
Requested value: # CONFIG_PATA_CS5520 is not set
Actual value:
Value requested for CONFIG_PATA_CS5530 not in final .config
Requested value: # CONFIG_PATA_CS5530 is not set
Actual value:
Value requested for CONFIG_PATA_CS5535 not in final .config
Requested value: # CONFIG_PATA_CS5535 is not set
Actual value:
Value requested for CONFIG_PATA_CS5536 not in final .config
Requested value: # CONFIG_PATA_CS5536 is not set
Actual value:
Value requested for CONFIG_PATA_SC1200 not in final .config
Requested value: # CONFIG_PATA_SC1200 is not set
Actual value:
Value requested for CONFIG_PCH_GBE not in final .config
Requested value: # CONFIG_PCH_GBE is not set
Actual value:
Value requested for CONFIG_INPUT_WISTRON_BTNS not in final .config
Requested value: # CONFIG_INPUT_WISTRON_BTNS is not set
Actual value:
Value requested for CONFIG_SERIAL_TIMBERDALE not in final .config
Requested value: # CONFIG_SERIAL_TIMBERDALE is not set
Actual value:
Value requested for CONFIG_SERIAL_PCH_UART not in final .config
Requested value: # CONFIG_SERIAL_PCH_UART is not set
Actual value:
Value requested for CONFIG_HW_RANDOM_GEODE not in final .config
Requested value: CONFIG_HW_RANDOM_GEODE=y
Actual value:
Value requested for CONFIG_SONYPI not in final .config
Requested value: # CONFIG_SONYPI is not set
Actual value:
Value requested for CONFIG_PC8736x_GPIO not in final .config
Requested value: # CONFIG_PC8736x_GPIO is not set
Actual value:
Value requested for CONFIG_NSC_GPIO not in final .config
Requested value: # CONFIG_NSC_GPIO is not set
Actual value:
Value requested for CONFIG_I2C_EG20T not in final .config
Requested value: # CONFIG_I2C_EG20T is not set
Actual value:
Value requested for CONFIG_SCx200_ACB not in final .config
Requested value: # CONFIG_SCx200_ACB is not set
Actual value:
Value requested for CONFIG_PTP_1588_CLOCK_PCH not in final .config
Requested value: # CONFIG_PTP_1588_CLOCK_PCH is not set
Actual value:
Value requested for CONFIG_SBC8360_WDT not in final .config
Requested value: # CONFIG_SBC8360_WDT is not set
Actual value:
Value requested for CONFIG_SBC7240_WDT not in final .config
Requested value: # CONFIG_SBC7240_WDT is not set
Actual value:
Value requested for CONFIG_MFD_CS5535 not in final .config
Requested value: # CONFIG_MFD_CS5535 is not set
Actual value:
Value requested for CONFIG_AGP_ALI not in final .config
Requested value: # CONFIG_AGP_ALI is not set
Actual value:
Value requested for CONFIG_AGP_ATI not in final .config
Requested value: # CONFIG_AGP_ATI is not set
Actual value:
Value requested for CONFIG_AGP_AMD not in final .config
Requested value: # CONFIG_AGP_AMD is not set
Actual value:
Value requested for CONFIG_AGP_NVIDIA not in final .config
Requested value: # CONFIG_AGP_NVIDIA is not set
Actual value:
Value requested for CONFIG_AGP_SWORKS not in final .config
Requested value: # CONFIG_AGP_SWORKS is not set
Actual value:
Value requested for CONFIG_AGP_EFFICEON not in final .config
Requested value: # CONFIG_AGP_EFFICEON is not set
Actual value:
Value requested for CONFIG_SND_CS5530 not in final .config
Requested value: # CONFIG_SND_CS5530 is not set
Actual value:
Value requested for CONFIG_SND_CS5535AUDIO not in final .config
Requested value: # CONFIG_SND_CS5535AUDIO is not set
Actual value:
Value requested for CONFIG_SND_SIS7019 not in final .config
Requested value: # CONFIG_SND_SIS7019 is not set
Actual value:
Value requested for CONFIG_LEDS_OT200 not in final .config
Requested value: # CONFIG_LEDS_OT200 is not set
Actual value:
Value requested for CONFIG_PCH_DMA not in final .config
Requested value: # CONFIG_PCH_DMA is not set
Actual value:
Value requested for CONFIG_CLKSRC_I8253 not in final .config
Requested value: CONFIG_CLKSRC_I8253=y
Actual value:
Value requested for CONFIG_MAILBOX not in final .config
Requested value: # CONFIG_MAILBOX is not set
Actual value: CONFIG_MAILBOX=y
Value requested for CONFIG_CRYPTO_SERPENT_SSE2_586 not in final .config
Requested value: # CONFIG_CRYPTO_SERPENT_SSE2_586 is not set
Actual value:
Value requested for CONFIG_CRYPTO_TWOFISH_586 not in final .config
Requested value: # CONFIG_CRYPTO_TWOFISH_586 is not set
Actual value:
Value requested for CONFIG_CRYPTO_DEV_GEODE not in final .config
Requested value: # CONFIG_CRYPTO_DEV_GEODE is not set
Actual value:
Value requested for CONFIG_CRYPTO_DEV_HIFN_795X not in final .config
Requested value: # CONFIG_CRYPTO_DEV_HIFN_795X is not set
Actual value:
Value requested for CONFIG_CRYPTO_LIB_POLY1305_RSIZE not in final .config
Requested value: CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1
Actual value: CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11
Value requested for CONFIG_AUDIT_GENERIC not in final .config
Requested value: CONFIG_AUDIT_GENERIC=y
Actual value:
Value requested for CONFIG_GENERIC_VDSO_32 not in final .config
Requested value: CONFIG_GENERIC_VDSO_32=y
Actual value:
Value requested for CONFIG_DEBUG_KMAP_LOCAL not in final .config
Requested value: # CONFIG_DEBUG_KMAP_LOCAL is not set
Actual value:
Value requested for CONFIG_DEBUG_HIGHMEM not in final .config
Requested value: # CONFIG_DEBUG_HIGHMEM is not set
Actual value:
Value requested for CONFIG_HAVE_DEBUG_STACKOVERFLOW not in final .config
Requested value: CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
Actual value:
Value requested for CONFIG_DEBUG_STACKOVERFLOW not in final .config
Requested value: # CONFIG_DEBUG_STACKOVERFLOW is not set
Actual value:
Value requested for CONFIG_HAVE_FUNCTION_GRAPH_TRACER not in final .config
Requested value: CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
Actual value:
Value requested for CONFIG_HAVE_FUNCTION_GRAPH_FREGS not in final .config
Requested value: CONFIG_HAVE_FUNCTION_GRAPH_FREGS=y
Actual value:
Value requested for CONFIG_HAVE_FTRACE_GRAPH_FUNC not in final .config
Requested value: CONFIG_HAVE_FTRACE_GRAPH_FUNC=y
Actual value:
Value requested for CONFIG_DRM_KUNIT_TEST not in final .config
Requested value: CONFIG_DRM_KUNIT_TEST=m
Actual value:
Value requested for CONFIG_DRM_XE_WERROR not in final .config
Requested value: CONFIG_DRM_XE_WERROR=y
Actual value:
Value requested for CONFIG_DRM_XE_DEBUG not in final .config
Requested value: CONFIG_DRM_XE_DEBUG=y
Actual value:
Value requested for CONFIG_DRM_XE_DEBUG_MEM not in final .config
Requested value: CONFIG_DRM_XE_DEBUG_MEM=y
Actual value:
Value requested for CONFIG_DRM_XE_KUNIT_TEST not in final .config
Requested value: CONFIG_DRM_XE_KUNIT_TEST=m
Actual value:
++ nproc
+ make -j48 ARCH=i386 olddefconfig
GEN Makefile
WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
Selected by [m]:
- DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m] && HAS_IOPORT [=y]
#
# configuration written to .config
#
++ nproc
+ make -j48 ARCH=i386
SYNC include/config/auto.conf.cmd
GEN Makefile
WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
Selected by [m]:
- DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m] && HAS_IOPORT [=y]
WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
Selected by [m]:
- DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m] && HAS_IOPORT [=y]
WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
Selected by [m]:
- DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m] && HAS_IOPORT [=y]
GEN Makefile
WRAP arch/x86/include/generated/uapi/asm/bpf_perf_event.h
WRAP arch/x86/include/generated/uapi/asm/errno.h
WRAP arch/x86/include/generated/uapi/asm/ioctl.h
WRAP arch/x86/include/generated/uapi/asm/fcntl.h
WRAP arch/x86/include/generated/uapi/asm/ioctls.h
WRAP arch/x86/include/generated/uapi/asm/ipcbuf.h
WRAP arch/x86/include/generated/uapi/asm/param.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_32.h
UPD include/generated/uapi/linux/version.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_64.h
WRAP arch/x86/include/generated/uapi/asm/resource.h
WRAP arch/x86/include/generated/uapi/asm/poll.h
WRAP arch/x86/include/generated/uapi/asm/sockios.h
SYSTBL arch/x86/include/generated/asm/syscalls_32.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_x32.h
WRAP arch/x86/include/generated/uapi/asm/socket.h
WRAP arch/x86/include/generated/uapi/asm/termbits.h
WRAP arch/x86/include/generated/uapi/asm/termios.h
WRAP arch/x86/include/generated/uapi/asm/types.h
UPD include/generated/compile.h
HOSTCC arch/x86/tools/relocs_32.o
HOSTCC arch/x86/tools/relocs_64.o
HOSTCC arch/x86/tools/relocs_common.o
WRAP arch/x86/include/generated/asm/early_ioremap.h
WRAP arch/x86/include/generated/asm/fprobe.h
WRAP arch/x86/include/generated/asm/mcs_spinlock.h
WRAP arch/x86/include/generated/asm/mmzone.h
WRAP arch/x86/include/generated/asm/irq_regs.h
WRAP arch/x86/include/generated/asm/kmap_size.h
WRAP arch/x86/include/generated/asm/local64.h
WRAP arch/x86/include/generated/asm/mmiowb.h
WRAP arch/x86/include/generated/asm/module.lds.h
WRAP arch/x86/include/generated/asm/rwonce.h
HOSTCC scripts/kallsyms
HOSTCC scripts/sorttable
HOSTCC scripts/asn1_compiler
HOSTCC scripts/selinux/mdp/mdp
HOSTLD arch/x86/tools/relocs
UPD include/config/kernel.release
UPD include/generated/utsrelease.h
CC scripts/mod/empty.o
HOSTCC scripts/mod/mk_elfconfig
CC scripts/mod/devicetable-offsets.s
UPD scripts/mod/devicetable-offsets.h
MKELF scripts/mod/elfconfig.h
HOSTCC scripts/mod/modpost.o
HOSTCC scripts/mod/file2alias.o
HOSTCC scripts/mod/sumversion.o
HOSTCC scripts/mod/symsearch.o
HOSTLD scripts/mod/modpost
CC kernel/bounds.s
CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-arch-fallback.h
CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-instrumented.h
CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-long.h
UPD include/generated/timeconst.h
UPD include/generated/bounds.h
CC arch/x86/kernel/asm-offsets.s
UPD include/generated/asm-offsets.h
CALL /workspace/kernel/scripts/checksyscalls.sh
LDS scripts/module.lds
CC init/main.o
HOSTCC usr/gen_init_cpio
CC init/do_mounts.o
CC certs/system_keyring.o
CC init/do_mounts_initrd.o
UPD init/utsversion-tmp.h
CC ipc/util.o
CC init/initramfs.o
CC ipc/msgutil.o
CC init/calibrate.o
CC security/commoncap.o
CC ipc/msg.o
CC io_uring/io_uring.o
CC security/lsm_syscalls.o
CC mm/filemap.o
CC init/init_task.o
CC ipc/sem.o
CC io_uring/opdef.o
CC security/min_addr.o
AS arch/x86/lib/atomic64_cx8_32.o
CC arch/x86/realmode/init.o
CC ipc/shm.o
CC mm/mempool.o
CC init/version.o
AR arch/x86/crypto/built-in.a
AR arch/x86/net/built-in.a
CC arch/x86/video/video-common.o
CC arch/x86/power/cpu.o
CC arch/x86/pci/i386.o
HOSTCC security/selinux/genheaders
CC security/keys/gc.o
CC security/integrity/iint.o
AR arch/x86/entry/vsyscall/built-in.a
CC block/partitions/core.o
AR virt/lib/built-in.a
CC arch/x86/mm/init.o
CC fs/nfs_common/nfsacl.o
AR arch/x86/platform/atom/built-in.a
AS arch/x86/entry/entry.o
CC arch/x86/events/amd/core.o
CC lib/math/div64.o
AR drivers/cache/built-in.a
CC arch/x86/mm/pat/set_memory.o
CC arch/x86/kernel/fpu/init.o
CC net/core/sock.o
AR virt/built-in.a
CC fs/notify/dnotify/dnotify.o
CC arch/x86/virt/svm/cmdline.o
CC sound/core/seq/seq.o
AR arch/x86/platform/ce4100/built-in.a
CC arch/x86/events/intel/core.o
AR drivers/irqchip/built-in.a
AS arch/x86/lib/checksum_32.o
CC arch/x86/entry/vdso/vma.o
CC arch/x86/events/zhaoxin/core.o
CC arch/x86/platform/efi/memmap.o
AR arch/x86/platform/geode/built-in.a
CC kernel/sched/core.o
AR drivers/bus/mhi/built-in.a
CC arch/x86/lib/cmdline.o
AR drivers/bus/built-in.a
CC security/integrity/integrity_audit.o
AR drivers/pwm/built-in.a
CC crypto/asymmetric_keys/asymmetric_type.o
AR drivers/leds/trigger/built-in.a
AR drivers/leds/blink/built-in.a
AR arch/x86/virt/svm/built-in.a
AR drivers/leds/simple/built-in.a
AR arch/x86/virt/vmx/built-in.a
CC drivers/leds/led-core.o
AR arch/x86/virt/built-in.a
CC crypto/api.o
AS arch/x86/lib/cmpxchg8b_emu.o
CC lib/math/gcd.o
GEN security/selinux/flask.h security/selinux/av_permissions.h
CC security/selinux/avc.o
CC arch/x86/lib/cpu.o
CC arch/x86/power/hibernate_32.o
CC lib/math/lcm.o
CC lib/math/int_log.o
AS arch/x86/power/hibernate_asm_32.o
GEN usr/initramfs_data.cpio
CC kernel/locking/mutex.o
COPY usr/initramfs_inc_data
AS usr/initramfs_data.o
HOSTCC certs/extract-cert
AR usr/built-in.a
CC arch/x86/kernel/fpu/bugs.o
CC lib/math/int_pow.o
CC ipc/syscall.o
CC lib/math/int_sqrt.o
CC arch/x86/kernel/fpu/core.o
CC lib/math/reciprocal_div.o
CC arch/x86/lib/delay.o
AS arch/x86/realmode/rm/header.o
CC sound/core/seq/seq_lock.o
CC lib/math/rational.o
AR arch/x86/video/built-in.a
AS arch/x86/realmode/rm/trampoline_32.o
CC arch/x86/power/hibernate.o
AS arch/x86/realmode/rm/stack.o
CERT certs/x509_certificate_list
CERT certs/signing_key.x509
AS certs/system_certificates.o
AS arch/x86/realmode/rm/reboot.o
CC fs/iomap/trace.o
AR certs/built-in.a
CC ipc/ipc_sysctl.o
AS arch/x86/realmode/rm/wakeup_asm.o
CC fs/nfs_common/grace.o
CC kernel/power/qos.o
CC sound/core/sound.o
CC arch/x86/realmode/rm/wakemain.o
CC drivers/leds/led-class.o
CC sound/core/init.o
CC kernel/power/main.o
CC fs/quota/dquot.o
CC arch/x86/pci/init.o
CC arch/x86/realmode/rm/video-mode.o
CC security/keys/key.o
AR security/integrity/built-in.a
CC crypto/asymmetric_keys/restrict.o
AR fs/notify/dnotify/built-in.a
CC arch/x86/entry/vdso/extable.o
CC kernel/power/console.o
AS arch/x86/entry/entry_32.o
CC security/keys/keyring.o
CC fs/notify/inotify/inotify_fsnotify.o
CC arch/x86/platform/efi/quirks.o
AS arch/x86/lib/getuser.o
GEN arch/x86/lib/inat-tables.c
CC drivers/leds/led-triggers.o
AS arch/x86/realmode/rm/copy.o
CC block/partitions/msdos.o
CC arch/x86/lib/insn-eval.o
CC drivers/pci/msi/pcidev_msi.o
AS arch/x86/realmode/rm/bioscall.o
CC drivers/video/console/dummycon.o
CC arch/x86/realmode/rm/regs.o
AR arch/x86/events/zhaoxin/built-in.a
AR drivers/idle/built-in.a
CC drivers/video/backlight/backlight.o
CC fs/nfs_common/common.o
LDS arch/x86/entry/vdso/vdso32/vdso32.lds
CC arch/x86/realmode/rm/video-vga.o
AR lib/math/built-in.a
CC sound/core/seq/seq_clientmgr.o
CC lib/crypto/memneq.o
CC lib/crypto/mpi/generic_mpih-lshift.o
CC crypto/asymmetric_keys/signature.o
CC io_uring/kbuf.o
CC arch/x86/realmode/rm/video-vesa.o
CC io_uring/rsrc.o
CC fs/iomap/iter.o
CC arch/x86/realmode/rm/video-bios.o
CC arch/x86/pci/pcbios.o
CC arch/x86/events/amd/lbr.o
CC arch/x86/kernel/fpu/regset.o
PASYMS arch/x86/realmode/rm/pasyms.h
CC fs/notify/inotify/inotify_user.o
CC kernel/sched/fair.o
CC sound/core/memory.o
LDS arch/x86/realmode/rm/realmode.lds
LD arch/x86/realmode/rm/realmode.elf
RELOCS arch/x86/realmode/rm/realmode.relocs
AR sound/i2c/other/built-in.a
OBJCOPY arch/x86/realmode/rm/realmode.bin
AR arch/x86/power/built-in.a
AS arch/x86/realmode/rmpiggy.o
AR sound/i2c/built-in.a
CC fs/quota/quota_v2.o
CC crypto/asymmetric_keys/public_key.o
ASN.1 crypto/asymmetric_keys/x509.asn1.[ch]
AR arch/x86/realmode/built-in.a
CC arch/x86/mm/pat/memtype.o
CC arch/x86/events/core.o
AR arch/x86/platform/iris/built-in.a
CC drivers/pci/msi/api.o
CC arch/x86/events/intel/bts.o
CC block/bdev.o
CC drivers/pci/msi/msi.o
CC kernel/power/process.o
AR init/built-in.a
CC io_uring/notif.o
CC ipc/mqueue.o
CC drivers/video/console/vgacon.o
CC ipc/namespace.o
CC arch/x86/events/intel/ds.o
AS arch/x86/entry/vdso/vdso32/note.o
CC lib/crypto/mpi/generic_mpih-mul1.o
AS arch/x86/entry/vdso/vdso32/system_call.o
AR drivers/leds/built-in.a
CC kernel/locking/semaphore.o
AS arch/x86/entry/vdso/vdso32/sigreturn.o
CC arch/x86/entry/syscall_32.o
CC arch/x86/entry/vdso/vdso32/vclock_gettime.o
CC sound/core/seq/seq_memory.o
CC mm/oom_kill.o
AR fs/nfs_common/built-in.a
CC lib/crypto/utils.o
CC block/partitions/efi.o
CC arch/x86/platform/efi/efi.o
CC arch/x86/lib/insn.o
CC arch/x86/platform/intel/iosf_mbi.o
AR arch/x86/platform/intel-mid/built-in.a
CC net/core/request_sock.o
CC arch/x86/events/intel/knc.o
CC drivers/pci/msi/irqdomain.o
CC security/selinux/hooks.o
AR drivers/video/backlight/built-in.a
CC io_uring/tctx.o
CC arch/x86/mm/pat/memtype_interval.o
CC fs/iomap/buffered-io.o
CC arch/x86/pci/mmconfig_32.o
CC drivers/pci/pcie/portdrv.o
CC arch/x86/kernel/fpu/signal.o
CC lib/crypto/mpi/generic_mpih-mul2.o
ASN.1 crypto/asymmetric_keys/x509_akid.asn1.[ch]
CC crypto/asymmetric_keys/x509_loader.o
CC security/keys/keyctl.o
CC arch/x86/mm/init_32.o
AR drivers/char/ipmi/built-in.a
CC arch/x86/lib/kaslr.o
AR arch/x86/platform/intel-quark/built-in.a
CC fs/quota/quota_tree.o
CC drivers/acpi/acpica/dsargs.o
CC arch/x86/events/amd/ibs.o
CC fs/quota/quota.o
AR fs/notify/inotify/built-in.a
AR fs/notify/fanotify/built-in.a
CC fs/notify/fsnotify.o
CC fs/notify/notification.o
CC crypto/asymmetric_keys/x509_public_key.o
CC kernel/sched/build_policy.o
CC arch/x86/entry/vdso/vdso32/vgetcpu.o
AR drivers/video/fbdev/core/built-in.a
CC kernel/locking/rwsem.o
CC arch/x86/lib/memcpy_32.o
AR drivers/video/fbdev/omap/built-in.a
AR drivers/video/fbdev/omap2/omapfb/dss/built-in.a
CC kernel/power/suspend.o
AS arch/x86/lib/memmove_32.o
AR drivers/video/fbdev/omap2/omapfb/displays/built-in.a
HOSTCC arch/x86/entry/vdso/vdso2c
AR drivers/video/fbdev/omap2/omapfb/built-in.a
CC arch/x86/lib/misc.o
AR drivers/video/fbdev/omap2/built-in.a
AR drivers/video/fbdev/built-in.a
CC kernel/locking/percpu-rwsem.o
CC net/ethernet/eth.o
CC arch/x86/lib/pc-conf-reg.o
AR net/802/built-in.a
CC lib/zlib_inflate/inffast.o
CC sound/core/seq/seq_queue.o
CC fs/proc/task_mmu.o
AR arch/x86/platform/intel/built-in.a
CC drivers/acpi/acpica/dscontrol.o
AR arch/x86/mm/pat/built-in.a
CC kernel/sched/build_utility.o
AR drivers/video/console/built-in.a
CC arch/x86/events/probe.o
CC drivers/video/aperture.o
CC arch/x86/pci/direct.o
AR drivers/pci/msi/built-in.a
CC arch/x86/events/intel/lbr.o
CC lib/crypto/mpi/generic_mpih-mul3.o
CC drivers/pci/pcie/rcec.o
AS arch/x86/lib/putuser.o
CC security/security.o
CC fs/kernfs/mount.o
AS arch/x86/lib/retpoline.o
AR block/partitions/built-in.a
CC block/fops.o
CC lib/zlib_inflate/inflate.o
CC arch/x86/lib/string_32.o
CC fs/sysfs/file.o
CC arch/x86/lib/strstr_32.o
CC security/keys/permission.o
CC mm/fadvise.o
CC arch/x86/platform/efi/efi_32.o
AR arch/x86/platform/olpc/built-in.a
CC arch/x86/lib/usercopy.o
CC fs/sysfs/dir.o
CC arch/x86/entry/vdso/vdso32-setup.o
CC arch/x86/kernel/cpu/mce/core.o
ASN.1 crypto/asymmetric_keys/pkcs7.asn1.[ch]
CC crypto/asymmetric_keys/pkcs7_trust.o
CC arch/x86/kernel/fpu/xstate.o
CC fs/devpts/inode.o
CC arch/x86/kernel/cpu/mtrr/mtrr.o
CC drivers/acpi/acpica/dsdebug.o
CC sound/core/control.o
CC arch/x86/mm/fault.o
AR sound/drivers/opl3/built-in.a
CC ipc/mq_sysctl.o
AR sound/drivers/opl4/built-in.a
CC lib/zlib_deflate/deflate.o
CC net/core/skbuff.o
AR sound/drivers/mpu401/built-in.a
CC arch/x86/lib/usercopy_32.o
AR sound/drivers/vx/built-in.a
VDSO arch/x86/entry/vdso/vdso32.so.dbg
AR sound/drivers/pcsp/built-in.a
AR sound/drivers/built-in.a
CC fs/notify/group.o
CC fs/notify/mark.o
OBJCOPY arch/x86/entry/vdso/vdso32.so
VDSO2C arch/x86/entry/vdso/vdso-image-32.c
CC arch/x86/entry/vdso/vdso-image-32.o
CC kernel/locking/spinlock.o
CC lib/crypto/mpi/generic_mpih-rshift.o
CC crypto/asymmetric_keys/pkcs7_verify.o
CC drivers/acpi/acpica/dsfield.o
CC arch/x86/mm/ioremap.o
CC arch/x86/pci/mmconfig-shared.o
CC lib/zlib_inflate/infutil.o
CC drivers/pci/pcie/bwctrl.o
CC arch/x86/mm/extable.o
CC block/bio.o
CC drivers/video/cmdline.o
CC io_uring/filetable.o
CC arch/x86/events/amd/uncore.o
CC sound/core/seq/seq_fifo.o
CC fs/quota/kqid.o
CC lib/crypto/mpi/generic_mpih-sub1.o
CC arch/x86/lib/msr-smp.o
CC fs/kernfs/inode.o
AR arch/x86/entry/vdso/built-in.a
CC arch/x86/entry/common.o
CC kernel/power/hibernate.o
AR ipc/built-in.a
CC security/keys/process_keys.o
CC drivers/video/nomodeset.o
CC drivers/acpi/acpica/dsinit.o
CC fs/sysfs/symlink.o
AS arch/x86/platform/efi/efi_stub_32.o
CC arch/x86/platform/efi/runtime-map.o
CC kernel/locking/osq_lock.o
CC mm/maccess.o
CC lib/zlib_inflate/inftrees.o
CC crypto/asymmetric_keys/x509.asn1.o
AR fs/devpts/built-in.a
CC kernel/locking/qspinlock.o
CC crypto/asymmetric_keys/x509_akid.asn1.o
CC mm/page-writeback.o
CC arch/x86/kernel/cpu/mtrr/if.o
CC arch/x86/lib/cache-smp.o
CC fs/sysfs/mount.o
CC crypto/asymmetric_keys/x509_cert_parser.o
AR net/ethernet/built-in.a
AS arch/x86/entry/thunk.o
CC fs/sysfs/group.o
CC crypto/cipher.o
CC lib/zlib_inflate/inflate_syms.o
CC drivers/pci/pcie/aspm.o
CC arch/x86/kernel/cpu/microcode/core.o
CC drivers/acpi/acpica/dsmethod.o
CC fs/iomap/direct-io.o
CC drivers/pci/pcie/pme.o
CC fs/quota/netlink.o
CC arch/x86/lib/crc32-glue.o
AS arch/x86/lib/crc32-pclmul.o
CC security/lsm_audit.o
CC lib/zlib_deflate/deftree.o
CC arch/x86/events/intel/p4.o
CC lib/crypto/mpi/generic_mpih-add1.o
CC sound/core/seq/seq_prioq.o
CC lib/zlib_deflate/deflate_syms.o
CC sound/core/seq/seq_timer.o
CC drivers/video/hdmi.o
AR arch/x86/kernel/fpu/built-in.a
AR arch/x86/platform/scx200/built-in.a
CC fs/notify/fdinfo.o
CC drivers/pnp/pnpacpi/core.o
AR lib/zlib_inflate/built-in.a
CC kernel/locking/rtmutex_api.o
AR drivers/amba/built-in.a
CC crypto/asymmetric_keys/pkcs7.asn1.o
CC crypto/asymmetric_keys/pkcs7_parser.o
CC io_uring/rw.o
CC arch/x86/kernel/cpu/cacheinfo.o
CC arch/x86/lib/msr.o
CC arch/x86/pci/fixup.o
CC fs/kernfs/dir.o
CC fs/proc/inode.o
AR arch/x86/platform/efi/built-in.a
AR arch/x86/platform/ts5500/built-in.a
AR arch/x86/entry/built-in.a
CC fs/proc/root.o
CC drivers/acpi/acpica/dsmthdat.o
CC drivers/pnp/core.o
CC net/core/datagram.o
AR arch/x86/platform/uv/built-in.a
AR arch/x86/platform/built-in.a
CC arch/x86/kernel/cpu/scattered.o
CC arch/x86/kernel/cpu/mtrr/generic.o
CC arch/x86/events/intel/p6.o
CC arch/x86/mm/mmap.o
CC arch/x86/events/intel/pt.o
CC arch/x86/kernel/cpu/microcode/intel.o
CC arch/x86/kernel/cpu/topology_common.o
AR fs/sysfs/built-in.a
CC security/keys/request_key.o
CC security/selinux/selinuxfs.o
CC arch/x86/pci/acpi.o
CC fs/iomap/fiemap.o
AR lib/zlib_deflate/built-in.a
AR arch/x86/events/amd/built-in.a
CC arch/x86/pci/legacy.o
CC io_uring/net.o
CC lib/crypto/mpi/mpicoder.o
CC security/device_cgroup.o
CC arch/x86/kernel/cpu/mce/severity.o
CC mm/folio-compat.o
AR fs/quota/built-in.a
AR crypto/asymmetric_keys/built-in.a
CC kernel/power/snapshot.o
AR fs/notify/built-in.a
CC mm/readahead.o
CC crypto/compress.o
CC block/elevator.o
CC drivers/acpi/acpica/dsobject.o
CC drivers/pnp/pnpacpi/rsparser.o
CC drivers/pnp/card.o
CC sound/core/seq/seq_system.o
AR drivers/video/built-in.a
CC sound/core/misc.o
CC lib/lzo/lzo1x_compress.o
CC io_uring/poll.o
CC kernel/locking/qrwlock.o
CC arch/x86/mm/pgtable.o
CC arch/x86/mm/physaddr.o
CC net/core/stream.o
CC security/selinux/netlink.o
AS arch/x86/lib/msr-reg.o
CC kernel/printk/printk.o
CC fs/proc/base.o
CC arch/x86/lib/msr-reg-export.o
AR drivers/pci/pcie/built-in.a
CC kernel/printk/printk_safe.o
CC lib/crypto/chacha.o
CC arch/x86/kernel/acpi/boot.o
AR drivers/pci/pwrctrl/built-in.a
CC drivers/acpi/acpica/dsopcode.o
AR sound/isa/ad1816a/built-in.a
CC drivers/pci/hotplug/pci_hotplug_core.o
AR sound/isa/ad1848/built-in.a
AR sound/isa/cs423x/built-in.a
AR sound/isa/es1688/built-in.a
CC lib/crypto/aes.o
AR sound/isa/galaxy/built-in.a
AR drivers/acpi/pmic/built-in.a
CC drivers/pci/hotplug/acpi_pcihp.o
CC fs/iomap/seek.o
CC arch/x86/kernel/cpu/microcode/amd.o
AR sound/isa/gus/built-in.a
AR sound/isa/msnd/built-in.a
AS arch/x86/lib/hweight.o
AR sound/isa/opti9xx/built-in.a
AR sound/isa/sb/built-in.a
CC fs/kernfs/file.o
CC arch/x86/lib/iomem.o
AR sound/isa/wavefront/built-in.a
CC arch/x86/pci/irq.o
AR sound/isa/wss/built-in.a
CC lib/crypto/mpi/mpi-add.o
CC crypto/algapi.o
AR sound/isa/built-in.a
CC lib/crypto/mpi/mpi-bit.o
CC arch/x86/kernel/cpu/mtrr/cleanup.o
CC security/keys/request_key_auth.o
CC sound/core/seq/seq_ports.o
CC io_uring/eventfd.o
CC drivers/acpi/acpica/dspkginit.o
AR kernel/locking/built-in.a
CC arch/x86/events/intel/uncore.o
CC lib/lzo/lzo1x_decompress_safe.o
CC security/keys/user_defined.o
CC arch/x86/kernel/cpu/mce/genpool.o
CC block/blk-core.o
CC drivers/acpi/dptf/int340x_thermal.o
CC arch/x86/mm/tlb.o
CC lib/crypto/arc4.o
CC kernel/irq/irqdesc.o
CC kernel/printk/nbcon.o
CC arch/x86/events/utils.o
CC arch/x86/lib/atomic64_32.o
AR drivers/pnp/pnpacpi/built-in.a
CC drivers/pnp/driver.o
AR drivers/clk/actions/built-in.a
CC arch/x86/kernel/apic/apic.o
CC mm/swap.o
CC arch/x86/lib/inat.o
AR drivers/clk/analogbits/built-in.a
CC arch/x86/pci/common.o
AR drivers/clk/bcm/built-in.a
CC arch/x86/kernel/cpu/mtrr/amd.o
AR drivers/clk/imgtec/built-in.a
AR drivers/clk/imx/built-in.a
CC arch/x86/kernel/kprobes/core.o
LDS arch/x86/kernel/vmlinux.lds
AR drivers/clk/ingenic/built-in.a
AR drivers/clk/mediatek/built-in.a
AR drivers/clk/microchip/built-in.a
CC mm/truncate.o
CC arch/x86/kernel/apic/apic_common.o
AR drivers/clk/mstar/built-in.a
CC drivers/acpi/acpica/dsutils.o
AR drivers/clk/mvebu/built-in.a
AR arch/x86/lib/built-in.a
AR drivers/clk/ralink/built-in.a
AR arch/x86/lib/lib.a
AR drivers/clk/renesas/built-in.a
AR drivers/pci/controller/dwc/built-in.a
AR drivers/clk/socfpga/built-in.a
AR drivers/pci/controller/mobiveil/built-in.a
AR drivers/clk/sophgo/built-in.a
AR lib/lzo/built-in.a
AR drivers/pci/controller/plda/built-in.a
AS arch/x86/kernel/head_32.o
AR drivers/pci/controller/built-in.a
AR drivers/clk/sprd/built-in.a
AR drivers/pci/switch/built-in.a
CC net/core/scm.o
CC fs/iomap/swapfile.o
CC lib/crypto/mpi/mpi-cmp.o
AR drivers/clk/starfive/built-in.a
AR drivers/acpi/dptf/built-in.a
CC arch/x86/kernel/cpu/mce/intel.o
CC arch/x86/kernel/cpu/topology_ext.o
CC arch/x86/events/rapl.o
AR drivers/clk/sunxi-ng/built-in.a
CC drivers/acpi/acpica/dswexec.o
AR drivers/clk/ti/built-in.a
CC arch/x86/events/msr.o
AR drivers/clk/versatile/built-in.a
AR drivers/clk/xilinx/built-in.a
CC drivers/pci/access.o
AR drivers/clk/built-in.a
AR drivers/pci/hotplug/built-in.a
CC kernel/printk/printk_ringbuffer.o
CC fs/kernfs/symlink.o
CC fs/proc/generic.o
AR sound/pci/ac97/built-in.a
CC security/keys/proc.o
AR sound/pci/ali5451/built-in.a
AR sound/pci/asihpi/built-in.a
CC arch/x86/events/intel/uncore_nhmex.o
AR sound/pci/au88x0/built-in.a
CC arch/x86/pci/early.o
CC lib/crypto/mpi/mpi-sub-ui.o
AR sound/pci/aw2/built-in.a
CC arch/x86/kernel/cpu/topology_amd.o
CC drivers/acpi/x86/apple.o
AR sound/pci/ctxfi/built-in.a
AR sound/pci/ca0106/built-in.a
AR sound/pci/cs46xx/built-in.a
AR sound/pci/cs5535audio/built-in.a
AR sound/pci/lola/built-in.a
AR sound/pci/lx6464es/built-in.a
AR arch/x86/kernel/cpu/microcode/built-in.a
CC lib/crypto/mpi/mpi-div.o
AR sound/pci/echoaudio/built-in.a
AR sound/pci/emu10k1/built-in.a
CC sound/core/seq/seq_info.o
CC sound/pci/hda/hda_bind.o
CC security/selinux/nlmsgtab.o
CC arch/x86/kernel/acpi/sleep.o
CC security/selinux/netif.o
CC sound/core/seq/seq_dummy.o
CC drivers/pnp/resource.o
CC sound/pci/hda/hda_codec.o
CC kernel/irq/handle.o
CC arch/x86/kernel/cpu/mtrr/cyrix.o
CC sound/pci/hda/hda_jack.o
CC drivers/acpi/acpica/dswload.o
CC kernel/power/swap.o
CC security/selinux/netnode.o
CC fs/proc/array.o
CC sound/pci/hda/hda_auto_parser.o
CC io_uring/uring_cmd.o
CC drivers/dma/dw/core.o
CC crypto/scatterwalk.o
CC drivers/dma/hsu/hsu.o
CC arch/x86/kernel/cpu/mce/amd.o
CC arch/x86/mm/cpu_entry_area.o
AR drivers/dma/idxd/built-in.a
CC drivers/dma/dw/dw.o
CC drivers/dma/dw/idma32.o
CC drivers/acpi/x86/cmos_rtc.o
CC drivers/dma/dw/acpi.o
AR fs/iomap/built-in.a
CC sound/core/device.o
CC security/keys/sysctl.o
CC arch/x86/pci/bus_numa.o
AR fs/kernfs/built-in.a
CC arch/x86/kernel/apic/apic_noop.o
CC kernel/rcu/update.o
CC mm/vmscan.o
AR kernel/sched/built-in.a
CC arch/x86/kernel/kprobes/opt.o
CC arch/x86/kernel/cpu/mtrr/centaur.o
AR drivers/dma/amd/built-in.a
CC drivers/acpi/acpica/dswload2.o
CC arch/x86/events/intel/uncore_snb.o
CC lib/crypto/mpi/mpi-mod.o
AR sound/core/seq/built-in.a
CC kernel/irq/manage.o
CC fs/proc/fd.o
CC fs/proc/proc_tty.o
CC drivers/pci/bus.o
CC arch/x86/kernel/apic/ipi.o
AR sound/ppc/built-in.a
CC arch/x86/kernel/apic/vector.o
CC kernel/rcu/sync.o
AS arch/x86/kernel/acpi/wakeup_32.o
CC kernel/printk/sysctl.o
CC arch/x86/kernel/head32.o
CC arch/x86/kernel/acpi/cstate.o
AR sound/arm/built-in.a
CC arch/x86/pci/amd_bus.o
CC kernel/irq/spurious.o
CC crypto/proc.o
CC net/sched/sch_generic.o
CC kernel/irq/resend.o
CC net/netlink/af_netlink.o
CC kernel/irq/chip.o
CC sound/core/info.o
CC arch/x86/mm/maccess.o
CC drivers/acpi/acpica/dswscope.o
AR net/bpf/built-in.a
CC security/keys/keyctl_pkey.o
CC kernel/power/user.o
CC drivers/pci/probe.o
CC lib/crypto/mpi/mpi-mul.o
CC drivers/acpi/x86/lpss.o
CC kernel/irq/dummychip.o
AR kernel/printk/built-in.a
CC drivers/pnp/manager.o
CC arch/x86/kernel/cpu/mtrr/legacy.o
AR drivers/dma/hsu/built-in.a
CC lib/crypto/gf128mul.o
CC lib/crypto/blake2s.o
CC net/sched/sch_mq.o
CC arch/x86/kernel/apic/init.o
CC drivers/pnp/support.o
CC net/core/gen_stats.o
CC security/selinux/netport.o
AR sound/sh/built-in.a
CC net/sched/sch_frag.o
CC arch/x86/mm/pgprot.o
CC sound/core/isadma.o
CC kernel/irq/devres.o
CC block/blk-sysfs.o
CC block/blk-flush.o
CC drivers/acpi/acpica/dswstate.o
AR arch/x86/kernel/acpi/built-in.a
CC fs/netfs/buffered_read.o
CC lib/crypto/blake2s-generic.o
CC security/selinux/status.o
AR arch/x86/kernel/kprobes/built-in.a
CC lib/crypto/sha1.o
AR drivers/dma/dw/built-in.a
CC lib/crypto/mpi/mpih-cmp.o
CC net/sched/sch_api.o
CC io_uring/openclose.o
AR drivers/dma/mediatek/built-in.a
AR drivers/dma/qcom/built-in.a
AR drivers/dma/stm32/built-in.a
AR drivers/dma/ti/built-in.a
AR arch/x86/kernel/cpu/mtrr/built-in.a
CC fs/proc/cmdline.o
AR drivers/dma/xilinx/built-in.a
CC drivers/dma/dmaengine.o
CC sound/pci/hda/hda_sysfs.o
CC mm/shrinker.o
AR sound/synth/emux/built-in.a
CC crypto/aead.o
AR sound/synth/built-in.a
AR sound/usb/misc/built-in.a
CC net/ethtool/ioctl.o
CC arch/x86/events/intel/uncore_snbep.o
AR sound/usb/usx2y/built-in.a
CC lib/crypto/mpi/mpih-div.o
AR sound/usb/caiaq/built-in.a
AR sound/usb/6fire/built-in.a
AR sound/usb/hiface/built-in.a
CC drivers/acpi/tables.o
CC kernel/power/poweroff.o
AR sound/usb/bcd2000/built-in.a
AR sound/usb/built-in.a
CC sound/core/vmaster.o
AR arch/x86/pci/built-in.a
AR security/keys/built-in.a
CC net/ethtool/common.o
CC drivers/pnp/interface.o
CC drivers/acpi/x86/s2idle.o
CC arch/x86/kernel/cpu/mce/threshold.o
CC arch/x86/kernel/cpu/common.o
CC lib/crypto/mpi/mpih-mul.o
AR sound/pci/ice1712/built-in.a
CC fs/proc/consoles.o
CC security/selinux/ss/ebitmap.o
CC mm/shmem.o
CC drivers/dma/virt-dma.o
CC arch/x86/mm/pgtable_32.o
CC lib/crypto/sha256.o
CC sound/pci/hda/hda_controller.o
CC arch/x86/kernel/apic/hw_nmi.o
CC drivers/acpi/acpica/evevent.o
AR kernel/power/built-in.a
CC io_uring/sqpoll.o
CC lib/lz4/lz4_decompress.o
CC sound/core/ctljack.o
CC drivers/pci/host-bridge.o
CC arch/x86/kernel/apic/io_apic.o
CC kernel/irq/kexec.o
CC drivers/acpi/x86/utils.o
AR sound/firewire/built-in.a
CC sound/core/jack.o
CC sound/core/hwdep.o
CC drivers/acpi/acpica/evgpe.o
CC sound/core/timer.o
CC net/core/gen_estimator.o
CC arch/x86/kernel/apic/msi.o
CC net/netlink/genetlink.o
CC drivers/acpi/osi.o
CC block/blk-settings.o
CC fs/proc/cpuinfo.o
CC drivers/pnp/quirks.o
CC fs/netfs/buffered_write.o
CC net/ethtool/netlink.o
AR drivers/soc/apple/built-in.a
AR drivers/soc/aspeed/built-in.a
CC arch/x86/kernel/apic/probe_32.o
CC drivers/virtio/virtio.o
AR drivers/soc/bcm/built-in.a
AR drivers/soc/fsl/built-in.a
CC kernel/irq/autoprobe.o
CC lib/crypto/mpi/mpi-pow.o
CC sound/pci/hda/hda_proc.o
AR drivers/soc/fujitsu/built-in.a
CC crypto/geniv.o
AR drivers/soc/hisilicon/built-in.a
AR drivers/soc/imx/built-in.a
CC fs/proc/devices.o
CC arch/x86/mm/iomap_32.o
AR drivers/soc/ixp4xx/built-in.a
AR drivers/soc/loongson/built-in.a
AR drivers/soc/mediatek/built-in.a
CC net/core/net_namespace.o
CC arch/x86/kernel/cpu/rdrand.o
AR drivers/soc/microchip/built-in.a
CC arch/x86/mm/hugetlbpage.o
AR drivers/soc/nuvoton/built-in.a
AR sound/sparc/built-in.a
CC drivers/acpi/x86/blacklist.o
CC mm/util.o
AR drivers/soc/pxa/built-in.a
AR drivers/soc/amlogic/built-in.a
CC drivers/dma/acpi-dma.o
AR drivers/soc/qcom/built-in.a
AR drivers/soc/renesas/built-in.a
AR drivers/soc/rockchip/built-in.a
AR drivers/soc/sunxi/built-in.a
AR drivers/soc/ti/built-in.a
CC drivers/pnp/system.o
CC drivers/tty/vt/vt_ioctl.o
AR drivers/soc/versatile/built-in.a
AR drivers/soc/xilinx/built-in.a
AR drivers/soc/built-in.a
CC io_uring/xattr.o
CC drivers/acpi/acpica/evgpeblk.o
CC drivers/pci/remove.o
AR arch/x86/kernel/cpu/mce/built-in.a
CC lib/zstd/zstd_decompress_module.o
AR sound/pci/korg1212/built-in.a
CC drivers/acpi/osl.o
CC fs/ext4/balloc.o
CC crypto/lskcipher.o
CC drivers/pci/pci.o
CC arch/x86/mm/dump_pagetables.o
CC kernel/irq/irqdomain.o
CC drivers/char/hw_random/core.o
CC lib/zstd/decompress/huf_decompress.o
CC mm/mmzone.o
CC security/selinux/ss/hashtab.o
CC sound/pci/hda/hda_hwdep.o
CC kernel/rcu/srcutree.o
AR drivers/acpi/x86/built-in.a
CC kernel/rcu/tree.o
CC arch/x86/kernel/cpu/match.o
CC fs/proc/interrupts.o
AR drivers/pnp/built-in.a
CC net/netfilter/core.o
CC sound/core/hrtimer.o
CC kernel/irq/proc.o
CC drivers/acpi/acpica/evgpeinit.o
CC net/ipv4/netfilter/nf_defrag_ipv4.o
CC mm/vmstat.o
CC lib/crypto/mpi/mpiutil.o
CC drivers/virtio/virtio_ring.o
CC block/blk-ioc.o
CC net/netfilter/nf_log.o
AR lib/lz4/built-in.a
CC crypto/skcipher.o
CC fs/netfs/direct_read.o
CC drivers/char/hw_random/intel-rng.o
AR drivers/dma/built-in.a
CC drivers/tty/vt/vc_screen.o
CC arch/x86/events/intel/uncore_discovery.o
CC security/selinux/ss/symtab.o
AR sound/pci/mixart/built-in.a
CC net/netfilter/nf_queue.o
CC arch/x86/kernel/cpu/bugs.o
CC lib/zstd/decompress/zstd_ddict.o
CC mm/backing-dev.o
CC net/ipv4/netfilter/nf_reject_ipv4.o
AR sound/spi/built-in.a
CC drivers/acpi/utils.o
CC net/ethtool/bitset.o
CC net/sched/sch_blackhole.o
CC io_uring/nop.o
CC drivers/virtio/virtio_anchor.o
CC block/blk-map.o
CC drivers/acpi/acpica/evgpeutil.o
CC arch/x86/events/intel/cstate.o
CC net/core/secure_seq.o
CC security/selinux/ss/sidtab.o
CC fs/proc/loadavg.o
CC fs/proc/meminfo.o
CC sound/pci/hda/hda_intel.o
CC arch/x86/mm/highmem_32.o
CC drivers/char/hw_random/amd-rng.o
CC sound/core/pcm.o
CC drivers/char/hw_random/geode-rng.o
CC lib/xz/xz_dec_syms.o
AR arch/x86/kernel/apic/built-in.a
CC lib/dim/dim.o
AR lib/crypto/mpi/built-in.a
AR lib/crypto/built-in.a
CC lib/xz/xz_dec_stream.o
CC fs/jbd2/transaction.o
AR sound/pci/nm256/built-in.a
CC arch/x86/kernel/cpu/aperfmperf.o
CC drivers/acpi/acpica/evglock.o
CC drivers/char/agp/backend.o
CC drivers/char/hw_random/via-rng.o
CC fs/ramfs/inode.o
CC drivers/char/agp/generic.o
CC net/netlink/policy.o
CC kernel/irq/migration.o
CC drivers/tty/vt/selection.o
CC fs/netfs/direct_write.o
CC fs/netfs/iterator.o
CC drivers/acpi/reboot.o
CC lib/dim/net_dim.o
CC fs/ramfs/file-mmu.o
CC drivers/pci/pci-driver.o
CC net/ipv4/route.o
CC crypto/seqiv.o
CC lib/zstd/decompress/zstd_decompress.o
AR kernel/livepatch/built-in.a
CC net/ipv4/inetpeer.o
AR sound/parisc/built-in.a
CC lib/fonts/fonts.o
CC io_uring/fs.o
AR arch/x86/mm/built-in.a
CC net/ipv4/protocol.o
CC arch/x86/kernel/cpu/cpuid-deps.o
CC drivers/acpi/acpica/evhandler.o
CC net/sched/cls_api.o
CC lib/zstd/decompress/zstd_decompress_block.o
CC fs/proc/stat.o
CC lib/xz/xz_dec_lzma2.o
CC fs/proc/uptime.o
AR drivers/char/hw_random/built-in.a
CC io_uring/splice.o
CC arch/x86/kernel/ebda.o
AR sound/pci/oxygen/built-in.a
CC drivers/char/agp/isoch.o
AR arch/x86/events/intel/built-in.a
AR arch/x86/events/built-in.a
CC kernel/irq/cpuhotplug.o
CC block/blk-merge.o
CC lib/argv_split.o
CC security/selinux/ss/avtab.o
CC net/xfrm/xfrm_policy.o
CC fs/ext4/bitmap.o
CC mm/mm_init.o
CC crypto/echainiv.o
CC sound/core/pcm_native.o
CC net/netfilter/nf_sockopt.o
CC lib/fonts/font_8x16.o
CC net/ipv4/ip_input.o
AR drivers/iommu/amd/built-in.a
AR drivers/iommu/intel/built-in.a
CC drivers/acpi/acpica/evmisc.o
AR drivers/iommu/arm/arm-smmu/built-in.a
CC net/ethtool/strset.o
CC net/core/flow_dissector.o
AR drivers/iommu/arm/arm-smmu-v3/built-in.a
AR drivers/iommu/arm/built-in.a
AR drivers/iommu/iommufd/built-in.a
CC net/ipv4/netfilter/ip_tables.o
CC drivers/tty/vt/keyboard.o
AR drivers/iommu/riscv/built-in.a
CC drivers/iommu/iommu.o
AR drivers/gpu/host1x/built-in.a
CC drivers/tty/vt/vt.o
CC drivers/pci/search.o
AR fs/ramfs/built-in.a
CC kernel/rcu/rcu_segcblist.o
CC drivers/char/agp/amd64-agp.o
CC drivers/virtio/virtio_pci_modern_dev.o
AR drivers/gpu/vga/built-in.a
CC drivers/char/mem.o
CC sound/core/pcm_lib.o
AR drivers/gpu/drm/tests/built-in.a
CC net/xfrm/xfrm_state.o
AR net/netlink/built-in.a
CC net/ipv4/netfilter/iptable_filter.o
AR drivers/gpu/drm/arm/built-in.a
CC net/unix/af_unix.o
AR drivers/gpu/drm/clients/built-in.a
CC fs/proc/util.o
AR lib/fonts/built-in.a
CC drivers/gpu/drm/display/drm_display_helper_mod.o
CC arch/x86/kernel/cpu/umwait.o
CC net/netfilter/utils.o
CC fs/netfs/locking.o
CC lib/xz/xz_dec_bcj.o
CC fs/proc/version.o
CC lib/dim/rdma_dim.o
CC fs/jbd2/commit.o
COPY drivers/tty/vt/defkeymap.c
CC drivers/acpi/acpica/evregion.o
CC drivers/tty/hvc/hvc_console.o
CC drivers/tty/vt/consolemap.o
CC kernel/irq/pm.o
CC io_uring/sync.o
AR sound/pci/hda/built-in.a
AR sound/pci/pcxhr/built-in.a
AR sound/pci/riptide/built-in.a
CC fs/ext4/block_validity.o
AR sound/pci/rme9652/built-in.a
CC crypto/ahash.o
AR sound/pci/trident/built-in.a
CC io_uring/msg_ring.o
AR sound/pci/ymfpci/built-in.a
AR sound/pci/vx222/built-in.a
AR sound/pci/built-in.a
CC arch/x86/kernel/platform-quirks.o
CC kernel/irq/msi.o
CC crypto/shash.o
CC io_uring/advise.o
CC drivers/gpu/drm/display/drm_dp_dual_mode_helper.o
CC drivers/virtio/virtio_pci_legacy_dev.o
AR lib/dim/built-in.a
CC kernel/dma/mapping.o
CC sound/core/pcm_misc.o
AR lib/xz/built-in.a
CC drivers/acpi/acpica/evrgnini.o
CC fs/hugetlbfs/inode.o
AR sound/pcmcia/vx/built-in.a
AR sound/pcmcia/pdaudiocf/built-in.a
AR sound/pcmcia/built-in.a
CC drivers/pci/rom.o
CC drivers/char/agp/intel-agp.o
CC fs/proc/softirqs.o
CC drivers/char/random.o
CC net/ipv6/netfilter/ip6_tables.o
CC net/ipv6/af_inet6.o
CC security/selinux/ss/policydb.o
MKCAP arch/x86/kernel/cpu/capflags.c
CC sound/core/pcm_memory.o
CC fs/netfs/main.o
CC mm/percpu.o
CC net/ipv4/ip_fragment.o
CC net/ethtool/linkinfo.o
CC net/xfrm/xfrm_hash.o
CC block/blk-timeout.o
HOSTCC drivers/tty/vt/conmakehash
AR drivers/tty/hvc/built-in.a
CC drivers/pci/setup-res.o
CC drivers/char/agp/intel-gtt.o
CC drivers/acpi/acpica/evsci.o
CC io_uring/epoll.o
CC drivers/virtio/virtio_pci_modern.o
CC fs/ext4/dir.o
CC io_uring/statx.o
CC drivers/connector/cn_queue.o
CC fs/proc/namespaces.o
CC net/ipv4/ip_forward.o
CC drivers/gpu/drm/display/drm_dp_helper.o
CC drivers/char/misc.o
CC net/core/sysctl_net_core.o
CC drivers/iommu/iommu-traces.o
CC net/packet/af_packet.o
CC net/netfilter/nfnetlink.o
CC crypto/akcipher.o
AR net/dsa/built-in.a
CC net/ipv6/anycast.o
CC fs/jbd2/recovery.o
CC net/ipv4/netfilter/iptable_mangle.o
CC drivers/acpi/acpica/evxface.o
CC kernel/entry/common.o
CC kernel/irq/affinity.o
CC kernel/irq/matrix.o
CC drivers/acpi/nvs.o
CC lib/bug.o
CC lib/zstd/zstd_common_module.o
CC block/blk-lib.o
CC lib/zstd/common/debug.o
CC mm/slab_common.o
AR kernel/rcu/built-in.a
CC drivers/iommu/iommu-sysfs.o
CC drivers/pci/irq.o
CC net/ipv4/ip_options.o
CC drivers/virtio/virtio_pci_common.o
CC net/ethtool/linkmodes.o
CC sound/core/memalloc.o
CC io_uring/timeout.o
CC net/ipv4/netfilter/ipt_REJECT.o
CC fs/proc/self.o
CC drivers/acpi/acpica/evxfevnt.o
CC fs/ext4/ext4_jbd2.o
CC net/sched/act_api.o
CC lib/zstd/common/entropy_common.o
CC fs/fat/cache.o
AR drivers/char/agp/built-in.a
CC drivers/virtio/virtio_pci_legacy.o
CC drivers/char/virtio_console.o
CC mm/compaction.o
CC drivers/acpi/wakeup.o
CC drivers/connector/connector.o
CC crypto/sig.o
CC drivers/tty/serial/8250/8250_core.o
AR fs/hugetlbfs/built-in.a
CC lib/zstd/common/error_private.o
AR drivers/tty/ipwireless/built-in.a
CC drivers/acpi/acpica/evxfgpe.o
CC drivers/acpi/sleep.o
CC drivers/tty/vt/defkeymap.o
CC lib/zstd/common/fse_decompress.o
CC net/netfilter/nfnetlink_log.o
CC net/ipv6/netfilter/ip6table_filter.o
CC drivers/iommu/dma-iommu.o
CC security/selinux/ss/services.o
CC net/sunrpc/auth_gss/auth_gss.o
CC fs/jbd2/checkpoint.o
CC net/unix/garbage.o
CC block/blk-mq.o
CONMK drivers/tty/vt/consolemap_deftbl.c
CC fs/netfs/misc.o
CC drivers/tty/vt/consolemap_deftbl.o
AR drivers/tty/vt/built-in.a
CC sound/core/pcm_timer.o
CC sound/core/seq_device.o
CC drivers/pci/vpd.o
CC drivers/gpu/drm/ttm/ttm_tt.o
CC drivers/pci/setup-bus.o
CC fs/proc/thread_self.o
CC kernel/entry/syscall_user_dispatch.o
AR net/wireless/tests/built-in.a
CC net/wireless/core.o
CC net/core/dev.o
CC arch/x86/kernel/process_32.o
CC net/xfrm/xfrm_input.o
CC drivers/acpi/acpica/evxfregn.o
CC kernel/dma/direct.o
CC drivers/gpu/drm/ttm/ttm_bo.o
CC drivers/virtio/virtio_pci_admin_legacy_io.o
AR kernel/irq/built-in.a
CC lib/zstd/common/zstd_common.o
CC drivers/base/power/sysfs.o
CC drivers/base/firmware_loader/builtin/main.o
CC fs/fat/dir.o
AR lib/zstd/built-in.a
CC drivers/base/regmap/regmap.o
CC lib/buildid.o
CC net/ethtool/rss.o
CC io_uring/fdinfo.o
CC crypto/kpp.o
CC [M] net/ipv4/netfilter/iptable_nat.o
CC net/ethtool/linkstate.o
CC fs/ext4/extents.o
AR sound/core/built-in.a
CC fs/proc/proc_sysctl.o
CC drivers/acpi/acpica/exconcat.o
AR sound/mips/built-in.a
AR sound/soc/built-in.a
CC drivers/block/loop.o
AR sound/atmel/built-in.a
AR kernel/entry/built-in.a
CC sound/hda/hda_bus_type.o
CC drivers/block/virtio_blk.o
CC drivers/gpu/drm/display/drm_dp_mst_topology.o
CC drivers/connector/cn_proc.o
AR drivers/base/test/built-in.a
CC net/ipv4/ip_output.o
AR drivers/base/firmware_loader/builtin/built-in.a
CC drivers/tty/serial/8250/8250_platform.o
CC drivers/base/firmware_loader/main.o
CC fs/ext4/extents_status.o
CC fs/jbd2/revoke.o
CC fs/jbd2/journal.o
CC io_uring/cancel.o
CC net/sunrpc/clnt.o
CC drivers/base/power/generic_ops.o
CC net/sunrpc/xprt.o
CC drivers/virtio/virtio_input.o
CC net/ipv6/netfilter/ip6table_mangle.o
CC fs/netfs/objects.o
CC drivers/char/hpet.o
CC drivers/iommu/iova.o
CC net/unix/sysctl_net_unix.o
CC drivers/acpi/acpica/exconfig.o
CC kernel/dma/ops_helpers.o
CC lib/clz_tab.o
CC lib/cmdline.o
CC net/netfilter/nf_conntrack_core.o
CC drivers/gpu/drm/ttm/ttm_bo_util.o
CC fs/netfs/read_collect.o
CC drivers/acpi/acpica/exconvrt.o
ASN.1 crypto/rsapubkey.asn1.[ch]
ASN.1 crypto/rsaprivkey.asn1.[ch]
CC crypto/rsa.o
CC lib/cpumask.o
CC sound/hda/hdac_bus.o
CC drivers/base/power/common.o
CC net/sched/sch_fifo.o
CC net/ipv6/netfilter/nf_defrag_ipv6_hooks.o
CC net/ipv6/netfilter/nf_conntrack_reasm.o
CC sound/hda/hdac_device.o
CC drivers/tty/serial/8250/8250_pnp.o
CC net/ethtool/debug.o
AR net/ipv4/netfilter/built-in.a
CC net/wireless/sysfs.o
CC drivers/pci/vc.o
CC drivers/acpi/acpica/excreate.o
CC drivers/base/power/qos.o
CC net/xfrm/xfrm_output.o
AR drivers/base/firmware_loader/built-in.a
CC io_uring/waitid.o
CC drivers/virtio/virtio_dma_buf.o
CC drivers/acpi/device_sysfs.o
CC kernel/dma/remap.o
AR drivers/connector/built-in.a
CC drivers/acpi/device_pm.o
CC fs/fat/fatent.o
CC drivers/tty/serial/serial_core.o
CC fs/netfs/read_pgpriv2.o
AR drivers/iommu/built-in.a
CC security/selinux/ss/conditional.o
CC drivers/acpi/proc.o
AR net/unix/built-in.a
CC sound/hda/hdac_sysfs.o
CC lib/ctype.o
CC crypto/rsa_helper.o
CC lib/dec_and_lock.o
CC net/sunrpc/auth_gss/gss_mech_switch.o
CC drivers/char/nvram.o
CC crypto/rsa-pkcs1pad.o
CC mm/show_mem.o
CC drivers/acpi/acpica/exdebug.o
AR net/packet/built-in.a
AR drivers/block/built-in.a
CC lib/decompress.o
CC drivers/base/power/runtime.o
CC io_uring/register.o
CC fs/proc/proc_net.o
CC drivers/gpu/drm/ttm/ttm_bo_vm.o
CC drivers/tty/serial/8250/8250_rsa.o
CC lib/decompress_bunzip2.o
CC arch/x86/kernel/signal.o
CC net/netfilter/nf_conntrack_standalone.o
AR drivers/virtio/built-in.a
AR kernel/dma/built-in.a
CC drivers/pci/mmap.o
CC net/sched/cls_cgroup.o
CC kernel/module/main.o
CC drivers/gpu/drm/i915/i915_config.o
CC drivers/pci/devres.o
CC drivers/tty/tty_io.o
CC drivers/acpi/acpica/exdump.o
CC drivers/acpi/acpica/exfield.o
CC kernel/module/strict_rwx.o
CC net/ethtool/wol.o
CC arch/x86/kernel/signal_32.o
CC drivers/gpu/drm/i915/i915_driver.o
CC fs/isofs/namei.o
CC sound/hda/hdac_regmap.o
CC fs/isofs/inode.o
CC net/sunrpc/socklib.o
CC fs/netfs/read_retry.o
CC crypto/rsassa-pkcs1.o
CC net/wireless/radiotap.o
CC drivers/tty/serial/8250/8250_port.o
CC drivers/acpi/bus.o
AR drivers/char/built-in.a
CC drivers/acpi/glue.o
CC drivers/gpu/drm/display/drm_dsc_helper.o
CC net/ipv6/netfilter/nf_reject_ipv6.o
CC net/ipv4/ip_sockglue.o
CC drivers/acpi/acpica/exfldio.o
CC arch/x86/kernel/cpu/powerflags.o
CC net/sunrpc/auth_gss/svcauth_gss.o
CC lib/decompress_inflate.o
CC fs/proc/kcore.o
CC drivers/gpu/drm/ttm/ttm_module.o
CC arch/x86/kernel/cpu/topology.o
CC drivers/base/regmap/regcache.o
CC mm/interval_tree.o
CC crypto/acompress.o
CC fs/fat/file.o
CC net/ipv6/ip6_output.o
CC sound/hda/hdac_controller.o
CC drivers/base/power/wakeirq.o
CC security/selinux/ss/mls.o
CC drivers/pci/proc.o
CC block/blk-mq-tag.o
AR fs/jbd2/built-in.a
CC lib/decompress_unlz4.o
CC net/xfrm/xfrm_sysctl.o
CC drivers/tty/n_tty.o
CC security/selinux/ss/context.o
CC net/core/dev_addr_lists.o
CC drivers/acpi/acpica/exmisc.o
CC drivers/tty/serial/8250/8250_dma.o
CC drivers/base/component.o
CC net/sched/ematch.o
CC fs/netfs/read_single.o
CC arch/x86/kernel/cpu/proc.o
CC drivers/gpu/drm/ttm/ttm_execbuf_util.o
CC net/ethtool/features.o
CC drivers/base/power/main.o
CC net/netfilter/nf_conntrack_expect.o
CC net/ipv4/inet_hashtables.o
CC drivers/acpi/scan.o
CC net/ipv6/netfilter/ip6t_ipv6header.o
CC net/wireless/util.o
CC io_uring/truncate.o
CC lib/decompress_unlzma.o
CC drivers/gpu/drm/display/drm_hdcp_helper.o
CC fs/proc/vmcore.o
CC drivers/acpi/acpica/exmutex.o
CC drivers/base/core.o
CC drivers/gpu/drm/i915/i915_drm_client.o
CC lib/decompress_unlzo.o
CC crypto/scompress.o
CC net/netfilter/nf_conntrack_helper.o
CC sound/hda/hdac_stream.o
CC mm/list_lru.o
CC net/netfilter/nf_conntrack_proto.o
CC drivers/base/regmap/regcache-rbtree.o
CC fs/isofs/dir.o
CC kernel/time/time.o
CC drivers/pci/pci-sysfs.o
CC fs/fat/inode.o
CC kernel/time/timer.o
CC net/xfrm/xfrm_replay.o
CC arch/x86/kernel/cpu/feat_ctl.o
CC drivers/gpu/drm/ttm/ttm_range_manager.o
CC net/netfilter/nf_conntrack_proto_generic.o
CC drivers/acpi/acpica/exnames.o
AR net/mac80211/tests/built-in.a
CC net/netlabel/netlabel_user.o
CC net/mac80211/main.o
CC block/blk-stat.o
CC net/sunrpc/auth_gss/gss_rpc_upcall.o
CC net/core/dst.o
CC fs/netfs/rolling_buffer.o
CC net/wireless/reg.o
CC security/selinux/netlabel.o
CC fs/ext4/file.o
CC drivers/tty/serial/serial_base_bus.o
CC net/ethtool/privflags.o
CC drivers/gpu/drm/display/drm_hdmi_helper.o
CC kernel/module/kmod.o
AR net/sched/built-in.a
CC kernel/module/tree_lookup.o
CC drivers/gpu/drm/display/drm_scdc_helper.o
CC arch/x86/kernel/cpu/intel.o
CC lib/decompress_unxz.o
CC drivers/acpi/acpica/exoparg1.o
CC io_uring/memmap.o
CC mm/workingset.o
CC drivers/base/regmap/regcache-flat.o
CC fs/isofs/util.o
CC crypto/algboss.o
CC net/rfkill/core.o
CC drivers/tty/serial/serial_ctrl.o
CC drivers/tty/serial/8250/8250_dwlib.o
CC fs/proc/kmsg.o
CC sound/hda/array.o
CC drivers/gpu/drm/ttm/ttm_resource.o
CC net/rfkill/input.o
CC net/ipv6/netfilter/ip6t_REJECT.o
CC fs/isofs/rock.o
CC drivers/gpu/drm/i915/i915_getparam.o
AR drivers/gpu/drm/renesas/rcar-du/built-in.a
AR drivers/gpu/drm/renesas/rz-du/built-in.a
CC block/blk-mq-sysfs.o
AR drivers/gpu/drm/renesas/built-in.a
CC block/blk-mq-cpumap.o
CC kernel/futex/core.o
CC drivers/acpi/acpica/exoparg2.o
CC drivers/base/power/wakeup.o
CC drivers/pci/slot.o
CC lib/decompress_unzstd.o
CC net/netlabel/netlabel_kapi.o
CC arch/x86/kernel/traps.o
CC net/ipv6/ip6_input.o
CC fs/netfs/write_collect.o
CC drivers/tty/tty_ioctl.o
CC drivers/base/regmap/regcache-maple.o
CC arch/x86/kernel/cpu/tsx.o
CC net/sunrpc/auth_gss/gss_rpc_xdr.o
CC net/netfilter/nf_conntrack_proto_tcp.o
CC drivers/base/regmap/regmap-debugfs.o
CC fs/ext4/fsmap.o
CC net/netfilter/nf_conntrack_proto_udp.o
CC fs/proc/page.o
CC kernel/module/kallsyms.o
CC net/xfrm/xfrm_device.o
CC io_uring/alloc_cache.o
AR drivers/gpu/drm/display/built-in.a
CC net/netfilter/nf_conntrack_proto_icmp.o
CC kernel/time/hrtimer.o
CC mm/debug.o
CC kernel/futex/syscalls.o
CC drivers/tty/serial/8250/8250_pcilib.o
CC net/ipv4/inet_timewait_sock.o
CC fs/fat/misc.o
CC net/mac80211/status.o
CC net/ethtool/rings.o
CC sound/hda/hdmi_chmap.o
CC net/ethtool/channels.o
CC drivers/acpi/acpica/exoparg3.o
CC crypto/testmgr.o
AR net/rfkill/built-in.a
AR security/selinux/built-in.a
AR sound/x86/built-in.a
AR security/built-in.a
AR drivers/gpu/drm/omapdrm/built-in.a
AR drivers/gpu/drm/tilcdc/built-in.a
CC net/xfrm/xfrm_nat_keepalive.o
CC arch/x86/kernel/cpu/intel_epb.o
CC kernel/module/procfs.o
CC lib/dump_stack.o
CC drivers/tty/tty_ldisc.o
CC kernel/time/sleep_timeout.o
CC drivers/gpu/drm/ttm/ttm_pool.o
CC fs/isofs/export.o
CC block/blk-mq-sched.o
CC drivers/pci/pci-acpi.o
CC drivers/gpu/drm/i915/i915_ioctl.o
CC drivers/tty/serial/8250/8250_early.o
CC net/ethtool/coalesce.o
CC drivers/acpi/acpica/exoparg6.o
CC drivers/misc/eeprom/eeprom_93cx6.o
CC io_uring/io-wq.o
AR drivers/base/regmap/built-in.a
CC net/wireless/scan.o
CC net/wireless/nl80211.o
AR net/ipv6/netfilter/built-in.a
CC net/netlabel/netlabel_domainhash.o
AR fs/proc/built-in.a
CC arch/x86/kernel/idt.o
CC drivers/tty/serial/serial_port.o
CC net/9p/mod.o
CC arch/x86/kernel/cpu/amd.o
CC net/9p/client.o
CC mm/gup.o
CC crypto/cmac.o
CC fs/fat/nfs.o
CC fs/fat/namei_vfat.o
CC fs/netfs/write_issue.o
CC drivers/acpi/acpica/exprep.o
CC drivers/base/power/wakeup_stats.o
CC kernel/module/sysfs.o
CC fs/nfs/client.o
CC kernel/futex/pi.o
CC lib/earlycpio.o
CC net/sunrpc/auth_gss/trace.o
CC sound/hda/trace.o
CC fs/isofs/joliet.o
CC drivers/tty/serial/earlycon.o
AR drivers/misc/eeprom/built-in.a
CC drivers/gpu/drm/ttm/ttm_device.o
AR drivers/misc/cb710/built-in.a
AR drivers/misc/lis3lv02d/built-in.a
CC lib/extable.o
CC drivers/tty/serial/8250/8250_exar.o
AR drivers/misc/cardreader/built-in.a
AR drivers/misc/keba/built-in.a
CC net/ipv4/inet_connection_sock.o
AR drivers/misc/built-in.a
CC net/ipv6/addrconf.o
CC net/mac80211/driver-ops.o
CC net/sunrpc/xprtsock.o
CC net/netlabel/netlabel_addrlist.o
AR drivers/mfd/built-in.a
CC crypto/hmac.o
CC drivers/gpu/drm/i915/i915_irq.o
CC fs/exportfs/expfs.o
CC drivers/acpi/acpica/exregion.o
CC drivers/tty/serial/8250/8250_lpss.o
CC drivers/gpu/drm/virtio/virtgpu_drv.o
CC mm/mmap_lock.o
AR drivers/gpu/drm/imx/built-in.a
CC io_uring/futex.o
CC net/wireless/mlme.o
CC kernel/futex/requeue.o
CC kernel/time/timekeeping.o
CC block/ioctl.o
CC drivers/base/power/trace.o
CC fs/ext4/fsync.o
CC net/xfrm/xfrm_algo.o
CC net/netfilter/nf_conntrack_extend.o
CC lib/flex_proportions.o
CC net/netfilter/nf_conntrack_acct.o
CC drivers/pci/iomap.o
CC fs/netfs/write_retry.o
AR kernel/module/built-in.a
CC fs/isofs/compress.o
CC drivers/gpu/drm/ttm/ttm_sys_manager.o
CC net/ethtool/pause.o
CC drivers/tty/serial/8250/8250_mid.o
CC drivers/acpi/acpica/exresnte.o
CC arch/x86/kernel/cpu/hygon.o
CC crypto/crypto_null.o
CC net/ipv6/addrlabel.o
CC net/xfrm/xfrm_user.o
CC net/core/netevent.o
CC sound/hda/hdac_component.o
CC lib/idr.o
AR fs/exportfs/built-in.a
CC net/ipv4/tcp.o
CC drivers/acpi/mipi-disco-img.o
CC drivers/gpu/drm/i915/i915_mitigations.o
AR drivers/gpu/drm/panel/built-in.a
CC fs/ext4/hash.o
CC drivers/acpi/acpica/exresolv.o
CC drivers/acpi/acpica/exresop.o
CC drivers/gpu/drm/ttm/ttm_agp_backend.o
CC kernel/futex/waitwake.o
CC drivers/gpu/drm/virtio/virtgpu_kms.o
CC net/netfilter/nf_conntrack_seqadj.o
CC net/core/neighbour.o
CC arch/x86/kernel/cpu/centaur.o
CC fs/fat/namei_msdos.o
AR drivers/base/power/built-in.a
CC drivers/pci/quirks.o
CC drivers/base/bus.o
CC drivers/acpi/resource.o
CC net/netlabel/netlabel_mgmt.o
CC crypto/md5.o
CC io_uring/napi.o
CC block/genhd.o
CC lib/iomem_copy.o
CC drivers/tty/serial/8250/8250_pci.o
CC net/ipv4/tcp_input.o
CC arch/x86/kernel/cpu/transmeta.o
AR fs/isofs/built-in.a
CC drivers/acpi/acpica/exserial.o
AR sound/xen/built-in.a
CC kernel/time/ntp.o
CC drivers/gpu/drm/virtio/virtgpu_gem.o
CC net/netfilter/nf_conntrack_proto_icmpv6.o
CC net/dns_resolver/dns_key.o
CC net/ethtool/eee.o
CC lib/irq_regs.o
CC fs/nfs/dir.o
AR fs/netfs/built-in.a
CC sound/hda/hdac_i915.o
CC sound/hda/intel-dsp-config.o
CC net/9p/error.o
CC fs/nfs/file.o
AR drivers/gpu/drm/bridge/analogix/built-in.a
AR drivers/gpu/drm/hisilicon/built-in.a
AR drivers/gpu/drm/bridge/cadence/built-in.a
AR drivers/nfc/built-in.a
CC net/9p/protocol.o
AR drivers/gpu/drm/bridge/imx/built-in.a
CC arch/x86/kernel/irq.o
CC net/wireless/ibss.o
CC drivers/gpu/drm/virtio/virtgpu_vram.o
AR drivers/gpu/drm/bridge/synopsys/built-in.a
AR drivers/gpu/drm/ttm/built-in.a
AR drivers/gpu/drm/bridge/built-in.a
CC lib/is_single_threaded.o
CC fs/nfs/getroot.o
CC kernel/cgroup/cgroup.o
CC fs/ext4/ialloc.o
CC crypto/sha256_generic.o
AR kernel/futex/built-in.a
CC kernel/cgroup/rstat.o
CC drivers/acpi/acpica/exstore.o
CC mm/highmem.o
CC fs/ext4/indirect.o
CC net/ethtool/tsinfo.o
CC net/dns_resolver/dns_query.o
CC drivers/base/dd.o
CC drivers/gpu/drm/i915/i915_module.o
CC fs/ext4/inline.o
AR drivers/dax/hmem/built-in.a
AR drivers/dax/built-in.a
CC net/handshake/alert.o
CC arch/x86/kernel/cpu/zhaoxin.o
CC drivers/gpu/drm/virtio/virtgpu_display.o
AR fs/fat/built-in.a
CC lib/klist.o
CC net/netlabel/netlabel_unlabeled.o
CC net/sunrpc/auth_gss/gss_krb5_mech.o
CC net/sunrpc/auth_gss/gss_krb5_seal.o
CC drivers/gpu/drm/i915/i915_params.o
CC drivers/acpi/acpica/exstoren.o
CC drivers/tty/serial/8250/8250_pericom.o
CC sound/hda/intel-nhlt.o
CC kernel/time/clocksource.o
CC net/handshake/genl.o
CC crypto/sha512_generic.o
CC arch/x86/kernel/cpu/vortex.o
CC lib/kobject.o
CC net/handshake/netlink.o
CC net/wireless/sme.o
CC drivers/pci/pci-label.o
CC net/9p/trans_common.o
CC net/mac80211/sta_info.o
CC block/ioprio.o
AR net/dns_resolver/built-in.a
CC drivers/acpi/acpica/exstorob.o
CC block/badblocks.o
CC drivers/dma-buf/dma-buf.o
CC net/netfilter/nf_conntrack_netlink.o
AR sound/virtio/built-in.a
CC net/ipv4/tcp_output.o
CC sound/hda/intel-sdw-acpi.o
CC arch/x86/kernel/cpu/perfctr-watchdog.o
AR io_uring/built-in.a
CC mm/memory.o
CC net/wireless/chan.o
CC drivers/gpu/drm/virtio/virtgpu_vq.o
CC drivers/base/syscore.o
CC net/netlabel/netlabel_cipso_v4.o
AR drivers/tty/serial/8250/built-in.a
CC kernel/time/jiffies.o
AR drivers/tty/serial/built-in.a
CC drivers/tty/tty_buffer.o
CC crypto/sha3_generic.o
CC drivers/acpi/acpica/exsystem.o
CC net/9p/trans_fd.o
CC net/ethtool/cabletest.o
CC lib/kobject_uevent.o
CC net/sunrpc/auth_gss/gss_krb5_unseal.o
CC drivers/pci/vgaarb.o
CC net/mac80211/wep.o
CC block/blk-rq-qos.o
CC kernel/trace/trace_clock.o
CC fs/nfs/inode.o
CC drivers/gpu/drm/i915/i915_pci.o
CC net/9p/trans_virtio.o
CC net/handshake/request.o
AR sound/hda/built-in.a
CC sound/sound_core.o
CC kernel/trace/ring_buffer.o
AR net/xfrm/built-in.a
CC lib/logic_pio.o
CC kernel/time/timer_list.o
CC lib/maple_tree.o
CC drivers/acpi/acpica/extrace.o
CC net/sunrpc/sched.o
CC mm/mincore.o
CC net/ethtool/tunnels.o
CC crypto/ecb.o
CC arch/x86/kernel/irq_32.o
CC arch/x86/kernel/cpu/vmware.o
AR drivers/gpu/drm/mxsfb/built-in.a
CC fs/ext4/inode.o
CC net/ipv4/tcp_timer.o
CC net/ipv4/tcp_ipv4.o
AR drivers/gpu/drm/tiny/built-in.a
CC net/netlabel/netlabel_calipso.o
CC fs/lockd/clntlock.o
CC fs/lockd/clntproc.o
CC drivers/tty/tty_port.o
CC sound/last.o
CC drivers/acpi/acpica/exutils.o
CC drivers/base/driver.o
CC net/mac80211/aead_api.o
CC net/core/rtnetlink.o
CC drivers/dma-buf/dma-fence.o
CC block/disk-events.o
CC crypto/cbc.o
CC fs/lockd/clntxdr.o
CC net/sunrpc/auth_gss/gss_krb5_wrap.o
CC kernel/time/timeconv.o
CC net/ipv6/route.o
CC net/devres.o
CC drivers/gpu/drm/virtio/virtgpu_fence.o
CC fs/lockd/host.o
CC kernel/time/timecounter.o
CC net/mac80211/wpa.o
AR sound/built-in.a
CC block/blk-ia-ranges.o
CC block/early-lookup.o
CC drivers/acpi/acpica/hwacpi.o
CC drivers/base/class.o
AR drivers/pci/built-in.a
CC drivers/gpu/drm/i915/i915_scatterlist.o
CC arch/x86/kernel/cpu/hypervisor.o
CC crypto/ctr.o
CC net/socket.o
CC net/sysctl_net.o
CC net/ethtool/fec.o
CC net/ethtool/eeprom.o
CC fs/nls/nls_base.o
CC net/ethtool/stats.o
CC drivers/tty/tty_mutex.o
AR net/9p/built-in.a
CC net/netfilter/nf_conntrack_ftp.o
CC kernel/time/alarmtimer.o
CC arch/x86/kernel/cpu/mshyperv.o
CC drivers/acpi/acpica/hwesleep.o
CC net/handshake/tlshd.o
CC drivers/gpu/drm/virtio/virtgpu_object.o
AR net/netlabel/built-in.a
AR fs/unicode/built-in.a
CC net/sunrpc/auth.o
CC fs/autofs/init.o
CC arch/x86/kernel/dumpstack_32.o
CC crypto/gcm.o
CC arch/x86/kernel/cpu/debugfs.o
CC fs/nls/nls_cp437.o
CC arch/x86/kernel/cpu/bus_lock.o
CC drivers/acpi/acpica/hwgpe.o
CC drivers/tty/tty_ldsem.o
CC block/bounce.o
AR drivers/cxl/core/built-in.a
AR drivers/cxl/built-in.a
AR drivers/gpu/drm/xlnx/built-in.a
CC kernel/time/posix-timers.o
CC drivers/base/platform.o
CC net/handshake/trace.o
CC drivers/tty/tty_baudrate.o
CC drivers/acpi/acpica/hwregs.o
CC drivers/gpu/drm/i915/i915_switcheroo.o
CC block/bsg.o
CC fs/nfs/super.o
CC drivers/dma-buf/dma-fence-array.o
CC net/sunrpc/auth_gss/gss_krb5_crypto.o
CC fs/nfs/io.o
CC fs/nls/nls_ascii.o
CC drivers/macintosh/mac_hid.o
CC fs/autofs/inode.o
CC fs/lockd/svc.o
CC mm/mlock.o
CC fs/9p/vfs_super.o
AR drivers/scsi/pcmcia/built-in.a
CC drivers/gpu/drm/virtio/virtgpu_debugfs.o
CC drivers/scsi/scsi.o
CC net/wireless/ethtool.o
CC fs/autofs/root.o
CC net/mac80211/scan.o
CC drivers/gpu/drm/virtio/virtgpu_plane.o
CC drivers/acpi/acpica/hwsleep.o
CC net/sunrpc/auth_gss/gss_krb5_keys.o
CC drivers/tty/tty_jobctrl.o
CC fs/nls/nls_iso8859-1.o
CC net/ethtool/phc_vclocks.o
CC drivers/dma-buf/dma-fence-chain.o
CC net/ethtool/mm.o
CC net/core/utils.o
CC lib/memcat_p.o
CC crypto/ccm.o
CC mm/mmap.o
CC net/core/link_watch.o
CC kernel/trace/trace.o
CC arch/x86/kernel/cpu/capflags.o
AR arch/x86/kernel/cpu/built-in.a
CC net/netfilter/nf_conntrack_irc.o
CC arch/x86/kernel/time.o
CC drivers/acpi/acpica/hwvalid.o
AR drivers/macintosh/built-in.a
CC kernel/cgroup/namespace.o
CC fs/autofs/symlink.o
CC block/blk-cgroup.o
CC fs/nls/nls_utf8.o
CC drivers/gpu/drm/i915/i915_sysfs.o
CC net/ipv6/ip6_fib.o
CC net/wireless/mesh.o
CC fs/9p/vfs_inode.o
CC net/sunrpc/auth_null.o
CC crypto/aes_generic.o
CC drivers/base/cpu.o
CC fs/ext4/ioctl.o
CC drivers/gpu/drm/virtio/virtgpu_ioctl.o
CC kernel/bpf/core.o
CC drivers/dma-buf/dma-fence-unwrap.o
CC arch/x86/kernel/ioport.o
CC kernel/time/posix-cpu-timers.o
CC drivers/acpi/acpica/hwxface.o
CC drivers/tty/n_null.o
CC kernel/cgroup/cgroup-v1.o
CC kernel/cgroup/freezer.o
CC net/ipv4/tcp_minisocks.o
CC kernel/cgroup/legacy_freezer.o
AR fs/nls/built-in.a
CC kernel/trace/trace_output.o
CC net/netfilter/nf_conntrack_sip.o
AR net/handshake/built-in.a
CC kernel/time/posix-clock.o
CC fs/lockd/svclock.o
CC drivers/acpi/acpi_processor.o
CC fs/autofs/waitq.o
CC mm/mmu_gather.o
CC net/ipv4/tcp_cong.o
CC fs/nfs/direct.o
CC drivers/dma-buf/dma-resv.o
CC drivers/acpi/acpica/hwxfsleep.o
CC drivers/gpu/drm/i915/i915_utils.o
CC net/core/filter.o
CC drivers/scsi/hosts.o
AR net/sunrpc/auth_gss/built-in.a
CC net/ethtool/module.o
CC kernel/events/core.o
CC drivers/tty/pty.o
CC drivers/gpu/drm/virtio/virtgpu_prime.o
CC fs/ext4/mballoc.o
CC net/ethtool/cmis_fw_update.o
CC crypto/authenc.o
CC drivers/base/firmware.o
CC drivers/acpi/acpica/hwpci.o
CC kernel/events/ring_buffer.o
CC arch/x86/kernel/dumpstack.o
CC fs/9p/vfs_inode_dotl.o
CC drivers/acpi/processor_core.o
CC drivers/scsi/scsi_ioctl.o
CC mm/mprotect.o
CC drivers/base/init.o
CC net/ipv4/tcp_metrics.o
CC drivers/ata/libata-core.o
AR drivers/nvme/common/built-in.a
CC fs/lockd/svcshare.o
AR drivers/nvme/host/built-in.a
CC net/ipv4/tcp_fastopen.o
AR drivers/nvme/target/built-in.a
AR drivers/nvme/built-in.a
CC fs/lockd/svcproc.o
CC drivers/acpi/acpica/nsaccess.o
CC kernel/time/itimer.o
CC fs/autofs/expire.o
CC drivers/ata/libata-scsi.o
CC block/blk-ioprio.o
CC drivers/acpi/acpica/nsalloc.o
CC drivers/dma-buf/sync_file.o
CC drivers/acpi/acpica/nsarguments.o
CC drivers/gpu/drm/i915/intel_clock_gating.o
CC kernel/cgroup/pids.o
CC drivers/tty/tty_audit.o
CC drivers/gpu/drm/virtio/virtgpu_trace_points.o
CC crypto/authencesn.o
CC drivers/ata/libata-eh.o
CC drivers/ata/libata-transport.o
CC drivers/base/map.o
CC arch/x86/kernel/nmi.o
CC net/mac80211/offchannel.o
CC kernel/trace/trace_seq.o
CC kernel/time/clockevents.o
CC net/sunrpc/auth_tls.o
CC fs/autofs/dev-ioctl.o
AR drivers/gpu/drm/gud/built-in.a
CC net/ipv6/ipv6_sockglue.o
CC drivers/acpi/processor_pdc.o
CC net/ipv6/ndisc.o
CC net/ethtool/cmis_cdb.o
CC drivers/acpi/acpica/nsconvert.o
CC net/mac80211/ht.o
CC drivers/gpu/drm/i915/intel_cpu_info.o
CC drivers/scsi/scsicam.o
CC fs/9p/vfs_addr.o
CC drivers/tty/sysrq.o
CC drivers/base/devres.o
CC mm/mremap.o
CC fs/nfs/pagelist.o
AR fs/hostfs/built-in.a
AR drivers/dma-buf/built-in.a
CC fs/debugfs/inode.o
CC block/blk-iolatency.o
AR drivers/net/phy/mediatek/built-in.a
AR drivers/net/phy/qcom/built-in.a
CC drivers/net/phy/realtek/realtek_main.o
CC kernel/cgroup/rdma.o
CC arch/x86/kernel/ldt.o
CC drivers/net/phy/mdio-boardinfo.o
CC fs/nfs/read.o
CC fs/tracefs/inode.o
CC net/netfilter/nf_nat_core.o
CC net/netfilter/nf_nat_proto.o
CC drivers/net/phy/realtek/realtek_hwmon.o
CC drivers/acpi/acpica/nsdump.o
CC net/ethtool/pse-pd.o
CC drivers/gpu/drm/virtio/virtgpu_submit.o
CC net/ipv6/udp.o
CC kernel/time/tick-common.o
CC arch/x86/kernel/setup.o
CC fs/lockd/svcsubs.o
CC crypto/lzo.o
CC fs/9p/vfs_file.o
CC drivers/scsi/scsi_error.o
CC drivers/acpi/acpica/nseval.o
CC drivers/firewire/init_ohci1394_dma.o
AR fs/autofs/built-in.a
CC net/sunrpc/auth_unix.o
CC lib/nmi_backtrace.o
CC drivers/gpu/drm/i915/intel_device_info.o
CC net/ipv4/tcp_rate.o
CC net/wireless/ap.o
CC net/ethtool/plca.o
CC drivers/base/attribute_container.o
CC crypto/lzo-rle.o
CC kernel/cgroup/cpuset.o
AR kernel/bpf/built-in.a
CC net/ipv6/udplite.o
AR drivers/tty/built-in.a
CC [M] fs/efivarfs/inode.o
CC [M] fs/efivarfs/file.o
CC fs/open.o
CC drivers/acpi/acpica/nsinit.o
CC fs/debugfs/file.o
CC block/blk-iocost.o
CC net/ethtool/phy.o
CC mm/msync.o
CC drivers/scsi/scsi_lib.o
CC fs/tracefs/event_inode.o
AR drivers/gpu/drm/virtio/built-in.a
CC fs/nfs/symlink.o
AR drivers/firewire/built-in.a
CC net/wireless/trace.o
CC drivers/base/transport_class.o
CC lib/objpool.o
AR drivers/net/phy/realtek/built-in.a
CC drivers/net/phy/stubs.o
CC fs/lockd/mon.o
CC block/mq-deadline.o
CC fs/9p/vfs_dir.o
CC crypto/rng.o
CC drivers/ata/libata-trace.o
CC drivers/acpi/acpica/nsload.o
CC kernel/time/tick-broadcast.o
CC kernel/trace/trace_stat.o
CC drivers/gpu/drm/i915/intel_memory_region.o
CC net/mac80211/agg-tx.o
CC arch/x86/kernel/x86_init.o
CC net/ipv4/tcp_recovery.o
CC [M] fs/efivarfs/super.o
CC fs/ext4/migrate.o
CC drivers/base/topology.o
CC net/sunrpc/svc.o
CC fs/read_write.o
CC drivers/acpi/acpica/nsnames.o
CC lib/plist.o
CC drivers/cdrom/cdrom.o
CC drivers/scsi/constants.o
CC mm/page_vma_mapped.o
CC net/netfilter/nf_nat_helper.o
CC lib/radix-tree.o
CC arch/x86/kernel/i8259.o
CC net/ethtool/tsconfig.o
CC drivers/scsi/scsi_lib_dma.o
CC block/kyber-iosched.o
CC drivers/acpi/ec.o
CC fs/file_table.o
CC lib/ratelimit.o
CC fs/ext4/mmp.o
CC fs/9p/vfs_dentry.o
CC kernel/time/tick-broadcast-hrtimer.o
AR fs/tracefs/built-in.a
CC arch/x86/kernel/irqinit.o
CC kernel/events/callchain.o
AR fs/debugfs/built-in.a
CC kernel/cgroup/misc.o
CC drivers/net/phy/mdio_devres.o
CC net/ipv4/tcp_ulp.o
CC drivers/acpi/acpica/nsobject.o
CC crypto/drbg.o
CC [M] fs/efivarfs/vars.o
CC fs/nfs/unlink.o
CC kernel/trace/trace_printk.o
CC net/wireless/ocb.o
CC net/ipv6/raw.o
CC drivers/base/container.o
CC drivers/acpi/dock.o
CC net/mac80211/agg-rx.o
CC kernel/time/tick-oneshot.o
AR drivers/gpu/drm/solomon/built-in.a
CC mm/pagewalk.o
AR drivers/auxdisplay/built-in.a
CC fs/ext4/move_extent.o
CC drivers/gpu/drm/i915/intel_pcode.o
CC drivers/gpu/drm/i915/intel_region_ttm.o
CC block/blk-mq-debugfs.o
CC fs/lockd/trace.o
CC drivers/acpi/acpica/nsparse.o
CC kernel/cgroup/debug.o
CC kernel/fork.o
CC drivers/pcmcia/cs.o
CC fs/9p/v9fs.o
CC drivers/usb/common/common.o
CC drivers/input/serio/serio.o
CC drivers/ata/libata-sata.o
CC lib/rbtree.o
CC drivers/base/property.o
CC drivers/base/cacheinfo.o
CC net/ipv6/icmp.o
CC drivers/net/phy/phy.o
CC fs/nfs/write.o
CC drivers/scsi/scsi_scan.o
CC kernel/time/tick-sched.o
AR net/ethtool/built-in.a
GEN drivers/scsi/scsi_devinfo_tbl.c
CC net/core/sock_diag.o
CC fs/lockd/xdr.o
CC arch/x86/kernel/jump_label.o
CC drivers/acpi/acpica/nspredef.o
LD [M] fs/efivarfs/efivarfs.o
CC drivers/base/swnode.o
CC drivers/usb/core/usb.o
CC drivers/input/serio/i8042.o
CC net/netfilter/nf_nat_masquerade.o
CC crypto/jitterentropy.o
CC kernel/trace/pid_list.o
AR drivers/usb/phy/built-in.a
CC kernel/exec_domain.o
CC crypto/jitterentropy-kcapi.o
CC lib/seq_buf.o
CC drivers/acpi/acpica/nsprepkg.o
CC net/ipv4/tcp_offload.o
AR kernel/cgroup/built-in.a
CC kernel/time/timer_migration.o
CC [M] drivers/gpu/drm/scheduler/sched_main.o
CC block/blk-pm.o
CC drivers/usb/common/debug.o
CC net/mac80211/vht.o
CC fs/lockd/clnt4xdr.o
CC fs/9p/fid.o
CC net/wireless/pmsr.o
CC mm/pgtable-generic.o
CC fs/ext4/namei.o
CC drivers/base/auxiliary.o
AR drivers/usb/common/built-in.a
AR drivers/cdrom/built-in.a
CC drivers/pcmcia/socket_sysfs.o
CC net/sunrpc/svcsock.o
CC fs/nfs/namespace.o
CC kernel/panic.o
CC drivers/gpu/drm/i915/intel_runtime_pm.o
CC fs/ext4/page-io.o
CC arch/x86/kernel/irq_work.o
CC crypto/ghash-generic.o
CC drivers/acpi/acpica/nsrepair.o
CC drivers/ata/libata-sff.o
CC net/core/dev_ioctl.o
CC lib/siphash.o
CC drivers/acpi/pci_root.o
CC drivers/usb/core/hub.o
CC net/ipv4/tcp_plb.o
CC kernel/time/vsyscall.o
CC fs/ext4/readpage.o
CC kernel/trace/trace_sched_switch.o
CC drivers/input/serio/serport.o
CC net/core/tso.o
CC block/holder.o
CC drivers/input/keyboard/atkbd.o
CC crypto/hash_info.o
CC drivers/pcmcia/cardbus.o
CC drivers/base/devtmpfs.o
CC crypto/rsapubkey.asn1.o
GEN net/wireless/shipped-certs.c
CC drivers/acpi/acpica/nsrepair2.o
CC fs/9p/xattr.o
CC crypto/rsaprivkey.asn1.o
CC drivers/scsi/scsi_devinfo.o
AR crypto/built-in.a
CC kernel/events/hw_breakpoint.o
CC net/ipv4/datagram.o
CC lib/string.o
CC kernel/trace/trace_nop.o
CC net/core/sock_reuseport.o
CC mm/rmap.o
HOSTCC drivers/gpu/drm/xe/xe_gen_wa_oob
CC net/mac80211/he.o
CC drivers/ata/libata-pmp.o
CC net/netfilter/nf_nat_ftp.o
CC net/ipv6/mcast.o
CC drivers/net/phy/phy-c45.o
CC lib/timerqueue.o
CC net/ipv4/raw.o
CC arch/x86/kernel/probe_roms.o
GEN xe_wa_oob.c xe_wa_oob.h
CC [M] drivers/gpu/drm/xe/xe_bb.o
CC fs/nfs/mount_clnt.o
CC drivers/input/serio/libps2.o
CC drivers/scsi/scsi_sysctl.o
CC fs/lockd/xdr4.o
CC drivers/acpi/acpica/nssearch.o
CC lib/union_find.o
CC net/ipv6/reassembly.o
CC drivers/gpu/drm/i915/intel_sbi.o
CC lib/vsprintf.o
CC drivers/pcmcia/ds.o
AR block/built-in.a
CC [M] drivers/gpu/drm/scheduler/sched_fence.o
CC fs/super.o
CC drivers/usb/core/hcd.o
AR drivers/net/pse-pd/built-in.a
CC net/netfilter/nf_nat_irc.o
AR fs/9p/built-in.a
CC mm/vmalloc.o
CC net/sunrpc/svcauth.o
CC drivers/gpu/drm/drm_atomic.o
CC net/ipv6/tcp_ipv6.o
CC drivers/acpi/acpica/nsutils.o
CC net/mac80211/s1g.o
CC drivers/base/module.o
CC kernel/time/timekeeping_debug.o
CC drivers/usb/core/urb.o
CC net/netfilter/nf_nat_sip.o
CC net/core/fib_notifier.o
CC kernel/trace/blktrace.o
AR drivers/input/keyboard/built-in.a
CC drivers/input/mouse/psmouse-base.o
AR drivers/input/joystick/built-in.a
CC kernel/trace/trace_events.o
CC drivers/rtc/lib.o
CC drivers/scsi/scsi_proc.o
CC [M] drivers/gpu/drm/scheduler/sched_entity.o
CC arch/x86/kernel/sys_ia32.o
AR drivers/input/serio/built-in.a
CC kernel/time/namespace.o
CC [M] drivers/gpu/drm/xe/xe_bo.o
CC drivers/base/auxiliary_sysfs.o
CC fs/char_dev.o
CC kernel/events/uprobes.o
CC fs/stat.o
CC drivers/acpi/acpica/nswalk.o
CC drivers/acpi/acpica/nsxfeval.o
CC fs/ext4/resize.o
CC fs/lockd/svc4proc.o
CC drivers/net/mdio/acpi_mdio.o
CC drivers/ata/libata-acpi.o
CC drivers/gpu/drm/i915/intel_step.o
CC mm/vma.o
CC fs/nfs/nfstrace.o
CC kernel/cpu.o
CC drivers/usb/mon/mon_main.o
CC drivers/rtc/class.o
CC drivers/pcmcia/pcmcia_resource.o
CC drivers/net/phy/phy-core.o
CC drivers/base/devcoredump.o
CC drivers/rtc/interface.o
LD [M] drivers/gpu/drm/scheduler/gpu-sched.o
CC kernel/trace/trace_export.o
CC [M] drivers/gpu/drm/xe/xe_bo_evict.o
CC kernel/exit.o
CC drivers/acpi/acpica/nsxfname.o
CC drivers/usb/mon/mon_stat.o
CC drivers/scsi/scsi_debugfs.o
CC arch/x86/kernel/ksysfs.o
CC arch/x86/kernel/bootflag.o
AR kernel/time/built-in.a
CC net/core/xdp.o
CC kernel/trace/trace_event_perf.o
CC net/netfilter/x_tables.o
CC net/ipv4/udp.o
CC fs/ext4/super.o
CC drivers/net/mdio/fwnode_mdio.o
CC mm/process_vm_access.o
AR drivers/net/pcs/built-in.a
CC drivers/usb/host/pci-quirks.o
CC fs/nfs/export.o
CC drivers/input/mouse/synaptics.o
CC drivers/base/platform-msi.o
CC drivers/acpi/acpica/nsxfobj.o
CC net/ipv4/udplite.o
CC net/sunrpc/svcauth_unix.o
CC kernel/softirq.o
CC drivers/gpu/drm/i915/intel_uncore.o
CC drivers/base/physical_location.o
CC fs/lockd/procfs.o
CC drivers/usb/mon/mon_text.o
CC drivers/net/phy/phy_device.o
CC drivers/acpi/pci_link.o
CC drivers/ata/libata-pata-timings.o
CC kernel/trace/trace_events_filter.o
CC drivers/usb/core/message.o
CC net/ipv6/ping.o
CC arch/x86/kernel/e820.o
CC drivers/i2c/algos/i2c-algo-bit.o
CC drivers/scsi/scsi_trace.o
CC drivers/i2c/busses/i2c-i801.o
AR drivers/i2c/muxes/built-in.a
CC mm/page_alloc.o
CC drivers/acpi/acpica/psargs.o
CC net/netfilter/xt_tcpudp.o
CC fs/nfs/sysfs.o
CC drivers/scsi/scsi_logging.o
CC net/mac80211/ibss.o
CC drivers/pcmcia/cistpl.o
CC drivers/base/trace.o
CC net/wireless/shipped-certs.o
CC drivers/usb/class/usblp.o
AR drivers/net/mdio/built-in.a
CC drivers/usb/storage/scsiglue.o
AR drivers/input/tablet/built-in.a
CC fs/exec.o
AR kernel/events/built-in.a
CC net/ipv4/udp_offload.o
CC drivers/usb/host/ehci-hcd.o
AR fs/lockd/built-in.a
CC drivers/usb/host/ehci-pci.o
CC drivers/acpi/acpica/psloop.o
CC drivers/rtc/nvmem.o
CC mm/page_frag_cache.o
AR drivers/net/ethernet/3com/built-in.a
CC lib/win_minmax.o
CC drivers/net/ethernet/8390/ne2k-pci.o
CC drivers/ata/ahci.o
CC [M] drivers/gpu/drm/xe/xe_devcoredump.o
AR drivers/net/ethernet/adaptec/built-in.a
AR drivers/usb/misc/built-in.a
CC drivers/usb/mon/mon_bin.o
CC drivers/input/mouse/focaltech.o
CC net/netfilter/xt_CONNSECMARK.o
CC drivers/gpu/drm/drm_atomic_uapi.o
AR drivers/input/touchscreen/built-in.a
AR drivers/input/misc/built-in.a
CC net/core/flow_offload.o
CC drivers/net/ethernet/8390/8390.o
AR drivers/net/ethernet/agere/built-in.a
CC net/netfilter/xt_NFLOG.o
AR drivers/i2c/algos/built-in.a
CC net/ipv6/exthdrs.o
CC fs/ext4/symlink.o
CC fs/ext4/sysfs.o
CC drivers/usb/early/ehci-dbgp.o
CC drivers/acpi/acpica/psobject.o
CC drivers/scsi/scsi_pm.o
CC drivers/acpi/acpica/psopcode.o
CC drivers/usb/core/driver.o
AR drivers/base/built-in.a
CC drivers/gpu/drm/drm_auth.o
CC lib/xarray.o
CC arch/x86/kernel/pci-dma.o
CC drivers/rtc/dev.o
AR drivers/i2c/busses/built-in.a
CC drivers/i2c/i2c-boardinfo.o
CC drivers/rtc/proc.o
CC drivers/usb/storage/protocol.o
AR drivers/net/ethernet/alacritech/built-in.a
CC drivers/usb/storage/transport.o
CC drivers/rtc/sysfs.o
CC drivers/net/phy/linkmode.o
AR drivers/usb/class/built-in.a
CC drivers/scsi/scsi_bsg.o
AR drivers/i3c/built-in.a
CC drivers/acpi/pci_irq.o
CC drivers/rtc/rtc-mc146818-lib.o
CC drivers/i2c/i2c-core-base.o
CC net/core/gro.o
CC [M] drivers/gpu/drm/xe/xe_device.o
CC drivers/input/mouse/alps.o
CC net/ipv6/datagram.o
CC drivers/acpi/acpica/psopinfo.o
CC kernel/trace/trace_events_trigger.o
CC drivers/pcmcia/pcmcia_cis.o
CC arch/x86/kernel/quirks.o
CC arch/x86/kernel/kdebugfs.o
CC drivers/usb/storage/usb.o
CC drivers/usb/host/ohci-hcd.o
CC drivers/usb/host/ohci-pci.o
CC fs/nfs/fs_context.o
CC drivers/i2c/i2c-core-smbus.o
AR drivers/media/i2c/built-in.a
AR drivers/media/tuners/built-in.a
CC lib/lockref.o
AR drivers/net/ethernet/alteon/built-in.a
AR drivers/usb/mon/built-in.a
CC drivers/acpi/acpica/psparse.o
AR drivers/media/rc/keymaps/built-in.a
CC drivers/gpu/drm/drm_blend.o
AR drivers/media/rc/built-in.a
CC drivers/ata/libahci.o
AR drivers/media/common/b2c2/built-in.a
CC arch/x86/kernel/alternative.o
CC drivers/rtc/rtc-cmos.o
AR drivers/media/common/saa7146/built-in.a
CC net/netfilter/xt_SECMARK.o
CC drivers/usb/storage/initializers.o
CC net/mac80211/iface.o
AR drivers/media/common/siano/built-in.a
AR drivers/usb/early/built-in.a
AR drivers/media/common/v4l2-tpg/built-in.a
CC net/sunrpc/addr.o
CC arch/x86/kernel/i8253.o
CC drivers/acpi/acpica/psscope.o
AR drivers/media/common/videobuf2/built-in.a
AR drivers/media/common/built-in.a
AR drivers/pps/clients/built-in.a
AR drivers/media/platform/allegro-dvt/built-in.a
CC mm/init-mm.o
CC drivers/pps/pps.o
CC drivers/scsi/scsi_common.o
AR drivers/media/platform/amlogic/meson-ge2d/built-in.a
CC drivers/pps/kapi.o
AR drivers/media/platform/amlogic/built-in.a
AR drivers/net/ethernet/8390/built-in.a
AR drivers/media/platform/amphion/built-in.a
AR drivers/net/ethernet/amazon/built-in.a
AR drivers/media/platform/aspeed/built-in.a
AR drivers/net/ethernet/amd/built-in.a
CC mm/memblock.o
AR drivers/net/ethernet/aquantia/built-in.a
AR drivers/media/platform/atmel/built-in.a
CC drivers/net/phy/phy_link_topology.o
AR drivers/net/ethernet/arc/built-in.a
AR drivers/media/platform/broadcom/built-in.a
AR drivers/net/ethernet/asix/built-in.a
AR drivers/media/platform/cadence/built-in.a
CC drivers/gpu/drm/i915/intel_uncore_trace.o
AR drivers/net/ethernet/atheros/built-in.a
AR drivers/media/platform/chips-media/wave5/built-in.a
AR drivers/media/platform/chips-media/coda/built-in.a
AR drivers/media/platform/chips-media/built-in.a
CC drivers/gpu/drm/i915/intel_wakeref.o
AR drivers/net/ethernet/cadence/built-in.a
CC drivers/net/ethernet/broadcom/bnx2.o
AR drivers/media/platform/imagination/built-in.a
AR drivers/media/platform/intel/built-in.a
CC mm/slub.o
AR drivers/media/platform/marvell/built-in.a
CC drivers/input/mouse/byd.o
AR drivers/media/platform/mediatek/jpeg/built-in.a
AR drivers/media/platform/mediatek/mdp/built-in.a
AR drivers/media/platform/mediatek/vcodec/common/built-in.a
CC net/sunrpc/rpcb_clnt.o
AR drivers/media/platform/mediatek/vcodec/encoder/built-in.a
CC drivers/usb/core/config.o
AR drivers/media/platform/mediatek/vcodec/decoder/built-in.a
AR drivers/media/platform/mediatek/vcodec/built-in.a
AR drivers/media/platform/mediatek/vpu/built-in.a
AR drivers/media/platform/mediatek/mdp3/built-in.a
AR drivers/media/platform/mediatek/built-in.a
CC fs/pipe.o
AR drivers/media/platform/microchip/built-in.a
AR drivers/media/platform/nuvoton/built-in.a
CC drivers/acpi/acpica/pstree.o
CC lib/bcd.o
AR drivers/media/platform/nvidia/tegra-vde/built-in.a
AR drivers/media/platform/nvidia/built-in.a
CC kernel/trace/trace_eprobe.o
AR drivers/media/platform/nxp/dw100/built-in.a
CC lib/sort.o
AR drivers/media/platform/nxp/imx-jpeg/built-in.a
AR drivers/media/platform/nxp/imx8-isi/built-in.a
CC kernel/trace/trace_kprobe.o
AR drivers/media/platform/nxp/built-in.a
CC drivers/scsi/scsi_transport_spi.o
AR drivers/media/platform/qcom/camss/built-in.a
CC fs/namei.o
CC kernel/trace/error_report-traces.o
AR drivers/media/platform/qcom/venus/built-in.a
AR drivers/media/platform/qcom/built-in.a
CC lib/parser.o
AR drivers/media/platform/raspberrypi/pisp_be/built-in.a
AR drivers/media/platform/raspberrypi/rp1-cfe/built-in.a
AR drivers/media/platform/raspberrypi/built-in.a
AR drivers/media/platform/renesas/rcar-vin/built-in.a
AR drivers/media/platform/renesas/rzg2l-cru/built-in.a
AR drivers/media/platform/renesas/vsp1/built-in.a
CC net/ipv4/arp.o
CC drivers/pcmcia/rsrc_mgr.o
AR drivers/media/platform/renesas/built-in.a
CC fs/nfs/nfsroot.o
CC drivers/pps/sysfs.o
AR drivers/media/platform/rockchip/rga/built-in.a
CC drivers/scsi/virtio_scsi.o
AR drivers/media/platform/rockchip/rkisp1/built-in.a
CC drivers/input/mouse/logips2pp.o
AR drivers/media/platform/rockchip/built-in.a
AR drivers/media/platform/samsung/exynos4-is/built-in.a
AR drivers/media/platform/samsung/exynos-gsc/built-in.a
CC drivers/usb/host/uhci-hcd.o
AR drivers/media/platform/samsung/s3c-camif/built-in.a
AR drivers/net/wireless/admtek/built-in.a
AR drivers/media/platform/samsung/s5p-g2d/built-in.a
AR drivers/net/wireless/ath/built-in.a
AR drivers/media/platform/samsung/s5p-jpeg/built-in.a
AR drivers/net/wireless/atmel/built-in.a
AR drivers/media/platform/samsung/s5p-mfc/built-in.a
AR drivers/media/platform/samsung/built-in.a
CC drivers/acpi/acpica/psutils.o
AR drivers/net/wireless/broadcom/built-in.a
CC fs/fcntl.o
AR drivers/net/wireless/intel/built-in.a
CC [M] drivers/gpu/drm/xe/xe_device_sysfs.o
AR drivers/media/platform/st/sti/bdisp/built-in.a
AR drivers/net/wireless/intersil/built-in.a
AR drivers/media/platform/st/sti/c8sectpfe/built-in.a
AR drivers/net/wireless/marvell/built-in.a
CC drivers/usb/storage/sierra_ms.o
AR drivers/media/platform/st/sti/delta/built-in.a
AR drivers/net/wireless/mediatek/built-in.a
AR drivers/media/platform/st/sti/hva/built-in.a
AR drivers/net/wireless/microchip/built-in.a
AR drivers/media/platform/st/stm32/built-in.a
CC drivers/usb/storage/option_ms.o
AR drivers/net/wireless/purelifi/built-in.a
AR drivers/media/platform/st/built-in.a
CC drivers/usb/storage/usual-tables.o
AR drivers/net/wireless/quantenna/built-in.a
CC net/netfilter/xt_TCPMSS.o
AR drivers/net/wireless/ralink/built-in.a
AR drivers/media/platform/sunxi/sun4i-csi/built-in.a
AR drivers/net/wireless/realtek/built-in.a
AR drivers/media/platform/sunxi/sun6i-csi/built-in.a
AR drivers/net/wireless/rsi/built-in.a
AR drivers/media/platform/sunxi/sun6i-mipi-csi2/built-in.a
AR drivers/net/wireless/silabs/built-in.a
AR drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/built-in.a
CC drivers/acpi/acpica/pswalk.o
AR drivers/media/platform/sunxi/sun8i-di/built-in.a
AR drivers/net/wireless/st/built-in.a
AR drivers/rtc/built-in.a
AR drivers/net/wireless/ti/built-in.a
AR drivers/media/platform/sunxi/sun8i-rotate/built-in.a
AR drivers/net/usb/built-in.a
AR drivers/media/platform/sunxi/built-in.a
CC lib/debug_locks.o
AR drivers/net/wireless/zydas/built-in.a
AR drivers/net/wireless/virtual/built-in.a
AR drivers/net/wireless/built-in.a
AR drivers/media/platform/ti/am437x/built-in.a
CC drivers/net/mii.o
AR drivers/media/platform/ti/cal/built-in.a
AR drivers/media/platform/ti/vpe/built-in.a
CC net/mac80211/link.o
CC net/ipv6/ip6_flowlabel.o
AR drivers/media/platform/ti/davinci/built-in.a
CC drivers/net/phy/mdio_bus.o
AR drivers/media/platform/ti/j721e-csi2rx/built-in.a
AR drivers/media/platform/ti/omap/built-in.a
AR drivers/pps/built-in.a
AR drivers/media/platform/ti/omap3isp/built-in.a
CC drivers/acpi/acpi_apd.o
CC drivers/ptp/ptp_clock.o
AR drivers/media/platform/ti/built-in.a
CC drivers/ptp/ptp_chardev.o
AR drivers/media/platform/verisilicon/built-in.a
CC drivers/i2c/i2c-core-acpi.o
AR drivers/media/platform/via/built-in.a
AR drivers/media/platform/xilinx/built-in.a
CC net/core/netdev-genl.o
AR drivers/media/platform/built-in.a
CC lib/random32.o
CC net/core/netdev-genl-gen.o
AR drivers/media/pci/ttpci/built-in.a
AR drivers/media/pci/b2c2/built-in.a
AR drivers/media/pci/pluto2/built-in.a
CC drivers/gpu/drm/i915/vlv_sideband.o
AR drivers/media/pci/dm1105/built-in.a
AR drivers/media/pci/pt1/built-in.a
AR drivers/media/pci/pt3/built-in.a
CC drivers/ata/ata_piix.o
AR drivers/media/pci/mantis/built-in.a
CC drivers/pcmcia/rsrc_nonstatic.o
CC drivers/acpi/acpica/psxface.o
AR drivers/media/pci/ngene/built-in.a
AR drivers/media/pci/ddbridge/built-in.a
CC arch/x86/kernel/hw_breakpoint.o
AR drivers/media/pci/saa7146/built-in.a
CC net/netfilter/xt_conntrack.o
AR drivers/media/pci/smipcie/built-in.a
AR drivers/media/pci/netup_unidvb/built-in.a
CC fs/ioctl.o
CC drivers/input/mouse/lifebook.o
CC drivers/input/mouse/trackpoint.o
AR drivers/media/pci/intel/ipu3/built-in.a
AR drivers/media/pci/intel/ivsc/built-in.a
AR drivers/media/pci/intel/built-in.a
AR drivers/media/pci/built-in.a
AR drivers/media/usb/b2c2/built-in.a
CC drivers/usb/core/file.o
AR drivers/media/usb/dvb-usb/built-in.a
AR drivers/media/mmc/siano/built-in.a
AR drivers/media/usb/dvb-usb-v2/built-in.a
AR drivers/media/mmc/built-in.a
AR drivers/media/usb/s2255/built-in.a
CC net/ipv4/icmp.o
AR drivers/media/usb/siano/built-in.a
AR drivers/media/usb/ttusb-budget/built-in.a
AR drivers/media/usb/ttusb-dec/built-in.a
CC fs/readdir.o
AR drivers/media/usb/built-in.a
CC drivers/gpu/drm/drm_bridge.o
CC lib/bust_spinlocks.o
AR drivers/usb/storage/built-in.a
AR drivers/media/firewire/built-in.a
CC drivers/gpu/drm/i915/vlv_suspend.o
AR drivers/media/spi/built-in.a
CC drivers/power/supply/power_supply_core.o
AR drivers/media/test-drivers/built-in.a
AR drivers/media/built-in.a
CC lib/kasprintf.o
CC fs/ext4/xattr.o
CC [M] drivers/gpu/drm/xe/xe_dma_buf.o
CC fs/ext4/xattr_hurd.o
CC net/ipv4/devinet.o
CC drivers/acpi/acpica/rsaddr.o
CC drivers/power/supply/power_supply_sysfs.o
CC drivers/pcmcia/yenta_socket.o
AR drivers/net/ethernet/brocade/built-in.a
CC fs/nfs/sysctl.o
CC fs/nfs/nfs3super.o
CC drivers/gpu/drm/i915/soc/intel_dram.o
CC drivers/ptp/ptp_sysfs.o
CC drivers/scsi/sd.o
CC drivers/net/phy/mdio_device.o
CC net/sunrpc/timer.o
CC drivers/gpu/drm/i915/soc/intel_gmch.o
CC drivers/ata/pata_amd.o
CC drivers/usb/core/buffer.o
CC drivers/i2c/i2c-smbus.o
CC drivers/input/mouse/cypress_ps2.o
CC drivers/scsi/sr.o
CC drivers/acpi/acpica/rscalc.o
CC lib/bitmap.o
CC drivers/net/ethernet/broadcom/tg3.o
CC fs/select.o
CC arch/x86/kernel/tsc.o
CC kernel/trace/power-traces.o
CC kernel/resource.o
CC net/mac80211/rate.o
CC fs/ext4/xattr_trusted.o
CC drivers/usb/host/xhci.o
CC net/ipv6/inet6_connection_sock.o
CC drivers/acpi/acpi_platform.o
CC fs/nfs/nfs3client.o
CC drivers/ptp/ptp_vclock.o
CC drivers/input/mouse/psmouse-smbus.o
CC drivers/input/input.o
CC mm/madvise.o
CC fs/dcache.o
CC kernel/sysctl.o
CC drivers/power/supply/power_supply_leds.o
CC net/netfilter/xt_policy.o
CC [M] drivers/gpu/drm/xe/xe_drm_client.o
CC drivers/acpi/acpica/rscreate.o
CC net/core/gso.o
CC net/mac80211/michael.o
CC drivers/usb/core/sysfs.o
CC fs/inode.o
CC arch/x86/kernel/tsc_msr.o
CC drivers/usb/host/xhci-mem.o
CC lib/scatterlist.o
AR drivers/net/ethernet/cavium/common/built-in.a
AR drivers/i2c/built-in.a
AR drivers/net/ethernet/cavium/thunder/built-in.a
CC drivers/net/phy/swphy.o
CC lib/list_sort.o
AR drivers/net/ethernet/cavium/liquidio/built-in.a
AR drivers/net/ethernet/cavium/octeon/built-in.a
AR drivers/net/ethernet/cavium/built-in.a
CC drivers/ata/pata_oldpiix.o
CC drivers/net/loopback.o
CC drivers/acpi/acpica/rsdumpinfo.o
CC drivers/power/supply/power_supply_hwmon.o
AR drivers/net/ethernet/chelsio/built-in.a
CC drivers/gpu/drm/drm_cache.o
CC mm/page_io.o
AR net/wireless/built-in.a
CC drivers/gpu/drm/i915/soc/intel_pch.o
CC kernel/capability.o
CC net/sunrpc/xdr.o
CC drivers/gpu/drm/drm_color_mgmt.o
CC arch/x86/kernel/io_delay.o
AR drivers/pcmcia/built-in.a
CC drivers/ata/pata_sch.o
CC drivers/input/input-compat.o
CC drivers/net/netconsole.o
CC net/core/net-sysfs.o
CC drivers/usb/host/xhci-ext-caps.o
AR drivers/input/mouse/built-in.a
CC net/ipv4/af_inet.o
CC drivers/ptp/ptp_kvm_x86.o
CC drivers/acpi/acpica/rsinfo.o
CC drivers/ptp/ptp_kvm_common.o
CC net/netfilter/xt_state.o
CC arch/x86/kernel/rtc.o
AR drivers/power/supply/built-in.a
AR drivers/power/built-in.a
AR drivers/net/ethernet/cisco/built-in.a
CC [M] drivers/gpu/drm/xe/xe_exec.o
CC net/ipv6/udp_offload.o
CC fs/nfs/nfs3proc.o
CC drivers/gpu/drm/i915/soc/intel_rom.o
CC arch/x86/kernel/resource.o
CC drivers/acpi/acpica/rsio.o
CC drivers/ata/pata_mpiix.o
CC drivers/input/input-mt.o
CC drivers/net/phy/fixed_phy.o
CC net/core/hotdata.o
CC kernel/trace/rpm-traces.o
CC drivers/usb/core/endpoint.o
CC net/ipv6/seg6.o
CC drivers/usb/host/xhci-ring.o
CC net/mac80211/tkip.o
CC fs/attr.o
CC drivers/input/input-poller.o
CC fs/nfs/nfs3xdr.o
CC drivers/gpu/drm/i915/i915_memcpy.o
CC drivers/hwmon/hwmon.o
CC drivers/usb/core/devio.o
CC kernel/trace/trace_dynevent.o
AS arch/x86/kernel/irqflags.o
CC net/mac80211/aes_cmac.o
CC mm/swap_state.o
CC net/sunrpc/sunrpc_syms.o
CC drivers/acpi/acpica/rsirq.o
CC net/ipv4/igmp.o
CC drivers/input/ff-core.o
CC net/ipv6/fib6_notifier.o
CC [M] net/netfilter/nf_log_syslog.o
CC arch/x86/kernel/static_call.o
CC lib/uuid.o
CC drivers/ata/ata_generic.o
CC kernel/trace/trace_probe.o
AR drivers/ptp/built-in.a
CC drivers/acpi/acpi_pnp.o
CC kernel/ptrace.o
CC arch/x86/kernel/process.o
CC lib/iov_iter.o
CC [M] net/netfilter/xt_mark.o
CC fs/ext4/xattr_user.o
CC drivers/acpi/acpica/rslist.o
CC drivers/scsi/sr_ioctl.o
CC net/ipv6/rpl.o
CC drivers/acpi/acpica/rsmemory.o
CC net/ipv4/fib_frontend.o
CC [M] drivers/gpu/drm/xe/xe_exec_queue.o
CC drivers/acpi/power.o
CC kernel/trace/trace_uprobe.o
CC drivers/gpu/drm/i915/i915_mm.o
CC net/mac80211/aes_gmac.o
AR drivers/thermal/broadcom/built-in.a
AR drivers/thermal/renesas/built-in.a
CC [M] net/netfilter/xt_nat.o
AR drivers/thermal/samsung/built-in.a
CC net/sunrpc/cache.o
CC drivers/input/touchscreen.o
CC drivers/thermal/intel/intel_tcc.o
CC net/core/netdev_rx_queue.o
CC fs/ext4/fast_commit.o
CC net/core/net-procfs.o
AR drivers/watchdog/built-in.a
CC net/sunrpc/rpc_pipe.o
AR drivers/net/phy/built-in.a
CC [M] net/netfilter/xt_LOG.o
CC kernel/trace/rethook.o
CC drivers/gpu/drm/drm_connector.o
CC drivers/acpi/acpica/rsmisc.o
AR drivers/ata/built-in.a
CC mm/swapfile.o
AR drivers/net/ethernet/cortina/built-in.a
CC fs/bad_inode.o
CC fs/nfs/nfs3acl.o
CC drivers/scsi/sr_vendor.o
CC drivers/net/virtio_net.o
CC drivers/thermal/intel/therm_throt.o
CC fs/ext4/orphan.o
CC drivers/usb/host/xhci-hub.o
CC mm/swap_slots.o
CC drivers/md/md.o
CC drivers/net/net_failover.o
CC net/ipv4/fib_semantics.o
CC drivers/acpi/acpica/rsserial.o
AR drivers/hwmon/built-in.a
AR drivers/thermal/st/built-in.a
CC drivers/input/ff-memless.o
CC drivers/gpu/drm/drm_crtc.o
CC [M] drivers/thermal/intel/x86_pkg_temp_thermal.o
CC arch/x86/kernel/ptrace.o
CC fs/file.o
CC fs/nfs/nfs4proc.o
CC drivers/input/sparse-keymap.o
CC net/sunrpc/sysfs.o
CC drivers/usb/core/notify.o
CC net/ipv6/ioam6.o
CC net/mac80211/fils_aead.o
CC drivers/acpi/acpica/rsutils.o
CC drivers/gpu/drm/i915/i915_sw_fence.o
CC [M] drivers/gpu/drm/xe/xe_execlist.o
CC kernel/user.o
CC lib/clz_ctz.o
CC drivers/scsi/sg.o
CC net/sunrpc/svc_xprt.o
CC fs/ext4/acl.o
CC drivers/cpufreq/cpufreq.o
CC drivers/cpuidle/governors/menu.o
CC drivers/cpuidle/governors/haltpoll.o
CC lib/bsearch.o
CC drivers/acpi/acpica/rsxface.o
CC net/core/netpoll.o
CC [M] net/netfilter/xt_MASQUERADE.o
CC lib/find_bit.o
CC drivers/usb/core/generic.o
CC drivers/usb/host/xhci-dbg.o
CC kernel/signal.o
CC kernel/sys.o
CC net/sunrpc/xprtmultipath.o
AR drivers/net/ethernet/dec/tulip/built-in.a
AR drivers/net/ethernet/dlink/built-in.a
AR drivers/net/ethernet/dec/built-in.a
AR drivers/thermal/intel/built-in.a
AR drivers/thermal/qcom/built-in.a
CC fs/filesystems.o
CC net/ipv6/sysctl_net_ipv6.o
CC drivers/input/vivaldi-fmap.o
AR drivers/thermal/tegra/built-in.a
CC drivers/acpi/event.o
CC net/core/fib_rules.o
AR drivers/thermal/mediatek/built-in.a
CC drivers/thermal/thermal_core.o
CC mm/dmapool.o
CC drivers/acpi/acpica/tbdata.o
CC drivers/gpu/drm/i915/i915_sw_fence_work.o
CC net/ipv4/fib_trie.o
CC drivers/cpufreq/freq_table.o
CC drivers/gpu/drm/drm_displayid.o
CC net/mac80211/cfg.o
CC arch/x86/kernel/tls.o
CC arch/x86/kernel/step.o
AR kernel/trace/built-in.a
CC mm/hugetlb.o
CC net/ipv4/fib_notifier.o
CC drivers/usb/host/xhci-trace.o
AR drivers/mmc/built-in.a
CC drivers/input/input-leds.o
CC drivers/input/evdev.o
CC drivers/scsi/scsi_sysfs.o
CC lib/llist.o
CC fs/namespace.o
CC [M] drivers/gpu/drm/xe/xe_force_wake.o
CC drivers/cpufreq/cpufreq_performance.o
CC drivers/usb/core/quirks.o
CC drivers/gpu/drm/i915/i915_syncmap.o
CC lib/lwq.o
CC drivers/gpu/drm/drm_drv.o
CC drivers/acpi/acpica/tbfadt.o
CC kernel/umh.o
CC kernel/workqueue.o
CC arch/x86/kernel/i8237.o
AR drivers/cpuidle/governors/built-in.a
CC drivers/cpufreq/cpufreq_userspace.o
CC drivers/cpuidle/cpuidle.o
CC drivers/usb/core/devices.o
CC lib/memweight.o
CC fs/ext4/xattr_security.o
CC net/ipv6/xfrm6_policy.o
CC fs/nfs/nfs4xdr.o
CC lib/kfifo.o
CC net/core/net-traces.o
CC net/core/selftests.o
CC lib/percpu-refcount.o
CC [M] net/netfilter/xt_addrtype.o
CC drivers/gpu/drm/drm_dumb_buffers.o
CC drivers/acpi/acpica/tbfind.o
CC kernel/pid.o
CC drivers/gpu/drm/i915/i915_user_extensions.o
CC drivers/gpu/drm/i915/i915_debugfs.o
CC net/ipv4/inet_fragment.o
CC kernel/task_work.o
CC fs/seq_file.o
CC drivers/cpuidle/driver.o
CC arch/x86/kernel/stacktrace.o
CC net/core/ptp_classifier.o
CC drivers/acpi/evged.o
CC drivers/thermal/thermal_sysfs.o
CC net/ipv6/xfrm6_state.o
CC net/mac80211/ethtool.o
CC drivers/acpi/acpica/tbinstal.o
CC drivers/gpu/drm/drm_edid.o
AR drivers/input/built-in.a
CC mm/mmu_notifier.o
CC drivers/usb/core/phy.o
CC [M] drivers/gpu/drm/xe/xe_ggtt.o
AR drivers/ufs/built-in.a
CC drivers/usb/core/port.o
CC drivers/thermal/thermal_trip.o
CC arch/x86/kernel/reboot.o
CC net/ipv6/xfrm6_input.o
CC net/mac80211/rx.o
CC drivers/cpufreq/cpufreq_ondemand.o
AR fs/ext4/built-in.a
AR drivers/scsi/built-in.a
CC fs/nfs/nfs4state.o
CC drivers/thermal/thermal_helpers.o
CC drivers/gpu/drm/i915/i915_debugfs_params.o
AR drivers/net/ethernet/emulex/built-in.a
CC net/core/netprio_cgroup.o
CC [M] drivers/gpu/drm/xe/xe_gpu_scheduler.o
CC lib/rhashtable.o
CC fs/xattr.o
CC drivers/acpi/acpica/tbprint.o
CC drivers/cpufreq/cpufreq_governor.o
CC drivers/usb/host/xhci-debugfs.o
CC net/ipv6/xfrm6_output.o
CC drivers/gpu/drm/drm_eld.o
CC drivers/md/md-bitmap.o
CC net/mac80211/spectmgmt.o
CC drivers/cpuidle/governor.o
CC net/sunrpc/stats.o
CC lib/base64.o
CC net/ipv4/ping.o
CC drivers/md/md-autodetect.o
CC drivers/acpi/acpica/tbutils.o
AR drivers/net/ethernet/engleder/built-in.a
CC net/core/netclassid_cgroup.o
CC drivers/thermal/thermal_thresholds.o
CC drivers/acpi/sysfs.o
AR drivers/firmware/arm_ffa/built-in.a
AR net/netfilter/built-in.a
AR drivers/firmware/arm_scmi/built-in.a
CC net/sunrpc/sysctl.o
AR drivers/firmware/broadcom/built-in.a
CC drivers/gpu/drm/i915/i915_pmu.o
AR drivers/firmware/cirrus/test/built-in.a
CC [M] drivers/gpu/drm/xe/xe_gsc.o
AR drivers/firmware/cirrus/built-in.a
AR drivers/firmware/meson/built-in.a
CC net/ipv6/xfrm6_protocol.o
CC drivers/cpuidle/sysfs.o
AR drivers/firmware/microchip/built-in.a
CC drivers/gpu/drm/i915/gt/gen2_engine_cs.o
CC drivers/cpufreq/cpufreq_governor_attr_set.o
CC arch/x86/kernel/msr.o
CC drivers/gpu/drm/i915/gt/gen6_engine_cs.o
CC drivers/cpuidle/poll_state.o
CC drivers/firmware/efi/libstub/efi-stub-helper.o
CC drivers/usb/core/hcd-pci.o
CC net/ipv4/ip_tunnel_core.o
CC drivers/usb/host/xhci-pci.o
CC drivers/gpu/drm/drm_encoder.o
CC drivers/thermal/thermal_netlink.o
CC drivers/acpi/acpica/tbxface.o
CC drivers/cpufreq/acpi-cpufreq.o
CC fs/nfs/nfs4renewd.o
CC net/ipv6/netfilter.o
AR drivers/crypto/stm32/built-in.a
AR drivers/crypto/xilinx/built-in.a
AR drivers/crypto/hisilicon/built-in.a
CC drivers/firmware/efi/libstub/gop.o
AR drivers/crypto/intel/keembay/built-in.a
AR drivers/crypto/intel/ixp4xx/built-in.a
AR drivers/crypto/intel/built-in.a
AR drivers/crypto/starfive/built-in.a
CC drivers/firmware/efi/libstub/secureboot.o
AR drivers/crypto/built-in.a
CC lib/once.o
CC net/ipv6/proc.o
CC fs/libfs.o
CC drivers/usb/core/usb-acpi.o
CC drivers/thermal/thermal_hwmon.o
CC drivers/cpuidle/cpuidle-haltpoll.o
CC net/ipv4/gre_offload.o
CC kernel/extable.o
CC drivers/acpi/acpica/tbxfload.o
CC net/mac80211/tx.o
CC drivers/clocksource/acpi_pm.o
CC drivers/clocksource/i8253.o
CC drivers/hid/usbhid/hid-core.o
CC arch/x86/kernel/cpuid.o
AR drivers/platform/x86/amd/built-in.a
CC lib/refcount.o
AR drivers/platform/x86/intel/built-in.a
CC drivers/platform/x86/wmi.o
CC drivers/acpi/property.o
CC drivers/mailbox/mailbox.o
AR drivers/perf/built-in.a
CC drivers/gpu/drm/drm_file.o
CC net/ipv4/metrics.o
CC drivers/firmware/efi/efi-bgrt.o
CC net/core/dst_cache.o
AR drivers/net/ethernet/ezchip/built-in.a
CC drivers/hid/hid-core.o
CC lib/rcuref.o
CC lib/usercopy.o
AR drivers/cpuidle/built-in.a
CC drivers/acpi/acpica/tbxfroot.o
CC mm/migrate.o
CC mm/page_counter.o
CC drivers/cpufreq/amd-pstate.o
CC drivers/firmware/efi/libstub/tpm.o
CC [M] drivers/gpu/drm/xe/xe_gsc_debugfs.o
CC drivers/acpi/acpica/utaddress.o
CC drivers/hid/hid-input.o
CC fs/fs-writeback.o
CC drivers/gpu/drm/drm_fourcc.o
CC kernel/params.o
CC drivers/gpu/drm/i915/gt/gen6_ppgtt.o
AR drivers/usb/core/built-in.a
AR drivers/net/ethernet/fujitsu/built-in.a
CC drivers/firmware/efi/efi.o
CC [M] drivers/gpu/drm/xe/xe_gsc_proxy.o
CC drivers/firmware/efi/vars.o
CC drivers/thermal/gov_step_wise.o
CC arch/x86/kernel/early-quirks.o
AR drivers/platform/surface/built-in.a
CC lib/errseq.o
AR drivers/hwtracing/intel_th/built-in.a
AR drivers/clocksource/built-in.a
CC drivers/acpi/acpica/utalloc.o
CC drivers/acpi/acpica/utascii.o
CC drivers/platform/x86/wmi-bmof.o
CC drivers/mailbox/pcc.o
CC [M] drivers/gpu/drm/xe/xe_gsc_submit.o
AR net/sunrpc/built-in.a
AR drivers/usb/host/built-in.a
CC drivers/gpu/drm/drm_framebuffer.o
AR drivers/usb/built-in.a
CC drivers/firmware/efi/libstub/file.o
CC net/mac80211/key.o
CC lib/bucket_locks.o
CC net/core/gro_cells.o
CC drivers/platform/x86/eeepc-laptop.o
CC fs/pnode.o
AR drivers/firmware/imx/built-in.a
CC drivers/firmware/efi/reboot.o
CC drivers/hid/usbhid/hiddev.o
CC net/core/failover.o
CC fs/nfs/nfs4super.o
CC net/ipv6/syncookies.o
CC drivers/md/dm.o
CC mm/hugetlb_cgroup.o
CC drivers/acpi/acpica/utbuffer.o
AR drivers/net/ethernet/fungible/built-in.a
AR drivers/thermal/built-in.a
CC lib/generic-radix-tree.o
CC net/ipv6/calipso.o
AR drivers/firmware/psci/built-in.a
CC drivers/hid/hid-quirks.o
CC lib/bitmap-str.o
CC fs/nfs/nfs4file.o
CC lib/string_helpers.o
CC drivers/acpi/debugfs.o
CC net/ipv6/ah6.o
CC net/ipv6/esp6.o
CC drivers/gpu/drm/i915/gt/gen7_renderclear.o
CC drivers/cpufreq/amd-pstate-trace.o
AR drivers/android/built-in.a
CC drivers/gpu/drm/drm_gem.o
AR drivers/nvmem/layouts/built-in.a
CC drivers/cpufreq/intel_pstate.o
CC drivers/nvmem/core.o
CC fs/splice.o
CC drivers/acpi/acpi_lpat.o
AR drivers/net/ethernet/google/built-in.a
AR drivers/mailbox/built-in.a
CC net/ipv4/netlink.o
AR drivers/firmware/qcom/built-in.a
CC net/ipv4/nexthop.o
CC net/ipv6/sit.o
CC lib/hexdump.o
CC drivers/acpi/acpica/utcksum.o
CC drivers/firmware/efi/libstub/mem.o
CC kernel/kthread.o
CC arch/x86/kernel/smp.o
CC fs/sync.o
CC net/mac80211/util.o
CC drivers/gpu/drm/i915/gt/gen8_engine_cs.o
CC drivers/gpu/drm/drm_ioctl.o
CC drivers/md/dm-table.o
CC [M] drivers/gpu/drm/xe/xe_gt.o
CC drivers/md/dm-target.o
CC net/ipv6/addrconf_core.o
CC drivers/hid/usbhid/hid-pidff.o
AR drivers/firmware/smccc/built-in.a
AR drivers/net/ethernet/hisilicon/built-in.a
CC fs/nfs/delegation.o
CC net/ipv4/udp_tunnel_stub.o
CC drivers/acpi/acpica/utcopy.o
CC drivers/platform/x86/p2sb.o
CC drivers/firmware/efi/memattr.o
CC drivers/gpu/drm/i915/gt/gen8_ppgtt.o
AR drivers/net/ethernet/huawei/built-in.a
CC net/ipv4/ip_tunnel.o
CC net/ipv4/sysctl_net_ipv4.o
CC drivers/net/ethernet/intel/e1000/e1000_main.o
CC drivers/firmware/efi/libstub/random.o
CC lib/kstrtox.o
CC drivers/net/ethernet/intel/e1000e/82571.o
CC mm/early_ioremap.o
CC drivers/acpi/acpi_pcc.o
CC net/ipv4/proc.o
CC fs/utimes.o
CC drivers/gpu/drm/i915/gt/intel_breadcrumbs.o
CC drivers/acpi/acpica/utexcep.o
AR drivers/net/ethernet/broadcom/built-in.a
CC net/mac80211/parse.o
CC lib/iomap.o
AR net/core/built-in.a
CC arch/x86/kernel/smpboot.o
CC drivers/hid/hid-debug.o
CC drivers/net/ethernet/intel/e1000e/ich8lan.o
AR drivers/nvmem/built-in.a
CC mm/secretmem.o
AR drivers/firmware/tegra/built-in.a
CC drivers/hid/hidraw.o
CC drivers/hid/hid-generic.o
CC drivers/gpu/drm/drm_lease.o
AR drivers/platform/x86/built-in.a
AR drivers/platform/built-in.a
CC kernel/sys_ni.o
CC drivers/net/ethernet/intel/e100.o
CC fs/nfs/nfs4idmap.o
CC drivers/acpi/acpica/utdebug.o
CC drivers/gpu/drm/drm_managed.o
AR drivers/net/ethernet/i825xx/built-in.a
CC drivers/firmware/efi/libstub/randomalloc.o
CC drivers/hid/hid-a4tech.o
CC drivers/net/ethernet/intel/e1000e/80003es2lan.o
CC drivers/acpi/ac.o
CC drivers/gpu/drm/i915/gt/intel_context.o
CC net/mac80211/wme.o
CC drivers/md/dm-linear.o
CC drivers/gpu/drm/drm_mm.o
CC net/ipv6/exthdrs_core.o
CC kernel/nsproxy.o
CC drivers/firmware/efi/tpm.o
CC drivers/hid/hid-apple.o
AR drivers/net/ethernet/microsoft/built-in.a
CC fs/nfs/callback.o
CC drivers/acpi/acpica/utdecode.o
CC fs/nfs/callback_xdr.o
AR drivers/firmware/xilinx/built-in.a
CC drivers/acpi/button.o
CC [M] drivers/gpu/drm/xe/xe_gt_ccs_mode.o
CC drivers/acpi/fan_core.o
CC drivers/gpu/drm/i915/gt/intel_context_sseu.o
CC drivers/firmware/efi/memmap.o
CC lib/iomap_copy.o
AR drivers/hid/usbhid/built-in.a
CC net/mac80211/chan.o
CC net/ipv4/fib_rules.o
CC net/ipv6/ip6_checksum.o
CC lib/devres.o
CC arch/x86/kernel/tsc_sync.o
CC drivers/firmware/efi/libstub/pci.o
CC drivers/acpi/acpica/utdelete.o
CC drivers/gpu/drm/drm_mode_config.o
CC drivers/firmware/efi/libstub/skip_spaces.o
CC drivers/firmware/efi/libstub/lib-cmdline.o
CC kernel/notifier.o
AR drivers/net/ethernet/litex/built-in.a
CC fs/d_path.o
CC mm/hmm.o
AR drivers/cpufreq/built-in.a
CC [M] drivers/gpu/drm/xe/xe_gt_clock.o
CC drivers/firmware/dmi_scan.o
CC arch/x86/kernel/setup_percpu.o
CC arch/x86/kernel/mpparse.o
CC fs/stack.o
CC kernel/ksysfs.o
AR drivers/net/ethernet/marvell/octeon_ep/built-in.a
CC mm/memfd.o
CC drivers/md/dm-stripe.o
CC kernel/cred.o
AR drivers/net/ethernet/marvell/octeon_ep_vf/built-in.a
AR drivers/net/ethernet/marvell/octeontx2/built-in.a
AR drivers/net/ethernet/marvell/prestera/built-in.a
CC drivers/net/ethernet/marvell/sky2.o
CC mm/ptdump.o
CC fs/fs_struct.o
AR drivers/net/ethernet/mellanox/built-in.a
CC net/mac80211/trace.o
CC drivers/gpu/drm/i915/gt/intel_engine_cs.o
CC drivers/hid/hid-belkin.o
CC lib/check_signature.o
CC kernel/reboot.o
CC drivers/acpi/acpica/uterror.o
CC drivers/net/ethernet/intel/e1000e/mac.o
CC drivers/firmware/efi/libstub/lib-ctype.o
CC net/mac80211/mlme.o
CC drivers/gpu/drm/i915/gt/intel_engine_heartbeat.o
CC drivers/firmware/dmi-id.o
CC net/ipv6/ip6_icmp.o
CC lib/interval_tree.o
CC mm/execmem.o
CC drivers/net/ethernet/intel/e1000/e1000_hw.o
CC drivers/firmware/efi/libstub/alignedmem.o
CC fs/statfs.o
CC lib/assoc_array.o
CC drivers/net/ethernet/intel/e1000/e1000_ethtool.o
CC drivers/hid/hid-cherry.o
CC drivers/gpu/drm/drm_mode_object.o
CC fs/nfs/callback_proc.o
CC kernel/async.o
CC [M] drivers/gpu/drm/xe/xe_gt_freq.o
CC lib/bitrev.o
CC drivers/firmware/memmap.o
CC drivers/firmware/efi/capsule.o
CC drivers/acpi/acpica/uteval.o
CC drivers/gpu/drm/i915/gt/intel_engine_pm.o
AR drivers/net/ethernet/meta/built-in.a
CC drivers/acpi/acpica/utglobal.o
CC drivers/gpu/drm/drm_modes.o
CC fs/fs_pin.o
CC net/ipv4/ipmr.o
CC drivers/acpi/fan_attr.o
CC drivers/firmware/efi/libstub/relocate.o
CC net/mac80211/tdls.o
CC [M] drivers/gpu/drm/xe/xe_gt_idle.o
CC net/ipv4/ipmr_base.o
CC drivers/md/dm-ioctl.o
CC drivers/acpi/acpica/uthex.o
CC drivers/hid/hid-chicony.o
CC drivers/md/dm-io.o
CC kernel/range.o
CC arch/x86/kernel/trace_clock.o
CC drivers/acpi/fan_hwmon.o
CC drivers/acpi/acpica/utids.o
CC drivers/firmware/efi/esrt.o
CC arch/x86/kernel/trace.o
AR drivers/net/ethernet/micrel/built-in.a
CC net/ipv6/output_core.o
CC fs/nsfs.o
CC [M] drivers/gpu/drm/xe/xe_gt_mcr.o
CC drivers/net/ethernet/intel/e1000e/manage.o
CC drivers/md/dm-kcopyd.o
CC drivers/hid/hid-cypress.o
AR mm/built-in.a
CC lib/crc-ccitt.o
CC drivers/net/ethernet/intel/e1000/e1000_param.o
CC net/mac80211/ocb.o
CC fs/fs_types.o
CC drivers/acpi/acpica/utinit.o
CC drivers/acpi/acpi_video.o
CC kernel/smpboot.o
CC drivers/acpi/video_detect.o
AR drivers/net/ethernet/microchip/built-in.a
CC drivers/acpi/processor_driver.o
CC net/ipv6/protocol.o
CC [M] drivers/gpu/drm/xe/xe_gt_pagefault.o
CC fs/nfs/nfs4namespace.o
CC drivers/hid/hid-ezkey.o
CC drivers/firmware/efi/libstub/printk.o
CC net/ipv4/syncookies.o
CC net/ipv4/tunnel4.o
CC drivers/firmware/efi/libstub/vsprintf.o
CC drivers/md/dm-sysfs.o
CC lib/crc16.o
CC arch/x86/kernel/rethook.o
CC drivers/gpu/drm/drm_modeset_lock.o
CC kernel/ucount.o
CC drivers/firmware/efi/runtime-wrappers.o
CC drivers/acpi/acpica/utlock.o
CC drivers/md/dm-stats.o
CC fs/fs_context.o
CC net/mac80211/airtime.o
CC net/ipv4/ipconfig.o
CC drivers/acpi/processor_thermal.o
CC drivers/acpi/processor_idle.o
CC drivers/gpu/drm/drm_plane.o
CC drivers/hid/hid-gyration.o
CC drivers/md/dm-rq.o
CC fs/nfs/nfs4getroot.o
CC net/mac80211/eht.o
HOSTCC lib/gen_crc32table
CC drivers/firmware/efi/capsule-loader.o
CC drivers/net/ethernet/intel/e1000e/nvm.o
CC lib/xxhash.o
CC drivers/acpi/acpica/utmath.o
CC kernel/regset.o
CC drivers/firmware/efi/libstub/x86-stub.o
AR drivers/net/ethernet/mscc/built-in.a
CC kernel/ksyms_common.o
CC drivers/acpi/acpica/utmisc.o
CC drivers/firmware/efi/earlycon.o
CC lib/genalloc.o
CC arch/x86/kernel/vmcore_info_32.o
CC net/ipv4/netfilter.o
CC drivers/gpu/drm/drm_prime.o
CC fs/nfs/nfs4client.o
CC [M] drivers/gpu/drm/xe/xe_gt_sysfs.o
CC net/ipv6/ip6_offload.o
CC drivers/acpi/acpica/utmutex.o
CC kernel/groups.o
CC [M] drivers/gpu/drm/xe/xe_gt_throttle.o
CC drivers/gpu/drm/i915/gt/intel_engine_user.o
CC drivers/acpi/processor_throttling.o
CC drivers/net/ethernet/intel/e1000e/phy.o
CC lib/percpu_counter.o
CC drivers/firmware/efi/libstub/smbios.o
CC drivers/acpi/processor_perflib.o
CC drivers/acpi/acpica/utnonansi.o
CC fs/nfs/nfs4session.o
CC net/ipv6/tcpv6_offload.o
CC drivers/hid/hid-ite.o
CC kernel/kcmp.o
CC drivers/gpu/drm/drm_print.o
CC lib/audit.o
CC lib/syscall.o
AR drivers/net/ethernet/intel/e1000/built-in.a
CC arch/x86/kernel/machine_kexec_32.o
AS arch/x86/kernel/relocate_kernel_32.o
CC fs/fs_parser.o
CC net/mac80211/led.o
CC fs/nfs/dns_resolve.o
CC drivers/md/dm-io-rewind.o
CC fs/nfs/nfs4trace.o
CC lib/errname.o
CC kernel/freezer.o
CC drivers/net/ethernet/intel/e1000e/param.o
CC drivers/hid/hid-kensington.o
CC net/ipv6/exthdrs_offload.o
CC [M] drivers/gpu/drm/xe/xe_gt_tlb_invalidation.o
CC net/mac80211/pm.o
CC drivers/acpi/acpica/utobject.o
AR drivers/net/ethernet/myricom/built-in.a
CC drivers/acpi/container.o
STUBCPY drivers/firmware/efi/libstub/alignedmem.stub.o
CC drivers/gpu/drm/i915/gt/intel_execlists_submission.o
CC [M] drivers/gpu/drm/xe/xe_gt_topology.o
CC drivers/md/dm-builtin.o
AR drivers/firmware/efi/built-in.a
CC fs/nfs/nfs4sysctl.o
CC kernel/profile.o
STUBCPY drivers/firmware/efi/libstub/efi-stub-helper.stub.o
CC drivers/hid/hid-lg.o
STUBCPY drivers/firmware/efi/libstub/file.stub.o
STUBCPY drivers/firmware/efi/libstub/gop.stub.o
AR drivers/net/ethernet/marvell/built-in.a
STUBCPY drivers/firmware/efi/libstub/lib-cmdline.stub.o
CC net/mac80211/rc80211_minstrel_ht.o
STUBCPY drivers/firmware/efi/libstub/lib-ctype.stub.o
CC fs/fsopen.o
STUBCPY drivers/firmware/efi/libstub/mem.stub.o
STUBCPY drivers/firmware/efi/libstub/pci.stub.o
STUBCPY drivers/firmware/efi/libstub/printk.stub.o
STUBCPY drivers/firmware/efi/libstub/random.stub.o
CC kernel/stacktrace.o
CC drivers/gpu/drm/i915/gt/intel_ggtt.o
STUBCPY drivers/firmware/efi/libstub/randomalloc.stub.o
STUBCPY drivers/firmware/efi/libstub/relocate.stub.o
CC drivers/gpu/drm/i915/gt/intel_ggtt_fencing.o
CC net/mac80211/wbrf.o
STUBCPY drivers/firmware/efi/libstub/secureboot.stub.o
CC drivers/md/dm-raid1.o
STUBCPY drivers/firmware/efi/libstub/skip_spaces.stub.o
STUBCPY drivers/firmware/efi/libstub/smbios.stub.o
STUBCPY drivers/firmware/efi/libstub/tpm.stub.o
STUBCPY drivers/firmware/efi/libstub/vsprintf.stub.o
AR drivers/net/ethernet/natsemi/built-in.a
CC drivers/hid/hid-lgff.o
CC fs/init.o
STUBCPY drivers/firmware/efi/libstub/x86-stub.stub.o
CC drivers/hid/hid-lg4ff.o
CC net/ipv4/tcp_cubic.o
CC drivers/acpi/acpica/utosi.o
AR drivers/firmware/efi/libstub/lib.a
CC drivers/hid/hid-lg-g15.o
CC lib/nlattr.o
AR drivers/firmware/built-in.a
CC drivers/acpi/thermal_lib.o
CC drivers/acpi/acpica/utownerid.o
CC kernel/dma.o
CC [M] drivers/gpu/drm/xe/xe_guc.o
CC kernel/smp.o
CC net/ipv6/inet6_hashtables.o
CC fs/kernel_read_file.o
CC drivers/gpu/drm/drm_property.o
CC arch/x86/kernel/crash_dump_32.o
CC drivers/net/ethernet/intel/e1000e/ethtool.o
CC lib/cpu_rmap.o
CC kernel/uid16.o
CC drivers/acpi/thermal.o
CC drivers/acpi/acpica/utpredef.o
CC drivers/net/ethernet/intel/e1000e/netdev.o
CC drivers/gpu/drm/i915/gt/intel_gt.o
CC [M] drivers/gpu/drm/xe/xe_guc_ads.o
CC kernel/kallsyms.o
CC drivers/gpu/drm/drm_rect.o
CC drivers/acpi/acpica/utresdecode.o
CC drivers/acpi/nhlt.o
AR drivers/net/ethernet/neterion/built-in.a
CC drivers/hid/hid-microsoft.o
CC arch/x86/kernel/crash.o
CC net/ipv4/tcp_sigpool.o
CC fs/mnt_idmapping.o
CC [M] drivers/gpu/drm/xe/xe_guc_buf.o
CC [M] drivers/gpu/drm/xe/xe_guc_capture.o
AR drivers/net/ethernet/netronome/built-in.a
CC net/ipv6/mcast_snoop.o
CC lib/dynamic_queue_limits.o
CC drivers/gpu/drm/drm_syncobj.o
CC fs/remap_range.o
CC net/ipv4/cipso_ipv4.o
CC drivers/acpi/acpi_memhotplug.o
CC drivers/md/dm-log.o
CC drivers/acpi/acpica/utresrc.o
AR drivers/net/ethernet/ni/built-in.a
CC drivers/acpi/acpica/utstate.o
CC drivers/hid/hid-monterey.o
CC drivers/acpi/ioapic.o
CC arch/x86/kernel/module.o
CC net/ipv4/xfrm4_policy.o
CC drivers/md/dm-region-hash.o
CC lib/glob.o
CC drivers/net/ethernet/nvidia/forcedeth.o
AR drivers/net/ethernet/oki-semi/built-in.a
CC kernel/acct.o
CC drivers/acpi/acpica/utstring.o
AR drivers/net/ethernet/packetengines/built-in.a
CC lib/strncpy_from_user.o
CC drivers/md/dm-zero.o
CC net/ipv4/xfrm4_state.o
CC drivers/net/ethernet/intel/e1000e/ptp.o
CC drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.o
CC lib/strnlen_user.o
AR drivers/net/ethernet/qlogic/built-in.a
CC drivers/acpi/acpica/utstrsuppt.o
AR drivers/net/ethernet/qualcomm/emac/built-in.a
CC drivers/acpi/battery.o
AR drivers/net/ethernet/qualcomm/built-in.a
CC drivers/hid/hid-ntrig.o
CC [M] drivers/gpu/drm/xe/xe_guc_ct.o
CC fs/pidfs.o
CC arch/x86/kernel/doublefault_32.o
CC drivers/acpi/acpica/utstrtoul64.o
CC kernel/vmcore_info.o
CC drivers/net/ethernet/realtek/8139too.o
CC drivers/gpu/drm/i915/gt/intel_gt_ccs_mode.o
CC [M] drivers/gpu/drm/xe/xe_guc_db_mgr.o
CC fs/buffer.o
CC fs/mpage.o
CC net/ipv4/xfrm4_input.o
CC drivers/hid/hid-pl.o
CC [M] drivers/gpu/drm/xe/xe_guc_hwconfig.o
CC lib/net_utils.o
AR drivers/net/ethernet/renesas/built-in.a
CC drivers/net/ethernet/realtek/r8169_main.o
CC drivers/acpi/bgrt.o
CC drivers/gpu/drm/i915/gt/intel_gt_clock_utils.o
CC kernel/elfcorehdr.o
CC fs/proc_namespace.o
AR drivers/net/ethernet/rdc/built-in.a
CC drivers/hid/hid-petalynx.o
CC drivers/acpi/acpica/utxface.o
CC arch/x86/kernel/early_printk.o
CC net/ipv4/xfrm4_output.o
CC lib/sg_pool.o
AR net/ipv6/built-in.a
CC lib/stackdepot.o
CC drivers/gpu/drm/i915/gt/intel_gt_debugfs.o
CC net/ipv4/xfrm4_protocol.o
AR drivers/net/ethernet/rocker/built-in.a
CC drivers/net/ethernet/realtek/r8169_firmware.o
AR drivers/md/built-in.a
CC drivers/hid/hid-redragon.o
CC drivers/gpu/drm/drm_sysfs.o
CC [M] drivers/gpu/drm/xe/xe_guc_id_mgr.o
CC lib/asn1_decoder.o
CC fs/direct-io.o
CC drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.o
CC arch/x86/kernel/hpet.o
CC drivers/acpi/spcr.o
AR drivers/net/ethernet/samsung/built-in.a
CC drivers/acpi/acpica/utxfinit.o
CC drivers/net/ethernet/realtek/r8169_phy_config.o
CC [M] drivers/gpu/drm/xe/xe_guc_klv_helpers.o
GEN lib/oid_registry_data.c
CC arch/x86/kernel/amd_nb.o
CC fs/eventpoll.o
CC arch/x86/kernel/amd_node.o
CC drivers/acpi/acpica/utxferror.o
CC [M] drivers/gpu/drm/xe/xe_guc_log.o
CC lib/ucs2_string.o
CC lib/sbitmap.o
CC kernel/crash_reserve.o
CC [M] drivers/gpu/drm/xe/xe_guc_pc.o
CC fs/anon_inodes.o
AR drivers/net/ethernet/seeq/built-in.a
CC drivers/gpu/drm/drm_trace_points.o
CC drivers/acpi/acpica/utxfmutex.o
CC lib/group_cpus.o
CC [M] drivers/gpu/drm/xe/xe_guc_submit.o
CC fs/signalfd.o
CC fs/timerfd.o
CC kernel/kexec_core.o
CC fs/eventfd.o
CC lib/fw_table.o
AR drivers/net/ethernet/silan/built-in.a
CC drivers/gpu/drm/i915/gt/intel_gt_irq.o
AR drivers/net/ethernet/sis/built-in.a
CC kernel/crash_core.o
CC drivers/gpu/drm/drm_vblank.o
CC arch/x86/kernel/kvm.o
CC drivers/hid/hid-samsung.o
CC fs/aio.o
CC [M] drivers/gpu/drm/xe/xe_heci_gsc.o
CC drivers/gpu/drm/i915/gt/intel_gt_mcr.o
AR drivers/net/ethernet/sfc/built-in.a
CC drivers/gpu/drm/drm_vblank_work.o
AR fs/nfs/built-in.a
CC arch/x86/kernel/kvmclock.o
CC kernel/kexec.o
AR drivers/acpi/acpica/built-in.a
CC fs/locks.o
CC [M] drivers/gpu/drm/xe/xe_huc.o
CC kernel/utsname.o
AR drivers/acpi/built-in.a
CC drivers/gpu/drm/i915/gt/intel_gt_pm.o
CC drivers/hid/hid-sony.o
CC [M] drivers/gpu/drm/xe/xe_hw_engine.o
CC drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.o
CC kernel/pid_namespace.o
CC drivers/gpu/drm/drm_vma_manager.o
CC drivers/gpu/drm/drm_writeback.o
CC kernel/stop_machine.o
CC arch/x86/kernel/paravirt.o
AR net/ipv4/built-in.a
CC arch/x86/kernel/pvclock.o
CC arch/x86/kernel/pcspeaker.o
CC drivers/gpu/drm/i915/gt/intel_gt_pm_irq.o
CC drivers/hid/hid-sunplus.o
AR drivers/net/ethernet/smsc/built-in.a
CC fs/binfmt_misc.o
CC [M] drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.o
CC [M] drivers/gpu/drm/xe/xe_hw_engine_group.o
CC drivers/hid/hid-topseed.o
CC kernel/audit.o
CC arch/x86/kernel/check.o
AR lib/lib.a
AR drivers/net/ethernet/socionext/built-in.a
CC drivers/gpu/drm/i915/gt/intel_gt_requests.o
CC drivers/gpu/drm/drm_panel.o
GEN lib/crc32table.h
CC lib/oid_registry.o
CC kernel/auditfilter.o
AR drivers/net/ethernet/stmicro/built-in.a
CC drivers/gpu/drm/i915/gt/intel_gt_sysfs.o
AR drivers/net/ethernet/sun/built-in.a
CC drivers/gpu/drm/drm_pci.o
AR drivers/net/ethernet/tehuti/built-in.a
CC fs/binfmt_script.o
CC drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.o
CC drivers/gpu/drm/i915/gt/intel_gtt.o
CC [M] drivers/gpu/drm/xe/xe_hw_fence.o
CC drivers/gpu/drm/i915/gt/intel_llc.o
CC kernel/auditsc.o
AR drivers/net/ethernet/ti/built-in.a
CC fs/binfmt_elf.o
CC drivers/gpu/drm/drm_debugfs.o
CC kernel/audit_watch.o
CC arch/x86/kernel/uprobes.o
CC drivers/gpu/drm/i915/gt/intel_lrc.o
CC arch/x86/kernel/perf_regs.o
CC drivers/gpu/drm/drm_debugfs_crc.o
CC arch/x86/kernel/tracepoint.o
CC fs/mbcache.o
CC lib/crc32.o
AR drivers/net/ethernet/vertexcom/built-in.a
CC fs/posix_acl.o
CC [M] drivers/gpu/drm/xe/xe_irq.o
CC kernel/audit_fsnotify.o
AR drivers/net/ethernet/via/built-in.a
CC drivers/gpu/drm/drm_panel_orientation_quirks.o
CC kernel/audit_tree.o
CC drivers/gpu/drm/i915/gt/intel_migrate.o
AR drivers/net/ethernet/wangxun/built-in.a
CC drivers/gpu/drm/i915/gt/intel_mocs.o
CC kernel/kprobes.o
CC drivers/gpu/drm/drm_buddy.o
CC [M] drivers/gpu/drm/xe/xe_lrc.o
CC fs/coredump.o
CC kernel/seccomp.o
CC arch/x86/kernel/itmt.o
AR drivers/net/ethernet/wiznet/built-in.a
AR drivers/net/ethernet/xilinx/built-in.a
CC arch/x86/kernel/umip.o
CC drivers/gpu/drm/i915/gt/intel_ppgtt.o
CC kernel/relay.o
AR drivers/hid/built-in.a
CC [M] drivers/gpu/drm/xe/xe_migrate.o
CC arch/x86/kernel/unwind_frame.o
CC drivers/gpu/drm/drm_gem_shmem_helper.o
CC kernel/utsname_sysctl.o
AR drivers/net/ethernet/xircom/built-in.a
CC drivers/gpu/drm/i915/gt/intel_rc6.o
CC drivers/gpu/drm/drm_atomic_helper.o
AR drivers/net/ethernet/nvidia/built-in.a
CC drivers/gpu/drm/i915/gt/intel_region_lmem.o
AR lib/built-in.a
CC [M] drivers/gpu/drm/xe/xe_mmio.o
CC kernel/delayacct.o
CC fs/drop_caches.o
CC drivers/gpu/drm/drm_atomic_state_helper.o
AR drivers/net/ethernet/synopsys/built-in.a
AR drivers/net/ethernet/pensando/built-in.a
CC drivers/gpu/drm/i915/gt/intel_renderstate.o
CC drivers/gpu/drm/drm_crtc_helper.o
CC [M] drivers/gpu/drm/xe/xe_mocs.o
CC fs/sysctls.o
CC kernel/taskstats.o
CC drivers/gpu/drm/i915/gt/intel_reset.o
CC [M] drivers/gpu/drm/xe/xe_module.o
CC fs/fhandle.o
CC kernel/tsacct.o
CC drivers/gpu/drm/i915/gt/intel_ring.o
CC [M] drivers/gpu/drm/xe/xe_oa.o
CC drivers/gpu/drm/drm_damage_helper.o
CC kernel/tracepoint.o
CC drivers/gpu/drm/i915/gt/intel_ring_submission.o
CC kernel/irq_work.o
AR drivers/net/ethernet/realtek/built-in.a
CC drivers/gpu/drm/drm_flip_work.o
CC [M] drivers/gpu/drm/xe/xe_observation.o
CC drivers/gpu/drm/i915/gt/intel_rps.o
CC kernel/static_call.o
CC drivers/gpu/drm/drm_format_helper.o
AR arch/x86/kernel/built-in.a
CC kernel/padata.o
AR arch/x86/built-in.a
CC [M] drivers/gpu/drm/xe/xe_pat.o
CC drivers/gpu/drm/i915/gt/intel_sa_media.o
CC drivers/gpu/drm/drm_gem_atomic_helper.o
CC drivers/gpu/drm/i915/gt/intel_sseu.o
CC kernel/jump_label.o
AR net/mac80211/built-in.a
AR net/built-in.a
CC drivers/gpu/drm/i915/gt/intel_sseu_debugfs.o
CC drivers/gpu/drm/i915/gt/intel_timeline.o
CC kernel/context_tracking.o
CC drivers/gpu/drm/drm_gem_framebuffer_helper.o
CC kernel/iomem.o
AR drivers/net/ethernet/intel/e1000e/built-in.a
CC [M] drivers/gpu/drm/xe/xe_pci.o
CC kernel/rseq.o
AR drivers/net/ethernet/intel/built-in.a
AR drivers/net/ethernet/built-in.a
CC [M] drivers/gpu/drm/xe/xe_pcode.o
CC drivers/gpu/drm/drm_kms_helper_common.o
CC drivers/gpu/drm/i915/gt/intel_tlb.o
AR drivers/net/built-in.a
CC [M] drivers/gpu/drm/xe/xe_pm.o
CC drivers/gpu/drm/i915/gt/intel_wopcm.o
CC [M] drivers/gpu/drm/xe/xe_preempt_fence.o
CC drivers/gpu/drm/drm_modeset_helper.o
CC [M] drivers/gpu/drm/xe/xe_pt.o
CC drivers/gpu/drm/i915/gt/intel_workarounds.o
CC drivers/gpu/drm/drm_plane_helper.o
CC drivers/gpu/drm/i915/gt/shmem_utils.o
CC [M] drivers/gpu/drm/xe/xe_pt_walk.o
CC drivers/gpu/drm/i915/gt/sysfs_engines.o
CC drivers/gpu/drm/drm_probe_helper.o
CC drivers/gpu/drm/i915/gt/intel_ggtt_gmch.o
CC [M] drivers/gpu/drm/xe/xe_pxp.o
CC drivers/gpu/drm/drm_self_refresh_helper.o
CC drivers/gpu/drm/i915/gt/gen6_renderstate.o
CC drivers/gpu/drm/drm_simple_kms_helper.o
CC drivers/gpu/drm/i915/gt/gen7_renderstate.o
CC drivers/gpu/drm/bridge/panel.o
AR fs/built-in.a
CC drivers/gpu/drm/i915/gt/gen8_renderstate.o
CC [M] drivers/gpu/drm/xe/xe_pxp_debugfs.o
CC drivers/gpu/drm/drm_mipi_dsi.o
CC drivers/gpu/drm/i915/gt/gen9_renderstate.o
CC [M] drivers/gpu/drm/xe/xe_pxp_submit.o
CC [M] drivers/gpu/drm/xe/xe_query.o
CC drivers/gpu/drm/i915/gem/i915_gem_busy.o
CC [M] drivers/gpu/drm/drm_exec.o
CC drivers/gpu/drm/i915/gem/i915_gem_clflush.o
CC [M] drivers/gpu/drm/drm_gpuvm.o
CC [M] drivers/gpu/drm/xe/xe_range_fence.o
CC [M] drivers/gpu/drm/drm_suballoc.o
CC [M] drivers/gpu/drm/xe/xe_reg_sr.o
CC [M] drivers/gpu/drm/drm_gem_ttm_helper.o
CC [M] drivers/gpu/drm/xe/xe_reg_whitelist.o
CC drivers/gpu/drm/i915/gem/i915_gem_context.o
CC [M] drivers/gpu/drm/xe/xe_ring_ops.o
CC drivers/gpu/drm/i915/gem/i915_gem_create.o
CC drivers/gpu/drm/i915/gem/i915_gem_dmabuf.o
CC drivers/gpu/drm/i915/gem/i915_gem_domain.o
CC [M] drivers/gpu/drm/xe/xe_rtp.o
AR kernel/built-in.a
CC drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o
CC [M] drivers/gpu/drm/xe/xe_sa.o
CC [M] drivers/gpu/drm/xe/xe_sched_job.o
CC drivers/gpu/drm/i915/gem/i915_gem_internal.o
CC drivers/gpu/drm/i915/gem/i915_gem_lmem.o
CC [M] drivers/gpu/drm/xe/xe_step.o
CC drivers/gpu/drm/i915/gem/i915_gem_mman.o
CC [M] drivers/gpu/drm/xe/xe_survivability_mode.o
CC drivers/gpu/drm/i915/gem/i915_gem_object.o
CC [M] drivers/gpu/drm/xe/xe_sync.o
CC drivers/gpu/drm/i915/gem/i915_gem_pages.o
CC drivers/gpu/drm/i915/gem/i915_gem_phys.o
CC [M] drivers/gpu/drm/xe/xe_tile.o
CC drivers/gpu/drm/i915/gem/i915_gem_pm.o
CC drivers/gpu/drm/i915/gem/i915_gem_region.o
CC [M] drivers/gpu/drm/xe/xe_tile_sysfs.o
CC drivers/gpu/drm/i915/gem/i915_gem_shmem.o
CC [M] drivers/gpu/drm/xe/xe_trace.o
CC drivers/gpu/drm/i915/gem/i915_gem_shrinker.o
CC drivers/gpu/drm/i915/gem/i915_gem_stolen.o
CC [M] drivers/gpu/drm/xe/xe_trace_bo.o
CC [M] drivers/gpu/drm/xe/xe_trace_guc.o
CC drivers/gpu/drm/i915/gem/i915_gem_throttle.o
LD [M] drivers/gpu/drm/drm_suballoc_helper.o
CC [M] drivers/gpu/drm/xe/xe_trace_lrc.o
CC drivers/gpu/drm/i915/gem/i915_gem_tiling.o
CC [M] drivers/gpu/drm/xe/xe_ttm_stolen_mgr.o
CC [M] drivers/gpu/drm/xe/xe_ttm_sys_mgr.o
CC drivers/gpu/drm/i915/gem/i915_gem_ttm.o
LD [M] drivers/gpu/drm/drm_ttm_helper.o
CC [M] drivers/gpu/drm/xe/xe_ttm_vram_mgr.o
CC drivers/gpu/drm/i915/gem/i915_gem_ttm_move.o
CC drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.o
CC [M] drivers/gpu/drm/xe/xe_tuning.o
CC [M] drivers/gpu/drm/xe/xe_uc.o
CC [M] drivers/gpu/drm/xe/xe_uc_fw.o
CC drivers/gpu/drm/i915/gem/i915_gem_userptr.o
CC [M] drivers/gpu/drm/xe/xe_vm.o
CC drivers/gpu/drm/i915/gem/i915_gem_wait.o
CC drivers/gpu/drm/i915/gem/i915_gemfs.o
CC [M] drivers/gpu/drm/xe/xe_vram.o
CC [M] drivers/gpu/drm/xe/xe_vram_freq.o
CC drivers/gpu/drm/i915/i915_active.o
CC [M] drivers/gpu/drm/xe/xe_vsec.o
CC drivers/gpu/drm/i915/i915_cmd_parser.o
CC [M] drivers/gpu/drm/xe/xe_wa.o
CC [M] drivers/gpu/drm/xe/xe_wait_user_fence.o
CC [M] drivers/gpu/drm/xe/xe_wopcm.o
CC drivers/gpu/drm/i915/i915_deps.o
CC drivers/gpu/drm/i915/i915_gem.o
CC drivers/gpu/drm/i915/i915_gem_evict.o
CC [M] drivers/gpu/drm/xe/xe_hmm.o
CC drivers/gpu/drm/i915/i915_gem_gtt.o
CC [M] drivers/gpu/drm/xe/xe_hwmon.o
CC drivers/gpu/drm/i915/i915_gem_ww.o
CC drivers/gpu/drm/i915/i915_query.o
CC [M] drivers/gpu/drm/xe/xe_pmu.o
CC [M] drivers/gpu/drm/xe/xe_gt_sriov_vf.o
CC drivers/gpu/drm/i915/i915_request.o
CC drivers/gpu/drm/i915/i915_scheduler.o
CC [M] drivers/gpu/drm/xe/xe_guc_relay.o
CC drivers/gpu/drm/i915/i915_trace_points.o
CC drivers/gpu/drm/i915/i915_ttm_buddy_manager.o
CC [M] drivers/gpu/drm/xe/xe_memirq.o
CC drivers/gpu/drm/i915/i915_vma.o
CC [M] drivers/gpu/drm/xe/xe_sriov.o
CC drivers/gpu/drm/i915/i915_vma_resource.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_fw.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_proxy.o
CC [M] drivers/gpu/drm/xe/xe_sriov_vf.o
CC [M] drivers/gpu/drm/xe/display/ext/i915_irq.o
CC [M] drivers/gpu/drm/xe/display/ext/i915_utils.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_debugfs.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_heci_cmd_submit.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc.o
CC [M] drivers/gpu/drm/xe/display/intel_bo.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_ads.o
CC [M] drivers/gpu/drm/xe/display/intel_fb_bo.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_capture.o
CC [M] drivers/gpu/drm/xe/display/intel_fbdev_fb.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_ct.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.o
CC [M] drivers/gpu/drm/xe/display/xe_display.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_fw.o
CC [M] drivers/gpu/drm/xe/display/xe_display_misc.o
CC [M] drivers/gpu/drm/xe/display/xe_display_rps.o
CC [M] drivers/gpu/drm/xe/display/xe_display_wa.o
CC [M] drivers/gpu/drm/xe/display/xe_dsb_buffer.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_hwconfig.o
CC [M] drivers/gpu/drm/xe/display/xe_fb_pin.o
CC [M] drivers/gpu/drm/xe/display/xe_hdcp_gsc.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_log.o
CC [M] drivers/gpu/drm/xe/display/xe_plane_initial.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_log_debugfs.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_rc.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.o
CC [M] drivers/gpu/drm/xe/display/xe_tdf.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_submission.o
CC [M] drivers/gpu/drm/xe/i915-soc/intel_dram.o
CC drivers/gpu/drm/i915/gt/uc/intel_huc.o
CC [M] drivers/gpu/drm/xe/i915-soc/intel_pch.o
CC drivers/gpu/drm/i915/gt/uc/intel_huc_debugfs.o
CC [M] drivers/gpu/drm/xe/i915-soc/intel_rom.o
CC drivers/gpu/drm/i915/gt/uc/intel_huc_fw.o
CC [M] drivers/gpu/drm/xe/i915-display/icl_dsi.o
CC drivers/gpu/drm/i915/gt/uc/intel_uc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_alpm.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_atomic.o
CC drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.o
CC drivers/gpu/drm/i915/gt/uc/intel_uc_fw.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_atomic_plane.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_audio.o
CC drivers/gpu/drm/i915/gt/intel_gsc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_backlight.o
CC drivers/gpu/drm/i915/i915_hwmon.o
CC drivers/gpu/drm/i915/display/hsw_ips.o
CC drivers/gpu/drm/i915/display/i9xx_plane.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_bios.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_bw.o
CC drivers/gpu/drm/i915/display/i9xx_display_sr.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_cdclk.o
CC drivers/gpu/drm/i915/display/i9xx_wm.o
CC drivers/gpu/drm/i915/display/intel_alpm.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_cmtg.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_color.o
CC drivers/gpu/drm/i915/display/intel_atomic.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_combo_phy.o
CC drivers/gpu/drm/i915/display/intel_atomic_plane.o
CC drivers/gpu/drm/i915/display/intel_audio.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_connector.o
CC drivers/gpu/drm/i915/display/intel_bios.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_crtc.o
CC drivers/gpu/drm/i915/display/intel_bo.o
CC drivers/gpu/drm/i915/display/intel_bw.o
CC drivers/gpu/drm/i915/display/intel_cdclk.o
CC drivers/gpu/drm/i915/display/intel_cmtg.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_crtc_state_dump.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_cursor.o
CC drivers/gpu/drm/i915/display/intel_color.o
CC drivers/gpu/drm/i915/display/intel_combo_phy.o
CC drivers/gpu/drm/i915/display/intel_connector.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_cx0_phy.o
CC drivers/gpu/drm/i915/display/intel_crtc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_ddi.o
CC drivers/gpu/drm/i915/display/intel_crtc_state_dump.o
CC drivers/gpu/drm/i915/display/intel_cursor.o
CC drivers/gpu/drm/i915/display/intel_display.o
CC drivers/gpu/drm/i915/display/intel_display_conversion.o
CC drivers/gpu/drm/i915/display/intel_display_driver.o
CC drivers/gpu/drm/i915/display/intel_display_irq.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_ddi_buf_trans.o
CC drivers/gpu/drm/i915/display/intel_display_params.o
CC drivers/gpu/drm/i915/display/intel_display_power.o
CC drivers/gpu/drm/i915/display/intel_display_power_map.o
CC drivers/gpu/drm/i915/display/intel_display_power_well.o
CC drivers/gpu/drm/i915/display/intel_display_reset.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_conversion.o
CC drivers/gpu/drm/i915/display/intel_display_rps.o
CC drivers/gpu/drm/i915/display/intel_display_snapshot.o
CC drivers/gpu/drm/i915/display/intel_display_wa.o
CC drivers/gpu/drm/i915/display/intel_dmc.o
CC drivers/gpu/drm/i915/display/intel_dmc_wl.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_device.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_driver.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_irq.o
CC drivers/gpu/drm/i915/display/intel_dpio_phy.o
CC drivers/gpu/drm/i915/display/intel_dpll.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_params.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_power.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_power_map.o
CC drivers/gpu/drm/i915/display/intel_dpll_mgr.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_power_well.o
CC drivers/gpu/drm/i915/display/intel_dpt.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_trace.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_wa.o
CC drivers/gpu/drm/i915/display/intel_dpt_common.o
CC drivers/gpu/drm/i915/display/intel_drrs.o
CC drivers/gpu/drm/i915/display/intel_dsb.o
CC drivers/gpu/drm/i915/display/intel_dsb_buffer.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dkl_phy.o
CC drivers/gpu/drm/i915/display/intel_fb.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dmc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dmc_wl.o
CC drivers/gpu/drm/i915/display/intel_fb_bo.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_aux.o
CC drivers/gpu/drm/i915/display/intel_fb_pin.o
CC drivers/gpu/drm/i915/display/intel_fbc.o
CC drivers/gpu/drm/i915/display/intel_fdi.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_aux_backlight.o
CC drivers/gpu/drm/i915/display/intel_fifo_underrun.o
CC drivers/gpu/drm/i915/display/intel_frontbuffer.o
CC drivers/gpu/drm/i915/display/intel_global_state.o
CC drivers/gpu/drm/i915/display/intel_hdcp.o
CC drivers/gpu/drm/i915/display/intel_hdcp_gsc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_hdcp.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_link_training.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_mst.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_test.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dpll.o
CC drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dpll_mgr.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dpt_common.o
CC drivers/gpu/drm/i915/display/intel_hotplug.o
CC drivers/gpu/drm/i915/display/intel_hotplug_irq.o
CC drivers/gpu/drm/i915/display/intel_hti.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_drrs.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dsb.o
CC drivers/gpu/drm/i915/display/intel_link_bw.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dsi.o
CC drivers/gpu/drm/i915/display/intel_load_detect.o
CC drivers/gpu/drm/i915/display/intel_lpe_audio.o
CC drivers/gpu/drm/i915/display/intel_modeset_lock.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dsi_dcs_backlight.o
CC drivers/gpu/drm/i915/display/intel_modeset_setup.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dsi_vbt.o
CC drivers/gpu/drm/i915/display/intel_modeset_verify.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_encoder.o
CC drivers/gpu/drm/i915/display/intel_overlay.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_fb.o
CC drivers/gpu/drm/i915/display/intel_pch_display.o
CC drivers/gpu/drm/i915/display/intel_pch_refclk.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_fbc.o
CC drivers/gpu/drm/i915/display/intel_plane_initial.o
CC drivers/gpu/drm/i915/display/intel_pmdemand.o
CC drivers/gpu/drm/i915/display/intel_psr.o
CC drivers/gpu/drm/i915/display/intel_quirks.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_fdi.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_fifo_underrun.o
CC drivers/gpu/drm/i915/display/intel_sprite.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_frontbuffer.o
CC drivers/gpu/drm/i915/display/intel_sprite_uapi.o
CC drivers/gpu/drm/i915/display/intel_tc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_global_state.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_gmbus.o
CC drivers/gpu/drm/i915/display/intel_vblank.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hdcp.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hdcp_gsc_message.o
CC drivers/gpu/drm/i915/display/intel_vga.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hdmi.o
CC drivers/gpu/drm/i915/display/intel_wm.o
CC drivers/gpu/drm/i915/display/skl_scaler.o
CC drivers/gpu/drm/i915/display/skl_universal_plane.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hotplug.o
CC drivers/gpu/drm/i915/display/skl_watermark.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hotplug_irq.o
CC drivers/gpu/drm/i915/display/intel_acpi.o
CC drivers/gpu/drm/i915/display/intel_opregion.o
CC drivers/gpu/drm/i915/display/intel_display_debugfs.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hti.o
CC drivers/gpu/drm/i915/display/intel_display_debugfs_params.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_link_bw.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_lspcon.o
CC drivers/gpu/drm/i915/display/intel_pipe_crc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_modeset_lock.o
CC drivers/gpu/drm/i915/display/dvo_ch7017.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_modeset_setup.o
CC drivers/gpu/drm/i915/display/dvo_ch7xxx.o
CC drivers/gpu/drm/i915/display/dvo_ivch.o
CC drivers/gpu/drm/i915/display/dvo_ns2501.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_modeset_verify.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_panel.o
CC drivers/gpu/drm/i915/display/dvo_sil164.o
CC drivers/gpu/drm/i915/display/dvo_tfp410.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_pfit.o
CC drivers/gpu/drm/i915/display/g4x_dp.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_pmdemand.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_pps.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_psr.o
CC drivers/gpu/drm/i915/display/g4x_hdmi.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_qp_tables.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_quirks.o
CC drivers/gpu/drm/i915/display/icl_dsi.o
CC drivers/gpu/drm/i915/display/intel_backlight.o
CC drivers/gpu/drm/i915/display/intel_crt.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_snps_hdmi_pll.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_snps_phy.o
CC drivers/gpu/drm/i915/display/intel_cx0_phy.o
CC drivers/gpu/drm/i915/display/intel_ddi.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_tc.o
CC drivers/gpu/drm/i915/display/intel_ddi_buf_trans.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_vblank.o
CC drivers/gpu/drm/i915/display/intel_display_device.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_vdsc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_vga.o
CC drivers/gpu/drm/i915/display/intel_display_trace.o
CC drivers/gpu/drm/i915/display/intel_dkl_phy.o
CC drivers/gpu/drm/i915/display/intel_dp.o
CC drivers/gpu/drm/i915/display/intel_dp_aux.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_vrr.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_wm.o
CC drivers/gpu/drm/i915/display/intel_dp_aux_backlight.o
CC drivers/gpu/drm/i915/display/intel_dp_hdcp.o
CC drivers/gpu/drm/i915/display/intel_dp_link_training.o
CC [M] drivers/gpu/drm/xe/i915-display/skl_scaler.o
CC [M] drivers/gpu/drm/xe/i915-display/skl_universal_plane.o
CC [M] drivers/gpu/drm/xe/i915-display/skl_watermark.o
CC drivers/gpu/drm/i915/display/intel_dp_mst.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_acpi.o
CC drivers/gpu/drm/i915/display/intel_dp_test.o
CC drivers/gpu/drm/i915/display/intel_dsi.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_opregion.o
CC [M] drivers/gpu/drm/xe/xe_debugfs.o
CC [M] drivers/gpu/drm/xe/xe_gt_debugfs.o
CC [M] drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.o
CC [M] drivers/gpu/drm/xe/xe_gt_stats.o
CC drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.o
CC [M] drivers/gpu/drm/xe/xe_guc_debugfs.o
CC drivers/gpu/drm/i915/display/intel_dsi_vbt.o
CC [M] drivers/gpu/drm/xe/xe_huc_debugfs.o
CC drivers/gpu/drm/i915/display/intel_dvo.o
CC [M] drivers/gpu/drm/xe/xe_uc_debugfs.o
CC drivers/gpu/drm/i915/display/intel_encoder.o
CC drivers/gpu/drm/i915/display/intel_gmbus.o
CC drivers/gpu/drm/i915/display/intel_hdmi.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_debugfs.o
CC drivers/gpu/drm/i915/display/intel_lspcon.o
CC drivers/gpu/drm/i915/display/intel_lvds.o
CC drivers/gpu/drm/i915/display/intel_panel.o
CC drivers/gpu/drm/i915/display/intel_pfit.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_debugfs_params.o
CC drivers/gpu/drm/i915/display/intel_pps.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_pipe_crc.o
CC drivers/gpu/drm/i915/display/intel_qp_tables.o
CC drivers/gpu/drm/i915/display/intel_sdvo.o
CC drivers/gpu/drm/i915/display/intel_snps_hdmi_pll.o
CC drivers/gpu/drm/i915/display/intel_snps_phy.o
CC drivers/gpu/drm/i915/display/intel_tv.o
CC drivers/gpu/drm/i915/display/intel_vdsc.o
CC drivers/gpu/drm/i915/display/intel_vrr.o
CC drivers/gpu/drm/i915/display/vlv_dsi.o
CC drivers/gpu/drm/i915/display/vlv_dsi_pll.o
CC drivers/gpu/drm/i915/i915_perf.o
CC drivers/gpu/drm/i915/pxp/intel_pxp.o
CC drivers/gpu/drm/i915/pxp/intel_pxp_huc.o
CC drivers/gpu/drm/i915/pxp/intel_pxp_tee.o
CC drivers/gpu/drm/i915/i915_gpu_error.o
CC drivers/gpu/drm/i915/i915_vgpu.o
LD [M] drivers/gpu/drm/xe/xe.o
AR drivers/gpu/drm/i915/built-in.a
AR drivers/gpu/drm/built-in.a
AR drivers/gpu/built-in.a
AR drivers/built-in.a
AR built-in.a
AR vmlinux.a
LD vmlinux.o
OBJCOPY modules.builtin.modinfo
GEN modules.builtin
MODPOST Module.symvers
CC .vmlinux.export.o
CC [M] fs/efivarfs/efivarfs.mod.o
CC [M] .module-common.o
CC [M] drivers/gpu/drm/drm_exec.mod.o
CC [M] drivers/gpu/drm/drm_gpuvm.mod.o
CC [M] drivers/gpu/drm/drm_suballoc_helper.mod.o
CC [M] drivers/gpu/drm/drm_ttm_helper.mod.o
CC [M] drivers/gpu/drm/scheduler/gpu-sched.mod.o
CC [M] drivers/gpu/drm/xe/xe.mod.o
CC [M] drivers/thermal/intel/x86_pkg_temp_thermal.mod.o
CC [M] net/netfilter/nf_log_syslog.mod.o
CC [M] net/netfilter/xt_mark.mod.o
CC [M] net/netfilter/xt_nat.mod.o
CC [M] net/netfilter/xt_LOG.mod.o
CC [M] net/netfilter/xt_MASQUERADE.mod.o
CC [M] net/netfilter/xt_addrtype.mod.o
CC [M] net/ipv4/netfilter/iptable_nat.mod.o
LD [M] fs/efivarfs/efivarfs.ko
LD [M] drivers/gpu/drm/drm_ttm_helper.ko
LD [M] drivers/gpu/drm/drm_suballoc_helper.ko
LD [M] drivers/gpu/drm/scheduler/gpu-sched.ko
LD [M] drivers/gpu/drm/xe/xe.ko
LD [M] net/netfilter/xt_mark.ko
LD [M] drivers/gpu/drm/drm_gpuvm.ko
LD [M] net/netfilter/nf_log_syslog.ko
LD [M] net/netfilter/xt_LOG.ko
LD [M] net/netfilter/xt_addrtype.ko
LD [M] net/ipv4/netfilter/iptable_nat.ko
LD [M] drivers/thermal/intel/x86_pkg_temp_thermal.ko
LD [M] net/netfilter/xt_MASQUERADE.ko
LD [M] net/netfilter/xt_nat.ko
LD [M] drivers/gpu/drm/drm_exec.ko
UPD include/generated/utsversion.h
CC init/version-timestamp.o
KSYMS .tmp_vmlinux0.kallsyms.S
AS .tmp_vmlinux0.kallsyms.o
LD .tmp_vmlinux1
NM .tmp_vmlinux1.syms
KSYMS .tmp_vmlinux1.kallsyms.S
AS .tmp_vmlinux1.kallsyms.o
LD .tmp_vmlinux2
NM .tmp_vmlinux2.syms
KSYMS .tmp_vmlinux2.kallsyms.S
AS .tmp_vmlinux2.kallsyms.o
LD vmlinux
NM System.map
SORTTAB vmlinux
RELOCS arch/x86/boot/compressed/vmlinux.relocs
RSTRIP vmlinux
CC arch/x86/boot/a20.o
AS arch/x86/boot/bioscall.o
CC arch/x86/boot/cmdline.o
AS arch/x86/boot/copy.o
HOSTCC arch/x86/boot/mkcpustr
CC arch/x86/boot/cpuflags.o
CC arch/x86/boot/cpucheck.o
CC arch/x86/boot/early_serial_console.o
CC arch/x86/boot/edd.o
CC arch/x86/boot/main.o
CC arch/x86/boot/memory.o
CC arch/x86/boot/pm.o
AS arch/x86/boot/pmjump.o
CC arch/x86/boot/printf.o
CC arch/x86/boot/regs.o
CC arch/x86/boot/string.o
CC arch/x86/boot/tty.o
CC arch/x86/boot/video.o
CC arch/x86/boot/video-mode.o
CC arch/x86/boot/version.o
CC arch/x86/boot/video-vga.o
CC arch/x86/boot/video-vesa.o
CC arch/x86/boot/video-bios.o
HOSTCC arch/x86/boot/tools/build
CPUSTR arch/x86/boot/cpustr.h
CC arch/x86/boot/cpu.o
LDS arch/x86/boot/compressed/vmlinux.lds
AS arch/x86/boot/compressed/kernel_info.o
AS arch/x86/boot/compressed/head_32.o
VOFFSET arch/x86/boot/compressed/../voffset.h
CC arch/x86/boot/compressed/string.o
CC arch/x86/boot/compressed/cmdline.o
CC arch/x86/boot/compressed/error.o
OBJCOPY arch/x86/boot/compressed/vmlinux.bin
HOSTCC arch/x86/boot/compressed/mkpiggy
CC arch/x86/boot/compressed/cpuflags.o
CC arch/x86/boot/compressed/early_serial_console.o
CC arch/x86/boot/compressed/kaslr.o
CC arch/x86/boot/compressed/acpi.o
CC arch/x86/boot/compressed/efi.o
GZIP arch/x86/boot/compressed/vmlinux.bin.gz
CC arch/x86/boot/compressed/misc.o
MKPIGGY arch/x86/boot/compressed/piggy.S
AS arch/x86/boot/compressed/piggy.o
LD arch/x86/boot/compressed/vmlinux
ZOFFSET arch/x86/boot/zoffset.h
OBJCOPY arch/x86/boot/vmlinux.bin
AS arch/x86/boot/header.o
LD arch/x86/boot/setup.elf
OBJCOPY arch/x86/boot/setup.bin
BUILD arch/x86/boot/bzImage
Kernel: arch/x86/boot/bzImage is ready (#1)
run-parts: executing /workspace/ci/hooks/20-kernel-doc
+ SRC_DIR=/workspace/kernel
+ cd /workspace/kernel
+ find drivers/gpu/drm/xe/ -name '*.[ch]' -not -path 'drivers/gpu/drm/xe/display/*'
+ xargs ./scripts/kernel-doc -Werror -none include/uapi/drm/xe_drm.h
All hooks done
^ permalink raw reply [flat|nested] 29+ messages in thread* ✓ CI.checksparse: success for series starting with [1/3] drm/xe: Introduced needs_scratch bit in device descriptor
2025-02-13 2:23 [PATCH 1/3] drm/xe: Introduced needs_scratch bit in device descriptor Oak Zeng
` (6 preceding siblings ...)
2025-02-13 2:37 ` ✓ CI.Hooks: " Patchwork
@ 2025-02-13 2:38 ` Patchwork
2025-02-13 2:58 ` ✓ Xe.CI.BAT: " Patchwork
` (3 subsequent siblings)
11 siblings, 0 replies; 29+ messages in thread
From: Patchwork @ 2025-02-13 2:38 UTC (permalink / raw)
To: Oak Zeng; +Cc: intel-xe
== Series Details ==
Series: series starting with [1/3] drm/xe: Introduced needs_scratch bit in device descriptor
URL : https://patchwork.freedesktop.org/series/144766/
State : success
== Summary ==
+ trap cleanup EXIT
+ KERNEL=/kernel
+ MT=/root/linux/maintainer-tools
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools /root/linux/maintainer-tools
Cloning into '/root/linux/maintainer-tools'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ make -C /root/linux/maintainer-tools
make: Entering directory '/root/linux/maintainer-tools'
cc -O2 -g -Wextra -o remap-log remap-log.c
make: Leaving directory '/root/linux/maintainer-tools'
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ /root/linux/maintainer-tools/dim sparse --fast 1be945721fec4f48df1fb728863be1b9a594b571
Sparse version: 0.6.4 (Ubuntu: 0.6.4-4ubuntu3)
Fast mode used, each commit won't be checked separately.
Okay!
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 29+ messages in thread* ✓ Xe.CI.BAT: success for series starting with [1/3] drm/xe: Introduced needs_scratch bit in device descriptor
2025-02-13 2:23 [PATCH 1/3] drm/xe: Introduced needs_scratch bit in device descriptor Oak Zeng
` (7 preceding siblings ...)
2025-02-13 2:38 ` ✓ CI.checksparse: " Patchwork
@ 2025-02-13 2:58 ` Patchwork
2025-02-13 14:56 ` ✗ Xe.CI.Full: failure " Patchwork
` (2 subsequent siblings)
11 siblings, 0 replies; 29+ messages in thread
From: Patchwork @ 2025-02-13 2:58 UTC (permalink / raw)
To: Oak Zeng; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 3043 bytes --]
== Series Details ==
Series: series starting with [1/3] drm/xe: Introduced needs_scratch bit in device descriptor
URL : https://patchwork.freedesktop.org/series/144766/
State : success
== Summary ==
CI Bug Log - changes from xe-2654-4af00c2e09da0269f3f329e660b6417037041bea_BAT -> xe-pw-144766v1_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (9 -> 8)
------------------------------
Missing (1): bat-adlp-vm
Known issues
------------
Here are the changes found in xe-pw-144766v1_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit:
- bat-adlp-vf: NOTRUN -> [SKIP][1] ([Intel XE#2229] / [Intel XE#455]) +1 other test skip
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/bat-adlp-vf/igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit.html
* igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit:
- bat-adlp-vf: NOTRUN -> [SKIP][2] ([Intel XE#2229])
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/bat-adlp-vf/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html
#### Possible fixes ####
* igt@xe_live_ktest@xe_migrate:
- bat-adlp-vf: [SKIP][3] ([Intel XE#1192]) -> [PASS][4] +1 other test pass
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/bat-adlp-vf/igt@xe_live_ktest@xe_migrate.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/bat-adlp-vf/igt@xe_live_ktest@xe_migrate.html
* igt@xe_vm@munmap-style-unbind-front:
- bat-adlp-vf: [DMESG-WARN][5] ([Intel XE#3970]) -> [PASS][6]
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/bat-adlp-vf/igt@xe_vm@munmap-style-unbind-front.html
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/bat-adlp-vf/igt@xe_vm@munmap-style-unbind-front.html
#### Warnings ####
* igt@xe_live_ktest@xe_bo:
- bat-adlp-vf: [SKIP][7] ([Intel XE#1192]) -> [SKIP][8] ([Intel XE#2229] / [Intel XE#455])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/bat-adlp-vf/igt@xe_live_ktest@xe_bo.html
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/bat-adlp-vf/igt@xe_live_ktest@xe_bo.html
[Intel XE#1192]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1192
[Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
[Intel XE#3970]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3970
[Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
Build changes
-------------
* Linux: xe-2654-4af00c2e09da0269f3f329e660b6417037041bea -> xe-pw-144766v1
IGT_8229: 8229
xe-2654-4af00c2e09da0269f3f329e660b6417037041bea: 4af00c2e09da0269f3f329e660b6417037041bea
xe-pw-144766v1: 144766v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/index.html
[-- Attachment #2: Type: text/html, Size: 4001 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread* ✗ Xe.CI.Full: failure for series starting with [1/3] drm/xe: Introduced needs_scratch bit in device descriptor
2025-02-13 2:23 [PATCH 1/3] drm/xe: Introduced needs_scratch bit in device descriptor Oak Zeng
` (8 preceding siblings ...)
2025-02-13 2:58 ` ✓ Xe.CI.BAT: " Patchwork
@ 2025-02-13 14:56 ` Patchwork
2025-02-24 15:40 ` [PATCH 1/3] " Zeng, Oak
2025-02-25 22:13 ` Matthew Brost
11 siblings, 0 replies; 29+ messages in thread
From: Patchwork @ 2025-02-13 14:56 UTC (permalink / raw)
To: Oak Zeng; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 53467 bytes --]
== Series Details ==
Series: series starting with [1/3] drm/xe: Introduced needs_scratch bit in device descriptor
URL : https://patchwork.freedesktop.org/series/144766/
State : failure
== Summary ==
CI Bug Log - changes from xe-2654-4af00c2e09da0269f3f329e660b6417037041bea_full -> xe-pw-144766v1_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with xe-pw-144766v1_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in xe-pw-144766v1_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (4 -> 4)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in xe-pw-144766v1_full:
### IGT changes ###
#### Possible regressions ####
* igt@kms_big_fb@x-tiled-16bpp-rotate-0:
- shard-adlp: [PASS][1] -> [DMESG-WARN][2] +1 other test dmesg-warn
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-adlp-6/igt@kms_big_fb@x-tiled-16bpp-rotate-0.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-adlp-2/igt@kms_big_fb@x-tiled-16bpp-rotate-0.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs-cc:
- shard-dg2-set2: NOTRUN -> [INCOMPLETE][3] +1 other test incomplete
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-436/igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_dp_linktrain_fallback@dp-fallback:
- shard-dg2-set2: [PASS][4] -> [SKIP][5]
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-433/igt@kms_dp_linktrain_fallback@dp-fallback.html
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-464/igt@kms_dp_linktrain_fallback@dp-fallback.html
#### Warnings ####
* igt@kms_content_protection@srm:
- shard-dg2-set2: [DMESG-FAIL][6] ([Intel XE#1033]) -> [INCOMPLETE][7]
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-435/igt@kms_content_protection@srm.html
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-433/igt@kms_content_protection@srm.html
* igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset:
- shard-bmg: [SKIP][8] ([Intel XE#2316]) -> [DMESG-WARN][9]
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-4/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset.html
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-5/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* {igt@kms_joiner@basic-max-non-joiner}:
- shard-dg2-set2: NOTRUN -> [SKIP][10]
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-466/igt@kms_joiner@basic-max-non-joiner.html
New tests
---------
New tests have been introduced between xe-2654-4af00c2e09da0269f3f329e660b6417037041bea_full and xe-pw-144766v1_full:
### New IGT tests (1) ###
* igt@kms_cursor_edge_walk@128x128-top-edge@pipe-d-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [3.24] s
Known issues
------------
Here are the changes found in xe-pw-144766v1_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_async_flips@alternate-sync-async-flip:
- shard-dg2-set2: [PASS][11] -> [FAIL][12] ([Intel XE#827])
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-436/igt@kms_async_flips@alternate-sync-async-flip.html
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-432/igt@kms_async_flips@alternate-sync-async-flip.html
* igt@kms_async_flips@alternate-sync-async-flip@pipe-a-hdmi-a-2:
- shard-dg2-set2: NOTRUN -> [FAIL][13] ([Intel XE#827])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-432/igt@kms_async_flips@alternate-sync-async-flip@pipe-a-hdmi-a-2.html
* igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-d-hdmi-a-2-4-rc-ccs-cc:
- shard-dg2-set2: NOTRUN -> [SKIP][14] ([Intel XE#3767]) +15 other tests skip
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-432/igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-d-hdmi-a-2-4-rc-ccs-cc.html
* igt@kms_atomic@plane-primary-overlay-mutable-zpos:
- shard-lnl: NOTRUN -> [SKIP][15] ([Intel XE#3279])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-lnl-6/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
- shard-lnl: NOTRUN -> [SKIP][16] ([Intel XE#3658])
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-lnl-6/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html
* igt@kms_big_fb@x-tiled-32bpp-rotate-90:
- shard-lnl: NOTRUN -> [SKIP][17] ([Intel XE#1407])
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-lnl-6/igt@kms_big_fb@x-tiled-32bpp-rotate-90.html
* igt@kms_big_fb@y-tiled-16bpp-rotate-0:
- shard-dg2-set2: NOTRUN -> [SKIP][18] ([Intel XE#1124]) +1 other test skip
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-466/igt@kms_big_fb@y-tiled-16bpp-rotate-0.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
- shard-bmg: NOTRUN -> [SKIP][19] ([Intel XE#1124]) +2 other tests skip
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-7/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip:
- shard-lnl: NOTRUN -> [SKIP][20] ([Intel XE#1124])
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-lnl-6/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
* igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p:
- shard-bmg: [PASS][21] -> [SKIP][22] ([Intel XE#2314] / [Intel XE#2894])
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-5/igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p.html
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-4/igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p.html
* igt@kms_bw@linear-tiling-4-displays-2160x1440p:
- shard-dg2-set2: NOTRUN -> [SKIP][23] ([Intel XE#367])
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-466/igt@kms_bw@linear-tiling-4-displays-2160x1440p.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs:
- shard-dg2-set2: [PASS][24] -> [INCOMPLETE][25] ([Intel XE#3862])
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-464/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs.html
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-466/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-d-dp-4:
- shard-dg2-set2: NOTRUN -> [INCOMPLETE][26] ([Intel XE#3862])
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-466/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-d-dp-4.html
* igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-6:
- shard-dg2-set2: NOTRUN -> [SKIP][27] ([Intel XE#787]) +151 other tests skip
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-435/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-6.html
* igt@kms_ccs@random-ccs-data-y-tiled-ccs@pipe-d-dp-2:
- shard-dg2-set2: NOTRUN -> [SKIP][28] ([Intel XE#455] / [Intel XE#787]) +25 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-432/igt@kms_ccs@random-ccs-data-y-tiled-ccs@pipe-d-dp-2.html
* igt@kms_cdclk@plane-scaling@pipe-b-dp-2:
- shard-dg2-set2: NOTRUN -> [SKIP][29] ([Intel XE#1152]) +3 other tests skip
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-432/igt@kms_cdclk@plane-scaling@pipe-b-dp-2.html
* igt@kms_chamelium_color@ctm-negative:
- shard-dg2-set2: NOTRUN -> [SKIP][30] ([Intel XE#306])
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-466/igt@kms_chamelium_color@ctm-negative.html
* igt@kms_chamelium_edid@dp-edid-resolution-list:
- shard-lnl: NOTRUN -> [SKIP][31] ([Intel XE#373])
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-lnl-6/igt@kms_chamelium_edid@dp-edid-resolution-list.html
* igt@kms_chamelium_hpd@dp-hpd-fast:
- shard-bmg: NOTRUN -> [SKIP][32] ([Intel XE#2252])
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-7/igt@kms_chamelium_hpd@dp-hpd-fast.html
* igt@kms_chamelium_hpd@dp-hpd-storm-disable:
- shard-dg2-set2: NOTRUN -> [SKIP][33] ([Intel XE#373])
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-466/igt@kms_chamelium_hpd@dp-hpd-storm-disable.html
* igt@kms_content_protection@atomic-dpms@pipe-a-dp-2:
- shard-dg2-set2: NOTRUN -> [FAIL][34] ([Intel XE#1178]) +1 other test fail
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-432/igt@kms_content_protection@atomic-dpms@pipe-a-dp-2.html
* igt@kms_content_protection@lic-type-1:
- shard-dg2-set2: NOTRUN -> [SKIP][35] ([Intel XE#455]) +6 other tests skip
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-466/igt@kms_content_protection@lic-type-1.html
* igt@kms_cursor_crc@cursor-sliding-256x256:
- shard-bmg: NOTRUN -> [INCOMPLETE][36] ([Intel XE#4148]) +1 other test incomplete
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-7/igt@kms_cursor_crc@cursor-sliding-256x256.html
* igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy:
- shard-bmg: [PASS][37] -> [SKIP][38] ([Intel XE#2291]) +5 other tests skip
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-5/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-4/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- shard-dg2-set2: NOTRUN -> [SKIP][39] ([Intel XE#323])
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-466/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
* igt@kms_dsc@dsc-with-output-formats-with-bpc:
- shard-bmg: NOTRUN -> [SKIP][40] ([Intel XE#2244])
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-7/igt@kms_dsc@dsc-with-output-formats-with-bpc.html
* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ad-dp2-hdmi-a3:
- shard-bmg: NOTRUN -> [FAIL][41] ([Intel XE#3321]) +1 other test fail
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-7/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ad-dp2-hdmi-a3.html
* igt@kms_flip@2x-flip-vs-expired-vblank@cd-hdmi-a6-dp4:
- shard-dg2-set2: NOTRUN -> [DMESG-FAIL][42] ([Intel XE#1033]) +1 other test dmesg-fail
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-433/igt@kms_flip@2x-flip-vs-expired-vblank@cd-hdmi-a6-dp4.html
* igt@kms_flip@2x-flip-vs-modeset-vs-hang:
- shard-dg2-set2: [PASS][43] -> [SKIP][44] ([Intel XE#310]) +1 other test skip
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-433/igt@kms_flip@2x-flip-vs-modeset-vs-hang.html
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-464/igt@kms_flip@2x-flip-vs-modeset-vs-hang.html
* igt@kms_flip@2x-flip-vs-suspend-interruptible@cd-hdmi-a6-dp4:
- shard-dg2-set2: NOTRUN -> [DMESG-WARN][45] ([Intel XE#1033]) +8 other tests dmesg-warn
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-433/igt@kms_flip@2x-flip-vs-suspend-interruptible@cd-hdmi-a6-dp4.html
* igt@kms_flip@2x-nonexisting-fb:
- shard-bmg: [PASS][46] -> [SKIP][47] ([Intel XE#2316]) +4 other tests skip
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-1/igt@kms_flip@2x-nonexisting-fb.html
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-4/igt@kms_flip@2x-nonexisting-fb.html
* igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset@cd-dp2-hdmi-a3:
- shard-bmg: NOTRUN -> [DMESG-WARN][48] ([Intel XE#4172]) +4 other tests dmesg-warn
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-5/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset@cd-dp2-hdmi-a3.html
* igt@kms_flip@blocking-wf_vblank@b-hdmi-a1:
- shard-adlp: [PASS][49] -> [FAIL][50] ([Intel XE#2882]) +2 other tests fail
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-adlp-8/igt@kms_flip@blocking-wf_vblank@b-hdmi-a1.html
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-adlp-3/igt@kms_flip@blocking-wf_vblank@b-hdmi-a1.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp2:
- shard-dg2-set2: NOTRUN -> [FAIL][51] ([Intel XE#301]) +10 other tests fail
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-432/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp2.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@b-dp2:
- shard-dg2-set2: NOTRUN -> [FAIL][52] ([Intel XE#301] / [Intel XE#3321])
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-432/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-dp2.html
* igt@kms_flip@flip-vs-expired-vblank@a-dp4:
- shard-dg2-set2: [PASS][53] -> [FAIL][54] ([Intel XE#301] / [Intel XE#3321]) +2 other tests fail
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-434/igt@kms_flip@flip-vs-expired-vblank@a-dp4.html
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-436/igt@kms_flip@flip-vs-expired-vblank@a-dp4.html
* igt@kms_flip@flip-vs-expired-vblank@c-hdmi-a6:
- shard-dg2-set2: [PASS][55] -> [FAIL][56] ([Intel XE#301]) +2 other tests fail
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-434/igt@kms_flip@flip-vs-expired-vblank@c-hdmi-a6.html
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-436/igt@kms_flip@flip-vs-expired-vblank@c-hdmi-a6.html
* igt@kms_frontbuffer_tracking@drrs-1p-offscren-pri-shrfb-draw-render:
- shard-lnl: NOTRUN -> [SKIP][57] ([Intel XE#651])
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-lnl-6/igt@kms_frontbuffer_tracking@drrs-1p-offscren-pri-shrfb-draw-render.html
* igt@kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-onoff:
- shard-dg2-set2: NOTRUN -> [SKIP][58] ([Intel XE#651]) +8 other tests skip
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-433/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-onoff.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][59] ([Intel XE#2311]) +1 other test skip
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-7/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-move:
- shard-dg2-set2: [PASS][60] -> [SKIP][61] ([Intel XE#656]) +2 other tests skip
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-435/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-move.html
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-464/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-move.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-render:
- shard-bmg: NOTRUN -> [SKIP][62] ([Intel XE#4141])
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-7/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-onoff:
- shard-lnl: NOTRUN -> [SKIP][63] ([Intel XE#656]) +2 other tests skip
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-onoff.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][64] ([Intel XE#2313]) +5 other tests skip
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-blt:
- shard-dg2-set2: NOTRUN -> [SKIP][65] ([Intel XE#653]) +6 other tests skip
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-433/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-blt.html
* igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
- shard-lnl: NOTRUN -> [SKIP][66] ([Intel XE#4090])
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-lnl-6/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
* igt@kms_plane_cursor@overlay:
- shard-dg2-set2: [PASS][67] -> [FAIL][68] ([Intel XE#616])
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-432/igt@kms_plane_cursor@overlay.html
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-435/igt@kms_plane_cursor@overlay.html
* igt@kms_plane_cursor@overlay@pipe-a-hdmi-a-6-size-64:
- shard-dg2-set2: NOTRUN -> [FAIL][69] ([Intel XE#616])
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-435/igt@kms_plane_cursor@overlay@pipe-a-hdmi-a-6-size-64.html
* igt@kms_plane_lowres@tiling-4:
- shard-lnl: NOTRUN -> [SKIP][70] ([Intel XE#599]) +3 other tests skip
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-lnl-6/igt@kms_plane_lowres@tiling-4.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-c:
- shard-bmg: NOTRUN -> [SKIP][71] ([Intel XE#2763]) +4 other tests skip
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-7/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-c.html
* igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5:
- shard-dg2-set2: [PASS][72] -> [DMESG-WARN][73] ([Intel XE#1033] / [Intel XE#2566])
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-435/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5.html
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-464/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5.html
* igt@kms_pm_dc@dc6-psr:
- shard-bmg: NOTRUN -> [SKIP][74] ([Intel XE#2392])
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-7/igt@kms_pm_dc@dc6-psr.html
* igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-sf-dmg-area:
- shard-bmg: NOTRUN -> [SKIP][75] ([Intel XE#1489]) +1 other test skip
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-7/igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-sf-dmg-area.html
* igt@kms_psr2_sf@pr-overlay-primary-update-sf-dmg-area:
- shard-dg2-set2: NOTRUN -> [SKIP][76] ([Intel XE#1489])
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-466/igt@kms_psr2_sf@pr-overlay-primary-update-sf-dmg-area.html
* igt@kms_psr@fbc-pr-primary-blt:
- shard-bmg: NOTRUN -> [SKIP][77] ([Intel XE#2234] / [Intel XE#2850]) +1 other test skip
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-7/igt@kms_psr@fbc-pr-primary-blt.html
* igt@kms_psr@fbc-pr-primary-page-flip:
- shard-lnl: NOTRUN -> [SKIP][78] ([Intel XE#1406])
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-lnl-6/igt@kms_psr@fbc-pr-primary-page-flip.html
* igt@kms_psr@pr-sprite-blt:
- shard-dg2-set2: NOTRUN -> [SKIP][79] ([Intel XE#2850] / [Intel XE#929]) +4 other tests skip
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-466/igt@kms_psr@pr-sprite-blt.html
* igt@kms_setmode@clone-exclusive-crtc:
- shard-dg2-set2: [PASS][80] -> [SKIP][81] ([Intel XE#455])
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-435/igt@kms_setmode@clone-exclusive-crtc.html
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-464/igt@kms_setmode@clone-exclusive-crtc.html
* igt@kms_setmode@invalid-clone-single-crtc:
- shard-bmg: [PASS][82] -> [SKIP][83] ([Intel XE#1435])
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-5/igt@kms_setmode@invalid-clone-single-crtc.html
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-4/igt@kms_setmode@invalid-clone-single-crtc.html
* igt@xe_copy_basic@mem-set-linear-0x369:
- shard-dg2-set2: NOTRUN -> [SKIP][84] ([Intel XE#1126])
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-466/igt@xe_copy_basic@mem-set-linear-0x369.html
* igt@xe_eudebug@basic-vm-bind:
- shard-dg2-set2: NOTRUN -> [SKIP][85] ([Intel XE#2905]) +1 other test skip
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-433/igt@xe_eudebug@basic-vm-bind.html
* igt@xe_eudebug_online@interrupt-all:
- shard-lnl: NOTRUN -> [SKIP][86] ([Intel XE#2905])
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-lnl-6/igt@xe_eudebug_online@interrupt-all.html
* igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr:
- shard-bmg: NOTRUN -> [SKIP][87] ([Intel XE#2322])
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-7/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr.html
* igt@xe_exec_basic@multigpu-no-exec-null-defer-bind:
- shard-dg2-set2: [PASS][88] -> [SKIP][89] ([Intel XE#1392]) +6 other tests skip
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-466/igt@xe_exec_basic@multigpu-no-exec-null-defer-bind.html
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-432/igt@xe_exec_basic@multigpu-no-exec-null-defer-bind.html
* igt@xe_exec_fault_mode@once-userptr-rebind:
- shard-dg2-set2: NOTRUN -> [SKIP][90] ([Intel XE#288]) +5 other tests skip
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-466/igt@xe_exec_fault_mode@once-userptr-rebind.html
* igt@xe_exec_threads@threads-mixed-fd-userptr-invalidate:
- shard-bmg: [PASS][91] -> [DMESG-WARN][92] ([Intel XE#4172]) +5 other tests dmesg-warn
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-4/igt@xe_exec_threads@threads-mixed-fd-userptr-invalidate.html
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-4/igt@xe_exec_threads@threads-mixed-fd-userptr-invalidate.html
* igt@xe_gt_freq@freq_suspend:
- shard-lnl: NOTRUN -> [SKIP][93] ([Intel XE#584])
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-lnl-6/igt@xe_gt_freq@freq_suspend.html
* igt@xe_mmap@small-bar:
- shard-dg2-set2: NOTRUN -> [SKIP][94] ([Intel XE#512])
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-433/igt@xe_mmap@small-bar.html
* igt@xe_oa@non-system-wide-paranoid:
- shard-dg2-set2: NOTRUN -> [SKIP][95] ([Intel XE#2541] / [Intel XE#3573])
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-466/igt@xe_oa@non-system-wide-paranoid.html
* igt@xe_pm@s2idle-d3cold-basic-exec:
- shard-lnl: NOTRUN -> [SKIP][96] ([Intel XE#2284] / [Intel XE#366])
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-lnl-6/igt@xe_pm@s2idle-d3cold-basic-exec.html
* igt@xe_pm@s4-vm-bind-prefetch:
- shard-dg2-set2: NOTRUN -> [ABORT][97] ([Intel XE#1033] / [Intel XE#4268])
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-433/igt@xe_pm@s4-vm-bind-prefetch.html
* igt@xe_vm@mixed-userptr-binds-1611661312:
- shard-dg2-set2: [PASS][98] -> [DMESG-WARN][99] ([Intel XE#1033]) +13 other tests dmesg-warn
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-435/igt@xe_vm@mixed-userptr-binds-1611661312.html
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-464/igt@xe_vm@mixed-userptr-binds-1611661312.html
#### Possible fixes ####
* igt@kms_async_flips@alternate-sync-async-flip:
- shard-bmg: [FAIL][100] ([Intel XE#827]) -> [PASS][101] +1 other test pass
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-4/igt@kms_async_flips@alternate-sync-async-flip.html
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-4/igt@kms_async_flips@alternate-sync-async-flip.html
* igt@kms_atomic_transition@modeset-transition-nonblocking-fencing:
- shard-dg2-set2: [DMESG-WARN][102] ([Intel XE#1033]) -> [PASS][103] +10 other tests pass
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-435/igt@kms_atomic_transition@modeset-transition-nonblocking-fencing.html
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-464/igt@kms_atomic_transition@modeset-transition-nonblocking-fencing.html
* igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic:
- shard-bmg: [SKIP][104] ([Intel XE#2291]) -> [PASS][105] +1 other test pass
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-4/igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic.html
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-7/igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic.html
* igt@kms_cursor_legacy@cursora-vs-flipb-toggle:
- shard-dg2-set2: [SKIP][106] ([Intel XE#309]) -> [PASS][107]
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-464/igt@kms_cursor_legacy@cursora-vs-flipb-toggle.html
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-463/igt@kms_cursor_legacy@cursora-vs-flipb-toggle.html
* igt@kms_flip@2x-blocking-wf_vblank@ac-dp2-hdmi-a3:
- shard-bmg: [FAIL][108] ([Intel XE#2882]) -> [PASS][109] +2 other tests pass
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-7/igt@kms_flip@2x-blocking-wf_vblank@ac-dp2-hdmi-a3.html
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-5/igt@kms_flip@2x-blocking-wf_vblank@ac-dp2-hdmi-a3.html
* igt@kms_flip@2x-dpms-vs-vblank-race@cd-dp2-hdmi-a3:
- shard-bmg: [DMESG-WARN][110] ([Intel XE#4172]) -> [PASS][111] +22 other tests pass
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-1/igt@kms_flip@2x-dpms-vs-vblank-race@cd-dp2-hdmi-a3.html
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-7/igt@kms_flip@2x-dpms-vs-vblank-race@cd-dp2-hdmi-a3.html
* igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible:
- shard-bmg: [SKIP][112] ([Intel XE#2316]) -> [PASS][113] +1 other test pass
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-4/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible.html
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-7/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible.html
* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ad-hdmi-a6-dp4:
- shard-dg2-set2: [FAIL][114] ([Intel XE#301]) -> [PASS][115] +2 other tests pass
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-463/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ad-hdmi-a6-dp4.html
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-436/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ad-hdmi-a6-dp4.html
* igt@kms_flip@2x-nonexisting-fb:
- shard-dg2-set2: [SKIP][116] ([Intel XE#310]) -> [PASS][117] +2 other tests pass
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-464/igt@kms_flip@2x-nonexisting-fb.html
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-466/igt@kms_flip@2x-nonexisting-fb.html
* igt@kms_flip@blocking-wf_vblank@a-dp2:
- shard-bmg: [FAIL][118] ([Intel XE#3098]) -> [PASS][119]
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-4/igt@kms_flip@blocking-wf_vblank@a-dp2.html
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-5/igt@kms_flip@blocking-wf_vblank@a-dp2.html
* igt@kms_flip@blocking-wf_vblank@d-dp2:
- shard-bmg: [DMESG-FAIL][120] ([Intel XE#4172]) -> [PASS][121]
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-4/igt@kms_flip@blocking-wf_vblank@d-dp2.html
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-5/igt@kms_flip@blocking-wf_vblank@d-dp2.html
* igt@kms_flip@flip-vs-suspend-interruptible:
- shard-adlp: [DMESG-WARN][122] ([Intel XE#2953]) -> [PASS][123] +1 other test pass
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-adlp-3/igt@kms_flip@flip-vs-suspend-interruptible.html
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-adlp-6/igt@kms_flip@flip-vs-suspend-interruptible.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-render:
- shard-dg2-set2: [SKIP][124] ([Intel XE#656]) -> [PASS][125] +3 other tests pass
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-464/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-render.html
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-463/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-blt:
- shard-lnl: [INCOMPLETE][126] ([Intel XE#2050]) -> [PASS][127]
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-lnl-5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-blt.html
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-lnl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-blt.html
* igt@kms_hdr@invalid-hdr:
- shard-bmg: [SKIP][128] ([Intel XE#1503]) -> [PASS][129]
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-1/igt@kms_hdr@invalid-hdr.html
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-7/igt@kms_hdr@invalid-hdr.html
* igt@kms_pm_rpm@drm-resources-equal:
- shard-adlp: [DMESG-WARN][130] -> [PASS][131]
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-adlp-3/igt@kms_pm_rpm@drm-resources-equal.html
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-adlp-9/igt@kms_pm_rpm@drm-resources-equal.html
* igt@kms_setmode@clone-exclusive-crtc:
- shard-bmg: [SKIP][132] ([Intel XE#1435]) -> [PASS][133]
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-4/igt@kms_setmode@clone-exclusive-crtc.html
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-5/igt@kms_setmode@clone-exclusive-crtc.html
* igt@kms_universal_plane@cursor-fb-leak@pipe-a-edp-1:
- shard-lnl: [FAIL][134] ([Intel XE#899]) -> [PASS][135]
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-lnl-8/igt@kms_universal_plane@cursor-fb-leak@pipe-a-edp-1.html
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-lnl-5/igt@kms_universal_plane@cursor-fb-leak@pipe-a-edp-1.html
* igt@xe_drm_fdinfo@utilization-single-idle:
- shard-dg2-set2: [INCOMPLETE][136] -> [PASS][137]
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-433/igt@xe_drm_fdinfo@utilization-single-idle.html
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-466/igt@xe_drm_fdinfo@utilization-single-idle.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-defer-mmap:
- shard-dg2-set2: [SKIP][138] ([Intel XE#1392]) -> [PASS][139] +1 other test pass
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-432/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-defer-mmap.html
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-435/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-defer-mmap.html
* igt@xe_exec_threads@threads-hang-fd-userptr-rebind:
- shard-dg2-set2: [DMESG-WARN][140] ([Intel XE#3876]) -> [PASS][141]
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-464/igt@xe_exec_threads@threads-hang-fd-userptr-rebind.html
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-466/igt@xe_exec_threads@threads-hang-fd-userptr-rebind.html
* igt@xe_fault_injection@vm-create-fail-xe_pt_create:
- shard-adlp: [DMESG-WARN][142] ([Intel XE#4173]) -> [PASS][143]
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-adlp-6/igt@xe_fault_injection@vm-create-fail-xe_pt_create.html
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-adlp-2/igt@xe_fault_injection@vm-create-fail-xe_pt_create.html
#### Warnings ####
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-d-hdmi-a-6:
- shard-dg2-set2: [SKIP][144] ([Intel XE#455] / [Intel XE#787]) -> [SKIP][145] ([Intel XE#787]) +3 other tests skip
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-464/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-d-hdmi-a-6.html
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-463/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-d-hdmi-a-6.html
* igt@kms_ccs@random-ccs-data-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-6:
- shard-dg2-set2: [SKIP][146] ([Intel XE#787]) -> [SKIP][147] ([Intel XE#455] / [Intel XE#787]) +3 other tests skip
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-435/igt@kms_ccs@random-ccs-data-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-6.html
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-464/igt@kms_ccs@random-ccs-data-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-6.html
* igt@kms_content_protection@lic-type-0:
- shard-dg2-set2: [DMESG-FAIL][148] ([Intel XE#1033]) -> [SKIP][149] ([Intel XE#455])
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-435/igt@kms_content_protection@lic-type-0.html
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-464/igt@kms_content_protection@lic-type-0.html
* igt@kms_content_protection@srm@pipe-a-dp-4:
- shard-dg2-set2: [DMESG-FAIL][150] ([Intel XE#1033]) -> [INCOMPLETE][151] ([Intel XE#4132])
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-435/igt@kms_content_protection@srm@pipe-a-dp-4.html
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-433/igt@kms_content_protection@srm@pipe-a-dp-4.html
* igt@kms_flip@2x-blocking-absolute-wf_vblank:
- shard-dg2-set2: [DMESG-WARN][152] ([Intel XE#1033]) -> [SKIP][153] ([Intel XE#310])
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-435/igt@kms_flip@2x-blocking-absolute-wf_vblank.html
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-464/igt@kms_flip@2x-blocking-absolute-wf_vblank.html
- shard-bmg: [SKIP][154] ([Intel XE#2316]) -> [DMESG-WARN][155] ([Intel XE#4172])
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-4/igt@kms_flip@2x-blocking-absolute-wf_vblank.html
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-5/igt@kms_flip@2x-blocking-absolute-wf_vblank.html
* igt@kms_flip@2x-flip-vs-suspend-interruptible:
- shard-bmg: [DMESG-WARN][156] ([Intel XE#2955]) -> [DMESG-WARN][157] ([Intel XE#4172]) +1 other test dmesg-warn
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-1/igt@kms_flip@2x-flip-vs-suspend-interruptible.html
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-1/igt@kms_flip@2x-flip-vs-suspend-interruptible.html
* igt@kms_flip@2x-flip-vs-wf_vblank-interruptible:
- shard-bmg: [DMESG-WARN][158] ([Intel XE#4172]) -> [SKIP][159] ([Intel XE#2316])
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-5/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-4/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html
* igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset:
- shard-dg2-set2: [DMESG-WARN][160] -> [SKIP][161] ([Intel XE#310])
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-435/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset.html
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-464/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset.html
* igt@kms_flip@blocking-wf_vblank:
- shard-lnl: [FAIL][162] ([Intel XE#3098] / [Intel XE#3149] / [Intel XE#886]) -> [FAIL][163] ([Intel XE#3149] / [Intel XE#886])
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-lnl-4/igt@kms_flip@blocking-wf_vblank.html
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-lnl-3/igt@kms_flip@blocking-wf_vblank.html
- shard-bmg: [DMESG-FAIL][164] ([Intel XE#4172]) -> [DMESG-WARN][165] ([Intel XE#4172])
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-4/igt@kms_flip@blocking-wf_vblank.html
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-5/igt@kms_flip@blocking-wf_vblank.html
* igt@kms_flip@blocking-wf_vblank@a-edp1:
- shard-lnl: [FAIL][166] ([Intel XE#3098]) -> [FAIL][167] ([Intel XE#886])
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-lnl-4/igt@kms_flip@blocking-wf_vblank@a-edp1.html
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-lnl-3/igt@kms_flip@blocking-wf_vblank@a-edp1.html
* igt@kms_flip@flip-vs-dpms-off-vs-modeset-interruptible:
- shard-dg2-set2: [DMESG-WARN][168] ([Intel XE#1033]) -> [DMESG-WARN][169] ([Intel XE#2955]) +2 other tests dmesg-warn
[168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-432/igt@kms_flip@flip-vs-dpms-off-vs-modeset-interruptible.html
[169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-433/igt@kms_flip@flip-vs-dpms-off-vs-modeset-interruptible.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-blt:
- shard-bmg: [SKIP][170] ([Intel XE#2311]) -> [SKIP][171] ([Intel XE#2312]) +13 other tests skip
[170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-1/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-blt.html
[171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-4/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-render:
- shard-dg2-set2: [SKIP][172] ([Intel XE#656]) -> [SKIP][173] ([Intel XE#651]) +4 other tests skip
[172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-464/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-render.html
[173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-463/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-plflip-blt:
- shard-dg2-set2: [SKIP][174] ([Intel XE#656]) -> [DMESG-WARN][175] ([Intel XE#1033])
[174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-464/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-plflip-blt.html
[175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-463/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-fullscreen:
- shard-bmg: [SKIP][176] ([Intel XE#2312]) -> [SKIP][177] ([Intel XE#4141]) +5 other tests skip
[176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-fullscreen.html
[177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-7/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-fullscreen.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc:
- shard-bmg: [SKIP][178] ([Intel XE#4141]) -> [SKIP][179] ([Intel XE#2312]) +3 other tests skip
[178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc.html
[179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-blt:
- shard-bmg: [SKIP][180] ([Intel XE#2312]) -> [SKIP][181] ([Intel XE#2311]) +11 other tests skip
[180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-blt.html
[181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-blt:
- shard-dg2-set2: [SKIP][182] ([Intel XE#651]) -> [SKIP][183] ([Intel XE#656]) +5 other tests skip
[182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-433/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-blt.html
[183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-464/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-pgflip-blt:
- shard-bmg: [SKIP][184] ([Intel XE#2312]) -> [SKIP][185] ([Intel XE#2313]) +7 other tests skip
[184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-pgflip-blt.html
[185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render:
- shard-bmg: [SKIP][186] ([Intel XE#2313]) -> [SKIP][187] ([Intel XE#2312]) +12 other tests skip
[186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render.html
[187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-plflip-blt:
- shard-dg2-set2: [SKIP][188] ([Intel XE#653]) -> [SKIP][189] ([Intel XE#656]) +3 other tests skip
[188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-435/igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-plflip-blt.html
[189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-464/igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-render:
- shard-dg2-set2: [SKIP][190] ([Intel XE#656]) -> [SKIP][191] ([Intel XE#653]) +4 other tests skip
[190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-dg2-464/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-render.html
[191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-dg2-463/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-render.html
* igt@xe_pm@s4-d3hot-basic-exec:
- shard-bmg: [ABORT][192] ([Intel XE#4054]) -> [ABORT][193] ([Intel XE#4268])
[192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2654-4af00c2e09da0269f3f329e660b6417037041bea/shard-bmg-5/igt@xe_pm@s4-d3hot-basic-exec.html
[193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/shard-bmg-4/igt@xe_pm@s4-d3hot-basic-exec.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[Intel XE#1033]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1033
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1126]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1126
[Intel XE#1152]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1152
[Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
[Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
[Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
[Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
[Intel XE#2050]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2050
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244
[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#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2392
[Intel XE#2541]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2541
[Intel XE#2566]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2566
[Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
[Intel XE#2882]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2882
[Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
[Intel XE#2905]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2905
[Intel XE#2953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2953
[Intel XE#2955]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2955
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#3098]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3098
[Intel XE#310]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/310
[Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
[Intel XE#323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/323
[Intel XE#3279]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3279
[Intel XE#3321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3321
[Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573
[Intel XE#3658]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3658
[Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#3767]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3767
[Intel XE#3862]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3862
[Intel XE#3876]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3876
[Intel XE#4054]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4054
[Intel XE#4090]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4090
[Intel XE#4132]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4132
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4148]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4148
[Intel XE#4172]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4172
[Intel XE#4173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4173
[Intel XE#4268]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4268
[Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
[Intel XE#512]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/512
[Intel XE#584]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/584
[Intel XE#599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/599
[Intel XE#616]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/616
[Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
[Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
[Intel XE#827]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/827
[Intel XE#886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/886
[Intel XE#899]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/899
[Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
Build changes
-------------
* Linux: xe-2654-4af00c2e09da0269f3f329e660b6417037041bea -> xe-pw-144766v1
IGT_8229: 8229
xe-2654-4af00c2e09da0269f3f329e660b6417037041bea: 4af00c2e09da0269f3f329e660b6417037041bea
xe-pw-144766v1: 144766v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144766v1/index.html
[-- Attachment #2: Type: text/html, Size: 62855 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread* RE: [PATCH 1/3] drm/xe: Introduced needs_scratch bit in device descriptor
2025-02-13 2:23 [PATCH 1/3] drm/xe: Introduced needs_scratch bit in device descriptor Oak Zeng
` (9 preceding siblings ...)
2025-02-13 14:56 ` ✗ Xe.CI.Full: failure " Patchwork
@ 2025-02-24 15:40 ` Zeng, Oak
2025-02-24 17:27 ` Matthew Brost
2025-02-25 22:13 ` Matthew Brost
11 siblings, 1 reply; 29+ messages in thread
From: Zeng, Oak @ 2025-02-24 15:40 UTC (permalink / raw)
To: Zeng, Oak, intel-xe@lists.freedesktop.org
Cc: Thomas.Hellstrom@linux.intel.com, Brost, Matthew,
Cavitt, Jonathan
Ping
Thomas, Matt, do you have further comments on this series?
Oak
> -----Original Message-----
> From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf
> Of Oak Zeng
> Sent: February 12, 2025 9:23 PM
> To: intel-xe@lists.freedesktop.org
> Cc: Thomas.Hellstrom@linux.intel.com; Brost, Matthew
> <matthew.brost@intel.com>; Cavitt, Jonathan
> <jonathan.cavitt@intel.com>
> Subject: [PATCH 1/3] drm/xe: Introduced needs_scratch bit in device
> descriptor
>
> On some platform, scratch page is needed for out of bound prefetch
> to work. Introduce a bit in device descriptor to specify whether
> this device needs scratch page to work.
>
> v2: introduce a needs_scratch bit in device info (Thomas, Jonathan)
>
> Signed-off-by: Oak Zeng <oak.zeng@intel.com>
> Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> ---
> drivers/gpu/drm/xe/xe_device_types.h | 3 +++
> drivers/gpu/drm/xe/xe_pci.c | 5 +++++
> 2 files changed, 8 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_device_types.h
> b/drivers/gpu/drm/xe/xe_device_types.h
> index 833c29fed3a3..a5ba9e4e470f 100644
> --- a/drivers/gpu/drm/xe/xe_device_types.h
> +++ b/drivers/gpu/drm/xe/xe_device_types.h
> @@ -46,6 +46,7 @@ struct xe_pxp;
> #define GRAPHICS_VERx100(xe) ((xe)->info.graphics_verx100)
> #define MEDIA_VERx100(xe) ((xe)->info.media_verx100)
> #define IS_DGFX(xe) ((xe)->info.is_dgfx)
> +#define NEEDS_SCRATCH(xe) ((xe)->info.needs_scratch)
>
> #define XE_VRAM_FLAGS_NEED64K BIT(0)
>
> @@ -318,6 +319,8 @@ struct xe_device {
> u8 has_usm:1;
> /** @info.is_dgfx: is discrete device */
> u8 is_dgfx:1;
> + /** @info.needs_scratch: needs scratch page for oob
> prefetch to work */
> + u8 needs_scratch:1;
> /**
> * @info.probe_display: Probe display hardware. If
> set to
> * false, the driver will behave as if there is no display
> diff --git a/drivers/gpu/drm/xe/xe_pci.c
> b/drivers/gpu/drm/xe/xe_pci.c
> index 6a8e82aff385..c614f673efa5 100644
> --- a/drivers/gpu/drm/xe/xe_pci.c
> +++ b/drivers/gpu/drm/xe/xe_pci.c
> @@ -67,6 +67,7 @@ struct xe_device_desc {
> u8 has_llc:1;
> u8 has_pxp:1;
> u8 has_sriov:1;
> + u8 needs_scratch:1;
> u8 skip_guc_pc:1;
> u8 skip_mtcfg:1;
> u8 skip_pcode:1;
> @@ -353,6 +354,7 @@ static const struct xe_device_desc lnl_desc = {
> .dma_mask_size = 46,
> .has_display = true,
> .has_pxp = true,
> + .needs_scratch = true,
> };
>
> static const struct xe_device_desc bmg_desc = {
> @@ -361,6 +363,7 @@ static const struct xe_device_desc bmg_desc =
> {
> .dma_mask_size = 46,
> .has_display = true,
> .has_heci_cscfi = 1,
> + .needs_scratch = true,
> };
>
> static const struct xe_device_desc ptl_desc = {
> @@ -369,6 +372,7 @@ static const struct xe_device_desc ptl_desc = {
> .has_display = true,
> .has_sriov = true,
> .require_force_probe = true,
> + .needs_scratch = true,
> };
>
> #undef PLATFORM
> @@ -644,6 +648,7 @@ static int xe_info_init_early(struct xe_device
> *xe,
> xe->info.skip_guc_pc = desc->skip_guc_pc;
> xe->info.skip_mtcfg = desc->skip_mtcfg;
> xe->info.skip_pcode = desc->skip_pcode;
> + xe->info.needs_scratch = desc->needs_scratch;
>
> xe->info.probe_display =
> IS_ENABLED(CONFIG_DRM_XE_DISPLAY) &&
> xe_modparam.probe_display &&
> --
> 2.26.3
^ permalink raw reply [flat|nested] 29+ messages in thread* Re: [PATCH 1/3] drm/xe: Introduced needs_scratch bit in device descriptor
2025-02-24 15:40 ` [PATCH 1/3] " Zeng, Oak
@ 2025-02-24 17:27 ` Matthew Brost
0 siblings, 0 replies; 29+ messages in thread
From: Matthew Brost @ 2025-02-24 17:27 UTC (permalink / raw)
To: Zeng, Oak
Cc: intel-xe@lists.freedesktop.org, Thomas.Hellstrom@linux.intel.com,
Cavitt, Jonathan
On Mon, Feb 24, 2025 at 08:40:06AM -0700, Zeng, Oak wrote:
> Ping
>
> Thomas, Matt, do you have further comments on this series?
>
Will do a full review a bit later today.
Matt
> Oak
>
> > -----Original Message-----
> > From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf
> > Of Oak Zeng
> > Sent: February 12, 2025 9:23 PM
> > To: intel-xe@lists.freedesktop.org
> > Cc: Thomas.Hellstrom@linux.intel.com; Brost, Matthew
> > <matthew.brost@intel.com>; Cavitt, Jonathan
> > <jonathan.cavitt@intel.com>
> > Subject: [PATCH 1/3] drm/xe: Introduced needs_scratch bit in device
> > descriptor
> >
> > On some platform, scratch page is needed for out of bound prefetch
> > to work. Introduce a bit in device descriptor to specify whether
> > this device needs scratch page to work.
> >
> > v2: introduce a needs_scratch bit in device info (Thomas, Jonathan)
> >
> > Signed-off-by: Oak Zeng <oak.zeng@intel.com>
> > Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> > ---
> > drivers/gpu/drm/xe/xe_device_types.h | 3 +++
> > drivers/gpu/drm/xe/xe_pci.c | 5 +++++
> > 2 files changed, 8 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/xe/xe_device_types.h
> > b/drivers/gpu/drm/xe/xe_device_types.h
> > index 833c29fed3a3..a5ba9e4e470f 100644
> > --- a/drivers/gpu/drm/xe/xe_device_types.h
> > +++ b/drivers/gpu/drm/xe/xe_device_types.h
> > @@ -46,6 +46,7 @@ struct xe_pxp;
> > #define GRAPHICS_VERx100(xe) ((xe)->info.graphics_verx100)
> > #define MEDIA_VERx100(xe) ((xe)->info.media_verx100)
> > #define IS_DGFX(xe) ((xe)->info.is_dgfx)
> > +#define NEEDS_SCRATCH(xe) ((xe)->info.needs_scratch)
> >
> > #define XE_VRAM_FLAGS_NEED64K BIT(0)
> >
> > @@ -318,6 +319,8 @@ struct xe_device {
> > u8 has_usm:1;
> > /** @info.is_dgfx: is discrete device */
> > u8 is_dgfx:1;
> > + /** @info.needs_scratch: needs scratch page for oob
> > prefetch to work */
> > + u8 needs_scratch:1;
> > /**
> > * @info.probe_display: Probe display hardware. If
> > set to
> > * false, the driver will behave as if there is no display
> > diff --git a/drivers/gpu/drm/xe/xe_pci.c
> > b/drivers/gpu/drm/xe/xe_pci.c
> > index 6a8e82aff385..c614f673efa5 100644
> > --- a/drivers/gpu/drm/xe/xe_pci.c
> > +++ b/drivers/gpu/drm/xe/xe_pci.c
> > @@ -67,6 +67,7 @@ struct xe_device_desc {
> > u8 has_llc:1;
> > u8 has_pxp:1;
> > u8 has_sriov:1;
> > + u8 needs_scratch:1;
> > u8 skip_guc_pc:1;
> > u8 skip_mtcfg:1;
> > u8 skip_pcode:1;
> > @@ -353,6 +354,7 @@ static const struct xe_device_desc lnl_desc = {
> > .dma_mask_size = 46,
> > .has_display = true,
> > .has_pxp = true,
> > + .needs_scratch = true,
> > };
> >
> > static const struct xe_device_desc bmg_desc = {
> > @@ -361,6 +363,7 @@ static const struct xe_device_desc bmg_desc =
> > {
> > .dma_mask_size = 46,
> > .has_display = true,
> > .has_heci_cscfi = 1,
> > + .needs_scratch = true,
> > };
> >
> > static const struct xe_device_desc ptl_desc = {
> > @@ -369,6 +372,7 @@ static const struct xe_device_desc ptl_desc = {
> > .has_display = true,
> > .has_sriov = true,
> > .require_force_probe = true,
> > + .needs_scratch = true,
> > };
> >
> > #undef PLATFORM
> > @@ -644,6 +648,7 @@ static int xe_info_init_early(struct xe_device
> > *xe,
> > xe->info.skip_guc_pc = desc->skip_guc_pc;
> > xe->info.skip_mtcfg = desc->skip_mtcfg;
> > xe->info.skip_pcode = desc->skip_pcode;
> > + xe->info.needs_scratch = desc->needs_scratch;
> >
> > xe->info.probe_display =
> > IS_ENABLED(CONFIG_DRM_XE_DISPLAY) &&
> > xe_modparam.probe_display &&
> > --
> > 2.26.3
>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH 1/3] drm/xe: Introduced needs_scratch bit in device descriptor
2025-02-13 2:23 [PATCH 1/3] drm/xe: Introduced needs_scratch bit in device descriptor Oak Zeng
` (10 preceding siblings ...)
2025-02-24 15:40 ` [PATCH 1/3] " Zeng, Oak
@ 2025-02-25 22:13 ` Matthew Brost
11 siblings, 0 replies; 29+ messages in thread
From: Matthew Brost @ 2025-02-25 22:13 UTC (permalink / raw)
To: Oak Zeng; +Cc: intel-xe, Thomas.Hellstrom, jonathan.cavitt
On Wed, Feb 12, 2025 at 09:23:29PM -0500, Oak Zeng wrote:
Again, replied to wrong version earilier. Please include version number
in patches.
Copy / pasting my reply here.
> On some platform, scratch page is needed for out of bound prefetch
> to work. Introduce a bit in device descriptor to specify whether
> this device needs scratch page to work.
>
> v2: introduce a needs_scratch bit in device info (Thomas, Jonathan)
>
> Signed-off-by: Oak Zeng <oak.zeng@intel.com>
> Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> ---
> drivers/gpu/drm/xe/xe_device_types.h | 3 +++
> drivers/gpu/drm/xe/xe_pci.c | 5 +++++
> 2 files changed, 8 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
> index 833c29fed3a3..a5ba9e4e470f 100644
> --- a/drivers/gpu/drm/xe/xe_device_types.h
> +++ b/drivers/gpu/drm/xe/xe_device_types.h
> @@ -46,6 +46,7 @@ struct xe_pxp;
> #define GRAPHICS_VERx100(xe) ((xe)->info.graphics_verx100)
> #define MEDIA_VERx100(xe) ((xe)->info.media_verx100)
> #define IS_DGFX(xe) ((xe)->info.is_dgfx)
> +#define NEEDS_SCRATCH(xe) ((xe)->info.needs_scratch)
>
I'd drop this macro. These are leftovers from the i915 code and I see
little value in a macro rather than looking directly at a field. In the
existing cases these macros are used all over the code so they make a
little more sense so if change the variable we only have change this
macro, but in this new case the macro is used 2 places in the code so
I'd say just look at the variable.
Matt
> #define XE_VRAM_FLAGS_NEED64K BIT(0)
>
> @@ -318,6 +319,8 @@ struct xe_device {
> u8 has_usm:1;
> /** @info.is_dgfx: is discrete device */
> u8 is_dgfx:1;
> + /** @info.needs_scratch: needs scratch page for oob prefetch to work */
> + u8 needs_scratch:1;
> /**
> * @info.probe_display: Probe display hardware. If set to
> * false, the driver will behave as if there is no display
> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> index 6a8e82aff385..c614f673efa5 100644
> --- a/drivers/gpu/drm/xe/xe_pci.c
> +++ b/drivers/gpu/drm/xe/xe_pci.c
> @@ -67,6 +67,7 @@ struct xe_device_desc {
> u8 has_llc:1;
> u8 has_pxp:1;
> u8 has_sriov:1;
> + u8 needs_scratch:1;
> u8 skip_guc_pc:1;
> u8 skip_mtcfg:1;
> u8 skip_pcode:1;
> @@ -353,6 +354,7 @@ static const struct xe_device_desc lnl_desc = {
> .dma_mask_size = 46,
> .has_display = true,
> .has_pxp = true,
> + .needs_scratch = true,
> };
>
> static const struct xe_device_desc bmg_desc = {
> @@ -361,6 +363,7 @@ static const struct xe_device_desc bmg_desc = {
> .dma_mask_size = 46,
> .has_display = true,
> .has_heci_cscfi = 1,
> + .needs_scratch = true,
> };
>
> static const struct xe_device_desc ptl_desc = {
> @@ -369,6 +372,7 @@ static const struct xe_device_desc ptl_desc = {
> .has_display = true,
> .has_sriov = true,
> .require_force_probe = true,
> + .needs_scratch = true,
> };
>
> #undef PLATFORM
> @@ -644,6 +648,7 @@ static int xe_info_init_early(struct xe_device *xe,
> xe->info.skip_guc_pc = desc->skip_guc_pc;
> xe->info.skip_mtcfg = desc->skip_mtcfg;
> xe->info.skip_pcode = desc->skip_pcode;
> + xe->info.needs_scratch = desc->needs_scratch;
>
> xe->info.probe_display = IS_ENABLED(CONFIG_DRM_XE_DISPLAY) &&
> xe_modparam.probe_display &&
> --
> 2.26.3
>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH 1/3] drm/xe: Introduced needs_scratch bit in device descriptor
2025-02-04 18:45 Oak Zeng
@ 2025-02-05 13:16 ` Thomas Hellström
2025-02-25 21:37 ` Matthew Brost
1 sibling, 0 replies; 29+ messages in thread
From: Thomas Hellström @ 2025-02-05 13:16 UTC (permalink / raw)
To: Oak Zeng, intel-xe; +Cc: matthew.brost, jonathan.cavitt
On Tue, 2025-02-04 at 13:45 -0500, Oak Zeng wrote:
> On some platform, scratch page is needed for out of bound prefetch
> to work. Introduce a bit in device descriptor to specify whether
> this device needs scratch page to work.
>
> v2: introduce a needs_scratch bit in device info (Thomas, Jonathan)
>
> Signed-off-by: Oak Zeng <oak.zeng@intel.com>
LGTM.
Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> ---
> drivers/gpu/drm/xe/xe_device_types.h | 3 +++
> drivers/gpu/drm/xe/xe_pci.c | 5 +++++
> 2 files changed, 8 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_device_types.h
> b/drivers/gpu/drm/xe/xe_device_types.h
> index c0e886bac183..1197ab31e528 100644
> --- a/drivers/gpu/drm/xe/xe_device_types.h
> +++ b/drivers/gpu/drm/xe/xe_device_types.h
> @@ -45,6 +45,7 @@ struct xe_pxp;
> #define GRAPHICS_VERx100(xe) ((xe)->info.graphics_verx100)
> #define MEDIA_VERx100(xe) ((xe)->info.media_verx100)
> #define IS_DGFX(xe) ((xe)->info.is_dgfx)
> +#define NEEDS_SCRATCH(xe) ((xe)->info.needs_scratch)
>
> #define XE_VRAM_FLAGS_NEED64K BIT(0)
>
> @@ -318,6 +319,8 @@ struct xe_device {
> u8 has_usm:1;
> /** @info.is_dgfx: is discrete device */
> u8 is_dgfx:1;
> + /** @info.needs_scratch: needs scratch page for oob
> prefetch to work */
> + u8 needs_scratch:1;
> /**
> * @info.probe_display: Probe display hardware. If
> set to
> * false, the driver will behave as if there is no
> display
> diff --git a/drivers/gpu/drm/xe/xe_pci.c
> b/drivers/gpu/drm/xe/xe_pci.c
> index e8ef7d6b4db8..09736674a77e 100644
> --- a/drivers/gpu/drm/xe/xe_pci.c
> +++ b/drivers/gpu/drm/xe/xe_pci.c
> @@ -67,6 +67,7 @@ struct xe_device_desc {
> u8 has_llc:1;
> u8 has_pxp:1;
> u8 has_sriov:1;
> + u8 needs_scratch:1;
> u8 skip_guc_pc:1;
> u8 skip_mtcfg:1;
> u8 skip_pcode:1;
> @@ -353,6 +354,7 @@ static const struct xe_device_desc lnl_desc = {
> .dma_mask_size = 46,
> .has_display = true,
> .has_pxp = true,
> + .needs_scratch = true,
> };
>
> static const struct xe_device_desc bmg_desc = {
> @@ -361,6 +363,7 @@ static const struct xe_device_desc bmg_desc = {
> .dma_mask_size = 46,
> .has_display = true,
> .has_heci_cscfi = 1,
> + .needs_scratch = true,
> };
>
> static const struct xe_device_desc ptl_desc = {
> @@ -368,6 +371,7 @@ static const struct xe_device_desc ptl_desc = {
> .dma_mask_size = 46,
> .has_display = true,
> .require_force_probe = true,
> + .needs_scratch = true,
> };
>
> #undef PLATFORM
> @@ -643,6 +647,7 @@ static int xe_info_init_early(struct xe_device
> *xe,
> xe->info.skip_guc_pc = desc->skip_guc_pc;
> xe->info.skip_mtcfg = desc->skip_mtcfg;
> xe->info.skip_pcode = desc->skip_pcode;
> + xe->info.needs_scratch = desc->needs_scratch;
>
> xe->info.probe_display = IS_ENABLED(CONFIG_DRM_XE_DISPLAY)
> &&
> xe_modparam.probe_display &&
^ permalink raw reply [flat|nested] 29+ messages in thread* Re: [PATCH 1/3] drm/xe: Introduced needs_scratch bit in device descriptor
2025-02-04 18:45 Oak Zeng
2025-02-05 13:16 ` Thomas Hellström
@ 2025-02-25 21:37 ` Matthew Brost
1 sibling, 0 replies; 29+ messages in thread
From: Matthew Brost @ 2025-02-25 21:37 UTC (permalink / raw)
To: Oak Zeng; +Cc: intel-xe, Thomas.Hellstrom, jonathan.cavitt
On Tue, Feb 04, 2025 at 01:45:56PM -0500, Oak Zeng wrote:
> On some platform, scratch page is needed for out of bound prefetch
> to work. Introduce a bit in device descriptor to specify whether
> this device needs scratch page to work.
>
> v2: introduce a needs_scratch bit in device info (Thomas, Jonathan)
>
> Signed-off-by: Oak Zeng <oak.zeng@intel.com>
> ---
> drivers/gpu/drm/xe/xe_device_types.h | 3 +++
> drivers/gpu/drm/xe/xe_pci.c | 5 +++++
> 2 files changed, 8 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
> index c0e886bac183..1197ab31e528 100644
> --- a/drivers/gpu/drm/xe/xe_device_types.h
> +++ b/drivers/gpu/drm/xe/xe_device_types.h
> @@ -45,6 +45,7 @@ struct xe_pxp;
> #define GRAPHICS_VERx100(xe) ((xe)->info.graphics_verx100)
> #define MEDIA_VERx100(xe) ((xe)->info.media_verx100)
> #define IS_DGFX(xe) ((xe)->info.is_dgfx)
> +#define NEEDS_SCRATCH(xe) ((xe)->info.needs_scratch)
I'd drop this macro. These are leftovers from the i915 code and I see
like value in a macro looking directly at a field. In the existing cases
these macros are used all over the code so they make a little more sense
so if change the variable we only have change this macro, but in this
new case the macro is used 2 places in the code so I'd say just look at
the variable.
Matt
>
> #define XE_VRAM_FLAGS_NEED64K BIT(0)
>
> @@ -318,6 +319,8 @@ struct xe_device {
> u8 has_usm:1;
> /** @info.is_dgfx: is discrete device */
> u8 is_dgfx:1;
> + /** @info.needs_scratch: needs scratch page for oob prefetch to work */
> + u8 needs_scratch:1;
> /**
> * @info.probe_display: Probe display hardware. If set to
> * false, the driver will behave as if there is no display
> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> index e8ef7d6b4db8..09736674a77e 100644
> --- a/drivers/gpu/drm/xe/xe_pci.c
> +++ b/drivers/gpu/drm/xe/xe_pci.c
> @@ -67,6 +67,7 @@ struct xe_device_desc {
> u8 has_llc:1;
> u8 has_pxp:1;
> u8 has_sriov:1;
> + u8 needs_scratch:1;
> u8 skip_guc_pc:1;
> u8 skip_mtcfg:1;
> u8 skip_pcode:1;
> @@ -353,6 +354,7 @@ static const struct xe_device_desc lnl_desc = {
> .dma_mask_size = 46,
> .has_display = true,
> .has_pxp = true,
> + .needs_scratch = true,
> };
>
> static const struct xe_device_desc bmg_desc = {
> @@ -361,6 +363,7 @@ static const struct xe_device_desc bmg_desc = {
> .dma_mask_size = 46,
> .has_display = true,
> .has_heci_cscfi = 1,
> + .needs_scratch = true,
> };
>
> static const struct xe_device_desc ptl_desc = {
> @@ -368,6 +371,7 @@ static const struct xe_device_desc ptl_desc = {
> .dma_mask_size = 46,
> .has_display = true,
> .require_force_probe = true,
> + .needs_scratch = true,
> };
>
> #undef PLATFORM
> @@ -643,6 +647,7 @@ static int xe_info_init_early(struct xe_device *xe,
> xe->info.skip_guc_pc = desc->skip_guc_pc;
> xe->info.skip_mtcfg = desc->skip_mtcfg;
> xe->info.skip_pcode = desc->skip_pcode;
> + xe->info.needs_scratch = desc->needs_scratch;
>
> xe->info.probe_display = IS_ENABLED(CONFIG_DRM_XE_DISPLAY) &&
> xe_modparam.probe_display &&
> --
> 2.26.3
>
^ permalink raw reply [flat|nested] 29+ messages in thread