Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH v7 5/5] drm/xe/xe_pmu: Acquire forcewake on event init for engine events
  2025-02-14 10:08 ` [PATCH v7 5/5] drm/xe/xe_pmu: Acquire forcewake on event init for engine events Riana Tauro
@ 2025-02-14  9:50   ` Ghimiray, Himal Prasad
  2025-02-20 21:46   ` Lucas De Marchi
  1 sibling, 0 replies; 23+ messages in thread
From: Ghimiray, Himal Prasad @ 2025-02-14  9:50 UTC (permalink / raw)
  To: Riana Tauro, intel-xe
  Cc: anshuman.gupta, umesh.nerlige.ramappa, lucas.demarchi,
	vinay.belgaumkar, soham.purkait, Rodrigo Vivi



On 14-02-2025 15:38, Riana Tauro wrote:
> When the engine events are created, acquire GT forcewake to read gpm
> timestamp required for the events and release on event destroy. This
> cannot be done during read due to the raw spinlock held my pmu.
> 
> v2: remove forcewake counting (Umesh)
> v3: remove extra space (Umesh)
> 
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
> Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> ---
>   drivers/gpu/drm/xe/xe_pmu.c       | 52 +++++++++++++++++++++++++++++--
>   drivers/gpu/drm/xe/xe_pmu_types.h |  4 +++
>   2 files changed, 54 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_pmu.c b/drivers/gpu/drm/xe/xe_pmu.c
> index dc89fa6d0ec5..67693d642f5a 100644
> --- a/drivers/gpu/drm/xe/xe_pmu.c
> +++ b/drivers/gpu/drm/xe/xe_pmu.c
> @@ -7,6 +7,7 @@
>   #include <linux/device.h>
>   
>   #include "xe_device.h"
> +#include "xe_force_wake.h"
>   #include "xe_gt_idle.h"
>   #include "xe_guc_engine_activity.h"
>   #include "xe_hw_engine.h"
> @@ -102,6 +103,37 @@ static struct xe_hw_engine *event_to_hwe(struct perf_event *event)
>   	return hwe;
>   }
>   
> +static bool is_engine_event(u64 config)
> +{
> +	unsigned int event_id = config_to_event_id(config);
> +
> +	return (event_id == XE_PMU_EVENT_ENGINE_TOTAL_TICKS ||
> +		event_id == XE_PMU_EVENT_ENGINE_ACTIVE_TICKS);
> +}
> +
> +static bool event_gt_forcewake(struct perf_event *event)
> +{
> +	struct xe_device *xe = container_of(event->pmu, typeof(*xe), pmu.base);
> +	u64 config = event->attr.config;
> +	struct xe_pmu *pmu = &xe->pmu;
> +	struct xe_gt *gt;
> +	unsigned int fw_ref;
> +
> +	if (!is_engine_event(config))
> +		return true;
> +
> +	gt = xe_device_get_gt(xe, config_to_gt_id(config));
> +
> +	fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
> +	if (!fw_ref)
> +		return false;
> +
> +	if (!pmu->fw_ref)
> +		pmu->fw_ref = fw_ref;
> +
> +	return true;
> +}
> +
>   static bool event_supported(struct xe_pmu *pmu, unsigned int gt,
>   			    unsigned int id)
>   {
> @@ -144,6 +176,13 @@ static bool event_param_valid(struct perf_event *event)
>   static void xe_pmu_event_destroy(struct perf_event *event)
>   {
>   	struct xe_device *xe = container_of(event->pmu, typeof(*xe), pmu.base);
> +	struct xe_pmu *pmu = &xe->pmu;
> +	struct xe_gt *gt;
> +
> +	if (pmu->fw_ref) {
> +		gt = xe_device_get_gt(xe, config_to_gt_id(event->attr.config));
> +		xe_force_wake_put(gt_to_fw(gt), pmu->fw_ref);
> +	}
>   
>   	drm_WARN_ON(&xe->drm, event->parent);
>   	xe_pm_runtime_put(xe);
> @@ -183,18 +222,27 @@ static int xe_pmu_event_init(struct perf_event *event)
>   	if (!event->parent) {
>   		drm_dev_get(&xe->drm);
>   		xe_pm_runtime_get(xe);
> +		if (!event_gt_forcewake(event)) {
> +			xe_pm_runtime_put(xe);
> +			drm_dev_put(&xe->drm);
> +			return -EINVAL;
> +		}
>   		event->destroy = xe_pmu_event_destroy;
>   	}
>   
>   	return 0;
>   }
>   
> -static u64 read_engine_events(struct xe_gt *gt, struct perf_event *event)
> +static u64 read_engine_events(struct xe_gt *gt, struct perf_event *event, u64 prev)
>   {
>   	struct xe_device *xe = gt_to_xe(gt);
> +	struct xe_pmu *pmu = &xe->pmu;
>   	struct xe_hw_engine *hwe;
>   	u64 val = 0;
>   
> +	if (!pmu->fw_ref)
> +		return prev;
> +
>   	hwe = event_to_hwe(event);
>   	if (!hwe)
>   		drm_warn(&xe->drm, "unknown engine\n");
> @@ -218,7 +266,7 @@ static u64 __xe_pmu_event_read(struct perf_event *event, u64 prev)
>   		return xe_gt_idle_residency_msec(&gt->gtidle);
>   	case XE_PMU_EVENT_ENGINE_ACTIVE_TICKS:
>   	case XE_PMU_EVENT_ENGINE_TOTAL_TICKS:
> -		return read_engine_events(gt, event);
> +		return read_engine_events(gt, event, prev);
>   	}
>   
>   	return 0;
> diff --git a/drivers/gpu/drm/xe/xe_pmu_types.h b/drivers/gpu/drm/xe/xe_pmu_types.h
> index f5ba4d56622c..07c4e592106e 100644
> --- a/drivers/gpu/drm/xe/xe_pmu_types.h
> +++ b/drivers/gpu/drm/xe/xe_pmu_types.h
> @@ -30,6 +30,10 @@ struct xe_pmu {
>   	 * @name: Name as registered with perf core.
>   	 */
>   	const char *name;
> +	/**
> +	 * @fw_ref: force_wake ref
> +	 */
> +	unsigned int fw_ref;

LGTM
Reviewed-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>

>   	/**
>   	 * @supported_events: Bitmap of supported events, indexed by event id
>   	 */


^ permalink raw reply	[flat|nested] 23+ messages in thread

* ✓ CI.Patch_applied: success for PMU support for engine activity (rev3)
  2025-02-14 10:08 [PATCH v7 0/5] PMU support for engine activity Riana Tauro
@ 2025-02-14  9:54 ` Patchwork
  2025-02-14  9:55 ` ✗ CI.checkpatch: warning " Patchwork
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-02-14  9:54 UTC (permalink / raw)
  To: Riana Tauro; +Cc: intel-xe

== Series Details ==

Series: PMU support for engine activity (rev3)
URL   : https://patchwork.freedesktop.org/series/144408/
State : success

== Summary ==

=== Applying kernel patches on branch 'drm-tip' with base: ===
Base commit: 57457d93f156 drm-tip: 2025y-02m-14d-07h-22m-04s UTC integration manifest
=== git am output follows ===
.git/rebase-apply/patch:497: new blank line at EOF.
+
warning: 1 line adds whitespace errors.
Applying: drm/xe: Add engine activity support
Applying: drm/xe/trace: Add trace for engine activity
Applying: drm/xe/guc: Expose engine activity only for supported GuC version
Applying: drm/xe/xe_pmu: Add PMU support for engine activity
Applying: drm/xe/xe_pmu: Acquire forcewake on event init for engine events



^ permalink raw reply	[flat|nested] 23+ messages in thread

* ✗ CI.checkpatch: warning for PMU support for engine activity (rev3)
  2025-02-14 10:08 [PATCH v7 0/5] PMU support for engine activity Riana Tauro
  2025-02-14  9:54 ` ✓ CI.Patch_applied: success for PMU support for engine activity (rev3) Patchwork
@ 2025-02-14  9:55 ` Patchwork
  2025-02-14  9:56 ` ✓ CI.KUnit: success " Patchwork
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-02-14  9:55 UTC (permalink / raw)
  To: Riana Tauro; +Cc: intel-xe

== Series Details ==

Series: PMU support for engine activity (rev3)
URL   : https://patchwork.freedesktop.org/series/144408/
State : warning

== Summary ==

+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
22f9cda3436b4fe965b5c5f31d2f2c1bcb483189
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit f24fce30d917dc328f6e7ec80d6c80f18cfd1b6e
Author: Riana Tauro <riana.tauro@intel.com>
Date:   Fri Feb 14 15:38:13 2025 +0530

    drm/xe/xe_pmu: Acquire forcewake on event init for engine events
    
    When the engine events are created, acquire GT forcewake to read gpm
    timestamp required for the events and release on event destroy. This
    cannot be done during read due to the raw spinlock held my pmu.
    
    v2: remove forcewake counting (Umesh)
    v3: remove extra space (Umesh)
    
    Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
    Signed-off-by: Riana Tauro <riana.tauro@intel.com>
    Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
+ /mt/dim checkpatch 57457d93f156d8b4bdff8d138127d81b8f97d8c9 drm-intel
fc5a1a4179f0 drm/xe: Add engine activity support
-:76: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#76: 
new file mode 100644

-:538: WARNING:LONG_LINE: line length of 104 exceeds 100 columns
#538: FILE: drivers/gpu/drm/xe/xe_guc_fwif.h:220:
+	struct guc_engine_activity engine_activity[GUC_MAX_ENGINE_CLASSES][GUC_MAX_INSTANCES_PER_CLASS];

total: 0 errors, 2 warnings, 0 checks, 491 lines checked
25664c5a4d8f drm/xe/trace: Add trace for engine activity
-:66: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#66: FILE: drivers/gpu/drm/xe/xe_trace_guc.h:109:
+	    TP_STRUCT__entry(

-:83: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#83: FILE: drivers/gpu/drm/xe/xe_trace_guc.h:126:
+	    TP_fast_assign(

total: 0 errors, 0 warnings, 2 checks, 84 lines checked
e1a71684cfd1 drm/xe/guc: Expose engine activity only for supported GuC version
120237933264 drm/xe/xe_pmu: Add PMU support for engine activity
-:299: CHECK:SPACING: spaces preferred around that '-' (ctx:VxV)
#299: FILE: drivers/gpu/drm/xe/xe_pmu.c:373:
+XE_EVENT_ATTR_NOUNIT(engine-active-ticks, engine_active_ticks, XE_PMU_EVENT_ENGINE_ACTIVE_TICKS);
                            ^

-:299: CHECK:SPACING: spaces preferred around that '-' (ctx:VxV)
#299: FILE: drivers/gpu/drm/xe/xe_pmu.c:373:
+XE_EVENT_ATTR_NOUNIT(engine-active-ticks, engine_active_ticks, XE_PMU_EVENT_ENGINE_ACTIVE_TICKS);
                                   ^

-:300: CHECK:SPACING: spaces preferred around that '-' (ctx:VxV)
#300: FILE: drivers/gpu/drm/xe/xe_pmu.c:374:
+XE_EVENT_ATTR_NOUNIT(engine-total-ticks, engine_total_ticks, XE_PMU_EVENT_ENGINE_TOTAL_TICKS);
                            ^

-:300: CHECK:SPACING: spaces preferred around that '-' (ctx:VxV)
#300: FILE: drivers/gpu/drm/xe/xe_pmu.c:374:
+XE_EVENT_ATTR_NOUNIT(engine-total-ticks, engine_total_ticks, XE_PMU_EVENT_ENGINE_TOTAL_TICKS);
                                  ^

total: 0 errors, 0 warnings, 4 checks, 277 lines checked
f24fce30d917 drm/xe/xe_pmu: Acquire forcewake on event init for engine events



^ permalink raw reply	[flat|nested] 23+ messages in thread

* ✓ CI.KUnit: success for PMU support for engine activity (rev3)
  2025-02-14 10:08 [PATCH v7 0/5] PMU support for engine activity Riana Tauro
  2025-02-14  9:54 ` ✓ CI.Patch_applied: success for PMU support for engine activity (rev3) Patchwork
  2025-02-14  9:55 ` ✗ CI.checkpatch: warning " Patchwork
@ 2025-02-14  9:56 ` Patchwork
  2025-02-14 10:08 ` [PATCH v7 1/5] drm/xe: Add engine activity support Riana Tauro
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-02-14  9:56 UTC (permalink / raw)
  To: Riana Tauro; +Cc: intel-xe

== Series Details ==

Series: PMU support for engine activity (rev3)
URL   : https://patchwork.freedesktop.org/series/144408/
State : success

== Summary ==

+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[09:55:05] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[09:55:09] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json ARCH=um O=.kunit --jobs=48
../lib/iomap.c:156:5: warning: no previous prototype for ‘ioread64_lo_hi’ [-Wmissing-prototypes]
  156 | u64 ioread64_lo_hi(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~
../lib/iomap.c:163:5: warning: no previous prototype for ‘ioread64_hi_lo’ [-Wmissing-prototypes]
  163 | u64 ioread64_hi_lo(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~
../lib/iomap.c:170:5: warning: no previous prototype for ‘ioread64be_lo_hi’ [-Wmissing-prototypes]
  170 | u64 ioread64be_lo_hi(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~~~
../lib/iomap.c:178:5: warning: no previous prototype for ‘ioread64be_hi_lo’ [-Wmissing-prototypes]
  178 | u64 ioread64be_hi_lo(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~~~
../lib/iomap.c:264:6: warning: no previous prototype for ‘iowrite64_lo_hi’ [-Wmissing-prototypes]
  264 | void iowrite64_lo_hi(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~
../lib/iomap.c:272:6: warning: no previous prototype for ‘iowrite64_hi_lo’ [-Wmissing-prototypes]
  272 | void iowrite64_hi_lo(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~
../lib/iomap.c:280:6: warning: no previous prototype for ‘iowrite64be_lo_hi’ [-Wmissing-prototypes]
  280 | void iowrite64be_lo_hi(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~~~
../lib/iomap.c:288:6: warning: no previous prototype for ‘iowrite64be_hi_lo’ [-Wmissing-prototypes]
  288 | void iowrite64be_hi_lo(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~~~

[09:55:35] Starting KUnit Kernel (1/1)...
[09:55:35] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[09:55:35] ================== guc_buf (11 subtests) ===================
[09:55:35] [PASSED] test_smallest
[09:55:35] [PASSED] test_largest
[09:55:35] [PASSED] test_granular
[09:55:35] [PASSED] test_unique
[09:55:35] [PASSED] test_overlap
[09:55:35] [PASSED] test_reusable
[09:55:35] [PASSED] test_too_big
[09:55:35] [PASSED] test_flush
[09:55:35] [PASSED] test_lookup
[09:55:35] [PASSED] test_data
[09:55:35] [PASSED] test_class
[09:55:35] ===================== [PASSED] guc_buf =====================
[09:55:35] =================== guc_dbm (7 subtests) ===================
[09:55:35] [PASSED] test_empty
[09:55:35] [PASSED] test_default
[09:55:35] ======================== test_size  ========================
[09:55:35] [PASSED] 4
[09:55:35] [PASSED] 8
[09:55:35] [PASSED] 32
[09:55:35] [PASSED] 256
[09:55:35] ==================== [PASSED] test_size ====================
[09:55:35] ======================= test_reuse  ========================
[09:55:35] [PASSED] 4
[09:55:35] [PASSED] 8
[09:55:35] [PASSED] 32
[09:55:35] [PASSED] 256
[09:55:35] =================== [PASSED] test_reuse ====================
[09:55:35] =================== test_range_overlap  ====================
[09:55:35] [PASSED] 4
[09:55:35] [PASSED] 8
[09:55:35] [PASSED] 32
[09:55:35] [PASSED] 256
[09:55:35] =============== [PASSED] test_range_overlap ================
[09:55:35] =================== test_range_compact  ====================
[09:55:35] [PASSED] 4
[09:55:35] [PASSED] 8
[09:55:35] [PASSED] 32
[09:55:35] [PASSED] 256
[09:55:35] =============== [PASSED] test_range_compact ================
[09:55:35] ==================== test_range_spare  =====================
[09:55:35] [PASSED] 4
[09:55:35] [PASSED] 8
[09:55:35] [PASSED] 32
[09:55:35] [PASSED] 256
[09:55:35] ================ [PASSED] test_range_spare =================
[09:55:35] ===================== [PASSED] guc_dbm =====================
[09:55:35] =================== guc_idm (6 subtests) ===================
[09:55:35] [PASSED] bad_init
[09:55:35] [PASSED] no_init
[09:55:35] [PASSED] init_fini
[09:55:35] [PASSED] check_used
[09:55:35] [PASSED] check_quota
[09:55:35] [PASSED] check_all
[09:55:35] ===================== [PASSED] guc_idm =====================
[09:55:35] ================== no_relay (3 subtests) ===================
[09:55:35] [PASSED] xe_drops_guc2pf_if_not_ready
[09:55:35] [PASSED] xe_drops_guc2vf_if_not_ready
[09:55:35] [PASSED] xe_rejects_send_if_not_ready
[09:55:35] ==================== [PASSED] no_relay =====================
[09:55:35] ================== pf_relay (14 subtests) ==================
[09:55:35] [PASSED] pf_rejects_guc2pf_too_short
[09:55:35] [PASSED] pf_rejects_guc2pf_too_long
[09:55:35] [PASSED] pf_rejects_guc2pf_no_payload
[09:55:35] [PASSED] pf_fails_no_payload
[09:55:35] [PASSED] pf_fails_bad_origin
[09:55:35] [PASSED] pf_fails_bad_type
[09:55:35] [PASSED] pf_txn_reports_error
[09:55:35] [PASSED] pf_txn_sends_pf2guc
[09:55:35] [PASSED] pf_sends_pf2guc
[09:55:35] [SKIPPED] pf_loopback_nop
[09:55:35] [SKIPPED] pf_loopback_echo
[09:55:35] [SKIPPED] pf_loopback_fail
[09:55:35] [SKIPPED] pf_loopback_busy
[09:55:35] [SKIPPED] pf_loopback_retry
[09:55:35] ==================== [PASSED] pf_relay =====================
[09:55:35] ================== vf_relay (3 subtests) ===================
[09:55:35] [PASSED] vf_rejects_guc2vf_too_short
[09:55:35] [PASSED] vf_rejects_guc2vf_too_long
[09:55:35] [PASSED] vf_rejects_guc2vf_no_payload
[09:55:35] ==================== [PASSED] vf_relay =====================
[09:55:35] ================= pf_service (11 subtests) =================
[09:55:35] [PASSED] pf_negotiate_any
[09:55:35] [PASSED] pf_negotiate_base_match
[09:55:35] [PASSED] pf_negotiate_base_newer
[09:55:35] [PASSED] pf_negotiate_base_next
[09:55:35] [SKIPPED] pf_negotiate_base_older
[09:55:35] [PASSED] pf_negotiate_base_prev
[09:55:35] [PASSED] pf_negotiate_latest_match
[09:55:35] [PASSED] pf_negotiate_latest_newer
[09:55:35] [PASSED] pf_negotiate_latest_next
[09:55:35] [SKIPPED] pf_negotiate_latest_older
[09:55:35] [SKIPPED] pf_negotiate_latest_prev
[09:55:35] =================== [PASSED] pf_service ====================
[09:55:35] ===================== lmtt (1 subtest) =====================
[09:55:35] ======================== test_ops  =========================
[09:55:35] [PASSED] 2-level
[09:55:35] [PASSED] multi-level
[09:55:35] ==================== [PASSED] test_ops =====================
[09:55:35] ====================== [PASSED] lmtt =======================
[09:55:35] =================== xe_mocs (2 subtests) ===================
[09:55:35] ================ xe_live_mocs_kernel_kunit  ================
[09:55:35] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[09:55:35] ================ xe_live_mocs_reset_kunit  =================
[09:55:35] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[09:55:35] ==================== [SKIPPED] xe_mocs =====================
[09:55:35] ================= xe_migrate (2 subtests) ==================
[09:55:35] ================= xe_migrate_sanity_kunit  =================
[09:55:35] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[09:55:35] ================== xe_validate_ccs_kunit  ==================
[09:55:35] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[09:55:35] =================== [SKIPPED] xe_migrate ===================
[09:55:35] ================== xe_dma_buf (1 subtest) ==================
[09:55:35] ==================== xe_dma_buf_kunit  =====================
[09:55:35] ================ [SKIPPED] xe_dma_buf_kunit ================
[09:55:35] =================== [SKIPPED] xe_dma_buf ===================
[09:55:35] ================= xe_bo_shrink (1 subtest) =================
[09:55:35] =================== xe_bo_shrink_kunit  ====================
[09:55:35] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[09:55:35] ================== [SKIPPED] xe_bo_shrink ==================
[09:55:35] ==================== xe_bo (2 subtests) ====================
[09:55:35] ================== xe_ccs_migrate_kunit  ===================
[09:55:35] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
stty: 'standard input': Inappropriate ioctl for device
[09:55:35] ==================== xe_bo_evict_kunit  ====================
[09:55:35] =============== [SKIPPED] xe_bo_evict_kunit ================
[09:55:35] ===================== [SKIPPED] xe_bo ======================
[09:55:35] ==================== args (11 subtests) ====================
[09:55:35] [PASSED] count_args_test
[09:55:35] [PASSED] call_args_example
[09:55:35] [PASSED] call_args_test
[09:55:35] [PASSED] drop_first_arg_example
[09:55:35] [PASSED] drop_first_arg_test
[09:55:35] [PASSED] first_arg_example
[09:55:35] [PASSED] first_arg_test
[09:55:35] [PASSED] last_arg_example
[09:55:35] [PASSED] last_arg_test
[09:55:35] [PASSED] pick_arg_example
[09:55:35] [PASSED] sep_comma_example
[09:55:35] ====================== [PASSED] args =======================
[09:55:35] =================== xe_pci (2 subtests) ====================
[09:55:35] [PASSED] xe_gmdid_graphics_ip
[09:55:35] [PASSED] xe_gmdid_media_ip
[09:55:35] ===================== [PASSED] xe_pci ======================
[09:55:35] =================== xe_rtp (2 subtests) ====================
[09:55:35] =============== xe_rtp_process_to_sr_tests  ================
[09:55:35] [PASSED] coalesce-same-reg
[09:55:35] [PASSED] no-match-no-add
[09:55:35] [PASSED] match-or
[09:55:35] [PASSED] match-or-xfail
[09:55:35] [PASSED] no-match-no-add-multiple-rules
[09:55:35] [PASSED] two-regs-two-entries
[09:55:35] [PASSED] clr-one-set-other
[09:55:35] [PASSED] set-field
[09:55:35] [PASSED] conflict-duplicate
[09:55:35] [PASSED] conflict-not-disjoint
[09:55:35] [PASSED] conflict-reg-type
[09:55:35] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[09:55:35] ================== xe_rtp_process_tests  ===================
[09:55:35] [PASSED] active1
[09:55:35] [PASSED] active2
[09:55:35] [PASSED] active-inactive
[09:55:35] [PASSED] inactive-active
[09:55:35] [PASSED] inactive-1st_or_active-inactive
[09:55:35] [PASSED] inactive-2nd_or_active-inactive
[09:55:35] [PASSED] inactive-last_or_active-inactive
[09:55:35] [PASSED] inactive-no_or_active-inactive
[09:55:35] ============== [PASSED] xe_rtp_process_tests ===============
[09:55:35] ===================== [PASSED] xe_rtp ======================
[09:55:35] ==================== xe_wa (1 subtest) =====================
[09:55:35] ======================== xe_wa_gt  =========================
[09:55:35] [PASSED] TIGERLAKE (B0)
[09:55:35] [PASSED] DG1 (A0)
[09:55:35] [PASSED] DG1 (B0)
[09:55:35] [PASSED] ALDERLAKE_S (A0)
[09:55:35] [PASSED] ALDERLAKE_S (B0)
[09:55:35] [PASSED] ALDERLAKE_S (C0)
[09:55:35] [PASSED] ALDERLAKE_S (D0)
[09:55:35] [PASSED] ALDERLAKE_P (A0)
[09:55:35] [PASSED] ALDERLAKE_P (B0)
[09:55:35] [PASSED] ALDERLAKE_P (C0)
[09:55:35] [PASSED] ALDERLAKE_S_RPLS (D0)
[09:55:35] [PASSED] ALDERLAKE_P_RPLU (E0)
[09:55:35] [PASSED] DG2_G10 (C0)
[09:55:35] [PASSED] DG2_G11 (B1)
[09:55:35] [PASSED] DG2_G12 (A1)
[09:55:35] [PASSED] METEORLAKE (g:A0, m:A0)
[09:55:35] [PASSED] METEORLAKE (g:A0, m:A0)
[09:55:35] [PASSED] METEORLAKE (g:A0, m:A0)
[09:55:35] [PASSED] LUNARLAKE (g:A0, m:A0)
[09:55:35] [PASSED] LUNARLAKE (g:B0, m:A0)
[09:55:35] [PASSED] BATTLEMAGE (g:A0, m:A1)
[09:55:35] ==================== [PASSED] xe_wa_gt =====================
[09:55:35] ====================== [PASSED] xe_wa ======================
[09:55:35] ============================================================
[09:55:35] Testing complete. Ran 133 tests: passed: 117, skipped: 16
[09:55:35] Elapsed time: 30.584s total, 4.215s configuring, 26.052s building, 0.267s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[09:55:35] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[09:55:37] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json ARCH=um O=.kunit --jobs=48
../lib/iomap.c:156:5: warning: no previous prototype for ‘ioread64_lo_hi’ [-Wmissing-prototypes]
  156 | u64 ioread64_lo_hi(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~
../lib/iomap.c:163:5: warning: no previous prototype for ‘ioread64_hi_lo’ [-Wmissing-prototypes]
  163 | u64 ioread64_hi_lo(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~
../lib/iomap.c:170:5: warning: no previous prototype for ‘ioread64be_lo_hi’ [-Wmissing-prototypes]
  170 | u64 ioread64be_lo_hi(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~~~
../lib/iomap.c:178:5: warning: no previous prototype for ‘ioread64be_hi_lo’ [-Wmissing-prototypes]
  178 | u64 ioread64be_hi_lo(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~~~
../lib/iomap.c:264:6: warning: no previous prototype for ‘iowrite64_lo_hi’ [-Wmissing-prototypes]
  264 | void iowrite64_lo_hi(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~
../lib/iomap.c:272:6: warning: no previous prototype for ‘iowrite64_hi_lo’ [-Wmissing-prototypes]
  272 | void iowrite64_hi_lo(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~
../lib/iomap.c:280:6: warning: no previous prototype for ‘iowrite64be_lo_hi’ [-Wmissing-prototypes]
  280 | void iowrite64be_lo_hi(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~~~
../lib/iomap.c:288:6: warning: no previous prototype for ‘iowrite64be_hi_lo’ [-Wmissing-prototypes]
  288 | void iowrite64be_hi_lo(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~~~

[09:55:58] Starting KUnit Kernel (1/1)...
[09:55:58] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[09:55:58] =========== drm_validate_clone_mode (2 subtests) ===========
[09:55:58] ============== drm_test_check_in_clone_mode  ===============
[09:55:58] [PASSED] in_clone_mode
[09:55:58] [PASSED] not_in_clone_mode
[09:55:58] ========== [PASSED] drm_test_check_in_clone_mode ===========
[09:55:58] =============== drm_test_check_valid_clones  ===============
[09:55:58] [PASSED] not_in_clone_mode
[09:55:58] [PASSED] valid_clone
[09:55:58] [PASSED] invalid_clone
[09:55:58] =========== [PASSED] drm_test_check_valid_clones ===========
[09:55:58] ============= [PASSED] drm_validate_clone_mode =============
[09:55:58] ============= drm_validate_modeset (1 subtest) =============
[09:55:58] [PASSED] drm_test_check_connector_changed_modeset
[09:55:58] ============== [PASSED] drm_validate_modeset ===============
[09:55:58] ================== drm_buddy (7 subtests) ==================
[09:55:58] [PASSED] drm_test_buddy_alloc_limit
[09:55:58] [PASSED] drm_test_buddy_alloc_optimistic
[09:55:58] [PASSED] drm_test_buddy_alloc_pessimistic
[09:55:58] [PASSED] drm_test_buddy_alloc_pathological
[09:55:58] [PASSED] drm_test_buddy_alloc_contiguous
[09:55:58] [PASSED] drm_test_buddy_alloc_clear
[09:55:58] [PASSED] drm_test_buddy_alloc_range_bias
[09:55:58] ==================== [PASSED] drm_buddy ====================
[09:55:58] ============= drm_cmdline_parser (40 subtests) =============
[09:55:58] [PASSED] drm_test_cmdline_force_d_only
[09:55:58] [PASSED] drm_test_cmdline_force_D_only_dvi
[09:55:58] [PASSED] drm_test_cmdline_force_D_only_hdmi
[09:55:58] [PASSED] drm_test_cmdline_force_D_only_not_digital
[09:55:58] [PASSED] drm_test_cmdline_force_e_only
[09:55:58] [PASSED] drm_test_cmdline_res
[09:55:58] [PASSED] drm_test_cmdline_res_vesa
[09:55:58] [PASSED] drm_test_cmdline_res_vesa_rblank
[09:55:58] [PASSED] drm_test_cmdline_res_rblank
[09:55:58] [PASSED] drm_test_cmdline_res_bpp
[09:55:58] [PASSED] drm_test_cmdline_res_refresh
[09:55:58] [PASSED] drm_test_cmdline_res_bpp_refresh
[09:55:58] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[09:55:58] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[09:55:58] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[09:55:58] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[09:55:58] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[09:55:58] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[09:55:58] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[09:55:58] [PASSED] drm_test_cmdline_res_margins_force_on
[09:55:58] [PASSED] drm_test_cmdline_res_vesa_margins
[09:55:58] [PASSED] drm_test_cmdline_name
[09:55:58] [PASSED] drm_test_cmdline_name_bpp
[09:55:58] [PASSED] drm_test_cmdline_name_option
[09:55:58] [PASSED] drm_test_cmdline_name_bpp_option
[09:55:58] [PASSED] drm_test_cmdline_rotate_0
[09:55:58] [PASSED] drm_test_cmdline_rotate_90
[09:55:58] [PASSED] drm_test_cmdline_rotate_180
[09:55:58] [PASSED] drm_test_cmdline_rotate_270
[09:55:58] [PASSED] drm_test_cmdline_hmirror
[09:55:58] [PASSED] drm_test_cmdline_vmirror
[09:55:58] [PASSED] drm_test_cmdline_margin_options
[09:55:58] [PASSED] drm_test_cmdline_multiple_options
[09:55:58] [PASSED] drm_test_cmdline_bpp_extra_and_option
[09:55:58] [PASSED] drm_test_cmdline_extra_and_option
[09:55:58] [PASSED] drm_test_cmdline_freestanding_options
[09:55:58] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[09:55:58] [PASSED] drm_test_cmdline_panel_orientation
[09:55:58] ================ drm_test_cmdline_invalid  =================
[09:55:58] [PASSED] margin_only
[09:55:58] [PASSED] interlace_only
[09:55:58] [PASSED] res_missing_x
[09:55:58] [PASSED] res_missing_y
[09:55:58] [PASSED] res_bad_y
[09:55:58] [PASSED] res_missing_y_bpp
[09:55:58] [PASSED] res_bad_bpp
[09:55:58] [PASSED] res_bad_refresh
[09:55:58] [PASSED] res_bpp_refresh_force_on_off
[09:55:58] [PASSED] res_invalid_mode
[09:55:58] [PASSED] res_bpp_wrong_place_mode
[09:55:58] [PASSED] name_bpp_refresh
[09:55:58] [PASSED] name_refresh
[09:55:58] [PASSED] name_refresh_wrong_mode
[09:55:58] [PASSED] name_refresh_invalid_mode
[09:55:58] [PASSED] rotate_multiple
[09:55:58] [PASSED] rotate_invalid_val
[09:55:58] [PASSED] rotate_truncated
[09:55:58] [PASSED] invalid_option
[09:55:58] [PASSED] invalid_tv_option
[09:55:58] [PASSED] truncated_tv_option
[09:55:58] ============ [PASSED] drm_test_cmdline_invalid =============
[09:55:58] =============== drm_test_cmdline_tv_options  ===============
[09:55:58] [PASSED] NTSC
[09:55:58] [PASSED] NTSC_443
[09:55:58] [PASSED] NTSC_J
[09:55:58] [PASSED] PAL
[09:55:58] [PASSED] PAL_M
[09:55:58] [PASSED] PAL_N
[09:55:58] [PASSED] SECAM
[09:55:58] [PASSED] MONO_525
[09:55:58] [PASSED] MONO_625
[09:55:58] =========== [PASSED] drm_test_cmdline_tv_options ===========
[09:55:58] =============== [PASSED] drm_cmdline_parser ================
[09:55:58] ========== drmm_connector_hdmi_init (20 subtests) ==========
[09:55:58] [PASSED] drm_test_connector_hdmi_init_valid
[09:55:58] [PASSED] drm_test_connector_hdmi_init_bpc_8
[09:55:58] [PASSED] drm_test_connector_hdmi_init_bpc_10
[09:55:58] [PASSED] drm_test_connector_hdmi_init_bpc_12
[09:55:58] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[09:55:58] [PASSED] drm_test_connector_hdmi_init_bpc_null
[09:55:58] [PASSED] drm_test_connector_hdmi_init_formats_empty
[09:55:58] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[09:55:58] === drm_test_connector_hdmi_init_formats_yuv420_allowed  ===
[09:55:58] [PASSED] supported_formats=0x9 yuv420_allowed=1
[09:55:58] [PASSED] supported_formats=0x9 yuv420_allowed=0
[09:55:58] [PASSED] supported_formats=0x3 yuv420_allowed=1
[09:55:58] [PASSED] supported_formats=0x3 yuv420_allowed=0
[09:55:58] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[09:55:58] [PASSED] drm_test_connector_hdmi_init_null_ddc
[09:55:58] [PASSED] drm_test_connector_hdmi_init_null_product
[09:55:58] [PASSED] drm_test_connector_hdmi_init_null_vendor
[09:55:58] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[09:55:58] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[09:55:58] [PASSED] drm_test_connector_hdmi_init_product_valid
[09:55:58] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[09:55:58] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[09:55:58] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[09:55:58] ========= drm_test_connector_hdmi_init_type_valid  =========
[09:55:58] [PASSED] HDMI-A
[09:55:58] [PASSED] HDMI-B
[09:55:58] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[09:55:58] ======== drm_test_connector_hdmi_init_type_invalid  ========
[09:55:58] [PASSED] Unknown
[09:55:58] [PASSED] VGA
[09:55:58] [PASSED] DVI-I
[09:55:58] [PASSED] DVI-D
[09:55:58] [PASSED] DVI-A
[09:55:58] [PASSED] Composite
[09:55:58] [PASSED] SVIDEO
[09:55:58] [PASSED] LVDS
[09:55:58] [PASSED] Component
[09:55:58] [PASSED] DIN
[09:55:58] [PASSED] DP
[09:55:58] [PASSED] TV
[09:55:58] [PASSED] eDP
[09:55:58] [PASSED] Virtual
[09:55:58] [PASSED] DSI
[09:55:58] [PASSED] DPI
[09:55:58] [PASSED] Writeback
[09:55:58] [PASSED] SPI
[09:55:58] [PASSED] USB
[09:55:58] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[09:55:58] ============ [PASSED] drmm_connector_hdmi_init =============
[09:55:58] ============= drmm_connector_init (3 subtests) =============
[09:55:58] [PASSED] drm_test_drmm_connector_init
[09:55:58] [PASSED] drm_test_drmm_connector_init_null_ddc
[09:55:58] ========= drm_test_drmm_connector_init_type_valid  =========
[09:55:58] [PASSED] Unknown
[09:55:58] [PASSED] VGA
[09:55:58] [PASSED] DVI-I
[09:55:58] [PASSED] DVI-D
[09:55:58] [PASSED] DVI-A
[09:55:58] [PASSED] Composite
[09:55:58] [PASSED] SVIDEO
[09:55:58] [PASSED] LVDS
[09:55:58] [PASSED] Component
[09:55:58] [PASSED] DIN
[09:55:58] [PASSED] DP
[09:55:58] [PASSED] HDMI-A
[09:55:58] [PASSED] HDMI-B
[09:55:58] [PASSED] TV
[09:55:58] [PASSED] eDP
[09:55:58] [PASSED] Virtual
[09:55:58] [PASSED] DSI
[09:55:58] [PASSED] DPI
[09:55:58] [PASSED] Writeback
[09:55:58] [PASSED] SPI
[09:55:58] [PASSED] USB
[09:55:58] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[09:55:58] =============== [PASSED] drmm_connector_init ===============
[09:55:58] ========= drm_connector_dynamic_init (6 subtests) ==========
[09:55:58] [PASSED] drm_test_drm_connector_dynamic_init
[09:55:58] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[09:55:58] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[09:55:58] [PASSED] drm_test_drm_connector_dynamic_init_properties
[09:55:58] ===== drm_test_drm_connector_dynamic_init_type_valid  ======
[09:55:58] [PASSED] Unknown
[09:55:58] [PASSED] VGA
[09:55:58] [PASSED] DVI-I
[09:55:58] [PASSED] DVI-D
[09:55:58] [PASSED] DVI-A
[09:55:58] [PASSED] Composite
[09:55:58] [PASSED] SVIDEO
[09:55:58] [PASSED] LVDS
[09:55:58] [PASSED] Component
[09:55:58] [PASSED] DIN
[09:55:58] [PASSED] DP
[09:55:58] [PASSED] HDMI-A
[09:55:58] [PASSED] HDMI-B
[09:55:58] [PASSED] TV
[09:55:58] [PASSED] eDP
[09:55:58] [PASSED] Virtual
[09:55:58] [PASSED] DSI
[09:55:58] [PASSED] DPI
[09:55:58] [PASSED] Writeback
[09:55:58] [PASSED] SPI
[09:55:58] [PASSED] USB
[09:55:58] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[09:55:58] ======== drm_test_drm_connector_dynamic_init_name  =========
[09:55:58] [PASSED] Unknown
[09:55:58] [PASSED] VGA
[09:55:58] [PASSED] DVI-I
[09:55:58] [PASSED] DVI-D
[09:55:58] [PASSED] DVI-A
[09:55:58] [PASSED] Composite
[09:55:58] [PASSED] SVIDEO
[09:55:58] [PASSED] LVDS
[09:55:58] [PASSED] Component
[09:55:58] [PASSED] DIN
[09:55:58] [PASSED] DP
[09:55:58] [PASSED] HDMI-A
[09:55:58] [PASSED] HDMI-B
[09:55:58] [PASSED] TV
[09:55:58] [PASSED] eDP
[09:55:58] [PASSED] Virtual
[09:55:58] [PASSED] DSI
[09:55:58] [PASSED] DPI
[09:55:58] [PASSED] Writeback
[09:55:58] [PASSED] SPI
[09:55:58] [PASSED] USB
[09:55:58] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[09:55:58] =========== [PASSED] drm_connector_dynamic_init ============
[09:55:58] ==== drm_connector_dynamic_register_early (4 subtests) =====
[09:55:58] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[09:55:58] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[09:55:58] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[09:55:58] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[09:55:58] ====== [PASSED] drm_connector_dynamic_register_early =======
[09:55:58] ======= drm_connector_dynamic_register (7 subtests) ========
[09:55:58] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[09:55:58] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[09:55:58] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[09:55:58] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[09:55:58] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[09:55:58] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[09:55:58] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[09:55:58] ========= [PASSED] drm_connector_dynamic_register ==========
[09:55:58] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[09:55:58] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[09:55:58] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[09:55:58] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[09:55:58] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[09:55:58] ========== drm_test_get_tv_mode_from_name_valid  ===========
[09:55:58] [PASSED] NTSC
[09:55:58] [PASSED] NTSC-443
[09:55:58] [PASSED] NTSC-J
[09:55:58] [PASSED] PAL
[09:55:58] [PASSED] PAL-M
[09:55:58] [PASSED] PAL-N
[09:55:58] [PASSED] SECAM
[09:55:58] [PASSED] Mono
[09:55:58] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[09:55:58] [PASSED] drm_test_get_tv_mode_from_name_truncated
[09:55:58] ============ [PASSED] drm_get_tv_mode_from_name ============
[09:55:58] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[09:55:58] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[09:55:58] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[09:55:58] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[09:55:58] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[09:55:58] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[09:55:58] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[09:55:58] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid  =
[09:55:58] [PASSED] VIC 96
[09:55:58] [PASSED] VIC 97
[09:55:58] [PASSED] VIC 101
[09:55:58] [PASSED] VIC 102
[09:55:58] [PASSED] VIC 106
[09:55:58] [PASSED] VIC 107
[09:55:58] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[09:55:58] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[09:55:58] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[09:55:58] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[09:55:58] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[09:55:58] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[09:55:58] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[09:55:58] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[09:55:58] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name  ====
[09:55:58] [PASSED] Automatic
[09:55:58] [PASSED] Full
[09:55:58] [PASSED] Limited 16:235
[09:55:58] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[09:55:58] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[09:55:58] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[09:55:58] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[09:55:58] === drm_test_drm_hdmi_connector_get_output_format_name  ====
[09:55:58] [PASSED] RGB
[09:55:58] [PASSED] YUV 4:2:0
[09:55:58] [PASSED] YUV 4:2:2
[09:55:58] [PASSED] YUV 4:4:4
[09:55:58] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[09:55:58] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[09:55:58] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[09:55:58] ============= drm_damage_helper (21 subtests) ==============
[09:55:58] [PASSED] drm_test_damage_iter_no_damage
[09:55:58] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[09:55:58] [PASSED] drm_test_damage_iter_no_damage_src_moved
[09:55:58] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[09:55:58] [PASSED] drm_test_damage_iter_no_damage_not_visible
[09:55:58] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[09:55:58] [PASSED] drm_test_damage_iter_no_damage_no_fb
[09:55:58] [PASSED] drm_test_damage_iter_simple_damage
[09:55:58] [PASSED] drm_test_damage_iter_single_damage
[09:55:58] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[09:55:58] [PASSED] drm_test_damage_iter_single_damage_outside_src
[09:55:58] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[09:55:58] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[09:55:58] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[09:55:58] [PASSED] drm_test_damage_iter_single_damage_src_moved
[09:55:58] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[09:55:58] [PASSED] drm_test_damage_iter_damage
[09:55:58] [PASSED] drm_test_damage_iter_damage_one_intersect
[09:55:58] [PASSED] drm_test_damage_iter_damage_one_outside
[09:55:58] [PASSED] drm_test_damage_iter_damage_src_moved
[09:55:58] [PASSED] drm_test_damage_iter_damage_not_visible
[09:55:58] ================ [PASSED] drm_damage_helper ================
[09:55:58] ============== drm_dp_mst_helper (3 subtests) ==============
[09:55:58] ============== drm_test_dp_mst_calc_pbn_mode  ==============
[09:55:58] [PASSED] Clock 154000 BPP 30 DSC disabled
[09:55:58] [PASSED] Clock 234000 BPP 30 DSC disabled
[09:55:58] [PASSED] Clock 297000 BPP 24 DSC disabled
[09:55:58] [PASSED] Clock 332880 BPP 24 DSC enabled
[09:55:58] [PASSED] Clock 324540 BPP 24 DSC enabled
[09:55:58] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[09:55:58] ============== drm_test_dp_mst_calc_pbn_div  ===============
[09:55:58] [PASSED] Link rate 2000000 lane count 4
[09:55:58] [PASSED] Link rate 2000000 lane count 2
[09:55:58] [PASSED] Link rate 2000000 lane count 1
[09:55:58] [PASSED] Link rate 1350000 lane count 4
[09:55:58] [PASSED] Link rate 1350000 lane count 2
[09:55:58] [PASSED] Link rate 1350000 lane count 1
[09:55:58] [PASSED] Link rate 1000000 lane count 4
[09:55:58] [PASSED] Link rate 1000000 lane count 2
[09:55:58] [PASSED] Link rate 1000000 lane count 1
[09:55:58] [PASSED] Link rate 810000 lane count 4
[09:55:58] [PASSED] Link rate 810000 lane count 2
[09:55:58] [PASSED] Link rate 810000 lane count 1
[09:55:58] [PASSED] Link rate 540000 lane count 4
[09:55:58] [PASSED] Link rate 540000 lane count 2
[09:55:58] [PASSED] Link rate 540000 lane count 1
[09:55:58] [PASSED] Link rate 270000 lane count 4
[09:55:58] [PASSED] Link rate 270000 lane count 2
[09:55:58] [PASSED] Link rate 270000 lane count 1
[09:55:58] [PASSED] Link rate 162000 lane count 4
[09:55:58] [PASSED] Link rate 162000 lane count 2
[09:55:58] [PASSED] Link rate 162000 lane count 1
[09:55:58] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[09:55:58] ========= drm_test_dp_mst_sideband_msg_req_decode  =========
[09:55:58] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[09:55:58] [PASSED] DP_POWER_UP_PHY with port number
[09:55:58] [PASSED] DP_POWER_DOWN_PHY with port number
[09:55:58] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[09:55:58] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[09:55:58] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[09:55:58] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[09:55:58] [PASSED] DP_QUERY_PAYLOAD with port number
[09:55:58] [PASSED] DP_QUERY_PAYLOAD with VCPI
[09:55:58] [PASSED] DP_REMOTE_DPCD_READ with port number
[09:55:58] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[09:55:58] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[09:55:58] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[09:55:58] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[09:55:58] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[09:55:58] [PASSED] DP_REMOTE_I2C_READ with port number
[09:55:58] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[09:55:58] [PASSED] DP_REMOTE_I2C_READ with transactions array
[09:55:58] [PASSED] DP_REMOTE_I2C_WRITE with port number
[09:55:58] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[09:55:58] [PASSED] DP_REMOTE_I2C_WRITE with data array
[09:55:58] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[09:55:58] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[09:55:58] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[09:55:58] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[09:55:58] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[09:55:58] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[09:55:58] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[09:55:58] ================ [PASSED] drm_dp_mst_helper ================
[09:55:58] ================== drm_exec (7 subtests) ===================
[09:55:58] [PASSED] sanitycheck
[09:55:58] [PASSED] test_lock
[09:55:58] [PASSED] test_lock_unlock
[09:55:58] [PASSED] test_duplicates
[09:55:58] [PASSED] test_prepare
[09:55:58] [PASSED] test_prepare_array
[09:55:58] [PASSED] test_multiple_loops
[09:55:58] ==================== [PASSED] drm_exec =====================
[09:55:58] =========== drm_format_helper_test (17 subtests) ===========
[09:55:58] ============== drm_test_fb_xrgb8888_to_gray8  ==============
[09:55:58] [PASSED] single_pixel_source_buffer
[09:55:58] [PASSED] single_pixel_clip_rectangle
[09:55:58] [PASSED] well_known_colors
[09:55:58] [PASSED] destination_pitch
[09:55:58] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[09:55:58] ============= drm_test_fb_xrgb8888_to_rgb332  ==============
[09:55:58] [PASSED] single_pixel_source_buffer
[09:55:58] [PASSED] single_pixel_clip_rectangle
[09:55:58] [PASSED] well_known_colors
[09:55:58] [PASSED] destination_pitch
[09:55:58] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[09:55:58] ============= drm_test_fb_xrgb8888_to_rgb565  ==============
[09:55:58] [PASSED] single_pixel_source_buffer
[09:55:58] [PASSED] single_pixel_clip_rectangle
[09:55:58] [PASSED] well_known_colors
[09:55:58] [PASSED] destination_pitch
[09:55:58] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[09:55:58] ============ drm_test_fb_xrgb8888_to_xrgb1555  =============
[09:55:58] [PASSED] single_pixel_source_buffer
[09:55:58] [PASSED] single_pixel_clip_rectangle
[09:55:58] [PASSED] well_known_colors
[09:55:58] [PASSED] destination_pitch
[09:55:58] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[09:55:58] ============ drm_test_fb_xrgb8888_to_argb1555  =============
[09:55:58] [PASSED] single_pixel_source_buffer
[09:55:58] [PASSED] single_pixel_clip_rectangle
[09:55:58] [PASSED] well_known_colors
[09:55:58] [PASSED] destination_pitch
[09:55:58] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[09:55:58] ============ drm_test_fb_xrgb8888_to_rgba5551  =============
[09:55:58] [PASSED] single_pixel_source_buffer
[09:55:58] [PASSED] single_pixel_clip_rectangle
[09:55:58] [PASSED] well_known_colors
[09:55:58] [PASSED] destination_pitch
[09:55:58] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[09:55:58] ============= drm_test_fb_xrgb8888_to_rgb888  ==============
[09:55:58] [PASSED] single_pixel_source_buffer
[09:55:58] [PASSED] single_pixel_clip_rectangle
[09:55:58] [PASSED] well_known_colors
[09:55:58] [PASSED] destination_pitch
[09:55:58] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[09:55:58] ============ drm_test_fb_xrgb8888_to_argb8888  =============
[09:55:58] [PASSED] single_pixel_source_buffer
[09:55:58] [PASSED] single_pixel_clip_rectangle
[09:55:58] [PASSED] well_known_colors
[09:55:58] [PASSED] destination_pitch
[09:55:58] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[09:55:58] =========== drm_test_fb_xrgb8888_to_xrgb2101010  ===========
[09:55:58] [PASSED] single_pixel_source_buffer
[09:55:58] [PASSED] single_pixel_clip_rectangle
[09:55:58] [PASSED] well_known_colors
[09:55:58] [PASSED] destination_pitch
[09:55:58] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[09:55:58] =========== drm_test_fb_xrgb8888_to_argb2101010  ===========
[09:55:58] [PASSED] single_pixel_source_buffer
[09:55:58] [PASSED] single_pixel_clip_rectangle
[09:55:58] [PASSED] well_known_colors
[09:55:58] [PASSED] destination_pitch
[09:55:58] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[09:55:58] ============== drm_test_fb_xrgb8888_to_mono  ===============
[09:55:58] [PASSED] single_pixel_source_buffer
[09:55:58] [PASSED] single_pixel_clip_rectangle
[09:55:58] [PASSED] well_known_colors
[09:55:58] [PASSED] destination_pitch
[09:55:58] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[09:55:58] ==================== drm_test_fb_swab  =====================
[09:55:58] [PASSED] single_pixel_source_buffer
[09:55:58] [PASSED] single_pixel_clip_rectangle
[09:55:58] [PASSED] well_known_colors
[09:55:58] [PASSED] destination_pitch
[09:55:58] ================ [PASSED] drm_test_fb_swab =================
[09:55:58] ============ drm_test_fb_xrgb8888_to_xbgr8888  =============
[09:55:58] [PASSED] single_pixel_source_buffer
[09:55:58] [PASSED] single_pixel_clip_rectangle
[09:55:58] [PASSED] well_known_colors
[09:55:58] [PASSED] destination_pitch
[09:55:58] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[09:55:58] ============ drm_test_fb_xrgb8888_to_abgr8888  =============
[09:55:58] [PASSED] single_pixel_source_buffer
[09:55:58] [PASSED] single_pixel_clip_rectangle
[09:55:58] [PASSED] well_known_colors
[09:55:58] [PASSED] destination_pitch
[09:55:58] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[09:55:58] ================= drm_test_fb_clip_offset  =================
[09:55:58] [PASSED] pass through
[09:55:58] [PASSED] horizontal offset
[09:55:58] [PASSED] vertical offset
[09:55:58] [PASSED] horizontal and vertical offset
[09:55:58] [PASSED] horizontal offset (custom pitch)
[09:55:58] [PASSED] vertical offset (custom pitch)
[09:55:58] [PASSED] horizontal and vertical offset (custom pitch)
[09:55:58] ============= [PASSED] drm_test_fb_clip_offset =============
[09:55:58] ============== drm_test_fb_build_fourcc_list  ==============
[09:55:58] [PASSED] no native formats
[09:55:58] [PASSED] XRGB8888 as native format
[09:55:58] [PASSED] remove duplicates
[09:55:58] [PASSED] convert alpha formats
[09:55:58] [PASSED] random formats
[09:55:58] ========== [PASSED] drm_test_fb_build_fourcc_list ==========
[09:55:58] =================== drm_test_fb_memcpy  ====================
[09:55:58] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[09:55:58] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[09:55:58] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[09:55:58] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[09:55:58] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[09:55:58] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[09:55:58] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[09:55:58] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[09:55:58] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[09:55:58] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[09:55:58] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[09:55:58] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[09:55:58] =============== [PASSED] drm_test_fb_memcpy ================
[09:55:58] ============= [PASSED] drm_format_helper_test ==============
[09:55:58] ================= drm_format (18 subtests) =================
[09:55:58] [PASSED] drm_test_format_block_width_invalid
[09:55:58] [PASSED] drm_test_format_block_width_one_plane
[09:55:58] [PASSED] drm_test_format_block_width_two_plane
[09:55:58] [PASSED] drm_test_format_block_width_three_plane
[09:55:58] [PASSED] drm_test_format_block_width_tiled
[09:55:58] [PASSED] drm_test_format_block_height_invalid
[09:55:58] [PASSED] drm_test_format_block_height_one_plane
[09:55:58] [PASSED] drm_test_format_block_height_two_plane
[09:55:58] [PASSED] drm_test_format_block_height_three_plane
[09:55:58] [PASSED] drm_test_format_block_height_tiled
[09:55:58] [PASSED] drm_test_format_min_pitch_invalid
[09:55:58] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[09:55:58] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[09:55:58] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[09:55:58] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[09:55:58] [PASSED] drm_test_format_min_pitch_two_plane
[09:55:58] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[09:55:58] [PASSED] drm_test_format_min_pitch_tiled
[09:55:58] =================== [PASSED] drm_format ====================
[09:55:58] ============== drm_framebuffer (10 subtests) ===============
[09:55:58] ========== drm_test_framebuffer_check_src_coords  ==========
[09:55:58] [PASSED] Success: source fits into fb
[09:55:58] [PASSED] Fail: overflowing fb with x-axis coordinate
[09:55:58] [PASSED] Fail: overflowing fb with y-axis coordinate
[09:55:58] [PASSED] Fail: overflowing fb with source width
[09:55:58] [PASSED] Fail: overflowing fb with source height
[09:55:58] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[09:55:58] [PASSED] drm_test_framebuffer_cleanup
[09:55:58] =============== drm_test_framebuffer_create  ===============
[09:55:58] [PASSED] ABGR8888 normal sizes
[09:55:58] [PASSED] ABGR8888 max sizes
[09:55:58] [PASSED] ABGR8888 pitch greater than min required
[09:55:58] [PASSED] ABGR8888 pitch less than min required
[09:55:58] [PASSED] ABGR8888 Invalid width
[09:55:58] [PASSED] ABGR8888 Invalid buffer handle
[09:55:58] [PASSED] No pixel format
[09:55:58] [PASSED] ABGR8888 Width 0
[09:55:58] [PASSED] ABGR8888 Height 0
[09:55:58] [PASSED] ABGR8888 Out of bound height * pitch combination
[09:55:58] [PASSED] ABGR8888 Large buffer offset
[09:55:58] [PASSED] ABGR8888 Buffer offset for inexistent plane
[09:55:58] [PASSED] ABGR8888 Invalid flag
[09:55:58] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[09:55:58] [PASSED] ABGR8888 Valid buffer modifier
[09:55:58] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[09:55:58] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[09:55:58] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[09:55:58] [PASSED] NV12 Normal sizes
[09:55:58] [PASSED] NV12 Max sizes
[09:55:58] [PASSED] NV12 Invalid pitch
[09:55:58] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[09:55:58] [PASSED] NV12 different  modifier per-plane
[09:55:58] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[09:55:58] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[09:55:58] [PASSED] NV12 Modifier for inexistent plane
[09:55:58] [PASSED] NV12 Handle for inexistent plane
[09:55:58] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[09:55:58] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[09:55:58] [PASSED] YVU420 Normal sizes
[09:55:58] [PASSED] YVU420 Max sizes
[09:55:58] [PASSED] YVU420 Invalid pitch
[09:55:58] [PASSED] YVU420 Different pitches
[09:55:58] [PASSED] YVU420 Different buffer offsets/pitches
[09:55:58] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[09:55:58] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[09:55:58] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[09:55:58] [PASSED] YVU420 Valid modifier
[09:55:58] [PASSED] YVU420 Different modifiers per plane
[09:55:58] [PASSED] YVU420 Modifier for inexistent plane
[09:55:58] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[09:55:58] [PASSED] X0L2 Normal sizes
[09:55:58] [PASSED] X0L2 Max sizes
[09:55:58] [PASSED] X0L2 Invalid pitch
[09:55:58] [PASSED] X0L2 Pitch greater than minimum required
[09:55:58] [PASSED] X0L2 Handle for inexistent plane
[09:55:58] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[09:55:58] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[09:55:58] [PASSED] X0L2 Valid modifier
[09:55:58] [PASSED] X0L2 Modifier for inexistent plane
[09:55:58] =========== [PASSED] drm_test_framebuffer_create ===========
[09:55:58] [PASSED] drm_test_framebuffer_free
[09:55:58] [PASSED] drm_test_framebuffer_init
[09:55:58] [PASSED] drm_test_framebuffer_init_bad_format
[09:55:58] [PASSED] drm_test_framebuffer_init_dev_mismatch
[09:55:58] [PASSED] drm_test_framebuffer_lookup
[09:55:58] [PASSED] drm_test_framebuffer_lookup_inexistent
[09:55:58] [PASSED] drm_test_framebuffer_modifiers_not_supported
[09:55:58] ================= [PASSED] drm_framebuffer =================
[09:55:58] ================ drm_gem_shmem (8 subtests) ================
[09:55:58] [PASSED] drm_gem_shmem_test_obj_create
[09:55:58] [PASSED] drm_gem_shmem_test_obj_create_private
[09:55:58] [PASSED] drm_gem_shmem_test_pin_pages
[09:55:58] [PASSED] drm_gem_shmem_test_vmap
[09:55:58] [PASSED] drm_gem_shmem_test_get_pages_sgt
[09:55:58] [PASSED] drm_gem_shmem_test_get_sg_table
[09:55:58] [PASSED] drm_gem_shmem_test_madvise
[09:55:58] [PASSED] drm_gem_shmem_test_purge
[09:55:58] ================== [PASSED] drm_gem_shmem ==================
[09:55:58] === drm_atomic_helper_connector_hdmi_check (23 subtests) ===
[09:55:58] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[09:55:58] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[09:55:58] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[09:55:58] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[09:55:58] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[09:55:58] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[09:55:58] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[09:55:58] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[09:55:58] [PASSED] drm_test_check_disable_connector
[09:55:58] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[09:55:58] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback
[09:55:58] [PASSED] drm_test_check_max_tmds_rate_format_fallback
[09:55:58] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[09:55:58] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[09:55:58] [PASSED] drm_test_check_output_bpc_dvi
[09:55:58] [PASSED] drm_test_check_output_bpc_format_vic_1
[09:55:58] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[09:55:58] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[09:55:58] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[09:55:58] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[09:55:58] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[09:55:58] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[09:55:58] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[09:55:58] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[09:55:58] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[09:55:58] [PASSED] drm_test_check_broadcast_rgb_value
[09:55:58] [PASSED] drm_test_check_bpc_8_value
[09:55:58] [PASSED] drm_test_check_bpc_10_value
[09:55:58] [PASSED] drm_test_check_bpc_12_value
[09:55:58] [PASSED] drm_test_check_format_value
[09:55:58] [PASSED] drm_test_check_tmds_char_value
[09:55:58] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[09:55:58] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[09:55:58] [PASSED] drm_test_check_mode_valid
[09:55:58] [PASSED] drm_test_check_mode_valid_reject
[09:55:58] [PASSED] drm_test_check_mode_valid_reject_rate
[09:55:58] [PASSED] drm_test_check_mode_valid_reject_max_clock
[09:55:58] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[09:55:58] ================= drm_managed (2 subtests) =================
[09:55:58] [PASSED] drm_test_managed_release_action
[09:55:58] [PASSED] drm_test_managed_run_action
[09:55:58] =================== [PASSED] drm_managed ===================
[09:55:58] =================== drm_mm (6 subtests) ====================
[09:55:58] [PASSED] drm_test_mm_init
[09:55:58] [PASSED] drm_test_mm_debug
[09:55:58] [PASSED] drm_test_mm_align32
[09:55:58] [PASSED] drm_test_mm_align64
[09:55:58] [PASSED] drm_test_mm_lowest
[09:55:58] [PASSED] drm_test_mm_highest
[09:55:58] ===================== [PASSED] drm_mm ======================
[09:55:58] ============= drm_modes_analog_tv (5 subtests) =============
[09:55:58] [PASSED] drm_test_modes_analog_tv_mono_576i
[09:55:58] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[09:55:58] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[09:55:58] [PASSED] drm_test_modes_analog_tv_pal_576i
[09:55:58] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[09:55:58] =============== [PASSED] drm_modes_analog_tv ===============
[09:55:58] ============== drm_plane_helper (2 subtests) ===============
[09:55:58] =============== drm_test_check_plane_state  ================
[09:55:58] [PASSED] clipping_simple
[09:55:58] [PASSED] clipping_rotate_reflect
[09:55:58] [PASSED] positioning_simple
[09:55:58] [PASSED] upscaling
[09:55:58] [PASSED] downscaling
[09:55:58] [PASSED] rounding1
[09:55:58] [PASSED] rounding2
[09:55:58] [PASSED] rounding3
[09:55:58] [PASSED] rounding4
[09:55:58] =========== [PASSED] drm_test_check_plane_state ============
[09:55:58] =========== drm_test_check_invalid_plane_state  ============
[09:55:58] [PASSED] positioning_invalid
[09:55:58] [PASSED] upscaling_invalid
[09:55:58] [PASSED] downscaling_invalid
[09:55:58] ======= [PASSED] drm_test_check_invalid_plane_state ========
[09:55:58] ================ [PASSED] drm_plane_helper =================
[09:55:58] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[09:55:58] ====== drm_test_connector_helper_tv_get_modes_check  =======
[09:55:58] [PASSED] None
[09:55:58] [PASSED] PAL
[09:55:58] [PASSED] NTSC
[09:55:58] [PASSED] Both, NTSC Default
[09:55:58] [PASSED] Both, PAL Default
[09:55:58] [PASSED] Both, NTSC Default, with PAL on command-line
[09:55:58] [PASSED] Both, PAL Default, with NTSC on command-line
[09:55:58] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[09:55:58] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[09:55:58] ================== drm_rect (9 subtests) ===================
[09:55:58] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[09:55:58] [PASSED] drm_test_rect_clip_scaled_not_clipped
[09:55:58] [PASSED] drm_test_rect_clip_scaled_clipped
[09:55:58] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[09:55:58] ================= drm_test_rect_intersect  =================
[09:55:58] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[09:55:58] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[09:55:58] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[09:55:58] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[09:55:58] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[09:55:58] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[09:55:58] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[09:55:58] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[09:55:58] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[09:55:58] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[09:55:58] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[09:55:58] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[09:55:58] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[09:55:58] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[09:55:58] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[09:55:58] ============= [PASSED] drm_test_rect_intersect =============
[09:55:58] ================ drm_test_rect_calc_hscale  ================
[09:55:58] [PASSED] normal use
[09:55:58] [PASSED] out of max range
[09:55:58] [PASSED] out of min range
[09:55:58] [PASSED] zero dst
[09:55:58] [PASSED] negative src
[09:55:58] [PASSED] negative dst
[09:55:58] ============ [PASSED] drm_test_rect_calc_hscale ============
[09:55:58] ================ drm_test_rect_calc_vscale  ================
[09:55:58] [PASSED] normal use
[09:55:58] [PASSED] out of max range
[09:55:58] [PASSED] out of min range
[09:55:58] [PASSED] zero dst
[09:55:58] [PASSED] negative src
[09:55:58] [PASSED] negative dst
[09:55:58] ============ [PASSED] drm_test_rect_calc_vscale ============
[09:55:58] ================== drm_test_rect_rotate  ===================
[09:55:58] [PASSED] reflect-x
[09:55:58] [PASSED] reflect-y
[09:55:58] [PASSED] rotate-0
[09:55:58] [PASSED] rotate-90
[09:55:58] [PASSED] rotate-180
[09:55:58] [PASSED] rotate-270
stty: 'standard input': Inappropriate ioctl for device
[09:55:58] ============== [PASSED] drm_test_rect_rotate ===============
[09:55:58] ================ drm_test_rect_rotate_inv  =================
[09:55:58] [PASSED] reflect-x
[09:55:58] [PASSED] reflect-y
[09:55:58] [PASSED] rotate-0
[09:55:58] [PASSED] rotate-90
[09:55:58] [PASSED] rotate-180
[09:55:58] [PASSED] rotate-270
[09:55:58] ============ [PASSED] drm_test_rect_rotate_inv =============
[09:55:58] ==================== [PASSED] drm_rect =====================
[09:55:58] ============================================================
[09:55:58] Testing complete. Ran 598 tests: passed: 598
[09:55:58] Elapsed time: 22.860s total, 1.687s configuring, 21.004s building, 0.144s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[09:55:58] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[09:56:00] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json ARCH=um O=.kunit --jobs=48
[09:56:08] Starting KUnit Kernel (1/1)...
[09:56:08] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[09:56:08] ================= ttm_device (5 subtests) ==================
[09:56:08] [PASSED] ttm_device_init_basic
[09:56:08] [PASSED] ttm_device_init_multiple
[09:56:08] [PASSED] ttm_device_fini_basic
[09:56:08] [PASSED] ttm_device_init_no_vma_man
[09:56:08] ================== ttm_device_init_pools  ==================
[09:56:08] [PASSED] No DMA allocations, no DMA32 required
[09:56:08] [PASSED] DMA allocations, DMA32 required
[09:56:08] [PASSED] No DMA allocations, DMA32 required
[09:56:08] [PASSED] DMA allocations, no DMA32 required
[09:56:08] ============== [PASSED] ttm_device_init_pools ==============
[09:56:08] =================== [PASSED] ttm_device ====================
[09:56:08] ================== ttm_pool (8 subtests) ===================
[09:56:08] ================== ttm_pool_alloc_basic  ===================
[09:56:08] [PASSED] One page
[09:56:08] [PASSED] More than one page
[09:56:08] [PASSED] Above the allocation limit
[09:56:08] [PASSED] One page, with coherent DMA mappings enabled
[09:56:08] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[09:56:08] ============== [PASSED] ttm_pool_alloc_basic ===============
[09:56:08] ============== ttm_pool_alloc_basic_dma_addr  ==============
[09:56:08] [PASSED] One page
[09:56:08] [PASSED] More than one page
[09:56:08] [PASSED] Above the allocation limit
[09:56:08] [PASSED] One page, with coherent DMA mappings enabled
[09:56:08] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[09:56:08] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[09:56:08] [PASSED] ttm_pool_alloc_order_caching_match
[09:56:08] [PASSED] ttm_pool_alloc_caching_mismatch
[09:56:08] [PASSED] ttm_pool_alloc_order_mismatch
[09:56:08] [PASSED] ttm_pool_free_dma_alloc
[09:56:08] [PASSED] ttm_pool_free_no_dma_alloc
[09:56:08] [PASSED] ttm_pool_fini_basic
[09:56:08] ==================== [PASSED] ttm_pool =====================
[09:56:08] ================ ttm_resource (8 subtests) =================
[09:56:08] ================= ttm_resource_init_basic  =================
[09:56:08] [PASSED] Init resource in TTM_PL_SYSTEM
[09:56:08] [PASSED] Init resource in TTM_PL_VRAM
[09:56:08] [PASSED] Init resource in a private placement
[09:56:08] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[09:56:08] ============= [PASSED] ttm_resource_init_basic =============
[09:56:08] [PASSED] ttm_resource_init_pinned
[09:56:08] [PASSED] ttm_resource_fini_basic
[09:56:08] [PASSED] ttm_resource_manager_init_basic
[09:56:08] [PASSED] ttm_resource_manager_usage_basic
[09:56:08] [PASSED] ttm_resource_manager_set_used_basic
[09:56:08] [PASSED] ttm_sys_man_alloc_basic
[09:56:08] [PASSED] ttm_sys_man_free_basic
[09:56:08] ================== [PASSED] ttm_resource ===================
[09:56:08] =================== ttm_tt (15 subtests) ===================
[09:56:08] ==================== ttm_tt_init_basic  ====================
[09:56:08] [PASSED] Page-aligned size
[09:56:08] [PASSED] Extra pages requested
[09:56:08] ================ [PASSED] ttm_tt_init_basic ================
[09:56:08] [PASSED] ttm_tt_init_misaligned
[09:56:08] [PASSED] ttm_tt_fini_basic
[09:56:08] [PASSED] ttm_tt_fini_sg
[09:56:08] [PASSED] ttm_tt_fini_shmem
[09:56:08] [PASSED] ttm_tt_create_basic
[09:56:08] [PASSED] ttm_tt_create_invalid_bo_type
[09:56:08] [PASSED] ttm_tt_create_ttm_exists
[09:56:08] [PASSED] ttm_tt_create_failed
[09:56:08] [PASSED] ttm_tt_destroy_basic
[09:56:08] [PASSED] ttm_tt_populate_null_ttm
[09:56:08] [PASSED] ttm_tt_populate_populated_ttm
[09:56:08] [PASSED] ttm_tt_unpopulate_basic
[09:56:08] [PASSED] ttm_tt_unpopulate_empty_ttm
[09:56:08] [PASSED] ttm_tt_swapin_basic
[09:56:08] ===================== [PASSED] ttm_tt ======================
[09:56:08] =================== ttm_bo (14 subtests) ===================
[09:56:08] =========== ttm_bo_reserve_optimistic_no_ticket  ===========
[09:56:08] [PASSED] Cannot be interrupted and sleeps
[09:56:08] [PASSED] Cannot be interrupted, locks straight away
[09:56:08] [PASSED] Can be interrupted, sleeps
[09:56:08] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[09:56:08] [PASSED] ttm_bo_reserve_locked_no_sleep
[09:56:08] [PASSED] ttm_bo_reserve_no_wait_ticket
[09:56:08] [PASSED] ttm_bo_reserve_double_resv
[09:56:08] [PASSED] ttm_bo_reserve_interrupted
[09:56:08] [PASSED] ttm_bo_reserve_deadlock
[09:56:08] [PASSED] ttm_bo_unreserve_basic
[09:56:08] [PASSED] ttm_bo_unreserve_pinned
[09:56:08] [PASSED] ttm_bo_unreserve_bulk
[09:56:08] [PASSED] ttm_bo_put_basic
[09:56:08] [PASSED] ttm_bo_put_shared_resv
[09:56:08] [PASSED] ttm_bo_pin_basic
[09:56:08] [PASSED] ttm_bo_pin_unpin_resource
[09:56:08] [PASSED] ttm_bo_multiple_pin_one_unpin
[09:56:08] ===================== [PASSED] ttm_bo ======================
[09:56:08] ============== ttm_bo_validate (22 subtests) ===============
[09:56:08] ============== ttm_bo_init_reserved_sys_man  ===============
[09:56:08] [PASSED] Buffer object for userspace
[09:56:08] [PASSED] Kernel buffer object
[09:56:08] [PASSED] Shared buffer object
[09:56:08] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[09:56:08] ============== ttm_bo_init_reserved_mock_man  ==============
[09:56:08] [PASSED] Buffer object for userspace
[09:56:08] [PASSED] Kernel buffer object
[09:56:08] [PASSED] Shared buffer object
[09:56:08] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[09:56:08] [PASSED] ttm_bo_init_reserved_resv
[09:56:08] ================== ttm_bo_validate_basic  ==================
[09:56:08] [PASSED] Buffer object for userspace
[09:56:08] [PASSED] Kernel buffer object
[09:56:08] [PASSED] Shared buffer object
[09:56:08] ============== [PASSED] ttm_bo_validate_basic ==============
[09:56:08] [PASSED] ttm_bo_validate_invalid_placement
[09:56:08] ============= ttm_bo_validate_same_placement  ==============
[09:56:08] [PASSED] System manager
[09:56:08] [PASSED] VRAM manager
[09:56:08] ========= [PASSED] ttm_bo_validate_same_placement ==========
[09:56:08] [PASSED] ttm_bo_validate_failed_alloc
[09:56:08] [PASSED] ttm_bo_validate_pinned
[09:56:08] [PASSED] ttm_bo_validate_busy_placement
[09:56:08] ================ ttm_bo_validate_multihop  =================
[09:56:08] [PASSED] Buffer object for userspace
[09:56:08] [PASSED] Kernel buffer object
[09:56:08] [PASSED] Shared buffer object
[09:56:08] ============ [PASSED] ttm_bo_validate_multihop =============
[09:56:08] ========== ttm_bo_validate_no_placement_signaled  ==========
[09:56:08] [PASSED] Buffer object in system domain, no page vector
[09:56:08] [PASSED] Buffer object in system domain with an existing page vector
[09:56:08] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[09:56:08] ======== ttm_bo_validate_no_placement_not_signaled  ========
[09:56:08] [PASSED] Buffer object for userspace
[09:56:08] [PASSED] Kernel buffer object
[09:56:08] [PASSED] Shared buffer object
[09:56:08] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[09:56:08] [PASSED] ttm_bo_validate_move_fence_signaled
[09:56:08] ========= ttm_bo_validate_move_fence_not_signaled  =========
[09:56:08] [PASSED] Waits for GPU
[09:56:08] [PASSED] Tries to lock straight away
[09:56:08] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[09:56:08] [PASSED] ttm_bo_validate_swapout
[09:56:08] [PASSED] ttm_bo_validate_happy_evict
[09:56:08] [PASSED] ttm_bo_validate_all_pinned_evict
[09:56:08] [PASSED] ttm_bo_validate_allowed_only_evict
[09:56:08] [PASSED] ttm_bo_validate_deleted_evict
[09:56:08] [PASSED] ttm_bo_validate_busy_domain_evict
[09:56:08] [PASSED] ttm_bo_validate_evict_gutting
[09:56:08] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[09:56:08] ================= [PASSED] ttm_bo_validate =================
[09:56:08] ============================================================
[09:56:08] Testing complete. Ran 102 tests: passed: 102
[09:56:08] Elapsed time: 9.973s total, 1.706s configuring, 7.650s building, 0.529s running

+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel



^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH v7 0/5] PMU support for engine activity
@ 2025-02-14 10:08 Riana Tauro
  2025-02-14  9:54 ` ✓ CI.Patch_applied: success for PMU support for engine activity (rev3) Patchwork
                   ` (12 more replies)
  0 siblings, 13 replies; 23+ messages in thread
From: Riana Tauro @ 2025-02-14 10:08 UTC (permalink / raw)
  To: intel-xe
  Cc: riana.tauro, anshuman.gupta, umesh.nerlige.ramappa,
	lucas.demarchi, vinay.belgaumkar, soham.purkait

PMU provides two counters (engine-active-ticks, engine-total-ticks)
to calculate engine activity. When querying this, user must group
these 2 counters using the perf_event group mechanism to ensure
both counters are sampled together.

To list the events

        ./perf list
        xe_0000_03_00.0/engine-active-ticks/    [Kernel PMU event]
        xe_0000_03_00.0/engine-total-ticks/     [Kernel PMU event]

The formats to be used with the above are

        gt              - config:60-63
        engine_class    - config:20-27
        engine_instance - config:12-19

The events can then be read using perf tool

        ./perf stat -e xe_<bdf>/engine-active-ticks,gt=<n>,engine_class=<n>,
                                engine_instance=<n>/,
                       xe_<bdf>/engine-total-ticks,gt=<n>,engine_class=<n>,
                                engine_instance=<n>/
                       -I 1000

Engine activity can then be calculated as below
engine activity % = (engine active ticks/engine total ticks) * 100

Test-with: 20250212095834.384508-1-riana.tauro@intel.com

Rev2: Add trace functions
      fix cosmetic review comments

Rev3: add engine class and instance as parameters
      replace busyness with engine activity

Rev4: add per-function engine activity
      fix review comments

Rev5: Remove global for SRIOV
      Add forcewake during init and destroy
      fix other review comments

Rev6: fix review comments

Rev7: Split VF and Native

Riana Tauro (5):
  drm/xe: Add engine activity support
  drm/xe/trace: Add trace for engine activity
  drm/xe/guc: Expose engine activity only for supported GuC version
  drm/xe/xe_pmu: Add PMU support for engine activity
  drm/xe/xe_pmu: Acquire forcewake on event init for engine events

 drivers/gpu/drm/xe/Makefile                   |   1 +
 drivers/gpu/drm/xe/abi/guc_actions_abi.h      |   1 +
 drivers/gpu/drm/xe/regs/xe_gt_regs.h          |   2 +
 drivers/gpu/drm/xe/xe_guc.c                   |   5 +
 drivers/gpu/drm/xe/xe_guc_engine_activity.c   | 373 ++++++++++++++++++
 drivers/gpu/drm/xe/xe_guc_engine_activity.h   |  19 +
 .../gpu/drm/xe/xe_guc_engine_activity_types.h |  92 +++++
 drivers/gpu/drm/xe/xe_guc_fwif.h              |  19 +
 drivers/gpu/drm/xe/xe_guc_types.h             |   4 +
 drivers/gpu/drm/xe/xe_pmu.c                   | 184 ++++++++-
 drivers/gpu/drm/xe/xe_pmu_types.h             |   4 +
 drivers/gpu/drm/xe/xe_trace_guc.h             |  49 +++
 drivers/gpu/drm/xe/xe_uc.c                    |   3 +
 13 files changed, 743 insertions(+), 13 deletions(-)
 create mode 100644 drivers/gpu/drm/xe/xe_guc_engine_activity.c
 create mode 100644 drivers/gpu/drm/xe/xe_guc_engine_activity.h
 create mode 100644 drivers/gpu/drm/xe/xe_guc_engine_activity_types.h

-- 
2.47.1


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH v7 1/5] drm/xe: Add engine activity support
  2025-02-14 10:08 [PATCH v7 0/5] PMU support for engine activity Riana Tauro
                   ` (2 preceding siblings ...)
  2025-02-14  9:56 ` ✓ CI.KUnit: success " Patchwork
@ 2025-02-14 10:08 ` Riana Tauro
  2025-02-14 10:08 ` [PATCH v7 2/5] drm/xe/trace: Add trace for engine activity Riana Tauro
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 23+ messages in thread
From: Riana Tauro @ 2025-02-14 10:08 UTC (permalink / raw)
  To: intel-xe
  Cc: riana.tauro, anshuman.gupta, umesh.nerlige.ramappa,
	lucas.demarchi, vinay.belgaumkar, soham.purkait

GuC provides support to read engine counters to calculate the
engine activity. KMD exposes two counters via the PMU interface to
calculate engine activity

Engine Active Ticks(engine-active-ticks) - active ticks of engine
Engine Total Ticks (engine-total-ticks) - total ticks of engine

Engine activity percentage can be calculated as below
Engine activity % = (engine active ticks/engine total ticks) * 100.

v2: fix cosmetic review comments
    add forcewake for gpm_ts (Umesh)

v3: fix CI hooks error
    change function parameters and unpin bo on error
    of allocate_activity_buffers
    fix kernel-doc (Umesh)
    use engine activity (Umesh, Lucas)
    rename xe_engine_activity to xe_guc_engine_*
    fix commit message to use engine activity (Lucas, Umesh)

v4: add forcewake in PMU layer

v5: fix makefile
    use drmm_kcalloc instead of kmalloc_array
    remove managed bo
    skip init for VF
    fix cosmetic review comments (Michal)

Signed-off-by: Riana Tauro <riana.tauro@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 drivers/gpu/drm/xe/Makefile                   |   1 +
 drivers/gpu/drm/xe/abi/guc_actions_abi.h      |   1 +
 drivers/gpu/drm/xe/regs/xe_gt_regs.h          |   2 +
 drivers/gpu/drm/xe/xe_guc_engine_activity.c   | 321 ++++++++++++++++++
 drivers/gpu/drm/xe/xe_guc_engine_activity.h   |  18 +
 .../gpu/drm/xe/xe_guc_engine_activity_types.h |  89 +++++
 drivers/gpu/drm/xe/xe_guc_fwif.h              |  19 ++
 drivers/gpu/drm/xe/xe_guc_types.h             |   4 +
 8 files changed, 455 insertions(+)
 create mode 100644 drivers/gpu/drm/xe/xe_guc_engine_activity.c
 create mode 100644 drivers/gpu/drm/xe/xe_guc_engine_activity.h
 create mode 100644 drivers/gpu/drm/xe/xe_guc_engine_activity_types.h

diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
index 5ce65ccb3c08..5db71b6f0534 100644
--- a/drivers/gpu/drm/xe/Makefile
+++ b/drivers/gpu/drm/xe/Makefile
@@ -60,6 +60,7 @@ xe-y += xe_bb.o \
 	xe_guc_capture.o \
 	xe_guc_ct.o \
 	xe_guc_db_mgr.o \
+	xe_guc_engine_activity.o \
 	xe_guc_hwconfig.o \
 	xe_guc_id_mgr.o \
 	xe_guc_klv_helpers.o \
diff --git a/drivers/gpu/drm/xe/abi/guc_actions_abi.h b/drivers/gpu/drm/xe/abi/guc_actions_abi.h
index fee385532fb0..ec516e838ee8 100644
--- a/drivers/gpu/drm/xe/abi/guc_actions_abi.h
+++ b/drivers/gpu/drm/xe/abi/guc_actions_abi.h
@@ -140,6 +140,7 @@ enum xe_guc_action {
 	XE_GUC_ACTION_REGISTER_CONTEXT_MULTI_LRC = 0x4601,
 	XE_GUC_ACTION_CLIENT_SOFT_RESET = 0x5507,
 	XE_GUC_ACTION_SET_ENG_UTIL_BUFF = 0x550A,
+	XE_GUC_ACTION_SET_DEVICE_ENGINE_ACTIVITY_BUFFER = 0x550C,
 	XE_GUC_ACTION_NOTIFY_MEMORY_CAT_ERROR = 0x6000,
 	XE_GUC_ACTION_REPORT_PAGE_FAULT_REQ_DESC = 0x6002,
 	XE_GUC_ACTION_PAGE_FAULT_RES_DESC = 0x6003,
diff --git a/drivers/gpu/drm/xe/regs/xe_gt_regs.h b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
index 096859072396..124cc398798e 100644
--- a/drivers/gpu/drm/xe/regs/xe_gt_regs.h
+++ b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
@@ -358,6 +358,8 @@
 #define   RENDER_AWAKE_STATUS			REG_BIT(1)
 #define   MEDIA_SLICE0_AWAKE_STATUS		REG_BIT(0)
 
+#define MISC_STATUS_0				XE_REG(0xa500)
+
 #define FORCEWAKE_MEDIA_VDBOX(n)		XE_REG(0xa540 + (n) * 4)
 #define FORCEWAKE_MEDIA_VEBOX(n)		XE_REG(0xa560 + (n) * 4)
 #define FORCEWAKE_GSC				XE_REG(0xa618)
diff --git a/drivers/gpu/drm/xe/xe_guc_engine_activity.c b/drivers/gpu/drm/xe/xe_guc_engine_activity.c
new file mode 100644
index 000000000000..255e63d82a96
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_guc_engine_activity.c
@@ -0,0 +1,321 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+
+#include <drm/drm_managed.h>
+
+#include "abi/guc_actions_abi.h"
+#include "regs/xe_gt_regs.h"
+
+#include "xe_bo.h"
+#include "xe_force_wake.h"
+#include "xe_gt_printk.h"
+#include "xe_guc.h"
+#include "xe_guc_engine_activity.h"
+#include "xe_guc_ct.h"
+#include "xe_hw_engine.h"
+#include "xe_map.h"
+#include "xe_mmio.h"
+
+#define TOTAL_QUANTA 0x8000
+
+static struct iosys_map engine_activity_map(struct xe_guc *guc, struct xe_hw_engine *hwe)
+{
+	struct xe_guc_engine_activity *engine_activity = &guc->engine_activity;
+	struct engine_activity_buffer *buffer = &engine_activity->device_buffer;
+	u16 guc_class = xe_engine_class_to_guc_class(hwe->class);
+	size_t offset;
+
+	offset = offsetof(struct guc_engine_activity_data,
+			  engine_activity[guc_class][hwe->logical_instance]);
+
+	return IOSYS_MAP_INIT_OFFSET(&buffer->activity_bo->vmap, offset);
+}
+
+static struct iosys_map engine_metadata_map(struct xe_guc *guc)
+{
+	struct xe_guc_engine_activity *engine_activity = &guc->engine_activity;
+	struct engine_activity_buffer *buffer = &engine_activity->device_buffer;
+
+	return buffer->metadata_bo->vmap;
+}
+
+static int allocate_engine_activity_group(struct xe_guc *guc)
+{
+	struct xe_guc_engine_activity *engine_activity = &guc->engine_activity;
+	struct xe_device *xe = guc_to_xe(guc);
+	u32 num_activity_group = 1; /* Will be modified for VF */
+
+	engine_activity->eag  = drmm_kcalloc(&xe->drm, num_activity_group,
+					     sizeof(struct engine_activity_group), GFP_KERNEL);
+
+	if (!engine_activity->eag)
+		return -ENOMEM;
+
+	engine_activity->num_activity_group = num_activity_group;
+
+	return 0;
+}
+
+static int allocate_engine_activity_buffers(struct xe_guc *guc,
+					    struct engine_activity_buffer *buffer)
+{
+	u32 metadata_size = sizeof(struct guc_engine_activity_metadata);
+	u32 size = sizeof(struct guc_engine_activity_data);
+	struct xe_gt *gt = guc_to_gt(guc);
+	struct xe_tile *tile = gt_to_tile(gt);
+	struct xe_bo *bo, *metadata_bo;
+
+	metadata_bo = xe_bo_create_pin_map(gt_to_xe(gt), tile, NULL, PAGE_ALIGN(metadata_size),
+					   ttm_bo_type_kernel, XE_BO_FLAG_SYSTEM |
+					   XE_BO_FLAG_GGTT | XE_BO_FLAG_GGTT_INVALIDATE);
+
+	if (IS_ERR(metadata_bo))
+		return PTR_ERR(metadata_bo);
+
+	bo = xe_bo_create_pin_map(gt_to_xe(gt), tile, NULL, PAGE_ALIGN(size),
+				  ttm_bo_type_kernel, XE_BO_FLAG_VRAM_IF_DGFX(tile) |
+				  XE_BO_FLAG_GGTT | XE_BO_FLAG_GGTT_INVALIDATE);
+
+	if (IS_ERR(bo)) {
+		xe_bo_unpin_map_no_vm(metadata_bo);
+		return PTR_ERR(bo);
+	}
+
+	buffer->metadata_bo = metadata_bo;
+	buffer->activity_bo = bo;
+	return 0;
+}
+
+static void free_engine_activity_buffers(struct engine_activity_buffer *buffer)
+{
+	xe_bo_unpin_map_no_vm(buffer->metadata_bo);
+	xe_bo_unpin_map_no_vm(buffer->activity_bo);
+}
+
+static struct engine_activity *hw_engine_to_engine_activity(struct xe_hw_engine *hwe)
+{
+	struct xe_guc *guc = &hwe->gt->uc.guc;
+	struct engine_activity_group *eag = &guc->engine_activity.eag[0];
+	u16 guc_class = xe_engine_class_to_guc_class(hwe->class);
+
+	return &eag->engine[guc_class][hwe->logical_instance];
+}
+
+static u64 cpu_ns_to_guc_tsc_tick(ktime_t ns, u32 freq)
+{
+	return mul_u64_u32_div(ns, freq, NSEC_PER_SEC);
+}
+
+#define read_engine_activity_record(xe_, map_, field_) \
+	xe_map_rd_field(xe_, map_, 0, struct guc_engine_activity, field_)
+
+#define read_metadata_record(xe_, map_, field_) \
+	xe_map_rd_field(xe_, map_, 0, struct guc_engine_activity_metadata, field_)
+
+static u64 get_engine_active_ticks(struct xe_guc *guc, struct xe_hw_engine *hwe)
+{
+	struct engine_activity *ea = hw_engine_to_engine_activity(hwe);
+	struct guc_engine_activity *cached_activity = &ea->activity;
+	struct guc_engine_activity_metadata *cached_metadata = &ea->metadata;
+	struct xe_guc_engine_activity *engine_activity = &guc->engine_activity;
+	struct iosys_map activity_map, metadata_map;
+	struct xe_device *xe =  guc_to_xe(guc);
+	struct xe_gt *gt = guc_to_gt(guc);
+	u32 last_update_tick, global_change_num;
+	u64 active_ticks, gpm_ts;
+	u16 change_num;
+
+	activity_map = engine_activity_map(guc, hwe);
+	metadata_map = engine_metadata_map(guc);
+	global_change_num = read_metadata_record(xe, &metadata_map, global_change_num);
+
+	/* GuC has not initialized activity data yet, return 0 */
+	if (!global_change_num)
+		goto update;
+
+	if (global_change_num == cached_metadata->global_change_num)
+		goto update;
+
+	cached_metadata->global_change_num = global_change_num;
+	change_num = read_engine_activity_record(xe, &activity_map, change_num);
+
+	if (!change_num || change_num == cached_activity->change_num)
+		goto update;
+
+	/* read engine activity values */
+	last_update_tick = read_engine_activity_record(xe, &activity_map, last_update_tick);
+	active_ticks = read_engine_activity_record(xe, &activity_map, active_ticks);
+
+	/* activity calculations */
+	ea->running = !!last_update_tick;
+	ea->total += active_ticks - cached_activity->active_ticks;
+	ea->active = 0;
+
+	/* cache the counter */
+	cached_activity->change_num = change_num;
+	cached_activity->last_update_tick = last_update_tick;
+	cached_activity->active_ticks = active_ticks;
+
+update:
+	if (ea->running) {
+		gpm_ts = xe_mmio_read64_2x32(&gt->mmio, MISC_STATUS_0) >>
+			 engine_activity->gpm_timestamp_shift;
+		ea->active = lower_32_bits(gpm_ts) - cached_activity->last_update_tick;
+	}
+
+	return ea->total + ea->active;
+}
+
+static u64 get_engine_total_ticks(struct xe_guc *guc, struct xe_hw_engine *hwe)
+{
+	struct engine_activity *ea = hw_engine_to_engine_activity(hwe);
+	struct guc_engine_activity_metadata *cached_metadata = &ea->metadata;
+	struct guc_engine_activity *cached_activity = &ea->activity;
+	struct iosys_map activity_map, metadata_map;
+	struct xe_device *xe = guc_to_xe(guc);
+	ktime_t now, cpu_delta;
+	u64 numerator;
+	u16 quanta_ratio;
+
+	activity_map = engine_activity_map(guc, hwe);
+	metadata_map = engine_metadata_map(guc);
+
+	if (!cached_metadata->guc_tsc_frequency_hz)
+		cached_metadata->guc_tsc_frequency_hz = read_metadata_record(xe, &metadata_map,
+									     guc_tsc_frequency_hz);
+
+	quanta_ratio = read_engine_activity_record(xe, &activity_map, quanta_ratio);
+	cached_activity->quanta_ratio = quanta_ratio;
+
+	/* Total ticks calculations */
+	now = ktime_get();
+	cpu_delta = now - ea->last_cpu_ts;
+	ea->last_cpu_ts = now;
+	numerator = (ea->quanta_remainder_ns + cpu_delta) * cached_activity->quanta_ratio;
+	ea->quanta_ns += numerator / TOTAL_QUANTA;
+	ea->quanta_remainder_ns = numerator % TOTAL_QUANTA;
+	ea->quanta = cpu_ns_to_guc_tsc_tick(ea->quanta_ns, cached_metadata->guc_tsc_frequency_hz);
+
+	return ea->quanta;
+}
+
+static int enable_engine_activity_stats(struct xe_guc *guc)
+{
+	struct xe_guc_engine_activity *engine_activity = &guc->engine_activity;
+	struct engine_activity_buffer *buffer = &engine_activity->device_buffer;
+	u32 action[] = {
+		XE_GUC_ACTION_SET_DEVICE_ENGINE_ACTIVITY_BUFFER,
+		xe_bo_ggtt_addr(buffer->metadata_bo),
+		0,
+		xe_bo_ggtt_addr(buffer->activity_bo),
+		0,
+	};
+
+	/* Blocking here to ensure the buffers are ready before reading them */
+	return xe_guc_ct_send_block(&guc->ct, action, ARRAY_SIZE(action));
+}
+
+static void engine_activity_set_cpu_ts(struct xe_guc *guc)
+{
+	struct xe_guc_engine_activity *engine_activity = &guc->engine_activity;
+	struct engine_activity_group *eag = &engine_activity->eag[0];
+	int i, j;
+
+	for (i = 0; i < GUC_MAX_ENGINE_CLASSES; i++)
+		for (j = 0; j < GUC_MAX_INSTANCES_PER_CLASS; j++)
+			eag->engine[i][j].last_cpu_ts = ktime_get();
+}
+
+static u32 gpm_timestamp_shift(struct xe_gt *gt)
+{
+	u32 reg;
+
+	reg = xe_mmio_read32(&gt->mmio, RPM_CONFIG0);
+
+	return 3 - REG_FIELD_GET(RPM_CONFIG0_CTC_SHIFT_PARAMETER_MASK, reg);
+}
+
+/**
+ * xe_guc_engine_activity_active_ticks - Get engine active ticks
+ * @guc: The GuC object
+ * @hwe: The hw_engine object
+ *
+ * Return: accumulated ticks @hwe was active since engine activity stats were enabled.
+ */
+u64 xe_guc_engine_activity_active_ticks(struct xe_guc *guc, struct xe_hw_engine *hwe)
+{
+	return get_engine_active_ticks(guc, hwe);
+}
+
+/**
+ * xe_guc_engine_activity_total_ticks - Get engine total ticks
+ * @guc: The GuC object
+ * @hwe: The hw_engine object
+ *
+ * Return: accumulated quanta of ticks allocated for the engine
+ */
+u64 xe_guc_engine_activity_total_ticks(struct xe_guc *guc, struct xe_hw_engine *hwe)
+{
+	return get_engine_total_ticks(guc, hwe);
+}
+
+/**
+ * xe_guc_engine_activity_enable_stats - Enable engine activity stats
+ * @guc: The GuC object
+ *
+ * Enable engine activity stats and set initial timestamps
+ */
+void xe_guc_engine_activity_enable_stats(struct xe_guc *guc)
+{
+	int ret;
+
+	ret = enable_engine_activity_stats(guc);
+	if (ret)
+		xe_gt_err(guc_to_gt(guc), "failed to enable activity stats%d\n", ret);
+	else
+		engine_activity_set_cpu_ts(guc);
+}
+
+static void engine_activity_fini(void *arg)
+{
+	struct xe_guc_engine_activity *engine_activity = arg;
+	struct engine_activity_buffer *buffer = &engine_activity->device_buffer;
+
+	free_engine_activity_buffers(buffer);
+}
+
+/**
+ * xe_guc_engine_activity_init - Initialize the engine activity data
+ * @guc: The GuC object
+ *
+ * Return: 0 on success, negative error code otherwise.
+ */
+int xe_guc_engine_activity_init(struct xe_guc *guc)
+{
+	struct xe_guc_engine_activity *engine_activity = &guc->engine_activity;
+	struct xe_gt *gt = guc_to_gt(guc);
+	struct xe_device *xe = gt_to_xe(gt);
+	int ret;
+
+	if (IS_SRIOV_VF(xe))
+		return 0;
+
+	ret = allocate_engine_activity_group(guc);
+	if (ret) {
+		xe_gt_err(gt, "failed to allocate engine activity group (%pe)\n", ERR_PTR(ret));
+		return ret;
+	}
+
+	ret = allocate_engine_activity_buffers(guc, &engine_activity->device_buffer);
+	if (ret) {
+		xe_gt_err(gt, "failed to allocate engine activity buffers (%pe)\n", ERR_PTR(ret));
+		return ret;
+	}
+
+	engine_activity->gpm_timestamp_shift = gpm_timestamp_shift(gt);
+
+	return devm_add_action_or_reset(gt_to_xe(gt)->drm.dev, engine_activity_fini,
+					engine_activity);
+}
diff --git a/drivers/gpu/drm/xe/xe_guc_engine_activity.h b/drivers/gpu/drm/xe/xe_guc_engine_activity.h
new file mode 100644
index 000000000000..e92d2456698d
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_guc_engine_activity.h
@@ -0,0 +1,18 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+
+#ifndef _XE_GUC_ENGINE_ACTIVITY_H_
+#define _XE_GUC_ENGINE_ACTIVITY_H_
+
+#include <linux/types.h>
+
+struct xe_hw_engine;
+struct xe_guc;
+
+int xe_guc_engine_activity_init(struct xe_guc *guc);
+void xe_guc_engine_activity_enable_stats(struct xe_guc *guc);
+u64 xe_guc_engine_activity_active_ticks(struct xe_guc *guc, struct xe_hw_engine *hwe);
+u64 xe_guc_engine_activity_total_ticks(struct xe_guc *guc, struct xe_hw_engine *hwe);
+#endif
diff --git a/drivers/gpu/drm/xe/xe_guc_engine_activity_types.h b/drivers/gpu/drm/xe/xe_guc_engine_activity_types.h
new file mode 100644
index 000000000000..a2ab327d3eec
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_guc_engine_activity_types.h
@@ -0,0 +1,89 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+
+#ifndef _XE_GUC_ENGINE_ACTIVITY_TYPES_H_
+#define _XE_GUC_ENGINE_ACTIVITY_TYPES_H_
+
+#include <linux/types.h>
+
+#include "xe_guc_fwif.h"
+/**
+ * struct engine_activity - Engine specific activity data
+ *
+ * Contains engine specific activity data and snapshot of the
+ * structures from GuC
+ */
+struct engine_activity {
+	/** @active: current activity */
+	u64 active;
+
+	/** @last_cpu_ts: cpu timestamp in nsec of previous sample */
+	u64 last_cpu_ts;
+
+	/** @quanta: total quanta used on HW */
+	u64 quanta;
+
+	/** @quanta_ns: total quanta_ns used on HW */
+	u64 quanta_ns;
+
+	/**
+	 * @quanta_remainder_ns: remainder when the CPU time is scaled as
+	 * per the quanta_ratio. This remainder is used in subsequent
+	 * quanta calculations.
+	 */
+	u64 quanta_remainder_ns;
+
+	/** @total: total engine activity */
+	u64 total;
+
+	/** @running: true if engine is running some work */
+	bool running;
+
+	/** @metadata: snapshot of engine activity metadata */
+	struct guc_engine_activity_metadata metadata;
+
+	/** @activity: snapshot of engine activity counter */
+	struct guc_engine_activity activity;
+};
+
+/**
+ * struct engine_activity_group - Activity data for all engines
+ */
+struct engine_activity_group {
+	/** @engine: engine specific activity data */
+	struct engine_activity engine[GUC_MAX_ENGINE_CLASSES][GUC_MAX_INSTANCES_PER_CLASS];
+};
+
+/**
+ * struct engine_activity_buffer - engine activity buffers
+ *
+ * This contains the buffers allocated for metadata and activity data
+ */
+struct engine_activity_buffer {
+	/** @activity_bo: object allocated to hold activity data */
+	struct xe_bo *activity_bo;
+
+	/** @metadata_bo: object allocated to hold activity metadata */
+	struct xe_bo *metadata_bo;
+};
+
+/**
+ * struct xe_guc_engine_activity - Data used by engine activity implementation
+ */
+struct xe_guc_engine_activity {
+	/** @gpm_timestamp_shift: Right shift value for the gpm timestamp */
+	u32 gpm_timestamp_shift;
+
+	/** @num_activity_group: number of activity groups */
+	u32 num_activity_group;
+
+	/** @eag: holds the device level engine activity data */
+	struct engine_activity_group *eag;
+
+	/** @device_buffer: buffer object for global engine activity */
+	struct engine_activity_buffer device_buffer;
+};
+#endif
+
diff --git a/drivers/gpu/drm/xe/xe_guc_fwif.h b/drivers/gpu/drm/xe/xe_guc_fwif.h
index 057153f89b30..6f57578b07cb 100644
--- a/drivers/gpu/drm/xe/xe_guc_fwif.h
+++ b/drivers/gpu/drm/xe/xe_guc_fwif.h
@@ -208,6 +208,25 @@ struct guc_engine_usage {
 	struct guc_engine_usage_record engines[GUC_MAX_ENGINE_CLASSES][GUC_MAX_INSTANCES_PER_CLASS];
 } __packed;
 
+/* Engine Activity stats */
+struct guc_engine_activity {
+	u16 change_num;
+	u16 quanta_ratio;
+	u32 last_update_tick;
+	u64 active_ticks;
+} __packed;
+
+struct guc_engine_activity_data {
+	struct guc_engine_activity engine_activity[GUC_MAX_ENGINE_CLASSES][GUC_MAX_INSTANCES_PER_CLASS];
+} __packed;
+
+struct guc_engine_activity_metadata {
+	u32 guc_tsc_frequency_hz;
+	u32 lag_latency_usec;
+	u32 global_change_num;
+	u32 reserved;
+} __packed;
+
 /* This action will be programmed in C1BC - SOFT_SCRATCH_15_REG */
 enum xe_guc_recv_message {
 	XE_GUC_RECV_MSG_CRASH_DUMP_POSTED = BIT(1),
diff --git a/drivers/gpu/drm/xe/xe_guc_types.h b/drivers/gpu/drm/xe/xe_guc_types.h
index 573aa6308380..63bac64429a5 100644
--- a/drivers/gpu/drm/xe/xe_guc_types.h
+++ b/drivers/gpu/drm/xe/xe_guc_types.h
@@ -13,6 +13,7 @@
 #include "xe_guc_ads_types.h"
 #include "xe_guc_buf_types.h"
 #include "xe_guc_ct_types.h"
+#include "xe_guc_engine_activity_types.h"
 #include "xe_guc_fwif.h"
 #include "xe_guc_log_types.h"
 #include "xe_guc_pc_types.h"
@@ -103,6 +104,9 @@ struct xe_guc {
 	/** @relay: GuC Relay Communication used in SR-IOV */
 	struct xe_guc_relay relay;
 
+	/** @engine_activity: Device specific engine activity */
+	struct xe_guc_engine_activity engine_activity;
+
 	/**
 	 * @notify_reg: Register which is written to notify GuC of H2G messages
 	 */
-- 
2.47.1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH v7 2/5] drm/xe/trace: Add trace for engine activity
  2025-02-14 10:08 [PATCH v7 0/5] PMU support for engine activity Riana Tauro
                   ` (3 preceding siblings ...)
  2025-02-14 10:08 ` [PATCH v7 1/5] drm/xe: Add engine activity support Riana Tauro
@ 2025-02-14 10:08 ` Riana Tauro
  2025-02-14 10:08 ` [PATCH v7 3/5] drm/xe/guc: Expose engine activity only for supported GuC version Riana Tauro
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 23+ messages in thread
From: Riana Tauro @ 2025-02-14 10:08 UTC (permalink / raw)
  To: intel-xe
  Cc: riana.tauro, anshuman.gupta, umesh.nerlige.ramappa,
	lucas.demarchi, vinay.belgaumkar, soham.purkait

Add engine activity related information to trace events for
better debuggability

v2: add trace for engine activity (Umesh)
v3: use hex for quanta_ratio

Signed-off-by: Riana Tauro <riana.tauro@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 drivers/gpu/drm/xe/xe_guc_engine_activity.c |  5 +++
 drivers/gpu/drm/xe/xe_trace_guc.h           | 49 +++++++++++++++++++++
 2 files changed, 54 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_guc_engine_activity.c b/drivers/gpu/drm/xe/xe_guc_engine_activity.c
index 255e63d82a96..a424527eddb6 100644
--- a/drivers/gpu/drm/xe/xe_guc_engine_activity.c
+++ b/drivers/gpu/drm/xe/xe_guc_engine_activity.c
@@ -17,6 +17,7 @@
 #include "xe_hw_engine.h"
 #include "xe_map.h"
 #include "xe_mmio.h"
+#include "xe_trace_guc.h"
 
 #define TOTAL_QUANTA 0x8000
 
@@ -165,6 +166,8 @@ static u64 get_engine_active_ticks(struct xe_guc *guc, struct xe_hw_engine *hwe)
 		ea->active = lower_32_bits(gpm_ts) - cached_activity->last_update_tick;
 	}
 
+	trace_xe_guc_engine_activity(xe, ea, hwe->name, hwe->instance);
+
 	return ea->total + ea->active;
 }
 
@@ -198,6 +201,8 @@ static u64 get_engine_total_ticks(struct xe_guc *guc, struct xe_hw_engine *hwe)
 	ea->quanta_remainder_ns = numerator % TOTAL_QUANTA;
 	ea->quanta = cpu_ns_to_guc_tsc_tick(ea->quanta_ns, cached_metadata->guc_tsc_frequency_hz);
 
+	trace_xe_guc_engine_activity(xe, ea, hwe->name, hwe->instance);
+
 	return ea->quanta;
 }
 
diff --git a/drivers/gpu/drm/xe/xe_trace_guc.h b/drivers/gpu/drm/xe/xe_trace_guc.h
index 23abdd55dc62..78949db9cfce 100644
--- a/drivers/gpu/drm/xe/xe_trace_guc.h
+++ b/drivers/gpu/drm/xe/xe_trace_guc.h
@@ -14,6 +14,7 @@
 
 #include "xe_device_types.h"
 #include "xe_guc_exec_queue_types.h"
+#include "xe_guc_engine_activity_types.h"
 
 #define __dev_name_xe(xe)	dev_name((xe)->drm.dev)
 
@@ -100,6 +101,54 @@ DEFINE_EVENT_PRINT(xe_guc_ctb, xe_guc_ctb_g2h,
 
 );
 
+TRACE_EVENT(xe_guc_engine_activity,
+	    TP_PROTO(struct xe_device *xe, struct engine_activity *ea, const char *name,
+		     u16 instance),
+	    TP_ARGS(xe, ea, name, instance),
+
+	    TP_STRUCT__entry(
+			__string(dev, __dev_name_xe(xe))
+			__string(name, name)
+			__field(u32, global_change_num)
+			__field(u32, guc_tsc_frequency_hz)
+			__field(u32, lag_latency_usec)
+			__field(u16, instance)
+			__field(u16, change_num)
+			__field(u16, quanta_ratio)
+			__field(u32, last_update_tick)
+			__field(u64, active_ticks)
+			__field(u64, active)
+			__field(u64, total)
+			__field(u64, quanta)
+			__field(u64, last_cpu_ts)
+	    ),
+
+	    TP_fast_assign(
+			__assign_str(dev);
+			__assign_str(name);
+			__entry->global_change_num = ea->metadata.global_change_num;
+			__entry->guc_tsc_frequency_hz = ea->metadata.guc_tsc_frequency_hz;
+			__entry->lag_latency_usec = ea->metadata.lag_latency_usec;
+			__entry->instance = instance;
+			__entry->change_num = ea->activity.change_num;
+			__entry->quanta_ratio = ea->activity.quanta_ratio;
+			__entry->last_update_tick = ea->activity.last_update_tick;
+			__entry->active_ticks = ea->activity.active_ticks;
+			__entry->active = ea->active;
+			__entry->total = ea->total;
+			__entry->quanta = ea->quanta;
+			__entry->last_cpu_ts = ea->last_cpu_ts;
+	    ),
+
+	    TP_printk("dev=%s engine %s:%d Active=%llu, quanta=%llu, last_cpu_ts=%llu\n"
+		      "Activity metadata: global_change_num=%u, guc_tsc_frequency_hz=%u lag_latency_usec=%u\n"
+		      "Activity data: change_num=%u, quanta_ratio=0x%x, last_update_tick=%u, active_ticks=%llu\n",
+		      __get_str(dev), __get_str(name), __entry->instance,
+		      (__entry->active +  __entry->total), __entry->quanta, __entry->last_cpu_ts,
+		      __entry->global_change_num, __entry->guc_tsc_frequency_hz,
+		      __entry->lag_latency_usec, __entry->change_num, __entry->quanta_ratio,
+		      __entry->last_update_tick, __entry->active_ticks)
+);
 #endif
 
 /* This part must be outside protection */
-- 
2.47.1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH v7 3/5] drm/xe/guc: Expose engine activity only for supported GuC version
  2025-02-14 10:08 [PATCH v7 0/5] PMU support for engine activity Riana Tauro
                   ` (4 preceding siblings ...)
  2025-02-14 10:08 ` [PATCH v7 2/5] drm/xe/trace: Add trace for engine activity Riana Tauro
@ 2025-02-14 10:08 ` Riana Tauro
  2025-02-14 11:32   ` Michal Wajdeczko
  2025-02-14 10:08 ` [PATCH v7 4/5] drm/xe/xe_pmu: Add PMU support for engine activity Riana Tauro
                   ` (6 subsequent siblings)
  12 siblings, 1 reply; 23+ messages in thread
From: Riana Tauro @ 2025-02-14 10:08 UTC (permalink / raw)
  To: intel-xe
  Cc: riana.tauro, anshuman.gupta, umesh.nerlige.ramappa,
	lucas.demarchi, vinay.belgaumkar, soham.purkait, John Harrison,
	Michal Wajdeczko

Engine activity is supported only on GuC submission version >= 1.14.1
Allow enabling/reading engine activity only on supported
GuC versions. Warn once if not supported.

v2: use guc interface version (John)
v3: use debug log (Umesh)
v4: use variable for supported and use gt logs
    use a friendlier log message (Michal)
v5: fix kernel-doc
    do not continue in init if not supported (Michal)
v6: remove hardcoding values (Michal)

Cc: John Harrison <John.C.Harrison@Intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 drivers/gpu/drm/xe/xe_guc_engine_activity.c   | 51 ++++++++++++++++++-
 drivers/gpu/drm/xe/xe_guc_engine_activity.h   |  1 +
 .../gpu/drm/xe/xe_guc_engine_activity_types.h |  3 ++
 3 files changed, 53 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_guc_engine_activity.c b/drivers/gpu/drm/xe/xe_guc_engine_activity.c
index a424527eddb6..2a457dcf31d5 100644
--- a/drivers/gpu/drm/xe/xe_guc_engine_activity.c
+++ b/drivers/gpu/drm/xe/xe_guc_engine_activity.c
@@ -95,6 +95,29 @@ static void free_engine_activity_buffers(struct engine_activity_buffer *buffer)
 	xe_bo_unpin_map_no_vm(buffer->activity_bo);
 }
 
+static bool is_engine_activity_supported(struct xe_guc *guc)
+{
+	struct xe_uc_fw_version *version = &guc->fw.versions.found[XE_UC_FW_VER_COMPATIBILITY];
+	struct xe_uc_fw_version required = { 1, 14, 1 };
+	struct xe_gt *gt = guc_to_gt(guc);
+
+	if (IS_SRIOV_VF(gt_to_xe(gt))) {
+		xe_gt_info(gt, "engine activity stats not supported on VFs\n");
+		return false;
+	}
+
+	/* engine activity stats is supported from GuC interface version (1.14.1) */
+	if (GUC_SUBMIT_VER(guc) < MAKE_GUC_VER_STRUCT(required)) {
+		xe_gt_info(gt,
+			   "engine activity stats unsupported in GuC interface v%u.%u.%u, need v%u.%u.%u or higher\n",
+			   version->major, version->minor, version->patch, required.major,
+			   required.minor, required.patch);
+		return false;
+	}
+
+	return true;
+}
+
 static struct engine_activity *hw_engine_to_engine_activity(struct xe_hw_engine *hwe)
 {
 	struct xe_guc *guc = &hwe->gt->uc.guc;
@@ -251,6 +274,9 @@ static u32 gpm_timestamp_shift(struct xe_gt *gt)
  */
 u64 xe_guc_engine_activity_active_ticks(struct xe_guc *guc, struct xe_hw_engine *hwe)
 {
+	if (!xe_guc_engine_activity_supported(guc))
+		return 0;
+
 	return get_engine_active_ticks(guc, hwe);
 }
 
@@ -263,9 +289,27 @@ u64 xe_guc_engine_activity_active_ticks(struct xe_guc *guc, struct xe_hw_engine
  */
 u64 xe_guc_engine_activity_total_ticks(struct xe_guc *guc, struct xe_hw_engine *hwe)
 {
+	if (!xe_guc_engine_activity_supported(guc))
+		return 0;
+
 	return get_engine_total_ticks(guc, hwe);
 }
 
+/**
+ * xe_guc_engine_activity_supported - Check support for engine activity stats
+ * @guc: The GuC object
+ *
+ * Engine activity stats is supported from GuC interface version (1.14.1)
+ *
+ * Return: true if engine activity stats supported, false otherwise
+ */
+bool xe_guc_engine_activity_supported(struct xe_guc *guc)
+{
+	struct xe_guc_engine_activity *engine_activity = &guc->engine_activity;
+
+	return engine_activity->supported;
+}
+
 /**
  * xe_guc_engine_activity_enable_stats - Enable engine activity stats
  * @guc: The GuC object
@@ -276,6 +320,9 @@ void xe_guc_engine_activity_enable_stats(struct xe_guc *guc)
 {
 	int ret;
 
+	if (!xe_guc_engine_activity_supported(guc))
+		return;
+
 	ret = enable_engine_activity_stats(guc);
 	if (ret)
 		xe_gt_err(guc_to_gt(guc), "failed to enable activity stats%d\n", ret);
@@ -301,10 +348,10 @@ int xe_guc_engine_activity_init(struct xe_guc *guc)
 {
 	struct xe_guc_engine_activity *engine_activity = &guc->engine_activity;
 	struct xe_gt *gt = guc_to_gt(guc);
-	struct xe_device *xe = gt_to_xe(gt);
 	int ret;
 
-	if (IS_SRIOV_VF(xe))
+	engine_activity->supported = is_engine_activity_supported(guc);
+	if (!engine_activity->supported)
 		return 0;
 
 	ret = allocate_engine_activity_group(guc);
diff --git a/drivers/gpu/drm/xe/xe_guc_engine_activity.h b/drivers/gpu/drm/xe/xe_guc_engine_activity.h
index e92d2456698d..a042d4cb404c 100644
--- a/drivers/gpu/drm/xe/xe_guc_engine_activity.h
+++ b/drivers/gpu/drm/xe/xe_guc_engine_activity.h
@@ -12,6 +12,7 @@ struct xe_hw_engine;
 struct xe_guc;
 
 int xe_guc_engine_activity_init(struct xe_guc *guc);
+bool xe_guc_engine_activity_supported(struct xe_guc *guc);
 void xe_guc_engine_activity_enable_stats(struct xe_guc *guc);
 u64 xe_guc_engine_activity_active_ticks(struct xe_guc *guc, struct xe_hw_engine *hwe);
 u64 xe_guc_engine_activity_total_ticks(struct xe_guc *guc, struct xe_hw_engine *hwe);
diff --git a/drivers/gpu/drm/xe/xe_guc_engine_activity_types.h b/drivers/gpu/drm/xe/xe_guc_engine_activity_types.h
index a2ab327d3eec..5cdd034b6b70 100644
--- a/drivers/gpu/drm/xe/xe_guc_engine_activity_types.h
+++ b/drivers/gpu/drm/xe/xe_guc_engine_activity_types.h
@@ -79,6 +79,9 @@ struct xe_guc_engine_activity {
 	/** @num_activity_group: number of activity groups */
 	u32 num_activity_group;
 
+	/** @supported: indicates support for engine activity stats */
+	bool supported;
+
 	/** @eag: holds the device level engine activity data */
 	struct engine_activity_group *eag;
 
-- 
2.47.1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH v7 4/5] drm/xe/xe_pmu: Add PMU support for engine activity
  2025-02-14 10:08 [PATCH v7 0/5] PMU support for engine activity Riana Tauro
                   ` (5 preceding siblings ...)
  2025-02-14 10:08 ` [PATCH v7 3/5] drm/xe/guc: Expose engine activity only for supported GuC version Riana Tauro
@ 2025-02-14 10:08 ` Riana Tauro
  2025-02-14 10:08 ` [PATCH v7 5/5] drm/xe/xe_pmu: Acquire forcewake on event init for engine events Riana Tauro
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 23+ messages in thread
From: Riana Tauro @ 2025-02-14 10:08 UTC (permalink / raw)
  To: intel-xe
  Cc: riana.tauro, anshuman.gupta, umesh.nerlige.ramappa,
	lucas.demarchi, vinay.belgaumkar, soham.purkait

PMU provides two counters (engine-active-ticks, engine-total-ticks)
to calculate engine activity. When querying engine activity,
user must group these 2 counters using the perf_event
group mechanism to ensure both counters are sampled together.

To list the events

	./perf list
	  xe_0000_03_00.0/engine-active-ticks/	[Kernel PMU event]
	  xe_0000_03_00.0/engine-total-ticks/	[Kernel PMU event]

The formats to be used with the above are

	engine_instance	- config:12-19
	engine_class	- config:20-27
	gt		- config:60-63

The events can then be read using perf tool

./perf stat -e xe_0000_03_00.0/engine-active-ticks,gt=0,
			       engine_class=0,engine_instance=0/,
	       xe_0000_03_00.0/engine-total-ticks,gt=0,
			       engine_class=0,engine_instance=0/ -I 1000

Engine activity can then be calculated as below
engine activity % = (engine active ticks/engine total ticks) * 100

v2: validate gt
    rename total-ticks to engine-total-ticks
    add helper to get hwe (Umesh)

v3: fix checkpatch warning
    add details to documentation (Umesh)
    remove ascii formats from documentation (Lucas)

Signed-off-by: Riana Tauro <riana.tauro@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 drivers/gpu/drm/xe/xe_guc.c |   5 ++
 drivers/gpu/drm/xe/xe_pmu.c | 136 ++++++++++++++++++++++++++++++++----
 drivers/gpu/drm/xe/xe_uc.c  |   3 +
 3 files changed, 131 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
index 1619c0a52db9..bc1ff0a4e1e7 100644
--- a/drivers/gpu/drm/xe/xe_guc.c
+++ b/drivers/gpu/drm/xe/xe_guc.c
@@ -27,6 +27,7 @@
 #include "xe_guc_capture.h"
 #include "xe_guc_ct.h"
 #include "xe_guc_db_mgr.h"
+#include "xe_guc_engine_activity.h"
 #include "xe_guc_hwconfig.h"
 #include "xe_guc_log.h"
 #include "xe_guc_pc.h"
@@ -744,6 +745,10 @@ int xe_guc_init_post_hwconfig(struct xe_guc *guc)
 	if (ret)
 		return ret;
 
+	ret = xe_guc_engine_activity_init(guc);
+	if (ret)
+		return ret;
+
 	ret = xe_guc_buf_cache_init(&guc->buf);
 	if (ret)
 		return ret;
diff --git a/drivers/gpu/drm/xe/xe_pmu.c b/drivers/gpu/drm/xe/xe_pmu.c
index 3910a82328ee..dc89fa6d0ec5 100644
--- a/drivers/gpu/drm/xe/xe_pmu.c
+++ b/drivers/gpu/drm/xe/xe_pmu.c
@@ -8,15 +8,16 @@
 
 #include "xe_device.h"
 #include "xe_gt_idle.h"
+#include "xe_guc_engine_activity.h"
+#include "xe_hw_engine.h"
 #include "xe_pm.h"
 #include "xe_pmu.h"
 
 /**
  * DOC: Xe PMU (Performance Monitoring Unit)
  *
- * Expose events/counters like GT-C6 residency and GT frequency to user land via
- * the perf interface. Events are per device. The GT can be selected with an
- * extra config sub-field (bits 60-63).
+ * Expose events/counters like GT-C6 residency, GT frequency and per-class-engine
+ * activity to user land via the perf interface. Events are per device.
  *
  * All events are listed in sysfs:
  *
@@ -24,7 +25,18 @@
  *     $ ls /sys/bus/event_source/devices/xe_0000_00_02.0/events/
  *     $ ls /sys/bus/event_source/devices/xe_0000_00_02.0/format/
  *
- * The format directory has info regarding the configs that can be used.
+ * The following format parameters are available to read events,
+ * but only few are valid with each event:
+ *
+ *	gt[60:63]		Selects gt for the event
+ *	engine_class[20:27]	Selects engine-class for event
+ *	engine_instance[12:19]	Selects the engine-instance for the event
+ *
+ * For engine specific events (engine-*), gt, engine_class and engine_instance parameters must be
+ * set as populated by DRM_XE_DEVICE_QUERY_ENGINES.
+ *
+ * For gt specific events (gt-*) gt parameter must be passed. All other parameters will be 0.
+ *
  * The standard perf tool can be used to grep for a certain event as well.
  * Example:
  *
@@ -35,20 +47,34 @@
  *     $ perf stat -e <event_name,gt=> -I <interval>
  */
 
-#define XE_PMU_EVENT_GT_MASK		GENMASK_ULL(63, 60)
-#define XE_PMU_EVENT_ID_MASK		GENMASK_ULL(11, 0)
+#define XE_PMU_EVENT_GT_MASK			GENMASK_ULL(63, 60)
+#define XE_PMU_EVENT_ENGINE_CLASS_MASK		GENMASK_ULL(27, 20)
+#define XE_PMU_EVENT_ENGINE_INSTANCE_MASK	GENMASK_ULL(19, 12)
+#define XE_PMU_EVENT_ID_MASK			GENMASK_ULL(11, 0)
 
 static unsigned int config_to_event_id(u64 config)
 {
 	return FIELD_GET(XE_PMU_EVENT_ID_MASK, config);
 }
 
+static unsigned int config_to_engine_class(u64 config)
+{
+	return FIELD_GET(XE_PMU_EVENT_ENGINE_CLASS_MASK, config);
+}
+
+static unsigned int config_to_engine_instance(u64 config)
+{
+	return FIELD_GET(XE_PMU_EVENT_ENGINE_INSTANCE_MASK, config);
+}
+
 static unsigned int config_to_gt_id(u64 config)
 {
 	return FIELD_GET(XE_PMU_EVENT_GT_MASK, config);
 }
 
-#define XE_PMU_EVENT_GT_C6_RESIDENCY	0x01
+#define XE_PMU_EVENT_GT_C6_RESIDENCY		0x01
+#define XE_PMU_EVENT_ENGINE_ACTIVE_TICKS	0x02
+#define XE_PMU_EVENT_ENGINE_TOTAL_TICKS		0x03
 
 static struct xe_gt *event_to_gt(struct perf_event *event)
 {
@@ -58,6 +84,24 @@ static struct xe_gt *event_to_gt(struct perf_event *event)
 	return xe_device_get_gt(xe, gt);
 }
 
+static struct xe_hw_engine *event_to_hwe(struct perf_event *event)
+{
+	struct xe_device *xe = container_of(event->pmu, typeof(*xe), pmu.base);
+	struct drm_xe_engine_class_instance eci;
+	u64 config = event->attr.config;
+	struct xe_hw_engine *hwe;
+
+	eci.engine_class = config_to_engine_class(config);
+	eci.engine_instance = config_to_engine_instance(config);
+	eci.gt_id = config_to_gt_id(config);
+
+	hwe = xe_hw_engine_lookup(xe, eci);
+	if (!hwe || xe_hw_engine_is_reserved(hwe))
+		return NULL;
+
+	return hwe;
+}
+
 static bool event_supported(struct xe_pmu *pmu, unsigned int gt,
 			    unsigned int id)
 {
@@ -68,6 +112,35 @@ static bool event_supported(struct xe_pmu *pmu, unsigned int gt,
 		pmu->supported_events & BIT_ULL(id);
 }
 
+static bool event_param_valid(struct perf_event *event)
+{
+	struct xe_device *xe = container_of(event->pmu, typeof(*xe), pmu.base);
+	unsigned int engine_class, engine_instance;
+	u64 config = event->attr.config;
+	struct xe_gt *gt;
+
+	gt = xe_device_get_gt(xe, config_to_gt_id(config));
+	if (!gt)
+		return false;
+
+	engine_class = config_to_engine_class(config);
+	engine_instance = config_to_engine_instance(config);
+
+	switch (config_to_event_id(config)) {
+	case XE_PMU_EVENT_GT_C6_RESIDENCY:
+		if (engine_class || engine_instance)
+			return false;
+		break;
+	case XE_PMU_EVENT_ENGINE_ACTIVE_TICKS:
+	case XE_PMU_EVENT_ENGINE_TOTAL_TICKS:
+		if (!event_to_hwe(event))
+			return false;
+		break;
+	}
+
+	return true;
+}
+
 static void xe_pmu_event_destroy(struct perf_event *event)
 {
 	struct xe_device *xe = container_of(event->pmu, typeof(*xe), pmu.base);
@@ -104,6 +177,9 @@ static int xe_pmu_event_init(struct perf_event *event)
 	if (has_branch_stack(event))
 		return -EOPNOTSUPP;
 
+	if (!event_param_valid(event))
+		return -ENOENT;
+
 	if (!event->parent) {
 		drm_dev_get(&xe->drm);
 		xe_pm_runtime_get(xe);
@@ -113,16 +189,36 @@ static int xe_pmu_event_init(struct perf_event *event)
 	return 0;
 }
 
-static u64 __xe_pmu_event_read(struct perf_event *event)
+static u64 read_engine_events(struct xe_gt *gt, struct perf_event *event)
+{
+	struct xe_device *xe = gt_to_xe(gt);
+	struct xe_hw_engine *hwe;
+	u64 val = 0;
+
+	hwe = event_to_hwe(event);
+	if (!hwe)
+		drm_warn(&xe->drm, "unknown engine\n");
+	else if (config_to_event_id(event->attr.config) == XE_PMU_EVENT_ENGINE_ACTIVE_TICKS)
+		val = xe_guc_engine_activity_active_ticks(&gt->uc.guc, hwe);
+	else
+		val = xe_guc_engine_activity_total_ticks(&gt->uc.guc, hwe);
+
+	return val;
+}
+
+static u64 __xe_pmu_event_read(struct perf_event *event, u64 prev)
 {
 	struct xe_gt *gt = event_to_gt(event);
 
 	if (!gt)
-		return 0;
+		return prev;
 
 	switch (config_to_event_id(event->attr.config)) {
 	case XE_PMU_EVENT_GT_C6_RESIDENCY:
 		return xe_gt_idle_residency_msec(&gt->gtidle);
+	case XE_PMU_EVENT_ENGINE_ACTIVE_TICKS:
+	case XE_PMU_EVENT_ENGINE_TOTAL_TICKS:
+		return read_engine_events(gt, event);
 	}
 
 	return 0;
@@ -135,7 +231,7 @@ static void xe_pmu_event_update(struct perf_event *event)
 
 	prev = local64_read(&hwc->prev_count);
 	do {
-		new = __xe_pmu_event_read(event);
+		new = __xe_pmu_event_read(event, prev);
 	} while (!local64_try_cmpxchg(&hwc->prev_count, &prev, new));
 
 	local64_add(new - prev, &event->count);
@@ -161,7 +257,7 @@ static void xe_pmu_enable(struct perf_event *event)
 	 * 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));
+	local64_set(&event->hw.prev_count, __xe_pmu_event_read(event, 0));
 }
 
 static void xe_pmu_event_start(struct perf_event *event, int flags)
@@ -207,11 +303,15 @@ static void xe_pmu_event_del(struct perf_event *event, int flags)
 	xe_pmu_event_stop(event, PERF_EF_UPDATE);
 }
 
-PMU_FORMAT_ATTR(gt,	"config:60-63");
-PMU_FORMAT_ATTR(event,	"config:0-11");
+PMU_FORMAT_ATTR(gt,			"config:60-63");
+PMU_FORMAT_ATTR(engine_class,		"config:20-27");
+PMU_FORMAT_ATTR(engine_instance,	"config:12-19");
+PMU_FORMAT_ATTR(event,			"config:0-11");
 
 static struct attribute *pmu_format_attrs[] = {
 	&format_attr_event.attr,
+	&format_attr_engine_class.attr,
+	&format_attr_engine_instance.attr,
 	&format_attr_gt.attr,
 	NULL,
 };
@@ -270,6 +370,8 @@ static ssize_t event_attr_show(struct device *dev,
 	XE_EVENT_ATTR_GROUP(v_, id_, &pmu_event_ ##v_.attr.attr)
 
 XE_EVENT_ATTR_SIMPLE(gt-c6-residency, gt_c6_residency, XE_PMU_EVENT_GT_C6_RESIDENCY, "ms");
+XE_EVENT_ATTR_NOUNIT(engine-active-ticks, engine_active_ticks, XE_PMU_EVENT_ENGINE_ACTIVE_TICKS);
+XE_EVENT_ATTR_NOUNIT(engine-total-ticks, engine_total_ticks, XE_PMU_EVENT_ENGINE_TOTAL_TICKS);
 
 static struct attribute *pmu_empty_event_attrs[] = {
 	/* Empty - all events are added as groups with .attr_update() */
@@ -283,15 +385,23 @@ static const struct attribute_group pmu_events_attr_group = {
 
 static const struct attribute_group *pmu_events_attr_update[] = {
 	&pmu_group_gt_c6_residency,
+	&pmu_group_engine_active_ticks,
+	&pmu_group_engine_total_ticks,
 	NULL,
 };
 
 static void set_supported_events(struct xe_pmu *pmu)
 {
 	struct xe_device *xe = container_of(pmu, typeof(*xe), pmu);
+	struct xe_gt *gt = xe_device_get_gt(xe, 0);
 
 	if (!xe->info.skip_guc_pc)
 		pmu->supported_events |= BIT_ULL(XE_PMU_EVENT_GT_C6_RESIDENCY);
+
+	if (xe_guc_engine_activity_supported(&gt->uc.guc)) {
+		pmu->supported_events |= BIT_ULL(XE_PMU_EVENT_ENGINE_ACTIVE_TICKS);
+		pmu->supported_events |= BIT_ULL(XE_PMU_EVENT_ENGINE_TOTAL_TICKS);
+	}
 }
 
 /**
diff --git a/drivers/gpu/drm/xe/xe_uc.c b/drivers/gpu/drm/xe/xe_uc.c
index 0d073a9987c2..769905036b35 100644
--- a/drivers/gpu/drm/xe/xe_uc.c
+++ b/drivers/gpu/drm/xe/xe_uc.c
@@ -14,6 +14,7 @@
 #include "xe_gt_sriov_vf.h"
 #include "xe_guc.h"
 #include "xe_guc_pc.h"
+#include "xe_guc_engine_activity.h"
 #include "xe_huc.h"
 #include "xe_sriov.h"
 #include "xe_uc_fw.h"
@@ -210,6 +211,8 @@ int xe_uc_init_hw(struct xe_uc *uc)
 	if (ret)
 		return ret;
 
+	xe_guc_engine_activity_enable_stats(&uc->guc);
+
 	/* We don't fail the driver load if HuC fails to auth, but let's warn */
 	ret = xe_huc_auth(&uc->huc, XE_HUC_AUTH_VIA_GUC);
 	xe_gt_assert(uc_to_gt(uc), !ret);
-- 
2.47.1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH v7 5/5] drm/xe/xe_pmu: Acquire forcewake on event init for engine events
  2025-02-14 10:08 [PATCH v7 0/5] PMU support for engine activity Riana Tauro
                   ` (6 preceding siblings ...)
  2025-02-14 10:08 ` [PATCH v7 4/5] drm/xe/xe_pmu: Add PMU support for engine activity Riana Tauro
@ 2025-02-14 10:08 ` Riana Tauro
  2025-02-14  9:50   ` Ghimiray, Himal Prasad
  2025-02-20 21:46   ` Lucas De Marchi
  2025-02-14 10:12 ` ✓ CI.Build: success for PMU support for engine activity (rev3) Patchwork
                   ` (4 subsequent siblings)
  12 siblings, 2 replies; 23+ messages in thread
From: Riana Tauro @ 2025-02-14 10:08 UTC (permalink / raw)
  To: intel-xe
  Cc: riana.tauro, anshuman.gupta, umesh.nerlige.ramappa,
	lucas.demarchi, vinay.belgaumkar, soham.purkait, Rodrigo Vivi,
	Himal Prasad Ghimiray

When the engine events are created, acquire GT forcewake to read gpm
timestamp required for the events and release on event destroy. This
cannot be done during read due to the raw spinlock held my pmu.

v2: remove forcewake counting (Umesh)
v3: remove extra space (Umesh)

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 drivers/gpu/drm/xe/xe_pmu.c       | 52 +++++++++++++++++++++++++++++--
 drivers/gpu/drm/xe/xe_pmu_types.h |  4 +++
 2 files changed, 54 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_pmu.c b/drivers/gpu/drm/xe/xe_pmu.c
index dc89fa6d0ec5..67693d642f5a 100644
--- a/drivers/gpu/drm/xe/xe_pmu.c
+++ b/drivers/gpu/drm/xe/xe_pmu.c
@@ -7,6 +7,7 @@
 #include <linux/device.h>
 
 #include "xe_device.h"
+#include "xe_force_wake.h"
 #include "xe_gt_idle.h"
 #include "xe_guc_engine_activity.h"
 #include "xe_hw_engine.h"
@@ -102,6 +103,37 @@ static struct xe_hw_engine *event_to_hwe(struct perf_event *event)
 	return hwe;
 }
 
+static bool is_engine_event(u64 config)
+{
+	unsigned int event_id = config_to_event_id(config);
+
+	return (event_id == XE_PMU_EVENT_ENGINE_TOTAL_TICKS ||
+		event_id == XE_PMU_EVENT_ENGINE_ACTIVE_TICKS);
+}
+
+static bool event_gt_forcewake(struct perf_event *event)
+{
+	struct xe_device *xe = container_of(event->pmu, typeof(*xe), pmu.base);
+	u64 config = event->attr.config;
+	struct xe_pmu *pmu = &xe->pmu;
+	struct xe_gt *gt;
+	unsigned int fw_ref;
+
+	if (!is_engine_event(config))
+		return true;
+
+	gt = xe_device_get_gt(xe, config_to_gt_id(config));
+
+	fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
+	if (!fw_ref)
+		return false;
+
+	if (!pmu->fw_ref)
+		pmu->fw_ref = fw_ref;
+
+	return true;
+}
+
 static bool event_supported(struct xe_pmu *pmu, unsigned int gt,
 			    unsigned int id)
 {
@@ -144,6 +176,13 @@ static bool event_param_valid(struct perf_event *event)
 static void xe_pmu_event_destroy(struct perf_event *event)
 {
 	struct xe_device *xe = container_of(event->pmu, typeof(*xe), pmu.base);
+	struct xe_pmu *pmu = &xe->pmu;
+	struct xe_gt *gt;
+
+	if (pmu->fw_ref) {
+		gt = xe_device_get_gt(xe, config_to_gt_id(event->attr.config));
+		xe_force_wake_put(gt_to_fw(gt), pmu->fw_ref);
+	}
 
 	drm_WARN_ON(&xe->drm, event->parent);
 	xe_pm_runtime_put(xe);
@@ -183,18 +222,27 @@ static int xe_pmu_event_init(struct perf_event *event)
 	if (!event->parent) {
 		drm_dev_get(&xe->drm);
 		xe_pm_runtime_get(xe);
+		if (!event_gt_forcewake(event)) {
+			xe_pm_runtime_put(xe);
+			drm_dev_put(&xe->drm);
+			return -EINVAL;
+		}
 		event->destroy = xe_pmu_event_destroy;
 	}
 
 	return 0;
 }
 
-static u64 read_engine_events(struct xe_gt *gt, struct perf_event *event)
+static u64 read_engine_events(struct xe_gt *gt, struct perf_event *event, u64 prev)
 {
 	struct xe_device *xe = gt_to_xe(gt);
+	struct xe_pmu *pmu = &xe->pmu;
 	struct xe_hw_engine *hwe;
 	u64 val = 0;
 
+	if (!pmu->fw_ref)
+		return prev;
+
 	hwe = event_to_hwe(event);
 	if (!hwe)
 		drm_warn(&xe->drm, "unknown engine\n");
@@ -218,7 +266,7 @@ static u64 __xe_pmu_event_read(struct perf_event *event, u64 prev)
 		return xe_gt_idle_residency_msec(&gt->gtidle);
 	case XE_PMU_EVENT_ENGINE_ACTIVE_TICKS:
 	case XE_PMU_EVENT_ENGINE_TOTAL_TICKS:
-		return read_engine_events(gt, event);
+		return read_engine_events(gt, event, prev);
 	}
 
 	return 0;
diff --git a/drivers/gpu/drm/xe/xe_pmu_types.h b/drivers/gpu/drm/xe/xe_pmu_types.h
index f5ba4d56622c..07c4e592106e 100644
--- a/drivers/gpu/drm/xe/xe_pmu_types.h
+++ b/drivers/gpu/drm/xe/xe_pmu_types.h
@@ -30,6 +30,10 @@ struct xe_pmu {
 	 * @name: Name as registered with perf core.
 	 */
 	const char *name;
+	/**
+	 * @fw_ref: force_wake ref
+	 */
+	unsigned int fw_ref;
 	/**
 	 * @supported_events: Bitmap of supported events, indexed by event id
 	 */
-- 
2.47.1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* ✓ CI.Build: success for PMU support for engine activity (rev3)
  2025-02-14 10:08 [PATCH v7 0/5] PMU support for engine activity Riana Tauro
                   ` (7 preceding siblings ...)
  2025-02-14 10:08 ` [PATCH v7 5/5] drm/xe/xe_pmu: Acquire forcewake on event init for engine events Riana Tauro
@ 2025-02-14 10:12 ` Patchwork
  2025-02-14 10:15 ` ✓ CI.Hooks: " Patchwork
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-02-14 10:12 UTC (permalink / raw)
  To: Riana Tauro; +Cc: intel-xe

== Series Details ==

Series: PMU support for engine activity (rev3)
URL   : https://patchwork.freedesktop.org/series/144408/
State : success

== Summary ==

lib/modules/6.14.0-rc2-xe+/kernel/arch/x86/events/amd/
lib/modules/6.14.0-rc2-xe+/kernel/arch/x86/events/amd/amd-uncore.ko
lib/modules/6.14.0-rc2-xe+/kernel/arch/x86/events/rapl.ko
lib/modules/6.14.0-rc2-xe+/kernel/arch/x86/kvm/
lib/modules/6.14.0-rc2-xe+/kernel/arch/x86/kvm/kvm.ko
lib/modules/6.14.0-rc2-xe+/kernel/arch/x86/kvm/kvm-intel.ko
lib/modules/6.14.0-rc2-xe+/kernel/arch/x86/kvm/kvm-amd.ko
lib/modules/6.14.0-rc2-xe+/kernel/kernel/
lib/modules/6.14.0-rc2-xe+/kernel/kernel/kheaders.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/
lib/modules/6.14.0-rc2-xe+/kernel/crypto/ecrdsa_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/xcbc.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/serpent_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/aria_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/crypto_simd.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/adiantum.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/tcrypt.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/crypto_engine.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/zstd.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/asymmetric_keys/
lib/modules/6.14.0-rc2-xe+/kernel/crypto/asymmetric_keys/pkcs7_test_key.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/asymmetric_keys/pkcs8_key_parser.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/des_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/xctr.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/authenc.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/sm4_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/camellia_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/sm3.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/pcrypt.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/aegis128.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/af_alg.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/algif_aead.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/cmac.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/sm3_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/aes_ti.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/chacha_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/poly1305_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/nhpoly1305.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/crc32_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/essiv.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/ccm.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/wp512.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/streebog_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/authencesn.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/echainiv.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/lrw.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/cryptd.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/crypto_user.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/algif_hash.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/polyval-generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/hctr2.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/842.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/pcbc.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/ansi_cprng.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/cast6_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/twofish_common.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/twofish_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/lz4hc.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/blowfish_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/md4.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/chacha20poly1305.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/curve25519-generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/lz4.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/rmd160.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/algif_skcipher.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/cast5_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/fcrypt.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/ecdsa_generic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/sm4.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/cast_common.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/blowfish_common.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/michael_mic.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/async_tx/
lib/modules/6.14.0-rc2-xe+/kernel/crypto/async_tx/async_xor.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/async_tx/async_tx.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/async_tx/async_memcpy.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/async_tx/async_pq.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/async_tx/async_raid6_recov.ko
lib/modules/6.14.0-rc2-xe+/kernel/crypto/algif_rng.ko
lib/modules/6.14.0-rc2-xe+/kernel/block/
lib/modules/6.14.0-rc2-xe+/kernel/block/bfq.ko
lib/modules/6.14.0-rc2-xe+/kernel/block/kyber-iosched.ko
lib/modules/6.14.0-rc2-xe+/build
lib/modules/6.14.0-rc2-xe+/modules.alias.bin
lib/modules/6.14.0-rc2-xe+/modules.builtin
lib/modules/6.14.0-rc2-xe+/modules.softdep
lib/modules/6.14.0-rc2-xe+/modules.alias
lib/modules/6.14.0-rc2-xe+/modules.order
lib/modules/6.14.0-rc2-xe+/modules.symbols
lib/modules/6.14.0-rc2-xe+/modules.dep.bin
+ mv kernel-nodebug.tar.gz ..
+ cd ..
+ rm -rf archive
++ date +%s
+ echo -e '\e[0Ksection_end:1739527959:package_x86_64_nodebug\r\e[0K'
^[[0Ksection_end:1739527959:package_x86_64_nodebug
^[[0K
+ sync
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel



^ permalink raw reply	[flat|nested] 23+ messages in thread

* ✓ CI.Hooks: success for PMU support for engine activity (rev3)
  2025-02-14 10:08 [PATCH v7 0/5] PMU support for engine activity Riana Tauro
                   ` (8 preceding siblings ...)
  2025-02-14 10:12 ` ✓ CI.Build: success for PMU support for engine activity (rev3) Patchwork
@ 2025-02-14 10:15 ` Patchwork
  2025-02-14 10:16 ` ✓ CI.checksparse: " Patchwork
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-02-14 10:15 UTC (permalink / raw)
  To: Riana Tauro; +Cc: intel-xe

== Series Details ==

Series: PMU support for engine activity (rev3)
URL   : https://patchwork.freedesktop.org/series/144408/
State : success

== Summary ==

run-parts: executing /workspace/ci/hooks/00-showenv
+ export
+ grep -Ei '(^|\W)CI_'
declare -x CI_KERNEL_BUILD_DIR="/workspace/kernel/build64-default"
declare -x CI_KERNEL_SRC_DIR="/workspace/kernel"
declare -x CI_TOOLS_SRC_DIR="/workspace/ci"
declare -x CI_WORKSPACE_DIR="/workspace"
run-parts: executing /workspace/ci/hooks/10-build-W1
+ SRC_DIR=/workspace/kernel
+ RESTORE_DISPLAY_CONFIG=0
+ '[' -n /workspace/kernel/build64-default ']'
+ BUILD_DIR=/workspace/kernel/build64-default
+ cd /workspace/kernel
++ nproc
+ make -j48 O=/workspace/kernel/build64-default modules_prepare
make[1]: Entering directory '/workspace/kernel/build64-default'
  GEN     Makefile
mkdir -p /workspace/kernel/build64-default/tools/objtool && make O=/workspace/kernel/build64-default subdir=tools/objtool --no-print-directory -C objtool 
  CALL    ../scripts/checksyscalls.sh
  INSTALL libsubcmd_headers
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/exec-cmd.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/help.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/pager.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/parse-options.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/run-command.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/sigchain.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/subcmd-config.o
  LD      /workspace/kernel/build64-default/tools/objtool/libsubcmd/libsubcmd-in.o
  AR      /workspace/kernel/build64-default/tools/objtool/libsubcmd/libsubcmd.a
  CC      /workspace/kernel/build64-default/tools/objtool/weak.o
  CC      /workspace/kernel/build64-default/tools/objtool/check.o
  CC      /workspace/kernel/build64-default/tools/objtool/special.o
  CC      /workspace/kernel/build64-default/tools/objtool/builtin-check.o
  CC      /workspace/kernel/build64-default/tools/objtool/elf.o
  CC      /workspace/kernel/build64-default/tools/objtool/objtool.o
  CC      /workspace/kernel/build64-default/tools/objtool/orc_gen.o
  CC      /workspace/kernel/build64-default/tools/objtool/orc_dump.o
  CC      /workspace/kernel/build64-default/tools/objtool/libstring.o
  CC      /workspace/kernel/build64-default/tools/objtool/arch/x86/special.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/arch/x86/decode.o
  CC      /workspace/kernel/build64-default/tools/objtool/librbtree.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/fragments/10-xe.fragment
Using .config as base
Merging /workspace/ci/kernel/fragments/10-xe.fragment
Value of CONFIG_DRM_XE is redefined by fragment /workspace/ci/kernel/fragments/10-xe.fragment:
Previous value: # CONFIG_DRM_XE is not set
New value: CONFIG_DRM_XE=m

  GEN     Makefile

WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
  Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
  Selected by [m]:
  - DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m] && HAS_IOPORT [=y]
#
# configuration written to .config
#
Value requested for CONFIG_HAVE_UID16 not in final .config
Requested value:  CONFIG_HAVE_UID16=y
Actual value:     

Value requested for CONFIG_UID16 not in final .config
Requested value:  CONFIG_UID16=y
Actual value:     

Value requested for CONFIG_X86_32 not in final .config
Requested value:  CONFIG_X86_32=y
Actual value:     

Value requested for CONFIG_OUTPUT_FORMAT not in final .config
Requested value:  CONFIG_OUTPUT_FORMAT="elf32-i386"
Actual value:     CONFIG_OUTPUT_FORMAT="elf64-x86-64"

Value requested for CONFIG_ARCH_MMAP_RND_BITS_MIN not in final .config
Requested value:  CONFIG_ARCH_MMAP_RND_BITS_MIN=8
Actual value:     CONFIG_ARCH_MMAP_RND_BITS_MIN=28

Value requested for CONFIG_ARCH_MMAP_RND_BITS_MAX not in final .config
Requested value:  CONFIG_ARCH_MMAP_RND_BITS_MAX=16
Actual value:     CONFIG_ARCH_MMAP_RND_BITS_MAX=32

Value requested for CONFIG_PGTABLE_LEVELS not in final .config
Requested value:  CONFIG_PGTABLE_LEVELS=2
Actual value:     CONFIG_PGTABLE_LEVELS=5

Value requested for CONFIG_X86_BIGSMP not in final .config
Requested value:  # CONFIG_X86_BIGSMP is not set
Actual value:     

Value requested for CONFIG_X86_INTEL_QUARK not in final .config
Requested value:  # CONFIG_X86_INTEL_QUARK is not set
Actual value:     

Value requested for CONFIG_X86_RDC321X not in final .config
Requested value:  # CONFIG_X86_RDC321X is not set
Actual value:     

Value requested for CONFIG_X86_32_NON_STANDARD not in final .config
Requested value:  # CONFIG_X86_32_NON_STANDARD is not set
Actual value:     

Value requested for CONFIG_X86_32_IRIS not in final .config
Requested value:  # CONFIG_X86_32_IRIS is not set
Actual value:     

Value requested for CONFIG_M486SX not in final .config
Requested value:  # CONFIG_M486SX is not set
Actual value:     

Value requested for CONFIG_M486 not in final .config
Requested value:  # CONFIG_M486 is not set
Actual value:     

Value requested for CONFIG_M586 not in final .config
Requested value:  # CONFIG_M586 is not set
Actual value:     

Value requested for CONFIG_M586TSC not in final .config
Requested value:  # CONFIG_M586TSC is not set
Actual value:     

Value requested for CONFIG_M586MMX not in final .config
Requested value:  # CONFIG_M586MMX is not set
Actual value:     

Value requested for CONFIG_M686 not in final .config
Requested value:  CONFIG_M686=y
Actual value:     

Value requested for CONFIG_MPENTIUMII not in final .config
Requested value:  # CONFIG_MPENTIUMII is not set
Actual value:     

Value requested for CONFIG_MPENTIUMIII not in final .config
Requested value:  # CONFIG_MPENTIUMIII is not set
Actual value:     

Value requested for CONFIG_MPENTIUMM not in final .config
Requested value:  # CONFIG_MPENTIUMM is not set
Actual value:     

Value requested for CONFIG_MPENTIUM4 not in final .config
Requested value:  # CONFIG_MPENTIUM4 is not set
Actual value:     

Value requested for CONFIG_MK6 not in final .config
Requested value:  # CONFIG_MK6 is not set
Actual value:     

Value requested for CONFIG_MK7 not in final .config
Requested value:  # CONFIG_MK7 is not set
Actual value:     

Value requested for CONFIG_MCRUSOE not in final .config
Requested value:  # CONFIG_MCRUSOE is not set
Actual value:     

Value requested for CONFIG_MEFFICEON not in final .config
Requested value:  # CONFIG_MEFFICEON is not set
Actual value:     

Value requested for CONFIG_MWINCHIPC6 not in final .config
Requested value:  # CONFIG_MWINCHIPC6 is not set
Actual value:     

Value requested for CONFIG_MWINCHIP3D not in final .config
Requested value:  # CONFIG_MWINCHIP3D is not set
Actual value:     

Value requested for CONFIG_MELAN not in final .config
Requested value:  # CONFIG_MELAN is not set
Actual value:     

Value requested for CONFIG_MGEODEGX1 not in final .config
Requested value:  # CONFIG_MGEODEGX1 is not set
Actual value:     

Value requested for CONFIG_MGEODE_LX not in final .config
Requested value:  # CONFIG_MGEODE_LX is not set
Actual value:     

Value requested for CONFIG_MCYRIXIII not in final .config
Requested value:  # CONFIG_MCYRIXIII is not set
Actual value:     

Value requested for CONFIG_MVIAC3_2 not in final .config
Requested value:  # CONFIG_MVIAC3_2 is not set
Actual value:     

Value requested for CONFIG_MVIAC7 not in final .config
Requested value:  # CONFIG_MVIAC7 is not set
Actual value:     

Value requested for CONFIG_X86_GENERIC not in final .config
Requested value:  # CONFIG_X86_GENERIC is not set
Actual value:     

Value requested for CONFIG_X86_INTERNODE_CACHE_SHIFT not in final .config
Requested value:  CONFIG_X86_INTERNODE_CACHE_SHIFT=5
Actual value:     CONFIG_X86_INTERNODE_CACHE_SHIFT=6

Value requested for CONFIG_X86_L1_CACHE_SHIFT not in final .config
Requested value:  CONFIG_X86_L1_CACHE_SHIFT=5
Actual value:     CONFIG_X86_L1_CACHE_SHIFT=6

Value requested for CONFIG_X86_USE_PPRO_CHECKSUM not in final .config
Requested value:  CONFIG_X86_USE_PPRO_CHECKSUM=y
Actual value:     

Value requested for CONFIG_X86_MINIMUM_CPU_FAMILY not in final .config
Requested value:  CONFIG_X86_MINIMUM_CPU_FAMILY=6
Actual value:     CONFIG_X86_MINIMUM_CPU_FAMILY=64

Value requested for CONFIG_CPU_SUP_TRANSMETA_32 not in final .config
Requested value:  CONFIG_CPU_SUP_TRANSMETA_32=y
Actual value:     

Value requested for CONFIG_CPU_SUP_VORTEX_32 not in final .config
Requested value:  CONFIG_CPU_SUP_VORTEX_32=y
Actual value:     

Value requested for CONFIG_HPET_TIMER not in final .config
Requested value:  # CONFIG_HPET_TIMER is not set
Actual value:     CONFIG_HPET_TIMER=y

Value requested for CONFIG_NR_CPUS_RANGE_END not in final .config
Requested value:  CONFIG_NR_CPUS_RANGE_END=8
Actual value:     CONFIG_NR_CPUS_RANGE_END=512

Value requested for CONFIG_NR_CPUS_DEFAULT not in final .config
Requested value:  CONFIG_NR_CPUS_DEFAULT=8
Actual value:     CONFIG_NR_CPUS_DEFAULT=64

Value requested for CONFIG_X86_ANCIENT_MCE not in final .config
Requested value:  # CONFIG_X86_ANCIENT_MCE is not set
Actual value:     

Value requested for CONFIG_X86_LEGACY_VM86 not in final .config
Requested value:  # CONFIG_X86_LEGACY_VM86 is not set
Actual value:     

Value requested for CONFIG_X86_ESPFIX32 not in final .config
Requested value:  CONFIG_X86_ESPFIX32=y
Actual value:     

Value requested for CONFIG_TOSHIBA not in final .config
Requested value:  # CONFIG_TOSHIBA is not set
Actual value:     

Value requested for CONFIG_X86_REBOOTFIXUPS not in final .config
Requested value:  # CONFIG_X86_REBOOTFIXUPS is not set
Actual value:     

Value requested for CONFIG_MICROCODE_INITRD32 not in final .config
Requested value:  CONFIG_MICROCODE_INITRD32=y
Actual value:     

Value requested for CONFIG_NOHIGHMEM not in final .config
Requested value:  # CONFIG_NOHIGHMEM is not set
Actual value:     

Value requested for CONFIG_HIGHMEM4G not in final .config
Requested value:  CONFIG_HIGHMEM4G=y
Actual value:     

Value requested for CONFIG_HIGHMEM64G not in final .config
Requested value:  # CONFIG_HIGHMEM64G is not set
Actual value:     

Value requested for CONFIG_VMSPLIT_3G not in final .config
Requested value:  CONFIG_VMSPLIT_3G=y
Actual value:     

Value requested for CONFIG_VMSPLIT_3G_OPT not in final .config
Requested value:  # CONFIG_VMSPLIT_3G_OPT is not set
Actual value:     

Value requested for CONFIG_VMSPLIT_2G not in final .config
Requested value:  # CONFIG_VMSPLIT_2G is not set
Actual value:     

Value requested for CONFIG_VMSPLIT_2G_OPT not in final .config
Requested value:  # CONFIG_VMSPLIT_2G_OPT is not set
Actual value:     

Value requested for CONFIG_VMSPLIT_1G not in final .config
Requested value:  # CONFIG_VMSPLIT_1G is not set
Actual value:     

Value requested for CONFIG_PAGE_OFFSET not in final .config
Requested value:  CONFIG_PAGE_OFFSET=0xC0000000
Actual value:     

Value requested for CONFIG_HIGHMEM not in final .config
Requested value:  CONFIG_HIGHMEM=y
Actual value:     

Value requested for CONFIG_X86_PAE not in final .config
Requested value:  # CONFIG_X86_PAE is not set
Actual value:     

Value requested for CONFIG_ARCH_FLATMEM_ENABLE not in final .config
Requested value:  CONFIG_ARCH_FLATMEM_ENABLE=y
Actual value:     

Value requested for CONFIG_ARCH_SELECT_MEMORY_MODEL not in final .config
Requested value:  CONFIG_ARCH_SELECT_MEMORY_MODEL=y
Actual value:     

Value requested for CONFIG_ILLEGAL_POINTER_VALUE not in final .config
Requested value:  CONFIG_ILLEGAL_POINTER_VALUE=0
Actual value:     CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000

Value requested for CONFIG_HIGHPTE not in final .config
Requested value:  # CONFIG_HIGHPTE is not set
Actual value:     

Value requested for CONFIG_COMPAT_VDSO not in final .config
Requested value:  # CONFIG_COMPAT_VDSO is not set
Actual value:     

Value requested for CONFIG_FUNCTION_PADDING_CFI not in final .config
Requested value:  CONFIG_FUNCTION_PADDING_CFI=0
Actual value:     CONFIG_FUNCTION_PADDING_CFI=11

Value requested for CONFIG_FUNCTION_PADDING_BYTES not in final .config
Requested value:  CONFIG_FUNCTION_PADDING_BYTES=4
Actual value:     CONFIG_FUNCTION_PADDING_BYTES=16

Value requested for CONFIG_APM not in final .config
Requested value:  # CONFIG_APM is not set
Actual value:     

Value requested for CONFIG_X86_POWERNOW_K6 not in final .config
Requested value:  # CONFIG_X86_POWERNOW_K6 is not set
Actual value:     

Value requested for CONFIG_X86_POWERNOW_K7 not in final .config
Requested value:  # CONFIG_X86_POWERNOW_K7 is not set
Actual value:     

Value requested for CONFIG_X86_GX_SUSPMOD not in final .config
Requested value:  # CONFIG_X86_GX_SUSPMOD is not set
Actual value:     

Value requested for CONFIG_X86_SPEEDSTEP_ICH not in final .config
Requested value:  # CONFIG_X86_SPEEDSTEP_ICH is not set
Actual value:     

Value requested for CONFIG_X86_SPEEDSTEP_SMI not in final .config
Requested value:  # CONFIG_X86_SPEEDSTEP_SMI is not set
Actual value:     

Value requested for CONFIG_X86_CPUFREQ_NFORCE2 not in final .config
Requested value:  # CONFIG_X86_CPUFREQ_NFORCE2 is not set
Actual value:     

Value requested for CONFIG_X86_LONGRUN not in final .config
Requested value:  # CONFIG_X86_LONGRUN is not set
Actual value:     

Value requested for CONFIG_X86_LONGHAUL not in final .config
Requested value:  # CONFIG_X86_LONGHAUL is not set
Actual value:     

Value requested for CONFIG_X86_E_POWERSAVER not in final .config
Requested value:  # CONFIG_X86_E_POWERSAVER is not set
Actual value:     

Value requested for CONFIG_PCI_GOBIOS not in final .config
Requested value:  # CONFIG_PCI_GOBIOS is not set
Actual value:     

Value requested for CONFIG_PCI_GOMMCONFIG not in final .config
Requested value:  # CONFIG_PCI_GOMMCONFIG is not set
Actual value:     

Value requested for CONFIG_PCI_GODIRECT not in final .config
Requested value:  # CONFIG_PCI_GODIRECT is not set
Actual value:     

Value requested for CONFIG_PCI_GOANY not in final .config
Requested value:  CONFIG_PCI_GOANY=y
Actual value:     

Value requested for CONFIG_PCI_BIOS not in final .config
Requested value:  CONFIG_PCI_BIOS=y
Actual value:     

Value requested for CONFIG_ISA not in final .config
Requested value:  # CONFIG_ISA is not set
Actual value:     

Value requested for CONFIG_SCx200 not in final .config
Requested value:  # CONFIG_SCx200 is not set
Actual value:     

Value requested for CONFIG_OLPC not in final .config
Requested value:  # CONFIG_OLPC is not set
Actual value:     

Value requested for CONFIG_ALIX not in final .config
Requested value:  # CONFIG_ALIX is not set
Actual value:     

Value requested for CONFIG_NET5501 not in final .config
Requested value:  # CONFIG_NET5501 is not set
Actual value:     

Value requested for CONFIG_GEOS not in final .config
Requested value:  # CONFIG_GEOS is not set
Actual value:     

Value requested for CONFIG_COMPAT_32 not in final .config
Requested value:  CONFIG_COMPAT_32=y
Actual value:     

Value requested for CONFIG_HAVE_ATOMIC_IOMAP not in final .config
Requested value:  CONFIG_HAVE_ATOMIC_IOMAP=y
Actual value:     

Value requested for CONFIG_ARCH_32BIT_OFF_T not in final .config
Requested value:  CONFIG_ARCH_32BIT_OFF_T=y
Actual value:     

Value requested for CONFIG_ARCH_WANT_IPC_PARSE_VERSION not in final .config
Requested value:  CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
Actual value:     

Value requested for CONFIG_MODULES_USE_ELF_REL not in final .config
Requested value:  CONFIG_MODULES_USE_ELF_REL=y
Actual value:     

Value requested for CONFIG_ARCH_MMAP_RND_BITS not in final .config
Requested value:  CONFIG_ARCH_MMAP_RND_BITS=8
Actual value:     CONFIG_ARCH_MMAP_RND_BITS=28

Value requested for CONFIG_CLONE_BACKWARDS not in final .config
Requested value:  CONFIG_CLONE_BACKWARDS=y
Actual value:     

Value requested for CONFIG_OLD_SIGSUSPEND3 not in final .config
Requested value:  CONFIG_OLD_SIGSUSPEND3=y
Actual value:     

Value requested for CONFIG_OLD_SIGACTION not in final .config
Requested value:  CONFIG_OLD_SIGACTION=y
Actual value:     

Value requested for CONFIG_ARCH_SPLIT_ARG64 not in final .config
Requested value:  CONFIG_ARCH_SPLIT_ARG64=y
Actual value:     

Value requested for CONFIG_FUNCTION_ALIGNMENT not in final .config
Requested value:  CONFIG_FUNCTION_ALIGNMENT=4
Actual value:     CONFIG_FUNCTION_ALIGNMENT=16

Value requested for CONFIG_SELECT_MEMORY_MODEL not in final .config
Requested value:  CONFIG_SELECT_MEMORY_MODEL=y
Actual value:     

Value requested for CONFIG_FLATMEM_MANUAL not in final .config
Requested value:  CONFIG_FLATMEM_MANUAL=y
Actual value:     

Value requested for CONFIG_SPARSEMEM_MANUAL not in final .config
Requested value:  # CONFIG_SPARSEMEM_MANUAL is not set
Actual value:     

Value requested for CONFIG_FLATMEM not in final .config
Requested value:  CONFIG_FLATMEM=y
Actual value:     

Value requested for CONFIG_SPARSEMEM_STATIC not in final .config
Requested value:  CONFIG_SPARSEMEM_STATIC=y
Actual value:     

Value requested for CONFIG_BOUNCE not in final .config
Requested value:  CONFIG_BOUNCE=y
Actual value:     

Value requested for CONFIG_KMAP_LOCAL not in final .config
Requested value:  CONFIG_KMAP_LOCAL=y
Actual value:     

Value requested for CONFIG_HOTPLUG_PCI_COMPAQ not in final .config
Requested value:  # CONFIG_HOTPLUG_PCI_COMPAQ is not set
Actual value:     

Value requested for CONFIG_HOTPLUG_PCI_IBM not in final .config
Requested value:  # CONFIG_HOTPLUG_PCI_IBM is not set
Actual value:     

Value requested for CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH not in final .config
Requested value:  CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH=y
Actual value:     

Value requested for CONFIG_PCH_PHUB not in final .config
Requested value:  # CONFIG_PCH_PHUB is not set
Actual value:     

Value requested for CONFIG_SCSI_NSP32 not in final .config
Requested value:  # CONFIG_SCSI_NSP32 is not set
Actual value:     

Value requested for CONFIG_PATA_CS5520 not in final .config
Requested value:  # CONFIG_PATA_CS5520 is not set
Actual value:     

Value requested for CONFIG_PATA_CS5530 not in final .config
Requested value:  # CONFIG_PATA_CS5530 is not set
Actual value:     

Value requested for CONFIG_PATA_CS5535 not in final .config
Requested value:  # CONFIG_PATA_CS5535 is not set
Actual value:     

Value requested for CONFIG_PATA_CS5536 not in final .config
Requested value:  # CONFIG_PATA_CS5536 is not set
Actual value:     

Value requested for CONFIG_PATA_SC1200 not in final .config
Requested value:  # CONFIG_PATA_SC1200 is not set
Actual value:     

Value requested for CONFIG_PCH_GBE not in final .config
Requested value:  # CONFIG_PCH_GBE is not set
Actual value:     

Value requested for CONFIG_INPUT_WISTRON_BTNS not in final .config
Requested value:  # CONFIG_INPUT_WISTRON_BTNS is not set
Actual value:     

Value requested for CONFIG_SERIAL_TIMBERDALE not in final .config
Requested value:  # CONFIG_SERIAL_TIMBERDALE is not set
Actual value:     

Value requested for CONFIG_SERIAL_PCH_UART not in final .config
Requested value:  # CONFIG_SERIAL_PCH_UART is not set
Actual value:     

Value requested for CONFIG_HW_RANDOM_GEODE not in final .config
Requested value:  CONFIG_HW_RANDOM_GEODE=y
Actual value:     

Value requested for CONFIG_SONYPI not in final .config
Requested value:  # CONFIG_SONYPI is not set
Actual value:     

Value requested for CONFIG_PC8736x_GPIO not in final .config
Requested value:  # CONFIG_PC8736x_GPIO is not set
Actual value:     

Value requested for CONFIG_NSC_GPIO not in final .config
Requested value:  # CONFIG_NSC_GPIO is not set
Actual value:     

Value requested for CONFIG_I2C_EG20T not in final .config
Requested value:  # CONFIG_I2C_EG20T is not set
Actual value:     

Value requested for CONFIG_SCx200_ACB not in final .config
Requested value:  # CONFIG_SCx200_ACB is not set
Actual value:     

Value requested for CONFIG_PTP_1588_CLOCK_PCH not in final .config
Requested value:  # CONFIG_PTP_1588_CLOCK_PCH is not set
Actual value:     

Value requested for CONFIG_SBC8360_WDT not in final .config
Requested value:  # CONFIG_SBC8360_WDT is not set
Actual value:     

Value requested for CONFIG_SBC7240_WDT not in final .config
Requested value:  # CONFIG_SBC7240_WDT is not set
Actual value:     

Value requested for CONFIG_MFD_CS5535 not in final .config
Requested value:  # CONFIG_MFD_CS5535 is not set
Actual value:     

Value requested for CONFIG_AGP_ALI not in final .config
Requested value:  # CONFIG_AGP_ALI is not set
Actual value:     

Value requested for CONFIG_AGP_ATI not in final .config
Requested value:  # CONFIG_AGP_ATI is not set
Actual value:     

Value requested for CONFIG_AGP_AMD not in final .config
Requested value:  # CONFIG_AGP_AMD is not set
Actual value:     

Value requested for CONFIG_AGP_NVIDIA not in final .config
Requested value:  # CONFIG_AGP_NVIDIA is not set
Actual value:     

Value requested for CONFIG_AGP_SWORKS not in final .config
Requested value:  # CONFIG_AGP_SWORKS is not set
Actual value:     

Value requested for CONFIG_AGP_EFFICEON not in final .config
Requested value:  # CONFIG_AGP_EFFICEON is not set
Actual value:     

Value requested for CONFIG_SND_CS5530 not in final .config
Requested value:  # CONFIG_SND_CS5530 is not set
Actual value:     

Value requested for CONFIG_SND_CS5535AUDIO not in final .config
Requested value:  # CONFIG_SND_CS5535AUDIO is not set
Actual value:     

Value requested for CONFIG_SND_SIS7019 not in final .config
Requested value:  # CONFIG_SND_SIS7019 is not set
Actual value:     

Value requested for CONFIG_LEDS_OT200 not in final .config
Requested value:  # CONFIG_LEDS_OT200 is not set
Actual value:     

Value requested for CONFIG_PCH_DMA not in final .config
Requested value:  # CONFIG_PCH_DMA is not set
Actual value:     

Value requested for CONFIG_CLKSRC_I8253 not in final .config
Requested value:  CONFIG_CLKSRC_I8253=y
Actual value:     

Value requested for CONFIG_MAILBOX not in final .config
Requested value:  # CONFIG_MAILBOX is not set
Actual value:     CONFIG_MAILBOX=y

Value requested for CONFIG_CRYPTO_SERPENT_SSE2_586 not in final .config
Requested value:  # CONFIG_CRYPTO_SERPENT_SSE2_586 is not set
Actual value:     

Value requested for CONFIG_CRYPTO_TWOFISH_586 not in final .config
Requested value:  # CONFIG_CRYPTO_TWOFISH_586 is not set
Actual value:     

Value requested for CONFIG_CRYPTO_DEV_GEODE not in final .config
Requested value:  # CONFIG_CRYPTO_DEV_GEODE is not set
Actual value:     

Value requested for CONFIG_CRYPTO_DEV_HIFN_795X not in final .config
Requested value:  # CONFIG_CRYPTO_DEV_HIFN_795X is not set
Actual value:     

Value requested for CONFIG_CRYPTO_LIB_POLY1305_RSIZE not in final .config
Requested value:  CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1
Actual value:     CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11

Value requested for CONFIG_AUDIT_GENERIC not in final .config
Requested value:  CONFIG_AUDIT_GENERIC=y
Actual value:     

Value requested for CONFIG_GENERIC_VDSO_32 not in final .config
Requested value:  CONFIG_GENERIC_VDSO_32=y
Actual value:     

Value requested for CONFIG_DEBUG_KMAP_LOCAL not in final .config
Requested value:  # CONFIG_DEBUG_KMAP_LOCAL is not set
Actual value:     

Value requested for CONFIG_DEBUG_HIGHMEM not in final .config
Requested value:  # CONFIG_DEBUG_HIGHMEM is not set
Actual value:     

Value requested for CONFIG_HAVE_DEBUG_STACKOVERFLOW not in final .config
Requested value:  CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
Actual value:     

Value requested for CONFIG_DEBUG_STACKOVERFLOW not in final .config
Requested value:  # CONFIG_DEBUG_STACKOVERFLOW is not set
Actual value:     

Value requested for CONFIG_HAVE_FUNCTION_GRAPH_TRACER not in final .config
Requested value:  CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
Actual value:     

Value requested for CONFIG_HAVE_FUNCTION_GRAPH_FREGS not in final .config
Requested value:  CONFIG_HAVE_FUNCTION_GRAPH_FREGS=y
Actual value:     

Value requested for CONFIG_HAVE_FTRACE_GRAPH_FUNC not in final .config
Requested value:  CONFIG_HAVE_FTRACE_GRAPH_FUNC=y
Actual value:     

Value requested for CONFIG_DRM_KUNIT_TEST not in final .config
Requested value:  CONFIG_DRM_KUNIT_TEST=m
Actual value:     

Value requested for CONFIG_DRM_XE_WERROR not in final .config
Requested value:  CONFIG_DRM_XE_WERROR=y
Actual value:     

Value requested for CONFIG_DRM_XE_DEBUG not in final .config
Requested value:  CONFIG_DRM_XE_DEBUG=y
Actual value:     

Value requested for CONFIG_DRM_XE_DEBUG_MEM not in final .config
Requested value:  CONFIG_DRM_XE_DEBUG_MEM=y
Actual value:     

Value requested for CONFIG_DRM_XE_KUNIT_TEST not in final .config
Requested value:  CONFIG_DRM_XE_KUNIT_TEST=m
Actual value:     

++ nproc
+ make -j48 ARCH=i386 olddefconfig
  GEN     Makefile

WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
  Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
  Selected by [m]:
  - DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m] && HAS_IOPORT [=y]
#
# configuration written to .config
#
++ nproc
+ make -j48 ARCH=i386
  SYNC    include/config/auto.conf.cmd
  GEN     Makefile

WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
  Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
  Selected by [m]:
  - DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m] && HAS_IOPORT [=y]

WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
  Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
  Selected by [m]:
  - DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m] && HAS_IOPORT [=y]

WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
  Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
  Selected by [m]:
  - DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m] && HAS_IOPORT [=y]
  GEN     Makefile
  WRAP    arch/x86/include/generated/uapi/asm/bpf_perf_event.h
  WRAP    arch/x86/include/generated/uapi/asm/errno.h
  UPD     include/generated/uapi/linux/version.h
  WRAP    arch/x86/include/generated/uapi/asm/fcntl.h
  WRAP    arch/x86/include/generated/uapi/asm/ioctl.h
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_32.h
  WRAP    arch/x86/include/generated/uapi/asm/ioctls.h
  WRAP    arch/x86/include/generated/uapi/asm/ipcbuf.h
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_x32.h
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_64.h
  WRAP    arch/x86/include/generated/uapi/asm/param.h
  SYSTBL  arch/x86/include/generated/asm/syscalls_32.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/socket.h
  WRAP    arch/x86/include/generated/uapi/asm/sockios.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
  HOSTCC  arch/x86/tools/relocs_32.o
  HOSTCC  arch/x86/tools/relocs_64.o
  UPD     include/generated/compile.h
  HOSTCC  arch/x86/tools/relocs_common.o
  WRAP    arch/x86/include/generated/asm/early_ioremap.h
  WRAP    arch/x86/include/generated/asm/fprobe.h
  WRAP    arch/x86/include/generated/asm/mcs_spinlock.h
  WRAP    arch/x86/include/generated/asm/mmzone.h
  WRAP    arch/x86/include/generated/asm/irq_regs.h
  WRAP    arch/x86/include/generated/asm/kmap_size.h
  WRAP    arch/x86/include/generated/asm/local64.h
  WRAP    arch/x86/include/generated/asm/mmiowb.h
  WRAP    arch/x86/include/generated/asm/module.lds.h
  WRAP    arch/x86/include/generated/asm/rwonce.h
  HOSTCC  scripts/kallsyms
  HOSTCC  scripts/sorttable
  HOSTCC  scripts/asn1_compiler
  HOSTCC  scripts/selinux/mdp/mdp
  HOSTLD  arch/x86/tools/relocs
  UPD     include/config/kernel.release
  UPD     include/generated/utsrelease.h
  CC      scripts/mod/empty.o
  HOSTCC  scripts/mod/mk_elfconfig
  CC      scripts/mod/devicetable-offsets.s
  UPD     scripts/mod/devicetable-offsets.h
  MKELF   scripts/mod/elfconfig.h
  HOSTCC  scripts/mod/modpost.o
  HOSTCC  scripts/mod/file2alias.o
  HOSTCC  scripts/mod/sumversion.o
  HOSTCC  scripts/mod/symsearch.o
  HOSTLD  scripts/mod/modpost
  CC      kernel/bounds.s
  CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-arch-fallback.h
  CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-instrumented.h
  CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-long.h
  UPD     include/generated/timeconst.h
  UPD     include/generated/bounds.h
  CC      arch/x86/kernel/asm-offsets.s
  UPD     include/generated/asm-offsets.h
  CALL    /workspace/kernel/scripts/checksyscalls.sh
  LDS     scripts/module.lds
  CC      init/main.o
  HOSTCC  usr/gen_init_cpio
  CC      certs/system_keyring.o
  CC      init/do_mounts.o
  UPD     init/utsversion-tmp.h
  CC      ipc/util.o
  CC      init/do_mounts_initrd.o
  CC      ipc/msgutil.o
  CC      ipc/msg.o
  CC      init/initramfs.o
  CC      security/commoncap.o
  CC      init/calibrate.o
  CC      security/lsm_syscalls.o
  CC      ipc/sem.o
  CC      mm/filemap.o
  AS      arch/x86/lib/atomic64_cx8_32.o
  CC      io_uring/io_uring.o
  CC      block/bdev.o
  CC      ipc/shm.o
  CC      init/init_task.o
  CC      arch/x86/realmode/init.o
  CC      security/min_addr.o
  AR      arch/x86/net/built-in.a
  CC      arch/x86/pci/i386.o
  CC      mm/mempool.o
  CC      arch/x86/video/video-common.o
  CC      arch/x86/power/cpu.o
  AR      arch/x86/crypto/built-in.a
  HOSTCC  security/selinux/genheaders
  AR      virt/lib/built-in.a
  CC      block/partitions/core.o
  CC      security/integrity/iint.o
  CC      security/keys/gc.o
  AR      arch/x86/entry/vsyscall/built-in.a
  CC      fs/nfs_common/nfsacl.o
  CC      arch/x86/mm/pat/set_memory.o
  AR      arch/x86/platform/atom/built-in.a
  CC      fs/iomap/trace.o
  CC      security/keys/key.o
  CC      arch/x86/events/amd/core.o
  CC      arch/x86/virt/svm/cmdline.o
  CC      net/core/sock.o
  CC      fs/notify/dnotify/dnotify.o
  AR      virt/built-in.a
  AR      drivers/cache/built-in.a
  CC      block/fops.o
  CC      lib/math/div64.o
  CC      arch/x86/kernel/fpu/init.o
  CC      sound/core/seq/seq.o
  HOSTCC  certs/extract-cert
  AR      arch/x86/platform/ce4100/built-in.a
  AR      drivers/irqchip/built-in.a
  AS      arch/x86/lib/checksum_32.o
  CC      arch/x86/entry/vdso/vma.o
  AS      arch/x86/realmode/rm/header.o
  CC      arch/x86/platform/efi/memmap.o
  AR      drivers/bus/mhi/built-in.a
  CC      kernel/sched/core.o
  AS      arch/x86/realmode/rm/trampoline_32.o
  CC      arch/x86/lib/cmdline.o
  AR      drivers/bus/built-in.a
  CC      crypto/asymmetric_keys/asymmetric_type.o
  AS      arch/x86/realmode/rm/stack.o
  AR      drivers/pwm/built-in.a
  AS      arch/x86/realmode/rm/reboot.o
  AR      drivers/leds/trigger/built-in.a
  AR      arch/x86/virt/svm/built-in.a
  AR      drivers/leds/blink/built-in.a
  AR      drivers/leds/simple/built-in.a
  AR      arch/x86/virt/vmx/built-in.a
  AS      arch/x86/realmode/rm/wakeup_asm.o
  CC      drivers/leds/led-core.o
  AR      arch/x86/virt/built-in.a
  CC      arch/x86/realmode/rm/wakemain.o
  CC      ipc/syscall.o
  AS      arch/x86/lib/cmpxchg8b_emu.o
  CC      lib/math/gcd.o
  GEN     security/selinux/flask.h security/selinux/av_permissions.h
  CC      security/selinux/avc.o
  CC      arch/x86/lib/cpu.o
  CC      arch/x86/realmode/rm/video-mode.o
  CC      lib/math/lcm.o
  AS      arch/x86/realmode/rm/copy.o
  CC      lib/math/int_log.o
  CC      sound/core/sound.o
  CC      arch/x86/entry/vdso/extable.o
  GEN     usr/initramfs_data.cpio
  AS      arch/x86/realmode/rm/bioscall.o
  COPY    usr/initramfs_inc_data
  AS      usr/initramfs_data.o
  CC      arch/x86/realmode/rm/regs.o
  CERT    certs/x509_certificate_list
  CERT    certs/signing_key.x509
  AR      usr/built-in.a
  CC      lib/math/int_pow.o
  AS      certs/system_certificates.o
  CC      arch/x86/kernel/fpu/bugs.o
  CC      security/selinux/hooks.o
  AR      certs/built-in.a
  CC      crypto/api.o
  CC      arch/x86/realmode/rm/video-vga.o
  CC      lib/math/int_sqrt.o
  CC      arch/x86/kernel/fpu/core.o
  CC      arch/x86/realmode/rm/video-vesa.o
  CC      lib/math/reciprocal_div.o
  CC      arch/x86/lib/delay.o
  CC      sound/core/seq/seq_lock.o
  CC      arch/x86/realmode/rm/video-bios.o
  CC      kernel/locking/mutex.o
  CC      lib/math/rational.o
  AR      arch/x86/video/built-in.a
  CC      kernel/power/qos.o
  PASYMS  arch/x86/realmode/rm/pasyms.h
  CC      kernel/printk/printk.o
  CC      security/integrity/integrity_audit.o
  CC      arch/x86/mm/init.o
  LDS     arch/x86/realmode/rm/realmode.lds
  CC      fs/nfs_common/grace.o
  LD      arch/x86/realmode/rm/realmode.elf
  CC      kernel/irq/irqdesc.o
  RELOCS  arch/x86/realmode/rm/realmode.relocs
  OBJCOPY arch/x86/realmode/rm/realmode.bin
  AS      arch/x86/realmode/rmpiggy.o
  CC      drivers/leds/led-class.o
  CC      drivers/leds/led-triggers.o
  CC      arch/x86/kernel/fpu/regset.o
  AR      arch/x86/realmode/built-in.a
  CC      arch/x86/pci/init.o
  CC      crypto/asymmetric_keys/restrict.o
  CC      block/bio.o
  CC      security/selinux/selinuxfs.o
  AR      fs/notify/dnotify/built-in.a
  CC      crypto/asymmetric_keys/signature.o
  CC      fs/notify/inotify/inotify_fsnotify.o
  CC      arch/x86/platform/efi/quirks.o
  CC      kernel/sched/fair.o
  CC      arch/x86/power/hibernate_32.o
  CC      block/partitions/msdos.o
  AS      arch/x86/lib/getuser.o
  CC      block/elevator.o
  GEN     arch/x86/lib/inat-tables.c
  CC      arch/x86/lib/insn-eval.o
  CC      fs/nfs_common/common.o
  CC      sound/core/seq/seq_clientmgr.o
  AR      lib/math/built-in.a
  CC      lib/crypto/mpi/generic_mpih-lshift.o
  CC      security/keys/keyring.o
  CC      drivers/pci/msi/pcidev_msi.o
  CC      drivers/video/console/dummycon.o
  LDS     arch/x86/entry/vdso/vdso32/vdso32.lds
  CC      kernel/irq/handle.o
  AR      sound/i2c/other/built-in.a
  AR      sound/i2c/built-in.a
  AS      arch/x86/entry/vdso/vdso32/note.o
  AS      arch/x86/entry/vdso/vdso32/system_call.o
  CC      drivers/video/console/vgacon.o
  AS      arch/x86/entry/vdso/vdso32/sigreturn.o
  CC      arch/x86/entry/vdso/vdso32/vclock_gettime.o
  CC      fs/iomap/iter.o
  CC      arch/x86/events/amd/lbr.o
  CC      arch/x86/pci/pcbios.o
  CC      block/partitions/efi.o
  CC      security/security.o
  AS      arch/x86/power/hibernate_asm_32.o
  CC      drivers/pci/pcie/portdrv.o
  CC      kernel/printk/printk_safe.o
  CC      crypto/asymmetric_keys/public_key.o
  CC      arch/x86/events/amd/ibs.o
  CC      fs/iomap/buffered-io.o
  CC      fs/notify/inotify/inotify_user.o
  CC      arch/x86/mm/pat/memtype.o
  AR      security/integrity/built-in.a
  CC      lib/zlib_inflate/inffast.o
  CC      fs/quota/dquot.o
  CC      fs/iomap/direct-io.o
  CC      kernel/rcu/update.o
  CC      init/version.o
  AR      drivers/leds/built-in.a
  CC      arch/x86/kernel/fpu/signal.o
  CC      arch/x86/power/hibernate.o
  CC      lib/crypto/mpi/generic_mpih-mul1.o
  CC      lib/zlib_inflate/inflate.o
  CC      lib/crypto/mpi/generic_mpih-mul2.o
  CC      kernel/irq/manage.o
  CC      kernel/power/main.o
  AR      fs/nfs_common/built-in.a
  CC      arch/x86/events/amd/uncore.o
  CC      drivers/pci/msi/api.o
  CC      io_uring/opdef.o
  CC      lib/zlib_inflate/infutil.o
  AR      init/built-in.a
  CC      lib/zlib_inflate/inftrees.o
  AR      sound/drivers/opl3/built-in.a
  AR      sound/drivers/opl4/built-in.a
  CC      arch/x86/platform/efi/efi.o
  AR      sound/isa/ad1816a/built-in.a
  AR      sound/drivers/mpu401/built-in.a
  AR      sound/isa/ad1848/built-in.a
  AR      sound/drivers/vx/built-in.a
  AR      sound/isa/cs423x/built-in.a
  AR      sound/drivers/pcsp/built-in.a
  CC      ipc/ipc_sysctl.o
  AR      sound/drivers/built-in.a
  AR      sound/isa/es1688/built-in.a
  AR      sound/isa/galaxy/built-in.a
  CC      block/blk-core.o
  CC      arch/x86/lib/insn.o
  AR      sound/isa/gus/built-in.a
  AR      sound/isa/msnd/built-in.a
  AR      sound/isa/opti9xx/built-in.a
  CC      arch/x86/entry/vdso/vdso32/vgetcpu.o
  AR      sound/isa/sb/built-in.a
  CC      arch/x86/mm/init_32.o
  AR      sound/isa/wavefront/built-in.a
  CC      arch/x86/mm/fault.o
  CC      kernel/locking/semaphore.o
  AR      sound/isa/wss/built-in.a
  AR      sound/isa/built-in.a
  CC      security/keys/keyctl.o
  HOSTCC  arch/x86/entry/vdso/vdso2c
  CC      sound/core/init.o
  CC      arch/x86/pci/mmconfig_32.o
  CC      kernel/power/console.o
  ASN.1   crypto/asymmetric_keys/x509.asn1.[ch]
  ASN.1   crypto/asymmetric_keys/x509_akid.asn1.[ch]
  CC      crypto/asymmetric_keys/x509_loader.o
  AR      arch/x86/platform/geode/built-in.a
  AR      kernel/livepatch/built-in.a
  CC      arch/x86/kernel/fpu/xstate.o
  CC      arch/x86/entry/vdso/vdso32-setup.o
  CC      drivers/pci/pcie/rcec.o
  CC      arch/x86/mm/ioremap.o
  AR      block/partitions/built-in.a
  CC      arch/x86/lib/kaslr.o
  AR      fs/notify/fanotify/built-in.a
  CC      security/selinux/netlink.o
  CC      kernel/rcu/sync.o
  CC      crypto/asymmetric_keys/x509_public_key.o
  AR      drivers/video/console/built-in.a
  CC      drivers/video/backlight/backlight.o
  AR      arch/x86/power/built-in.a
  CC      lib/crypto/mpi/generic_mpih-mul3.o
  CC      kernel/rcu/srcutree.o
  CC      lib/zlib_inflate/inflate_syms.o
  CC      arch/x86/mm/pat/memtype_interval.o
  AS      arch/x86/entry/entry.o
  CC      ipc/mqueue.o
  CC      sound/core/seq/seq_memory.o
  AR      fs/notify/inotify/built-in.a
  CC      sound/core/seq/seq_queue.o
  CC      fs/notify/fsnotify.o
  CC      drivers/pci/pcie/bwctrl.o
  CC      arch/x86/lib/memcpy_32.o
  CC      drivers/pci/msi/msi.o
  VDSO    arch/x86/entry/vdso/vdso32.so.dbg
  CC      net/core/request_sock.o
  AS      arch/x86/lib/memmove_32.o
  CC      lib/crypto/mpi/generic_mpih-rshift.o
  AR      drivers/pci/pwrctrl/built-in.a
  OBJCOPY arch/x86/entry/vdso/vdso32.so
  CC      lib/crypto/mpi/generic_mpih-sub1.o
  VDSO2C  arch/x86/entry/vdso/vdso-image-32.c
  CC      arch/x86/lib/misc.o
  CC      arch/x86/entry/vdso/vdso-image-32.o
  CC      arch/x86/lib/pc-conf-reg.o
  AS      arch/x86/lib/putuser.o
  CC      fs/iomap/fiemap.o
  CC      fs/proc/task_mmu.o
  CC      kernel/irq/spurious.o
  CC      kernel/locking/rwsem.o
  CC      security/keys/permission.o
  AR      lib/zlib_inflate/built-in.a
  CC      arch/x86/pci/direct.o
  CC      arch/x86/pci/mmconfig-shared.o
  CC      arch/x86/pci/fixup.o
  AS      arch/x86/lib/retpoline.o
  CC      arch/x86/lib/string_32.o
  CC      kernel/power/process.o
  AR      arch/x86/entry/vdso/built-in.a
  AS      arch/x86/entry/entry_32.o
  CC      arch/x86/platform/efi/efi_32.o
  CC      arch/x86/lib/strstr_32.o
  CC      security/keys/process_keys.o
  CC      arch/x86/entry/syscall_32.o
  ASN.1   crypto/asymmetric_keys/pkcs7.asn1.[ch]
  CC      arch/x86/lib/usercopy.o
  AR      arch/x86/events/amd/built-in.a
  CC      crypto/asymmetric_keys/pkcs7_trust.o
  CC      arch/x86/pci/acpi.o
  CC      arch/x86/events/intel/core.o
  AR      drivers/idle/built-in.a
  CC      net/ethernet/eth.o
  CC      lib/zlib_deflate/deflate.o
  CC      arch/x86/pci/legacy.o
  AR      arch/x86/mm/pat/built-in.a
  CC      ipc/namespace.o
  CC      kernel/printk/nbcon.o
  CC      fs/proc/inode.o
  CC      mm/oom_kill.o
  CC      lib/crypto/mpi/generic_mpih-add1.o
  CC      arch/x86/entry/common.o
  CC      drivers/pci/pcie/aspm.o
  AR      drivers/video/backlight/built-in.a
  CC      kernel/irq/resend.o
  CC      drivers/video/aperture.o
  CC      arch/x86/lib/usercopy_32.o
  AR      drivers/video/fbdev/core/built-in.a
  AS      arch/x86/platform/efi/efi_stub_32.o
  AR      drivers/video/fbdev/omap/built-in.a
  CC      arch/x86/platform/efi/runtime-map.o
  CC      kernel/irq/chip.o
  CC      drivers/video/cmdline.o
  AR      drivers/video/fbdev/omap2/omapfb/dss/built-in.a
  AR      drivers/video/fbdev/omap2/omapfb/displays/built-in.a
  CC      crypto/asymmetric_keys/pkcs7_verify.o
  AR      drivers/video/fbdev/omap2/omapfb/built-in.a
  CC      sound/core/seq/seq_fifo.o
  AR      drivers/video/fbdev/omap2/built-in.a
  CC      arch/x86/mm/extable.o
  AR      drivers/video/fbdev/built-in.a
  CC      sound/core/memory.o
  CC      arch/x86/kernel/cpu/mce/core.o
  AR      arch/x86/kernel/fpu/built-in.a
  CC      fs/notify/notification.o
  CC      arch/x86/kernel/cpu/mce/severity.o
  CC      fs/iomap/seek.o
  CC      arch/x86/kernel/cpu/mtrr/mtrr.o
  AR      drivers/char/ipmi/built-in.a
  CC      lib/crypto/mpi/mpicoder.o
  CC      drivers/pci/msi/irqdomain.o
  CC      lib/crypto/mpi/mpi-add.o
  CC      arch/x86/lib/msr-smp.o
  CC      net/core/skbuff.o
  CC      kernel/locking/percpu-rwsem.o
  CC      fs/proc/root.o
  CC      fs/quota/quota_v2.o
  CC      block/blk-sysfs.o
  CC      drivers/pci/hotplug/pci_hotplug_core.o
  CC      io_uring/kbuf.o
  CC      arch/x86/events/intel/bts.o
  CC      lib/zlib_deflate/deftree.o
  CC      arch/x86/pci/irq.o
  CC      crypto/asymmetric_keys/x509.asn1.o
  CC      security/keys/request_key.o
  CC      crypto/asymmetric_keys/x509_akid.asn1.o
  CC      crypto/asymmetric_keys/x509_cert_parser.o
  CC      arch/x86/lib/cache-smp.o
  CC      drivers/pci/hotplug/acpi_pcihp.o
  CC      kernel/power/suspend.o
  CC      arch/x86/mm/mmap.o
  CC      lib/lzo/lzo1x_compress.o
  CC      security/selinux/nlmsgtab.o
  CC      kernel/printk/printk_ringbuffer.o
  CC      sound/core/seq/seq_prioq.o
  CC      ipc/mq_sysctl.o
  AR      sound/pci/ac97/built-in.a
  CC      arch/x86/lib/crc32-glue.o
  AS      arch/x86/entry/thunk.o
  AR      sound/ppc/built-in.a
  AR      sound/pci/ali5451/built-in.a
  CC      lib/lzo/lzo1x_decompress_safe.o
  AR      arch/x86/platform/efi/built-in.a
  CC      fs/notify/group.o
  CC      drivers/video/nomodeset.o
  AR      sound/pci/asihpi/built-in.a
  AR      sound/pci/au88x0/built-in.a
  AR      arch/x86/entry/built-in.a
  AR      arch/x86/platform/iris/built-in.a
  CC      arch/x86/platform/intel/iosf_mbi.o
  AR      sound/pci/aw2/built-in.a
  CC      crypto/asymmetric_keys/pkcs7.asn1.o
  CC      crypto/cipher.o
  AR      sound/pci/ctxfi/built-in.a
  CC      crypto/compress.o
  AR      sound/pci/ca0106/built-in.a
  AS      arch/x86/lib/crc32-pclmul.o
  AR      sound/pci/cs46xx/built-in.a
  CC      kernel/sched/build_policy.o
  AR      sound/pci/cs5535audio/built-in.a
  CC      fs/iomap/swapfile.o
  AR      sound/pci/lola/built-in.a
  AR      sound/pci/lx6464es/built-in.a
  AR      sound/pci/echoaudio/built-in.a
  CC      kernel/sched/build_utility.o
  AR      sound/pci/emu10k1/built-in.a
  CC      kernel/locking/spinlock.o
  CC      sound/pci/hda/hda_bind.o
  CC      kernel/rcu/tree.o
  CC      security/lsm_audit.o
  CC      lib/crypto/mpi/mpi-bit.o
  CC      kernel/locking/osq_lock.o
  CC      kernel/irq/dummychip.o
  CC      arch/x86/kernel/cpu/mtrr/if.o
  AR      drivers/pci/msi/built-in.a
  CC      kernel/irq/devres.o
  CC      fs/quota/quota_tree.o
  CC      arch/x86/kernel/cpu/microcode/core.o
  CC      lib/zlib_deflate/deflate_syms.o
  AR      ipc/built-in.a
  AR      arch/x86/platform/intel-mid/built-in.a
  CC      drivers/video/hdmi.o
  CC      arch/x86/pci/common.o
  CC      crypto/asymmetric_keys/pkcs7_parser.o
  AR      sound/arm/built-in.a
  CC      arch/x86/lib/msr.o
  AR      net/ethernet/built-in.a
  CC      fs/quota/quota.o
  CC      mm/fadvise.o
  CC      drivers/acpi/acpica/dsargs.o
  CC      kernel/rcu/rcu_segcblist.o
  CC      block/blk-flush.o
  CC      fs/proc/base.o
  AR      lib/lzo/built-in.a
  CC      kernel/printk/sysctl.o
  CC      security/keys/request_key_auth.o
  CC      kernel/locking/qspinlock.o
  CC      drivers/pci/pcie/pme.o
  AR      drivers/pci/hotplug/built-in.a
  CC      arch/x86/mm/pgtable.o
  CC      security/keys/user_defined.o
  CC      sound/core/seq/seq_timer.o
  CC      kernel/locking/rtmutex_api.o
  CC      lib/crypto/mpi/mpi-cmp.o
  CC      kernel/locking/qrwlock.o
  AR      lib/zlib_deflate/built-in.a
  AR      sound/sh/built-in.a
  AR      drivers/acpi/pmic/built-in.a
  CC      kernel/dma/mapping.o
  CC      kernel/dma/direct.o
  CC      kernel/entry/common.o
  CC      fs/quota/kqid.o
  CC      lib/lz4/lz4_decompress.o
  CC      fs/notify/mark.o
  CC      kernel/irq/kexec.o
  CC      io_uring/rsrc.o
  AR      arch/x86/platform/intel/built-in.a
  CC      drivers/acpi/acpica/dscontrol.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
  AR      sound/synth/emux/built-in.a
  CC      kernel/power/hibernate.o
  CC      arch/x86/kernel/cpu/mtrr/generic.o
  AR      arch/x86/platform/ts5500/built-in.a
  AR      sound/synth/built-in.a
  CC      kernel/power/snapshot.o
  AR      kernel/printk/built-in.a
  AR      arch/x86/platform/uv/built-in.a
  CC      kernel/power/swap.o
  AR      arch/x86/platform/built-in.a
  AR      fs/iomap/built-in.a
  CC      kernel/power/user.o
  CC      arch/x86/kernel/cpu/mtrr/cleanup.o
  CC      security/selinux/netif.o
  CC      sound/pci/hda/hda_codec.o
  AR      crypto/asymmetric_keys/built-in.a
  CC      io_uring/notif.o
  CC      crypto/algapi.o
  CC      fs/quota/netlink.o
  CC      fs/kernfs/mount.o
  CC      kernel/entry/syscall_user_dispatch.o
  CC      arch/x86/mm/physaddr.o
  CC      arch/x86/kernel/cpu/microcode/intel.o
  CC      fs/kernfs/inode.o
  CC      arch/x86/events/intel/ds.o
  AR      drivers/video/built-in.a
  CC      security/keys/proc.o
  CC      arch/x86/kernel/acpi/boot.o
  CC      drivers/acpi/acpica/dsdebug.o
  CC      arch/x86/pci/early.o
  CC      kernel/irq/autoprobe.o
  CC      mm/maccess.o
  CC      arch/x86/kernel/cpu/mce/genpool.o
  CC      lib/crypto/mpi/mpi-sub-ui.o
  CC      arch/x86/events/intel/knc.o
  AS      arch/x86/lib/msr-reg.o
  CC      arch/x86/lib/msr-reg-export.o
  AR      sound/usb/misc/built-in.a
  AR      sound/usb/usx2y/built-in.a
  AR      sound/usb/caiaq/built-in.a
  AR      sound/usb/6fire/built-in.a
  AR      sound/usb/hiface/built-in.a
  CC      block/blk-settings.o
  AR      drivers/pci/pcie/built-in.a
  AR      sound/usb/bcd2000/built-in.a
  AR      sound/usb/built-in.a
  AR      drivers/pci/controller/dwc/built-in.a
  CC      fs/kernfs/dir.o
  AR      drivers/pci/controller/mobiveil/built-in.a
  CC      sound/core/seq/seq_system.o
  AR      drivers/pci/controller/plda/built-in.a
  AR      drivers/pci/controller/built-in.a
  CC      fs/kernfs/file.o
  AR      drivers/pci/switch/built-in.a
  CC      drivers/pci/access.o
  CC      drivers/pci/bus.o
  AS      arch/x86/lib/hweight.o
  CC      arch/x86/lib/iomem.o
  CC      arch/x86/kernel/acpi/sleep.o
  CC      drivers/acpi/acpica/dsfield.o
  CC      arch/x86/mm/tlb.o
  CC      security/selinux/netnode.o
  CC      sound/pci/hda/hda_jack.o
  CC      fs/proc/generic.o
  CC      kernel/dma/ops_helpers.o
  AR      kernel/locking/built-in.a
  CC      kernel/module/main.o
  CC      kernel/dma/remap.o
  CC      fs/notify/fdinfo.o
  CC      kernel/irq/irqdomain.o
  AR      kernel/entry/built-in.a
  CC      io_uring/tctx.o
  AR      fs/quota/built-in.a
  CC      security/device_cgroup.o
  CC      net/core/datagram.o
  CC      lib/crypto/mpi/mpi-div.o
  CC      arch/x86/kernel/cpu/mce/intel.o
  CC      arch/x86/lib/atomic64_32.o
  CC      arch/x86/pci/bus_numa.o
  CC      security/keys/sysctl.o
  CC      arch/x86/kernel/cpu/mtrr/amd.o
  CC      arch/x86/kernel/cpu/microcode/amd.o
  CC      arch/x86/lib/inat.o
  CC      mm/page-writeback.o
  CC      arch/x86/mm/cpu_entry_area.o
  CC      sound/core/seq/seq_ports.o
  CC      drivers/acpi/acpica/dsinit.o
  AR      lib/lz4/built-in.a
  AR      arch/x86/lib/built-in.a
  AR      arch/x86/lib/lib.a
  CC      arch/x86/events/intel/lbr.o
  CC      mm/folio-compat.o
  CC      arch/x86/kernel/apic/apic.o
  CC      drivers/pci/probe.o
  CC      kernel/power/poweroff.o
  AR      sound/firewire/built-in.a
  AR      sound/sparc/built-in.a
  CC      arch/x86/mm/maccess.o
  CC      drivers/acpi/acpica/dsmethod.o
  AR      net/802/built-in.a
  CC      arch/x86/mm/pgprot.o
  CC      crypto/scatterwalk.o
  CC      kernel/time/time.o
  CC      arch/x86/kernel/apic/apic_common.o
  CC      kernel/irq/proc.o
  CC      block/blk-ioc.o
  CC      mm/readahead.o
  CC      kernel/futex/core.o
  AR      fs/notify/built-in.a
  CC      kernel/time/timer.o
  AS      arch/x86/kernel/acpi/wakeup_32.o
  CC      security/keys/keyctl_pkey.o
  CC      arch/x86/kernel/acpi/cstate.o
  CC      arch/x86/kernel/kprobes/core.o
  CC      arch/x86/kernel/cpu/cacheinfo.o
  CC      lib/crypto/mpi/mpi-mod.o
  CC      net/sched/sch_generic.o
  CC      kernel/irq/migration.o
  CC      arch/x86/kernel/cpu/mtrr/cyrix.o
  CC      arch/x86/kernel/cpu/scattered.o
  CC      arch/x86/kernel/cpu/mce/amd.o
  CC      sound/pci/hda/hda_auto_parser.o
  CC      fs/proc/array.o
  CC      arch/x86/pci/amd_bus.o
  AR      kernel/power/built-in.a
  CC      block/blk-map.o
  CC      fs/kernfs/symlink.o
  CC      lib/crypto/memneq.o
  CC      kernel/irq/cpuhotplug.o
  CC      drivers/acpi/acpica/dsmthdat.o
  CC      io_uring/filetable.o
  CC      drivers/pci/host-bridge.o
  CC      kernel/irq/pm.o
  CC      security/selinux/netport.o
  CC      arch/x86/mm/pgtable_32.o
  CC      sound/core/seq/seq_info.o
  CC      drivers/acpi/dptf/int340x_thermal.o
  CC      crypto/proc.o
  AR      arch/x86/kernel/cpu/microcode/built-in.a
  CC      kernel/futex/syscalls.o
  CC      kernel/futex/pi.o
  CC      kernel/futex/requeue.o
  AR      arch/x86/kernel/acpi/built-in.a
  CC      arch/x86/kernel/cpu/mtrr/centaur.o
  AR      sound/spi/built-in.a
  CC      net/core/stream.o
  AR      kernel/dma/built-in.a
  CC      lib/crypto/mpi/mpi-mul.o
  CC      arch/x86/kernel/apic/apic_noop.o
  AR      security/keys/built-in.a
  CC      security/selinux/status.o
  AR      sound/pci/ice1712/built-in.a
  CC      arch/x86/events/zhaoxin/core.o
  CC      arch/x86/mm/iomap_32.o
  CC      sound/core/control.o
  CC      drivers/pci/remove.o
  LDS     arch/x86/kernel/vmlinux.lds
  CC      kernel/time/hrtimer.o
  CC      drivers/acpi/acpica/dsobject.o
  CC      drivers/pnp/pnpacpi/core.o
  CC      drivers/pnp/core.o
  CC      drivers/acpi/x86/apple.o
  CC      lib/crypto/utils.o
  CC      security/selinux/ss/ebitmap.o
  AR      drivers/acpi/dptf/built-in.a
  CC      sound/core/seq/seq_dummy.o
  AR      arch/x86/pci/built-in.a
  AR      fs/kernfs/built-in.a
  CC      drivers/pnp/pnpacpi/rsparser.o
  AR      sound/pci/korg1212/built-in.a
  CC      arch/x86/kernel/kprobes/opt.o
  CC      arch/x86/events/core.o
  CC      lib/zstd/zstd_decompress_module.o
  CC      lib/xz/xz_dec_syms.o
  CC      lib/dim/dim.o
  CC      arch/x86/events/intel/p4.o
  CC      lib/xz/xz_dec_stream.o
  CC      crypto/aead.o
  CC      kernel/irq/msi.o
  CC      crypto/geniv.o
  CC      lib/zstd/decompress/huf_decompress.o
  CC      arch/x86/kernel/cpu/mtrr/legacy.o
  CC      lib/fonts/fonts.o
  CC      block/blk-merge.o
  CC      drivers/acpi/acpica/dsopcode.o
  CC      fs/proc/fd.o
  CC      arch/x86/mm/hugetlbpage.o
  CC      drivers/acpi/x86/cmos_rtc.o
  CC      io_uring/rw.o
  CC      sound/pci/hda/hda_sysfs.o
  CC      lib/argv_split.o
  CC      lib/crypto/mpi/mpih-cmp.o
  CC      sound/core/misc.o
  AS      arch/x86/kernel/head_32.o
  CC      security/selinux/ss/hashtab.o
  CC      kernel/cgroup/cgroup.o
  CC      net/netlink/af_netlink.o
  CC      arch/x86/kernel/head32.o
  CC      drivers/pci/pci.o
  CC      drivers/acpi/tables.o
  CC      lib/dim/net_dim.o
  CC      kernel/futex/waitwake.o
  CC      net/netlink/genetlink.o
  CC      kernel/time/sleep_timeout.o
  CC      mm/swap.o
  CC      arch/x86/kernel/apic/ipi.o
  AR      arch/x86/kernel/cpu/mtrr/built-in.a
  CC      kernel/module/strict_rwx.o
  CC      arch/x86/mm/dump_pagetables.o
  AR      sound/core/seq/built-in.a
  CC      arch/x86/kernel/cpu/mce/threshold.o
  CC      lib/fonts/font_8x16.o
  AR      drivers/amba/built-in.a
  CC      net/netlink/policy.o
  CC      sound/core/device.o
  AR      arch/x86/events/zhaoxin/built-in.a
  CC      block/blk-timeout.o
  CC      lib/xz/xz_dec_lzma2.o
  CC      drivers/acpi/acpica/dspkginit.o
  CC      drivers/acpi/x86/lpss.o
  CC      net/sched/sch_mq.o
  AR      kernel/rcu/built-in.a
  CC      kernel/irq/affinity.o
  CC      arch/x86/mm/highmem_32.o
  CC      sound/pci/hda/hda_controller.o
  CC      arch/x86/kernel/ebda.o
  CC      lib/crypto/mpi/mpih-div.o
  AR      arch/x86/kernel/kprobes/built-in.a
  AR      net/bpf/built-in.a
  CC      mm/truncate.o
  CC      arch/x86/events/intel/p6.o
  AR      lib/fonts/built-in.a
  CC      kernel/time/timekeeping.o
  AR      drivers/pnp/pnpacpi/built-in.a
  CC      drivers/pnp/card.o
  CC      kernel/time/ntp.o
  AR      drivers/clk/actions/built-in.a
  AR      drivers/clk/analogbits/built-in.a
  AR      sound/pci/mixart/built-in.a
  CC      lib/zstd/decompress/zstd_ddict.o
  AR      drivers/clk/bcm/built-in.a
  CC      arch/x86/events/intel/pt.o
  AR      sound/pci/nm256/built-in.a
  CC      sound/core/info.o
  AR      drivers/clk/imgtec/built-in.a
  AR      drivers/clk/imx/built-in.a
  CC      crypto/lskcipher.o
  CC      drivers/pci/pci-driver.o
  CC      arch/x86/kernel/apic/vector.o
  AR      drivers/clk/ingenic/built-in.a
  CC      drivers/dma/dw/core.o
  CC      drivers/acpi/acpica/dsutils.o
  AR      drivers/clk/mediatek/built-in.a
  CC      fs/proc/proc_tty.o
  CC      lib/crypto/mpi/mpih-mul.o
  AR      drivers/clk/microchip/built-in.a
  AR      drivers/clk/mstar/built-in.a
  CC      arch/x86/kernel/platform-quirks.o
  AR      drivers/clk/mvebu/built-in.a
  CC      kernel/module/kmod.o
  CC      block/blk-lib.o
  AR      drivers/clk/ralink/built-in.a
  CC      arch/x86/kernel/cpu/topology_common.o
  AR      kernel/sched/built-in.a
  CC      net/core/scm.o
  CC      lib/crypto/chacha.o
  CC      security/selinux/ss/symtab.o
  AR      drivers/clk/renesas/built-in.a
  CC      security/selinux/ss/sidtab.o
  AR      drivers/clk/socfpga/built-in.a
  AR      drivers/clk/sophgo/built-in.a
  AR      drivers/clk/sprd/built-in.a
  AR      drivers/clk/starfive/built-in.a
  CC      fs/sysfs/file.o
  AR      drivers/clk/sunxi-ng/built-in.a
  AR      kernel/futex/built-in.a
  AR      drivers/clk/ti/built-in.a
  CC      lib/xz/xz_dec_bcj.o
  CC      io_uring/net.o
  AR      drivers/clk/versatile/built-in.a
  AR      drivers/clk/xilinx/built-in.a
  CC      kernel/irq/matrix.o
  AR      drivers/clk/built-in.a
  CC      fs/devpts/inode.o
  CC      drivers/acpi/x86/s2idle.o
  CC      drivers/dma/dw/dw.o
  CC      kernel/time/clocksource.o
  CC      sound/core/isadma.o
  CC      drivers/pnp/driver.o
  CC      kernel/module/tree_lookup.o
  CC      lib/dim/rdma_dim.o
  CC      arch/x86/kernel/apic/init.o
  AR      arch/x86/mm/built-in.a
  CC      lib/zstd/decompress/zstd_decompress.o
  CC      drivers/acpi/osi.o
  CC      drivers/acpi/osl.o
  CC      drivers/acpi/acpica/dswexec.o
  AR      arch/x86/kernel/cpu/mce/built-in.a
  CC      drivers/pci/search.o
  CC      kernel/module/kallsyms.o
  CC      arch/x86/kernel/cpu/topology_ext.o
  CC      lib/bug.o
  CC      kernel/cgroup/rstat.o
  CC      drivers/dma/hsu/hsu.o
  AR      sound/parisc/built-in.a
  CC      net/sched/sch_frag.o
  AR      sound/pcmcia/vx/built-in.a
  CC      fs/proc/cmdline.o
  AR      sound/pcmcia/pdaudiocf/built-in.a
  AR      sound/pcmcia/built-in.a
  AR      drivers/soc/apple/built-in.a
  AR      lib/xz/built-in.a
  AR      drivers/soc/aspeed/built-in.a
  AR      sound/mips/built-in.a
  AR      drivers/soc/bcm/built-in.a
  CC      sound/pci/hda/hda_proc.o
  CC      kernel/time/jiffies.o
  AR      sound/soc/built-in.a
  AR      drivers/soc/fsl/built-in.a
  CC      arch/x86/kernel/process_32.o
  CC      drivers/acpi/utils.o
  AR      drivers/soc/fujitsu/built-in.a
  AR      lib/dim/built-in.a
  AR      drivers/soc/hisilicon/built-in.a
  AR      drivers/soc/imx/built-in.a
  CC      arch/x86/kernel/apic/hw_nmi.o
  AR      drivers/soc/ixp4xx/built-in.a
  CC      drivers/pci/rom.o
  AR      drivers/soc/loongson/built-in.a
  AR      drivers/soc/mediatek/built-in.a
  AR      drivers/soc/microchip/built-in.a
  CC      drivers/pci/setup-res.o
  CC      lib/crypto/mpi/mpi-pow.o
  AR      drivers/soc/nuvoton/built-in.a
  AR      drivers/soc/pxa/built-in.a
  CC      sound/core/vmaster.o
  AR      drivers/soc/amlogic/built-in.a
  CC      security/selinux/ss/avtab.o
  CC      block/blk-mq.o
  CC      mm/vmscan.o
  AR      drivers/soc/qcom/built-in.a
  CC      drivers/acpi/acpica/dswload.o
  AR      drivers/soc/renesas/built-in.a
  CC      drivers/pnp/resource.o
  AR      drivers/soc/rockchip/built-in.a
  CC      arch/x86/kernel/cpu/topology_amd.o
  AR      drivers/soc/sunxi/built-in.a
  CC      sound/core/ctljack.o
  CC      fs/sysfs/dir.o
  AR      drivers/soc/ti/built-in.a
  CC      arch/x86/events/intel/uncore.o
  AR      drivers/soc/versatile/built-in.a
  AR      drivers/soc/xilinx/built-in.a
  AR      fs/devpts/built-in.a
  CC      kernel/time/timer_list.o
  AR      drivers/soc/built-in.a
  CC      io_uring/poll.o
  CC      arch/x86/kernel/cpu/common.o
  CC      crypto/skcipher.o
  CC      arch/x86/kernel/cpu/rdrand.o
  CC      drivers/dma/dw/idma32.o
  CC      net/sched/sch_api.o
  CC      drivers/pci/irq.o
  AR      sound/atmel/built-in.a
  CC      net/core/gen_stats.o
  CC      sound/core/jack.o
  CC      drivers/acpi/x86/utils.o
  CC      lib/zstd/decompress/zstd_decompress_block.o
  CC      fs/proc/consoles.o
  CC      drivers/acpi/acpica/dswload2.o
  CC      arch/x86/events/intel/uncore_nhmex.o
  CC      lib/crypto/aes.o
  CC      kernel/module/procfs.o
  CC      lib/zstd/zstd_common_module.o
  CC      drivers/acpi/reboot.o
  CC      arch/x86/kernel/signal.o
  CC      drivers/dma/dw/acpi.o
  CC      io_uring/eventfd.o
  CC      mm/shrinker.o
  CC      arch/x86/events/probe.o
  CC      kernel/time/timeconv.o
  CC      net/sched/sch_blackhole.o
  AR      kernel/irq/built-in.a
  CC      block/blk-mq-tag.o
  AR      sound/pci/oxygen/built-in.a
  AR      drivers/dma/hsu/built-in.a
  CC      fs/proc/cpuinfo.o
  CC      lib/buildid.o
  CC      kernel/cgroup/namespace.o
  CC      fs/sysfs/symlink.o
  CC      arch/x86/kernel/apic/io_apic.o
  CC      net/core/gen_estimator.o
  CC      net/core/net_namespace.o
  CC      fs/sysfs/mount.o
  CC      lib/crypto/mpi/mpiutil.o
  AR      sound/pci/pcxhr/built-in.a
  CC      drivers/pnp/manager.o
  AR      sound/pci/riptide/built-in.a
  CC      drivers/acpi/nvs.o
  CC      drivers/acpi/acpica/dswscope.o
  CC      security/selinux/ss/policydb.o
  CC      fs/sysfs/group.o
  CC      kernel/time/timecounter.o
  CC      sound/hda/hda_bus_type.o
  CC      sound/hda/hdac_bus.o
  AR      drivers/dma/idxd/built-in.a
  CC      kernel/module/sysfs.o
  AR      net/netlink/built-in.a
  CC      kernel/time/alarmtimer.o
  CC      drivers/virtio/virtio.o
  AR      drivers/dma/amd/built-in.a
  CC      drivers/tty/vt/vt_ioctl.o
  CC      sound/pci/hda/hda_hwdep.o
  CC      drivers/acpi/wakeup.o
  CC      sound/core/hwdep.o
  CC      io_uring/uring_cmd.o
  CC      kernel/time/posix-timers.o
  CC      drivers/acpi/x86/blacklist.o
  CC      fs/proc/devices.o
  CC      arch/x86/kernel/cpu/match.o
  CC      arch/x86/events/utils.o
  AR      drivers/dma/dw/built-in.a
  AR      drivers/dma/mediatek/built-in.a
  CC      drivers/acpi/acpica/dswstate.o
  AR      drivers/dma/qcom/built-in.a
  AR      drivers/dma/stm32/built-in.a
  AR      drivers/dma/ti/built-in.a
  CC      lib/zstd/common/debug.o
  CC      arch/x86/events/rapl.o
  AR      drivers/dma/xilinx/built-in.a
  CC      drivers/dma/dmaengine.o
  CC      arch/x86/kernel/apic/msi.o
  CC      arch/x86/kernel/cpu/bugs.o
  CC      kernel/time/posix-cpu-timers.o
  CC      crypto/seqiv.o
  CC      block/blk-stat.o
  CC      drivers/pci/vpd.o
  CC      kernel/trace/trace_clock.o
  CC      arch/x86/events/intel/uncore_snb.o
  CC      io_uring/openclose.o
  AR      lib/crypto/mpi/built-in.a
  CC      lib/crypto/arc4.o
  CC      drivers/pnp/support.o
  CC      net/ethtool/ioctl.o
  CC      kernel/bpf/core.o
  CC      kernel/events/core.o
  AR      drivers/acpi/x86/built-in.a
  CC      kernel/fork.o
  CC      crypto/echainiv.o
  AR      fs/sysfs/built-in.a
  CC      kernel/events/ring_buffer.o
  CC      fs/netfs/buffered_read.o
  CC      io_uring/sqpoll.o
  CC      fs/ext4/balloc.o
  CC      drivers/pci/setup-bus.o
  CC      io_uring/xattr.o
  CC      drivers/acpi/acpica/evevent.o
  CC      sound/pci/hda/hda_intel.o
  CC      sound/hda/hdac_device.o
  CC      net/core/secure_seq.o
  AR      kernel/module/built-in.a
  CC      security/selinux/ss/services.o
  CC      arch/x86/kernel/cpu/aperfmperf.o
  CC      sound/core/timer.o
  CC      kernel/time/posix-clock.o
  CC      kernel/trace/ring_buffer.o
  CC      lib/crypto/gf128mul.o
  CC      kernel/cgroup/cgroup-v1.o
  CC      drivers/virtio/virtio_ring.o
  CC      fs/proc/interrupts.o
  CC      sound/core/hrtimer.o
  CC      io_uring/nop.o
  CC      drivers/virtio/virtio_anchor.o
  CC      drivers/pnp/interface.o
  CC      drivers/acpi/acpica/evgpe.o
  CC      drivers/tty/vt/vc_screen.o
  CC      lib/clz_tab.o
  CC      arch/x86/kernel/apic/probe_32.o
  CC      drivers/char/hw_random/core.o
  CC      drivers/pnp/quirks.o
  CC      security/selinux/ss/conditional.o
  CC      kernel/cgroup/freezer.o
  CC      crypto/ahash.o
  AR      sound/pci/rme9652/built-in.a
  CC      kernel/cgroup/legacy_freezer.o
  CC      net/sched/cls_api.o
  AR      sound/x86/built-in.a
  CC      fs/proc/loadavg.o
  CC      fs/proc/meminfo.o
  CC      lib/crypto/blake2s.o
  CC      arch/x86/kernel/cpu/cpuid-deps.o
  CC      drivers/pci/vc.o
  CC      drivers/pnp/system.o
  CC      arch/x86/events/intel/uncore_snbep.o
  CC      lib/zstd/common/entropy_common.o
  CC      fs/jbd2/transaction.o
  CC      drivers/acpi/sleep.o
  CC      drivers/dma/virt-dma.o
  CC      drivers/acpi/acpica/evgpeblk.o
  CC      kernel/time/itimer.o
  AR      arch/x86/kernel/apic/built-in.a
  CC      drivers/char/agp/backend.o
  CC      fs/ext4/bitmap.o
  CC      arch/x86/kernel/cpu/umwait.o
  CC      lib/zstd/common/error_private.o
  CC      fs/netfs/buffered_write.o
  CC      fs/ramfs/inode.o
  CC      lib/zstd/common/fse_decompress.o
  CC      fs/hugetlbfs/inode.o
  CC      lib/crypto/blake2s-generic.o
  CC      sound/hda/hdac_sysfs.o
  CC      drivers/char/agp/generic.o
  CC      fs/fat/cache.o
  CC      sound/hda/hdac_regmap.o
  AR      sound/pci/trident/built-in.a
  CC      drivers/acpi/acpica/evgpeinit.o
  CC      arch/x86/events/msr.o
  CC      drivers/tty/vt/selection.o
  CC      drivers/char/mem.o
  CC      fs/jbd2/commit.o
  CC      net/core/flow_dissector.o
  CC      drivers/char/hw_random/intel-rng.o
  AR      drivers/pnp/built-in.a
  CC      block/blk-mq-sysfs.o
  CC      block/blk-mq-cpumap.o
  CC      mm/shmem.o
  CC      fs/proc/stat.o
  CC      drivers/acpi/device_sysfs.o
  CC      drivers/dma/acpi-dma.o
  CC      kernel/cgroup/pids.o
  CC      net/core/sysctl_net_core.o
  CC      lib/crypto/sha1.o
  CC      sound/core/pcm.o
  CC      lib/zstd/common/zstd_common.o
  CC      io_uring/fs.o
  AR      sound/pci/hda/built-in.a
  CC      drivers/pci/mmap.o
  AR      sound/pci/ymfpci/built-in.a
  CC      crypto/shash.o
  AR      sound/pci/vx222/built-in.a
  AR      sound/pci/built-in.a
  CC      security/selinux/ss/mls.o
  AR      lib/zstd/built-in.a
  MKCAP   arch/x86/kernel/cpu/capflags.c
  CC      fs/ramfs/file-mmu.o
  CC      drivers/acpi/acpica/evgpeutil.o
  CC      net/netfilter/core.o
  CC      drivers/acpi/acpica/evglock.o
  CC      fs/ext4/block_validity.o
  CC      drivers/virtio/virtio_pci_modern_dev.o
  CC      block/blk-mq-sched.o
  CC      sound/core/pcm_native.o
  CC      io_uring/splice.o
  CC      kernel/time/clockevents.o
  CC      arch/x86/kernel/signal_32.o
  CC      sound/hda/hdac_controller.o
  CC      fs/proc/uptime.o
  CC      arch/x86/kernel/cpu/powerflags.o
  CC      lib/crypto/sha256.o
  CC      drivers/char/hw_random/amd-rng.o
  CC      fs/fat/dir.o
  CC      crypto/akcipher.o
  CC      fs/jbd2/recovery.o
  CC      fs/jbd2/checkpoint.o
  CC      net/core/dev.o
  CC      security/selinux/ss/context.o
  CC      kernel/cgroup/rdma.o
  CC      drivers/tty/vt/keyboard.o
  CC      drivers/acpi/acpica/evhandler.o
  CC      drivers/acpi/acpica/evmisc.o
  CC      security/selinux/netlabel.o
  CC      fs/netfs/direct_read.o
  CC      drivers/char/agp/isoch.o
  CC      net/sched/act_api.o
  AR      drivers/dma/built-in.a
  CC      drivers/pci/devres.o
  CC      drivers/acpi/acpica/evregion.o
  AR      fs/ramfs/built-in.a
  CC      net/ipv4/netfilter/nf_defrag_ipv4.o
  CC      sound/hda/hdac_stream.o
  AR      sound/xen/built-in.a
  CC      drivers/tty/hvc/hvc_console.o
  CC      net/ipv4/route.o
  CC      net/ethtool/common.o
  CC      sound/core/pcm_lib.o
  CC      arch/x86/events/intel/uncore_discovery.o
  CC      kernel/time/tick-common.o
  CC      fs/proc/util.o
  CC      mm/util.o
  CC      fs/ext4/dir.o
  CC      arch/x86/kernel/traps.o
  CC      drivers/char/random.o
  AR      kernel/bpf/built-in.a
  CC      drivers/virtio/virtio_pci_legacy_dev.o
  AR      lib/crypto/built-in.a
  CC      drivers/acpi/device_pm.o
  CC      lib/cmdline.o
  CC      fs/fat/fatent.o
  CC      io_uring/sync.o
  CC      drivers/char/hw_random/geode-rng.o
  AR      fs/hugetlbfs/built-in.a
  CC      kernel/time/tick-broadcast.o
  CC      drivers/acpi/acpica/evrgnini.o
  CC      lib/cpumask.o
  CC      fs/netfs/direct_write.o
  CC      kernel/cgroup/cpuset.o
  CC      block/ioctl.o
  CC      net/netfilter/nf_log.o
  CC      net/core/dev_addr_lists.o
  CC      fs/ext4/ext4_jbd2.o
  CC      crypto/sig.o
  CC      drivers/char/agp/amd64-agp.o
  CC      kernel/trace/trace.o
  AR      drivers/iommu/amd/built-in.a
  AR      drivers/iommu/intel/built-in.a
  AR      drivers/iommu/arm/arm-smmu/built-in.a
  AR      drivers/iommu/arm/arm-smmu-v3/built-in.a
  CC      drivers/char/hw_random/via-rng.o
  CC      lib/ctype.o
  AR      drivers/iommu/arm/built-in.a
  AR      drivers/iommu/iommufd/built-in.a
  CC      fs/jbd2/revoke.o
  CC      drivers/acpi/acpica/evsci.o
  CC      fs/fat/file.o
  AR      drivers/iommu/riscv/built-in.a
  CC      drivers/iommu/iommu.o
  CC      fs/proc/version.o
  CC      drivers/pci/proc.o
  CC      drivers/tty/vt/vt.o
  CC      fs/netfs/iterator.o
  AR      drivers/tty/hvc/built-in.a
  CC      arch/x86/kernel/cpu/topology.o
  CC      kernel/cgroup/misc.o
  CC      kernel/exec_domain.o
  CC      drivers/virtio/virtio_pci_modern.o
  CC      lib/dec_and_lock.o
  CC      sound/hda/array.o
  CC      kernel/panic.o
  CC      drivers/pci/pci-sysfs.o
  CC      net/ethtool/netlink.o
  CC      drivers/acpi/acpica/evxface.o
  AR      drivers/char/hw_random/built-in.a
  AR      security/selinux/built-in.a
  CC      drivers/acpi/proc.o
  AR      security/built-in.a
  CC      fs/fat/inode.o
  CC      net/ipv4/netfilter/nf_reject_ipv4.o
  CC      io_uring/msg_ring.o
  CC      lib/decompress.o
  CC      kernel/time/tick-broadcast-hrtimer.o
  CC      arch/x86/events/intel/cstate.o
  CC      fs/proc/softirqs.o
  CC      fs/proc/namespaces.o
  CC      lib/decompress_bunzip2.o
  CC      fs/proc/self.o
  CC      sound/hda/hdmi_chmap.o
  AR      drivers/gpu/host1x/built-in.a
  CC      sound/hda/trace.o
  CC      drivers/virtio/virtio_pci_common.o
  CC      crypto/kpp.o
  CC      drivers/char/agp/intel-agp.o
  AR      drivers/gpu/vga/built-in.a
  CC      block/genhd.o
  CC      drivers/virtio/virtio_pci_legacy.o
  AR      drivers/gpu/drm/tests/built-in.a
  CC      net/sched/sch_fifo.o
  AR      drivers/gpu/drm/arm/built-in.a
  AR      drivers/gpu/drm/clients/built-in.a
  CC      drivers/gpu/drm/display/drm_display_helper_mod.o
  CC      fs/jbd2/journal.o
  CC      drivers/gpu/drm/display/drm_dp_dual_mode_helper.o
  CC      drivers/gpu/drm/display/drm_dp_helper.o
  CC      drivers/acpi/acpica/evxfevnt.o
  CC      net/netfilter/nf_queue.o
  CC      drivers/gpu/drm/display/drm_dp_mst_topology.o
  CC      kernel/time/tick-oneshot.o
  CC      kernel/time/tick-sched.o
  CC      kernel/time/timer_migration.o
  CC      drivers/char/agp/intel-gtt.o
  CC      mm/mmzone.o
  CC      net/ipv4/inetpeer.o
  CC      drivers/virtio/virtio_pci_admin_legacy_io.o
  CC      fs/netfs/locking.o
  CC      drivers/iommu/iommu-traces.o
  CC      lib/decompress_inflate.o
  CC      sound/core/pcm_misc.o
  CC      kernel/trace/trace_output.o
  CC      drivers/virtio/virtio_input.o
  CC      drivers/gpu/drm/display/drm_dsc_helper.o
  CC      kernel/events/callchain.o
  CC      fs/fat/misc.o
  CC      fs/netfs/main.o
  CC      fs/ext4/extents.o
  CC      drivers/acpi/acpica/evxfgpe.o
  CC      fs/proc/thread_self.o
  CC      fs/proc/proc_sysctl.o
  CC      io_uring/advise.o
  CC      drivers/gpu/drm/display/drm_hdcp_helper.o
  AR      arch/x86/events/intel/built-in.a
  AR      arch/x86/events/built-in.a
  CC      drivers/gpu/drm/display/drm_hdmi_helper.o
  CC      drivers/tty/serial/8250/8250_core.o
  CC      io_uring/epoll.o
  ASN.1   crypto/rsapubkey.asn1.[ch]
  ASN.1   crypto/rsaprivkey.asn1.[ch]
  CC      crypto/rsa.o
  CC      crypto/rsa_helper.o
  CC      mm/vmstat.o
  CC      fs/ext4/extents_status.o
  CC      drivers/pci/slot.o
  CC      net/ethtool/bitset.o
  CC      lib/decompress_unlz4.o
  CC      sound/hda/hdac_component.o
  CC      fs/fat/nfs.o
  CC      net/ipv4/netfilter/ip_tables.o
  CC      net/ipv4/netfilter/iptable_filter.o
  CC      drivers/acpi/acpica/evxfregn.o
  CC      sound/core/pcm_memory.o
  CC      net/sched/cls_cgroup.o
  CC      kernel/cgroup/debug.o
  CC      drivers/tty/serial/serial_core.o
  CC      drivers/tty/serial/serial_base_bus.o
  CC      drivers/gpu/drm/display/drm_scdc_helper.o
  CC      net/core/dst.o
  CC      kernel/trace/trace_seq.o
  CC      drivers/virtio/virtio_dma_buf.o
  CC      block/ioprio.o
  AR      drivers/char/agp/built-in.a
  CC      mm/backing-dev.o
  AR      drivers/tty/ipwireless/built-in.a
  CC      drivers/char/misc.o
  CC      drivers/tty/tty_io.o
  CC      sound/hda/hdac_i915.o
  CC      net/ethtool/strset.o
  CC      drivers/iommu/iommu-sysfs.o
  CC      drivers/tty/serial/serial_ctrl.o
  CC      fs/isofs/namei.o
  CC      net/netfilter/nf_sockopt.o
  CC      drivers/acpi/acpica/exconcat.o
  CC      lib/decompress_unlzma.o
  CC      kernel/events/hw_breakpoint.o
  CC      sound/hda/intel-dsp-config.o
  CC      crypto/rsa-pkcs1pad.o
  CC      drivers/tty/serial/8250/8250_platform.o
  CC      io_uring/statx.o
  CC      io_uring/timeout.o
  CC      drivers/pci/pci-acpi.o
  CC      drivers/pci/iomap.o
  CC      fs/fat/namei_vfat.o
  CC      drivers/tty/serial/serial_port.o
  CC      drivers/acpi/acpica/exconfig.o
  COPY    drivers/tty/vt/defkeymap.c
  CC      drivers/tty/vt/consolemap.o
  CC      sound/core/memalloc.o
  AR      drivers/virtio/built-in.a
  CC      arch/x86/kernel/idt.o
  CC      fs/nfs/client.o
  CC      kernel/time/vsyscall.o
  CC      drivers/char/virtio_console.o
  AR      kernel/cgroup/built-in.a
  CC      drivers/acpi/bus.o
  CC      drivers/char/hpet.o
  CC      sound/hda/intel-nhlt.o
  CC      net/core/netevent.o
  CC      drivers/tty/n_tty.o
  CC      drivers/iommu/dma-iommu.o
  CC      fs/isofs/inode.o
  CC      block/badblocks.o
  CC      kernel/events/uprobes.o
  CC      drivers/iommu/iova.o
  CC      fs/netfs/misc.o
  CC      fs/proc/proc_net.o
  CC      net/sched/ematch.o
  CC      crypto/rsassa-pkcs1.o
  CC      fs/proc/kcore.o
  CC      fs/isofs/dir.o
  CC      lib/decompress_unlzo.o
  CC      drivers/acpi/acpica/exconvrt.o
  CC      drivers/gpu/drm/ttm/ttm_tt.o
  CC      kernel/time/timekeeping_debug.o
  CC      drivers/tty/serial/8250/8250_pnp.o
  CC      io_uring/fdinfo.o
  CC      mm/mm_init.o
  CC      net/netfilter/utils.o
  CC      sound/hda/intel-sdw-acpi.o
  CC      drivers/connector/cn_queue.o
  CC      fs/isofs/util.o
  CC      block/blk-rq-qos.o
  CC      net/ethtool/linkinfo.o
  AR      fs/jbd2/built-in.a
  HOSTCC  drivers/tty/vt/conmakehash
  CC      drivers/char/nvram.o
  CC      net/ipv4/netfilter/iptable_mangle.o
  CC      net/ipv4/netfilter/ipt_REJECT.o
  CC      drivers/pci/quirks.o
  CC      drivers/acpi/acpica/excreate.o
  CC      fs/proc/vmcore.o
  CC      fs/ext4/file.o
  CC      sound/core/pcm_timer.o
  CC      arch/x86/kernel/cpu/proc.o
  CC      kernel/trace/trace_stat.o
  CC      fs/exportfs/expfs.o
  CC      lib/decompress_unxz.o
  CC      drivers/tty/vt/defkeymap.o
  CC      net/xfrm/xfrm_policy.o
  CC      net/unix/af_unix.o
  CC      crypto/acompress.o
  CC      net/unix/garbage.o
  CC      sound/core/seq_device.o
  AR      sound/hda/built-in.a
  CC      fs/lockd/clntlock.o
  CC      net/core/neighbour.o
  CC      fs/fat/namei_msdos.o
  CC      kernel/time/namespace.o
  CC      drivers/acpi/glue.o
  CC      drivers/tty/serial/earlycon.o
  CONMK   drivers/tty/vt/consolemap_deftbl.c
  CC      drivers/tty/vt/consolemap_deftbl.o
  CC      lib/decompress_unzstd.o
  AR      drivers/tty/vt/built-in.a
  CC      drivers/tty/serial/8250/8250_rsa.o
  CC      drivers/tty/serial/8250/8250_port.o
  CC      fs/netfs/objects.o
  CC      drivers/acpi/acpica/exdebug.o
  CC      net/ethtool/linkmodes.o
  CC      net/unix/sysctl_net_unix.o
  CC      kernel/cpu.o
  CC      drivers/gpu/drm/ttm/ttm_bo.o
  AR      drivers/gpu/drm/display/built-in.a
  CC      io_uring/cancel.o
  CC      drivers/tty/serial/8250/8250_dma.o
  CC      block/disk-events.o
  CC      drivers/base/power/sysfs.o
  CC      fs/isofs/rock.o
  AR      net/sched/built-in.a
  CC      block/blk-ia-ranges.o
  CC      net/netfilter/nfnetlink.o
  CC      net/ethtool/rss.o
  CC      drivers/tty/tty_ioctl.o
  AR      drivers/char/built-in.a
  CC      drivers/connector/connector.o
  CC      drivers/pci/pci-label.o
  AR      drivers/iommu/built-in.a
  CC      arch/x86/kernel/cpu/feat_ctl.o
  CC      arch/x86/kernel/irq.o
  AR      sound/virtio/built-in.a
  CC      net/xfrm/xfrm_state.o
  CC      fs/nfs/dir.o
  AR      fs/exportfs/built-in.a
  CC [M]  net/ipv4/netfilter/iptable_nat.o
  CC      net/ipv6/netfilter/ip6_tables.o
  CC      drivers/acpi/acpica/exdump.o
  AR      sound/core/built-in.a
  CC      sound/sound_core.o
  CC      lib/dump_stack.o
  CC      net/ipv6/af_inet6.o
  CC      kernel/trace/trace_printk.o
  CC      fs/netfs/read_collect.o
  CC      mm/percpu.o
  CC      fs/proc/kmsg.o
  CC      crypto/scompress.o
  AR      kernel/time/built-in.a
  CC      net/ipv6/anycast.o
  CC      arch/x86/kernel/irq_32.o
  CC      net/ipv6/ip6_output.o
  CC      drivers/block/loop.o
  CC      crypto/algboss.o
  CC      drivers/connector/cn_proc.o
  AR      kernel/events/built-in.a
  CC      drivers/base/power/generic_ops.o
  CC      arch/x86/kernel/cpu/intel.o
  CC      drivers/base/power/common.o
  CC      drivers/acpi/acpica/exfield.o
  AR      fs/fat/built-in.a
  CC      net/netfilter/nfnetlink_log.o
  CC      sound/last.o
  CC      drivers/pci/vgaarb.o
  CC      net/ipv4/protocol.o
  CC      block/early-lookup.o
  CC      kernel/trace/pid_list.o
  CC      crypto/testmgr.o
  CC      mm/slab_common.o
  CC      io_uring/waitid.o
  CC      fs/lockd/clntproc.o
  CC      fs/lockd/clntxdr.o
  CC      drivers/gpu/drm/ttm/ttm_bo_util.o
  CC      block/bounce.o
  CC      fs/proc/page.o
  AR      net/ipv4/netfilter/built-in.a
  CC      fs/isofs/export.o
  CC      fs/nfs/file.o
  CC      lib/earlycpio.o
  CC      drivers/acpi/acpica/exfldio.o
  CC      fs/ext4/fsmap.o
  CC      lib/extable.o
  AR      sound/built-in.a
  CC      net/packet/af_packet.o
  CC      kernel/exit.o
  CC      drivers/base/power/qos.o
  CC      drivers/base/power/runtime.o
  CC      net/ethtool/linkstate.o
  CC      net/ethtool/debug.o
  CC      fs/nfs/getroot.o
  CC      arch/x86/kernel/cpu/tsx.o
  CC      mm/compaction.o
  CC      block/bsg.o
  CC      drivers/gpu/drm/i915/i915_config.o
  CC      kernel/trace/trace_sched_switch.o
  CC      crypto/cmac.o
  CC      fs/lockd/host.o
  CC      drivers/acpi/acpica/exmisc.o
  CC      lib/flex_proportions.o
  CC      fs/isofs/joliet.o
  AR      drivers/connector/built-in.a
  CC      net/ipv6/netfilter/ip6table_filter.o
  CC      net/xfrm/xfrm_hash.o
  CC      drivers/gpu/drm/i915/i915_driver.o
  CC      drivers/tty/tty_ldisc.o
  CC      fs/netfs/read_pgpriv2.o
  AR      fs/proc/built-in.a
  CC      io_uring/register.o
  CC      arch/x86/kernel/cpu/intel_epb.o
  CC      drivers/base/firmware_loader/builtin/main.o
  CC      drivers/tty/serial/8250/8250_dwlib.o
  CC      net/ipv4/ip_input.o
  CC      drivers/base/firmware_loader/main.o
  AR      drivers/pci/built-in.a
  CC      drivers/gpu/drm/ttm/ttm_bo_vm.o
  CC      mm/show_mem.o
  CC      fs/ext4/fsync.o
  CC      crypto/hmac.o
  CC      lib/idr.o
  CC      drivers/acpi/acpica/exmutex.o
  CC      block/blk-cgroup.o
  CC      net/ipv6/netfilter/ip6table_mangle.o
  CC      drivers/block/virtio_blk.o
  CC      arch/x86/kernel/dumpstack_32.o
  AR      net/unix/built-in.a
  CC      io_uring/truncate.o
  CC      fs/nfs/inode.o
  CC      fs/lockd/svc.o
  CC      lib/iomem_copy.o
  AR      drivers/base/firmware_loader/builtin/built-in.a
  CC      fs/ext4/hash.o
  CC      net/ipv6/netfilter/nf_defrag_ipv6_hooks.o
  CC      arch/x86/kernel/cpu/amd.o
  CC      kernel/trace/trace_nop.o
  CC      net/ethtool/wol.o
  CC      fs/isofs/compress.o
  CC      net/ipv4/ip_fragment.o
  CC      net/netfilter/nf_conntrack_core.o
  CC      drivers/tty/serial/8250/8250_pcilib.o
  CC      drivers/gpu/drm/i915/i915_drm_client.o
  CC      drivers/base/power/wakeirq.o
  CC      fs/netfs/read_retry.o
  CC      drivers/acpi/acpica/exnames.o
  AR      net/dsa/built-in.a
  CC      net/ipv6/ip6_input.o
  AR      drivers/gpu/drm/renesas/rcar-du/built-in.a
  CC      lib/irq_regs.o
  AR      drivers/gpu/drm/renesas/rz-du/built-in.a
  CC      lib/is_single_threaded.o
  AR      drivers/gpu/drm/renesas/built-in.a
  CC      net/core/rtnetlink.o
  CC      lib/klist.o
  CC      arch/x86/kernel/time.o
  CC      crypto/crypto_null.o
  CC      drivers/gpu/drm/ttm/ttm_module.o
  CC      net/xfrm/xfrm_input.o
  CC      net/netfilter/nf_conntrack_standalone.o
  CC      fs/nls/nls_base.o
  CC      fs/nls/nls_cp437.o
  CC      drivers/gpu/drm/i915/i915_getparam.o
  CC      arch/x86/kernel/cpu/hygon.o
  CC      drivers/acpi/acpica/exoparg1.o
  CC      crypto/md5.o
  CC      fs/ext4/ialloc.o
  CC      drivers/base/power/main.o
  AR      drivers/base/firmware_loader/built-in.a
  CC      kernel/trace/blktrace.o
  CC      fs/netfs/read_single.o
  CC      mm/interval_tree.o
  CC      arch/x86/kernel/ioport.o
  CC      fs/lockd/svclock.o
  CC      fs/nfs/super.o
  CC      net/ipv6/addrconf.o
  CC      lib/kobject.o
  CC      drivers/tty/tty_buffer.o
  CC      drivers/tty/serial/8250/8250_early.o
  CC      drivers/acpi/acpica/exoparg2.o
  AR      drivers/gpu/drm/omapdrm/built-in.a
  CC      fs/netfs/rolling_buffer.o
  CC      block/blk-ioprio.o
  AR      fs/isofs/built-in.a
  CC      drivers/base/power/wakeup.o
  CC      drivers/base/regmap/regmap.o
  CC      arch/x86/kernel/cpu/centaur.o
  CC      drivers/gpu/drm/ttm/ttm_execbuf_util.o
  CC      drivers/tty/serial/8250/8250_exar.o
  CC      fs/lockd/svcshare.o
  CC      fs/nls/nls_ascii.o
  CC      drivers/acpi/scan.o
  AR      drivers/block/built-in.a
  CC      net/netfilter/nf_conntrack_expect.o
  CC      drivers/tty/tty_port.o
  CC      fs/nfs/io.o
  CC      fs/netfs/write_collect.o
  CC      net/ethtool/features.o
  CC      net/netfilter/nf_conntrack_helper.o
  AR      drivers/gpu/drm/tilcdc/built-in.a
  CC      kernel/trace/trace_events.o
  CC      net/ipv6/netfilter/nf_conntrack_reasm.o
  CC      drivers/tty/tty_mutex.o
  CC      crypto/sha256_generic.o
  CC      io_uring/memmap.o
  CC      block/blk-iolatency.o
  CC      net/ipv4/ip_forward.o
  CC      drivers/gpu/drm/virtio/virtgpu_drv.o
  CC      drivers/acpi/acpica/exoparg3.o
  AR      drivers/gpu/drm/imx/built-in.a
  CC      drivers/gpu/drm/virtio/virtgpu_kms.o
  CC      fs/nls/nls_iso8859-1.o
  CC      lib/kobject_uevent.o
  CC      drivers/gpu/drm/virtio/virtgpu_gem.o
  CC      arch/x86/kernel/cpu/transmeta.o
  CC      drivers/gpu/drm/virtio/virtgpu_vram.o
  CC      drivers/tty/tty_ldsem.o
  CC      drivers/gpu/drm/i915/i915_ioctl.o
  CC      fs/lockd/svcproc.o
  CC      mm/list_lru.o
  CC      drivers/gpu/drm/ttm/ttm_range_manager.o
  CC      drivers/gpu/drm/virtio/virtgpu_display.o
  CC      drivers/misc/eeprom/eeprom_93cx6.o
  AR      drivers/misc/cb710/built-in.a
  CC      net/core/utils.o
  AR      drivers/mfd/built-in.a
  AR      drivers/misc/lis3lv02d/built-in.a
  CC      block/blk-iocost.o
  CC      drivers/acpi/acpica/exoparg6.o
  AR      drivers/gpu/drm/panel/built-in.a
  CC      fs/nls/nls_utf8.o
  CC      drivers/acpi/acpica/exprep.o
  CC      crypto/sha512_generic.o
  CC      net/netfilter/nf_conntrack_proto.o
  CC      mm/workingset.o
  CC      mm/debug.o
  CC      io_uring/alloc_cache.o
  CC      arch/x86/kernel/dumpstack.o
  CC      drivers/tty/serial/8250/8250_lpss.o
  CC      net/xfrm/xfrm_output.o
  CC      net/ipv6/netfilter/nf_reject_ipv6.o
  AR      drivers/misc/eeprom/built-in.a
  CC      arch/x86/kernel/cpu/zhaoxin.o
  AR      drivers/misc/cardreader/built-in.a
  CC      drivers/acpi/mipi-disco-img.o
  CC      net/ethtool/privflags.o
  AR      drivers/misc/keba/built-in.a
  AR      drivers/misc/built-in.a
  CC      net/netfilter/nf_conntrack_proto_generic.o
  CC      net/netfilter/nf_conntrack_proto_tcp.o
  AR      fs/nls/built-in.a
  CC      crypto/sha3_generic.o
  CC      drivers/base/regmap/regcache.o
  AR      drivers/gpu/drm/bridge/analogix/built-in.a
  AR      net/packet/built-in.a
  CC      net/xfrm/xfrm_sysctl.o
  AR      drivers/gpu/drm/bridge/cadence/built-in.a
  CC      fs/netfs/write_issue.o
  CC      arch/x86/kernel/nmi.o
  AR      drivers/gpu/drm/bridge/imx/built-in.a
  CC      drivers/gpu/drm/i915/i915_irq.o
  CC      drivers/acpi/acpica/exregion.o
  AR      drivers/gpu/drm/bridge/synopsys/built-in.a
  AR      drivers/gpu/drm/bridge/built-in.a
  CC      arch/x86/kernel/ldt.o
  CC      net/core/link_watch.o
  CC      drivers/gpu/drm/ttm/ttm_resource.o
  AR      drivers/base/test/built-in.a
  CC      mm/gup.o
  CC      drivers/base/power/wakeup_stats.o
  CC      mm/mmap_lock.o
  CC      drivers/gpu/drm/virtio/virtgpu_vq.o
  CC      drivers/gpu/drm/i915/i915_mitigations.o
  CC      crypto/ecb.o
  CC      kernel/softirq.o
  AR      drivers/nfc/built-in.a
  AR      fs/unicode/built-in.a
  CC      drivers/acpi/resource.o
  CC      net/ipv4/ip_options.o
  CC      fs/nfs/direct.o
  CC      net/sunrpc/auth_gss/auth_gss.o
  CC      arch/x86/kernel/cpu/vortex.o
  CC      fs/lockd/svcsubs.o
  CC      drivers/acpi/acpica/exresnte.o
  CC      fs/netfs/write_retry.o
  CC      lib/logic_pio.o
  CC      net/xfrm/xfrm_replay.o
  CC      io_uring/io-wq.o
  CC      drivers/tty/tty_baudrate.o
  AR      drivers/gpu/drm/hisilicon/built-in.a
  CC      crypto/cbc.o
  CC      net/sunrpc/clnt.o
  CC      net/ipv4/ip_output.o
  CC      net/ipv6/addrlabel.o
  CC      drivers/acpi/acpi_processor.o
  CC      drivers/base/power/trace.o
  CC      fs/ext4/indirect.o
  CC      drivers/acpi/processor_core.o
  CC      drivers/tty/serial/8250/8250_mid.o
  CC      drivers/base/regmap/regcache-rbtree.o
  AR      net/wireless/tests/built-in.a
  CC      arch/x86/kernel/cpu/perfctr-watchdog.o
  CC      net/wireless/core.o
  CC      kernel/resource.o
  CC      drivers/acpi/acpica/exresolv.o
  CC      net/wireless/sysfs.o
  CC      crypto/ctr.o
  CC      net/ethtool/rings.o
  CC      arch/x86/kernel/setup.o
  CC      fs/autofs/init.o
  CC      fs/ext4/inline.o
  CC      drivers/gpu/drm/ttm/ttm_pool.o
  CC      lib/maple_tree.o
  CC      arch/x86/kernel/x86_init.o
  CC      fs/9p/vfs_super.o
  AR      drivers/gpu/drm/mxsfb/built-in.a
  CC      net/wireless/radiotap.o
  CC      fs/nfs/pagelist.o
  CC      drivers/acpi/acpica/exresop.o
  CC      block/mq-deadline.o
  CC      fs/lockd/mon.o
  CC      fs/nfs/read.o
  CC      drivers/tty/tty_jobctrl.o
  CC      net/ipv6/netfilter/ip6t_ipv6header.o
  CC      kernel/trace/trace_export.o
  CC      kernel/trace/trace_event_perf.o
  AR      fs/netfs/built-in.a
  CC      lib/memcat_p.o
  AR      drivers/base/power/built-in.a
  CC      drivers/gpu/drm/i915/i915_module.o
  CC      drivers/acpi/acpica/exserial.o
  CC      arch/x86/kernel/cpu/vmware.o
  CC      drivers/gpu/drm/virtio/virtgpu_fence.o
  CC      net/ipv4/ip_sockglue.o
  CC      crypto/gcm.o
  CC      mm/highmem.o
  CC      drivers/tty/serial/8250/8250_pci.o
  CC      drivers/base/regmap/regcache-flat.o
  CC      net/ipv6/route.o
  CC      fs/ext4/inode.o
  CC      arch/x86/kernel/i8259.o
  CC      arch/x86/kernel/irqinit.o
  CC      net/xfrm/xfrm_device.o
  CC      net/netfilter/nf_conntrack_proto_udp.o
  CC      drivers/base/component.o
  CC      fs/9p/vfs_inode.o
  CC      fs/autofs/inode.o
  CC      drivers/acpi/acpica/exstore.o
  CC      arch/x86/kernel/cpu/hypervisor.o
  CC      net/sunrpc/xprt.o
  CC      io_uring/futex.o
  CC      fs/nfs/symlink.o
  CC      net/wireless/util.o
  AR      drivers/gpu/drm/tiny/built-in.a
  CC      net/ipv6/netfilter/ip6t_REJECT.o
  CC      net/ethtool/channels.o
  CC      drivers/gpu/drm/ttm/ttm_device.o
  CC      drivers/base/core.o
  CC      drivers/base/regmap/regcache-maple.o
  CC      arch/x86/kernel/cpu/mshyperv.o
  CC      block/kyber-iosched.o
  CC      crypto/ccm.o
  CC      net/netfilter/nf_conntrack_proto_icmp.o
  CC      net/core/filter.o
  CC      net/sunrpc/auth_gss/gss_mech_switch.o
  CC      drivers/tty/serial/8250/8250_pericom.o
  CC      drivers/acpi/processor_pdc.o
  CC      drivers/acpi/acpica/exstoren.o
  CC      drivers/gpu/drm/virtio/virtgpu_object.o
  CC      kernel/trace/trace_events_filter.o
  CC      fs/lockd/trace.o
  CC      net/xfrm/xfrm_nat_keepalive.o
  CC      lib/nmi_backtrace.o
  CC      arch/x86/kernel/cpu/debugfs.o
  CC      drivers/gpu/drm/i915/i915_params.o
  CC      mm/memory.o
  CC      net/wireless/reg.o
  CC      io_uring/napi.o
  CC      net/ipv4/inet_hashtables.o
  CC      net/ethtool/coalesce.o
  AR      fs/hostfs/built-in.a
  CC      arch/x86/kernel/jump_label.o
  CC      fs/autofs/root.o
  CC      drivers/acpi/acpica/exstorob.o
  CC      drivers/base/bus.o
  CC      drivers/base/dd.o
  CC      drivers/gpu/drm/ttm/ttm_sys_manager.o
  CC      net/ipv4/inet_timewait_sock.o
  CC      fs/lockd/xdr.o
  CC      drivers/gpu/drm/virtio/virtgpu_debugfs.o
  CC      drivers/acpi/acpica/exsystem.o
  CC      drivers/base/regmap/regmap-debugfs.o
  CC      fs/9p/vfs_inode_dotl.o
  CC      block/blk-mq-debugfs.o
  CC      net/xfrm/xfrm_algo.o
  CC      drivers/gpu/drm/i915/i915_pci.o
  CC      net/core/sock_diag.o
  CC      fs/ext4/ioctl.o
  AR      drivers/tty/serial/8250/built-in.a
  CC      net/wireless/scan.o
  AR      drivers/tty/serial/built-in.a
  CC      arch/x86/kernel/cpu/bus_lock.o
  AR      drivers/dax/hmem/built-in.a
  CC      drivers/tty/n_null.o
  AR      drivers/dax/built-in.a
  CC      crypto/aes_generic.o
  CC      fs/nfs/unlink.o
  CC      fs/9p/vfs_addr.o
  CC      net/netlabel/netlabel_user.o
  AR      net/mac80211/tests/built-in.a
  CC      net/mac80211/main.o
  CC      kernel/trace/trace_events_trigger.o
  CC      net/core/dev_ioctl.o
  CC      drivers/acpi/acpica/extrace.o
  AR      net/ipv6/netfilter/built-in.a
  CC      drivers/gpu/drm/virtio/virtgpu_plane.o
  CC      drivers/gpu/drm/ttm/ttm_agp_backend.o
  CC      net/netfilter/nf_conntrack_extend.o
  CC      fs/autofs/symlink.o
  CC      net/netfilter/nf_conntrack_acct.o
  CC      net/sunrpc/auth_gss/svcauth_gss.o
  CC      block/blk-pm.o
  CC      net/xfrm/xfrm_user.o
  CC      mm/mincore.o
  CC      fs/lockd/clnt4xdr.o
  CC      drivers/dma-buf/dma-buf.o
  CC      drivers/acpi/acpica/exutils.o
  AR      drivers/base/regmap/built-in.a
  CC      fs/autofs/waitq.o
  AR      drivers/gpu/drm/xlnx/built-in.a
  CC      block/holder.o
  CC      drivers/tty/pty.o
  CC      mm/mlock.o
  CC      net/ipv4/inet_connection_sock.o
  CC      fs/ext4/mballoc.o
  CC      net/ethtool/pause.o
  CC      net/core/tso.o
  AR      drivers/cxl/core/built-in.a
  AR      drivers/cxl/built-in.a
  CC      drivers/acpi/acpica/hwacpi.o
  CC      fs/lockd/xdr4.o
  AR      io_uring/built-in.a
  AR      drivers/gpu/drm/ttm/built-in.a
  CC      crypto/authenc.o
  CC      fs/9p/vfs_file.o
  CC      net/sunrpc/auth_gss/gss_rpc_upcall.o
  CC      net/rfkill/core.o
  CC      net/mac80211/status.o
  CC      net/ipv6/ip6_fib.o
  AR      drivers/gpu/drm/gud/built-in.a
  CC      arch/x86/kernel/irq_work.o
  CC      arch/x86/kernel/cpu/capflags.o
  AR      arch/x86/kernel/cpu/built-in.a
  CC      fs/9p/vfs_dir.o
  CC      drivers/gpu/drm/i915/i915_scatterlist.o
  CC      drivers/gpu/drm/virtio/virtgpu_ioctl.o
  CC      net/netlabel/netlabel_kapi.o
  CC      net/sunrpc/auth_gss/gss_rpc_xdr.o
  CC      net/9p/mod.o
  CC      mm/mmap.o
  CC      net/rfkill/input.o
  CC      drivers/acpi/acpica/hwesleep.o
  AR      block/built-in.a
  CC      net/ipv6/ipv6_sockglue.o
  CC      lib/objpool.o
  CC      kernel/trace/trace_eprobe.o
  CC      drivers/tty/tty_audit.o
  CC      drivers/gpu/drm/i915/i915_switcheroo.o
  CC      net/mac80211/driver-ops.o
  CC      fs/autofs/expire.o
  CC      crypto/authencesn.o
  CC      net/netfilter/nf_conntrack_seqadj.o
  CC      net/9p/client.o
  CC      drivers/base/syscore.o
  CC      net/ethtool/eee.o
  CC      drivers/acpi/acpica/hwgpe.o
  CC      net/wireless/nl80211.o
  CC      drivers/dma-buf/dma-fence.o
  CC      drivers/acpi/ec.o
  CC      fs/9p/vfs_dentry.o
  CC      net/netlabel/netlabel_domainhash.o
  CC      fs/nfs/write.o
  CC      net/dns_resolver/dns_key.o
  CC      net/netlabel/netlabel_addrlist.o
  CC      drivers/base/driver.o
  AR      net/rfkill/built-in.a
  CC      net/dns_resolver/dns_query.o
  CC      drivers/acpi/acpica/hwregs.o
  CC      arch/x86/kernel/probe_roms.o
  CC      drivers/gpu/drm/virtio/virtgpu_prime.o
  CC      net/ethtool/tsinfo.o
  CC      drivers/acpi/dock.o
  CC      net/ipv6/ndisc.o
  CC      net/ipv4/tcp.o
  CC      kernel/trace/trace_kprobe.o
  CC      drivers/tty/sysrq.o
  CC      fs/lockd/svc4proc.o
  CC      fs/autofs/dev-ioctl.o
  CC      net/netlabel/netlabel_mgmt.o
  CC      net/sunrpc/auth_gss/trace.o
  CC      kernel/trace/error_report-traces.o
  CC      drivers/acpi/acpica/hwsleep.o
  CC      drivers/gpu/drm/i915/i915_sysfs.o
  CC      fs/9p/v9fs.o
  CC      mm/mmu_gather.o
  CC      mm/mprotect.o
  CC      drivers/base/class.o
  CC      crypto/lzo.o
  CC      drivers/acpi/pci_root.o
  CC      net/sunrpc/socklib.o
  CC      fs/nfs/namespace.o
  AR      net/dns_resolver/built-in.a
  AR      drivers/gpu/drm/solomon/built-in.a
  CC      arch/x86/kernel/sys_ia32.o
  CC      net/core/sock_reuseport.o
  CC      drivers/gpu/drm/virtio/virtgpu_trace_points.o
  CC      mm/mremap.o
  CC      net/wireless/mlme.o
  CC      drivers/acpi/acpica/hwvalid.o
  CC      net/sunrpc/xprtsock.o
  CC      net/netfilter/nf_conntrack_proto_icmpv6.o
  CC      net/ipv4/tcp_input.o
  CC      net/netfilter/nf_conntrack_netlink.o
  CC      fs/9p/fid.o
  CC      drivers/dma-buf/dma-fence-array.o
  CC      arch/x86/kernel/ksysfs.o
  CC      drivers/gpu/drm/i915/i915_utils.o
  CC      drivers/acpi/pci_link.o
  CC      drivers/base/platform.o
  AR      net/xfrm/built-in.a
  CC      drivers/base/cpu.o
  CC      net/ipv4/tcp_output.o
  CC      drivers/acpi/pci_irq.o
  CC      net/ethtool/cabletest.o
  AR      drivers/tty/built-in.a
  CC      crypto/lzo-rle.o
  CC      drivers/acpi/acpica/hwxface.o
  CC      crypto/rng.o
  CC      arch/x86/kernel/bootflag.o
  AR      fs/autofs/built-in.a
  CC      fs/lockd/procfs.o
  CC      fs/ext4/migrate.o
  CC      net/ethtool/tunnels.o
  CC      net/9p/error.o
  CC      net/netlabel/netlabel_unlabeled.o
  CC      net/netlabel/netlabel_cipso_v4.o
  CC      crypto/drbg.o
  CC      drivers/acpi/acpica/hwxfsleep.o
  CC      net/sunrpc/auth_gss/gss_krb5_mech.o
  CC      drivers/gpu/drm/virtio/virtgpu_submit.o
  CC      drivers/dma-buf/dma-fence-chain.o
  CC      net/wireless/ibss.o
  CC [M]  drivers/gpu/drm/scheduler/sched_main.o
  CC      net/netfilter/nf_conntrack_ftp.o
  CC      net/9p/protocol.o
  CC      drivers/acpi/acpi_apd.o
  CC      fs/9p/xattr.o
  CC      lib/plist.o
  HOSTCC  drivers/gpu/drm/xe/xe_gen_wa_oob
  CC      drivers/acpi/acpi_platform.o
  CC      lib/radix-tree.o
  CC      fs/debugfs/inode.o
  CC      drivers/acpi/acpica/hwpci.o
  CC      arch/x86/kernel/e820.o
  GEN     xe_wa_oob.c xe_wa_oob.h
  CC [M]  drivers/gpu/drm/xe/xe_bb.o
  CC      arch/x86/kernel/pci-dma.o
  CC      net/mac80211/sta_info.o
  CC      mm/msync.o
  CC      drivers/dma-buf/dma-fence-unwrap.o
  CC      drivers/gpu/drm/i915/intel_clock_gating.o
  CC [M]  drivers/gpu/drm/scheduler/sched_fence.o
  CC      net/netlabel/netlabel_calipso.o
  CC      drivers/macintosh/mac_hid.o
  AR      fs/lockd/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_bo.o
  CC      drivers/acpi/acpica/nsaccess.o
  CC [M]  drivers/gpu/drm/scheduler/sched_entity.o
  CC      net/sunrpc/auth_gss/gss_krb5_seal.o
  CC      kernel/trace/power-traces.o
  CC      net/ipv4/tcp_timer.o
  CC      net/ethtool/fec.o
  CC      arch/x86/kernel/quirks.o
  CC      drivers/gpu/drm/drm_atomic.o
  CC      drivers/base/firmware.o
  CC      kernel/trace/rpm-traces.o
  CC      crypto/jitterentropy.o
  CC      net/handshake/alert.o
  CC      crypto/jitterentropy-kcapi.o
  CC      fs/nfs/mount_clnt.o
  AR      drivers/gpu/drm/virtio/built-in.a
  AR      fs/9p/built-in.a
  CC      lib/ratelimit.o
  CC      kernel/sysctl.o
  CC      net/ipv6/udp.o
  CC      net/handshake/genl.o
  CC      mm/page_vma_mapped.o
  CC      drivers/acpi/acpica/nsalloc.o
  CC      net/9p/trans_common.o
  CC      drivers/dma-buf/dma-resv.o
  AR      drivers/macintosh/built-in.a
  CC      fs/nfs/nfstrace.o
  AR      drivers/scsi/pcmcia/built-in.a
  CC      drivers/scsi/scsi.o
  CC      net/sunrpc/sched.o
  AR      drivers/nvme/common/built-in.a
  CC      drivers/gpu/drm/i915/intel_cpu_info.o
  AR      drivers/nvme/host/built-in.a
  CC      drivers/ata/libata-core.o
  AR      drivers/nvme/target/built-in.a
  AR      drivers/nvme/built-in.a
  CC      drivers/base/init.o
  CC      arch/x86/kernel/kdebugfs.o
  CC      drivers/acpi/acpi_pnp.o
  CC      crypto/ghash-generic.o
  CC      drivers/scsi/hosts.o
  CC      fs/nfs/export.o
  CC      lib/rbtree.o
  CC      net/handshake/netlink.o
  CC      fs/debugfs/file.o
  CC      net/ipv4/tcp_ipv4.o
  CC      net/devres.o
  CC      drivers/acpi/acpica/nsarguments.o
  CC      drivers/dma-buf/sync_file.o
  CC      fs/ext4/mmp.o
  CC      fs/ext4/move_extent.o
  AR      net/netlabel/built-in.a
  CC      net/netfilter/nf_conntrack_irc.o
  LD [M]  drivers/gpu/drm/scheduler/gpu-sched.o
  CC      net/sunrpc/auth_gss/gss_krb5_unseal.o
  CC      net/9p/trans_fd.o
  CC      net/netfilter/nf_conntrack_sip.o
  CC      net/netfilter/nf_nat_core.o
  CC      crypto/hash_info.o
  CC      drivers/base/map.o
  CC      lib/seq_buf.o
  CC      crypto/rsapubkey.asn1.o
  CC      net/netfilter/nf_nat_proto.o
  CC      crypto/rsaprivkey.asn1.o
  CC      drivers/gpu/drm/i915/intel_device_info.o
  AR      crypto/built-in.a
  CC      fs/nfs/sysfs.o
  CC      lib/siphash.o
  CC      net/ethtool/eeprom.o
  CC      drivers/base/devres.o
  CC      mm/pagewalk.o
  CC      drivers/acpi/power.o
  CC      arch/x86/kernel/alternative.o
  CC      drivers/acpi/acpica/nsconvert.o
  CC      net/sunrpc/auth.o
  AR      drivers/net/phy/mediatek/built-in.a
  AR      drivers/net/phy/qcom/built-in.a
  CC      drivers/net/phy/realtek/realtek_main.o
  AR      drivers/net/pse-pd/built-in.a
  CC      net/socket.o
  CC [M]  drivers/gpu/drm/xe/xe_bo_evict.o
  CC      net/handshake/request.o
  CC      arch/x86/kernel/i8253.o
  AR      drivers/dma-buf/built-in.a
  CC      net/sunrpc/auth_null.o
  CC      net/ipv6/udplite.o
  CC      net/ipv4/tcp_minisocks.o
  CC      drivers/base/attribute_container.o
  CC      drivers/net/mdio/acpi_mdio.o
  CC      drivers/acpi/acpica/nsdump.o
  CC      lib/string.o
  CC      drivers/net/mdio/fwnode_mdio.o
  CC      kernel/trace/trace_dynevent.o
  CC      net/9p/trans_virtio.o
  CC      drivers/scsi/scsi_ioctl.o
  CC      fs/ext4/namei.o
  CC      drivers/gpu/drm/i915/intel_memory_region.o
  CC      lib/timerqueue.o
  AR      fs/debugfs/built-in.a
  CC      arch/x86/kernel/hw_breakpoint.o
  CC      drivers/acpi/event.o
  CC      fs/nfs/fs_context.o
  CC      drivers/acpi/acpica/nseval.o
  CC      net/sunrpc/auth_gss/gss_krb5_wrap.o
  CC      drivers/scsi/scsicam.o
  CC      net/handshake/tlshd.o
  CC      lib/union_find.o
  CC      fs/nfs/nfsroot.o
  CC      drivers/firewire/init_ohci1394_dma.o
  CC      net/ethtool/stats.o
  CC      lib/vsprintf.o
  CC      mm/pgtable-generic.o
  CC      drivers/base/transport_class.o
  CC      net/core/fib_notifier.o
  CC      drivers/acpi/evged.o
  CC [M]  drivers/gpu/drm/xe/xe_devcoredump.o
  CC      net/handshake/trace.o
  CC      drivers/gpu/drm/drm_atomic_uapi.o
  CC      net/mac80211/wep.o
  CC      drivers/net/phy/realtek/realtek_hwmon.o
  CC      drivers/acpi/acpica/nsinit.o
  CC      net/wireless/sme.o
  CC      net/core/xdp.o
  CC      drivers/base/topology.o
  CC      fs/tracefs/inode.o
  CC      drivers/scsi/scsi_error.o
  CC      kernel/trace/trace_probe.o
  CC      net/ethtool/phc_vclocks.o
  AR      drivers/net/mdio/built-in.a
  CC      lib/win_minmax.o
  CC      net/netfilter/nf_nat_helper.o
  CC      kernel/trace/trace_uprobe.o
  CC      mm/rmap.o
  CC      kernel/trace/rethook.o
  CC      drivers/net/phy/mdio-boardinfo.o
  CC      net/mac80211/aead_api.o
  CC [M]  drivers/gpu/drm/xe/xe_device.o
  CC      net/ipv6/raw.o
  AR      drivers/firewire/built-in.a
  CC      drivers/gpu/drm/i915/intel_pcode.o
  CC      drivers/acpi/acpica/nsload.o
  CC      arch/x86/kernel/tsc.o
  CC      fs/tracefs/event_inode.o
  CC      net/ipv4/tcp_cong.o
  CC      drivers/base/container.o
  CC      net/ethtool/mm.o
  CC      net/netfilter/nf_nat_masquerade.o
  CC      drivers/acpi/sysfs.o
  AR      net/9p/built-in.a
  CC      fs/nfs/sysctl.o
  CC      drivers/scsi/scsi_lib.o
  CC      net/sunrpc/auth_gss/gss_krb5_crypto.o
  CC      drivers/acpi/acpica/nsnames.o
  CC      net/sunrpc/auth_tls.o
  CC      net/netfilter/nf_nat_ftp.o
  CC      net/ipv4/tcp_metrics.o
  AR      drivers/net/phy/realtek/built-in.a
  CC      drivers/cdrom/cdrom.o
  CC      net/ethtool/module.o
  CC      drivers/acpi/acpica/nsobject.o
  CC      drivers/base/property.o
  CC      drivers/acpi/acpica/nsparse.o
  AR      drivers/auxdisplay/built-in.a
  CC      net/wireless/chan.o
  CC      fs/ext4/page-io.o
  CC      drivers/scsi/constants.o
  CC      net/netfilter/nf_nat_irc.o
  CC      fs/nfs/nfs3super.o
  CC      net/sunrpc/auth_unix.o
  AR      drivers/net/pcs/built-in.a
  CC      drivers/acpi/acpica/nspredef.o
  CC      net/sysctl_net.o
  CC      drivers/gpu/drm/i915/intel_region_ttm.o
  CC      drivers/net/phy/stubs.o
  CC      kernel/capability.o
  CC      net/mac80211/wpa.o
  CC      drivers/pcmcia/cs.o
  AR      net/handshake/built-in.a
  CC      net/sunrpc/auth_gss/gss_krb5_keys.o
  CC [M]  fs/efivarfs/inode.o
  CC      net/core/flow_offload.o
  CC      drivers/scsi/scsi_lib_dma.o
  AR      fs/tracefs/built-in.a
  CC      drivers/usb/common/common.o
  CC      drivers/gpu/drm/i915/intel_runtime_pm.o
  CC      drivers/acpi/acpica/nsprepkg.o
  CC      lib/xarray.o
  CC      lib/lockref.o
  CC [M]  fs/efivarfs/file.o
  CC      net/ipv4/tcp_fastopen.o
  CC      fs/ext4/readpage.o
  CC      arch/x86/kernel/tsc_msr.o
  CC      kernel/ptrace.o
  CC [M]  drivers/gpu/drm/xe/xe_device_sysfs.o
  CC      drivers/usb/common/debug.o
  CC      drivers/net/phy/mdio_devres.o
  CC      lib/bcd.o
  CC      net/ipv6/icmp.o
  CC      drivers/usb/core/usb.o
  AR      drivers/usb/phy/built-in.a
  CC      drivers/acpi/acpica/nsrepair.o
  CC      drivers/gpu/drm/i915/intel_sbi.o
  CC      net/ethtool/cmis_fw_update.o
  CC      net/wireless/ethtool.o
  CC      drivers/gpu/drm/drm_auth.o
  CC      drivers/pcmcia/socket_sysfs.o
  CC      drivers/acpi/property.o
  CC      mm/vmalloc.o
  CC      drivers/usb/core/hub.o
  CC      drivers/scsi/scsi_scan.o
  AR      kernel/trace/built-in.a
  CC [M]  fs/efivarfs/super.o
  CC [M]  fs/efivarfs/vars.o
  CC      net/netfilter/nf_nat_sip.o
  CC [M]  drivers/gpu/drm/xe/xe_dma_buf.o
  CC      arch/x86/kernel/io_delay.o
  CC      fs/open.o
  CC      drivers/pcmcia/cardbus.o
  CC      net/ethtool/cmis_cdb.o
  CC      drivers/acpi/acpica/nsrepair2.o
  CC      net/ipv6/mcast.o
  CC      drivers/base/cacheinfo.o
  CC      net/ipv6/reassembly.o
  CC      kernel/user.o
  CC      net/netfilter/x_tables.o
  AR      drivers/usb/common/built-in.a
  CC      mm/vma.o
  CC      drivers/ata/libata-scsi.o
  CC      net/core/gro.o
  CC      fs/nfs/nfs3client.o
  CC      net/ethtool/pse-pd.o
  GEN     drivers/scsi/scsi_devinfo_tbl.c
  CC      drivers/acpi/debugfs.o
  CC      arch/x86/kernel/rtc.o
  CC      drivers/usb/core/hcd.o
  AR      net/sunrpc/auth_gss/built-in.a
  CC      drivers/gpu/drm/i915/intel_step.o
  CC      drivers/input/serio/serio.o
  CC      fs/nfs/nfs3proc.o
  CC      fs/ext4/resize.o
  CC      drivers/input/keyboard/atkbd.o
  AR      drivers/cdrom/built-in.a
  CC      drivers/input/mouse/psmouse-base.o
  CC      drivers/net/phy/phy.o
  CC      drivers/input/serio/i8042.o
  CC      drivers/acpi/acpica/nssearch.o
  AR      drivers/input/joystick/built-in.a
  CC      mm/process_vm_access.o
  CC      drivers/gpu/drm/i915/intel_uncore.o
  AR      drivers/input/tablet/built-in.a
  CC      drivers/acpi/acpi_lpat.o
  CC      drivers/pcmcia/ds.o
  CC      kernel/signal.o
  CC      net/mac80211/scan.o
  CC      lib/sort.o
  CC [M]  drivers/gpu/drm/xe/xe_drm_client.o
  CC      fs/read_write.o
  AR      drivers/net/ethernet/3com/built-in.a
  CC      drivers/net/ethernet/8390/ne2k-pci.o
  CC      mm/page_alloc.o
  CC      lib/parser.o
  CC      drivers/base/swnode.o
  CC      net/ipv4/tcp_rate.o
  LD [M]  fs/efivarfs/efivarfs.o
  CC      drivers/input/mouse/synaptics.o
  CC      fs/file_table.o
  AR      drivers/net/ethernet/adaptec/built-in.a
  CC      net/ipv6/tcp_ipv6.o
  CC      drivers/acpi/acpica/nsutils.o
  CC      net/core/netdev-genl.o
  CC      net/ipv6/ping.o
  CC      arch/x86/kernel/resource.o
  CC      fs/super.o
  CC      net/netfilter/xt_tcpudp.o
  CC      drivers/scsi/scsi_devinfo.o
  CC      fs/nfs/nfs3xdr.o
  AS      arch/x86/kernel/irqflags.o
  CC      arch/x86/kernel/static_call.o
  CC      lib/debug_locks.o
  CC      net/sunrpc/svc.o
  AR      drivers/net/ethernet/agere/built-in.a
  CC      net/ethtool/plca.o
  AR      drivers/input/touchscreen/built-in.a
  CC      drivers/ata/libata-eh.o
  CC      drivers/input/mouse/focaltech.o
  CC      drivers/input/serio/serport.o
  CC [M]  drivers/gpu/drm/xe/xe_exec.o
  CC      drivers/acpi/acpica/nswalk.o
  AR      drivers/net/wireless/admtek/built-in.a
  AR      drivers/net/wireless/ath/built-in.a
  AR      drivers/net/wireless/atmel/built-in.a
  CC      lib/random32.o
  AR      drivers/net/wireless/broadcom/built-in.a
  AR      drivers/net/wireless/intel/built-in.a
  AR      drivers/net/usb/built-in.a
  AR      drivers/net/wireless/intersil/built-in.a
  CC      net/sunrpc/svcsock.o
  AR      drivers/net/wireless/marvell/built-in.a
  AR      drivers/net/wireless/mediatek/built-in.a
  AR      drivers/net/wireless/microchip/built-in.a
  AR      drivers/net/wireless/purelifi/built-in.a
  AR      drivers/net/wireless/quantenna/built-in.a
  CC      net/wireless/mesh.o
  AR      drivers/net/wireless/ralink/built-in.a
  AR      drivers/net/wireless/realtek/built-in.a
  AR      drivers/input/keyboard/built-in.a
  AR      drivers/net/wireless/rsi/built-in.a
  CC      drivers/pcmcia/pcmcia_resource.o
  AR      drivers/net/wireless/silabs/built-in.a
  AR      drivers/net/wireless/st/built-in.a
  AR      drivers/net/wireless/ti/built-in.a
  AR      drivers/net/wireless/zydas/built-in.a
  CC      net/wireless/ap.o
  AR      drivers/net/wireless/virtual/built-in.a
  AR      drivers/net/wireless/built-in.a
  CC      drivers/ata/libata-transport.o
  CC      arch/x86/kernel/process.o
  CC      net/sunrpc/svcauth.o
  CC      drivers/base/auxiliary.o
  CC      drivers/net/phy/phy-c45.o
  CC      drivers/acpi/acpi_pcc.o
  CC      arch/x86/kernel/ptrace.o
  CC      drivers/acpi/acpica/nsxfeval.o
  CC      lib/bust_spinlocks.o
  CC      drivers/net/ethernet/8390/8390.o
  CC      net/sunrpc/svcauth_unix.o
  CC      drivers/net/phy/phy-core.o
  CC      drivers/net/mii.o
  CC      drivers/gpu/drm/drm_blend.o
  CC      net/ethtool/phy.o
  CC      drivers/rtc/lib.o
  CC      drivers/scsi/scsi_sysctl.o
  CC      drivers/input/serio/libps2.o
  CC      drivers/usb/mon/mon_main.o
  CC      net/ipv4/tcp_recovery.o
  CC      drivers/input/mouse/alps.o
  CC      drivers/net/loopback.o
  CC      drivers/usb/core/urb.o
  CC      drivers/base/devtmpfs.o
  CC      drivers/acpi/acpica/nsxfname.o
  CC      drivers/input/mouse/byd.o
  CC      fs/ext4/super.o
  CC      fs/char_dev.o
  CC      net/wireless/trace.o
  CC [M]  drivers/gpu/drm/xe/xe_exec_queue.o
  CC      lib/kasprintf.o
  CC      drivers/gpu/drm/drm_bridge.o
  CC      net/netfilter/xt_CONNSECMARK.o
  CC      net/core/netdev-genl-gen.o
  CC      fs/nfs/nfs3acl.o
  CC      net/ipv6/exthdrs.o
  CC      drivers/rtc/class.o
  AR      drivers/net/ethernet/alacritech/built-in.a
  CC      drivers/net/netconsole.o
  CC      net/mac80211/offchannel.o
  CC      drivers/i2c/algos/i2c-algo-bit.o
  CC      drivers/scsi/scsi_proc.o
  CC      drivers/pcmcia/cistpl.o
  CC      drivers/usb/mon/mon_stat.o
  CC      lib/bitmap.o
  CC      drivers/acpi/acpica/nsxfobj.o
  AR      drivers/input/serio/built-in.a
  CC      drivers/gpu/drm/i915/intel_uncore_trace.o
  CC      drivers/i2c/busses/i2c-i801.o
  AR      drivers/i2c/muxes/built-in.a
  CC      drivers/input/mouse/logips2pp.o
  CC      drivers/acpi/ac.o
  CC      drivers/rtc/interface.o
  CC      drivers/usb/core/message.o
  AR      drivers/net/ethernet/8390/built-in.a
  AR      drivers/net/ethernet/alteon/built-in.a
  AR      drivers/net/ethernet/amazon/built-in.a
  AR      drivers/net/ethernet/amd/built-in.a
  CC      drivers/net/phy/phy_device.o
  AR      drivers/net/ethernet/aquantia/built-in.a
  AR      drivers/i3c/built-in.a
  CC      drivers/pcmcia/pcmcia_cis.o
  AR      drivers/net/ethernet/arc/built-in.a
  AR      drivers/net/ethernet/asix/built-in.a
  AR      drivers/net/ethernet/atheros/built-in.a
  CC      net/ethtool/tsconfig.o
  AR      drivers/net/ethernet/cadence/built-in.a
  CC      kernel/sys.o
  CC      drivers/net/ethernet/broadcom/bnx2.o
  CC      net/core/gso.o
  CC      drivers/acpi/acpica/psargs.o
  AR      drivers/net/ethernet/brocade/built-in.a
  CC      net/sunrpc/addr.o
  CC      arch/x86/kernel/tls.o
  CC      drivers/base/module.o
  CC      fs/nfs/nfs4proc.o
  CC      drivers/gpu/drm/drm_cache.o
  AR      drivers/media/i2c/built-in.a
  CC      net/ipv6/datagram.o
  AR      drivers/media/tuners/built-in.a
  CC      net/ipv4/tcp_ulp.o
  CC      net/ipv4/tcp_offload.o
  AR      drivers/media/rc/keymaps/built-in.a
  AR      drivers/media/rc/built-in.a
  CC      drivers/usb/mon/mon_text.o
  CC      drivers/usb/mon/mon_bin.o
  CC      lib/scatterlist.o
  AR      drivers/media/common/b2c2/built-in.a
  AR      drivers/media/common/saa7146/built-in.a
  AR      drivers/media/common/siano/built-in.a
  AR      drivers/media/common/v4l2-tpg/built-in.a
  AR      drivers/media/common/videobuf2/built-in.a
  AR      drivers/media/common/built-in.a
  AR      drivers/input/misc/built-in.a
  CC      drivers/usb/host/pci-quirks.o
  AR      drivers/media/platform/allegro-dvt/built-in.a
  AR      drivers/media/platform/amlogic/meson-ge2d/built-in.a
  CC      drivers/scsi/scsi_debugfs.o
  AR      drivers/media/platform/amlogic/built-in.a
  CC      drivers/gpu/drm/drm_color_mgmt.o
  AR      drivers/media/platform/amphion/built-in.a
  CC      drivers/acpi/acpica/psloop.o
  AR      drivers/media/platform/aspeed/built-in.a
  AR      drivers/media/platform/atmel/built-in.a
  AR      drivers/media/platform/broadcom/built-in.a
  CC      net/netfilter/xt_NFLOG.o
  CC      drivers/input/mouse/lifebook.o
  CC      drivers/input/input.o
  AR      drivers/media/platform/cadence/built-in.a
  AR      drivers/media/platform/chips-media/coda/built-in.a
  CC      arch/x86/kernel/step.o
  AR      drivers/media/platform/chips-media/wave5/built-in.a
  CC      drivers/gpu/drm/i915/intel_wakeref.o
  AR      drivers/media/platform/chips-media/built-in.a
  AR      drivers/i2c/algos/built-in.a
  CC      drivers/base/auxiliary_sysfs.o
  CC      drivers/net/phy/linkmode.o
  CC      net/wireless/ocb.o
  AR      drivers/media/platform/imagination/built-in.a
  AR      drivers/media/platform/intel/built-in.a
  AR      drivers/media/platform/marvell/built-in.a
  AR      drivers/media/platform/mediatek/jpeg/built-in.a
  CC      drivers/pcmcia/rsrc_mgr.o
  AR      drivers/media/platform/mediatek/mdp/built-in.a
  CC      net/core/net-sysfs.o
  CC      net/ipv4/tcp_plb.o
  AR      drivers/media/platform/mediatek/vcodec/common/built-in.a
  AR      drivers/media/platform/mediatek/vcodec/encoder/built-in.a
  AR      drivers/media/platform/mediatek/vcodec/decoder/built-in.a
  AR      drivers/media/platform/mediatek/vcodec/built-in.a
  CC      drivers/net/virtio_net.o
  AR      drivers/media/platform/mediatek/mdp3/built-in.a
  AR      drivers/media/platform/mediatek/vpu/built-in.a
  CC      fs/nfs/nfs4xdr.o
  AR      drivers/media/platform/mediatek/built-in.a
  AR      drivers/media/platform/microchip/built-in.a
  AR      drivers/media/platform/nuvoton/built-in.a
  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
  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/gpu/drm/i915/vlv_sideband.o
  AR      drivers/media/platform/raspberrypi/pisp_be/built-in.a
  CC      drivers/acpi/acpica/psobject.o
  AR      drivers/media/platform/raspberrypi/rp1-cfe/built-in.a
  AR      drivers/media/platform/raspberrypi/built-in.a
  AR      drivers/media/platform/renesas/rcar-vin/built-in.a
  CC      net/mac80211/ht.o
  CC [M]  drivers/gpu/drm/xe/xe_execlist.o
  AR      drivers/media/platform/renesas/rzg2l-cru/built-in.a
  CC      net/mac80211/agg-tx.o
  CC      drivers/ata/libata-trace.o
  AR      drivers/media/platform/renesas/vsp1/built-in.a
  AR      drivers/media/platform/renesas/built-in.a
  CC      drivers/base/devcoredump.o
  AR      drivers/i2c/busses/built-in.a
  CC      drivers/gpu/drm/i915/vlv_suspend.o
  AR      drivers/media/platform/rockchip/rga/built-in.a
  AR      drivers/media/platform/rockchip/rkisp1/built-in.a
  CC      drivers/gpu/drm/i915/soc/intel_dram.o
  CC      drivers/i2c/i2c-boardinfo.o
  AR      drivers/media/platform/rockchip/built-in.a
  AR      drivers/media/platform/samsung/exynos-gsc/built-in.a
  AR      drivers/media/platform/samsung/exynos4-is/built-in.a
  AR      drivers/media/platform/samsung/s3c-camif/built-in.a
  AR      drivers/media/platform/samsung/s5p-g2d/built-in.a
  AR      drivers/media/platform/samsung/s5p-jpeg/built-in.a
  AR      drivers/media/platform/samsung/s5p-mfc/built-in.a
  AR      net/ethtool/built-in.a
  AR      drivers/media/platform/samsung/built-in.a
  CC      lib/list_sort.o
  CC      drivers/input/input-compat.o
  CC      drivers/input/mouse/trackpoint.o
  AR      drivers/media/platform/st/sti/bdisp/built-in.a
  AR      drivers/media/platform/st/sti/c8sectpfe/built-in.a
  CC      drivers/net/net_failover.o
  CC      mm/page_frag_cache.o
  CC      drivers/scsi/scsi_trace.o
  AR      drivers/media/platform/st/sti/delta/built-in.a
  AR      drivers/media/platform/st/sti/hva/built-in.a
  CC      net/sunrpc/rpcb_clnt.o
  CC      drivers/scsi/scsi_logging.o
  CC      arch/x86/kernel/i8237.o
  AR      drivers/media/platform/st/stm32/built-in.a
  AR      drivers/media/platform/st/built-in.a
  AR      drivers/media/platform/sunxi/sun4i-csi/built-in.a
  CC      drivers/pcmcia/rsrc_nonstatic.o
  AR      drivers/media/platform/ti/am437x/built-in.a
  CC      drivers/net/ethernet/broadcom/tg3.o
  AR      drivers/media/platform/sunxi/sun6i-csi/built-in.a
  AR      drivers/media/platform/ti/cal/built-in.a
  AR      drivers/media/platform/verisilicon/built-in.a
  AR      drivers/media/platform/sunxi/sun6i-mipi-csi2/built-in.a
  AR      drivers/media/platform/ti/vpe/built-in.a
  CC      net/wireless/pmsr.o
  AR      drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/built-in.a
  AR      drivers/media/platform/ti/davinci/built-in.a
  AR      drivers/media/platform/sunxi/sun8i-di/built-in.a
  AR      drivers/media/platform/ti/j721e-csi2rx/built-in.a
  AR      drivers/media/platform/sunxi/sun8i-rotate/built-in.a
  AR      drivers/media/platform/ti/omap/built-in.a
  AR      drivers/media/platform/sunxi/built-in.a
  CC      drivers/usb/host/ehci-hcd.o
  AR      drivers/media/platform/ti/omap3isp/built-in.a
  CC      drivers/acpi/acpica/psopcode.o
  AR      drivers/media/platform/ti/built-in.a
  CC      drivers/i2c/i2c-core-base.o
  CC      fs/stat.o
  CC      net/netfilter/xt_SECMARK.o
  AR      drivers/media/platform/via/built-in.a
  CC      drivers/rtc/nvmem.o
  AR      drivers/usb/mon/built-in.a
  AR      drivers/media/platform/xilinx/built-in.a
  CC      drivers/i2c/i2c-core-smbus.o
  AR      drivers/media/platform/built-in.a
  CC      drivers/usb/core/driver.o
  CC      drivers/i2c/i2c-core-acpi.o
  AR      drivers/media/pci/ttpci/built-in.a
  AR      drivers/media/pci/b2c2/built-in.a
  AR      drivers/media/pci/pluto2/built-in.a
  AR      drivers/media/pci/dm1105/built-in.a
  CC      lib/uuid.o
  AR      drivers/media/pci/pt1/built-in.a
  AR      drivers/media/pci/pt3/built-in.a
  CC      arch/x86/kernel/stacktrace.o
  AR      drivers/media/pci/mantis/built-in.a
  AR      drivers/media/pci/ngene/built-in.a
  AR      drivers/media/pci/ddbridge/built-in.a
  CC      drivers/usb/core/config.o
  AR      drivers/media/pci/saa7146/built-in.a
  AR      drivers/media/pci/smipcie/built-in.a
  AR      drivers/media/pci/netup_unidvb/built-in.a
  CC      lib/iov_iter.o
  AR      drivers/media/pci/intel/ipu3/built-in.a
  AR      drivers/media/pci/intel/ivsc/built-in.a
  AR      drivers/media/pci/intel/built-in.a
  AR      drivers/media/pci/built-in.a
  CC      drivers/acpi/acpica/psopinfo.o
  CC      drivers/base/platform-msi.o
  AR      drivers/media/usb/b2c2/built-in.a
  CC      drivers/scsi/scsi_pm.o
  AR      drivers/media/usb/dvb-usb/built-in.a
  AR      drivers/media/usb/dvb-usb-v2/built-in.a
  AR      drivers/media/usb/s2255/built-in.a
  AR      drivers/media/usb/siano/built-in.a
  AR      drivers/media/usb/ttusb-budget/built-in.a
  CC      net/mac80211/agg-rx.o
  CC      drivers/ata/libata-sata.o
  AR      drivers/media/usb/ttusb-dec/built-in.a
  CC      net/ipv6/ip6_flowlabel.o
  AR      drivers/media/usb/built-in.a
  AR      drivers/media/mmc/siano/built-in.a
  AR      drivers/media/mmc/built-in.a
  CC      net/ipv4/datagram.o
  AR      drivers/media/firewire/built-in.a
  AR      drivers/media/spi/built-in.a
  AR      drivers/media/test-drivers/built-in.a
  AR      drivers/media/built-in.a
  CC      drivers/input/mouse/cypress_ps2.o
  CC      mm/init-mm.o
  CC      drivers/input/mouse/psmouse-smbus.o
  CC      drivers/rtc/dev.o
  CC      kernel/umh.o
  CC      drivers/ata/libata-sff.o
  CC      drivers/usb/core/file.o
  CC      drivers/base/physical_location.o
  CC      net/ipv4/raw.o
  CC [M]  drivers/gpu/drm/xe/xe_force_wake.o
  CC      drivers/acpi/acpica/psparse.o
  CC      arch/x86/kernel/reboot.o
  CC      drivers/net/phy/phy_link_topology.o
  CC      drivers/usb/host/ehci-pci.o
  CC      net/mac80211/vht.o
  CC      drivers/usb/class/usblp.o
  CC      drivers/gpu/drm/drm_connector.o
  CC      drivers/pcmcia/yenta_socket.o
  CC      drivers/gpu/drm/i915/soc/intel_gmch.o
  CC      net/netfilter/xt_TCPMSS.o
  CC [M]  drivers/gpu/drm/xe/xe_ggtt.o
  CC      fs/nfs/nfs4state.o
  CC      drivers/scsi/scsi_bsg.o
  CC      drivers/base/trace.o
  CC      drivers/acpi/acpica/psscope.o
  CC      mm/memblock.o
  CC      fs/nfs/nfs4renewd.o
  AR      drivers/pps/clients/built-in.a
  CC      net/core/hotdata.o
  CC      drivers/pps/pps.o
  CC      drivers/rtc/proc.o
  CC      drivers/scsi/scsi_common.o
  CC      lib/clz_ctz.o
  CC      drivers/gpu/drm/i915/soc/intel_pch.o
  CC      drivers/acpi/button.o
  AR      drivers/input/mouse/built-in.a
  CC      drivers/input/input-mt.o
  CC      drivers/usb/core/buffer.o
  CC      kernel/workqueue.o
  CC      drivers/usb/core/sysfs.o
  CC      drivers/acpi/acpica/pstree.o
  CC      drivers/ata/libata-pmp.o
  CC      arch/x86/kernel/msr.o
  CC      net/ipv4/udp.o
  CC      fs/exec.o
  CC      drivers/usb/storage/scsiglue.o
  CC      drivers/net/phy/mdio_bus.o
  CC      drivers/gpu/drm/drm_crtc.o
  CC      mm/slub.o
  AR      drivers/usb/class/built-in.a
  CC      net/sunrpc/timer.o
  CC      fs/pipe.o
  CC      drivers/rtc/sysfs.o
  CC      drivers/scsi/scsi_transport_spi.o
  CC      fs/nfs/nfs4super.o
  CC      net/ipv6/inet6_connection_sock.o
  CC      drivers/pps/kapi.o
  CC      drivers/i2c/i2c-smbus.o
  CC      drivers/acpi/acpica/psutils.o
  CC      drivers/pps/sysfs.o
  AR      drivers/base/built-in.a
  CC      drivers/gpu/drm/drm_displayid.o
  CC [M]  drivers/gpu/drm/xe/xe_gpu_scheduler.o
  CC      fs/namei.o
  AR      drivers/usb/misc/built-in.a
  CC      drivers/rtc/rtc-mc146818-lib.o
  CC      net/core/netdev_rx_queue.o
  CC      drivers/input/input-poller.o
  AR      drivers/pcmcia/built-in.a
  CC      drivers/usb/early/ehci-dbgp.o
  AR      drivers/net/ethernet/cavium/common/built-in.a
  AR      drivers/net/ethernet/cavium/thunder/built-in.a
  AR      drivers/net/ethernet/cavium/liquidio/built-in.a
  CC      net/ipv6/udp_offload.o
  AR      drivers/net/ethernet/cavium/octeon/built-in.a
  CC      net/netfilter/xt_conntrack.o
  CC [M]  drivers/gpu/drm/xe/xe_gsc.o
  AR      drivers/net/ethernet/cavium/built-in.a
  CC      kernel/pid.o
  CC      drivers/acpi/fan_core.o
  CC      net/mac80211/he.o
  CC      fs/fcntl.o
  CC      arch/x86/kernel/cpuid.o
  CC      drivers/acpi/acpica/pswalk.o
  CC      drivers/gpu/drm/i915/soc/intel_rom.o
  CC      mm/madvise.o
  CC      drivers/input/ff-core.o
  CC      drivers/usb/core/endpoint.o
  CC      drivers/ptp/ptp_clock.o
  CC      drivers/usb/storage/protocol.o
  CC      drivers/ptp/ptp_chardev.o
  AR      drivers/pps/built-in.a
  CC      net/sunrpc/xdr.o
  CC      lib/bsearch.o
  GEN     net/wireless/shipped-certs.c
  CC      drivers/ptp/ptp_sysfs.o
  CC      net/ipv4/udplite.o
  CC      drivers/ata/libata-acpi.o
  CC      drivers/acpi/acpica/psxface.o
  CC      net/ipv6/seg6.o
  AR      drivers/i2c/built-in.a
  CC      drivers/scsi/virtio_scsi.o
  CC      mm/page_io.o
  CC      drivers/usb/host/ohci-hcd.o
  CC [M]  drivers/gpu/drm/xe/xe_gsc_debugfs.o
  CC      drivers/rtc/rtc-cmos.o
  CC      arch/x86/kernel/early-quirks.o
  CC      drivers/ptp/ptp_vclock.o
  AR      drivers/net/ethernet/chelsio/built-in.a
  CC      drivers/gpu/drm/drm_drv.o
  CC      net/core/net-procfs.o
  CC      net/netfilter/xt_policy.o
  CC      drivers/ptp/ptp_kvm_x86.o
  CC      drivers/acpi/acpica/rsaddr.o
  CC      drivers/scsi/sd.o
  CC      drivers/net/phy/mdio_device.o
  CC      arch/x86/kernel/smp.o
  AR      drivers/usb/early/built-in.a
  CC      lib/find_bit.o
  CC      drivers/usb/storage/transport.o
  CC      drivers/usb/core/devio.o
  CC      drivers/power/supply/power_supply_core.o
  CC      drivers/input/touchscreen.o
  CC      net/ipv6/fib6_notifier.o
  CC      drivers/usb/host/ohci-pci.o
  CC      drivers/ata/libata-pata-timings.o
  CC      drivers/gpu/drm/drm_dumb_buffers.o
  CC      drivers/gpu/drm/i915/i915_memcpy.o
  CC      net/netfilter/xt_state.o
  CC      fs/nfs/nfs4file.o
  CC      drivers/acpi/fan_attr.o
  CC      net/core/netpoll.o
  CC      lib/llist.o
  CC      drivers/acpi/acpica/rscalc.o
  CC      drivers/acpi/acpica/rscreate.o
  CC      drivers/acpi/fan_hwmon.o
  CC      drivers/gpu/drm/i915/i915_mm.o
  CC [M]  drivers/gpu/drm/xe/xe_gsc_proxy.o
  CC      drivers/acpi/acpi_video.o
  CC      lib/lwq.o
  CC      net/core/fib_rules.o
  CC      net/ipv4/udp_offload.o
  CC      drivers/usb/core/notify.o
  CC      drivers/net/phy/swphy.o
  CC      drivers/ata/ahci.o
  CC      lib/memweight.o
  CC      lib/kfifo.o
  CC      drivers/input/ff-memless.o
  CC      drivers/scsi/sr.o
  CC      fs/nfs/delegation.o
  CC      drivers/ptp/ptp_kvm_common.o
  CC      drivers/usb/core/generic.o
  CC      drivers/ata/libahci.o
  CC      net/sunrpc/sunrpc_syms.o
  AR      drivers/rtc/built-in.a
  CC      net/sunrpc/cache.o
  CC      arch/x86/kernel/smpboot.o
  CC      drivers/acpi/acpica/rsdumpinfo.o
  CC      drivers/usb/storage/usb.o
  CC      net/core/net-traces.o
  CC      lib/percpu-refcount.o
  CC      drivers/hwmon/hwmon.o
  CC      arch/x86/kernel/tsc_sync.o
  CC      fs/nfs/nfs4idmap.o
  CC      net/sunrpc/rpc_pipe.o
  CC      drivers/power/supply/power_supply_sysfs.o
  CC      fs/ext4/symlink.o
  CC      net/ipv6/rpl.o
  CC [M]  drivers/gpu/drm/xe/xe_gsc_submit.o
  CC      fs/nfs/callback.o
  CC      lib/rhashtable.o
  CC      lib/base64.o
  CC      net/mac80211/s1g.o
  CC      drivers/acpi/acpica/rsinfo.o
  CC      drivers/power/supply/power_supply_leds.o
  CC      drivers/net/phy/fixed_phy.o
  CC      fs/ioctl.o
  CC      net/core/selftests.o
  CC      drivers/gpu/drm/i915/i915_sw_fence.o
  CC [M]  net/netfilter/nf_log_syslog.o
  AR      drivers/ptp/built-in.a
  CC      drivers/input/sparse-keymap.o
  CC      drivers/acpi/acpica/rsio.o
  CC      drivers/input/vivaldi-fmap.o
  CC      drivers/power/supply/power_supply_hwmon.o
  CC      drivers/scsi/sr_ioctl.o
  CC      fs/readdir.o
  CC      fs/ext4/sysfs.o
  CC      drivers/input/input-leds.o
  CC      kernel/task_work.o
  CC      net/wireless/shipped-certs.o
  CC      drivers/usb/host/uhci-hcd.o
  CC      drivers/usb/core/quirks.o
  CC      fs/nfs/callback_xdr.o
  CC      lib/once.o
  CC      drivers/acpi/acpica/rsirq.o
  CC [M]  drivers/gpu/drm/xe/xe_gt.o
  AR      drivers/net/ethernet/cisco/built-in.a
  CC      drivers/usb/storage/initializers.o
  AR      drivers/thermal/broadcom/built-in.a
  CC      arch/x86/kernel/setup_percpu.o
  AR      drivers/thermal/renesas/built-in.a
  CC      arch/x86/kernel/mpparse.o
  AR      drivers/thermal/samsung/built-in.a
  CC      drivers/acpi/acpica/rslist.o
  CC      drivers/thermal/intel/intel_tcc.o
  AR      drivers/thermal/st/built-in.a
  CC      drivers/usb/host/xhci.o
  CC      mm/swap_state.o
  CC      net/sunrpc/sysfs.o
  CC      drivers/acpi/acpica/rsmemory.o
  AR      drivers/power/supply/built-in.a
  AR      drivers/power/built-in.a
  CC      arch/x86/kernel/trace_clock.o
  CC      net/ipv4/arp.o
  CC      lib/refcount.o
  CC      drivers/gpu/drm/i915/i915_sw_fence_work.o
  CC      net/ipv6/ioam6.o
  CC      net/ipv6/sysctl_net_ipv6.o
  CC      drivers/gpu/drm/drm_edid.o
  CC      drivers/ata/ata_piix.o
  CC      arch/x86/kernel/trace.o
  AR      drivers/net/ethernet/cortina/built-in.a
  CC      drivers/thermal/intel/therm_throt.o
  AR      drivers/thermal/qcom/built-in.a
  CC      fs/select.o
  CC      fs/ext4/xattr.o
  CC      drivers/input/evdev.o
  CC      drivers/gpu/drm/i915/i915_syncmap.o
  AR      drivers/hwmon/built-in.a
  CC      fs/nfs/callback_proc.o
  AR      drivers/watchdog/built-in.a
  CC      drivers/gpu/drm/drm_eld.o
  CC      kernel/extable.o
  CC      lib/rcuref.o
  CC      fs/dcache.o
  CC      net/core/ptp_classifier.o
  CC      net/ipv6/xfrm6_policy.o
  CC      drivers/acpi/acpica/rsmisc.o
  CC      drivers/usb/core/devices.o
  CC      drivers/scsi/sr_vendor.o
  AR      drivers/net/phy/built-in.a
  CC      net/core/netprio_cgroup.o
  CC      drivers/usb/host/xhci-mem.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_ccs_mode.o
  CC [M]  drivers/thermal/intel/x86_pkg_temp_thermal.o
  CC      mm/swapfile.o
  CC      net/core/netclassid_cgroup.o
  CC      kernel/params.o
  CC      lib/usercopy.o
  CC      drivers/usb/storage/sierra_ms.o
  AR      drivers/thermal/tegra/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_gt_clock.o
  CC      kernel/kthread.o
  CC      drivers/acpi/video_detect.o
  CC      drivers/md/md.o
  CC      fs/ext4/xattr_hurd.o
  CC      drivers/gpu/drm/i915/i915_user_extensions.o
  AR      drivers/net/ethernet/dec/tulip/built-in.a
  AR      drivers/net/ethernet/dec/built-in.a
  CC      net/mac80211/ibss.o
  CC      drivers/gpu/drm/i915/i915_debugfs.o
  CC      lib/errseq.o
  CC      arch/x86/kernel/rethook.o
  CC      drivers/acpi/acpica/rsserial.o
  CC      lib/bucket_locks.o
  CC [M]  net/netfilter/xt_mark.o
  CC      arch/x86/kernel/vmcore_info_32.o
  CC      drivers/usb/host/xhci-ext-caps.o
  AR      drivers/thermal/mediatek/built-in.a
  CC      drivers/md/md-bitmap.o
  CC      net/ipv6/xfrm6_state.o
  CC      net/ipv4/icmp.o
  CC      lib/generic-radix-tree.o
  CC      drivers/ata/pata_amd.o
  CC      arch/x86/kernel/machine_kexec_32.o
  CC      drivers/scsi/sg.o
  CC      drivers/usb/core/phy.o
  CC      drivers/usb/storage/option_ms.o
  AR      drivers/thermal/intel/built-in.a
  CC      drivers/thermal/thermal_core.o
  CC [M]  net/netfilter/xt_nat.o
  CC      drivers/acpi/acpica/rsutils.o
  AR      drivers/input/built-in.a
  CC      net/sunrpc/svc_xprt.o
  CC      net/core/dst_cache.o
  CC      drivers/md/md-autodetect.o
  CC      fs/ext4/xattr_trusted.o
  CC      drivers/usb/storage/usual-tables.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_freq.o
  CC      net/ipv4/devinet.o
  CC      fs/inode.o
  AR      drivers/net/ethernet/dlink/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_gt_idle.o
  CC      net/core/gro_cells.o
  CC      net/mac80211/iface.o
  CC      fs/ext4/xattr_user.o
  CC      mm/swap_slots.o
  CC      mm/dmapool.o
  CC      lib/bitmap-str.o
  CC      drivers/acpi/acpica/rsxface.o
  CC      drivers/gpu/drm/drm_encoder.o
  AR      drivers/net/ethernet/emulex/built-in.a
  CC      fs/nfs/nfs4namespace.o
  CC      net/core/failover.o
  CC      net/sunrpc/xprtmultipath.o
  CC      net/mac80211/link.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_mcr.o
  AS      arch/x86/kernel/relocate_kernel_32.o
  CC      drivers/ata/pata_oldpiix.o
  CC      mm/hugetlb.o
  CC      kernel/sys_ni.o
  CC      drivers/acpi/processor_driver.o
  AR      drivers/usb/storage/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_gt_pagefault.o
  AR      drivers/net/ethernet/engleder/built-in.a
  CC [M]  net/netfilter/xt_LOG.o
  CC      arch/x86/kernel/crash_dump_32.o
  CC      drivers/acpi/acpica/tbdata.o
  CC      drivers/usb/core/port.o
  CC      drivers/usb/host/xhci-ring.o
  CC      drivers/md/dm.o
  CC      drivers/gpu/drm/i915/i915_debugfs_params.o
  CC      lib/string_helpers.o
  CC      net/ipv6/xfrm6_input.o
  CC      drivers/gpu/drm/drm_file.o
  CC      net/mac80211/rate.o
  CC      drivers/gpu/drm/drm_fourcc.o
  CC      kernel/nsproxy.o
  CC      drivers/acpi/acpica/tbfadt.o
  AR      drivers/net/ethernet/ezchip/built-in.a
  CC      drivers/usb/host/xhci-hub.o
  CC      drivers/md/dm-table.o
  CC      fs/ext4/fast_commit.o
  CC      kernel/notifier.o
  CC      lib/hexdump.o
  CC      fs/nfs/nfs4getroot.o
  CC      lib/kstrtox.o
  CC      arch/x86/kernel/crash.o
  CC      drivers/scsi/scsi_sysfs.o
  CC [M]  net/netfilter/xt_MASQUERADE.o
  CC      drivers/ata/pata_sch.o
  CC      mm/mmu_notifier.o
  CC      drivers/usb/core/hcd-pci.o
  CC      fs/ext4/orphan.o
  CC      net/ipv4/af_inet.o
  CC      drivers/acpi/acpica/tbfind.o
  CC      net/sunrpc/stats.o
  CC      drivers/cpufreq/cpufreq.o
  CC      drivers/acpi/processor_thermal.o
  CC      drivers/usb/core/usb-acpi.o
  CC      drivers/thermal/thermal_sysfs.o
  CC      net/ipv6/xfrm6_output.o
  CC      lib/iomap.o
  CC      kernel/ksysfs.o
  CC      drivers/md/dm-target.o
  AR      drivers/net/ethernet/fujitsu/built-in.a
  CC      net/sunrpc/sysctl.o
  AR      drivers/net/ethernet/fungible/built-in.a
  CC      drivers/gpu/drm/i915/i915_pmu.o
  CC      drivers/ata/pata_mpiix.o
  CC      drivers/acpi/acpica/tbinstal.o
  CC      drivers/thermal/thermal_trip.o
  CC      drivers/cpuidle/governors/menu.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_sysfs.o
  CC      arch/x86/kernel/module.o
  AR      net/core/built-in.a
  CC      net/ipv6/xfrm6_protocol.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_throttle.o
  CC      lib/iomap_copy.o
  CC      drivers/acpi/acpica/tbprint.o
  CC      drivers/thermal/thermal_helpers.o
  CC      drivers/thermal/thermal_thresholds.o
  CC      drivers/cpuidle/cpuidle.o
  CC      fs/nfs/nfs4client.o
  CC      drivers/cpufreq/freq_table.o
  CC      drivers/gpu/drm/i915/gt/gen2_engine_cs.o
  AR      drivers/mmc/built-in.a
  CC      kernel/cred.o
  AR      net/wireless/built-in.a
  CC      fs/ext4/acl.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_tlb_invalidation.o
  CC      arch/x86/kernel/doublefault_32.o
  CC      drivers/md/dm-linear.o
  CC      fs/ext4/xattr_security.o
  CC      drivers/thermal/thermal_netlink.o
  AR      drivers/usb/core/built-in.a
  CC      drivers/md/dm-stripe.o
  AR      drivers/net/ethernet/google/built-in.a
  CC      drivers/cpuidle/driver.o
  CC      drivers/usb/host/xhci-dbg.o
  CC      drivers/usb/host/xhci-trace.o
  CC [M]  net/netfilter/xt_addrtype.o
  CC      arch/x86/kernel/early_printk.o
  CC      net/ipv6/netfilter.o
  CC      net/ipv4/igmp.o
  CC      drivers/acpi/acpica/tbutils.o
  CC      drivers/gpu/drm/i915/gt/gen6_engine_cs.o
  CC      drivers/cpuidle/governors/haltpoll.o
  CC      lib/devres.o
  AR      drivers/scsi/built-in.a
  CC      fs/attr.o
  CC      drivers/thermal/thermal_hwmon.o
  AR      drivers/net/ethernet/hisilicon/built-in.a
  CC      arch/x86/kernel/hpet.o
  CC      drivers/ata/ata_generic.o
  CC      fs/nfs/nfs4session.o
  CC      fs/nfs/dns_resolve.o
  CC      kernel/reboot.o
  CC      drivers/acpi/processor_idle.o
  CC      drivers/cpufreq/cpufreq_performance.o
  AR      drivers/net/ethernet/broadcom/built-in.a
  AR      drivers/net/ethernet/huawei/built-in.a
  CC      drivers/net/ethernet/intel/e1000/e1000_main.o
  CC      drivers/net/ethernet/intel/e1000e/82571.o
  CC      net/ipv4/fib_frontend.o
  CC      drivers/net/ethernet/intel/e1000/e1000_hw.o
  CC      net/ipv4/fib_semantics.o
  CC      drivers/net/ethernet/intel/e1000/e1000_ethtool.o
  CC      drivers/acpi/acpica/tbxface.o
  CC      drivers/net/ethernet/intel/e1000e/ich8lan.o
  CC      fs/nfs/nfs4trace.o
  AR      drivers/ufs/built-in.a
  CC      fs/nfs/nfs4sysctl.o
  CC      arch/x86/kernel/amd_nb.o
  CC      lib/check_signature.o
  CC      drivers/net/ethernet/intel/e1000/e1000_param.o
  CC      fs/bad_inode.o
  CC      drivers/acpi/processor_throttling.o
  CC      mm/migrate.o
  CC      lib/interval_tree.o
  AR      drivers/net/ethernet/i825xx/built-in.a
  CC      drivers/cpuidle/governor.o
  AR      drivers/net/ethernet/microsoft/built-in.a
  CC      drivers/md/dm-ioctl.o
  AR      drivers/net/ethernet/litex/built-in.a
  CC      drivers/usb/host/xhci-debugfs.o
  CC      fs/file.o
  CC      drivers/thermal/gov_step_wise.o
  CC      drivers/cpuidle/sysfs.o
  CC      drivers/net/ethernet/intel/e100.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_topology.o
  CC      net/mac80211/michael.o
  AR      fs/ext4/built-in.a
  CC      drivers/acpi/acpica/tbxfload.o
  CC      fs/filesystems.o
  AR      drivers/ata/built-in.a
  CC      drivers/net/ethernet/intel/e1000e/80003es2lan.o
  CC      drivers/cpufreq/cpufreq_userspace.o
  AR      net/sunrpc/built-in.a
  CC      mm/page_counter.o
  CC      net/ipv4/fib_trie.o
  CC      lib/assoc_array.o
  CC      drivers/cpuidle/poll_state.o
  AR      drivers/cpuidle/governors/built-in.a
  CC      lib/bitrev.o
  CC      net/ipv6/proc.o
  CC      drivers/gpu/drm/i915/gt/gen6_ppgtt.o
  CC [M]  drivers/gpu/drm/xe/xe_guc.o
  CC      arch/x86/kernel/amd_node.o
  CC      net/ipv4/fib_notifier.o
  CC      lib/crc-ccitt.o
  CC      drivers/net/ethernet/intel/e1000e/mac.o
  CC      drivers/md/dm-io.o
  AR      net/netfilter/built-in.a
  CC      net/mac80211/tkip.o
  CC      drivers/acpi/acpica/tbxfroot.o
  CC      drivers/gpu/drm/drm_framebuffer.o
  AR      drivers/firmware/arm_ffa/built-in.a
  AR      drivers/thermal/built-in.a
  CC      kernel/async.o
  AR      drivers/firmware/arm_scmi/built-in.a
  CC      drivers/md/dm-kcopyd.o
  AR      drivers/firmware/broadcom/built-in.a
  CC      drivers/md/dm-sysfs.o
  AR      drivers/firmware/cirrus/test/built-in.a
  AR      drivers/firmware/cirrus/built-in.a
  CC      net/ipv6/syncookies.o
  AR      drivers/firmware/meson/built-in.a
  CC      drivers/cpuidle/cpuidle-haltpoll.o
  CC      net/ipv4/inet_fragment.o
  AR      drivers/firmware/microchip/built-in.a
  CC      net/mac80211/aes_cmac.o
  CC      drivers/cpufreq/cpufreq_ondemand.o
  AR      drivers/firmware/imx/built-in.a
  CC      drivers/md/dm-stats.o
  CC      drivers/firmware/efi/libstub/efi-stub-helper.o
  CC      drivers/acpi/processor_perflib.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_ads.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/net/ethernet/intel/e1000e/manage.o
  CC      drivers/gpu/drm/i915/gt/gen7_renderclear.o
  AR      drivers/net/ethernet/marvell/prestera/built-in.a
  CC      drivers/net/ethernet/marvell/sky2.o
  CC      drivers/acpi/acpica/utaddress.o
  CC      drivers/usb/host/xhci-pci.o
  CC      kernel/range.o
  AR      drivers/cpuidle/built-in.a
  CC      drivers/firmware/efi/efi-bgrt.o
  CC      arch/x86/kernel/kvm.o
  CC      drivers/gpu/drm/drm_gem.o
  CC      lib/crc16.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_buf.o
  CC      drivers/acpi/container.o
  AR      drivers/net/ethernet/mellanox/built-in.a
  CC      kernel/smpboot.o
  CC      mm/hugetlb_cgroup.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_capture.o
  CC      drivers/acpi/acpica/utalloc.o
  CC      drivers/md/dm-rq.o
  CC      drivers/gpu/drm/drm_ioctl.o
  AR      drivers/net/ethernet/meta/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_guc_ct.o
  AR      drivers/crypto/stm32/built-in.a
  HOSTCC  lib/gen_crc32table
  AR      drivers/crypto/xilinx/built-in.a
  CC      drivers/cpufreq/cpufreq_governor.o
  AR      drivers/crypto/hisilicon/built-in.a
  AR      drivers/crypto/starfive/built-in.a
  AR      drivers/crypto/intel/keembay/built-in.a
  CC      arch/x86/kernel/kvmclock.o
  AR      drivers/crypto/intel/ixp4xx/built-in.a
  AR      drivers/crypto/intel/built-in.a
  AR      drivers/crypto/built-in.a
  CC      lib/xxhash.o
  CC      net/ipv6/calipso.o
  CC      drivers/firmware/efi/libstub/gop.o
  CC      net/mac80211/aes_gmac.o
  AR      drivers/net/ethernet/micrel/built-in.a
  CC      kernel/ucount.o
  CC      net/ipv4/ping.o
  CC      drivers/acpi/acpica/utascii.o
  CC      fs/namespace.o
  CC      drivers/md/dm-io-rewind.o
  CC      drivers/acpi/acpica/utbuffer.o
  CC      net/ipv6/ah6.o
  CC      drivers/firmware/efi/efi.o
  CC      drivers/firmware/efi/vars.o
  CC      drivers/firmware/efi/libstub/secureboot.o
  CC      drivers/gpu/drm/i915/gt/gen8_engine_cs.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_db_mgr.o
  CC      fs/seq_file.o
  CC      arch/x86/kernel/paravirt.o
  CC      drivers/gpu/drm/drm_lease.o
  CC      drivers/acpi/acpica/utcksum.o
  CC      drivers/cpufreq/cpufreq_governor_attr_set.o
  CC      drivers/acpi/thermal_lib.o
  CC      net/ipv6/esp6.o
  CC      drivers/clocksource/acpi_pm.o
  AR      drivers/net/ethernet/microchip/built-in.a
  CC      net/ipv6/sit.o
  CC      drivers/firmware/efi/libstub/tpm.o
  CC      net/ipv6/addrconf_core.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_engine_activity.o
  CC      drivers/md/dm-builtin.o
  CC      lib/genalloc.o
  CC      arch/x86/kernel/pvclock.o
  CC      kernel/regset.o
  CC      mm/early_ioremap.o
  CC      mm/secretmem.o
  CC      drivers/acpi/thermal.o
  CC      drivers/acpi/acpica/utcopy.o
  CC      drivers/net/ethernet/intel/e1000e/nvm.o
  CC      drivers/gpu/drm/i915/gt/gen8_ppgtt.o
  CC      drivers/firmware/efi/reboot.o
  AR      drivers/net/ethernet/mscc/built-in.a
  CC      net/ipv6/exthdrs_core.o
  CC      net/ipv6/ip6_checksum.o
  CC      drivers/firmware/efi/memattr.o
  CC      fs/xattr.o
  CC      drivers/md/dm-raid1.o
  CC      drivers/cpufreq/acpi-cpufreq.o
  CC      drivers/md/dm-log.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_hwconfig.o
  CC      mm/hmm.o
  AR      drivers/usb/host/built-in.a
  AR      drivers/net/ethernet/myricom/built-in.a
  AR      drivers/usb/built-in.a
  CC      arch/x86/kernel/pcspeaker.o
  CC      net/ipv4/ip_tunnel_core.o
  CC      lib/percpu_counter.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_id_mgr.o
  CC      kernel/ksyms_common.o
  CC      drivers/gpu/drm/i915/gt/intel_breadcrumbs.o
  CC      drivers/firmware/efi/libstub/file.o
  CC      drivers/net/ethernet/intel/e1000e/phy.o
  CC      net/mac80211/fils_aead.o
  CC      drivers/clocksource/i8253.o
  AR      drivers/net/ethernet/natsemi/built-in.a
  CC      net/ipv6/ip6_icmp.o
  CC      drivers/cpufreq/amd-pstate.o
  CC      drivers/acpi/acpica/utexcep.o
  CC      arch/x86/kernel/check.o
  CC      mm/memfd.o
  CC      mm/ptdump.o
  AR      drivers/net/ethernet/intel/e1000/built-in.a
  AR      drivers/firmware/psci/built-in.a
  CC      fs/libfs.o
  CC      drivers/acpi/nhlt.o
  CC      drivers/net/ethernet/intel/e1000e/param.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_klv_helpers.o
  CC      drivers/gpu/drm/drm_managed.o
  CC      drivers/hid/usbhid/hid-core.o
  CC      drivers/gpu/drm/i915/gt/intel_context.o
  CC      drivers/hid/usbhid/hiddev.o
  CC      drivers/acpi/acpica/utdebug.o
  AR      fs/nfs/built-in.a
  CC      kernel/groups.o
  CC      net/ipv4/gre_offload.o
  CC      drivers/cpufreq/amd-pstate-trace.o
  CC      net/mac80211/cfg.o
  CC      lib/audit.o
  AR      drivers/firmware/qcom/built-in.a
  AR      drivers/clocksource/built-in.a
  CC      arch/x86/kernel/uprobes.o
  CC      kernel/kcmp.o
  CC      drivers/mailbox/mailbox.o
  AR      drivers/platform/x86/amd/built-in.a
  CC      drivers/net/ethernet/intel/e1000e/ethtool.o
  AR      drivers/platform/x86/intel/built-in.a
  CC      drivers/platform/x86/wmi.o
  AR      drivers/perf/built-in.a
  CC      drivers/hid/hid-core.o
  CC      drivers/gpu/drm/i915/gt/intel_context_sseu.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_log.o
  CC      fs/fs-writeback.o
  AR      drivers/net/ethernet/neterion/built-in.a
  CC      drivers/net/ethernet/intel/e1000e/netdev.o
  CC      drivers/firmware/efi/libstub/mem.o
  CC      net/ipv4/metrics.o
  CC      net/ipv6/output_core.o
  CC      net/mac80211/ethtool.o
  CC      drivers/acpi/acpi_memhotplug.o
  CC      drivers/acpi/acpica/utdecode.o
  AR      drivers/hwtracing/intel_th/built-in.a
  CC      kernel/freezer.o
  AR      drivers/firmware/smccc/built-in.a
  CC      drivers/hid/usbhid/hid-pidff.o
  CC      drivers/cpufreq/intel_pstate.o
  CC      kernel/profile.o
  CC      drivers/hid/hid-input.o
  CC      mm/execmem.o
  CC      arch/x86/kernel/perf_regs.o
  CC      lib/syscall.o
  CC      net/ipv4/netlink.o
  CC      drivers/md/dm-region-hash.o
  AR      drivers/android/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_guc_pc.o
  CC      drivers/mailbox/pcc.o
  CC      net/mac80211/rx.o
  AR      drivers/firmware/tegra/built-in.a
  AR      drivers/nvmem/layouts/built-in.a
  CC      drivers/nvmem/core.o
  CC      drivers/acpi/acpica/utdelete.o
  CC      fs/pnode.o
  AR      drivers/platform/surface/built-in.a
  CC      drivers/gpu/drm/drm_mm.o
  CC      arch/x86/kernel/tracepoint.o
  CC      fs/splice.o
  CC      net/ipv6/protocol.o
  CC      drivers/firmware/efi/tpm.o
  AR      drivers/net/ethernet/netronome/built-in.a
  CC      net/ipv4/nexthop.o
  CC      net/ipv4/udp_tunnel_stub.o
  AR      drivers/net/ethernet/ni/built-in.a
  CC      net/ipv4/ip_tunnel.o
  AR      drivers/net/ethernet/marvell/built-in.a
  CC      net/mac80211/spectmgmt.o
  CC      drivers/firmware/efi/libstub/random.o
  CC      kernel/stacktrace.o
  CC      fs/sync.o
  CC      drivers/net/ethernet/intel/e1000e/ptp.o
  CC      drivers/md/dm-zero.o
  CC      lib/errname.o
  CC      drivers/platform/x86/wmi-bmof.o
  CC      drivers/hid/hid-quirks.o
  CC      drivers/acpi/acpica/uterror.o
  AR      mm/built-in.a
  CC      drivers/gpu/drm/drm_mode_config.o
  CC      net/ipv4/sysctl_net_ipv4.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_submit.o
  CC      lib/nlattr.o
  CC      drivers/firmware/efi/memmap.o
  CC      arch/x86/kernel/itmt.o
  CC      drivers/firmware/efi/libstub/randomalloc.o
  CC      drivers/gpu/drm/drm_mode_object.o
  CC      kernel/dma.o
  CC      drivers/firmware/efi/capsule.o
  CC      drivers/gpu/drm/i915/gt/intel_engine_cs.o
  CC      arch/x86/kernel/umip.o
  AR      drivers/firmware/xilinx/built-in.a
  CC      net/ipv6/ip6_offload.o
  AR      drivers/mailbox/built-in.a
  CC      drivers/acpi/ioapic.o
  CC [M]  drivers/gpu/drm/xe/xe_heci_gsc.o
  CC      drivers/hid/hid-debug.o
  CC      drivers/acpi/acpica/uteval.o
  CC      fs/utimes.o
  CC      arch/x86/kernel/unwind_frame.o
  CC      drivers/firmware/dmi_scan.o
  CC      drivers/firmware/dmi-id.o
  CC      drivers/gpu/drm/drm_modes.o
  CC      net/ipv4/proc.o
  CC      drivers/platform/x86/eeepc-laptop.o
  AR      drivers/hid/usbhid/built-in.a
  CC      drivers/firmware/efi/esrt.o
  AR      drivers/md/built-in.a
  CC      drivers/firmware/efi/libstub/pci.o
  CC      kernel/smp.o
  CC      drivers/acpi/acpica/utglobal.o
  CC      fs/d_path.o
  CC [M]  drivers/gpu/drm/xe/xe_huc.o
  CC      drivers/net/ethernet/nvidia/forcedeth.o
  CC      drivers/gpu/drm/i915/gt/intel_engine_heartbeat.o
  CC      drivers/acpi/acpica/uthex.o
  CC      net/ipv6/tcpv6_offload.o
  AR      drivers/nvmem/built-in.a
  CC      kernel/uid16.o
  CC      drivers/firmware/memmap.o
  CC [M]  drivers/gpu/drm/xe/xe_hw_engine.o
  CC      net/ipv6/exthdrs_offload.o
  CC      drivers/acpi/battery.o
  AR      drivers/net/ethernet/oki-semi/built-in.a
  CC      drivers/firmware/efi/libstub/skip_spaces.o
  CC      net/ipv6/inet6_hashtables.o
  CC      net/ipv6/mcast_snoop.o
  CC      fs/stack.o
  CC      drivers/acpi/bgrt.o
  CC      drivers/gpu/drm/i915/gt/intel_engine_pm.o
  CC      drivers/acpi/acpica/utids.o
  AR      drivers/net/ethernet/packetengines/built-in.a
  CC      kernel/kallsyms.o
  CC      drivers/gpu/drm/i915/gt/intel_engine_user.o
  CC      net/ipv4/fib_rules.o
  CC      drivers/gpu/drm/i915/gt/intel_execlists_submission.o
  CC [M]  drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.o
  AR      arch/x86/kernel/built-in.a
  AR      arch/x86/built-in.a
  CC      drivers/firmware/efi/runtime-wrappers.o
  CC      drivers/platform/x86/p2sb.o
  CC      drivers/acpi/spcr.o
  CC      lib/cpu_rmap.o
  CC      drivers/firmware/efi/libstub/lib-cmdline.o
  CC      drivers/acpi/acpica/utinit.o
  CC      drivers/firmware/efi/libstub/lib-ctype.o
  CC      net/mac80211/tx.o
  CC      drivers/hid/hidraw.o
  AR      drivers/cpufreq/built-in.a
  CC      drivers/gpu/drm/drm_modeset_lock.o
  CC      lib/dynamic_queue_limits.o
  CC      drivers/gpu/drm/drm_plane.o
  CC      drivers/firmware/efi/libstub/alignedmem.o
  CC      net/ipv4/ipmr.o
  CC      drivers/gpu/drm/i915/gt/intel_ggtt.o
  CC      drivers/gpu/drm/drm_prime.o
  CC [M]  drivers/gpu/drm/xe/xe_hw_engine_group.o
  CC      kernel/acct.o
  CC      drivers/acpi/acpica/utlock.o
  AR      drivers/net/ethernet/qlogic/built-in.a
  CC      lib/glob.o
  CC      drivers/firmware/efi/libstub/relocate.o
  CC      fs/fs_struct.o
  CC      net/ipv4/ipmr_base.o
  CC [M]  drivers/gpu/drm/xe/xe_hw_fence.o
  CC      drivers/acpi/acpica/utmath.o
  CC      drivers/gpu/drm/i915/gt/intel_ggtt_fencing.o
  CC      kernel/vmcore_info.o
  CC      net/mac80211/key.o
  AR      drivers/net/ethernet/qualcomm/emac/built-in.a
  AR      drivers/net/ethernet/qualcomm/built-in.a
  CC      drivers/hid/hid-generic.o
  CC      drivers/net/ethernet/realtek/8139too.o
  AR      drivers/platform/x86/built-in.a
  CC      fs/statfs.o
  AR      drivers/platform/built-in.a
  CC      lib/strncpy_from_user.o
  CC      drivers/hid/hid-a4tech.o
  CC [M]  drivers/gpu/drm/xe/xe_irq.o
  CC      drivers/firmware/efi/libstub/printk.o
  CC      drivers/gpu/drm/drm_print.o
  CC      drivers/acpi/acpica/utmisc.o
  CC      drivers/net/ethernet/realtek/r8169_main.o
  CC      net/mac80211/util.o
  AR      drivers/net/ethernet/renesas/built-in.a
  CC      kernel/elfcorehdr.o
  CC      drivers/gpu/drm/drm_property.o
  CC [M]  drivers/gpu/drm/xe/xe_lrc.o
  CC      fs/fs_pin.o
  CC      lib/strnlen_user.o
  CC      net/mac80211/parse.o
  CC      lib/net_utils.o
  CC      fs/nsfs.o
  CC      net/ipv4/syncookies.o
  AR      drivers/net/ethernet/rdc/built-in.a
  CC      drivers/firmware/efi/capsule-loader.o
  CC      drivers/net/ethernet/realtek/r8169_firmware.o
  CC      drivers/hid/hid-apple.o
  CC      drivers/firmware/efi/libstub/vsprintf.o
  CC      net/mac80211/wme.o
  CC      lib/sg_pool.o
  CC      drivers/acpi/acpica/utmutex.o
  CC      drivers/net/ethernet/realtek/r8169_phy_config.o
  AR      drivers/net/ethernet/rocker/built-in.a
  CC      drivers/acpi/acpica/utnonansi.o
  AR      drivers/net/ethernet/samsung/built-in.a
  CC      kernel/crash_reserve.o
  AR      net/ipv6/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_migrate.o
  CC      drivers/firmware/efi/libstub/x86-stub.o
  CC      fs/fs_types.o
  CC      drivers/gpu/drm/i915/gt/intel_gt.o
  CC      drivers/gpu/drm/drm_rect.o
  CC      net/mac80211/chan.o
  CC      drivers/firmware/efi/libstub/smbios.o
  CC      drivers/firmware/efi/earlycon.o
  CC      drivers/gpu/drm/drm_syncobj.o
  CC [M]  drivers/gpu/drm/xe/xe_mmio.o
  CC      net/ipv4/tunnel4.o
  CC      net/ipv4/ipconfig.o
  CC      drivers/gpu/drm/drm_sysfs.o
  CC      net/ipv4/netfilter.o
  CC [M]  drivers/gpu/drm/xe/xe_mocs.o
  AR      drivers/net/ethernet/seeq/built-in.a
  CC      kernel/kexec_core.o
  STUBCPY drivers/firmware/efi/libstub/alignedmem.stub.o
  CC      drivers/acpi/acpica/utobject.o
  CC [M]  drivers/gpu/drm/xe/xe_module.o
  CC      net/ipv4/tcp_cubic.o
  CC      lib/stackdepot.o
  CC      drivers/hid/hid-belkin.o
  AR      drivers/net/ethernet/silan/built-in.a
  CC      kernel/crash_core.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.o
  CC      drivers/gpu/drm/drm_trace_points.o
  CC      net/ipv4/tcp_sigpool.o
  STUBCPY drivers/firmware/efi/libstub/efi-stub-helper.stub.o
  CC      fs/fs_context.o
  CC      lib/asn1_decoder.o
  CC      net/ipv4/cipso_ipv4.o
  CC      kernel/kexec.o
  CC      drivers/acpi/acpica/utosi.o
  CC      drivers/gpu/drm/drm_vblank.o
  CC      kernel/utsname.o
  GEN     lib/oid_registry_data.c
  AR      drivers/net/ethernet/sis/built-in.a
  CC      fs/fs_parser.o
  CC      net/mac80211/trace.o
  CC [M]  drivers/gpu/drm/xe/xe_oa.o
  CC      drivers/gpu/drm/drm_vblank_work.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_ccs_mode.o
  STUBCPY drivers/firmware/efi/libstub/file.stub.o
  STUBCPY drivers/firmware/efi/libstub/gop.stub.o
  STUBCPY drivers/firmware/efi/libstub/lib-cmdline.stub.o
  CC      drivers/acpi/acpica/utownerid.o
  STUBCPY drivers/firmware/efi/libstub/lib-ctype.stub.o
  STUBCPY drivers/firmware/efi/libstub/mem.stub.o
  STUBCPY drivers/firmware/efi/libstub/pci.stub.o
  CC      kernel/pid_namespace.o
  STUBCPY drivers/firmware/efi/libstub/printk.stub.o
  AR      drivers/firmware/efi/built-in.a
  CC      lib/ucs2_string.o
  STUBCPY drivers/firmware/efi/libstub/random.stub.o
  STUBCPY drivers/firmware/efi/libstub/randomalloc.stub.o
  CC      kernel/stop_machine.o
  STUBCPY drivers/firmware/efi/libstub/relocate.stub.o
  STUBCPY drivers/firmware/efi/libstub/secureboot.stub.o
  STUBCPY drivers/firmware/efi/libstub/skip_spaces.stub.o
  AR      drivers/net/ethernet/sfc/built-in.a
  AR      drivers/net/ethernet/smsc/built-in.a
  STUBCPY drivers/firmware/efi/libstub/smbios.stub.o
  CC      fs/fsopen.o
  CC      lib/sbitmap.o
  STUBCPY drivers/firmware/efi/libstub/tpm.stub.o
  STUBCPY drivers/firmware/efi/libstub/vsprintf.stub.o
  CC      drivers/hid/hid-cherry.o
  STUBCPY drivers/firmware/efi/libstub/x86-stub.stub.o
  AR      drivers/firmware/efi/libstub/lib.a
  CC      net/mac80211/mlme.o
  CC [M]  drivers/gpu/drm/xe/xe_observation.o
  AR      drivers/firmware/built-in.a
  CC      net/mac80211/tdls.o
  CC      net/mac80211/ocb.o
  CC      lib/group_cpus.o
  AR      drivers/net/ethernet/socionext/built-in.a
  CC      drivers/acpi/acpica/utpredef.o
  CC      net/mac80211/airtime.o
  CC      net/ipv4/xfrm4_policy.o
  AR      drivers/net/ethernet/intel/e1000e/built-in.a
  AR      drivers/net/ethernet/intel/built-in.a
  CC      fs/init.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_clock_utils.o
  CC      net/ipv4/xfrm4_state.o
  CC      net/mac80211/eht.o
  CC      kernel/audit.o
  CC [M]  drivers/gpu/drm/xe/xe_pat.o
  CC      drivers/gpu/drm/drm_vma_manager.o
  CC      lib/fw_table.o
  CC [M]  drivers/gpu/drm/xe/xe_pci.o
  CC      fs/kernel_read_file.o
  AR      drivers/net/ethernet/nvidia/built-in.a
  CC      drivers/acpi/acpica/utresdecode.o
  CC      kernel/auditfilter.o
  CC      drivers/hid/hid-chicony.o
  AR      drivers/net/ethernet/stmicro/built-in.a
  CC      drivers/gpu/drm/drm_writeback.o
  CC      drivers/hid/hid-cypress.o
  CC      net/ipv4/xfrm4_input.o
  CC      drivers/acpi/acpica/utresrc.o
  AR      drivers/net/ethernet/sun/built-in.a
  CC      fs/mnt_idmapping.o
  CC      net/ipv4/xfrm4_output.o
  CC      fs/remap_range.o
  CC      drivers/hid/hid-ezkey.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_debugfs.o
  CC      drivers/gpu/drm/drm_panel.o
  AR      lib/lib.a
  AR      drivers/net/ethernet/tehuti/built-in.a
  GEN     lib/crc32table.h
  CC      drivers/acpi/acpica/utstate.o
  AR      drivers/net/ethernet/ti/built-in.a
  CC      drivers/gpu/drm/drm_pci.o
  AR      drivers/net/ethernet/vertexcom/built-in.a
  CC      net/ipv4/xfrm4_protocol.o
  CC      lib/oid_registry.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.o
  CC      fs/pidfs.o
  CC      drivers/hid/hid-gyration.o
  CC      drivers/acpi/acpica/utstring.o
  CC      drivers/gpu/drm/drm_debugfs.o
  AR      drivers/net/ethernet/via/built-in.a
  CC      drivers/gpu/drm/i915/gt/intel_gt_irq.o
  CC      lib/crc32.o
  CC      net/mac80211/led.o
  CC      kernel/auditsc.o
  CC      drivers/hid/hid-ite.o
  CC      fs/buffer.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_mcr.o
  AR      drivers/net/ethernet/wangxun/built-in.a
  CC      drivers/acpi/acpica/utstrsuppt.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_pm.o
  CC      fs/mpage.o
  CC      kernel/audit_watch.o
  CC      drivers/acpi/acpica/utstrtoul64.o
  CC      drivers/hid/hid-kensington.o
  CC [M]  drivers/gpu/drm/xe/xe_pcode.o
  CC      net/mac80211/pm.o
  CC      drivers/hid/hid-lg.o
  AR      drivers/net/ethernet/wiznet/built-in.a
  CC      drivers/gpu/drm/drm_debugfs_crc.o
  CC      drivers/acpi/acpica/utxface.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.o
  AR      lib/built-in.a
  CC      drivers/hid/hid-lgff.o
  CC      kernel/audit_fsnotify.o
  CC      net/mac80211/rc80211_minstrel_ht.o
  CC      drivers/gpu/drm/drm_panel_orientation_quirks.o
  CC      fs/proc_namespace.o
  AR      drivers/net/ethernet/xilinx/built-in.a
  CC      drivers/hid/hid-lg4ff.o
  CC      drivers/acpi/acpica/utxfinit.o
  CC      drivers/hid/hid-lg-g15.o
  CC      drivers/acpi/acpica/utxferror.o
  CC      drivers/gpu/drm/drm_buddy.o
  CC      fs/direct-io.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_pm_irq.o
  AR      drivers/net/ethernet/realtek/built-in.a
  AR      drivers/net/ethernet/xircom/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_pm.o
  CC      net/mac80211/wbrf.o
  CC      drivers/hid/hid-microsoft.o
  AR      drivers/net/ethernet/synopsys/built-in.a
  AR      drivers/net/ethernet/pensando/built-in.a
  AR      drivers/net/ethernet/built-in.a
  CC      fs/eventpoll.o
  CC      fs/anon_inodes.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_requests.o
  AR      drivers/net/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_preempt_fence.o
  CC      drivers/acpi/acpica/utxfmutex.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_sysfs.o
  CC      drivers/hid/hid-monterey.o
  CC      fs/signalfd.o
  CC      kernel/audit_tree.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.o
  CC      drivers/gpu/drm/drm_gem_shmem_helper.o
  AR      net/ipv4/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_pt.o
  CC      kernel/kprobes.o
  CC      drivers/gpu/drm/i915/gt/intel_gtt.o
  CC      drivers/hid/hid-ntrig.o
  CC [M]  drivers/gpu/drm/xe/xe_pt_walk.o
  CC      fs/timerfd.o
  CC      drivers/gpu/drm/i915/gt/intel_llc.o
  CC      drivers/gpu/drm/drm_atomic_helper.o
  CC      kernel/seccomp.o
  CC [M]  drivers/gpu/drm/xe/xe_pxp.o
  CC [M]  drivers/gpu/drm/xe/xe_pxp_debugfs.o
  CC      kernel/relay.o
  CC      drivers/hid/hid-pl.o
  AR      drivers/acpi/acpica/built-in.a
  AR      drivers/acpi/built-in.a
  CC      drivers/gpu/drm/i915/gt/intel_lrc.o
  CC      drivers/gpu/drm/drm_atomic_state_helper.o
  CC      fs/eventfd.o
  CC [M]  drivers/gpu/drm/xe/xe_pxp_submit.o
  CC      kernel/utsname_sysctl.o
  CC      drivers/gpu/drm/drm_crtc_helper.o
  CC      fs/aio.o
  CC      drivers/gpu/drm/i915/gt/intel_migrate.o
  CC      kernel/delayacct.o
  CC [M]  drivers/gpu/drm/xe/xe_query.o
  CC      drivers/hid/hid-petalynx.o
  CC      kernel/taskstats.o
  CC      drivers/gpu/drm/drm_damage_helper.o
  CC      drivers/gpu/drm/i915/gt/intel_mocs.o
  CC      fs/locks.o
  CC [M]  drivers/gpu/drm/xe/xe_range_fence.o
  CC      drivers/hid/hid-redragon.o
  CC [M]  drivers/gpu/drm/xe/xe_reg_sr.o
  CC      fs/binfmt_misc.o
  CC      kernel/tsacct.o
  CC [M]  drivers/gpu/drm/xe/xe_reg_whitelist.o
  CC      drivers/gpu/drm/drm_flip_work.o
  CC      drivers/gpu/drm/i915/gt/intel_ppgtt.o
  CC      drivers/hid/hid-samsung.o
  CC      drivers/gpu/drm/drm_format_helper.o
  CC      drivers/hid/hid-sony.o
  CC [M]  drivers/gpu/drm/xe/xe_ring_ops.o
  CC      fs/binfmt_script.o
  CC      drivers/gpu/drm/i915/gt/intel_rc6.o
  CC [M]  drivers/gpu/drm/xe/xe_rtp.o
  CC      fs/binfmt_elf.o
  CC      drivers/gpu/drm/drm_gem_atomic_helper.o
  CC [M]  drivers/gpu/drm/xe/xe_sa.o
  CC      kernel/tracepoint.o
  CC      drivers/hid/hid-sunplus.o
  CC      kernel/irq_work.o
  CC      drivers/gpu/drm/i915/gt/intel_region_lmem.o
  CC      kernel/static_call.o
  CC [M]  drivers/gpu/drm/xe/xe_sched_job.o
  CC [M]  drivers/gpu/drm/xe/xe_step.o
  CC      drivers/hid/hid-topseed.o
  CC      drivers/gpu/drm/drm_gem_framebuffer_helper.o
  CC      drivers/gpu/drm/i915/gt/intel_renderstate.o
  CC      kernel/padata.o
  CC      drivers/gpu/drm/drm_kms_helper_common.o
  CC      drivers/gpu/drm/i915/gt/intel_reset.o
  CC [M]  drivers/gpu/drm/xe/xe_survivability_mode.o
  CC      fs/mbcache.o
  CC      kernel/jump_label.o
  CC      drivers/gpu/drm/i915/gt/intel_ring.o
  CC [M]  drivers/gpu/drm/xe/xe_sync.o
  CC      drivers/gpu/drm/drm_modeset_helper.o
  CC      kernel/context_tracking.o
  CC      drivers/gpu/drm/i915/gt/intel_ring_submission.o
  CC      fs/posix_acl.o
  CC      drivers/gpu/drm/i915/gt/intel_rps.o
  CC      drivers/gpu/drm/drm_plane_helper.o
  CC      kernel/iomem.o
  CC      kernel/rseq.o
  CC [M]  drivers/gpu/drm/xe/xe_tile.o
  CC      drivers/gpu/drm/drm_probe_helper.o
  CC      fs/coredump.o
  CC [M]  drivers/gpu/drm/xe/xe_tile_sysfs.o
  CC      drivers/gpu/drm/drm_self_refresh_helper.o
  CC      fs/drop_caches.o
  CC      drivers/gpu/drm/i915/gt/intel_sa_media.o
  CC      drivers/gpu/drm/drm_simple_kms_helper.o
  CC [M]  drivers/gpu/drm/xe/xe_trace.o
  CC      drivers/gpu/drm/i915/gt/intel_sseu.o
  CC      drivers/gpu/drm/bridge/panel.o
  CC      fs/sysctls.o
  CC      drivers/gpu/drm/i915/gt/intel_sseu_debugfs.o
  CC      fs/fhandle.o
  CC      drivers/gpu/drm/drm_mipi_dsi.o
  CC [M]  drivers/gpu/drm/xe/xe_trace_bo.o
  CC      drivers/gpu/drm/i915/gt/intel_timeline.o
  CC [M]  drivers/gpu/drm/drm_exec.o
  CC [M]  drivers/gpu/drm/xe/xe_trace_guc.o
  CC      drivers/gpu/drm/i915/gt/intel_tlb.o
  CC [M]  drivers/gpu/drm/drm_gpuvm.o
  CC      drivers/gpu/drm/i915/gt/intel_wopcm.o
  CC      drivers/gpu/drm/i915/gt/intel_workarounds.o
  CC [M]  drivers/gpu/drm/xe/xe_trace_lrc.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_stolen_mgr.o
  AR      drivers/hid/built-in.a
  CC      drivers/gpu/drm/i915/gt/shmem_utils.o
  CC [M]  drivers/gpu/drm/drm_suballoc.o
  CC      drivers/gpu/drm/i915/gt/sysfs_engines.o
  CC      drivers/gpu/drm/i915/gt/intel_ggtt_gmch.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_sys_mgr.o
  CC [M]  drivers/gpu/drm/drm_gem_ttm_helper.o
  CC      drivers/gpu/drm/i915/gt/gen6_renderstate.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_vram_mgr.o
  CC      drivers/gpu/drm/i915/gt/gen7_renderstate.o
  CC [M]  drivers/gpu/drm/xe/xe_tuning.o
  CC      drivers/gpu/drm/i915/gt/gen8_renderstate.o
  CC [M]  drivers/gpu/drm/xe/xe_uc.o
  CC      drivers/gpu/drm/i915/gt/gen9_renderstate.o
  CC [M]  drivers/gpu/drm/xe/xe_uc_fw.o
  CC [M]  drivers/gpu/drm/xe/xe_vm.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_busy.o
  CC [M]  drivers/gpu/drm/xe/xe_vram.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_clflush.o
  CC [M]  drivers/gpu/drm/xe/xe_vram_freq.o
  AR      kernel/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_vsec.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_context.o
  CC [M]  drivers/gpu/drm/xe/xe_wa.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_create.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_dmabuf.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_domain.o
  CC [M]  drivers/gpu/drm/xe/xe_wait_user_fence.o
  CC [M]  drivers/gpu/drm/xe/xe_wopcm.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o
  LD [M]  drivers/gpu/drm/drm_suballoc_helper.o
  CC [M]  drivers/gpu/drm/xe/xe_hmm.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_internal.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_lmem.o
  CC [M]  drivers/gpu/drm/xe/xe_hwmon.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_mman.o
  CC [M]  drivers/gpu/drm/xe/xe_pmu.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_object.o
  LD [M]  drivers/gpu/drm/drm_ttm_helper.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_sriov_vf.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_relay.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_pages.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_phys.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_pm.o
  CC [M]  drivers/gpu/drm/xe/xe_memirq.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_region.o
  CC [M]  drivers/gpu/drm/xe/xe_sriov.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_shmem.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_shrinker.o
  CC [M]  drivers/gpu/drm/xe/xe_sriov_vf.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_stolen.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_throttle.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/gem/i915_gem_tiling.o
  CC [M]  drivers/gpu/drm/xe/display/intel_bo.o
  AR      fs/built-in.a
  CC [M]  drivers/gpu/drm/xe/display/intel_fb_bo.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_ttm.o
  CC [M]  drivers/gpu/drm/xe/display/intel_fbdev_fb.o
  CC [M]  drivers/gpu/drm/xe/display/xe_display.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_ttm_move.o
  CC [M]  drivers/gpu/drm/xe/display/xe_display_misc.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_userptr.o
  CC [M]  drivers/gpu/drm/xe/display/xe_display_rps.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_wait.o
  CC [M]  drivers/gpu/drm/xe/display/xe_display_wa.o
  CC      drivers/gpu/drm/i915/gem/i915_gemfs.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_active.o
  CC      drivers/gpu/drm/i915/i915_cmd_parser.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/i915_deps.o
  CC      drivers/gpu/drm/i915/i915_gem.o
  CC      drivers/gpu/drm/i915/i915_gem_evict.o
  CC      drivers/gpu/drm/i915/i915_gem_gtt.o
  CC [M]  drivers/gpu/drm/xe/display/xe_tdf.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-soc/intel_rom.o
  CC      drivers/gpu/drm/i915/i915_gem_ww.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      drivers/gpu/drm/i915/i915_query.o
  CC      drivers/gpu/drm/i915/i915_request.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/i915_scheduler.o
  CC      drivers/gpu/drm/i915/i915_trace_points.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_backlight.o
  CC      drivers/gpu/drm/i915/i915_ttm_buddy_manager.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_bios.o
  CC      drivers/gpu/drm/i915/i915_vma.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_bw.o
  CC      drivers/gpu/drm/i915/i915_vma_resource.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_cdclk.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_gsc_fw.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_gsc_proxy.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_cmtg.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_debugfs.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_heci_cmd_submit.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_guc.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_guc_ads.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_color.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_guc_capture.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_guc_ct.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_combo_phy.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_connector.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_guc_fw.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_crtc.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_guc_hwconfig.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_crtc_state_dump.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_cursor.o
  CC      drivers/gpu/drm/i915/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/i915-display/intel_cx0_phy.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_guc_submission.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_ddi.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/i915-display/intel_ddi_buf_trans.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_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/i915-display/intel_display_conversion.o
  CC      drivers/gpu/drm/i915/gt/intel_gsc.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_device.o
  CC      drivers/gpu/drm/i915/i915_hwmon.o
  CC      drivers/gpu/drm/i915/display/hsw_ips.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_driver.o
  CC      drivers/gpu/drm/i915/display/i9xx_plane.o
  CC      drivers/gpu/drm/i915/display/i9xx_display_sr.o
  CC      drivers/gpu/drm/i915/display/i9xx_wm.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_irq.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      drivers/gpu/drm/i915/display/intel_alpm.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_power_map.o
  AR      net/mac80211/built-in.a
  AR      net/built-in.a
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_power_well.o
  CC      drivers/gpu/drm/i915/display/intel_atomic.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_trace.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_wa.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dkl_phy.o
  CC      drivers/gpu/drm/i915/display/intel_atomic_plane.o
  CC      drivers/gpu/drm/i915/display/intel_audio.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dmc.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dmc_wl.o
  CC      drivers/gpu/drm/i915/display/intel_bios.o
  CC      drivers/gpu/drm/i915/display/intel_bo.o
  CC      drivers/gpu/drm/i915/display/intel_bw.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp.o
  CC      drivers/gpu/drm/i915/display/intel_cdclk.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 [M]  drivers/gpu/drm/xe/i915-display/intel_dp_hdcp.o
  CC      drivers/gpu/drm/i915/display/intel_cmtg.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp_link_training.o
  CC      drivers/gpu/drm/i915/display/intel_color.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp_mst.o
  CC      drivers/gpu/drm/i915/display/intel_combo_phy.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp_test.o
  CC      drivers/gpu/drm/i915/display/intel_connector.o
  CC      drivers/gpu/drm/i915/display/intel_crtc.o
  CC      drivers/gpu/drm/i915/display/intel_crtc_state_dump.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dpll.o
  CC      drivers/gpu/drm/i915/display/intel_cursor.o
  CC      drivers/gpu/drm/i915/display/intel_display.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dpll_mgr.o
  CC      drivers/gpu/drm/i915/display/intel_display_conversion.o
  CC      drivers/gpu/drm/i915/display/intel_display_driver.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_display_irq.o
  CC      drivers/gpu/drm/i915/display/intel_display_params.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dsb.o
  CC      drivers/gpu/drm/i915/display/intel_display_power.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dsi.o
  CC      drivers/gpu/drm/i915/display/intel_display_power_map.o
  CC      drivers/gpu/drm/i915/display/intel_display_power_well.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dsi_dcs_backlight.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dsi_vbt.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_encoder.o
  CC      drivers/gpu/drm/i915/display/intel_display_snapshot.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fb.o
  CC      drivers/gpu/drm/i915/display/intel_display_wa.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fbc.o
  CC      drivers/gpu/drm/i915/display/intel_dmc.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fdi.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fifo_underrun.o
  CC      drivers/gpu/drm/i915/display/intel_dmc_wl.o
  CC      drivers/gpu/drm/i915/display/intel_dpio_phy.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_frontbuffer.o
  CC      drivers/gpu/drm/i915/display/intel_dpll.o
  CC      drivers/gpu/drm/i915/display/intel_dpll_mgr.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_global_state.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_gmbus.o
  CC      drivers/gpu/drm/i915/display/intel_dpt.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hdcp.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hdcp_gsc_message.o
  CC      drivers/gpu/drm/i915/display/intel_dpt_common.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hdmi.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hotplug.o
  CC      drivers/gpu/drm/i915/display/intel_drrs.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hotplug_irq.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hti.o
  CC      drivers/gpu/drm/i915/display/intel_dsb.o
  CC      drivers/gpu/drm/i915/display/intel_dsb_buffer.o
  CC      drivers/gpu/drm/i915/display/intel_fb.o
  CC      drivers/gpu/drm/i915/display/intel_fb_bo.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_link_bw.o
  CC      drivers/gpu/drm/i915/display/intel_fb_pin.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_lspcon.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_modeset_lock.o
  CC      drivers/gpu/drm/i915/display/intel_fbc.o
  CC      drivers/gpu/drm/i915/display/intel_fdi.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_modeset_setup.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_modeset_verify.o
  CC      drivers/gpu/drm/i915/display/intel_global_state.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_panel.o
  CC      drivers/gpu/drm/i915/display/intel_hdcp.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_pfit.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_pmdemand.o
  CC      drivers/gpu/drm/i915/display/intel_hdcp_gsc.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_pps.o
  CC      drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.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_hotplug.o
  CC      drivers/gpu/drm/i915/display/intel_hotplug_irq.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_quirks.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 [M]  drivers/gpu/drm/xe/i915-display/intel_snps_hdmi_pll.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_snps_phy.o
  CC      drivers/gpu/drm/i915/display/intel_lpe_audio.o
  CC      drivers/gpu/drm/i915/display/intel_modeset_lock.o
  CC      drivers/gpu/drm/i915/display/intel_modeset_setup.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_tc.o
  CC      drivers/gpu/drm/i915/display/intel_modeset_verify.o
  CC      drivers/gpu/drm/i915/display/intel_overlay.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_vblank.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_vdsc.o
  CC      drivers/gpu/drm/i915/display/intel_pch_display.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_vga.o
  CC      drivers/gpu/drm/i915/display/intel_pch_refclk.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_vrr.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_wm.o
  CC [M]  drivers/gpu/drm/xe/i915-display/skl_scaler.o
  CC [M]  drivers/gpu/drm/xe/i915-display/skl_universal_plane.o
  CC      drivers/gpu/drm/i915/display/intel_plane_initial.o
  CC [M]  drivers/gpu/drm/xe/i915-display/skl_watermark.o
  CC      drivers/gpu/drm/i915/display/intel_pmdemand.o
  CC      drivers/gpu/drm/i915/display/intel_psr.o
  CC      drivers/gpu/drm/i915/display/intel_quirks.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_acpi.o
  CC      drivers/gpu/drm/i915/display/intel_sprite.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_opregion.o
  CC [M]  drivers/gpu/drm/xe/xe_debugfs.o
  CC      drivers/gpu/drm/i915/display/intel_sprite_uapi.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.o
  CC      drivers/gpu/drm/i915/display/intel_tc.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_stats.o
  CC      drivers/gpu/drm/i915/display/intel_vblank.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_debugfs.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/xe_huc_debugfs.o
  CC      drivers/gpu/drm/i915/display/skl_scaler.o
  CC [M]  drivers/gpu/drm/xe/xe_uc_debugfs.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_display_debugfs.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_display_debugfs_params.o
  CC      drivers/gpu/drm/i915/display/intel_pipe_crc.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_pipe_crc.o
  CC      drivers/gpu/drm/i915/display/dvo_ch7017.o
  CC      drivers/gpu/drm/i915/display/dvo_ch7xxx.o
  CC      drivers/gpu/drm/i915/display/dvo_ivch.o
  CC      drivers/gpu/drm/i915/display/dvo_ns2501.o
  CC      drivers/gpu/drm/i915/display/dvo_sil164.o
  CC      drivers/gpu/drm/i915/display/dvo_tfp410.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      drivers/gpu/drm/i915/display/intel_backlight.o
  CC      drivers/gpu/drm/i915/display/intel_crt.o
  CC      drivers/gpu/drm/i915/display/intel_cx0_phy.o
  CC      drivers/gpu/drm/i915/display/intel_ddi.o
  CC      drivers/gpu/drm/i915/display/intel_ddi_buf_trans.o
  CC      drivers/gpu/drm/i915/display/intel_display_device.o
  CC      drivers/gpu/drm/i915/display/intel_display_trace.o
  CC      drivers/gpu/drm/i915/display/intel_dkl_phy.o
  CC      drivers/gpu/drm/i915/display/intel_dp.o
  CC      drivers/gpu/drm/i915/display/intel_dp_aux.o
  CC      drivers/gpu/drm/i915/display/intel_dp_aux_backlight.o
  CC      drivers/gpu/drm/i915/display/intel_dp_hdcp.o
  CC      drivers/gpu/drm/i915/display/intel_dp_link_training.o
  CC      drivers/gpu/drm/i915/display/intel_dp_mst.o
  CC      drivers/gpu/drm/i915/display/intel_dp_test.o
  CC      drivers/gpu/drm/i915/display/intel_dsi.o
  CC      drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.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_encoder.o
  CC      drivers/gpu/drm/i915/display/intel_gmbus.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      drivers/gpu/drm/i915/display/intel_panel.o
  CC      drivers/gpu/drm/i915/display/intel_pfit.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_snps_hdmi_pll.o
  CC      drivers/gpu/drm/i915/display/intel_snps_phy.o
  CC      drivers/gpu/drm/i915/display/intel_tv.o
  CC      drivers/gpu/drm/i915/display/intel_vdsc.o
  CC      drivers/gpu/drm/i915/display/intel_vrr.o
  CC      drivers/gpu/drm/i915/display/vlv_dsi.o
  CC      drivers/gpu/drm/i915/display/vlv_dsi_pll.o
  CC      drivers/gpu/drm/i915/i915_perf.o
  CC      drivers/gpu/drm/i915/pxp/intel_pxp.o
  CC      drivers/gpu/drm/i915/pxp/intel_pxp_huc.o
  CC      drivers/gpu/drm/i915/pxp/intel_pxp_tee.o
  CC      drivers/gpu/drm/i915/i915_gpu_error.o
  CC      drivers/gpu/drm/i915/i915_vgpu.o
  LD [M]  drivers/gpu/drm/xe/xe.o
  AR      drivers/gpu/drm/i915/built-in.a
  AR      drivers/gpu/drm/built-in.a
  AR      drivers/gpu/built-in.a
  AR      drivers/built-in.a
  AR      built-in.a
  AR      vmlinux.a
  LD      vmlinux.o
  OBJCOPY modules.builtin.modinfo
  GEN     modules.builtin
  MODPOST Module.symvers
  CC      .vmlinux.export.o
  CC [M]  fs/efivarfs/efivarfs.mod.o
  CC [M]  .module-common.o
  CC [M]  drivers/gpu/drm/drm_exec.mod.o
  CC [M]  drivers/gpu/drm/drm_gpuvm.mod.o
  CC [M]  drivers/gpu/drm/drm_suballoc_helper.mod.o
  CC [M]  drivers/gpu/drm/drm_ttm_helper.mod.o
  CC [M]  drivers/gpu/drm/scheduler/gpu-sched.mod.o
  CC [M]  drivers/gpu/drm/xe/xe.mod.o
  CC [M]  drivers/thermal/intel/x86_pkg_temp_thermal.mod.o
  CC [M]  net/netfilter/nf_log_syslog.mod.o
  CC [M]  net/netfilter/xt_mark.mod.o
  CC [M]  net/netfilter/xt_nat.mod.o
  CC [M]  net/netfilter/xt_LOG.mod.o
  CC [M]  net/netfilter/xt_MASQUERADE.mod.o
  CC [M]  net/netfilter/xt_addrtype.mod.o
  CC [M]  net/ipv4/netfilter/iptable_nat.mod.o
  LD [M]  fs/efivarfs/efivarfs.ko
  LD [M]  drivers/gpu/drm/drm_exec.ko
  LD [M]  net/netfilter/xt_mark.ko
  LD [M]  net/netfilter/xt_nat.ko
  LD [M]  net/netfilter/nf_log_syslog.ko
  LD [M]  drivers/gpu/drm/xe/xe.ko
  LD [M]  drivers/gpu/drm/scheduler/gpu-sched.ko
  LD [M]  drivers/gpu/drm/drm_gpuvm.ko
  LD [M]  net/ipv4/netfilter/iptable_nat.ko
  LD [M]  drivers/gpu/drm/drm_ttm_helper.ko
  LD [M]  net/netfilter/xt_addrtype.ko
  LD [M]  net/netfilter/xt_MASQUERADE.ko
  LD [M]  drivers/gpu/drm/drm_suballoc_helper.ko
  LD [M]  drivers/thermal/intel/x86_pkg_temp_thermal.ko
  LD [M]  net/netfilter/xt_LOG.ko
  UPD     include/generated/utsversion.h
  CC      init/version-timestamp.o
  KSYMS   .tmp_vmlinux0.kallsyms.S
  AS      .tmp_vmlinux0.kallsyms.o
  LD      .tmp_vmlinux1
  NM      .tmp_vmlinux1.syms
  KSYMS   .tmp_vmlinux1.kallsyms.S
  AS      .tmp_vmlinux1.kallsyms.o
  LD      .tmp_vmlinux2
  NM      .tmp_vmlinux2.syms
  KSYMS   .tmp_vmlinux2.kallsyms.S
  AS      .tmp_vmlinux2.kallsyms.o
  LD      vmlinux
  NM      System.map
  SORTTAB vmlinux
  RELOCS  arch/x86/boot/compressed/vmlinux.relocs
  RSTRIP  vmlinux
  CC      arch/x86/boot/a20.o
  AS      arch/x86/boot/bioscall.o
  CC      arch/x86/boot/cmdline.o
  AS      arch/x86/boot/copy.o
  HOSTCC  arch/x86/boot/mkcpustr
  CC      arch/x86/boot/cpuflags.o
  CC      arch/x86/boot/cpucheck.o
  CC      arch/x86/boot/early_serial_console.o
  CC      arch/x86/boot/edd.o
  CC      arch/x86/boot/main.o
  CC      arch/x86/boot/memory.o
  CC      arch/x86/boot/pm.o
  AS      arch/x86/boot/pmjump.o
  CC      arch/x86/boot/printf.o
  CC      arch/x86/boot/regs.o
  CC      arch/x86/boot/string.o
  CC      arch/x86/boot/tty.o
  CC      arch/x86/boot/video.o
  CC      arch/x86/boot/video-mode.o
  CC      arch/x86/boot/version.o
  CC      arch/x86/boot/video-vga.o
  CC      arch/x86/boot/video-vesa.o
  CC      arch/x86/boot/video-bios.o
  HOSTCC  arch/x86/boot/tools/build
  CPUSTR  arch/x86/boot/cpustr.h
  CC      arch/x86/boot/cpu.o
  LDS     arch/x86/boot/compressed/vmlinux.lds
  AS      arch/x86/boot/compressed/kernel_info.o
  AS      arch/x86/boot/compressed/head_32.o
  VOFFSET arch/x86/boot/compressed/../voffset.h
  CC      arch/x86/boot/compressed/string.o
  CC      arch/x86/boot/compressed/cmdline.o
  CC      arch/x86/boot/compressed/error.o
  OBJCOPY arch/x86/boot/compressed/vmlinux.bin
  HOSTCC  arch/x86/boot/compressed/mkpiggy
  CC      arch/x86/boot/compressed/cpuflags.o
  CC      arch/x86/boot/compressed/early_serial_console.o
  CC      arch/x86/boot/compressed/kaslr.o
  CC      arch/x86/boot/compressed/acpi.o
  CC      arch/x86/boot/compressed/efi.o
  GZIP    arch/x86/boot/compressed/vmlinux.bin.gz
  CC      arch/x86/boot/compressed/misc.o
  MKPIGGY arch/x86/boot/compressed/piggy.S
  AS      arch/x86/boot/compressed/piggy.o
  LD      arch/x86/boot/compressed/vmlinux
  ZOFFSET arch/x86/boot/zoffset.h
  OBJCOPY arch/x86/boot/vmlinux.bin
  AS      arch/x86/boot/header.o
  LD      arch/x86/boot/setup.elf
  OBJCOPY arch/x86/boot/setup.bin
  BUILD   arch/x86/boot/bzImage
Kernel: arch/x86/boot/bzImage is ready  (#1)
run-parts: executing /workspace/ci/hooks/20-kernel-doc
+ SRC_DIR=/workspace/kernel
+ cd /workspace/kernel
+ xargs ./scripts/kernel-doc -Werror -none include/uapi/drm/xe_drm.h
+ find drivers/gpu/drm/xe/ -name '*.[ch]' -not -path 'drivers/gpu/drm/xe/display/*'
All hooks done



^ permalink raw reply	[flat|nested] 23+ messages in thread

* ✓ CI.checksparse: success for PMU support for engine activity (rev3)
  2025-02-14 10:08 [PATCH v7 0/5] PMU support for engine activity Riana Tauro
                   ` (9 preceding siblings ...)
  2025-02-14 10:15 ` ✓ CI.Hooks: " Patchwork
@ 2025-02-14 10:16 ` Patchwork
  2025-02-14 10:35 ` ✓ Xe.CI.BAT: " Patchwork
  2025-02-15  6:36 ` ✗ Xe.CI.Full: failure " Patchwork
  12 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-02-14 10:16 UTC (permalink / raw)
  To: Riana Tauro; +Cc: intel-xe

== Series Details ==

Series: PMU support for engine activity (rev3)
URL   : https://patchwork.freedesktop.org/series/144408/
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 57457d93f156d8b4bdff8d138127d81b8f97d8c9
Sparse version: 0.6.4 (Ubuntu: 0.6.4-4ubuntu3)
Fast mode used, each commit won't be checked separately.
Okay!

+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel



^ permalink raw reply	[flat|nested] 23+ messages in thread

* ✓ Xe.CI.BAT: success for PMU support for engine activity (rev3)
  2025-02-14 10:08 [PATCH v7 0/5] PMU support for engine activity Riana Tauro
                   ` (10 preceding siblings ...)
  2025-02-14 10:16 ` ✓ CI.checksparse: " Patchwork
@ 2025-02-14 10:35 ` Patchwork
  2025-02-15  6:36 ` ✗ Xe.CI.Full: failure " Patchwork
  12 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-02-14 10:35 UTC (permalink / raw)
  To: Riana Tauro; +Cc: intel-xe

[-- Attachment #1: Type: text/plain, Size: 1897 bytes --]

== Series Details ==

Series: PMU support for engine activity (rev3)
URL   : https://patchwork.freedesktop.org/series/144408/
State : success

== Summary ==

CI Bug Log - changes from xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9_BAT -> xe-pw-144408v3_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (9 -> 8)
------------------------------

  Missing    (1): bat-adlp-vm 

Known issues
------------

  Here are the changes found in xe-pw-144408v3_BAT that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@xe_pat@pat-index-xelp@render:
    - bat-adlp-vf:        [PASS][1] -> [DMESG-WARN][2] ([Intel XE#3970]) +1 other test dmesg-warn
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/bat-adlp-vf/igt@xe_pat@pat-index-xelp@render.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/bat-adlp-vf/igt@xe_pat@pat-index-xelp@render.html

  
#### Possible fixes ####

  * igt@xe_intel_bb@render@render-ymajor-256:
    - bat-adlp-vf:        [DMESG-WARN][3] ([Intel XE#3970]) -> [PASS][4] +2 other tests pass
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/bat-adlp-vf/igt@xe_intel_bb@render@render-ymajor-256.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/bat-adlp-vf/igt@xe_intel_bb@render@render-ymajor-256.html

  
  [Intel XE#3970]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3970


Build changes
-------------

  * Linux: xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9 -> xe-pw-144408v3

  IGT_8229: 8229
  xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9: 57457d93f156d8b4bdff8d138127d81b8f97d8c9
  xe-pw-144408v3: 144408v3

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/index.html

[-- Attachment #2: Type: text/html, Size: 2560 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v7 3/5] drm/xe/guc: Expose engine activity only for supported GuC version
  2025-02-14 10:08 ` [PATCH v7 3/5] drm/xe/guc: Expose engine activity only for supported GuC version Riana Tauro
@ 2025-02-14 11:32   ` Michal Wajdeczko
  0 siblings, 0 replies; 23+ messages in thread
From: Michal Wajdeczko @ 2025-02-14 11:32 UTC (permalink / raw)
  To: Riana Tauro, intel-xe
  Cc: anshuman.gupta, umesh.nerlige.ramappa, lucas.demarchi,
	vinay.belgaumkar, soham.purkait, John Harrison



On 14.02.2025 11:08, Riana Tauro wrote:
> Engine activity is supported only on GuC submission version >= 1.14.1
> Allow enabling/reading engine activity only on supported
> GuC versions. Warn once if not supported.
> 
> v2: use guc interface version (John)
> v3: use debug log (Umesh)
> v4: use variable for supported and use gt logs
>     use a friendlier log message (Michal)
> v5: fix kernel-doc
>     do not continue in init if not supported (Michal)
> v6: remove hardcoding values (Michal)
> 
> Cc: John Harrison <John.C.Harrison@Intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
> Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_guc_engine_activity.c   | 51 ++++++++++++++++++-
>  drivers/gpu/drm/xe/xe_guc_engine_activity.h   |  1 +
>  .../gpu/drm/xe/xe_guc_engine_activity_types.h |  3 ++
>  3 files changed, 53 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_guc_engine_activity.c b/drivers/gpu/drm/xe/xe_guc_engine_activity.c
> index a424527eddb6..2a457dcf31d5 100644
> --- a/drivers/gpu/drm/xe/xe_guc_engine_activity.c
> +++ b/drivers/gpu/drm/xe/xe_guc_engine_activity.c
> @@ -95,6 +95,29 @@ static void free_engine_activity_buffers(struct engine_activity_buffer *buffer)
>  	xe_bo_unpin_map_no_vm(buffer->activity_bo);
>  }
>  
> +static bool is_engine_activity_supported(struct xe_guc *guc)
> +{
> +	struct xe_uc_fw_version *version = &guc->fw.versions.found[XE_UC_FW_VER_COMPATIBILITY];
> +	struct xe_uc_fw_version required = { 1, 14, 1 };

nit: could use designated initializers to always be on the safe side

> +	struct xe_gt *gt = guc_to_gt(guc);
> +
> +	if (IS_SRIOV_VF(gt_to_xe(gt))) {
> +		xe_gt_info(gt, "engine activity stats not supported on VFs\n");
> +		return false;
> +	}
> +
> +	/* engine activity stats is supported from GuC interface version (1.14.1) */
> +	if (GUC_SUBMIT_VER(guc) < MAKE_GUC_VER_STRUCT(required)) {
> +		xe_gt_info(gt,
> +			   "engine activity stats unsupported in GuC interface v%u.%u.%u, need v%u.%u.%u or higher\n",
> +			   version->major, version->minor, version->patch, required.major,
> +			   required.minor, required.patch);
> +		return false;
> +	}

Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com>


^ permalink raw reply	[flat|nested] 23+ messages in thread

* ✗ Xe.CI.Full: failure for PMU support for engine activity (rev3)
  2025-02-14 10:08 [PATCH v7 0/5] PMU support for engine activity Riana Tauro
                   ` (11 preceding siblings ...)
  2025-02-14 10:35 ` ✓ Xe.CI.BAT: " Patchwork
@ 2025-02-15  6:36 ` Patchwork
  12 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-02-15  6:36 UTC (permalink / raw)
  To: Riana Tauro; +Cc: intel-xe

[-- Attachment #1: Type: text/plain, Size: 43907 bytes --]

== Series Details ==

Series: PMU support for engine activity (rev3)
URL   : https://patchwork.freedesktop.org/series/144408/
State : failure

== Summary ==

CI Bug Log - changes from xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9_full -> xe-pw-144408v3_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with xe-pw-144408v3_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in xe-pw-144408v3_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Participating hosts (4 -> 4)
------------------------------

  No changes in participating hosts

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in xe-pw-144408v3_full:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_pm_rpm@basic-rte:
    - shard-adlp:         [PASS][1] -> [DMESG-WARN][2] +4 other tests dmesg-warn
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-adlp-4/igt@kms_pm_rpm@basic-rte.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-adlp-3/igt@kms_pm_rpm@basic-rte.html

  
Known issues
------------

  Here are the changes found in xe-pw-144408v3_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-d-dp-2-4-rc-ccs-cc:
    - shard-dg2-set2:     NOTRUN -> [SKIP][3] ([Intel XE#2550] / [Intel XE#3767]) +15 other tests skip
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-432/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-d-dp-2-4-rc-ccs-cc.html

  * igt@kms_async_flips@crc@pipe-d-hdmi-a-3:
    - shard-bmg:          NOTRUN -> [DMESG-WARN][4] ([Intel XE#4172]) +5 other tests dmesg-warn
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-5/igt@kms_async_flips@crc@pipe-d-hdmi-a-3.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-a-hdmi-a-6:
    - shard-dg2-set2:     [PASS][5] -> [FAIL][6] ([Intel XE#3908]) +1 other test fail
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-464/igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-a-hdmi-a-6.html
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-466/igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-a-hdmi-a-6.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs@pipe-d-hdmi-a-3:
    - shard-bmg:          NOTRUN -> [SKIP][7] ([Intel XE#2652] / [Intel XE#787]) +3 other tests skip
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-5/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs@pipe-d-hdmi-a-3.html

  * igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs@pipe-d-dp-4:
    - shard-dg2-set2:     NOTRUN -> [SKIP][8] ([Intel XE#455] / [Intel XE#787]) +17 other tests skip
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-463/igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs@pipe-d-dp-4.html

  * igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-b-dp-4:
    - shard-dg2-set2:     NOTRUN -> [SKIP][9] ([Intel XE#787]) +113 other tests skip
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-433/igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-b-dp-4.html

  * igt@kms_content_protection@srm@pipe-a-dp-2:
    - shard-dg2-set2:     NOTRUN -> [DMESG-FAIL][10] ([Intel XE#1033])
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-432/igt@kms_content_protection@srm@pipe-a-dp-2.html

  * igt@kms_cursor_crc@cursor-rapid-movement-512x170:
    - shard-dg2-set2:     NOTRUN -> [SKIP][11] ([Intel XE#308])
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-463/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-legacy:
    - shard-bmg:          [PASS][12] -> [SKIP][13] ([Intel XE#2291]) +3 other tests skip
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-7/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-4/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size:
    - shard-dg2-set2:     [PASS][14] -> [SKIP][15] ([Intel XE#309])
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-434/igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size.html
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-464/igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size.html

  * igt@kms_display_modes@extended-mode-basic:
    - shard-dg2-set2:     [PASS][16] -> [SKIP][17] ([Intel XE#4302])
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-434/igt@kms_display_modes@extended-mode-basic.html
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-464/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible:
    - shard-bmg:          [PASS][18] -> [SKIP][19] ([Intel XE#2316]) +4 other tests skip
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-5/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible.html
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-4/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible.html

  * igt@kms_flip@2x-flip-vs-expired-vblank@ab-dp2-hdmi-a3:
    - shard-bmg:          NOTRUN -> [FAIL][20] ([Intel XE#3321]) +7 other tests fail
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-1/igt@kms_flip@2x-flip-vs-expired-vblank@ab-dp2-hdmi-a3.html

  * igt@kms_flip@2x-plain-flip-ts-check-interruptible:
    - shard-dg2-set2:     [PASS][21] -> [SKIP][22] ([Intel XE#310]) +2 other tests skip
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-434/igt@kms_flip@2x-plain-flip-ts-check-interruptible.html
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-464/igt@kms_flip@2x-plain-flip-ts-check-interruptible.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@d-dp2:
    - shard-dg2-set2:     NOTRUN -> [DMESG-WARN][23] ([Intel XE#1033]) +14 other tests dmesg-warn
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-432/igt@kms_flip@basic-flip-vs-wf_vblank@d-dp2.html

  * igt@kms_flip@blocking-wf_vblank@a-hdmi-a1:
    - shard-adlp:         [PASS][24] -> [FAIL][25] ([Intel XE#2882]) +1 other test fail
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-adlp-9/igt@kms_flip@blocking-wf_vblank@a-hdmi-a1.html
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-adlp-6/igt@kms_flip@blocking-wf_vblank@a-hdmi-a1.html

  * igt@kms_flip@flip-vs-dpms-off-vs-modeset-interruptible:
    - shard-bmg:          [PASS][26] -> [DMESG-WARN][27] ([Intel XE#2955])
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-4/igt@kms_flip@flip-vs-dpms-off-vs-modeset-interruptible.html
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-1/igt@kms_flip@flip-vs-dpms-off-vs-modeset-interruptible.html

  * igt@kms_flip@flip-vs-expired-vblank:
    - shard-dg2-set2:     [PASS][28] -> [FAIL][29] ([Intel XE#301])
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-434/igt@kms_flip@flip-vs-expired-vblank.html
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-463/igt@kms_flip@flip-vs-expired-vblank.html

  * igt@kms_flip@flip-vs-expired-vblank@c-dp4:
    - shard-dg2-set2:     [PASS][30] -> [FAIL][31] ([Intel XE#301] / [Intel XE#3321]) +1 other test fail
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-434/igt@kms_flip@flip-vs-expired-vblank@c-dp4.html
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-463/igt@kms_flip@flip-vs-expired-vblank@c-dp4.html

  * igt@kms_flip@modeset-vs-vblank-race-interruptible:
    - shard-lnl:          [PASS][32] -> [FAIL][33] ([Intel XE#3098]) +1 other test fail
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-lnl-8/igt@kms_flip@modeset-vs-vblank-race-interruptible.html
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-lnl-5/igt@kms_flip@modeset-vs-vblank-race-interruptible.html

  * igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling:
    - shard-bmg:          [PASS][34] -> [DMESG-WARN][35] ([Intel XE#4172]) +17 other tests dmesg-warn
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-4/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling.html
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-1/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling.html

  * igt@kms_frontbuffer_tracking@drrs-1p-primscrn-indfb-pgflip-blt:
    - shard-dg2-set2:     NOTRUN -> [SKIP][36] ([Intel XE#651])
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-463/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-indfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff:
    - shard-dg2-set2:     [PASS][37] -> [SKIP][38] ([Intel XE#656]) +3 other tests skip
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-434/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-464/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-render:
    - shard-dg2-set2:     NOTRUN -> [SKIP][39] ([Intel XE#653]) +3 other tests skip
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-463/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-render.html

  * igt@kms_plane_scaling@2x-scaler-multi-pipe:
    - shard-bmg:          [PASS][40] -> [SKIP][41] ([Intel XE#2571])
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-5/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-4/igt@kms_plane_scaling@2x-scaler-multi-pipe.html

  * igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format:
    - shard-dg2-set2:     [PASS][42] -> [DMESG-WARN][43] ([Intel XE#1033] / [Intel XE#2566])
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-433/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format.html
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-432/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format.html

  * igt@kms_psr@psr-cursor-blt:
    - shard-dg2-set2:     NOTRUN -> [SKIP][44] ([Intel XE#2850] / [Intel XE#929])
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-463/igt@kms_psr@psr-cursor-blt.html

  * igt@kms_universal_plane@cursor-fb-leak@pipe-b-hdmi-a-1:
    - shard-adlp:         [PASS][45] -> [FAIL][46] ([Intel XE#899])
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-adlp-3/igt@kms_universal_plane@cursor-fb-leak@pipe-b-hdmi-a-1.html
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-adlp-2/igt@kms_universal_plane@cursor-fb-leak@pipe-b-hdmi-a-1.html

  * igt@xe_eudebug@basic-vm-access:
    - shard-dg2-set2:     NOTRUN -> [SKIP][47] ([Intel XE#2905])
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-463/igt@xe_eudebug@basic-vm-access.html

  * igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate:
    - shard-dg2-set2:     [PASS][48] -> [SKIP][49] ([Intel XE#1392]) +3 other tests skip
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-433/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate.html
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-432/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate.html

  * igt@xe_exec_fault_mode@twice-userptr-invalidate-race:
    - shard-dg2-set2:     NOTRUN -> [SKIP][50] ([Intel XE#288]) +1 other test skip
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-463/igt@xe_exec_fault_mode@twice-userptr-invalidate-race.html

  * igt@xe_exec_reset@gt-reset-stress:
    - shard-dg2-set2:     [PASS][51] -> [DMESG-WARN][52] ([Intel XE#4223])
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-464/igt@xe_exec_reset@gt-reset-stress.html
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-464/igt@xe_exec_reset@gt-reset-stress.html

  * igt@xe_exec_threads@threads-hang-userptr-rebind:
    - shard-dg2-set2:     [PASS][53] -> [DMESG-WARN][54] ([Intel XE#3876])
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-434/igt@xe_exec_threads@threads-hang-userptr-rebind.html
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-463/igt@xe_exec_threads@threads-hang-userptr-rebind.html

  * igt@xe_fault_injection@inject-fault-probe-function-xe_sriov_init:
    - shard-adlp:         [PASS][55] -> [DMESG-WARN][56] ([Intel XE#4173]) +1 other test dmesg-warn
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-adlp-4/igt@xe_fault_injection@inject-fault-probe-function-xe_sriov_init.html
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-adlp-3/igt@xe_fault_injection@inject-fault-probe-function-xe_sriov_init.html

  * igt@xe_pat@pat-index-xelpg:
    - shard-dg2-set2:     NOTRUN -> [SKIP][57] ([Intel XE#979])
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-463/igt@xe_pat@pat-index-xelpg.html

  * igt@xe_vm@mixed-userptr-binds-1611661312:
    - shard-dg2-set2:     [PASS][58] -> [DMESG-WARN][59] ([Intel XE#1033]) +4 other tests dmesg-warn
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-433/igt@xe_vm@mixed-userptr-binds-1611661312.html
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-434/igt@xe_vm@mixed-userptr-binds-1611661312.html

  * igt@xe_wedged@wedged-mode-toggle:
    - shard-lnl:          [PASS][60] -> [ABORT][61] ([Intel XE#3084])
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-lnl-8/igt@xe_wedged@wedged-mode-toggle.html
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-lnl-5/igt@xe_wedged@wedged-mode-toggle.html

  
#### Possible fixes ####

  * igt@kms_async_flips@alternate-sync-async-flip:
    - shard-bmg:          [FAIL][62] ([Intel XE#827]) -> [PASS][63] +1 other test pass
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-5/igt@kms_async_flips@alternate-sync-async-flip.html
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-4/igt@kms_async_flips@alternate-sync-async-flip.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
    - shard-adlp:         [DMESG-FAIL][64] ([Intel XE#1033]) -> [PASS][65]
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-adlp-6/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-adlp-6/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html

  * igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic:
    - shard-bmg:          [SKIP][66] ([Intel XE#2291]) -> [PASS][67] +5 other tests pass
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-4/igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic.html
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-5/igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic.html

  * igt@kms_display_modes@extended-mode-basic:
    - shard-bmg:          [SKIP][68] ([Intel XE#4302]) -> [PASS][69]
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-4/igt@kms_display_modes@extended-mode-basic.html
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-1/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_flip@2x-blocking-wf_vblank@ab-hdmi-a6-dp4:
    - shard-dg2-set2:     [FAIL][70] ([Intel XE#886]) -> [PASS][71] +1 other test pass
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-466/igt@kms_flip@2x-blocking-wf_vblank@ab-hdmi-a6-dp4.html
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-434/igt@kms_flip@2x-blocking-wf_vblank@ab-hdmi-a6-dp4.html

  * igt@kms_flip@2x-dpms-vs-vblank-race@cd-dp2-hdmi-a3:
    - shard-bmg:          [DMESG-WARN][72] ([Intel XE#4172]) -> [PASS][73] +24 other tests pass
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-1/igt@kms_flip@2x-dpms-vs-vblank-race@cd-dp2-hdmi-a3.html
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-7/igt@kms_flip@2x-dpms-vs-vblank-race@cd-dp2-hdmi-a3.html

  * igt@kms_flip@2x-flip-vs-blocking-wf-vblank:
    - shard-bmg:          [FAIL][74] ([Intel XE#2882]) -> [PASS][75] +1 other test pass
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-5/igt@kms_flip@2x-flip-vs-blocking-wf-vblank.html
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-7/igt@kms_flip@2x-flip-vs-blocking-wf-vblank.html

  * igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible:
    - shard-dg2-set2:     [SKIP][76] ([Intel XE#310]) -> [PASS][77] +1 other test pass
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-464/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible.html
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-466/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible.html

  * igt@kms_flip@2x-flip-vs-suspend:
    - shard-bmg:          [DMESG-WARN][78] ([Intel XE#2955]) -> [PASS][79] +1 other test pass
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-1/igt@kms_flip@2x-flip-vs-suspend.html
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-7/igt@kms_flip@2x-flip-vs-suspend.html

  * igt@kms_flip@2x-plain-flip-ts-check-interruptible:
    - shard-bmg:          [SKIP][80] ([Intel XE#2316]) -> [PASS][81] +2 other tests pass
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-4/igt@kms_flip@2x-plain-flip-ts-check-interruptible.html
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-1/igt@kms_flip@2x-plain-flip-ts-check-interruptible.html

  * igt@kms_flip@blocking-wf_vblank:
    - shard-lnl:          [FAIL][82] ([Intel XE#886]) -> [PASS][83] +4 other tests pass
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-lnl-7/igt@kms_flip@blocking-wf_vblank.html
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-lnl-7/igt@kms_flip@blocking-wf_vblank.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-bmg:          [FAIL][84] ([Intel XE#3321]) -> [PASS][85] +1 other test pass
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-7/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-7/igt@kms_flip@flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a6:
    - shard-dg2-set2:     [FAIL][86] ([Intel XE#301]) -> [PASS][87] +2 other tests pass
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-466/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a6.html
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-434/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a6.html

  * igt@kms_flip@plain-flip-fb-recreate:
    - shard-adlp:         [FAIL][88] ([Intel XE#2882]) -> [PASS][89] +1 other test pass
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-adlp-9/igt@kms_flip@plain-flip-fb-recreate.html
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-adlp-8/igt@kms_flip@plain-flip-fb-recreate.html

  * igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling@pipe-a-valid-mode:
    - shard-dg2-set2:     [DMESG-WARN][90] ([Intel XE#1033]) -> [PASS][91] +6 other tests pass
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-433/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling@pipe-a-valid-mode.html
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-434/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling@pipe-a-valid-mode.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-render:
    - shard-dg2-set2:     [SKIP][92] ([Intel XE#656]) -> [PASS][93] +2 other tests pass
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-464/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-render.html
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-466/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-render.html

  * igt@kms_hdr@invalid-hdr:
    - shard-dg2-set2:     [SKIP][94] ([Intel XE#455]) -> [PASS][95]
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-434/igt@kms_hdr@invalid-hdr.html
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-463/igt@kms_hdr@invalid-hdr.html

  * igt@kms_plane_cursor@overlay@pipe-a-hdmi-a-6-size-64:
    - shard-dg2-set2:     [FAIL][96] ([Intel XE#616]) -> [PASS][97] +1 other test pass
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-466/igt@kms_plane_cursor@overlay@pipe-a-hdmi-a-6-size-64.html
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-434/igt@kms_plane_cursor@overlay@pipe-a-hdmi-a-6-size-64.html

  * igt@kms_plane_lowres@tiling-4:
    - shard-bmg:          [INCOMPLETE][98] ([Intel XE#4089]) -> [PASS][99]
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-4/igt@kms_plane_lowres@tiling-4.html
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-1/igt@kms_plane_lowres@tiling-4.html

  * igt@kms_plane_lowres@tiling-4@pipe-c-dp-2:
    - shard-bmg:          [INCOMPLETE][100] -> [PASS][101]
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-4/igt@kms_plane_lowres@tiling-4@pipe-c-dp-2.html
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-1/igt@kms_plane_lowres@tiling-4@pipe-c-dp-2.html

  * igt@kms_plane_lowres@tiling-none:
    - shard-dg2-set2:     [INCOMPLETE][102] -> [PASS][103]
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-432/igt@kms_plane_lowres@tiling-none.html
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-463/igt@kms_plane_lowres@tiling-none.html

  * igt@kms_plane_scaling@2x-scaler-multi-pipe:
    - shard-dg2-set2:     [SKIP][104] ([Intel XE#309]) -> [PASS][105] +2 other tests pass
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-464/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-466/igt@kms_plane_scaling@2x-scaler-multi-pipe.html

  * igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format:
    - shard-bmg:          [DMESG-WARN][106] ([Intel XE#2566] / [Intel XE#4172]) -> [PASS][107]
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-1/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format.html
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-7/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format.html

  * igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-1:
    - shard-adlp:         [FAIL][108] ([Intel XE#899]) -> [PASS][109]
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-adlp-3/igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-1.html
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-adlp-2/igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-1.html

  * igt@kms_vblank@ts-continuation-modeset:
    - shard-adlp:         [DMESG-WARN][110] -> [PASS][111] +1 other test pass
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-adlp-9/igt@kms_vblank@ts-continuation-modeset.html
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-adlp-8/igt@kms_vblank@ts-continuation-modeset.html

  * igt@kms_vblank@ts-continuation-suspend:
    - shard-adlp:         [DMESG-WARN][112] ([Intel XE#2953]) -> [PASS][113] +1 other test pass
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-adlp-8/igt@kms_vblank@ts-continuation-suspend.html
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-adlp-4/igt@kms_vblank@ts-continuation-suspend.html

  * igt@kms_vrr@cmrr@pipe-a-edp-1:
    - shard-lnl:          [FAIL][114] ([Intel XE#2159]) -> [PASS][115] +1 other test pass
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-lnl-7/igt@kms_vrr@cmrr@pipe-a-edp-1.html
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-lnl-5/igt@kms_vrr@cmrr@pipe-a-edp-1.html

  * igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-rebind:
    - shard-dg2-set2:     [SKIP][116] ([Intel XE#1392]) -> [PASS][117] +7 other tests pass
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-432/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-rebind.html
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-433/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-rebind.html

  * igt@xe_fault_injection@inject-fault-probe-function-xe_guc_ct_init:
    - shard-adlp:         [DMESG-WARN][118] ([Intel XE#4173]) -> [PASS][119] +1 other test pass
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-adlp-8/igt@xe_fault_injection@inject-fault-probe-function-xe_guc_ct_init.html
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-adlp-4/igt@xe_fault_injection@inject-fault-probe-function-xe_guc_ct_init.html

  
#### Warnings ####

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-6:
    - shard-dg2-set2:     [SKIP][120] ([Intel XE#787]) -> [SKIP][121] ([Intel XE#455] / [Intel XE#787])
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-434/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-6.html
   [121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-464/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-6.html

  * igt@kms_ccs@crc-sprite-planes-basic-y-tiled-ccs@pipe-d-hdmi-a-6:
    - shard-dg2-set2:     [SKIP][122] ([Intel XE#455] / [Intel XE#787]) -> [SKIP][123] ([Intel XE#787]) +2 other tests skip
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-464/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-ccs@pipe-d-hdmi-a-6.html
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-466/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-ccs@pipe-d-hdmi-a-6.html

  * igt@kms_content_protection@srm:
    - shard-bmg:          [DMESG-FAIL][124] ([Intel XE#4172]) -> [FAIL][125] ([Intel XE#1178]) +1 other test fail
   [124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-1/igt@kms_content_protection@srm.html
   [125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-7/igt@kms_content_protection@srm.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size:
    - shard-bmg:          [SKIP][126] ([Intel XE#2291]) -> [DMESG-WARN][127] ([Intel XE#4172]) +1 other test dmesg-warn
   [126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-4/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html
   [127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-1/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html

  * igt@kms_flip@2x-blocking-wf_vblank:
    - shard-bmg:          [FAIL][128] ([Intel XE#2882]) -> [SKIP][129] ([Intel XE#2316])
   [128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-7/igt@kms_flip@2x-blocking-wf_vblank.html
   [129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-4/igt@kms_flip@2x-blocking-wf_vblank.html

  * igt@kms_flip@2x-flip-vs-expired-vblank:
    - shard-bmg:          [SKIP][130] ([Intel XE#2316]) -> [DMESG-FAIL][131] ([Intel XE#4172])
   [130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-4/igt@kms_flip@2x-flip-vs-expired-vblank.html
   [131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-1/igt@kms_flip@2x-flip-vs-expired-vblank.html
    - shard-dg2-set2:     [DMESG-FAIL][132] ([Intel XE#1033]) -> [DMESG-WARN][133] ([Intel XE#1033])
   [132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-433/igt@kms_flip@2x-flip-vs-expired-vblank.html
   [133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-432/igt@kms_flip@2x-flip-vs-expired-vblank.html

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
    - shard-bmg:          [SKIP][134] ([Intel XE#2316]) -> [FAIL][135] ([Intel XE#3321])
   [134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-4/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html
   [135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-1/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip@2x-flip-vs-suspend-interruptible:
    - shard-bmg:          [SKIP][136] ([Intel XE#2316]) -> [DMESG-WARN][137] ([Intel XE#2955]) +1 other test dmesg-warn
   [136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-4/igt@kms_flip@2x-flip-vs-suspend-interruptible.html
   [137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-1/igt@kms_flip@2x-flip-vs-suspend-interruptible.html

  * igt@kms_flip@2x-flip-vs-wf_vblank-interruptible:
    - shard-bmg:          [DMESG-WARN][138] ([Intel XE#4172]) -> [SKIP][139] ([Intel XE#2316])
   [138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-1/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html
   [139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-4/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html

  * igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible:
    - shard-lnl:          [FAIL][140] ([Intel XE#3149] / [Intel XE#886]) -> [FAIL][141] ([Intel XE#886])
   [140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-lnl-2/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible.html
   [141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-lnl-5/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible.html

  * igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc:
    - shard-bmg:          [SKIP][142] ([Intel XE#2311]) -> [SKIP][143] ([Intel XE#2312]) +16 other tests skip
   [142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-7/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc.html
   [143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-4/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-onoff:
    - shard-dg2-set2:     [SKIP][144] ([Intel XE#651]) -> [SKIP][145] ([Intel XE#656]) +4 other tests skip
   [144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-434/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-onoff.html
   [145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-464/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc:
    - shard-bmg:          [SKIP][146] ([Intel XE#4141]) -> [SKIP][147] ([Intel XE#2312]) +9 other tests skip
   [146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-1/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc.html
   [147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff:
    - shard-bmg:          [SKIP][148] ([Intel XE#2312]) -> [SKIP][149] ([Intel XE#4141]) +9 other tests skip
   [148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
   [149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-1/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-render:
    - shard-bmg:          [SKIP][150] ([Intel XE#2312]) -> [SKIP][151] ([Intel XE#2311]) +18 other tests skip
   [150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-render.html
   [151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-move:
    - shard-dg2-set2:     [SKIP][152] ([Intel XE#656]) -> [SKIP][153] ([Intel XE#651]) +3 other tests skip
   [152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-464/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-move.html
   [153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-466/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-move.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render:
    - shard-bmg:          [SKIP][154] ([Intel XE#2313]) -> [SKIP][155] ([Intel XE#2312]) +14 other tests skip
   [154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render.html
   [155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-render:
    - shard-dg2-set2:     [SKIP][156] ([Intel XE#653]) -> [SKIP][157] ([Intel XE#656]) +2 other tests skip
   [156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-434/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-render.html
   [157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-464/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt:
    - shard-bmg:          [SKIP][158] ([Intel XE#2312]) -> [SKIP][159] ([Intel XE#2313]) +21 other tests skip
   [158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html
   [159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-fullscreen:
    - shard-dg2-set2:     [SKIP][160] ([Intel XE#656]) -> [SKIP][161] ([Intel XE#653]) +4 other tests skip
   [160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-464/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-fullscreen.html
   [161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-466/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-fullscreen.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-bmg:          [FAIL][162] ([Intel XE#1729]) -> [SKIP][163] ([Intel XE#2426])
   [162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-1/igt@kms_tiled_display@basic-test-pattern.html
   [163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-7/igt@kms_tiled_display@basic-test-pattern.html
    - shard-dg2-set2:     [SKIP][164] ([Intel XE#362]) -> [FAIL][165] ([Intel XE#1729])
   [164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-dg2-463/igt@kms_tiled_display@basic-test-pattern.html
   [165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-dg2-433/igt@kms_tiled_display@basic-test-pattern.html

  * igt@xe_pm@s4-vm-bind-prefetch:
    - shard-bmg:          [ABORT][166] ([Intel XE#4268]) -> [ABORT][167] ([Intel XE#4172] / [Intel XE#4268])
   [166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9/shard-bmg-4/igt@xe_pm@s4-vm-bind-prefetch.html
   [167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/shard-bmg-1/igt@xe_pm@s4-vm-bind-prefetch.html

  
  [Intel XE#1033]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1033
  [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
  [Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
  [Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
  [Intel XE#2159]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2159
  [Intel XE#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
  [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
  [Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
  [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
  [Intel XE#2550]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2550
  [Intel XE#2566]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2566
  [Intel XE#2571]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2571
  [Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
  [Intel XE#2882]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2882
  [Intel XE#2905]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2905
  [Intel XE#2953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2953
  [Intel XE#2955]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2955
  [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
  [Intel XE#308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/308
  [Intel XE#3084]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3084
  [Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
  [Intel XE#3098]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3098
  [Intel XE#310]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/310
  [Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
  [Intel XE#3321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3321
  [Intel XE#362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/362
  [Intel XE#3767]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3767
  [Intel XE#3876]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3876
  [Intel XE#3908]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3908
  [Intel XE#4089]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4089
  [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [Intel XE#4172]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4172
  [Intel XE#4173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4173
  [Intel XE#4223]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4223
  [Intel XE#4268]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4268
  [Intel XE#4302]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4302
  [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
  [Intel XE#616]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/616
  [Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
  [Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
  [Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
  [Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
  [Intel XE#827]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/827
  [Intel XE#886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/886
  [Intel XE#899]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/899
  [Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
  [Intel XE#979]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/979


Build changes
-------------

  * Linux: xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9 -> xe-pw-144408v3

  IGT_8229: 8229
  xe-2665-57457d93f156d8b4bdff8d138127d81b8f97d8c9: 57457d93f156d8b4bdff8d138127d81b8f97d8c9
  xe-pw-144408v3: 144408v3

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-144408v3/index.html

[-- Attachment #2: Type: text/html, Size: 51407 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v7 5/5] drm/xe/xe_pmu: Acquire forcewake on event init for engine events
  2025-02-14 10:08 ` [PATCH v7 5/5] drm/xe/xe_pmu: Acquire forcewake on event init for engine events Riana Tauro
  2025-02-14  9:50   ` Ghimiray, Himal Prasad
@ 2025-02-20 21:46   ` Lucas De Marchi
  2025-02-21  1:14     ` Umesh Nerlige Ramappa
  1 sibling, 1 reply; 23+ messages in thread
From: Lucas De Marchi @ 2025-02-20 21:46 UTC (permalink / raw)
  To: Riana Tauro
  Cc: intel-xe, anshuman.gupta, umesh.nerlige.ramappa, vinay.belgaumkar,
	soham.purkait, Rodrigo Vivi, Himal Prasad Ghimiray

On Fri, Feb 14, 2025 at 03:38:13PM +0530, Riana Tauro wrote:
>When the engine events are created, acquire GT forcewake to read gpm
>timestamp required for the events and release on event destroy. This
>cannot be done during read due to the raw spinlock held my pmu.
>
>v2: remove forcewake counting (Umesh)
>v3: remove extra space (Umesh)
>
>Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
>Signed-off-by: Riana Tauro <riana.tauro@intel.com>
>Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>---
> drivers/gpu/drm/xe/xe_pmu.c       | 52 +++++++++++++++++++++++++++++--
> drivers/gpu/drm/xe/xe_pmu_types.h |  4 +++
> 2 files changed, 54 insertions(+), 2 deletions(-)
>
>diff --git a/drivers/gpu/drm/xe/xe_pmu.c b/drivers/gpu/drm/xe/xe_pmu.c
>index dc89fa6d0ec5..67693d642f5a 100644
>--- a/drivers/gpu/drm/xe/xe_pmu.c
>+++ b/drivers/gpu/drm/xe/xe_pmu.c
>@@ -7,6 +7,7 @@
> #include <linux/device.h>
>
> #include "xe_device.h"
>+#include "xe_force_wake.h"
> #include "xe_gt_idle.h"
> #include "xe_guc_engine_activity.h"
> #include "xe_hw_engine.h"
>@@ -102,6 +103,37 @@ static struct xe_hw_engine *event_to_hwe(struct perf_event *event)
> 	return hwe;
> }
>
>+static bool is_engine_event(u64 config)
>+{
>+	unsigned int event_id = config_to_event_id(config);
>+
>+	return (event_id == XE_PMU_EVENT_ENGINE_TOTAL_TICKS ||
>+		event_id == XE_PMU_EVENT_ENGINE_ACTIVE_TICKS);
>+}
>+
>+static bool event_gt_forcewake(struct perf_event *event)
>+{
>+	struct xe_device *xe = container_of(event->pmu, typeof(*xe), pmu.base);
>+	u64 config = event->attr.config;
>+	struct xe_pmu *pmu = &xe->pmu;
>+	struct xe_gt *gt;
>+	unsigned int fw_ref;
>+
>+	if (!is_engine_event(config))
>+		return true;
>+
>+	gt = xe_device_get_gt(xe, config_to_gt_id(config));
>+
>+	fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
>+	if (!fw_ref)
>+		return false;
>+
>+	if (!pmu->fw_ref)
>+		pmu->fw_ref = fw_ref;

how this shared fw_ref is supposed to work for multiple
perf_event_open()?

fd1 = perf_event_open( ... gt=0 ...);

	event_get_forcewake()
		pmu->fw_ref = xe_force_wake_get()

fd2 = perf_event_open( ... gt=1 ...);

	event_get_forcewake()
		// get the forcewake, but don't save the ref

forcewake for gt1 is never put.


Or even multiple perf_event_open() for the same gt: we will not handle
the count correctly.

In summary I think this fw ref needs to be per event... an easy way to do
that is to use the event->pmu_private field, to be populated on init...

>+
>+	return true;
>+}
>+
> static bool event_supported(struct xe_pmu *pmu, unsigned int gt,
> 			    unsigned int id)
> {
>@@ -144,6 +176,13 @@ static bool event_param_valid(struct perf_event *event)
> static void xe_pmu_event_destroy(struct perf_event *event)
> {
> 	struct xe_device *xe = container_of(event->pmu, typeof(*xe), pmu.base);
>+	struct xe_pmu *pmu = &xe->pmu;
>+	struct xe_gt *gt;
>+
>+	if (pmu->fw_ref) {
>+		gt = xe_device_get_gt(xe, config_to_gt_id(event->attr.config));
>+		xe_force_wake_put(gt_to_fw(gt), pmu->fw_ref);
>+	}
>
> 	drm_WARN_ON(&xe->drm, event->parent);
> 	xe_pm_runtime_put(xe);
>@@ -183,18 +222,27 @@ static int xe_pmu_event_init(struct perf_event *event)
> 	if (!event->parent) {
> 		drm_dev_get(&xe->drm);
> 		xe_pm_runtime_get(xe);
>+		if (!event_gt_forcewake(event)) {

if you group an engine vs non-engine counter, this won't work I think.
Can we test it?

Lucas De Marchi

>+			xe_pm_runtime_put(xe);
>+			drm_dev_put(&xe->drm);
>+			return -EINVAL;
>+		}
> 		event->destroy = xe_pmu_event_destroy;
> 	}
>
> 	return 0;
> }
>
>-static u64 read_engine_events(struct xe_gt *gt, struct perf_event *event)
>+static u64 read_engine_events(struct xe_gt *gt, struct perf_event *event, u64 prev)
> {
> 	struct xe_device *xe = gt_to_xe(gt);
>+	struct xe_pmu *pmu = &xe->pmu;
> 	struct xe_hw_engine *hwe;
> 	u64 val = 0;
>
>+	if (!pmu->fw_ref)
>+		return prev;
>+
> 	hwe = event_to_hwe(event);
> 	if (!hwe)
> 		drm_warn(&xe->drm, "unknown engine\n");
>@@ -218,7 +266,7 @@ static u64 __xe_pmu_event_read(struct perf_event *event, u64 prev)
> 		return xe_gt_idle_residency_msec(&gt->gtidle);
> 	case XE_PMU_EVENT_ENGINE_ACTIVE_TICKS:
> 	case XE_PMU_EVENT_ENGINE_TOTAL_TICKS:
>-		return read_engine_events(gt, event);
>+		return read_engine_events(gt, event, prev);
> 	}
>
> 	return 0;
>diff --git a/drivers/gpu/drm/xe/xe_pmu_types.h b/drivers/gpu/drm/xe/xe_pmu_types.h
>index f5ba4d56622c..07c4e592106e 100644
>--- a/drivers/gpu/drm/xe/xe_pmu_types.h
>+++ b/drivers/gpu/drm/xe/xe_pmu_types.h
>@@ -30,6 +30,10 @@ struct xe_pmu {
> 	 * @name: Name as registered with perf core.
> 	 */
> 	const char *name;
>+	/**
>+	 * @fw_ref: force_wake ref
>+	 */
>+	unsigned int fw_ref;
> 	/**
> 	 * @supported_events: Bitmap of supported events, indexed by event id
> 	 */
>-- 
>2.47.1
>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v7 5/5] drm/xe/xe_pmu: Acquire forcewake on event init for engine events
  2025-02-20 21:46   ` Lucas De Marchi
@ 2025-02-21  1:14     ` Umesh Nerlige Ramappa
  2025-02-21  4:45       ` Lucas De Marchi
  0 siblings, 1 reply; 23+ messages in thread
From: Umesh Nerlige Ramappa @ 2025-02-21  1:14 UTC (permalink / raw)
  To: Lucas De Marchi
  Cc: Riana Tauro, intel-xe, anshuman.gupta, vinay.belgaumkar,
	soham.purkait, Rodrigo Vivi, Himal Prasad Ghimiray

On Thu, Feb 20, 2025 at 03:46:55PM -0600, Lucas De Marchi wrote:
>On Fri, Feb 14, 2025 at 03:38:13PM +0530, Riana Tauro wrote:
>>When the engine events are created, acquire GT forcewake to read gpm
>>timestamp required for the events and release on event destroy. This
>>cannot be done during read due to the raw spinlock held my pmu.
>>
>>v2: remove forcewake counting (Umesh)
>>v3: remove extra space (Umesh)
>>
>>Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>>Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
>>Signed-off-by: Riana Tauro <riana.tauro@intel.com>
>>Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>>---
>>drivers/gpu/drm/xe/xe_pmu.c       | 52 +++++++++++++++++++++++++++++--
>>drivers/gpu/drm/xe/xe_pmu_types.h |  4 +++
>>2 files changed, 54 insertions(+), 2 deletions(-)
>>
>>diff --git a/drivers/gpu/drm/xe/xe_pmu.c b/drivers/gpu/drm/xe/xe_pmu.c
>>index dc89fa6d0ec5..67693d642f5a 100644
>>--- a/drivers/gpu/drm/xe/xe_pmu.c
>>+++ b/drivers/gpu/drm/xe/xe_pmu.c
>>@@ -7,6 +7,7 @@
>>#include <linux/device.h>
>>
>>#include "xe_device.h"
>>+#include "xe_force_wake.h"
>>#include "xe_gt_idle.h"
>>#include "xe_guc_engine_activity.h"
>>#include "xe_hw_engine.h"
>>@@ -102,6 +103,37 @@ static struct xe_hw_engine *event_to_hwe(struct perf_event *event)
>>	return hwe;
>>}
>>
>>+static bool is_engine_event(u64 config)
>>+{
>>+	unsigned int event_id = config_to_event_id(config);
>>+
>>+	return (event_id == XE_PMU_EVENT_ENGINE_TOTAL_TICKS ||
>>+		event_id == XE_PMU_EVENT_ENGINE_ACTIVE_TICKS);
>>+}
>>+
>>+static bool event_gt_forcewake(struct perf_event *event)
>>+{
>>+	struct xe_device *xe = container_of(event->pmu, typeof(*xe), pmu.base);
>>+	u64 config = event->attr.config;
>>+	struct xe_pmu *pmu = &xe->pmu;
>>+	struct xe_gt *gt;
>>+	unsigned int fw_ref;
>>+
>>+	if (!is_engine_event(config))
>>+		return true;
>>+
>>+	gt = xe_device_get_gt(xe, config_to_gt_id(config));
>>+
>>+	fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
>>+	if (!fw_ref)
>>+		return false;
>>+
>>+	if (!pmu->fw_ref)
>>+		pmu->fw_ref = fw_ref;
>
>how this shared fw_ref is supposed to work for multiple
>perf_event_open()?

Agree, not ideal, but I don't see an issue. This forcewake is only being 
taken for engine-* events and the domain is always XE_FW_GT. Looking at 
xe_force_wake_get(), I see that it returns a mask of domains enabled. In 
this case, it would be the XE_FW_GT. The return value is just stored so 
that the corresponding event destroy can put the forcewake.

>
>fd1 = perf_event_open( ... gt=0 ...);
>
>	event_get_forcewake()
>		pmu->fw_ref = xe_force_wake_get()
>
>fd2 = perf_event_open( ... gt=1 ...);
>
>	event_get_forcewake()
>		// get the forcewake, but don't save the ref
>
>forcewake for gt1 is never put. 

pmu->fw_ref should be identical for all events taking this forcewake.

>
>
>Or even multiple perf_event_open() for the same gt: we will not handle
>the count correctly.

The count is actually handled in domain->ref in the forcewake 
implementation and note that forcewake is always taken for every engine 
event that is being initialized and hence always being put for every 
event that is destroyed. This code is not refcounting that.

>
>In summary I think this fw ref needs to be per event... an easy way to do
>that is to use the event->pmu_private field, to be populated on init...

I am not opposed to that since that makes it future proof so that we can 
indeed have events taking different forcewake domains, but let me know 
if I missed something here since I think this alone should still work.

>
>>+
>>+	return true;
>>+}
>>+
>>static bool event_supported(struct xe_pmu *pmu, unsigned int gt,
>>			    unsigned int id)
>>{
>>@@ -144,6 +176,13 @@ static bool event_param_valid(struct perf_event *event)
>>static void xe_pmu_event_destroy(struct perf_event *event)
>>{
>>	struct xe_device *xe = container_of(event->pmu, typeof(*xe), pmu.base);
>>+	struct xe_pmu *pmu = &xe->pmu;
>>+	struct xe_gt *gt;
>>+
>>+	if (pmu->fw_ref) {
>>+		gt = xe_device_get_gt(xe, config_to_gt_id(event->attr.config));
>>+		xe_force_wake_put(gt_to_fw(gt), pmu->fw_ref);
>>+	}
>>
>>	drm_WARN_ON(&xe->drm, event->parent);
>>	xe_pm_runtime_put(xe);
>>@@ -183,18 +222,27 @@ static int xe_pmu_event_init(struct perf_event *event)
>>	if (!event->parent) {
>>		drm_dev_get(&xe->drm);
>>		xe_pm_runtime_get(xe);
>>+		if (!event_gt_forcewake(event)) {
>
>if you group an engine vs non-engine counter, this won't work I think.
>Can we test it?

When you group events, init is called for each event. From the Xe PMU 
implementation perspective, grouping shouldn't be any different.

Regards,
Umesh

>
>Lucas De Marchi
>
>>+			xe_pm_runtime_put(xe);
>>+			drm_dev_put(&xe->drm);
>>+			return -EINVAL;
>>+		}
>>		event->destroy = xe_pmu_event_destroy;
>>	}
>>
>>	return 0;
>>}
>>
>>-static u64 read_engine_events(struct xe_gt *gt, struct perf_event *event)
>>+static u64 read_engine_events(struct xe_gt *gt, struct perf_event *event, u64 prev)
>>{
>>	struct xe_device *xe = gt_to_xe(gt);
>>+	struct xe_pmu *pmu = &xe->pmu;
>>	struct xe_hw_engine *hwe;
>>	u64 val = 0;
>>
>>+	if (!pmu->fw_ref)
>>+		return prev;
>>+
>>	hwe = event_to_hwe(event);
>>	if (!hwe)
>>		drm_warn(&xe->drm, "unknown engine\n");
>>@@ -218,7 +266,7 @@ static u64 __xe_pmu_event_read(struct perf_event *event, u64 prev)
>>		return xe_gt_idle_residency_msec(&gt->gtidle);
>>	case XE_PMU_EVENT_ENGINE_ACTIVE_TICKS:
>>	case XE_PMU_EVENT_ENGINE_TOTAL_TICKS:
>>-		return read_engine_events(gt, event);
>>+		return read_engine_events(gt, event, prev);
>>	}
>>
>>	return 0;
>>diff --git a/drivers/gpu/drm/xe/xe_pmu_types.h b/drivers/gpu/drm/xe/xe_pmu_types.h
>>index f5ba4d56622c..07c4e592106e 100644
>>--- a/drivers/gpu/drm/xe/xe_pmu_types.h
>>+++ b/drivers/gpu/drm/xe/xe_pmu_types.h
>>@@ -30,6 +30,10 @@ struct xe_pmu {
>>	 * @name: Name as registered with perf core.
>>	 */
>>	const char *name;
>>+	/**
>>+	 * @fw_ref: force_wake ref
>>+	 */
>>+	unsigned int fw_ref;
>>	/**
>>	 * @supported_events: Bitmap of supported events, indexed by event id
>>	 */
>>-- 
>>2.47.1
>>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v7 5/5] drm/xe/xe_pmu: Acquire forcewake on event init for engine events
  2025-02-21  1:14     ` Umesh Nerlige Ramappa
@ 2025-02-21  4:45       ` Lucas De Marchi
  2025-02-21  6:26         ` Riana Tauro
  2025-02-21  6:26         ` Lucas De Marchi
  0 siblings, 2 replies; 23+ messages in thread
From: Lucas De Marchi @ 2025-02-21  4:45 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa
  Cc: Riana Tauro, intel-xe, anshuman.gupta, vinay.belgaumkar,
	soham.purkait, Rodrigo Vivi, Himal Prasad Ghimiray

On Thu, Feb 20, 2025 at 05:14:07PM -0800, Umesh Nerlige Ramappa wrote:
>On Thu, Feb 20, 2025 at 03:46:55PM -0600, Lucas De Marchi wrote:
>>On Fri, Feb 14, 2025 at 03:38:13PM +0530, Riana Tauro wrote:
>>>When the engine events are created, acquire GT forcewake to read gpm
>>>timestamp required for the events and release on event destroy. This
>>>cannot be done during read due to the raw spinlock held my pmu.
>>>
>>>v2: remove forcewake counting (Umesh)
>>>v3: remove extra space (Umesh)
>>>
>>>Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>>>Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
>>>Signed-off-by: Riana Tauro <riana.tauro@intel.com>
>>>Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>>>---
>>>drivers/gpu/drm/xe/xe_pmu.c       | 52 +++++++++++++++++++++++++++++--
>>>drivers/gpu/drm/xe/xe_pmu_types.h |  4 +++
>>>2 files changed, 54 insertions(+), 2 deletions(-)
>>>
>>>diff --git a/drivers/gpu/drm/xe/xe_pmu.c b/drivers/gpu/drm/xe/xe_pmu.c
>>>index dc89fa6d0ec5..67693d642f5a 100644
>>>--- a/drivers/gpu/drm/xe/xe_pmu.c
>>>+++ b/drivers/gpu/drm/xe/xe_pmu.c
>>>@@ -7,6 +7,7 @@
>>>#include <linux/device.h>
>>>
>>>#include "xe_device.h"
>>>+#include "xe_force_wake.h"
>>>#include "xe_gt_idle.h"
>>>#include "xe_guc_engine_activity.h"
>>>#include "xe_hw_engine.h"
>>>@@ -102,6 +103,37 @@ static struct xe_hw_engine *event_to_hwe(struct perf_event *event)
>>>	return hwe;
>>>}
>>>
>>>+static bool is_engine_event(u64 config)
>>>+{
>>>+	unsigned int event_id = config_to_event_id(config);
>>>+
>>>+	return (event_id == XE_PMU_EVENT_ENGINE_TOTAL_TICKS ||
>>>+		event_id == XE_PMU_EVENT_ENGINE_ACTIVE_TICKS);
>>>+}
>>>+
>>>+static bool event_gt_forcewake(struct perf_event *event)
>>>+{
>>>+	struct xe_device *xe = container_of(event->pmu, typeof(*xe), pmu.base);
>>>+	u64 config = event->attr.config;
>>>+	struct xe_pmu *pmu = &xe->pmu;
>>>+	struct xe_gt *gt;
>>>+	unsigned int fw_ref;
>>>+
>>>+	if (!is_engine_event(config))
>>>+		return true;
>>>+
>>>+	gt = xe_device_get_gt(xe, config_to_gt_id(config));
>>>+
>>>+	fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
>>>+	if (!fw_ref)
>>>+		return false;
>>>+
>>>+	if (!pmu->fw_ref)
>>>+		pmu->fw_ref = fw_ref;
>>
>>how this shared fw_ref is supposed to work for multiple
>>perf_event_open()?
>
>Agree, not ideal, but I don't see an issue. This forcewake is only 
>being taken for engine-* events and the domain is always XE_FW_GT. 
>Looking at xe_force_wake_get(), I see that it returns a mask of 
>domains enabled. In this case, it would be the XE_FW_GT. The return 
>value is just stored so that the corresponding event destroy can put 
>the forcewake.
>
>>
>>fd1 = perf_event_open( ... gt=0 ...);
>>
>>	event_get_forcewake()
>>		pmu->fw_ref = xe_force_wake_get()
>>
>>fd2 = perf_event_open( ... gt=1 ...);
>>
>>	event_get_forcewake()
>>		// get the forcewake, but don't save the ref
>>
>>forcewake for gt1 is never put.
>
>pmu->fw_ref should be identical for all events taking this forcewake.
>
>>
>>
>>Or even multiple perf_event_open() for the same gt: we will not handle
>>the count correctly.
>
>The count is actually handled in domain->ref in the forcewake 
>implementation and note that forcewake is always taken for every 
>engine event that is being initialized and hence always being put for 
>every event that is destroyed. This code is not refcounting that.

so... we never set pmu->fw_ref back to 0 and any event destroy will try to
put the force wake? That seems a different bug that avoids the bug I
was thinking about.

>
>>
>>In summary I think this fw ref needs to be per event... an easy way to do
>>that is to use the event->pmu_private field, to be populated on init...
>
>I am not opposed to that since that makes it future proof so that we 
>can indeed have events taking different forcewake domains, but let me 
>know if I missed something here since I think this alone should still 
>work.
>
>>
>>>+
>>>+	return true;
>>>+}
>>>+
>>>static bool event_supported(struct xe_pmu *pmu, unsigned int gt,
>>>			    unsigned int id)
>>>{
>>>@@ -144,6 +176,13 @@ static bool event_param_valid(struct perf_event *event)
>>>static void xe_pmu_event_destroy(struct perf_event *event)
>>>{
>>>	struct xe_device *xe = container_of(event->pmu, typeof(*xe), pmu.base);
>>>+	struct xe_pmu *pmu = &xe->pmu;
>>>+	struct xe_gt *gt;
>>>+
>>>+	if (pmu->fw_ref) {
>>>+		gt = xe_device_get_gt(xe, config_to_gt_id(event->attr.config));
>>>+		xe_force_wake_put(gt_to_fw(gt), pmu->fw_ref);
>>>+	}
>>>
>>>	drm_WARN_ON(&xe->drm, event->parent);
>>>	xe_pm_runtime_put(xe);
>>>@@ -183,18 +222,27 @@ static int xe_pmu_event_init(struct perf_event *event)
>>>	if (!event->parent) {
>>>		drm_dev_get(&xe->drm);
>>>		xe_pm_runtime_get(xe);
>>>+		if (!event_gt_forcewake(event)) {
>>
>>if you group an engine vs non-engine counter, this won't work I think.
>>Can we test it?
>
>When you group events, init is called for each event. From the Xe PMU 
>implementation perspective, grouping shouldn't be any different.

the event->parent is a shortcut to do this only once per group, but then you
can't look inside the event to decide if you need to take the forcewake or
not because it may be true for one event and false for another. Try
creating the events with the group leader being a non-engine event.
AFAICS the forcewake will not be taken.... something like (typed here
without testing):

perf stat  -I1000 -e '{xe_0000_00_02.0/gt-c6-residency/,xe_0000_00_02.0/engine-active-ticks/}'

Lucas De Marchi

>
>Regards,
>Umesh
>
>>
>>Lucas De Marchi
>>
>>>+			xe_pm_runtime_put(xe);
>>>+			drm_dev_put(&xe->drm);
>>>+			return -EINVAL;
>>>+		}
>>>		event->destroy = xe_pmu_event_destroy;
>>>	}
>>>
>>>	return 0;
>>>}
>>>
>>>-static u64 read_engine_events(struct xe_gt *gt, struct perf_event *event)
>>>+static u64 read_engine_events(struct xe_gt *gt, struct perf_event *event, u64 prev)
>>>{
>>>	struct xe_device *xe = gt_to_xe(gt);
>>>+	struct xe_pmu *pmu = &xe->pmu;
>>>	struct xe_hw_engine *hwe;
>>>	u64 val = 0;
>>>
>>>+	if (!pmu->fw_ref)
>>>+		return prev;
>>>+
>>>	hwe = event_to_hwe(event);
>>>	if (!hwe)
>>>		drm_warn(&xe->drm, "unknown engine\n");
>>>@@ -218,7 +266,7 @@ static u64 __xe_pmu_event_read(struct perf_event *event, u64 prev)
>>>		return xe_gt_idle_residency_msec(&gt->gtidle);
>>>	case XE_PMU_EVENT_ENGINE_ACTIVE_TICKS:
>>>	case XE_PMU_EVENT_ENGINE_TOTAL_TICKS:
>>>-		return read_engine_events(gt, event);
>>>+		return read_engine_events(gt, event, prev);
>>>	}
>>>
>>>	return 0;
>>>diff --git a/drivers/gpu/drm/xe/xe_pmu_types.h b/drivers/gpu/drm/xe/xe_pmu_types.h
>>>index f5ba4d56622c..07c4e592106e 100644
>>>--- a/drivers/gpu/drm/xe/xe_pmu_types.h
>>>+++ b/drivers/gpu/drm/xe/xe_pmu_types.h
>>>@@ -30,6 +30,10 @@ struct xe_pmu {
>>>	 * @name: Name as registered with perf core.
>>>	 */
>>>	const char *name;
>>>+	/**
>>>+	 * @fw_ref: force_wake ref
>>>+	 */
>>>+	unsigned int fw_ref;
>>>	/**
>>>	 * @supported_events: Bitmap of supported events, indexed by event id
>>>	 */
>>>-- 
>>>2.47.1
>>>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v7 5/5] drm/xe/xe_pmu: Acquire forcewake on event init for engine events
  2025-02-21  4:45       ` Lucas De Marchi
@ 2025-02-21  6:26         ` Riana Tauro
  2025-02-21  6:26         ` Lucas De Marchi
  1 sibling, 0 replies; 23+ messages in thread
From: Riana Tauro @ 2025-02-21  6:26 UTC (permalink / raw)
  To: Lucas De Marchi, Umesh Nerlige Ramappa
  Cc: intel-xe, anshuman.gupta, vinay.belgaumkar, soham.purkait,
	Rodrigo Vivi, Himal Prasad Ghimiray

Hi Lucas

On 2/21/2025 10:15 AM, Lucas De Marchi wrote:
> On Thu, Feb 20, 2025 at 05:14:07PM -0800, Umesh Nerlige Ramappa wrote:
>> On Thu, Feb 20, 2025 at 03:46:55PM -0600, Lucas De Marchi wrote:
>>> On Fri, Feb 14, 2025 at 03:38:13PM +0530, Riana Tauro wrote:
>>>> When the engine events are created, acquire GT forcewake to read gpm
>>>> timestamp required for the events and release on event destroy. This
>>>> cannot be done during read due to the raw spinlock held my pmu.
>>>>
>>>> v2: remove forcewake counting (Umesh)
>>>> v3: remove extra space (Umesh)
>>>>
>>>> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>>>> Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
>>>> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
>>>> Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>>>> ---
>>>> drivers/gpu/drm/xe/xe_pmu.c       | 52 +++++++++++++++++++++++++++++--
>>>> drivers/gpu/drm/xe/xe_pmu_types.h |  4 +++
>>>> 2 files changed, 54 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/xe/xe_pmu.c b/drivers/gpu/drm/xe/xe_pmu.c
>>>> index dc89fa6d0ec5..67693d642f5a 100644
>>>> --- a/drivers/gpu/drm/xe/xe_pmu.c
>>>> +++ b/drivers/gpu/drm/xe/xe_pmu.c
>>>> @@ -7,6 +7,7 @@
>>>> #include <linux/device.h>
>>>>
>>>> #include "xe_device.h"
>>>> +#include "xe_force_wake.h"
>>>> #include "xe_gt_idle.h"
>>>> #include "xe_guc_engine_activity.h"
>>>> #include "xe_hw_engine.h"
>>>> @@ -102,6 +103,37 @@ static struct xe_hw_engine *event_to_hwe(struct 
>>>> perf_event *event)
>>>>     return hwe;
>>>> }
>>>>
>>>> +static bool is_engine_event(u64 config)
>>>> +{
>>>> +    unsigned int event_id = config_to_event_id(config);
>>>> +
>>>> +    return (event_id == XE_PMU_EVENT_ENGINE_TOTAL_TICKS ||
>>>> +        event_id == XE_PMU_EVENT_ENGINE_ACTIVE_TICKS);
>>>> +}
>>>> +
>>>> +static bool event_gt_forcewake(struct perf_event *event)
>>>> +{
>>>> +    struct xe_device *xe = container_of(event->pmu, typeof(*xe), 
>>>> pmu.base);
>>>> +    u64 config = event->attr.config;
>>>> +    struct xe_pmu *pmu = &xe->pmu;
>>>> +    struct xe_gt *gt;
>>>> +    unsigned int fw_ref;
>>>> +
>>>> +    if (!is_engine_event(config))
>>>> +        return true;
>>>> +
>>>> +    gt = xe_device_get_gt(xe, config_to_gt_id(config));
>>>> +
>>>> +    fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
>>>> +    if (!fw_ref)
>>>> +        return false;
>>>> +
>>>> +    if (!pmu->fw_ref)
>>>> +        pmu->fw_ref = fw_ref;
>>>
>>> how this shared fw_ref is supposed to work for multiple
>>> perf_event_open()?
>>
>> Agree, not ideal, but I don't see an issue. This forcewake is only 
>> being taken for engine-* events and the domain is always XE_FW_GT. 
>> Looking at xe_force_wake_get(), I see that it returns a mask of 
>> domains enabled. In this case, it would be the XE_FW_GT. The return 
>> value is just stored so that the corresponding event destroy can put 
>> the forcewake.
>>
>>>
>>> fd1 = perf_event_open( ... gt=0 ...);
>>>
>>>     event_get_forcewake()
>>>         pmu->fw_ref = xe_force_wake_get()
>>>
>>> fd2 = perf_event_open( ... gt=1 ...);
>>>
>>>     event_get_forcewake()
>>>         // get the forcewake, but don't save the ref
>>>
>>> forcewake for gt1 is never put.
>>
>> pmu->fw_ref should be identical for all events taking this forcewake.
>>
>>>
>>>
>>> Or even multiple perf_event_open() for the same gt: we will not handle
>>> the count correctly.
>>
>> The count is actually handled in domain->ref in the forcewake 
>> implementation and note that forcewake is always taken for every 
>> engine event that is being initialized and hence always being put for 
>> every event that is destroyed. This code is not refcounting that.
> 
> so... we never set pmu->fw_ref back to 0 and any event destroy will try to
> put the force wake? That seems a different bug that avoids the bug I
> was thinking about.

For grouping of engine event and non engine event, non-engine as group 
leader would yeah cause the fw_ref to be put first and then an assert error.

Thanks for catching this.

But that can be solved in destroy. Will resend with this?

if (is_engine_event(config) && pmu->fw_ref)
> 
>>
>>>
>>> In summary I think this fw ref needs to be per event... an easy way 
>>> to do
>>> that is to use the event->pmu_private field, to be populated on init...
>>
>> I am not opposed to that since that makes it future proof so that we 
>> can indeed have events taking different forcewake domains, but let me 
>> know if I missed something here since I think this alone should still 
>> work.
>>
>>>
>>>> +
>>>> +    return true;
>>>> +}
>>>> +
>>>> static bool event_supported(struct xe_pmu *pmu, unsigned int gt,
>>>>                 unsigned int id)
>>>> {
>>>> @@ -144,6 +176,13 @@ static bool event_param_valid(struct perf_event 
>>>> *event)
>>>> static void xe_pmu_event_destroy(struct perf_event *event)
>>>> {
>>>>     struct xe_device *xe = container_of(event->pmu, typeof(*xe), 
>>>> pmu.base);
>>>> +    struct xe_pmu *pmu = &xe->pmu;
>>>> +    struct xe_gt *gt;
>>>> +
>>>> +    if (pmu->fw_ref) {
>>>> +        gt = xe_device_get_gt(xe, config_to_gt_id(event- 
>>>> >attr.config));
>>>> +        xe_force_wake_put(gt_to_fw(gt), pmu->fw_ref);
>>>> +    }
>>>>
>>>>     drm_WARN_ON(&xe->drm, event->parent);
>>>>     xe_pm_runtime_put(xe);
>>>> @@ -183,18 +222,27 @@ static int xe_pmu_event_init(struct perf_event 
>>>> *event)
>>>>     if (!event->parent) {
>>>>         drm_dev_get(&xe->drm);
>>>>         xe_pm_runtime_get(xe);
>>>> +        if (!event_gt_forcewake(event)) {
>>>
>>> if you group an engine vs non-engine counter, this won't work I think.
>>> Can we test it?
>>
>> When you group events, init is called for each event. From the Xe PMU 
>> implementation perspective, grouping shouldn't be any different.
> 
> the event->parent is a shortcut to do this only once per group, but then 
> you
I thought so too, but it enters event->parent condition even in case of 
multiple events in group. Had verified this before sending the patch

sudo ./perf stat -e
xe_0000_03_00.0/engine-active-ticks,gt=0,engine_class=4,engine_instance=0/,
xe_0000_03_00.0/engine-total-ticks,gt=0,engine_class=4,engine_instance=0/,
xe_0000_03_00.0/engine-active-ticks,gt=0,engine_class=3,engine_instance=0/,
xe_0000_03_00.0/engine-total-ticks,gt=0,engine_class=3,engine_instance=0/ 
-I 1000

sudo dmesg | grep force_wake
[  697.540291] xe_force_wake_get event 0x400002
[  697.540333] xe_force_wake_get event 0x400003
[  697.540352] xe_force_wake_get event 0x300002
[  697.540364] xe_force_wake_get event 0x300003

[  702.509036] xe_force_wake_put event 0x400002
[  702.509099] xe_force_wake_put event 0x400003
[  702.509137] xe_force_wake_put event 0x300002
[  702.509171] xe_force_wake_put event 0x300003

Thanks
Riana



> can't look inside the event to decide if you need to take the forcewake or
> not because it may be true for one event and false for another. Try
> creating the events with the group leader being a non-engine event.
> AFAICS the forcewake will not be taken.... something like (typed here
> without testing):
> 
> perf stat  -I1000 -e '{xe_0000_00_02.0/gt-c6-residency/,xe_0000_00_02.0/ 
> engine-active-ticks/}'
> 
> Lucas De Marchi
> 
>>
>> Regards,
>> Umesh
>>
>>>
>>> Lucas De Marchi
>>>
>>>> +            xe_pm_runtime_put(xe);
>>>> +            drm_dev_put(&xe->drm);
>>>> +            return -EINVAL;
>>>> +        }
>>>>         event->destroy = xe_pmu_event_destroy;
>>>>     }
>>>>
>>>>     return 0;
>>>> }
>>>>
>>>> -static u64 read_engine_events(struct xe_gt *gt, struct perf_event 
>>>> *event)
>>>> +static u64 read_engine_events(struct xe_gt *gt, struct perf_event 
>>>> *event, u64 prev)
>>>> {
>>>>     struct xe_device *xe = gt_to_xe(gt);
>>>> +    struct xe_pmu *pmu = &xe->pmu;
>>>>     struct xe_hw_engine *hwe;
>>>>     u64 val = 0;
>>>>
>>>> +    if (!pmu->fw_ref)
>>>> +        return prev;
>>>> +
>>>>     hwe = event_to_hwe(event);
>>>>     if (!hwe)
>>>>         drm_warn(&xe->drm, "unknown engine\n");
>>>> @@ -218,7 +266,7 @@ static u64 __xe_pmu_event_read(struct perf_event 
>>>> *event, u64 prev)
>>>>         return xe_gt_idle_residency_msec(&gt->gtidle);
>>>>     case XE_PMU_EVENT_ENGINE_ACTIVE_TICKS:
>>>>     case XE_PMU_EVENT_ENGINE_TOTAL_TICKS:
>>>> -        return read_engine_events(gt, event);
>>>> +        return read_engine_events(gt, event, prev);
>>>>     }
>>>>
>>>>     return 0;
>>>> diff --git a/drivers/gpu/drm/xe/xe_pmu_types.h b/drivers/gpu/drm/xe/ 
>>>> xe_pmu_types.h
>>>> index f5ba4d56622c..07c4e592106e 100644
>>>> --- a/drivers/gpu/drm/xe/xe_pmu_types.h
>>>> +++ b/drivers/gpu/drm/xe/xe_pmu_types.h
>>>> @@ -30,6 +30,10 @@ struct xe_pmu {
>>>>      * @name: Name as registered with perf core.
>>>>      */
>>>>     const char *name;
>>>> +    /**
>>>> +     * @fw_ref: force_wake ref
>>>> +     */
>>>> +    unsigned int fw_ref;
>>>>     /**
>>>>      * @supported_events: Bitmap of supported events, indexed by 
>>>> event id
>>>>      */
>>>> -- 
>>>> 2.47.1
>>>>


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v7 5/5] drm/xe/xe_pmu: Acquire forcewake on event init for engine events
  2025-02-21  4:45       ` Lucas De Marchi
  2025-02-21  6:26         ` Riana Tauro
@ 2025-02-21  6:26         ` Lucas De Marchi
  2025-02-21  6:32           ` Riana Tauro
  2025-02-21 17:42           ` Umesh Nerlige Ramappa
  1 sibling, 2 replies; 23+ messages in thread
From: Lucas De Marchi @ 2025-02-21  6:26 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa
  Cc: Riana Tauro, intel-xe, anshuman.gupta, vinay.belgaumkar,
	soham.purkait, Rodrigo Vivi, Himal Prasad Ghimiray

On Thu, Feb 20, 2025 at 10:45:46PM -0600, Lucas De Marchi wrote:
>On Thu, Feb 20, 2025 at 05:14:07PM -0800, Umesh Nerlige Ramappa wrote:
>>On Thu, Feb 20, 2025 at 03:46:55PM -0600, Lucas De Marchi wrote:
>>>On Fri, Feb 14, 2025 at 03:38:13PM +0530, Riana Tauro wrote:
>>>>When the engine events are created, acquire GT forcewake to read gpm
>>>>timestamp required for the events and release on event destroy. This
>>>>cannot be done during read due to the raw spinlock held my pmu.
>>>>
>>>>v2: remove forcewake counting (Umesh)
>>>>v3: remove extra space (Umesh)
>>>>
>>>>Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>>>>Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
>>>>Signed-off-by: Riana Tauro <riana.tauro@intel.com>
>>>>Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>>>>---
>>>>drivers/gpu/drm/xe/xe_pmu.c       | 52 +++++++++++++++++++++++++++++--
>>>>drivers/gpu/drm/xe/xe_pmu_types.h |  4 +++
>>>>2 files changed, 54 insertions(+), 2 deletions(-)
>>>>
>>>>diff --git a/drivers/gpu/drm/xe/xe_pmu.c b/drivers/gpu/drm/xe/xe_pmu.c
>>>>index dc89fa6d0ec5..67693d642f5a 100644
>>>>--- a/drivers/gpu/drm/xe/xe_pmu.c
>>>>+++ b/drivers/gpu/drm/xe/xe_pmu.c
>>>>@@ -7,6 +7,7 @@
>>>>#include <linux/device.h>
>>>>
>>>>#include "xe_device.h"
>>>>+#include "xe_force_wake.h"
>>>>#include "xe_gt_idle.h"
>>>>#include "xe_guc_engine_activity.h"
>>>>#include "xe_hw_engine.h"
>>>>@@ -102,6 +103,37 @@ static struct xe_hw_engine *event_to_hwe(struct perf_event *event)
>>>>	return hwe;
>>>>}
>>>>
>>>>+static bool is_engine_event(u64 config)
>>>>+{
>>>>+	unsigned int event_id = config_to_event_id(config);
>>>>+
>>>>+	return (event_id == XE_PMU_EVENT_ENGINE_TOTAL_TICKS ||
>>>>+		event_id == XE_PMU_EVENT_ENGINE_ACTIVE_TICKS);
>>>>+}
>>>>+
>>>>+static bool event_gt_forcewake(struct perf_event *event)
>>>>+{
>>>>+	struct xe_device *xe = container_of(event->pmu, typeof(*xe), pmu.base);
>>>>+	u64 config = event->attr.config;
>>>>+	struct xe_pmu *pmu = &xe->pmu;
>>>>+	struct xe_gt *gt;
>>>>+	unsigned int fw_ref;
>>>>+
>>>>+	if (!is_engine_event(config))
>>>>+		return true;
>>>>+
>>>>+	gt = xe_device_get_gt(xe, config_to_gt_id(config));
>>>>+
>>>>+	fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
>>>>+	if (!fw_ref)
>>>>+		return false;
>>>>+
>>>>+	if (!pmu->fw_ref)
>>>>+		pmu->fw_ref = fw_ref;
>>>
>>>how this shared fw_ref is supposed to work for multiple
>>>perf_event_open()?
>>
>>Agree, not ideal, but I don't see an issue. This forcewake is only 
>>being taken for engine-* events and the domain is always XE_FW_GT. 
>>Looking at xe_force_wake_get(), I see that it returns a mask of 
>>domains enabled. In this case, it would be the XE_FW_GT. The return 
>>value is just stored so that the corresponding event destroy can put 
>>the forcewake.
>>
>>>
>>>fd1 = perf_event_open( ... gt=0 ...);
>>>
>>>	event_get_forcewake()
>>>		pmu->fw_ref = xe_force_wake_get()
>>>
>>>fd2 = perf_event_open( ... gt=1 ...);
>>>
>>>	event_get_forcewake()
>>>		// get the forcewake, but don't save the ref
>>>
>>>forcewake for gt1 is never put.
>>
>>pmu->fw_ref should be identical for all events taking this forcewake.
>>
>>>
>>>
>>>Or even multiple perf_event_open() for the same gt: we will not handle
>>>the count correctly.
>>
>>The count is actually handled in domain->ref in the forcewake 
>>implementation and note that forcewake is always taken for every 
>>engine event that is being initialized and hence always being put 
>>for every event that is destroyed. This code is not refcounting 
>>that.
>
>so... we never set pmu->fw_ref back to 0 and any event destroy will try to
>put the force wake? That seems a different bug that avoids the bug I
>was thinking about.

try calling perf stat multiple times and you end up with this:

cat  /sys/kernel/debug/dri/0/info | grep "force wake"
gt0 force wake -1
gt1 force wake 0
cat  /sys/kernel/debug/dri/0/info | grep "force wake"
gt0 force wake -2
gt1 force wake 0

and

[ 1614.778054] RIP: 0010:xe_force_wake_put+0xab6/0x1430 [xe]
[ 1614.778370] Code: ff 41 53 8b 85 f8 fe ff ff 50 ff b5 f0 fe ff ff 44 8b 8d e8 fe ff ff 4c 8b 85 d8 fe ff ff 48 8b 95 d0 fe ff ff e8 4a c3 27 df <0f> 0b 4c 89 e2 48 83 c4 60 48 b8 00 00 00 00 00 fc ff df 48 c1
  ea
[ 1614.778381] RSP: 0018:ffff88812cb2f7d0 EFLAGS: 00010046
[ 1614.778395] RAX: 0000000000000000 RBX: ffff888138b000d0 RCX: 0000000000000000
[ 1614.778405] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
[ 1614.778413] RBP: ffff88812cb2f968 R08: 0000000000000000 R09: 0000000000000000
[ 1614.778421] R10: 0000000000000000 R11: 0000000000000000 R12: ffff888138b000e4
[ 1614.778429] R13: 0000000000000001 R14: ffff888138b000d0 R15: 00000000ffffffff
[ 1614.778438] FS:  00007a9b757acd40(0000) GS:ffff8883f0e00000(0000) knlGS:0000000000000000
[ 1614.778447] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 1614.778456] CR2: 00007fcac269d5e0 CR3: 000000012a8ee003 CR4: 0000000000f72ef0
[ 1614.778464] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 1614.778472] DR3: 0000000000000000 DR6: 00000000ffff07f0 DR7: 0000000000000400
[ 1614.778480] PKRU: 55555554
[ 1614.778488] Call Trace:
[ 1614.778496]  <TASK>
[ 1614.778506]  ? show_regs+0x6c/0x80
[ 1614.778528]  ? __warn+0xd2/0x2e0
[ 1614.778545]  ? xe_force_wake_put+0xab6/0x1430 [xe]
[ 1614.778867]  ? report_bug+0x282/0x2f0
[ 1614.778892]  ? handle_bug+0x6e/0xc0
[ 1614.778906]  ? exc_invalid_op+0x18/0x50
[ 1614.778919]  ? asm_exc_invalid_op+0x1b/0x20
[ 1614.778953]  ? xe_force_wake_put+0xab6/0x1430 [xe]
[ 1614.779318]  ? __pfx_xe_force_wake_put+0x10/0x10 [xe]
[ 1614.779650]  xe_pmu_event_destroy+0x143/0x240 [xe]


>
>>
>>>
>>>In summary I think this fw ref needs to be per event... an easy way to do
>>>that is to use the event->pmu_private field, to be populated on init...
>>
>>I am not opposed to that since that makes it future proof so that we 
>>can indeed have events taking different forcewake domains, but let 
>>me know if I missed something here since I think this alone should 
>>still work.
>>
>>>
>>>>+
>>>>+	return true;
>>>>+}
>>>>+
>>>>static bool event_supported(struct xe_pmu *pmu, unsigned int gt,
>>>>			    unsigned int id)
>>>>{
>>>>@@ -144,6 +176,13 @@ static bool event_param_valid(struct perf_event *event)
>>>>static void xe_pmu_event_destroy(struct perf_event *event)
>>>>{
>>>>	struct xe_device *xe = container_of(event->pmu, typeof(*xe), pmu.base);
>>>>+	struct xe_pmu *pmu = &xe->pmu;
>>>>+	struct xe_gt *gt;
>>>>+
>>>>+	if (pmu->fw_ref) {
>>>>+		gt = xe_device_get_gt(xe, config_to_gt_id(event->attr.config));
>>>>+		xe_force_wake_put(gt_to_fw(gt), pmu->fw_ref);
>>>>+	}
>>>>
>>>>	drm_WARN_ON(&xe->drm, event->parent);
>>>>	xe_pm_runtime_put(xe);
>>>>@@ -183,18 +222,27 @@ static int xe_pmu_event_init(struct perf_event *event)
>>>>	if (!event->parent) {
>>>>		drm_dev_get(&xe->drm);
>>>>		xe_pm_runtime_get(xe);
>>>>+		if (!event_gt_forcewake(event)) {
>>>
>>>if you group an engine vs non-engine counter, this won't work I think.
>>>Can we test it?
>>
>>When you group events, init is called for each event. From the Xe 
>>PMU implementation perspective, grouping shouldn't be any different.
>
>the event->parent is a shortcut to do this only once per group, but then you
>can't look inside the event to decide if you need to take the forcewake or
>not because it may be true for one event and false for another. Try
>creating the events with the group leader being a non-engine event.
>AFAICS the forcewake will not be taken.... something like (typed here
>without testing):
>
>perf stat  -I1000 -e '{xe_0000_00_02.0/gt-c6-residency/,xe_0000_00_02.0/engine-active-ticks/}'

it seems like I mixed up here. Neither of these will have parent
set - afaics that would be the case for events inherited from one task
to another which is not the case here.

Lucas De Marchi

>
>Lucas De Marchi
>
>>
>>Regards,
>>Umesh
>>
>>>
>>>Lucas De Marchi
>>>
>>>>+			xe_pm_runtime_put(xe);
>>>>+			drm_dev_put(&xe->drm);
>>>>+			return -EINVAL;
>>>>+		}
>>>>		event->destroy = xe_pmu_event_destroy;
>>>>	}
>>>>
>>>>	return 0;
>>>>}
>>>>
>>>>-static u64 read_engine_events(struct xe_gt *gt, struct perf_event *event)
>>>>+static u64 read_engine_events(struct xe_gt *gt, struct perf_event *event, u64 prev)
>>>>{
>>>>	struct xe_device *xe = gt_to_xe(gt);
>>>>+	struct xe_pmu *pmu = &xe->pmu;
>>>>	struct xe_hw_engine *hwe;
>>>>	u64 val = 0;
>>>>
>>>>+	if (!pmu->fw_ref)
>>>>+		return prev;
>>>>+
>>>>	hwe = event_to_hwe(event);
>>>>	if (!hwe)
>>>>		drm_warn(&xe->drm, "unknown engine\n");
>>>>@@ -218,7 +266,7 @@ static u64 __xe_pmu_event_read(struct perf_event *event, u64 prev)
>>>>		return xe_gt_idle_residency_msec(&gt->gtidle);
>>>>	case XE_PMU_EVENT_ENGINE_ACTIVE_TICKS:
>>>>	case XE_PMU_EVENT_ENGINE_TOTAL_TICKS:
>>>>-		return read_engine_events(gt, event);
>>>>+		return read_engine_events(gt, event, prev);
>>>>	}
>>>>
>>>>	return 0;
>>>>diff --git a/drivers/gpu/drm/xe/xe_pmu_types.h b/drivers/gpu/drm/xe/xe_pmu_types.h
>>>>index f5ba4d56622c..07c4e592106e 100644
>>>>--- a/drivers/gpu/drm/xe/xe_pmu_types.h
>>>>+++ b/drivers/gpu/drm/xe/xe_pmu_types.h
>>>>@@ -30,6 +30,10 @@ struct xe_pmu {
>>>>	 * @name: Name as registered with perf core.
>>>>	 */
>>>>	const char *name;
>>>>+	/**
>>>>+	 * @fw_ref: force_wake ref
>>>>+	 */
>>>>+	unsigned int fw_ref;
>>>>	/**
>>>>	 * @supported_events: Bitmap of supported events, indexed by event id
>>>>	 */
>>>>-- 
>>>>2.47.1
>>>>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v7 5/5] drm/xe/xe_pmu: Acquire forcewake on event init for engine events
  2025-02-21  6:26         ` Lucas De Marchi
@ 2025-02-21  6:32           ` Riana Tauro
  2025-02-21 17:42           ` Umesh Nerlige Ramappa
  1 sibling, 0 replies; 23+ messages in thread
From: Riana Tauro @ 2025-02-21  6:32 UTC (permalink / raw)
  To: Lucas De Marchi, Umesh Nerlige Ramappa
  Cc: intel-xe, anshuman.gupta, vinay.belgaumkar, soham.purkait,
	Rodrigo Vivi, Himal Prasad Ghimiray

Hi Lucas

On 2/21/2025 11:56 AM, Lucas De Marchi wrote:
> On Thu, Feb 20, 2025 at 10:45:46PM -0600, Lucas De Marchi wrote:
>> On Thu, Feb 20, 2025 at 05:14:07PM -0800, Umesh Nerlige Ramappa wrote:
>>> On Thu, Feb 20, 2025 at 03:46:55PM -0600, Lucas De Marchi wrote:
>>>> On Fri, Feb 14, 2025 at 03:38:13PM +0530, Riana Tauro wrote:
>>>>> When the engine events are created, acquire GT forcewake to read gpm
>>>>> timestamp required for the events and release on event destroy. This
>>>>> cannot be done during read due to the raw spinlock held my pmu.
>>>>>
>>>>> v2: remove forcewake counting (Umesh)
>>>>> v3: remove extra space (Umesh)
>>>>>
>>>>> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>>>>> Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
>>>>> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
>>>>> Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>>>>> ---
>>>>> drivers/gpu/drm/xe/xe_pmu.c       | 52 +++++++++++++++++++++++++++++--
>>>>> drivers/gpu/drm/xe/xe_pmu_types.h |  4 +++
>>>>> 2 files changed, 54 insertions(+), 2 deletions(-)
>>>>>
>>>>> diff --git a/drivers/gpu/drm/xe/xe_pmu.c b/drivers/gpu/drm/xe/xe_pmu.c
>>>>> index dc89fa6d0ec5..67693d642f5a 100644
>>>>> --- a/drivers/gpu/drm/xe/xe_pmu.c
>>>>> +++ b/drivers/gpu/drm/xe/xe_pmu.c
>>>>> @@ -7,6 +7,7 @@
>>>>> #include <linux/device.h>
>>>>>
>>>>> #include "xe_device.h"
>>>>> +#include "xe_force_wake.h"
>>>>> #include "xe_gt_idle.h"
>>>>> #include "xe_guc_engine_activity.h"
>>>>> #include "xe_hw_engine.h"
>>>>> @@ -102,6 +103,37 @@ static struct xe_hw_engine 
>>>>> *event_to_hwe(struct perf_event *event)
>>>>>     return hwe;
>>>>> }
>>>>>
>>>>> +static bool is_engine_event(u64 config)
>>>>> +{
>>>>> +    unsigned int event_id = config_to_event_id(config);
>>>>> +
>>>>> +    return (event_id == XE_PMU_EVENT_ENGINE_TOTAL_TICKS ||
>>>>> +        event_id == XE_PMU_EVENT_ENGINE_ACTIVE_TICKS);
>>>>> +}
>>>>> +
>>>>> +static bool event_gt_forcewake(struct perf_event *event)
>>>>> +{
>>>>> +    struct xe_device *xe = container_of(event->pmu, typeof(*xe), 
>>>>> pmu.base);
>>>>> +    u64 config = event->attr.config;
>>>>> +    struct xe_pmu *pmu = &xe->pmu;
>>>>> +    struct xe_gt *gt;
>>>>> +    unsigned int fw_ref;
>>>>> +
>>>>> +    if (!is_engine_event(config))
>>>>> +        return true;
>>>>> +
>>>>> +    gt = xe_device_get_gt(xe, config_to_gt_id(config));
>>>>> +
>>>>> +    fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
>>>>> +    if (!fw_ref)
>>>>> +        return false;
>>>>> +
>>>>> +    if (!pmu->fw_ref)
>>>>> +        pmu->fw_ref = fw_ref;
>>>>
>>>> how this shared fw_ref is supposed to work for multiple
>>>> perf_event_open()?
>>>
>>> Agree, not ideal, but I don't see an issue. This forcewake is only 
>>> being taken for engine-* events and the domain is always XE_FW_GT. 
>>> Looking at xe_force_wake_get(), I see that it returns a mask of 
>>> domains enabled. In this case, it would be the XE_FW_GT. The return 
>>> value is just stored so that the corresponding event destroy can put 
>>> the forcewake.
>>>
>>>>
>>>> fd1 = perf_event_open( ... gt=0 ...);
>>>>
>>>>     event_get_forcewake()
>>>>         pmu->fw_ref = xe_force_wake_get()
>>>>
>>>> fd2 = perf_event_open( ... gt=1 ...);
>>>>
>>>>     event_get_forcewake()
>>>>         // get the forcewake, but don't save the ref
>>>>
>>>> forcewake for gt1 is never put.
>>>
>>> pmu->fw_ref should be identical for all events taking this forcewake.
>>>
>>>>
>>>>
>>>> Or even multiple perf_event_open() for the same gt: we will not handle
>>>> the count correctly.
>>>
>>> The count is actually handled in domain->ref in the forcewake 
>>> implementation and note that forcewake is always taken for every 
>>> engine event that is being initialized and hence always being put for 
>>> every event that is destroyed. This code is not refcounting that.
>>
>> so... we never set pmu->fw_ref back to 0 and any event destroy will 
>> try to
>> put the force wake? That seems a different bug that avoids the bug I
>> was thinking about.
> 
> try calling perf stat multiple times and you end up with this:
> 
> cat  /sys/kernel/debug/dri/0/info | grep "force wake"
> gt0 force wake -1
> gt1 force wake 0
> cat  /sys/kernel/debug/dri/0/info | grep "force wake"
> gt0 force wake -2
> gt1 force wake 0

This would be for non-engine events and engine events with non-engine 
events as leader?
> 
> and
> 
> [ 1614.778054] RIP: 0010:xe_force_wake_put+0xab6/0x1430 [xe]
> [ 1614.778370] Code: ff 41 53 8b 85 f8 fe ff ff 50 ff b5 f0 fe ff ff 44 
> 8b 8d e8 fe ff ff 4c 8b 85 d8 fe ff ff 48 8b 95 d0 fe ff ff e8 4a c3 27 
> df <0f> 0b 4c 89 e2 48 83 c4 60 48 b8 00 00 00 00 00 fc ff df 48 c1
>   ea
> [ 1614.778381] RSP: 0018:ffff88812cb2f7d0 EFLAGS: 00010046
> [ 1614.778395] RAX: 0000000000000000 RBX: ffff888138b000d0 RCX: 
> 0000000000000000
> [ 1614.778405] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 
> 0000000000000000
> [ 1614.778413] RBP: ffff88812cb2f968 R08: 0000000000000000 R09: 
> 0000000000000000
> [ 1614.778421] R10: 0000000000000000 R11: 0000000000000000 R12: 
> ffff888138b000e4
> [ 1614.778429] R13: 0000000000000001 R14: ffff888138b000d0 R15: 
> 00000000ffffffff
> [ 1614.778438] FS:  00007a9b757acd40(0000) GS:ffff8883f0e00000(0000) 
> knlGS:0000000000000000
> [ 1614.778447] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 1614.778456] CR2: 00007fcac269d5e0 CR3: 000000012a8ee003 CR4: 
> 0000000000f72ef0
> [ 1614.778464] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 
> 0000000000000000
> [ 1614.778472] DR3: 0000000000000000 DR6: 00000000ffff07f0 DR7: 
> 0000000000000400
> [ 1614.778480] PKRU: 55555554
> [ 1614.778488] Call Trace:
> [ 1614.778496]  <TASK>
> [ 1614.778506]  ? show_regs+0x6c/0x80
> [ 1614.778528]  ? __warn+0xd2/0x2e0
> [ 1614.778545]  ? xe_force_wake_put+0xab6/0x1430 [xe]
> [ 1614.778867]  ? report_bug+0x282/0x2f0
> [ 1614.778892]  ? handle_bug+0x6e/0xc0
> [ 1614.778906]  ? exc_invalid_op+0x18/0x50
> [ 1614.778919]  ? asm_exc_invalid_op+0x1b/0x20
> [ 1614.778953]  ? xe_force_wake_put+0xab6/0x1430 [xe]
> [ 1614.779318]  ? __pfx_xe_force_wake_put+0x10/0x10 [xe]
> [ 1614.779650]  xe_pmu_event_destroy+0x143/0x240 [xe]
> 
> 
>>
>>>
>>>>
>>>> In summary I think this fw ref needs to be per event... an easy way 
>>>> to do
>>>> that is to use the event->pmu_private field, to be populated on init...
>>>
>>> I am not opposed to that since that makes it future proof so that we 
>>> can indeed have events taking different forcewake domains, but let me 
>>> know if I missed something here since I think this alone should still 
>>> work.
>>>
>>>>
>>>>> +
>>>>> +    return true;
>>>>> +}
>>>>> +
>>>>> static bool event_supported(struct xe_pmu *pmu, unsigned int gt,
>>>>>                 unsigned int id)
>>>>> {
>>>>> @@ -144,6 +176,13 @@ static bool event_param_valid(struct 
>>>>> perf_event *event)
>>>>> static void xe_pmu_event_destroy(struct perf_event *event)
>>>>> {
>>>>>     struct xe_device *xe = container_of(event->pmu, typeof(*xe), 
>>>>> pmu.base);
>>>>> +    struct xe_pmu *pmu = &xe->pmu;
>>>>> +    struct xe_gt *gt;
>>>>> +
>>>>> +    if (pmu->fw_ref) {
>>>>> +        gt = xe_device_get_gt(xe, config_to_gt_id(event- 
>>>>> >attr.config));
>>>>> +        xe_force_wake_put(gt_to_fw(gt), pmu->fw_ref);
>>>>> +    }
>>>>>
>>>>>     drm_WARN_ON(&xe->drm, event->parent);
>>>>>     xe_pm_runtime_put(xe);
>>>>> @@ -183,18 +222,27 @@ static int xe_pmu_event_init(struct 
>>>>> perf_event *event)
>>>>>     if (!event->parent) {
>>>>>         drm_dev_get(&xe->drm);
>>>>>         xe_pm_runtime_get(xe);
>>>>> +        if (!event_gt_forcewake(event)) {
>>>>
>>>> if you group an engine vs non-engine counter, this won't work I think.
>>>> Can we test it?
>>>
>>> When you group events, init is called for each event. From the Xe PMU 
>>> implementation perspective, grouping shouldn't be any different.
>>
>> the event->parent is a shortcut to do this only once per group, but 
>> then you
>> can't look inside the event to decide if you need to take the 
>> forcewake or
>> not because it may be true for one event and false for another. Try
>> creating the events with the group leader being a non-engine event.
>> AFAICS the forcewake will not be taken.... something like (typed here
>> without testing):
>>
>> perf stat  -I1000 -e '{xe_0000_00_02.0/gt-c6- 
>> residency/,xe_0000_00_02.0/engine-active-ticks/}'
> 
> it seems like I mixed up here. Neither of these will have parent
> set - afaics that would be the case for events inherited from one task
> to another which is not the case here.
> 
> Lucas De Marchi
> 
>>
>> Lucas De Marchi
>>
>>>
>>> Regards,
>>> Umesh
>>>
>>>>
>>>> Lucas De Marchi
>>>>
>>>>> +            xe_pm_runtime_put(xe);
>>>>> +            drm_dev_put(&xe->drm);
>>>>> +            return -EINVAL;
>>>>> +        }
>>>>>         event->destroy = xe_pmu_event_destroy;
>>>>>     }
>>>>>
>>>>>     return 0;
>>>>> }
>>>>>
>>>>> -static u64 read_engine_events(struct xe_gt *gt, struct perf_event 
>>>>> *event)
>>>>> +static u64 read_engine_events(struct xe_gt *gt, struct perf_event 
>>>>> *event, u64 prev)
>>>>> {
>>>>>     struct xe_device *xe = gt_to_xe(gt);
>>>>> +    struct xe_pmu *pmu = &xe->pmu;
>>>>>     struct xe_hw_engine *hwe;
>>>>>     u64 val = 0;
>>>>>
>>>>> +    if (!pmu->fw_ref)
>>>>> +        return prev;
>>>>> +
>>>>>     hwe = event_to_hwe(event);
>>>>>     if (!hwe)
>>>>>         drm_warn(&xe->drm, "unknown engine\n");
>>>>> @@ -218,7 +266,7 @@ static u64 __xe_pmu_event_read(struct 
>>>>> perf_event *event, u64 prev)
>>>>>         return xe_gt_idle_residency_msec(&gt->gtidle);
>>>>>     case XE_PMU_EVENT_ENGINE_ACTIVE_TICKS:
>>>>>     case XE_PMU_EVENT_ENGINE_TOTAL_TICKS:
>>>>> -        return read_engine_events(gt, event);
>>>>> +        return read_engine_events(gt, event, prev);
>>>>>     }
>>>>>
>>>>>     return 0;
>>>>> diff --git a/drivers/gpu/drm/xe/xe_pmu_types.h b/drivers/gpu/drm/ 
>>>>> xe/xe_pmu_types.h
>>>>> index f5ba4d56622c..07c4e592106e 100644
>>>>> --- a/drivers/gpu/drm/xe/xe_pmu_types.h
>>>>> +++ b/drivers/gpu/drm/xe/xe_pmu_types.h
>>>>> @@ -30,6 +30,10 @@ struct xe_pmu {
>>>>>      * @name: Name as registered with perf core.
>>>>>      */
>>>>>     const char *name;
>>>>> +    /**
>>>>> +     * @fw_ref: force_wake ref
>>>>> +     */
>>>>> +    unsigned int fw_ref;
>>>>>     /**
>>>>>      * @supported_events: Bitmap of supported events, indexed by 
>>>>> event id
>>>>>      */
>>>>> -- 
>>>>> 2.47.1
>>>>>


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v7 5/5] drm/xe/xe_pmu: Acquire forcewake on event init for engine events
  2025-02-21  6:26         ` Lucas De Marchi
  2025-02-21  6:32           ` Riana Tauro
@ 2025-02-21 17:42           ` Umesh Nerlige Ramappa
  1 sibling, 0 replies; 23+ messages in thread
From: Umesh Nerlige Ramappa @ 2025-02-21 17:42 UTC (permalink / raw)
  To: Lucas De Marchi
  Cc: Riana Tauro, intel-xe, anshuman.gupta, vinay.belgaumkar,
	soham.purkait, Rodrigo Vivi, Himal Prasad Ghimiray

On Fri, Feb 21, 2025 at 12:26:56AM -0600, Lucas De Marchi wrote:
>On Thu, Feb 20, 2025 at 10:45:46PM -0600, Lucas De Marchi wrote:
>>On Thu, Feb 20, 2025 at 05:14:07PM -0800, Umesh Nerlige Ramappa wrote:
>>>On Thu, Feb 20, 2025 at 03:46:55PM -0600, Lucas De Marchi wrote:
>>>>On Fri, Feb 14, 2025 at 03:38:13PM +0530, Riana Tauro wrote:
>>>>>When the engine events are created, acquire GT forcewake to read gpm
>>>>>timestamp required for the events and release on event destroy. This
>>>>>cannot be done during read due to the raw spinlock held my pmu.
>>>>>
>>>>>v2: remove forcewake counting (Umesh)
>>>>>v3: remove extra space (Umesh)
>>>>>
>>>>>Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>>>>>Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
>>>>>Signed-off-by: Riana Tauro <riana.tauro@intel.com>
>>>>>Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>>>>>---
>>>>>drivers/gpu/drm/xe/xe_pmu.c       | 52 +++++++++++++++++++++++++++++--
>>>>>drivers/gpu/drm/xe/xe_pmu_types.h |  4 +++
>>>>>2 files changed, 54 insertions(+), 2 deletions(-)
>>>>>
>>>>>diff --git a/drivers/gpu/drm/xe/xe_pmu.c b/drivers/gpu/drm/xe/xe_pmu.c
>>>>>index dc89fa6d0ec5..67693d642f5a 100644
>>>>>--- a/drivers/gpu/drm/xe/xe_pmu.c
>>>>>+++ b/drivers/gpu/drm/xe/xe_pmu.c
>>>>>@@ -7,6 +7,7 @@
>>>>>#include <linux/device.h>
>>>>>
>>>>>#include "xe_device.h"
>>>>>+#include "xe_force_wake.h"
>>>>>#include "xe_gt_idle.h"
>>>>>#include "xe_guc_engine_activity.h"
>>>>>#include "xe_hw_engine.h"
>>>>>@@ -102,6 +103,37 @@ static struct xe_hw_engine *event_to_hwe(struct perf_event *event)
>>>>>	return hwe;
>>>>>}
>>>>>
>>>>>+static bool is_engine_event(u64 config)
>>>>>+{
>>>>>+	unsigned int event_id = config_to_event_id(config);
>>>>>+
>>>>>+	return (event_id == XE_PMU_EVENT_ENGINE_TOTAL_TICKS ||
>>>>>+		event_id == XE_PMU_EVENT_ENGINE_ACTIVE_TICKS);
>>>>>+}
>>>>>+
>>>>>+static bool event_gt_forcewake(struct perf_event *event)
>>>>>+{
>>>>>+	struct xe_device *xe = container_of(event->pmu, typeof(*xe), pmu.base);
>>>>>+	u64 config = event->attr.config;
>>>>>+	struct xe_pmu *pmu = &xe->pmu;
>>>>>+	struct xe_gt *gt;
>>>>>+	unsigned int fw_ref;
>>>>>+
>>>>>+	if (!is_engine_event(config))
>>>>>+		return true;
>>>>>+
>>>>>+	gt = xe_device_get_gt(xe, config_to_gt_id(config));
>>>>>+
>>>>>+	fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
>>>>>+	if (!fw_ref)
>>>>>+		return false;
>>>>>+
>>>>>+	if (!pmu->fw_ref)
>>>>>+		pmu->fw_ref = fw_ref;
>>>>
>>>>how this shared fw_ref is supposed to work for multiple
>>>>perf_event_open()?
>>>
>>>Agree, not ideal, but I don't see an issue. This forcewake is only 
>>>being taken for engine-* events and the domain is always XE_FW_GT. 
>>>Looking at xe_force_wake_get(), I see that it returns a mask of 
>>>domains enabled. In this case, it would be the XE_FW_GT. The 
>>>return value is just stored so that the corresponding event 
>>>destroy can put the forcewake.
>>>
>>>>
>>>>fd1 = perf_event_open( ... gt=0 ...);
>>>>
>>>>	event_get_forcewake()
>>>>		pmu->fw_ref = xe_force_wake_get()
>>>>
>>>>fd2 = perf_event_open( ... gt=1 ...);
>>>>
>>>>	event_get_forcewake()
>>>>		// get the forcewake, but don't save the ref
>>>>
>>>>forcewake for gt1 is never put.
>>>
>>>pmu->fw_ref should be identical for all events taking this forcewake.
>>>
>>>>
>>>>
>>>>Or even multiple perf_event_open() for the same gt: we will not handle
>>>>the count correctly.
>>>
>>>The count is actually handled in domain->ref in the forcewake 
>>>implementation and note that forcewake is always taken for every 
>>>engine event that is being initialized and hence always being put 
>>>for every event that is destroyed. This code is not refcounting 
>>>that.
>>
>>so... we never set pmu->fw_ref back to 0 and any event destroy will try to
>>put the force wake? That seems a different bug that avoids the bug I
>>was thinking about.

oh, yeah missed that. That's a bug.

Thanks,
Umesh

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2025-02-21 17:42 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-14 10:08 [PATCH v7 0/5] PMU support for engine activity Riana Tauro
2025-02-14  9:54 ` ✓ CI.Patch_applied: success for PMU support for engine activity (rev3) Patchwork
2025-02-14  9:55 ` ✗ CI.checkpatch: warning " Patchwork
2025-02-14  9:56 ` ✓ CI.KUnit: success " Patchwork
2025-02-14 10:08 ` [PATCH v7 1/5] drm/xe: Add engine activity support Riana Tauro
2025-02-14 10:08 ` [PATCH v7 2/5] drm/xe/trace: Add trace for engine activity Riana Tauro
2025-02-14 10:08 ` [PATCH v7 3/5] drm/xe/guc: Expose engine activity only for supported GuC version Riana Tauro
2025-02-14 11:32   ` Michal Wajdeczko
2025-02-14 10:08 ` [PATCH v7 4/5] drm/xe/xe_pmu: Add PMU support for engine activity Riana Tauro
2025-02-14 10:08 ` [PATCH v7 5/5] drm/xe/xe_pmu: Acquire forcewake on event init for engine events Riana Tauro
2025-02-14  9:50   ` Ghimiray, Himal Prasad
2025-02-20 21:46   ` Lucas De Marchi
2025-02-21  1:14     ` Umesh Nerlige Ramappa
2025-02-21  4:45       ` Lucas De Marchi
2025-02-21  6:26         ` Riana Tauro
2025-02-21  6:26         ` Lucas De Marchi
2025-02-21  6:32           ` Riana Tauro
2025-02-21 17:42           ` Umesh Nerlige Ramappa
2025-02-14 10:12 ` ✓ CI.Build: success for PMU support for engine activity (rev3) Patchwork
2025-02-14 10:15 ` ✓ CI.Hooks: " Patchwork
2025-02-14 10:16 ` ✓ CI.checksparse: " Patchwork
2025-02-14 10:35 ` ✓ Xe.CI.BAT: " Patchwork
2025-02-15  6:36 ` ✗ Xe.CI.Full: failure " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox