* [PATCH v8 0/2] drm/xe/pmu: Enable PMU interface
@ 2024-06-12 5:40 Riana Tauro
2024-06-12 5:33 ` ✓ CI.Patch_applied: success for drm/xe/pmu: Enable PMU interface (rev8) Patchwork
` (9 more replies)
0 siblings, 10 replies; 14+ messages in thread
From: Riana Tauro @ 2024-06-12 5:40 UTC (permalink / raw)
To: intel-xe
Cc: riana.tauro, anshuman.gupta, aravind.iddamsetty, tvrtko.ursulin,
rodrigo.vivi, umesh.nerlige.ramappa, krishnaiah.bommu,
ashutosh.dixit
There are a set of engine group busyness counters provided by HW which are
perfect fit to be exposed via PMU perf events.
BSPEC: 46559, 46560, 46722, 46729, 52071, 71028
events can be listed using:
perf list
xe_0000_03_00.0/any-engine-group-busy-gt0/ [Kernel PMU event]
xe_0000_03_00.0/copy-group-busy-gt0/ [Kernel PMU event]
xe_0000_03_00.0/interrupts/ [Kernel PMU event]
xe_0000_03_00.0/media-group-busy-gt0/ [Kernel PMU event]
xe_0000_03_00.0/render-group-busy-gt0/ [Kernel PMU event]
and can be read using:
perf stat -e "xe_0000_8c_00.0/render-group-busy-gt0/" -I 1000
time counts unit events
1.001139062 0 ns xe_0000_8c_00.0/render-group-busy-gt0/
2.003294678 0 ns xe_0000_8c_00.0/render-group-busy-gt0/
3.005199582 0 ns xe_0000_8c_00.0/render-group-busy-gt0/
4.007076497 0 ns xe_0000_8c_00.0/render-group-busy-gt0/
5.008553068 0 ns xe_0000_8c_00.0/render-group-busy-gt0/
6.010531563 43520 ns xe_0000_8c_00.0/render-group-busy-gt0/
7.012468029 44800 ns xe_0000_8c_00.0/render-group-busy-gt0/
8.013463515 0 ns xe_0000_8c_00.0/render-group-busy-gt0/
9.015300183 0 ns xe_0000_8c_00.0/render-group-busy-gt0/
10.017233010 0 ns xe_0000_8c_00.0/render-group-busy-gt0/
10.971934120 0 ns xe_0000_8c_00.0/render-group-busy-gt0/
The pmu base implementation is taken from i915.
v8:
1. rebase
2. drop interrupt pmu event
v7:
1. update UAPI documentation
2. drop MEDIA_GT specific change for media busyness counter.
v6:
1. drop engine_busyness_sample_type
2. update UAPI documentation
v5:
1. Use spinlock in forcewake instead of mutex
2. take forcewake when accessing the OAG registers
v4: minor nits.
v3:
1. drop init_samples, as storing counters before going to suspend should
be sufficient.
2. ported the "drm/i915/pmu: Make PMU sample array two-dimensional" and
dropped helpers to store and read samples.
3. use xe_device_mem_access_get_if_ongoing to check if device is active
before reading the OA registers.
4. dropped format attr as no longer needed
5. introduce xe_pmu_suspend to call engine_group_busyness_store
6. few other nits.
v2:
Store last known value when device is awake return that while the GT is
suspended and then update the driver copy when read during awake.
Aravind Iddamsetty (2):
drm/xe: Get GT clock to nanosecs
drm/xe/pmu: Enable PMU interface
drivers/gpu/drm/xe/Makefile | 2 +
drivers/gpu/drm/xe/regs/xe_gt_regs.h | 5 +
drivers/gpu/drm/xe/xe_device.c | 2 +
drivers/gpu/drm/xe/xe_device_types.h | 4 +
drivers/gpu/drm/xe/xe_gt.c | 2 +
drivers/gpu/drm/xe/xe_gt_clock.c | 5 +
drivers/gpu/drm/xe/xe_gt_clock.h | 2 +-
drivers/gpu/drm/xe/xe_module.c | 5 +
drivers/gpu/drm/xe/xe_pmu.c | 631 +++++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_pmu.h | 26 ++
drivers/gpu/drm/xe/xe_pmu_types.h | 67 +++
include/uapi/drm/xe_drm.h | 39 ++
12 files changed, 789 insertions(+), 1 deletion(-)
create mode 100644 drivers/gpu/drm/xe/xe_pmu.c
create mode 100644 drivers/gpu/drm/xe/xe_pmu.h
create mode 100644 drivers/gpu/drm/xe/xe_pmu_types.h
--
2.40.0
^ permalink raw reply [flat|nested] 14+ messages in thread* ✓ CI.Patch_applied: success for drm/xe/pmu: Enable PMU interface (rev8) 2024-06-12 5:40 [PATCH v8 0/2] drm/xe/pmu: Enable PMU interface Riana Tauro @ 2024-06-12 5:33 ` Patchwork 2024-06-12 5:33 ` ✗ CI.checkpatch: warning " Patchwork ` (8 subsequent siblings) 9 siblings, 0 replies; 14+ messages in thread From: Patchwork @ 2024-06-12 5:33 UTC (permalink / raw) To: Iddamsetty, Aravind; +Cc: intel-xe == Series Details == Series: drm/xe/pmu: Enable PMU interface (rev8) URL : https://patchwork.freedesktop.org/series/119504/ State : success == Summary == === Applying kernel patches on branch 'drm-tip' with base: === Base commit: 1340288da1f2 drm-tip: 2024y-06m-11d-21h-24m-08s UTC integration manifest === git am output follows === .git/rebase-apply/patch:785: new blank line at EOF. + warning: 1 line adds whitespace errors. Applying: drm/xe: Get GT clock to nanosecs Applying: drm/xe/pmu: Enable PMU interface ^ permalink raw reply [flat|nested] 14+ messages in thread
* ✗ CI.checkpatch: warning for drm/xe/pmu: Enable PMU interface (rev8) 2024-06-12 5:40 [PATCH v8 0/2] drm/xe/pmu: Enable PMU interface Riana Tauro 2024-06-12 5:33 ` ✓ CI.Patch_applied: success for drm/xe/pmu: Enable PMU interface (rev8) Patchwork @ 2024-06-12 5:33 ` Patchwork 2024-06-12 5:34 ` ✓ CI.KUnit: success " Patchwork ` (7 subsequent siblings) 9 siblings, 0 replies; 14+ messages in thread From: Patchwork @ 2024-06-12 5:33 UTC (permalink / raw) To: Iddamsetty, Aravind; +Cc: intel-xe == Series Details == Series: drm/xe/pmu: Enable PMU interface (rev8) URL : https://patchwork.freedesktop.org/series/119504/ 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 51ce9f6cd981d42d7467409d7dbc559a450abc1e + cd /kernel + git config --global --add safe.directory /kernel + git log -n1 commit 34b3e6578bc0f7c5e725cae01523109656ba38dc Author: Aravind Iddamsetty <aravind.iddamsetty@linux.intel.com> Date: Wed Jun 12 11:10:33 2024 +0530 drm/xe/pmu: Enable PMU interface There are a set of engine group busyness counters provided by HW which are perfect fit to be exposed via PMU perf events. BSPEC: 46559, 46560, 46722, 46729, 52071, 71028 events can be listed using: perf list xe_0000_03_00.0/any-engine-group-busy-gt0/ [Kernel PMU event] xe_0000_03_00.0/copy-group-busy-gt0/ [Kernel PMU event] xe_0000_03_00.0/interrupts/ [Kernel PMU event] xe_0000_03_00.0/media-group-busy-gt0/ [Kernel PMU event] xe_0000_03_00.0/render-group-busy-gt0/ [Kernel PMU event] and can be read using: perf stat -e "xe_0000_8c_00.0/render-group-busy-gt0/" -I 1000 time counts unit events 1.001139062 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ 2.003294678 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ 3.005199582 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ 4.007076497 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ 5.008553068 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ 6.010531563 43520 ns xe_0000_8c_00.0/render-group-busy-gt0/ 7.012468029 44800 ns xe_0000_8c_00.0/render-group-busy-gt0/ 8.013463515 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ 9.015300183 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ 10.017233010 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ 10.971934120 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ The pmu base implementation is taken from i915. v2: Store last known value when device is awake return that while the GT is suspended and then update the driver copy when read during awake. v3: 1. drop init_samples, as storing counters before going to suspend should be sufficient. 2. ported the "drm/i915/pmu: Make PMU sample array two-dimensional" and dropped helpers to store and read samples. 3. use xe_device_mem_access_get_if_ongoing to check if device is active before reading the OA registers. 4. dropped format attr as no longer needed 5. introduce xe_pmu_suspend to call engine_group_busyness_store 6. few other nits. v4: minor nits. v5: take forcewake when accessing the OAG registers v6: 1. drop engine_busyness_sample_type 2. update UAPI documentation v7: 1. update UAPI documentation 2. drop MEDIA_GT specific change for media busyness counter. v8: 1. rebase 2. replace mem_access_if_ongoing with xe_pm_runtime_get_if_active 3. remove interrupts pmu event Co-developed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Co-developed-by: Bommu Krishnaiah <krishnaiah.bommu@intel.com> Signed-off-by: Bommu Krishnaiah <krishnaiah.bommu@intel.com> Signed-off-by: Aravind Iddamsetty <aravind.iddamsetty@linux.intel.com> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com> Signed-off-by: Riana Tauro <riana.tauro@intel.com> + /mt/dim checkpatch 1340288da1f2a87e92a52d4e86a7247e4687bd62 drm-intel 5626533b28d1 drm/xe: Get GT clock to nanosecs 34b3e6578bc0 drm/xe/pmu: Enable PMU interface Traceback (most recent call last): File "scripts/spdxcheck.py", line 6, in <module> from ply import lex, yacc ModuleNotFoundError: No module named 'ply' Traceback (most recent call last): File "scripts/spdxcheck.py", line 6, in <module> from ply import lex, yacc ModuleNotFoundError: No module named 'ply' Traceback (most recent call last): File "scripts/spdxcheck.py", line 6, in <module> from ply import lex, yacc ModuleNotFoundError: No module named 'ply' -:178: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating? #178: new file mode 100644 total: 0 errors, 1 warnings, 0 checks, 837 lines checked ^ permalink raw reply [flat|nested] 14+ messages in thread
* ✓ CI.KUnit: success for drm/xe/pmu: Enable PMU interface (rev8) 2024-06-12 5:40 [PATCH v8 0/2] drm/xe/pmu: Enable PMU interface Riana Tauro 2024-06-12 5:33 ` ✓ CI.Patch_applied: success for drm/xe/pmu: Enable PMU interface (rev8) Patchwork 2024-06-12 5:33 ` ✗ CI.checkpatch: warning " Patchwork @ 2024-06-12 5:34 ` Patchwork 2024-06-12 5:40 ` [PATCH v8 1/2] drm/xe: Get GT clock to nanosecs Riana Tauro ` (6 subsequent siblings) 9 siblings, 0 replies; 14+ messages in thread From: Patchwork @ 2024-06-12 5:34 UTC (permalink / raw) To: Iddamsetty, Aravind; +Cc: intel-xe == Series Details == Series: drm/xe/pmu: Enable PMU interface (rev8) URL : https://patchwork.freedesktop.org/series/119504/ State : success == Summary == + trap cleanup EXIT + /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig [05:33:36] Configuring KUnit Kernel ... Generating .config ... Populating config with: $ make ARCH=um O=.kunit olddefconfig [05:33:41] Building KUnit Kernel ... Populating config with: $ make ARCH=um O=.kunit olddefconfig Building with: $ make 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) | ^~~~~~~~~~~~~~~~~ [05:34:06] Starting KUnit Kernel (1/1)... [05:34:06] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [05:34:06] =================== guc_dbm (7 subtests) =================== [05:34:06] [PASSED] test_empty [05:34:06] [PASSED] test_default [05:34:06] ======================== test_size ======================== [05:34:06] [PASSED] 4 [05:34:06] [PASSED] 8 [05:34:06] [PASSED] 32 [05:34:06] [PASSED] 256 [05:34:06] ==================== [PASSED] test_size ==================== [05:34:06] ======================= test_reuse ======================== [05:34:06] [PASSED] 4 [05:34:06] [PASSED] 8 [05:34:06] [PASSED] 32 [05:34:06] [PASSED] 256 [05:34:06] =================== [PASSED] test_reuse ==================== [05:34:06] =================== test_range_overlap ==================== [05:34:06] [PASSED] 4 [05:34:06] [PASSED] 8 [05:34:06] [PASSED] 32 [05:34:06] [PASSED] 256 [05:34:06] =============== [PASSED] test_range_overlap ================ [05:34:06] =================== test_range_compact ==================== [05:34:06] [PASSED] 4 [05:34:06] [PASSED] 8 [05:34:06] [PASSED] 32 [05:34:06] [PASSED] 256 [05:34:06] =============== [PASSED] test_range_compact ================ [05:34:06] ==================== test_range_spare ===================== [05:34:06] [PASSED] 4 [05:34:06] [PASSED] 8 [05:34:06] [PASSED] 32 [05:34:06] [PASSED] 256 [05:34:06] ================ [PASSED] test_range_spare ================= [05:34:06] ===================== [PASSED] guc_dbm ===================== [05:34:06] =================== guc_idm (6 subtests) =================== [05:34:06] [PASSED] bad_init [05:34:06] [PASSED] no_init [05:34:06] [PASSED] init_fini [05:34:06] [PASSED] check_used [05:34:06] [PASSED] check_quota [05:34:06] [PASSED] check_all [05:34:06] ===================== [PASSED] guc_idm ===================== [05:34:06] ================== no_relay (3 subtests) =================== [05:34:06] [PASSED] xe_drops_guc2pf_if_not_ready [05:34:06] [PASSED] xe_drops_guc2vf_if_not_ready [05:34:06] [PASSED] xe_rejects_send_if_not_ready [05:34:06] ==================== [PASSED] no_relay ===================== [05:34:06] ================== pf_relay (14 subtests) ================== [05:34:06] [PASSED] pf_rejects_guc2pf_too_short [05:34:06] [PASSED] pf_rejects_guc2pf_too_long [05:34:06] [PASSED] pf_rejects_guc2pf_no_payload [05:34:06] [PASSED] pf_fails_no_payload [05:34:06] [PASSED] pf_fails_bad_origin [05:34:06] [PASSED] pf_fails_bad_type [05:34:06] [PASSED] pf_txn_reports_error [05:34:06] [PASSED] pf_txn_sends_pf2guc [05:34:06] [PASSED] pf_sends_pf2guc [05:34:06] [SKIPPED] pf_loopback_nop [05:34:06] [SKIPPED] pf_loopback_echo [05:34:06] [SKIPPED] pf_loopback_fail [05:34:06] [SKIPPED] pf_loopback_busy [05:34:06] [SKIPPED] pf_loopback_retry [05:34:06] ==================== [PASSED] pf_relay ===================== [05:34:06] ================== vf_relay (3 subtests) =================== [05:34:06] [PASSED] vf_rejects_guc2vf_too_short [05:34:06] [PASSED] vf_rejects_guc2vf_too_long [05:34:06] [PASSED] vf_rejects_guc2vf_no_payload [05:34:06] ==================== [PASSED] vf_relay ===================== [05:34:06] ================= pf_service (11 subtests) ================= [05:34:06] [PASSED] pf_negotiate_any [05:34:06] [PASSED] pf_negotiate_base_match [05:34:06] [PASSED] pf_negotiate_base_newer [05:34:06] [PASSED] pf_negotiate_base_next [05:34:06] [SKIPPED] pf_negotiate_base_older [05:34:06] [PASSED] pf_negotiate_base_prev [05:34:06] [PASSED] pf_negotiate_latest_match [05:34:06] [PASSED] pf_negotiate_latest_newer [05:34:06] [PASSED] pf_negotiate_latest_next [05:34:06] [SKIPPED] pf_negotiate_latest_older [05:34:06] [SKIPPED] pf_negotiate_latest_prev [05:34:06] =================== [PASSED] pf_service ==================== [05:34:06] ===================== lmtt (1 subtest) ===================== [05:34:06] ======================== test_ops ========================= [05:34:06] [PASSED] 2-level [05:34:06] [PASSED] multi-level [05:34:06] ==================== [PASSED] test_ops ===================== [05:34:06] ====================== [PASSED] lmtt ======================= [05:34:06] ==================== xe_bo (2 subtests) ==================== [05:34:06] [SKIPPED] xe_ccs_migrate_kunit [05:34:06] [SKIPPED] xe_bo_evict_kunit [05:34:06] ===================== [SKIPPED] xe_bo ====================== [05:34:06] ================== xe_dma_buf (1 subtest) ================== [05:34:06] [SKIPPED] xe_dma_buf_kunit [05:34:06] =================== [SKIPPED] xe_dma_buf =================== [05:34:06] ================== xe_migrate (1 subtest) ================== [05:34:06] [SKIPPED] xe_migrate_sanity_kunit [05:34:06] =================== [SKIPPED] xe_migrate =================== [05:34:06] =================== xe_mocs (2 subtests) =================== [05:34:06] [SKIPPED] xe_live_mocs_kernel_kunit [05:34:06] [SKIPPED] xe_live_mocs_reset_kunit [05:34:06] ==================== [SKIPPED] xe_mocs ===================== [05:34:06] ==================== args (11 subtests) ==================== [05:34:06] [PASSED] count_args_test [05:34:06] [PASSED] call_args_example [05:34:06] [PASSED] call_args_test [05:34:06] [PASSED] drop_first_arg_example [05:34:06] [PASSED] drop_first_arg_test [05:34:06] [PASSED] first_arg_example [05:34:06] [PASSED] first_arg_test [05:34:06] [PASSED] last_arg_example [05:34:06] [PASSED] last_arg_test [05:34:06] [PASSED] pick_arg_example [05:34:06] [PASSED] sep_comma_example [05:34:06] ====================== [PASSED] args ======================= [05:34:06] =================== xe_pci (2 subtests) ==================== [05:34:06] [PASSED] xe_gmdid_graphics_ip [05:34:06] [PASSED] xe_gmdid_media_ip [05:34:06] ===================== [PASSED] xe_pci ====================== [05:34:06] ==================== xe_rtp (1 subtest) ==================== [05:34:06] ================== xe_rtp_process_tests =================== [05:34:06] [PASSED] coalesce-same-reg [05:34:06] [PASSED] no-match-no-add [05:34:06] [PASSED] no-match-no-add-multiple-rules [05:34:06] [PASSED] two-regs-two-entries [05:34:06] [PASSED] clr-one-set-other [05:34:06] [PASSED] set-field [05:34:06] [PASSED] conflict-duplicate [05:34:06] [PASSED] conflict-not-disjoint [05:34:06] [PASSED] conflict-reg-type [05:34:06] ============== [PASSED] xe_rtp_process_tests =============== stty: 'standard input': Inappropriate ioctl for device [05:34:06] ===================== [PASSED] xe_rtp ====================== [05:34:06] ==================== xe_wa (1 subtest) ===================== [05:34:06] ======================== xe_wa_gt ========================= [05:34:06] [PASSED] TIGERLAKE (B0) [05:34:06] [PASSED] DG1 (A0) [05:34:06] [PASSED] DG1 (B0) [05:34:06] [PASSED] ALDERLAKE_S (A0) [05:34:06] [PASSED] ALDERLAKE_S (B0) [05:34:06] [PASSED] ALDERLAKE_S (C0) [05:34:06] [PASSED] ALDERLAKE_S (D0) [05:34:06] [PASSED] ALDERLAKE_P (A0) [05:34:06] [PASSED] ALDERLAKE_P (B0) [05:34:06] [PASSED] ALDERLAKE_P (C0) [05:34:06] [PASSED] ALDERLAKE_S_RPLS (D0) [05:34:06] [PASSED] ALDERLAKE_P_RPLU (E0) [05:34:06] [PASSED] DG2_G10 (C0) [05:34:06] [PASSED] DG2_G11 (B1) [05:34:06] [PASSED] DG2_G12 (A1) [05:34:06] [PASSED] METEORLAKE (g:A0, m:A0) [05:34:06] [PASSED] METEORLAKE (g:A0, m:A0) [05:34:06] [PASSED] METEORLAKE (g:A0, m:A0) [05:34:06] [PASSED] LUNARLAKE (g:A0, m:A0) [05:34:06] [PASSED] LUNARLAKE (g:B0, m:A0) [05:34:06] ==================== [PASSED] xe_wa_gt ===================== [05:34:06] ====================== [PASSED] xe_wa ====================== [05:34:06] ============================================================ [05:34:06] Testing complete. Ran 109 tests: passed: 95, skipped: 14 [05:34:07] Elapsed time: 30.187s total, 4.270s configuring, 25.647s building, 0.215s running + /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig [05:34:07] Configuring KUnit Kernel ... Regenerating .config ... Populating config with: $ make ARCH=um O=.kunit olddefconfig [05:34:08] Building KUnit Kernel ... Populating config with: $ make ARCH=um O=.kunit olddefconfig Building with: $ make 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) | ^~~~~~~~~~~~~~~~~ [05:34:30] Starting KUnit Kernel (1/1)... [05:34:30] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [05:34:30] ============ drm_test_pick_cmdline (2 subtests) ============ [05:34:30] [PASSED] drm_test_pick_cmdline_res_1920_1080_60 [05:34:30] =============== drm_test_pick_cmdline_named =============== [05:34:30] [PASSED] NTSC [05:34:30] [PASSED] NTSC-J [05:34:30] [PASSED] PAL [05:34:30] [PASSED] PAL-M [05:34:30] =========== [PASSED] drm_test_pick_cmdline_named =========== [05:34:30] ============== [PASSED] drm_test_pick_cmdline ============== [05:34:30] ================== drm_buddy (7 subtests) ================== [05:34:30] [PASSED] drm_test_buddy_alloc_limit [05:34:30] [PASSED] drm_test_buddy_alloc_optimistic [05:34:30] [PASSED] drm_test_buddy_alloc_pessimistic [05:34:30] [PASSED] drm_test_buddy_alloc_pathological [05:34:30] [PASSED] drm_test_buddy_alloc_contiguous [05:34:30] [PASSED] drm_test_buddy_alloc_clear [05:34:30] [PASSED] drm_test_buddy_alloc_range_bias [05:34:30] ==================== [PASSED] drm_buddy ==================== [05:34:30] ============= drm_cmdline_parser (40 subtests) ============= [05:34:30] [PASSED] drm_test_cmdline_force_d_only [05:34:30] [PASSED] drm_test_cmdline_force_D_only_dvi [05:34:30] [PASSED] drm_test_cmdline_force_D_only_hdmi [05:34:30] [PASSED] drm_test_cmdline_force_D_only_not_digital [05:34:30] [PASSED] drm_test_cmdline_force_e_only [05:34:30] [PASSED] drm_test_cmdline_res [05:34:30] [PASSED] drm_test_cmdline_res_vesa [05:34:30] [PASSED] drm_test_cmdline_res_vesa_rblank [05:34:30] [PASSED] drm_test_cmdline_res_rblank [05:34:30] [PASSED] drm_test_cmdline_res_bpp [05:34:30] [PASSED] drm_test_cmdline_res_refresh [05:34:30] [PASSED] drm_test_cmdline_res_bpp_refresh [05:34:30] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced [05:34:30] [PASSED] drm_test_cmdline_res_bpp_refresh_margins [05:34:30] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off [05:34:30] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on [05:34:30] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog [05:34:30] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital [05:34:30] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on [05:34:30] [PASSED] drm_test_cmdline_res_margins_force_on [05:34:30] [PASSED] drm_test_cmdline_res_vesa_margins [05:34:30] [PASSED] drm_test_cmdline_name [05:34:30] [PASSED] drm_test_cmdline_name_bpp [05:34:30] [PASSED] drm_test_cmdline_name_option [05:34:30] [PASSED] drm_test_cmdline_name_bpp_option [05:34:30] [PASSED] drm_test_cmdline_rotate_0 [05:34:30] [PASSED] drm_test_cmdline_rotate_90 [05:34:30] [PASSED] drm_test_cmdline_rotate_180 [05:34:30] [PASSED] drm_test_cmdline_rotate_270 [05:34:30] [PASSED] drm_test_cmdline_hmirror [05:34:30] [PASSED] drm_test_cmdline_vmirror [05:34:30] [PASSED] drm_test_cmdline_margin_options [05:34:30] [PASSED] drm_test_cmdline_multiple_options [05:34:30] [PASSED] drm_test_cmdline_bpp_extra_and_option [05:34:30] [PASSED] drm_test_cmdline_extra_and_option [05:34:30] [PASSED] drm_test_cmdline_freestanding_options [05:34:30] [PASSED] drm_test_cmdline_freestanding_force_e_and_options [05:34:30] [PASSED] drm_test_cmdline_panel_orientation [05:34:30] ================ drm_test_cmdline_invalid ================= [05:34:30] [PASSED] margin_only [05:34:30] [PASSED] interlace_only [05:34:30] [PASSED] res_missing_x [05:34:30] [PASSED] res_missing_y [05:34:30] [PASSED] res_bad_y [05:34:30] [PASSED] res_missing_y_bpp [05:34:30] [PASSED] res_bad_bpp [05:34:30] [PASSED] res_bad_refresh [05:34:30] [PASSED] res_bpp_refresh_force_on_off [05:34:30] [PASSED] res_invalid_mode [05:34:30] [PASSED] res_bpp_wrong_place_mode [05:34:30] [PASSED] name_bpp_refresh [05:34:30] [PASSED] name_refresh [05:34:30] [PASSED] name_refresh_wrong_mode [05:34:30] [PASSED] name_refresh_invalid_mode [05:34:30] [PASSED] rotate_multiple [05:34:30] [PASSED] rotate_invalid_val [05:34:30] [PASSED] rotate_truncated [05:34:30] [PASSED] invalid_option [05:34:30] [PASSED] invalid_tv_option [05:34:30] [PASSED] truncated_tv_option [05:34:30] ============ [PASSED] drm_test_cmdline_invalid ============= [05:34:30] =============== drm_test_cmdline_tv_options =============== [05:34:30] [PASSED] NTSC [05:34:30] [PASSED] NTSC_443 [05:34:30] [PASSED] NTSC_J [05:34:30] [PASSED] PAL [05:34:30] [PASSED] PAL_M [05:34:30] [PASSED] PAL_N [05:34:30] [PASSED] SECAM [05:34:30] =========== [PASSED] drm_test_cmdline_tv_options =========== [05:34:30] =============== [PASSED] drm_cmdline_parser ================ [05:34:30] ========== drmm_connector_hdmi_init (19 subtests) ========== [05:34:30] [PASSED] drm_test_connector_hdmi_init_valid [05:34:30] [PASSED] drm_test_connector_hdmi_init_bpc_8 [05:34:30] [PASSED] drm_test_connector_hdmi_init_bpc_10 [05:34:30] [PASSED] drm_test_connector_hdmi_init_bpc_12 [05:34:30] [PASSED] drm_test_connector_hdmi_init_bpc_invalid [05:34:30] [PASSED] drm_test_connector_hdmi_init_bpc_null [05:34:31] [PASSED] drm_test_connector_hdmi_init_formats_empty [05:34:31] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb [05:34:31] [PASSED] drm_test_connector_hdmi_init_null_ddc [05:34:31] [PASSED] drm_test_connector_hdmi_init_null_product [05:34:31] [PASSED] drm_test_connector_hdmi_init_null_vendor [05:34:31] [PASSED] drm_test_connector_hdmi_init_product_length_exact [05:34:31] [PASSED] drm_test_connector_hdmi_init_product_length_too_long [05:34:31] [PASSED] drm_test_connector_hdmi_init_product_valid [05:34:31] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact [05:34:31] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long [05:34:31] [PASSED] drm_test_connector_hdmi_init_vendor_valid [05:34:31] ========= drm_test_connector_hdmi_init_type_valid ========= [05:34:31] [PASSED] HDMI-A [05:34:31] [PASSED] HDMI-B [05:34:31] ===== [PASSED] drm_test_connector_hdmi_init_type_valid ===== [05:34:31] ======== drm_test_connector_hdmi_init_type_invalid ======== [05:34:31] [PASSED] Unknown [05:34:31] [PASSED] VGA [05:34:31] [PASSED] DVI-I [05:34:31] [PASSED] DVI-D [05:34:31] [PASSED] DVI-A [05:34:31] [PASSED] Composite [05:34:31] [PASSED] SVIDEO [05:34:31] [PASSED] LVDS [05:34:31] [PASSED] Component [05:34:31] [PASSED] DIN [05:34:31] [PASSED] DP [05:34:31] [PASSED] TV [05:34:31] [PASSED] eDP [05:34:31] [PASSED] Virtual [05:34:31] [PASSED] DSI [05:34:31] [PASSED] DPI [05:34:31] [PASSED] Writeback [05:34:31] [PASSED] SPI [05:34:31] [PASSED] USB [05:34:31] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ==== [05:34:31] ============ [PASSED] drmm_connector_hdmi_init ============= [05:34:31] ============= drmm_connector_init (3 subtests) ============= [05:34:31] [PASSED] drm_test_drmm_connector_init [05:34:31] [PASSED] drm_test_drmm_connector_init_null_ddc [05:34:31] ========= drm_test_drmm_connector_init_type_valid ========= [05:34:31] [PASSED] Unknown [05:34:31] [PASSED] VGA [05:34:31] [PASSED] DVI-I [05:34:31] [PASSED] DVI-D [05:34:31] [PASSED] DVI-A [05:34:31] [PASSED] Composite [05:34:31] [PASSED] SVIDEO [05:34:31] [PASSED] LVDS [05:34:31] [PASSED] Component [05:34:31] [PASSED] DIN [05:34:31] [PASSED] DP [05:34:31] [PASSED] HDMI-A [05:34:31] [PASSED] HDMI-B [05:34:31] [PASSED] TV [05:34:31] [PASSED] eDP [05:34:31] [PASSED] Virtual [05:34:31] [PASSED] DSI [05:34:31] [PASSED] DPI [05:34:31] [PASSED] Writeback [05:34:31] [PASSED] SPI [05:34:31] [PASSED] USB [05:34:31] ===== [PASSED] drm_test_drmm_connector_init_type_valid ===== [05:34:31] =============== [PASSED] drmm_connector_init =============== [05:34:31] = drm_connector_attach_broadcast_rgb_property (2 subtests) = [05:34:31] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property [05:34:31] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector [05:34:31] === [PASSED] drm_connector_attach_broadcast_rgb_property === [05:34:31] ========== drm_get_tv_mode_from_name (2 subtests) ========== [05:34:31] ========== drm_test_get_tv_mode_from_name_valid =========== [05:34:31] [PASSED] NTSC [05:34:31] [PASSED] NTSC-443 [05:34:31] [PASSED] NTSC-J [05:34:31] [PASSED] PAL [05:34:31] [PASSED] PAL-M [05:34:31] [PASSED] PAL-N [05:34:31] [PASSED] SECAM [05:34:31] ====== [PASSED] drm_test_get_tv_mode_from_name_valid ======= [05:34:31] [PASSED] drm_test_get_tv_mode_from_name_truncated [05:34:31] ============ [PASSED] drm_get_tv_mode_from_name ============ [05:34:31] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) = [05:34:31] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb [05:34:31] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc [05:34:31] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1 [05:34:31] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc [05:34:31] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1 [05:34:31] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double [05:34:31] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid = [05:34:31] [PASSED] VIC 96 [05:34:31] [PASSED] VIC 97 [05:34:31] [PASSED] VIC 101 [05:34:31] [PASSED] VIC 102 [05:34:31] [PASSED] VIC 106 [05:34:31] [PASSED] VIC 107 [05:34:31] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid === [05:34:31] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc [05:34:31] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc [05:34:31] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc [05:34:31] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc [05:34:31] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc [05:34:31] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ==== [05:34:31] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) == [05:34:31] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ==== [05:34:31] [PASSED] Automatic [05:34:31] [PASSED] Full [05:34:31] [PASSED] Limited 16:235 [05:34:31] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name === [05:34:31] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid [05:34:31] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ==== [05:34:31] == drm_hdmi_connector_get_output_format_name (2 subtests) == [05:34:31] === drm_test_drm_hdmi_connector_get_output_format_name ==== [05:34:31] [PASSED] RGB [05:34:31] [PASSED] YUV 4:2:0 [05:34:31] [PASSED] YUV 4:2:2 [05:34:31] [PASSED] YUV 4:4:4 [05:34:31] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name === [05:34:31] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid [05:34:31] ==== [PASSED] drm_hdmi_connector_get_output_format_name ==== [05:34:31] ============= drm_damage_helper (21 subtests) ============== [05:34:31] [PASSED] drm_test_damage_iter_no_damage [05:34:31] [PASSED] drm_test_damage_iter_no_damage_fractional_src [05:34:31] [PASSED] drm_test_damage_iter_no_damage_src_moved [05:34:31] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved [05:34:31] [PASSED] drm_test_damage_iter_no_damage_not_visible [05:34:31] [PASSED] drm_test_damage_iter_no_damage_no_crtc [05:34:31] [PASSED] drm_test_damage_iter_no_damage_no_fb [05:34:31] [PASSED] drm_test_damage_iter_simple_damage [05:34:31] [PASSED] drm_test_damage_iter_single_damage [05:34:31] [PASSED] drm_test_damage_iter_single_damage_intersect_src [05:34:31] [PASSED] drm_test_damage_iter_single_damage_outside_src [05:34:31] [PASSED] drm_test_damage_iter_single_damage_fractional_src [05:34:31] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src [05:34:31] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src [05:34:31] [PASSED] drm_test_damage_iter_single_damage_src_moved [05:34:31] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved [05:34:31] [PASSED] drm_test_damage_iter_damage [05:34:31] [PASSED] drm_test_damage_iter_damage_one_intersect [05:34:31] [PASSED] drm_test_damage_iter_damage_one_outside [05:34:31] [PASSED] drm_test_damage_iter_damage_src_moved [05:34:31] [PASSED] drm_test_damage_iter_damage_not_visible [05:34:31] ================ [PASSED] drm_damage_helper ================ [05:34:31] ============== drm_dp_mst_helper (3 subtests) ============== [05:34:31] ============== drm_test_dp_mst_calc_pbn_mode ============== [05:34:31] [PASSED] Clock 154000 BPP 30 DSC disabled [05:34:31] [PASSED] Clock 234000 BPP 30 DSC disabled [05:34:31] [PASSED] Clock 297000 BPP 24 DSC disabled [05:34:31] [PASSED] Clock 332880 BPP 24 DSC enabled [05:34:31] [PASSED] Clock 324540 BPP 24 DSC enabled [05:34:31] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ========== [05:34:31] ============== drm_test_dp_mst_calc_pbn_div =============== [05:34:31] [PASSED] Link rate 2000000 lane count 4 [05:34:31] [PASSED] Link rate 2000000 lane count 2 [05:34:31] [PASSED] Link rate 2000000 lane count 1 [05:34:31] [PASSED] Link rate 1350000 lane count 4 [05:34:31] [PASSED] Link rate 1350000 lane count 2 [05:34:31] [PASSED] Link rate 1350000 lane count 1 [05:34:31] [PASSED] Link rate 1000000 lane count 4 [05:34:31] [PASSED] Link rate 1000000 lane count 2 [05:34:31] [PASSED] Link rate 1000000 lane count 1 [05:34:31] [PASSED] Link rate 810000 lane count 4 [05:34:31] [PASSED] Link rate 810000 lane count 2 [05:34:31] [PASSED] Link rate 810000 lane count 1 [05:34:31] [PASSED] Link rate 540000 lane count 4 [05:34:31] [PASSED] Link rate 540000 lane count 2 [05:34:31] [PASSED] Link rate 540000 lane count 1 [05:34:31] [PASSED] Link rate 270000 lane count 4 [05:34:31] [PASSED] Link rate 270000 lane count 2 [05:34:31] [PASSED] Link rate 270000 lane count 1 [05:34:31] [PASSED] Link rate 162000 lane count 4 [05:34:31] [PASSED] Link rate 162000 lane count 2 [05:34:31] [PASSED] Link rate 162000 lane count 1 [05:34:31] ========== [PASSED] drm_test_dp_mst_calc_pbn_div =========== [05:34:31] ========= drm_test_dp_mst_sideband_msg_req_decode ========= [05:34:31] [PASSED] DP_ENUM_PATH_RESOURCES with port number [05:34:31] [PASSED] DP_POWER_UP_PHY with port number [05:34:31] [PASSED] DP_POWER_DOWN_PHY with port number [05:34:31] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks [05:34:31] [PASSED] DP_ALLOCATE_PAYLOAD with port number [05:34:31] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI [05:34:31] [PASSED] DP_ALLOCATE_PAYLOAD with PBN [05:34:31] [PASSED] DP_QUERY_PAYLOAD with port number [05:34:31] [PASSED] DP_QUERY_PAYLOAD with VCPI [05:34:31] [PASSED] DP_REMOTE_DPCD_READ with port number [05:34:31] [PASSED] DP_REMOTE_DPCD_READ with DPCD address [05:34:31] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes [05:34:31] [PASSED] DP_REMOTE_DPCD_WRITE with port number [05:34:31] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address [05:34:31] [PASSED] DP_REMOTE_DPCD_WRITE with data array [05:34:31] [PASSED] DP_REMOTE_I2C_READ with port number [05:34:31] [PASSED] DP_REMOTE_I2C_READ with I2C device ID [05:34:31] [PASSED] DP_REMOTE_I2C_READ with transactions array [05:34:31] [PASSED] DP_REMOTE_I2C_WRITE with port number [05:34:31] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID [05:34:31] [PASSED] DP_REMOTE_I2C_WRITE with data array [05:34:31] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID [05:34:31] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID [05:34:31] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event [05:34:31] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event [05:34:31] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior [05:34:31] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior [05:34:31] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode ===== [05:34:31] ================ [PASSED] drm_dp_mst_helper ================ [05:34:31] ================== drm_exec (7 subtests) =================== [05:34:31] [PASSED] sanitycheck [05:34:31] [PASSED] test_lock [05:34:31] [PASSED] test_lock_unlock [05:34:31] [PASSED] test_duplicates [05:34:31] [PASSED] test_prepare [05:34:31] [PASSED] test_prepare_array [05:34:31] [PASSED] test_multiple_loops [05:34:31] ==================== [PASSED] drm_exec ===================== [05:34:31] =========== drm_format_helper_test (17 subtests) =========== [05:34:31] ============== drm_test_fb_xrgb8888_to_gray8 ============== [05:34:31] [PASSED] single_pixel_source_buffer [05:34:31] [PASSED] single_pixel_clip_rectangle [05:34:31] [PASSED] well_known_colors [05:34:31] [PASSED] destination_pitch [05:34:31] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ========== [05:34:31] ============= drm_test_fb_xrgb8888_to_rgb332 ============== [05:34:31] [PASSED] single_pixel_source_buffer [05:34:31] [PASSED] single_pixel_clip_rectangle [05:34:31] [PASSED] well_known_colors [05:34:31] [PASSED] destination_pitch [05:34:31] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ========== [05:34:31] ============= drm_test_fb_xrgb8888_to_rgb565 ============== [05:34:31] [PASSED] single_pixel_source_buffer [05:34:31] [PASSED] single_pixel_clip_rectangle [05:34:31] [PASSED] well_known_colors [05:34:31] [PASSED] destination_pitch [05:34:31] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ========== [05:34:31] ============ drm_test_fb_xrgb8888_to_xrgb1555 ============= [05:34:31] [PASSED] single_pixel_source_buffer [05:34:31] [PASSED] single_pixel_clip_rectangle [05:34:31] [PASSED] well_known_colors [05:34:31] [PASSED] destination_pitch [05:34:31] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 ========= [05:34:31] ============ drm_test_fb_xrgb8888_to_argb1555 ============= [05:34:31] [PASSED] single_pixel_source_buffer [05:34:31] [PASSED] single_pixel_clip_rectangle [05:34:31] [PASSED] well_known_colors [05:34:31] [PASSED] destination_pitch [05:34:31] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 ========= [05:34:31] ============ drm_test_fb_xrgb8888_to_rgba5551 ============= [05:34:31] [PASSED] single_pixel_source_buffer [05:34:31] [PASSED] single_pixel_clip_rectangle [05:34:31] [PASSED] well_known_colors [05:34:31] [PASSED] destination_pitch [05:34:31] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 ========= [05:34:31] ============= drm_test_fb_xrgb8888_to_rgb888 ============== [05:34:31] [PASSED] single_pixel_source_buffer [05:34:31] [PASSED] single_pixel_clip_rectangle [05:34:31] [PASSED] well_known_colors [05:34:31] [PASSED] destination_pitch [05:34:31] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ========== [05:34:31] ============ drm_test_fb_xrgb8888_to_argb8888 ============= [05:34:31] [PASSED] single_pixel_source_buffer [05:34:31] [PASSED] single_pixel_clip_rectangle [05:34:31] [PASSED] well_known_colors [05:34:31] [PASSED] destination_pitch [05:34:31] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 ========= [05:34:31] =========== drm_test_fb_xrgb8888_to_xrgb2101010 =========== [05:34:31] [PASSED] single_pixel_source_buffer [05:34:31] [PASSED] single_pixel_clip_rectangle [05:34:31] [PASSED] well_known_colors [05:34:31] [PASSED] destination_pitch [05:34:31] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 ======= [05:34:31] =========== drm_test_fb_xrgb8888_to_argb2101010 =========== [05:34:31] [PASSED] single_pixel_source_buffer [05:34:31] [PASSED] single_pixel_clip_rectangle [05:34:31] [PASSED] well_known_colors [05:34:31] [PASSED] destination_pitch [05:34:31] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 ======= [05:34:31] ============== drm_test_fb_xrgb8888_to_mono =============== [05:34:31] [PASSED] single_pixel_source_buffer [05:34:31] [PASSED] single_pixel_clip_rectangle [05:34:31] [PASSED] well_known_colors [05:34:31] [PASSED] destination_pitch [05:34:31] ========== [PASSED] drm_test_fb_xrgb8888_to_mono =========== [05:34:31] ==================== drm_test_fb_swab ===================== [05:34:31] [PASSED] single_pixel_source_buffer [05:34:31] [PASSED] single_pixel_clip_rectangle [05:34:31] [PASSED] well_known_colors [05:34:31] [PASSED] destination_pitch [05:34:31] ================ [PASSED] drm_test_fb_swab ================= [05:34:31] ============ drm_test_fb_xrgb8888_to_xbgr8888 ============= [05:34:31] [PASSED] single_pixel_source_buffer [05:34:31] [PASSED] single_pixel_clip_rectangle [05:34:31] [PASSED] well_known_colors [05:34:31] [PASSED] destination_pitch [05:34:31] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 ========= [05:34:31] ============ drm_test_fb_xrgb8888_to_abgr8888 ============= [05:34:31] [PASSED] single_pixel_source_buffer [05:34:31] [PASSED] single_pixel_clip_rectangle [05:34:31] [PASSED] well_known_colors [05:34:31] [PASSED] destination_pitch [05:34:31] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 ========= [05:34:31] ================= drm_test_fb_clip_offset ================= [05:34:31] [PASSED] pass through [05:34:31] [PASSED] horizontal offset [05:34:31] [PASSED] vertical offset [05:34:31] [PASSED] horizontal and vertical offset [05:34:31] [PASSED] horizontal offset (custom pitch) [05:34:31] [PASSED] vertical offset (custom pitch) [05:34:31] [PASSED] horizontal and vertical offset (custom pitch) [05:34:31] ============= [PASSED] drm_test_fb_clip_offset ============= [05:34:31] ============== drm_test_fb_build_fourcc_list ============== [05:34:31] [PASSED] no native formats [05:34:31] [PASSED] XRGB8888 as native format [05:34:31] [PASSED] remove duplicates [05:34:31] [PASSED] convert alpha formats [05:34:31] [PASSED] random formats [05:34:31] ========== [PASSED] drm_test_fb_build_fourcc_list ========== [05:34:31] =================== drm_test_fb_memcpy ==================== [05:34:31] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258) [05:34:31] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258) [05:34:31] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559) [05:34:31] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258) [05:34:31] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258) [05:34:31] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559) [05:34:31] [PASSED] well_known_colors: XB24 little-endian (0x34324258) [05:34:31] [PASSED] well_known_colors: XRA8 little-endian (0x38415258) [05:34:31] [PASSED] well_known_colors: YU24 little-endian (0x34325559) [05:34:31] [PASSED] destination_pitch: XB24 little-endian (0x34324258) [05:34:31] [PASSED] destination_pitch: XRA8 little-endian (0x38415258) [05:34:31] [PASSED] destination_pitch: YU24 little-endian (0x34325559) [05:34:31] =============== [PASSED] drm_test_fb_memcpy ================ [05:34:31] ============= [PASSED] drm_format_helper_test ============== [05:34:31] ================= drm_format (18 subtests) ================= [05:34:31] [PASSED] drm_test_format_block_width_invalid [05:34:31] [PASSED] drm_test_format_block_width_one_plane [05:34:31] [PASSED] drm_test_format_block_width_two_plane [05:34:31] [PASSED] drm_test_format_block_width_three_plane [05:34:31] [PASSED] drm_test_format_block_width_tiled [05:34:31] [PASSED] drm_test_format_block_height_invalid [05:34:31] [PASSED] drm_test_format_block_height_one_plane [05:34:31] [PASSED] drm_test_format_block_height_two_plane [05:34:31] [PASSED] drm_test_format_block_height_three_plane [05:34:31] [PASSED] drm_test_format_block_height_tiled [05:34:31] [PASSED] drm_test_format_min_pitch_invalid [05:34:31] [PASSED] drm_test_format_min_pitch_one_plane_8bpp [05:34:31] [PASSED] drm_test_format_min_pitch_one_plane_16bpp [05:34:31] [PASSED] drm_test_format_min_pitch_one_plane_24bpp [05:34:31] [PASSED] drm_test_format_min_pitch_one_plane_32bpp [05:34:31] [PASSED] drm_test_format_min_pitch_two_plane [05:34:31] [PASSED] drm_test_format_min_pitch_three_plane_8bpp [05:34:31] [PASSED] drm_test_format_min_pitch_tiled [05:34:31] =================== [PASSED] drm_format ==================== [05:34:31] =============== drm_framebuffer (1 subtest) ================ [05:34:31] =============== drm_test_framebuffer_create =============== [05:34:31] [PASSED] ABGR8888 normal sizes [05:34:31] [PASSED] ABGR8888 max sizes [05:34:31] [PASSED] ABGR8888 pitch greater than min required [05:34:31] [PASSED] ABGR8888 pitch less than min required [05:34:31] [PASSED] ABGR8888 Invalid width [05:34:31] [PASSED] ABGR8888 Invalid buffer handle [05:34:31] [PASSED] No pixel format [05:34:31] [PASSED] ABGR8888 Width 0 [05:34:31] [PASSED] ABGR8888 Height 0 [05:34:31] [PASSED] ABGR8888 Out of bound height * pitch combination [05:34:31] [PASSED] ABGR8888 Large buffer offset [05:34:31] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers [05:34:31] [PASSED] ABGR8888 Valid buffer modifier [05:34:31] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE) [05:34:31] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS [05:34:31] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS [05:34:31] [PASSED] NV12 Normal sizes [05:34:31] [PASSED] NV12 Max sizes [05:34:31] [PASSED] NV12 Invalid pitch [05:34:31] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag [05:34:31] [PASSED] NV12 different modifier per-plane [05:34:31] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE [05:34:31] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS [05:34:31] [PASSED] NV12 Modifier for inexistent plane [05:34:31] [PASSED] NV12 Handle for inexistent plane [05:34:31] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS [05:34:31] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier [05:34:31] [PASSED] YVU420 Normal sizes [05:34:31] [PASSED] YVU420 Max sizes [05:34:31] [PASSED] YVU420 Invalid pitch [05:34:31] [PASSED] YVU420 Different pitches [05:34:31] [PASSED] YVU420 Different buffer offsets/pitches [05:34:31] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS [05:34:31] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS [05:34:31] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS [05:34:31] [PASSED] YVU420 Valid modifier [05:34:31] [PASSED] YVU420 Different modifiers per plane [05:34:31] [PASSED] YVU420 Modifier for inexistent plane [05:34:31] [PASSED] X0L2 Normal sizes [05:34:31] [PASSED] X0L2 Max sizes [05:34:31] [PASSED] X0L2 Invalid pitch [05:34:31] [PASSED] X0L2 Pitch greater than minimum required [05:34:31] [PASSED] X0L2 Handle for inexistent plane [05:34:31] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set [05:34:31] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set [05:34:31] [PASSED] X0L2 Valid modifier [05:34:31] [PASSED] X0L2 Modifier for inexistent plane [05:34:31] =========== [PASSED] drm_test_framebuffer_create =========== [05:34:31] ================= [PASSED] drm_framebuffer ================= [05:34:31] ================ drm_gem_shmem (8 subtests) ================ [05:34:31] [PASSED] drm_gem_shmem_test_obj_create [05:34:31] [PASSED] drm_gem_shmem_test_obj_create_private [05:34:31] [PASSED] drm_gem_shmem_test_pin_pages [05:34:31] [PASSED] drm_gem_shmem_test_vmap [05:34:31] [PASSED] drm_gem_shmem_test_get_pages_sgt [05:34:31] [PASSED] drm_gem_shmem_test_get_sg_table [05:34:31] [PASSED] drm_gem_shmem_test_madvise [05:34:31] [PASSED] drm_gem_shmem_test_purge [05:34:31] ================== [PASSED] drm_gem_shmem ================== [05:34:31] === drm_atomic_helper_connector_hdmi_check (22 subtests) === [05:34:31] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode [05:34:31] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1 [05:34:31] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode [05:34:31] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1 [05:34:31] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode [05:34:31] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1 [05:34:31] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed [05:34:31] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed [05:34:31] [PASSED] drm_test_check_hdmi_funcs_reject_rate [05:34:31] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback [05:34:31] [PASSED] drm_test_check_max_tmds_rate_format_fallback [05:34:31] [PASSED] drm_test_check_output_bpc_crtc_mode_changed [05:34:31] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed [05:34:31] [PASSED] drm_test_check_output_bpc_dvi [05:34:31] [PASSED] drm_test_check_output_bpc_format_vic_1 [05:34:31] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only [05:34:31] [PASSED] drm_test_check_output_bpc_format_display_rgb_only [05:34:31] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only [05:34:31] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only [05:34:31] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc [05:34:31] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc [05:34:31] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc [05:34:31] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ====== [05:34:31] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ==== [05:34:31] [PASSED] drm_test_check_broadcast_rgb_value [05:34:31] [PASSED] drm_test_check_bpc_8_value [05:34:31] [PASSED] drm_test_check_bpc_10_value [05:34:31] [PASSED] drm_test_check_bpc_12_value [05:34:31] [PASSED] drm_test_check_format_value [05:34:31] [PASSED] drm_test_check_tmds_char_value [05:34:31] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ====== [05:34:31] ================= drm_managed (2 subtests) ================= [05:34:31] [PASSED] drm_test_managed_release_action [05:34:31] [PASSED] drm_test_managed_run_action [05:34:31] =================== [PASSED] drm_managed =================== [05:34:31] =================== drm_mm (6 subtests) ==================== [05:34:31] [PASSED] drm_test_mm_init [05:34:31] [PASSED] drm_test_mm_debug [05:34:31] [PASSED] drm_test_mm_align32 [05:34:31] [PASSED] drm_test_mm_align64 [05:34:31] [PASSED] drm_test_mm_lowest [05:34:31] [PASSED] drm_test_mm_highest [05:34:31] ===================== [PASSED] drm_mm ====================== [05:34:31] ============= drm_modes_analog_tv (4 subtests) ============= [05:34:31] [PASSED] drm_test_modes_analog_tv_ntsc_480i [05:34:31] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined [05:34:31] [PASSED] drm_test_modes_analog_tv_pal_576i [05:34:31] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined [05:34:31] =============== [PASSED] drm_modes_analog_tv =============== [05:34:31] ============== drm_plane_helper (2 subtests) =============== [05:34:31] =============== drm_test_check_plane_state ================ [05:34:31] [PASSED] clipping_simple [05:34:31] [PASSED] clipping_rotate_reflect [05:34:31] [PASSED] positioning_simple [05:34:31] [PASSED] upscaling [05:34:31] [PASSED] downscaling [05:34:31] [PASSED] rounding1 [05:34:31] [PASSED] rounding2 [05:34:31] [PASSED] rounding3 [05:34:31] [PASSED] rounding4 [05:34:31] =========== [PASSED] drm_test_check_plane_state ============ [05:34:31] =========== drm_test_check_invalid_plane_state ============ [05:34:31] [PASSED] positioning_invalid [05:34:31] [PASSED] upscaling_invalid [05:34:31] [PASSED] downscaling_invalid [05:34:31] ======= [PASSED] drm_test_check_invalid_plane_state ======== [05:34:31] ================ [PASSED] drm_plane_helper ================= stty: 'standard input': Inappropriate ioctl for device [05:34:31] ====== drm_connector_helper_tv_get_modes (1 subtest) ======= [05:34:31] ====== drm_test_connector_helper_tv_get_modes_check ======= [05:34:31] [PASSED] None [05:34:31] [PASSED] PAL [05:34:31] [PASSED] NTSC [05:34:31] [PASSED] Both, NTSC Default [05:34:31] [PASSED] Both, PAL Default [05:34:31] [PASSED] Both, NTSC Default, with PAL on command-line [05:34:31] [PASSED] Both, PAL Default, with NTSC on command-line [05:34:31] == [PASSED] drm_test_connector_helper_tv_get_modes_check === [05:34:31] ======== [PASSED] drm_connector_helper_tv_get_modes ======== [05:34:31] ================== drm_rect (9 subtests) =================== [05:34:31] [PASSED] drm_test_rect_clip_scaled_div_by_zero [05:34:31] [PASSED] drm_test_rect_clip_scaled_not_clipped [05:34:31] [PASSED] drm_test_rect_clip_scaled_clipped [05:34:31] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned [05:34:31] ================= drm_test_rect_intersect ================= [05:34:31] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0 [05:34:31] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1 [05:34:31] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0 [05:34:31] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1 [05:34:31] [PASSED] right x left: 2x1+0+0 x 3x1+1+0 [05:34:31] [PASSED] left x right: 3x1+1+0 x 2x1+0+0 [05:34:31] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1 [05:34:31] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0 [05:34:31] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1 [05:34:31] [PASSED] touching side: 1x1+0+0 x 1x1+1+0 [05:34:31] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0 [05:34:31] [PASSED] inside another: 2x2+0+0 x 1x1+1+1 [05:34:31] [PASSED] far away: 1x1+0+0 x 1x1+3+6 [05:34:31] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10 [05:34:31] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10 [05:34:31] ============= [PASSED] drm_test_rect_intersect ============= [05:34:31] ================ drm_test_rect_calc_hscale ================ [05:34:31] [PASSED] normal use [05:34:31] [PASSED] out of max range [05:34:31] [PASSED] out of min range [05:34:31] [PASSED] zero dst [05:34:31] [PASSED] negative src [05:34:31] [PASSED] negative dst [05:34:31] ============ [PASSED] drm_test_rect_calc_hscale ============ [05:34:31] ================ drm_test_rect_calc_vscale ================ [05:34:31] [PASSED] normal use [05:34:31] [PASSED] out of max range [05:34:31] [PASSED] out of min range [05:34:31] [PASSED] zero dst [05:34:31] [PASSED] negative src [05:34:31] [PASSED] negative dst [05:34:31] ============ [PASSED] drm_test_rect_calc_vscale ============ [05:34:31] ================== drm_test_rect_rotate =================== [05:34:31] [PASSED] reflect-x [05:34:31] [PASSED] reflect-y [05:34:31] [PASSED] rotate-0 [05:34:31] [PASSED] rotate-90 [05:34:31] [PASSED] rotate-180 [05:34:31] [PASSED] rotate-270 [05:34:31] ============== [PASSED] drm_test_rect_rotate =============== [05:34:31] ================ drm_test_rect_rotate_inv ================= [05:34:31] [PASSED] reflect-x [05:34:31] [PASSED] reflect-y [05:34:31] [PASSED] rotate-0 [05:34:31] [PASSED] rotate-90 [05:34:31] [PASSED] rotate-180 [05:34:31] [PASSED] rotate-270 [05:34:31] ============ [PASSED] drm_test_rect_rotate_inv ============= [05:34:31] ==================== [PASSED] drm_rect ===================== [05:34:31] ============================================================ [05:34:31] Testing complete. Ran 511 tests: passed: 511 [05:34:31] Elapsed time: 23.928s total, 1.724s configuring, 22.034s building, 0.152s running + cleanup ++ stat -c %u:%g /kernel + chown -R 1003:1003 /kernel ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v8 1/2] drm/xe: Get GT clock to nanosecs 2024-06-12 5:40 [PATCH v8 0/2] drm/xe/pmu: Enable PMU interface Riana Tauro ` (2 preceding siblings ...) 2024-06-12 5:34 ` ✓ CI.KUnit: success " Patchwork @ 2024-06-12 5:40 ` Riana Tauro 2024-06-12 5:40 ` [PATCH v8 2/2] drm/xe/pmu: Enable PMU interface Riana Tauro ` (5 subsequent siblings) 9 siblings, 0 replies; 14+ messages in thread From: Riana Tauro @ 2024-06-12 5:40 UTC (permalink / raw) To: intel-xe Cc: riana.tauro, anshuman.gupta, aravind.iddamsetty, tvrtko.ursulin, rodrigo.vivi, umesh.nerlige.ramappa, krishnaiah.bommu, ashutosh.dixit From: Aravind Iddamsetty <aravind.iddamsetty@linux.intel.com> Helper to convert GT clock cycles to nanoseconds. v2: Use DIV_ROUND_CLOSEST_ULL helper(Ashutosh) v3: rename xe_gt_clock_interval_to_ns to xe_gt_clock_cycles_to_ns v4: rebase Reviewed-by: Tejas Upadhyay <tejas.upadhyay@intel.com> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com> Signed-off-by: Aravind Iddamsetty <aravind.iddamsetty@linux.intel.com> Signed-off-by: Riana Tauro <riana.tauro@intel.com> --- drivers/gpu/drm/xe/xe_gt_clock.c | 5 +++++ drivers/gpu/drm/xe/xe_gt_clock.h | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/xe/xe_gt_clock.c b/drivers/gpu/drm/xe/xe_gt_clock.c index 9ff2061133df..ba35bbc89114 100644 --- a/drivers/gpu/drm/xe/xe_gt_clock.c +++ b/drivers/gpu/drm/xe/xe_gt_clock.c @@ -79,3 +79,8 @@ int xe_gt_clock_init(struct xe_gt *gt) gt->info.reference_clock = freq; return 0; } + +u64 xe_gt_clock_cycles_to_ns(const struct xe_gt *gt, u64 count) +{ + return DIV_ROUND_CLOSEST_ULL(count * NSEC_PER_SEC, gt->info.reference_clock); +} diff --git a/drivers/gpu/drm/xe/xe_gt_clock.h b/drivers/gpu/drm/xe/xe_gt_clock.h index 44fa0371b973..aa162722f859 100644 --- a/drivers/gpu/drm/xe/xe_gt_clock.h +++ b/drivers/gpu/drm/xe/xe_gt_clock.h @@ -11,5 +11,5 @@ struct xe_gt; int xe_gt_clock_init(struct xe_gt *gt); - +u64 xe_gt_clock_cycles_to_ns(const struct xe_gt *gt, u64 count); #endif -- 2.40.0 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v8 2/2] drm/xe/pmu: Enable PMU interface 2024-06-12 5:40 [PATCH v8 0/2] drm/xe/pmu: Enable PMU interface Riana Tauro ` (3 preceding siblings ...) 2024-06-12 5:40 ` [PATCH v8 1/2] drm/xe: Get GT clock to nanosecs Riana Tauro @ 2024-06-12 5:40 ` Riana Tauro 2024-06-12 9:07 ` Matthew Auld 2024-06-12 9:13 ` Aravind Iddamsetty 2024-06-12 5:46 ` ✓ CI.Build: success for drm/xe/pmu: Enable PMU interface (rev8) Patchwork ` (4 subsequent siblings) 9 siblings, 2 replies; 14+ messages in thread From: Riana Tauro @ 2024-06-12 5:40 UTC (permalink / raw) To: intel-xe Cc: riana.tauro, anshuman.gupta, aravind.iddamsetty, tvrtko.ursulin, rodrigo.vivi, umesh.nerlige.ramappa, krishnaiah.bommu, ashutosh.dixit From: Aravind Iddamsetty <aravind.iddamsetty@linux.intel.com> There are a set of engine group busyness counters provided by HW which are perfect fit to be exposed via PMU perf events. BSPEC: 46559, 46560, 46722, 46729, 52071, 71028 events can be listed using: perf list xe_0000_03_00.0/any-engine-group-busy-gt0/ [Kernel PMU event] xe_0000_03_00.0/copy-group-busy-gt0/ [Kernel PMU event] xe_0000_03_00.0/interrupts/ [Kernel PMU event] xe_0000_03_00.0/media-group-busy-gt0/ [Kernel PMU event] xe_0000_03_00.0/render-group-busy-gt0/ [Kernel PMU event] and can be read using: perf stat -e "xe_0000_8c_00.0/render-group-busy-gt0/" -I 1000 time counts unit events 1.001139062 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ 2.003294678 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ 3.005199582 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ 4.007076497 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ 5.008553068 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ 6.010531563 43520 ns xe_0000_8c_00.0/render-group-busy-gt0/ 7.012468029 44800 ns xe_0000_8c_00.0/render-group-busy-gt0/ 8.013463515 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ 9.015300183 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ 10.017233010 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ 10.971934120 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ The pmu base implementation is taken from i915. v2: Store last known value when device is awake return that while the GT is suspended and then update the driver copy when read during awake. v3: 1. drop init_samples, as storing counters before going to suspend should be sufficient. 2. ported the "drm/i915/pmu: Make PMU sample array two-dimensional" and dropped helpers to store and read samples. 3. use xe_device_mem_access_get_if_ongoing to check if device is active before reading the OA registers. 4. dropped format attr as no longer needed 5. introduce xe_pmu_suspend to call engine_group_busyness_store 6. few other nits. v4: minor nits. v5: take forcewake when accessing the OAG registers v6: 1. drop engine_busyness_sample_type 2. update UAPI documentation v7: 1. update UAPI documentation 2. drop MEDIA_GT specific change for media busyness counter. v8: 1. rebase 2. replace mem_access_if_ongoing with xe_pm_runtime_get_if_active 3. remove interrupts pmu event Co-developed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Co-developed-by: Bommu Krishnaiah <krishnaiah.bommu@intel.com> Signed-off-by: Bommu Krishnaiah <krishnaiah.bommu@intel.com> Signed-off-by: Aravind Iddamsetty <aravind.iddamsetty@linux.intel.com> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com> Signed-off-by: Riana Tauro <riana.tauro@intel.com> --- drivers/gpu/drm/xe/Makefile | 2 + drivers/gpu/drm/xe/regs/xe_gt_regs.h | 5 + drivers/gpu/drm/xe/xe_device.c | 2 + drivers/gpu/drm/xe/xe_device_types.h | 4 + drivers/gpu/drm/xe/xe_gt.c | 2 + drivers/gpu/drm/xe/xe_module.c | 5 + drivers/gpu/drm/xe/xe_pmu.c | 631 +++++++++++++++++++++++++++ drivers/gpu/drm/xe/xe_pmu.h | 26 ++ drivers/gpu/drm/xe/xe_pmu_types.h | 67 +++ include/uapi/drm/xe_drm.h | 39 ++ 10 files changed, 783 insertions(+) create mode 100644 drivers/gpu/drm/xe/xe_pmu.c create mode 100644 drivers/gpu/drm/xe/xe_pmu.h create mode 100644 drivers/gpu/drm/xe/xe_pmu_types.h diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile index 0c3e3adabb27..ce4efd9ae8b3 100644 --- a/drivers/gpu/drm/xe/Makefile +++ b/drivers/gpu/drm/xe/Makefile @@ -276,6 +276,8 @@ xe-$(CONFIG_DRM_XE_DISPLAY) += \ i915-display/skl_universal_plane.o \ i915-display/skl_watermark.o +xe-$(CONFIG_PERF_EVENTS) += xe_pmu.o + ifeq ($(CONFIG_ACPI),y) xe-$(CONFIG_DRM_XE_DISPLAY) += \ i915-display/intel_acpi.o \ diff --git a/drivers/gpu/drm/xe/regs/xe_gt_regs.h b/drivers/gpu/drm/xe/regs/xe_gt_regs.h index 47c26c37608d..22821dcd4e1b 100644 --- a/drivers/gpu/drm/xe/regs/xe_gt_regs.h +++ b/drivers/gpu/drm/xe/regs/xe_gt_regs.h @@ -390,6 +390,11 @@ #define INVALIDATION_BROADCAST_MODE_DIS REG_BIT(12) #define GLOBAL_INVALIDATION_MODE REG_BIT(2) +#define XE_OAG_RC0_ANY_ENGINE_BUSY_FREE XE_REG(0xdb80) +#define XE_OAG_ANY_MEDIA_FF_BUSY_FREE XE_REG(0xdba0) +#define XE_OAG_BLT_BUSY_FREE XE_REG(0xdbbc) +#define XE_OAG_RENDER_BUSY_FREE XE_REG(0xdbdc) + #define HALF_SLICE_CHICKEN5 XE_REG_MCR(0xe188, XE_REG_OPTION_MASKED) #define DISABLE_SAMPLE_G_PERFORMANCE REG_BIT(0) diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c index 0ff95a0ea5ea..88a90143eac1 100644 --- a/drivers/gpu/drm/xe/xe_device.c +++ b/drivers/gpu/drm/xe/xe_device.c @@ -667,6 +667,8 @@ int xe_device_probe(struct xe_device *xe) xe_hwmon_register(xe); + xe_pmu_register(&xe->pmu); + return devm_add_action_or_reset(xe->drm.dev, xe_device_sanitize, xe); err_fini_display: diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h index 52bc461171d5..a5dba7325cf1 100644 --- a/drivers/gpu/drm/xe/xe_device_types.h +++ b/drivers/gpu/drm/xe/xe_device_types.h @@ -18,6 +18,7 @@ #include "xe_lmtt_types.h" #include "xe_memirq_types.h" #include "xe_platform_types.h" +#include "xe_pmu.h" #include "xe_pt_types.h" #include "xe_sriov_types.h" #include "xe_step_types.h" @@ -473,6 +474,9 @@ struct xe_device { int mode; } wedged; + /** @pmu: performance monitoring unit */ + struct xe_pmu pmu; + /* private: */ #if IS_ENABLED(CONFIG_DRM_XE_DISPLAY) diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c index 57d84751e160..477d0ae5f230 100644 --- a/drivers/gpu/drm/xe/xe_gt.c +++ b/drivers/gpu/drm/xe/xe_gt.c @@ -782,6 +782,8 @@ int xe_gt_suspend(struct xe_gt *gt) if (err) goto err_msg; + xe_pmu_suspend(gt); + err = xe_uc_suspend(>->uc); if (err) goto err_force_wake; diff --git a/drivers/gpu/drm/xe/xe_module.c b/drivers/gpu/drm/xe/xe_module.c index 3edeb30d5ccb..26f814f97fc2 100644 --- a/drivers/gpu/drm/xe/xe_module.c +++ b/drivers/gpu/drm/xe/xe_module.c @@ -11,6 +11,7 @@ #include "xe_drv.h" #include "xe_hw_fence.h" #include "xe_pci.h" +#include "xe_pmu.h" #include "xe_sched_job.h" struct xe_modparam xe_modparam = { @@ -74,6 +75,10 @@ static const struct init_funcs init_funcs[] = { .init = xe_sched_job_module_init, .exit = xe_sched_job_module_exit, }, + { + .init = xe_pmu_init, + .exit = xe_pmu_exit, + }, { .init = xe_register_pci_driver, .exit = xe_unregister_pci_driver, diff --git a/drivers/gpu/drm/xe/xe_pmu.c b/drivers/gpu/drm/xe/xe_pmu.c new file mode 100644 index 000000000000..472f63e76c62 --- /dev/null +++ b/drivers/gpu/drm/xe/xe_pmu.c @@ -0,0 +1,631 @@ +// SPDX-License-Identifier: MIT +/* + * Copyright © 2024 Intel Corporation + */ + +#include <drm/drm_drv.h> +#include <drm/drm_managed.h> +#include <drm/xe_drm.h> + +#include "regs/xe_gt_regs.h" +#include "xe_device.h" +#include "xe_force_wake.h" +#include "xe_gt_clock.h" +#include "xe_mmio.h" +#include "xe_macros.h" +#include "xe_pm.h" + +static cpumask_t xe_pmu_cpumask; +static unsigned int xe_pmu_target_cpu = -1; + +static unsigned int config_gt_id(const u64 config) +{ + return config >> __XE_PMU_GT_SHIFT; +} + +static u64 config_counter(const u64 config) +{ + return config & ~(~0ULL << __XE_PMU_GT_SHIFT); +} + +static void xe_pmu_event_destroy(struct perf_event *event) +{ + struct xe_device *xe = + container_of(event->pmu, typeof(*xe), pmu.base); + + drm_WARN_ON(&xe->drm, event->parent); + + drm_dev_put(&xe->drm); +} + +static u64 __engine_group_busyness_read(struct xe_gt *gt, int sample_type) +{ + u64 val; + + switch (sample_type) { + case __XE_SAMPLE_RENDER_GROUP_BUSY: + val = xe_mmio_read32(gt, XE_OAG_RENDER_BUSY_FREE); + break; + case __XE_SAMPLE_COPY_GROUP_BUSY: + val = xe_mmio_read32(gt, XE_OAG_BLT_BUSY_FREE); + break; + case __XE_SAMPLE_MEDIA_GROUP_BUSY: + val = xe_mmio_read32(gt, XE_OAG_ANY_MEDIA_FF_BUSY_FREE); + break; + case __XE_SAMPLE_ANY_ENGINE_GROUP_BUSY: + val = xe_mmio_read32(gt, XE_OAG_RC0_ANY_ENGINE_BUSY_FREE); + break; + default: + drm_warn(>->tile->xe->drm, "unknown pmu event\n"); + } + + return xe_gt_clock_cycles_to_ns(gt, val * 16); +} + +static u64 engine_group_busyness_read(struct xe_gt *gt, u64 config) +{ + int sample_type = config_counter(config); + const unsigned int gt_id = gt->info.id; + struct xe_device *xe = gt->tile->xe; + struct xe_pmu *pmu = &xe->pmu; + unsigned long flags; + bool device_awake; + u64 val; + + device_awake = xe_pm_runtime_get_if_active(xe); + if (device_awake) { + XE_WARN_ON(xe_force_wake_get(gt_to_fw(gt), XE_FW_GT)); + val = __engine_group_busyness_read(gt, sample_type); + XE_WARN_ON(xe_force_wake_put(gt_to_fw(gt), XE_FW_GT)); + xe_pm_runtime_put(xe); + } + + spin_lock_irqsave(&pmu->lock, flags); + + if (device_awake) + pmu->sample[gt_id][sample_type] = val; + else + val = pmu->sample[gt_id][sample_type]; + + spin_unlock_irqrestore(&pmu->lock, flags); + + return val; +} + +static void engine_group_busyness_store(struct xe_gt *gt) +{ + struct xe_pmu *pmu = >->tile->xe->pmu; + unsigned int gt_id = gt->info.id; + unsigned long flags; + int i; + + spin_lock_irqsave(&pmu->lock, flags); + + for (i = __XE_SAMPLE_RENDER_GROUP_BUSY; i <= __XE_SAMPLE_ANY_ENGINE_GROUP_BUSY; i++) + pmu->sample[gt_id][i] = __engine_group_busyness_read(gt, i); + + spin_unlock_irqrestore(&pmu->lock, flags); +} + +static int +config_status(struct xe_device *xe, u64 config) +{ + unsigned int gt_id = config_gt_id(config); + struct xe_gt *gt = xe_device_get_gt(xe, gt_id); + + if (gt_id >= XE_PMU_MAX_GT) + return -ENOENT; + + switch (config_counter(config)) { + case XE_PMU_RENDER_GROUP_BUSY(0): + case XE_PMU_COPY_GROUP_BUSY(0): + case XE_PMU_ANY_ENGINE_GROUP_BUSY(0): + if (gt->info.type == XE_GT_TYPE_MEDIA) + return -ENOENT; + break; + case XE_PMU_MEDIA_GROUP_BUSY(0): + if (!(gt->info.engine_mask & (BIT(XE_HW_ENGINE_VCS0) | BIT(XE_HW_ENGINE_VECS0)))) + return -ENOENT; + break; + default: + return -ENOENT; + } + + return 0; +} + +static int xe_pmu_event_init(struct perf_event *event) +{ + struct xe_device *xe = + container_of(event->pmu, typeof(*xe), pmu.base); + struct xe_pmu *pmu = &xe->pmu; + int ret; + + if (pmu->closed) + return -ENODEV; + + if (event->attr.type != event->pmu->type) + return -ENOENT; + + /* unsupported modes and filters */ + if (event->attr.sample_period) /* no sampling */ + return -EINVAL; + + if (has_branch_stack(event)) + return -EOPNOTSUPP; + + if (event->cpu < 0) + return -EINVAL; + + /* only allow running on one cpu at a time */ + if (!cpumask_test_cpu(event->cpu, &xe_pmu_cpumask)) + return -EINVAL; + + ret = config_status(xe, event->attr.config); + if (ret) + return ret; + + if (!event->parent) { + drm_dev_get(&xe->drm); + event->destroy = xe_pmu_event_destroy; + } + + return 0; +} + +static u64 __xe_pmu_event_read(struct perf_event *event) +{ + struct xe_device *xe = + container_of(event->pmu, typeof(*xe), pmu.base); + const unsigned int gt_id = config_gt_id(event->attr.config); + const u64 config = event->attr.config; + struct xe_gt *gt = xe_device_get_gt(xe, gt_id); + u64 val; + + switch (config_counter(config)) { + case XE_PMU_RENDER_GROUP_BUSY(0): + case XE_PMU_COPY_GROUP_BUSY(0): + case XE_PMU_ANY_ENGINE_GROUP_BUSY(0): + case XE_PMU_MEDIA_GROUP_BUSY(0): + val = engine_group_busyness_read(gt, config); + break; + default: + drm_warn(>->tile->xe->drm, "unknown pmu event\n"); + } + + return val; +} + +static void xe_pmu_event_read(struct perf_event *event) +{ + struct xe_device *xe = + container_of(event->pmu, typeof(*xe), pmu.base); + struct hw_perf_event *hwc = &event->hw; + struct xe_pmu *pmu = &xe->pmu; + u64 prev, new; + + if (pmu->closed) { + event->hw.state = PERF_HES_STOPPED; + return; + } +again: + prev = local64_read(&hwc->prev_count); + new = __xe_pmu_event_read(event); + + if (local64_cmpxchg(&hwc->prev_count, prev, new) != prev) + goto again; + + local64_add(new - prev, &event->count); +} + +static void xe_pmu_enable(struct perf_event *event) +{ + /* + * Store the current counter value so we can report the correct delta + * for all listeners. Even when the event was already enabled and has + * an existing non-zero value. + */ + local64_set(&event->hw.prev_count, __xe_pmu_event_read(event)); +} + +static void xe_pmu_event_start(struct perf_event *event, int flags) +{ + struct xe_device *xe = + container_of(event->pmu, typeof(*xe), pmu.base); + struct xe_pmu *pmu = &xe->pmu; + + if (pmu->closed) + return; + + xe_pmu_enable(event); + event->hw.state = 0; +} + +static void xe_pmu_event_stop(struct perf_event *event, int flags) +{ + if (flags & PERF_EF_UPDATE) + xe_pmu_event_read(event); + + event->hw.state = PERF_HES_STOPPED; +} + +static int xe_pmu_event_add(struct perf_event *event, int flags) +{ + struct xe_device *xe = + container_of(event->pmu, typeof(*xe), pmu.base); + struct xe_pmu *pmu = &xe->pmu; + + if (pmu->closed) + return -ENODEV; + + if (flags & PERF_EF_START) + xe_pmu_event_start(event, flags); + + return 0; +} + +static void xe_pmu_event_del(struct perf_event *event, int flags) +{ + xe_pmu_event_stop(event, PERF_EF_UPDATE); +} + +static int xe_pmu_event_event_idx(struct perf_event *event) +{ + return 0; +} + +struct xe_ext_attribute { + struct device_attribute attr; + unsigned long val; +}; + +static ssize_t xe_pmu_event_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct xe_ext_attribute *eattr; + + eattr = container_of(attr, struct xe_ext_attribute, attr); + return sprintf(buf, "config=0x%lx\n", eattr->val); +} + +static ssize_t cpumask_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return cpumap_print_to_pagebuf(true, buf, &xe_pmu_cpumask); +} + +static DEVICE_ATTR_RO(cpumask); + +static struct attribute *xe_cpumask_attrs[] = { + &dev_attr_cpumask.attr, + NULL, +}; + +static const struct attribute_group xe_pmu_cpumask_attr_group = { + .attrs = xe_cpumask_attrs, +}; + +#define __event(__counter, __name, __unit) \ +{ \ + .counter = (__counter), \ + .name = (__name), \ + .unit = (__unit), \ +} + +static struct xe_ext_attribute * +add_xe_attr(struct xe_ext_attribute *attr, const char *name, u64 config) +{ + sysfs_attr_init(&attr->attr.attr); + attr->attr.attr.name = name; + attr->attr.attr.mode = 0444; + attr->attr.show = xe_pmu_event_show; + attr->val = config; + + return ++attr; +} + +static struct perf_pmu_events_attr * +add_pmu_attr(struct perf_pmu_events_attr *attr, const char *name, + const char *str) +{ + sysfs_attr_init(&attr->attr.attr); + attr->attr.attr.name = name; + attr->attr.attr.mode = 0444; + attr->attr.show = perf_event_sysfs_show; + attr->event_str = str; + + return ++attr; +} + +static struct attribute ** +create_event_attributes(struct xe_pmu *pmu) +{ + struct xe_device *xe = container_of(pmu, typeof(*xe), pmu); + static const struct { + unsigned int counter; + const char *name; + const char *unit; + } events[] = { + __event(0, "render-group-busy", "ns"), + __event(1, "copy-group-busy", "ns"), + __event(2, "media-group-busy", "ns"), + __event(3, "any-engine-group-busy", "ns"), + }; + + struct perf_pmu_events_attr *pmu_attr = NULL, *pmu_iter; + struct xe_ext_attribute *xe_attr = NULL, *xe_iter; + struct attribute **attr = NULL, **attr_iter; + unsigned int count = 0; + unsigned int i, j; + struct xe_gt *gt; + + /* Count how many counters we will be exposing. */ + for_each_gt(gt, xe, j) { + for (i = 0; i < ARRAY_SIZE(events); i++) { + u64 config = ___XE_PMU_OTHER(j, events[i].counter); + + if (!config_status(xe, config)) + count++; + } + } + + /* Allocate attribute objects and table. */ + xe_attr = kcalloc(count, sizeof(*xe_attr), GFP_KERNEL); + if (!xe_attr) + goto err_alloc; + + pmu_attr = kcalloc(count, sizeof(*pmu_attr), GFP_KERNEL); + if (!pmu_attr) + goto err_alloc; + + /* Max one pointer of each attribute type plus a termination entry. */ + attr = kcalloc(count * 2 + 1, sizeof(*attr), GFP_KERNEL); + if (!attr) + goto err_alloc; + + xe_iter = xe_attr; + pmu_iter = pmu_attr; + attr_iter = attr; + + for_each_gt(gt, xe, j) { + for (i = 0; i < ARRAY_SIZE(events); i++) { + u64 config = ___XE_PMU_OTHER(j, events[i].counter); + char *str; + + if (config_status(xe, config)) + continue; + + str = kasprintf(GFP_KERNEL, "%s-gt%u", + events[i].name, j); + if (!str) + goto err; + + *attr_iter++ = &xe_iter->attr.attr; + xe_iter = add_xe_attr(xe_iter, str, config); + + if (events[i].unit) { + str = kasprintf(GFP_KERNEL, "%s-gt%u.unit", + events[i].name, j); + if (!str) + goto err; + + *attr_iter++ = &pmu_iter->attr.attr; + pmu_iter = add_pmu_attr(pmu_iter, str, + events[i].unit); + } + } + } + + pmu->xe_attr = xe_attr; + pmu->pmu_attr = pmu_attr; + + return attr; + +err: + for (attr_iter = attr; *attr_iter; attr_iter++) + kfree((*attr_iter)->name); + +err_alloc: + kfree(attr); + kfree(xe_attr); + kfree(pmu_attr); + + return NULL; +} + +static void free_event_attributes(struct xe_pmu *pmu) +{ + struct attribute **attr_iter = pmu->events_attr_group.attrs; + + for (; *attr_iter; attr_iter++) + kfree((*attr_iter)->name); + + kfree(pmu->events_attr_group.attrs); + kfree(pmu->xe_attr); + kfree(pmu->pmu_attr); + + pmu->events_attr_group.attrs = NULL; + pmu->xe_attr = NULL; + pmu->pmu_attr = NULL; +} + +static int xe_pmu_cpu_online(unsigned int cpu, struct hlist_node *node) +{ + struct xe_pmu *pmu = hlist_entry_safe(node, typeof(*pmu), cpuhp.node); + + /* Select the first online CPU as a designated reader. */ + if (cpumask_empty(&xe_pmu_cpumask)) + cpumask_set_cpu(cpu, &xe_pmu_cpumask); + + return 0; +} + +static int xe_pmu_cpu_offline(unsigned int cpu, struct hlist_node *node) +{ + struct xe_pmu *pmu = hlist_entry_safe(node, typeof(*pmu), cpuhp.node); + unsigned int target = xe_pmu_target_cpu; + + /* + * Unregistering an instance generates a CPU offline event which we must + * ignore to avoid incorrectly modifying the shared xe_pmu_cpumask. + */ + if (pmu->closed) + return 0; + + if (cpumask_test_and_clear_cpu(cpu, &xe_pmu_cpumask)) { + target = cpumask_any_but(topology_sibling_cpumask(cpu), cpu); + + /* Migrate events if there is a valid target */ + if (target < nr_cpu_ids) { + cpumask_set_cpu(target, &xe_pmu_cpumask); + xe_pmu_target_cpu = target; + } + } + + if (target < nr_cpu_ids && target != pmu->cpuhp.cpu) { + perf_pmu_migrate_context(&pmu->base, cpu, target); + pmu->cpuhp.cpu = target; + } + + return 0; +} + +static enum cpuhp_state cpuhp_slot = CPUHP_INVALID; + +int xe_pmu_init(void) +{ + int ret; + + ret = cpuhp_setup_state_multi(CPUHP_AP_ONLINE_DYN, + "perf/x86/intel/xe:online", + xe_pmu_cpu_online, + xe_pmu_cpu_offline); + if (ret < 0) + pr_notice("Failed to setup cpuhp state for xe PMU! (%d)\n", + ret); + else + cpuhp_slot = ret; + + return 0; +} + +void xe_pmu_exit(void) +{ + if (cpuhp_slot != CPUHP_INVALID) + cpuhp_remove_multi_state(cpuhp_slot); +} + +static int xe_pmu_register_cpuhp_state(struct xe_pmu *pmu) +{ + if (cpuhp_slot == CPUHP_INVALID) + return -EINVAL; + + return cpuhp_state_add_instance(cpuhp_slot, &pmu->cpuhp.node); +} + +static void xe_pmu_unregister_cpuhp_state(struct xe_pmu *pmu) +{ + cpuhp_state_remove_instance(cpuhp_slot, &pmu->cpuhp.node); +} + +void xe_pmu_suspend(struct xe_gt *gt) +{ + engine_group_busyness_store(gt); +} + +static void xe_pmu_unregister(struct drm_device *device, void *arg) +{ + struct xe_pmu *pmu = arg; + + if (!pmu->base.event_init) + return; + + /* + * "Disconnect" the PMU callbacks - since all are atomic synchronize_rcu + * ensures all currently executing ones will have exited before we + * proceed with unregistration. + */ + pmu->closed = true; + synchronize_rcu(); + + xe_pmu_unregister_cpuhp_state(pmu); + + perf_pmu_unregister(&pmu->base); + pmu->base.event_init = NULL; + kfree(pmu->base.attr_groups); + kfree(pmu->name); + free_event_attributes(pmu); +} + +void xe_pmu_register(struct xe_pmu *pmu) +{ + struct xe_device *xe = container_of(pmu, typeof(*xe), pmu); + const struct attribute_group *attr_groups[] = { + &pmu->events_attr_group, + &xe_pmu_cpumask_attr_group, + NULL + }; + + int ret = -ENOMEM; + + spin_lock_init(&pmu->lock); + pmu->cpuhp.cpu = -1; + + pmu->name = kasprintf(GFP_KERNEL, + "xe_%s", + dev_name(xe->drm.dev)); + if (pmu->name) + /* tools/perf reserves colons as special. */ + strreplace((char *)pmu->name, ':', '_'); + + if (!pmu->name) + goto err; + + pmu->events_attr_group.name = "events"; + pmu->events_attr_group.attrs = create_event_attributes(pmu); + if (!pmu->events_attr_group.attrs) + goto err_name; + + pmu->base.attr_groups = kmemdup(attr_groups, sizeof(attr_groups), + GFP_KERNEL); + if (!pmu->base.attr_groups) + goto err_attr; + + pmu->base.module = THIS_MODULE; + pmu->base.task_ctx_nr = perf_invalid_context; + pmu->base.event_init = xe_pmu_event_init; + pmu->base.add = xe_pmu_event_add; + pmu->base.del = xe_pmu_event_del; + pmu->base.start = xe_pmu_event_start; + pmu->base.stop = xe_pmu_event_stop; + pmu->base.read = xe_pmu_event_read; + pmu->base.event_idx = xe_pmu_event_event_idx; + + ret = perf_pmu_register(&pmu->base, pmu->name, -1); + if (ret) + goto err_groups; + + ret = xe_pmu_register_cpuhp_state(pmu); + if (ret) + goto err_unreg; + + ret = drmm_add_action_or_reset(&xe->drm, xe_pmu_unregister, pmu); + if (ret) + goto err_cpuhp; + + return; + +err_cpuhp: + xe_pmu_unregister_cpuhp_state(pmu); +err_unreg: + perf_pmu_unregister(&pmu->base); +err_groups: + kfree(pmu->base.attr_groups); +err_attr: + pmu->base.event_init = NULL; + free_event_attributes(pmu); +err_name: + kfree(pmu->name); +err: + drm_notice(&xe->drm, "Failed to register PMU!\n"); +} diff --git a/drivers/gpu/drm/xe/xe_pmu.h b/drivers/gpu/drm/xe/xe_pmu.h new file mode 100644 index 000000000000..8afa256f9dac --- /dev/null +++ b/drivers/gpu/drm/xe/xe_pmu.h @@ -0,0 +1,26 @@ +/* SPDX-License-Identifier: MIT */ +/* + * Copyright © 2024 Intel Corporation + */ + +#ifndef _XE_PMU_H_ +#define _XE_PMU_H_ + +#include "xe_pmu_types.h" + +struct xe_gt; + +#if IS_ENABLED(CONFIG_PERF_EVENTS) +int xe_pmu_init(void); +void xe_pmu_exit(void); +void xe_pmu_register(struct xe_pmu *pmu); +void xe_pmu_suspend(struct xe_gt *gt); +#else +static inline int xe_pmu_init(void) { return 0; } +static inline void xe_pmu_exit(void) {} +static inline void xe_pmu_register(struct xe_pmu *pmu) {} +static inline void xe_pmu_suspend(struct xe_gt *gt) {} +#endif + +#endif + diff --git a/drivers/gpu/drm/xe/xe_pmu_types.h b/drivers/gpu/drm/xe/xe_pmu_types.h new file mode 100644 index 000000000000..e86e8d7e0356 --- /dev/null +++ b/drivers/gpu/drm/xe/xe_pmu_types.h @@ -0,0 +1,67 @@ +/* SPDX-License-Identifier: MIT */ +/* + * Copyright © 2024 Intel Corporation + */ + +#ifndef _XE_PMU_TYPES_H_ +#define _XE_PMU_TYPES_H_ + +#include <linux/perf_event.h> +#include <linux/spinlock_types.h> +#include <uapi/drm/xe_drm.h> + +enum { + __XE_SAMPLE_RENDER_GROUP_BUSY, + __XE_SAMPLE_COPY_GROUP_BUSY, + __XE_SAMPLE_MEDIA_GROUP_BUSY, + __XE_SAMPLE_ANY_ENGINE_GROUP_BUSY, + __XE_NUM_PMU_SAMPLERS +}; + +#define XE_PMU_MAX_GT 2 + +struct xe_pmu { + /** + * @cpuhp: Struct used for CPU hotplug handling. + */ + struct { + struct hlist_node node; + unsigned int cpu; + } cpuhp; + /** + * @base: PMU base. + */ + struct pmu base; + /** + * @closed: xe is unregistering. + */ + bool closed; + /** + * @name: Name as registered with perf core. + */ + const char *name; + /** + * @lock: Lock protecting enable mask and ref count handling. + */ + spinlock_t lock; + /** + * @sample: Current and previous (raw) counters. + * + * These counters are updated when the device is awake. + */ + u64 sample[XE_PMU_MAX_GT][__XE_NUM_PMU_SAMPLERS]; + /** + * @events_attr_group: Device events attribute group. + */ + struct attribute_group events_attr_group; + /** + * @xe_attr: Memory block holding device attributes. + */ + void *xe_attr; + /** + * @pmu_attr: Memory block holding device attributes. + */ + void *pmu_attr; +}; + +#endif diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h index d7b0903c22b2..07ca545354f7 100644 --- a/include/uapi/drm/xe_drm.h +++ b/include/uapi/drm/xe_drm.h @@ -1370,6 +1370,45 @@ struct drm_xe_wait_user_fence { __u64 reserved[2]; }; +/** + * DOC: XE PMU event config IDs + * + * Check 'man perf_event_open' to use the ID's XE_PMU_XXXX listed in xe_drm.h + * in 'struct perf_event_attr' as part of perf_event_open syscall to read a + * particular event. + * + * For example to open the XE_PMU_RENDER_GROUP_BUSY(0): + * + * .. code-block:: C + * + * struct perf_event_attr attr; + * long long count; + * int cpu = 0; + * int fd; + * + * memset(&attr, 0, sizeof(struct perf_event_attr)); + * attr.type = type; // eg: /sys/bus/event_source/devices/xe_0000_56_00.0/type + * attr.read_format = PERF_FORMAT_TOTAL_TIME_ENABLED; + * attr.use_clockid = 1; + * attr.clockid = CLOCK_MONOTONIC; + * attr.config = XE_PMU_RENDER_GROUP_BUSY(0); + * + * fd = syscall(__NR_perf_event_open, &attr, -1, cpu, -1, 0); + */ + +/* + * Top bits of every counter are GT id. + */ +#define __XE_PMU_GT_SHIFT (56) + +#define ___XE_PMU_OTHER(gt, x) \ + (((__u64)(x)) | ((__u64)(gt) << __XE_PMU_GT_SHIFT)) + +#define XE_PMU_RENDER_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 0) +#define XE_PMU_COPY_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 1) +#define XE_PMU_MEDIA_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 2) +#define XE_PMU_ANY_ENGINE_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 3) + #if defined(__cplusplus) } #endif -- 2.40.0 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v8 2/2] drm/xe/pmu: Enable PMU interface 2024-06-12 5:40 ` [PATCH v8 2/2] drm/xe/pmu: Enable PMU interface Riana Tauro @ 2024-06-12 9:07 ` Matthew Auld 2024-06-12 13:47 ` Riana Tauro 2024-06-12 9:13 ` Aravind Iddamsetty 1 sibling, 1 reply; 14+ messages in thread From: Matthew Auld @ 2024-06-12 9:07 UTC (permalink / raw) To: Riana Tauro, intel-xe Cc: anshuman.gupta, aravind.iddamsetty, tvrtko.ursulin, rodrigo.vivi, umesh.nerlige.ramappa, krishnaiah.bommu, ashutosh.dixit On 12/06/2024 06:40, Riana Tauro wrote: > From: Aravind Iddamsetty <aravind.iddamsetty@linux.intel.com> > > There are a set of engine group busyness counters provided by HW which are > perfect fit to be exposed via PMU perf events. > > BSPEC: 46559, 46560, 46722, 46729, 52071, 71028 > > events can be listed using: > perf list > xe_0000_03_00.0/any-engine-group-busy-gt0/ [Kernel PMU event] > xe_0000_03_00.0/copy-group-busy-gt0/ [Kernel PMU event] > xe_0000_03_00.0/interrupts/ [Kernel PMU event] > xe_0000_03_00.0/media-group-busy-gt0/ [Kernel PMU event] > xe_0000_03_00.0/render-group-busy-gt0/ [Kernel PMU event] > > and can be read using: > > perf stat -e "xe_0000_8c_00.0/render-group-busy-gt0/" -I 1000 > time counts unit events > 1.001139062 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ > 2.003294678 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ > 3.005199582 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ > 4.007076497 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ > 5.008553068 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ > 6.010531563 43520 ns xe_0000_8c_00.0/render-group-busy-gt0/ > 7.012468029 44800 ns xe_0000_8c_00.0/render-group-busy-gt0/ > 8.013463515 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ > 9.015300183 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ > 10.017233010 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ > 10.971934120 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ > > The pmu base implementation is taken from i915. > > v2: > Store last known value when device is awake return that while the GT is > suspended and then update the driver copy when read during awake. > > v3: > 1. drop init_samples, as storing counters before going to suspend should > be sufficient. > 2. ported the "drm/i915/pmu: Make PMU sample array two-dimensional" and > dropped helpers to store and read samples. > 3. use xe_device_mem_access_get_if_ongoing to check if device is active > before reading the OA registers. > 4. dropped format attr as no longer needed > 5. introduce xe_pmu_suspend to call engine_group_busyness_store > 6. few other nits. > > v4: minor nits. > > v5: take forcewake when accessing the OAG registers > > v6: > 1. drop engine_busyness_sample_type > 2. update UAPI documentation > > v7: > 1. update UAPI documentation > 2. drop MEDIA_GT specific change for media busyness counter. > > v8: > 1. rebase > 2. replace mem_access_if_ongoing with xe_pm_runtime_get_if_active > 3. remove interrupts pmu event > > Co-developed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > Co-developed-by: Bommu Krishnaiah <krishnaiah.bommu@intel.com> > Signed-off-by: Bommu Krishnaiah <krishnaiah.bommu@intel.com> > Signed-off-by: Aravind Iddamsetty <aravind.iddamsetty@linux.intel.com> > Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com> > Signed-off-by: Riana Tauro <riana.tauro@intel.com> > --- > drivers/gpu/drm/xe/Makefile | 2 + > drivers/gpu/drm/xe/regs/xe_gt_regs.h | 5 + > drivers/gpu/drm/xe/xe_device.c | 2 + > drivers/gpu/drm/xe/xe_device_types.h | 4 + > drivers/gpu/drm/xe/xe_gt.c | 2 + > drivers/gpu/drm/xe/xe_module.c | 5 + > drivers/gpu/drm/xe/xe_pmu.c | 631 +++++++++++++++++++++++++++ > drivers/gpu/drm/xe/xe_pmu.h | 26 ++ > drivers/gpu/drm/xe/xe_pmu_types.h | 67 +++ > include/uapi/drm/xe_drm.h | 39 ++ > 10 files changed, 783 insertions(+) > create mode 100644 drivers/gpu/drm/xe/xe_pmu.c > create mode 100644 drivers/gpu/drm/xe/xe_pmu.h > create mode 100644 drivers/gpu/drm/xe/xe_pmu_types.h > > diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile > index 0c3e3adabb27..ce4efd9ae8b3 100644 > --- a/drivers/gpu/drm/xe/Makefile > +++ b/drivers/gpu/drm/xe/Makefile > @@ -276,6 +276,8 @@ xe-$(CONFIG_DRM_XE_DISPLAY) += \ > i915-display/skl_universal_plane.o \ > i915-display/skl_watermark.o > > +xe-$(CONFIG_PERF_EVENTS) += xe_pmu.o > + > ifeq ($(CONFIG_ACPI),y) > xe-$(CONFIG_DRM_XE_DISPLAY) += \ > i915-display/intel_acpi.o \ > diff --git a/drivers/gpu/drm/xe/regs/xe_gt_regs.h b/drivers/gpu/drm/xe/regs/xe_gt_regs.h > index 47c26c37608d..22821dcd4e1b 100644 > --- a/drivers/gpu/drm/xe/regs/xe_gt_regs.h > +++ b/drivers/gpu/drm/xe/regs/xe_gt_regs.h > @@ -390,6 +390,11 @@ > #define INVALIDATION_BROADCAST_MODE_DIS REG_BIT(12) > #define GLOBAL_INVALIDATION_MODE REG_BIT(2) > > +#define XE_OAG_RC0_ANY_ENGINE_BUSY_FREE XE_REG(0xdb80) > +#define XE_OAG_ANY_MEDIA_FF_BUSY_FREE XE_REG(0xdba0) > +#define XE_OAG_BLT_BUSY_FREE XE_REG(0xdbbc) > +#define XE_OAG_RENDER_BUSY_FREE XE_REG(0xdbdc) > + > #define HALF_SLICE_CHICKEN5 XE_REG_MCR(0xe188, XE_REG_OPTION_MASKED) > #define DISABLE_SAMPLE_G_PERFORMANCE REG_BIT(0) > > diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c > index 0ff95a0ea5ea..88a90143eac1 100644 > --- a/drivers/gpu/drm/xe/xe_device.c > +++ b/drivers/gpu/drm/xe/xe_device.c > @@ -667,6 +667,8 @@ int xe_device_probe(struct xe_device *xe) > > xe_hwmon_register(xe); > > + xe_pmu_register(&xe->pmu); > + > return devm_add_action_or_reset(xe->drm.dev, xe_device_sanitize, xe); > > err_fini_display: > diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h > index 52bc461171d5..a5dba7325cf1 100644 > --- a/drivers/gpu/drm/xe/xe_device_types.h > +++ b/drivers/gpu/drm/xe/xe_device_types.h > @@ -18,6 +18,7 @@ > #include "xe_lmtt_types.h" > #include "xe_memirq_types.h" > #include "xe_platform_types.h" > +#include "xe_pmu.h" > #include "xe_pt_types.h" > #include "xe_sriov_types.h" > #include "xe_step_types.h" > @@ -473,6 +474,9 @@ struct xe_device { > int mode; > } wedged; > > + /** @pmu: performance monitoring unit */ > + struct xe_pmu pmu; > + > /* private: */ > > #if IS_ENABLED(CONFIG_DRM_XE_DISPLAY) > diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c > index 57d84751e160..477d0ae5f230 100644 > --- a/drivers/gpu/drm/xe/xe_gt.c > +++ b/drivers/gpu/drm/xe/xe_gt.c > @@ -782,6 +782,8 @@ int xe_gt_suspend(struct xe_gt *gt) > if (err) > goto err_msg; > > + xe_pmu_suspend(gt); > + > err = xe_uc_suspend(>->uc); > if (err) > goto err_force_wake; > diff --git a/drivers/gpu/drm/xe/xe_module.c b/drivers/gpu/drm/xe/xe_module.c > index 3edeb30d5ccb..26f814f97fc2 100644 > --- a/drivers/gpu/drm/xe/xe_module.c > +++ b/drivers/gpu/drm/xe/xe_module.c > @@ -11,6 +11,7 @@ > #include "xe_drv.h" > #include "xe_hw_fence.h" > #include "xe_pci.h" > +#include "xe_pmu.h" > #include "xe_sched_job.h" > > struct xe_modparam xe_modparam = { > @@ -74,6 +75,10 @@ static const struct init_funcs init_funcs[] = { > .init = xe_sched_job_module_init, > .exit = xe_sched_job_module_exit, > }, > + { > + .init = xe_pmu_init, > + .exit = xe_pmu_exit, > + }, > { > .init = xe_register_pci_driver, > .exit = xe_unregister_pci_driver, > diff --git a/drivers/gpu/drm/xe/xe_pmu.c b/drivers/gpu/drm/xe/xe_pmu.c > new file mode 100644 > index 000000000000..472f63e76c62 > --- /dev/null > +++ b/drivers/gpu/drm/xe/xe_pmu.c > @@ -0,0 +1,631 @@ > +// SPDX-License-Identifier: MIT > +/* > + * Copyright © 2024 Intel Corporation > + */ > + > +#include <drm/drm_drv.h> > +#include <drm/drm_managed.h> > +#include <drm/xe_drm.h> > + > +#include "regs/xe_gt_regs.h" > +#include "xe_device.h" > +#include "xe_force_wake.h" > +#include "xe_gt_clock.h" > +#include "xe_mmio.h" > +#include "xe_macros.h" > +#include "xe_pm.h" > + > +static cpumask_t xe_pmu_cpumask; > +static unsigned int xe_pmu_target_cpu = -1; > + > +static unsigned int config_gt_id(const u64 config) > +{ > + return config >> __XE_PMU_GT_SHIFT; > +} > + > +static u64 config_counter(const u64 config) > +{ > + return config & ~(~0ULL << __XE_PMU_GT_SHIFT); > +} > + > +static void xe_pmu_event_destroy(struct perf_event *event) > +{ > + struct xe_device *xe = > + container_of(event->pmu, typeof(*xe), pmu.base); > + > + drm_WARN_ON(&xe->drm, event->parent); > + > + drm_dev_put(&xe->drm); > +} > + > +static u64 __engine_group_busyness_read(struct xe_gt *gt, int sample_type) > +{ > + u64 val; > + > + switch (sample_type) { > + case __XE_SAMPLE_RENDER_GROUP_BUSY: > + val = xe_mmio_read32(gt, XE_OAG_RENDER_BUSY_FREE); > + break; > + case __XE_SAMPLE_COPY_GROUP_BUSY: > + val = xe_mmio_read32(gt, XE_OAG_BLT_BUSY_FREE); > + break; > + case __XE_SAMPLE_MEDIA_GROUP_BUSY: > + val = xe_mmio_read32(gt, XE_OAG_ANY_MEDIA_FF_BUSY_FREE); > + break; > + case __XE_SAMPLE_ANY_ENGINE_GROUP_BUSY: > + val = xe_mmio_read32(gt, XE_OAG_RC0_ANY_ENGINE_BUSY_FREE); > + break; > + default: > + drm_warn(>->tile->xe->drm, "unknown pmu event\n"); > + } > + > + return xe_gt_clock_cycles_to_ns(gt, val * 16); > +} > + > +static u64 engine_group_busyness_read(struct xe_gt *gt, u64 config) > +{ > + int sample_type = config_counter(config); > + const unsigned int gt_id = gt->info.id; > + struct xe_device *xe = gt->tile->xe; > + struct xe_pmu *pmu = &xe->pmu; > + unsigned long flags; > + bool device_awake; > + u64 val; > + > + device_awake = xe_pm_runtime_get_if_active(xe); > + if (device_awake) { > + XE_WARN_ON(xe_force_wake_get(gt_to_fw(gt), XE_FW_GT)); > + val = __engine_group_busyness_read(gt, sample_type); > + XE_WARN_ON(xe_force_wake_put(gt_to_fw(gt), XE_FW_GT)); > + xe_pm_runtime_put(xe); > + } > + > + spin_lock_irqsave(&pmu->lock, flags); > + > + if (device_awake) > + pmu->sample[gt_id][sample_type] = val; > + else > + val = pmu->sample[gt_id][sample_type]; > + > + spin_unlock_irqrestore(&pmu->lock, flags); > + > + return val; > +} > + > +static void engine_group_busyness_store(struct xe_gt *gt) > +{ > + struct xe_pmu *pmu = >->tile->xe->pmu; > + unsigned int gt_id = gt->info.id; > + unsigned long flags; > + int i; > + > + spin_lock_irqsave(&pmu->lock, flags); > + > + for (i = __XE_SAMPLE_RENDER_GROUP_BUSY; i <= __XE_SAMPLE_ANY_ENGINE_GROUP_BUSY; i++) > + pmu->sample[gt_id][i] = __engine_group_busyness_read(gt, i); > + > + spin_unlock_irqrestore(&pmu->lock, flags); > +} > + > +static int > +config_status(struct xe_device *xe, u64 config) > +{ > + unsigned int gt_id = config_gt_id(config); > + struct xe_gt *gt = xe_device_get_gt(xe, gt_id); > + > + if (gt_id >= XE_PMU_MAX_GT) > + return -ENOENT; > + > + switch (config_counter(config)) { > + case XE_PMU_RENDER_GROUP_BUSY(0): > + case XE_PMU_COPY_GROUP_BUSY(0): > + case XE_PMU_ANY_ENGINE_GROUP_BUSY(0): > + if (gt->info.type == XE_GT_TYPE_MEDIA) > + return -ENOENT; > + break; > + case XE_PMU_MEDIA_GROUP_BUSY(0): > + if (!(gt->info.engine_mask & (BIT(XE_HW_ENGINE_VCS0) | BIT(XE_HW_ENGINE_VECS0)))) > + return -ENOENT; > + break; > + default: > + return -ENOENT; > + } > + > + return 0; > +} > + > +static int xe_pmu_event_init(struct perf_event *event) > +{ > + struct xe_device *xe = > + container_of(event->pmu, typeof(*xe), pmu.base); > + struct xe_pmu *pmu = &xe->pmu; > + int ret; > + > + if (pmu->closed) > + return -ENODEV; > + > + if (event->attr.type != event->pmu->type) > + return -ENOENT; > + > + /* unsupported modes and filters */ > + if (event->attr.sample_period) /* no sampling */ > + return -EINVAL; > + > + if (has_branch_stack(event)) > + return -EOPNOTSUPP; > + > + if (event->cpu < 0) > + return -EINVAL; > + > + /* only allow running on one cpu at a time */ > + if (!cpumask_test_cpu(event->cpu, &xe_pmu_cpumask)) > + return -EINVAL; > + > + ret = config_status(xe, event->attr.config); > + if (ret) > + return ret; > + > + if (!event->parent) { > + drm_dev_get(&xe->drm); > + event->destroy = xe_pmu_event_destroy; > + } > + > + return 0; > +} > + > +static u64 __xe_pmu_event_read(struct perf_event *event) > +{ > + struct xe_device *xe = > + container_of(event->pmu, typeof(*xe), pmu.base); > + const unsigned int gt_id = config_gt_id(event->attr.config); > + const u64 config = event->attr.config; > + struct xe_gt *gt = xe_device_get_gt(xe, gt_id); > + u64 val; > + > + switch (config_counter(config)) { > + case XE_PMU_RENDER_GROUP_BUSY(0): > + case XE_PMU_COPY_GROUP_BUSY(0): > + case XE_PMU_ANY_ENGINE_GROUP_BUSY(0): > + case XE_PMU_MEDIA_GROUP_BUSY(0): > + val = engine_group_busyness_read(gt, config); > + break; > + default: > + drm_warn(>->tile->xe->drm, "unknown pmu event\n"); > + } > + > + return val; > +} > + > +static void xe_pmu_event_read(struct perf_event *event) > +{ > + struct xe_device *xe = > + container_of(event->pmu, typeof(*xe), pmu.base); > + struct hw_perf_event *hwc = &event->hw; > + struct xe_pmu *pmu = &xe->pmu; > + u64 prev, new; > + > + if (pmu->closed) { > + event->hw.state = PERF_HES_STOPPED; > + return; > + } > +again: > + prev = local64_read(&hwc->prev_count); > + new = __xe_pmu_event_read(event); > + > + if (local64_cmpxchg(&hwc->prev_count, prev, new) != prev) > + goto again; > + > + local64_add(new - prev, &event->count); > +} > + > +static void xe_pmu_enable(struct perf_event *event) > +{ > + /* > + * Store the current counter value so we can report the correct delta > + * for all listeners. Even when the event was already enabled and has > + * an existing non-zero value. > + */ > + local64_set(&event->hw.prev_count, __xe_pmu_event_read(event)); > +} > + > +static void xe_pmu_event_start(struct perf_event *event, int flags) > +{ > + struct xe_device *xe = > + container_of(event->pmu, typeof(*xe), pmu.base); > + struct xe_pmu *pmu = &xe->pmu; > + > + if (pmu->closed) > + return; > + > + xe_pmu_enable(event); > + event->hw.state = 0; > +} > + > +static void xe_pmu_event_stop(struct perf_event *event, int flags) > +{ > + if (flags & PERF_EF_UPDATE) > + xe_pmu_event_read(event); > + > + event->hw.state = PERF_HES_STOPPED; > +} > + > +static int xe_pmu_event_add(struct perf_event *event, int flags) > +{ > + struct xe_device *xe = > + container_of(event->pmu, typeof(*xe), pmu.base); > + struct xe_pmu *pmu = &xe->pmu; > + > + if (pmu->closed) > + return -ENODEV; > + > + if (flags & PERF_EF_START) > + xe_pmu_event_start(event, flags); > + > + return 0; > +} > + > +static void xe_pmu_event_del(struct perf_event *event, int flags) > +{ > + xe_pmu_event_stop(event, PERF_EF_UPDATE); > +} > + > +static int xe_pmu_event_event_idx(struct perf_event *event) > +{ > + return 0; > +} > + > +struct xe_ext_attribute { > + struct device_attribute attr; > + unsigned long val; > +}; > + > +static ssize_t xe_pmu_event_show(struct device *dev, > + struct device_attribute *attr, char *buf) > +{ > + struct xe_ext_attribute *eattr; > + > + eattr = container_of(attr, struct xe_ext_attribute, attr); > + return sprintf(buf, "config=0x%lx\n", eattr->val); > +} > + > +static ssize_t cpumask_show(struct device *dev, > + struct device_attribute *attr, char *buf) > +{ > + return cpumap_print_to_pagebuf(true, buf, &xe_pmu_cpumask); > +} > + > +static DEVICE_ATTR_RO(cpumask); > + > +static struct attribute *xe_cpumask_attrs[] = { > + &dev_attr_cpumask.attr, > + NULL, > +}; > + > +static const struct attribute_group xe_pmu_cpumask_attr_group = { > + .attrs = xe_cpumask_attrs, > +}; > + > +#define __event(__counter, __name, __unit) \ > +{ \ > + .counter = (__counter), \ > + .name = (__name), \ > + .unit = (__unit), \ > +} > + > +static struct xe_ext_attribute * > +add_xe_attr(struct xe_ext_attribute *attr, const char *name, u64 config) > +{ > + sysfs_attr_init(&attr->attr.attr); > + attr->attr.attr.name = name; > + attr->attr.attr.mode = 0444; > + attr->attr.show = xe_pmu_event_show; > + attr->val = config; > + > + return ++attr; > +} > + > +static struct perf_pmu_events_attr * > +add_pmu_attr(struct perf_pmu_events_attr *attr, const char *name, > + const char *str) > +{ > + sysfs_attr_init(&attr->attr.attr); > + attr->attr.attr.name = name; > + attr->attr.attr.mode = 0444; > + attr->attr.show = perf_event_sysfs_show; > + attr->event_str = str; > + > + return ++attr; > +} > + > +static struct attribute ** > +create_event_attributes(struct xe_pmu *pmu) > +{ > + struct xe_device *xe = container_of(pmu, typeof(*xe), pmu); > + static const struct { > + unsigned int counter; > + const char *name; > + const char *unit; > + } events[] = { > + __event(0, "render-group-busy", "ns"), > + __event(1, "copy-group-busy", "ns"), > + __event(2, "media-group-busy", "ns"), > + __event(3, "any-engine-group-busy", "ns"), > + }; > + > + struct perf_pmu_events_attr *pmu_attr = NULL, *pmu_iter; > + struct xe_ext_attribute *xe_attr = NULL, *xe_iter; > + struct attribute **attr = NULL, **attr_iter; > + unsigned int count = 0; > + unsigned int i, j; > + struct xe_gt *gt; > + > + /* Count how many counters we will be exposing. */ > + for_each_gt(gt, xe, j) { > + for (i = 0; i < ARRAY_SIZE(events); i++) { > + u64 config = ___XE_PMU_OTHER(j, events[i].counter); > + > + if (!config_status(xe, config)) > + count++; > + } > + } > + > + /* Allocate attribute objects and table. */ > + xe_attr = kcalloc(count, sizeof(*xe_attr), GFP_KERNEL); > + if (!xe_attr) > + goto err_alloc; > + > + pmu_attr = kcalloc(count, sizeof(*pmu_attr), GFP_KERNEL); > + if (!pmu_attr) > + goto err_alloc; > + > + /* Max one pointer of each attribute type plus a termination entry. */ > + attr = kcalloc(count * 2 + 1, sizeof(*attr), GFP_KERNEL); > + if (!attr) > + goto err_alloc; > + > + xe_iter = xe_attr; > + pmu_iter = pmu_attr; > + attr_iter = attr; > + > + for_each_gt(gt, xe, j) { > + for (i = 0; i < ARRAY_SIZE(events); i++) { > + u64 config = ___XE_PMU_OTHER(j, events[i].counter); > + char *str; > + > + if (config_status(xe, config)) > + continue; > + > + str = kasprintf(GFP_KERNEL, "%s-gt%u", > + events[i].name, j); > + if (!str) > + goto err; > + > + *attr_iter++ = &xe_iter->attr.attr; > + xe_iter = add_xe_attr(xe_iter, str, config); > + > + if (events[i].unit) { > + str = kasprintf(GFP_KERNEL, "%s-gt%u.unit", > + events[i].name, j); > + if (!str) > + goto err; > + > + *attr_iter++ = &pmu_iter->attr.attr; > + pmu_iter = add_pmu_attr(pmu_iter, str, > + events[i].unit); > + } > + } > + } > + > + pmu->xe_attr = xe_attr; > + pmu->pmu_attr = pmu_attr; > + > + return attr; > + > +err: > + for (attr_iter = attr; *attr_iter; attr_iter++) > + kfree((*attr_iter)->name); > + > +err_alloc: > + kfree(attr); > + kfree(xe_attr); > + kfree(pmu_attr); > + > + return NULL; > +} > + > +static void free_event_attributes(struct xe_pmu *pmu) > +{ > + struct attribute **attr_iter = pmu->events_attr_group.attrs; > + > + for (; *attr_iter; attr_iter++) > + kfree((*attr_iter)->name); > + > + kfree(pmu->events_attr_group.attrs); > + kfree(pmu->xe_attr); > + kfree(pmu->pmu_attr); > + > + pmu->events_attr_group.attrs = NULL; > + pmu->xe_attr = NULL; > + pmu->pmu_attr = NULL; > +} > + > +static int xe_pmu_cpu_online(unsigned int cpu, struct hlist_node *node) > +{ > + struct xe_pmu *pmu = hlist_entry_safe(node, typeof(*pmu), cpuhp.node); > + > + /* Select the first online CPU as a designated reader. */ > + if (cpumask_empty(&xe_pmu_cpumask)) > + cpumask_set_cpu(cpu, &xe_pmu_cpumask); > + > + return 0; > +} > + > +static int xe_pmu_cpu_offline(unsigned int cpu, struct hlist_node *node) > +{ > + struct xe_pmu *pmu = hlist_entry_safe(node, typeof(*pmu), cpuhp.node); > + unsigned int target = xe_pmu_target_cpu; > + > + /* > + * Unregistering an instance generates a CPU offline event which we must > + * ignore to avoid incorrectly modifying the shared xe_pmu_cpumask. > + */ > + if (pmu->closed) > + return 0; > + > + if (cpumask_test_and_clear_cpu(cpu, &xe_pmu_cpumask)) { > + target = cpumask_any_but(topology_sibling_cpumask(cpu), cpu); > + > + /* Migrate events if there is a valid target */ > + if (target < nr_cpu_ids) { > + cpumask_set_cpu(target, &xe_pmu_cpumask); > + xe_pmu_target_cpu = target; > + } > + } > + > + if (target < nr_cpu_ids && target != pmu->cpuhp.cpu) { > + perf_pmu_migrate_context(&pmu->base, cpu, target); > + pmu->cpuhp.cpu = target; > + } > + > + return 0; > +} > + > +static enum cpuhp_state cpuhp_slot = CPUHP_INVALID; > + > +int xe_pmu_init(void) > +{ > + int ret; > + > + ret = cpuhp_setup_state_multi(CPUHP_AP_ONLINE_DYN, > + "perf/x86/intel/xe:online", > + xe_pmu_cpu_online, > + xe_pmu_cpu_offline); > + if (ret < 0) > + pr_notice("Failed to setup cpuhp state for xe PMU! (%d)\n", > + ret); > + else > + cpuhp_slot = ret; > + > + return 0; > +} > + > +void xe_pmu_exit(void) > +{ > + if (cpuhp_slot != CPUHP_INVALID) > + cpuhp_remove_multi_state(cpuhp_slot); > +} > + > +static int xe_pmu_register_cpuhp_state(struct xe_pmu *pmu) > +{ > + if (cpuhp_slot == CPUHP_INVALID) > + return -EINVAL; > + > + return cpuhp_state_add_instance(cpuhp_slot, &pmu->cpuhp.node); > +} > + > +static void xe_pmu_unregister_cpuhp_state(struct xe_pmu *pmu) > +{ > + cpuhp_state_remove_instance(cpuhp_slot, &pmu->cpuhp.node); > +} > + > +void xe_pmu_suspend(struct xe_gt *gt) > +{ > + engine_group_busyness_store(gt); > +} > + > +static void xe_pmu_unregister(struct drm_device *device, void *arg) > +{ > + struct xe_pmu *pmu = arg; > + > + if (!pmu->base.event_init) > + return; > + > + /* > + * "Disconnect" the PMU callbacks - since all are atomic synchronize_rcu > + * ensures all currently executing ones will have exited before we > + * proceed with unregistration. > + */ > + pmu->closed = true; > + synchronize_rcu(); > + > + xe_pmu_unregister_cpuhp_state(pmu); > + > + perf_pmu_unregister(&pmu->base); > + pmu->base.event_init = NULL; > + kfree(pmu->base.attr_groups); > + kfree(pmu->name); > + free_event_attributes(pmu); > +} > + > +void xe_pmu_register(struct xe_pmu *pmu) > +{ > + struct xe_device *xe = container_of(pmu, typeof(*xe), pmu); > + const struct attribute_group *attr_groups[] = { > + &pmu->events_attr_group, > + &xe_pmu_cpumask_attr_group, > + NULL > + }; > + > + int ret = -ENOMEM; > + > + spin_lock_init(&pmu->lock); > + pmu->cpuhp.cpu = -1; > + > + pmu->name = kasprintf(GFP_KERNEL, > + "xe_%s", > + dev_name(xe->drm.dev)); > + if (pmu->name) > + /* tools/perf reserves colons as special. */ > + strreplace((char *)pmu->name, ':', '_'); > + > + if (!pmu->name) > + goto err; > + > + pmu->events_attr_group.name = "events"; > + pmu->events_attr_group.attrs = create_event_attributes(pmu); > + if (!pmu->events_attr_group.attrs) > + goto err_name; > + > + pmu->base.attr_groups = kmemdup(attr_groups, sizeof(attr_groups), > + GFP_KERNEL); > + if (!pmu->base.attr_groups) > + goto err_attr; > + > + pmu->base.module = THIS_MODULE; > + pmu->base.task_ctx_nr = perf_invalid_context; > + pmu->base.event_init = xe_pmu_event_init; > + pmu->base.add = xe_pmu_event_add; > + pmu->base.del = xe_pmu_event_del; > + pmu->base.start = xe_pmu_event_start; > + pmu->base.stop = xe_pmu_event_stop; > + pmu->base.read = xe_pmu_event_read; > + pmu->base.event_idx = xe_pmu_event_event_idx; > + > + ret = perf_pmu_register(&pmu->base, pmu->name, -1); > + if (ret) > + goto err_groups; > + > + ret = xe_pmu_register_cpuhp_state(pmu); > + if (ret) > + goto err_unreg; > + > + ret = drmm_add_action_or_reset(&xe->drm, xe_pmu_unregister, pmu); > + if (ret) > + goto err_cpuhp; This triggers a warning during core_hotunplug. AFAIK this should use devm and not drmm. > + > + return; > + > +err_cpuhp: > + xe_pmu_unregister_cpuhp_state(pmu); > +err_unreg: > + perf_pmu_unregister(&pmu->base); > +err_groups: > + kfree(pmu->base.attr_groups); > +err_attr: > + pmu->base.event_init = NULL; > + free_event_attributes(pmu); > +err_name: > + kfree(pmu->name); > +err: > + drm_notice(&xe->drm, "Failed to register PMU!\n"); > +} > diff --git a/drivers/gpu/drm/xe/xe_pmu.h b/drivers/gpu/drm/xe/xe_pmu.h > new file mode 100644 > index 000000000000..8afa256f9dac > --- /dev/null > +++ b/drivers/gpu/drm/xe/xe_pmu.h > @@ -0,0 +1,26 @@ > +/* SPDX-License-Identifier: MIT */ > +/* > + * Copyright © 2024 Intel Corporation > + */ > + > +#ifndef _XE_PMU_H_ > +#define _XE_PMU_H_ > + > +#include "xe_pmu_types.h" > + > +struct xe_gt; > + > +#if IS_ENABLED(CONFIG_PERF_EVENTS) > +int xe_pmu_init(void); > +void xe_pmu_exit(void); > +void xe_pmu_register(struct xe_pmu *pmu); > +void xe_pmu_suspend(struct xe_gt *gt); > +#else > +static inline int xe_pmu_init(void) { return 0; } > +static inline void xe_pmu_exit(void) {} > +static inline void xe_pmu_register(struct xe_pmu *pmu) {} > +static inline void xe_pmu_suspend(struct xe_gt *gt) {} > +#endif > + > +#endif > + > diff --git a/drivers/gpu/drm/xe/xe_pmu_types.h b/drivers/gpu/drm/xe/xe_pmu_types.h > new file mode 100644 > index 000000000000..e86e8d7e0356 > --- /dev/null > +++ b/drivers/gpu/drm/xe/xe_pmu_types.h > @@ -0,0 +1,67 @@ > +/* SPDX-License-Identifier: MIT */ > +/* > + * Copyright © 2024 Intel Corporation > + */ > + > +#ifndef _XE_PMU_TYPES_H_ > +#define _XE_PMU_TYPES_H_ > + > +#include <linux/perf_event.h> > +#include <linux/spinlock_types.h> > +#include <uapi/drm/xe_drm.h> > + > +enum { > + __XE_SAMPLE_RENDER_GROUP_BUSY, > + __XE_SAMPLE_COPY_GROUP_BUSY, > + __XE_SAMPLE_MEDIA_GROUP_BUSY, > + __XE_SAMPLE_ANY_ENGINE_GROUP_BUSY, > + __XE_NUM_PMU_SAMPLERS > +}; > + > +#define XE_PMU_MAX_GT 2 > + > +struct xe_pmu { > + /** > + * @cpuhp: Struct used for CPU hotplug handling. > + */ > + struct { > + struct hlist_node node; > + unsigned int cpu; > + } cpuhp; > + /** > + * @base: PMU base. > + */ > + struct pmu base; > + /** > + * @closed: xe is unregistering. > + */ > + bool closed; > + /** > + * @name: Name as registered with perf core. > + */ > + const char *name; > + /** > + * @lock: Lock protecting enable mask and ref count handling. > + */ > + spinlock_t lock; > + /** > + * @sample: Current and previous (raw) counters. > + * > + * These counters are updated when the device is awake. > + */ > + u64 sample[XE_PMU_MAX_GT][__XE_NUM_PMU_SAMPLERS]; > + /** > + * @events_attr_group: Device events attribute group. > + */ > + struct attribute_group events_attr_group; > + /** > + * @xe_attr: Memory block holding device attributes. > + */ > + void *xe_attr; > + /** > + * @pmu_attr: Memory block holding device attributes. > + */ > + void *pmu_attr; > +}; > + > +#endif > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h > index d7b0903c22b2..07ca545354f7 100644 > --- a/include/uapi/drm/xe_drm.h > +++ b/include/uapi/drm/xe_drm.h > @@ -1370,6 +1370,45 @@ struct drm_xe_wait_user_fence { > __u64 reserved[2]; > }; > > +/** > + * DOC: XE PMU event config IDs > + * > + * Check 'man perf_event_open' to use the ID's XE_PMU_XXXX listed in xe_drm.h > + * in 'struct perf_event_attr' as part of perf_event_open syscall to read a > + * particular event. > + * > + * For example to open the XE_PMU_RENDER_GROUP_BUSY(0): > + * > + * .. code-block:: C > + * > + * struct perf_event_attr attr; > + * long long count; > + * int cpu = 0; > + * int fd; > + * > + * memset(&attr, 0, sizeof(struct perf_event_attr)); > + * attr.type = type; // eg: /sys/bus/event_source/devices/xe_0000_56_00.0/type > + * attr.read_format = PERF_FORMAT_TOTAL_TIME_ENABLED; > + * attr.use_clockid = 1; > + * attr.clockid = CLOCK_MONOTONIC; > + * attr.config = XE_PMU_RENDER_GROUP_BUSY(0); > + * > + * fd = syscall(__NR_perf_event_open, &attr, -1, cpu, -1, 0); > + */ > + > +/* > + * Top bits of every counter are GT id. > + */ > +#define __XE_PMU_GT_SHIFT (56) > + > +#define ___XE_PMU_OTHER(gt, x) \ > + (((__u64)(x)) | ((__u64)(gt) << __XE_PMU_GT_SHIFT)) > + > +#define XE_PMU_RENDER_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 0) > +#define XE_PMU_COPY_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 1) > +#define XE_PMU_MEDIA_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 2) > +#define XE_PMU_ANY_ENGINE_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 3) > + > #if defined(__cplusplus) > } > #endif ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v8 2/2] drm/xe/pmu: Enable PMU interface 2024-06-12 9:07 ` Matthew Auld @ 2024-06-12 13:47 ` Riana Tauro 0 siblings, 0 replies; 14+ messages in thread From: Riana Tauro @ 2024-06-12 13:47 UTC (permalink / raw) To: Matthew Auld, intel-xe Cc: anshuman.gupta, aravind.iddamsetty, rodrigo.vivi, umesh.nerlige.ramappa, krishnaiah.bommu, ashutosh.dixit On 6/12/2024 2:37 PM, Matthew Auld wrote: > On 12/06/2024 06:40, Riana Tauro wrote: >> From: Aravind Iddamsetty <aravind.iddamsetty@linux.intel.com> >> >> There are a set of engine group busyness counters provided by HW which >> are >> perfect fit to be exposed via PMU perf events. >> >> BSPEC: 46559, 46560, 46722, 46729, 52071, 71028 >> >> events can be listed using: >> perf list >> xe_0000_03_00.0/any-engine-group-busy-gt0/ [Kernel PMU event] >> xe_0000_03_00.0/copy-group-busy-gt0/ [Kernel PMU event] >> xe_0000_03_00.0/interrupts/ [Kernel PMU event] >> xe_0000_03_00.0/media-group-busy-gt0/ [Kernel PMU event] >> xe_0000_03_00.0/render-group-busy-gt0/ [Kernel PMU event] >> >> and can be read using: >> >> perf stat -e "xe_0000_8c_00.0/render-group-busy-gt0/" -I 1000 >> time counts unit events >> 1.001139062 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ >> 2.003294678 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ >> 3.005199582 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ >> 4.007076497 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ >> 5.008553068 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ >> 6.010531563 43520 ns xe_0000_8c_00.0/render-group-busy-gt0/ >> 7.012468029 44800 ns xe_0000_8c_00.0/render-group-busy-gt0/ >> 8.013463515 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ >> 9.015300183 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ >> 10.017233010 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ >> 10.971934120 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ >> >> The pmu base implementation is taken from i915. >> >> v2: >> Store last known value when device is awake return that while the GT is >> suspended and then update the driver copy when read during awake. >> >> v3: >> 1. drop init_samples, as storing counters before going to suspend should >> be sufficient. >> 2. ported the "drm/i915/pmu: Make PMU sample array two-dimensional" and >> dropped helpers to store and read samples. >> 3. use xe_device_mem_access_get_if_ongoing to check if device is active >> before reading the OA registers. >> 4. dropped format attr as no longer needed >> 5. introduce xe_pmu_suspend to call engine_group_busyness_store >> 6. few other nits. >> >> v4: minor nits. >> >> v5: take forcewake when accessing the OAG registers >> >> v6: >> 1. drop engine_busyness_sample_type >> 2. update UAPI documentation >> >> v7: >> 1. update UAPI documentation >> 2. drop MEDIA_GT specific change for media busyness counter. >> >> v8: >> 1. rebase >> 2. replace mem_access_if_ongoing with xe_pm_runtime_get_if_active >> 3. remove interrupts pmu event >> >> Co-developed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> >> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> >> Co-developed-by: Bommu Krishnaiah <krishnaiah.bommu@intel.com> >> Signed-off-by: Bommu Krishnaiah <krishnaiah.bommu@intel.com> >> Signed-off-by: Aravind Iddamsetty <aravind.iddamsetty@linux.intel.com> >> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com> >> Signed-off-by: Riana Tauro <riana.tauro@intel.com> >> --- >> drivers/gpu/drm/xe/Makefile | 2 + >> drivers/gpu/drm/xe/regs/xe_gt_regs.h | 5 + >> drivers/gpu/drm/xe/xe_device.c | 2 + >> drivers/gpu/drm/xe/xe_device_types.h | 4 + >> drivers/gpu/drm/xe/xe_gt.c | 2 + >> drivers/gpu/drm/xe/xe_module.c | 5 + >> drivers/gpu/drm/xe/xe_pmu.c | 631 +++++++++++++++++++++++++++ >> drivers/gpu/drm/xe/xe_pmu.h | 26 ++ >> drivers/gpu/drm/xe/xe_pmu_types.h | 67 +++ >> include/uapi/drm/xe_drm.h | 39 ++ >> 10 files changed, 783 insertions(+) >> create mode 100644 drivers/gpu/drm/xe/xe_pmu.c >> create mode 100644 drivers/gpu/drm/xe/xe_pmu.h >> create mode 100644 drivers/gpu/drm/xe/xe_pmu_types.h >> >> diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile >> index 0c3e3adabb27..ce4efd9ae8b3 100644 >> --- a/drivers/gpu/drm/xe/Makefile >> +++ b/drivers/gpu/drm/xe/Makefile >> @@ -276,6 +276,8 @@ xe-$(CONFIG_DRM_XE_DISPLAY) += \ >> i915-display/skl_universal_plane.o \ >> i915-display/skl_watermark.o >> +xe-$(CONFIG_PERF_EVENTS) += xe_pmu.o >> + >> ifeq ($(CONFIG_ACPI),y) >> xe-$(CONFIG_DRM_XE_DISPLAY) += \ >> i915-display/intel_acpi.o \ >> diff --git a/drivers/gpu/drm/xe/regs/xe_gt_regs.h >> b/drivers/gpu/drm/xe/regs/xe_gt_regs.h >> index 47c26c37608d..22821dcd4e1b 100644 >> --- a/drivers/gpu/drm/xe/regs/xe_gt_regs.h >> +++ b/drivers/gpu/drm/xe/regs/xe_gt_regs.h >> @@ -390,6 +390,11 @@ >> #define INVALIDATION_BROADCAST_MODE_DIS REG_BIT(12) >> #define GLOBAL_INVALIDATION_MODE REG_BIT(2) >> +#define XE_OAG_RC0_ANY_ENGINE_BUSY_FREE XE_REG(0xdb80) >> +#define XE_OAG_ANY_MEDIA_FF_BUSY_FREE XE_REG(0xdba0) >> +#define XE_OAG_BLT_BUSY_FREE XE_REG(0xdbbc) >> +#define XE_OAG_RENDER_BUSY_FREE XE_REG(0xdbdc) >> + >> #define HALF_SLICE_CHICKEN5 XE_REG_MCR(0xe188, >> XE_REG_OPTION_MASKED) >> #define DISABLE_SAMPLE_G_PERFORMANCE REG_BIT(0) >> diff --git a/drivers/gpu/drm/xe/xe_device.c >> b/drivers/gpu/drm/xe/xe_device.c >> index 0ff95a0ea5ea..88a90143eac1 100644 >> --- a/drivers/gpu/drm/xe/xe_device.c >> +++ b/drivers/gpu/drm/xe/xe_device.c >> @@ -667,6 +667,8 @@ int xe_device_probe(struct xe_device *xe) >> xe_hwmon_register(xe); >> + xe_pmu_register(&xe->pmu); >> + >> return devm_add_action_or_reset(xe->drm.dev, xe_device_sanitize, >> xe); >> err_fini_display: >> diff --git a/drivers/gpu/drm/xe/xe_device_types.h >> b/drivers/gpu/drm/xe/xe_device_types.h >> index 52bc461171d5..a5dba7325cf1 100644 >> --- a/drivers/gpu/drm/xe/xe_device_types.h >> +++ b/drivers/gpu/drm/xe/xe_device_types.h >> @@ -18,6 +18,7 @@ >> #include "xe_lmtt_types.h" >> #include "xe_memirq_types.h" >> #include "xe_platform_types.h" >> +#include "xe_pmu.h" >> #include "xe_pt_types.h" >> #include "xe_sriov_types.h" >> #include "xe_step_types.h" >> @@ -473,6 +474,9 @@ struct xe_device { >> int mode; >> } wedged; >> + /** @pmu: performance monitoring unit */ >> + struct xe_pmu pmu; >> + >> /* private: */ >> #if IS_ENABLED(CONFIG_DRM_XE_DISPLAY) >> diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c >> index 57d84751e160..477d0ae5f230 100644 >> --- a/drivers/gpu/drm/xe/xe_gt.c >> +++ b/drivers/gpu/drm/xe/xe_gt.c >> @@ -782,6 +782,8 @@ int xe_gt_suspend(struct xe_gt *gt) >> if (err) >> goto err_msg; >> + xe_pmu_suspend(gt); >> + >> err = xe_uc_suspend(>->uc); >> if (err) >> goto err_force_wake; >> diff --git a/drivers/gpu/drm/xe/xe_module.c >> b/drivers/gpu/drm/xe/xe_module.c >> index 3edeb30d5ccb..26f814f97fc2 100644 >> --- a/drivers/gpu/drm/xe/xe_module.c >> +++ b/drivers/gpu/drm/xe/xe_module.c >> @@ -11,6 +11,7 @@ >> #include "xe_drv.h" >> #include "xe_hw_fence.h" >> #include "xe_pci.h" >> +#include "xe_pmu.h" >> #include "xe_sched_job.h" >> struct xe_modparam xe_modparam = { >> @@ -74,6 +75,10 @@ static const struct init_funcs init_funcs[] = { >> .init = xe_sched_job_module_init, >> .exit = xe_sched_job_module_exit, >> }, >> + { >> + .init = xe_pmu_init, >> + .exit = xe_pmu_exit, >> + }, >> { >> .init = xe_register_pci_driver, >> .exit = xe_unregister_pci_driver, >> diff --git a/drivers/gpu/drm/xe/xe_pmu.c b/drivers/gpu/drm/xe/xe_pmu.c >> new file mode 100644 >> index 000000000000..472f63e76c62 >> --- /dev/null >> +++ b/drivers/gpu/drm/xe/xe_pmu.c >> @@ -0,0 +1,631 @@ >> +// SPDX-License-Identifier: MIT >> +/* >> + * Copyright © 2024 Intel Corporation >> + */ >> + >> +#include <drm/drm_drv.h> >> +#include <drm/drm_managed.h> >> +#include <drm/xe_drm.h> >> + >> +#include "regs/xe_gt_regs.h" >> +#include "xe_device.h" >> +#include "xe_force_wake.h" >> +#include "xe_gt_clock.h" >> +#include "xe_mmio.h" >> +#include "xe_macros.h" >> +#include "xe_pm.h" >> + >> +static cpumask_t xe_pmu_cpumask; >> +static unsigned int xe_pmu_target_cpu = -1; >> + >> +static unsigned int config_gt_id(const u64 config) >> +{ >> + return config >> __XE_PMU_GT_SHIFT; >> +} >> + >> +static u64 config_counter(const u64 config) >> +{ >> + return config & ~(~0ULL << __XE_PMU_GT_SHIFT); >> +} >> + >> +static void xe_pmu_event_destroy(struct perf_event *event) >> +{ >> + struct xe_device *xe = >> + container_of(event->pmu, typeof(*xe), pmu.base); >> + >> + drm_WARN_ON(&xe->drm, event->parent); >> + >> + drm_dev_put(&xe->drm); >> +} >> + >> +static u64 __engine_group_busyness_read(struct xe_gt *gt, int >> sample_type) >> +{ >> + u64 val; >> + >> + switch (sample_type) { >> + case __XE_SAMPLE_RENDER_GROUP_BUSY: >> + val = xe_mmio_read32(gt, XE_OAG_RENDER_BUSY_FREE); >> + break; >> + case __XE_SAMPLE_COPY_GROUP_BUSY: >> + val = xe_mmio_read32(gt, XE_OAG_BLT_BUSY_FREE); >> + break; >> + case __XE_SAMPLE_MEDIA_GROUP_BUSY: >> + val = xe_mmio_read32(gt, XE_OAG_ANY_MEDIA_FF_BUSY_FREE); >> + break; >> + case __XE_SAMPLE_ANY_ENGINE_GROUP_BUSY: >> + val = xe_mmio_read32(gt, XE_OAG_RC0_ANY_ENGINE_BUSY_FREE); >> + break; >> + default: >> + drm_warn(>->tile->xe->drm, "unknown pmu event\n"); >> + } >> + >> + return xe_gt_clock_cycles_to_ns(gt, val * 16); >> +} >> + >> +static u64 engine_group_busyness_read(struct xe_gt *gt, u64 config) >> +{ >> + int sample_type = config_counter(config); >> + const unsigned int gt_id = gt->info.id; >> + struct xe_device *xe = gt->tile->xe; >> + struct xe_pmu *pmu = &xe->pmu; >> + unsigned long flags; >> + bool device_awake; >> + u64 val; >> + >> + device_awake = xe_pm_runtime_get_if_active(xe); >> + if (device_awake) { >> + XE_WARN_ON(xe_force_wake_get(gt_to_fw(gt), XE_FW_GT)); >> + val = __engine_group_busyness_read(gt, sample_type); >> + XE_WARN_ON(xe_force_wake_put(gt_to_fw(gt), XE_FW_GT)); >> + xe_pm_runtime_put(xe); >> + } >> + >> + spin_lock_irqsave(&pmu->lock, flags); >> + >> + if (device_awake) >> + pmu->sample[gt_id][sample_type] = val; >> + else >> + val = pmu->sample[gt_id][sample_type]; >> + >> + spin_unlock_irqrestore(&pmu->lock, flags); >> + >> + return val; >> +} >> + >> +static void engine_group_busyness_store(struct xe_gt *gt) >> +{ >> + struct xe_pmu *pmu = >->tile->xe->pmu; >> + unsigned int gt_id = gt->info.id; >> + unsigned long flags; >> + int i; >> + >> + spin_lock_irqsave(&pmu->lock, flags); >> + >> + for (i = __XE_SAMPLE_RENDER_GROUP_BUSY; i <= >> __XE_SAMPLE_ANY_ENGINE_GROUP_BUSY; i++) >> + pmu->sample[gt_id][i] = __engine_group_busyness_read(gt, i); >> + >> + spin_unlock_irqrestore(&pmu->lock, flags); >> +} >> + >> +static int >> +config_status(struct xe_device *xe, u64 config) >> +{ >> + unsigned int gt_id = config_gt_id(config); >> + struct xe_gt *gt = xe_device_get_gt(xe, gt_id); >> + >> + if (gt_id >= XE_PMU_MAX_GT) >> + return -ENOENT; >> + >> + switch (config_counter(config)) { >> + case XE_PMU_RENDER_GROUP_BUSY(0): >> + case XE_PMU_COPY_GROUP_BUSY(0): >> + case XE_PMU_ANY_ENGINE_GROUP_BUSY(0): >> + if (gt->info.type == XE_GT_TYPE_MEDIA) >> + return -ENOENT; >> + break; >> + case XE_PMU_MEDIA_GROUP_BUSY(0): >> + if (!(gt->info.engine_mask & (BIT(XE_HW_ENGINE_VCS0) | >> BIT(XE_HW_ENGINE_VECS0)))) >> + return -ENOENT; >> + break; >> + default: >> + return -ENOENT; >> + } >> + >> + return 0; >> +} >> + >> +static int xe_pmu_event_init(struct perf_event *event) >> +{ >> + struct xe_device *xe = >> + container_of(event->pmu, typeof(*xe), pmu.base); >> + struct xe_pmu *pmu = &xe->pmu; >> + int ret; >> + >> + if (pmu->closed) >> + return -ENODEV; >> + >> + if (event->attr.type != event->pmu->type) >> + return -ENOENT; >> + >> + /* unsupported modes and filters */ >> + if (event->attr.sample_period) /* no sampling */ >> + return -EINVAL; >> + >> + if (has_branch_stack(event)) >> + return -EOPNOTSUPP; >> + >> + if (event->cpu < 0) >> + return -EINVAL; >> + >> + /* only allow running on one cpu at a time */ >> + if (!cpumask_test_cpu(event->cpu, &xe_pmu_cpumask)) >> + return -EINVAL; >> + >> + ret = config_status(xe, event->attr.config); >> + if (ret) >> + return ret; >> + >> + if (!event->parent) { >> + drm_dev_get(&xe->drm); >> + event->destroy = xe_pmu_event_destroy; >> + } >> + >> + return 0; >> +} >> + >> +static u64 __xe_pmu_event_read(struct perf_event *event) >> +{ >> + struct xe_device *xe = >> + container_of(event->pmu, typeof(*xe), pmu.base); >> + const unsigned int gt_id = config_gt_id(event->attr.config); >> + const u64 config = event->attr.config; >> + struct xe_gt *gt = xe_device_get_gt(xe, gt_id); >> + u64 val; >> + >> + switch (config_counter(config)) { >> + case XE_PMU_RENDER_GROUP_BUSY(0): >> + case XE_PMU_COPY_GROUP_BUSY(0): >> + case XE_PMU_ANY_ENGINE_GROUP_BUSY(0): >> + case XE_PMU_MEDIA_GROUP_BUSY(0): >> + val = engine_group_busyness_read(gt, config); >> + break; >> + default: >> + drm_warn(>->tile->xe->drm, "unknown pmu event\n"); >> + } >> + >> + return val; >> +} >> + >> +static void xe_pmu_event_read(struct perf_event *event) >> +{ >> + struct xe_device *xe = >> + container_of(event->pmu, typeof(*xe), pmu.base); >> + struct hw_perf_event *hwc = &event->hw; >> + struct xe_pmu *pmu = &xe->pmu; >> + u64 prev, new; >> + >> + if (pmu->closed) { >> + event->hw.state = PERF_HES_STOPPED; >> + return; >> + } >> +again: >> + prev = local64_read(&hwc->prev_count); >> + new = __xe_pmu_event_read(event); >> + >> + if (local64_cmpxchg(&hwc->prev_count, prev, new) != prev) >> + goto again; >> + >> + local64_add(new - prev, &event->count); >> +} >> + >> +static void xe_pmu_enable(struct perf_event *event) >> +{ >> + /* >> + * Store the current counter value so we can report the correct >> delta >> + * for all listeners. Even when the event was already enabled and >> has >> + * an existing non-zero value. >> + */ >> + local64_set(&event->hw.prev_count, __xe_pmu_event_read(event)); >> +} >> + >> +static void xe_pmu_event_start(struct perf_event *event, int flags) >> +{ >> + struct xe_device *xe = >> + container_of(event->pmu, typeof(*xe), pmu.base); >> + struct xe_pmu *pmu = &xe->pmu; >> + >> + if (pmu->closed) >> + return; >> + >> + xe_pmu_enable(event); >> + event->hw.state = 0; >> +} >> + >> +static void xe_pmu_event_stop(struct perf_event *event, int flags) >> +{ >> + if (flags & PERF_EF_UPDATE) >> + xe_pmu_event_read(event); >> + >> + event->hw.state = PERF_HES_STOPPED; >> +} >> + >> +static int xe_pmu_event_add(struct perf_event *event, int flags) >> +{ >> + struct xe_device *xe = >> + container_of(event->pmu, typeof(*xe), pmu.base); >> + struct xe_pmu *pmu = &xe->pmu; >> + >> + if (pmu->closed) >> + return -ENODEV; >> + >> + if (flags & PERF_EF_START) >> + xe_pmu_event_start(event, flags); >> + >> + return 0; >> +} >> + >> +static void xe_pmu_event_del(struct perf_event *event, int flags) >> +{ >> + xe_pmu_event_stop(event, PERF_EF_UPDATE); >> +} >> + >> +static int xe_pmu_event_event_idx(struct perf_event *event) >> +{ >> + return 0; >> +} >> + >> +struct xe_ext_attribute { >> + struct device_attribute attr; >> + unsigned long val; >> +}; >> + >> +static ssize_t xe_pmu_event_show(struct device *dev, >> + struct device_attribute *attr, char *buf) >> +{ >> + struct xe_ext_attribute *eattr; >> + >> + eattr = container_of(attr, struct xe_ext_attribute, attr); >> + return sprintf(buf, "config=0x%lx\n", eattr->val); >> +} >> + >> +static ssize_t cpumask_show(struct device *dev, >> + struct device_attribute *attr, char *buf) >> +{ >> + return cpumap_print_to_pagebuf(true, buf, &xe_pmu_cpumask); >> +} >> + >> +static DEVICE_ATTR_RO(cpumask); >> + >> +static struct attribute *xe_cpumask_attrs[] = { >> + &dev_attr_cpumask.attr, >> + NULL, >> +}; >> + >> +static const struct attribute_group xe_pmu_cpumask_attr_group = { >> + .attrs = xe_cpumask_attrs, >> +}; >> + >> +#define __event(__counter, __name, __unit) \ >> +{ \ >> + .counter = (__counter), \ >> + .name = (__name), \ >> + .unit = (__unit), \ >> +} >> + >> +static struct xe_ext_attribute * >> +add_xe_attr(struct xe_ext_attribute *attr, const char *name, u64 config) >> +{ >> + sysfs_attr_init(&attr->attr.attr); >> + attr->attr.attr.name = name; >> + attr->attr.attr.mode = 0444; >> + attr->attr.show = xe_pmu_event_show; >> + attr->val = config; >> + >> + return ++attr; >> +} >> + >> +static struct perf_pmu_events_attr * >> +add_pmu_attr(struct perf_pmu_events_attr *attr, const char *name, >> + const char *str) >> +{ >> + sysfs_attr_init(&attr->attr.attr); >> + attr->attr.attr.name = name; >> + attr->attr.attr.mode = 0444; >> + attr->attr.show = perf_event_sysfs_show; >> + attr->event_str = str; >> + >> + return ++attr; >> +} >> + >> +static struct attribute ** >> +create_event_attributes(struct xe_pmu *pmu) >> +{ >> + struct xe_device *xe = container_of(pmu, typeof(*xe), pmu); >> + static const struct { >> + unsigned int counter; >> + const char *name; >> + const char *unit; >> + } events[] = { >> + __event(0, "render-group-busy", "ns"), >> + __event(1, "copy-group-busy", "ns"), >> + __event(2, "media-group-busy", "ns"), >> + __event(3, "any-engine-group-busy", "ns"), >> + }; >> + >> + struct perf_pmu_events_attr *pmu_attr = NULL, *pmu_iter; >> + struct xe_ext_attribute *xe_attr = NULL, *xe_iter; >> + struct attribute **attr = NULL, **attr_iter; >> + unsigned int count = 0; >> + unsigned int i, j; >> + struct xe_gt *gt; >> + >> + /* Count how many counters we will be exposing. */ >> + for_each_gt(gt, xe, j) { >> + for (i = 0; i < ARRAY_SIZE(events); i++) { >> + u64 config = ___XE_PMU_OTHER(j, events[i].counter); >> + >> + if (!config_status(xe, config)) >> + count++; >> + } >> + } >> + >> + /* Allocate attribute objects and table. */ >> + xe_attr = kcalloc(count, sizeof(*xe_attr), GFP_KERNEL); >> + if (!xe_attr) >> + goto err_alloc; >> + >> + pmu_attr = kcalloc(count, sizeof(*pmu_attr), GFP_KERNEL); >> + if (!pmu_attr) >> + goto err_alloc; >> + >> + /* Max one pointer of each attribute type plus a termination >> entry. */ >> + attr = kcalloc(count * 2 + 1, sizeof(*attr), GFP_KERNEL); >> + if (!attr) >> + goto err_alloc; >> + >> + xe_iter = xe_attr; >> + pmu_iter = pmu_attr; >> + attr_iter = attr; >> + >> + for_each_gt(gt, xe, j) { >> + for (i = 0; i < ARRAY_SIZE(events); i++) { >> + u64 config = ___XE_PMU_OTHER(j, events[i].counter); >> + char *str; >> + >> + if (config_status(xe, config)) >> + continue; >> + >> + str = kasprintf(GFP_KERNEL, "%s-gt%u", >> + events[i].name, j); >> + if (!str) >> + goto err; >> + >> + *attr_iter++ = &xe_iter->attr.attr; >> + xe_iter = add_xe_attr(xe_iter, str, config); >> + >> + if (events[i].unit) { >> + str = kasprintf(GFP_KERNEL, "%s-gt%u.unit", >> + events[i].name, j); >> + if (!str) >> + goto err; >> + >> + *attr_iter++ = &pmu_iter->attr.attr; >> + pmu_iter = add_pmu_attr(pmu_iter, str, >> + events[i].unit); >> + } >> + } >> + } >> + >> + pmu->xe_attr = xe_attr; >> + pmu->pmu_attr = pmu_attr; >> + >> + return attr; >> + >> +err: >> + for (attr_iter = attr; *attr_iter; attr_iter++) >> + kfree((*attr_iter)->name); >> + >> +err_alloc: >> + kfree(attr); >> + kfree(xe_attr); >> + kfree(pmu_attr); >> + >> + return NULL; >> +} >> + >> +static void free_event_attributes(struct xe_pmu *pmu) >> +{ >> + struct attribute **attr_iter = pmu->events_attr_group.attrs; >> + >> + for (; *attr_iter; attr_iter++) >> + kfree((*attr_iter)->name); >> + >> + kfree(pmu->events_attr_group.attrs); >> + kfree(pmu->xe_attr); >> + kfree(pmu->pmu_attr); >> + >> + pmu->events_attr_group.attrs = NULL; >> + pmu->xe_attr = NULL; >> + pmu->pmu_attr = NULL; >> +} >> + >> +static int xe_pmu_cpu_online(unsigned int cpu, struct hlist_node *node) >> +{ >> + struct xe_pmu *pmu = hlist_entry_safe(node, typeof(*pmu), >> cpuhp.node); >> + >> + /* Select the first online CPU as a designated reader. */ >> + if (cpumask_empty(&xe_pmu_cpumask)) >> + cpumask_set_cpu(cpu, &xe_pmu_cpumask); >> + >> + return 0; >> +} >> + >> +static int xe_pmu_cpu_offline(unsigned int cpu, struct hlist_node *node) >> +{ >> + struct xe_pmu *pmu = hlist_entry_safe(node, typeof(*pmu), >> cpuhp.node); >> + unsigned int target = xe_pmu_target_cpu; >> + >> + /* >> + * Unregistering an instance generates a CPU offline event which >> we must >> + * ignore to avoid incorrectly modifying the shared xe_pmu_cpumask. >> + */ >> + if (pmu->closed) >> + return 0; >> + >> + if (cpumask_test_and_clear_cpu(cpu, &xe_pmu_cpumask)) { >> + target = cpumask_any_but(topology_sibling_cpumask(cpu), cpu); >> + >> + /* Migrate events if there is a valid target */ >> + if (target < nr_cpu_ids) { >> + cpumask_set_cpu(target, &xe_pmu_cpumask); >> + xe_pmu_target_cpu = target; >> + } >> + } >> + >> + if (target < nr_cpu_ids && target != pmu->cpuhp.cpu) { >> + perf_pmu_migrate_context(&pmu->base, cpu, target); >> + pmu->cpuhp.cpu = target; >> + } >> + >> + return 0; >> +} >> + >> +static enum cpuhp_state cpuhp_slot = CPUHP_INVALID; >> + >> +int xe_pmu_init(void) >> +{ >> + int ret; >> + >> + ret = cpuhp_setup_state_multi(CPUHP_AP_ONLINE_DYN, >> + "perf/x86/intel/xe:online", >> + xe_pmu_cpu_online, >> + xe_pmu_cpu_offline); >> + if (ret < 0) >> + pr_notice("Failed to setup cpuhp state for xe PMU! (%d)\n", >> + ret); >> + else >> + cpuhp_slot = ret; >> + >> + return 0; >> +} >> + >> +void xe_pmu_exit(void) >> +{ >> + if (cpuhp_slot != CPUHP_INVALID) >> + cpuhp_remove_multi_state(cpuhp_slot); >> +} >> + >> +static int xe_pmu_register_cpuhp_state(struct xe_pmu *pmu) >> +{ >> + if (cpuhp_slot == CPUHP_INVALID) >> + return -EINVAL; >> + >> + return cpuhp_state_add_instance(cpuhp_slot, &pmu->cpuhp.node); >> +} >> + >> +static void xe_pmu_unregister_cpuhp_state(struct xe_pmu *pmu) >> +{ >> + cpuhp_state_remove_instance(cpuhp_slot, &pmu->cpuhp.node); >> +} >> + >> +void xe_pmu_suspend(struct xe_gt *gt) >> +{ >> + engine_group_busyness_store(gt); >> +} >> + >> +static void xe_pmu_unregister(struct drm_device *device, void *arg) >> +{ >> + struct xe_pmu *pmu = arg; >> + >> + if (!pmu->base.event_init) >> + return; >> + >> + /* >> + * "Disconnect" the PMU callbacks - since all are atomic >> synchronize_rcu >> + * ensures all currently executing ones will have exited before we >> + * proceed with unregistration. >> + */ >> + pmu->closed = true; >> + synchronize_rcu(); >> + >> + xe_pmu_unregister_cpuhp_state(pmu); >> + >> + perf_pmu_unregister(&pmu->base); >> + pmu->base.event_init = NULL; >> + kfree(pmu->base.attr_groups); >> + kfree(pmu->name); >> + free_event_attributes(pmu); >> +} >> + >> +void xe_pmu_register(struct xe_pmu *pmu) >> +{ >> + struct xe_device *xe = container_of(pmu, typeof(*xe), pmu); >> + const struct attribute_group *attr_groups[] = { >> + &pmu->events_attr_group, >> + &xe_pmu_cpumask_attr_group, >> + NULL >> + }; >> + >> + int ret = -ENOMEM; >> + >> + spin_lock_init(&pmu->lock); >> + pmu->cpuhp.cpu = -1; >> + >> + pmu->name = kasprintf(GFP_KERNEL, >> + "xe_%s", >> + dev_name(xe->drm.dev)); >> + if (pmu->name) >> + /* tools/perf reserves colons as special. */ >> + strreplace((char *)pmu->name, ':', '_'); >> + >> + if (!pmu->name) >> + goto err; >> + >> + pmu->events_attr_group.name = "events"; >> + pmu->events_attr_group.attrs = create_event_attributes(pmu); >> + if (!pmu->events_attr_group.attrs) >> + goto err_name; >> + >> + pmu->base.attr_groups = kmemdup(attr_groups, sizeof(attr_groups), >> + GFP_KERNEL); >> + if (!pmu->base.attr_groups) >> + goto err_attr; >> + >> + pmu->base.module = THIS_MODULE; >> + pmu->base.task_ctx_nr = perf_invalid_context; >> + pmu->base.event_init = xe_pmu_event_init; >> + pmu->base.add = xe_pmu_event_add; >> + pmu->base.del = xe_pmu_event_del; >> + pmu->base.start = xe_pmu_event_start; >> + pmu->base.stop = xe_pmu_event_stop; >> + pmu->base.read = xe_pmu_event_read; >> + pmu->base.event_idx = xe_pmu_event_event_idx; >> + >> + ret = perf_pmu_register(&pmu->base, pmu->name, -1); >> + if (ret) >> + goto err_groups; >> + >> + ret = xe_pmu_register_cpuhp_state(pmu); >> + if (ret) >> + goto err_unreg; >> + >> + ret = drmm_add_action_or_reset(&xe->drm, xe_pmu_unregister, pmu); >> + if (ret) >> + goto err_cpuhp; > > This triggers a warning during core_hotunplug. AFAIK this should use > devm and not drmm. Thank you for pointing this. Will change this to devm. Thank you, Riana > >> + >> + return; >> + >> +err_cpuhp: >> + xe_pmu_unregister_cpuhp_state(pmu); >> +err_unreg: >> + perf_pmu_unregister(&pmu->base); >> +err_groups: >> + kfree(pmu->base.attr_groups); >> +err_attr: >> + pmu->base.event_init = NULL; >> + free_event_attributes(pmu); >> +err_name: >> + kfree(pmu->name); >> +err: >> + drm_notice(&xe->drm, "Failed to register PMU!\n"); >> +} >> diff --git a/drivers/gpu/drm/xe/xe_pmu.h b/drivers/gpu/drm/xe/xe_pmu.h >> new file mode 100644 >> index 000000000000..8afa256f9dac >> --- /dev/null >> +++ b/drivers/gpu/drm/xe/xe_pmu.h >> @@ -0,0 +1,26 @@ >> +/* SPDX-License-Identifier: MIT */ >> +/* >> + * Copyright © 2024 Intel Corporation >> + */ >> + >> +#ifndef _XE_PMU_H_ >> +#define _XE_PMU_H_ >> + >> +#include "xe_pmu_types.h" >> + >> +struct xe_gt; >> + >> +#if IS_ENABLED(CONFIG_PERF_EVENTS) >> +int xe_pmu_init(void); >> +void xe_pmu_exit(void); >> +void xe_pmu_register(struct xe_pmu *pmu); >> +void xe_pmu_suspend(struct xe_gt *gt); >> +#else >> +static inline int xe_pmu_init(void) { return 0; } >> +static inline void xe_pmu_exit(void) {} >> +static inline void xe_pmu_register(struct xe_pmu *pmu) {} >> +static inline void xe_pmu_suspend(struct xe_gt *gt) {} >> +#endif >> + >> +#endif >> + >> diff --git a/drivers/gpu/drm/xe/xe_pmu_types.h >> b/drivers/gpu/drm/xe/xe_pmu_types.h >> new file mode 100644 >> index 000000000000..e86e8d7e0356 >> --- /dev/null >> +++ b/drivers/gpu/drm/xe/xe_pmu_types.h >> @@ -0,0 +1,67 @@ >> +/* SPDX-License-Identifier: MIT */ >> +/* >> + * Copyright © 2024 Intel Corporation >> + */ >> + >> +#ifndef _XE_PMU_TYPES_H_ >> +#define _XE_PMU_TYPES_H_ >> + >> +#include <linux/perf_event.h> >> +#include <linux/spinlock_types.h> >> +#include <uapi/drm/xe_drm.h> >> + >> +enum { >> + __XE_SAMPLE_RENDER_GROUP_BUSY, >> + __XE_SAMPLE_COPY_GROUP_BUSY, >> + __XE_SAMPLE_MEDIA_GROUP_BUSY, >> + __XE_SAMPLE_ANY_ENGINE_GROUP_BUSY, >> + __XE_NUM_PMU_SAMPLERS >> +}; >> + >> +#define XE_PMU_MAX_GT 2 >> + >> +struct xe_pmu { >> + /** >> + * @cpuhp: Struct used for CPU hotplug handling. >> + */ >> + struct { >> + struct hlist_node node; >> + unsigned int cpu; >> + } cpuhp; >> + /** >> + * @base: PMU base. >> + */ >> + struct pmu base; >> + /** >> + * @closed: xe is unregistering. >> + */ >> + bool closed; >> + /** >> + * @name: Name as registered with perf core. >> + */ >> + const char *name; >> + /** >> + * @lock: Lock protecting enable mask and ref count handling. >> + */ >> + spinlock_t lock; >> + /** >> + * @sample: Current and previous (raw) counters. >> + * >> + * These counters are updated when the device is awake. >> + */ >> + u64 sample[XE_PMU_MAX_GT][__XE_NUM_PMU_SAMPLERS]; >> + /** >> + * @events_attr_group: Device events attribute group. >> + */ >> + struct attribute_group events_attr_group; >> + /** >> + * @xe_attr: Memory block holding device attributes. >> + */ >> + void *xe_attr; >> + /** >> + * @pmu_attr: Memory block holding device attributes. >> + */ >> + void *pmu_attr; >> +}; >> + >> +#endif >> diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h >> index d7b0903c22b2..07ca545354f7 100644 >> --- a/include/uapi/drm/xe_drm.h >> +++ b/include/uapi/drm/xe_drm.h >> @@ -1370,6 +1370,45 @@ struct drm_xe_wait_user_fence { >> __u64 reserved[2]; >> }; >> +/** >> + * DOC: XE PMU event config IDs >> + * >> + * Check 'man perf_event_open' to use the ID's XE_PMU_XXXX listed in >> xe_drm.h >> + * in 'struct perf_event_attr' as part of perf_event_open syscall to >> read a >> + * particular event. >> + * >> + * For example to open the XE_PMU_RENDER_GROUP_BUSY(0): >> + * >> + * .. code-block:: C >> + * >> + * struct perf_event_attr attr; >> + * long long count; >> + * int cpu = 0; >> + * int fd; >> + * >> + * memset(&attr, 0, sizeof(struct perf_event_attr)); >> + * attr.type = type; // eg: >> /sys/bus/event_source/devices/xe_0000_56_00.0/type >> + * attr.read_format = PERF_FORMAT_TOTAL_TIME_ENABLED; >> + * attr.use_clockid = 1; >> + * attr.clockid = CLOCK_MONOTONIC; >> + * attr.config = XE_PMU_RENDER_GROUP_BUSY(0); >> + * >> + * fd = syscall(__NR_perf_event_open, &attr, -1, cpu, -1, 0); >> + */ >> + >> +/* >> + * Top bits of every counter are GT id. >> + */ >> +#define __XE_PMU_GT_SHIFT (56) >> + >> +#define ___XE_PMU_OTHER(gt, x) \ >> + (((__u64)(x)) | ((__u64)(gt) << __XE_PMU_GT_SHIFT)) >> + >> +#define XE_PMU_RENDER_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 0) >> +#define XE_PMU_COPY_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 1) >> +#define XE_PMU_MEDIA_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 2) >> +#define XE_PMU_ANY_ENGINE_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 3) >> + >> #if defined(__cplusplus) >> } >> #endif ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v8 2/2] drm/xe/pmu: Enable PMU interface 2024-06-12 5:40 ` [PATCH v8 2/2] drm/xe/pmu: Enable PMU interface Riana Tauro 2024-06-12 9:07 ` Matthew Auld @ 2024-06-12 9:13 ` Aravind Iddamsetty 1 sibling, 0 replies; 14+ messages in thread From: Aravind Iddamsetty @ 2024-06-12 9:13 UTC (permalink / raw) To: Riana Tauro, intel-xe Cc: anshuman.gupta, aravind.iddamsetty, tvrtko.ursulin, rodrigo.vivi, umesh.nerlige.ramappa, krishnaiah.bommu, ashutosh.dixit On 12/06/24 11:10, Riana Tauro wrote: > From: Aravind Iddamsetty <aravind.iddamsetty@linux.intel.com> > > There are a set of engine group busyness counters provided by HW which are > perfect fit to be exposed via PMU perf events. > > BSPEC: 46559, 46560, 46722, 46729, 52071, 71028 > > events can be listed using: > perf list > xe_0000_03_00.0/any-engine-group-busy-gt0/ [Kernel PMU event] > xe_0000_03_00.0/copy-group-busy-gt0/ [Kernel PMU event] > xe_0000_03_00.0/interrupts/ [Kernel PMU event] > xe_0000_03_00.0/media-group-busy-gt0/ [Kernel PMU event] > xe_0000_03_00.0/render-group-busy-gt0/ [Kernel PMU event] > > and can be read using: > > perf stat -e "xe_0000_8c_00.0/render-group-busy-gt0/" -I 1000 > time counts unit events > 1.001139062 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ > 2.003294678 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ > 3.005199582 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ > 4.007076497 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ > 5.008553068 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ > 6.010531563 43520 ns xe_0000_8c_00.0/render-group-busy-gt0/ > 7.012468029 44800 ns xe_0000_8c_00.0/render-group-busy-gt0/ > 8.013463515 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ > 9.015300183 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ > 10.017233010 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ > 10.971934120 0 ns xe_0000_8c_00.0/render-group-busy-gt0/ > > The pmu base implementation is taken from i915. > > v2: > Store last known value when device is awake return that while the GT is > suspended and then update the driver copy when read during awake. > > v3: > 1. drop init_samples, as storing counters before going to suspend should > be sufficient. > 2. ported the "drm/i915/pmu: Make PMU sample array two-dimensional" and > dropped helpers to store and read samples. > 3. use xe_device_mem_access_get_if_ongoing to check if device is active > before reading the OA registers. > 4. dropped format attr as no longer needed > 5. introduce xe_pmu_suspend to call engine_group_busyness_store > 6. few other nits. > > v4: minor nits. > > v5: take forcewake when accessing the OAG registers > > v6: > 1. drop engine_busyness_sample_type > 2. update UAPI documentation > > v7: > 1. update UAPI documentation > 2. drop MEDIA_GT specific change for media busyness counter. > > v8: > 1. rebase > 2. replace mem_access_if_ongoing with xe_pm_runtime_get_if_active > 3. remove interrupts pmu event > > Co-developed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > Co-developed-by: Bommu Krishnaiah <krishnaiah.bommu@intel.com> > Signed-off-by: Bommu Krishnaiah <krishnaiah.bommu@intel.com> > Signed-off-by: Aravind Iddamsetty <aravind.iddamsetty@linux.intel.com> > Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com> > Signed-off-by: Riana Tauro <riana.tauro@intel.com> > --- > drivers/gpu/drm/xe/Makefile | 2 + > drivers/gpu/drm/xe/regs/xe_gt_regs.h | 5 + > drivers/gpu/drm/xe/xe_device.c | 2 + > drivers/gpu/drm/xe/xe_device_types.h | 4 + > drivers/gpu/drm/xe/xe_gt.c | 2 + > drivers/gpu/drm/xe/xe_module.c | 5 + > drivers/gpu/drm/xe/xe_pmu.c | 631 +++++++++++++++++++++++++++ > drivers/gpu/drm/xe/xe_pmu.h | 26 ++ > drivers/gpu/drm/xe/xe_pmu_types.h | 67 +++ > include/uapi/drm/xe_drm.h | 39 ++ > 10 files changed, 783 insertions(+) > create mode 100644 drivers/gpu/drm/xe/xe_pmu.c > create mode 100644 drivers/gpu/drm/xe/xe_pmu.h > create mode 100644 drivers/gpu/drm/xe/xe_pmu_types.h > > diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile > index 0c3e3adabb27..ce4efd9ae8b3 100644 > --- a/drivers/gpu/drm/xe/Makefile > +++ b/drivers/gpu/drm/xe/Makefile > @@ -276,6 +276,8 @@ xe-$(CONFIG_DRM_XE_DISPLAY) += \ > i915-display/skl_universal_plane.o \ > i915-display/skl_watermark.o > > +xe-$(CONFIG_PERF_EVENTS) += xe_pmu.o > + > ifeq ($(CONFIG_ACPI),y) > xe-$(CONFIG_DRM_XE_DISPLAY) += \ > i915-display/intel_acpi.o \ > diff --git a/drivers/gpu/drm/xe/regs/xe_gt_regs.h b/drivers/gpu/drm/xe/regs/xe_gt_regs.h > index 47c26c37608d..22821dcd4e1b 100644 > --- a/drivers/gpu/drm/xe/regs/xe_gt_regs.h > +++ b/drivers/gpu/drm/xe/regs/xe_gt_regs.h > @@ -390,6 +390,11 @@ > #define INVALIDATION_BROADCAST_MODE_DIS REG_BIT(12) > #define GLOBAL_INVALIDATION_MODE REG_BIT(2) > > +#define XE_OAG_RC0_ANY_ENGINE_BUSY_FREE XE_REG(0xdb80) > +#define XE_OAG_ANY_MEDIA_FF_BUSY_FREE XE_REG(0xdba0) > +#define XE_OAG_BLT_BUSY_FREE XE_REG(0xdbbc) > +#define XE_OAG_RENDER_BUSY_FREE XE_REG(0xdbdc) > + > #define HALF_SLICE_CHICKEN5 XE_REG_MCR(0xe188, XE_REG_OPTION_MASKED) > #define DISABLE_SAMPLE_G_PERFORMANCE REG_BIT(0) > > diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c > index 0ff95a0ea5ea..88a90143eac1 100644 > --- a/drivers/gpu/drm/xe/xe_device.c > +++ b/drivers/gpu/drm/xe/xe_device.c > @@ -667,6 +667,8 @@ int xe_device_probe(struct xe_device *xe) > > xe_hwmon_register(xe); > > + xe_pmu_register(&xe->pmu); > + > return devm_add_action_or_reset(xe->drm.dev, xe_device_sanitize, xe); > > err_fini_display: > diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h > index 52bc461171d5..a5dba7325cf1 100644 > --- a/drivers/gpu/drm/xe/xe_device_types.h > +++ b/drivers/gpu/drm/xe/xe_device_types.h > @@ -18,6 +18,7 @@ > #include "xe_lmtt_types.h" > #include "xe_memirq_types.h" > #include "xe_platform_types.h" > +#include "xe_pmu.h" > #include "xe_pt_types.h" > #include "xe_sriov_types.h" > #include "xe_step_types.h" > @@ -473,6 +474,9 @@ struct xe_device { > int mode; > } wedged; > > + /** @pmu: performance monitoring unit */ > + struct xe_pmu pmu; > + > /* private: */ > > #if IS_ENABLED(CONFIG_DRM_XE_DISPLAY) > diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c > index 57d84751e160..477d0ae5f230 100644 > --- a/drivers/gpu/drm/xe/xe_gt.c > +++ b/drivers/gpu/drm/xe/xe_gt.c > @@ -782,6 +782,8 @@ int xe_gt_suspend(struct xe_gt *gt) > if (err) > goto err_msg; > > + xe_pmu_suspend(gt); > + > err = xe_uc_suspend(>->uc); > if (err) > goto err_force_wake; > diff --git a/drivers/gpu/drm/xe/xe_module.c b/drivers/gpu/drm/xe/xe_module.c > index 3edeb30d5ccb..26f814f97fc2 100644 > --- a/drivers/gpu/drm/xe/xe_module.c > +++ b/drivers/gpu/drm/xe/xe_module.c > @@ -11,6 +11,7 @@ > #include "xe_drv.h" > #include "xe_hw_fence.h" > #include "xe_pci.h" > +#include "xe_pmu.h" > #include "xe_sched_job.h" > > struct xe_modparam xe_modparam = { > @@ -74,6 +75,10 @@ static const struct init_funcs init_funcs[] = { > .init = xe_sched_job_module_init, > .exit = xe_sched_job_module_exit, > }, > + { > + .init = xe_pmu_init, > + .exit = xe_pmu_exit, > + }, > { > .init = xe_register_pci_driver, > .exit = xe_unregister_pci_driver, > diff --git a/drivers/gpu/drm/xe/xe_pmu.c b/drivers/gpu/drm/xe/xe_pmu.c > new file mode 100644 > index 000000000000..472f63e76c62 > --- /dev/null > +++ b/drivers/gpu/drm/xe/xe_pmu.c > @@ -0,0 +1,631 @@ > +// SPDX-License-Identifier: MIT > +/* > + * Copyright © 2024 Intel Corporation > + */ > + > +#include <drm/drm_drv.h> > +#include <drm/drm_managed.h> > +#include <drm/xe_drm.h> > + > +#include "regs/xe_gt_regs.h" > +#include "xe_device.h" > +#include "xe_force_wake.h" > +#include "xe_gt_clock.h" > +#include "xe_mmio.h" > +#include "xe_macros.h" > +#include "xe_pm.h" > + > +static cpumask_t xe_pmu_cpumask; > +static unsigned int xe_pmu_target_cpu = -1; > + > +static unsigned int config_gt_id(const u64 config) > +{ > + return config >> __XE_PMU_GT_SHIFT; > +} > + > +static u64 config_counter(const u64 config) > +{ > + return config & ~(~0ULL << __XE_PMU_GT_SHIFT); > +} > + > +static void xe_pmu_event_destroy(struct perf_event *event) > +{ > + struct xe_device *xe = > + container_of(event->pmu, typeof(*xe), pmu.base); > + > + drm_WARN_ON(&xe->drm, event->parent); > + > + drm_dev_put(&xe->drm); > +} > + > +static u64 __engine_group_busyness_read(struct xe_gt *gt, int sample_type) > +{ > + u64 val; > + > + switch (sample_type) { > + case __XE_SAMPLE_RENDER_GROUP_BUSY: > + val = xe_mmio_read32(gt, XE_OAG_RENDER_BUSY_FREE); > + break; > + case __XE_SAMPLE_COPY_GROUP_BUSY: > + val = xe_mmio_read32(gt, XE_OAG_BLT_BUSY_FREE); > + break; > + case __XE_SAMPLE_MEDIA_GROUP_BUSY: > + val = xe_mmio_read32(gt, XE_OAG_ANY_MEDIA_FF_BUSY_FREE); > + break; > + case __XE_SAMPLE_ANY_ENGINE_GROUP_BUSY: > + val = xe_mmio_read32(gt, XE_OAG_RC0_ANY_ENGINE_BUSY_FREE); > + break; > + default: > + drm_warn(>->tile->xe->drm, "unknown pmu event\n"); > + } > + > + return xe_gt_clock_cycles_to_ns(gt, val * 16); > +} > + > +static u64 engine_group_busyness_read(struct xe_gt *gt, u64 config) > +{ > + int sample_type = config_counter(config); > + const unsigned int gt_id = gt->info.id; > + struct xe_device *xe = gt->tile->xe; > + struct xe_pmu *pmu = &xe->pmu; > + unsigned long flags; > + bool device_awake; > + u64 val; > + > + device_awake = xe_pm_runtime_get_if_active(xe); > + if (device_awake) { > + XE_WARN_ON(xe_force_wake_get(gt_to_fw(gt), XE_FW_GT)); > + val = __engine_group_busyness_read(gt, sample_type); > + XE_WARN_ON(xe_force_wake_put(gt_to_fw(gt), XE_FW_GT)); > + xe_pm_runtime_put(xe); > + } > + > + spin_lock_irqsave(&pmu->lock, flags); > + > + if (device_awake) > + pmu->sample[gt_id][sample_type] = val; > + else > + val = pmu->sample[gt_id][sample_type]; > + > + spin_unlock_irqrestore(&pmu->lock, flags); > + > + return val; > +} > + > +static void engine_group_busyness_store(struct xe_gt *gt) > +{ > + struct xe_pmu *pmu = >->tile->xe->pmu; > + unsigned int gt_id = gt->info.id; > + unsigned long flags; > + int i; > + > + spin_lock_irqsave(&pmu->lock, flags); > + > + for (i = __XE_SAMPLE_RENDER_GROUP_BUSY; i <= __XE_SAMPLE_ANY_ENGINE_GROUP_BUSY; i++) > + pmu->sample[gt_id][i] = __engine_group_busyness_read(gt, i); > + > + spin_unlock_irqrestore(&pmu->lock, flags); > +} > + > +static int > +config_status(struct xe_device *xe, u64 config) > +{ > + unsigned int gt_id = config_gt_id(config); > + struct xe_gt *gt = xe_device_get_gt(xe, gt_id); > + > + if (gt_id >= XE_PMU_MAX_GT) > + return -ENOENT; > + > + switch (config_counter(config)) { > + case XE_PMU_RENDER_GROUP_BUSY(0): > + case XE_PMU_COPY_GROUP_BUSY(0): > + case XE_PMU_ANY_ENGINE_GROUP_BUSY(0): > + if (gt->info.type == XE_GT_TYPE_MEDIA) > + return -ENOENT; > + break; > + case XE_PMU_MEDIA_GROUP_BUSY(0): > + if (!(gt->info.engine_mask & (BIT(XE_HW_ENGINE_VCS0) | BIT(XE_HW_ENGINE_VECS0)))) > + return -ENOENT; > + break; > + default: > + return -ENOENT; > + } > + > + return 0; > +} > + > +static int xe_pmu_event_init(struct perf_event *event) > +{ > + struct xe_device *xe = > + container_of(event->pmu, typeof(*xe), pmu.base); > + struct xe_pmu *pmu = &xe->pmu; > + int ret; > + > + if (pmu->closed) > + return -ENODEV; > + > + if (event->attr.type != event->pmu->type) > + return -ENOENT; > + > + /* unsupported modes and filters */ > + if (event->attr.sample_period) /* no sampling */ > + return -EINVAL; > + > + if (has_branch_stack(event)) > + return -EOPNOTSUPP; > + > + if (event->cpu < 0) > + return -EINVAL; > + > + /* only allow running on one cpu at a time */ > + if (!cpumask_test_cpu(event->cpu, &xe_pmu_cpumask)) > + return -EINVAL; > + > + ret = config_status(xe, event->attr.config); > + if (ret) > + return ret; > + > + if (!event->parent) { > + drm_dev_get(&xe->drm); > + event->destroy = xe_pmu_event_destroy; > + } > + > + return 0; > +} > + > +static u64 __xe_pmu_event_read(struct perf_event *event) > +{ > + struct xe_device *xe = > + container_of(event->pmu, typeof(*xe), pmu.base); > + const unsigned int gt_id = config_gt_id(event->attr.config); > + const u64 config = event->attr.config; > + struct xe_gt *gt = xe_device_get_gt(xe, gt_id); > + u64 val; > + > + switch (config_counter(config)) { > + case XE_PMU_RENDER_GROUP_BUSY(0): > + case XE_PMU_COPY_GROUP_BUSY(0): > + case XE_PMU_ANY_ENGINE_GROUP_BUSY(0): > + case XE_PMU_MEDIA_GROUP_BUSY(0): > + val = engine_group_busyness_read(gt, config); > + break; > + default: > + drm_warn(>->tile->xe->drm, "unknown pmu event\n"); > + } > + > + return val; > +} > + > +static void xe_pmu_event_read(struct perf_event *event) > +{ > + struct xe_device *xe = > + container_of(event->pmu, typeof(*xe), pmu.base); > + struct hw_perf_event *hwc = &event->hw; > + struct xe_pmu *pmu = &xe->pmu; > + u64 prev, new; > + > + if (pmu->closed) { > + event->hw.state = PERF_HES_STOPPED; > + return; > + } > +again: > + prev = local64_read(&hwc->prev_count); > + new = __xe_pmu_event_read(event); > + > + if (local64_cmpxchg(&hwc->prev_count, prev, new) != prev) > + goto again; > + > + local64_add(new - prev, &event->count); > +} > + > +static void xe_pmu_enable(struct perf_event *event) > +{ > + /* > + * Store the current counter value so we can report the correct delta > + * for all listeners. Even when the event was already enabled and has > + * an existing non-zero value. > + */ > + local64_set(&event->hw.prev_count, __xe_pmu_event_read(event)); > +} > + > +static void xe_pmu_event_start(struct perf_event *event, int flags) > +{ > + struct xe_device *xe = > + container_of(event->pmu, typeof(*xe), pmu.base); > + struct xe_pmu *pmu = &xe->pmu; > + > + if (pmu->closed) > + return; > + > + xe_pmu_enable(event); > + event->hw.state = 0; > +} > + > +static void xe_pmu_event_stop(struct perf_event *event, int flags) > +{ > + if (flags & PERF_EF_UPDATE) > + xe_pmu_event_read(event); > + > + event->hw.state = PERF_HES_STOPPED; > +} > + > +static int xe_pmu_event_add(struct perf_event *event, int flags) > +{ > + struct xe_device *xe = > + container_of(event->pmu, typeof(*xe), pmu.base); > + struct xe_pmu *pmu = &xe->pmu; > + > + if (pmu->closed) > + return -ENODEV; > + > + if (flags & PERF_EF_START) > + xe_pmu_event_start(event, flags); > + > + return 0; > +} > + > +static void xe_pmu_event_del(struct perf_event *event, int flags) > +{ > + xe_pmu_event_stop(event, PERF_EF_UPDATE); > +} > + > +static int xe_pmu_event_event_idx(struct perf_event *event) > +{ > + return 0; > +} > + > +struct xe_ext_attribute { > + struct device_attribute attr; > + unsigned long val; > +}; > + > +static ssize_t xe_pmu_event_show(struct device *dev, > + struct device_attribute *attr, char *buf) > +{ > + struct xe_ext_attribute *eattr; > + > + eattr = container_of(attr, struct xe_ext_attribute, attr); > + return sprintf(buf, "config=0x%lx\n", eattr->val); > +} > + > +static ssize_t cpumask_show(struct device *dev, > + struct device_attribute *attr, char *buf) > +{ > + return cpumap_print_to_pagebuf(true, buf, &xe_pmu_cpumask); > +} > + > +static DEVICE_ATTR_RO(cpumask); > + > +static struct attribute *xe_cpumask_attrs[] = { > + &dev_attr_cpumask.attr, > + NULL, > +}; > + > +static const struct attribute_group xe_pmu_cpumask_attr_group = { > + .attrs = xe_cpumask_attrs, > +}; > + > +#define __event(__counter, __name, __unit) \ > +{ \ > + .counter = (__counter), \ > + .name = (__name), \ > + .unit = (__unit), \ > +} > + > +static struct xe_ext_attribute * > +add_xe_attr(struct xe_ext_attribute *attr, const char *name, u64 config) > +{ > + sysfs_attr_init(&attr->attr.attr); > + attr->attr.attr.name = name; > + attr->attr.attr.mode = 0444; > + attr->attr.show = xe_pmu_event_show; > + attr->val = config; > + > + return ++attr; > +} > + > +static struct perf_pmu_events_attr * > +add_pmu_attr(struct perf_pmu_events_attr *attr, const char *name, > + const char *str) > +{ > + sysfs_attr_init(&attr->attr.attr); > + attr->attr.attr.name = name; > + attr->attr.attr.mode = 0444; > + attr->attr.show = perf_event_sysfs_show; > + attr->event_str = str; > + > + return ++attr; > +} > + > +static struct attribute ** > +create_event_attributes(struct xe_pmu *pmu) > +{ > + struct xe_device *xe = container_of(pmu, typeof(*xe), pmu); > + static const struct { > + unsigned int counter; > + const char *name; > + const char *unit; > + } events[] = { > + __event(0, "render-group-busy", "ns"), > + __event(1, "copy-group-busy", "ns"), > + __event(2, "media-group-busy", "ns"), > + __event(3, "any-engine-group-busy", "ns"), > + }; > + > + struct perf_pmu_events_attr *pmu_attr = NULL, *pmu_iter; > + struct xe_ext_attribute *xe_attr = NULL, *xe_iter; > + struct attribute **attr = NULL, **attr_iter; > + unsigned int count = 0; > + unsigned int i, j; > + struct xe_gt *gt; > + > + /* Count how many counters we will be exposing. */ > + for_each_gt(gt, xe, j) { > + for (i = 0; i < ARRAY_SIZE(events); i++) { > + u64 config = ___XE_PMU_OTHER(j, events[i].counter); > + > + if (!config_status(xe, config)) > + count++; > + } > + } > + > + /* Allocate attribute objects and table. */ > + xe_attr = kcalloc(count, sizeof(*xe_attr), GFP_KERNEL); > + if (!xe_attr) > + goto err_alloc; > + > + pmu_attr = kcalloc(count, sizeof(*pmu_attr), GFP_KERNEL); > + if (!pmu_attr) > + goto err_alloc; > + > + /* Max one pointer of each attribute type plus a termination entry. */ > + attr = kcalloc(count * 2 + 1, sizeof(*attr), GFP_KERNEL); > + if (!attr) > + goto err_alloc; > + > + xe_iter = xe_attr; > + pmu_iter = pmu_attr; > + attr_iter = attr; > + > + for_each_gt(gt, xe, j) { > + for (i = 0; i < ARRAY_SIZE(events); i++) { > + u64 config = ___XE_PMU_OTHER(j, events[i].counter); > + char *str; > + > + if (config_status(xe, config)) > + continue; > + > + str = kasprintf(GFP_KERNEL, "%s-gt%u", > + events[i].name, j); > + if (!str) > + goto err; > + > + *attr_iter++ = &xe_iter->attr.attr; > + xe_iter = add_xe_attr(xe_iter, str, config); > + > + if (events[i].unit) { > + str = kasprintf(GFP_KERNEL, "%s-gt%u.unit", > + events[i].name, j); > + if (!str) > + goto err; > + > + *attr_iter++ = &pmu_iter->attr.attr; > + pmu_iter = add_pmu_attr(pmu_iter, str, > + events[i].unit); > + } > + } > + } > + > + pmu->xe_attr = xe_attr; > + pmu->pmu_attr = pmu_attr; > + > + return attr; > + > +err: > + for (attr_iter = attr; *attr_iter; attr_iter++) > + kfree((*attr_iter)->name); > + > +err_alloc: > + kfree(attr); > + kfree(xe_attr); > + kfree(pmu_attr); > + > + return NULL; > +} > + > +static void free_event_attributes(struct xe_pmu *pmu) > +{ > + struct attribute **attr_iter = pmu->events_attr_group.attrs; > + > + for (; *attr_iter; attr_iter++) > + kfree((*attr_iter)->name); > + > + kfree(pmu->events_attr_group.attrs); > + kfree(pmu->xe_attr); > + kfree(pmu->pmu_attr); > + > + pmu->events_attr_group.attrs = NULL; > + pmu->xe_attr = NULL; > + pmu->pmu_attr = NULL; > +} > + > +static int xe_pmu_cpu_online(unsigned int cpu, struct hlist_node *node) > +{ > + struct xe_pmu *pmu = hlist_entry_safe(node, typeof(*pmu), cpuhp.node); > + > + /* Select the first online CPU as a designated reader. */ > + if (cpumask_empty(&xe_pmu_cpumask)) > + cpumask_set_cpu(cpu, &xe_pmu_cpumask); > + > + return 0; > +} > + > +static int xe_pmu_cpu_offline(unsigned int cpu, struct hlist_node *node) > +{ > + struct xe_pmu *pmu = hlist_entry_safe(node, typeof(*pmu), cpuhp.node); > + unsigned int target = xe_pmu_target_cpu; > + > + /* > + * Unregistering an instance generates a CPU offline event which we must > + * ignore to avoid incorrectly modifying the shared xe_pmu_cpumask. > + */ > + if (pmu->closed) > + return 0; > + > + if (cpumask_test_and_clear_cpu(cpu, &xe_pmu_cpumask)) { > + target = cpumask_any_but(topology_sibling_cpumask(cpu), cpu); > + > + /* Migrate events if there is a valid target */ > + if (target < nr_cpu_ids) { > + cpumask_set_cpu(target, &xe_pmu_cpumask); > + xe_pmu_target_cpu = target; > + } > + } > + > + if (target < nr_cpu_ids && target != pmu->cpuhp.cpu) { > + perf_pmu_migrate_context(&pmu->base, cpu, target); > + pmu->cpuhp.cpu = target; > + } > + > + return 0; > +} > + > +static enum cpuhp_state cpuhp_slot = CPUHP_INVALID; > + > +int xe_pmu_init(void) > +{ > + int ret; > + > + ret = cpuhp_setup_state_multi(CPUHP_AP_ONLINE_DYN, > + "perf/x86/intel/xe:online", > + xe_pmu_cpu_online, > + xe_pmu_cpu_offline); > + if (ret < 0) > + pr_notice("Failed to setup cpuhp state for xe PMU! (%d)\n", > + ret); > + else > + cpuhp_slot = ret; > + > + return 0; > +} > + > +void xe_pmu_exit(void) > +{ > + if (cpuhp_slot != CPUHP_INVALID) > + cpuhp_remove_multi_state(cpuhp_slot); > +} > + > +static int xe_pmu_register_cpuhp_state(struct xe_pmu *pmu) > +{ > + if (cpuhp_slot == CPUHP_INVALID) > + return -EINVAL; > + > + return cpuhp_state_add_instance(cpuhp_slot, &pmu->cpuhp.node); > +} > + > +static void xe_pmu_unregister_cpuhp_state(struct xe_pmu *pmu) > +{ > + cpuhp_state_remove_instance(cpuhp_slot, &pmu->cpuhp.node); > +} > + > +void xe_pmu_suspend(struct xe_gt *gt) > +{ > + engine_group_busyness_store(gt); > +} > + > +static void xe_pmu_unregister(struct drm_device *device, void *arg) > +{ > + struct xe_pmu *pmu = arg; > + > + if (!pmu->base.event_init) > + return; > + > + /* > + * "Disconnect" the PMU callbacks - since all are atomic synchronize_rcu > + * ensures all currently executing ones will have exited before we > + * proceed with unregistration. > + */ > + pmu->closed = true; > + synchronize_rcu(); > + > + xe_pmu_unregister_cpuhp_state(pmu); > + > + perf_pmu_unregister(&pmu->base); > + pmu->base.event_init = NULL; > + kfree(pmu->base.attr_groups); > + kfree(pmu->name); > + free_event_attributes(pmu); > +} > + > +void xe_pmu_register(struct xe_pmu *pmu) > +{ > + struct xe_device *xe = container_of(pmu, typeof(*xe), pmu); > + const struct attribute_group *attr_groups[] = { > + &pmu->events_attr_group, > + &xe_pmu_cpumask_attr_group, > + NULL > + }; > + > + int ret = -ENOMEM; > + > + spin_lock_init(&pmu->lock); > + pmu->cpuhp.cpu = -1; > + > + pmu->name = kasprintf(GFP_KERNEL, > + "xe_%s", > + dev_name(xe->drm.dev)); > + if (pmu->name) > + /* tools/perf reserves colons as special. */ > + strreplace((char *)pmu->name, ':', '_'); > + > + if (!pmu->name) > + goto err; > + > + pmu->events_attr_group.name = "events"; > + pmu->events_attr_group.attrs = create_event_attributes(pmu); > + if (!pmu->events_attr_group.attrs) > + goto err_name; > + > + pmu->base.attr_groups = kmemdup(attr_groups, sizeof(attr_groups), > + GFP_KERNEL); > + if (!pmu->base.attr_groups) > + goto err_attr; > + > + pmu->base.module = THIS_MODULE; > + pmu->base.task_ctx_nr = perf_invalid_context; > + pmu->base.event_init = xe_pmu_event_init; > + pmu->base.add = xe_pmu_event_add; > + pmu->base.del = xe_pmu_event_del; > + pmu->base.start = xe_pmu_event_start; > + pmu->base.stop = xe_pmu_event_stop; > + pmu->base.read = xe_pmu_event_read; > + pmu->base.event_idx = xe_pmu_event_event_idx; > + > + ret = perf_pmu_register(&pmu->base, pmu->name, -1); > + if (ret) > + goto err_groups; > + > + ret = xe_pmu_register_cpuhp_state(pmu); > + if (ret) > + goto err_unreg; > + > + ret = drmm_add_action_or_reset(&xe->drm, xe_pmu_unregister, pmu); with Matt Auld change to use devm where ever possible this should be changed to devm_add_action_or_reset. Thanks, Aravind. > + if (ret) > + goto err_cpuhp; > + > + return; > + > +err_cpuhp: > + xe_pmu_unregister_cpuhp_state(pmu); > +err_unreg: > + perf_pmu_unregister(&pmu->base); > +err_groups: > + kfree(pmu->base.attr_groups); > +err_attr: > + pmu->base.event_init = NULL; > + free_event_attributes(pmu); > +err_name: > + kfree(pmu->name); > +err: > + drm_notice(&xe->drm, "Failed to register PMU!\n"); > +} > diff --git a/drivers/gpu/drm/xe/xe_pmu.h b/drivers/gpu/drm/xe/xe_pmu.h > new file mode 100644 > index 000000000000..8afa256f9dac > --- /dev/null > +++ b/drivers/gpu/drm/xe/xe_pmu.h > @@ -0,0 +1,26 @@ > +/* SPDX-License-Identifier: MIT */ > +/* > + * Copyright © 2024 Intel Corporation > + */ > + > +#ifndef _XE_PMU_H_ > +#define _XE_PMU_H_ > + > +#include "xe_pmu_types.h" > + > +struct xe_gt; > + > +#if IS_ENABLED(CONFIG_PERF_EVENTS) > +int xe_pmu_init(void); > +void xe_pmu_exit(void); > +void xe_pmu_register(struct xe_pmu *pmu); > +void xe_pmu_suspend(struct xe_gt *gt); > +#else > +static inline int xe_pmu_init(void) { return 0; } > +static inline void xe_pmu_exit(void) {} > +static inline void xe_pmu_register(struct xe_pmu *pmu) {} > +static inline void xe_pmu_suspend(struct xe_gt *gt) {} > +#endif > + > +#endif > + > diff --git a/drivers/gpu/drm/xe/xe_pmu_types.h b/drivers/gpu/drm/xe/xe_pmu_types.h > new file mode 100644 > index 000000000000..e86e8d7e0356 > --- /dev/null > +++ b/drivers/gpu/drm/xe/xe_pmu_types.h > @@ -0,0 +1,67 @@ > +/* SPDX-License-Identifier: MIT */ > +/* > + * Copyright © 2024 Intel Corporation > + */ > + > +#ifndef _XE_PMU_TYPES_H_ > +#define _XE_PMU_TYPES_H_ > + > +#include <linux/perf_event.h> > +#include <linux/spinlock_types.h> > +#include <uapi/drm/xe_drm.h> > + > +enum { > + __XE_SAMPLE_RENDER_GROUP_BUSY, > + __XE_SAMPLE_COPY_GROUP_BUSY, > + __XE_SAMPLE_MEDIA_GROUP_BUSY, > + __XE_SAMPLE_ANY_ENGINE_GROUP_BUSY, > + __XE_NUM_PMU_SAMPLERS > +}; > + > +#define XE_PMU_MAX_GT 2 > + > +struct xe_pmu { > + /** > + * @cpuhp: Struct used for CPU hotplug handling. > + */ > + struct { > + struct hlist_node node; > + unsigned int cpu; > + } cpuhp; > + /** > + * @base: PMU base. > + */ > + struct pmu base; > + /** > + * @closed: xe is unregistering. > + */ > + bool closed; > + /** > + * @name: Name as registered with perf core. > + */ > + const char *name; > + /** > + * @lock: Lock protecting enable mask and ref count handling. > + */ > + spinlock_t lock; > + /** > + * @sample: Current and previous (raw) counters. > + * > + * These counters are updated when the device is awake. > + */ > + u64 sample[XE_PMU_MAX_GT][__XE_NUM_PMU_SAMPLERS]; > + /** > + * @events_attr_group: Device events attribute group. > + */ > + struct attribute_group events_attr_group; > + /** > + * @xe_attr: Memory block holding device attributes. > + */ > + void *xe_attr; > + /** > + * @pmu_attr: Memory block holding device attributes. > + */ > + void *pmu_attr; > +}; > + > +#endif > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h > index d7b0903c22b2..07ca545354f7 100644 > --- a/include/uapi/drm/xe_drm.h > +++ b/include/uapi/drm/xe_drm.h > @@ -1370,6 +1370,45 @@ struct drm_xe_wait_user_fence { > __u64 reserved[2]; > }; > > +/** > + * DOC: XE PMU event config IDs > + * > + * Check 'man perf_event_open' to use the ID's XE_PMU_XXXX listed in xe_drm.h > + * in 'struct perf_event_attr' as part of perf_event_open syscall to read a > + * particular event. > + * > + * For example to open the XE_PMU_RENDER_GROUP_BUSY(0): > + * > + * .. code-block:: C > + * > + * struct perf_event_attr attr; > + * long long count; > + * int cpu = 0; > + * int fd; > + * > + * memset(&attr, 0, sizeof(struct perf_event_attr)); > + * attr.type = type; // eg: /sys/bus/event_source/devices/xe_0000_56_00.0/type > + * attr.read_format = PERF_FORMAT_TOTAL_TIME_ENABLED; > + * attr.use_clockid = 1; > + * attr.clockid = CLOCK_MONOTONIC; > + * attr.config = XE_PMU_RENDER_GROUP_BUSY(0); > + * > + * fd = syscall(__NR_perf_event_open, &attr, -1, cpu, -1, 0); > + */ > + > +/* > + * Top bits of every counter are GT id. > + */ > +#define __XE_PMU_GT_SHIFT (56) > + > +#define ___XE_PMU_OTHER(gt, x) \ > + (((__u64)(x)) | ((__u64)(gt) << __XE_PMU_GT_SHIFT)) > + > +#define XE_PMU_RENDER_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 0) > +#define XE_PMU_COPY_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 1) > +#define XE_PMU_MEDIA_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 2) > +#define XE_PMU_ANY_ENGINE_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 3) > + > #if defined(__cplusplus) > } > #endif ^ permalink raw reply [flat|nested] 14+ messages in thread
* ✓ CI.Build: success for drm/xe/pmu: Enable PMU interface (rev8) 2024-06-12 5:40 [PATCH v8 0/2] drm/xe/pmu: Enable PMU interface Riana Tauro ` (4 preceding siblings ...) 2024-06-12 5:40 ` [PATCH v8 2/2] drm/xe/pmu: Enable PMU interface Riana Tauro @ 2024-06-12 5:46 ` Patchwork 2024-06-12 5:48 ` ✗ CI.Hooks: failure " Patchwork ` (3 subsequent siblings) 9 siblings, 0 replies; 14+ messages in thread From: Patchwork @ 2024-06-12 5:46 UTC (permalink / raw) To: Iddamsetty, Aravind; +Cc: intel-xe == Series Details == Series: drm/xe/pmu: Enable PMU interface (rev8) URL : https://patchwork.freedesktop.org/series/119504/ State : success == Summary == lib/modules/6.10.0-rc3-xe/kernel/sound/core/seq/ lib/modules/6.10.0-rc3-xe/kernel/sound/core/seq/snd-seq.ko lib/modules/6.10.0-rc3-xe/kernel/sound/core/snd-seq-device.ko lib/modules/6.10.0-rc3-xe/kernel/sound/core/snd-hwdep.ko lib/modules/6.10.0-rc3-xe/kernel/sound/core/snd.ko lib/modules/6.10.0-rc3-xe/kernel/sound/core/snd-pcm.ko lib/modules/6.10.0-rc3-xe/kernel/sound/core/snd-compress.ko lib/modules/6.10.0-rc3-xe/kernel/sound/core/snd-timer.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soundcore.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/ lib/modules/6.10.0-rc3-xe/kernel/sound/soc/intel/ lib/modules/6.10.0-rc3-xe/kernel/sound/soc/intel/atom/ lib/modules/6.10.0-rc3-xe/kernel/sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/intel/atom/sst/ lib/modules/6.10.0-rc3-xe/kernel/sound/soc/intel/atom/sst/snd-intel-sst-acpi.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/intel/atom/sst/snd-intel-sst-core.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/intel/common/ lib/modules/6.10.0-rc3-xe/kernel/sound/soc/intel/common/snd-soc-acpi-intel-match.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/amd/ lib/modules/6.10.0-rc3-xe/kernel/sound/soc/amd/snd-acp-config.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/ lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/intel/ lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-tgl.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda-mlink.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-cnl.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-lnl.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda-common.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda-generic.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-mtl.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/amd/ lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/amd/snd-sof-amd-renoir.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/amd/snd-sof-amd-acp.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/snd-sof-utils.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/snd-sof-pci.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/snd-sof.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/snd-sof-probes.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/xtensa/ lib/modules/6.10.0-rc3-xe/kernel/sound/soc/sof/xtensa/snd-sof-xtensa-dsp.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/snd-soc-core.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/snd-soc-acpi.ko lib/modules/6.10.0-rc3-xe/kernel/sound/soc/codecs/ lib/modules/6.10.0-rc3-xe/kernel/sound/soc/codecs/snd-soc-hdac-hda.ko lib/modules/6.10.0-rc3-xe/kernel/sound/hda/ lib/modules/6.10.0-rc3-xe/kernel/sound/hda/snd-intel-sdw-acpi.ko lib/modules/6.10.0-rc3-xe/kernel/sound/hda/ext/ lib/modules/6.10.0-rc3-xe/kernel/sound/hda/ext/snd-hda-ext-core.ko lib/modules/6.10.0-rc3-xe/kernel/sound/hda/snd-intel-dspcfg.ko lib/modules/6.10.0-rc3-xe/kernel/sound/hda/snd-hda-core.ko lib/modules/6.10.0-rc3-xe/kernel/arch/ lib/modules/6.10.0-rc3-xe/kernel/arch/x86/ lib/modules/6.10.0-rc3-xe/kernel/arch/x86/kernel/ lib/modules/6.10.0-rc3-xe/kernel/arch/x86/kernel/msr.ko lib/modules/6.10.0-rc3-xe/kernel/arch/x86/kernel/cpuid.ko lib/modules/6.10.0-rc3-xe/kernel/arch/x86/crypto/ lib/modules/6.10.0-rc3-xe/kernel/arch/x86/crypto/sha512-ssse3.ko lib/modules/6.10.0-rc3-xe/kernel/arch/x86/crypto/crct10dif-pclmul.ko lib/modules/6.10.0-rc3-xe/kernel/arch/x86/crypto/ghash-clmulni-intel.ko lib/modules/6.10.0-rc3-xe/kernel/arch/x86/crypto/sha1-ssse3.ko lib/modules/6.10.0-rc3-xe/kernel/arch/x86/crypto/crc32-pclmul.ko lib/modules/6.10.0-rc3-xe/kernel/arch/x86/crypto/sha256-ssse3.ko lib/modules/6.10.0-rc3-xe/kernel/arch/x86/crypto/aesni-intel.ko lib/modules/6.10.0-rc3-xe/kernel/arch/x86/crypto/polyval-clmulni.ko lib/modules/6.10.0-rc3-xe/kernel/arch/x86/events/ lib/modules/6.10.0-rc3-xe/kernel/arch/x86/events/intel/ lib/modules/6.10.0-rc3-xe/kernel/arch/x86/events/intel/intel-cstate.ko lib/modules/6.10.0-rc3-xe/kernel/arch/x86/events/rapl.ko lib/modules/6.10.0-rc3-xe/kernel/arch/x86/kvm/ lib/modules/6.10.0-rc3-xe/kernel/arch/x86/kvm/kvm.ko lib/modules/6.10.0-rc3-xe/kernel/arch/x86/kvm/kvm-intel.ko lib/modules/6.10.0-rc3-xe/kernel/crypto/ lib/modules/6.10.0-rc3-xe/kernel/crypto/crypto_simd.ko lib/modules/6.10.0-rc3-xe/kernel/crypto/cmac.ko lib/modules/6.10.0-rc3-xe/kernel/crypto/ccm.ko lib/modules/6.10.0-rc3-xe/kernel/crypto/cryptd.ko lib/modules/6.10.0-rc3-xe/kernel/crypto/polyval-generic.ko lib/modules/6.10.0-rc3-xe/kernel/crypto/async_tx/ lib/modules/6.10.0-rc3-xe/kernel/crypto/async_tx/async_xor.ko lib/modules/6.10.0-rc3-xe/kernel/crypto/async_tx/async_tx.ko lib/modules/6.10.0-rc3-xe/kernel/crypto/async_tx/async_memcpy.ko lib/modules/6.10.0-rc3-xe/kernel/crypto/async_tx/async_pq.ko lib/modules/6.10.0-rc3-xe/kernel/crypto/async_tx/async_raid6_recov.ko lib/modules/6.10.0-rc3-xe/build lib/modules/6.10.0-rc3-xe/modules.alias.bin lib/modules/6.10.0-rc3-xe/modules.builtin lib/modules/6.10.0-rc3-xe/modules.softdep lib/modules/6.10.0-rc3-xe/modules.alias lib/modules/6.10.0-rc3-xe/modules.order lib/modules/6.10.0-rc3-xe/modules.symbols lib/modules/6.10.0-rc3-xe/modules.dep.bin + mv kernel-nodebug.tar.gz .. + cd .. + rm -rf archive ++ date +%s + echo -e '\e[0Ksection_end:1718171176:package_x86_64_nodebug\r\e[0K' + sync ^[[0Ksection_end:1718171176:package_x86_64_nodebug ^[[0K + cleanup ++ stat -c %u:%g /kernel + chown -R 1003:1003 /kernel ^ permalink raw reply [flat|nested] 14+ messages in thread
* ✗ CI.Hooks: failure for drm/xe/pmu: Enable PMU interface (rev8) 2024-06-12 5:40 [PATCH v8 0/2] drm/xe/pmu: Enable PMU interface Riana Tauro ` (5 preceding siblings ...) 2024-06-12 5:46 ` ✓ CI.Build: success for drm/xe/pmu: Enable PMU interface (rev8) Patchwork @ 2024-06-12 5:48 ` Patchwork 2024-06-12 5:49 ` ✓ CI.checksparse: success " Patchwork ` (2 subsequent siblings) 9 siblings, 0 replies; 14+ messages in thread From: Patchwork @ 2024-06-12 5:48 UTC (permalink / raw) To: Iddamsetty, Aravind; +Cc: intel-xe == Series Details == Series: drm/xe/pmu: Enable PMU interface (rev8) URL : https://patchwork.freedesktop.org/series/119504/ State : failure == 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 UPD include/generated/compile.h UPD include/config/kernel.release mkdir -p /workspace/kernel/build64-default/tools/objtool && make O=/workspace/kernel/build64-default subdir=tools/objtool --no-print-directory -C objtool UPD include/generated/utsrelease.h HOSTCC /workspace/kernel/build64-default/tools/objtool/fixdep.o CALL ../scripts/checksyscalls.sh HOSTLD /workspace/kernel/build64-default/tools/objtool/fixdep-in.o LINK /workspace/kernel/build64-default/tools/objtool/fixdep 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/libstring.o CC /workspace/kernel/build64-default/tools/objtool/libctype.o CC /workspace/kernel/build64-default/tools/objtool/str_error_r.o CC /workspace/kernel/build64-default/tools/objtool/librbtree.o CC /workspace/kernel/build64-default/tools/objtool/arch/x86/special.o CC /workspace/kernel/build64-default/tools/objtool/arch/x86/decode.o CC /workspace/kernel/build64-default/tools/objtool/arch/x86/orc.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/preprocess.o HOSTCC scripts/kconfig/symbol.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/10-xe.fragment Using .config as base Merging /workspace/ci/kernel/10-xe.fragment Value of CONFIG_DRM_XE is redefined by fragment /workspace/ci/kernel/10-xe.fragment: Previous value: # CONFIG_DRM_XE is not set New value: CONFIG_DRM_XE=m Value of CONFIG_SND_DEBUG is redefined by fragment /workspace/ci/kernel/10-xe.fragment: Previous value: # CONFIG_SND_DEBUG is not set New value: CONFIG_SND_DEBUG=y Value of CONFIG_SND_HDA_INTEL is redefined by fragment /workspace/ci/kernel/10-xe.fragment: Previous value: CONFIG_SND_HDA_INTEL=y New value: CONFIG_SND_HDA_INTEL=m Value of CONFIG_SND_HDA_CODEC_HDMI is redefined by fragment /workspace/ci/kernel/10-xe.fragment: Previous value: # CONFIG_SND_HDA_CODEC_HDMI is not set New value: CONFIG_SND_HDA_CODEC_HDMI=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] # # 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_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_PCM not in final .config Requested value: CONFIG_SND_PCM=y Actual value: CONFIG_SND_PCM=m Value requested for CONFIG_SND_HWDEP not in final .config Requested value: CONFIG_SND_HWDEP=y Actual value: CONFIG_SND_HWDEP=m Value requested for CONFIG_SND_DYNAMIC_MINORS not in final .config Requested value: # CONFIG_SND_DYNAMIC_MINORS is not set Actual value: CONFIG_SND_DYNAMIC_MINORS=y 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_SND_HDA not in final .config Requested value: CONFIG_SND_HDA=y Actual value: CONFIG_SND_HDA=m Value requested for CONFIG_SND_HDA_CORE not in final .config Requested value: CONFIG_SND_HDA_CORE=y Actual value: CONFIG_SND_HDA_CORE=m Value requested for CONFIG_SND_INTEL_DSP_CONFIG not in final .config Requested value: CONFIG_SND_INTEL_DSP_CONFIG=y Actual value: CONFIG_SND_INTEL_DSP_CONFIG=m Value requested for CONFIG_SND_INTEL_SOUNDWIRE_ACPI not in final .config Requested value: CONFIG_SND_INTEL_SOUNDWIRE_ACPI=y Actual value: CONFIG_SND_INTEL_SOUNDWIRE_ACPI=m 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_RETVAL not in final .config Requested value: CONFIG_HAVE_FUNCTION_GRAPH_RETVAL=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] # # 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] 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] 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] GEN Makefile WRAP arch/x86/include/generated/uapi/asm/errno.h WRAP arch/x86/include/generated/uapi/asm/bpf_perf_event.h WRAP arch/x86/include/generated/uapi/asm/fcntl.h WRAP arch/x86/include/generated/uapi/asm/ioctl.h UPD include/generated/uapi/linux/version.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 WRAP arch/x86/include/generated/uapi/asm/poll.h WRAP arch/x86/include/generated/uapi/asm/resource.h WRAP arch/x86/include/generated/uapi/asm/sockios.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 SYSHDR arch/x86/include/generated/uapi/asm/unistd_64.h SYSHDR arch/x86/include/generated/uapi/asm/unistd_32.h SYSHDR arch/x86/include/generated/uapi/asm/unistd_x32.h SYSTBL arch/x86/include/generated/asm/syscalls_32.h WRAP arch/x86/include/generated/asm/early_ioremap.h UPD include/generated/compile.h WRAP arch/x86/include/generated/asm/mcs_spinlock.h WRAP arch/x86/include/generated/asm/kmap_size.h WRAP arch/x86/include/generated/asm/irq_regs.h HOSTCC arch/x86/tools/relocs_32.o WRAP arch/x86/include/generated/asm/mmiowb.h WRAP arch/x86/include/generated/asm/local64.h WRAP arch/x86/include/generated/asm/module.lds.h HOSTCC arch/x86/tools/relocs_64.o WRAP arch/x86/include/generated/asm/rwonce.h HOSTCC arch/x86/tools/relocs_common.o WRAP arch/x86/include/generated/asm/unaligned.h HOSTCC scripts/kallsyms HOSTCC scripts/sorttable HOSTCC scripts/asn1_compiler HOSTCC scripts/selinux/mdp/mdp HOSTCC scripts/selinux/genheaders/genheaders 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 HOSTCC usr/gen_init_cpio CC ipc/util.o CC ipc/msgutil.o CC ipc/msg.o CC ipc/sem.o CC init/main.o CC ipc/shm.o CC certs/system_keyring.o CC ipc/syscall.o CC ipc/ipc_sysctl.o AS arch/x86/lib/atomic64_cx8_32.o CC init/do_mounts.o CC io_uring/io_uring.o CC ipc/mqueue.o CC block/bdev.o CC init/do_mounts_initrd.o AS arch/x86/lib/checksum_32.o CC security/commoncap.o CC io_uring/opdef.o CC ipc/namespace.o CC arch/x86/power/cpu.o CC arch/x86/pci/i386.o CC mm/filemap.o UPD init/utsversion-tmp.h CC arch/x86/power/hibernate_32.o GEN security/selinux/flask.h security/selinux/av_permissions.h CC block/partitions/core.o CC arch/x86/realmode/init.o AR arch/x86/crypto/built-in.a CC security/keys/gc.o AR arch/x86/net/built-in.a CC arch/x86/video/video-common.o AR virt/lib/built-in.a CC fs/nfs_common/nfsacl.o CC security/integrity/iint.o CC net/core/sock.o CC security/selinux/avc.o CC arch/x86/events/amd/core.o AR arch/x86/platform/atom/built-in.a AR drivers/cache/built-in.a CC fs/notify/dnotify/dnotify.o CC lib/math/div64.o CC net/core/request_sock.o AR arch/x86/entry/vsyscall/built-in.a AR arch/x86/virt/svm/built-in.a CC sound/core/seq/seq.o CC block/partitions/msdos.o CC arch/x86/kernel/fpu/init.o CC arch/x86/mm/pat/set_memory.o AR virt/built-in.a CC block/partitions/efi.o CC arch/x86/lib/cmdline.o AR drivers/irqchip/built-in.a AR arch/x86/platform/ce4100/built-in.a CC fs/nfs_common/grace.o AS arch/x86/lib/cmpxchg8b_emu.o AR arch/x86/virt/vmx/built-in.a CC arch/x86/entry/vdso/vma.o CC arch/x86/platform/efi/memmap.o AR drivers/bus/mhi/built-in.a AR arch/x86/virt/built-in.a CC security/selinux/hooks.o AR drivers/bus/built-in.a CC kernel/sched/core.o AS arch/x86/realmode/rm/header.o CC crypto/asymmetric_keys/asymmetric_type.o AR drivers/pwm/built-in.a AS arch/x86/realmode/rm/trampoline_32.o CC lib/math/gcd.o CC drivers/pci/msi/pcidev_msi.o CC arch/x86/lib/cpu.o AS arch/x86/realmode/rm/stack.o AS arch/x86/realmode/rm/reboot.o CC lib/math/lcm.o AS arch/x86/realmode/rm/wakeup_asm.o CC lib/math/int_log.o CC arch/x86/realmode/rm/wakemain.o GEN usr/initramfs_data.cpio COPY usr/initramfs_inc_data AS usr/initramfs_data.o HOSTCC certs/extract-cert CC arch/x86/kernel/fpu/bugs.o AR usr/built-in.a CC lib/math/int_pow.o CC lib/math/int_sqrt.o CC arch/x86/realmode/rm/video-mode.o CC io_uring/kbuf.o CC arch/x86/kernel/fpu/core.o CC lib/math/reciprocal_div.o CC net/core/skbuff.o AS arch/x86/realmode/rm/copy.o AS arch/x86/realmode/rm/bioscall.o CC ipc/mq_sysctl.o CC sound/core/seq/seq_lock.o CC arch/x86/realmode/rm/regs.o CC arch/x86/lib/delay.o CC lib/math/rational.o CC security/integrity/integrity_audit.o AR arch/x86/video/built-in.a CC sound/core/seq/seq_clientmgr.o CC arch/x86/realmode/rm/video-vga.o CERT certs/x509_certificate_list CERT certs/signing_key.x509 AS certs/system_certificates.o CC init/initramfs.o AR certs/built-in.a CC block/fops.o CC arch/x86/pci/init.o CC sound/core/seq/seq_memory.o CC arch/x86/kernel/fpu/regset.o CC net/core/datagram.o CC sound/core/seq/seq_queue.o CC arch/x86/realmode/rm/video-vesa.o AR fs/nfs_common/built-in.a CC security/keys/key.o CC arch/x86/entry/vdso/extable.o CC net/core/stream.o CC fs/iomap/trace.o CC drivers/pci/msi/api.o AR fs/notify/dnotify/built-in.a CC crypto/asymmetric_keys/restrict.o CC arch/x86/realmode/rm/video-bios.o AS arch/x86/power/hibernate_asm_32.o CC fs/notify/inotify/inotify_fsnotify.o AS arch/x86/lib/getuser.o CC arch/x86/mm/init.o CC arch/x86/platform/efi/quirks.o CC fs/notify/inotify/inotify_user.o CC arch/x86/power/hibernate.o GEN arch/x86/lib/inat-tables.c CC arch/x86/kernel/fpu/signal.o PASYMS arch/x86/realmode/rm/pasyms.h LDS arch/x86/entry/vdso/vdso32/vdso32.lds LDS arch/x86/realmode/rm/realmode.lds CC arch/x86/mm/pat/memtype.o AR arch/x86/platform/geode/built-in.a LD arch/x86/realmode/rm/realmode.elf CC security/selinux/selinuxfs.o AR lib/math/built-in.a AR block/partitions/built-in.a RELOCS arch/x86/realmode/rm/realmode.relocs AR fs/notify/fanotify/built-in.a OBJCOPY arch/x86/realmode/rm/realmode.bin CC fs/notify/fsnotify.o CC block/bio.o AS arch/x86/realmode/rmpiggy.o CC lib/crypto/mpi/generic_mpih-lshift.o CC arch/x86/lib/insn-eval.o AR arch/x86/realmode/built-in.a CC lib/crypto/memneq.o CC arch/x86/lib/insn.o CC io_uring/rsrc.o CC lib/crypto/mpi/generic_mpih-mul1.o CC arch/x86/events/amd/lbr.o CC fs/iomap/iter.o CC fs/iomap/buffered-io.o CC init/calibrate.o CC crypto/asymmetric_keys/signature.o AR security/integrity/built-in.a CC kernel/sched/fair.o CC arch/x86/pci/pcbios.o CC sound/core/seq/seq_fifo.o CC mm/mempool.o CC fs/iomap/direct-io.o CC arch/x86/events/amd/ibs.o CC io_uring/notif.o CC arch/x86/kernel/cpu/mce/core.o CC drivers/pci/msi/msi.o CC arch/x86/events/amd/uncore.o CC lib/crypto/utils.o CC arch/x86/kernel/fpu/xstate.o CC drivers/pci/msi/irqdomain.o AS arch/x86/entry/vdso/vdso32/note.o CC sound/core/seq/seq_prioq.o AR arch/x86/power/built-in.a AS arch/x86/entry/vdso/vdso32/system_call.o AR ipc/built-in.a CC lib/crypto/chacha.o AR sound/i2c/other/built-in.a AS arch/x86/entry/vdso/vdso32/sigreturn.o AR sound/drivers/opl3/built-in.a AR sound/i2c/built-in.a CC arch/x86/entry/vdso/vdso32/vclock_gettime.o CC security/keys/keyring.o AR sound/drivers/opl4/built-in.a CC arch/x86/entry/vdso/vdso32/vgetcpu.o CC security/selinux/netlink.o CC init/init_task.o AR sound/drivers/mpu401/built-in.a CC lib/crypto/mpi/generic_mpih-mul2.o AR sound/drivers/vx/built-in.a AR sound/drivers/pcsp/built-in.a AR sound/drivers/built-in.a CC lib/crypto/mpi/generic_mpih-mul3.o CC crypto/asymmetric_keys/public_key.o CC lib/crypto/mpi/generic_mpih-rshift.o CC lib/crypto/aes.o CC arch/x86/kernel/cpu/mtrr/mtrr.o CC security/keys/keyctl.o CC arch/x86/kernel/cpu/mtrr/if.o CC arch/x86/platform/efi/efi.o CC arch/x86/mm/pat/memtype_interval.o CC arch/x86/platform/efi/efi_32.o HOSTCC arch/x86/entry/vdso/vdso2c CC arch/x86/lib/kaslr.o AR fs/notify/inotify/built-in.a CC fs/notify/notification.o AS arch/x86/entry/entry.o CC lib/crypto/mpi/generic_mpih-sub1.o CC sound/core/seq/seq_timer.o CC fs/notify/group.o CC security/selinux/nlmsgtab.o AR arch/x86/platform/iris/built-in.a CC io_uring/tctx.o CC arch/x86/mm/init_32.o CC arch/x86/pci/mmconfig_32.o CC lib/zlib_inflate/inffast.o CC arch/x86/lib/memcpy_32.o CC io_uring/filetable.o AS arch/x86/lib/memmove_32.o CC arch/x86/lib/misc.o CC sound/core/seq/seq_system.o CC arch/x86/lib/pc-conf-reg.o CC arch/x86/entry/vdso/vdso32-setup.o CC lib/zlib_inflate/inflate.o CC security/selinux/netif.o CC lib/zlib_inflate/infutil.o CC fs/iomap/fiemap.o CC lib/crypto/mpi/generic_mpih-add1.o CC net/ethernet/eth.o CC lib/zlib_inflate/inftrees.o CC arch/x86/pci/direct.o ASN.1 crypto/asymmetric_keys/x509.asn1.[ch] CC arch/x86/pci/mmconfig-shared.o ASN.1 crypto/asymmetric_keys/x509_akid.asn1.[ch] CC crypto/asymmetric_keys/x509_loader.o CC init/version.o AS arch/x86/lib/putuser.o AR arch/x86/mm/pat/built-in.a AS arch/x86/lib/retpoline.o CC arch/x86/lib/string_32.o CC net/core/scm.o CC arch/x86/lib/strstr_32.o AR drivers/pci/msi/built-in.a CC fs/notify/mark.o CC drivers/pci/pcie/portdrv.o CC drivers/pci/pcie/rcec.o CC drivers/pci/pcie/aspm.o CC drivers/pci/pcie/pme.o CC arch/x86/lib/usercopy.o CC lib/crypto/arc4.o CC lib/crypto/gf128mul.o CC lib/crypto/mpi/ec.o VDSO arch/x86/entry/vdso/vdso32.so.dbg CC arch/x86/kernel/cpu/mtrr/generic.o CC fs/notify/fdinfo.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 sound/core/sound.o AR net/802/built-in.a CC crypto/asymmetric_keys/x509_public_key.o AR init/built-in.a ASN.1 crypto/asymmetric_keys/pkcs7.asn1.[ch] CC fs/quota/dquot.o CC arch/x86/kernel/cpu/mtrr/cleanup.o CC drivers/pci/hotplug/pci_hotplug_core.o AR arch/x86/events/amd/built-in.a CC arch/x86/events/intel/core.o CC drivers/pci/hotplug/acpi_pcihp.o CC arch/x86/pci/fixup.o AR arch/x86/kernel/fpu/built-in.a AR drivers/pci/controller/dwc/built-in.a CC arch/x86/mm/fault.o AR drivers/pci/controller/mobiveil/built-in.a AR drivers/pci/controller/built-in.a CC block/elevator.o AS arch/x86/platform/efi/efi_stub_32.o CC sound/core/seq/seq_ports.o CC arch/x86/platform/efi/runtime-map.o CC arch/x86/lib/usercopy_32.o CC block/blk-core.o CC lib/zlib_inflate/inflate_syms.o AR arch/x86/entry/vdso/built-in.a AS arch/x86/entry/entry_32.o CC arch/x86/kernel/acpi/boot.o CC security/keys/permission.o CC arch/x86/kernel/acpi/sleep.o CC fs/quota/quota_v2.o AS arch/x86/kernel/acpi/wakeup_32.o CC arch/x86/entry/syscall_32.o CC arch/x86/pci/acpi.o CC arch/x86/kernel/acpi/cstate.o CC block/blk-sysfs.o CC mm/oom_kill.o CC arch/x86/entry/common.o CC net/core/gen_stats.o CC io_uring/rw.o CC fs/quota/quota_tree.o CC arch/x86/lib/msr-smp.o CC arch/x86/platform/intel/iosf_mbi.o CC fs/iomap/seek.o AR arch/x86/platform/intel-mid/built-in.a CC fs/iomap/swapfile.o CC lib/crypto/blake2s.o CC crypto/asymmetric_keys/pkcs7_trust.o CC arch/x86/kernel/cpu/mce/severity.o AR lib/zlib_inflate/built-in.a CC arch/x86/pci/legacy.o AS arch/x86/entry/thunk.o CC arch/x86/lib/cache-smp.o AR arch/x86/platform/intel-quark/built-in.a AR arch/x86/platform/olpc/built-in.a AR arch/x86/platform/scx200/built-in.a CC arch/x86/pci/irq.o AR arch/x86/platform/ts5500/built-in.a AR arch/x86/platform/uv/built-in.a CC arch/x86/kernel/cpu/mtrr/amd.o CC security/keys/process_keys.o CC arch/x86/lib/msr.o CC arch/x86/pci/common.o AR fs/notify/built-in.a CC arch/x86/kernel/cpu/mtrr/cyrix.o CC net/core/gen_estimator.o AS arch/x86/lib/msr-reg.o CC lib/zlib_deflate/deflate.o AR drivers/pci/hotplug/built-in.a CC lib/lzo/lzo1x_compress.o AR drivers/pci/switch/built-in.a CC security/selinux/netnode.o AR arch/x86/platform/efi/built-in.a CC sound/core/seq/seq_info.o CC lib/zlib_deflate/deftree.o CC sound/core/seq/seq_dummy.o CC arch/x86/kernel/cpu/mtrr/centaur.o CC lib/zlib_deflate/deflate_syms.o CC crypto/asymmetric_keys/pkcs7_verify.o CC lib/crypto/mpi/mpicoder.o CC lib/lzo/lzo1x_decompress_safe.o CC net/core/net_namespace.o CC fs/quota/quota.o CC security/keys/request_key.o CC arch/x86/kernel/cpu/mtrr/legacy.o CC crypto/api.o AR net/ethernet/built-in.a CC crypto/asymmetric_keys/x509.asn1.o CC mm/fadvise.o CC crypto/cipher.o AR drivers/pci/pcie/built-in.a CC mm/maccess.o CC drivers/pci/access.o CC arch/x86/pci/early.o CC sound/core/init.o CC arch/x86/pci/bus_numa.o AR arch/x86/platform/intel/built-in.a AR arch/x86/platform/built-in.a CC drivers/pci/bus.o CC arch/x86/kernel/cpu/mce/genpool.o AR fs/iomap/built-in.a CC crypto/asymmetric_keys/x509_akid.asn1.o CC block/blk-flush.o CC fs/quota/kqid.o CC sound/core/memory.o CC block/blk-settings.o CC arch/x86/mm/ioremap.o CC arch/x86/mm/extable.o CC fs/proc/task_mmu.o AR arch/x86/kernel/acpi/built-in.a CC arch/x86/mm/mmap.o CC block/blk-ioc.o CC crypto/asymmetric_keys/x509_cert_parser.o CC fs/proc/inode.o AR lib/lzo/built-in.a CC net/core/secure_seq.o CC lib/lz4/lz4_decompress.o CC arch/x86/kernel/cpu/mce/intel.o CC arch/x86/kernel/apic/apic.o AR arch/x86/entry/built-in.a AR sound/core/seq/built-in.a CC fs/proc/root.o AR arch/x86/kernel/cpu/mtrr/built-in.a CC sound/core/control.o CC fs/kernfs/mount.o CC security/keys/request_key_auth.o CC fs/kernfs/inode.o CC arch/x86/lib/msr-reg-export.o AR lib/zlib_deflate/built-in.a CC net/core/flow_dissector.o CC crypto/compress.o CC security/keys/user_defined.o CC lib/crypto/mpi/mpi-add.o CC crypto/algapi.o CC io_uring/net.o CC io_uring/poll.o CC fs/quota/netlink.o CC block/blk-map.o CC mm/page-writeback.o AS arch/x86/lib/hweight.o CC block/blk-merge.o CC sound/core/misc.o CC arch/x86/lib/iomem.o CC lib/crypto/mpi/mpi-bit.o CC arch/x86/mm/pgtable.o CC arch/x86/pci/amd_bus.o CC lib/crypto/mpi/mpi-cmp.o CC lib/crypto/mpi/mpi-sub-ui.o CC net/sched/sch_generic.o CC crypto/asymmetric_keys/pkcs7.asn1.o CC security/selinux/netport.o CC net/sched/sch_mq.o CC crypto/asymmetric_keys/pkcs7_parser.o CC arch/x86/kernel/cpu/mce/amd.o CC arch/x86/lib/atomic64_32.o CC drivers/pci/probe.o CC fs/kernfs/dir.o CC arch/x86/kernel/cpu/mce/threshold.o CC security/lsm_syscalls.o CC security/keys/proc.o CC arch/x86/events/intel/bts.o CC fs/proc/base.o CC security/keys/sysctl.o CC security/selinux/status.o CC security/min_addr.o CC crypto/scatterwalk.o CC net/sched/sch_frag.o CC arch/x86/lib/inat.o AR arch/x86/lib/built-in.a CC mm/folio-compat.o CC sound/core/device.o CC fs/kernfs/file.o CC mm/readahead.o CC net/core/sysctl_net_core.o CC security/keys/keyctl_pkey.o CC fs/kernfs/symlink.o AR arch/x86/lib/lib.a CC fs/sysfs/file.o CC lib/zstd/zstd_decompress_module.o CC fs/sysfs/dir.o CC fs/sysfs/symlink.o CC sound/core/info.o AR crypto/asymmetric_keys/built-in.a CC fs/sysfs/mount.o AR lib/lz4/built-in.a CC lib/crypto/mpi/mpi-div.o CC fs/sysfs/group.o CC net/sched/sch_api.o AR fs/quota/built-in.a CC arch/x86/mm/physaddr.o AR arch/x86/pci/built-in.a CC fs/devpts/inode.o CC net/core/dev.o CC kernel/sched/build_policy.o CC lib/crypto/blake2s-generic.o CC crypto/proc.o CC mm/swap.o CC net/sched/sch_blackhole.o CC lib/zstd/decompress/huf_decompress.o CC security/security.o CC fs/netfs/buffered_read.o CC security/lsm_audit.o CC block/blk-timeout.o CC io_uring/uring_cmd.o CC fs/netfs/buffered_write.o CC io_uring/openclose.o CC lib/xz/xz_dec_syms.o AR security/keys/built-in.a CC lib/dim/dim.o CC fs/proc/generic.o CC lib/dim/net_dim.o CC lib/dim/rdma_dim.o CC arch/x86/events/intel/ds.o CC fs/netfs/direct_read.o CC fs/netfs/direct_write.o CC fs/netfs/io.o CC lib/xz/xz_dec_stream.o CC lib/crypto/mpi/mpi-inv.o CC lib/crypto/sha1.o CC arch/x86/mm/tlb.o CC arch/x86/kernel/apic/apic_common.o CC arch/x86/mm/cpu_entry_area.o CC io_uring/sqpoll.o CC security/selinux/ss/ebitmap.o CC arch/x86/mm/maccess.o AR fs/sysfs/built-in.a CC fs/netfs/iterator.o CC sound/core/isadma.o AR fs/kernfs/built-in.a CC lib/crypto/mpi/mpi-mod.o CC crypto/aead.o CC fs/ext4/balloc.o CC crypto/geniv.o CC crypto/lskcipher.o CC fs/ext4/bitmap.o AR fs/devpts/built-in.a AR lib/dim/built-in.a CC lib/crypto/mpi/mpi-mul.o CC io_uring/xattr.o CC fs/jbd2/transaction.o CC security/selinux/ss/hashtab.o CC fs/ramfs/inode.o CC drivers/pci/host-bridge.o CC drivers/pci/remove.o CC block/blk-lib.o CC lib/zstd/decompress/zstd_ddict.o CC arch/x86/mm/pgprot.o AR arch/x86/kernel/cpu/mce/built-in.a CC fs/ramfs/file-mmu.o CC arch/x86/kernel/cpu/microcode/core.o CC io_uring/nop.o CC arch/x86/kernel/apic/apic_noop.o CC arch/x86/kernel/cpu/microcode/intel.o CC lib/xz/xz_dec_lzma2.o CC lib/xz/xz_dec_bcj.o CC mm/truncate.o CC sound/core/vmaster.o CC arch/x86/kernel/cpu/cacheinfo.o CC fs/proc/array.o CC arch/x86/mm/pgtable_32.o CC arch/x86/kernel/apic/ipi.o CC lib/zstd/decompress/zstd_decompress.o CC lib/crypto/mpi/mpih-cmp.o CC fs/proc/fd.o CC io_uring/fs.o CC drivers/video/console/dummycon.o AR drivers/idle/built-in.a CC block/blk-mq.o AR drivers/char/ipmi/built-in.a AR sound/isa/ad1816a/built-in.a CC kernel/locking/mutex.o CC kernel/locking/semaphore.o CC drivers/acpi/acpica/dsargs.o AR sound/isa/ad1848/built-in.a AR sound/isa/cs423x/built-in.a CC security/device_cgroup.o AR sound/isa/es1688/built-in.a CC net/core/dev_addr_lists.o CC io_uring/splice.o AR sound/isa/galaxy/built-in.a CC drivers/pci/pci.o AR sound/isa/gus/built-in.a AR sound/isa/msnd/built-in.a CC drivers/acpi/acpica/dscontrol.o AR sound/isa/opti9xx/built-in.a CC fs/ext4/block_validity.o CC lib/crypto/sha256.o CC drivers/pci/pci-driver.o CC net/core/dst.o AR sound/isa/sb/built-in.a CC net/core/netevent.o CC fs/jbd2/commit.o AR sound/isa/wavefront/built-in.a AR fs/ramfs/built-in.a AR sound/pci/ac97/built-in.a AR sound/isa/wss/built-in.a AR sound/ppc/built-in.a AR sound/isa/built-in.a AR sound/pci/ali5451/built-in.a CC arch/x86/kernel/cpu/microcode/amd.o AR sound/pci/asihpi/built-in.a CC fs/netfs/locking.o CC net/core/neighbour.o AR sound/pci/au88x0/built-in.a AR sound/pci/aw2/built-in.a CC net/core/rtnetlink.o CC drivers/pci/search.o AR sound/pci/ctxfi/built-in.a CC crypto/skcipher.o CC crypto/seqiv.o CC arch/x86/mm/iomap_32.o CC sound/core/ctljack.o AR sound/pci/ca0106/built-in.a AR sound/pci/cs46xx/built-in.a AR lib/xz/built-in.a AR sound/pci/cs5535audio/built-in.a AR sound/pci/lola/built-in.a CC arch/x86/kernel/apic/vector.o CC net/sched/cls_api.o CC drivers/pci/rom.o CC security/selinux/ss/symtab.o AR sound/pci/lx6464es/built-in.a CC drivers/pci/setup-res.o AR sound/pci/echoaudio/built-in.a AR drivers/acpi/pmic/built-in.a AR sound/pci/emu10k1/built-in.a CC arch/x86/kernel/apic/init.o CC lib/crypto/mpi/mpih-div.o CC arch/x86/events/zhaoxin/core.o CC arch/x86/kernel/apic/hw_nmi.o AR sound/pci/hda/built-in.a CC lib/zstd/decompress/zstd_decompress_block.o CC [M] sound/pci/hda/hda_bind.o CC drivers/acpi/acpica/dsdebug.o CC drivers/video/console/vgacon.o CC security/selinux/ss/sidtab.o CC arch/x86/events/intel/knc.o CC mm/vmscan.o CC drivers/acpi/dptf/int340x_thermal.o CC sound/core/jack.o CC fs/proc/proc_tty.o CC net/sched/act_api.o CC net/sched/sch_fifo.o CC sound/core/timer.o CC security/selinux/ss/avtab.o CC fs/proc/cmdline.o CC [M] sound/pci/hda/hda_codec.o CC drivers/acpi/acpica/dsfield.o CC arch/x86/mm/hugetlbpage.o CC crypto/echainiv.o CC fs/netfs/main.o CC io_uring/sync.o CC io_uring/msg_ring.o CC net/netlink/af_netlink.o AR net/bpf/built-in.a CC fs/netfs/misc.o CC net/netlink/genetlink.o CC drivers/acpi/acpica/dsinit.o AR arch/x86/kernel/cpu/microcode/built-in.a CC arch/x86/kernel/cpu/scattered.o CC [M] sound/pci/hda/hda_jack.o AR drivers/acpi/dptf/built-in.a CC kernel/locking/rwsem.o CC net/core/utils.o CC kernel/sched/build_utility.o CC fs/netfs/objects.o CC io_uring/advise.o CC [M] sound/pci/hda/hda_auto_parser.o CC lib/crypto/mpi/mpih-mul.o CC kernel/locking/percpu-rwsem.o AR arch/x86/events/zhaoxin/built-in.a CC net/ethtool/ioctl.o CC net/netfilter/core.o CC net/ipv4/netfilter/nf_defrag_ipv4.o CC fs/proc/consoles.o CC net/xfrm/xfrm_policy.o CC arch/x86/events/core.o CC net/ipv4/netfilter/nf_reject_ipv4.o CC drivers/acpi/acpica/dsmethod.o CC arch/x86/events/intel/lbr.o CC net/xfrm/xfrm_state.o CC drivers/pci/irq.o CC fs/ext4/dir.o CC arch/x86/kernel/cpu/topology_common.o CC fs/jbd2/recovery.o AR drivers/video/console/built-in.a CC drivers/video/backlight/backlight.o CC crypto/ahash.o CC arch/x86/mm/dump_pagetables.o CC net/sched/cls_cgroup.o CC net/unix/af_unix.o CC net/ipv6/netfilter/ip6_tables.o CC drivers/acpi/acpica/dsmthdat.o CC net/ipv6/netfilter/ip6table_filter.o CC arch/x86/kernel/apic/io_apic.o CC net/ipv6/netfilter/ip6table_mangle.o CC fs/proc/cpuinfo.o CC kernel/locking/spinlock.o CC security/selinux/ss/policydb.o CC arch/x86/kernel/cpu/topology_ext.o CC kernel/locking/osq_lock.o CC lib/crypto/mpi/mpi-pow.o CC io_uring/epoll.o CC net/xfrm/xfrm_hash.o CC net/ethtool/common.o CC sound/core/hrtimer.o CC fs/netfs/write_collect.o CC kernel/locking/qspinlock.o CC net/netlink/policy.o CC drivers/acpi/acpica/dsobject.o CC [M] sound/pci/hda/hda_sysfs.o CC security/selinux/ss/services.o CC arch/x86/mm/highmem_32.o AR drivers/video/backlight/built-in.a CC kernel/locking/rtmutex_api.o CC arch/x86/kernel/cpu/topology_amd.o AR drivers/video/fbdev/core/built-in.a CC lib/zstd/zstd_common_module.o CC fs/proc/devices.o AR drivers/video/fbdev/omap/built-in.a CC fs/ext4/ext4_jbd2.o CC fs/jbd2/checkpoint.o CC fs/jbd2/revoke.o CC drivers/pci/vpd.o AR drivers/video/fbdev/omap2/omapfb/dss/built-in.a AR drivers/video/fbdev/omap2/omapfb/displays/built-in.a CC crypto/shash.o AR drivers/video/fbdev/omap2/omapfb/built-in.a CC drivers/pci/setup-bus.o AR drivers/video/fbdev/omap2/built-in.a AR drivers/video/fbdev/built-in.a CC crypto/akcipher.o CC drivers/video/aperture.o CC sound/core/seq_device.o CC fs/hugetlbfs/inode.o CC fs/netfs/write_issue.o CC arch/x86/events/intel/p4.o CC net/ipv4/netfilter/ip_tables.o CC lib/crypto/mpi/mpiutil.o CC lib/zstd/common/debug.o CC drivers/acpi/acpica/dsopcode.o CC security/selinux/ss/conditional.o CC net/ipv6/netfilter/nf_defrag_ipv6_hooks.o CC arch/x86/events/intel/p6.o CC net/sched/ematch.o CC lib/zstd/common/entropy_common.o CC net/netfilter/nf_log.o CC arch/x86/kernel/cpu/common.o CC io_uring/statx.o CC crypto/sig.o CC [M] sound/pci/hda/hda_controller.o AR arch/x86/mm/built-in.a CC lib/zstd/common/error_private.o CC block/blk-mq-tag.o CC net/unix/garbage.o CC lib/zstd/common/fse_decompress.o CC fs/proc/interrupts.o CC net/ethtool/netlink.o CC net/core/link_watch.o CC net/ipv6/netfilter/nf_conntrack_reasm.o CC drivers/acpi/acpica/dspkginit.o CC [M] sound/core/hwdep.o CC drivers/acpi/x86/apple.o CC arch/x86/events/probe.o CC kernel/locking/qrwlock.o AR sound/arm/built-in.a AR net/netlink/built-in.a CC io_uring/timeout.o CC drivers/pci/vc.o CC mm/shrinker.o CC arch/x86/events/utils.o AR lib/crypto/mpi/built-in.a AR lib/crypto/built-in.a CC drivers/video/cmdline.o CC drivers/video/nomodeset.o CC drivers/acpi/acpica/dsutils.o CC [M] sound/pci/hda/hda_proc.o CC security/selinux/ss/mls.o CC arch/x86/kernel/apic/msi.o CC drivers/acpi/acpica/dswexec.o CC drivers/pnp/pnpacpi/core.o AR drivers/amba/built-in.a CC fs/jbd2/journal.o CC fs/proc/loadavg.o CC net/ipv4/netfilter/iptable_filter.o CC lib/zstd/common/zstd_common.o CC drivers/pnp/core.o CC arch/x86/events/intel/pt.o AR lib/zstd/built-in.a CC crypto/kpp.o CC drivers/pnp/card.o CC lib/fonts/fonts.o AR fs/netfs/built-in.a CC net/xfrm/xfrm_input.o AR kernel/locking/built-in.a CC drivers/acpi/x86/cmos_rtc.o CC drivers/pnp/pnpacpi/rsparser.o CC drivers/pci/mmap.o CC drivers/pci/devres.o AR fs/hugetlbfs/built-in.a CC drivers/acpi/x86/lpss.o AR net/sched/built-in.a CC net/packet/af_packet.o CC drivers/acpi/x86/s2idle.o CC [M] sound/core/pcm.o CC lib/fonts/font_8x16.o CC security/selinux/ss/context.o CC net/netfilter/nf_queue.o CC security/selinux/netlabel.o CC drivers/acpi/acpica/dswload.o CC block/blk-stat.o CC fs/fat/cache.o CC drivers/pci/proc.o CC net/unix/sysctl_net_unix.o CC drivers/pci/pci-sysfs.o CC [M] sound/core/pcm_native.o CC io_uring/fdinfo.o CC drivers/video/hdmi.o CC fs/proc/meminfo.o CC arch/x86/events/rapl.o CC arch/x86/events/msr.o CC [M] sound/core/pcm_lib.o CC arch/x86/kernel/kprobes/core.o CC arch/x86/kernel/apic/probe_32.o CC mm/shmem.o CC net/ethtool/bitset.o AR lib/fonts/built-in.a CC arch/x86/kernel/kprobes/opt.o CC lib/argv_split.o LDS arch/x86/kernel/vmlinux.lds CC fs/ext4/extents.o CC fs/ext4/extents_status.o CC net/ipv6/netfilter/nf_reject_ipv6.o CC drivers/acpi/x86/utils.o CC drivers/acpi/acpica/dswload2.o CC drivers/pnp/driver.o CC drivers/acpi/x86/blacklist.o CC io_uring/cancel.o CC arch/x86/kernel/cpu/rdrand.o ASN.1 crypto/rsapubkey.asn1.[ch] ASN.1 crypto/rsaprivkey.asn1.[ch] CC crypto/rsa.o CC [M] sound/pci/hda/hda_hwdep.o AR drivers/clk/actions/built-in.a CC drivers/dma/dw/core.o AR drivers/clk/analogbits/built-in.a AR drivers/clk/bcm/built-in.a CC net/ipv6/netfilter/ip6t_ipv6header.o AR drivers/clk/imgtec/built-in.a CC arch/x86/kernel/cpu/match.o CC drivers/dma/hsu/hsu.o AR drivers/clk/imx/built-in.a CC net/ipv4/netfilter/iptable_mangle.o AR drivers/clk/ingenic/built-in.a AR drivers/clk/mediatek/built-in.a AR drivers/clk/microchip/built-in.a AR drivers/clk/mstar/built-in.a CC lib/bug.o AR drivers/pnp/pnpacpi/built-in.a AR drivers/clk/mvebu/built-in.a AR drivers/dma/idxd/built-in.a AR kernel/sched/built-in.a AR drivers/clk/ralink/built-in.a CC arch/x86/kernel/cpu/bugs.o AR arch/x86/kernel/apic/built-in.a CC kernel/power/qos.o CC net/ipv6/netfilter/ip6t_REJECT.o AR drivers/clk/renesas/built-in.a AS arch/x86/kernel/head_32.o AR drivers/clk/socfpga/built-in.a AR drivers/dma/mediatek/built-in.a CC arch/x86/kernel/cpu/aperfmperf.o AR drivers/clk/sophgo/built-in.a CC mm/util.o CC net/core/filter.o AR drivers/clk/sprd/built-in.a AR drivers/clk/starfive/built-in.a CC drivers/pci/slot.o CC fs/fat/dir.o AR drivers/clk/sunxi-ng/built-in.a CC fs/proc/stat.o CC fs/proc/uptime.o AR drivers/clk/ti/built-in.a CC block/blk-mq-sysfs.o AR drivers/clk/versatile/built-in.a AR drivers/clk/xilinx/built-in.a CC drivers/acpi/acpica/dswscope.o AR drivers/clk/built-in.a CC lib/buildid.o CC lib/clz_tab.o CC arch/x86/events/intel/uncore.o AR drivers/acpi/x86/built-in.a CC net/ethtool/strset.o CC [M] sound/core/pcm_misc.o CC fs/ext4/file.o CC arch/x86/events/intel/uncore_nhmex.o AR drivers/video/built-in.a CC drivers/pnp/resource.o CC drivers/acpi/acpica/dswstate.o AR drivers/soc/apple/built-in.a AR net/unix/built-in.a AR drivers/soc/aspeed/built-in.a AR drivers/soc/bcm/built-in.a CC drivers/virtio/virtio.o AR drivers/soc/fsl/built-in.a CC drivers/virtio/virtio_ring.o CC fs/proc/util.o AR drivers/soc/fujitsu/built-in.a CC drivers/virtio/virtio_anchor.o AR drivers/soc/hisilicon/built-in.a AR drivers/soc/imx/built-in.a AR drivers/soc/ixp4xx/built-in.a AR drivers/soc/loongson/built-in.a CC drivers/virtio/virtio_pci_modern_dev.o AR drivers/soc/mediatek/built-in.a CC crypto/rsa_helper.o AR drivers/soc/microchip/built-in.a AR drivers/soc/nuvoton/built-in.a AR drivers/soc/pxa/built-in.a CC [M] sound/pci/hda/patch_hdmi.o AR drivers/soc/amlogic/built-in.a AR arch/x86/kernel/kprobes/built-in.a AR drivers/soc/qcom/built-in.a AR drivers/soc/renesas/built-in.a CC [M] sound/pci/hda/hda_eld.o CC net/netfilter/nf_sockopt.o AR drivers/soc/rockchip/built-in.a AR drivers/soc/sunxi/built-in.a CC crypto/rsa-pkcs1pad.o AR drivers/soc/ti/built-in.a CC arch/x86/kernel/head32.o AR security/selinux/built-in.a CC drivers/pci/pci-acpi.o AR drivers/soc/xilinx/built-in.a CC net/xfrm/xfrm_output.o AR security/built-in.a AR drivers/soc/built-in.a CC arch/x86/kernel/ebda.o CC lib/cmdline.o CC block/blk-mq-cpumap.o CC drivers/tty/vt/vt_ioctl.o CC drivers/acpi/acpica/evevent.o AR drivers/dma/hsu/built-in.a CC drivers/tty/vt/vc_screen.o CC kernel/power/main.o CC drivers/acpi/acpica/evgpe.o CC drivers/tty/hvc/hvc_console.o CC io_uring/waitid.o CC net/core/sock_diag.o CC fs/proc/version.o CC lib/cpumask.o CC net/ipv6/af_inet6.o CC drivers/acpi/tables.o CC drivers/dma/dw/dw.o CC fs/fat/fatent.o CC net/ipv4/netfilter/ipt_REJECT.o CC fs/proc/softirqs.o CC [M] sound/pci/hda/hda_intel.o CC drivers/acpi/acpica/evgpeblk.o AR net/dsa/built-in.a CC block/blk-mq-sched.o CC net/sunrpc/auth_gss/auth_gss.o AR net/wireless/tests/built-in.a CC net/wireless/core.o CC net/sunrpc/auth_gss/gss_generic_token.o CC kernel/power/console.o CC arch/x86/kernel/platform-quirks.o CC net/wireless/sysfs.o CC kernel/power/process.o CC net/wireless/radiotap.o AR net/ipv6/netfilter/built-in.a CC arch/x86/kernel/process_32.o CC drivers/acpi/osi.o CC net/ethtool/linkinfo.o CC drivers/pnp/manager.o CC fs/fat/file.o CC drivers/acpi/osl.o CC crypto/acompress.o CC arch/x86/kernel/cpu/cpuid-deps.o AR fs/jbd2/built-in.a CC block/ioctl.o CC lib/ctype.o CC arch/x86/events/intel/uncore_snb.o CC net/netfilter/utils.o CC lib/dec_and_lock.o CC arch/x86/events/intel/uncore_snbep.o CC drivers/acpi/acpica/evgpeinit.o CC fs/proc/namespaces.o CC drivers/dma/dw/idma32.o AR net/mac80211/tests/built-in.a CC net/mac80211/main.o CC drivers/virtio/virtio_pci_legacy_dev.o CC net/mac80211/status.o AR drivers/tty/hvc/built-in.a CC net/netlabel/netlabel_user.o CC lib/decompress.o CC drivers/pci/iomap.o CC drivers/tty/vt/selection.o CC io_uring/register.o CC lib/decompress_bunzip2.o CC net/netlabel/netlabel_kapi.o CC arch/x86/kernel/cpu/umwait.o LD [M] sound/pci/hda/snd-hda-codec.o CC drivers/virtio/virtio_pci_modern.o CC io_uring/truncate.o CC drivers/tty/vt/keyboard.o CC mm/mmzone.o CC mm/vmstat.o CC drivers/tty/serial/8250/8250_core.o CC drivers/pnp/support.o CC [M] sound/core/pcm_memory.o CC drivers/acpi/acpica/evgpeutil.o CC drivers/pnp/interface.o CC drivers/tty/serial/serial_core.o CC [M] net/ipv4/netfilter/iptable_nat.o CC net/core/dev_ioctl.o CC net/xfrm/xfrm_sysctl.o CC kernel/printk/printk.o CC fs/ext4/fsmap.o AR net/packet/built-in.a CC net/ethtool/linkmodes.o CC fs/isofs/namei.o CC crypto/scompress.o CC drivers/dma/dw/acpi.o CC net/ethtool/rss.o CC net/xfrm/xfrm_replay.o CC net/netfilter/nfnetlink.o CC fs/proc/self.o CC drivers/acpi/acpica/evglock.o CC crypto/algboss.o CC fs/fat/inode.o CC drivers/pci/quirks.o CC kernel/power/suspend.o CC kernel/power/hibernate.o CC block/genhd.o CC drivers/char/hw_random/core.o CC kernel/power/snapshot.o CC net/ipv6/anycast.o MKCAP arch/x86/kernel/cpu/capflags.c CC lib/decompress_inflate.o CC drivers/char/hw_random/intel-rng.o LD [M] sound/pci/hda/snd-hda-codec-hdmi.o LD [M] sound/pci/hda/snd-hda-intel.o AR sound/pci/ice1712/built-in.a CC kernel/power/swap.o AR sound/pci/korg1212/built-in.a CC drivers/pnp/quirks.o AR sound/pci/mixart/built-in.a AR sound/pci/nm256/built-in.a CC net/netfilter/nfnetlink_log.o AR sound/pci/oxygen/built-in.a AR sound/pci/pcxhr/built-in.a CC [M] sound/core/memalloc.o CC drivers/virtio/virtio_pci_common.o AR sound/pci/riptide/built-in.a AR sound/pci/rme9652/built-in.a AR sound/pci/trident/built-in.a CC drivers/virtio/virtio_pci_legacy.o CC drivers/acpi/acpica/evhandler.o AR sound/pci/ymfpci/built-in.a AR sound/pci/vx222/built-in.a AR sound/pci/built-in.a CC drivers/acpi/acpica/evmisc.o CC drivers/acpi/acpica/evregion.o CC fs/proc/thread_self.o AR drivers/dma/dw/built-in.a AR drivers/dma/qcom/built-in.a CC fs/isofs/inode.o CC drivers/tty/serial/8250/8250_pnp.o AR drivers/dma/ti/built-in.a AR drivers/dma/xilinx/built-in.a CC drivers/dma/dmaengine.o CC lib/decompress_unlz4.o CC lib/decompress_unlzma.o CC crypto/testmgr.o CC net/netlabel/netlabel_domainhash.o AR net/ipv4/netfilter/built-in.a CC drivers/virtio/virtio_pci_admin_legacy_io.o CC net/ipv4/route.o CC fs/proc/proc_sysctl.o CC drivers/char/hw_random/amd-rng.o CC net/netlabel/netlabel_addrlist.o CC net/xfrm/xfrm_device.o CC mm/backing-dev.o CC net/xfrm/xfrm_algo.o CC drivers/tty/vt/vt.o CC net/sunrpc/auth_gss/gss_mech_switch.o CC net/ethtool/linkstate.o CC drivers/acpi/acpica/evrgnini.o CC io_uring/memmap.o CC drivers/acpi/acpica/evsci.o CC drivers/pnp/system.o CC net/xfrm/xfrm_user.o CC net/rfkill/core.o CC drivers/acpi/utils.o CC arch/x86/kernel/cpu/powerflags.o CC kernel/irq/irqdesc.o CC [M] sound/core/pcm_timer.o CC drivers/virtio/virtio_input.o CC fs/fat/misc.o CC kernel/power/user.o CC arch/x86/events/intel/uncore_discovery.o CC drivers/tty/serial/8250/8250_port.o CC block/ioprio.o CC crypto/cmac.o CC arch/x86/events/intel/cstate.o CC net/ipv6/ip6_output.o CC drivers/acpi/reboot.o CC drivers/acpi/acpica/evxface.o AR drivers/pnp/built-in.a CC fs/ext4/fsync.o AR drivers/iommu/amd/built-in.a CC fs/ext4/hash.o AR drivers/iommu/intel/built-in.a CC lib/decompress_unlzo.o CC drivers/char/hw_random/geode-rng.o CC drivers/char/hw_random/via-rng.o AR drivers/iommu/iommufd/built-in.a AR drivers/iommu/arm/arm-smmu/built-in.a CC drivers/acpi/acpica/evxfevnt.o AR drivers/iommu/arm/arm-smmu-v3/built-in.a CC drivers/acpi/acpica/evxfgpe.o AR drivers/iommu/arm/built-in.a CC drivers/iommu/iommu.o CC net/netfilter/nf_conntrack_core.o CC drivers/acpi/acpica/evxfregn.o CC kernel/printk/conopt.o CC io_uring/io-wq.o CC net/sunrpc/clnt.o LD [M] sound/core/snd-hwdep.o CC fs/isofs/dir.o LD [M] sound/core/snd-pcm.o CC fs/fat/nfs.o CC drivers/dma/virt-dma.o CC crypto/hmac.o AR sound/core/built-in.a CC kernel/irq/handle.o CC kernel/rcu/update.o COPY drivers/tty/vt/defkeymap.c AR sound/sh/built-in.a CC drivers/tty/vt/consolemap.o CC kernel/irq/manage.o AR kernel/livepatch/built-in.a CC net/core/tso.o CC drivers/dma/acpi-dma.o AR sound/synth/emux/built-in.a AR sound/synth/built-in.a CC net/core/sock_reuseport.o CC net/ethtool/debug.o CC net/core/fib_notifier.o CC kernel/power/poweroff.o CC kernel/printk/printk_safe.o CC drivers/virtio/virtio_dma_buf.o CC net/netlabel/netlabel_mgmt.o CC net/rfkill/input.o AR sound/usb/misc/built-in.a CC net/netlabel/netlabel_unlabeled.o AR sound/usb/usx2y/built-in.a CC net/ipv4/inetpeer.o CC net/netlabel/netlabel_cipso_v4.o AR sound/usb/caiaq/built-in.a CC net/wireless/util.o AR sound/usb/6fire/built-in.a AR sound/usb/hiface/built-in.a CC drivers/pci/pci-label.o CC mm/mm_init.o AR sound/usb/bcd2000/built-in.a CC drivers/pci/vgaarb.o CC lib/decompress_unxz.o AR sound/usb/built-in.a AR drivers/char/hw_random/built-in.a CC drivers/char/agp/backend.o AR sound/firewire/built-in.a AR sound/sparc/built-in.a AR sound/spi/built-in.a CC drivers/acpi/acpica/exconcat.o CC block/badblocks.o AR sound/parisc/built-in.a AR sound/pcmcia/vx/built-in.a AR sound/pcmcia/pdaudiocf/built-in.a AR sound/pcmcia/built-in.a AR kernel/power/built-in.a CC fs/proc/proc_net.o AR sound/mips/built-in.a AR arch/x86/events/intel/built-in.a AR sound/soc/built-in.a CC drivers/acpi/acpica/exconfig.o AR arch/x86/events/built-in.a AR sound/atmel/built-in.a CC drivers/acpi/acpica/exconvrt.o CC arch/x86/kernel/signal.o AR sound/hda/built-in.a CC arch/x86/kernel/signal_32.o CC [M] sound/hda/hda_bus_type.o CC net/sunrpc/auth_gss/svcauth_gss.o CC net/mac80211/driver-ops.o CC [M] sound/hda/hdac_bus.o CC crypto/crypto_null.o CC fs/fat/namei_vfat.o CC fs/isofs/util.o CC [M] sound/hda/hdac_device.o CC kernel/printk/nbcon.o AR drivers/virtio/built-in.a CC kernel/printk/printk_ringbuffer.o CC net/mac80211/sta_info.o AR net/rfkill/built-in.a CC lib/decompress_unzstd.o CC net/mac80211/wep.o CC [M] sound/hda/hdac_sysfs.o AR drivers/dma/built-in.a CC lib/dump_stack.o CC drivers/acpi/acpica/excreate.o CC net/mac80211/aead_api.o CC kernel/rcu/sync.o CC net/netlabel/netlabel_calipso.o CC drivers/char/agp/generic.o CC drivers/tty/serial/8250/8250_dma.o CC net/ethtool/wol.o CC [M] sound/hda/hdac_regmap.o CC drivers/acpi/acpica/exdebug.o CC net/core/xdp.o CC fs/proc/kcore.o CC kernel/rcu/srcutree.o CC block/blk-rq-qos.o CC block/disk-events.o CC fs/proc/vmcore.o AR drivers/pci/built-in.a CC crypto/md5.o CC drivers/char/agp/isoch.o CC drivers/acpi/acpica/exdump.o CC fs/isofs/rock.o CC net/core/flow_offload.o CC kernel/printk/sysctl.o CC net/ipv4/protocol.o CC fs/ext4/ialloc.o HOSTCC drivers/tty/vt/conmakehash CC net/sunrpc/xprt.o CC net/sunrpc/auth_gss/gss_rpc_upcall.o AR drivers/gpu/host1x/built-in.a CC kernel/irq/spurious.o CC drivers/iommu/iommu-traces.o AR drivers/gpu/vga/built-in.a CC io_uring/futex.o CC net/core/gro.o CC lib/earlycpio.o CC net/9p/mod.o CC net/mac80211/wpa.o CC mm/percpu.o CC net/dns_resolver/dns_key.o AR kernel/printk/built-in.a CC mm/slab_common.o CC drivers/acpi/acpica/exfield.o CC drivers/tty/vt/defkeymap.o AR drivers/gpu/drm/tests/built-in.a CC lib/extable.o AR drivers/gpu/drm/arm/built-in.a CC drivers/gpu/drm/display/drm_display_helper_mod.o CONMK drivers/tty/vt/consolemap_deftbl.c CC drivers/acpi/acpica/exfldio.o AR net/xfrm/built-in.a CC drivers/acpi/acpica/exmisc.o CC net/core/netdev-genl.o CC drivers/tty/vt/consolemap_deftbl.o CC fs/isofs/export.o CC drivers/tty/serial/8250/8250_dwlib.o AR drivers/tty/vt/built-in.a CC net/9p/client.o CC fs/fat/namei_msdos.o CC crypto/sha256_generic.o CC net/handshake/alert.o CC [M] sound/hda/hdac_controller.o CC kernel/irq/resend.o CC drivers/acpi/acpica/exmutex.o CC drivers/gpu/drm/display/drm_dp_dual_mode_helper.o CC drivers/gpu/drm/ttm/ttm_tt.o CC lib/flex_proportions.o CC drivers/char/agp/amd64-agp.o CC net/ipv6/ip6_input.o CC net/9p/error.o CC crypto/sha512_generic.o AR net/netlabel/built-in.a CC net/9p/protocol.o CC net/netfilter/nf_conntrack_standalone.o CC block/blk-ia-ranges.o CC block/early-lookup.o CC drivers/gpu/drm/i915/i915_config.o CC net/ethtool/features.o CC net/dns_resolver/dns_query.o CC kernel/irq/chip.o CC kernel/irq/dummychip.o CC drivers/gpu/drm/ttm/ttm_bo.o CC net/ipv4/ip_input.o CC fs/proc/kmsg.o CC kernel/rcu/tree.o CC drivers/acpi/acpica/exnames.o CC lib/idr.o CC lib/irq_regs.o CC fs/isofs/joliet.o CC kernel/rcu/rcu_segcblist.o CC drivers/gpu/drm/i915/i915_driver.o CC drivers/iommu/iommu-sysfs.o CC net/core/netdev-genl-gen.o CC io_uring/napi.o CC net/sunrpc/auth_gss/gss_rpc_xdr.o CC drivers/tty/serial/8250/8250_pcilib.o CC net/core/gso.o CC drivers/tty/serial/serial_base_bus.o CC drivers/tty/serial/8250/8250_early.o CC lib/is_single_threaded.o AR fs/fat/built-in.a CC fs/isofs/compress.o CC fs/proc/page.o CC kernel/irq/devres.o CC [M] sound/hda/hdac_stream.o CC net/core/net-sysfs.o CC drivers/acpi/acpica/exoparg1.o CC drivers/char/agp/intel-agp.o CC drivers/gpu/drm/display/drm_dp_helper.o CC drivers/gpu/drm/display/drm_dp_mst_topology.o AR net/dns_resolver/built-in.a CC crypto/sha3_generic.o CC net/mac80211/scan.o CC crypto/ecb.o CC drivers/gpu/drm/display/drm_dsc_helper.o CC block/bounce.o CC block/bsg.o CC net/devres.o CC mm/compaction.o CC lib/klist.o CC crypto/cbc.o CC drivers/char/agp/intel-gtt.o CC drivers/iommu/dma-iommu.o CC drivers/gpu/drm/ttm/ttm_bo_util.o CC drivers/gpu/drm/ttm/ttm_bo_vm.o CC net/core/hotdata.o CC kernel/irq/autoprobe.o CC net/ethtool/privflags.o CC net/netfilter/nf_conntrack_expect.o CC net/core/net-procfs.o CC net/wireless/reg.o CC [M] sound/hda/array.o CC drivers/tty/serial/8250/8250_exar.o CC net/handshake/genl.o CC drivers/tty/serial/8250/8250_lpss.o CC drivers/tty/serial/8250/8250_mid.o CC drivers/acpi/acpica/exoparg2.o CC lib/kobject.o CC crypto/ctr.o AR drivers/tty/ipwireless/built-in.a CC fs/ext4/indirect.o CC net/mac80211/offchannel.o CC net/sunrpc/socklib.o CC net/9p/trans_common.o AR fs/isofs/built-in.a CC crypto/gcm.o AR fs/proc/built-in.a CC crypto/ccm.o CC net/mac80211/ht.o CC kernel/irq/irqdomain.o CC net/sunrpc/auth_gss/trace.o CC net/ipv4/ip_fragment.o CC drivers/gpu/drm/display/drm_hdcp_helper.o CC net/ipv6/addrconf.o CC arch/x86/kernel/traps.o CC arch/x86/kernel/idt.o CC arch/x86/kernel/irq.o CC drivers/acpi/acpica/exoparg3.o CC crypto/aes_generic.o CC net/wireless/scan.o CC [M] sound/hda/hdmi_chmap.o CC drivers/connector/cn_queue.o AR io_uring/built-in.a CC drivers/base/power/sysfs.o AR drivers/gpu/drm/renesas/rcar-du/built-in.a CC drivers/base/firmware_loader/builtin/main.o AR drivers/gpu/drm/renesas/rz-du/built-in.a AR drivers/gpu/drm/renesas/built-in.a CC arch/x86/kernel/cpu/topology.o CC drivers/connector/connector.o CC drivers/base/firmware_loader/main.o CC drivers/gpu/drm/ttm/ttm_module.o CC lib/kobject_uevent.o CC drivers/tty/serial/8250/8250_pci.o CC net/wireless/nl80211.o CC net/handshake/netlink.o AR drivers/gpu/drm/omapdrm/built-in.a CC net/core/netpoll.o CC net/9p/trans_fd.o AR drivers/char/agp/built-in.a CC drivers/gpu/drm/i915/i915_drm_client.o CC drivers/char/mem.o CC net/ethtool/rings.o CC drivers/acpi/acpica/exoparg6.o CC drivers/tty/serial/8250/8250_pericom.o CC block/blk-cgroup.o AR drivers/base/firmware_loader/builtin/built-in.a CC net/handshake/request.o CC block/blk-ioprio.o CC drivers/char/random.o CC drivers/gpu/drm/display/drm_hdmi_helper.o CC drivers/base/power/generic_ops.o CC drivers/base/regmap/regmap.o CC drivers/iommu/iova.o CC drivers/gpu/drm/ttm/ttm_execbuf_util.o CC drivers/base/regmap/regcache.o CC net/netfilter/nf_conntrack_helper.o CC drivers/gpu/drm/i915/i915_getparam.o CC arch/x86/kernel/cpu/proc.o CC kernel/irq/proc.o CC crypto/crc32c_generic.o CC drivers/acpi/acpica/exprep.o CC kernel/irq/migration.o CC drivers/base/regmap/regcache-rbtree.o CC net/socket.o CC lib/logic_pio.o CC [M] sound/hda/trace.o CC drivers/block/loop.o CC net/ipv4/ip_forward.o CC drivers/block/virtio_blk.o AR drivers/base/firmware_loader/built-in.a AR drivers/base/test/built-in.a CC drivers/base/component.o CC net/core/fib_rules.o CC drivers/base/power/common.o CC drivers/acpi/acpica/exregion.o CC drivers/connector/cn_proc.o CC crypto/authenc.o CC lib/maple_tree.o CC kernel/irq/cpuhotplug.o CC lib/memcat_p.o CC block/blk-iolatency.o CC kernel/irq/pm.o CC net/ethtool/channels.o CC drivers/gpu/drm/ttm/ttm_range_manager.o CC net/sunrpc/xprtsock.o CC arch/x86/kernel/cpu/feat_ctl.o AR drivers/tty/serial/8250/built-in.a CC drivers/tty/serial/serial_ctrl.o CC kernel/irq/msi.o CC lib/nmi_backtrace.o CC drivers/gpu/drm/i915/i915_ioctl.o CC drivers/gpu/drm/i915/i915_irq.o CC net/9p/trans_virtio.o AR drivers/iommu/built-in.a AR drivers/misc/eeprom/built-in.a CC drivers/acpi/acpica/exresnte.o AR drivers/misc/cb710/built-in.a AR drivers/misc/ti-st/built-in.a AR drivers/misc/lis3lv02d/built-in.a CC lib/objpool.o AR drivers/misc/cardreader/built-in.a CC drivers/gpu/drm/i915/i915_mitigations.o AR drivers/misc/built-in.a CC drivers/gpu/drm/ttm/ttm_resource.o CC drivers/base/power/qos.o CC kernel/dma/mapping.o CC drivers/gpu/drm/i915/i915_module.o CC drivers/gpu/drm/display/drm_scdc_helper.o CC arch/x86/kernel/cpu/intel.o CC drivers/char/misc.o CC drivers/base/regmap/regcache-flat.o CC net/handshake/tlshd.o CC fs/ext4/inline.o CC drivers/base/regmap/regcache-maple.o CC kernel/irq/affinity.o CC [M] sound/hda/hdac_component.o CC net/netfilter/nf_conntrack_proto.o CC drivers/acpi/acpica/exresolv.o CC net/sunrpc/auth_gss/gss_krb5_mech.o CC [M] sound/hda/hdac_i915.o CC arch/x86/kernel/cpu/intel_pconfig.o CC mm/show_mem.o CC net/core/net-traces.o CC net/sunrpc/sched.o CC drivers/tty/serial/serial_port.o CC lib/plist.o CC drivers/base/regmap/regmap-debugfs.o CC crypto/authencesn.o CC crypto/lzo.o CC drivers/tty/serial/earlycon.o AR drivers/connector/built-in.a CC drivers/acpi/acpica/exresop.o CC arch/x86/kernel/irq_32.o CC net/mac80211/agg-tx.o CC net/ethtool/coalesce.o CC net/ipv4/ip_options.o CC net/mac80211/agg-rx.o CC drivers/acpi/acpica/exserial.o CC net/wireless/mlme.o AR kernel/rcu/built-in.a CC arch/x86/kernel/cpu/tsx.o CC fs/nfs/client.o CC drivers/char/virtio_console.o CC arch/x86/kernel/cpu/intel_epb.o AR drivers/block/built-in.a AR drivers/gpu/drm/display/built-in.a CC drivers/gpu/drm/i915/i915_params.o CC drivers/acpi/acpica/exstore.o CC drivers/gpu/drm/ttm/ttm_pool.o CC fs/nfs/dir.o CC drivers/gpu/drm/i915/i915_pci.o CC kernel/irq/matrix.o CC block/blk-iocost.o CC block/mq-deadline.o CC [M] sound/hda/intel-dsp-config.o CC kernel/dma/direct.o AR drivers/gpu/drm/tilcdc/built-in.a CC kernel/entry/common.o CC drivers/gpu/drm/virtio/virtgpu_drv.o CC net/sunrpc/auth_gss/gss_krb5_seal.o CC kernel/entry/syscall_user_dispatch.o AR net/9p/built-in.a CC crypto/lzo-rle.o CC net/sysctl_net.o CC arch/x86/kernel/cpu/amd.o CC net/mac80211/vht.o CC net/handshake/trace.o CC fs/ext4/inode.o CC net/ipv4/ip_output.o CC drivers/base/power/runtime.o CC crypto/rng.o CC drivers/gpu/drm/i915/i915_scatterlist.o CC fs/ext4/ioctl.o AR drivers/tty/serial/built-in.a CC mm/shmem_quota.o CC crypto/drbg.o CC drivers/tty/tty_io.o CC drivers/acpi/acpica/exstoren.o CC drivers/acpi/acpica/exstorob.o AR sound/x86/built-in.a AR sound/xen/built-in.a AR sound/virtio/built-in.a CC sound/sound_core.o AR drivers/base/regmap/built-in.a CC drivers/base/core.o CC drivers/acpi/acpica/exsystem.o CC [M] sound/hda/intel-nhlt.o CC arch/x86/kernel/cpu/hygon.o CC net/wireless/ibss.o CC kernel/module/main.o CC net/netfilter/nf_conntrack_proto_generic.o CC net/ethtool/pause.o CC drivers/base/bus.o CC drivers/gpu/drm/virtio/virtgpu_kms.o CC net/sunrpc/auth_gss/gss_krb5_unseal.o CC drivers/base/dd.o CC drivers/gpu/drm/ttm/ttm_device.o CC fs/nfs/file.o CC net/ipv4/ip_sockglue.o CC kernel/dma/ops_helpers.o CC mm/interval_tree.o CC net/ipv6/addrlabel.o CC drivers/char/hpet.o AR drivers/gpu/drm/imx/built-in.a AR drivers/gpu/drm/i2c/built-in.a AR drivers/gpu/drm/panel/built-in.a CC drivers/gpu/drm/i915/i915_suspend.o CC drivers/acpi/acpica/extrace.o CC fs/exportfs/expfs.o CC arch/x86/kernel/cpu/centaur.o CC drivers/gpu/drm/i915/i915_switcheroo.o AR kernel/entry/built-in.a CC crypto/jitterentropy.o CC arch/x86/kernel/cpu/transmeta.o CC [M] sound/hda/intel-sdw-acpi.o CC crypto/jitterentropy-kcapi.o CC drivers/gpu/drm/virtio/virtgpu_gem.o CC arch/x86/kernel/cpu/zhaoxin.o AR kernel/irq/built-in.a CC drivers/acpi/acpica/exutils.o CC block/kyber-iosched.o CC sound/last.o CC drivers/base/power/wakeirq.o CC fs/lockd/clntlock.o CC drivers/gpu/drm/virtio/virtgpu_vram.o CC drivers/acpi/acpica/hwacpi.o CC drivers/base/syscore.o CC drivers/gpu/drm/ttm/ttm_sys_manager.o CC block/blk-mq-pci.o CC net/sunrpc/auth_gss/gss_krb5_wrap.o CC kernel/dma/dummy.o AR drivers/gpu/drm/bridge/analogix/built-in.a CC mm/list_lru.o AR drivers/gpu/drm/bridge/cadence/built-in.a CC drivers/acpi/acpica/hwesleep.o AR drivers/gpu/drm/bridge/imx/built-in.a AR net/handshake/built-in.a AR fs/exportfs/built-in.a CC crypto/ghash-generic.o CC net/wireless/sme.o AR drivers/gpu/drm/bridge/synopsys/built-in.a AR drivers/gpu/drm/hisilicon/built-in.a AR drivers/gpu/drm/bridge/built-in.a CC block/blk-mq-virtio.o CC drivers/acpi/nvs.o LD [M] sound/hda/snd-hda-core.o CC kernel/time/time.o LD [M] sound/hda/snd-intel-dspcfg.o CC net/ethtool/eee.o LD [M] sound/hda/snd-intel-sdw-acpi.o CC kernel/time/timer.o AR sound/built-in.a CC net/ethtool/tsinfo.o CC net/netfilter/nf_conntrack_proto_tcp.o CC kernel/futex/core.o CC arch/x86/kernel/cpu/vortex.o CC drivers/acpi/acpica/hwgpe.o CC drivers/base/power/main.o CC drivers/tty/n_tty.o CC drivers/char/nvram.o CC drivers/gpu/drm/virtio/virtgpu_display.o CC drivers/gpu/drm/ttm/ttm_agp_backend.o CC net/sunrpc/auth.o CC kernel/cgroup/cgroup.o CC crypto/hash_info.o CC net/ipv6/route.o CC crypto/rsapubkey.asn1.o CC kernel/dma/remap.o CC kernel/cgroup/rstat.o CC kernel/cgroup/namespace.o CC crypto/rsaprivkey.asn1.o CC arch/x86/kernel/cpu/perfctr-watchdog.o AR crypto/built-in.a CC net/netfilter/nf_conntrack_proto_udp.o CC net/mac80211/he.o CC drivers/acpi/wakeup.o CC drivers/acpi/acpica/hwregs.o CC net/sunrpc/auth_null.o CC drivers/acpi/acpica/hwsleep.o CC drivers/gpu/drm/i915/i915_sysfs.o CC net/sunrpc/auth_gss/gss_krb5_crypto.o CC mm/workingset.o CC kernel/trace/trace_clock.o CC drivers/acpi/sleep.o CC drivers/base/driver.o CC fs/lockd/clntproc.o CC block/blk-mq-debugfs.o AR drivers/gpu/drm/ttm/built-in.a CC kernel/futex/syscalls.o CC fs/nfs/getroot.o CC net/wireless/chan.o CC net/ethtool/cabletest.o AR drivers/gpu/drm/mxsfb/built-in.a CC fs/ext4/mballoc.o CC net/ipv4/inet_hashtables.o CC net/mac80211/s1g.o CC kernel/module/strict_rwx.o AR drivers/char/built-in.a CC kernel/futex/pi.o CC drivers/gpu/drm/virtio/virtgpu_vq.o CC drivers/gpu/drm/virtio/virtgpu_fence.o CC drivers/acpi/acpica/hwvalid.o AR kernel/dma/built-in.a CC kernel/trace/ring_buffer.o CC drivers/acpi/acpica/hwxface.o AR drivers/mfd/built-in.a CC net/ethtool/tunnels.o AR drivers/nfc/built-in.a CC net/mac80211/ibss.o AR drivers/dax/hmem/built-in.a AR drivers/dax/built-in.a CC block/blk-pm.o CC arch/x86/kernel/cpu/vmware.o CC kernel/futex/requeue.o CC drivers/acpi/device_sysfs.o CC drivers/base/class.o CC drivers/base/platform.o CC fs/nfs/inode.o CC kernel/trace/trace.o CC drivers/acpi/acpica/hwxfsleep.o CC mm/debug.o CC net/core/selftests.o CC net/netfilter/nf_conntrack_proto_icmp.o CC net/ipv6/ip6_fib.o CC kernel/module/kmod.o CC kernel/cgroup/cgroup-v1.o CC drivers/tty/tty_ioctl.o CC drivers/gpu/drm/i915/i915_utils.o CC net/wireless/ethtool.o CC net/sunrpc/auth_gss/gss_krb5_keys.o CC net/mac80211/iface.o CC mm/gup.o CC arch/x86/kernel/cpu/hypervisor.o CC net/core/ptp_classifier.o CC drivers/base/power/wakeup.o CC net/netfilter/nf_conntrack_extend.o CC drivers/acpi/acpica/hwpci.o CC lib/radix-tree.o CC net/netfilter/nf_conntrack_acct.o CC block/holder.o CC net/mac80211/link.o CC kernel/futex/waitwake.o CC net/mac80211/rate.o CC net/mac80211/michael.o CC drivers/acpi/device_pm.o CC kernel/time/hrtimer.o CC arch/x86/kernel/cpu/mshyperv.o CC net/core/netprio_cgroup.o CC drivers/base/cpu.o CC drivers/base/firmware.o CC fs/lockd/clntxdr.o CC drivers/acpi/acpica/nsaccess.o CC drivers/gpu/drm/virtio/virtgpu_object.o CC mm/mmap_lock.o CC net/ethtool/fec.o CC drivers/gpu/drm/i915/intel_clock_gating.o CC kernel/module/tree_lookup.o CC drivers/base/init.o CC drivers/tty/tty_ldisc.o AR net/sunrpc/auth_gss/built-in.a AR block/built-in.a CC net/sunrpc/auth_tls.o CC net/core/netclassid_cgroup.o CC lib/ratelimit.o AR kernel/futex/built-in.a CC net/netfilter/nf_conntrack_seqadj.o CC drivers/acpi/acpica/nsalloc.o CC drivers/acpi/acpica/nsarguments.o CC fs/nfs/super.o CC mm/highmem.o CC lib/rbtree.o CC drivers/gpu/drm/i915/intel_device_info.o CC net/core/dst_cache.o CC lib/seq_buf.o CC net/netfilter/nf_conntrack_proto_icmpv6.o CC net/core/gro_cells.o CC kernel/bpf/core.o CC net/ipv4/inet_timewait_sock.o CC arch/x86/kernel/cpu/debugfs.o CC fs/ext4/migrate.o CC kernel/cgroup/freezer.o CC drivers/gpu/drm/virtio/virtgpu_debugfs.o CC drivers/acpi/proc.o CC net/ipv4/inet_connection_sock.o CC kernel/cgroup/legacy_freezer.o CC kernel/module/kallsyms.o CC net/netfilter/nf_conntrack_netlink.o CC drivers/base/power/wakeup_stats.o CC drivers/acpi/acpica/nsconvert.o CC net/ethtool/eeprom.o CC net/ethtool/stats.o CC fs/nls/nls_base.o CC fs/lockd/host.o CC drivers/tty/tty_buffer.o AR fs/unicode/built-in.a CC fs/autofs/init.o CC fs/nls/nls_cp437.o CC drivers/acpi/acpica/nsdump.o CC kernel/time/timekeeping.o CC lib/siphash.o CC drivers/gpu/drm/virtio/virtgpu_plane.o CC drivers/gpu/drm/i915/intel_memory_region.o CC fs/autofs/inode.o CC drivers/gpu/drm/i915/intel_pcode.o CC kernel/events/core.o CC arch/x86/kernel/cpu/capflags.o CC drivers/base/power/trace.o CC kernel/events/ring_buffer.o AR arch/x86/kernel/cpu/built-in.a CC arch/x86/kernel/dumpstack_32.o CC net/ipv4/tcp.o CC drivers/acpi/acpica/nseval.o CC fs/nls/nls_ascii.o CC fs/autofs/root.o CC mm/memory.o CC drivers/acpi/acpica/nsinit.o CC kernel/cgroup/pids.o CC kernel/module/procfs.o CC lib/string.o CC net/wireless/mesh.o CC net/core/failover.o CC fs/autofs/symlink.o CC drivers/acpi/bus.o CC kernel/cgroup/rdma.o CC drivers/tty/tty_port.o CC drivers/gpu/drm/i915/intel_region_ttm.o CC net/ipv4/tcp_input.o CC lib/timerqueue.o CC net/ipv4/tcp_output.o CC fs/nls/nls_iso8859-1.o CC kernel/trace/trace_output.o CC fs/autofs/waitq.o CC net/ethtool/phc_vclocks.o CC fs/autofs/expire.o CC fs/nfs/io.o CC drivers/acpi/acpica/nsload.o CC fs/lockd/svc.o CC fs/nls/nls_utf8.o CC net/wireless/ap.o CC kernel/trace/trace_seq.o CC net/ipv6/ipv6_sockglue.o CC lib/vsprintf.o CC drivers/gpu/drm/virtio/virtgpu_ioctl.o CC fs/ext4/mmp.o CC arch/x86/kernel/time.o AR drivers/base/power/built-in.a CC drivers/base/map.o CC fs/ext4/move_extent.o CC kernel/cgroup/cpuset.o CC net/sunrpc/auth_unix.o CC kernel/module/sysfs.o CC lib/win_minmax.o CC net/mac80211/tkip.o CC fs/autofs/dev-ioctl.o CC mm/mincore.o CC drivers/acpi/acpica/nsnames.o CC kernel/time/ntp.o AR fs/nls/built-in.a CC drivers/dma-buf/dma-buf.o CC kernel/time/clocksource.o CC fs/lockd/svclock.o CC fs/9p/vfs_super.o CC fs/lockd/svcshare.o CC net/mac80211/aes_cmac.o CC arch/x86/kernel/ioport.o CC drivers/base/devres.o CC net/mac80211/aes_gmac.o CC arch/x86/kernel/dumpstack.o CC drivers/tty/tty_mutex.o CC net/sunrpc/svc.o AR net/core/built-in.a CC kernel/fork.o CC kernel/exec_domain.o CC drivers/tty/tty_ldsem.o CC net/ethtool/mm.o CC fs/nfs/direct.o CC drivers/acpi/acpica/nsobject.o CC net/wireless/trace.o CC drivers/gpu/drm/i915/intel_runtime_pm.o CC net/ipv4/tcp_timer.o CC kernel/time/jiffies.o AR kernel/module/built-in.a CC fs/9p/vfs_inode.o CC drivers/gpu/drm/virtio/virtgpu_prime.o CC drivers/acpi/acpica/nsparse.o CC net/netfilter/nf_conntrack_ftp.o CC drivers/base/attribute_container.o AR fs/autofs/built-in.a AR fs/hostfs/built-in.a CC fs/ext4/namei.o CC fs/ext4/page-io.o CC net/wireless/ocb.o CC net/ipv4/tcp_ipv4.o CC drivers/gpu/drm/virtio/virtgpu_trace_points.o CC net/ipv6/ndisc.o CC mm/mlock.o CC fs/nfs/pagelist.o CC net/sunrpc/svcsock.o CC drivers/tty/tty_baudrate.o CC drivers/gpu/drm/i915/intel_sbi.o CC net/ipv4/tcp_minisocks.o CC mm/mmap.o CC kernel/trace/trace_stat.o CC kernel/time/timer_list.o AR kernel/bpf/built-in.a CC arch/x86/kernel/nmi.o CC kernel/trace/trace_printk.o CC mm/mmu_gather.o CC drivers/acpi/acpica/nspredef.o CC kernel/trace/pid_list.o CC fs/lockd/svcproc.o CC fs/nfs/read.o CC drivers/base/transport_class.o CC drivers/dma-buf/dma-fence.o CC fs/lockd/svcsubs.o CC drivers/gpu/drm/virtio/virtgpu_submit.o CC net/ethtool/module.o CC fs/lockd/mon.o CC drivers/acpi/acpica/nsprepkg.o CC drivers/tty/tty_jobctrl.o CC net/ipv6/udp.o CC drivers/base/topology.o CC drivers/gpu/drm/i915/intel_step.o CC fs/9p/vfs_inode_dotl.o CC kernel/time/timeconv.o CC mm/mprotect.o CC kernel/cgroup/misc.o CC drivers/dma-buf/dma-fence-array.o CC arch/x86/kernel/ldt.o CC net/sunrpc/svcauth.o CC net/mac80211/fils_aead.o CC drivers/acpi/acpica/nsrepair.o CC drivers/acpi/acpica/nsrepair2.o CC kernel/trace/trace_sched_switch.o CC net/wireless/pmsr.o CC arch/x86/kernel/setup.o CC net/netfilter/nf_conntrack_irc.o CC net/mac80211/cfg.o CC arch/x86/kernel/x86_init.o CC lib/xarray.o CC kernel/time/timecounter.o CC kernel/time/alarmtimer.o AR drivers/gpu/drm/virtio/built-in.a CC lib/lockref.o AR drivers/gpu/drm/tiny/built-in.a CC fs/ext4/readpage.o CC drivers/tty/n_null.o CC kernel/cgroup/debug.o CC net/sunrpc/svcauth_unix.o CC drivers/base/container.o CC net/sunrpc/addr.o CC net/ethtool/pse-pd.o CC net/mac80211/ethtool.o CC drivers/dma-buf/dma-fence-chain.o CC arch/x86/kernel/i8259.o CC net/ipv4/tcp_cong.o CC drivers/base/property.o CC drivers/dma-buf/dma-fence-unwrap.o CC drivers/base/cacheinfo.o CC drivers/acpi/acpica/nssearch.o CC net/ipv4/tcp_metrics.o CC fs/lockd/trace.o CC fs/9p/vfs_addr.o CC drivers/gpu/drm/i915/intel_uncore.o CC fs/nfs/symlink.o CC arch/x86/kernel/irqinit.o CC arch/x86/kernel/jump_label.o CC drivers/acpi/acpica/nsutils.o GEN net/wireless/shipped-certs.c CC kernel/panic.o CC arch/x86/kernel/irq_work.o CC drivers/tty/pty.o CC net/sunrpc/rpcb_clnt.o CC drivers/acpi/acpica/nswalk.o CC net/ipv6/udplite.o CC net/ipv4/tcp_fastopen.o CC drivers/dma-buf/dma-resv.o CC drivers/tty/tty_audit.o CC net/wireless/shipped-certs.o CC lib/bcd.o AR kernel/cgroup/built-in.a CC fs/ext4/resize.o CC fs/lockd/xdr.o CC drivers/acpi/acpica/nsxfeval.o CC mm/mremap.o CC drivers/tty/sysrq.o CC net/netfilter/nf_conntrack_sip.o CC fs/nfs/unlink.o CC kernel/trace/trace_nop.o CC fs/nfs/write.o CC fs/lockd/clnt4xdr.o CC kernel/trace/blktrace.o CC lib/sort.o CC arch/x86/kernel/probe_roms.o CC net/ethtool/plca.o CC kernel/time/posix-timers.o CC net/sunrpc/timer.o CC kernel/trace/trace_events.o CC drivers/acpi/acpica/nsxfname.o CC lib/parser.o CC fs/9p/vfs_file.o CC drivers/base/swnode.o CC arch/x86/kernel/sys_ia32.o CC kernel/cpu.o CC drivers/dma-buf/sync_file.o CC drivers/acpi/acpica/nsxfobj.o AR drivers/cxl/core/built-in.a CC mm/msync.o AR drivers/cxl/built-in.a CC fs/lockd/xdr4.o CC drivers/base/auxiliary.o CC drivers/gpu/drm/i915/intel_wakeref.o CC fs/debugfs/inode.o CC fs/debugfs/file.o CC drivers/acpi/glue.o CC lib/debug_locks.o CC drivers/acpi/acpica/psargs.o CC mm/page_vma_mapped.o CC fs/nfs/namespace.o CC lib/random32.o CC kernel/exit.o CC net/ipv6/raw.o CC kernel/trace/trace_export.o CC kernel/trace/trace_event_perf.o CC fs/9p/vfs_dir.o CC arch/x86/kernel/ksysfs.o CC fs/tracefs/inode.o CC fs/9p/vfs_dentry.o CC [M] fs/efivarfs/inode.o AR drivers/tty/built-in.a CC net/sunrpc/xdr.o CC fs/tracefs/event_inode.o CC fs/9p/v9fs.o CC fs/ext4/super.o CC [M] fs/efivarfs/file.o AR drivers/dma-buf/built-in.a CC lib/bust_spinlocks.o CC drivers/macintosh/mac_hid.o AR drivers/scsi/pcmcia/built-in.a CC mm/pagewalk.o CC drivers/scsi/scsi.o CC net/ipv4/tcp_rate.o CC drivers/acpi/acpica/psloop.o CC fs/9p/fid.o AR net/ethtool/built-in.a CC drivers/base/devtmpfs.o CC drivers/base/module.o CC mm/pgtable-generic.o CC mm/rmap.o CC kernel/events/callchain.o CC kernel/time/posix-cpu-timers.o CC mm/vmalloc.o CC mm/process_vm_access.o CC arch/x86/kernel/bootflag.o CC drivers/acpi/scan.o CC drivers/acpi/mipi-disco-img.o CC kernel/time/posix-clock.o CC [M] fs/efivarfs/super.o CC kernel/trace/trace_events_filter.o CC fs/9p/xattr.o CC drivers/acpi/acpica/psobject.o CC net/mac80211/rx.o CC net/ipv6/icmp.o CC drivers/base/devcoredump.o CC net/sunrpc/sunrpc_syms.o CC fs/lockd/svc4proc.o CC drivers/acpi/acpica/psopcode.o AR drivers/macintosh/built-in.a CC lib/kasprintf.o AR fs/debugfs/built-in.a CC fs/open.o AR drivers/nvme/common/built-in.a AR drivers/nvme/host/built-in.a AR drivers/nvme/target/built-in.a CC drivers/base/platform-msi.o AR drivers/nvme/built-in.a CC drivers/ata/libata-core.o CC kernel/trace/trace_events_trigger.o CC drivers/base/physical_location.o AR drivers/net/phy/qcom/built-in.a CC drivers/firewire/init_ohci1394_dma.o CC drivers/net/phy/mdio-boardinfo.o CC drivers/gpu/drm/i915/vlv_sideband.o CC drivers/net/phy/stubs.o CC drivers/ata/libata-scsi.o CC drivers/gpu/drm/i915/vlv_suspend.o CC net/netfilter/nf_nat_core.o AR fs/tracefs/built-in.a CC [M] fs/efivarfs/vars.o CC arch/x86/kernel/e820.o CC lib/bitmap.o CC drivers/net/phy/mdio_devres.o CC drivers/cdrom/cdrom.o CC drivers/acpi/acpica/psopinfo.o CC kernel/events/hw_breakpoint.o CC drivers/base/trace.o CC fs/read_write.o CC net/sunrpc/cache.o CC kernel/trace/trace_eprobe.o AR fs/9p/built-in.a CC drivers/gpu/drm/i915/soc/intel_dram.o CC fs/file_table.o CC mm/page_alloc.o CC mm/init-mm.o CC fs/super.o CC mm/memblock.o CC net/ipv4/tcp_recovery.o CC arch/x86/kernel/pci-dma.o CC net/ipv4/tcp_ulp.o CC drivers/acpi/resource.o CC drivers/acpi/acpica/psparse.o AR drivers/firewire/built-in.a AR drivers/auxdisplay/built-in.a CC kernel/time/itimer.o CC drivers/pcmcia/cs.o CC drivers/scsi/hosts.o CC drivers/pcmcia/socket_sysfs.o CC net/netfilter/nf_nat_proto.o CC drivers/net/phy/phy.o CC kernel/softirq.o CC kernel/trace/trace_kprobe.o CC lib/scatterlist.o LD [M] fs/efivarfs/efivarfs.o CC fs/char_dev.o CC fs/lockd/procfs.o AR drivers/net/pse-pd/built-in.a CC mm/slub.o CC drivers/net/mdio/acpi_mdio.o AR drivers/base/built-in.a CC drivers/acpi/acpica/psscope.o CC kernel/events/uprobes.o CC drivers/net/phy/phy-c45.o CC net/ipv6/mcast.o CC fs/nfs/mount_clnt.o CC drivers/usb/common/common.o CC drivers/usb/core/usb.o CC drivers/net/mdio/fwnode_mdio.o CC drivers/usb/core/hub.o CC drivers/usb/common/debug.o CC drivers/acpi/acpi_processor.o CC arch/x86/kernel/quirks.o CC arch/x86/kernel/kdebugfs.o CC drivers/acpi/acpica/pstree.o CC drivers/net/phy/phy-core.o AR drivers/net/pcs/built-in.a AR drivers/net/wireless/admtek/built-in.a AR drivers/net/ethernet/3com/built-in.a CC drivers/acpi/acpica/psutils.o CC drivers/net/ethernet/8390/ne2k-pci.o AR drivers/net/wireless/ath/built-in.a AR drivers/net/wireless/atmel/built-in.a CC drivers/acpi/acpica/pswalk.o CC fs/stat.o AR drivers/net/wireless/broadcom/built-in.a AR drivers/net/wireless/intel/built-in.a AR drivers/net/wireless/intersil/built-in.a AR drivers/net/wireless/marvell/built-in.a AR drivers/net/wireless/mediatek/built-in.a AR drivers/net/wireless/microchip/built-in.a CC drivers/pcmcia/cardbus.o AR drivers/net/wireless/purelifi/built-in.a AR drivers/net/wireless/quantenna/built-in.a CC drivers/gpu/drm/i915/soc/intel_gmch.o AR drivers/net/wireless/ralink/built-in.a CC drivers/scsi/scsi_ioctl.o AR drivers/net/wireless/realtek/built-in.a CC drivers/net/ethernet/8390/8390.o AR fs/lockd/built-in.a AR drivers/net/wireless/rsi/built-in.a CC kernel/time/clockevents.o AR drivers/net/wireless/silabs/built-in.a AR drivers/usb/phy/built-in.a CC kernel/time/tick-common.o AR drivers/net/wireless/st/built-in.a AR drivers/net/wireless/ti/built-in.a CC drivers/input/serio/serio.o AR drivers/net/wireless/zydas/built-in.a CC drivers/acpi/acpica/psxface.o AR drivers/net/wireless/virtual/built-in.a CC drivers/input/mouse/psmouse-base.o CC drivers/input/keyboard/atkbd.o AR drivers/net/wireless/built-in.a CC net/ipv4/tcp_offload.o CC net/ipv4/tcp_plb.o CC net/netfilter/nf_nat_helper.o CC drivers/acpi/acpica/rsaddr.o CC net/ipv4/datagram.o AR drivers/cdrom/built-in.a CC net/netfilter/nf_nat_masquerade.o AR drivers/net/ethernet/adaptec/built-in.a AR drivers/input/joystick/built-in.a CC fs/exec.o AR drivers/net/usb/built-in.a AR drivers/usb/common/built-in.a CC drivers/rtc/lib.o CC drivers/net/phy/phy_device.o AR drivers/net/ethernet/agere/built-in.a CC drivers/usb/mon/mon_main.o CC drivers/usb/host/pci-quirks.o CC lib/list_sort.o CC lib/uuid.o CC arch/x86/kernel/alternative.o AR drivers/net/mdio/built-in.a CC arch/x86/kernel/i8253.o CC drivers/usb/class/usblp.o CC drivers/acpi/acpica/rscalc.o CC drivers/usb/storage/scsiglue.o CC drivers/usb/core/hcd.o AR drivers/usb/misc/built-in.a CC drivers/acpi/acpica/rscreate.o CC drivers/pcmcia/ds.o CC drivers/acpi/acpica/rsdumpinfo.o CC lib/iov_iter.o CC arch/x86/kernel/hw_breakpoint.o CC fs/nfs/nfstrace.o CC net/sunrpc/rpc_pipe.o CC drivers/acpi/acpica/rsinfo.o CC drivers/input/mouse/synaptics.o CC drivers/usb/early/ehci-dbgp.o CC lib/clz_ctz.o CC drivers/net/phy/linkmode.o CC drivers/input/serio/i8042.o CC drivers/usb/mon/mon_stat.o CC drivers/rtc/class.o CC arch/x86/kernel/tsc.o CC drivers/acpi/acpica/rsio.o CC drivers/scsi/scsicam.o CC drivers/gpu/drm/i915/soc/intel_pch.o CC drivers/acpi/acpica/rsirq.o AR drivers/i3c/built-in.a CC drivers/i2c/algos/i2c-algo-bit.o CC kernel/trace/error_report-traces.o CC mm/madvise.o CC drivers/i2c/busses/i2c-i801.o AR drivers/i2c/muxes/built-in.a CC drivers/i2c/i2c-boardinfo.o AR kernel/events/built-in.a AR drivers/media/i2c/built-in.a AR drivers/net/ethernet/8390/built-in.a AR drivers/pps/clients/built-in.a AR drivers/media/tuners/built-in.a AR drivers/pps/generators/built-in.a AR drivers/net/ethernet/alacritech/built-in.a CC drivers/pps/pps.o AR drivers/input/keyboard/built-in.a AR drivers/media/rc/keymaps/built-in.a CC drivers/pps/kapi.o AR drivers/net/ethernet/alteon/built-in.a AR drivers/media/rc/built-in.a AR drivers/net/ethernet/amazon/built-in.a AR drivers/media/common/b2c2/built-in.a CC kernel/time/tick-broadcast.o AR drivers/net/ethernet/amd/built-in.a AR drivers/media/common/saa7146/built-in.a AR drivers/net/ethernet/aquantia/built-in.a CC drivers/pps/sysfs.o AR drivers/media/common/siano/built-in.a AR drivers/net/ethernet/arc/built-in.a AR drivers/media/common/v4l2-tpg/built-in.a AR drivers/net/ethernet/asix/built-in.a AR drivers/media/common/videobuf2/built-in.a CC drivers/usb/host/ehci-hcd.o AR drivers/net/ethernet/atheros/built-in.a AR drivers/media/common/built-in.a AR drivers/net/ethernet/cadence/built-in.a CC drivers/net/ethernet/broadcom/bnx2.o AR drivers/media/platform/allegro-dvt/built-in.a AR drivers/media/platform/amlogic/meson-ge2d/built-in.a AR drivers/media/pci/ttpci/built-in.a AR drivers/media/platform/amlogic/built-in.a CC drivers/acpi/acpica/rslist.o AR drivers/media/pci/b2c2/built-in.a AR drivers/media/pci/pluto2/built-in.a AR drivers/media/platform/amphion/built-in.a CC drivers/usb/host/ehci-pci.o CC drivers/acpi/acpica/rsmemory.o AR drivers/media/pci/dm1105/built-in.a AR drivers/media/platform/aspeed/built-in.a AR drivers/media/pci/pt1/built-in.a AR drivers/media/platform/atmel/built-in.a CC drivers/usb/mon/mon_text.o AR drivers/media/pci/pt3/built-in.a AR drivers/media/platform/broadcom/built-in.a AR drivers/usb/class/built-in.a CC drivers/usb/storage/protocol.o AR drivers/media/pci/mantis/built-in.a AR drivers/media/platform/cadence/built-in.a CC drivers/usb/mon/mon_bin.o AR drivers/media/pci/ngene/built-in.a AR drivers/media/platform/chips-media/coda/built-in.a AR drivers/media/pci/ddbridge/built-in.a AR drivers/media/platform/chips-media/wave5/built-in.a CC drivers/usb/storage/transport.o AR drivers/media/pci/saa7146/built-in.a AR drivers/media/platform/chips-media/built-in.a CC drivers/usb/storage/usb.o CC drivers/rtc/interface.o AR drivers/media/pci/smipcie/built-in.a AR drivers/media/platform/intel/built-in.a AR drivers/media/pci/netup_unidvb/built-in.a AR drivers/media/platform/marvell/built-in.a CC net/netfilter/nf_nat_ftp.o AR drivers/media/pci/intel/ipu3/built-in.a AR drivers/media/platform/mediatek/jpeg/built-in.a AR drivers/media/pci/intel/ivsc/built-in.a AR drivers/usb/early/built-in.a CC drivers/net/phy/mdio_bus.o AR drivers/media/pci/intel/built-in.a AR drivers/media/platform/mediatek/mdp/built-in.a AR drivers/media/pci/built-in.a CC net/ipv4/raw.o AR drivers/media/platform/mediatek/vpu/built-in.a AR drivers/media/platform/mediatek/vcodec/common/built-in.a CC drivers/net/ethernet/broadcom/tg3.o AR drivers/media/platform/mediatek/vcodec/encoder/built-in.a AR drivers/media/platform/mediatek/vcodec/decoder/built-in.a CC drivers/i2c/i2c-core-base.o AR drivers/media/platform/mediatek/vcodec/built-in.a CC drivers/i2c/i2c-core-smbus.o CC drivers/scsi/scsi_error.o CC drivers/pcmcia/pcmcia_resource.o AR drivers/media/platform/mediatek/mdp3/built-in.a CC drivers/i2c/i2c-core-acpi.o CC net/netfilter/nf_nat_irc.o AR drivers/media/platform/mediatek/built-in.a CC drivers/rtc/nvmem.o AR drivers/media/platform/microchip/built-in.a AR drivers/pps/built-in.a CC drivers/acpi/acpica/rsmisc.o CC net/netfilter/nf_nat_sip.o AR drivers/media/platform/nuvoton/built-in.a CC kernel/trace/power-traces.o CC net/ipv6/reassembly.o AR drivers/media/platform/nvidia/tegra-vde/built-in.a AR drivers/media/platform/nvidia/built-in.a AR drivers/media/platform/nxp/dw100/built-in.a AR drivers/media/platform/nxp/imx-jpeg/built-in.a AR drivers/media/platform/nxp/imx8-isi/built-in.a CC kernel/time/tick-broadcast-hrtimer.o AR drivers/media/platform/nxp/built-in.a AR drivers/media/platform/qcom/camss/built-in.a AR drivers/media/platform/qcom/venus/built-in.a AR drivers/media/platform/qcom/built-in.a CC drivers/input/mouse/focaltech.o AR drivers/i2c/algos/built-in.a CC drivers/ata/libata-eh.o CC drivers/scsi/scsi_lib.o AR drivers/media/platform/renesas/rcar-vin/built-in.a CC drivers/input/serio/serport.o CC arch/x86/kernel/tsc_msr.o AR drivers/media/platform/renesas/rzg2l-cru/built-in.a AR drivers/media/platform/renesas/vsp1/built-in.a CC drivers/gpu/drm/i915/i915_memcpy.o CC drivers/scsi/constants.o AR drivers/media/platform/renesas/built-in.a AR drivers/media/platform/rockchip/rga/built-in.a AR drivers/media/platform/rockchip/rkisp1/built-in.a CC drivers/usb/core/urb.o AR drivers/media/platform/rockchip/built-in.a CC drivers/gpu/drm/i915/i915_mm.o CC net/sunrpc/sysfs.o AR drivers/media/platform/samsung/exynos4-is/built-in.a AR drivers/media/platform/samsung/exynos-gsc/built-in.a AR drivers/media/platform/st/sti/bdisp/built-in.a CC net/ipv6/tcp_ipv6.o AR drivers/media/platform/samsung/s3c-camif/built-in.a AR drivers/media/platform/samsung/s5p-g2d/built-in.a AR drivers/media/platform/st/sti/c8sectpfe/built-in.a AR drivers/media/platform/st/sti/delta/built-in.a AR drivers/media/platform/samsung/s5p-jpeg/built-in.a CC drivers/input/serio/libps2.o AR drivers/media/platform/samsung/s5p-mfc/built-in.a CC net/sunrpc/svc_xprt.o AR drivers/media/platform/samsung/built-in.a AR drivers/media/platform/st/sti/hva/built-in.a AR drivers/media/platform/st/stm32/built-in.a CC drivers/gpu/drm/i915/i915_sw_fence.o AR drivers/media/platform/st/built-in.a AR drivers/net/ethernet/brocade/built-in.a CC drivers/gpu/drm/i915/i915_sw_fence_work.o AR drivers/net/ethernet/cavium/common/built-in.a AR drivers/media/platform/sunxi/sun4i-csi/built-in.a AR drivers/net/ethernet/cavium/thunder/built-in.a AR drivers/i2c/busses/built-in.a AR drivers/net/ethernet/cavium/liquidio/built-in.a AR drivers/net/ethernet/cavium/octeon/built-in.a AR drivers/media/platform/sunxi/sun6i-csi/built-in.a CC drivers/usb/host/ohci-hcd.o CC arch/x86/kernel/io_delay.o AR drivers/net/ethernet/cavium/built-in.a CC drivers/acpi/acpica/rsserial.o AR drivers/media/platform/sunxi/sun6i-mipi-csi2/built-in.a CC drivers/i2c/i2c-smbus.o AR drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/built-in.a CC kernel/time/tick-oneshot.o AR drivers/media/platform/sunxi/sun8i-di/built-in.a CC drivers/ata/libata-transport.o CC drivers/acpi/acpica/rsutils.o AR drivers/media/platform/sunxi/sun8i-rotate/built-in.a AR drivers/media/platform/sunxi/built-in.a AR drivers/media/platform/ti/am437x/built-in.a AR drivers/media/platform/ti/cal/built-in.a AR drivers/media/platform/ti/vpe/built-in.a AR drivers/media/platform/ti/davinci/built-in.a AR drivers/media/platform/ti/j721e-csi2rx/built-in.a AR drivers/media/platform/ti/omap/built-in.a CC arch/x86/kernel/rtc.o AR drivers/media/platform/ti/omap3isp/built-in.a AR drivers/media/platform/ti/built-in.a AR drivers/usb/mon/built-in.a CC mm/page_io.o AR drivers/media/platform/verisilicon/built-in.a CC arch/x86/kernel/resource.o CC lib/bsearch.o AR drivers/media/platform/via/built-in.a CC fs/nfs/export.o AR drivers/media/platform/xilinx/built-in.a AR drivers/media/platform/built-in.a CC drivers/usb/storage/initializers.o CC drivers/ptp/ptp_clock.o CC drivers/usb/storage/sierra_ms.o CC drivers/input/mouse/alps.o AR drivers/media/usb/b2c2/built-in.a CC drivers/usb/storage/option_ms.o CC kernel/time/tick-sched.o CC kernel/resource.o CC drivers/pcmcia/cistpl.o AR drivers/media/usb/dvb-usb/built-in.a CC fs/pipe.o AR drivers/media/usb/dvb-usb-v2/built-in.a AR drivers/media/usb/s2255/built-in.a CC drivers/usb/host/ohci-pci.o AR drivers/media/usb/siano/built-in.a CC net/mac80211/spectmgmt.o AR drivers/media/usb/ttusb-budget/built-in.a CC kernel/time/timer_migration.o AR drivers/media/usb/ttusb-dec/built-in.a AR drivers/media/usb/built-in.a CC net/ipv6/ping.o CC drivers/usb/host/uhci-hcd.o CC drivers/acpi/acpica/rsxface.o CC net/netfilter/x_tables.o AR drivers/media/mmc/siano/built-in.a AR drivers/media/mmc/built-in.a CC drivers/net/phy/mdio_device.o AR drivers/media/firewire/built-in.a CC drivers/ata/libata-trace.o AR drivers/media/spi/built-in.a AR drivers/input/serio/built-in.a AR drivers/media/test-drivers/built-in.a CC drivers/power/supply/power_supply_core.o AR drivers/media/built-in.a CC drivers/usb/core/message.o CC drivers/rtc/dev.o CC drivers/power/supply/power_supply_sysfs.o CC drivers/pcmcia/pcmcia_cis.o AS arch/x86/kernel/irqflags.o CC drivers/gpu/drm/i915/i915_syncmap.o CC arch/x86/kernel/static_call.o CC drivers/power/supply/power_supply_leds.o CC lib/find_bit.o CC drivers/hwmon/hwmon.o CC kernel/time/vsyscall.o CC drivers/scsi/scsi_lib_dma.o CC net/ipv4/udp.o CC drivers/acpi/acpica/tbdata.o CC drivers/ata/libata-sata.o CC net/sunrpc/xprtmultipath.o CC net/mac80211/tx.o CC drivers/usb/storage/usual-tables.o CC lib/llist.o CC drivers/gpu/drm/i915/i915_user_extensions.o AR drivers/gpu/drm/xlnx/built-in.a AR drivers/i2c/built-in.a CC drivers/usb/host/xhci.o CC kernel/trace/rpm-traces.o AR drivers/thermal/broadcom/built-in.a CC mm/swap_state.o AR drivers/thermal/samsung/built-in.a CC lib/lwq.o CC drivers/thermal/intel/intel_tcc.o CC arch/x86/kernel/process.o CC drivers/thermal/intel/therm_throt.o CC drivers/ptp/ptp_chardev.o CC mm/swapfile.o CC drivers/rtc/proc.o CC [M] drivers/thermal/intel/x86_pkg_temp_thermal.o CC drivers/gpu/drm/i915/i915_debugfs.o AR net/wireless/built-in.a CC drivers/usb/host/xhci-mem.o CC drivers/power/supply/power_supply_hwmon.o CC lib/memweight.o CC drivers/net/phy/swphy.o AR drivers/gpu/drm/gud/built-in.a CC kernel/time/timekeeping_debug.o CC drivers/acpi/processor_core.o CC drivers/acpi/acpica/tbfadt.o CC drivers/rtc/sysfs.o CC lib/kfifo.o CC drivers/net/mii.o CC drivers/ptp/ptp_sysfs.o CC drivers/scsi/scsi_scan.o GEN drivers/scsi/scsi_devinfo_tbl.c CC net/mac80211/key.o CC drivers/acpi/processor_pdc.o AR drivers/usb/storage/built-in.a CC drivers/scsi/scsi_devinfo.o CC drivers/ptp/ptp_vclock.o CC drivers/scsi/scsi_sysctl.o CC drivers/acpi/ec.o CC drivers/pcmcia/rsrc_mgr.o CC net/mac80211/util.o CC arch/x86/kernel/ptrace.o CC drivers/usb/core/driver.o CC drivers/input/mouse/byd.o AR drivers/power/supply/built-in.a AR drivers/power/built-in.a AR drivers/watchdog/built-in.a CC drivers/ata/libata-sff.o CC drivers/md/md.o CC drivers/acpi/acpica/tbfind.o AR drivers/hwmon/built-in.a CC drivers/md/md-bitmap.o CC arch/x86/kernel/tls.o CC drivers/scsi/scsi_proc.o CC drivers/rtc/rtc-mc146818-lib.o CC drivers/acpi/acpica/tbinstal.o CC kernel/time/namespace.o CC fs/namei.o CC drivers/usb/host/xhci-ext-caps.o CC kernel/trace/trace_dynevent.o CC drivers/acpi/acpica/tbprint.o CC lib/percpu-refcount.o CC drivers/scsi/scsi_debugfs.o CC drivers/input/mouse/logips2pp.o CC drivers/net/phy/fixed_phy.o AR drivers/thermal/st/built-in.a AR drivers/thermal/intel/built-in.a CC drivers/input/mouse/lifebook.o CC drivers/ata/libata-pmp.o AR drivers/thermal/qcom/built-in.a CC net/netfilter/xt_tcpudp.o CC drivers/pcmcia/rsrc_nonstatic.o AR drivers/thermal/tegra/built-in.a CC drivers/input/mouse/trackpoint.o CC drivers/ata/libata-acpi.o AR drivers/thermal/mediatek/built-in.a CC mm/swap_slots.o CC drivers/thermal/thermal_core.o CC lib/rhashtable.o CC drivers/ptp/ptp_kvm_x86.o CC net/ipv6/exthdrs.o CC drivers/acpi/acpica/tbutils.o CC drivers/scsi/scsi_trace.o CC drivers/input/mouse/cypress_ps2.o CC drivers/ata/libata-pata-timings.o CC net/ipv6/datagram.o CC fs/nfs/sysfs.o CC net/sunrpc/stats.o CC drivers/gpu/drm/i915/i915_debugfs_params.o CC arch/x86/kernel/step.o CC drivers/rtc/rtc-cmos.o CC drivers/thermal/thermal_sysfs.o AR kernel/time/built-in.a CC kernel/sysctl.o CC arch/x86/kernel/i8237.o CC fs/nfs/fs_context.o CC net/ipv6/ip6_flowlabel.o CC drivers/gpu/drm/i915/i915_pmu.o CC drivers/usb/host/xhci-ring.o CC drivers/acpi/acpica/tbxface.o CC fs/nfs/nfsroot.o CC drivers/input/mouse/psmouse-smbus.o CC drivers/scsi/scsi_logging.o CC drivers/usb/core/config.o CC arch/x86/kernel/stacktrace.o CC arch/x86/kernel/reboot.o CC kernel/trace/trace_probe.o CC mm/dmapool.o CC lib/base64.o CC drivers/ptp/ptp_kvm_common.o AR drivers/gpu/drm/solomon/built-in.a CC [M] drivers/gpu/drm/scheduler/sched_main.o CC lib/once.o CC drivers/net/phy/realtek.o CC drivers/pcmcia/yenta_socket.o CC lib/refcount.o CC drivers/acpi/dock.o CC arch/x86/kernel/msr.o CC drivers/acpi/acpica/tbxfload.o CC kernel/capability.o CC drivers/usb/core/file.o CC fs/ext4/symlink.o AR drivers/net/ethernet/chelsio/built-in.a CC net/mac80211/parse.o AR drivers/net/ethernet/cisco/built-in.a CC drivers/ata/ahci.o CC fs/ext4/sysfs.o CC net/mac80211/wme.o CC drivers/usb/host/xhci-hub.o CC drivers/md/md-autodetect.o CC drivers/cpufreq/cpufreq.o CC lib/rcuref.o CC net/netfilter/xt_CONNSECMARK.o CC drivers/cpufreq/freq_table.o CC [M] drivers/gpu/drm/scheduler/sched_fence.o AR drivers/input/mouse/built-in.a AR drivers/rtc/built-in.a AR drivers/input/tablet/built-in.a CC drivers/acpi/acpica/tbxfroot.o AR drivers/input/touchscreen/built-in.a CC net/ipv4/udplite.o CC mm/hugetlb.o CC drivers/cpuidle/governors/menu.o AR drivers/input/misc/built-in.a CC drivers/input/input.o CC drivers/cpuidle/cpuidle.o CC lib/usercopy.o CC drivers/scsi/scsi_pm.o CC drivers/thermal/thermal_trip.o AR drivers/ptp/built-in.a CC drivers/cpuidle/driver.o CC arch/x86/kernel/cpuid.o CC mm/mmu_notifier.o CC [M] drivers/gpu/drm/scheduler/sched_entity.o CC drivers/usb/core/buffer.o CC [M] drivers/gpu/drm/xe/xe_bb.o CC drivers/cpufreq/cpufreq_performance.o CC [M] drivers/gpu/drm/xe/xe_bo.o CC net/mac80211/chan.o CC kernel/trace/trace_uprobe.o CC lib/errseq.o CC drivers/cpufreq/cpufreq_userspace.o CC drivers/acpi/acpica/utaddress.o CC net/ipv6/inet6_connection_sock.o CC drivers/acpi/acpica/utalloc.o CC [M] drivers/gpu/drm/xe/xe_bo_evict.o CC kernel/trace/rethook.o CC drivers/gpu/drm/i915/gt/gen2_engine_cs.o CC lib/bucket_locks.o CC fs/ext4/xattr.o CC drivers/thermal/thermal_helpers.o CC drivers/cpuidle/governors/haltpoll.o AR drivers/net/phy/built-in.a CC fs/ext4/xattr_hurd.o CC drivers/net/loopback.o CC drivers/cpuidle/governor.o CC net/ipv6/udp_offload.o AR drivers/net/ethernet/cortina/built-in.a AR drivers/pcmcia/built-in.a AR drivers/net/ethernet/dec/tulip/built-in.a CC lib/generic-radix-tree.o CC lib/bitmap-str.o AR drivers/net/ethernet/dec/built-in.a CC lib/string_helpers.o CC kernel/ptrace.o CC arch/x86/kernel/early-quirks.o CC drivers/thermal/thermal_hwmon.o CC net/mac80211/trace.o CC drivers/acpi/acpica/utascii.o CC drivers/scsi/scsi_bsg.o CC fs/fcntl.o CC net/mac80211/mlme.o CC drivers/ata/libahci.o LD [M] drivers/gpu/drm/scheduler/gpu-sched.o CC fs/ioctl.o CC drivers/usb/core/sysfs.o CC mm/migrate.o CC net/netfilter/xt_NFLOG.o CC net/mac80211/tdls.o CC drivers/cpufreq/cpufreq_ondemand.o CC drivers/thermal/gov_step_wise.o CC drivers/cpuidle/sysfs.o CC net/ipv4/udp_offload.o CC fs/nfs/sysctl.o CC drivers/cpufreq/cpufreq_governor.o CC drivers/cpufreq/cpufreq_governor_attr_set.o CC mm/page_counter.o CC drivers/acpi/acpica/utbuffer.o CC net/sunrpc/sysctl.o CC drivers/thermal/gov_user_space.o CC fs/readdir.o CC fs/ext4/xattr_trusted.o CC drivers/md/dm.o CC drivers/gpu/drm/drm_aperture.o CC drivers/cpuidle/poll_state.o CC drivers/input/input-compat.o CC mm/hugetlb_cgroup.o CC drivers/usb/host/xhci-dbg.o CC drivers/gpu/drm/i915/gt/gen6_engine_cs.o CC fs/nfs/nfs3super.o AR drivers/cpuidle/governors/built-in.a CC net/ipv6/seg6.o CC drivers/usb/core/endpoint.o CC lib/hexdump.o CC drivers/acpi/acpica/utcksum.o CC drivers/input/input-mt.o CC arch/x86/kernel/smp.o CC drivers/cpuidle/cpuidle-haltpoll.o CC drivers/scsi/scsi_common.o CC drivers/usb/host/xhci-trace.o CC net/ipv4/arp.o CC [M] drivers/gpu/drm/xe/xe_debugfs.o AR drivers/thermal/built-in.a CC drivers/usb/host/xhci-debugfs.o AR drivers/mmc/built-in.a CC drivers/usb/host/xhci-pci.o CC lib/kstrtox.o CC drivers/gpu/drm/drm_atomic.o CC drivers/acpi/pci_root.o CC drivers/cpufreq/acpi-cpufreq.o CC drivers/scsi/scsi_transport_spi.o CC net/netfilter/xt_SECMARK.o CC arch/x86/kernel/smpboot.o CC kernel/user.o CC drivers/usb/core/devio.o AR net/sunrpc/built-in.a CC mm/early_ioremap.o CC drivers/acpi/acpica/utcopy.o CC fs/select.o CC arch/x86/kernel/tsc_sync.o CC net/ipv4/icmp.o AR drivers/cpuidle/built-in.a AR kernel/trace/built-in.a CC drivers/acpi/pci_link.o CC net/ipv6/fib6_notifier.o AR drivers/net/ethernet/dlink/built-in.a CC net/ipv6/rpl.o CC drivers/cpufreq/amd-pstate.o CC net/mac80211/ocb.o CC fs/dcache.o CC net/ipv4/devinet.o CC net/mac80211/airtime.o CC lib/iomap.o CC kernel/signal.o CC drivers/input/input-poller.o CC [M] drivers/gpu/drm/xe/xe_devcoredump.o CC net/mac80211/eht.o CC mm/secretmem.o CC drivers/acpi/acpica/utexcep.o CC drivers/gpu/drm/i915/gt/gen6_ppgtt.o CC fs/inode.o CC drivers/scsi/virtio_scsi.o CC fs/nfs/nfs3client.o CC fs/attr.o CC fs/ext4/xattr_user.o CC drivers/ata/ata_piix.o CC drivers/gpu/drm/i915/gt/gen7_renderclear.o CC net/netfilter/xt_TCPMSS.o CC mm/hmm.o CC drivers/acpi/acpica/utdebug.o CC fs/nfs/nfs3proc.o CC net/ipv6/ioam6.o CC net/ipv4/af_inet.o CC net/ipv6/sysctl_net_ipv6.o CC arch/x86/kernel/setup_percpu.o CC fs/bad_inode.o CC drivers/acpi/pci_irq.o CC drivers/input/ff-core.o CC arch/x86/kernel/mpparse.o CC lib/iomap_copy.o CC drivers/acpi/acpica/utdecode.o CC drivers/acpi/acpi_apd.o CC drivers/net/netconsole.o CC net/netfilter/xt_conntrack.o CC net/ipv6/xfrm6_policy.o CC lib/devres.o CC drivers/gpu/drm/drm_atomic_uapi.o CC fs/ext4/fast_commit.o CC drivers/cpufreq/amd-pstate-trace.o CC [M] drivers/gpu/drm/xe/xe_device.o CC fs/ext4/orphan.o CC [M] drivers/gpu/drm/xe/xe_device_sysfs.o CC kernel/sys.o CC drivers/acpi/acpica/utdelete.o CC drivers/acpi/acpi_platform.o CC drivers/net/virtio_net.o CC arch/x86/kernel/trace_clock.o CC drivers/input/touchscreen.o CC drivers/md/dm-table.o CC mm/memfd.o CC net/mac80211/led.o CC kernel/umh.o CC drivers/input/ff-memless.o CC fs/file.o CC drivers/acpi/acpi_pnp.o CC fs/nfs/nfs3xdr.o CC drivers/scsi/sd.o CC kernel/workqueue.o CC lib/check_signature.o CC kernel/pid.o CC drivers/scsi/sr.o CC drivers/usb/core/notify.o CC net/ipv6/xfrm6_state.o CC drivers/gpu/drm/i915/gt/gen8_engine_cs.o CC drivers/acpi/acpica/uterror.o CC lib/interval_tree.o CC drivers/ata/pata_amd.o AR drivers/usb/host/built-in.a CC drivers/acpi/acpica/uteval.o CC net/netfilter/xt_policy.o CC fs/filesystems.o CC fs/namespace.o CC arch/x86/kernel/trace.o CC arch/x86/kernel/rethook.o CC drivers/net/net_failover.o CC net/ipv6/xfrm6_input.o CC drivers/cpufreq/intel_pstate.o CC net/mac80211/pm.o CC lib/assoc_array.o CC drivers/acpi/power.o CC net/ipv6/xfrm6_output.o AR drivers/ufs/built-in.a AR drivers/leds/trigger/built-in.a CC net/ipv6/xfrm6_protocol.o CC drivers/acpi/acpica/utglobal.o AR drivers/leds/blink/built-in.a CC net/ipv4/igmp.o AR drivers/net/ethernet/broadcom/built-in.a AR drivers/leds/simple/built-in.a CC net/ipv6/netfilter.o CC drivers/leds/led-core.o AR drivers/net/ethernet/emulex/built-in.a CC net/mac80211/rc80211_minstrel_ht.o AR drivers/net/ethernet/engleder/built-in.a CC fs/seq_file.o CC [M] drivers/gpu/drm/xe/xe_dma_buf.o CC fs/xattr.o CC drivers/usb/core/generic.o AR drivers/net/ethernet/ezchip/built-in.a CC drivers/input/sparse-keymap.o CC lib/bitrev.o AR drivers/net/ethernet/fujitsu/built-in.a AR drivers/net/ethernet/fungible/built-in.a CC drivers/input/vivaldi-fmap.o CC mm/ptdump.o AR drivers/net/ethernet/google/built-in.a AR drivers/net/ethernet/huawei/built-in.a CC kernel/task_work.o CC drivers/net/ethernet/intel/e1000/e1000_main.o CC drivers/net/ethernet/intel/e1000e/82571.o AR drivers/firmware/arm_ffa/built-in.a CC drivers/net/ethernet/intel/e1000e/ich8lan.o AR drivers/firmware/arm_scmi/built-in.a AR drivers/firmware/broadcom/built-in.a CC arch/x86/kernel/vmcore_info_32.o CC drivers/acpi/acpica/uthex.o AR drivers/firmware/cirrus/built-in.a AR drivers/firmware/meson/built-in.a CC kernel/extable.o AR drivers/firmware/microchip/built-in.a CC drivers/net/ethernet/intel/e1000e/80003es2lan.o CC lib/crc-ccitt.o CC lib/crc16.o CC drivers/leds/led-class.o CC drivers/firmware/efi/efi-bgrt.o CC drivers/scsi/sr_ioctl.o CC net/ipv4/fib_frontend.o CC drivers/firmware/efi/libstub/efi-stub-helper.o CC drivers/ata/pata_oldpiix.o CC drivers/firmware/efi/libstub/gop.o CC drivers/net/ethernet/intel/e1000e/mac.o CC kernel/params.o CC drivers/input/input-leds.o CC kernel/kthread.o CC mm/execmem.o CC drivers/acpi/acpica/utids.o CC drivers/usb/core/quirks.o CC net/ipv6/proc.o CC drivers/md/dm-target.o CC net/netfilter/xt_state.o CC net/ipv4/fib_semantics.o HOSTCC lib/gen_crc32table CC kernel/sys_ni.o CC kernel/nsproxy.o CC drivers/gpu/drm/i915/gt/gen8_ppgtt.o CC arch/x86/kernel/machine_kexec_32.o CC lib/xxhash.o CC [M] drivers/gpu/drm/xe/xe_drm_client.o CC kernel/notifier.o AR drivers/firmware/imx/built-in.a AR drivers/firmware/psci/built-in.a AR drivers/firmware/qcom/built-in.a CC net/ipv6/syncookies.o CC drivers/leds/led-triggers.o CC net/ipv6/calipso.o CC drivers/firmware/efi/efi.o CC drivers/acpi/acpica/utinit.o CC [M] net/netfilter/nf_log_syslog.o CC drivers/md/dm-linear.o CC kernel/ksysfs.o CC drivers/input/evdev.o CC fs/libfs.o AR mm/built-in.a CC net/mac80211/wbrf.o CC drivers/scsi/sr_vendor.o CC drivers/firmware/efi/vars.o CC drivers/firmware/efi/libstub/secureboot.o CC fs/ext4/acl.o CC drivers/firmware/efi/reboot.o CC drivers/ata/pata_sch.o CC drivers/usb/core/devices.o CC drivers/acpi/acpica/utlock.o CC lib/genalloc.o CC drivers/scsi/sg.o CC fs/nfs/nfs3acl.o CC drivers/net/ethernet/intel/e1000e/manage.o CC fs/ext4/xattr_security.o AS arch/x86/kernel/relocate_kernel_32.o CC arch/x86/kernel/crash_dump_32.o CC kernel/cred.o CC fs/nfs/nfs4proc.o AR drivers/cpufreq/built-in.a AR drivers/crypto/stm32/built-in.a CC drivers/net/ethernet/intel/e1000e/nvm.o AR drivers/crypto/xilinx/built-in.a AR drivers/leds/built-in.a AR drivers/crypto/hisilicon/built-in.a CC drivers/clocksource/acpi_pm.o AR drivers/crypto/intel/keembay/built-in.a CC drivers/md/dm-stripe.o CC drivers/acpi/acpica/utmath.o AR drivers/crypto/intel/ixp4xx/built-in.a CC drivers/hid/usbhid/hid-core.o CC drivers/acpi/acpica/utmisc.o AR drivers/crypto/intel/built-in.a CC drivers/hid/usbhid/hiddev.o CC drivers/hid/hid-core.o AR drivers/crypto/starfive/built-in.a AR drivers/crypto/built-in.a CC drivers/md/dm-ioctl.o CC drivers/mailbox/mailbox.o AR drivers/platform/x86/amd/built-in.a CC drivers/mailbox/pcc.o AR drivers/platform/x86/intel/built-in.a CC drivers/firmware/efi/libstub/tpm.o CC drivers/platform/x86/wmi.o CC drivers/ata/pata_mpiix.o CC drivers/hid/hid-input.o CC drivers/gpu/drm/drm_auth.o CC [M] net/netfilter/xt_mark.o CC lib/percpu_counter.o CC kernel/reboot.o CC drivers/ata/ata_generic.o CC [M] net/netfilter/xt_nat.o CC drivers/usb/core/phy.o CC kernel/async.o AR drivers/input/built-in.a AR drivers/perf/built-in.a CC net/ipv4/fib_trie.o AR drivers/hwtracing/intel_th/built-in.a CC drivers/acpi/acpica/utmutex.o CC lib/audit.o CC arch/x86/kernel/crash.o CC [M] drivers/gpu/drm/xe/xe_exec.o CC drivers/hid/hid-quirks.o CC drivers/net/ethernet/intel/e1000e/phy.o CC drivers/clocksource/i8253.o AR drivers/platform/surface/built-in.a AR fs/ext4/built-in.a CC net/ipv6/ah6.o CC fs/fs-writeback.o CC kernel/range.o CC drivers/gpu/drm/i915/gt/intel_breadcrumbs.o CC fs/pnode.o CC fs/splice.o CC drivers/net/ethernet/intel/e1000/e1000_hw.o CC drivers/firmware/efi/libstub/file.o AR drivers/mailbox/built-in.a CC drivers/hid/hid-debug.o AR drivers/android/built-in.a CC drivers/platform/x86/wmi-bmof.o CC drivers/hid/hidraw.o CC fs/sync.o CC drivers/platform/x86/eeepc-laptop.o CC drivers/net/ethernet/intel/e1000e/param.o CC drivers/acpi/acpica/utnonansi.o AR drivers/nvmem/layouts/built-in.a CC drivers/net/ethernet/intel/e1000e/ethtool.o CC drivers/net/ethernet/intel/e1000e/netdev.o CC drivers/nvmem/core.o CC drivers/net/ethernet/intel/e1000/e1000_ethtool.o CC kernel/smpboot.o CC drivers/net/ethernet/intel/e1000/e1000_param.o CC drivers/net/ethernet/intel/e100.o AR drivers/clocksource/built-in.a CC drivers/net/ethernet/intel/e1000e/ptp.o CC lib/syscall.o CC drivers/scsi/scsi_sysfs.o CC kernel/ucount.o CC kernel/regset.o CC drivers/usb/core/port.o CC drivers/firmware/efi/libstub/mem.o CC kernel/ksyms_common.o CC drivers/firmware/efi/libstub/random.o CC drivers/hid/usbhid/hid-pidff.o CC arch/x86/kernel/module.o CC drivers/acpi/acpica/utobject.o AR drivers/ata/built-in.a CC drivers/gpu/drm/i915/gt/intel_context.o CC [M] net/netfilter/xt_LOG.o CC [M] net/netfilter/xt_MASQUERADE.o CC net/ipv4/fib_notifier.o CC drivers/usb/core/hcd-pci.o CC drivers/acpi/acpica/utosi.o CC kernel/groups.o CC drivers/firmware/efi/libstub/randomalloc.o CC [M] drivers/gpu/drm/xe/xe_execlist.o CC fs/nfs/nfs4xdr.o CC net/ipv6/esp6.o CC drivers/gpu/drm/drm_blend.o CC [M] net/netfilter/xt_addrtype.o CC drivers/gpu/drm/drm_bridge.o CC drivers/acpi/event.o CC lib/errname.o CC drivers/hid/hid-generic.o CC drivers/acpi/acpica/utownerid.o CC drivers/hid/hid-a4tech.o CC lib/nlattr.o CC drivers/md/dm-io.o CC drivers/hid/hid-apple.o CC arch/x86/kernel/doublefault_32.o CC drivers/gpu/drm/drm_cache.o CC arch/x86/kernel/early_printk.o CC drivers/acpi/evged.o CC net/ipv4/inet_fragment.o AR drivers/net/ethernet/i825xx/built-in.a CC drivers/gpu/drm/i915/gt/intel_context_sseu.o CC drivers/gpu/drm/i915/gt/intel_engine_cs.o CC drivers/usb/core/usb-acpi.o CC drivers/platform/x86/p2sb.o CC drivers/gpu/drm/i915/gt/intel_engine_heartbeat.o AR drivers/nvmem/built-in.a CC drivers/gpu/drm/i915/gt/intel_engine_pm.o CC drivers/gpu/drm/i915/gt/intel_engine_user.o CC drivers/hid/hid-belkin.o CC drivers/firmware/efi/libstub/pci.o CC drivers/acpi/acpica/utpredef.o CC drivers/hid/hid-cherry.o CC fs/utimes.o CC kernel/kcmp.o CC lib/cpu_rmap.o CC drivers/firmware/efi/memattr.o CC arch/x86/kernel/hpet.o CC drivers/gpu/drm/drm_client.o CC drivers/gpu/drm/i915/gt/intel_execlists_submission.o CC net/ipv4/ping.o AR drivers/hid/usbhid/built-in.a CC fs/d_path.o CC drivers/firmware/efi/tpm.o AR net/mac80211/built-in.a AR drivers/scsi/built-in.a CC drivers/gpu/drm/drm_client_modeset.o CC drivers/acpi/sysfs.o CC drivers/gpu/drm/drm_color_mgmt.o CC drivers/hid/hid-chicony.o CC fs/stack.o CC drivers/hid/hid-cypress.o CC [M] drivers/gpu/drm/xe/xe_exec_queue.o CC drivers/gpu/drm/drm_connector.o CC drivers/hid/hid-ezkey.o CC drivers/acpi/acpica/utresdecode.o CC drivers/gpu/drm/drm_crtc.o AR drivers/platform/x86/built-in.a AR drivers/platform/built-in.a CC drivers/gpu/drm/drm_displayid.o CC drivers/gpu/drm/i915/gt/intel_ggtt.o CC drivers/hid/hid-gyration.o CC net/ipv4/ip_tunnel_core.o CC net/ipv4/gre_offload.o AR drivers/usb/core/built-in.a AR drivers/usb/built-in.a CC fs/fs_struct.o CC [M] drivers/gpu/drm/xe/xe_force_wake.o CC arch/x86/kernel/amd_nb.o CC [M] drivers/gpu/drm/xe/xe_ggtt.o CC drivers/gpu/drm/i915/gt/intel_ggtt_fencing.o CC drivers/firmware/efi/libstub/skip_spaces.o CC drivers/acpi/property.o AR drivers/net/ethernet/intel/e1000/built-in.a CC net/ipv4/metrics.o CC drivers/firmware/efi/libstub/lib-cmdline.o CC drivers/acpi/acpica/utresrc.o CC drivers/acpi/debugfs.o AR net/netfilter/built-in.a CC drivers/acpi/acpi_lpat.o CC drivers/md/dm-kcopyd.o CC drivers/firmware/efi/memmap.o CC lib/dynamic_queue_limits.o CC net/ipv4/netlink.o CC drivers/firmware/efi/libstub/lib-ctype.o CC drivers/firmware/efi/capsule.o CC kernel/freezer.o CC drivers/firmware/efi/libstub/alignedmem.o AR drivers/net/ethernet/microsoft/built-in.a CC fs/statfs.o CC drivers/gpu/drm/i915/gt/intel_gt.o AR drivers/net/ethernet/litex/built-in.a CC drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.o CC drivers/firmware/efi/libstub/relocate.o CC kernel/profile.o CC fs/fs_pin.o AR drivers/net/ethernet/marvell/octeon_ep/built-in.a AR drivers/net/ethernet/marvell/octeon_ep_vf/built-in.a AR drivers/net/ethernet/marvell/octeontx2/built-in.a CC drivers/firmware/efi/esrt.o AR drivers/net/ethernet/marvell/prestera/built-in.a CC drivers/net/ethernet/marvell/sky2.o CC kernel/stacktrace.o CC kernel/dma.o CC net/ipv4/nexthop.o CC fs/nsfs.o CC net/ipv4/udp_tunnel_stub.o CC net/ipv6/sit.o CC drivers/acpi/acpica/utstate.o CC drivers/acpi/acpica/utstring.o CC [M] drivers/gpu/drm/xe/xe_gpu_scheduler.o CC drivers/gpu/drm/i915/gt/intel_gt_ccs_mode.o CC drivers/firmware/efi/runtime-wrappers.o CC drivers/hid/hid-ite.o CC net/ipv4/ip_tunnel.o CC lib/glob.o CC drivers/gpu/drm/drm_drv.o CC arch/x86/kernel/kvm.o CC drivers/acpi/acpica/utstrsuppt.o CC fs/fs_types.o HOSTCC drivers/gpu/drm/xe/xe_gen_wa_oob CC lib/strncpy_from_user.o CC drivers/firmware/efi/capsule-loader.o CC drivers/firmware/efi/libstub/printk.o CC fs/fs_context.o CC [M] drivers/gpu/drm/xe/xe_gsc_proxy.o CC drivers/firmware/efi/earlycon.o CC [M] drivers/gpu/drm/xe/xe_gsc_submit.o CC drivers/acpi/acpi_pcc.o CC drivers/gpu/drm/drm_dumb_buffers.o CC drivers/hid/hid-kensington.o CC drivers/firmware/efi/libstub/vsprintf.o CC [M] drivers/gpu/drm/xe/xe_gt.o CC kernel/smp.o CC lib/strnlen_user.o CC drivers/acpi/ac.o CC drivers/hid/hid-lg.o CC fs/fs_parser.o CC drivers/gpu/drm/drm_edid.o CC drivers/firmware/efi/libstub/x86-stub.o CC drivers/acpi/acpica/utstrtoul64.o CC arch/x86/kernel/kvmclock.o CC fs/fsopen.o STUBCPY drivers/firmware/efi/libstub/alignedmem.stub.o CC drivers/gpu/drm/i915/gt/intel_gt_clock_utils.o AR drivers/firmware/smccc/built-in.a STUBCPY drivers/firmware/efi/libstub/efi-stub-helper.stub.o AR drivers/firmware/tegra/built-in.a CC net/ipv6/addrconf_core.o CC net/ipv4/sysctl_net_ipv4.o CC kernel/uid16.o CC drivers/acpi/acpica/utxface.o CC drivers/md/dm-sysfs.o CC kernel/kallsyms.o CC net/ipv4/proc.o CC fs/init.o CC fs/kernel_read_file.o AR drivers/firmware/xilinx/built-in.a CC fs/mnt_idmapping.o CC net/ipv4/fib_rules.o CC drivers/hid/hid-lgff.o CC drivers/hid/hid-lg4ff.o CC drivers/md/dm-stats.o CC drivers/acpi/acpica/utxfinit.o CC fs/nfs/nfs4state.o CC net/ipv4/ipmr.o STUBCPY drivers/firmware/efi/libstub/file.stub.o CC drivers/gpu/drm/i915/gt/intel_gt_debugfs.o CC net/ipv6/exthdrs_core.o CC lib/net_utils.o CC drivers/acpi/button.o CC kernel/acct.o CC [M] drivers/gpu/drm/xe/xe_gt_ccs_mode.o CC drivers/gpu/drm/drm_eld.o CC lib/sg_pool.o AR drivers/firmware/efi/built-in.a CC net/ipv6/ip6_checksum.o CC net/ipv6/ip6_icmp.o CC lib/stackdepot.o CC drivers/acpi/acpica/utxferror.o CC drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.o CC drivers/md/dm-rq.o CC net/ipv4/ipmr_base.o CC kernel/vmcore_info.o STUBCPY drivers/firmware/efi/libstub/gop.stub.o CC arch/x86/kernel/paravirt.o STUBCPY drivers/firmware/efi/libstub/lib-cmdline.stub.o CC drivers/md/dm-io-rewind.o CC drivers/gpu/drm/i915/gt/intel_gt_irq.o CC kernel/elfcorehdr.o AR drivers/net/ethernet/intel/e1000e/built-in.a CC fs/nfs/nfs4renewd.o CC kernel/crash_reserve.o AR drivers/net/ethernet/intel/built-in.a STUBCPY drivers/firmware/efi/libstub/lib-ctype.stub.o CC fs/remap_range.o STUBCPY drivers/firmware/efi/libstub/mem.stub.o AR drivers/net/ethernet/mellanox/built-in.a STUBCPY drivers/firmware/efi/libstub/pci.stub.o CC fs/pidfs.o STUBCPY drivers/firmware/efi/libstub/printk.stub.o STUBCPY drivers/firmware/efi/libstub/random.stub.o CC drivers/hid/hid-lg-g15.o STUBCPY drivers/firmware/efi/libstub/randomalloc.stub.o STUBCPY drivers/firmware/efi/libstub/relocate.stub.o CC fs/buffer.o CC drivers/acpi/acpica/utxfmutex.o CC drivers/hid/hid-microsoft.o STUBCPY drivers/firmware/efi/libstub/secureboot.stub.o CC drivers/hid/hid-monterey.o CC lib/asn1_decoder.o CC drivers/hid/hid-ntrig.o STUBCPY drivers/firmware/efi/libstub/skip_spaces.stub.o STUBCPY drivers/firmware/efi/libstub/tpm.stub.o STUBCPY drivers/firmware/efi/libstub/vsprintf.stub.o STUBCPY drivers/firmware/efi/libstub/x86-stub.stub.o AR drivers/net/ethernet/micrel/built-in.a CC [M] drivers/gpu/drm/xe/xe_gt_clock.o AR drivers/firmware/efi/libstub/lib.a CC [M] drivers/gpu/drm/xe/xe_gt_debugfs.o CC drivers/firmware/dmi_scan.o CC fs/mpage.o AR drivers/net/ethernet/microchip/built-in.a CC drivers/gpu/drm/drm_encoder.o CC kernel/kexec_core.o CC drivers/hid/hid-pl.o CC drivers/md/dm-builtin.o CC [M] drivers/gpu/drm/xe/xe_gt_freq.o CC fs/nfs/nfs4super.o CC drivers/hid/hid-petalynx.o AR drivers/acpi/acpica/built-in.a CC fs/nfs/nfs4file.o CC drivers/hid/hid-redragon.o CC drivers/hid/hid-samsung.o CC drivers/acpi/fan_core.o CC drivers/hid/hid-sony.o CC net/ipv6/output_core.o CC drivers/firmware/dmi-id.o AR drivers/net/ethernet/mscc/built-in.a CC net/ipv6/protocol.o CC drivers/firmware/memmap.o CC drivers/gpu/drm/i915/gt/intel_gt_mcr.o CC arch/x86/kernel/pvclock.o GEN lib/oid_registry_data.c CC lib/ucs2_string.o CC drivers/md/dm-raid1.o CC drivers/gpu/drm/i915/gt/intel_gt_pm.o CC kernel/crash_core.o CC net/ipv4/syncookies.o CC drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.o CC fs/proc_namespace.o AR drivers/net/ethernet/myricom/built-in.a CC net/ipv6/ip6_offload.o CC lib/sbitmap.o CC arch/x86/kernel/pcspeaker.o CC fs/nfs/delegation.o CC drivers/md/dm-log.o CC drivers/md/dm-region-hash.o CC drivers/hid/hid-sunplus.o CC arch/x86/kernel/check.o CC drivers/gpu/drm/drm_file.o CC drivers/hid/hid-topseed.o CC net/ipv6/tcpv6_offload.o CC net/ipv6/exthdrs_offload.o CC drivers/gpu/drm/i915/gt/intel_gt_pm_irq.o CC fs/direct-io.o CC fs/eventpoll.o CC fs/nfs/nfs4idmap.o CC net/ipv4/tunnel4.o CC lib/group_cpus.o CC [M] drivers/gpu/drm/xe/xe_gt_idle.o CC drivers/md/dm-zero.o CC drivers/acpi/fan_attr.o CC drivers/acpi/acpi_video.o AR drivers/net/ethernet/marvell/built-in.a CC drivers/acpi/video_detect.o CC drivers/gpu/drm/i915/gt/intel_gt_requests.o AR drivers/net/ethernet/natsemi/built-in.a AR drivers/net/ethernet/neterion/built-in.a CC [M] drivers/gpu/drm/xe/xe_gt_mcr.o CC drivers/acpi/processor_driver.o AR drivers/net/ethernet/netronome/built-in.a CC [M] drivers/gpu/drm/xe/xe_gt_pagefault.o AR drivers/net/ethernet/ni/built-in.a AR drivers/firmware/built-in.a CC fs/anon_inodes.o CC fs/nfs/callback.o CC drivers/net/ethernet/nvidia/forcedeth.o CC kernel/kexec.o CC net/ipv6/inet6_hashtables.o CC fs/nfs/callback_xdr.o CC arch/x86/kernel/uprobes.o CC kernel/utsname.o CC fs/signalfd.o CC lib/fw_table.o CC net/ipv4/ipconfig.o CC fs/nfs/callback_proc.o CC arch/x86/kernel/perf_regs.o CC drivers/gpu/drm/i915/gt/intel_gt_sysfs.o CC kernel/pid_namespace.o CC kernel/stop_machine.o AR drivers/net/ethernet/oki-semi/built-in.a AR drivers/hid/built-in.a AR drivers/net/ethernet/packetengines/built-in.a CC [M] drivers/gpu/drm/xe/xe_gt_sysfs.o AR drivers/net/ethernet/qlogic/built-in.a CC [M] drivers/gpu/drm/xe/xe_gt_throttle.o CC [M] drivers/gpu/drm/xe/xe_gt_tlb_invalidation.o CC net/ipv6/mcast_snoop.o CC drivers/gpu/drm/drm_fourcc.o CC [M] drivers/gpu/drm/xe/xe_gt_topology.o CC net/ipv4/netfilter.o CC fs/nfs/nfs4namespace.o CC net/ipv4/tcp_cubic.o AR lib/lib.a CC kernel/audit.o AR drivers/md/built-in.a CC drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.o GEN lib/crc32table.h CC drivers/gpu/drm/i915/gt/intel_gtt.o CC lib/oid_registry.o CC drivers/acpi/processor_thermal.o CC fs/timerfd.o GEN xe_wa_oob.c xe_wa_oob.h CC kernel/auditfilter.o CC kernel/auditsc.o CC drivers/acpi/processor_idle.o CC drivers/gpu/drm/drm_framebuffer.o CC arch/x86/kernel/tracepoint.o CC kernel/audit_watch.o CC lib/crc32.o CC fs/eventfd.o CC net/ipv4/tcp_sigpool.o CC [M] drivers/gpu/drm/xe/xe_guc_ct.o CC fs/aio.o CC drivers/gpu/drm/drm_gem.o CC drivers/acpi/processor_throttling.o AR drivers/net/ethernet/qualcomm/emac/built-in.a AR drivers/net/ethernet/qualcomm/built-in.a CC arch/x86/kernel/itmt.o CC drivers/net/ethernet/realtek/8139too.o CC arch/x86/kernel/umip.o CC drivers/net/ethernet/realtek/r8169_main.o CC drivers/gpu/drm/i915/gt/intel_llc.o CC drivers/acpi/processor_perflib.o CC fs/nfs/nfs4getroot.o CC drivers/acpi/container.o CC drivers/gpu/drm/i915/gt/intel_lrc.o CC arch/x86/kernel/unwind_frame.o CC drivers/acpi/thermal_lib.o CC kernel/audit_fsnotify.o CC kernel/audit_tree.o CC drivers/gpu/drm/i915/gt/intel_migrate.o CC [M] drivers/gpu/drm/xe/xe_guc_db_mgr.o CC fs/locks.o CC net/ipv4/cipso_ipv4.o AR lib/built-in.a CC net/ipv4/xfrm4_policy.o CC drivers/gpu/drm/drm_ioctl.o CC drivers/acpi/thermal.o CC fs/binfmt_misc.o CC fs/nfs/nfs4client.o CC fs/nfs/nfs4session.o CC drivers/acpi/nhlt.o AR net/ipv6/built-in.a CC net/ipv4/xfrm4_state.o CC net/ipv4/xfrm4_input.o CC drivers/gpu/drm/i915/gt/intel_mocs.o AR drivers/net/ethernet/renesas/built-in.a CC [M] drivers/gpu/drm/xe/xe_guc_debugfs.o CC drivers/gpu/drm/i915/gt/intel_ppgtt.o CC fs/binfmt_script.o CC kernel/kprobes.o CC kernel/seccomp.o CC drivers/gpu/drm/drm_lease.o CC fs/nfs/dns_resolve.o CC drivers/acpi/acpi_memhotplug.o CC drivers/net/ethernet/realtek/r8169_firmware.o CC fs/nfs/nfs4trace.o CC fs/nfs/nfs4sysctl.o AR arch/x86/kernel/built-in.a AR drivers/net/ethernet/rdc/built-in.a AR arch/x86/built-in.a CC drivers/gpu/drm/i915/gt/intel_rc6.o AR drivers/net/ethernet/rocker/built-in.a CC drivers/acpi/ioapic.o CC net/ipv4/xfrm4_output.o CC [M] drivers/gpu/drm/xe/xe_guc_hwconfig.o CC drivers/gpu/drm/drm_managed.o CC [M] drivers/gpu/drm/xe/xe_guc_id_mgr.o CC [M] drivers/gpu/drm/xe/xe_guc_klv_helpers.o CC drivers/gpu/drm/i915/gt/intel_region_lmem.o CC drivers/gpu/drm/i915/gt/intel_renderstate.o CC drivers/gpu/drm/i915/gt/intel_reset.o CC drivers/gpu/drm/i915/gt/intel_ring.o CC drivers/gpu/drm/i915/gt/intel_ring_submission.o CC drivers/gpu/drm/drm_mm.o CC kernel/relay.o CC [M] drivers/gpu/drm/xe/xe_guc_log.o CC drivers/net/ethernet/realtek/r8169_phy_config.o AR drivers/net/ethernet/samsung/built-in.a CC drivers/acpi/battery.o CC fs/binfmt_elf.o CC drivers/acpi/bgrt.o CC [M] drivers/gpu/drm/xe/xe_guc_pc.o CC drivers/gpu/drm/i915/gt/intel_rps.o CC drivers/gpu/drm/drm_mode_config.o CC kernel/utsname_sysctl.o CC fs/mbcache.o CC [M] drivers/gpu/drm/xe/xe_guc_submit.o AR drivers/net/ethernet/seeq/built-in.a AR drivers/net/ethernet/silan/built-in.a AR drivers/net/ethernet/sis/built-in.a AR drivers/net/ethernet/sfc/built-in.a AR drivers/net/ethernet/smsc/built-in.a AR drivers/net/ethernet/socionext/built-in.a AR drivers/net/ethernet/stmicro/built-in.a AR drivers/net/ethernet/sun/built-in.a CC kernel/delayacct.o CC kernel/taskstats.o AR drivers/net/ethernet/tehuti/built-in.a CC [M] drivers/gpu/drm/xe/xe_heci_gsc.o CC net/ipv4/xfrm4_protocol.o CC kernel/tsacct.o CC kernel/tracepoint.o CC drivers/acpi/spcr.o CC drivers/gpu/drm/i915/gt/intel_sa_media.o CC drivers/gpu/drm/i915/gt/intel_sseu.o CC [M] drivers/gpu/drm/xe/xe_hw_engine.o CC drivers/gpu/drm/i915/gt/intel_sseu_debugfs.o CC [M] drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.o CC kernel/irq_work.o CC [M] drivers/gpu/drm/xe/xe_hw_fence.o CC [M] drivers/gpu/drm/xe/xe_huc.o CC [M] drivers/gpu/drm/xe/xe_huc_debugfs.o CC kernel/static_call.o CC drivers/gpu/drm/i915/gt/intel_timeline.o CC [M] drivers/gpu/drm/xe/xe_irq.o CC drivers/gpu/drm/i915/gt/intel_tlb.o AR drivers/net/ethernet/nvidia/built-in.a CC [M] drivers/gpu/drm/xe/xe_lrc.o AR drivers/net/ethernet/ti/built-in.a AR drivers/net/ethernet/vertexcom/built-in.a CC fs/posix_acl.o AR drivers/net/ethernet/via/built-in.a AR drivers/net/ethernet/wangxun/built-in.a CC drivers/gpu/drm/i915/gt/intel_wopcm.o AR drivers/net/ethernet/wiznet/built-in.a AR drivers/net/ethernet/xilinx/built-in.a AR drivers/net/ethernet/xircom/built-in.a AR drivers/net/ethernet/synopsys/built-in.a AR drivers/net/ethernet/pensando/built-in.a CC drivers/gpu/drm/drm_mode_object.o CC drivers/gpu/drm/drm_modes.o CC drivers/gpu/drm/i915/gt/intel_workarounds.o CC [M] drivers/gpu/drm/xe/xe_migrate.o CC drivers/gpu/drm/drm_modeset_lock.o CC [M] drivers/gpu/drm/xe/xe_mmio.o CC kernel/padata.o CC kernel/jump_label.o CC drivers/gpu/drm/i915/gt/shmem_utils.o CC fs/coredump.o CC drivers/gpu/drm/i915/gt/sysfs_engines.o CC kernel/context_tracking.o CC drivers/gpu/drm/drm_plane.o CC kernel/iomem.o CC kernel/rseq.o CC drivers/gpu/drm/drm_prime.o CC drivers/gpu/drm/i915/gt/intel_ggtt_gmch.o CC drivers/gpu/drm/i915/gt/gen6_renderstate.o CC drivers/gpu/drm/i915/gt/gen7_renderstate.o AR drivers/acpi/built-in.a CC drivers/gpu/drm/drm_print.o CC drivers/gpu/drm/drm_property.o CC drivers/gpu/drm/drm_syncobj.o CC [M] drivers/gpu/drm/xe/xe_mocs.o CC fs/drop_caches.o CC [M] drivers/gpu/drm/xe/xe_module.o CC [M] drivers/gpu/drm/xe/xe_pat.o CC fs/sysctls.o CC drivers/gpu/drm/i915/gt/gen8_renderstate.o CC drivers/gpu/drm/i915/gt/gen9_renderstate.o CC [M] drivers/gpu/drm/xe/xe_pci.o CC drivers/gpu/drm/i915/gem/i915_gem_busy.o CC [M] drivers/gpu/drm/xe/xe_pcode.o CC drivers/gpu/drm/i915/gem/i915_gem_clflush.o CC drivers/gpu/drm/i915/gem/i915_gem_context.o AR drivers/net/ethernet/realtek/built-in.a CC drivers/gpu/drm/i915/gem/i915_gem_create.o CC drivers/gpu/drm/drm_sysfs.o AR drivers/net/ethernet/built-in.a CC fs/fhandle.o AR net/ipv4/built-in.a AR net/built-in.a CC drivers/gpu/drm/drm_trace_points.o CC drivers/gpu/drm/i915/gem/i915_gem_dmabuf.o CC drivers/gpu/drm/drm_vblank.o CC drivers/gpu/drm/i915/gem/i915_gem_domain.o CC drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o CC [M] drivers/gpu/drm/xe/xe_pm.o CC drivers/gpu/drm/i915/gem/i915_gem_internal.o CC [M] drivers/gpu/drm/xe/xe_preempt_fence.o CC drivers/gpu/drm/i915/gem/i915_gem_lmem.o CC drivers/gpu/drm/i915/gem/i915_gem_mman.o CC drivers/gpu/drm/i915/gem/i915_gem_object.o CC drivers/gpu/drm/i915/gem/i915_gem_pages.o AR drivers/net/built-in.a CC [M] drivers/gpu/drm/xe/xe_pt.o CC drivers/gpu/drm/drm_vblank_work.o CC drivers/gpu/drm/i915/gem/i915_gem_phys.o CC [M] drivers/gpu/drm/xe/xe_pt_walk.o CC drivers/gpu/drm/drm_vma_manager.o CC [M] drivers/gpu/drm/xe/xe_query.o CC drivers/gpu/drm/drm_writeback.o CC drivers/gpu/drm/i915/gem/i915_gem_pm.o CC drivers/gpu/drm/i915/gem/i915_gem_region.o CC drivers/gpu/drm/drm_panel.o CC [M] drivers/gpu/drm/xe/xe_range_fence.o AR kernel/built-in.a CC drivers/gpu/drm/i915/gem/i915_gem_shmem.o CC drivers/gpu/drm/drm_pci.o CC drivers/gpu/drm/drm_debugfs.o CC drivers/gpu/drm/i915/gem/i915_gem_shrinker.o CC drivers/gpu/drm/drm_debugfs_crc.o CC drivers/gpu/drm/i915/gem/i915_gem_stolen.o CC drivers/gpu/drm/drm_panel_orientation_quirks.o CC drivers/gpu/drm/drm_buddy.o CC [M] drivers/gpu/drm/xe/xe_reg_sr.o CC [M] drivers/gpu/drm/xe/xe_reg_whitelist.o CC [M] drivers/gpu/drm/xe/xe_rtp.o CC drivers/gpu/drm/i915/gem/i915_gem_throttle.o CC drivers/gpu/drm/i915/gem/i915_gem_tiling.o CC drivers/gpu/drm/i915/gem/i915_gem_ttm.o CC drivers/gpu/drm/drm_gem_shmem_helper.o CC [M] drivers/gpu/drm/xe/xe_ring_ops.o CC drivers/gpu/drm/drm_atomic_helper.o CC drivers/gpu/drm/i915/gem/i915_gem_ttm_move.o CC drivers/gpu/drm/drm_atomic_state_helper.o CC drivers/gpu/drm/drm_bridge_connector.o CC [M] drivers/gpu/drm/xe/xe_sa.o CC [M] drivers/gpu/drm/xe/xe_sched_job.o CC drivers/gpu/drm/drm_crtc_helper.o CC drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.o CC drivers/gpu/drm/i915/gem/i915_gem_userptr.o CC drivers/gpu/drm/i915/gem/i915_gem_wait.o CC drivers/gpu/drm/drm_damage_helper.o CC [M] drivers/gpu/drm/xe/xe_step.o CC [M] drivers/gpu/drm/xe/xe_sync.o CC [M] drivers/gpu/drm/xe/xe_tile.o CC drivers/gpu/drm/i915/gem/i915_gemfs.o CC drivers/gpu/drm/drm_encoder_slave.o CC drivers/gpu/drm/drm_flip_work.o CC [M] drivers/gpu/drm/xe/xe_tile_sysfs.o CC drivers/gpu/drm/drm_format_helper.o CC drivers/gpu/drm/i915/i915_active.o AR fs/nfs/built-in.a CC drivers/gpu/drm/drm_gem_atomic_helper.o CC drivers/gpu/drm/i915/i915_cmd_parser.o AR fs/built-in.a CC drivers/gpu/drm/drm_gem_framebuffer_helper.o CC [M] drivers/gpu/drm/xe/xe_trace.o CC drivers/gpu/drm/i915/i915_deps.o CC [M] drivers/gpu/drm/xe/xe_ttm_sys_mgr.o CC drivers/gpu/drm/i915/i915_gem.o CC [M] drivers/gpu/drm/xe/xe_ttm_stolen_mgr.o CC drivers/gpu/drm/drm_kms_helper_common.o CC drivers/gpu/drm/drm_modeset_helper.o CC drivers/gpu/drm/i915/i915_gem_evict.o CC drivers/gpu/drm/i915/i915_gem_gtt.o CC drivers/gpu/drm/drm_plane_helper.o CC drivers/gpu/drm/drm_probe_helper.o CC drivers/gpu/drm/i915/i915_gem_ww.o CC [M] drivers/gpu/drm/xe/xe_ttm_vram_mgr.o CC [M] drivers/gpu/drm/xe/xe_tuning.o CC drivers/gpu/drm/drm_rect.o CC drivers/gpu/drm/i915/i915_query.o CC drivers/gpu/drm/drm_self_refresh_helper.o CC drivers/gpu/drm/i915/i915_request.o CC drivers/gpu/drm/drm_simple_kms_helper.o CC [M] drivers/gpu/drm/xe/xe_uc.o CC drivers/gpu/drm/i915/i915_scheduler.o CC drivers/gpu/drm/i915/i915_trace_points.o CC drivers/gpu/drm/bridge/panel.o CC drivers/gpu/drm/i915/i915_ttm_buddy_manager.o CC [M] drivers/gpu/drm/xe/xe_uc_debugfs.o CC [M] drivers/gpu/drm/xe/xe_uc_fw.o CC drivers/gpu/drm/drm_mipi_dsi.o CC [M] drivers/gpu/drm/xe/xe_vm.o CC [M] drivers/gpu/drm/drm_exec.o CC drivers/gpu/drm/i915/i915_vma.o CC [M] drivers/gpu/drm/drm_gpuvm.o CC [M] drivers/gpu/drm/xe/xe_vram.o CC drivers/gpu/drm/i915/i915_vma_resource.o CC [M] drivers/gpu/drm/xe/xe_vram_freq.o CC drivers/gpu/drm/i915/gt/uc/intel_gsc_fw.o CC [M] drivers/gpu/drm/xe/xe_wait_user_fence.o CC drivers/gpu/drm/i915/gt/uc/intel_gsc_proxy.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 [M] drivers/gpu/drm/drm_suballoc.o CC [M] drivers/gpu/drm/xe/xe_wa.o CC [M] drivers/gpu/drm/xe/xe_wopcm.o CC [M] drivers/gpu/drm/xe/xe_hmm.o CC drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_heci_cmd_submit.o CC [M] drivers/gpu/drm/xe/xe_hwmon.o CC [M] drivers/gpu/drm/xe/xe_gt_sriov_vf.o CC [M] drivers/gpu/drm/drm_gem_ttm_helper.o CC [M] drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.o CC drivers/gpu/drm/i915/gt/uc/intel_guc.o CC [M] drivers/gpu/drm/xe/xe_guc_relay.o CC [M] drivers/gpu/drm/xe/xe_memirq.o CC [M] drivers/gpu/drm/xe/xe_sriov.o CC drivers/gpu/drm/i915/gt/uc/intel_guc_ads.o CC drivers/gpu/drm/i915/gt/uc/intel_guc_capture.o CC drivers/gpu/drm/i915/gt/uc/intel_guc_ct.o CC drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.o CC drivers/gpu/drm/i915/gt/uc/intel_guc_fw.o CC drivers/gpu/drm/i915/gt/uc/intel_guc_hwconfig.o CC drivers/gpu/drm/i915/gt/uc/intel_guc_log.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 [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_guc_slpc.o LD [M] drivers/gpu/drm/drm_suballoc_helper.o CC [M] drivers/gpu/drm/xe/display/intel_fb_bo.o CC drivers/gpu/drm/i915/gt/uc/intel_guc_submission.o CC [M] drivers/gpu/drm/xe/display/intel_fbdev_fb.o CC drivers/gpu/drm/i915/gt/uc/intel_huc.o CC drivers/gpu/drm/i915/gt/uc/intel_huc_debugfs.o CC drivers/gpu/drm/i915/gt/uc/intel_huc_fw.o CC [M] drivers/gpu/drm/xe/display/xe_display.o CC drivers/gpu/drm/i915/gt/uc/intel_uc.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/display/xe_display_misc.o CC drivers/gpu/drm/i915/gt/intel_gsc.o CC [M] drivers/gpu/drm/xe/display/xe_display_rps.o CC [M] drivers/gpu/drm/xe/display/xe_dsb_buffer.o CC [M] drivers/gpu/drm/xe/display/xe_fb_pin.o CC drivers/gpu/drm/i915/i915_hwmon.o LD [M] drivers/gpu/drm/drm_ttm_helper.o CC [M] drivers/gpu/drm/xe/display/xe_hdcp_gsc.o CC [M] drivers/gpu/drm/xe/display/xe_plane_initial.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/display/xe_tdf.o CC drivers/gpu/drm/i915/display/i9xx_wm.o CC drivers/gpu/drm/i915/display/intel_alpm.o CC drivers/gpu/drm/i915/display/intel_atomic.o CC [M] drivers/gpu/drm/xe/i915-soc/intel_dram.o CC [M] drivers/gpu/drm/xe/i915-soc/intel_pch.o CC [M] drivers/gpu/drm/xe/i915-display/icl_dsi.o CC [M] drivers/gpu/drm/xe/i915-display/intel_alpm.o CC [M] drivers/gpu/drm/xe/i915-display/intel_atomic.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/display/intel_atomic_plane.o CC drivers/gpu/drm/i915/display/intel_audio.o CC [M] drivers/gpu/drm/xe/i915-display/intel_backlight.o CC [M] drivers/gpu/drm/xe/i915-display/intel_bios.o CC drivers/gpu/drm/i915/display/intel_bios.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_color.o CC drivers/gpu/drm/i915/display/intel_combo_phy.o CC drivers/gpu/drm/i915/display/intel_connector.o CC drivers/gpu/drm/i915/display/intel_crtc.o CC [M] drivers/gpu/drm/xe/i915-display/intel_bw.o CC [M] drivers/gpu/drm/xe/i915-display/intel_cdclk.o CC drivers/gpu/drm/i915/display/intel_crtc_state_dump.o CC drivers/gpu/drm/i915/display/intel_cursor.o CC [M] drivers/gpu/drm/xe/i915-display/intel_color.o CC drivers/gpu/drm/i915/display/intel_display.o CC drivers/gpu/drm/i915/display/intel_display_driver.o CC drivers/gpu/drm/i915/display/intel_display_irq.o CC drivers/gpu/drm/i915/display/intel_display_params.o CC [M] drivers/gpu/drm/xe/i915-display/intel_combo_phy.o CC drivers/gpu/drm/i915/display/intel_display_power.o CC [M] drivers/gpu/drm/xe/i915-display/intel_connector.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 drivers/gpu/drm/i915/display/intel_display_rps.o CC [M] drivers/gpu/drm/xe/i915-display/intel_crtc.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 [M] drivers/gpu/drm/xe/i915-display/intel_cx0_phy.o CC [M] drivers/gpu/drm/xe/i915-display/intel_ddi.o CC [M] drivers/gpu/drm/xe/i915-display/intel_ddi_buf_trans.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 drivers/gpu/drm/i915/display/intel_dpio_phy.o CC [M] drivers/gpu/drm/xe/i915-display/intel_display.o CC drivers/gpu/drm/i915/display/intel_dpll.o CC drivers/gpu/drm/i915/display/intel_dpll_mgr.o CC drivers/gpu/drm/i915/display/intel_dpt.o CC drivers/gpu/drm/i915/display/intel_dpt_common.o CC [M] drivers/gpu/drm/xe/i915-display/intel_display_device.o CC drivers/gpu/drm/i915/display/intel_drrs.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_dsb.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_dsb_buffer.o CC drivers/gpu/drm/i915/display/intel_fb.o CC [M] drivers/gpu/drm/xe/i915-display/intel_display_power_well.o CC drivers/gpu/drm/i915/display/intel_fb_bo.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_display_trace.o CC drivers/gpu/drm/i915/display/intel_fifo_underrun.o CC drivers/gpu/drm/i915/display/intel_frontbuffer.o CC [M] drivers/gpu/drm/xe/i915-display/intel_display_wa.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dkl_phy.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dmc.o CC drivers/gpu/drm/i915/display/intel_global_state.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 [M] drivers/gpu/drm/xe/i915-display/intel_dp_aux_backlight.o CC drivers/gpu/drm/i915/display/intel_hdcp.o CC drivers/gpu/drm/i915/display/intel_hdcp_gsc.o CC drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_hdcp.o CC drivers/gpu/drm/i915/display/intel_hotplug.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_dpll.o CC drivers/gpu/drm/i915/display/intel_hotplug_irq.o CC drivers/gpu/drm/i915/display/intel_hti.o CC drivers/gpu/drm/i915/display/intel_link_bw.o CC drivers/gpu/drm/i915/display/intel_load_detect.o CC drivers/gpu/drm/i915/display/intel_lpe_audio.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 [M] drivers/gpu/drm/xe/i915-display/intel_drrs.o CC drivers/gpu/drm/i915/display/intel_modeset_lock.o CC drivers/gpu/drm/i915/display/intel_modeset_setup.o CC drivers/gpu/drm/i915/display/intel_modeset_verify.o CC drivers/gpu/drm/i915/display/intel_overlay.o CC drivers/gpu/drm/i915/display/intel_pch_display.o CC drivers/gpu/drm/i915/display/intel_pch_refclk.o CC drivers/gpu/drm/i915/display/intel_plane_initial.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dsb.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 drivers/gpu/drm/i915/display/intel_sprite.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dsi.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dsi_dcs_backlight.o CC drivers/gpu/drm/i915/display/intel_sprite_uapi.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dsi_vbt.o CC [M] drivers/gpu/drm/xe/i915-display/intel_fb.o CC [M] drivers/gpu/drm/xe/i915-display/intel_fbc.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 [M] drivers/gpu/drm/xe/i915-display/intel_frontbuffer.o CC drivers/gpu/drm/i915/display/intel_tc.o CC [M] drivers/gpu/drm/xe/i915-display/intel_global_state.o CC drivers/gpu/drm/i915/display/intel_vblank.o CC drivers/gpu/drm/i915/display/intel_vga.o CC drivers/gpu/drm/i915/display/intel_wm.o CC [M] drivers/gpu/drm/xe/i915-display/intel_gmbus.o CC [M] drivers/gpu/drm/xe/i915-display/intel_hdcp.o CC drivers/gpu/drm/i915/display/skl_scaler.o CC drivers/gpu/drm/i915/display/skl_universal_plane.o CC drivers/gpu/drm/i915/display/skl_watermark.o CC drivers/gpu/drm/i915/display/intel_acpi.o CC [M] drivers/gpu/drm/xe/i915-display/intel_hdcp_gsc_message.o CC [M] drivers/gpu/drm/xe/i915-display/intel_hdmi.o CC drivers/gpu/drm/i915/display/intel_opregion.o CC drivers/gpu/drm/i915/display/intel_display_debugfs.o CC drivers/gpu/drm/i915/display/intel_display_debugfs_params.o CC [M] drivers/gpu/drm/xe/i915-display/intel_hotplug.o CC drivers/gpu/drm/i915/display/intel_pipe_crc.o CC drivers/gpu/drm/i915/display/dvo_ch7017.o CC [M] drivers/gpu/drm/xe/i915-display/intel_hotplug_irq.o CC drivers/gpu/drm/i915/display/dvo_ch7xxx.o CC [M] drivers/gpu/drm/xe/i915-display/intel_hti.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/dvo_ivch.o CC [M] drivers/gpu/drm/xe/i915-display/intel_modeset_lock.o CC drivers/gpu/drm/i915/display/dvo_ns2501.o CC [M] drivers/gpu/drm/xe/i915-display/intel_modeset_setup.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_modeset_verify.o CC drivers/gpu/drm/i915/display/g4x_dp.o CC drivers/gpu/drm/i915/display/g4x_hdmi.o CC drivers/gpu/drm/i915/display/icl_dsi.o CC [M] drivers/gpu/drm/xe/i915-display/intel_panel.o CC [M] drivers/gpu/drm/xe/i915-display/intel_pmdemand.o CC drivers/gpu/drm/i915/display/intel_backlight.o CC [M] drivers/gpu/drm/xe/i915-display/intel_pps.o CC [M] drivers/gpu/drm/xe/i915-display/intel_psr.o CC [M] drivers/gpu/drm/xe/i915-display/intel_qp_tables.o CC drivers/gpu/drm/i915/display/intel_crt.o CC drivers/gpu/drm/i915/display/intel_cx0_phy.o CC [M] drivers/gpu/drm/xe/i915-display/intel_quirks.o CC drivers/gpu/drm/i915/display/intel_ddi.o CC [M] drivers/gpu/drm/xe/i915-display/intel_snps_phy.o CC drivers/gpu/drm/i915/display/intel_ddi_buf_trans.o CC drivers/gpu/drm/i915/display/intel_display_device.o CC [M] drivers/gpu/drm/xe/i915-display/intel_tc.o CC [M] drivers/gpu/drm/xe/i915-display/intel_vblank.o CC drivers/gpu/drm/i915/display/intel_display_trace.o CC [M] drivers/gpu/drm/xe/i915-display/intel_vdsc.o CC [M] drivers/gpu/drm/xe/i915-display/intel_vga.o CC [M] drivers/gpu/drm/xe/i915-display/intel_vrr.o CC drivers/gpu/drm/i915/display/intel_dkl_phy.o CC [M] drivers/gpu/drm/xe/i915-display/intel_dmc_wl.o CC drivers/gpu/drm/i915/display/intel_dp.o CC [M] drivers/gpu/drm/xe/i915-display/intel_wm.o CC [M] drivers/gpu/drm/xe/i915-display/skl_scaler.o CC drivers/gpu/drm/i915/display/intel_dp_aux.o CC drivers/gpu/drm/i915/display/intel_dp_aux_backlight.o CC [M] drivers/gpu/drm/xe/i915-display/skl_universal_plane.o CC drivers/gpu/drm/i915/display/intel_dp_hdcp.o CC drivers/gpu/drm/i915/display/intel_dp_link_training.o CC drivers/gpu/drm/i915/display/intel_dp_mst.o CC drivers/gpu/drm/i915/display/intel_dsi.o CC drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.o CC [M] drivers/gpu/drm/xe/i915-display/skl_watermark.o CC drivers/gpu/drm/i915/display/intel_dsi_vbt.o CC drivers/gpu/drm/i915/display/intel_dvo.o CC drivers/gpu/drm/i915/display/intel_gmbus.o CC [M] drivers/gpu/drm/xe/xe_pmu.o CC [M] drivers/gpu/drm/xe/i915-display/intel_acpi.o CC [M] drivers/gpu/drm/xe/i915-display/intel_opregion.o CC [M] drivers/gpu/drm/xe/i915-display/intel_display_debugfs.o CC drivers/gpu/drm/i915/display/intel_hdmi.o CC drivers/gpu/drm/i915/display/intel_lspcon.o CC drivers/gpu/drm/i915/display/intel_lvds.o CC [M] drivers/gpu/drm/xe/i915-display/intel_display_debugfs_params.o CC [M] drivers/gpu/drm/xe/i915-display/intel_pipe_crc.o CC [M] drivers/gpu/drm/xe/xe_gsc.o CC drivers/gpu/drm/i915/display/intel_panel.o CC [M] drivers/gpu/drm/xe/xe_guc.o CC [M] drivers/gpu/drm/xe/xe_guc_ads.o CC drivers/gpu/drm/i915/display/intel_pps.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_tv.o CC drivers/gpu/drm/i915/display/intel_snps_phy.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 ERROR: modpost: "__udivdi3" [drivers/gpu/drm/xe/xe.ko] undefined! make[2]: *** [/workspace/kernel/scripts/Makefile.modpost:145: Module.symvers] Error 1 make[1]: *** [/workspace/kernel/Makefile:1886: modpost] Error 2 make: *** [/workspace/kernel/Makefile:240: __sub-make] Error 2 run-parts: /workspace/ci/hooks/11-build-32b exited with return code 2 ^ permalink raw reply [flat|nested] 14+ messages in thread
* ✓ CI.checksparse: success for drm/xe/pmu: Enable PMU interface (rev8) 2024-06-12 5:40 [PATCH v8 0/2] drm/xe/pmu: Enable PMU interface Riana Tauro ` (6 preceding siblings ...) 2024-06-12 5:48 ` ✗ CI.Hooks: failure " Patchwork @ 2024-06-12 5:49 ` Patchwork 2024-06-12 6:31 ` ✓ CI.BAT: " Patchwork 2024-06-12 8:02 ` ✓ CI.FULL: " Patchwork 9 siblings, 0 replies; 14+ messages in thread From: Patchwork @ 2024-06-12 5:49 UTC (permalink / raw) To: Iddamsetty, Aravind; +Cc: intel-xe == Series Details == Series: drm/xe/pmu: Enable PMU interface (rev8) URL : https://patchwork.freedesktop.org/series/119504/ 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 1340288da1f2a87e92a52d4e86a7247e4687bd62 Sparse version: 0.6.1 (Ubuntu: 0.6.1-2build1) 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] 14+ messages in thread
* ✓ CI.BAT: success for drm/xe/pmu: Enable PMU interface (rev8) 2024-06-12 5:40 [PATCH v8 0/2] drm/xe/pmu: Enable PMU interface Riana Tauro ` (7 preceding siblings ...) 2024-06-12 5:49 ` ✓ CI.checksparse: success " Patchwork @ 2024-06-12 6:31 ` Patchwork 2024-06-12 8:02 ` ✓ CI.FULL: " Patchwork 9 siblings, 0 replies; 14+ messages in thread From: Patchwork @ 2024-06-12 6:31 UTC (permalink / raw) To: Iddamsetty, Aravind; +Cc: intel-xe [-- Attachment #1: Type: text/plain, Size: 3164 bytes --] == Series Details == Series: drm/xe/pmu: Enable PMU interface (rev8) URL : https://patchwork.freedesktop.org/series/119504/ State : success == Summary == CI Bug Log - changes from xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62_BAT -> xe-pw-119504v8_BAT ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (3 -> 4) ------------------------------ Additional (1): bat-adlp-7 Known issues ------------ Here are the changes found in xe-pw-119504v8_BAT that come from known issues: ### IGT changes ### #### Issues hit #### * igt@kms_dsc@dsc-basic: - bat-adlp-7: NOTRUN -> [SKIP][1] ([Intel XE#455]) [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/bat-adlp-7/igt@kms_dsc@dsc-basic.html * igt@xe_evict@evict-small-cm: - bat-adlp-7: NOTRUN -> [SKIP][2] ([Intel XE#261] / [Intel XE#688]) +15 other tests skip [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/bat-adlp-7/igt@xe_evict@evict-small-cm.html * igt@xe_evict_ccs@evict-overcommit-simple: - bat-adlp-7: NOTRUN -> [SKIP][3] ([Intel XE#688]) +1 other test skip [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/bat-adlp-7/igt@xe_evict_ccs@evict-overcommit-simple.html * igt@xe_exec_fault_mode@twice-userptr-invalidate-prefetch: - bat-adlp-7: NOTRUN -> [SKIP][4] ([Intel XE#288]) +32 other tests skip [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/bat-adlp-7/igt@xe_exec_fault_mode@twice-userptr-invalidate-prefetch.html * igt@xe_mmap@vram: - bat-adlp-7: NOTRUN -> [SKIP][5] ([Intel XE#1008]) [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/bat-adlp-7/igt@xe_mmap@vram.html * igt@xe_pat@pat-index-xe2: - bat-adlp-7: NOTRUN -> [SKIP][6] ([Intel XE#977]) [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/bat-adlp-7/igt@xe_pat@pat-index-xe2.html * igt@xe_pat@pat-index-xehpc: - bat-adlp-7: NOTRUN -> [SKIP][7] ([Intel XE#979]) +1 other test skip [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/bat-adlp-7/igt@xe_pat@pat-index-xehpc.html [Intel XE#1008]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1008 [Intel XE#261]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/261 [Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288 [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455 [Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688 [Intel XE#977]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/977 [Intel XE#979]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/979 Build changes ------------- * Linux: xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62 -> xe-pw-119504v8 IGT_7882: 257418cba11c724111fe0e983649763c407e5bc9 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62: 1340288da1f2a87e92a52d4e86a7247e4687bd62 xe-pw-119504v8: 119504v8 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/index.html [-- Attachment #2: Type: text/html, Size: 3955 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* ✓ CI.FULL: success for drm/xe/pmu: Enable PMU interface (rev8) 2024-06-12 5:40 [PATCH v8 0/2] drm/xe/pmu: Enable PMU interface Riana Tauro ` (8 preceding siblings ...) 2024-06-12 6:31 ` ✓ CI.BAT: " Patchwork @ 2024-06-12 8:02 ` Patchwork 9 siblings, 0 replies; 14+ messages in thread From: Patchwork @ 2024-06-12 8:02 UTC (permalink / raw) To: Iddamsetty, Aravind; +Cc: intel-xe [-- Attachment #1: Type: text/plain, Size: 24604 bytes --] == Series Details == Series: drm/xe/pmu: Enable PMU interface (rev8) URL : https://patchwork.freedesktop.org/series/119504/ State : success == Summary == CI Bug Log - changes from xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62_full -> xe-pw-119504v8_full ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (3 -> 3) ------------------------------ No changes in participating hosts Possible new issues ------------------- Here are the unknown changes that may have been introduced in xe-pw-119504v8_full: ### IGT changes ### #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@core_hotunplug@hotreplug-lateclose: - {shard-lnl}: [PASS][1] -> [DMESG-WARN][2] +1 other test dmesg-warn [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-lnl-5/igt@core_hotunplug@hotreplug-lateclose.html [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-lnl-5/igt@core_hotunplug@hotreplug-lateclose.html * igt@kms_cursor_legacy@flip-vs-cursor-legacy: - {shard-lnl}: [PASS][3] -> [FAIL][4] [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-lnl-2/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-lnl-1/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html * igt@xe_exec_fault_mode@many-userptr-invalidate-race: - {shard-lnl}: [PASS][5] -> [ABORT][6] [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-lnl-7/igt@xe_exec_fault_mode@many-userptr-invalidate-race.html [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-lnl-5/igt@xe_exec_fault_mode@many-userptr-invalidate-race.html * {igt@xe_intel_bb}: - {shard-lnl}: NOTRUN -> [INCOMPLETE][7] [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-lnl-4/igt@xe_intel_bb.html New tests --------- New tests have been introduced between xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62_full and xe-pw-119504v8_full: ### New IGT tests (1) ### * igt@kms_plane_lowres: - Statuses : - Exec time: [None] s Known issues ------------ Here are the changes found in xe-pw-119504v8_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@core_hotunplug@hotrebind: - shard-dg2-set2: [PASS][8] -> [DMESG-WARN][9] ([Intel XE#1214]) +3 other tests dmesg-warn [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-dg2-466/igt@core_hotunplug@hotrebind.html [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-dg2-466/igt@core_hotunplug@hotrebind.html * igt@core_hotunplug@hotreplug: - shard-adlp: [PASS][10] -> [DMESG-WARN][11] ([Intel XE#1214]) +6 other tests dmesg-warn [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-adlp-9/igt@core_hotunplug@hotreplug.html [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-adlp-1/igt@core_hotunplug@hotreplug.html * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-c-hdmi-a-1-y: - shard-adlp: [PASS][12] -> [DMESG-WARN][13] ([Intel XE#1033] / [Intel XE#1214]) [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-adlp-8/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-c-hdmi-a-1-y.html [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-adlp-4/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-c-hdmi-a-1-y.html * igt@kms_atomic_transition@plane-all-modeset-transition: - shard-adlp: [PASS][14] -> [DMESG-WARN][15] ([Intel XE#1214] / [Intel XE#1330]) [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-adlp-8/igt@kms_atomic_transition@plane-all-modeset-transition.html [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-adlp-4/igt@kms_atomic_transition@plane-all-modeset-transition.html * igt@kms_big_fb@linear-32bpp-rotate-90: - shard-dg2-set2: NOTRUN -> [SKIP][16] ([Intel XE#1201] / [Intel XE#316]) [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-dg2-435/igt@kms_big_fb@linear-32bpp-rotate-90.html * igt@kms_ccs@bad-aux-stride-y-tiled-ccs@pipe-a-dp-4: - shard-dg2-set2: NOTRUN -> [SKIP][17] ([Intel XE#1201] / [Intel XE#787]) +6 other tests skip [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-dg2-435/igt@kms_ccs@bad-aux-stride-y-tiled-ccs@pipe-a-dp-4.html * igt@kms_ccs@bad-aux-stride-y-tiled-ccs@pipe-d-dp-4: - shard-dg2-set2: NOTRUN -> [SKIP][18] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) +1 other test skip [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-dg2-435/igt@kms_ccs@bad-aux-stride-y-tiled-ccs@pipe-d-dp-4.html * igt@kms_chamelium_audio@hdmi-audio: - shard-dg2-set2: NOTRUN -> [SKIP][19] ([Intel XE#1201] / [Intel XE#373]) [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-dg2-435/igt@kms_chamelium_audio@hdmi-audio.html * igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy: - shard-dg2-set2: [PASS][20] -> [DMESG-WARN][21] ([Intel XE#1214] / [Intel XE#282] / [Intel XE#910]) [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-dg2-434/igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy.html [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-dg2-464/igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy.html * igt@kms_cursor_legacy@cursora-vs-flipa-atomic-transitions: - shard-dg2-set2: [PASS][22] -> [DMESG-WARN][23] ([Intel XE#1214] / [Intel XE#282]) +2 other tests dmesg-warn [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-dg2-435/igt@kms_cursor_legacy@cursora-vs-flipa-atomic-transitions.html [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-dg2-464/igt@kms_cursor_legacy@cursora-vs-flipa-atomic-transitions.html * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic: - shard-dg2-set2: NOTRUN -> [DMESG-WARN][24] ([Intel XE#1214] / [Intel XE#282]) [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-dg2-435/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic.html * igt@kms_cursor_legacy@torture-bo@pipe-b: - shard-dg2-set2: [PASS][25] -> [DMESG-WARN][26] ([Intel XE#1214] / [Intel XE#877]) +1 other test dmesg-warn [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-dg2-435/igt@kms_cursor_legacy@torture-bo@pipe-b.html [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-dg2-435/igt@kms_cursor_legacy@torture-bo@pipe-b.html * igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-y-to-x: - shard-adlp: [PASS][27] -> [FAIL][28] ([Intel XE#1874]) +2 other tests fail [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-adlp-1/igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-y-to-x.html [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-adlp-2/igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-y-to-x.html * igt@kms_hdr@invalid-hdr: - shard-dg2-set2: [PASS][29] -> [SKIP][30] ([Intel XE#1201] / [Intel XE#455]) [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-dg2-463/igt@kms_hdr@invalid-hdr.html [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-dg2-466/igt@kms_hdr@invalid-hdr.html * igt@kms_hdr@static-toggle-suspend@pipe-a-hdmi-a-6: - shard-dg2-set2: NOTRUN -> [FAIL][31] ([Intel XE#616]) [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-dg2-434/igt@kms_hdr@static-toggle-suspend@pipe-a-hdmi-a-6.html * igt@kms_universal_plane@cursor-fb-leak@pipe-b-dp-4: - shard-dg2-set2: [PASS][32] -> [FAIL][33] ([Intel XE#899]) [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-dg2-463/igt@kms_universal_plane@cursor-fb-leak@pipe-b-dp-4.html [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-dg2-434/igt@kms_universal_plane@cursor-fb-leak@pipe-b-dp-4.html * igt@xe_evict@evict-beng-cm-threads-large: - shard-dg2-set2: [PASS][34] -> [TIMEOUT][35] ([Intel XE#1473] / [Intel XE#392]) [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-dg2-434/igt@xe_evict@evict-beng-cm-threads-large.html [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-dg2-434/igt@xe_evict@evict-beng-cm-threads-large.html * igt@xe_exec_fault_mode@many-bindexecqueue-userptr-rebind-prefetch: - shard-dg2-set2: NOTRUN -> [SKIP][36] ([Intel XE#1201] / [Intel XE#288]) +1 other test skip [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-dg2-435/igt@xe_exec_fault_mode@many-bindexecqueue-userptr-rebind-prefetch.html * igt@xe_module_load@many-reload: - shard-adlp: [PASS][37] -> [TIMEOUT][38] ([Intel XE#1961] / [Intel XE#2081]) [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-adlp-1/igt@xe_module_load@many-reload.html [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-adlp-2/igt@xe_module_load@many-reload.html #### Possible fixes #### * igt@core_hotunplug@unbind-rebind: - shard-dg2-set2: [INCOMPLETE][39] ([Intel XE#1195] / [Intel XE#1451]) -> [PASS][40] [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-dg2-464/igt@core_hotunplug@unbind-rebind.html [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-dg2-435/igt@core_hotunplug@unbind-rebind.html * igt@kms_async_flips@alternate-sync-async-flip: - shard-adlp: [FAIL][41] ([Intel XE#827]) -> [PASS][42] +1 other test pass [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-adlp-9/igt@kms_async_flips@alternate-sync-async-flip.html [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-adlp-1/igt@kms_async_flips@alternate-sync-async-flip.html * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-d-hdmi-a-1-x: - shard-adlp: [DMESG-WARN][43] ([Intel XE#1033] / [Intel XE#1214]) -> [PASS][44] [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-adlp-8/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-d-hdmi-a-1-x.html [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-adlp-4/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-d-hdmi-a-1-x.html * igt@kms_cursor_crc@cursor-rapid-movement-256x256@pipe-d-hdmi-a-6: - shard-dg2-set2: [DMESG-WARN][45] ([Intel XE#1214] / [Intel XE#282]) -> [PASS][46] +10 other tests pass [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-dg2-434/igt@kms_cursor_crc@cursor-rapid-movement-256x256@pipe-d-hdmi-a-6.html [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-dg2-463/igt@kms_cursor_crc@cursor-rapid-movement-256x256@pipe-d-hdmi-a-6.html * igt@kms_cursor_legacy@flip-vs-cursor-varying-size: - {shard-lnl}: [FAIL][47] -> [PASS][48] [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-lnl-8/igt@kms_cursor_legacy@flip-vs-cursor-varying-size.html [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-lnl-7/igt@kms_cursor_legacy@flip-vs-cursor-varying-size.html * igt@kms_fbcon_fbt@fbc: - shard-adlp: [FAIL][49] -> [PASS][50] [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-adlp-9/igt@kms_fbcon_fbt@fbc.html [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-adlp-1/igt@kms_fbcon_fbt@fbc.html * igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-y-to-y: - shard-adlp: [FAIL][51] ([Intel XE#1874]) -> [PASS][52] +2 other tests pass [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-adlp-1/igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-y-to-y.html [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-adlp-2/igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-y-to-y.html * igt@kms_universal_plane@cursor-fb-leak@pipe-a-hdmi-a-6: - shard-dg2-set2: [FAIL][53] ([Intel XE#899]) -> [PASS][54] [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-dg2-463/igt@kms_universal_plane@cursor-fb-leak@pipe-a-hdmi-a-6.html [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-dg2-434/igt@kms_universal_plane@cursor-fb-leak@pipe-a-hdmi-a-6.html * igt@xe_evict@evict-mixed-threads-large: - shard-dg2-set2: [TIMEOUT][55] ([Intel XE#1473] / [Intel XE#392]) -> [PASS][56] [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-dg2-463/igt@xe_evict@evict-mixed-threads-large.html [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-dg2-434/igt@xe_evict@evict-mixed-threads-large.html * igt@xe_pm@s4-multiple-execs: - {shard-lnl}: [ABORT][57] ([Intel XE#1358] / [Intel XE#1794]) -> [PASS][58] [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-lnl-2/igt@xe_pm@s4-multiple-execs.html [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-lnl-1/igt@xe_pm@s4-multiple-execs.html * igt@xe_pm@s4-vm-bind-prefetch: - shard-adlp: [DMESG-WARN][59] ([Intel XE#1214]) -> [PASS][60] [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-adlp-1/igt@xe_pm@s4-vm-bind-prefetch.html [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-adlp-8/igt@xe_pm@s4-vm-bind-prefetch.html * igt@xe_pm_residency@toggle-gt-c6: - {shard-lnl}: [FAIL][61] ([Intel XE#958]) -> [PASS][62] [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-lnl-3/igt@xe_pm_residency@toggle-gt-c6.html [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-lnl-1/igt@xe_pm_residency@toggle-gt-c6.html #### Warnings #### * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip: - shard-adlp: [DMESG-FAIL][63] ([Intel XE#324]) -> [DMESG-WARN][64] ([Intel XE#1214] / [Intel XE#324]) [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-adlp-2/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-adlp-2/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html * igt@kms_cursor_crc@cursor-suspend: - shard-adlp: [DMESG-FAIL][65] ([Intel XE#1608]) -> [DMESG-FAIL][66] ([Intel XE#1191] / [Intel XE#1608]) [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-adlp-6/igt@kms_cursor_crc@cursor-suspend.html [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-adlp-6/igt@kms_cursor_crc@cursor-suspend.html * igt@kms_cursor_crc@cursor-suspend@pipe-d-hdmi-a-1: - shard-adlp: [DMESG-FAIL][67] ([Intel XE#1608]) -> [DMESG-FAIL][68] ([Intel XE#1191]) [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-adlp-6/igt@kms_cursor_crc@cursor-suspend@pipe-d-hdmi-a-1.html [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-adlp-6/igt@kms_cursor_crc@cursor-suspend@pipe-d-hdmi-a-1.html * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic: - shard-dg2-set2: [DMESG-WARN][69] ([Intel XE#1214] / [Intel XE#282]) -> [DMESG-WARN][70] ([Intel XE#1214] / [Intel XE#282] / [Intel XE#910]) [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-dg2-434/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-dg2-464/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html * igt@kms_pipe_crc_basic@suspend-read-crc: - shard-dg2-set2: [DMESG-WARN][71] ([Intel XE#1214]) -> [DMESG-WARN][72] ([Intel XE#1162] / [Intel XE#1214]) [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-dg2-435/igt@kms_pipe_crc_basic@suspend-read-crc.html [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-dg2-464/igt@kms_pipe_crc_basic@suspend-read-crc.html * igt@kms_tiled_display@basic-test-pattern: - shard-dg2-set2: [FAIL][73] ([Intel XE#1729]) -> [SKIP][74] ([Intel XE#1201] / [Intel XE#362]) [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-dg2-434/igt@kms_tiled_display@basic-test-pattern.html [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-dg2-463/igt@kms_tiled_display@basic-test-pattern.html * igt@xe_pm@s4-multiple-execs: - shard-adlp: [DMESG-WARN][75] ([Intel XE#1214]) -> [ABORT][76] ([Intel XE#1358] / [Intel XE#1794]) [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62/shard-adlp-4/igt@xe_pm@s4-multiple-execs.html [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/shard-adlp-9/igt@xe_pm@s4-multiple-execs.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#1091]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1091 [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124 [Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127 [Intel XE#1128]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1128 [Intel XE#1131]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1131 [Intel XE#1162]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1162 [Intel XE#1191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1191 [Intel XE#1195]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1195 [Intel XE#1201]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1201 [Intel XE#1211]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1211 [Intel XE#1214]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1214 [Intel XE#1256]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1256 [Intel XE#1330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1330 [Intel XE#1358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1358 [Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392 [Intel XE#1397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1397 [Intel XE#1399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1399 [Intel XE#1401]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1401 [Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406 [Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407 [Intel XE#1413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1413 [Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421 [Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424 [Intel XE#1437]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1437 [Intel XE#1446]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1446 [Intel XE#1450]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1450 [Intel XE#1451]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1451 [Intel XE#1473]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1473 [Intel XE#1504]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1504 [Intel XE#1595]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1595 [Intel XE#1607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1607 [Intel XE#1608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1608 [Intel XE#1622]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1622 [Intel XE#1659]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1659 [Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729 [Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745 [Intel XE#1794]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1794 [Intel XE#1874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1874 [Intel XE#1960]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1960 [Intel XE#1961]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1961 [Intel XE#2009]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2009 [Intel XE#2024]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2024 [Intel XE#2028]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2028 [Intel XE#2034]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2034 [Intel XE#2037]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2037 [Intel XE#2070]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2070 [Intel XE#2081]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2081 [Intel XE#282]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/282 [Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288 [Intel XE#294]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/294 [Intel XE#305]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/305 [Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306 [Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307 [Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309 [Intel XE#314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/314 [Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316 [Intel XE#323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/323 [Intel XE#324]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/324 [Intel XE#362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/362 [Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366 [Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373 [Intel XE#392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/392 [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455 [Intel XE#480]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/480 [Intel XE#584]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/584 [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#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656 [Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688 [Intel XE#756]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/756 [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#877]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/877 [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#910]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/910 [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944 [Intel XE#958]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/958 Build changes ------------- * Linux: xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62 -> xe-pw-119504v8 IGT_7882: 257418cba11c724111fe0e983649763c407e5bc9 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git xe-1446-1340288da1f2a87e92a52d4e86a7247e4687bd62: 1340288da1f2a87e92a52d4e86a7247e4687bd62 xe-pw-119504v8: 119504v8 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119504v8/index.html [-- Attachment #2: Type: text/html, Size: 25415 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2024-06-12 13:47 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-06-12 5:40 [PATCH v8 0/2] drm/xe/pmu: Enable PMU interface Riana Tauro 2024-06-12 5:33 ` ✓ CI.Patch_applied: success for drm/xe/pmu: Enable PMU interface (rev8) Patchwork 2024-06-12 5:33 ` ✗ CI.checkpatch: warning " Patchwork 2024-06-12 5:34 ` ✓ CI.KUnit: success " Patchwork 2024-06-12 5:40 ` [PATCH v8 1/2] drm/xe: Get GT clock to nanosecs Riana Tauro 2024-06-12 5:40 ` [PATCH v8 2/2] drm/xe/pmu: Enable PMU interface Riana Tauro 2024-06-12 9:07 ` Matthew Auld 2024-06-12 13:47 ` Riana Tauro 2024-06-12 9:13 ` Aravind Iddamsetty 2024-06-12 5:46 ` ✓ CI.Build: success for drm/xe/pmu: Enable PMU interface (rev8) Patchwork 2024-06-12 5:48 ` ✗ CI.Hooks: failure " Patchwork 2024-06-12 5:49 ` ✓ CI.checksparse: success " Patchwork 2024-06-12 6:31 ` ✓ CI.BAT: " Patchwork 2024-06-12 8:02 ` ✓ CI.FULL: " Patchwork
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox