All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits
@ 2023-06-26 10:50 Matthew Auld
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 01/13] drm/xe: fix xe_device_mem_access_get() races Matthew Auld
                   ` (20 more replies)
  0 siblings, 21 replies; 36+ messages in thread
From: Matthew Auld @ 2023-06-26 10:50 UTC (permalink / raw)
  To: intel-xe

Main goal is to fix the races in xe_device_mem_access_get(). With that fixed we
can clean up some hacks and also start rolling it out to more places that need
it, including now asserting it around every mmio access. We also add lockdep
annotations for xe_device_mem_access_get() and fix the remaining lockdep
fallout.

v11 -> v12:
  - freq_rpe_show also needs the device to be awake
  - Improvements to the lockdep annotation patch

-- 
2.41.0


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

* [Intel-xe] [PATCH v12 01/13] drm/xe: fix xe_device_mem_access_get() races
  2023-06-26 10:50 [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Matthew Auld
@ 2023-06-26 10:50 ` Matthew Auld
  2023-06-30 15:22   ` Gupta, Anshuman
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 02/13] drm/xe/vm: tidy up xe_runtime_pm usage Matthew Auld
                   ` (19 subsequent siblings)
  20 siblings, 1 reply; 36+ messages in thread
From: Matthew Auld @ 2023-06-26 10:50 UTC (permalink / raw)
  To: intel-xe; +Cc: Rodrigo Vivi

It looks like there is at least one race here, given that the
pm_runtime_suspended() check looks to return false if we are in the
process of suspending the device (RPM_SUSPENDING vs RPM_SUSPENDED).  We
later also do xe_pm_runtime_get_if_active(), but since the device is
suspending or has now suspended, this doesn't do anything either.
Following from this we can potentially return from
xe_device_mem_access_get() with the device suspended or about to be,
leading to broken behaviour.

Attempt to fix this by always grabbing the runtime ref when our internal
ref transitions from 0 -> 1. The hard part is then dealing with the
runtime_pm callbacks also calling xe_device_mem_access_get() and
deadlocking, which the pm_runtime_suspended() check prevented.

v2:
 - ct->lock looks to be primed with fs_reclaim, so holding that and then
   allocating memory will cause lockdep to complain. Now that we
   unconditionally grab the mem_access.lock around mem_access_{get,put}, we
   need to change the ordering wrt to grabbing the ct->lock, since some of
   the runtime_pm routines can allocate memory (or at least that's what
   lockdep seems to suggest). Hopefully not a big deal.  It might be that
   there were already issues with this, just that the atomics where
   "hiding" the potential issues.
v3:
 - Use Thomas Hellström' idea with tracking the active task that is
   executing in the resume or suspend callback, in order to avoid
   recursive resume/suspend calls deadlocking on itself.
 - Split the ct->lock change.
v4:
 - Add smb_mb() around accessing the pm_callback_task for extra safety.
   (Thomas Hellström)
v5:
 - Clarify the kernel-doc for the mem_access.lock, given that it is quite
   strange in what it protects (data vs code). The real motivation is to
   aid lockdep. (Rodrigo Vivi)
v6:
 - Split out the lock change. We still want this as a lockdep aid but
   only for the xe_device_mem_access_get() path. Sticking a lock on the
   put() looks be a no-go, also the runtime_put() there is always async.
 - Now that the lock is gone move to atomics and rely on the pm code
   serialising multiple callers on the 0 -> 1 transition.
 - g2h_worker_func() looks to be the next issue, given that
   suspend-resume callbacks are using CT, so try to handle that.
v7:
 - Add xe_device_mem_access_get_if_ongoing(), and use it in
   g2h_worker_func().

Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/258
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Anshuman Gupta <anshuman.gupta@intel.com>
---
 drivers/gpu/drm/xe/xe_device.c       | 58 +++++++++++++++++++-----
 drivers/gpu/drm/xe/xe_device.h       | 12 ++---
 drivers/gpu/drm/xe/xe_device_types.h |  6 +++
 drivers/gpu/drm/xe/xe_guc_ct.c       | 34 +++++++++++++-
 drivers/gpu/drm/xe/xe_pm.c           | 66 +++++++++++++++++++---------
 drivers/gpu/drm/xe/xe_pm.h           |  3 +-
 6 files changed, 134 insertions(+), 45 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index c7985af85a53..1dc552da434f 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -411,27 +411,61 @@ u32 xe_device_ccs_bytes(struct xe_device *xe, u64 size)
 		DIV_ROUND_UP(size, NUM_BYTES_PER_CCS_BYTE) : 0;
 }
 
+bool xe_device_mem_access_ongoing(struct xe_device *xe)
+{
+	if (xe_pm_read_callback_task(xe) != NULL)
+		return true;
+
+	return atomic_read(&xe->mem_access.ref);
+}
+
+void xe_device_assert_mem_access(struct xe_device *xe)
+{
+	XE_WARN_ON(!xe_device_mem_access_ongoing(xe));
+}
+
+bool xe_device_mem_access_get_if_ongoing(struct xe_device *xe)
+{
+	return atomic_inc_not_zero(&xe->mem_access.ref);
+}
+
 void xe_device_mem_access_get(struct xe_device *xe)
 {
-	bool resumed = xe_pm_runtime_resume_if_suspended(xe);
-	int ref = atomic_inc_return(&xe->mem_access.ref);
+	/*
+	 * This looks racy, but should be fine since the pm_callback_task only
+	 * transitions from NULL -> current (and back to NULL again), during the
+	 * runtime_resume() or runtime_suspend() callbacks, for which there can
+	 * only be a single one running for our device. We only need to prevent
+	 * recursively calling the runtime_get or runtime_put from those
+	 * callbacks, as well as preventing triggering any access_ongoing
+	 * asserts.
+	 */
+	if (xe_pm_read_callback_task(xe) == current)
+		return;
 
-	if (ref == 1)
-		xe->mem_access.hold_rpm = xe_pm_runtime_get_if_active(xe);
+	if (!atomic_inc_not_zero(&xe->mem_access.ref)) {
+		bool hold_rpm = xe_pm_runtime_resume_and_get(xe);
+		int ref;
 
-	/* The usage counter increased if device was immediately resumed */
-	if (resumed)
-		xe_pm_runtime_put(xe);
-
-	XE_WARN_ON(ref == S32_MAX);
+		ref = atomic_inc_return(&xe->mem_access.ref);
+		if (ref == 1)
+			xe->mem_access.hold_rpm = hold_rpm;
+		else
+			xe_pm_runtime_put(xe);
+	} else {
+		XE_WARN_ON(atomic_read(&xe->mem_access.ref) == S32_MAX);
+	}
 }
 
 void xe_device_mem_access_put(struct xe_device *xe)
 {
-	bool hold = xe->mem_access.hold_rpm;
-	int ref = atomic_dec_return(&xe->mem_access.ref);
+	int ref;
 
-	if (!ref && hold)
+	if (xe_pm_read_callback_task(xe) == current)
+		return;
+
+	ref = atomic_dec_return(&xe->mem_access.ref);
+	if (ref == 0 && xe->mem_access.hold_rpm)
 		xe_pm_runtime_put(xe);
 
 	XE_WARN_ON(ref < 0);
diff --git a/drivers/gpu/drm/xe/xe_device.h b/drivers/gpu/drm/xe/xe_device.h
index 779f71d066e6..0ce0351d7d23 100644
--- a/drivers/gpu/drm/xe/xe_device.h
+++ b/drivers/gpu/drm/xe/xe_device.h
@@ -138,17 +138,11 @@ static inline struct xe_force_wake * gt_to_fw(struct xe_gt *gt)
 }
 
 void xe_device_mem_access_get(struct xe_device *xe);
+bool xe_device_mem_access_get_if_ongoing(struct xe_device *xe);
 void xe_device_mem_access_put(struct xe_device *xe);
 
-static inline bool xe_device_mem_access_ongoing(struct xe_device *xe)
-{
-	return atomic_read(&xe->mem_access.ref);
-}
-
-static inline void xe_device_assert_mem_access(struct xe_device *xe)
-{
-	XE_WARN_ON(!xe_device_mem_access_ongoing(xe));
-}
+void xe_device_assert_mem_access(struct xe_device *xe);
+bool xe_device_mem_access_ongoing(struct xe_device *xe);
 
 static inline bool xe_device_in_fault_mode(struct xe_device *xe)
 {
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index 0226d44a6af2..a39f3d3f3bc7 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -329,6 +329,12 @@ struct xe_device {
 		bool hold_rpm;
 	} mem_access;
 
+	/**
+	 * @pm_callback_task: Track the active task that is running in either
+	 * the runtime_suspend or runtime_resume callbacks.
+	 */
+	struct task_struct *pm_callback_task;
+
 	/** @d3cold_allowed: Indicates if d3cold is a valid device state */
 	bool d3cold_allowed;
 
diff --git a/drivers/gpu/drm/xe/xe_guc_ct.c b/drivers/gpu/drm/xe/xe_guc_ct.c
index 22bc9ce846db..421bb72b2868 100644
--- a/drivers/gpu/drm/xe/xe_guc_ct.c
+++ b/drivers/gpu/drm/xe/xe_guc_ct.c
@@ -19,6 +19,7 @@
 #include "xe_guc.h"
 #include "xe_guc_submit.h"
 #include "xe_map.h"
+#include "xe_pm.h"
 #include "xe_trace.h"
 
 /* Used when a CT send wants to block and / or receive data */
@@ -1078,9 +1079,36 @@ static int dequeue_one_g2h(struct xe_guc_ct *ct)
 static void g2h_worker_func(struct work_struct *w)
 {
 	struct xe_guc_ct *ct = container_of(w, struct xe_guc_ct, g2h_worker);
+	bool ongoing;
 	int ret;
 
-	xe_device_mem_access_get(ct_to_xe(ct));
+	/*
+	 * Normal users must always hold mem_access.ref around CT calls. However
+	 * during the runtime pm callbacks we rely on CT to talk to the GuC, but
+	 * at this stage we can't rely on mem_access.ref and even the
+	 * callback_task will be different than current.  For such cases we just
+	 * need to ensure we always process the responses from any blocking
+	 * ct_send requests or where we otherwise expect some response when
+	 * initiated from those callbacks (which will need to wait for the below
+	 * dequeue_one_g2h()).  The dequeue_one_g2h() will gracefully fail if
+	 * the device has suspended to the point that the CT communication has
+	 * been disabled.
+	 *
+	 * If we are inside the runtime pm callback, we can be the only task
+	 * still issuing CT requests (since that requires having the
+	 * mem_access.ref).  It seems like it might in theory be possible to
+	 * receive unsolicited events from the GuC just as we are
+	 * suspending-resuming, but those will currently anyway be lost when
+	 * eventually exiting from suspend, hence no need to wake up the device
+	 * here. If we ever need something stronger than get_if_ongoing() then
+	 * we need to be careful with blocking the pm callbacks from getting CT
+	 * responses, if the worker here is blocked on those callbacks
+	 * completing, creating a deadlock.
+	 */
+	ongoing = xe_device_mem_access_get_if_ongoing(ct_to_xe(ct));
+	if (!ongoing && xe_pm_read_callback_task(ct_to_xe(ct)) == NULL)
+		return;
+
 	do {
 		mutex_lock(&ct->lock);
 		ret = dequeue_one_g2h(ct);
@@ -1094,7 +1122,9 @@ static void g2h_worker_func(struct work_struct *w)
 			kick_reset(ct);
 		}
 	} while (ret == 1);
-	xe_device_mem_access_put(ct_to_xe(ct));
+
+	if (ongoing)
+		xe_device_mem_access_put(ct_to_xe(ct));
 }
 
 static void guc_ctb_snapshot_capture(struct xe_device *xe, struct guc_ctb *ctb,
diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
index b7b57f10ba25..29c8861e58a5 100644
--- a/drivers/gpu/drm/xe/xe_pm.c
+++ b/drivers/gpu/drm/xe/xe_pm.c
@@ -137,43 +137,71 @@ void xe_pm_runtime_fini(struct xe_device *xe)
 	pm_runtime_forbid(dev);
 }
 
+static void xe_pm_write_callback_task(struct xe_device *xe,
+				      struct task_struct *task)
+{
+	WRITE_ONCE(xe->pm_callback_task, task);
+
+	/*
+	 * Just in case it's somehow possible for our writes to be reordered to
+	 * the extent that something else re-uses the task written in
+	 * pm_callback_task. For example after returning from the callback, but
+	 * before the reordered write that resets pm_callback_task back to NULL.
+	 */
+	smp_mb(); /* pairs with xe_pm_read_callback_task */
+}
+
+struct task_struct *xe_pm_read_callback_task(struct xe_device *xe)
+{
+	smp_mb(); /* pairs with xe_pm_write_callback_task */
+
+	return READ_ONCE(xe->pm_callback_task);
+}
+
 int xe_pm_runtime_suspend(struct xe_device *xe)
 {
 	struct xe_gt *gt;
 	u8 id;
-	int err;
+	int err = 0;
+
+	if (xe->d3cold_allowed && xe_device_mem_access_ongoing(xe))
+		return -EBUSY;
+
+	/* Disable access_ongoing asserts and prevent recursive pm calls */
+	xe_pm_write_callback_task(xe, current);
 
 	if (xe->d3cold_allowed) {
-		if (xe_device_mem_access_ongoing(xe))
-			return -EBUSY;
-
 		err = xe_bo_evict_all(xe);
 		if (err)
-			return err;
+			goto out;
 	}
 
 	for_each_gt(gt, xe, id) {
 		err = xe_gt_suspend(gt);
 		if (err)
-			return err;
+			goto out;
 	}
 
 	xe_irq_suspend(xe);
-
-	return 0;
+out:
+	xe_pm_write_callback_task(xe, NULL);
+	return err;
 }
 
 int xe_pm_runtime_resume(struct xe_device *xe)
 {
 	struct xe_gt *gt;
 	u8 id;
-	int err;
+	int err = 0;
+
+	/* Disable access_ongoing asserts and prevent recursive pm calls */
+	xe_pm_write_callback_task(xe, current);
 
 	if (xe->d3cold_allowed) {
 		for_each_gt(gt, xe, id) {
 			err = xe_pcode_init(gt);
 			if (err)
-				return err;
+				goto out;
 		}
 
 		/*
@@ -182,7 +210,7 @@ int xe_pm_runtime_resume(struct xe_device *xe)
 		 */
 		err = xe_bo_restore_kernel(xe);
 		if (err)
-			return err;
+			goto out;
 	}
 
 	xe_irq_resume(xe);
@@ -193,10 +221,11 @@ int xe_pm_runtime_resume(struct xe_device *xe)
 	if (xe->d3cold_allowed) {
 		err = xe_bo_restore_user(xe);
 		if (err)
-			return err;
+			goto out;
 	}
-
-	return 0;
+out:
+	xe_pm_write_callback_task(xe, NULL);
+	return err;
 }
 
 int xe_pm_runtime_get(struct xe_device *xe)
@@ -210,14 +239,9 @@ int xe_pm_runtime_put(struct xe_device *xe)
 	return pm_runtime_put_autosuspend(xe->drm.dev);
 }
 
-/* Return true if resume operation happened and usage count was increased */
-bool xe_pm_runtime_resume_if_suspended(struct xe_device *xe)
+bool xe_pm_runtime_resume_and_get(struct xe_device *xe)
 {
-	/* In case we are suspended we need to immediately wake up */
-	if (pm_runtime_suspended(xe->drm.dev))
-		return !pm_runtime_resume_and_get(xe->drm.dev);
-
-	return false;
+	return !pm_runtime_resume_and_get(xe->drm.dev);
 }
 
 int xe_pm_runtime_get_if_active(struct xe_device *xe)
diff --git a/drivers/gpu/drm/xe/xe_pm.h b/drivers/gpu/drm/xe/xe_pm.h
index 6a885585f653..e92c508d44b9 100644
--- a/drivers/gpu/drm/xe/xe_pm.h
+++ b/drivers/gpu/drm/xe/xe_pm.h
@@ -19,7 +19,8 @@ int xe_pm_runtime_suspend(struct xe_device *xe);
 int xe_pm_runtime_resume(struct xe_device *xe);
 int xe_pm_runtime_get(struct xe_device *xe);
 int xe_pm_runtime_put(struct xe_device *xe);
-bool xe_pm_runtime_resume_if_suspended(struct xe_device *xe);
+bool xe_pm_runtime_resume_and_get(struct xe_device *xe);
 int xe_pm_runtime_get_if_active(struct xe_device *xe);
+struct task_struct *xe_pm_read_callback_task(struct xe_device *xe);
 
 #endif
-- 
2.41.0


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

* [Intel-xe] [PATCH v12 02/13] drm/xe/vm: tidy up xe_runtime_pm usage
  2023-06-26 10:50 [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Matthew Auld
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 01/13] drm/xe: fix xe_device_mem_access_get() races Matthew Auld
@ 2023-06-26 10:50 ` Matthew Auld
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 03/13] drm/xe/debugfs: grab mem_access around forcewake Matthew Auld
                   ` (18 subsequent siblings)
  20 siblings, 0 replies; 36+ messages in thread
From: Matthew Auld @ 2023-06-26 10:50 UTC (permalink / raw)
  To: intel-xe; +Cc: Rodrigo Vivi

The xe_device_mem_access_get() should be all that's needed here and
should now work as expected, without any strange races. In theory should
be no functional changes here.

Reported-by: Oded Gabbay <ogabbay@kernel.org>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/xe/xe_vm.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index 3bba957e3b89..133b0ef15cd0 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -1215,11 +1215,8 @@ struct xe_vm *xe_vm_create(struct xe_device *xe, u32 flags)
 
 	INIT_LIST_HEAD(&vm->extobj.list);
 
-	if (!(flags & XE_VM_FLAG_MIGRATION)) {
-		/* We need to immeditatelly exit from any D3 state */
-		xe_pm_runtime_get(xe);
+	if (!(flags & XE_VM_FLAG_MIGRATION))
 		xe_device_mem_access_get(xe);
-	}
 
 	err = dma_resv_lock_interruptible(&vm->resv, NULL);
 	if (err)
@@ -1333,10 +1330,8 @@ struct xe_vm *xe_vm_create(struct xe_device *xe, u32 flags)
 err_put:
 	dma_resv_fini(&vm->resv);
 	kfree(vm);
-	if (!(flags & XE_VM_FLAG_MIGRATION)) {
+	if (!(flags & XE_VM_FLAG_MIGRATION))
 		xe_device_mem_access_put(xe);
-		xe_pm_runtime_put(xe);
-	}
 	return ERR_PTR(err);
 }
 
@@ -1489,7 +1484,6 @@ static void vm_destroy_work_func(struct work_struct *w)
 
 	if (!(vm->flags & XE_VM_FLAG_MIGRATION)) {
 		xe_device_mem_access_put(xe);
-		xe_pm_runtime_put(xe);
 
 		if (xe->info.has_asid) {
 			mutex_lock(&xe->usm.lock);
-- 
2.41.0


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

* [Intel-xe] [PATCH v12 03/13] drm/xe/debugfs: grab mem_access around forcewake
  2023-06-26 10:50 [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Matthew Auld
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 01/13] drm/xe: fix xe_device_mem_access_get() races Matthew Auld
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 02/13] drm/xe/vm: tidy up xe_runtime_pm usage Matthew Auld
@ 2023-06-26 10:50 ` Matthew Auld
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 04/13] drm/xe/guc_pc: add missing mem_access for freq_rpe_show Matthew Auld
                   ` (17 subsequent siblings)
  20 siblings, 0 replies; 36+ messages in thread
From: Matthew Auld @ 2023-06-26 10:50 UTC (permalink / raw)
  To: intel-xe; +Cc: Rodrigo Vivi

We need keep the device awake when performing any kind of mmio operation.

Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/279
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/xe/xe_debugfs.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_debugfs.c b/drivers/gpu/drm/xe/xe_debugfs.c
index 7827a785b020..047341d5689a 100644
--- a/drivers/gpu/drm/xe/xe_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_debugfs.c
@@ -70,6 +70,8 @@ static int forcewake_open(struct inode *inode, struct file *file)
 	struct xe_gt *gt;
 	u8 id;
 
+	xe_device_mem_access_get(xe);
+
 	for_each_gt(gt, xe, id)
 		XE_WARN_ON(xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL));
 
@@ -85,6 +87,8 @@ static int forcewake_release(struct inode *inode, struct file *file)
 	for_each_gt(gt, xe, id)
 		XE_WARN_ON(xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL));
 
+	xe_device_mem_access_put(xe);
+
 	return 0;
 }
 
-- 
2.41.0


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

* [Intel-xe] [PATCH v12 04/13] drm/xe/guc_pc: add missing mem_access for freq_rpe_show
  2023-06-26 10:50 [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Matthew Auld
                   ` (2 preceding siblings ...)
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 03/13] drm/xe/debugfs: grab mem_access around forcewake Matthew Auld
@ 2023-06-26 10:50 ` Matthew Auld
  2023-06-27  6:53   ` Gupta, Anshuman
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 05/13] drm/xe/mmio: grab mem_access in xe_mmio_ioctl Matthew Auld
                   ` (16 subsequent siblings)
  20 siblings, 1 reply; 36+ messages in thread
From: Matthew Auld @ 2023-06-26 10:50 UTC (permalink / raw)
  To: intel-xe; +Cc: Rodrigo Vivi

The mem_access is meant to cover any kind of device level memory access,
mmio included.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Anshuman Gupta <anshuman.gupta@intel.com>
---
 drivers/gpu/drm/xe/xe_guc_pc.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_guc_pc.c b/drivers/gpu/drm/xe/xe_guc_pc.c
index 5d5cf4b0d508..e3722a805837 100644
--- a/drivers/gpu/drm/xe/xe_guc_pc.c
+++ b/drivers/gpu/drm/xe/xe_guc_pc.c
@@ -430,8 +430,12 @@ static ssize_t freq_rpe_show(struct device *dev,
 			     struct device_attribute *attr, char *buf)
 {
 	struct xe_guc_pc *pc = dev_to_pc(dev);
+	struct xe_gt *gt = pc_to_gt(pc);
+	struct xe_device *xe = gt_to_xe(gt);
 
+	xe_device_mem_access_get(xe);
 	pc_update_rp_values(pc);
+	xe_device_mem_access_put(xe);
 	return sysfs_emit(buf, "%d\n", pc->rpe_freq);
 }
 static DEVICE_ATTR_RO(freq_rpe);
-- 
2.41.0


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

* [Intel-xe] [PATCH v12 05/13] drm/xe/mmio: grab mem_access in xe_mmio_ioctl
  2023-06-26 10:50 [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Matthew Auld
                   ` (3 preceding siblings ...)
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 04/13] drm/xe/guc_pc: add missing mem_access for freq_rpe_show Matthew Auld
@ 2023-06-26 10:50 ` Matthew Auld
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 06/13] drm/xe: ensure correct access_put ordering Matthew Auld
                   ` (15 subsequent siblings)
  20 siblings, 0 replies; 36+ messages in thread
From: Matthew Auld @ 2023-06-26 10:50 UTC (permalink / raw)
  To: intel-xe; +Cc: Rodrigo Vivi

Any kind of device memory access should first ensure the device is not
suspended, mmio included.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_mmio.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_mmio.c b/drivers/gpu/drm/xe/xe_mmio.c
index f1336803b915..300537bfc559 100644
--- a/drivers/gpu/drm/xe/xe_mmio.c
+++ b/drivers/gpu/drm/xe/xe_mmio.c
@@ -476,6 +476,7 @@ int xe_mmio_ioctl(struct drm_device *dev, void *data,
 	 */
 	reg = XE_REG(args->addr);
 
+	xe_device_mem_access_get(xe);
 	xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL);
 
 	if (args->flags & DRM_XE_MMIO_WRITE) {
@@ -519,6 +520,7 @@ int xe_mmio_ioctl(struct drm_device *dev, void *data,
 
 exit:
 	xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL);
+	xe_device_mem_access_put(xe);
 
 	return ret;
 }
-- 
2.41.0


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

* [Intel-xe] [PATCH v12 06/13] drm/xe: ensure correct access_put ordering
  2023-06-26 10:50 [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Matthew Auld
                   ` (4 preceding siblings ...)
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 05/13] drm/xe/mmio: grab mem_access in xe_mmio_ioctl Matthew Auld
@ 2023-06-26 10:50 ` Matthew Auld
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 07/13] drm/xe/pci: wrap probe with mem_access Matthew Auld
                   ` (14 subsequent siblings)
  20 siblings, 0 replies; 36+ messages in thread
From: Matthew Auld @ 2023-06-26 10:50 UTC (permalink / raw)
  To: intel-xe; +Cc: Rodrigo Vivi

Only call access_put after dropping the forcewake. In theory the device
could suspend, but really we want to start asserting that we have a
mem_access.ref when touching mmio.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_gt.c         | 8 ++++----
 drivers/gpu/drm/xe/xe_gt_debugfs.c | 2 +-
 drivers/gpu/drm/xe/xe_guc_pc.c     | 2 +-
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
index 2458397ce8af..2b8a5b29d281 100644
--- a/drivers/gpu/drm/xe/xe_gt.c
+++ b/drivers/gpu/drm/xe/xe_gt.c
@@ -530,8 +530,8 @@ static int gt_reset(struct xe_gt *gt)
 	if (err)
 		goto err_out;
 
-	xe_device_mem_access_put(gt_to_xe(gt));
 	err = xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL);
+	xe_device_mem_access_put(gt_to_xe(gt));
 	XE_WARN_ON(err);
 
 	xe_gt_info(gt, "reset done\n");
@@ -574,8 +574,8 @@ void xe_gt_suspend_prepare(struct xe_gt *gt)
 
 	xe_uc_stop_prepare(&gt->uc);
 
-	xe_device_mem_access_put(gt_to_xe(gt));
 	XE_WARN_ON(xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL));
+	xe_device_mem_access_put(gt_to_xe(gt));
 }
 
 int xe_gt_suspend(struct xe_gt *gt)
@@ -597,8 +597,8 @@ int xe_gt_suspend(struct xe_gt *gt)
 	if (err)
 		goto err_force_wake;
 
-	xe_device_mem_access_put(gt_to_xe(gt));
 	XE_WARN_ON(xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL));
+	xe_device_mem_access_put(gt_to_xe(gt));
 	xe_gt_info(gt, "suspended\n");
 
 	return 0;
@@ -625,8 +625,8 @@ int xe_gt_resume(struct xe_gt *gt)
 	if (err)
 		goto err_force_wake;
 
-	xe_device_mem_access_put(gt_to_xe(gt));
 	XE_WARN_ON(xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL));
+	xe_device_mem_access_put(gt_to_xe(gt));
 	xe_gt_info(gt, "resumed\n");
 
 	return 0;
diff --git a/drivers/gpu/drm/xe/xe_gt_debugfs.c b/drivers/gpu/drm/xe/xe_gt_debugfs.c
index b5a5538ae630..98dd3b2506b1 100644
--- a/drivers/gpu/drm/xe/xe_gt_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_gt_debugfs.c
@@ -45,8 +45,8 @@ static int hw_engines(struct seq_file *m, void *data)
 	for_each_hw_engine(hwe, gt, id)
 		xe_hw_engine_print(hwe, &p);
 
-	xe_device_mem_access_put(xe);
 	err = xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL);
+	xe_device_mem_access_put(xe);
 	if (err)
 		return err;
 
diff --git a/drivers/gpu/drm/xe/xe_guc_pc.c b/drivers/gpu/drm/xe/xe_guc_pc.c
index e3722a805837..b2dd82a6681d 100644
--- a/drivers/gpu/drm/xe/xe_guc_pc.c
+++ b/drivers/gpu/drm/xe/xe_guc_pc.c
@@ -831,8 +831,8 @@ int xe_guc_pc_start(struct xe_guc_pc *pc)
 	ret = pc_action_setup_gucrc(pc, XE_GUCRC_FIRMWARE_CONTROL);
 
 out:
-	xe_device_mem_access_put(pc_to_xe(pc));
 	XE_WARN_ON(xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL));
+	xe_device_mem_access_put(pc_to_xe(pc));
 	return ret;
 }
 
-- 
2.41.0


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

* [Intel-xe] [PATCH v12 07/13] drm/xe/pci: wrap probe with mem_access
  2023-06-26 10:50 [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Matthew Auld
                   ` (5 preceding siblings ...)
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 06/13] drm/xe: ensure correct access_put ordering Matthew Auld
@ 2023-06-26 10:50 ` Matthew Auld
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 08/13] drm/xe/display: use mem_access underneath Matthew Auld
                   ` (13 subsequent siblings)
  20 siblings, 0 replies; 36+ messages in thread
From: Matthew Auld @ 2023-06-26 10:50 UTC (permalink / raw)
  To: intel-xe; +Cc: Rodrigo Vivi

Various display init stuff is missing mem_access.ref, so just wrap the
entire probe sequence with xe_device_mem_access_get(). It's impossible
for the device to actually be runtime suspended during probe, so this is
purely just to stop the xe_device_assert_mem_access() from incorrectly
firing. In a later patch we want to add xe_device_assert_mem_access()
for all mmio accesses.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_pci.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index 2991cf5365d5..91ccdaa1193d 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -680,7 +680,9 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	if (pci_enable_msi(pdev) < 0)
 		drm_dbg(&xe->drm, "can't enable MSI");
 
+	xe_device_mem_access_get(xe);
 	err = xe_device_probe(xe);
+	xe_device_mem_access_put(xe);
 	if (err)
 		goto err_pci_disable;
 
-- 
2.41.0


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

* [Intel-xe] [PATCH v12 08/13] drm/xe/display: use mem_access underneath
  2023-06-26 10:50 [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Matthew Auld
                   ` (6 preceding siblings ...)
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 07/13] drm/xe/pci: wrap probe with mem_access Matthew Auld
@ 2023-06-26 10:50 ` Matthew Auld
  2023-06-28  9:51   ` Gupta, Anshuman
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 09/13] drm/xe/mmio: enforce xe_device_assert_mem_access Matthew Auld
                   ` (12 subsequent siblings)
  20 siblings, 1 reply; 36+ messages in thread
From: Matthew Auld @ 2023-06-26 10:50 UTC (permalink / raw)
  To: intel-xe

There are places in the display code (i915) doing mmio access.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
---
 drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h b/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
index 59bf1d4a61d6..7a43f3af1796 100644
--- a/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
+++ b/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
@@ -151,6 +151,7 @@ static inline bool intel_runtime_pm_get(struct xe_runtime_pm *pm)
 		xe_pm_runtime_put(xe);
 		return false;
 	}
+	xe_device_mem_access_get(xe);
 	return true;
 }
 
@@ -158,14 +159,14 @@ static inline bool intel_runtime_pm_get_if_in_use(struct xe_runtime_pm *pm)
 {
 	struct xe_device *xe = container_of(pm, struct xe_device, runtime_pm);
 
-	return xe_pm_runtime_get_if_active(xe);
+	return xe_device_mem_access_get_if_ongoing(xe);
 }
 
 static inline void intel_runtime_pm_put_unchecked(struct xe_runtime_pm *pm)
 {
 	struct xe_device *xe = container_of(pm, struct xe_device, runtime_pm);
 
-	xe_pm_runtime_put(xe);
+	xe_device_mem_access_put(xe);
 }
 
 static inline void intel_runtime_pm_put(struct xe_runtime_pm *pm, bool wakeref)
-- 
2.41.0


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

* [Intel-xe] [PATCH v12 09/13] drm/xe/mmio: enforce xe_device_assert_mem_access
  2023-06-26 10:50 [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Matthew Auld
                   ` (7 preceding siblings ...)
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 08/13] drm/xe/display: use mem_access underneath Matthew Auld
@ 2023-06-26 10:50 ` Matthew Auld
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 10/13] drm/xe: drop xe_device_mem_access_get() from guc_ct_send Matthew Auld
                   ` (11 subsequent siblings)
  20 siblings, 0 replies; 36+ messages in thread
From: Matthew Auld @ 2023-06-26 10:50 UTC (permalink / raw)
  To: intel-xe; +Cc: Rodrigo Vivi

The mem_access is meant to cover any kind of device level memory
access, mmio included.

Suggested-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_mmio.h | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_mmio.h b/drivers/gpu/drm/xe/xe_mmio.h
index 3c547d78afba..1a6f0fa9e04e 100644
--- a/drivers/gpu/drm/xe/xe_mmio.h
+++ b/drivers/gpu/drm/xe/xe_mmio.h
@@ -10,6 +10,7 @@
 #include <linux/io-64-nonatomic-lo-hi.h>
 
 #include "regs/xe_reg_defs.h"
+#include "xe_device.h"
 #include "xe_device_types.h"
 #include "xe_gt_types.h"
 
@@ -25,6 +26,8 @@ static inline u8 xe_mmio_read8(struct xe_gt *gt, struct xe_reg reg)
 {
 	struct xe_tile *tile = gt_to_tile(gt);
 
+	xe_device_assert_mem_access(tile->xe);
+
 	if (reg.addr < gt->mmio.adj_limit)
 		reg.addr += gt->mmio.adj_offset;
 
@@ -36,6 +39,8 @@ static inline void xe_mmio_write32(struct xe_gt *gt,
 {
 	struct xe_tile *tile = gt_to_tile(gt);
 
+	xe_device_assert_mem_access(tile->xe);
+
 	if (reg.addr < gt->mmio.adj_limit)
 		reg.addr += gt->mmio.adj_offset;
 
@@ -46,6 +51,8 @@ static inline u32 xe_mmio_read32(struct xe_gt *gt, struct xe_reg reg)
 {
 	struct xe_tile *tile = gt_to_tile(gt);
 
+	xe_device_assert_mem_access(tile->xe);
+
 	if (reg.addr < gt->mmio.adj_limit)
 		reg.addr += gt->mmio.adj_offset;
 
@@ -69,6 +76,8 @@ static inline void xe_mmio_write64(struct xe_gt *gt,
 {
 	struct xe_tile *tile = gt_to_tile(gt);
 
+	xe_device_assert_mem_access(tile->xe);
+
 	if (reg.addr < gt->mmio.adj_limit)
 		reg.addr += gt->mmio.adj_offset;
 
@@ -79,6 +88,8 @@ static inline u64 xe_mmio_read64(struct xe_gt *gt, struct xe_reg reg)
 {
 	struct xe_tile *tile = gt_to_tile(gt);
 
+	xe_device_assert_mem_access(tile->xe);
+
 	if (reg.addr < gt->mmio.adj_limit)
 		reg.addr += gt->mmio.adj_offset;
 
-- 
2.41.0


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

* [Intel-xe] [PATCH v12 10/13] drm/xe: drop xe_device_mem_access_get() from guc_ct_send
  2023-06-26 10:50 [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Matthew Auld
                   ` (8 preceding siblings ...)
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 09/13] drm/xe/mmio: enforce xe_device_assert_mem_access Matthew Auld
@ 2023-06-26 10:50 ` Matthew Auld
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 11/13] drm/xe/ggtt: prime ggtt->lock against FS_RECLAIM Matthew Auld
                   ` (10 subsequent siblings)
  20 siblings, 0 replies; 36+ messages in thread
From: Matthew Auld @ 2023-06-26 10:50 UTC (permalink / raw)
  To: intel-xe; +Cc: Rodrigo Vivi

The callers should already be holding the mem_access reference, before
calling into this.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/xe/xe_guc_ct.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_guc_ct.c b/drivers/gpu/drm/xe/xe_guc_ct.c
index 421bb72b2868..2fba5bbe02ed 100644
--- a/drivers/gpu/drm/xe/xe_guc_ct.c
+++ b/drivers/gpu/drm/xe/xe_guc_ct.c
@@ -607,14 +607,10 @@ static int guc_ct_send(struct xe_guc_ct *ct, const u32 *action, u32 len,
 
 	XE_BUG_ON(g2h_len && g2h_fence);
 
-	xe_device_mem_access_get(ct_to_xe(ct));
-
 	mutex_lock(&ct->lock);
 	ret = guc_ct_send_locked(ct, action, len, g2h_len, num_g2h, g2h_fence);
 	mutex_unlock(&ct->lock);
 
-	xe_device_mem_access_put(ct_to_xe(ct));
-
 	return ret;
 }
 
-- 
2.41.0


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

* [Intel-xe] [PATCH v12 11/13] drm/xe/ggtt: prime ggtt->lock against FS_RECLAIM
  2023-06-26 10:50 [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Matthew Auld
                   ` (9 preceding siblings ...)
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 10/13] drm/xe: drop xe_device_mem_access_get() from guc_ct_send Matthew Auld
@ 2023-06-26 10:50 ` Matthew Auld
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 12/13] drm/xe: drop xe_device_mem_access_get() from invalidation_vma Matthew Auld
                   ` (9 subsequent siblings)
  20 siblings, 0 replies; 36+ messages in thread
From: Matthew Auld @ 2023-06-26 10:50 UTC (permalink / raw)
  To: intel-xe; +Cc: Rodrigo Vivi

Increase the sensitivity of the ggtt->lock by priming it against
FS_RECLAIM, such that allocating memory while holding will result in
lockdep splats.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/xe/xe_ggtt.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
index 7588fbc2f278..e1b84bc25375 100644
--- a/drivers/gpu/drm/xe/xe_ggtt.c
+++ b/drivers/gpu/drm/xe/xe_ggtt.c
@@ -93,6 +93,16 @@ static void ggtt_fini_noalloc(struct drm_device *drm, void *arg)
 	xe_bo_unpin_map_no_vm(ggtt->scratch);
 }
 
+static void primelockdep(struct xe_ggtt *ggtt)
+{
+	if (!IS_ENABLED(CONFIG_LOCKDEP))
+		return;
+
+	fs_reclaim_acquire(GFP_KERNEL);
+	might_lock(&ggtt->lock);
+	fs_reclaim_release(GFP_KERNEL);
+}
+
 int xe_ggtt_init_noalloc(struct xe_ggtt *ggtt)
 {
 	struct xe_device *xe = tile_to_xe(ggtt->tile);
@@ -140,6 +150,7 @@ int xe_ggtt_init_noalloc(struct xe_ggtt *ggtt)
 	drm_mm_init(&ggtt->mm, xe_wopcm_size(xe),
 		    ggtt->size - xe_wopcm_size(xe));
 	mutex_init(&ggtt->lock);
+	primelockdep(ggtt);
 
 	return drmm_add_action_or_reset(&xe->drm, ggtt_fini_noalloc, ggtt);
 }
-- 
2.41.0


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

* [Intel-xe] [PATCH v12 12/13] drm/xe: drop xe_device_mem_access_get() from invalidation_vma
  2023-06-26 10:50 [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Matthew Auld
                   ` (10 preceding siblings ...)
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 11/13] drm/xe/ggtt: prime ggtt->lock against FS_RECLAIM Matthew Auld
@ 2023-06-26 10:50 ` Matthew Auld
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 13/13] drm/xe: add lockdep annotation for xe_device_mem_access_get() Matthew Auld
                   ` (8 subsequent siblings)
  20 siblings, 0 replies; 36+ messages in thread
From: Matthew Auld @ 2023-06-26 10:50 UTC (permalink / raw)
  To: intel-xe; +Cc: Rodrigo Vivi

Lockdep gives the following splat:

[  594.158863] ffff888140da53f0 (&vm->userptr.notifier_lock){++++}-{3:3}, at: vma_userptr_invalidate+0xeb/0x330 [xe]
[  594.158921]
               but task is already holding lock:
[  594.158926] ffffffff82761940
(mmu_notifier_invalidate_range_start){+.+.}-{0:0}, at: unmap_vmas+0x0/0x1c0
[  594.158941]
               which lock already depends on the new lock.

[  594.158947]
               the existing dependency chain (in reverse order) is:
[  594.158953]
               -> #5 (mmu_notifier_invalidate_range_start){+.+.}-{0:0}:
[  594.158961]        fs_reclaim_acquire+0x68/0xd0
[  594.158969]        __kmem_cache_alloc_node+0x2c/0x1b0
[  594.158975]        kmalloc_node_trace+0x1d/0xb0
[  594.158983]        alloc_worker+0x18/0x50
[  594.158989]        init_rescuer.part.0+0x13/0xa0
[  594.158995]        workqueue_init+0xdf/0x210
[  594.159001]        kernel_init_freeable+0x5c/0x2f0
[  594.159009]        kernel_init+0x11/0x1a0
[  594.159017]        ret_from_fork+0x29/0x50
[  594.159023]
               -> #4 (fs_reclaim){+.+.}-{0:0}:
[  594.159031]        fs_reclaim_acquire+0xa0/0xd0
[  594.159037]        __kmem_cache_alloc_node+0x2c/0x1b0
[  594.159042]        kmalloc_trace+0x20/0xb0
[  594.159048]        acpi_device_add+0x25a/0x3f0
[  594.159056]        acpi_add_single_object+0x387/0x750
[  594.159063]        acpi_bus_check_add+0x108/0x280
[  594.159069]        acpi_bus_scan+0x34/0xf0
[  594.159075]        acpi_scan_init+0xed/0x2b0
[  594.159082]        acpi_init+0x21e/0x520
[  594.159087]        do_one_initcall+0x53/0x260
[  594.159092]        kernel_init_freeable+0x18a/0x2f0
[  594.159099]        kernel_init+0x11/0x1a0
[  594.159105]        ret_from_fork+0x29/0x50
[  594.159110]
               -> #3 (acpi_device_lock){+.+.}-{3:3}:
[  594.159117]        __mutex_lock+0x95/0xd10
[  594.159122]        acpi_enable_wakeup_device_power+0x30/0x120
[  594.159130]        __acpi_device_wakeup_enable+0x34/0x110
[  594.159138]        acpi_pm_set_device_wakeup+0x55/0x140
[  594.159143]        __pci_enable_wake+0x56/0xb0
[  594.159150]        pci_finish_runtime_suspend+0x35/0x80
[  594.159157]        pci_pm_runtime_suspend+0xb5/0x1a0
[  594.159162]        __rpm_callback+0x3c/0x110
[  594.159170]        rpm_callback+0x58/0x70
[  594.159176]        rpm_suspend+0x15c/0x6f0
[  594.159182]        pm_runtime_work+0x9b/0xb0
[  594.159188]        process_one_work+0x263/0x520
[  594.159195]        worker_thread+0x4d/0x3b0
[  594.159200]        kthread+0xeb/0x120
[  594.159206]        ret_from_fork+0x29/0x50
[  594.159211]
               -> #2 (acpi_wakeup_lock){+.+.}-{3:3}:
[  594.159218]        __mutex_lock+0x95/0xd10
[  594.159223]        acpi_pm_set_device_wakeup+0x7a/0x140
[  594.159228]        __pci_enable_wake+0x77/0xb0
[  594.159234]        pci_pm_runtime_resume+0x70/0xd0
[  594.159240]        __rpm_callback+0x3c/0x110
[  594.159246]        rpm_callback+0x58/0x70
[  594.159252]        rpm_resume+0x50d/0x7a0
[  594.159258]        rpm_resume+0x267/0x7a0
[  594.159264]        __pm_runtime_resume+0x45/0x90
[  594.159270]        xe_pm_runtime_resume_and_get+0x12/0x50 [xe]
[  594.159314]        xe_device_mem_access_get+0x97/0xc0 [xe]
[  594.159346]        hw_engines+0x65/0xf0 [xe]
[  594.159380]        seq_read_iter+0x10d/0x4b0
[  594.159385]        seq_read+0x9e/0xd0
[  594.159390]        full_proxy_read+0x4e/0x80
[  594.159396]        vfs_read+0xb6/0x310
[  594.159401]        ksys_read+0x60/0xe0
[  594.159406]        do_syscall_64+0x38/0x90
[  594.159413]        entry_SYSCALL_64_after_hwframe+0x72/0xdc
[  594.159419]
               -> #1 (&xe->mem_access.lock){+.+.}-{3:3}:
[  594.159427]        xe_device_mem_access_get+0x43/0xc0 [xe]
[  594.159457]        xe_gt_tlb_invalidation_vma+0x53/0x190 [xe]
[  594.159490]        invalidation_fence_init+0x1d2/0x2c0 [xe]
[  594.159529]        __xe_pt_unbind_vma+0x151/0x4e0 [xe]
[  594.159564]        vm_bind_ioctl+0x48a/0xae0 [xe]
[  594.159602]        async_op_work_func+0x20c/0x530 [xe]
[  594.159634]        process_one_work+0x263/0x520
[  594.159640]        worker_thread+0x4d/0x3b0
[  594.159646]        kthread+0xeb/0x120
[  594.159650]        ret_from_fork+0x29/0x50
[  594.159655]
               -> #0 (&vm->userptr.notifier_lock){++++}-{3:3}:
[  594.159663]        __lock_acquire+0x16fa/0x2850
[  594.159670]        lock_acquire+0xd2/0x2e0
[  594.159676]        down_write+0x36/0xd0
[  594.159681]        vma_userptr_invalidate+0xeb/0x330 [xe]
[  594.159714]        __mmu_notifier_invalidate_range_start+0x239/0x2a0
[  594.159722]        unmap_vmas+0x1ac/0x1c0
[  594.159727]        unmap_region+0xb5/0x120
[  594.159732]        do_vmi_align_munmap+0x2be/0x430
[  594.159739]        do_vmi_munmap+0xea/0x120
[  594.159744]        __vm_munmap+0x9c/0x160
[  594.159750]        __x64_sys_munmap+0x12/0x20
[  594.159756]        do_syscall_64+0x38/0x90
[  594.159761]        entry_SYSCALL_64_after_hwframe+0x72/0xdc
[  594.159768]
               other info that might help us debug this:

[  594.159773] Chain exists of:
                 &vm->userptr.notifier_lock --> fs_reclaim -->
mmu_notifier_invalidate_range_start

[  594.159785]  Possible unsafe locking scenario:

[  594.159790]        CPU0                    CPU1
[  594.159794]        ----                    ----
[  594.159797]   lock(mmu_notifier_invalidate_range_start);
[  594.159802]                                lock(fs_reclaim);
[  594.159808]
lock(mmu_notifier_invalidate_range_start);
[  594.159814]   lock(&vm->userptr.notifier_lock);
[  594.159819]

The VM should be holding a mem_access.ref so this looks like it should
be a false positive and we can just drop the explicit mem_access in
xe_gt_tlb_invalidation().  The GGTT invalidation path also takes care to
hold mem_access.ref so should be fine there also, and we already assert
that we hold access.ref for the GuC communication underneath.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c b/drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c
index 2fcb477604e2..19826488d3da 100644
--- a/drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c
+++ b/drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c
@@ -194,7 +194,7 @@ int xe_gt_tlb_invalidation_vma(struct xe_gt *gt,
 	struct xe_device *xe = gt_to_xe(gt);
 #define MAX_TLB_INVALIDATION_LEN	7
 	u32 action[MAX_TLB_INVALIDATION_LEN];
-	int len = 0, ret;
+	int len = 0;
 
 	XE_BUG_ON(!vma);
 
@@ -248,11 +248,7 @@ int xe_gt_tlb_invalidation_vma(struct xe_gt *gt,
 
 	XE_BUG_ON(len > MAX_TLB_INVALIDATION_LEN);
 
-	xe_device_mem_access_get(xe);
-	ret = send_tlb_invalidation(&gt->uc.guc, fence, action, len);
-	xe_device_mem_access_put(xe);
-
-	return ret;
+	return send_tlb_invalidation(&gt->uc.guc, fence, action, len);
 }
 
 static bool tlb_invalidation_seqno_past(struct xe_gt *gt, int seqno)
-- 
2.41.0


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

* [Intel-xe] [PATCH v12 13/13] drm/xe: add lockdep annotation for xe_device_mem_access_get()
  2023-06-26 10:50 [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Matthew Auld
                   ` (11 preceding siblings ...)
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 12/13] drm/xe: drop xe_device_mem_access_get() from invalidation_vma Matthew Auld
@ 2023-06-26 10:50 ` Matthew Auld
  2023-06-26 12:55 ` [Intel-xe] ✓ CI.Patch_applied: success for xe_device_mem_access fixes and related bits (rev2) Patchwork
                   ` (7 subsequent siblings)
  20 siblings, 0 replies; 36+ messages in thread
From: Matthew Auld @ 2023-06-26 10:50 UTC (permalink / raw)
  To: intel-xe; +Cc: Rodrigo Vivi

The atomics here might hide potential issues, so add a dummy lock with
the idea that xe_pm_runtime_resume() is eventually going to be called
when we are holding it. This only needs to happen once and then lockdep
can validate all callers and their locks.

v2: (Thomas Hellström)
 - Prefer static lockdep_map instead of full blown mutex.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Acked-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_device.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 1dc552da434f..923a23528da9 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -35,6 +35,12 @@
 #include "xe_vm_madvise.h"
 #include "xe_wait_user_fence.h"
 
+#ifdef CONFIG_LOCKDEP
+static struct lockdep_map xe_device_mem_access_lockdep_map = {
+	.name = "xe_device_mem_access_lockdep_map"
+};
+#endif
+
 static int xe_file_open(struct drm_device *dev, struct drm_file *file)
 {
 	struct xe_file *xef;
@@ -443,6 +449,22 @@ void xe_device_mem_access_get(struct xe_device *xe)
 	if (xe_pm_read_callback_task(xe) == current)
 		return;
 
+	/*
+	 * Since the resume here is synchronous it can be quite easy to deadlock
+	 * if we are not careful. Also in practice it might be quite timing
+	 * sensitive to ever see the 0 -> 1 transition with the callers locks
+	 * held, so deadlocks might exist but are hard for lockdep to ever see.
+	 * With this in mind, help lockdep learn about the potentially scary
+	 * stuff that can happen inside the runtime_resume callback by acquiring
+	 * a dummy lock (it doesn't protect anything and gets compiled out on
+	 * non-debug builds).  Lockdep then only needs to see the
+	 * mem_access.lock -> runtime_resume callback once, and then can
+	 * hopefully validate all the (callers_locks) -> mem_access.lock. For
+	 * example if the (callers_locks) are ever grabbed in the runtime_resume
+	 * callback, lockdep should give us a nice splat.
+	 */
+	lock_map_acquire(&xe_device_mem_access_lockdep_map);
+
 	if (!atomic_inc_not_zero(&xe->mem_access.ref)) {
 		bool hold_rpm = xe_pm_runtime_resume_and_get(xe);
 		int ref;
@@ -455,6 +477,8 @@ void xe_device_mem_access_get(struct xe_device *xe)
 	} else {
 		XE_WARN_ON(atomic_read(&xe->mem_access.ref) == S32_MAX);
 	}
+
+	lock_map_release(&xe_device_mem_access_lockdep_map);
 }
 
 void xe_device_mem_access_put(struct xe_device *xe)
-- 
2.41.0


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

* [Intel-xe] ✓ CI.Patch_applied: success for xe_device_mem_access fixes and related bits (rev2)
  2023-06-26 10:50 [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Matthew Auld
                   ` (12 preceding siblings ...)
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 13/13] drm/xe: add lockdep annotation for xe_device_mem_access_get() Matthew Auld
@ 2023-06-26 12:55 ` Patchwork
  2023-06-26 12:56 ` [Intel-xe] ✗ CI.checkpatch: warning " Patchwork
                   ` (6 subsequent siblings)
  20 siblings, 0 replies; 36+ messages in thread
From: Patchwork @ 2023-06-26 12:55 UTC (permalink / raw)
  To: Matthew Auld; +Cc: intel-xe

== Series Details ==

Series: xe_device_mem_access fixes and related bits (rev2)
URL   : https://patchwork.freedesktop.org/series/119213/
State : success

== Summary ==

=== Applying kernel patches on branch 'drm-xe-next' with base: ===
Base commit: d3fc5af59 drm/xe/bo: consider bo->flags in xe_bo_migrate()
=== git am output follows ===
Applying: drm/xe: fix xe_device_mem_access_get() races
Applying: drm/xe/vm: tidy up xe_runtime_pm usage
Applying: drm/xe/debugfs: grab mem_access around forcewake
Applying: drm/xe/guc_pc: add missing mem_access for freq_rpe_show
Applying: drm/xe/mmio: grab mem_access in xe_mmio_ioctl
Applying: drm/xe: ensure correct access_put ordering
Applying: drm/xe/pci: wrap probe with mem_access
Applying: drm/xe/display: use mem_access underneath
Applying: drm/xe/mmio: enforce xe_device_assert_mem_access
Applying: drm/xe: drop xe_device_mem_access_get() from guc_ct_send
Applying: drm/xe/ggtt: prime ggtt->lock against FS_RECLAIM
Applying: drm/xe: drop xe_device_mem_access_get() from invalidation_vma
Applying: drm/xe: add lockdep annotation for xe_device_mem_access_get()



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

* [Intel-xe] ✗ CI.checkpatch: warning for xe_device_mem_access fixes and related bits (rev2)
  2023-06-26 10:50 [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Matthew Auld
                   ` (13 preceding siblings ...)
  2023-06-26 12:55 ` [Intel-xe] ✓ CI.Patch_applied: success for xe_device_mem_access fixes and related bits (rev2) Patchwork
@ 2023-06-26 12:56 ` Patchwork
  2023-06-26 12:57 ` [Intel-xe] ✓ CI.KUnit: success " Patchwork
                   ` (5 subsequent siblings)
  20 siblings, 0 replies; 36+ messages in thread
From: Patchwork @ 2023-06-26 12:56 UTC (permalink / raw)
  To: Matthew Auld; +Cc: intel-xe

== Series Details ==

Series: xe_device_mem_access fixes and related bits (rev2)
URL   : https://patchwork.freedesktop.org/series/119213/
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
c7d32770e3cd31d9fc134ce41f329b10aa33ee15
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 22347f98439cbf4587420d3a78ff8fabada3697b
Author: Matthew Auld <matthew.auld@intel.com>
Date:   Mon Jun 26 11:50:51 2023 +0100

    drm/xe: add lockdep annotation for xe_device_mem_access_get()
    
    The atomics here might hide potential issues, so add a dummy lock with
    the idea that xe_pm_runtime_resume() is eventually going to be called
    when we are holding it. This only needs to happen once and then lockdep
    can validate all callers and their locks.
    
    v2: (Thomas Hellström)
     - Prefer static lockdep_map instead of full blown mutex.
    
    Signed-off-by: Matthew Auld <matthew.auld@intel.com>
    Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
    Acked-by: Matthew Brost <matthew.brost@intel.com>
+ /mt/dim checkpatch d3fc5af59c7c17ad1a0272c49dbff84534d9d606 drm-intel
12dc13a5b drm/xe: fix xe_device_mem_access_get() races
-:56: WARNING:COMMIT_LOG_USE_LINK: Unknown link reference 'Closes:', use 'Link:' instead
#56: 
Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/258

-:76: CHECK:COMPARISON_TO_NULL: Comparison to NULL could be written "xe_pm_read_callback_task"
#76: FILE: drivers/gpu/drm/xe/xe_device.c:416:
+	if (xe_pm_read_callback_task(xe) != NULL)

-:227: CHECK:COMPARISON_TO_NULL: Comparison to NULL could be written "!xe_pm_read_callback_task"
#227: FILE: drivers/gpu/drm/xe/xe_guc_ct.c:1109:
+	if (!ongoing && xe_pm_read_callback_task(ct_to_xe(ct)) == NULL)

total: 0 errors, 1 warnings, 2 checks, 287 lines checked
c18ae7d89 drm/xe/vm: tidy up xe_runtime_pm usage
-:13: WARNING:BAD_REPORTED_BY_LINK: Reported-by: should be immediately followed by Link: with a URL to the report
#13: 
Reported-by: Oded Gabbay <ogabbay@kernel.org>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>

total: 0 errors, 1 warnings, 0 checks, 30 lines checked
f0e75364c drm/xe/debugfs: grab mem_access around forcewake
-:11: WARNING:COMMIT_LOG_USE_LINK: Unknown link reference 'Closes:', use 'Link:' instead
#11: 
Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/279

total: 0 errors, 1 warnings, 0 checks, 16 lines checked
c497e9cf4 drm/xe/guc_pc: add missing mem_access for freq_rpe_show
b541505e3 drm/xe/mmio: grab mem_access in xe_mmio_ioctl
8e7037b5f drm/xe: ensure correct access_put ordering
859db692d drm/xe/pci: wrap probe with mem_access
3ef81c5bf drm/xe/display: use mem_access underneath
7b8d9716c drm/xe/mmio: enforce xe_device_assert_mem_access
08dfd8e55 drm/xe: drop xe_device_mem_access_get() from guc_ct_send
2c6140152 drm/xe/ggtt: prime ggtt->lock against FS_RECLAIM
7ee89f580 drm/xe: drop xe_device_mem_access_get() from invalidation_vma
22347f984 drm/xe: add lockdep annotation for xe_device_mem_access_get()



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

* [Intel-xe] ✓ CI.KUnit: success for xe_device_mem_access fixes and related bits (rev2)
  2023-06-26 10:50 [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Matthew Auld
                   ` (14 preceding siblings ...)
  2023-06-26 12:56 ` [Intel-xe] ✗ CI.checkpatch: warning " Patchwork
@ 2023-06-26 12:57 ` Patchwork
  2023-06-26 13:01 ` [Intel-xe] ✓ CI.Build: " Patchwork
                   ` (4 subsequent siblings)
  20 siblings, 0 replies; 36+ messages in thread
From: Patchwork @ 2023-06-26 12:57 UTC (permalink / raw)
  To: Matthew Auld; +Cc: intel-xe

== Series Details ==

Series: xe_device_mem_access fixes and related bits (rev2)
URL   : https://patchwork.freedesktop.org/series/119213/
State : success

== Summary ==

+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
stty: 'standard input': Inappropriate ioctl for device
[12:56:18] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[12:56:22] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make ARCH=um O=.kunit --jobs=48
[12:56:45] Starting KUnit Kernel (1/1)...
[12:56:45] ============================================================
[12:56:45] ==================== xe_bo (2 subtests) ====================
[12:56:45] [SKIPPED] xe_ccs_migrate_kunit
[12:56:45] [SKIPPED] xe_bo_evict_kunit
[12:56:45] ===================== [SKIPPED] xe_bo ======================
[12:56:45] ================== xe_dma_buf (1 subtest) ==================
[12:56:45] [SKIPPED] xe_dma_buf_kunit
[12:56:45] =================== [SKIPPED] xe_dma_buf ===================
[12:56:45] ================== xe_migrate (1 subtest) ==================
[12:56:45] [SKIPPED] xe_migrate_sanity_kunit
[12:56:45] =================== [SKIPPED] xe_migrate ===================
[12:56:45] =================== xe_pci (2 subtests) ====================
[12:56:45] [PASSED] xe_gmdid_graphics_ip
[12:56:45] [PASSED] xe_gmdid_media_ip
[12:56:45] ===================== [PASSED] xe_pci ======================
[12:56:45] ==================== xe_rtp (1 subtest) ====================
[12:56:45] ================== xe_rtp_process_tests  ===================
[12:56:45] [PASSED] coalesce-same-reg
[12:56:45] [PASSED] no-match-no-add
[12:56:45] [PASSED] no-match-no-add-multiple-rules
[12:56:45] [PASSED] two-regs-two-entries
[12:56:45] [PASSED] clr-one-set-other
[12:56:45] [PASSED] set-field
[12:56:45] [PASSED] conflict-duplicate
[12:56:45] [PASSED] conflict-not-disjoint
[12:56:45] [PASSED] conflict-reg-type
[12:56:45] ============== [PASSED] xe_rtp_process_tests ===============
[12:56:45] ===================== [PASSED] xe_rtp ======================
[12:56:45] ==================== xe_wa (1 subtest) =====================
[12:56:45] ======================== xe_wa_gt  =========================
[12:56:45] [PASSED] TIGERLAKE (B0)
[12:56:45] [PASSED] DG1 (A0)
[12:56:45] [PASSED] DG1 (B0)
[12:56:45] [PASSED] ALDERLAKE_S (A0)
[12:56:45] [PASSED] ALDERLAKE_S (B0)
[12:56:45] [PASSED] ALDERLAKE_S (C0)
[12:56:45] [PASSED] ALDERLAKE_S (D0)
[12:56:45] [PASSED] DG2_G10 (A0)
[12:56:45] [PASSED] DG2_G10 (A1)
[12:56:45] [PASSED] DG2_G10 (B0)
[12:56:45] [PASSED] DG2_G10 (C0)
[12:56:45] [PASSED] DG2_G11 (A0)
[12:56:45] [PASSED] DG2_G11 (B0)
[12:56:45] [PASSED] DG2_G11 (B1)
[12:56:45] [PASSED] DG2_G12 (A0)
[12:56:45] [PASSED] DG2_G12 (A1)
[12:56:45] [PASSED] PVC (B0)
[12:56:45] [PASSED] PVC (B1)
[12:56:45] [PASSED] PVC (C0)
[12:56:45] ==================== [PASSED] xe_wa_gt =====================
[12:56:45] ====================== [PASSED] xe_wa ======================
[12:56:45] ============================================================
[12:56:45] Testing complete. Ran 34 tests: passed: 30, skipped: 4
[12:56:45] Elapsed time: 26.441s total, 4.226s configuring, 22.096s building, 0.095s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[12:56:45] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[12:56:46] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make ARCH=um O=.kunit --jobs=48
[12:57:05] Starting KUnit Kernel (1/1)...
[12:57:05] ============================================================
[12:57:05] ============ drm_test_pick_cmdline (2 subtests) ============
[12:57:05] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[12:57:05] =============== drm_test_pick_cmdline_named  ===============
[12:57:05] [PASSED] NTSC
[12:57:05] [PASSED] NTSC-J
[12:57:05] [PASSED] PAL
[12:57:05] [PASSED] PAL-M
[12:57:05] =========== [PASSED] drm_test_pick_cmdline_named ===========
[12:57:05] ============== [PASSED] drm_test_pick_cmdline ==============
[12:57:05] ================== drm_buddy (6 subtests) ==================
[12:57:05] [PASSED] drm_test_buddy_alloc_limit
[12:57:05] [PASSED] drm_test_buddy_alloc_range
[12:57:05] [PASSED] drm_test_buddy_alloc_optimistic
[12:57:05] [PASSED] drm_test_buddy_alloc_pessimistic
[12:57:05] [PASSED] drm_test_buddy_alloc_smoke
[12:57:05] [PASSED] drm_test_buddy_alloc_pathological
[12:57:05] ==================== [PASSED] drm_buddy ====================
[12:57:05] ============= drm_cmdline_parser (40 subtests) =============
[12:57:05] [PASSED] drm_test_cmdline_force_d_only
[12:57:05] [PASSED] drm_test_cmdline_force_D_only_dvi
[12:57:05] [PASSED] drm_test_cmdline_force_D_only_hdmi
[12:57:05] [PASSED] drm_test_cmdline_force_D_only_not_digital
[12:57:05] [PASSED] drm_test_cmdline_force_e_only
[12:57:05] [PASSED] drm_test_cmdline_res
[12:57:05] [PASSED] drm_test_cmdline_res_vesa
[12:57:05] [PASSED] drm_test_cmdline_res_vesa_rblank
[12:57:05] [PASSED] drm_test_cmdline_res_rblank
[12:57:05] [PASSED] drm_test_cmdline_res_bpp
[12:57:05] [PASSED] drm_test_cmdline_res_refresh
[12:57:05] [PASSED] drm_test_cmdline_res_bpp_refresh
[12:57:05] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[12:57:05] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[12:57:05] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[12:57:05] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[12:57:05] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[12:57:05] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[12:57:05] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[12:57:05] [PASSED] drm_test_cmdline_res_margins_force_on
[12:57:05] [PASSED] drm_test_cmdline_res_vesa_margins
[12:57:05] [PASSED] drm_test_cmdline_name
[12:57:05] [PASSED] drm_test_cmdline_name_bpp
[12:57:05] [PASSED] drm_test_cmdline_name_option
[12:57:05] [PASSED] drm_test_cmdline_name_bpp_option
[12:57:05] [PASSED] drm_test_cmdline_rotate_0
[12:57:05] [PASSED] drm_test_cmdline_rotate_90
[12:57:05] [PASSED] drm_test_cmdline_rotate_180
[12:57:05] [PASSED] drm_test_cmdline_rotate_270
[12:57:05] [PASSED] drm_test_cmdline_hmirror
[12:57:05] [PASSED] drm_test_cmdline_vmirror
[12:57:05] [PASSED] drm_test_cmdline_margin_options
[12:57:05] [PASSED] drm_test_cmdline_multiple_options
[12:57:05] [PASSED] drm_test_cmdline_bpp_extra_and_option
[12:57:05] [PASSED] drm_test_cmdline_extra_and_option
[12:57:05] [PASSED] drm_test_cmdline_freestanding_options
[12:57:05] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[12:57:05] [PASSED] drm_test_cmdline_panel_orientation
[12:57:05] ================ drm_test_cmdline_invalid  =================
[12:57:05] [PASSED] margin_only
[12:57:05] [PASSED] interlace_only
[12:57:05] [PASSED] res_missing_x
[12:57:05] [PASSED] res_missing_y
[12:57:05] [PASSED] res_bad_y
[12:57:05] [PASSED] res_missing_y_bpp
[12:57:05] [PASSED] res_bad_bpp
[12:57:05] [PASSED] res_bad_refresh
[12:57:05] [PASSED] res_bpp_refresh_force_on_off
[12:57:05] [PASSED] res_invalid_mode
[12:57:05] [PASSED] res_bpp_wrong_place_mode
[12:57:05] [PASSED] name_bpp_refresh
[12:57:05] [PASSED] name_refresh
[12:57:05] [PASSED] name_refresh_wrong_mode
[12:57:05] [PASSED] name_refresh_invalid_mode
[12:57:05] [PASSED] rotate_multiple
[12:57:05] [PASSED] rotate_invalid_val
[12:57:05] [PASSED] rotate_truncated
[12:57:05] [PASSED] invalid_option
[12:57:05] [PASSED] invalid_tv_option
[12:57:05] [PASSED] truncated_tv_option
[12:57:05] ============ [PASSED] drm_test_cmdline_invalid =============
[12:57:05] =============== drm_test_cmdline_tv_options  ===============
[12:57:05] [PASSED] NTSC
[12:57:05] [PASSED] NTSC_443
[12:57:05] [PASSED] NTSC_J
[12:57:05] [PASSED] PAL
[12:57:05] [PASSED] PAL_M
[12:57:05] [PASSED] PAL_N
[12:57:05] [PASSED] SECAM
[12:57:05] =========== [PASSED] drm_test_cmdline_tv_options ===========
[12:57:05] =============== [PASSED] drm_cmdline_parser ================
[12:57:05] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[12:57:05] ========== drm_test_get_tv_mode_from_name_valid  ===========
[12:57:05] [PASSED] NTSC
[12:57:05] [PASSED] NTSC-443
[12:57:05] [PASSED] NTSC-J
[12:57:05] [PASSED] PAL
[12:57:05] [PASSED] PAL-M
[12:57:05] [PASSED] PAL-N
[12:57:05] [PASSED] SECAM
[12:57:05] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[12:57:05] [PASSED] drm_test_get_tv_mode_from_name_truncated
[12:57:05] ============ [PASSED] drm_get_tv_mode_from_name ============
[12:57:05] ============= drm_damage_helper (21 subtests) ==============
[12:57:05] [PASSED] drm_test_damage_iter_no_damage
[12:57:05] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[12:57:05] [PASSED] drm_test_damage_iter_no_damage_src_moved
[12:57:05] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[12:57:05] [PASSED] drm_test_damage_iter_no_damage_not_visible
[12:57:05] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[12:57:05] [PASSED] drm_test_damage_iter_no_damage_no_fb
[12:57:05] [PASSED] drm_test_damage_iter_simple_damage
[12:57:05] [PASSED] drm_test_damage_iter_single_damage
[12:57:05] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[12:57:05] [PASSED] drm_test_damage_iter_single_damage_outside_src
[12:57:05] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[12:57:05] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[12:57:05] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[12:57:05] [PASSED] drm_test_damage_iter_single_damage_src_moved
[12:57:05] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[12:57:05] [PASSED] drm_test_damage_iter_damage
[12:57:05] [PASSED] drm_test_damage_iter_damage_one_intersect
[12:57:05] [PASSED] drm_test_damage_iter_damage_one_outside
[12:57:05] [PASSED] drm_test_damage_iter_damage_src_moved
[12:57:05] [PASSED] drm_test_damage_iter_damage_not_visible
[12:57:05] ================ [PASSED] drm_damage_helper ================
[12:57:05] ============== drm_dp_mst_helper (2 subtests) ==============
[12:57:05] ============== drm_test_dp_mst_calc_pbn_mode  ==============
[12:57:05] [PASSED] Clock 154000 BPP 30 DSC disabled
[12:57:05] [PASSED] Clock 234000 BPP 30 DSC disabled
[12:57:05] [PASSED] Clock 297000 BPP 24 DSC disabled
[12:57:05] [PASSED] Clock 332880 BPP 24 DSC enabled
[12:57:05] [PASSED] Clock 324540 BPP 24 DSC enabled
[12:57:05] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[12:57:05] ========= drm_test_dp_mst_sideband_msg_req_decode  =========
[12:57:05] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[12:57:05] [PASSED] DP_POWER_UP_PHY with port number
[12:57:05] [PASSED] DP_POWER_DOWN_PHY with port number
[12:57:05] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[12:57:05] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[12:57:05] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[12:57:05] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[12:57:05] [PASSED] DP_QUERY_PAYLOAD with port number
[12:57:05] [PASSED] DP_QUERY_PAYLOAD with VCPI
[12:57:05] [PASSED] DP_REMOTE_DPCD_READ with port number
[12:57:05] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[12:57:05] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[12:57:05] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[12:57:05] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[12:57:05] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[12:57:05] [PASSED] DP_REMOTE_I2C_READ with port number
[12:57:05] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[12:57:05] [PASSED] DP_REMOTE_I2C_READ with transactions array
[12:57:05] [PASSED] DP_REMOTE_I2C_WRITE with port number
[12:57:05] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[12:57:05] [PASSED] DP_REMOTE_I2C_WRITE with data array
[12:57:05] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[12:57:05] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[12:57:05] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[12:57:05] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[12:57:05] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[12:57:05] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[12:57:05] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[12:57:05] ================ [PASSED] drm_dp_mst_helper ================
[12:57:05] =========== drm_format_helper_test (11 subtests) ===========
[12:57:05] ============== drm_test_fb_xrgb8888_to_gray8  ==============
[12:57:05] [PASSED] single_pixel_source_buffer
[12:57:05] [PASSED] single_pixel_clip_rectangle
[12:57:05] [PASSED] well_known_colors
[12:57:05] [PASSED] destination_pitch
[12:57:05] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[12:57:05] ============= drm_test_fb_xrgb8888_to_rgb332  ==============
[12:57:05] [PASSED] single_pixel_source_buffer
[12:57:05] [PASSED] single_pixel_clip_rectangle
[12:57:05] [PASSED] well_known_colors
[12:57:05] [PASSED] destination_pitch
[12:57:05] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[12:57:05] ============= drm_test_fb_xrgb8888_to_rgb565  ==============
[12:57:05] [PASSED] single_pixel_source_buffer
[12:57:05] [PASSED] single_pixel_clip_rectangle
[12:57:05] [PASSED] well_known_colors
[12:57:05] [PASSED] destination_pitch
[12:57:05] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[12:57:05] ============ drm_test_fb_xrgb8888_to_xrgb1555  =============
[12:57:05] [PASSED] single_pixel_source_buffer
[12:57:05] [PASSED] single_pixel_clip_rectangle
[12:57:05] [PASSED] well_known_colors
[12:57:05] [PASSED] destination_pitch
[12:57:05] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[12:57:05] ============ drm_test_fb_xrgb8888_to_argb1555  =============
[12:57:05] [PASSED] single_pixel_source_buffer
[12:57:05] [PASSED] single_pixel_clip_rectangle
[12:57:05] [PASSED] well_known_colors
[12:57:05] [PASSED] destination_pitch
[12:57:05] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[12:57:05] ============ drm_test_fb_xrgb8888_to_rgba5551  =============
[12:57:05] [PASSED] single_pixel_source_buffer
[12:57:05] [PASSED] single_pixel_clip_rectangle
[12:57:05] [PASSED] well_known_colors
[12:57:05] [PASSED] destination_pitch
[12:57:05] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[12:57:05] ============= drm_test_fb_xrgb8888_to_rgb888  ==============
[12:57:05] [PASSED] single_pixel_source_buffer
[12:57:05] [PASSED] single_pixel_clip_rectangle
[12:57:05] [PASSED] well_known_colors
[12:57:05] [PASSED] destination_pitch
[12:57:05] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[12:57:05] ============ drm_test_fb_xrgb8888_to_argb8888  =============
[12:57:05] [PASSED] single_pixel_source_buffer
[12:57:05] [PASSED] single_pixel_clip_rectangle
[12:57:05] [PASSED] well_known_colors
[12:57:05] [PASSED] destination_pitch
[12:57:05] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[12:57:05] =========== drm_test_fb_xrgb8888_to_xrgb2101010  ===========
[12:57:05] [PASSED] single_pixel_source_buffer
[12:57:05] [PASSED] single_pixel_clip_rectangle
[12:57:05] [PASSED] well_known_colors
[12:57:05] [PASSED] destination_pitch
[12:57:05] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[12:57:05] =========== drm_test_fb_xrgb8888_to_argb2101010  ===========
[12:57:05] [PASSED] single_pixel_source_buffer
[12:57:05] [PASSED] single_pixel_clip_rectangle
[12:57:05] [PASSED] well_known_colors
[12:57:05] [PASSED] destination_pitch
[12:57:05] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[12:57:05] ============== drm_test_fb_xrgb8888_to_mono  ===============
[12:57:05] [PASSED] single_pixel_source_buffer
[12:57:05] [PASSED] single_pixel_clip_rectangle
[12:57:05] [PASSED] well_known_colors
[12:57:05] [PASSED] destination_pitch
[12:57:05] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[12:57:05] ============= [PASSED] drm_format_helper_test ==============
[12:57:05] ================= drm_format (18 subtests) =================
[12:57:05] [PASSED] drm_test_format_block_width_invalid
[12:57:05] [PASSED] drm_test_format_block_width_one_plane
[12:57:05] [PASSED] drm_test_format_block_width_two_plane
[12:57:05] [PASSED] drm_test_format_block_width_three_plane
[12:57:05] [PASSED] drm_test_format_block_width_tiled
[12:57:05] [PASSED] drm_test_format_block_height_invalid
[12:57:05] [PASSED] drm_test_format_block_height_one_plane
[12:57:05] [PASSED] drm_test_format_block_height_two_plane
[12:57:05] [PASSED] drm_test_format_block_height_three_plane
[12:57:05] [PASSED] drm_test_format_block_height_tiled
[12:57:05] [PASSED] drm_test_format_min_pitch_invalid
[12:57:05] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[12:57:05] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[12:57:05] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[12:57:05] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[12:57:05] [PASSED] drm_test_format_min_pitch_two_plane
[12:57:05] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[12:57:05] [PASSED] drm_test_format_min_pitch_tiled
[12:57:05] =================== [PASSED] drm_format ====================
[12:57:05] =============== drm_framebuffer (1 subtest) ================
[12:57:05] =============== drm_test_framebuffer_create  ===============
[12:57:05] [PASSED] ABGR8888 normal sizes
[12:57:05] [PASSED] ABGR8888 max sizes
[12:57:05] [PASSED] ABGR8888 pitch greater than min required
[12:57:05] [PASSED] ABGR8888 pitch less than min required
[12:57:05] [PASSED] ABGR8888 Invalid width
[12:57:05] [PASSED] ABGR8888 Invalid buffer handle
[12:57:05] [PASSED] No pixel format
[12:57:05] [PASSED] ABGR8888 Width 0
[12:57:05] [PASSED] ABGR8888 Height 0
[12:57:05] [PASSED] ABGR8888 Out of bound height * pitch combination
[12:57:05] [PASSED] ABGR8888 Large buffer offset
[12:57:05] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[12:57:05] [PASSED] ABGR8888 Valid buffer modifier
[12:57:05] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[12:57:05] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[12:57:05] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[12:57:05] [PASSED] NV12 Normal sizes
[12:57:05] [PASSED] NV12 Max sizes
[12:57:05] [PASSED] NV12 Invalid pitch
[12:57:05] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[12:57:05] [PASSED] NV12 different  modifier per-plane
[12:57:05] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[12:57:05] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[12:57:05] [PASSED] NV12 Modifier for inexistent plane
[12:57:05] [PASSED] NV12 Handle for inexistent plane
[12:57:05] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[12:57:05] [PASSED] YVU420 Normal sizes
[12:57:05] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[12:57:05] [PASSED] YVU420 Max sizes
[12:57:05] [PASSED] YVU420 Invalid pitch
[12:57:05] [PASSED] YVU420 Different pitches
[12:57:05] [PASSED] YVU420 Different buffer offsets/pitches
[12:57:05] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[12:57:05] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[12:57:05] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[12:57:05] [PASSED] YVU420 Valid modifier
[12:57:05] [PASSED] YVU420 Different modifiers per plane
[12:57:05] [PASSED] YVU420 Modifier for inexistent plane
[12:57:05] [PASSED] X0L2 Normal sizes
[12:57:05] [PASSED] X0L2 Max sizes
[12:57:05] [PASSED] X0L2 Invalid pitch
[12:57:05] [PASSED] X0L2 Pitch greater than minimum required
stty: 'standard input': Inappropriate ioctl for device
[12:57:05] [PASSED] X0L2 Handle for inexistent plane
[12:57:05] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[12:57:05] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[12:57:05] [PASSED] X0L2 Valid modifier
[12:57:05] [PASSED] X0L2 Modifier for inexistent plane
[12:57:05] =========== [PASSED] drm_test_framebuffer_create ===========
[12:57:05] ================= [PASSED] drm_framebuffer =================
[12:57:05] =============== drm-test-managed (1 subtest) ===============
[12:57:05] [PASSED] drm_test_managed_run_action
[12:57:05] ================ [PASSED] drm-test-managed =================
[12:57:05] =================== drm_mm (19 subtests) ===================
[12:57:05] [PASSED] drm_test_mm_init
[12:57:05] [PASSED] drm_test_mm_debug
[12:57:15] [PASSED] drm_test_mm_reserve
[12:57:25] [PASSED] drm_test_mm_insert
[12:57:26] [PASSED] drm_test_mm_replace
[12:57:26] [PASSED] drm_test_mm_insert_range
[12:57:26] [PASSED] drm_test_mm_frag
[12:57:26] [PASSED] drm_test_mm_align
[12:57:26] [PASSED] drm_test_mm_align32
[12:57:27] [PASSED] drm_test_mm_align64
[12:57:27] [PASSED] drm_test_mm_evict
[12:57:27] [PASSED] drm_test_mm_evict_range
[12:57:27] [PASSED] drm_test_mm_topdown
[12:57:27] [PASSED] drm_test_mm_bottomup
[12:57:27] [PASSED] drm_test_mm_lowest
[12:57:27] [PASSED] drm_test_mm_highest
[12:57:28] [PASSED] drm_test_mm_color
[12:57:28] [PASSED] drm_test_mm_color_evict
[12:57:28] [PASSED] drm_test_mm_color_evict_range
[12:57:28] ===================== [PASSED] drm_mm ======================
[12:57:28] ============= drm_modes_analog_tv (4 subtests) =============
[12:57:28] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[12:57:28] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[12:57:28] [PASSED] drm_test_modes_analog_tv_pal_576i
[12:57:28] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[12:57:28] =============== [PASSED] drm_modes_analog_tv ===============
[12:57:28] ============== drm_plane_helper (2 subtests) ===============
[12:57:28] =============== drm_test_check_plane_state  ================
[12:57:28] [PASSED] clipping_simple
[12:57:28] [PASSED] clipping_rotate_reflect
[12:57:28] [PASSED] positioning_simple
[12:57:28] [PASSED] upscaling
[12:57:28] [PASSED] downscaling
[12:57:28] [PASSED] rounding1
[12:57:28] [PASSED] rounding2
[12:57:28] [PASSED] rounding3
[12:57:28] [PASSED] rounding4
[12:57:28] =========== [PASSED] drm_test_check_plane_state ============
[12:57:28] =========== drm_test_check_invalid_plane_state  ============
[12:57:28] [PASSED] positioning_invalid
[12:57:28] [PASSED] upscaling_invalid
[12:57:28] [PASSED] downscaling_invalid
[12:57:28] ======= [PASSED] drm_test_check_invalid_plane_state ========
[12:57:28] ================ [PASSED] drm_plane_helper =================
[12:57:28] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[12:57:28] ====== drm_test_connector_helper_tv_get_modes_check  =======
[12:57:28] [PASSED] None
[12:57:28] [PASSED] PAL
[12:57:28] [PASSED] NTSC
[12:57:28] [PASSED] Both, NTSC Default
[12:57:28] [PASSED] Both, PAL Default
[12:57:28] [PASSED] Both, NTSC Default, with PAL on command-line
[12:57:28] [PASSED] Both, PAL Default, with NTSC on command-line
[12:57:28] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[12:57:28] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[12:57:28] ================== drm_rect (9 subtests) ===================
[12:57:28] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[12:57:28] [PASSED] drm_test_rect_clip_scaled_not_clipped
[12:57:28] [PASSED] drm_test_rect_clip_scaled_clipped
[12:57:28] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[12:57:28] ================= drm_test_rect_intersect  =================
[12:57:28] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[12:57:28] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[12:57:28] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[12:57:28] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[12:57:28] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[12:57:28] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[12:57:28] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[12:57:28] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[12:57:28] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[12:57:28] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[12:57:28] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[12:57:28] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[12:57:28] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[12:57:28] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[12:57:28] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[12:57:28] ============= [PASSED] drm_test_rect_intersect =============
[12:57:28] ================ drm_test_rect_calc_hscale  ================
[12:57:28] [PASSED] normal use
[12:57:28] [PASSED] out of max range
[12:57:28] [PASSED] out of min range
[12:57:28] [PASSED] zero dst
[12:57:28] [PASSED] negative src
[12:57:28] [PASSED] negative dst
[12:57:28] ============ [PASSED] drm_test_rect_calc_hscale ============
[12:57:28] ================ drm_test_rect_calc_vscale  ================
[12:57:28] [PASSED] normal use
[12:57:28] [PASSED] out of max range
[12:57:28] [PASSED] out of min range
[12:57:28] [PASSED] zero dst
[12:57:28] [PASSED] negative src
[12:57:28] [PASSED] negative dst
[12:57:28] ============ [PASSED] drm_test_rect_calc_vscale ============
[12:57:28] ================== drm_test_rect_rotate  ===================
[12:57:28] [PASSED] reflect-x
[12:57:28] [PASSED] reflect-y
[12:57:28] [PASSED] rotate-0
[12:57:28] [PASSED] rotate-90
[12:57:28] [PASSED] rotate-180
[12:57:28] [PASSED] rotate-270
[12:57:28] ============== [PASSED] drm_test_rect_rotate ===============
[12:57:28] ================ drm_test_rect_rotate_inv  =================
[12:57:28] [PASSED] reflect-x
[12:57:28] [PASSED] reflect-y
[12:57:28] [PASSED] rotate-0
[12:57:28] [PASSED] rotate-90
[12:57:28] [PASSED] rotate-180
[12:57:28] [PASSED] rotate-270
[12:57:28] ============ [PASSED] drm_test_rect_rotate_inv =============
[12:57:28] ==================== [PASSED] drm_rect =====================
[12:57:28] ============================================================
[12:57:28] Testing complete. Ran 333 tests: passed: 333
[12:57:28] Elapsed time: 43.456s total, 1.682s configuring, 18.294s building, 23.454s running

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



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

* [Intel-xe] ✓ CI.Build: success for xe_device_mem_access fixes and related bits (rev2)
  2023-06-26 10:50 [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Matthew Auld
                   ` (15 preceding siblings ...)
  2023-06-26 12:57 ` [Intel-xe] ✓ CI.KUnit: success " Patchwork
@ 2023-06-26 13:01 ` Patchwork
  2023-06-26 13:01 ` [Intel-xe] ✓ CI.Hooks: " Patchwork
                   ` (3 subsequent siblings)
  20 siblings, 0 replies; 36+ messages in thread
From: Patchwork @ 2023-06-26 13:01 UTC (permalink / raw)
  To: Matthew Auld; +Cc: intel-xe

== Series Details ==

Series: xe_device_mem_access fixes and related bits (rev2)
URL   : https://patchwork.freedesktop.org/series/119213/
State : success

== Summary ==

+ trap cleanup EXIT
+ cd /kernel
+ git clone https://gitlab.freedesktop.org/drm/xe/ci.git .ci
Cloning into '.ci'...
++ date +%s
+ echo -e '\e[0Ksection_start:1687784258:build_x86_64[collapsed=true]\r\e[0KBuild x86-64'
+ mkdir -p build64
^[[0Ksection_start:1687784258:build_x86_64[collapsed=true]
^[[0KBuild x86-64
+ cat .ci/kernel/kconfig
+ [[ '' != '' ]]
+ make O=build64 olddefconfig
make[1]: Entering directory '/kernel/build64'
  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/lexer.lex.o
  HOSTCC  scripts/kconfig/menu.o
  HOSTCC  scripts/kconfig/parser.tab.o
  HOSTCC  scripts/kconfig/preprocess.o
  HOSTCC  scripts/kconfig/symbol.o
  HOSTCC  scripts/kconfig/util.o
  HOSTLD  scripts/kconfig/conf
#
# configuration written to .config
#
make[1]: Leaving directory '/kernel/build64'
++ nproc
+ make O=build64 -j48
make[1]: Entering directory '/kernel/build64'
  GEN     Makefile
  WRAP    arch/x86/include/generated/uapi/asm/bpf_perf_event.h
  WRAP    arch/x86/include/generated/uapi/asm/fcntl.h
  WRAP    arch/x86/include/generated/uapi/asm/errno.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
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_64.h
  WRAP    arch/x86/include/generated/uapi/asm/ipcbuf.h
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_x32.h
  WRAP    arch/x86/include/generated/uapi/asm/poll.h
  SYSTBL  arch/x86/include/generated/asm/syscalls_32.h
  WRAP    arch/x86/include/generated/uapi/asm/param.h
  SYSHDR  arch/x86/include/generated/asm/unistd_32_ia32.h
  WRAP    arch/x86/include/generated/uapi/asm/resource.h
  SYSHDR  arch/x86/include/generated/asm/unistd_64_x32.h
  SYSTBL  arch/x86/include/generated/asm/syscalls_64.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
  UPD     include/generated/uapi/linux/version.h
  UPD     include/config/kernel.release
  UPD     include/generated/compile.h
  WRAP    arch/x86/include/generated/asm/early_ioremap.h
  HOSTCC  arch/x86/tools/relocs_32.o
  HOSTCC  arch/x86/tools/relocs_64.o
  WRAP    arch/x86/include/generated/asm/export.h
  WRAP    arch/x86/include/generated/asm/mcs_spinlock.h
  WRAP    arch/x86/include/generated/asm/irq_regs.h
  HOSTCC  arch/x86/tools/relocs_common.o
  WRAP    arch/x86/include/generated/asm/kmap_size.h
  WRAP    arch/x86/include/generated/asm/local64.h
  WRAP    arch/x86/include/generated/asm/module.lds.h
  WRAP    arch/x86/include/generated/asm/mmiowb.h
  WRAP    arch/x86/include/generated/asm/rwonce.h
  WRAP    arch/x86/include/generated/asm/unaligned.h
  HOSTCC  scripts/unifdef
  UPD     include/generated/utsrelease.h
  HOSTCC  scripts/kallsyms
  HOSTCC  scripts/sorttable
  HOSTCC  scripts/asn1_compiler
  DESCEND objtool
  HOSTCC  /kernel/build64/tools/objtool/fixdep.o
  HOSTLD  /kernel/build64/tools/objtool/fixdep-in.o
  LINK    /kernel/build64/tools/objtool/fixdep
  INSTALL /kernel/build64/tools/objtool/libsubcmd/include/subcmd/exec-cmd.h
  INSTALL /kernel/build64/tools/objtool/libsubcmd/include/subcmd/help.h
  INSTALL /kernel/build64/tools/objtool/libsubcmd/include/subcmd/pager.h
  INSTALL /kernel/build64/tools/objtool/libsubcmd/include/subcmd/parse-options.h
  INSTALL /kernel/build64/tools/objtool/libsubcmd/include/subcmd/run-command.h
  CC      /kernel/build64/tools/objtool/libsubcmd/exec-cmd.o
  INSTALL libsubcmd_headers
  CC      /kernel/build64/tools/objtool/libsubcmd/help.o
  CC      /kernel/build64/tools/objtool/libsubcmd/pager.o
  CC      /kernel/build64/tools/objtool/libsubcmd/parse-options.o
  CC      /kernel/build64/tools/objtool/libsubcmd/run-command.o
  HOSTLD  arch/x86/tools/relocs
  CC      /kernel/build64/tools/objtool/libsubcmd/sigchain.o
  CC      /kernel/build64/tools/objtool/libsubcmd/subcmd-config.o
  CC      scripts/mod/empty.o
  HOSTCC  scripts/mod/mk_elfconfig
  CC      scripts/mod/devicetable-offsets.s
  HDRINST usr/include/video/edid.h
  HDRINST usr/include/video/sisfb.h
  HDRINST usr/include/video/uvesafb.h
  HDRINST usr/include/drm/amdgpu_drm.h
  HDRINST usr/include/drm/qaic_accel.h
  HDRINST usr/include/drm/i915_drm.h
  HDRINST usr/include/drm/vgem_drm.h
  HDRINST usr/include/drm/virtgpu_drm.h
  HDRINST usr/include/drm/xe_drm.h
  HDRINST usr/include/drm/omap_drm.h
  HDRINST usr/include/drm/radeon_drm.h
  HDRINST usr/include/drm/tegra_drm.h
  HDRINST usr/include/drm/drm_mode.h
  HDRINST usr/include/drm/ivpu_accel.h
  HDRINST usr/include/drm/exynos_drm.h
  HDRINST usr/include/drm/drm_sarea.h
  HDRINST usr/include/drm/v3d_drm.h
  HDRINST usr/include/drm/qxl_drm.h
  HDRINST usr/include/drm/drm_fourcc.h
  HDRINST usr/include/drm/nouveau_drm.h
  HDRINST usr/include/drm/vmwgfx_drm.h
  HDRINST usr/include/drm/habanalabs_accel.h
  HDRINST usr/include/drm/msm_drm.h
  HDRINST usr/include/drm/etnaviv_drm.h
  HDRINST usr/include/drm/vc4_drm.h
  HDRINST usr/include/drm/panfrost_drm.h
  HDRINST usr/include/drm/lima_drm.h
  HDRINST usr/include/drm/drm.h
  HDRINST usr/include/drm/armada_drm.h
  HDRINST usr/include/mtd/nftl-user.h
  HDRINST usr/include/mtd/inftl-user.h
  HDRINST usr/include/mtd/mtd-user.h
  HDRINST usr/include/mtd/ubi-user.h
  HDRINST usr/include/mtd/mtd-abi.h
  HDRINST usr/include/xen/gntdev.h
  HDRINST usr/include/xen/gntalloc.h
  HDRINST usr/include/xen/evtchn.h
  HDRINST usr/include/xen/privcmd.h
  HDRINST usr/include/asm-generic/auxvec.h
  HDRINST usr/include/asm-generic/bitsperlong.h
  HDRINST usr/include/asm-generic/posix_types.h
  HDRINST usr/include/asm-generic/ioctls.h
  HDRINST usr/include/asm-generic/mman.h
  HDRINST usr/include/asm-generic/shmbuf.h
  HDRINST usr/include/asm-generic/bpf_perf_event.h
  HDRINST usr/include/asm-generic/types.h
  HDRINST usr/include/asm-generic/poll.h
  HDRINST usr/include/asm-generic/msgbuf.h
  HDRINST usr/include/asm-generic/swab.h
  HDRINST usr/include/asm-generic/statfs.h
  HDRINST usr/include/asm-generic/unistd.h
  HDRINST usr/include/asm-generic/hugetlb_encode.h
  HDRINST usr/include/asm-generic/resource.h
  HDRINST usr/include/asm-generic/param.h
  HDRINST usr/include/asm-generic/termbits-common.h
  HDRINST usr/include/asm-generic/sockios.h
  HDRINST usr/include/asm-generic/kvm_para.h
  HDRINST usr/include/asm-generic/errno.h
  HDRINST usr/include/asm-generic/termios.h
  HDRINST usr/include/asm-generic/mman-common.h
  UPD     scripts/mod/devicetable-offsets.h
  HDRINST usr/include/asm-generic/ioctl.h
  HDRINST usr/include/asm-generic/socket.h
  HDRINST usr/include/asm-generic/signal-defs.h
  HDRINST usr/include/asm-generic/termbits.h
  HDRINST usr/include/asm-generic/int-ll64.h
  HDRINST usr/include/asm-generic/signal.h
  HDRINST usr/include/asm-generic/siginfo.h
  HDRINST usr/include/asm-generic/stat.h
  HDRINST usr/include/asm-generic/int-l64.h
  HDRINST usr/include/asm-generic/errno-base.h
  HDRINST usr/include/asm-generic/fcntl.h
  HDRINST usr/include/asm-generic/setup.h
  HDRINST usr/include/asm-generic/ipcbuf.h
  HDRINST usr/include/asm-generic/sembuf.h
  HDRINST usr/include/asm-generic/ucontext.h
  HDRINST usr/include/rdma/mlx5_user_ioctl_cmds.h
  HDRINST usr/include/rdma/irdma-abi.h
  HDRINST usr/include/rdma/mana-abi.h
  HDRINST usr/include/rdma/hfi/hfi1_user.h
  HDRINST usr/include/rdma/hfi/hfi1_ioctl.h
  HDRINST usr/include/rdma/rdma_user_rxe.h
  HDRINST usr/include/rdma/rdma_user_ioctl.h
  HDRINST usr/include/rdma/mlx5_user_ioctl_verbs.h
  HDRINST usr/include/rdma/bnxt_re-abi.h
  HDRINST usr/include/rdma/hns-abi.h
  HDRINST usr/include/rdma/qedr-abi.h
  HDRINST usr/include/rdma/ib_user_ioctl_cmds.h
  HDRINST usr/include/rdma/vmw_pvrdma-abi.h
  HDRINST usr/include/rdma/ib_user_sa.h
  HDRINST usr/include/rdma/ib_user_ioctl_verbs.h
  HDRINST usr/include/rdma/rvt-abi.h
  HDRINST usr/include/rdma/mlx5-abi.h
  HDRINST usr/include/rdma/rdma_netlink.h
  HDRINST usr/include/rdma/erdma-abi.h
  HDRINST usr/include/rdma/rdma_user_ioctl_cmds.h
  HDRINST usr/include/rdma/rdma_user_cm.h
  HDRINST usr/include/rdma/ib_user_verbs.h
  HDRINST usr/include/rdma/efa-abi.h
  HDRINST usr/include/rdma/siw-abi.h
  HDRINST usr/include/rdma/mlx4-abi.h
  HDRINST usr/include/rdma/mthca-abi.h
  HDRINST usr/include/rdma/ib_user_mad.h
  HDRINST usr/include/rdma/ocrdma-abi.h
  HDRINST usr/include/rdma/cxgb4-abi.h
  HDRINST usr/include/misc/xilinx_sdfec.h
  HDRINST usr/include/misc/uacce/hisi_qm.h
  HDRINST usr/include/misc/uacce/uacce.h
  HDRINST usr/include/misc/cxl.h
  HDRINST usr/include/misc/ocxl.h
  HDRINST usr/include/misc/fastrpc.h
  HDRINST usr/include/misc/pvpanic.h
  HDRINST usr/include/linux/i8k.h
  HDRINST usr/include/linux/acct.h
  HDRINST usr/include/linux/atmmpc.h
  HDRINST usr/include/linux/fs.h
  HDRINST usr/include/linux/cifs/cifs_mount.h
  HDRINST usr/include/linux/cifs/cifs_netlink.h
  HDRINST usr/include/linux/if_packet.h
  HDRINST usr/include/linux/route.h
  HDRINST usr/include/linux/patchkey.h
  HDRINST usr/include/linux/tc_ematch/tc_em_cmp.h
  HDRINST usr/include/linux/tc_ematch/tc_em_ipt.h
  HDRINST usr/include/linux/tc_ematch/tc_em_meta.h
  MKELF   scripts/mod/elfconfig.h
  HDRINST usr/include/linux/tc_ematch/tc_em_nbyte.h
  HDRINST usr/include/linux/tc_ematch/tc_em_text.h
  HDRINST usr/include/linux/virtio_pmem.h
  HOSTCC  scripts/mod/modpost.o
  HDRINST usr/include/linux/rkisp1-config.h
  HOSTCC  scripts/mod/file2alias.o
  HDRINST usr/include/linux/vhost.h
  HOSTCC  scripts/mod/sumversion.o
  HDRINST usr/include/linux/cec-funcs.h
  HDRINST usr/include/linux/ppdev.h
  HDRINST usr/include/linux/isdn/capicmd.h
  HDRINST usr/include/linux/virtio_fs.h
  HDRINST usr/include/linux/netfilter_ipv6.h
  HDRINST usr/include/linux/lirc.h
  HDRINST usr/include/linux/mroute6.h
  HDRINST usr/include/linux/nl80211-vnd-intel.h
  HDRINST usr/include/linux/ivtvfb.h
  HDRINST usr/include/linux/auxvec.h
  HDRINST usr/include/linux/dm-log-userspace.h
  HDRINST usr/include/linux/dccp.h
  HDRINST usr/include/linux/virtio_scmi.h
  HDRINST usr/include/linux/atmarp.h
  HDRINST usr/include/linux/arcfb.h
  HDRINST usr/include/linux/nbd-netlink.h
  HDRINST usr/include/linux/sched/types.h
  HDRINST usr/include/linux/tcp.h
  HDRINST usr/include/linux/neighbour.h
  HDRINST usr/include/linux/dlm_device.h
  HDRINST usr/include/linux/wmi.h
  HDRINST usr/include/linux/btrfs_tree.h
  HDRINST usr/include/linux/virtio_crypto.h
  HDRINST usr/include/linux/vbox_err.h
  HDRINST usr/include/linux/edd.h
  HDRINST usr/include/linux/loop.h
  HDRINST usr/include/linux/nvme_ioctl.h
  HDRINST usr/include/linux/mmtimer.h
  HDRINST usr/include/linux/if_pppol2tp.h
  HDRINST usr/include/linux/mtio.h
  HDRINST usr/include/linux/if_arcnet.h
  HDRINST usr/include/linux/romfs_fs.h
  HDRINST usr/include/linux/posix_types.h
  HDRINST usr/include/linux/rtc.h
  HDRINST usr/include/linux/landlock.h
  HDRINST usr/include/linux/gpio.h
  HDRINST usr/include/linux/selinux_netlink.h
  HDRINST usr/include/linux/pps.h
  HDRINST usr/include/linux/ndctl.h
  HDRINST usr/include/linux/virtio_gpu.h
  HDRINST usr/include/linux/android/binderfs.h
  HDRINST usr/include/linux/android/binder.h
  HDRINST usr/include/linux/virtio_vsock.h
  HDRINST usr/include/linux/sound.h
  HDRINST usr/include/linux/vtpm_proxy.h
  HDRINST usr/include/linux/nfs_fs.h
  HDRINST usr/include/linux/elf-fdpic.h
  HDRINST usr/include/linux/adfs_fs.h
  HDRINST usr/include/linux/target_core_user.h
  HDRINST usr/include/linux/netlink_diag.h
  HDRINST usr/include/linux/const.h
  HDRINST usr/include/linux/firewire-cdev.h
  HDRINST usr/include/linux/vdpa.h
  HDRINST usr/include/linux/if_infiniband.h
  HDRINST usr/include/linux/serial.h
  HDRINST usr/include/linux/iio/types.h
  HDRINST usr/include/linux/iio/buffer.h
  HDRINST usr/include/linux/iio/events.h
  HDRINST usr/include/linux/baycom.h
  HDRINST usr/include/linux/major.h
  HDRINST usr/include/linux/ipv6_route.h
  HDRINST usr/include/linux/atmppp.h
  HDRINST usr/include/linux/spi/spidev.h
  HDRINST usr/include/linux/spi/spi.h
  HDRINST usr/include/linux/virtio_ring.h
  HDRINST usr/include/linux/hdlc/ioctl.h
  HDRINST usr/include/linux/remoteproc_cdev.h
  HDRINST usr/include/linux/hyperv.h
  HDRINST usr/include/linux/rpl_iptunnel.h
  HDRINST usr/include/linux/sync_file.h
  HDRINST usr/include/linux/igmp.h
  HDRINST usr/include/linux/v4l2-dv-timings.h
  HDRINST usr/include/linux/virtio_i2c.h
  HDRINST usr/include/linux/xfrm.h
  HDRINST usr/include/linux/capability.h
  HDRINST usr/include/linux/gtp.h
  HDRINST usr/include/linux/xdp_diag.h
  HDRINST usr/include/linux/pkt_cls.h
  HDRINST usr/include/linux/suspend_ioctls.h
  HDRINST usr/include/linux/vt.h
  HDRINST usr/include/linux/loadpin.h
  HDRINST usr/include/linux/dlm_plock.h
  HDRINST usr/include/linux/fb.h
  HDRINST usr/include/linux/max2175.h
  HDRINST usr/include/linux/sunrpc/debug.h
  HDRINST usr/include/linux/gsmmux.h
  HDRINST usr/include/linux/watchdog.h
  HDRINST usr/include/linux/vhost_types.h
  HDRINST usr/include/linux/vduse.h
  HDRINST usr/include/linux/ila.h
  HDRINST usr/include/linux/tdx-guest.h
  HDRINST usr/include/linux/close_range.h
  HDRINST usr/include/linux/ivtv.h
  HDRINST usr/include/linux/cryptouser.h
  HDRINST usr/include/linux/netfilter/xt_string.h
  HDRINST usr/include/linux/netfilter/nfnetlink_compat.h
  HDRINST usr/include/linux/netfilter/nf_nat.h
  HDRINST usr/include/linux/netfilter/xt_recent.h
  HDRINST usr/include/linux/netfilter/xt_addrtype.h
  HDRINST usr/include/linux/netfilter/nf_conntrack_tcp.h
  HDRINST usr/include/linux/netfilter/xt_MARK.h
  HDRINST usr/include/linux/netfilter/xt_SYNPROXY.h
  HDRINST usr/include/linux/netfilter/xt_multiport.h
  HDRINST usr/include/linux/netfilter/nfnetlink.h
  HDRINST usr/include/linux/netfilter/xt_cgroup.h
  HDRINST usr/include/linux/netfilter/nf_synproxy.h
  HDRINST usr/include/linux/netfilter/xt_TCPOPTSTRIP.h
  HDRINST usr/include/linux/netfilter/nfnetlink_log.h
  HDRINST usr/include/linux/netfilter/xt_TPROXY.h
  HDRINST usr/include/linux/netfilter/xt_u32.h
  HDRINST usr/include/linux/netfilter/nfnetlink_osf.h
  HDRINST usr/include/linux/netfilter/xt_ecn.h
  HDRINST usr/include/linux/netfilter/xt_esp.h
  HDRINST usr/include/linux/netfilter/nfnetlink_hook.h
  HDRINST usr/include/linux/netfilter/xt_mac.h
  HDRINST usr/include/linux/netfilter/xt_comment.h
  HDRINST usr/include/linux/netfilter/xt_NFQUEUE.h
  HDRINST usr/include/linux/netfilter/xt_osf.h
  HDRINST usr/include/linux/netfilter/xt_hashlimit.h
  HDRINST usr/include/linux/netfilter/nf_conntrack_sctp.h
  HDRINST usr/include/linux/netfilter/xt_socket.h
  HDRINST usr/include/linux/netfilter/xt_connmark.h
  HDRINST usr/include/linux/netfilter/xt_sctp.h
  HDRINST usr/include/linux/netfilter/xt_tcpudp.h
  HDRINST usr/include/linux/netfilter/xt_DSCP.h
  HDRINST usr/include/linux/netfilter/xt_time.h
  HDRINST usr/include/linux/netfilter/xt_IDLETIMER.h
  HDRINST usr/include/linux/netfilter/xt_policy.h
  HDRINST usr/include/linux/netfilter/xt_rpfilter.h
  HDRINST usr/include/linux/netfilter/xt_nfacct.h
  HDRINST usr/include/linux/netfilter/xt_SECMARK.h
  HDRINST usr/include/linux/netfilter/xt_length.h
  HDRINST usr/include/linux/netfilter/nfnetlink_cthelper.h
  HDRINST usr/include/linux/netfilter/xt_quota.h
  HDRINST usr/include/linux/netfilter/xt_CLASSIFY.h
  HDRINST usr/include/linux/netfilter/xt_ipcomp.h
  HDRINST usr/include/linux/netfilter/xt_iprange.h
  HDRINST usr/include/linux/netfilter/xt_bpf.h
  HDRINST usr/include/linux/netfilter/xt_LOG.h
  HDRINST usr/include/linux/netfilter/xt_rateest.h
  HDRINST usr/include/linux/netfilter/xt_CONNSECMARK.h
  HDRINST usr/include/linux/netfilter/xt_HMARK.h
  HDRINST usr/include/linux/netfilter/xt_CONNMARK.h
  HDRINST usr/include/linux/netfilter/xt_pkttype.h
  HDRINST usr/include/linux/netfilter/xt_ipvs.h
  HDRINST usr/include/linux/netfilter/xt_devgroup.h
  HDRINST usr/include/linux/netfilter/xt_AUDIT.h
  HDRINST usr/include/linux/netfilter/xt_realm.h
  HDRINST usr/include/linux/netfilter/nf_conntrack_common.h
  HDRINST usr/include/linux/netfilter/xt_set.h
  HDRINST usr/include/linux/netfilter/xt_LED.h
  HDRINST usr/include/linux/netfilter/xt_connlabel.h
  HDRINST usr/include/linux/netfilter/xt_owner.h
  HDRINST usr/include/linux/netfilter/xt_dccp.h
  HDRINST usr/include/linux/netfilter/xt_limit.h
  HDRINST usr/include/linux/netfilter/xt_conntrack.h
  HDRINST usr/include/linux/netfilter/xt_TEE.h
  HDRINST usr/include/linux/netfilter/xt_RATEEST.h
  HDRINST usr/include/linux/netfilter/xt_connlimit.h
  HDRINST usr/include/linux/netfilter/ipset/ip_set.h
  HDRINST usr/include/linux/netfilter/ipset/ip_set_list.h
  HDRINST usr/include/linux/netfilter/ipset/ip_set_hash.h
  HDRINST usr/include/linux/netfilter/ipset/ip_set_bitmap.h
  HDRINST usr/include/linux/netfilter/x_tables.h
  HDRINST usr/include/linux/netfilter/xt_dscp.h
  HDRINST usr/include/linux/netfilter/nf_conntrack_ftp.h
  HDRINST usr/include/linux/netfilter/xt_cluster.h
  HDRINST usr/include/linux/netfilter/nf_conntrack_tuple_common.h
  HDRINST usr/include/linux/netfilter/nf_log.h
  HDRINST usr/include/linux/netfilter/xt_tcpmss.h
  HDRINST usr/include/linux/netfilter/xt_NFLOG.h
  HDRINST usr/include/linux/netfilter/xt_l2tp.h
  HDRINST usr/include/linux/netfilter/xt_helper.h
  HDRINST usr/include/linux/netfilter/xt_statistic.h
  HDRINST usr/include/linux/netfilter/nfnetlink_queue.h
  HDRINST usr/include/linux/netfilter/nfnetlink_cttimeout.h
  HDRINST usr/include/linux/netfilter/xt_CT.h
  HDRINST usr/include/linux/netfilter/xt_CHECKSUM.h
  HDRINST usr/include/linux/netfilter/xt_connbytes.h
  HDRINST usr/include/linux/netfilter/xt_state.h
  HDRINST usr/include/linux/netfilter/nf_tables.h
  HDRINST usr/include/linux/netfilter/xt_mark.h
  HDRINST usr/include/linux/netfilter/xt_cpu.h
  HDRINST usr/include/linux/netfilter/nf_tables_compat.h
  HDRINST usr/include/linux/netfilter/xt_physdev.h
  HDRINST usr/include/linux/netfilter/nfnetlink_conntrack.h
  HDRINST usr/include/linux/netfilter/nfnetlink_acct.h
  HDRINST usr/include/linux/netfilter/xt_TCPMSS.h
  HDRINST usr/include/linux/tty_flags.h
  HDRINST usr/include/linux/if_phonet.h
  HDRINST usr/include/linux/elf-em.h
  HDRINST usr/include/linux/vm_sockets.h
  HDRINST usr/include/linux/dlmconstants.h
  HDRINST usr/include/linux/bsg.h
  HDRINST usr/include/linux/matroxfb.h
  HDRINST usr/include/linux/sysctl.h
  HDRINST usr/include/linux/unix_diag.h
  HDRINST usr/include/linux/pcitest.h
  HDRINST usr/include/linux/mman.h
  HDRINST usr/include/linux/if_plip.h
  HDRINST usr/include/linux/virtio_balloon.h
  HDRINST usr/include/linux/pidfd.h
  HDRINST usr/include/linux/f2fs.h
  HDRINST usr/include/linux/x25.h
  HDRINST usr/include/linux/if_cablemodem.h
  HDRINST usr/include/linux/utsname.h
  HDRINST usr/include/linux/counter.h
  HDRINST usr/include/linux/atm_tcp.h
  HDRINST usr/include/linux/atalk.h
  HDRINST usr/include/linux/virtio_rng.h
  HDRINST usr/include/linux/vboxguest.h
  HDRINST usr/include/linux/bpf_perf_event.h
  HDRINST usr/include/linux/ipmi_ssif_bmc.h
  HDRINST usr/include/linux/nfs_mount.h
  HDRINST usr/include/linux/sonet.h
  HDRINST usr/include/linux/netfilter.h
  HDRINST usr/include/linux/keyctl.h
  HDRINST usr/include/linux/nl80211.h
  HDRINST usr/include/linux/misc/bcm_vk.h
  HDRINST usr/include/linux/tipc_config.h
  HDRINST usr/include/linux/audit.h
  HDRINST usr/include/linux/tipc_sockets_diag.h
  HDRINST usr/include/linux/futex.h
  HDRINST usr/include/linux/sev-guest.h
  HDRINST usr/include/linux/ublk_cmd.h
  HDRINST usr/include/linux/types.h
  HDRINST usr/include/linux/virtio_input.h
  HDRINST usr/include/linux/if_slip.h
  HDRINST usr/include/linux/personality.h
  HDRINST usr/include/linux/openat2.h
  HDRINST usr/include/linux/poll.h
  HDRINST usr/include/linux/posix_acl.h
  HDRINST usr/include/linux/smc_diag.h
  HDRINST usr/include/linux/snmp.h
  HDRINST usr/include/linux/errqueue.h
  HDRINST usr/include/linux/if_tunnel.h
  HDRINST usr/include/linux/fanotify.h
  HDRINST usr/include/linux/kernel.h
  HDRINST usr/include/linux/rtnetlink.h
  HDRINST usr/include/linux/rpl.h
  HDRINST usr/include/linux/memfd.h
  HDRINST usr/include/linux/serial_core.h
  HDRINST usr/include/linux/dns_resolver.h
  HDRINST usr/include/linux/pr.h
  HDRINST usr/include/linux/atm_eni.h
  HDRINST usr/include/linux/lp.h
  HDRINST usr/include/linux/virtio_mem.h
  HDRINST usr/include/linux/ultrasound.h
  HDRINST usr/include/linux/sctp.h
  HDRINST usr/include/linux/uio.h
  HDRINST usr/include/linux/tcp_metrics.h
  HDRINST usr/include/linux/wwan.h
  HDRINST usr/include/linux/atmbr2684.h
  HDRINST usr/include/linux/in_route.h
  HDRINST usr/include/linux/qemu_fw_cfg.h
  HDRINST usr/include/linux/if_macsec.h
  HDRINST usr/include/linux/usb/charger.h
  HDRINST usr/include/linux/usb/g_uvc.h
  HDRINST usr/include/linux/usb/gadgetfs.h
  HDRINST usr/include/linux/usb/raw_gadget.h
  HDRINST usr/include/linux/usb/cdc-wdm.h
  HDRINST usr/include/linux/usb/g_printer.h
  HDRINST usr/include/linux/usb/midi.h
  HDRINST usr/include/linux/usb/tmc.h
  HDRINST usr/include/linux/usb/video.h
  HDRINST usr/include/linux/usb/functionfs.h
  HDRINST usr/include/linux/usb/audio.h
  HDRINST usr/include/linux/usb/ch11.h
  HDRINST usr/include/linux/usb/ch9.h
  HDRINST usr/include/linux/usb/cdc.h
  HDRINST usr/include/linux/jffs2.h
  HDRINST usr/include/linux/ax25.h
  HDRINST usr/include/linux/auto_fs.h
  HDRINST usr/include/linux/tiocl.h
  HDRINST usr/include/linux/scc.h
  HDRINST usr/include/linux/psci.h
  HDRINST usr/include/linux/swab.h
  HDRINST usr/include/linux/cec.h
  HDRINST usr/include/linux/kfd_ioctl.h
  HDRINST usr/include/linux/smc.h
  HDRINST usr/include/linux/qrtr.h
  HDRINST usr/include/linux/screen_info.h
  HDRINST usr/include/linux/nfsacl.h
  HDRINST usr/include/linux/seg6_hmac.h
  HDRINST usr/include/linux/gameport.h
  HDRINST usr/include/linux/wireless.h
  HDRINST usr/include/linux/fdreg.h
  HDRINST usr/include/linux/cciss_defs.h
  HDRINST usr/include/linux/serial_reg.h
  HDRINST usr/include/linux/perf_event.h
  HDRINST usr/include/linux/in6.h
  HDRINST usr/include/linux/hid.h
  HDRINST usr/include/linux/netlink.h
  HDRINST usr/include/linux/fuse.h
  HDRINST usr/include/linux/magic.h
  HDRINST usr/include/linux/ioam6_iptunnel.h
  HDRINST usr/include/linux/stm.h
  HDRINST usr/include/linux/vsockmon.h
  HDRINST usr/include/linux/seg6.h
  HDRINST usr/include/linux/idxd.h
  HDRINST usr/include/linux/nitro_enclaves.h
  HDRINST usr/include/linux/ptrace.h
  HDRINST usr/include/linux/ioam6_genl.h
  HDRINST usr/include/linux/qnx4_fs.h
  HDRINST usr/include/linux/fsl_mc.h
  HDRINST usr/include/linux/net_tstamp.h
  HDRINST usr/include/linux/msg.h
  HDRINST usr/include/linux/netfilter_ipv4/ipt_TTL.h
  HDRINST usr/include/linux/netfilter_ipv4/ipt_ttl.h
  HDRINST usr/include/linux/netfilter_ipv4/ipt_ah.h
  HDRINST usr/include/linux/netfilter_ipv4/ipt_ECN.h
  HDRINST usr/include/linux/netfilter_ipv4/ip_tables.h
  HDRINST usr/include/linux/netfilter_ipv4/ipt_ecn.h
  HDRINST usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
  HDRINST usr/include/linux/netfilter_ipv4/ipt_REJECT.h
  HDRINST usr/include/linux/netfilter_ipv4/ipt_LOG.h
  HDRINST usr/include/linux/sem.h
  HDRINST usr/include/linux/net_namespace.h
  HDRINST usr/include/linux/radeonfb.h
  HDRINST usr/include/linux/tee.h
  HDRINST usr/include/linux/udp.h
  HDRINST usr/include/linux/virtio_bt.h
  HDRINST usr/include/linux/v4l2-subdev.h
  HDRINST usr/include/linux/posix_acl_xattr.h
  HDRINST usr/include/linux/v4l2-mediabus.h
  HDRINST usr/include/linux/atmapi.h
  HDRINST usr/include/linux/raid/md_p.h
  HDRINST usr/include/linux/raid/md_u.h
  HDRINST usr/include/linux/zorro_ids.h
  HDRINST usr/include/linux/nbd.h
  HDRINST usr/include/linux/isst_if.h
  HDRINST usr/include/linux/rxrpc.h
  HDRINST usr/include/linux/unistd.h
  HDRINST usr/include/linux/if_arp.h
  HDRINST usr/include/linux/atm_zatm.h
  HDRINST usr/include/linux/io_uring.h
  HDRINST usr/include/linux/if_fddi.h
  HDRINST usr/include/linux/bpqether.h
  HDRINST usr/include/linux/sysinfo.h
  HDRINST usr/include/linux/auto_dev-ioctl.h
  HDRINST usr/include/linux/nfs4_mount.h
  HDRINST usr/include/linux/keyboard.h
  HDRINST usr/include/linux/virtio_mmio.h
  HDRINST usr/include/linux/input.h
  HDRINST usr/include/linux/qnxtypes.h
  HDRINST usr/include/linux/mdio.h
  HDRINST usr/include/linux/lwtunnel.h
  HDRINST usr/include/linux/gfs2_ondisk.h
  HDRINST usr/include/linux/nfs4.h
  HDRINST usr/include/linux/ptp_clock.h
  HDRINST usr/include/linux/nubus.h
  HDRINST usr/include/linux/if_bonding.h
  HDRINST usr/include/linux/kcov.h
  HDRINST usr/include/linux/fadvise.h
  HDRINST usr/include/linux/taskstats.h
  HDRINST usr/include/linux/veth.h
  HDRINST usr/include/linux/atm.h
  HDRINST usr/include/linux/ipmi.h
  HDRINST usr/include/linux/kdev_t.h
  HDRINST usr/include/linux/mount.h
  HDRINST usr/include/linux/shm.h
  HDRINST usr/include/linux/resource.h
  HDRINST usr/include/linux/prctl.h
  HDRINST usr/include/linux/watch_queue.h
  HDRINST usr/include/linux/sched.h
  HDRINST usr/include/linux/phonet.h
  HDRINST usr/include/linux/random.h
  HDRINST usr/include/linux/tty.h
  HDRINST usr/include/linux/apm_bios.h
  HDRINST usr/include/linux/fd.h
  HDRINST usr/include/linux/um_timetravel.h
  HDRINST usr/include/linux/tls.h
  HDRINST usr/include/linux/rpmsg_types.h
  HDRINST usr/include/linux/pfrut.h
  HDRINST usr/include/linux/mei.h
  LD      /kernel/build64/tools/objtool/libsubcmd/libsubcmd-in.o
  HDRINST usr/include/linux/fsi.h
  HDRINST usr/include/linux/rds.h
  HDRINST usr/include/linux/if_x25.h
  HDRINST usr/include/linux/param.h
  HDRINST usr/include/linux/netdevice.h
  HDRINST usr/include/linux/binfmts.h
  HDRINST usr/include/linux/if_pppox.h
  HDRINST usr/include/linux/sockios.h
  HDRINST usr/include/linux/kcm.h
  HDRINST usr/include/linux/virtio_9p.h
  HDRINST usr/include/linux/genwqe/genwqe_card.h
  HDRINST usr/include/linux/if_tun.h
  HDRINST usr/include/linux/if_ether.h
  HDRINST usr/include/linux/kvm_para.h
  HDRINST usr/include/linux/kernel-page-flags.h
  HDRINST usr/include/linux/cdrom.h
  HDRINST usr/include/linux/un.h
  HDRINST usr/include/linux/module.h
  HDRINST usr/include/linux/mqueue.h
  HDRINST usr/include/linux/a.out.h
  HDRINST usr/include/linux/input-event-codes.h
  HDRINST usr/include/linux/coda.h
  HDRINST usr/include/linux/rio_mport_cdev.h
  HDRINST usr/include/linux/ipsec.h
  HDRINST usr/include/linux/blkpg.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_arpreply.h
  HDRINST usr/include/linux/blkzoned.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_redirect.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_nflog.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_802_3.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_nat.h
  AR      /kernel/build64/tools/objtool/libsubcmd/libsubcmd.a
  HDRINST usr/include/linux/netfilter_bridge/ebt_mark_m.h
  HDRINST usr/include/linux/netfilter_bridge/ebtables.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_vlan.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_limit.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_log.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_stp.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_pkttype.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_ip.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_ip6.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_arp.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_mark_t.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_among.h
  HDRINST usr/include/linux/reiserfs_fs.h
  HDRINST usr/include/linux/cciss_ioctl.h
  HDRINST usr/include/linux/fsmap.h
  HDRINST usr/include/linux/smiapp.h
  HDRINST usr/include/linux/switchtec_ioctl.h
  HDRINST usr/include/linux/atmdev.h
  HDRINST usr/include/linux/hpet.h
  HDRINST usr/include/linux/virtio_config.h
  HDRINST usr/include/linux/string.h
  HDRINST usr/include/linux/kfd_sysfs.h
  HDRINST usr/include/linux/inet_diag.h
  HDRINST usr/include/linux/netdev.h
  HDRINST usr/include/linux/xattr.h
  HDRINST usr/include/linux/iommufd.h
  HDRINST usr/include/linux/errno.h
  HDRINST usr/include/linux/icmp.h
  HDRINST usr/include/linux/i2o-dev.h
  HDRINST usr/include/linux/pg.h
  HDRINST usr/include/linux/thermal.h
  HDRINST usr/include/linux/if_bridge.h
  HDRINST usr/include/linux/uinput.h
  HDRINST usr/include/linux/dqblk_xfs.h
  HDRINST usr/include/linux/v4l2-common.h
  HDRINST usr/include/linux/nvram.h
  HDRINST usr/include/linux/if_vlan.h
  HDRINST usr/include/linux/uhid.h
  HDRINST usr/include/linux/omap3isp.h
  HDRINST usr/include/linux/rose.h
  HDRINST usr/include/linux/phantom.h
  HDRINST usr/include/linux/ipmi_msgdefs.h
  HDRINST usr/include/linux/bcm933xx_hcs.h
  HDRINST usr/include/linux/bpf.h
  HDRINST usr/include/linux/mempolicy.h
  HDRINST usr/include/linux/efs_fs_sb.h
  HDRINST usr/include/linux/nexthop.h
  HDRINST usr/include/linux/net_dropmon.h
  HDRINST usr/include/linux/surface_aggregator/cdev.h
  HDRINST usr/include/linux/surface_aggregator/dtx.h
  HDRINST usr/include/linux/net.h
  HDRINST usr/include/linux/mii.h
  HDRINST usr/include/linux/cm4000_cs.h
  HDRINST usr/include/linux/virtio_pcidev.h
  HDRINST usr/include/linux/termios.h
  HDRINST usr/include/linux/cgroupstats.h
  HDRINST usr/include/linux/mpls.h
  HDRINST usr/include/linux/iommu.h
  HDRINST usr/include/linux/toshiba.h
  HDRINST usr/include/linux/virtio_scsi.h
  HDRINST usr/include/linux/zorro.h
  HDRINST usr/include/linux/chio.h
  HDRINST usr/include/linux/pkt_sched.h
  HDRINST usr/include/linux/cramfs_fs.h
  HDRINST usr/include/linux/nfs3.h
  HDRINST usr/include/linux/vfio_ccw.h
  CC      /kernel/build64/tools/objtool/weak.o
  HDRINST usr/include/linux/atm_nicstar.h
  HDRINST usr/include/linux/ncsi.h
  CC      /kernel/build64/tools/objtool/check.o
  HDRINST usr/include/linux/virtio_net.h
  HDRINST usr/include/linux/ioctl.h
  CC      /kernel/build64/tools/objtool/special.o
  HDRINST usr/include/linux/stddef.h
  HDRINST usr/include/linux/limits.h
  CC      /kernel/build64/tools/objtool/builtin-check.o
  HDRINST usr/include/linux/ipmi_bmc.h
  HDRINST usr/include/linux/netfilter_arp.h
  MKDIR   /kernel/build64/tools/objtool/arch/x86/
  CC      /kernel/build64/tools/objtool/elf.o
  CC      /kernel/build64/tools/objtool/objtool.o
  HDRINST usr/include/linux/if_addr.h
  MKDIR   /kernel/build64/tools/objtool/arch/x86/lib/
  CC      /kernel/build64/tools/objtool/orc_gen.o
  HDRINST usr/include/linux/rpmsg.h
  CC      /kernel/build64/tools/objtool/orc_dump.o
  CC      /kernel/build64/tools/objtool/arch/x86/special.o
  HDRINST usr/include/linux/media-bus-format.h
  HDRINST usr/include/linux/kernelcapi.h
  CC      /kernel/build64/tools/objtool/libstring.o
  CC      /kernel/build64/tools/objtool/libctype.o
  GEN     /kernel/build64/tools/objtool/arch/x86/lib/inat-tables.c
  HDRINST usr/include/linux/ppp_defs.h
  CC      /kernel/build64/tools/objtool/str_error_r.o
  HDRINST usr/include/linux/ethtool.h
  HDRINST usr/include/linux/aspeed-video.h
  HDRINST usr/include/linux/hdlc.h
  HDRINST usr/include/linux/fscrypt.h
  CC      /kernel/build64/tools/objtool/librbtree.o
  HDRINST usr/include/linux/batadv_packet.h
  HDRINST usr/include/linux/uuid.h
  HDRINST usr/include/linux/capi.h
  HDRINST usr/include/linux/mptcp.h
  HDRINST usr/include/linux/hidraw.h
  HDRINST usr/include/linux/virtio_console.h
  HDRINST usr/include/linux/irqnr.h
  HDRINST usr/include/linux/coresight-stm.h
  HDRINST usr/include/linux/cxl_mem.h
  HDRINST usr/include/linux/iso_fs.h
  HDRINST usr/include/linux/virtio_blk.h
  HDRINST usr/include/linux/udf_fs_i.h
  HDRINST usr/include/linux/coff.h
  HDRINST usr/include/linux/dma-buf.h
  HDRINST usr/include/linux/ife.h
  HDRINST usr/include/linux/agpgart.h
  HDRINST usr/include/linux/socket.h
  HDRINST usr/include/linux/nilfs2_ondisk.h
  HDRINST usr/include/linux/connector.h
  HDRINST usr/include/linux/auto_fs4.h
  HDRINST usr/include/linux/bt-bmc.h
  HDRINST usr/include/linux/map_to_7segment.h
  HDRINST usr/include/linux/tc_act/tc_skbedit.h
  HDRINST usr/include/linux/tc_act/tc_ctinfo.h
  HDRINST usr/include/linux/tc_act/tc_defact.h
  HDRINST usr/include/linux/tc_act/tc_gact.h
  HDRINST usr/include/linux/tc_act/tc_vlan.h
  HDRINST usr/include/linux/tc_act/tc_skbmod.h
  HDRINST usr/include/linux/tc_act/tc_sample.h
  HDRINST usr/include/linux/tc_act/tc_tunnel_key.h
  HDRINST usr/include/linux/tc_act/tc_gate.h
  HDRINST usr/include/linux/tc_act/tc_mirred.h
  HDRINST usr/include/linux/tc_act/tc_nat.h
  HDRINST usr/include/linux/tc_act/tc_csum.h
  HDRINST usr/include/linux/tc_act/tc_connmark.h
  HDRINST usr/include/linux/tc_act/tc_ife.h
  HDRINST usr/include/linux/tc_act/tc_mpls.h
  HDRINST usr/include/linux/tc_act/tc_ct.h
  HDRINST usr/include/linux/tc_act/tc_pedit.h
  HDRINST usr/include/linux/tc_act/tc_bpf.h
  HDRINST usr/include/linux/tc_act/tc_ipt.h
  HDRINST usr/include/linux/netrom.h
  HDRINST usr/include/linux/joystick.h
  HDRINST usr/include/linux/falloc.h
  HDRINST usr/include/linux/cycx_cfm.h
  HDRINST usr/include/linux/omapfb.h
  HDRINST usr/include/linux/msdos_fs.h
  HDRINST usr/include/linux/virtio_types.h
  HDRINST usr/include/linux/mroute.h
  HDRINST usr/include/linux/psample.h
  HDRINST usr/include/linux/ipv6.h
  HDRINST usr/include/linux/dw100.h
  HDRINST usr/include/linux/psp-sev.h
  HDRINST usr/include/linux/vfio.h
  HDRINST usr/include/linux/if_ppp.h
  HDRINST usr/include/linux/byteorder/big_endian.h
  HDRINST usr/include/linux/byteorder/little_endian.h
  HDRINST usr/include/linux/comedi.h
  HDRINST usr/include/linux/scif_ioctl.h
  HDRINST usr/include/linux/timerfd.h
  HDRINST usr/include/linux/time_types.h
  HDRINST usr/include/linux/firewire-constants.h
  HDRINST usr/include/linux/virtio_snd.h
  HDRINST usr/include/linux/ppp-ioctl.h
  HDRINST usr/include/linux/fib_rules.h
  HDRINST usr/include/linux/gen_stats.h
  HDRINST usr/include/linux/virtio_iommu.h
  HDRINST usr/include/linux/genetlink.h
  HDRINST usr/include/linux/uvcvideo.h
  HDRINST usr/include/linux/pfkeyv2.h
  HDRINST usr/include/linux/soundcard.h
  HDRINST usr/include/linux/times.h
  HDRINST usr/include/linux/nfc.h
  HDRINST usr/include/linux/affs_hardblocks.h
  HDRINST usr/include/linux/nilfs2_api.h
  HDRINST usr/include/linux/rseq.h
  HDRINST usr/include/linux/caif/caif_socket.h
  CC      /kernel/build64/tools/objtool/arch/x86/decode.o
  HDRINST usr/include/linux/caif/if_caif.h
  HDRINST usr/include/linux/i2c-dev.h
  HDRINST usr/include/linux/cuda.h
  HDRINST usr/include/linux/cn_proc.h
  HDRINST usr/include/linux/parport.h
  HDRINST usr/include/linux/v4l2-controls.h
  HDRINST usr/include/linux/hsi/cs-protocol.h
  HDRINST usr/include/linux/hsi/hsi_char.h
  HDRINST usr/include/linux/seg6_genl.h
  HDRINST usr/include/linux/am437x-vpfe.h
  HDRINST usr/include/linux/amt.h
  HDRINST usr/include/linux/netconf.h
  HDRINST usr/include/linux/erspan.h
  HDRINST usr/include/linux/nsfs.h
  HDRINST usr/include/linux/xilinx-v4l2-controls.h
  HDRINST usr/include/linux/aspeed-p2a-ctrl.h
  HDRINST usr/include/linux/vfio_zdev.h
  HDRINST usr/include/linux/serio.h
  HDRINST usr/include/linux/acrn.h
  HDRINST usr/include/linux/nfs2.h
  HDRINST usr/include/linux/virtio_pci.h
  HDRINST usr/include/linux/ipc.h
  HDRINST usr/include/linux/ethtool_netlink.h
  HDRINST usr/include/linux/kd.h
  HDRINST usr/include/linux/elf.h
  HDRINST usr/include/linux/videodev2.h
  HDRINST usr/include/linux/if_alg.h
  HDRINST usr/include/linux/sonypi.h
  HDRINST usr/include/linux/fsverity.h
  HDRINST usr/include/linux/if.h
  HDRINST usr/include/linux/btrfs.h
  HDRINST usr/include/linux/vm_sockets_diag.h
  HDRINST usr/include/linux/netfilter_bridge.h
  HDRINST usr/include/linux/packet_diag.h
  HDRINST usr/include/linux/netfilter_ipv4.h
  HDRINST usr/include/linux/kvm.h
  HDRINST usr/include/linux/pci.h
  HDRINST usr/include/linux/if_addrlabel.h
  HDRINST usr/include/linux/hdlcdrv.h
  HDRINST usr/include/linux/cfm_bridge.h
  HDRINST usr/include/linux/fiemap.h
  HDRINST usr/include/linux/dm-ioctl.h
  HDRINST usr/include/linux/aspeed-lpc-ctrl.h
  HDRINST usr/include/linux/atmioc.h
  HDRINST usr/include/linux/dlm.h
  HDRINST usr/include/linux/pci_regs.h
  HDRINST usr/include/linux/cachefiles.h
  HDRINST usr/include/linux/membarrier.h
  HDRINST usr/include/linux/nfs_idmap.h
  HDRINST usr/include/linux/ip.h
  HDRINST usr/include/linux/atm_he.h
  HDRINST usr/include/linux/nfsd/export.h
  HDRINST usr/include/linux/nfsd/stats.h
  HDRINST usr/include/linux/nfsd/debug.h
  HDRINST usr/include/linux/nfsd/cld.h
  HDRINST usr/include/linux/ip_vs.h
  HDRINST usr/include/linux/vmcore.h
  HDRINST usr/include/linux/vbox_vmmdev_types.h
  HDRINST usr/include/linux/dvb/osd.h
  HDRINST usr/include/linux/dvb/dmx.h
  HDRINST usr/include/linux/dvb/net.h
  HDRINST usr/include/linux/dvb/frontend.h
  HDRINST usr/include/linux/dvb/ca.h
  HDRINST usr/include/linux/dvb/version.h
  HDRINST usr/include/linux/dvb/video.h
  HDRINST usr/include/linux/dvb/audio.h
  HDRINST usr/include/linux/nfs.h
  HDRINST usr/include/linux/if_link.h
  HDRINST usr/include/linux/wait.h
  HDRINST usr/include/linux/icmpv6.h
  HDRINST usr/include/linux/media.h
  HDRINST usr/include/linux/seg6_local.h
  HDRINST usr/include/linux/openvswitch.h
  HDRINST usr/include/linux/atmsap.h
  HDRINST usr/include/linux/bpfilter.h
  HDRINST usr/include/linux/fpga-dfl.h
  HDRINST usr/include/linux/userio.h
  HDRINST usr/include/linux/signal.h
  HDRINST usr/include/linux/map_to_14segment.h
  HDRINST usr/include/linux/hdreg.h
  HDRINST usr/include/linux/utime.h
  HDRINST usr/include/linux/usbdevice_fs.h
  HDRINST usr/include/linux/timex.h
  HDRINST usr/include/linux/if_fc.h
  HDRINST usr/include/linux/reiserfs_xattr.h
  HDRINST usr/include/linux/hw_breakpoint.h
  HDRINST usr/include/linux/quota.h
  HDRINST usr/include/linux/ioprio.h
  HDRINST usr/include/linux/eventpoll.h
  HDRINST usr/include/linux/atmclip.h
  HDRINST usr/include/linux/can.h
  HDRINST usr/include/linux/if_team.h
  HDRINST usr/include/linux/usbip.h
  HDRINST usr/include/linux/stat.h
  HDRINST usr/include/linux/fou.h
  HDRINST usr/include/linux/hash_info.h
  HDRINST usr/include/linux/ppp-comp.h
  HDRINST usr/include/linux/ip6_tunnel.h
  HDRINST usr/include/linux/tipc_netlink.h
  HDRINST usr/include/linux/in.h
  HDRINST usr/include/linux/wireguard.h
  HDRINST usr/include/linux/btf.h
  HDRINST usr/include/linux/batman_adv.h
  HDRINST usr/include/linux/fcntl.h
  HDRINST usr/include/linux/if_ltalk.h
  HDRINST usr/include/linux/i2c.h
  HDRINST usr/include/linux/atm_idt77105.h
  HDRINST usr/include/linux/kexec.h
  HDRINST usr/include/linux/arm_sdei.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6_tables.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_ah.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_NPT.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_rt.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_REJECT.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_opts.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_srh.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_LOG.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_mh.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_HL.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_hl.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_frag.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_ipv6header.h
  HDRINST usr/include/linux/minix_fs.h
  HDRINST usr/include/linux/aio_abi.h
  HDRINST usr/include/linux/pktcdvd.h
  HDRINST usr/include/linux/libc-compat.h
  HDRINST usr/include/linux/atmlec.h
  HDRINST usr/include/linux/signalfd.h
  HDRINST usr/include/linux/bpf_common.h
  HDRINST usr/include/linux/seg6_iptunnel.h
  HDRINST usr/include/linux/synclink.h
  HDRINST usr/include/linux/mpls_iptunnel.h
  HDRINST usr/include/linux/mctp.h
  HDRINST usr/include/linux/if_xdp.h
  HDRINST usr/include/linux/llc.h
  HDRINST usr/include/linux/atmsvc.h
  HDRINST usr/include/linux/sed-opal.h
  HDRINST usr/include/linux/sock_diag.h
  HDRINST usr/include/linux/time.h
  HDRINST usr/include/linux/securebits.h
  HDRINST usr/include/linux/fsl_hypervisor.h
  HDRINST usr/include/linux/if_hippi.h
  HDRINST usr/include/linux/dlm_netlink.h
  HDRINST usr/include/linux/seccomp.h
  HDRINST usr/include/linux/oom.h
  HDRINST usr/include/linux/filter.h
  HDRINST usr/include/linux/inotify.h
  HDRINST usr/include/linux/rfkill.h
  HDRINST usr/include/linux/reboot.h
  HDRINST usr/include/linux/can/vxcan.h
  HDRINST usr/include/linux/can/j1939.h
  HDRINST usr/include/linux/can/netlink.h
  HDRINST usr/include/linux/can/bcm.h
  HDRINST usr/include/linux/can/raw.h
  HDRINST usr/include/linux/can/gw.h
  HDRINST usr/include/linux/can/error.h
  HDRINST usr/include/linux/can/isotp.h
  HDRINST usr/include/linux/if_eql.h
  HDRINST usr/include/linux/hiddev.h
  HDRINST usr/include/linux/blktrace_api.h
  HDRINST usr/include/linux/ccs.h
  HDRINST usr/include/linux/ioam6.h
  HDRINST usr/include/linux/hsr_netlink.h
  HDRINST usr/include/linux/mmc/ioctl.h
  HDRINST usr/include/linux/bfs_fs.h
  HDRINST usr/include/linux/rio_cm_cdev.h
  HDRINST usr/include/linux/uleds.h
  HDRINST usr/include/linux/mrp_bridge.h
  HDRINST usr/include/linux/adb.h
  HDRINST usr/include/linux/pmu.h
  HDRINST usr/include/linux/udmabuf.h
  HDRINST usr/include/linux/kcmp.h
  HDRINST usr/include/linux/dma-heap.h
  HDRINST usr/include/linux/userfaultfd.h
  HDRINST usr/include/linux/netfilter_arp/arpt_mangle.h
  HDRINST usr/include/linux/netfilter_arp/arp_tables.h
  HDRINST usr/include/linux/tipc.h
  HDRINST usr/include/linux/virtio_ids.h
  HDRINST usr/include/linux/l2tp.h
  HDRINST usr/include/linux/devlink.h
  HDRINST usr/include/linux/virtio_gpio.h
  HDRINST usr/include/linux/dcbnl.h
  HDRINST usr/include/linux/cyclades.h
  HDRINST usr/include/sound/intel/avs/tokens.h
  HDRINST usr/include/sound/sof/fw.h
  HDRINST usr/include/sound/sof/abi.h
  HDRINST usr/include/sound/sof/tokens.h
  HDRINST usr/include/sound/sof/header.h
  HDRINST usr/include/sound/usb_stream.h
  HDRINST usr/include/sound/sfnt_info.h
  HDRINST usr/include/sound/asequencer.h
  HDRINST usr/include/sound/tlv.h
  HDRINST usr/include/sound/asound.h
  HDRINST usr/include/sound/asoc.h
  HDRINST usr/include/sound/sb16_csp.h
  HDRINST usr/include/sound/compress_offload.h
  HDRINST usr/include/sound/hdsp.h
  HDRINST usr/include/sound/emu10k1.h
  HDRINST usr/include/sound/snd_ar_tokens.h
  HDRINST usr/include/sound/snd_sst_tokens.h
  HDRINST usr/include/sound/asound_fm.h
  HDRINST usr/include/sound/hdspm.h
  HDRINST usr/include/sound/compress_params.h
  HDRINST usr/include/sound/firewire.h
  HDRINST usr/include/sound/skl-tplg-interface.h
  HDRINST usr/include/scsi/scsi_bsg_ufs.h
  HDRINST usr/include/scsi/scsi_netlink_fc.h
  HDRINST usr/include/scsi/scsi_bsg_mpi3mr.h
  HDRINST usr/include/scsi/fc/fc_ns.h
  HDRINST usr/include/scsi/fc/fc_fs.h
  HDRINST usr/include/scsi/fc/fc_els.h
  HDRINST usr/include/scsi/fc/fc_gs.h
  HDRINST usr/include/scsi/scsi_bsg_fc.h
  HDRINST usr/include/scsi/cxlflash_ioctl.h
  HDRINST usr/include/scsi/scsi_netlink.h
  HDRINST usr/include/linux/version.h
  HDRINST usr/include/asm/processor-flags.h
  HDRINST usr/include/asm/auxvec.h
  HDRINST usr/include/asm/svm.h
  HDRINST usr/include/asm/kvm_perf.h
  HDRINST usr/include/asm/bitsperlong.h
  HDRINST usr/include/asm/mce.h
  HDRINST usr/include/asm/posix_types.h
  HDRINST usr/include/asm/msr.h
  HDRINST usr/include/asm/sigcontext32.h
  HDRINST usr/include/asm/mman.h
  HDRINST usr/include/asm/shmbuf.h
  HDRINST usr/include/asm/e820.h
  HDRINST usr/include/asm/posix_types_64.h
  HDRINST usr/include/asm/vsyscall.h
  HDRINST usr/include/asm/msgbuf.h
  HDRINST usr/include/asm/swab.h
  HDRINST usr/include/asm/statfs.h
  HDRINST usr/include/asm/posix_types_x32.h
  HDRINST usr/include/asm/ptrace.h
  HDRINST usr/include/asm/unistd.h
  HDRINST usr/include/asm/ist.h
  HDRINST usr/include/asm/prctl.h
  HDRINST usr/include/asm/boot.h
  HDRINST usr/include/asm/sigcontext.h
  HDRINST usr/include/asm/posix_types_32.h
  HDRINST usr/include/asm/kvm_para.h
  HDRINST usr/include/asm/a.out.h
  HDRINST usr/include/asm/mtrr.h
  HDRINST usr/include/asm/amd_hsmp.h
  HDRINST usr/include/asm/hwcap2.h
  HDRINST usr/include/asm/ptrace-abi.h
  HDRINST usr/include/asm/vm86.h
  HDRINST usr/include/asm/vmx.h
  HDRINST usr/include/asm/ldt.h
  HDRINST usr/include/asm/perf_regs.h
  HDRINST usr/include/asm/kvm.h
  HDRINST usr/include/asm/debugreg.h
  HDRINST usr/include/asm/signal.h
  HDRINST usr/include/asm/bootparam.h
  HDRINST usr/include/asm/siginfo.h
  HDRINST usr/include/asm/hw_breakpoint.h
  HDRINST usr/include/asm/stat.h
  HDRINST usr/include/asm/setup.h
  HDRINST usr/include/asm/sembuf.h
  HDRINST usr/include/asm/ucontext.h
  HDRINST usr/include/asm/sgx.h
  HDRINST usr/include/asm/unistd_64.h
  HDRINST usr/include/asm/byteorder.h
  HDRINST usr/include/asm/ioctls.h
  HDRINST usr/include/asm/bpf_perf_event.h
  HDRINST usr/include/asm/types.h
  HDRINST usr/include/asm/poll.h
  HDRINST usr/include/asm/resource.h
  HDRINST usr/include/asm/param.h
  HDRINST usr/include/asm/sockios.h
  HDRINST usr/include/asm/errno.h
  HDRINST usr/include/asm/unistd_x32.h
  HDRINST usr/include/asm/termios.h
  HDRINST usr/include/asm/ioctl.h
  HDRINST usr/include/asm/socket.h
  HDRINST usr/include/asm/unistd_32.h
  HDRINST usr/include/asm/termbits.h
  HDRINST usr/include/asm/fcntl.h
  HDRINST usr/include/asm/ipcbuf.h
  HOSTLD  scripts/mod/modpost
  CC      kernel/bounds.s
  CHKSHA1 ../include/linux/atomic/atomic-arch-fallback.h
  CHKSHA1 ../include/linux/atomic/atomic-instrumented.h
  CHKSHA1 ../include/linux/atomic/atomic-long.h
  UPD     include/generated/timeconst.h
  UPD     include/generated/bounds.h
  CC      arch/x86/kernel/asm-offsets.s
  LD      /kernel/build64/tools/objtool/arch/x86/objtool-in.o
  UPD     include/generated/asm-offsets.h
  CALL    ../scripts/checksyscalls.sh
  LD      /kernel/build64/tools/objtool/objtool-in.o
  LINK    /kernel/build64/tools/objtool/objtool
  LDS     scripts/module.lds
  CC      ipc/compat.o
  CC      ipc/util.o
  CC      ipc/msgutil.o
  CC      ipc/msg.o
  CC      ipc/sem.o
  AR      certs/built-in.a
  HOSTCC  usr/gen_init_cpio
  CC      ipc/shm.o
  CC      io_uring/io_uring.o
  CC      ipc/syscall.o
  CC      ipc/ipc_sysctl.o
  CC      init/main.o
  CC      io_uring/xattr.o
  CC      arch/x86/power/cpu.o
  CC      ipc/mqueue.o
  CC      arch/x86/pci/i386.o
  AR      arch/x86/video/built-in.a
  CC      arch/x86/power/hibernate_64.o
  UPD     init/utsversion-tmp.h
  CC      ipc/namespace.o
  AS      arch/x86/lib/clear_page_64.o
  CC      security/commoncap.o
  CC      io_uring/nop.o
  CC      arch/x86/pci/init.o
  CC      init/do_mounts.o
  AR      virt/lib/built-in.a
  CC      arch/x86/realmode/init.o
  CC [M]  arch/x86/video/fbdev.o
  CC      block/partitions/core.o
  AR      arch/x86/ia32/built-in.a
  CC      fs/nfs_common/grace.o
  CC [M]  virt/lib/irqbypass.o
  AR      arch/x86/net/built-in.a
  CC      net/core/sock.o
  CC      security/keys/gc.o
  AS      arch/x86/crypto/aesni-intel_asm.o
  CC      net/llc/llc_core.o
  AR      drivers/irqchip/built-in.a
  CC      net/ethernet/eth.o
  CC      fs/notify/dnotify/dnotify.o
  CC      arch/x86/mm/pat/set_memory.o
  AR      arch/x86/platform/atom/built-in.a
  CC      arch/x86/events/amd/core.o
  AR      sound/i2c/other/built-in.a
  CC      sound/core/seq/seq.o
  CC      arch/x86/kernel/fpu/init.o
  CC      arch/x86/events/amd/lbr.o
  AR      sound/i2c/built-in.a
  CC      ipc/mq_sysctl.o
  AR      drivers/bus/mhi/built-in.a
  AR      arch/x86/platform/ce4100/built-in.a
  CC      io_uring/fs.o
  CC      lib/kunit/test.o
  AR      drivers/bus/built-in.a
  CC      arch/x86/kernel/cpu/mce/core.o
  CC      arch/x86/lib/cmdline.o
  CC      arch/x86/platform/efi/memmap.o
  CC      kernel/sched/core.o
  CC      mm/kasan/common.o
  CC      arch/x86/entry/vdso/vma.o
  AR      drivers/phy/allwinner/built-in.a
  CC      arch/x86/crypto/aesni-intel_glue.o
  AR      drivers/phy/amlogic/built-in.a
  CC      crypto/api.o
  AR      drivers/phy/broadcom/built-in.a
  AR      drivers/phy/cadence/built-in.a
  AR      drivers/phy/freescale/built-in.a
  AR      drivers/phy/hisilicon/built-in.a
  AR      drivers/phy/ingenic/built-in.a
  AR      drivers/phy/intel/built-in.a
  AR      drivers/phy/lantiq/built-in.a
  AS      arch/x86/lib/cmpxchg16b_emu.o
  AR      drivers/phy/marvell/built-in.a
  AR      drivers/phy/mediatek/built-in.a
  AR      drivers/phy/microchip/built-in.a
  CC      arch/x86/lib/copy_mc.o
  AR      drivers/phy/motorola/built-in.a
  AR      drivers/phy/mscc/built-in.a
  AR      drivers/phy/qualcomm/built-in.a
  AR      drivers/phy/ralink/built-in.a
  AR      drivers/phy/renesas/built-in.a
  AR      drivers/phy/rockchip/built-in.a
  AR      drivers/phy/samsung/built-in.a
  AR      drivers/phy/socionext/built-in.a
  AR      drivers/phy/st/built-in.a
  GEN     usr/initramfs_data.cpio
  COPY    usr/initramfs_inc_data
  AR      drivers/phy/sunplus/built-in.a
  AS      usr/initramfs_data.o
  AR      drivers/phy/tegra/built-in.a
  AR      drivers/phy/ti/built-in.a
  AR      usr/built-in.a
  CC      drivers/phy/phy-core.o
  AR      drivers/phy/xilinx/built-in.a
  CC      net/llc/llc_input.o
  CC      net/llc/llc_output.o
  AR      virt/built-in.a
  CC      arch/x86/events/intel/core.o
  AS      arch/x86/lib/copy_mc_64.o
  AS      arch/x86/lib/copy_page_64.o
  CC      arch/x86/events/intel/bts.o
  CC      sound/core/seq/seq_lock.o
  AS      arch/x86/lib/copy_user_64.o
  CC      arch/x86/lib/cpu.o
  AS      arch/x86/realmode/rm/header.o
  CC      arch/x86/pci/mmconfig_64.o
  CC      arch/x86/kernel/fpu/bugs.o
  CC      arch/x86/lib/delay.o
  CC      arch/x86/pci/direct.o
  AS      arch/x86/realmode/rm/trampoline_64.o
  CC      crypto/cipher.o
  CC      security/keys/key.o
  AS      arch/x86/realmode/rm/stack.o
  AS      arch/x86/power/hibernate_asm_64.o
  CC      fs/iomap/trace.o
  CC      arch/x86/power/hibernate.o
  AR      fs/notify/dnotify/built-in.a
  AS      arch/x86/realmode/rm/reboot.o
  CC      io_uring/splice.o
  CC      fs/notify/inotify/inotify_fsnotify.o
  AR      fs/nfs_common/built-in.a
  AS      arch/x86/realmode/rm/wakeup_asm.o
  CC      arch/x86/realmode/rm/wakemain.o
  CC      io_uring/sync.o
  CC      arch/x86/pci/mmconfig-shared.o
  CC      arch/x86/pci/fixup.o
  CC      arch/x86/kernel/fpu/core.o
  CC      lib/kunit/resource.o
  CC      arch/x86/realmode/rm/video-mode.o
  CC      crypto/compress.o
  AS      arch/x86/realmode/rm/copy.o
  CC      crypto/algapi.o
  CC      arch/x86/platform/efi/quirks.o
  CC      io_uring/advise.o
  CC      io_uring/filetable.o
  CC      arch/x86/events/zhaoxin/core.o
  CC      mm/kasan/report.o
  CC      init/do_mounts_initrd.o
  CC      arch/x86/entry/vdso/extable.o
  CC      block/partitions/ldm.o
  AS      arch/x86/lib/getuser.o
  AS      arch/x86/realmode/rm/bioscall.o
  CC      arch/x86/realmode/rm/regs.o
  CC      crypto/scatterwalk.o
  CC      sound/core/seq/seq_clientmgr.o
  GEN     arch/x86/lib/inat-tables.c
  CC      arch/x86/realmode/rm/video-vga.o
  CC      arch/x86/lib/insn-eval.o
  CC      arch/x86/events/amd/ibs.o
  AS      arch/x86/crypto/aesni-intel_avx-x86_64.o
  CC      arch/x86/realmode/rm/video-vesa.o
  AR      fs/quota/built-in.a
  CC      arch/x86/realmode/rm/video-bios.o
  CC      security/min_addr.o
  CC      arch/x86/events/core.o
  AR      net/llc/built-in.a
  CC      crypto/proc.o
  CC      sound/core/seq/seq_memory.o
  CC      arch/x86/kernel/acpi/boot.o
  CC      arch/x86/kernel/acpi/sleep.o
  CC      fs/notify/inotify/inotify_user.o
  CC      crypto/aead.o
  AR      net/ethernet/built-in.a
  AS      arch/x86/kernel/acpi/wakeup_64.o
  CC      fs/proc/task_mmu.o
  CC      lib/kunit/static_stub.o
  CC      crypto/geniv.o
  CC      arch/x86/entry/vsyscall/vsyscall_64.o
  PASYMS  arch/x86/realmode/rm/pasyms.h
  CC      net/802/p8022.o
  LDS     arch/x86/realmode/rm/realmode.lds
  LD      arch/x86/realmode/rm/realmode.elf
  RELOCS  arch/x86/realmode/rm/realmode.relocs
  OBJCOPY arch/x86/realmode/rm/realmode.bin
  AR      drivers/phy/built-in.a
  AS      arch/x86/realmode/rmpiggy.o
  AR      drivers/pinctrl/actions/built-in.a
  AR      arch/x86/realmode/built-in.a
  AR      drivers/pinctrl/bcm/built-in.a
  CC      drivers/gpio/gpiolib.o
  AR      drivers/pinctrl/cirrus/built-in.a
  AS      arch/x86/crypto/aes_ctrby8_avx-x86_64.o
  AR      drivers/pinctrl/freescale/built-in.a
  AR      arch/x86/power/built-in.a
  CC      drivers/pinctrl/intel/pinctrl-baytrail.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/kvm_main.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/eventfd.o
  CC      net/802/psnap.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/binary_stats.o
  AS [M]  arch/x86/crypto/ghash-clmulni-intel_asm.o
  CC      net/802/stp.o
  CC      init/initramfs.o
  CC [M]  arch/x86/crypto/ghash-clmulni-intel_glue.o
  CC      arch/x86/entry/vdso/vdso32-setup.o
  CC      io_uring/openclose.o
  CC      crypto/skcipher.o
  CC      crypto/seqiv.o
  CC      arch/x86/kernel/acpi/apei.o
  CC      fs/iomap/iter.o
  CC      security/keys/keyring.o
  CC      arch/x86/mm/pat/memtype.o
  CC      mm/kasan/init.o
  CC      arch/x86/pci/acpi.o
  CC      arch/x86/platform/efi/efi.o
  CC      arch/x86/mm/pat/memtype_interval.o
  CC      arch/x86/kernel/cpu/mce/severity.o
  CC      arch/x86/platform/efi/efi_64.o
  AR      arch/x86/events/zhaoxin/built-in.a
  AS      arch/x86/platform/efi/efi_stub_64.o
  LDS     arch/x86/entry/vdso/vdso.lds
  CC      lib/kunit/string-stream.o
  AS      arch/x86/entry/vdso/vdso-note.o
  CC      arch/x86/events/probe.o
  CC      mm/filemap.o
  CC      arch/x86/entry/vdso/vclock_gettime.o
  CC      io_uring/uring_cmd.o
  AS      arch/x86/entry/vsyscall/vsyscall_emu_64.o
  CC      arch/x86/lib/insn.o
  AR      sound/drivers/opl3/built-in.a
  AR      sound/drivers/opl4/built-in.a
  CC      crypto/echainiv.o
  CC      mm/kasan/generic.o
  AR      sound/drivers/mpu401/built-in.a
  AR      sound/drivers/vx/built-in.a
  AR      sound/drivers/pcsp/built-in.a
  AR      sound/drivers/built-in.a
  CC      arch/x86/kernel/fpu/regset.o
  AS [M]  arch/x86/crypto/crc32-pclmul_asm.o
  CC      arch/x86/kernel/cpu/mce/genpool.o
  CC      block/partitions/msdos.o
  AR      sound/isa/ad1816a/built-in.a
  AR      sound/isa/ad1848/built-in.a
  CC [M]  arch/x86/crypto/crc32-pclmul_glue.o
  AR      sound/isa/cs423x/built-in.a
  AR      sound/isa/es1688/built-in.a
  AR      arch/x86/entry/vsyscall/built-in.a
  CC      block/partitions/efi.o
  AR      sound/isa/galaxy/built-in.a
  CC      kernel/locking/mutex.o
  AR      sound/isa/gus/built-in.a
  CC      kernel/power/qos.o
  AR      sound/isa/msnd/built-in.a
  AR      ipc/built-in.a
  AR      sound/isa/opti9xx/built-in.a
  CC      arch/x86/kernel/acpi/cppc.o
  CC      kernel/power/main.o
  AR      sound/isa/sb/built-in.a
  CC      arch/x86/events/amd/uncore.o
  AR      sound/isa/wavefront/built-in.a
  CC      arch/x86/kernel/cpu/mce/intel.o
  AR      sound/isa/wss/built-in.a
  CC      arch/x86/kernel/cpu/mce/threshold.o
  AR      sound/isa/built-in.a
  CC      kernel/power/console.o
  AR      fs/notify/inotify/built-in.a
  CC      arch/x86/pci/legacy.o
  CC      lib/kunit/assert.o
  CC      fs/notify/fanotify/fanotify.o
  CC      arch/x86/pci/irq.o
  AR      net/802/built-in.a
  CC      fs/iomap/buffered-io.o
  CC      fs/notify/fanotify/fanotify_user.o
  CC      arch/x86/entry/vdso/vgetcpu.o
  AS      arch/x86/lib/memcpy_64.o
  CC      fs/proc/inode.o
  AS      arch/x86/lib/memmove_64.o
  CC      fs/proc/root.o
  CC      sound/core/seq/seq_queue.o
  AS      arch/x86/lib/memset_64.o
  HOSTCC  arch/x86/entry/vdso/vdso2c
  CC      init/calibrate.o
  CC      arch/x86/lib/misc.o
  LDS     arch/x86/entry/vdso/vdso32/vdso32.lds
  CC      security/inode.o
  CC      drivers/pinctrl/intel/pinctrl-intel.o
  CC      arch/x86/kernel/cpu/mce/apei.o
  CC      arch/x86/lib/pc-conf-reg.o
  AR      arch/x86/mm/pat/built-in.a
  CC      arch/x86/mm/init.o
  AS [M]  arch/x86/crypto/crct10dif-pcl-asm_64.o
  CC      kernel/power/process.o
  CC [M]  arch/x86/crypto/crct10dif-pclmul_glue.o
  CC      kernel/power/suspend.o
  CC      mm/mempool.o
  LD [M]  arch/x86/crypto/ghash-clmulni-intel.o
  AR      arch/x86/platform/efi/built-in.a
  CC      io_uring/epoll.o
  CC      fs/kernfs/mount.o
  AR      arch/x86/platform/geode/built-in.a
  AS      arch/x86/lib/putuser.o
  AR      arch/x86/platform/iris/built-in.a
  CC      fs/kernfs/inode.o
  CC      arch/x86/platform/intel/iosf_mbi.o
  AS      arch/x86/lib/retpoline.o
  CC      arch/x86/kernel/acpi/cstate.o
  CC      arch/x86/lib/usercopy.o
  CC      lib/kunit/try-catch.o
  CC      init/init_task.o
  AS      arch/x86/entry/vdso/vdso32/note.o
  CC      arch/x86/kernel/fpu/signal.o
  CC      crypto/ahash.o
  AS      arch/x86/entry/vdso/vdso32/system_call.o
  CC      security/keys/keyctl.o
  AS      arch/x86/entry/vdso/vdso32/sigreturn.o
  CC      net/sched/sch_generic.o
  CC      arch/x86/mm/init_64.o
  CC      arch/x86/entry/vdso/vdso32/vclock_gettime.o
  CC      mm/kasan/report_generic.o
  LD [M]  arch/x86/crypto/crc32-pclmul.o
  CC      io_uring/statx.o
  CC      mm/oom_kill.o
  CC      kernel/locking/semaphore.o
  CC      io_uring/net.o
  AR      arch/x86/crypto/built-in.a
  CC      lib/kunit/executor.o
  CC      fs/proc/base.o
  LD [M]  arch/x86/crypto/crct10dif-pclmul.o
  CC      arch/x86/lib/usercopy_64.o
  AR      block/partitions/built-in.a
  CC      drivers/gpio/gpiolib-devres.o
  CC      block/bdev.o
  CC      fs/proc/generic.o
  AR      arch/x86/kernel/cpu/mce/built-in.a
  AR      arch/x86/events/amd/built-in.a
  CC      fs/notify/fsnotify.o
  CC      arch/x86/kernel/cpu/mtrr/mtrr.o
  CC      kernel/printk/printk.o
  CC      arch/x86/kernel/cpu/mtrr/if.o
  CC      sound/core/seq/seq_fifo.o
  CC      kernel/power/hibernate.o
  CC      security/device_cgroup.o
  CC      kernel/sched/fair.o
  CC      arch/x86/events/intel/ds.o
  AR      drivers/pwm/built-in.a
  CC      arch/x86/kernel/cpu/mtrr/generic.o
  AR      arch/x86/kernel/acpi/built-in.a
  CC      arch/x86/kernel/apic/apic.o
  CC      arch/x86/kernel/apic/apic_common.o
  CC      kernel/power/snapshot.o
  CC      init/version.o
  AR      arch/x86/platform/intel/built-in.a
  AR      arch/x86/platform/intel-mid/built-in.a
  AR      arch/x86/platform/intel-quark/built-in.a
  CC      fs/kernfs/dir.o
  CC      arch/x86/pci/common.o
  CC      arch/x86/pci/early.o
  AR      arch/x86/platform/olpc/built-in.a
  AR      arch/x86/platform/scx200/built-in.a
  AR      arch/x86/platform/ts5500/built-in.a
  AR      arch/x86/platform/uv/built-in.a
  AR      arch/x86/platform/built-in.a
  CC      fs/proc/array.o
  CC      arch/x86/entry/vdso/vdso32/vgetcpu.o
  CC      lib/kunit/hooks.o
  CC      mm/fadvise.o
  CC      net/core/request_sock.o
  CC      kernel/power/swap.o
  VDSO    arch/x86/entry/vdso/vdso64.so.dbg
  CC      mm/kasan/shadow.o
  CC      mm/kasan/quarantine.o
  CC      kernel/locking/rwsem.o
  VDSO    arch/x86/entry/vdso/vdso32.so.dbg
  CC      arch/x86/lib/msr-smp.o
  AR      init/built-in.a
  CC      kernel/power/user.o
  OBJCOPY arch/x86/entry/vdso/vdso64.so
  CC      fs/proc/fd.o
  OBJCOPY arch/x86/entry/vdso/vdso32.so
  VDSO2C  arch/x86/entry/vdso/vdso-image-64.c
  VDSO2C  arch/x86/entry/vdso/vdso-image-32.c
  CC      arch/x86/entry/vdso/vdso-image-64.o
  CC      arch/x86/kernel/fpu/xstate.o
  CC      crypto/shash.o
  CC      arch/x86/mm/fault.o
  CC [M]  drivers/pinctrl/intel/pinctrl-cherryview.o
  AR      fs/notify/fanotify/built-in.a
  CC [M]  drivers/pinctrl/intel/pinctrl-broxton.o
  AR      lib/kunit/built-in.a
  CC      lib/math/div64.o
  CC      lib/math/gcd.o
  CC      sound/core/seq/seq_prioq.o
  CC      fs/notify/notification.o
  CC      fs/notify/group.o
  CC      lib/math/lcm.o
  CC      fs/proc/proc_tty.o
  CC      arch/x86/entry/vdso/vdso-image-32.o
  CC      lib/math/int_pow.o
  CC      crypto/akcipher.o
  CC      lib/math/int_sqrt.o
  CC      arch/x86/lib/cache-smp.o
  CC      fs/iomap/direct-io.o
  CC      lib/math/reciprocal_div.o
  CC      security/keys/permission.o
  CC      fs/iomap/fiemap.o
  CC      drivers/gpio/gpiolib-legacy.o
  CC      block/fops.o
  CC      arch/x86/kernel/cpu/mtrr/cleanup.o
  CC      arch/x86/lib/msr.o
  CC      lib/math/rational.o
  CC      arch/x86/pci/bus_numa.o
  AR      arch/x86/entry/vdso/built-in.a
  AS      arch/x86/entry/entry.o
  AS      arch/x86/entry/entry_64.o
  CC      arch/x86/pci/amd_bus.o
  CC      fs/proc/cmdline.o
  CC      arch/x86/entry/syscall_64.o
  CC      mm/maccess.o
  CC      mm/page-writeback.o
  CC      mm/folio-compat.o
  CC      io_uring/msg_ring.o
  CC      fs/notify/mark.o
  AR      mm/kasan/built-in.a
  CC      arch/x86/kernel/apic/apic_noop.o
  CC      fs/kernfs/file.o
  CC      arch/x86/entry/common.o
  CC      sound/core/seq/seq_timer.o
  CC      net/core/skbuff.o
  CC      kernel/irq/irqdesc.o
  CC      sound/core/seq/seq_system.o
  CC      fs/iomap/seek.o
  CC [M]  lib/math/prime_numbers.o
  CC      net/core/datagram.o
  CC      drivers/gpio/gpiolib-cdev.o
  CC      security/keys/process_keys.o
  CC [M]  drivers/pinctrl/intel/pinctrl-geminilake.o
  CC      sound/core/sound.o
  CC [M]  drivers/pinctrl/intel/pinctrl-sunrisepoint.o
  CC      crypto/kpp.o
  CC      arch/x86/kernel/apic/ipi.o
  CC      arch/x86/kernel/apic/vector.o
  CC      fs/iomap/swapfile.o
  CC      security/keys/request_key.o
  CC      kernel/sched/build_policy.o
  CC      fs/kernfs/symlink.o
  CC      crypto/acompress.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/vfio.o
  CC      kernel/irq/handle.o
  CC      kernel/locking/percpu-rwsem.o
  CC      fs/sysfs/file.o
  CC      kernel/power/poweroff.o
  AS      arch/x86/lib/msr-reg.o
  CC      net/sched/sch_mq.o
  CC      arch/x86/lib/msr-reg-export.o
  AR      arch/x86/pci/built-in.a
  CC      arch/x86/events/intel/knc.o
  CC      net/sched/sch_frag.o
  CC      kernel/locking/irqflag-debug.o
  CC      fs/sysfs/dir.o
  CC      arch/x86/mm/ioremap.o
  AR      arch/x86/kernel/fpu/built-in.a
  CC      fs/sysfs/symlink.o
  CC      io_uring/timeout.o
  CC      security/keys/request_key_auth.o
  AS      arch/x86/lib/hweight.o
  CC      arch/x86/kernel/apic/hw_nmi.o
  CC      sound/core/init.o
  AR      lib/math/built-in.a
  CC      security/keys/user_defined.o
  CC      arch/x86/lib/iomem.o
  CC      net/sched/sch_api.o
  CC      lib/crypto/memneq.o
  AR      arch/x86/kernel/cpu/mtrr/built-in.a
  CC      block/bio.o
  CC      sound/core/memory.o
  CC      arch/x86/kernel/cpu/cacheinfo.o
  AS      arch/x86/entry/thunk_64.o
  AR      drivers/pinctrl/intel/built-in.a
  AR      drivers/pinctrl/mediatek/built-in.a
  AR      kernel/power/built-in.a
  CC      fs/proc/consoles.o
  CC      sound/core/seq/seq_ports.o
  AR      drivers/pinctrl/mvebu/built-in.a
  CC      kernel/printk/printk_safe.o
  AS      arch/x86/entry/entry_64_compat.o
  AR      drivers/pinctrl/nomadik/built-in.a
  AR      drivers/pinctrl/nuvoton/built-in.a
  AR      drivers/pinctrl/sprd/built-in.a
  CC      arch/x86/entry/syscall_32.o
  AR      drivers/pinctrl/sunplus/built-in.a
  CC      lib/crypto/utils.o
  AR      drivers/pinctrl/ti/built-in.a
  CC      drivers/pinctrl/core.o
  CC      sound/core/seq/seq_info.o
  AS      arch/x86/lib/iomap_copy_64.o
  CC      fs/notify/fdinfo.o
  CC      sound/core/control.o
  CC      crypto/scompress.o
  CC      security/keys/compat.o
  CC      security/keys/proc.o
  AR      fs/kernfs/built-in.a
  CC      fs/configfs/inode.o
  CC      fs/devpts/inode.o
  AR      fs/iomap/built-in.a
  CC      kernel/sched/build_utility.o
  CC      kernel/irq/manage.o
  CC      arch/x86/lib/inat.o
  CC      kernel/locking/mutex-debug.o
  CC      fs/configfs/file.o
  CC      io_uring/sqpoll.o
  CC      sound/core/misc.o
  CC      sound/core/device.o
  AR      arch/x86/lib/built-in.a
  CC      arch/x86/kernel/cpu/scattered.o
  CC      security/keys/sysctl.o
  CC      kernel/locking/lockdep.o
  CC      arch/x86/kernel/cpu/topology.o
  AR      arch/x86/lib/lib.a
  CC      fs/sysfs/mount.o
  CC      arch/x86/events/utils.o
  CC      crypto/algboss.o
  CC      kernel/printk/printk_ringbuffer.o
  CC      fs/proc/cpuinfo.o
  CC      arch/x86/events/intel/lbr.o
  CC      lib/crypto/chacha.o
  CC      arch/x86/events/intel/p4.o
  CC      fs/configfs/dir.o
  CC      fs/sysfs/group.o
  CC      lib/crypto/aes.o
  AR      arch/x86/entry/built-in.a
  CC      fs/proc/devices.o
  CC      arch/x86/kernel/apic/io_apic.o
  CC      arch/x86/mm/extable.o
  CC      net/core/stream.o
  AR      fs/notify/built-in.a
  CC      fs/ext4/balloc.o
  AR      sound/core/seq/built-in.a
  CC      net/sched/sch_blackhole.o
  CC      net/sched/sch_fifo.o
  CC      net/core/scm.o
  CC      net/core/gen_stats.o
  CC      net/core/gen_estimator.o
  CC      fs/jbd2/transaction.o
  CC      net/core/net_namespace.o
  CC      crypto/testmgr.o
  CC      crypto/cmac.o
  CC      crypto/hmac.o
  CC      fs/configfs/symlink.o
  CC      net/netlink/af_netlink.o
  AR      security/keys/built-in.a
  AR      security/built-in.a
  CC      kernel/locking/lockdep_proc.o
  CC      kernel/locking/spinlock.o
  AR      fs/devpts/built-in.a
  CC      drivers/gpio/gpiolib-sysfs.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/coalesced_mmio.o
  CC      fs/ramfs/inode.o
  CC      arch/x86/kernel/cpu/common.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/async_pf.o
  CC      sound/core/info.o
  CC      kernel/rcu/update.o
  CC      sound/core/isadma.o
  CC      sound/core/vmaster.o
  CC      kernel/printk/sysctl.o
  CC      mm/readahead.o
  AR      net/bpf/built-in.a
  CC      net/ethtool/ioctl.o
  AR      fs/sysfs/built-in.a
  CC      fs/proc/interrupts.o
  CC      net/ethtool/common.o
  CC      lib/zlib_inflate/inffast.o
  CC      lib/crypto/gf128mul.o
  CC      drivers/pinctrl/pinctrl-utils.o
  CC      io_uring/fdinfo.o
  CC      drivers/pinctrl/pinmux.o
  AR      kernel/printk/built-in.a
  CC      fs/jbd2/commit.o
  CC      drivers/pinctrl/pinconf.o
  CC      block/elevator.o
  CC      arch/x86/mm/mmap.o
  CC      lib/zlib_inflate/inflate.o
  CC      fs/configfs/mount.o
  CC      mm/swap.o
  CC      sound/core/ctljack.o
  CC      sound/core/jack.o
  CC [M]  net/netfilter/ipvs/ip_vs_conn.o
  CC      kernel/irq/spurious.o
  CC      fs/ramfs/file-mmu.o
  CC      drivers/gpio/gpiolib-acpi.o
  CC      fs/proc/loadavg.o
  CC      arch/x86/events/intel/p6.o
  CC      net/netfilter/core.o
  CC [M]  net/netfilter/ipvs/ip_vs_core.o
  CC [M]  net/netfilter/ipvs/ip_vs_ctl.o
  CC [M]  net/netfilter/ipvs/ip_vs_sched.o
  CC      crypto/vmac.o
  CC      fs/configfs/item.o
  CC      fs/ext4/bitmap.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/irqchip.o
  CC      drivers/gpio/gpiolib-swnode.o
  CC      arch/x86/events/intel/pt.o
  CC      lib/crypto/blake2s.o
  CC      kernel/locking/osq_lock.o
  CC      kernel/irq/resend.o
  AR      kernel/livepatch/built-in.a
  CC      sound/core/timer.o
  CC      arch/x86/events/intel/uncore.o
  AR      net/sched/built-in.a
  CC      net/core/secure_seq.o
  CC      net/core/flow_dissector.o
  CC      crypto/xcbc.o
  CC      arch/x86/mm/pgtable.o
  CC      crypto/crypto_null.o
  CC      drivers/pinctrl/pinconf-generic.o
  AR      fs/ramfs/built-in.a
  CC      crypto/md5.o
  CC      fs/ext4/block_validity.o
  CC      fs/proc/meminfo.o
  CC      arch/x86/mm/physaddr.o
  CC      lib/zlib_inflate/infutil.o
  CC      arch/x86/mm/tlb.o
  CC      arch/x86/mm/cpu_entry_area.o
  AR      fs/configfs/built-in.a
  CC      lib/crypto/blake2s-generic.o
  CC      fs/proc/stat.o
  CC      kernel/dma/mapping.o
  CC      fs/ext4/dir.o
  CC      kernel/entry/common.o
  CC      arch/x86/events/intel/uncore_nhmex.o
  CC      arch/x86/kernel/cpu/rdrand.o
  CC      arch/x86/kernel/apic/msi.o
  CC      io_uring/tctx.o
  CC      kernel/irq/chip.o
  CC      block/blk-core.o
  CC      kernel/rcu/sync.o
  CC      fs/ext4/ext4_jbd2.o
  CC      fs/jbd2/recovery.o
  CC      lib/zlib_inflate/inftrees.o
  CC      arch/x86/kernel/cpu/match.o
  CC      fs/proc/uptime.o
  CC      kernel/irq/dummychip.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/dirty_ring.o
  CC      kernel/irq/devres.o
  CC      lib/zlib_deflate/deflate.o
  CC      lib/zlib_inflate/inflate_syms.o
  AR      drivers/pinctrl/built-in.a
  CC      crypto/sha1_generic.o
  CC [M]  net/netfilter/ipvs/ip_vs_xmit.o
  AR      drivers/gpio/built-in.a
  CC      crypto/sha256_generic.o
  CC      drivers/pci/msi/pcidev_msi.o
  CC      kernel/rcu/srcutree.o
  CC      drivers/pci/msi/api.o
  CC      drivers/pci/msi/msi.o
  CC      drivers/pci/pcie/portdrv.o
  CC      drivers/pci/hotplug/pci_hotplug_core.o
  CC      lib/crypto/blake2s-selftest.o
  AR      net/ipv4/netfilter/built-in.a
  CC [M]  net/ipv4/netfilter/nf_defrag_ipv4.o
  CC      arch/x86/kernel/cpu/bugs.o
  CC      block/blk-sysfs.o
  CC      kernel/entry/syscall_user_dispatch.o
  CC      kernel/entry/kvm.o
  CC      net/xfrm/xfrm_policy.o
  AR      lib/zlib_inflate/built-in.a
  CC      fs/proc/util.o
  CC      net/xfrm/xfrm_state.o
  CC      fs/ext4/extents.o
  CC      arch/x86/kernel/apic/x2apic_phys.o
  CC      kernel/module/main.o
  CC      net/xfrm/xfrm_hash.o
  CC      lib/crypto/des.o
  CC      arch/x86/mm/maccess.o
  CC      kernel/dma/direct.o
  CC      kernel/module/strict_rwx.o
  CC      io_uring/poll.o
  CC      crypto/sha512_generic.o
  CC      arch/x86/kernel/kprobes/core.o
  CC      arch/x86/mm/pgprot.o
  CC      arch/x86/kernel/kprobes/opt.o
  CC      net/ipv4/route.o
  CC      kernel/time/time.o
  CC      mm/truncate.o
  CC      kernel/time/timer.o
  CC      arch/x86/events/intel/uncore_snb.o
  CC      kernel/irq/autoprobe.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/pfncache.o
  CC      fs/jbd2/checkpoint.o
  CC      arch/x86/kernel/kprobes/ftrace.o
  CC      sound/core/hrtimer.o
  CC      fs/proc/version.o
  CC      fs/hugetlbfs/inode.o
  CC      net/ethtool/netlink.o
  CC      lib/zlib_deflate/deftree.o
  CC      kernel/dma/ops_helpers.o
  CC      net/netlink/genetlink.o
  CC      drivers/pci/pcie/rcec.o
  CC      arch/x86/kernel/apic/x2apic_cluster.o
  CC      drivers/pci/hotplug/acpi_pcihp.o
  CC      fs/proc/softirqs.o
  CC      arch/x86/mm/hugetlbpage.o
  CC      arch/x86/mm/kasan_init_64.o
  CC      fs/proc/namespaces.o
  AR      kernel/entry/built-in.a
  CC      drivers/pci/pcie/aspm.o
  CC      kernel/module/tree_lookup.o
  CC      drivers/pci/msi/irqdomain.o
  CC      lib/crypto/sha1.o
  CC      kernel/rcu/tree.o
  CC      kernel/irq/irqdomain.o
  CC [M]  net/ipv4/netfilter/nf_reject_ipv4.o
  CC      crypto/blake2b_generic.o
  CC      sound/core/seq_device.o
  CC      crypto/ecb.o
  CC [M]  net/ipv4/netfilter/ip_tables.o
  CC      net/netlink/policy.o
  CC      kernel/locking/qspinlock.o
  CC      net/ipv4/inetpeer.o
  CC      net/core/sysctl_net_core.o
  CC      net/core/dev.o
  CC      drivers/pci/hotplug/pciehp_core.o
  AR      arch/x86/kernel/kprobes/built-in.a
  CC [M]  net/netfilter/ipvs/ip_vs_app.o
  CC      kernel/futex/core.o
  CC      arch/x86/mm/pkeys.o
  CC      kernel/dma/dummy.o
  CC [M]  net/ipv4/netfilter/iptable_filter.o
  CC      lib/zlib_deflate/deflate_syms.o
  CC      arch/x86/events/intel/uncore_snbep.o
  CC      lib/crypto/sha256.o
  CC      arch/x86/kernel/apic/apic_flat_64.o
  CC      arch/x86/mm/pti.o
  CC      arch/x86/kernel/cpu/aperfmperf.o
  CC      mm/vmscan.o
  CC      kernel/futex/syscalls.o
  CC      kernel/irq/proc.o
  CC [M]  arch/x86/kvm/x86.o
  CC      net/core/dev_addr_lists.o
  CC      io_uring/cancel.o
  CC      fs/jbd2/revoke.o
  CC      kernel/time/hrtimer.o
  CC      kernel/time/timekeeping.o
  CC [M]  net/netfilter/ipvs/ip_vs_sync.o
  CC      fs/jbd2/journal.o
  CC      fs/proc/self.o
  CC      kernel/locking/rtmutex_api.o
  CC [M]  sound/core/control_led.o
  AR      drivers/pci/msi/built-in.a
  CC      mm/shmem.o
  AR      lib/zlib_deflate/built-in.a
  CC      block/blk-flush.o
  CC [M]  arch/x86/kvm/emulate.o
  CC      net/ethtool/bitset.o
  CC      crypto/cbc.o
  CC      kernel/dma/contiguous.o
  CC      crypto/pcbc.o
  AR      fs/hugetlbfs/built-in.a
  CC      crypto/cts.o
  CC      kernel/futex/pi.o
  CC      arch/x86/kernel/apic/probe_64.o
  CC [M]  lib/crypto/arc4.o
  CC      drivers/pci/hotplug/pciehp_ctrl.o
  CC      arch/x86/kernel/cpu/cpuid-deps.o
  CC      drivers/pci/pcie/aer.o
  CC      fs/proc/thread_self.o
  AR      arch/x86/mm/built-in.a
  CC      fs/proc/proc_sysctl.o
  CC [M]  sound/core/hwdep.o
  AR      arch/x86/kernel/apic/built-in.a
  CC      kernel/irq/migration.o
  CC      kernel/irq/cpuhotplug.o
  CC      crypto/lrw.o
  AR      kernel/sched/built-in.a
  CC      kernel/futex/requeue.o
  CC      net/unix/af_unix.o
  CC      drivers/pci/hotplug/pciehp_pci.o
  CC      kernel/time/ntp.o
  CC      io_uring/kbuf.o
  CC      fs/proc/proc_net.o
  CC      net/unix/garbage.o
  AR      lib/crypto/built-in.a
  CC      net/xfrm/xfrm_input.o
  LD [M]  lib/crypto/libarc4.o
  CC      lib/lzo/lzo1x_compress.o
  CC      net/netlink/diag.o
  CC [M]  net/ipv4/netfilter/iptable_mangle.o
  CC      arch/x86/kernel/cpu/umwait.o
  CC      kernel/module/debug_kmemleak.o
  CC [M]  net/ipv4/netfilter/iptable_nat.o
  CC      kernel/cgroup/cgroup.o
  CC      kernel/dma/swiotlb.o
  CC      block/blk-settings.o
  AR      net/ipv6/netfilter/built-in.a
  CC [M]  net/ipv6/netfilter/nf_defrag_ipv6_hooks.o
  CC      net/packet/af_packet.o
  CC      net/key/af_key.o
  AR      net/bridge/netfilter/built-in.a
  CC      net/bridge/br.o
  CC [M]  net/sunrpc/auth_gss/auth_gss.o
  CC      kernel/futex/waitwake.o
  CC      kernel/irq/pm.o
  CC      kernel/locking/spinlock_debug.o
  CC [M]  net/ipv6/netfilter/nf_conntrack_reasm.o
  CC      arch/x86/kernel/cpu/proc.o
  MKCAP   arch/x86/kernel/cpu/capflags.c
  CC      net/8021q/vlan_core.o
  CC      lib/lzo/lzo1x_decompress_safe.o
  CC      crypto/xts.o
  CC [M]  sound/core/pcm.o
  CC [M]  sound/core/pcm_native.o
  CC      drivers/pci/hotplug/pciehp_hpc.o
  CC      kernel/module/kallsyms.o
  AR      drivers/pci/controller/dwc/built-in.a
  AR      drivers/pci/controller/mobiveil/built-in.a
  CC      drivers/pci/controller/vmd.o
  CC      kernel/time/clocksource.o
  CC      kernel/cgroup/rstat.o
  CC      net/ethtool/strset.o
  CC      arch/x86/events/rapl.o
  CC      drivers/pci/pcie/err.o
  CC      kernel/locking/qrwlock.o
  AR      kernel/futex/built-in.a
  CC [M]  sound/core/pcm_lib.o
  CC      net/core/dst.o
  CC [M]  net/netfilter/ipvs/ip_vs_est.o
  AR      lib/lzo/built-in.a
  CC      net/packet/diag.o
  CC      lib/lz4/lz4_compress.o
  AR      net/netlink/built-in.a
  CC      lib/lz4/lz4hc_compress.o
  CC      lib/zstd/zstd_compress_module.o
  CC      block/blk-ioc.o
  CC      io_uring/rsrc.o
  CC      lib/zstd/compress/fse_compress.o
  CC      kernel/irq/msi.o
  CC [M]  net/ipv4/netfilter/ipt_REJECT.o
  CC      arch/x86/events/intel/uncore_discovery.o
  CC      lib/zstd/compress/hist.o
  CC      crypto/ctr.o
  AR      sound/pci/ac97/built-in.a
  CC      kernel/dma/remap.o
  AR      kernel/locking/built-in.a
  CC      net/bridge/br_device.o
  AR      sound/pci/ali5451/built-in.a
  CC      net/bridge/br_fdb.o
  AR      sound/pci/asihpi/built-in.a
  CC      kernel/trace/trace_clock.o
  AR      sound/pci/au88x0/built-in.a
  AR      sound/pci/aw2/built-in.a
  AR      sound/pci/ctxfi/built-in.a
  AR      sound/pci/ca0106/built-in.a
  CC      net/bridge/br_forward.o
  AR      sound/pci/cs46xx/built-in.a
  CC      fs/proc/kcore.o
  AR      sound/pci/cs5535audio/built-in.a
  AR      sound/pci/lola/built-in.a
  AR      sound/pci/lx6464es/built-in.a
  CC      fs/proc/kmsg.o
  CC      lib/zstd/compress/huf_compress.o
  AR      sound/pci/echoaudio/built-in.a
  AR      sound/pci/emu10k1/built-in.a
  CC      kernel/module/procfs.o
  CC      drivers/pci/pcie/aer_inject.o
  AR      sound/pci/hda/built-in.a
  CC [M]  sound/pci/hda/hda_bind.o
  CC      fs/proc/page.o
  AR      sound/pci/ice1712/built-in.a
  CC      net/xfrm/xfrm_output.o
  CC      kernel/time/jiffies.o
  CC      net/dcb/dcbnl.o
  CC      fs/ext4/extents_status.o
  CC      drivers/pci/hotplug/acpiphp_core.o
  AR      drivers/pci/controller/built-in.a
  CC      net/dcb/dcbevent.o
  CC      kernel/trace/ftrace.o
  CC [M]  net/8021q/vlan.o
  CC      net/ethtool/linkinfo.o
  CC      crypto/gcm.o
  CC      kernel/trace/ring_buffer.o
  CC      block/blk-map.o
  AR      fs/jbd2/built-in.a
  CC [M]  net/8021q/vlan_dev.o
  LD [M]  net/ipv6/netfilter/nf_defrag_ipv6.o
  AR      kernel/dma/built-in.a
  CC [M]  net/8021q/vlan_netlink.o
  CC      net/ipv6/af_inet6.o
  CC      kernel/cgroup/namespace.o
  CC [M]  sound/core/pcm_misc.o
  CC      kernel/time/timer_list.o
  CC      lib/xz/xz_dec_syms.o
  CC      lib/xz/xz_dec_stream.o
  CC      kernel/module/sysfs.o
  CC      net/ipv4/protocol.o
  CC      arch/x86/events/intel/cstate.o
  CC [M]  arch/x86/kvm/i8259.o
  CC [M]  sound/pci/hda/hda_codec.o
  CC      kernel/irq/affinity.o
  CC      drivers/pci/pcie/pme.o
  CC [M]  sound/pci/hda/hda_jack.o
  CC      lib/xz/xz_dec_lzma2.o
  CC      drivers/pci/hotplug/acpiphp_glue.o
  CC      lib/xz/xz_dec_bcj.o
  AR      fs/proc/built-in.a
  CC      fs/ext4/file.o
  CC [M]  net/netfilter/ipvs/ip_vs_proto.o
  CC      net/unix/sysctl_net_unix.o
  CC [M]  sound/core/pcm_memory.o
  CC [M]  sound/core/memalloc.o
  CC      lib/lz4/lz4_decompress.o
  CC [M]  net/sunrpc/auth_gss/gss_generic_token.o
  CC [M]  net/netfilter/ipvs/ip_vs_pe.o
  CC      net/bridge/br_if.o
  CC      fs/fat/cache.o
  CC      net/ipv4/ip_input.o
  CC      kernel/time/timeconv.o
  CC      net/ethtool/linkmodes.o
  AR      net/key/built-in.a
  AR      kernel/module/built-in.a
  CC      kernel/trace/trace.o
  CC      crypto/pcrypt.o
  CC      kernel/irq/matrix.o
  CC      io_uring/rw.o
  CC      io_uring/opdef.o
  CC      block/blk-merge.o
  CC      lib/zstd/compress/zstd_compress.o
  AR      arch/x86/events/intel/built-in.a
  CC      arch/x86/events/msr.o
  CC      fs/fat/dir.o
  CC      net/l3mdev/l3mdev.o
  CC      kernel/time/timecounter.o
  CC      mm/util.o
  CC      crypto/cryptd.o
  CC      drivers/pci/pcie/dpc.o
  CC      net/ethtool/rss.o
  CC [M]  net/8021q/vlanproc.o
  CC      kernel/time/alarmtimer.o
  AR      lib/xz/built-in.a
  CC      block/blk-timeout.o
  CC      kernel/rcu/rcu_segcblist.o
  CC      net/bridge/br_input.o
  CC [M]  net/sunrpc/auth_gss/gss_mech_switch.o
  CC      drivers/video/console/dummycon.o
  CC      net/xfrm/xfrm_sysctl.o
  CC      net/xfrm/xfrm_replay.o
  CC [M]  sound/pci/hda/hda_auto_parser.o
  CC      net/unix/diag.o
  CC      drivers/video/console/vgacon.o
  CC      fs/ext4/fsmap.o
  CC      arch/x86/kernel/cpu/powerflags.o
  AR      drivers/pci/hotplug/built-in.a
  CC [M]  sound/core/pcm_timer.o
  CC [M]  sound/pci/hda/hda_sysfs.o
  AR      drivers/pci/switch/built-in.a
  CC      net/ipv6/anycast.o
  CC      drivers/idle/intel_idle.o
  CC      fs/ext4/fsync.o
  AR      drivers/char/ipmi/built-in.a
  AR      net/dcb/built-in.a
  CC      fs/ext4/hash.o
  CC      fs/ext4/ialloc.o
  AR      arch/x86/events/built-in.a
  CC      arch/x86/kernel/cpu/feat_ctl.o
  AR      net/packet/built-in.a
  CC      kernel/cgroup/cgroup-v1.o
  CC      drivers/acpi/acpica/dsargs.o
  CC      drivers/pnp/pnpacpi/core.o
  CC      kernel/cgroup/freezer.o
  AR      lib/lz4/built-in.a
  CC      drivers/pnp/core.o
  CC      drivers/acpi/acpica/dscontrol.o
  AR      drivers/pci/pcie/built-in.a
  CC      drivers/pci/access.o
  CC      drivers/pci/bus.o
  AR      net/l3mdev/built-in.a
  AR      kernel/rcu/built-in.a
  CC [M]  net/netfilter/ipvs/ip_vs_proto_tcp.o
  CC [M]  net/netfilter/ipvs/ip_vs_proto_udp.o
  CC      lib/raid6/algos.o
  CC      net/xfrm/xfrm_device.o
  CC      drivers/pci/probe.o
  AR      net/8021q/built-in.a
  LD [M]  net/8021q/8021q.o
  CC      mm/mmzone.o
  CC      drivers/pnp/card.o
  LDS     arch/x86/kernel/vmlinux.lds
  AR      kernel/irq/built-in.a
  CC      net/bridge/br_ioctl.o
  CC      crypto/des_generic.o
  CC      net/ethtool/linkstate.o
  CC      crypto/aes_generic.o
  CC      arch/x86/kernel/cpu/intel.o
  CC      crypto/deflate.o
  LD [M]  sound/core/snd-ctl-led.o
  LD [M]  sound/core/snd-hwdep.o
  LD [M]  sound/core/snd-pcm.o
  CC [M]  sound/pci/hda/hda_controller.o
  CC      drivers/acpi/acpica/dsdebug.o
  CC      net/ipv4/ip_fragment.o
  AR      sound/core/built-in.a
  CC      kernel/time/posix-timers.o
  CC      net/ipv4/ip_forward.o
  CC      net/ipv4/ip_options.o
  CC      drivers/pnp/pnpacpi/rsparser.o
  CC      block/blk-lib.o
  CC      fs/ext4/indirect.o
  CC      drivers/pnp/driver.o
  CC      net/unix/scm.o
  CC      fs/fat/fatent.o
  CC      kernel/time/posix-cpu-timers.o
  AR      drivers/video/console/built-in.a
  CC      io_uring/notif.o
  CC      drivers/video/logo/logo.o
  CC      drivers/video/backlight/backlight.o
  CC      kernel/trace/trace_output.o
  CC      fs/fat/file.o
  CC      lib/raid6/recov.o
  CC      mm/vmstat.o
  CC      crypto/crc32c_generic.o
  CC [M]  net/sunrpc/auth_gss/svcauth_gss.o
  HOSTCC  drivers/video/logo/pnmtologo
  CC      net/sunrpc/clnt.o
  CC      drivers/acpi/acpica/dsfield.o
  CC      net/sunrpc/xprt.o
  CC [M]  sound/pci/hda/hda_proc.o
  AR      drivers/idle/built-in.a
  CC [M]  arch/x86/kvm/irq.o
  CC      crypto/crct10dif_common.o
  CC [M]  sound/pci/hda/hda_hwdep.o
  CC      drivers/pnp/resource.o
  CC      net/ipv6/ip6_output.o
  LOGO    drivers/video/logo/logo_linux_clut224.c
  CC      net/ipv4/ip_output.o
  CC      drivers/video/logo/logo_linux_clut224.o
  AR      drivers/video/logo/built-in.a
  CC      drivers/video/aperture.o
  CC      drivers/video/fbdev/core/fb_notify.o
  CC      kernel/cgroup/legacy_freezer.o
  CC      fs/ext4/inline.o
  CC      drivers/video/cmdline.o
  CC      kernel/time/posix-clock.o
  CC      net/ethtool/debug.o
  CC      fs/fat/inode.o
  CC      crypto/crct10dif_generic.o
  HOSTCC  lib/raid6/mktables
  CC      block/blk-mq.o
  CC      net/xfrm/xfrm_algo.o
  CC      drivers/acpi/acpica/dsinit.o
  CC [M]  net/netfilter/ipvs/ip_vs_nfct.o
  CC      net/xfrm/xfrm_user.o
  CC      arch/x86/kernel/cpu/intel_pconfig.o
  CC      net/bridge/br_stp.o
  AR      drivers/pnp/pnpacpi/built-in.a
  CC [M]  net/netfilter/ipvs/ip_vs_rr.o
  UNROLL  lib/raid6/int1.c
  UNROLL  lib/raid6/int2.c
  UNROLL  lib/raid6/int4.c
  UNROLL  lib/raid6/int8.c
  UNROLL  lib/raid6/int16.c
  UNROLL  lib/raid6/int32.c
  CC      lib/raid6/recov_ssse3.o
  AR      drivers/video/backlight/built-in.a
  CC      drivers/video/nomodeset.o
  CC      arch/x86/kernel/cpu/tsx.o
  CC [M]  sound/pci/hda/hda_generic.o
  CC      drivers/acpi/acpica/dsmethod.o
  AR      net/unix/built-in.a
  CC      io_uring/io-wq.o
  CC      net/ethtool/wol.o
  CC      net/ipv4/ip_sockglue.o
  CC      lib/zstd/compress/zstd_compress_literals.o
  CC      net/ipv4/inet_hashtables.o
  CC      net/ipv4/inet_timewait_sock.o
  CC      net/ethtool/features.o
  CC      crypto/authenc.o
  CC [M]  net/sunrpc/auth_gss/gss_rpc_upcall.o
  CC [M]  arch/x86/kvm/lapic.o
  CC      drivers/acpi/acpica/dsmthdat.o
  CC      kernel/time/itimer.o
  CC [M]  drivers/video/fbdev/core/fbmem.o
  CC      drivers/pci/host-bridge.o
  CC      kernel/cgroup/pids.o
  CC      drivers/acpi/apei/apei-base.o
  CC      kernel/cgroup/cpuset.o
  CC      net/devres.o
  CC [M]  net/bluetooth/af_bluetooth.o
  CC [M]  net/dns_resolver/dns_key.o
  CC      net/socket.o
  CC      drivers/pci/remove.o
  CC      drivers/pnp/manager.o
  CC      fs/ext4/inode.o
  CC      arch/x86/kernel/cpu/intel_epb.o
  CC      drivers/pci/pci.o
  CC      mm/backing-dev.o
  CC      net/compat.o
  CC      lib/raid6/recov_avx2.o
  CC      net/sysctl_net.o
  CC      lib/zstd/compress/zstd_compress_sequences.o
  CC      crypto/authencesn.o
  CC      net/core/netevent.o
  CC      drivers/acpi/acpica/dsobject.o
  CC      drivers/acpi/acpica/dsopcode.o
  CC [M]  net/dns_resolver/dns_query.o
  CC      fs/ext4/ioctl.o
  LD [M]  net/netfilter/ipvs/ip_vs.o
  CC      arch/x86/kernel/cpu/amd.o
  CC      drivers/pnp/support.o
  CC      net/netfilter/nf_log.o
  CC      net/netfilter/nf_queue.o
  CC      crypto/lzo.o
  CC      net/core/neighbour.o
  CC      lib/zstd/compress/zstd_compress_superblock.o
  AR      drivers/video/fbdev/omap/built-in.a
  CC      lib/zstd/compress/zstd_double_fast.o
  CC      net/bridge/br_stp_bpdu.o
  CC      fs/fat/misc.o
  CC      fs/fat/nfs.o
  CC      net/ethtool/privflags.o
  CC      net/bridge/br_stp_if.o
  CC      kernel/time/clockevents.o
  CC      fs/ext4/mballoc.o
  CC      lib/raid6/mmx.o
  CC      drivers/acpi/apei/hest.o
  CC      lib/raid6/sse1.o
  CC      fs/ext4/migrate.o
  CC      lib/raid6/sse2.o
  CC      drivers/acpi/acpica/dspkginit.o
  CC [M]  net/sunrpc/auth_gss/gss_rpc_xdr.o
  CC      drivers/acpi/acpica/dsutils.o
  CC      crypto/lzo-rle.o
  CC      kernel/trace/trace_seq.o
  CC      fs/ext4/mmp.o
  CC      drivers/pnp/interface.o
  CC      crypto/lz4.o
  CC      drivers/pnp/quirks.o
  CC      crypto/lz4hc.o
  LD [M]  net/dns_resolver/dns_resolver.o
  CC      net/bridge/br_stp_timer.o
  CC      drivers/pnp/system.o
  AR      io_uring/built-in.a
  CC      crypto/xxhash_generic.o
  CC [M]  drivers/video/fbdev/core/fbmon.o
  CC      net/ipv4/inet_connection_sock.o
  CC [M]  net/bluetooth/hci_core.o
  CC      net/ipv4/tcp.o
  CC      lib/fonts/fonts.o
  CC      arch/x86/kernel/cpu/hygon.o
  CC      lib/fonts/font_8x8.o
  CC      fs/fat/namei_vfat.o
  CC      kernel/time/tick-common.o
  CC      drivers/acpi/acpica/dswexec.o
  CC      drivers/acpi/acpica/dswload.o
  CC      lib/argv_split.o
  CC      drivers/acpi/apei/erst.o
  CC      drivers/acpi/acpica/dswload2.o
  CC      mm/mm_init.o
  CC      lib/raid6/avx2.o
  CC      kernel/trace/trace_stat.o
  AR      sound/ppc/built-in.a
  CC      lib/zstd/compress/zstd_fast.o
  AR      sound/arm/built-in.a
  CC      net/core/rtnetlink.o
  AR      sound/pci/korg1212/built-in.a
  CC      net/core/utils.o
  AR      sound/pci/mixart/built-in.a
  AR      sound/pci/nm256/built-in.a
  CC      lib/fonts/font_8x16.o
  AR      sound/pci/oxygen/built-in.a
  AR      sound/pci/pcxhr/built-in.a
  CC      net/netfilter/nf_sockopt.o
  CC      net/ethtool/rings.o
  CC [M]  sound/pci/hda/patch_realtek.o
  CC      crypto/rng.o
  CC      drivers/video/hdmi.o
  CC      lib/zstd/compress/zstd_lazy.o
  CC      fs/fat/namei_msdos.o
  CC      lib/zstd/compress/zstd_ldm.o
  AR      sound/pci/riptide/built-in.a
  CC      net/bridge/br_netlink.o
  CC      kernel/trace/trace_printk.o
  CC [M]  net/bluetooth/hci_conn.o
  CC      fs/ext4/move_extent.o
  CC      arch/x86/kernel/cpu/centaur.o
  AR      drivers/pnp/built-in.a
  AR      sound/pci/rme9652/built-in.a
  CC      net/netfilter/utils.o
  AR      net/xfrm/built-in.a
  AR      drivers/amba/built-in.a
  CC [M]  net/netfilter/nfnetlink.o
  CC      kernel/time/tick-broadcast.o
  AR      drivers/clk/actions/built-in.a
  CC      drivers/acpi/acpica/dswscope.o
  AR      drivers/clk/analogbits/built-in.a
  AR      drivers/clk/bcm/built-in.a
  AR      drivers/clk/imgtec/built-in.a
  AR      drivers/clk/imx/built-in.a
  AR      drivers/clk/ingenic/built-in.a
  AR      drivers/clk/mediatek/built-in.a
  AR      drivers/clk/microchip/built-in.a
  AR      drivers/clk/mstar/built-in.a
  AR      lib/fonts/built-in.a
  CC [M]  net/sunrpc/auth_gss/trace.o
  CC      kernel/time/tick-broadcast-hrtimer.o
  CC      lib/bug.o
  AR      drivers/clk/mvebu/built-in.a
  AR      drivers/clk/ralink/built-in.a
  AR      drivers/clk/renesas/built-in.a
  AR      drivers/clk/socfpga/built-in.a
  AR      drivers/clk/sprd/built-in.a
  AR      drivers/clk/sunxi-ng/built-in.a
  AR      drivers/clk/ti/built-in.a
  AR      drivers/clk/versatile/built-in.a
  CC      drivers/clk/x86/clk-lpss-atom.o
  CC      net/ipv6/ip6_input.o
  CC      mm/percpu.o
  CC      lib/raid6/avx512.o
  CC      drivers/clk/x86/clk-pmc-atom.o
  CC      lib/zstd/compress/zstd_opt.o
  CC      fs/ext4/namei.o
  CC      kernel/trace/pid_list.o
  CC      lib/zstd/zstd_decompress_module.o
  CC      drivers/acpi/acpica/dswstate.o
  CC      arch/x86/kernel/cpu/zhaoxin.o
  CC      crypto/drbg.o
  CC      net/ethtool/channels.o
  CC      kernel/time/tick-oneshot.o
  CC      drivers/pci/pci-driver.o
  CC      drivers/acpi/apei/bert.o
  CC      net/ipv6/addrconf.o
  CC      mm/slab_common.o
  CC      drivers/acpi/apei/ghes.o
  CC      drivers/pci/search.o
  CC [M]  drivers/video/fbdev/core/fbcmap.o
  CC [M]  net/netfilter/nf_conntrack_core.o
  AR      kernel/cgroup/built-in.a
  CC      net/ethtool/coalesce.o
  AR      fs/fat/built-in.a
  CC      arch/x86/kernel/cpu/perfctr-watchdog.o
  CC      net/ipv4/tcp_input.o
  CC      kernel/trace/trace_sched_switch.o
  CC      net/bridge/br_netlink_tunnel.o
  CC      lib/buildid.o
  CC      fs/nfs/client.o
  AR      drivers/clk/x86/built-in.a
  CC      fs/nfs/dir.o
  AR      drivers/clk/xilinx/built-in.a
  CC      drivers/clk/clk-devres.o
  CC      lib/cmdline.o
  CC      drivers/acpi/acpica/evevent.o
  CC      lib/raid6/recov_avx512.o
  CC      net/ipv4/tcp_output.o
  CC      kernel/time/tick-sched.o
  CC      block/blk-mq-tag.o
  CC      lib/cpumask.o
  CC [M]  net/netfilter/nf_conntrack_standalone.o
  CC      fs/nfs/file.o
  CC      fs/nfs/getroot.o
  CC [M]  net/netfilter/nf_conntrack_expect.o
  CC      drivers/pci/pci-sysfs.o
  CC      arch/x86/kernel/cpu/vmware.o
  CC      drivers/clk/clk-bulk.o
  CC      drivers/acpi/acpica/evgpe.o
  CC [M]  drivers/video/fbdev/uvesafb.o
  AR      drivers/video/fbdev/omap2/omapfb/dss/built-in.a
  AR      drivers/video/fbdev/omap2/omapfb/displays/built-in.a
  AR      drivers/video/fbdev/omap2/omapfb/built-in.a
  CC [M]  drivers/video/fbdev/core/fbsysfs.o
  AR      drivers/video/fbdev/omap2/built-in.a
  CC      block/blk-stat.o
  CC      net/ethtool/pause.o
  CC      net/bridge/br_arp_nd_proxy.o
  CC      kernel/trace/trace_functions.o
  TABLE   lib/raid6/tables.c
  CC      lib/raid6/int1.o
  CC      lib/ctype.o
  CC      fs/nfs/inode.o
  CC [M]  drivers/video/fbdev/core/modedb.o
  CC      net/bridge/br_sysfs_if.o
  AR      drivers/acpi/apei/built-in.a
  CC      net/bridge/br_sysfs_br.o
  CC      drivers/pci/rom.o
  CC      drivers/clk/clkdev.o
  CC      kernel/trace/trace_preemptirq.o
  CC      crypto/jitterentropy.o
  CC      drivers/acpi/acpica/evgpeblk.o
  CC      arch/x86/kernel/cpu/hypervisor.o
  CC      crypto/jitterentropy-kcapi.o
  CC      kernel/time/vsyscall.o
  CC      kernel/trace/trace_nop.o
  CC [M]  net/bluetooth/hci_event.o
  CC      net/core/link_watch.o
  CC [M]  net/sunrpc/auth_gss/gss_krb5_mech.o
  CC      arch/x86/kernel/cpu/mshyperv.o
  CC      block/blk-mq-sysfs.o
  CC      fs/exportfs/expfs.o
  CC      lib/raid6/int2.o
  CC      block/blk-mq-cpumap.o
  CC      fs/nfs/super.o
  CC [M]  sound/pci/hda/patch_analog.o
  CC      drivers/acpi/acpica/evgpeinit.o
  CC      kernel/time/timekeeping_debug.o
  CC      crypto/ghash-generic.o
  CC      drivers/clk/clk.o
  CC      kernel/trace/trace_functions_graph.o
  CC      kernel/trace/fgraph.o
  CC [M]  net/bluetooth/mgmt.o
  CC      net/ethtool/eee.o
  CC [M]  net/bluetooth/hci_sock.o
  CC [M]  arch/x86/kvm/i8254.o
  CC      drivers/pci/setup-res.o
  CC      fs/nfs/io.o
  CC      mm/compaction.o
  CC [M]  drivers/video/fbdev/core/fbcvt.o
  CC [M]  drivers/video/fbdev/core/fb_cmdline.o
  CC      fs/ext4/page-io.o
  CC [M]  net/bluetooth/hci_sysfs.o
  CC      kernel/trace/blktrace.o
  CC [M]  net/netfilter/nf_conntrack_helper.o
  CC      kernel/time/namespace.o
  CC      lib/raid6/int4.o
  CC      drivers/acpi/acpica/evgpeutil.o
  CC      lib/raid6/int8.o
  AR      fs/exportfs/built-in.a
  CC [M]  drivers/video/fbdev/simplefb.o
  CC      kernel/trace/trace_events.o
  CC      crypto/af_alg.o
  CC      arch/x86/kernel/cpu/capflags.o
  CC      fs/nfs/direct.o
  CC      block/blk-mq-sched.o
  CC [M]  net/sunrpc/auth_gss/gss_krb5_seal.o
  AR      arch/x86/kernel/cpu/built-in.a
  AS      arch/x86/kernel/head_64.o
  CC      block/ioctl.o
  CC      net/bridge/br_nf_core.o
  CC [M]  arch/x86/kvm/ioapic.o
  CC      crypto/algif_hash.o
  CC      arch/x86/kernel/head64.o
  CC      kernel/bpf/core.o
  CC      kernel/events/core.o
  CC      kernel/trace/trace_export.o
  CC      kernel/fork.o
  CC [M]  sound/pci/hda/patch_hdmi.o
  CC      drivers/acpi/acpica/evglock.o
  CC      drivers/pci/irq.o
  CC [M]  drivers/video/fbdev/core/fb_defio.o
  CC      net/ethtool/tsinfo.o
  CC      lib/dec_and_lock.o
  CC      lib/raid6/int16.o
  CC [M]  net/netfilter/nf_conntrack_proto.o
  AR      kernel/time/built-in.a
  CC      arch/x86/kernel/ebda.o
  CC      drivers/pci/vpd.o
  CC      fs/nfs/pagelist.o
  CC      net/ethtool/cabletest.o
  CC      drivers/acpi/acpica/evhandler.o
  CC      net/core/filter.o
  CC      fs/ext4/readpage.o
  CC      net/sunrpc/socklib.o
  CC [M]  net/bluetooth/l2cap_core.o
  CC      net/ethtool/tunnels.o
  CC      mm/interval_tree.o
  CC [M]  net/sunrpc/auth_gss/gss_krb5_unseal.o
  CC      drivers/acpi/acpica/evmisc.o
  CC [M]  drivers/video/fbdev/core/fbcon.o
  CC      net/ethtool/fec.o
  CC      lib/decompress.o
  CC      lib/decompress_bunzip2.o
  CC      net/sunrpc/xprtsock.o
  CC      drivers/acpi/acpica/evregion.o
  CC [M]  arch/x86/kvm/irq_comm.o
  CC      kernel/exec_domain.o
  CC      drivers/pci/setup-bus.o
  CC      net/core/sock_diag.o
  CC      lib/raid6/int32.o
  CC      drivers/acpi/acpica/evrgnini.o
  CC      net/bridge/br_multicast.o
  CC      net/ethtool/eeprom.o
  CC      block/genhd.o
  CC      arch/x86/kernel/platform-quirks.o
  CC      fs/nfs/read.o
  CC      crypto/algif_skcipher.o
  AR      drivers/acpi/pmic/built-in.a
  CC      drivers/acpi/acpica/evsci.o
  CC [M]  sound/pci/hda/hda_eld.o
  CC      arch/x86/kernel/process_64.o
  CC      net/bridge/br_mdb.o
  CC      net/ethtool/stats.o
  CC [M]  net/netfilter/nf_conntrack_proto_generic.o
  CC      fs/nfs/symlink.o
  CC [M]  net/sunrpc/auth_gss/gss_krb5_seqnum.o
  CC      kernel/panic.o
  CC [M]  net/bluetooth/l2cap_sock.o
  CC      kernel/cpu.o
  CC [M]  net/bluetooth/smp.o
  CC [M]  net/bluetooth/lib.o
  CC      lib/decompress_inflate.o
  CC      fs/ext4/resize.o
  CC      block/ioprio.o
  CC      lib/raid6/tables.o
  CC      drivers/pci/vc.o
  CC      drivers/acpi/acpica/evxface.o
  CC      drivers/pci/mmap.o
  CC      net/ethtool/phc_vclocks.o
  CC      net/bridge/br_multicast_eht.o
  CC [M]  arch/x86/kvm/cpuid.o
  CC      net/ethtool/mm.o
  CC      crypto/xor.o
  CC      net/ethtool/module.o
  CC      net/core/dev_ioctl.o
  CC [M]  net/sunrpc/auth_gss/gss_krb5_wrap.o
  AR      sound/sh/built-in.a
  CC      crypto/hash_info.o
  CC      fs/nfs/unlink.o
  CC      drivers/pci/setup-irq.o
  CC      net/sunrpc/sched.o
  CC      kernel/exit.o
  CC      drivers/acpi/acpica/evxfevnt.o
  CC      kernel/trace/trace_event_perf.o
  CC      lib/decompress_unlz4.o
  CC      net/ipv6/addrlabel.o
  AR      lib/raid6/built-in.a
  CC      drivers/acpi/dptf/int340x_thermal.o
  CC [M]  net/netfilter/nf_conntrack_proto_tcp.o
  CC [M]  sound/pci/hda/hda_intel.o
  CC [M]  net/netfilter/nf_conntrack_proto_udp.o
  CC      drivers/pci/proc.o
  CC      arch/x86/kernel/signal.o
  CC      net/sunrpc/auth.o
  CC      crypto/simd.o
  CC      block/badblocks.o
  CC [M]  net/bluetooth/ecdh_helper.o
  CC      net/ipv6/route.o
  CC      net/bridge/br_vlan.o
  CC [M]  drivers/video/fbdev/core/bitblit.o
  CC      mm/list_lru.o
  CC      net/ipv4/tcp_timer.o
  CC      net/ethtool/pse-pd.o
  CC      drivers/acpi/acpica/evxfgpe.o
  AR      kernel/bpf/built-in.a
  CC      kernel/softirq.o
  CC      kernel/resource.o
  CC      fs/nfs/write.o
  CC      lib/decompress_unlzma.o
  CC      drivers/clk/clk-divider.o
  AR      drivers/acpi/dptf/built-in.a
  CC [M]  net/sunrpc/auth_gss/gss_krb5_crypto.o
  CC      net/ipv6/ip6_fib.o
  CC      drivers/acpi/acpica/evxfregn.o
  CC      net/bridge/br_vlan_tunnel.o
  CC      lib/decompress_unlzo.o
  CC [M]  drivers/video/fbdev/core/softcursor.o
  CC [M]  crypto/md4.o
  CC      net/bridge/br_vlan_options.o
  CC      kernel/trace/trace_events_filter.o
  CC      kernel/sysctl.o
  CC      block/blk-rq-qos.o
  CC      drivers/pci/slot.o
  CC      net/bridge/br_mst.o
  CC      arch/x86/kernel/signal_64.o
  CC [M]  drivers/video/fbdev/core/tileblit.o
  AR      sound/synth/emux/built-in.a
  AR      sound/synth/built-in.a
  CC      drivers/dma/dw/core.o
  CC      drivers/acpi/acpica/exconcat.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
  AR      sound/usb/bcd2000/built-in.a
  AR      sound/usb/built-in.a
  CC      kernel/trace/trace_events_trigger.o
  CC      drivers/acpi/tables.o
  CC      lib/decompress_unxz.o
  CC      fs/ext4/super.o
  CC      lib/decompress_unzstd.o
  CC      drivers/clk/clk-fixed-factor.o
  AR      sound/firewire/built-in.a
  AR      drivers/soc/apple/built-in.a
  CC      kernel/capability.o
  CC      mm/workingset.o
  CC [M]  net/netfilter/nf_conntrack_proto_icmp.o
  AR      drivers/soc/aspeed/built-in.a
  CC [M]  net/netfilter/nf_conntrack_extend.o
  AR      drivers/soc/bcm/bcm63xx/built-in.a
  AR      drivers/soc/bcm/built-in.a
  AR      drivers/soc/fsl/built-in.a
  CC [M]  crypto/ccm.o
  AR      drivers/soc/fujitsu/built-in.a
  CC      net/ethtool/plca.o
  CC [M]  crypto/arc4.o
  AR      drivers/soc/imx/built-in.a
  AR      drivers/soc/ixp4xx/built-in.a
  AR      drivers/soc/loongson/built-in.a
  AR      drivers/soc/mediatek/built-in.a
  CC      mm/debug.o
  AR      drivers/soc/microchip/built-in.a
  AR      drivers/soc/nuvoton/built-in.a
  AR      drivers/soc/pxa/built-in.a
  AR      drivers/soc/amlogic/built-in.a
  AR      drivers/soc/qcom/built-in.a
  CC      drivers/acpi/acpica/exconfig.o
  AR      drivers/soc/renesas/built-in.a
  AR      drivers/soc/rockchip/built-in.a
  AR      drivers/soc/sifive/built-in.a
  AR      drivers/soc/sunxi/built-in.a
  AR      drivers/soc/ti/built-in.a
  AR      drivers/soc/xilinx/built-in.a
  AR      drivers/soc/built-in.a
  CC      drivers/virtio/virtio.o
  CC      drivers/pci/pci-acpi.o
  CC      block/disk-events.o
  CC [M]  arch/x86/kvm/pmu.o
  CC      arch/x86/kernel/traps.o
  CC [M]  net/sunrpc/auth_gss/gss_krb5_keys.o
  CC      drivers/virtio/virtio_ring.o
  CC [M]  drivers/video/fbdev/core/cfbfillrect.o
  CC      drivers/virtio/virtio_anchor.o
  CC      lib/zstd/decompress/huf_decompress.o
  LD [M]  sound/pci/hda/snd-hda-codec.o
  CC      drivers/acpi/acpica/exconvrt.o
  LD [M]  sound/pci/hda/snd-hda-codec-generic.o
  CC      drivers/clk/clk-fixed-rate.o
  CC      drivers/acpi/acpica/excreate.o
  CC      arch/x86/kernel/idt.o
  LD [M]  sound/pci/hda/snd-hda-codec-realtek.o
  LD [M]  sound/pci/hda/snd-hda-codec-analog.o
  LD [M]  sound/pci/hda/snd-hda-codec-hdmi.o
  CC      drivers/acpi/blacklist.o
  CC      net/sunrpc/auth_null.o
  LD [M]  sound/pci/hda/snd-hda-intel.o
  CC      net/ipv4/tcp_ipv4.o
  AR      sound/pci/trident/built-in.a
  AR      sound/pci/ymfpci/built-in.a
  AR      sound/pci/vx222/built-in.a
  AR      sound/pci/built-in.a
  CC      lib/dump_stack.o
  CC      drivers/acpi/osi.o
  LD [M]  net/sunrpc/auth_gss/auth_rpcgss.o
  AR      sound/sparc/built-in.a
  AR      sound/spi/built-in.a
  CC      kernel/ptrace.o
  AR      sound/parisc/built-in.a
  CC      kernel/user.o
  AR      sound/pcmcia/vx/built-in.a
  CC      kernel/signal.o
  CC      lib/earlycpio.o
  AR      sound/pcmcia/pdaudiocf/built-in.a
  AR      sound/pcmcia/built-in.a
  AR      sound/mips/built-in.a
  CC      mm/gup.o
  AR      sound/soc/built-in.a
  AR      sound/atmel/built-in.a
  AR      sound/hda/built-in.a
  CC [M]  sound/hda/hda_bus_type.o
  CC      kernel/sys.o
  CC      fs/ext4/symlink.o
  CC [M]  sound/hda/hdac_bus.o
  CC [M]  sound/hda/hdac_device.o
  AR      sound/x86/built-in.a
  CC      kernel/umh.o
  CC [M]  net/bluetooth/hci_request.o
  CC      kernel/trace/trace_eprobe.o
  CC      drivers/dma/dw/dw.o
  CC      drivers/acpi/acpica/exdebug.o
  CC [M]  net/bluetooth/mgmt_util.o
  CC      drivers/clk/clk-gate.o
  AR      net/ethtool/built-in.a
  CC      drivers/acpi/acpica/exdump.o
  CC      kernel/trace/trace_kprobe.o
  CC [M]  crypto/ecc.o
  AR      sound/xen/built-in.a
  CC      drivers/virtio/virtio_pci_modern_dev.o
  CC      block/blk-ia-ranges.o
  CC      block/bsg.o
  CC [M]  net/netfilter/nf_conntrack_acct.o
  CC      kernel/workqueue.o
  CC      kernel/pid.o
  CC [M]  crypto/essiv.o
  CC [M]  drivers/video/fbdev/core/cfbcopyarea.o
  LD [M]  net/sunrpc/auth_gss/rpcsec_gss_krb5.o
  CC      drivers/acpi/osl.o
  CC      block/bsg-lib.o
  CC      arch/x86/kernel/irq.o
  CC [M]  net/bridge/br_netfilter_hooks.o
  CC      drivers/pci/quirks.o
  CC      drivers/acpi/acpica/exfield.o
  CC [M]  net/netfilter/nf_conntrack_seqadj.o
  CC [M]  drivers/video/fbdev/core/cfbimgblt.o
  CC      net/core/tso.o
  CC      net/ipv4/tcp_minisocks.o
  CC      drivers/clk/clk-multiplier.o
  CC      drivers/clk/clk-mux.o
  CC [M]  arch/x86/kvm/mtrr.o
  CC      drivers/dma/dw/idma32.o
  CC      arch/x86/kernel/irq_64.o
  CC      kernel/task_work.o
  CC      block/blk-cgroup.o
  CC      fs/ext4/sysfs.o
  CC      drivers/clk/clk-composite.o
  CC      drivers/clk/clk-fractional-divider.o
  CC [M]  sound/hda/hdac_sysfs.o
  CC      fs/nfs/namespace.o
  CC      drivers/acpi/acpica/exfldio.o
  CC      net/sunrpc/auth_unix.o
  CC      net/core/sock_reuseport.o
  CC      kernel/trace/error_report-traces.o
  CC      drivers/virtio/virtio_pci_legacy_dev.o
  CC      drivers/clk/clk-gpio.o
  CC [M]  net/bluetooth/mgmt_config.o
  CC      block/blk-cgroup-rwstat.o
  CC [M]  arch/x86/kvm/hyperv.o
  CC [M]  drivers/video/fbdev/core/sysfillrect.o
  CC      fs/nfs/mount_clnt.o
  CC      drivers/virtio/virtio_mmio.o
  CC      arch/x86/kernel/dumpstack_64.o
  CC      drivers/dma/dw/acpi.o
  CC      lib/extable.o
  CC      lib/zstd/decompress/zstd_ddict.o
  CC      lib/zstd/decompress/zstd_decompress.o
  CC      block/blk-throttle.o
  CC [M]  crypto/ecdh.o
  AR      sound/virtio/built-in.a
  CC      drivers/acpi/utils.o
  CC      drivers/acpi/acpica/exmisc.o
  CC      lib/zstd/decompress/zstd_decompress_block.o
  CC      net/core/fib_notifier.o
  CC [M]  crypto/ecdh_helper.o
  CC      sound/sound_core.o
  CC      sound/last.o
  CC      drivers/dma/hsu/hsu.o
  AR      drivers/clk/built-in.a
  CC [M]  arch/x86/kvm/debugfs.o
  CC      drivers/virtio/virtio_pci_modern.o
  CC      drivers/virtio/virtio_pci_common.o
  CC [M]  arch/x86/kvm/mmu/mmu.o
  CC [M]  sound/hda/hdac_regmap.o
  CC [M]  net/netfilter/nf_conntrack_proto_icmpv6.o
  CC [M]  net/netfilter/nf_conntrack_proto_dccp.o
  CC      block/mq-deadline.o
  CC      net/core/xdp.o
  CC      net/core/flow_offload.o
  AR      crypto/built-in.a
  CC      net/core/gro.o
  CC      drivers/virtio/virtio_pci_legacy.o
  CC      drivers/acpi/acpica/exmutex.o
  CC      drivers/dma/dw/pci.o
  CC [M]  net/netfilter/nf_conntrack_proto_sctp.o
  CC      arch/x86/kernel/time.o
  LD [M]  crypto/ecdh_generic.o
  CC      fs/nfs/nfstrace.o
  CC      kernel/trace/power-traces.o
  CC      kernel/trace/rpm-traces.o
  AR      drivers/dma/idxd/built-in.a
  CC      kernel/trace/trace_dynevent.o
  CC      net/ipv4/tcp_cong.o
  CC [M]  drivers/video/fbdev/core/syscopyarea.o
  CC      kernel/trace/trace_probe.o
  CC [M]  net/bluetooth/hci_codec.o
  CC      mm/mmap_lock.o
  CC      fs/nfs/export.o
  CC      block/kyber-iosched.o
  CC      drivers/acpi/reboot.o
  CC      net/core/netdev-genl.o
  CC [M]  drivers/virtio/virtio_mem.o
  CC      drivers/acpi/acpica/exnames.o
  CC      drivers/acpi/nvs.o
  CC      drivers/pci/ats.o
  CC      arch/x86/kernel/ioport.o
  AR      drivers/dma/hsu/built-in.a
  AR      drivers/dma/mediatek/built-in.a
  CC [M]  sound/hda/hdac_controller.o
  CC      kernel/extable.o
  CC      drivers/acpi/wakeup.o
  CC      drivers/acpi/sleep.o
  CC      net/ipv4/tcp_metrics.o
  CC [M]  net/bridge/br_netfilter_ipv6.o
  AR      drivers/dma/dw/built-in.a
  AR      drivers/dma/qcom/built-in.a
  CC      drivers/tty/vt/vt_ioctl.o
  AR      drivers/dma/ti/built-in.a
  AR      drivers/dma/xilinx/built-in.a
  CC      drivers/char/hw_random/core.o
  CC [M]  drivers/dma/ioat/init.o
  CC      drivers/char/hw_random/intel-rng.o
  CC      drivers/tty/vt/vc_screen.o
  CC      drivers/tty/vt/selection.o
  CC      kernel/events/ring_buffer.o
  CC      block/bfq-iosched.o
  CC      drivers/acpi/acpica/exoparg1.o
  CC      drivers/char/agp/backend.o
  CC      block/bfq-wf2q.o
  CC      drivers/char/agp/generic.o
  CC [M]  arch/x86/kvm/mmu/page_track.o
  CC [M]  drivers/video/fbdev/core/sysimgblt.o
  CC      lib/flex_proportions.o
  CC      lib/idr.o
  CC      drivers/acpi/device_sysfs.o
  AR      drivers/iommu/amd/built-in.a
  CC      drivers/iommu/intel/dmar.o
  AR      drivers/gpu/host1x/built-in.a
  AR      drivers/gpu/drm/tests/built-in.a
  CC [M]  drivers/gpu/drm/tests/drm_kunit_helpers.o
  CC      drivers/pci/iov.o
  CC [M]  net/bluetooth/eir.o
  CC      arch/x86/kernel/dumpstack.o
  CC      mm/highmem.o
  CC [M]  net/netfilter/nf_conntrack_netlink.o
  CC      drivers/iommu/intel/iommu.o
  CC [M]  sound/hda/hdac_stream.o
  CC      kernel/params.o
  CC      lib/irq_regs.o
  AR      drivers/gpu/drm/arm/built-in.a
  AR      drivers/gpu/drm/display/built-in.a
  CC      drivers/acpi/acpica/exoparg2.o
  AR      drivers/char/hw_random/built-in.a
  CC [M]  drivers/gpu/drm/display/drm_display_helper_mod.o
  CC      net/ipv4/tcp_fastopen.o
  AR      drivers/gpu/drm/rcar-du/built-in.a
  CC      kernel/trace/trace_uprobe.o
  CC [M]  sound/hda/array.o
  CC      kernel/kthread.o
  CC      lib/is_single_threaded.o
  CC      net/ipv6/ipv6_sockglue.o
  CC      drivers/iommu/intel/pasid.o
  CC      kernel/trace/rethook.o
  AR      drivers/gpu/drm/omapdrm/built-in.a
  CC [M]  sound/hda/hdmi_chmap.o
  CC      drivers/tty/vt/keyboard.o
  CC      drivers/acpi/acpica/exoparg3.o
  CC      net/core/netdev-genl-gen.o
  CC [M]  drivers/gpu/drm/tests/drm_buddy_test.o
  CC      drivers/tty/vt/consolemap.o
  CC      drivers/acpi/device_pm.o
  HOSTCC  drivers/tty/vt/conmakehash
  CC      net/ipv4/tcp_rate.o
  AR      drivers/gpu/drm/tilcdc/built-in.a
  CC      block/bfq-cgroup.o
  AR      drivers/gpu/drm/imx/built-in.a
  CC      net/ipv4/tcp_recovery.o
  CC      net/sunrpc/svc.o
  CC [M]  drivers/dma/ioat/dma.o
  CC [M]  drivers/gpu/drm/display/drm_dp_dual_mode_helper.o
  AR      net/bridge/built-in.a
  CC      lib/klist.o
  LD [M]  net/bridge/br_netfilter.o
  CC      net/ipv4/tcp_ulp.o
  CC      net/core/net-sysfs.o
  CC [M]  sound/hda/trace.o
  CC [M]  drivers/video/fbdev/core/fb_sys_fops.o
  CC      mm/memory.o
  CC [M]  drivers/gpu/drm/tests/drm_cmdline_parser_test.o
  CC      lib/kobject.o
  CC      arch/x86/kernel/nmi.o
  CC      net/ipv4/tcp_offload.o
  AR      drivers/gpu/drm/i2c/built-in.a
  CC      kernel/events/callchain.o
  CC      block/blk-mq-pci.o
  CC      net/ipv6/ndisc.o
  CC      drivers/acpi/acpica/exoparg6.o
  CC      drivers/char/agp/isoch.o
  AR      drivers/virtio/built-in.a
  CC      drivers/connector/cn_queue.o
  CC      drivers/base/power/sysfs.o
  CC      drivers/pci/pci-label.o
  CC      drivers/block/loop.o
  CC      drivers/block/virtio_blk.o
  CC [M]  net/bluetooth/hci_sync.o
  CC [M]  drivers/block/nbd.o
  CC      drivers/base/firmware_loader/builtin/main.o
  CC      net/core/net-procfs.o
  CC      drivers/base/firmware_loader/main.o
  CC      drivers/acpi/acpica/exprep.o
  CC      drivers/tty/vt/vt.o
  CC      drivers/iommu/intel/trace.o
  CC [M]  drivers/gpu/drm/display/drm_dp_helper.o
  CC [M]  drivers/gpu/drm/display/drm_dp_mst_topology.o
  CC      lib/kobject_uevent.o
  LD [M]  drivers/video/fbdev/core/fb.o
  AR      drivers/base/firmware_loader/builtin/built-in.a
  CC      drivers/base/power/generic_ops.o
  CC      kernel/sys_ni.o
  CC      kernel/events/hw_breakpoint.o
  CC [M]  sound/hda/hdac_component.o
  AR      drivers/video/fbdev/core/built-in.a
  AR      drivers/video/fbdev/built-in.a
  CC      kernel/nsproxy.o
  AR      drivers/video/built-in.a
  CC      drivers/connector/connector.o
  CC      drivers/base/regmap/regmap.o
  CC      drivers/acpi/proc.o
  CC      arch/x86/kernel/ldt.o
  CC      drivers/base/regmap/regcache.o
  CC      net/ipv4/tcp_plb.o
  AR      drivers/base/test/built-in.a
  CC      drivers/connector/cn_proc.o
  CC      drivers/pci/pci-stub.o
  CC      drivers/char/agp/intel-agp.o
  CC      drivers/mfd/mfd-core.o
  AR      drivers/misc/eeprom/built-in.a
  AR      drivers/misc/cb710/built-in.a
  AR      drivers/misc/ti-st/built-in.a
  AR      drivers/misc/lis3lv02d/built-in.a
  AR      drivers/misc/cardreader/built-in.a
  CC      drivers/mfd/intel-lpss.o
  CC [M]  drivers/misc/mei/hdcp/mei_hdcp.o
  CC      drivers/mfd/intel-lpss-pci.o
  CC      drivers/acpi/acpica/exregion.o
  CC [M]  drivers/dma/ioat/prep.o
  COPY    drivers/tty/vt/defkeymap.c
  CONMK   drivers/tty/vt/consolemap_deftbl.c
  CC      drivers/tty/vt/defkeymap.o
  CC      drivers/base/power/common.o
  AR      drivers/gpu/vga/built-in.a
  CC      drivers/base/power/qos.o
  CC      arch/x86/kernel/setup.o
  AR      kernel/trace/built-in.a
  CC [M]  drivers/gpu/drm/display/drm_dsc_helper.o
  CC      net/core/netpoll.o
  CC      drivers/char/agp/intel-gtt.o
  CC [M]  sound/hda/hdac_i915.o
  CC      drivers/acpi/acpica/exresnte.o
  CC      drivers/pci/vgaarb.o
  CC [M]  drivers/misc/mei/pxp/mei_pxp.o
  CC [M]  drivers/gpu/drm/tests/drm_connector_test.o
  AR      drivers/base/firmware_loader/built-in.a
  CC      drivers/acpi/bus.o
  CC      lib/logic_pio.o
  CC      drivers/iommu/intel/cap_audit.o
  CC      drivers/mfd/intel-lpss-acpi.o
  CC [M]  drivers/gpu/drm/tests/drm_damage_helper_test.o
  CC      drivers/acpi/glue.o
  CC      drivers/acpi/acpica/exresolv.o
  CC      lib/zstd/zstd_common_module.o
  CC      drivers/base/component.o
  CC [M]  drivers/gpu/drm/display/drm_hdcp_helper.o
  CC [M]  drivers/gpu/drm/tests/drm_dp_mst_helper_test.o
  CC [M]  net/netfilter/nf_nat_core.o
  CC      drivers/mfd/intel_soc_pmic_crc.o
  CC      lib/maple_tree.o
  CC      drivers/acpi/scan.o
  CC      drivers/tty/vt/consolemap_deftbl.o
  CC      net/sunrpc/svcsock.o
  CC [M]  drivers/gpu/drm/display/drm_hdmi_helper.o
  CC [M]  drivers/gpu/drm/display/drm_scdc_helper.o
  CC [M]  drivers/mfd/lpc_sch.o
  CC      drivers/acpi/resource.o
  CC      drivers/base/regmap/regcache-rbtree.o
  CC      net/ipv4/datagram.o
  CC      net/ipv4/raw.o
  AR      drivers/connector/built-in.a
  CC [M]  drivers/gpu/drm/tests/drm_format_helper_test.o
  CC      block/blk-mq-virtio.o
  CC      lib/zstd/common/debug.o
  CC      lib/zstd/common/entropy_common.o
  CC      kernel/events/uprobes.o
  CC      drivers/acpi/acpica/exresop.o
  CC [M]  drivers/dma/ioat/dca.o
  AR      drivers/misc/built-in.a
  CC [M]  drivers/gpu/drm/display/drm_dp_aux_dev.o
  CC [M]  drivers/mfd/lpc_ich.o
  CC [M]  sound/hda/intel-dsp-config.o
  CC      lib/memcat_p.o
  CC [M]  drivers/misc/mei/init.o
  CC      block/blk-mq-debugfs.o
  CC      drivers/base/power/runtime.o
  CC      block/blk-pm.o
  CC      arch/x86/kernel/x86_init.o
  CC      lib/zstd/common/error_private.o
  CC      lib/zstd/common/fse_decompress.o
  AR      drivers/char/agp/built-in.a
  CC      net/ipv6/udp.o
  CC      fs/nfs/sysfs.o
  CC      fs/nfs/fs_context.o
  CC      drivers/char/tpm/tpm-chip.o
  CC      drivers/iommu/intel/irq_remapping.o
  CC      drivers/iommu/intel/perfmon.o
  CC      drivers/char/tpm/tpm-dev-common.o
  CC      fs/nfs/sysctl.o
  CC      drivers/base/core.o
  CC      lib/nmi_backtrace.o
  CC      net/sunrpc/svcauth.o
  AR      drivers/gpu/drm/panel/built-in.a
  CC      drivers/acpi/acpica/exserial.o
  CC      net/ipv6/udplite.o
  CC [M]  net/bluetooth/sco.o
  CC      drivers/acpi/acpi_processor.o
  AR      drivers/pci/built-in.a
  CC      net/sunrpc/svcauth_unix.o
  CC      block/holder.o
  CC      fs/lockd/clntlock.o
  CC      net/sunrpc/addr.o
  CC      fs/lockd/clntproc.o
  CC      drivers/base/regmap/regcache-flat.o
  CC [M]  drivers/dma/ioat/sysfs.o
  AR      drivers/block/built-in.a
  CC [M]  sound/hda/intel-nhlt.o
  AR      drivers/nfc/built-in.a
  AR      drivers/dax/hmem/built-in.a
  CC [M]  drivers/misc/mei/hbm.o
  CC      drivers/dax/super.o
  CC [M]  drivers/gpu/drm/tests/drm_format_test.o
  AR      drivers/mfd/built-in.a
  CC      drivers/dax/bus.o
  CC      net/core/fib_rules.o
  CC      drivers/acpi/processor_core.o
  CC      arch/x86/kernel/i8259.o
  CC      drivers/acpi/acpica/exstore.o
  CC      arch/x86/kernel/irqinit.o
  CC      drivers/base/power/wakeirq.o
  CC      drivers/base/power/main.o
  CC      net/sunrpc/rpcb_clnt.o
  CC      drivers/char/tpm/tpm-dev.o
  AR      drivers/tty/vt/built-in.a
  CC      drivers/tty/hvc/hvc_console.o
  CC      drivers/dma-buf/dma-buf.o
  AR      drivers/cxl/core/built-in.a
  CC      lib/zstd/common/zstd_common.o
  AR      drivers/cxl/built-in.a
  CC      drivers/base/regmap/regmap-debugfs.o
  AR      block/built-in.a
  CC      fs/nls/nls_base.o
  CC [M]  net/netfilter/nf_nat_proto.o
  AR      fs/unicode/built-in.a
  CC      drivers/acpi/processor_pdc.o
  AR      lib/zstd/built-in.a
  CC      net/sunrpc/timer.o
  CC      drivers/acpi/ec.o
  CC [M]  net/bluetooth/iso.o
  CC      net/ipv6/raw.o
  CC [M]  sound/hda/intel-sdw-acpi.o
  LD [M]  drivers/dma/ioat/ioatdma.o
  CC      drivers/acpi/acpica/exstoren.o
  CC      drivers/dma/dmaengine.o
  LD [M]  sound/hda/snd-hda-core.o
  CC      fs/ntfs/aops.o
  CC      arch/x86/kernel/jump_label.o
  LD [M]  sound/hda/snd-intel-dspcfg.o
  CC      net/sunrpc/xdr.o
  CC      fs/ntfs/attrib.o
  CC      net/ipv6/icmp.o
  CC      drivers/tty/serial/8250/8250_core.o
  CC      drivers/dma-buf/dma-fence.o
  CC      drivers/tty/serial/8250/8250_pnp.o
  CC      net/ipv4/udp.o
  CC      arch/x86/kernel/irq_work.o
  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
  AR      drivers/iommu/arm/built-in.a
  AR      drivers/iommu/iommufd/built-in.a
  CC      drivers/tty/serial/serial_core.o
  LD [M]  drivers/gpu/drm/display/drm_display_helper.o
  CC      drivers/iommu/iommu.o
  CC      fs/nls/nls_cp437.o
  CC      drivers/acpi/dock.o
  CC      arch/x86/kernel/probe_roms.o
  CC      drivers/char/tpm/tpm-interface.o
  CC [M]  drivers/gpu/drm/tests/drm_framebuffer_test.o
  CC [M]  arch/x86/kvm/mmu/spte.o
  CC      drivers/acpi/acpica/exstorob.o
  CC [M]  drivers/misc/mei/interrupt.o
  AR      kernel/events/built-in.a
  CC      kernel/notifier.o
  CC      fs/lockd/clntxdr.o
  CC      drivers/iommu/iommu-traces.o
  LD [M]  sound/hda/snd-intel-sdw-acpi.o
  AR      sound/built-in.a
  CC      net/sunrpc/sunrpc_syms.o
  CC      drivers/acpi/pci_root.o
  CC      drivers/base/regmap/regmap-i2c.o
  CC      fs/nls/nls_ascii.o
  CC      fs/ext4/xattr.o
  CC      fs/ext4/xattr_hurd.o
  AR      drivers/dax/built-in.a
  CC      drivers/char/tpm/tpm1-cmd.o
  CC      arch/x86/kernel/sys_ia32.o
  CC      drivers/char/tpm/tpm2-cmd.o
  AR      drivers/tty/hvc/built-in.a
  CC      drivers/iommu/iommu-sysfs.o
  AR      drivers/gpu/drm/bridge/analogix/built-in.a
  AR      drivers/gpu/drm/bridge/cadence/built-in.a
  AR      drivers/gpu/drm/bridge/imx/built-in.a
  AR      drivers/gpu/drm/bridge/synopsys/built-in.a
  AR      drivers/gpu/drm/bridge/built-in.a
  CC      drivers/char/mem.o
  CC      fs/nfs/nfs2super.o
  CC      drivers/char/random.o
  CC      drivers/char/tpm/tpmrm-dev.o
  CC      drivers/acpi/acpica/exsystem.o
  CC      fs/lockd/host.o
  CC [M]  drivers/gpu/drm/tests/drm_managed_test.o
  CC      drivers/dma-buf/dma-fence-array.o
  CC      fs/nls/nls_iso8859-1.o
  CC      arch/x86/kernel/signal_32.o
  AR      drivers/gpu/drm/hisilicon/built-in.a
  CC      arch/x86/kernel/sys_x86_64.o
  AR      drivers/gpu/drm/mxsfb/built-in.a
  CC      arch/x86/kernel/espfix_64.o
  AR      drivers/tty/ipwireless/built-in.a
  CC      fs/ntfs/collate.o
  CC      fs/ntfs/compress.o
  CC      net/core/net-traces.o
  CC      kernel/ksysfs.o
  CC      fs/lockd/svc.o
  CC      mm/mincore.o
  CC      drivers/tty/serial/8250/8250_port.o
  CC      drivers/acpi/acpica/extrace.o
  CC      drivers/iommu/dma-iommu.o
  CC      fs/ext4/xattr_trusted.o
  CC [M]  net/netfilter/nf_nat_helper.o
  CC [M]  drivers/misc/mei/client.o
  CC      fs/ext4/xattr_user.o
  CC [M]  arch/x86/kvm/mmu/tdp_iter.o
  CC      drivers/char/tpm/tpm2-space.o
  CC      drivers/dma/virt-dma.o
  CC      fs/nls/nls_utf8.o
  CC      drivers/base/regmap/regmap-irq.o
  CC      drivers/acpi/pci_link.o
  CC [M]  drivers/gpu/drm/tests/drm_mm_test.o
  CC      kernel/cred.o
  CC      net/core/selftests.o
  CC      mm/mlock.o
  CC      mm/mmap.o
  CC      mm/mmu_gather.o
  CC      drivers/base/power/wakeup.o
  CC      drivers/iommu/ioasid.o
  CC [M]  net/netfilter/nf_nat_redirect.o
  CC      drivers/dma-buf/dma-fence-chain.o
  CC      mm/mprotect.o
  CC      drivers/acpi/acpica/exutils.o
  AR      drivers/gpu/drm/tiny/built-in.a
  AR      drivers/gpu/drm/xlnx/built-in.a
  CC [M]  net/bluetooth/a2mp.o
  CC      fs/ext4/fast_commit.o
  CC [M]  net/bluetooth/amp.o
  CC      drivers/base/bus.o
  CC      fs/nfs/proc.o
  CC      drivers/char/tpm/tpm-sysfs.o
  CC      kernel/reboot.o
  AR      fs/nls/built-in.a
  AR      drivers/gpu/drm/gud/built-in.a
  AR      drivers/gpu/drm/solomon/built-in.a
  CC [M]  drivers/gpu/drm/ttm/ttm_tt.o
  CC [M]  drivers/gpu/drm/scheduler/sched_main.o
  CC      arch/x86/kernel/ksysfs.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_drv.o
  CC [M]  drivers/gpu/drm/i915/i915_driver.o
  CC      net/ipv6/mcast.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_device.o
  AR      drivers/macintosh/built-in.a
  CC [M]  net/bluetooth/hci_debugfs.o
  CC      drivers/dma/acpi-dma.o
  CC [M]  net/netfilter/nf_nat_masquerade.o
  CC      fs/autofs/init.o
  CC      drivers/acpi/acpica/hwacpi.o
  CC      fs/debugfs/inode.o
  CC      drivers/dma-buf/dma-fence-unwrap.o
  CC [M]  arch/x86/kvm/mmu/tdp_mmu.o
  CC      fs/debugfs/file.o
  CC      drivers/dma-buf/dma-resv.o
  CC      drivers/iommu/iova.o
  CC      drivers/char/tpm/eventlog/common.o
  CC [M]  arch/x86/kvm/smm.o
  CC      fs/ntfs/debug.o
  CC      fs/lockd/svclock.o
  CC [M]  drivers/gpu/drm/ttm/ttm_bo.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_kms.o
  CC      arch/x86/kernel/bootflag.o
  CC      net/sunrpc/cache.o
  CC      net/ipv4/udplite.o
  CC      net/sunrpc/rpc_pipe.o
  CC      drivers/iommu/irq_remapping.o
  CC      fs/autofs/inode.o
  CC      drivers/acpi/acpica/hwesleep.o
  AR      drivers/base/regmap/built-in.a
  CC [M]  drivers/gpu/drm/ttm/ttm_bo_util.o
  CC      fs/autofs/root.o
  CC      drivers/dma-buf/sync_file.o
  CC      drivers/acpi/acpica/hwgpe.o
  CC      drivers/dma-buf/sw_sync.o
  CC      net/core/ptp_classifier.o
  CC      drivers/base/power/wakeup_stats.o
  CC      kernel/async.o
  CC      fs/ntfs/dir.o
  AR      drivers/dma/built-in.a
  CC      mm/mremap.o
  CC      fs/autofs/symlink.o
  CC      fs/nfs/nfs2xdr.o
  CC      drivers/tty/tty_io.o
  CC      drivers/char/tpm/eventlog/tpm1.o
  CC      arch/x86/kernel/e820.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.o
  CC      lib/plist.o
  CC      fs/nfs/nfs3super.o
  CC      fs/ntfs/file.o
  CC      net/core/netprio_cgroup.o
  CC [M]  drivers/gpu/drm/tests/drm_modes_test.o
  CC      drivers/char/tpm/eventlog/tpm2.o
  CC      lib/radix-tree.o
  CC [M]  drivers/misc/mei/main.o
  CC [M]  drivers/gpu/drm/scheduler/sched_fence.o
  AR      drivers/iommu/built-in.a
  CC      fs/autofs/waitq.o
  CC      drivers/tty/serial/8250/8250_dma.o
  CC      kernel/range.o
  CC      drivers/base/power/domain.o
  AR      fs/debugfs/built-in.a
  CC      drivers/tty/serial/8250/8250_dwlib.o
  CC      drivers/acpi/acpica/hwregs.o
  CC      fs/nfs/nfs3client.o
  CC      drivers/dma-buf/sync_debug.o
  CC      fs/autofs/expire.o
  CC      fs/tracefs/inode.o
  CC [M]  net/netfilter/x_tables.o
  CC      kernel/smpboot.o
  CC [M]  drivers/gpu/drm/tests/drm_plane_helper_test.o
  CC      fs/lockd/svcshare.o
  CC      drivers/acpi/acpica/hwsleep.o
  CC [M]  drivers/misc/mei/dma-ring.o
  CC [M]  drivers/gpu/drm/ttm/ttm_bo_vm.o
  CC      drivers/acpi/pci_irq.o
  CC [M]  drivers/dma-buf/selftest.o
  CC [M]  drivers/gpu/drm/i915/i915_drm_client.o
  CC      net/ipv4/udp_offload.o
  LD [M]  net/bluetooth/bluetooth.o
  CC [M]  drivers/gpu/drm/scheduler/sched_entity.o
  CC      drivers/char/tpm/tpm_ppi.o
  CC      drivers/char/tpm/eventlog/acpi.o
  CC      fs/lockd/svcproc.o
  CC [M]  net/netfilter/xt_tcpudp.o
  CC      drivers/acpi/acpica/hwvalid.o
  CC [M]  drivers/gpu/drm/tests/drm_probe_helper_test.o
  CC      fs/ntfs/index.o
  CC [M]  drivers/dma-buf/st-dma-fence.o
  CC      net/core/dst_cache.o
  CC      net/ipv4/arp.o
  CC      drivers/acpi/acpica/hwxface.o
  CC [M]  net/netfilter/xt_mark.o
  CC      fs/ext4/orphan.o
  CC      net/ipv4/icmp.o
  CC      drivers/acpi/acpi_lpss.o
  CC      fs/autofs/dev-ioctl.o
  CC      drivers/tty/serial/8250/8250_pcilib.o
  CC      kernel/ucount.o
  CC      drivers/base/power/domain_governor.o
  CC      kernel/regset.o
  CC      net/ipv6/reassembly.o
  CC      net/core/gro_cells.o
  CC      net/ipv4/devinet.o
  CC      net/core/failover.o
  AR      fs/tracefs/built-in.a
  CC      drivers/tty/serial/8250/8250_pci.o
  CC      kernel/kmod.o
  CC      arch/x86/kernel/pci-dma.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/atombios_crtc.o
  CC      lib/ratelimit.o
  CC [M]  drivers/misc/mei/bus.o
  CC      drivers/acpi/acpica/hwxfsleep.o
  CC      mm/msync.o
  CC [M]  drivers/gpu/drm/ttm/ttm_module.o
  CC      drivers/tty/serial/8250/8250_exar.o
  CC      drivers/tty/serial/8250/8250_early.o
  CC [M]  arch/x86/kvm/vmx/vmx.o
  CC [M]  drivers/misc/mei/bus-fixup.o
  CC      drivers/acpi/acpica/hwpci.o
  CC [M]  arch/x86/kvm/kvm-asm-offsets.s
  CC      drivers/char/tpm/eventlog/efi.o
  CC [M]  drivers/gpu/drm/tests/drm_rect_test.o
  CC      lib/rbtree.o
  CC      fs/nfs/nfs3proc.o
  LD [M]  drivers/gpu/drm/scheduler/gpu-sched.o
  CC      drivers/base/power/clock_ops.o
  CC      kernel/groups.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.o
  CC [M]  drivers/dma-buf/st-dma-fence-chain.o
  CC [M]  arch/x86/kvm/vmx/pmu_intel.o
  CC      kernel/kcmp.o
  CC      fs/ntfs/inode.o
  CC [M]  drivers/gpu/drm/i915/i915_config.o
  AR      fs/autofs/built-in.a
  CC      net/sunrpc/sysfs.o
  CC [M]  net/netfilter/xt_nat.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_bo_test.o
  CC [M]  net/netfilter/xt_REDIRECT.o
  CC [M]  drivers/gpu/drm/ttm/ttm_execbuf_util.o
  CC      drivers/acpi/acpica/nsaccess.o
  CC      fs/lockd/svcsubs.o
  CC      drivers/tty/n_tty.o
  CC      arch/x86/kernel/quirks.o
  CC      fs/pstore/inode.o
  CC      kernel/freezer.o
  CC      kernel/stacktrace.o
  CC      net/sunrpc/svc_xprt.o
  AR      fs/ext4/built-in.a
  CC      kernel/dma.o
  CC      drivers/base/dd.o
  CC      lib/seq_buf.o
  CC      net/sunrpc/xprtmultipath.o
  CC      mm/page_vma_mapped.o
  CC      fs/btrfs/super.o
  CC      net/sunrpc/stats.o
  CC      lib/show_mem.o
  CC [M]  drivers/gpu/drm/i915/i915_getparam.o
  CC      drivers/char/tpm/tpm_crb.o
  CC      drivers/tty/serial/8250/8250_dw.o
  CC      drivers/tty/serial/8250/8250_lpss.o
  CC      fs/ntfs/mft.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_dma_buf_test.o
  CC      mm/pagewalk.o
  AR      net/core/built-in.a
  CC      drivers/scsi/scsi.o
  AR      drivers/base/power/built-in.a
  CC      drivers/scsi/hosts.o
  CC      drivers/nvme/host/core.o
  CC      drivers/acpi/acpica/nsalloc.o
  CC [M]  drivers/misc/mei/debugfs.o
  CC      drivers/nvme/host/ioctl.o
  CC      drivers/acpi/acpica/nsarguments.o
  AR      drivers/nvme/target/built-in.a
  CC [M]  drivers/misc/mei/mei-trace.o
  CC      drivers/acpi/acpica/nsconvert.o
  CC      kernel/smp.o
  CC      drivers/acpi/acpica/nsdump.o
  CC      drivers/base/syscore.o
  CC      net/ipv6/tcp_ipv6.o
  CC [M]  drivers/gpu/drm/ttm/ttm_range_manager.o
  CC      mm/pgtable-generic.o
  CC      mm/rmap.o
  CC      lib/siphash.o
  CC      drivers/char/misc.o
  CC      arch/x86/kernel/topology.o
  CC [M]  drivers/dma-buf/st-dma-fence-unwrap.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_migrate_test.o
  CC      net/ipv4/af_inet.o
  CC      fs/pstore/platform.o
  CC      lib/string.o
  CC      drivers/acpi/acpica/nseval.o
  CC [M]  net/netfilter/xt_MASQUERADE.o
  CC      net/ipv4/igmp.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_pci_test.o
  CC      net/sunrpc/sysctl.o
  CC      drivers/base/driver.o
  CC      fs/efivarfs/inode.o
  CC      fs/nfs/nfs3xdr.o
  CC      fs/ntfs/mst.o
  CC      fs/lockd/mon.o
  CC      lib/timerqueue.o
  CC      drivers/scsi/scsi_ioctl.o
  AR      drivers/char/tpm/built-in.a
  CC      fs/efivarfs/file.o
  CC      fs/efivarfs/super.o
  CC      drivers/acpi/acpica/nsinit.o
  CC      drivers/char/virtio_console.o
  CC [M]  drivers/gpu/drm/i915/i915_ioctl.o
  CC [M]  fs/netfs/buffered_read.o
  CC [M]  drivers/gpu/drm/i915/i915_irq.o
  CC      drivers/tty/serial/8250/8250_mid.o
  CC [M]  fs/netfs/io.o
  CC      arch/x86/kernel/kdebugfs.o
  CC      net/ipv4/fib_frontend.o
  CC [M]  drivers/gpu/drm/i915/i915_mitigations.o
  CC      net/ipv4/fib_semantics.o
  CC      drivers/tty/serial/8250/8250_pericom.o
  CC [M]  drivers/gpu/drm/ttm/ttm_resource.o
  CC [M]  drivers/gpu/drm/vgem/vgem_drv.o
  CC [M]  drivers/gpu/drm/vgem/vgem_fence.o
  CC [M]  drivers/dma-buf/st-dma-resv.o
  CC      kernel/uid16.o
  CC      drivers/tty/serial/earlycon.o
  CC      mm/vmalloc.o
  CC [M]  drivers/misc/mei/pci-me.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/atom.o
  CC      lib/vsprintf.o
  CC      fs/pstore/pmsg.o
  CC      arch/x86/kernel/alternative.o
  CC      drivers/base/class.o
  CC      drivers/tty/tty_ioctl.o
  CC      fs/efivarfs/vars.o
  CC      drivers/acpi/acpica/nsload.o
  CC      kernel/kallsyms.o
  CC      fs/ntfs/namei.o
  CC      fs/ntfs/runlist.o
  CC      arch/x86/kernel/i8253.o
  CC      arch/x86/kernel/hw_breakpoint.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_rtp_test.o
  CC      lib/win_minmax.o
  CC      fs/btrfs/ctree.o
  CC      mm/page_alloc.o
  CC [M]  drivers/misc/mei/hw-me.o
  AR      drivers/dma-buf/built-in.a
  LD [M]  drivers/dma-buf/dmabuf_selftests.o
  CC [M]  drivers/misc/mei/gsc-me.o
  AR      drivers/tty/serial/8250/built-in.a
  CC      drivers/tty/tty_ldisc.o
  CC [M]  net/netfilter/xt_addrtype.o
  CC      drivers/ata/libata-core.o
  CC      drivers/acpi/acpica/nsnames.o
  AR      fs/pstore/built-in.a
  CC      drivers/scsi/scsicam.o
  CC      drivers/ata/libata-scsi.o
  CC [M]  fs/fscache/cache.o
  LD [M]  drivers/gpu/drm/vgem/vgem.o
  CC      drivers/tty/serial/serial_mctrl_gpio.o
  CC      lib/xarray.o
  CC [M]  fs/fscache/cookie.o
  CC      lib/lockref.o
  CC [M]  fs/fscache/io.o
  CC      fs/lockd/xdr.o
  CC [M]  drivers/gpu/drm/i915/i915_module.o
  CC [M]  drivers/gpu/drm/ttm/ttm_pool.o
  CC      drivers/acpi/acpi_apd.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/object.o
  CC      mm/init-mm.o
  CC [M]  fs/netfs/iterator.o
  CC      fs/ntfs/super.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/client.o
  AR      fs/efivarfs/built-in.a
  CC      drivers/base/platform.o
  CC [M]  drivers/gpu/drm/ast/ast_drv.o
  AR      net/sunrpc/built-in.a
  CC [M]  drivers/gpu/drm/ast/ast_i2c.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_fence.o
  CC [M]  net/netfilter/xt_conntrack.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_wa_test.o
  CC      drivers/acpi/acpica/nsobject.o
  CC      drivers/char/hpet.o
  CC      fs/ntfs/sysctl.o
  CC      drivers/base/cpu.o
  CC [M]  net/netfilter/xt_ipvs.o
  CC      drivers/scsi/scsi_error.o
  CC [M]  drivers/gpu/drm/ast/ast_main.o
  CC      fs/btrfs/extent-tree.o
  CC [M]  fs/netfs/main.o
  CC      arch/x86/kernel/tsc.o
  AR      drivers/tty/serial/built-in.a
  CC      drivers/tty/tty_buffer.o
  CC      kernel/acct.o
  CC      drivers/spi/spi.o
  CC [M]  fs/fscache/main.o
  AR      fs/nfs/built-in.a
  CC      fs/ntfs/unistr.o
  CC      drivers/char/nvram.o
  CC      fs/ntfs/upcase.o
  CC [M]  drivers/gpu/drm/xe/xe_bb.o
  CC      drivers/acpi/acpica/nsparse.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/conn.o
  CC [M]  drivers/gpu/drm/i915/i915_params.o
  CC      drivers/acpi/acpica/nspredef.o
  CC [M]  drivers/gpu/drm/ttm/ttm_device.o
  CC [M]  fs/fscache/volume.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/device.o
  CC [M]  arch/x86/kvm/vmx/vmcs12.o
  CC      net/ipv6/ping.o
  CC      fs/btrfs/print-tree.o
  CC      fs/btrfs/root-tree.o
  CC      drivers/base/firmware.o
  CC      fs/lockd/clnt4xdr.o
  CC [M]  drivers/gpu/drm/ttm/ttm_sys_manager.o
  CC      arch/x86/kernel/tsc_msr.o
  CC      net/ipv4/fib_trie.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.o
  CC      fs/lockd/xdr4.o
  CC      net/ipv6/exthdrs.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/disp.o
  CC [M]  fs/fscache/proc.o
  LD [M]  drivers/misc/mei/mei.o
  CC      drivers/acpi/acpica/nsprepkg.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_object.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_gart.o
  CC      drivers/tty/tty_port.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.o
  LD [M]  drivers/misc/mei/mei-me.o
  LD [M]  drivers/misc/mei/mei-gsc.o
  CC      drivers/base/init.o
  AR      fs/ntfs/built-in.a
  AR      drivers/char/built-in.a
  CC [M]  drivers/gpu/drm/ast/ast_mm.o
  CC [M]  drivers/gpu/drm/ttm/ttm_agp_backend.o
  CC      drivers/acpi/acpica/nsrepair.o
  CC      drivers/net/phy/mdio-boardinfo.o
  CC      drivers/acpi/acpica/nsrepair2.o
  AR      drivers/net/pse-pd/built-in.a
  CC      lib/bcd.o
  CC [M]  drivers/gpu/drm/xe/xe_bo.o
  CC      drivers/net/mdio/acpi_mdio.o
  AR      drivers/net/pcs/built-in.a
  LD [M]  net/netfilter/nf_conntrack.o
  CC [M]  fs/netfs/objects.o
  AR      drivers/net/ethernet/adi/built-in.a
  CC      kernel/crash_core.o
  AR      drivers/net/ethernet/alacritech/built-in.a
  AR      drivers/net/ethernet/amazon/built-in.a
  AR      drivers/net/usb/built-in.a
  CC [M]  drivers/net/usb/pegasus.o
  AR      drivers/net/ethernet/aquantia/built-in.a
  CC [M]  drivers/net/usb/rtl8150.o
  AR      drivers/net/ethernet/asix/built-in.a
  LD [M]  net/netfilter/nf_nat.o
  CC      arch/x86/kernel/io_delay.o
  AR      drivers/net/ethernet/cadence/built-in.a
  CC      drivers/net/mdio/fwnode_mdio.o
  AR      drivers/net/ethernet/broadcom/built-in.a
  AR      net/netfilter/built-in.a
  CC [M]  drivers/net/ethernet/broadcom/b44.o
  CC [M]  drivers/net/ipvlan/ipvlan_core.o
  CC      lib/sort.o
  CC      drivers/tty/tty_mutex.o
  CC [M]  drivers/net/ipvlan/ipvlan_main.o
  CC      drivers/nvme/host/trace.o
  CC      lib/parser.o
  CC [M]  drivers/gpu/drm/i915/i915_pci.o
  AR      drivers/net/ethernet/cavium/common/built-in.a
  CC [M]  drivers/gpu/drm/i915/i915_scatterlist.o
  AR      drivers/net/ethernet/cavium/thunder/built-in.a
  AR      drivers/net/ethernet/cortina/built-in.a
  AR      drivers/net/ethernet/cavium/liquidio/built-in.a
  CC [M]  drivers/gpu/drm/ast/ast_mode.o
  AR      drivers/net/ethernet/cavium/octeon/built-in.a
  AR      drivers/net/ethernet/cavium/built-in.a
  AR      drivers/net/ethernet/engleder/built-in.a
  CC [M]  drivers/gpu/drm/ast/ast_post.o
  CC      net/ipv6/datagram.o
  LD [M]  fs/fscache/fscache.o
  CC      arch/x86/kernel/rtc.o
  CC [M]  drivers/net/vxlan/vxlan_core.o
  CC      drivers/base/map.o
  CC      drivers/scsi/scsi_lib.o
  CC      drivers/base/devres.o
  CC      drivers/ata/libata-eh.o
  CC      drivers/acpi/acpica/nssearch.o
  LD [M]  drivers/gpu/drm/ttm/ttm.o
  CC      drivers/ata/libata-transport.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/driver.o
  CC      drivers/net/phy/mdio_devres.o
  CC [M]  arch/x86/kvm/vmx/hyperv.o
  AR      drivers/net/ethernet/ezchip/built-in.a
  CC [M]  drivers/gpu/drm/ast/ast_dp501.o
  AR      drivers/net/ethernet/fungible/built-in.a
  CC      lib/debug_locks.o
  CC      drivers/scsi/scsi_lib_dma.o
  CC      lib/random32.o
  CC      kernel/compat.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_display.o
  CC      drivers/tty/tty_ldsem.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_i2c.o
  CC      net/ipv6/ip6_flowlabel.o
  CC      fs/lockd/svc4proc.o
  CC      drivers/net/phy/phy.o
  LD [M]  fs/netfs/netfs.o
  CC      kernel/utsname.o
  CC [M]  fs/smbfs_common/cifs_arc4.o
  AR      drivers/net/mdio/built-in.a
  CC      lib/bust_spinlocks.o
  CC      drivers/tty/tty_baudrate.o
  CC      drivers/acpi/acpica/nsutils.o
  AR      drivers/net/ethernet/huawei/built-in.a
  CC      drivers/nvme/host/pci.o
  CC      drivers/base/attribute_container.o
  CC      arch/x86/kernel/resource.o
  CC      net/ipv4/fib_notifier.o
  CC      drivers/net/phy/phy-c45.o
  CC [M]  drivers/net/usb/r8152.o
  CC [M]  fs/smbfs_common/cifs_md4.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/event.o
  AS      arch/x86/kernel/irqflags.o
  CC [M]  drivers/net/ethernet/intel/e1000/e1000_main.o
  CC      arch/x86/kernel/static_call.o
  CC [M]  drivers/net/ethernet/intel/e1000e/82571.o
  CC [M]  drivers/net/ethernet/intel/igb/igb_main.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/fifo.o
  CC      net/ipv4/inet_fragment.o
  CC [M]  drivers/gpu/drm/i915/i915_suspend.o
  CC [M]  drivers/net/ethernet/intel/e1000e/ich8lan.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/head.o
  CC [M]  drivers/gpu/drm/i915/i915_switcheroo.o
  CC      lib/kasprintf.o
  CC [M]  drivers/net/ethernet/intel/e1000e/80003es2lan.o
  CC [M]  drivers/gpu/drm/ast/ast_dp.o
  CC      drivers/ata/libata-trace.o
  CC      kernel/user_namespace.o
  CC      drivers/tty/tty_jobctrl.o
  CC      drivers/acpi/acpica/nswalk.o
  CC      drivers/base/transport_class.o
  CC [M]  drivers/net/ipvlan/ipvlan_l3s.o
  CC [M]  arch/x86/kvm/vmx/nested.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_gem.o
  CC [M]  drivers/net/ethernet/intel/e1000/e1000_hw.o
  CC [M]  fs/cifs/trace.o
  CC      net/ipv6/inet6_connection_sock.o
  CC      arch/x86/kernel/process.o
  CC [M]  fs/cifs/cifsfs.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ring.o
  CC      lib/bitmap.o
  CC      fs/lockd/procfs.o
  CC      net/ipv4/ping.o
  CC      drivers/acpi/acpica/nsxfeval.o
  CC [M]  drivers/gpu/drm/xe/xe_bo_evict.o
  CC      drivers/tty/n_null.o
  CC      net/ipv6/udp_offload.o
  CC [M]  drivers/gpu/drm/xe/xe_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_devcoredump.o
  CC      drivers/base/topology.o
  CC [M]  drivers/net/ethernet/broadcom/bnx2.o
  AR      drivers/firewire/built-in.a
  AR      drivers/cdrom/built-in.a
  AR      drivers/auxdisplay/built-in.a
  CC      drivers/usb/common/common.o
  CC      net/ipv6/seg6.o
  CC      drivers/usb/core/usb.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/mem.o
  CC      drivers/usb/core/hub.o
  LD [M]  drivers/gpu/drm/ast/ast.o
  AR      drivers/usb/phy/built-in.a
  CC      drivers/input/serio/serio.o
  CC      drivers/scsi/scsi_scan.o
  AR      drivers/spi/built-in.a
  GEN     drivers/scsi/scsi_devinfo_tbl.c
  CC      drivers/input/serio/i8042.o
  CC      drivers/tty/pty.o
  CC      drivers/net/phy/phy-core.o
  CC      drivers/net/phy/phy_device.o
  CC      drivers/tty/sysrq.o
  CC      drivers/scsi/scsi_devinfo.o
  CC [M]  drivers/gpu/drm/i915/i915_sysfs.o
  CC      drivers/acpi/acpica/nsxfname.o
  CC      kernel/pid_namespace.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_main.o
  AR      fs/lockd/built-in.a
  CC [M]  drivers/net/ethernet/intel/igbvf/vf.o
  CC [M]  drivers/net/vxlan/vxlan_multicast.o
  CC      drivers/base/container.o
  CC      drivers/base/property.o
  CC      drivers/input/serio/libps2.o
  CC      lib/scatterlist.o
  LD [M]  drivers/net/ipvlan/ipvlan.o
  CC      drivers/net/loopback.o
  UPD     kernel/config_data
  CC      kernel/stop_machine.o
  CC [M]  drivers/gpu/drm/xe/xe_device.o
  CC      net/ipv6/fib6_notifier.o
  CC      drivers/usb/common/debug.o
  CC      kernel/kprobes.o
  CC [M]  drivers/net/ethernet/intel/igbvf/mbx.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/mmu.o
  CC [M]  fs/fuse/dev.o
  CC      fs/btrfs/dir-item.o
  AR      drivers/usb/common/built-in.a
  CC      lib/list_sort.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_cs.o
  CC      drivers/acpi/acpica/nsxfobj.o
  CC      net/ipv6/rpl.o
  CC      arch/x86/kernel/ptrace.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_bios.o
  CC      mm/memblock.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_mac.o
  CC [M]  drivers/net/ethernet/intel/igbvf/ethtool.o
  CC [M]  fs/overlayfs/super.o
  CC [M]  drivers/net/ethernet/intel/e1000/e1000_ethtool.o
  CC [M]  drivers/net/ethernet/intel/igbvf/netdev.o
  CC [M]  drivers/net/ethernet/intel/e1000e/mac.o
  CC      drivers/ata/libata-sata.o
  CC [M]  drivers/net/usb/asix_devices.o
  AR      drivers/nvme/host/built-in.a
  AR      drivers/nvme/built-in.a
  AR      drivers/tty/built-in.a
  CC      kernel/hung_task.o
  CC [M]  drivers/net/usb/asix_common.o
  CC      drivers/scsi/scsi_sysctl.o
  CC [M]  drivers/net/vxlan/vxlan_vnifilter.o
  CC      drivers/acpi/acpica/psargs.o
  CC      drivers/usb/host/pci-quirks.o
  CC [M]  drivers/gpu/drm/i915/i915_utils.o
  CC      net/ipv4/ip_tunnel_core.o
  CC      drivers/usb/host/ehci-hcd.o
  AR      drivers/input/serio/built-in.a
  CC      drivers/input/keyboard/atkbd.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_main.o
  CC      kernel/watchdog.o
  CC      lib/uuid.o
  CC      drivers/acpi/acpi_platform.o
  CC [M]  drivers/gpu/drm/xe/xe_dma_buf.o
  CC      drivers/scsi/scsi_debugfs.o
  CC      arch/x86/kernel/tls.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/outp.o
  CC      drivers/base/cacheinfo.o
  CC [M]  drivers/gpu/drm/i915/intel_clock_gating.o
  CC      lib/iov_iter.o
  CC      drivers/scsi/scsi_trace.o
  CC      net/ipv6/ioam6.o
  CC [M]  drivers/net/ethernet/intel/ixgbevf/vf.o
  CC      drivers/acpi/acpica/psloop.o
  CC [M]  drivers/net/ethernet/intel/ixgbevf/mbx.o
  CC      drivers/usb/host/ehci-pci.o
  CC      drivers/rtc/lib.o
  AR      drivers/i2c/algos/built-in.a
  CC [M]  drivers/i2c/algos/i2c-algo-bit.o
  AR      drivers/i3c/built-in.a
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.o
  CC      fs/btrfs/file-item.o
  CC      kernel/watchdog_hld.o
  CC      drivers/net/phy/linkmode.o
  CC      mm/memory_hotplug.o
  CC      drivers/ata/libata-sff.o
  CC      drivers/net/phy/mdio_bus.o
  CC      drivers/net/phy/mdio_device.o
  CC [M]  drivers/net/ethernet/intel/ixgbevf/ethtool.o
  CC [M]  drivers/net/ethernet/intel/e1000/e1000_param.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_i225.o
  CC [M]  fs/cifs/cifs_debug.o
  CC      fs/open.o
  CC      drivers/acpi/acpica/psobject.o
  CC      drivers/usb/host/ohci-hcd.o
  CC [M]  fs/overlayfs/namei.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/atombios_dp.o
  CC [M]  drivers/net/usb/ax88172a.o
  CC      drivers/base/swnode.o
  CC [M]  fs/cifs/connect.o
  CC [M]  drivers/net/ethernet/intel/e1000e/manage.o
  CC      arch/x86/kernel/step.o
  CC [M]  drivers/gpu/drm/xe/xe_engine.o
  CC      drivers/scsi/scsi_logging.o
  CC      drivers/rtc/class.o
  AR      drivers/input/keyboard/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvif/timer.o
  AR      drivers/input/mouse/built-in.a
  CC      drivers/input/input.o
  CC      drivers/input/input-compat.o
  CC      net/ipv4/gre_offload.o
  CC [M]  fs/fuse/dir.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_afmt.o
  CC [M]  drivers/net/ethernet/intel/e1000e/nvm.o
  CC      drivers/net/phy/swphy.o
  CC [M]  drivers/net/ethernet/intel/e1000e/phy.o
  CC      kernel/seccomp.o
  CC      drivers/acpi/acpica/psopcode.o
  CC      fs/read_write.o
  CC      drivers/i2c/busses/i2c-designware-common.o
  CC      drivers/i2c/busses/i2c-designware-master.o
  CC      drivers/acpi/acpica/psopinfo.o
  LD [M]  drivers/net/ethernet/intel/igbvf/igbvf.o
  CC      arch/x86/kernel/i8237.o
  CC [M]  drivers/net/ethernet/intel/ixgb/ixgb_main.o
  LD [M]  drivers/net/vxlan/vxlan.o
  CC [M]  drivers/net/ethernet/intel/ixgb/ixgb_hw.o
  CC      drivers/rtc/interface.o
  AR      drivers/i2c/muxes/built-in.a
  CC [M]  drivers/i2c/muxes/i2c-mux-gpio.o
  CC      drivers/net/netconsole.o
  CC [M]  drivers/gpu/drm/i915/intel_device_info.o
  CC      drivers/acpi/acpica/psparse.o
  CC      arch/x86/kernel/stacktrace.o
  CC      drivers/base/auxiliary.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/vmm.o
  CC      drivers/usb/core/hcd.o
  CC      drivers/scsi/scsi_pm.o
  LD [M]  drivers/net/ethernet/intel/e1000/e1000.o
  CC [M]  fs/overlayfs/util.o
  CC      drivers/usb/core/urb.o
  CC      drivers/input/input-mt.o
  CC      arch/x86/kernel/reboot.o
  CC [M]  drivers/net/ethernet/intel/e1000e/param.o
  CC [M]  drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.o
  CC      drivers/net/phy/fixed_phy.o
  AR      drivers/media/i2c/built-in.a
  AR      drivers/ptp/built-in.a
  AR      drivers/media/tuners/built-in.a
  CC [M]  drivers/ptp/ptp_clock.o
  AR      drivers/media/rc/keymaps/built-in.a
  AR      drivers/media/rc/built-in.a
  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
  CC      net/ipv6/sysctl_net_ipv6.o
  AR      drivers/media/common/built-in.a
  AR      drivers/media/platform/allegro-dvt/built-in.a
  AR      drivers/media/platform/amlogic/meson-ge2d/built-in.a
  AR      drivers/media/platform/amlogic/built-in.a
  CC      mm/madvise.o
  AR      drivers/media/platform/amphion/built-in.a
  AR      drivers/media/platform/aspeed/built-in.a
  AR      drivers/media/platform/atmel/built-in.a
  CC      fs/btrfs/inode-item.o
  AR      drivers/media/platform/cadence/built-in.a
  AR      drivers/media/platform/chips-media/built-in.a
  AR      drivers/media/platform/intel/built-in.a
  AR      drivers/media/platform/marvell/built-in.a
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_trace_points.o
  CC [M]  drivers/ptp/ptp_chardev.o
  AR      drivers/media/platform/mediatek/jpeg/built-in.a
  AR      drivers/media/platform/mediatek/mdp/built-in.a
  CC      net/ipv4/metrics.o
  CC      drivers/base/devtmpfs.o
  CC      drivers/acpi/acpica/psscope.o
  CC      drivers/base/memory.o
  AR      drivers/media/platform/mediatek/vcodec/built-in.a
  AR      drivers/media/platform/mediatek/vpu/built-in.a
  AR      drivers/media/platform/mediatek/mdp3/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_exec.o
  AR      drivers/media/platform/mediatek/built-in.a
  AR      drivers/media/platform/microchip/built-in.a
  CC      mm/page_io.o
  AR      drivers/media/platform/nvidia/tegra-vde/built-in.a
  AR      drivers/media/platform/nvidia/built-in.a
  CC      drivers/base/module.o
  AR      drivers/media/platform/nxp/dw100/built-in.a
  AR      drivers/media/platform/nxp/imx-jpeg/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
  AR      drivers/media/platform/renesas/rcar-vin/built-in.a
  CC      mm/swap_state.o
  AR      drivers/media/platform/renesas/rzg2l-cru/built-in.a
  AR      drivers/media/platform/renesas/vsp1/built-in.a
  AR      drivers/media/platform/renesas/built-in.a
  CC      drivers/i2c/busses/i2c-designware-platdrv.o
  AR      drivers/media/platform/rockchip/rga/built-in.a
  CC      drivers/scsi/scsi_bsg.o
  CC      drivers/base/pinctrl.o
  AR      drivers/media/platform/rockchip/rkisp1/built-in.a
  AR      drivers/media/platform/rockchip/built-in.a
  CC [M]  drivers/net/usb/ax88179_178a.o
  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
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_common.o
  AR      drivers/media/platform/samsung/s5p-jpeg/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvif/user.o
  AR      drivers/media/platform/samsung/s5p-mfc/built-in.a
  AR      drivers/media/platform/samsung/built-in.a
  AR      drivers/media/platform/st/sti/bdisp/built-in.a
  CC [M]  fs/fuse/file.o
  AR      drivers/media/platform/st/sti/c8sectpfe/built-in.a
  CC      drivers/input/input-poller.o
  AR      drivers/media/platform/st/sti/delta/built-in.a
  AR      drivers/media/platform/st/sti/hva/built-in.a
  CC      drivers/acpi/acpica/pstree.o
  AR      drivers/media/platform/st/stm32/built-in.a
  AR      drivers/media/platform/st/built-in.a
  AR      drivers/net/ethernet/intel/built-in.a
  CC      drivers/base/devcoredump.o
  AR      drivers/media/platform/sunxi/sun4i-csi/built-in.a
  CC [M]  drivers/net/ethernet/intel/e100.o
  AR      drivers/media/platform/sunxi/sun6i-csi/built-in.a
  CC      drivers/ata/libata-pmp.o
  CC      drivers/rtc/nvmem.o
  AR      drivers/media/platform/sunxi/sun6i-mipi-csi2/built-in.a
  CC      lib/clz_ctz.o
  AR      drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/built-in.a
  AR      drivers/media/platform/sunxi/sun8i-di/built-in.a
  AR      drivers/media/platform/sunxi/sun8i-rotate/built-in.a
  AR      drivers/media/platform/sunxi/built-in.a
  CC      arch/x86/kernel/msr.o
  CC [M]  drivers/gpu/drm/i915/intel_memory_region.o
  AR      drivers/media/platform/ti/am437x/built-in.a
  CC      lib/bsearch.o
  AR      drivers/media/platform/ti/cal/built-in.a
  AR      drivers/media/platform/ti/vpe/built-in.a
  CC [M]  drivers/net/ethernet/intel/igc/igc_base.o
  AR      drivers/media/platform/ti/davinci/built-in.a
  CC [M]  drivers/net/phy/phylink.o
  AR      drivers/media/platform/ti/omap/built-in.a
  AR      drivers/media/platform/ti/omap3isp/built-in.a
  AR      drivers/media/platform/verisilicon/built-in.a
  CC [M]  drivers/net/ethernet/intel/igc/igc_nvm.o
  AR      drivers/media/platform/ti/built-in.a
  CC [M]  fs/overlayfs/inode.o
  CC      drivers/rtc/dev.o
  CC      drivers/ata/libata-acpi.o
  AR      drivers/media/platform/via/built-in.a
  AR      drivers/media/platform/xilinx/built-in.a
  AR      drivers/media/platform/built-in.a
  CC      kernel/relay.o
  CC [M]  drivers/gpu/drm/i915/intel_pcode.o
  AR      drivers/media/pci/ttpci/built-in.a
  AR      drivers/media/pci/b2c2/built-in.a
  CC      net/ipv6/xfrm6_policy.o
  AR      drivers/media/pci/pluto2/built-in.a
  AR      drivers/media/pci/dm1105/built-in.a
  AR      drivers/media/pci/pt1/built-in.a
  CC [M]  drivers/ptp/ptp_sysfs.o
  AR      drivers/media/pci/pt3/built-in.a
  CC [M]  drivers/net/ethernet/broadcom/cnic.o
  AR      drivers/media/pci/mantis/built-in.a
  CC [M]  drivers/net/ethernet/intel/e1000e/ethtool.o
  AR      drivers/media/pci/ngene/built-in.a
  CC [M]  drivers/net/ethernet/intel/e1000e/netdev.o
  CC      net/ipv6/xfrm6_state.o
  AR      drivers/media/pci/ddbridge/built-in.a
  CC      net/ipv6/xfrm6_input.o
  AR      drivers/media/pci/saa7146/built-in.a
  CC      drivers/acpi/acpica/psutils.o
  CC [M]  drivers/net/ethernet/intel/igb/igb_ethtool.o
  AR      drivers/media/pci/smipcie/built-in.a
  AR      drivers/media/pci/netup_unidvb/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_execlist.o
  CC      drivers/usb/storage/scsiglue.o
  AR      drivers/media/pci/intel/ipu3/built-in.a
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.o
  CC      drivers/scsi/scsi_common.o
  AR      drivers/media/pci/intel/built-in.a
  AR      drivers/media/pci/built-in.a
  AR      drivers/media/usb/b2c2/built-in.a
  AR      drivers/media/usb/dvb-usb/built-in.a
  AR      drivers/media/usb/dvb-usb-v2/built-in.a
  CC      drivers/input/ff-core.o
  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 [M]  drivers/net/usb/cdc_ether.o
  AR      drivers/media/usb/ttusb-dec/built-in.a
  AR      drivers/media/usb/built-in.a
  CC      drivers/i2c/busses/i2c-designware-baytrail.o
  CC      net/ipv4/netlink.o
  AR      drivers/media/mmc/siano/built-in.a
  AR      drivers/media/mmc/built-in.a
  AR      drivers/media/firewire/built-in.a
  CC      drivers/base/platform-msi.o
  AR      drivers/media/spi/built-in.a
  CC [M]  drivers/net/ethernet/intel/ixgb/ixgb_ee.o
  CC [M]  arch/x86/kvm/vmx/posted_intr.o
  AR      drivers/media/test-drivers/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvif/userc361.o
  AR      drivers/media/built-in.a
  CC [M]  drivers/net/ethernet/broadcom/tg3.o
  CC      lib/find_bit.o
  CC      drivers/i2c/i2c-boardinfo.o
  CC      drivers/usb/core/message.o
  CC      arch/x86/kernel/cpuid.o
  CC      drivers/acpi/acpica/pswalk.o
  CC      drivers/rtc/proc.o
  CC      fs/btrfs/disk-io.o
  CC      drivers/scsi/sd.o
  CC      mm/swapfile.o
  CC      mm/swap_slots.o
  CC      lib/llist.o
  CC      drivers/input/touchscreen.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_phy.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/client.o
  CC      lib/memweight.o
  CC      drivers/usb/storage/protocol.o
  CC      drivers/usb/host/ohci-pci.o
  CC [M]  drivers/ptp/ptp_vclock.o
  CC      drivers/base/physical_location.o
  AR      drivers/power/reset/built-in.a
  CC      drivers/power/supply/power_supply_core.o
  CC      drivers/acpi/acpica/psxface.o
  CC [M]  fs/overlayfs/file.o
  CC      drivers/power/supply/power_supply_sysfs.o
  CC      lib/kfifo.o
  CC      drivers/ata/libata-pata-timings.o
  CC [M]  drivers/i2c/busses/i2c-scmi.o
  CC      drivers/usb/host/uhci-hcd.o
  CC      arch/x86/kernel/early-quirks.o
  CC      drivers/usb/host/xhci.o
  CC      kernel/utsname_sysctl.o
  CC [M]  drivers/gpu/drm/xe/xe_force_wake.o
  CC      drivers/usb/host/xhci-mem.o
  CC      drivers/base/trace.o
  CC      drivers/rtc/sysfs.o
  CC [M]  drivers/net/ethernet/intel/ixgb/ixgb_ethtool.o
  CC [M]  drivers/net/ethernet/intel/ixgb/ixgb_param.o
  CC      net/ipv4/nexthop.o
  CC [M]  drivers/net/usb/cdc_eem.o
  CC      kernel/delayacct.o
  CC      drivers/input/ff-memless.o
  CC      net/ipv6/xfrm6_output.o
  CC      drivers/acpi/acpica/rsaddr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/atombios_encoders.o
  CC [M]  drivers/i2c/busses/i2c-ccgx-ucsi.o
  CC      net/ipv4/udp_tunnel_stub.o
  LD [M]  arch/x86/kvm/kvm.o
  CC      drivers/usb/storage/transport.o
  CC      fs/file_table.o
  UPD     arch/x86/kvm/kvm-asm-offsets.h
  CC      fs/super.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/engine.o
  CC [M]  fs/cifs/dir.o
  CC [M]  drivers/ptp/ptp_kvm_x86.o
  CC [M]  drivers/i2c/busses/i2c-i801.o
  CC      drivers/rtc/rtc-mc146818-lib.o
  CC      lib/percpu-refcount.o
  CC      drivers/ata/ahci.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_diag.o
  AR      drivers/base/built-in.a
  CC      drivers/acpi/acpica/rscalc.o
  CC      drivers/acpi/acpica/rscreate.o
  CC      drivers/power/supply/power_supply_leds.o
  CC [M]  drivers/gpu/drm/i915/intel_region_ttm.o
  CC      arch/x86/kernel/smp.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_82599.o
  CC [M]  drivers/gpu/drm/xe/xe_ggtt.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_ethtool.o
  CC      kernel/taskstats.o
  AS [M]  arch/x86/kvm/vmx/vmenter.o
  CC [M]  fs/overlayfs/dir.o
  LD [M]  arch/x86/kvm/kvm-intel.o
  CC      drivers/usb/core/driver.o
  CC [M]  drivers/net/ethernet/intel/e1000e/ptp.o
  CC      fs/char_dev.o
  CC [M]  fs/fuse/inode.o
  CC [M]  drivers/net/phy/aquantia_main.o
  CC      arch/x86/kernel/smpboot.o
  CC      drivers/input/vivaldi-fmap.o
  CC [M]  drivers/net/ethernet/intel/ixgbevf/ipsec.o
  CC [M]  drivers/net/usb/smsc75xx.o
  CC [M]  drivers/net/usb/smsc95xx.o
  CC [M]  drivers/ptp/ptp_kvm_common.o
  CC      drivers/power/supply/power_supply_hwmon.o
  CC [M]  drivers/gpu/drm/xe/xe_gt.o
  CC      drivers/acpi/acpica/rsdumpinfo.o
  CC      net/ipv4/sysctl_net_ipv4.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_clock.o
  CC      drivers/rtc/rtc-cmos.o
  LD [M]  drivers/net/ethernet/intel/ixgb/ixgb.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/enum.o
  CC [M]  drivers/net/ethernet/intel/igb/e1000_82575.o
  CC      drivers/acpi/acpica/rsinfo.o
  CC      lib/rhashtable.o
  CC      drivers/input/input-leds.o
  CC      drivers/usb/storage/usb.o
  CC      net/ipv6/xfrm6_protocol.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_82598.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_ptp.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_debugfs.o
  CC      drivers/acpi/acpica/rsio.o
  AR      drivers/power/supply/built-in.a
  AR      drivers/power/built-in.a
  CC      kernel/tsacct.o
  CC [M]  fs/overlayfs/readdir.o
  CC      drivers/acpi/acpica/rsirq.o
  CC [M]  fs/overlayfs/copy_up.o
  CC [M]  drivers/gpu/drm/i915/intel_runtime_pm.o
  CC      mm/dmapool.o
  CC      drivers/ata/libahci.o
  CC      drivers/acpi/acpica/rslist.o
  LD [M]  drivers/ptp/ptp.o
  CC      drivers/scsi/sg.o
  LD [M]  drivers/ptp/ptp_kvm.o
  CC      drivers/hwmon/hwmon.o
  CC [M]  drivers/net/phy/aquantia_hwmon.o
  CC [M]  drivers/hwmon/acpi_power_meter.o
  CC [M]  drivers/i2c/busses/i2c-isch.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_sa.o
  CC [M]  drivers/hwmon/coretemp.o
  CC      drivers/input/mousedev.o
  CC      drivers/input/evdev.o
  CC      kernel/tracepoint.o
  CC      drivers/usb/core/config.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/event.o
  CC      drivers/i2c/i2c-core-base.o
  CC      drivers/usb/storage/initializers.o
  CC      mm/hugetlb.o
  CC      drivers/usb/core/file.o
  CC      drivers/i2c/i2c-core-smbus.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/firmware.o
  AR      drivers/net/ethernet/i825xx/built-in.a
  CC      drivers/acpi/acpica/rsmemory.o
  CC      drivers/acpi/acpi_pnp.o
  LD [M]  drivers/net/ethernet/intel/ixgbevf/ixgbevf.o
  CC [M]  fs/cifs/file.o
  AR      drivers/rtc/built-in.a
  CC [M]  drivers/gpu/drm/amd/amdgpu/atombios_i2c.o
  CC      drivers/i2c/i2c-core-acpi.o
  CC [M]  drivers/net/ethernet/intel/igb/e1000_mac.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_mcr.o
  CC [M]  drivers/net/ethernet/intel/igb/e1000_nvm.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_phy.o
  CC [M]  fs/fuse/control.o
  CC      arch/x86/kernel/tsc_sync.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.o
  CC      net/ipv4/proc.o
  CC [M]  drivers/net/phy/ax88796b.o
  CC      net/ipv6/netfilter.o
  CC      drivers/acpi/acpica/rsmisc.o
  CC      kernel/latencytop.o
  CC      lib/base64.o
  CC      net/ipv6/fib6_rules.o
  CC [M]  drivers/i2c/busses/i2c-ismt.o
  CC      fs/btrfs/transaction.o
  CC      drivers/gpu/drm/drm_mipi_dsi.o
  CC      drivers/usb/storage/sierra_ms.o
  CC      fs/btrfs/inode.o
  CC [M]  drivers/net/usb/mcs7830.o
  CC [M]  drivers/net/usb/usbnet.o
  CC [M]  drivers/net/usb/cdc_ncm.o
  CC      lib/once.o
  CC      fs/btrfs/file.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_dump.o
  CC [M]  drivers/gpu/drm/i915/intel_sbi.o
  CC [M]  fs/overlayfs/export.o
  CC [M]  drivers/net/phy/bcm7xxx.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.o
  CC      arch/x86/kernel/setup_percpu.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_x540.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/gpuobj.o
  AR      drivers/hwmon/built-in.a
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.o
  AR      drivers/input/built-in.a
  CC      lib/refcount.o
  AR      drivers/thermal/broadcom/built-in.a
  AR      drivers/thermal/samsung/built-in.a
  CC      arch/x86/kernel/ftrace.o
  CC      drivers/thermal/intel/intel_tcc.o
  AR      drivers/thermal/st/built-in.a
  CC      net/ipv4/syncookies.o
  CC      drivers/acpi/acpica/rsserial.o
  CC      drivers/usb/host/xhci-ext-caps.o
  CC      drivers/usb/core/buffer.o
  CC      kernel/irq_work.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_pagefault.o
  AR      drivers/thermal/qcom/built-in.a
  CC [M]  drivers/net/ethernet/intel/igc/igc_tsn.o
  CC [M]  fs/fuse/xattr.o
  CC      drivers/usb/host/xhci-ring.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_sysfs.o
  CC [M]  drivers/net/phy/bcm87xx.o
  CC      drivers/thermal/intel/therm_throt.o
  CC      lib/usercopy.o
  CC      drivers/i2c/i2c-core-slave.o
  CC      drivers/acpi/acpica/rsutils.o
  CC      drivers/usb/storage/option_ms.o
  CC      drivers/scsi/scsi_sysfs.o
  LD [M]  drivers/net/ethernet/intel/e1000e/e1000e.o
  CC      drivers/i2c/i2c-dev.o
  CC [M]  drivers/i2c/i2c-smbus.o
  CC [M]  drivers/net/phy/bcm-phy-lib.o
  CC      drivers/ata/ata_piix.o
  AS      arch/x86/kernel/ftrace_64.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_tlb_invalidation.o
  LD [M]  fs/overlayfs/overlay.o
  CC      lib/errseq.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_x550.o
  CC [M]  drivers/net/ethernet/intel/igb/e1000_phy.o
  AR      drivers/net/ethernet/microsoft/built-in.a
  CC      fs/btrfs/defrag.o
  CC [M]  drivers/i2c/busses/i2c-piix4.o
  CC      fs/btrfs/extent_map.o
  CC [M]  drivers/net/usb/r8153_ecm.o
  CC      lib/bucket_locks.o
  AR      drivers/net/ethernet/litex/built-in.a
  CC [M]  drivers/net/ethernet/intel/igc/igc_xdp.o
  CC [M]  drivers/gpu/drm/i915/intel_step.o
  CC      kernel/static_call.o
  CC      arch/x86/kernel/trace_clock.o
  CC      arch/x86/kernel/trace.o
  CC      drivers/usb/core/sysfs.o
  CC      fs/stat.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/intr.o
  CC      drivers/net/virtio_net.o
  CC      net/ipv6/proc.o
  CC      drivers/acpi/acpica/rsxface.o
  CC      drivers/net/net_failover.o
  CC [M]  drivers/net/dummy.o
  CC [M]  fs/fuse/acl.o
  CC [M]  drivers/net/macvlan.o
  CC      drivers/usb/storage/usual-tables.o
  CC      lib/generic-radix-tree.o
  CC      net/ipv6/syncookies.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vm.o
  CC      drivers/usb/core/endpoint.o
  CC      fs/btrfs/sysfs.o
  CC      fs/btrfs/accessors.o
  CC      kernel/static_call_inline.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/ioctl.o
  CC [M]  fs/fuse/readdir.o
  CC [M]  drivers/gpu/drm/i915/intel_uncore.o
  CC      arch/x86/kernel/rethook.o
  CC [M]  drivers/thermal/intel/x86_pkg_temp_thermal.o
  CC [M]  drivers/i2c/i2c-mux.o
  CC      drivers/acpi/acpica/tbdata.o
  CC      lib/string_helpers.o
  CC      net/ipv6/mip6.o
  CC      net/ipv4/esp4.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_topology.o
  CC      drivers/usb/core/devio.o
  AR      drivers/usb/storage/built-in.a
  CC [M]  fs/fuse/ioctl.o
  CC      arch/x86/kernel/crash_core_64.o
  CC [M]  drivers/net/phy/broadcom.o
  CC [M]  drivers/net/ethernet/intel/igb/e1000_mbx.o
  CC      kernel/user-return-notifier.o
  AR      drivers/ata/built-in.a
  CC      lib/hexdump.o
  CC [M]  drivers/gpu/drm/i915/intel_wakeref.o
  LD [M]  drivers/net/usb/asix.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.o
  LD [M]  drivers/net/ethernet/intel/igc/igc.o
  CC      fs/exec.o
  CC      drivers/acpi/power.o
  CC      drivers/usb/core/notify.o
  AR      drivers/scsi/built-in.a
  CC      kernel/padata.o
  CC      drivers/usb/core/generic.o
  CC [M]  drivers/i2c/busses/i2c-designware-pcidrv.o
  CC      fs/btrfs/xattr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/memory.o
  AR      drivers/net/ethernet/microchip/built-in.a
  AR      drivers/net/ethernet/mscc/built-in.a
  AR      drivers/net/ethernet/neterion/built-in.a
  CC      lib/kstrtox.o
  CC      drivers/acpi/event.o
  AR      drivers/net/ethernet/netronome/built-in.a
  CC      drivers/acpi/evged.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ib.o
  CC      drivers/acpi/acpica/tbfadt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_pll.o
  CC      arch/x86/kernel/module.o
  CC [M]  drivers/thermal/intel/intel_menlow.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.o
  CC      kernel/jump_label.o
  CC [M]  drivers/net/ethernet/intel/igb/e1000_i210.o
  CC [M]  drivers/gpu/drm/i915/vlv_sideband.o
  CC      arch/x86/kernel/early_printk.o
  HOSTCC  drivers/gpu/drm/xe/xe_gen_wa_oob
  AR      drivers/thermal/intel/built-in.a
  CC      fs/btrfs/ordered-data.o
  CC [M]  drivers/net/mii.o
  CC      drivers/usb/host/xhci-hub.o
  CC      drivers/acpi/acpica/tbfind.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_ads.o
  CC      drivers/usb/host/xhci-dbg.o
  LD [M]  fs/fuse/fuse.o
  CC      lib/debug_info.o
  CC      net/ipv4/esp4_offload.o
  CC [M]  drivers/net/ethernet/intel/igb/igb_ptp.o
  CC      arch/x86/kernel/hpet.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_ct.o
  CC      drivers/acpi/sysfs.o
  CC [M]  drivers/net/ethernet/intel/igb/igb_hwmon.o
  CC [M]  drivers/net/mdio.o
  CC      net/ipv6/addrconf_core.o
  CC [M]  drivers/net/phy/lxt.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_lib.o
  CC      fs/pipe.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.o
  AR      drivers/i2c/busses/built-in.a
  AR      drivers/thermal/tegra/built-in.a
  LD [M]  drivers/i2c/busses/i2c-designware-pci.o
  AR      drivers/thermal/mediatek/built-in.a
  CC      drivers/acpi/property.o
  CC      drivers/acpi/acpi_cmos_rtc.o
  CC [M]  drivers/net/phy/realtek.o
  AR      drivers/i2c/built-in.a
  CC      net/ipv6/exthdrs_core.o
  CC      drivers/acpi/acpica/tbinstal.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/mm.o
  CC      drivers/acpi/acpica/tbprint.o
  CC      drivers/acpi/x86/apple.o
  CC [M]  drivers/net/tun.o
  CC      kernel/context_tracking.o
  CC      kernel/iomem.o
  CC      drivers/thermal/thermal_core.o
  AR      drivers/net/ethernet/ni/built-in.a
  AR      drivers/net/ethernet/packetengines/built-in.a
  AR      drivers/net/ethernet/realtek/built-in.a
  CC [M]  drivers/net/ethernet/realtek/8139cp.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.o
  AR      drivers/net/ethernet/renesas/built-in.a
  AR      drivers/net/ethernet/sfc/built-in.a
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_sync.o
  CC      kernel/rseq.o
  CC [M]  drivers/gpu/drm/drm_aperture.o
  CC      fs/btrfs/extent_io.o
  CC [M]  drivers/gpu/drm/drm_atomic.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.o
  CC      drivers/acpi/acpica/tbutils.o
  CC      drivers/usb/core/quirks.o
  CC      drivers/acpi/acpica/tbxface.o
  CC [M]  drivers/net/veth.o
  CC      drivers/acpi/acpica/tbxfload.o
  CC      fs/btrfs/volumes.o
  CC [M]  drivers/gpu/drm/drm_atomic_uapi.o
  CC [M]  drivers/net/ethernet/realtek/8139too.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.o
  AR      drivers/net/ethernet/smsc/built-in.a
  CC [M]  drivers/net/ethernet/smsc/smsc9420.o
  CC      arch/x86/kernel/amd_nb.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_debugfs.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.o
  CC      drivers/watchdog/watchdog_core.o
  CC      drivers/watchdog/watchdog_dev.o
  CC [M]  drivers/md/persistent-data/dm-array.o
  CC      lib/iomap.o
  CC      drivers/watchdog/softdog.o
  CC      net/ipv4/netfilter.o
  CC [M]  drivers/md/persistent-data/dm-bitset.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/object.o
  GZIP    kernel/config_data.gz
  CC      fs/namei.o
  CC [M]  drivers/net/phy/smsc.o
  CC      drivers/opp/core.o
  CC      net/ipv4/inet_diag.o
  CC      net/ipv6/ip6_checksum.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.o
  CC      mm/hugetlb_vmemmap.o
  CC [M]  drivers/gpu/drm/i915/vlv_suspend.o
  CC      net/ipv4/tcp_diag.o
  CC      drivers/acpi/acpica/tbxfroot.o
  CC      net/ipv6/ip6_icmp.o
  CC [M]  fs/cifs/inode.o
  CC      drivers/usb/core/devices.o
  LD [M]  drivers/net/ethernet/intel/igb/igb.o
  CC      drivers/usb/serial/usb-serial.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/oproxy.o
  CC      fs/fcntl.o
  CC      kernel/configs.o
  CC      drivers/usb/core/phy.o
  CC      arch/x86/kernel/kvm.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_hwconfig.o
  CC      drivers/usb/host/xhci-trace.o
  CC      drivers/acpi/acpica/utaddress.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_log.o
  CC [M]  drivers/gpu/drm/i915/soc/intel_dram.o
  CC [M]  drivers/gpu/drm/drm_auth.o
  CC      lib/pci_iomap.o
  CC      net/ipv6/output_core.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/option.o
  CC      drivers/usb/host/xhci-debugfs.o
  CC [M]  drivers/md/persistent-data/dm-block-manager.o
  CC      drivers/thermal/thermal_sysfs.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.o
  AR      drivers/watchdog/built-in.a
  CC      fs/ioctl.o
  AR      kernel/built-in.a
  CC [M]  drivers/gpu/drm/drm_blend.o
  CC [M]  drivers/gpu/drm/drm_bridge.o
  CC      fs/readdir.o
  LD [M]  drivers/net/phy/aquantia.o
  AR      drivers/net/phy/built-in.a
  CC      drivers/usb/serial/generic.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_pc.o
  CC      mm/sparse.o
  CC [M]  fs/cifs/link.o
  CC      mm/sparse-vmemmap.o
  CC      drivers/thermal/thermal_trip.o
  CC      drivers/acpi/acpica/utalloc.o
  CC      drivers/usb/core/port.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_virt.o
  CC      net/ipv6/protocol.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.o
  CC      net/ipv4/udp_diag.o
  CC      drivers/acpi/acpica/utascii.o
  CC      drivers/cpufreq/cpufreq.o
  AR      drivers/usb/misc/built-in.a
  CC [M]  drivers/usb/misc/ftdi-elan.o
  CC [M]  drivers/gpu/drm/i915/soc/intel_gmch.o
  CC      lib/iomap_copy.o
  CC [M]  drivers/net/ethernet/realtek/r8169_main.o
  CC [M]  drivers/net/ethernet/realtek/r8169_firmware.o
  CC      drivers/cpuidle/governors/menu.o
  CC [M]  drivers/md/persistent-data/dm-space-map-common.o
  CC      drivers/cpuidle/cpuidle.o
  CC      arch/x86/kernel/kvmclock.o
  CC [M]  fs/cifs/misc.o
  CC      drivers/cpufreq/freq_table.o
  CC      drivers/cpuidle/governors/haltpoll.o
  CC      lib/devres.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/ramht.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/subdev.o
  CC      drivers/thermal/thermal_helpers.o
  CC      drivers/opp/cpu.o
  CC      drivers/acpi/acpica/utbuffer.o
  CC [M]  drivers/gpu/drm/drm_cache.o
  CC [M]  fs/cifs/netmisc.o
  CC      fs/btrfs/async-thread.o
  CC      drivers/cpufreq/cpufreq_performance.o
  CC [M]  drivers/md/persistent-data/dm-space-map-disk.o
  CC      arch/x86/kernel/paravirt.o
  CC      drivers/usb/serial/bus.o
  CC [M]  drivers/gpu/drm/drm_client.o
  CC      drivers/usb/host/xhci-pci.o
  CC      arch/x86/kernel/pvclock.o
  CC      fs/select.o
  CC      net/ipv4/tcp_cubic.o
  CC      drivers/opp/debugfs.o
  CC      drivers/usb/core/hcd-pci.o
  CC      drivers/thermal/thermal_hwmon.o
  CC      drivers/thermal/gov_fair_share.o
  CC      mm/mmu_notifier.o
  CC      drivers/cpufreq/cpufreq_ondemand.o
  CC      drivers/acpi/acpica/utcksum.o
  CC      net/ipv6/ip6_offload.o
  CC [M]  drivers/gpu/drm/i915/soc/intel_pch.o
  CC      drivers/thermal/gov_step_wise.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_submit.o
  CC      drivers/usb/gadget/udc/core.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.o
  CC      drivers/usb/gadget/udc/trace.o
  AR      drivers/usb/gadget/function/built-in.a
  AR      drivers/usb/gadget/legacy/built-in.a
  CC      drivers/usb/gadget/usbstring.o
  CC      lib/check_signature.o
  AR      drivers/cpuidle/governors/built-in.a
  CC      drivers/cpuidle/driver.o
  CC [M]  drivers/gpu/drm/drm_client_modeset.o
  CC      arch/x86/kernel/pcspeaker.o
  CC      arch/x86/kernel/check.o
  CC [M]  drivers/gpu/drm/xe/xe_hw_engine.o
  CC [M]  drivers/gpu/drm/xe/xe_hw_fence.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vf_error.o
  CC      drivers/thermal/gov_user_space.o
  CC      drivers/usb/serial/console.o
  CC [M]  fs/cifs/smbencrypt.o
  CC      drivers/acpi/acpica/utcopy.o
  CC      drivers/acpi/acpica/utexcep.o
  CC [M]  drivers/md/persistent-data/dm-space-map-metadata.o
  CC      lib/interval_tree.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/uevent.o
  CC      drivers/cpufreq/cpufreq_governor.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82598.o
  CC [M]  drivers/md/persistent-data/dm-transaction-manager.o
  AR      drivers/opp/built-in.a
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_sched.o
  CC      drivers/mmc/core/core.o
  CC      drivers/mmc/host/sdhci.o
  CC [M]  fs/cifs/transport.o
  CC      drivers/cpuidle/governor.o
  CC      drivers/mmc/host/sdhci-pci-core.o
  CC [M]  drivers/usb/class/usbtmc.o
  CC      lib/assoc_array.o
  CC      drivers/usb/core/usb-acpi.o
  CC      lib/list_debug.o
  CC      arch/x86/kernel/uprobes.o
  CC      drivers/usb/gadget/config.o
  CC [M]  drivers/gpu/drm/drm_color_mgmt.o
  AR      drivers/thermal/built-in.a
  CC      mm/ksm.o
  AR      drivers/ufs/built-in.a
  CC      arch/x86/kernel/perf_regs.o
  CC      drivers/cpufreq/cpufreq_governor_attr_set.o
  CC      drivers/md/md.o
  CC      drivers/mmc/host/sdhci-pci-o2micro.o
  AR      drivers/usb/host/built-in.a
  CC [M]  drivers/gpu/drm/drm_connector.o
  CC      drivers/acpi/acpica/utdebug.o
  CC      drivers/cpuidle/sysfs.o
  CC      lib/debugobjects.o
  CC      net/ipv4/xfrm4_policy.o
  CC      net/ipv4/xfrm4_state.o
  CC      mm/slub.o
  CC      drivers/usb/serial/ftdi_sio.o
  CC      drivers/cpufreq/acpi-cpufreq.o
  CC      drivers/acpi/acpica/utdecode.o
  CC      drivers/acpi/acpica/utdelete.o
  CC [M]  drivers/gpu/drm/i915/i915_memcpy.o
  CC [M]  drivers/gpu/drm/i915/i915_mm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/nvfw/fw.o
  CC      drivers/cpuidle/poll_state.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/nvfw/hs.o
  CC      net/ipv4/xfrm4_input.o
  CC [M]  drivers/md/persistent-data/dm-btree.o
  CC [M]  drivers/md/persistent-data/dm-btree-remove.o
  CC      net/ipv6/tcpv6_offload.o
  CC [M]  fs/cifs/cached_dir.o
  AR      drivers/net/ethernet/socionext/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvkm/nvfw/ls.o
  AR      drivers/net/ethernet/vertexcom/built-in.a
  CC      drivers/cpufreq/intel_pstate.o
  CC      net/ipv4/xfrm4_output.o
  CC      net/ipv4/xfrm4_protocol.o
  CC [M]  net/ipv4/ip_tunnel.o
  CC [M]  drivers/gpu/drm/drm_crtc.o
  AR      drivers/usb/gadget/udc/built-in.a
  CC [M]  drivers/gpu/drm/i915/i915_sw_fence.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/nvfw/acr.o
  CC [M]  fs/cifs/cifs_unicode.o
  AR      drivers/usb/core/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvkm/nvfw/flcn.o
  CC      drivers/acpi/acpica/uterror.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/base.o
  CC [M]  drivers/gpu/drm/i915/i915_sw_fence_work.o
  CC      drivers/usb/gadget/epautoconf.o
  CC [M]  drivers/md/persistent-data/dm-btree-spine.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ids.o
  CC      arch/x86/kernel/tracepoint.o
  CC      fs/dcache.o
  CC      drivers/cpuidle/cpuidle-haltpoll.o
  CC      drivers/acpi/acpica/uteval.o
  CC      drivers/mmc/host/sdhci-pci-arasan.o
  AR      drivers/leds/trigger/built-in.a
  CC [M]  drivers/leds/trigger/ledtrig-audio.o
  AR      drivers/net/ethernet/wangxun/built-in.a
  CC [M]  drivers/gpu/drm/i915/i915_syncmap.o
  CC [M]  drivers/gpu/drm/i915/i915_user_extensions.o
  CC      mm/migrate.o
  CC      arch/x86/kernel/itmt.o
  AR      drivers/cpuidle/built-in.a
  CC      lib/bitrev.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/cmdq.o
  CC      drivers/mmc/host/sdhci-pci-dwc-mshc.o
  CC [M]  net/ipv4/udp_tunnel_core.o
  CC      drivers/mmc/host/sdhci-pci-gli.o
  CC      net/ipv6/exthdrs_offload.o
  CC      drivers/acpi/acpica/utglobal.o
  CC      drivers/usb/gadget/composite.o
  CC [M]  drivers/net/ethernet/realtek/r8169_phy_config.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.o
  AR      drivers/net/ethernet/xilinx/built-in.a
  CC      drivers/acpi/acpica/uthex.o
  CC      drivers/acpi/acpica/utids.o
  CC [M]  drivers/gpu/drm/xe/xe_huc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/fw.o
  CC      drivers/acpi/acpica/utinit.o
  CC      drivers/usb/gadget/functions.o
  CC      fs/btrfs/ioctl.o
  CC [M]  net/ipv4/udp_tunnel_nic.o
  CC      arch/x86/kernel/umip.o
  CC      drivers/usb/serial/pl2303.o
  CC      arch/x86/kernel/unwind_orc.o
  AR      drivers/leds/blink/built-in.a
  AR      drivers/leds/simple/built-in.a
  CC      drivers/leds/led-core.o
  CC      drivers/leds/led-class.o
  CC      drivers/mmc/core/bus.o
  CC      lib/crc16.o
  CC      lib/crc-t10dif.o
  CC [M]  drivers/gpu/drm/i915/i915_ioc32.o
  LD [M]  drivers/md/persistent-data/dm-persistent-data.o
  CC      drivers/mmc/core/host.o
  CC [M]  fs/cifs/nterr.o
  CC      drivers/leds/led-triggers.o
  CC      drivers/acpi/x86/utils.o
  CC [M]  drivers/gpu/drm/i915/i915_debugfs.o
  CC [M]  drivers/gpu/drm/i915/i915_debugfs_params.o
  CC      drivers/mmc/host/sdhci-acpi.o
  CC      drivers/md/md-bitmap.o
  CC [M]  fs/cifs/cifsencrypt.o
  CC      drivers/mmc/core/mmc.o
  CC [M]  drivers/gpu/drm/drm_displayid.o
  CC      drivers/md/md-autodetect.o
  CC      drivers/acpi/acpica/utlock.o
  CC      drivers/acpi/acpica/utmath.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/msgq.o
  CC [M]  fs/cifs/readdir.o
  CC      drivers/acpi/acpica/utmisc.o
  CC      net/ipv6/inet6_hashtables.o
  CC      fs/inode.o
  HOSTCC  lib/gen_crc32table
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.o
  CC [M]  drivers/gpu/drm/xe/xe_huc_debugfs.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_debugfs.o
  CC [M]  drivers/gpu/drm/i915/display/intel_pipe_crc.o
  CC      net/ipv6/mcast_snoop.o
  CC      drivers/md/dm-uevent.o
  CC      lib/libcrc32c.o
  CC      drivers/usb/gadget/configfs.o
  AR      drivers/net/ethernet/synopsys/built-in.a
  CC      drivers/usb/gadget/u_f.o
  CC      fs/attr.o
  CC      mm/migrate_device.o
  LD [M]  drivers/net/ethernet/realtek/r8169.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/qmgr.o
  CC      drivers/acpi/acpica/utmutex.o
  CC [M]  fs/cifs/ioctl.o
  CC      arch/x86/kernel/callthunks.o
  CC      mm/huge_memory.o
  AR      drivers/firmware/arm_ffa/built-in.a
  AR      drivers/firmware/arm_scmi/built-in.a
  CC      mm/khugepaged.o
  AR      drivers/firmware/broadcom/built-in.a
  AR      drivers/firmware/cirrus/built-in.a
  CC [M]  drivers/gpu/drm/drm_drv.o
  AR      drivers/firmware/meson/built-in.a
  AR      drivers/leds/built-in.a
  CC [M]  drivers/gpu/drm/drm_dumb_buffers.o
  CC [M]  drivers/gpu/drm/i915/i915_pmu.o
  CC      drivers/acpi/acpica/utnonansi.o
  CC      drivers/firmware/efi/efi-bgrt.o
  AR      drivers/usb/serial/built-in.a
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_sysfs.o
  CC      drivers/acpi/x86/s2idle.o
  CC      drivers/acpi/acpica/utobject.o
  AR      drivers/cpufreq/built-in.a
  CC      drivers/firmware/efi/libstub/efi-stub-helper.o
  CC      drivers/md/dm.o
  CC      drivers/acpi/acpica/utosi.o
  CC      drivers/firmware/efi/efi.o
  CC      lib/xxhash.o
  AR      net/ipv4/built-in.a
  CC [M]  drivers/gpu/drm/i915/gt/gen2_engine_cs.o
  CC [M]  drivers/gpu/drm/i915/gt/gen6_engine_cs.o
  CC [M]  drivers/gpu/drm/drm_edid.o
  CC      drivers/mmc/host/cqhci-core.o
  AR      drivers/firmware/imx/built-in.a
  AR      drivers/firmware/psci/built-in.a
  AR      drivers/firmware/smccc/built-in.a
  CC      drivers/md/dm-table.o
  CC      drivers/firmware/efi/vars.o
  CC [M]  drivers/gpu/drm/xe/xe_irq.o
  CC [M]  net/ipv6/ip6_udp_tunnel.o
  CC      drivers/md/dm-target.o
  CC      mm/page_counter.o
  AR      drivers/firmware/tegra/built-in.a
  AR      drivers/firmware/xilinx/built-in.a
  CC      drivers/firmware/dmi_scan.o
  CC      fs/bad_inode.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_debugfs.o
  CC      drivers/acpi/acpica/utownerid.o
  LD [M]  net/ipv4/udp_tunnel.o
  CC      drivers/acpi/debugfs.o
  AR      drivers/net/ethernet/pensando/built-in.a
  CC      drivers/firmware/dmi-sysfs.o
  CC [M]  drivers/gpu/drm/drm_encoder.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/v1.o
  CC      drivers/acpi/acpica/utpredef.o
  CC      arch/x86/kernel/mmconf-fam10h_64.o
  CC      lib/genalloc.o
  CC      arch/x86/kernel/vsmp_64.o
  CC      mm/memcontrol.o
  CC      drivers/acpi/acpica/utresdecode.o
  CC      drivers/firmware/efi/libstub/gop.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_mmhub.o
  CC      fs/file.o
  CC [M]  fs/cifs/sess.o
  AR      drivers/crypto/stm32/built-in.a
  AR      drivers/crypto/xilinx/built-in.a
  AR      drivers/crypto/hisilicon/built-in.a
  AR      drivers/crypto/keembay/built-in.a
  CC [M]  fs/cifs/export.o
  AR      drivers/crypto/built-in.a
  CC      drivers/acpi/acpica/utresrc.o
  CC      drivers/clocksource/acpi_pm.o
  CC      drivers/mmc/core/mmc_ops.o
  CC      drivers/clocksource/i8253.o
  CC      fs/filesystems.o
  CC      drivers/acpi/acpi_lpat.o
  CC      mm/vmpressure.o
  CC      drivers/firmware/efi/reboot.o
  CC [M]  drivers/gpu/drm/xe/xe_lrc.o
  CC      drivers/firmware/dmi-id.o
  AR      drivers/usb/gadget/built-in.a
  CC [M]  fs/cifs/unc.o
  AR      drivers/usb/built-in.a
  AR      net/ipv6/built-in.a
  CC      drivers/hid/hid-core.o
  CC      drivers/hid/usbhid/hid-core.o
  AR      drivers/staging/media/built-in.a
  AR      drivers/staging/built-in.a
  CC [M]  fs/cifs/winucase.o
  CC      drivers/hid/usbhid/hiddev.o
  CC      fs/namespace.o
  CC      drivers/md/dm-linear.o
  AR      drivers/platform/x86/amd/built-in.a
  CC [M]  drivers/gpu/drm/drm_file.o
  CC      drivers/platform/x86/p2sb.o
  CC      drivers/platform/x86/intel/pmc/core.o
  AR      arch/x86/kernel/built-in.a
  AR      arch/x86/built-in.a
  CC      drivers/platform/x86/pmc_atom.o
  CC      drivers/acpi/acpica/utstate.o
  CC [M]  drivers/platform/x86/wmi.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/gm200.o
  CC      drivers/acpi/acpica/utstring.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/gp102.o
  CC      fs/seq_file.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/ga100.o
  CC      drivers/firmware/memmap.o
  CC      fs/xattr.o
  CC [M]  drivers/gpu/drm/i915/gt/gen6_ppgtt.o
  AR      net/built-in.a
  CC [M]  drivers/gpu/drm/i915/gt/gen7_renderclear.o
  CC      lib/percpu_counter.o
  CC      drivers/md/dm-stripe.o
  CC      drivers/acpi/acpica/utstrsuppt.o
  CC      lib/fault-inject.o
  CC      drivers/firmware/efi/libstub/secureboot.o
  AR      drivers/clocksource/built-in.a
  CC      drivers/hid/hid-input.o
  CC [M]  drivers/mmc/host/sdhci-pltfm.o
  CC      drivers/mailbox/mailbox.o
  CC      drivers/devfreq/devfreq.o
  CC [M]  drivers/platform/x86/intel/pmt/class.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_hdp.o
  CC      drivers/powercap/powercap_sys.o
  CC [M]  drivers/devfreq/governor_simpleondemand.o
  CC [M]  drivers/gpu/drm/xe/xe_migrate.o
  CC      fs/libfs.o
  CC      fs/fs-writeback.o
  CC      drivers/platform/x86/intel/turbo_max_3.o
  CC      drivers/mmc/core/sd.o
  CC      drivers/acpi/acpica/utstrtoul64.o
  CC [M]  drivers/platform/x86/wmi-bmof.o
  CC      lib/syscall.o
  CC [M]  drivers/devfreq/governor_performance.o
  AR      drivers/platform/surface/built-in.a
  CC      fs/pnode.o
  CC [M]  drivers/platform/x86/mxm-wmi.o
  CC      drivers/hid/hid-quirks.o
  CC [M]  drivers/gpu/drm/xe/xe_mmio.o
  CC [M]  drivers/platform/x86/intel_ips.o
  LD [M]  drivers/net/ethernet/intel/ixgbe/ixgbe.o
  CC      fs/btrfs/locking.o
  CC      drivers/firmware/efi/libstub/tpm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/ga102.o
  CC      drivers/platform/x86/intel/pmc/spt.o
  CC      drivers/platform/x86/intel/pmc/cnp.o
  CC      drivers/mailbox/pcc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/base.o
  CC      drivers/platform/x86/intel/pmc/icl.o
  AR      drivers/mmc/host/built-in.a
  CC      drivers/firmware/efi/libstub/file.o
  AR      drivers/net/ethernet/built-in.a
  CC      drivers/firmware/efi/libstub/mem.o
  CC      drivers/firmware/efi/libstub/random.o
  AR      drivers/net/built-in.a
  CC [M]  drivers/gpu/drm/drm_fourcc.o
  CC      drivers/acpi/acpi_lpit.o
  CC      drivers/acpi/acpica/utxface.o
  CC [M]  drivers/platform/x86/intel/pmt/telemetry.o
  CC      fs/splice.o
  CC      mm/swap_cgroup.o
  CC      drivers/md/dm-ioctl.o
  CC [M]  fs/cifs/smb2ops.o
  CC      drivers/md/dm-io.o
  CC      drivers/hid/hid-debug.o
  CC      drivers/powercap/intel_rapl_common.o
  CC      lib/dynamic_debug.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.o
  CC      fs/btrfs/orphan.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/lsfw.o
  CC      drivers/hid/hidraw.o
  CC [M]  drivers/gpu/drm/i915/gt/gen8_engine_cs.o
  CC      fs/btrfs/export.o
  CC [M]  drivers/gpu/drm/i915/gt/gen8_ppgtt.o
  AR      drivers/hid/usbhid/built-in.a
  CC [M]  fs/cifs/smb2maperror.o
  CC      drivers/hid/hid-generic.o
  CC      drivers/platform/x86/intel/pmc/tgl.o
  CC      drivers/acpi/acpica/utxfinit.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_csa.o
  CC      drivers/powercap/intel_rapl_msr.o
  CC      drivers/acpi/acpica/utxferror.o
  CC [M]  drivers/platform/x86/intel/vsec.o
  CC      drivers/acpi/prmt.o
  CC      drivers/firmware/efi/libstub/randomalloc.o
  CC      mm/hugetlb_cgroup.o
  AR      drivers/mailbox/built-in.a
  CC      fs/btrfs/tree-log.o
  CC      fs/btrfs/free-space-cache.o
  CC [M]  drivers/gpu/drm/xe/xe_mocs.o
  CC [M]  drivers/gpu/drm/xe/xe_module.o
  CC      drivers/firmware/efi/libstub/pci.o
  CC [M]  fs/cifs/smb2transport.o
  CC [M]  drivers/platform/x86/intel/pmt/crashlog.o
  LD [M]  drivers/platform/x86/intel/pmt/pmt_class.o
  CC      lib/errname.o
  CC      drivers/acpi/acpica/utxfmutex.o
  CC      drivers/firmware/efi/memattr.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_breadcrumbs.o
  CC      drivers/hid/hid-a4tech.o
  CC      drivers/md/dm-kcopyd.o
  AR      drivers/devfreq/built-in.a
  CC      drivers/mmc/core/sd_ops.o
  CC [M]  drivers/gpu/drm/drm_framebuffer.o
  CC      mm/kmemleak.o
  CC      drivers/hid/hid-apple.o
  CC      drivers/platform/x86/intel/pmc/adl.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_context.o
  LD [M]  drivers/platform/x86/intel/pmt/pmt_telemetry.o
  CC      drivers/acpi/acpi_pcc.o
  CC      drivers/firmware/efi/tpm.o
  CC      lib/nlattr.o
  CC [M]  drivers/gpu/drm/xe/xe_pat.o
  CC      drivers/platform/x86/intel/pmc/mtl.o
  CC      drivers/hid/hid-belkin.o
  AR      drivers/acpi/acpica/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.o
  CC      drivers/firmware/efi/libstub/skip_spaces.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm20b.o
  CC      drivers/hid/hid-cherry.o
  AR      drivers/perf/built-in.a
  CC      drivers/hid/hid-chicony.o
  CC      drivers/hid/hid-cypress.o
  CC [M]  fs/cifs/smb2misc.o
  CC      drivers/acpi/ac.o
  CC      drivers/firmware/efi/libstub/lib-cmdline.o
  LD [M]  drivers/platform/x86/intel/pmt/pmt_crashlog.o
  CC      drivers/hid/hid-ezkey.o
  CC      fs/sync.o
  AR      drivers/powercap/built-in.a
  CC      drivers/firmware/efi/memmap.o
  CC [M]  drivers/gpu/drm/xe/xe_pci.o
  CC      drivers/firmware/efi/libstub/lib-ctype.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp102.o
  CC      drivers/firmware/efi/esrt.o
  CC      fs/utimes.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ras.o
  CC      drivers/firmware/efi/libstub/alignedmem.o
  CC [M]  drivers/gpu/drm/drm_gem.o
  CC      drivers/acpi/button.o
  CC [M]  drivers/gpu/drm/drm_ioctl.o
  CC      drivers/platform/x86/intel/pmc/pltdrv.o
  CC      lib/checksum.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp108.o
  CC      drivers/mmc/core/sdio.o
  CC      drivers/mmc/core/sdio_ops.o
  CC      fs/btrfs/zlib.o
  CC [M]  drivers/gpu/drm/drm_lease.o
  CC      drivers/firmware/efi/efi-pstore.o
  CC      lib/cpu_rmap.o
  CC      drivers/firmware/efi/libstub/relocate.o
  CC      drivers/md/dm-sysfs.o
  CC      drivers/md/dm-stats.o
  CC      drivers/acpi/fan_core.o
  CC      drivers/acpi/fan_attr.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_context_sseu.o
  CC [M]  fs/cifs/smb2pdu.o
  CC [M]  drivers/gpu/drm/drm_managed.o
  CC      drivers/hid/hid-kensington.o
  CC [M]  fs/cifs/smb2inode.o
  CC      fs/btrfs/lzo.o
  CC      drivers/hid/hid-lg.o
  CC [M]  drivers/gpu/drm/drm_mm.o
  CC      drivers/md/dm-rq.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/gv100.o
  CC [M]  drivers/gpu/drm/drm_mode_config.o
  CC [M]  drivers/gpu/drm/drm_mode_object.o
  CC      drivers/ras/ras.o
  CC      mm/page_isolation.o
  AR      drivers/hwtracing/intel_th/built-in.a
  AR      drivers/platform/x86/intel/pmc/built-in.a
  CC      fs/d_path.o
  CC [M]  drivers/platform/x86/intel/rst.o
  CC      drivers/ras/debugfs.o
  CC      drivers/android/binderfs.o
  CC      drivers/nvmem/core.o
  CC      drivers/firmware/efi/cper.o
  CC      lib/dynamic_queue_limits.o
  CC [M]  fs/cifs/smb2file.o
  CC [M]  fs/cifs/cifsacl.o
  CC      drivers/acpi/processor_driver.o
  CC [M]  drivers/gpu/drm/xe/xe_pcode.o
  CC [M]  drivers/uio/uio.o
  CC [M]  drivers/mtd/chips/chipreg.o
  CC [M]  drivers/gpu/drm/xe/xe_pm.o
  LD [M]  drivers/platform/x86/intel/intel_vsec.o
  CC      fs/stack.o
  CC [M]  drivers/vfio/pci/vfio_pci_core.o
  CC [M]  drivers/vfio/pci/vfio_pci_intrs.o
  CC      drivers/firmware/efi/libstub/printk.o
  CC      lib/glob.o
  CC      drivers/firmware/efi/libstub/vsprintf.o
  CC      drivers/mmc/core/sdio_bus.o
  CC [M]  drivers/vfio/pci/vfio_pci_rdwr.o
  CC      drivers/hid/hid-lg-g15.o
  CC      mm/early_ioremap.o
  CC      fs/fs_struct.o
  CC      drivers/firmware/efi/libstub/x86-stub.o
  CC      fs/btrfs/zstd.o
  AR      drivers/platform/x86/intel/built-in.a
  LD [M]  drivers/platform/x86/intel/intel-rst.o
  AR      drivers/platform/x86/built-in.a
  AR      drivers/platform/built-in.a
  CC [M]  drivers/pps/pps.o
  STUBCPY drivers/firmware/efi/libstub/alignedmem.stub.o
  STUBCPY drivers/firmware/efi/libstub/efi-stub-helper.stub.o
  CC      drivers/mmc/core/sdio_cis.o
  STUBCPY drivers/firmware/efi/libstub/file.stub.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_engine_cs.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp10b.o
  CC [M]  drivers/bluetooth/btusb.o
  CC      lib/strncpy_from_user.o
  CC [M]  drivers/bluetooth/btintel.o
  CC [M]  drivers/bluetooth/btbcm.o
  CC [M]  drivers/bluetooth/btrtl.o
  CC      drivers/acpi/processor_thermal.o
  CC [M]  drivers/mtd/mtdcore.o
  CC      drivers/acpi/processor_idle.o
  CC      lib/strnlen_user.o
  CC [M]  drivers/dca/dca-core.o
  CC [M]  drivers/ssb/main.o
  CC      drivers/hid/hid-microsoft.o
  CC [M]  drivers/ssb/scan.o
  CC      drivers/android/binder.o
  CC      lib/net_utils.o
  CC [M]  drivers/ssb/sprom.o
  CC      drivers/android/binder_alloc.o
  AR      drivers/ras/built-in.a
  CC [M]  drivers/vfio/pci/vfio_pci_config.o
  CC      lib/sg_pool.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_engine_heartbeat.o
  CC      fs/btrfs/compression.o
  CC [M]  drivers/gpu/drm/drm_modes.o
  CC      drivers/md/dm-io-rewind.o
  CC [M]  drivers/pps/kapi.o
  CC [M]  drivers/gpu/drm/xe/xe_preempt_fence.o
  CC [M]  drivers/vhost/net.o
  CC [M]  drivers/vhost/vhost.o
  CC      mm/cma.o
  AR      drivers/nvmem/built-in.a
  CC [M]  drivers/gpu/drm/drm_modeset_lock.o
  STUBCPY drivers/firmware/efi/libstub/gop.stub.o
  CC [M]  drivers/gpu/drm/xe/xe_pt.o
  CC [M]  drivers/vhost/iotlb.o
  CC      drivers/mmc/core/sdio_io.o
  CC      drivers/acpi/processor_throttling.o
  CC [M]  drivers/vfio/pci/vfio_pci.o
  CC      drivers/mmc/core/sdio_irq.o
  STUBCPY drivers/firmware/efi/libstub/lib-cmdline.stub.o
  CC      drivers/mmc/core/slot-gpio.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
  STUBCPY drivers/firmware/efi/libstub/printk.stub.o
  STUBCPY drivers/firmware/efi/libstub/random.stub.o
  STUBCPY drivers/firmware/efi/libstub/randomalloc.stub.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vm_cpu.o
  STUBCPY drivers/firmware/efi/libstub/relocate.stub.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/tu102.o
  STUBCPY drivers/firmware/efi/libstub/secureboot.stub.o
  STUBCPY drivers/firmware/efi/libstub/skip_spaces.stub.o
  STUBCPY drivers/firmware/efi/libstub/tpm.stub.o
  CC      fs/btrfs/delayed-ref.o
  STUBCPY drivers/firmware/efi/libstub/vsprintf.stub.o
  CC      fs/btrfs/relocation.o
  STUBCPY drivers/firmware/efi/libstub/x86-stub.stub.o
  AR      drivers/firmware/efi/libstub/lib.a
  CC      drivers/firmware/efi/cper_cxl.o
  CC      fs/btrfs/delayed-inode.o
  CC [M]  drivers/pps/sysfs.o
  CC [M]  drivers/gpu/drm/xe/xe_pt_walk.o
  CC      lib/stackdepot.o
  CC [M]  drivers/dca/dca-sysfs.o
  CC [M]  drivers/mtd/mtdsuper.o
  CC [M]  drivers/ssb/pci.o
  CC [M]  drivers/mtd/mtdconcat.o
  CC [M]  drivers/mtd/mtdpart.o
  CC      drivers/hid/hid-monterey.o
  LD [M]  drivers/vhost/vhost_iotlb.o
  CC [M]  drivers/mtd/mtdchar.o
  CC      fs/btrfs/scrub.o
  CC [M]  drivers/vfio/vfio_main.o
  CC      drivers/md/dm-builtin.o
  CC [M]  drivers/gpu/drm/xe/xe_query.o
  CC [M]  drivers/md/dm-bufio.o
  CC [M]  drivers/gpu/drm/drm_plane.o
  CC      drivers/acpi/processor_perflib.o
  LD [M]  drivers/vfio/pci/vfio-pci.o
  CC      drivers/acpi/container.o
  LD [M]  drivers/pps/pps_core.o
  CC [M]  drivers/vfio/group.o
  CC [M]  drivers/gpu/drm/drm_prime.o
  CC      drivers/firmware/efi/runtime-wrappers.o
  CC      fs/btrfs/backref.o
  CC [M]  drivers/ssb/pcihost_wrapper.o
  CC [M]  drivers/gpu/drm/drm_print.o
  CC      drivers/mmc/core/regulator.o
  CC      mm/secretmem.o
  CC [M]  fs/cifs/fs_context.o
  LD [M]  drivers/dca/dca.o
  CC [M]  fs/cifs/dns_resolve.o
  CC      lib/ucs2_string.o
  ASN.1   fs/cifs/cifs_spnego_negtokeninit.asn1.[ch]
  CC      drivers/acpi/thermal.o
  CC      lib/sbitmap.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/ga100.o
  LD [M]  drivers/vfio/pci/vfio-pci-core.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.o
  CC [M]  drivers/gpu/drm/xe/xe_reg_sr.o
  CC [M]  drivers/gpu/drm/drm_property.o
  CC      fs/btrfs/ulist.o
  CC      drivers/acpi/acpi_memhotplug.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.o
  AR      drivers/hid/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/ga102.o
  CC [M]  drivers/vfio/iova_bitmap.o
  CC [M]  fs/cifs/smb1ops.o
  CC      drivers/firmware/efi/dev-path-parser.o
  CC [M]  drivers/ssb/driver_chipcommon.o
  CC [M]  drivers/md/dm-bio-prison-v1.o
  CC [M]  drivers/md/dm-bio-prison-v2.o
  CC [M]  drivers/vfio/container.o
  CC      mm/userfaultfd.o
  CC [M]  drivers/ssb/driver_chipcommon_pmu.o
  CC [M]  drivers/md/dm-crypt.o
  CC      drivers/acpi/ioapic.o
  CC      mm/memremap.o
  CC      drivers/mmc/core/debugfs.o
  CC      drivers/acpi/battery.o
  CC [M]  drivers/vfio/virqfd.o
  CC [M]  fs/cifs/cifssmb.o
  CC [M]  fs/cifs/cifs_spnego_negtokeninit.asn1.o
  CC      drivers/firmware/efi/apple-properties.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.o
  CC [M]  drivers/gpu/drm/drm_syncobj.o
  CC      drivers/acpi/hed.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.o
  LD [M]  drivers/mtd/mtd.o
  CC [M]  drivers/gpu/drm/xe/xe_reg_whitelist.o
  CC [M]  fs/cifs/asn1.o
  CC      lib/group_cpus.o
  CC [M]  drivers/gpu/drm/xe/xe_rtp.o
  LD [M]  drivers/vhost/vhost_net.o
  CC [M]  drivers/vfio/vfio_iommu_type1.o
  CC      fs/btrfs/qgroup.o
  CC      drivers/acpi/bgrt.o
  CC      fs/btrfs/send.o
  CC [M]  drivers/gpu/drm/drm_sysfs.o
  CC [M]  drivers/gpu/drm/drm_trace_points.o
  CC      drivers/mmc/core/block.o
  CC [M]  lib/asn1_decoder.o
  CC      mm/hmm.o
  CC      drivers/firmware/efi/earlycon.o
  CC      drivers/firmware/efi/cper-x86.o
  CC [M]  drivers/gpu/drm/drm_vblank.o
  GEN     xe_wa_oob.c xe_wa_oob.h
  GEN     xe_wa_oob.c xe_wa_oob.h
  CC [M]  drivers/md/dm-thin.o
  CC      fs/btrfs/dev-replace.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/base.o
  CC [M]  drivers/ssb/driver_pcicore.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_umc.o
  CC      fs/statfs.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/smu_v11_0_i2c.o
  CC [M]  drivers/gpu/drm/xe/xe_sa.o
  CC      drivers/mmc/core/queue.o
  CC      fs/btrfs/raid56.o
  CC [M]  drivers/gpu/drm/drm_vblank_work.o
  CC [M]  drivers/gpu/drm/drm_vma_manager.o
  CC [M]  drivers/gpu/drm/xe/xe_sched_job.o
  CC [M]  drivers/gpu/drm/xe/xe_step.o
  GEN     lib/oid_registry_data.c
  CC      drivers/acpi/cppc_acpi.o
  CC      fs/btrfs/uuid-tree.o
  CC      drivers/acpi/spcr.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_engine_pm.o
  CC      mm/memfd.o
  CC [M]  lib/oid_registry.o
  CC      mm/bootmem_info.o
  CC      drivers/acpi/acpi_pad.o
  CC [M]  drivers/gpu/drm/drm_writeback.o
  CC [M]  drivers/acpi/acpi_video.o
../drivers/gpu/drm/i915/gt/intel_engine_cs.c:1525: warning: expecting prototype for intel_engines_cleanup_common(). Prototype was for intel_engine_cleanup_common() instead
  CC      fs/fs_pin.o
  LD [M]  drivers/vfio/vfio.o
  CC      fs/nsfs.o
  AR      drivers/firmware/efi/built-in.a
  CC [M]  drivers/gpu/drm/i915/gt/intel_engine_user.o
  AR      drivers/firmware/built-in.a
  CC      fs/fs_types.o
  CC      fs/btrfs/props.o
  CC [M]  drivers/gpu/drm/lib/drm_random.o
  CC [M]  drivers/gpu/drm/drm_ioc32.o
  LD [M]  drivers/ssb/ssb.o
  CC [M]  drivers/gpu/drm/drm_panel.o
  CC [M]  drivers/gpu/drm/drm_pci.o
  CC [M]  drivers/acpi/video_detect.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_execlists_submission.o
  CC [M]  drivers/gpu/drm/drm_debugfs.o
  CC      fs/btrfs/free-space-tree.o
  CC [M]  drivers/gpu/drm/drm_debugfs_crc.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_ggtt.o
  CC [M]  drivers/gpu/drm/xe/xe_sync.o
  CC      fs/fs_context.o
  AR      lib/lib.a
  CC      fs/fs_parser.o
  CC [M]  drivers/md/dm-thin-metadata.o
  GEN     lib/crc32table.h
  CC      lib/crc32.o
  LD [M]  drivers/md/dm-bio-prison.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/g84.o
  AR      drivers/md/built-in.a
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_rap.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_fw_attestation.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.o
  CC      fs/fsopen.o
  CC      fs/init.o
  CC [M]  drivers/gpu/drm/xe/xe_tile.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_eeprom.o
  CC [M]  drivers/gpu/drm/drm_edid_load.o
  CC [M]  drivers/gpu/drm/drm_panel_orientation_quirks.o
  AR      mm/built-in.a
  CC [M]  drivers/gpu/drm/drm_buddy.o
  CC      fs/kernel_read_file.o
  CC      fs/btrfs/tree-checker.o
  CC      fs/mnt_idmapping.o
  CC      fs/btrfs/space-info.o
  CC      fs/btrfs/block-rsv.o
  CC      fs/btrfs/delalloc-space.o
  AR      drivers/acpi/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.o
  AR      lib/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/gk20a.o
  CC [M]  drivers/gpu/drm/drm_gem_shmem_helper.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_ggtt_fencing.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.o
  CC      fs/btrfs/block-group.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/gm107.o
  CC      fs/btrfs/discard.o
  CC [M]  drivers/gpu/drm/drm_suballoc.o
  AR      drivers/mmc/core/built-in.a
  CC      fs/btrfs/reflink.o
  AR      drivers/mmc/built-in.a
  CC      fs/btrfs/subpage.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/gm20b.o
  CC      fs/btrfs/tree-mod-log.o
  CC      fs/btrfs/extent-io-tree.o
  CC [M]  drivers/gpu/drm/xe/xe_trace.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/tu102.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_clock_utils.o
  CC [M]  drivers/gpu/drm/drm_gem_ttm_helper.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_sys_mgr.o
  CC      fs/btrfs/fs.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_stolen_mgr.o
  CC      fs/remap_range.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.o
  CC      fs/buffer.o
  CC      fs/mpage.o
  CC      fs/proc_namespace.o
  CC      fs/direct-io.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/bit.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/boost.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_mca.o
  LD [M]  drivers/acpi/video.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_lsdma.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.o
  CC [M]  drivers/gpu/drm/drm_atomic_helper.o
  AR      drivers/android/built-in.a
  CC [M]  drivers/gpu/drm/drm_atomic_state_helper.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_debugfs.o
  LD [M]  drivers/md/dm-thin-pool.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/conn.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/cstep.o
  CC      fs/btrfs/messages.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.o
  CC [M]  drivers/gpu/drm/drm_bridge_connector.o
  CC      fs/eventpoll.o
  CC      fs/anon_inodes.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_vram_mgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.o
  CC [M]  drivers/gpu/drm/drm_crtc_helper.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/disp.o
  CC [M]  drivers/gpu/drm/xe/xe_tuning.o
  CC      fs/signalfd.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/dp.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.o
  CC      fs/timerfd.o
  CC      fs/eventfd.o
  CC      fs/userfaultfd.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/extdev.o
  CC      fs/btrfs/bio.o
  CC      fs/btrfs/lru_cache.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/fan.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_pmu.o
  CC      fs/btrfs/acl.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/cik.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/cik_ih.o
  CC      fs/aio.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/dce_v8_0.o
  CC      fs/locks.o
  CC      fs/binfmt_script.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v7_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/gpio.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_irq.o
  CC [M]  drivers/gpu/drm/drm_damage_helper.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_mcr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/i2c.o
  CC      fs/binfmt_elf.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_pm.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_pm_irq.o
  CC      fs/compat_binfmt_elf.o
  CC      fs/mbcache.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/cik_sdma.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/uvd_v4_2.o
  LD [M]  fs/cifs/cifs.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/iccsense.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/image.o
  CC [M]  drivers/gpu/drm/xe/xe_uc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.o
  CC [M]  drivers/gpu/drm/xe/xe_uc_debugfs.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_requests.o
  CC      fs/posix_acl.o
  CC      fs/coredump.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/mxm.o
  CC [M]  drivers/gpu/drm/drm_encoder_slave.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/npde.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_sysfs.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.o
  CC      fs/drop_caches.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vce_v2_0.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gtt.o
  CC [M]  drivers/gpu/drm/xe/xe_uc_fw.o
  CC      fs/fhandle.o
  CC [M]  drivers/gpu/drm/xe/xe_vm.o
  CC [M]  drivers/gpu/drm/drm_flip_work.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/pcir.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/perf.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/si.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gmc_v6_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v6_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/si_ih.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/si_dma.o
  CC [M]  drivers/gpu/drm/xe/xe_vm_madvise.o
  CC [M]  drivers/gpu/drm/xe/xe_wait_user_fence.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/pll.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/pmu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/power_budget.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_llc.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_lrc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/ramcfg.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/dce_v6_0.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_migrate.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/rammap.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_mocs.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_ppgtt.o
  CC [M]  drivers/gpu/drm/drm_format_helper.o
  CC [M]  drivers/gpu/drm/drm_gem_atomic_helper.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_rc6.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/uvd_v3_1.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_region_lmem.o
  CC [M]  drivers/gpu/drm/drm_gem_framebuffer_helper.o
  CC [M]  drivers/gpu/drm/drm_kms_helper_common.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vi.o
  CC [M]  drivers/gpu/drm/xe/xe_wa.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mxgpu_vi.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_renderstate.o
  CC [M]  drivers/gpu/drm/xe/xe_wopcm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v6_1.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowacpi.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowof.o
  AR      fs/btrfs/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowramin.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_reset.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_ring.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowrom.o
  CC [M]  drivers/gpu/drm/xe/xe_display.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_ring_submission.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_rps.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/soc15.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/timing.o
  CC [M]  drivers/gpu/drm/xe/display/xe_fb_pin.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_sa_media.o
  CC [M]  drivers/gpu/drm/xe/display/xe_hdcp_gsc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/therm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/vmap.o
  CC [M]  drivers/gpu/drm/drm_modeset_helper.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/emu_soc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mxgpu_ai.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_sseu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/volt.o
  CC [M]  drivers/gpu/drm/drm_plane_helper.o
  CC [M]  drivers/gpu/drm/drm_probe_helper.o
  CC [M]  drivers/gpu/drm/xe/display/xe_plane_initial.o
  CC [M]  drivers/gpu/drm/drm_rect.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v7_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vega10_reg_init.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/vpstate.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vega20_reg_init.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/xpio.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_sseu_debugfs.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_timeline.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v7_4.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/M0203.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/M0205.o
  AR      fs/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/M0209.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_wopcm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v2_3.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nv.o
  CC [M]  drivers/gpu/drm/xe/display/xe_display_rps.o
  CC [M]  drivers/gpu/drm/xe/display/ext/i915_irq.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/P0260.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_workarounds.o
  CC [M]  drivers/gpu/drm/i915/gt/shmem_utils.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bus/base.o
  CC [M]  drivers/gpu/drm/drm_self_refresh_helper.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bus/hwsq.o
  CC [M]  drivers/gpu/drm/xe/display/ext/intel_clock_gating.o
  CC [M]  drivers/gpu/drm/i915/gt/sysfs_engines.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_ggtt_gmch.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/arct_reg_init.o
  CC [M]  drivers/gpu/drm/xe/display/ext/intel_device_info.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mxgpu_nv.o
  CC [M]  drivers/gpu/drm/drm_simple_kms_helper.o
  CC [M]  drivers/gpu/drm/i915/gt/gen6_renderstate.o
  CC [M]  drivers/gpu/drm/xe/display/ext/intel_dram.o
  CC [M]  drivers/gpu/drm/i915/gt/gen7_renderstate.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv04.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv31.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v7_2.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv50.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bus/g94.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/hdp_v4_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/hdp_v5_0.o
  CC [M]  drivers/gpu/drm/bridge/panel.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/aldebaran_reg_init.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bus/gf100.o
  CC [M]  drivers/gpu/drm/drm_fbdev_generic.o
  CC [M]  drivers/gpu/drm/xe/display/ext/intel_pch.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/aldebaran.o
  CC [M]  drivers/gpu/drm/i915/gt/gen8_renderstate.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/soc21.o
  CC [M]  drivers/gpu/drm/i915/gt/gen9_renderstate.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sienna_cichlid.o
  CC [M]  drivers/gpu/drm/drm_fb_helper.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv04.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv40.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_busy.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/smu_v13_0_10.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v4_3.o
  CC [M]  drivers/gpu/drm/xe/i915-display/icl_dsi.o
  LD [M]  drivers/gpu/drm/drm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_clflush.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/hdp_v6_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/g84.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v7_7.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_context.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_create.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_dmabuf.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_domain.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/hdp_v5_2.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.o
  LD [M]  drivers/gpu/drm/drm_shmem_helper.o
  LD [M]  drivers/gpu/drm/drm_suballoc_helper.o
  LD [M]  drivers/gpu/drm/drm_ttm_helper.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_internal.o
  AR      drivers/gpu/drm/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/mcp77.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/gf100.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_object.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_lmem.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_mman.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk104.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_pages.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_atomic.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v7_9.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/df_v1_7.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/df_v3_6.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/df_v4_3.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_atomic_plane.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gmc_v7_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_audio.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk20a.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_phys.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gmc_v8_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/gm20b.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/pllnv04.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/pllgt215.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_backlight.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_bios.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_pm.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_region.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gmc_v9_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_bw.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_shmem.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfxhub_v1_1.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_shrinker.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/base.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_stolen.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv04.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_throttle.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv05.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_tiling.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_ttm.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_ttm_move.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv10.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv1a.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_cdclk.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.o
  LD [M]  drivers/gpu/drm/drm_kms_helper.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gmc_v10_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv20.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v1_7.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_userptr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/g84.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_wait.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v3_0.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gemfs.o
  CC [M]  drivers/gpu/drm/i915/i915_active.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/g98.o
  CC [M]  drivers/gpu/drm/i915/i915_cmd_parser.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_color.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_combo_phy.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_2.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gmc_v11_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gt215.o
  CC [M]  drivers/gpu/drm/i915/i915_deps.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/mcp89.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gf100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_1.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm107.o
  CC [M]  drivers/gpu/drm/i915/i915_gem_evict.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0_3.o
  CC [M]  drivers/gpu/drm/i915/i915_gem_gtt.o
  CC [M]  drivers/gpu/drm/i915/i915_gem_ww.o
  CC [M]  drivers/gpu/drm/i915/i915_gem.o
  CC [M]  drivers/gpu/drm/i915/i915_query.o
  CC [M]  drivers/gpu/drm/i915/i915_request.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm200.o
  CC [M]  drivers/gpu/drm/i915/i915_scheduler.o
  CC [M]  drivers/gpu/drm/i915/i915_trace_points.o
  CC [M]  drivers/gpu/drm/i915/i915_ttm_buddy_manager.o
  CC [M]  drivers/gpu/drm/i915/i915_vma.o
  CC [M]  drivers/gpu/drm/i915/i915_vma_resource.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_gsc_fw.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_connector.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfxhub_v1_2.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v1_8.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_heci_cmd_submit.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/umc_v6_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/umc_v6_1.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gv100.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_crtc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/umc_v6_7.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/umc_v8_7.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/tu102.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/umc_v8_10.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/ga100.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_ads.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_irq.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ih.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/iceland_ih.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/tonga_ih.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_crtc_state_dump.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_capture.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_ct.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/cz_ih.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_cursor.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_fw.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_hwconfig.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_log.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_cx0_phy.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_ddi.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vega10_ih.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fault/base.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_log_debugfs.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_rc.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vega20_ih.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/navi10_ih.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/ih_v6_0.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_submission.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_huc.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_huc_debugfs.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_huc_fw.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_psp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fault/user.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_uc.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_uc_fw.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/psp_v3_1.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/psp_v10_0.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gsc.o
  CC [M]  drivers/gpu/drm/i915/i915_hwmon.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_ddi_buf_trans.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/psp_v11_0.o
  CC [M]  drivers/gpu/drm/i915/display/hsw_ips.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/psp_v11_0_8.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/psp_v12_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_atomic.o
  CC [M]  drivers/gpu/drm/i915/display/intel_atomic_plane.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/psp_v13_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_audio.o
  CC [M]  drivers/gpu/drm/i915/display/intel_bios.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/psp_v13_0_4.o
  CC [M]  drivers/gpu/drm/i915/display/intel_bw.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display.o
  CC [M]  drivers/gpu/drm/i915/display/intel_cdclk.o
  CC [M]  drivers/gpu/drm/i915/display/intel_color.o
  CC [M]  drivers/gpu/drm/i915/display/intel_combo_phy.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_device.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fault/gp100.o
  CC [M]  drivers/gpu/drm/i915/display/intel_connector.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/dce_v10_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_crtc.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_driver.o
  CC [M]  drivers/gpu/drm/i915/display/intel_crtc_state_dump.o
  CC [M]  drivers/gpu/drm/i915/display/intel_cursor.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_debugfs.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_driver.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_irq.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/dce_v11_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_power.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_power.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_power_map.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_power_well.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_power_map.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_power_well.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_reset.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_trace.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dkl_phy.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_rps.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v8_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v9_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dmc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fault/gp10b.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dmc.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dpio_phy.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dpll.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v9_4.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v9_4_2.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dpll_mgr.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dpt.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp_aux.o
  CC [M]  drivers/gpu/drm/i915/display/intel_drrs.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dsb.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fault/gv100.o
  CC [M]  drivers/gpu/drm/i915/display/intel_fb.o
  CC [M]  drivers/gpu/drm/i915/display/intel_fb_pin.o
  CC [M]  drivers/gpu/drm/i915/display/intel_fbc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v10_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_fdi.o
  CC [M]  drivers/gpu/drm/i915/display/intel_fifo_underrun.o
  CC [M]  drivers/gpu/drm/i915/display/intel_frontbuffer.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/imu_v11_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_global_state.o
  CC [M]  drivers/gpu/drm/i915/display/intel_hdcp.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v11_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_hdcp_gsc.o
  CC [M]  drivers/gpu/drm/i915/display/intel_hotplug.o
  CC [M]  drivers/gpu/drm/i915/display/intel_hotplug_irq.o
  CC [M]  drivers/gpu/drm/i915/display/intel_hti.o
  CC [M]  drivers/gpu/drm/i915/display/intel_load_detect.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 [M]  drivers/gpu/drm/amd/amdgpu/gfx_v11_0_3.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/imu_v11_0_3.o
  CC [M]  drivers/gpu/drm/i915/display/intel_lpe_audio.o
  CC [M]  drivers/gpu/drm/i915/display/intel_modeset_verify.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fault/tu102.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp_link_training.o
  CC [M]  drivers/gpu/drm/i915/display/intel_modeset_setup.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp_mst.o
  CC [M]  drivers/gpu/drm/i915/display/intel_overlay.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dpll.o
  CC [M]  drivers/gpu/drm/i915/display/intel_pch_display.o
  CC [M]  drivers/gpu/drm/i915/display/intel_pch_refclk.o
  CC [M]  drivers/gpu/drm/i915/display/intel_plane_initial.o
  CC [M]  drivers/gpu/drm/i915/display/intel_psr.o
  CC [M]  drivers/gpu/drm/i915/display/intel_quirks.o
  CC [M]  drivers/gpu/drm/i915/display/intel_sprite.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v2_4.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v3_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_sprite_uapi.o
  CC [M]  drivers/gpu/drm/i915/display/intel_tc.o
  CC [M]  drivers/gpu/drm/i915/display/intel_vblank.o
  CC [M]  drivers/gpu/drm/i915/display/intel_vga.o
  CC [M]  drivers/gpu/drm/i915/display/intel_wm.o
  CC [M]  drivers/gpu/drm/i915/display/i9xx_plane.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dpll_mgr.o
  CC [M]  drivers/gpu/drm/i915/display/i9xx_wm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/base.o
  CC [M]  drivers/gpu/drm/i915/display/skl_scaler.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dpt.o
  CC [M]  drivers/gpu/drm/i915/display/skl_universal_plane.o
  CC [M]  drivers/gpu/drm/i915/display/skl_watermark.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v4_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv04.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v4_4.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_drrs.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dsb.o
  CC [M]  drivers/gpu/drm/i915/display/intel_acpi.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.o
  CC [M]  drivers/gpu/drm/i915/display/intel_opregion.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v5_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv10.o
  CC [M]  drivers/gpu/drm/i915/display/intel_fbdev.o
  CC [M]  drivers/gpu/drm/i915/display/dvo_ch7017.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv1a.o
  CC [M]  drivers/gpu/drm/i915/display/dvo_ch7xxx.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv20.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv25.o
  CC [M]  drivers/gpu/drm/i915/display/dvo_ivch.o
  CC [M]  drivers/gpu/drm/i915/display/dvo_ns2501.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v5_2.o
  CC [M]  drivers/gpu/drm/i915/display/dvo_sil164.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv30.o
  CC [M]  drivers/gpu/drm/i915/display/dvo_tfp410.o
  CC [M]  drivers/gpu/drm/i915/display/g4x_dp.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dsi.o
  CC [M]  drivers/gpu/drm/i915/display/g4x_hdmi.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dsi_dcs_backlight.o
  CC [M]  drivers/gpu/drm/i915/display/icl_dsi.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v6_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_mes.o
  CC [M]  drivers/gpu/drm/i915/display/intel_backlight.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dsi_vbt.o
  CC [M]  drivers/gpu/drm/i915/display/intel_crt.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fb.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mes_v10_1.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mes_v11_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fbc.o
  CC [M]  drivers/gpu/drm/i915/display/intel_cx0_phy.o
  CC [M]  drivers/gpu/drm/i915/display/intel_ddi.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv35.o
  CC [M]  drivers/gpu/drm/i915/display/intel_ddi_buf_trans.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fdi.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv36.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv40.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_device.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_trace.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/uvd_v5_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dkl_phy.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dp.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fifo_underrun.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dp_aux.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_frontbuffer.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dp_aux_backlight.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/uvd_v6_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dp_hdcp.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dp_link_training.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/uvd_v7_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dp_mst.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vce.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv41.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv44.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dsi.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_global_state.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv46.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dsi_vbt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vce_v3_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_gmbus.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dvo.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vce_v4_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_gmbus.o
  CC [M]  drivers/gpu/drm/i915/display/intel_hdmi.o
  CC [M]  drivers/gpu/drm/i915/display/intel_lspcon.o
  CC [M]  drivers/gpu/drm/i915/display/intel_lvds.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv47.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vcn_sw_ring.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hdcp.o
  CC [M]  drivers/gpu/drm/i915/display/intel_panel.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hdmi.o
  CC [M]  drivers/gpu/drm/i915/display/intel_pps.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv49.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hotplug.o
  CC [M]  drivers/gpu/drm/i915/display/intel_qp_tables.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hotplug_irq.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv4e.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vcn_v1_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_sdvo.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hti.o
  CC [M]  drivers/gpu/drm/i915/display/intel_snps_phy.o
  CC [M]  drivers/gpu/drm/i915/display/intel_tv.o
  CC [M]  drivers/gpu/drm/i915/display/intel_vdsc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vcn_v2_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vcn_v2_5.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vcn_v3_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_vrr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.o
  CC [M]  drivers/gpu/drm/i915/display/vlv_dsi.o
  CC [M]  drivers/gpu/drm/i915/display/vlv_dsi_pll.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_lspcon.o
  CC [M]  drivers/gpu/drm/i915/i915_perf.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp_tee.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vcn_v4_0.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp_huc.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp_cmd.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/g84.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp_irq.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gt215.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/mcp77.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_modeset_setup.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/jpeg_v1_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp_pm.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp_session.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_modeset_verify.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.o
  CC [M]  drivers/gpu/drm/i915/i915_gpu_error.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/mcp89.o
  CC [M]  drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf100.o
  CC [M]  drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf108.o
  CC [M]  drivers/gpu/drm/i915/selftests/intel_scheduler_helpers.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/athub_v1_0.o
  CC [M]  drivers/gpu/drm/i915/selftests/i915_random.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk104.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_panel.o
  CC [M]  drivers/gpu/drm/i915/selftests/i915_selftest.o
  CC [M]  drivers/gpu/drm/i915/selftests/igt_atomic.o
  CC [M]  drivers/gpu/drm/i915/selftests/igt_flush_test.o
  CC [M]  drivers/gpu/drm/i915/selftests/igt_live_test.o
  CC [M]  drivers/gpu/drm/i915/selftests/igt_mmap.o
  CC [M]  drivers/gpu/drm/i915/selftests/igt_reset.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/athub_v2_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/athub_v2_1.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_pipe_crc.o
  CC [M]  drivers/gpu/drm/i915/selftests/igt_spinner.o
  CC [M]  drivers/gpu/drm/i915/selftests/librapl.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/athub_v3_0.o
  CC [M]  drivers/gpu/drm/i915/i915_vgpu.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dkl_phy_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_crtc_state_dump.h
  HDRTEST drivers/gpu/drm/i915/display/hsw_ips.h
  HDRTEST drivers/gpu/drm/i915/display/g4x_hdmi.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk110.o
  HDRTEST drivers/gpu/drm/i915/display/intel_hdcp_regs.h
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_pps.o
  HDRTEST drivers/gpu/drm/i915/display/intel_overlay.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk20a.o
  HDRTEST drivers/gpu/drm/i915/display/skl_watermark_regs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gm107.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dmc.h
  HDRTEST drivers/gpu/drm/i915/display/intel_vga.h
  HDRTEST drivers/gpu/drm/i915/display/intel_audio.h
  HDRTEST drivers/gpu/drm/i915/display/intel_lvds.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gm200.o
  HDRTEST drivers/gpu/drm/i915/display/intel_modeset_setup.h
  HDRTEST drivers/gpu/drm/i915/display/intel_cdclk.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display_limits.h
  HDRTEST drivers/gpu/drm/i915/display/intel_hotplug.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dkl_phy.h
  HDRTEST drivers/gpu/drm/i915/display/intel_atomic.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/smuio_v9_0.o
  HDRTEST drivers/gpu/drm/i915/display/intel_display_driver.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dpll.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/smuio_v11_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gm20b.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/smuio_v11_0_6.o
  HDRTEST drivers/gpu/drm/i915/display/vlv_dsi_pll_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dp_mst.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gp100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/smuio_v13_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gp102.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_psr.o
  HDRTEST drivers/gpu/drm/i915/display/intel_fdi_regs.h
  HDRTEST drivers/gpu/drm/i915/display/g4x_dp.h
  HDRTEST drivers/gpu/drm/i915/display/intel_tc.h
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_qp_tables.o
  HDRTEST drivers/gpu/drm/i915/display/intel_frontbuffer.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dsi_vbt.h
  HDRTEST drivers/gpu/drm/i915/display/intel_psr.h
  HDRTEST drivers/gpu/drm/i915/display/intel_crt.h
  HDRTEST drivers/gpu/drm/i915/display/intel_opregion.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/smuio_v13_0_6.o
  HDRTEST drivers/gpu/drm/i915/display/intel_snps_phy_regs.h
  HDRTEST drivers/gpu/drm/i915/display/i9xx_wm.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gp10b.o
  HDRTEST drivers/gpu/drm/i915/display/intel_cx0_phy_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_global_state.h
  HDRTEST drivers/gpu/drm/i915/display/intel_lpe_audio.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_reset.o
  HDRTEST drivers/gpu/drm/i915/display/intel_drrs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/mca_v3_0.o
  HDRTEST drivers/gpu/drm/i915/display/intel_display_rps.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gv100.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_quirks.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/tu102.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_snps_phy.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_tc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ga100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_module.o
  HDRTEST drivers/gpu/drm/i915/display/intel_fbdev.h
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_vblank.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_vdsc.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_vga.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_vrr.o
  HDRTEST drivers/gpu/drm/i915/display/intel_pps_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.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/nouveau/nvkm/subdev/fb/ga102.o
  HDRTEST drivers/gpu/drm/i915/display/intel_hdmi.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ram.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv04.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv10.o
  HDRTEST drivers/gpu/drm/i915/display/intel_fdi.h
  HDRTEST drivers/gpu/drm/i915/display/intel_fb.h
  CC [M]  drivers/gpu/drm/xe/i915-display/skl_universal_plane.o
  HDRTEST drivers/gpu/drm/i915/display/intel_qp_tables.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dsb_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_vdsc.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv20.o
  HDRTEST drivers/gpu/drm/i915/display/intel_snps_phy.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv40.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv41.o
  HDRTEST drivers/gpu/drm/i915/display/intel_display_core.h
  HDRTEST drivers/gpu/drm/i915/display/vlv_dsi_pll.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dvo_dev.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_topology.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv44.o
  HDRTEST drivers/gpu/drm/i915/display/intel_hdcp.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_pasid.o
  HDRTEST drivers/gpu/drm/i915/display/intel_sdvo_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_pch_refclk.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display_trace.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_doorbell.o
  CC [M]  drivers/gpu/drm/xe/i915-display/skl_watermark.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv49.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_acpi.o
  HDRTEST drivers/gpu/drm/i915/display/intel_display_power.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv4e.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv50.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/rammcp77.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_opregion.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_flat_memory.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgf100.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dp_aux_regs.h
../drivers/gpu/drm/i915/i915_gpu_error.c:2174: warning: Function parameter or member 'dump_flags' not described in 'i915_capture_error_state'
  HDRTEST drivers/gpu/drm/i915/display/i9xx_plane.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_queue.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgf108.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dp_aux_backlight.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dpll_mgr.h
  HDRTEST drivers/gpu/drm/i915/display/vlv_dsi.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.o
  HDRTEST drivers/gpu/drm/i915/display/intel_plane_initial.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgm107.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgm200.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_cik.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fbdev.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgp100.o
  CC [M]  drivers/gpu/drm/xe/xe_guc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_vi.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_v9.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_v10.o
  HDRTEST drivers/gpu/drm/i915/display/intel_display_device.h
  CC [M]  drivers/gpu/drm/xe/xe_ring_ops.o
  HDRTEST drivers/gpu/drm/i915/display/intel_fifo_underrun.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_klvs_abi.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_v11.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramga102.o
  HDRTEST drivers/gpu/drm/xe/abi/guc_errors_abi.h
  HDRTEST drivers/gpu/drm/i915/display/intel_cursor.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_actions_slpc_abi.h
../drivers/gpu/drm/i915/i915_perf.c:5307: warning: Function parameter or member 'i915' not described in 'i915_perf_ioctl_version'
  HDRTEST drivers/gpu/drm/i915/display/vlv_dsi_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_kernel_queue.o
  HDRTEST drivers/gpu/drm/i915/display/intel_cx0_phy.h
  HDRTEST drivers/gpu/drm/i915/display/skl_scaler.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_communication_mmio_abi.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_packet_manager.o
  HDRTEST drivers/gpu/drm/i915/display/intel_hti.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_actions_abi.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/sddr2.o
  HDRTEST drivers/gpu/drm/i915/display/icl_dsi_regs.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/sddr3.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr3.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr5.o
  HDRTEST drivers/gpu/drm/i915/display/intel_atomic_plane.h
  HDRTEST drivers/gpu/drm/i915/display/skl_watermark.h
  HDRTEST drivers/gpu/drm/i915/display/intel_fbc.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display_reg_defs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_packet_manager_vi.o
  HDRTEST drivers/gpu/drm/i915/display/intel_acpi.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fuse/base.o
  HDRTEST drivers/gpu/drm/i915/display/intel_connector.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dpt.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_packet_manager_v9.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process_queue_manager.o
  HDRTEST drivers/gpu/drm/xe/abi/guc_messages_abi.h
  HDRTEST drivers/gpu/drm/i915/display/intel_quirks.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dp_link_training.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_vma_types.h
  HDRTEST drivers/gpu/drm/i915/display/intel_color.h
  HDRTEST drivers/gpu/drm/i915/display/intel_crtc.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/vlv_sideband_reg.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display_debugfs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_modeset_verify.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fuse/nv50.o
  HDRTEST drivers/gpu/drm/i915/display/intel_display_power_well.h
  HDRTEST drivers/gpu/drm/i915/display/intel_psr_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_wm.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager_cik.o
  HDRTEST drivers/gpu/drm/i915/display/intel_pipe_crc.h
  HDRTEST drivers/gpu/drm/i915/display/intel_audio_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_panel.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager_vi.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_wakeref.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fuse/gf100.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_pcode.h
  HDRTEST drivers/gpu/drm/i915/display/intel_sprite.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager_v9.o
  HDRTEST drivers/gpu/drm/i915/display/intel_wm_types.h
  HDRTEST drivers/gpu/drm/i915/display/intel_tv.h
  HDRTEST drivers/gpu/drm/i915/display/intel_hti_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_vrr.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fuse/gm107.o
  HDRTEST drivers/gpu/drm/i915/display/intel_load_detect.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager_v10.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager_v11.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_interrupt.o
  HDRTEST drivers/gpu/drm/i915/display/skl_universal_plane.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_events.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/cik_event_interrupt.o
  HDRTEST drivers/gpu/drm/i915/display/intel_mg_phy_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_bw.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.o
  HDRTEST drivers/gpu/drm/i915/display/intel_display_irq.h
  HDRTEST drivers/gpu/drm/i915/display/intel_de.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nv10.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nv50.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_int_process_v9.o
  HDRTEST drivers/gpu/drm/i915/display/intel_lvds_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_gmbus_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_int_process_v11.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_smi_events.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_crat.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_reg_defs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dvo.h
  HDRTEST drivers/gpu/drm/i915/display/intel_sdvo.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gpio/g94.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dp_aux.h
  HDRTEST drivers/gpu/drm/i915/display/intel_vdsc_regs.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_trace.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_debugfs.o
  HDRTEST drivers/gpu/drm/i915/display/intel_combo_phy.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gpio/gf119.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dvo_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_gmbus.h
  HDRTEST drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gpio/gk104.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dsi.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dmc_regs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gpio/ga102.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gsp/base.o
  HDRTEST drivers/gpu/drm/i915/display/intel_ddi.h
  HDRTEST drivers/gpu/drm/i915/display/intel_hotplug_irq.h
  HDRTEST drivers/gpu/drm/i915/display/intel_tv_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_migrate.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dsb.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_reg.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.o
  HDRTEST drivers/gpu/drm/i915/display/intel_bios.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_active_types.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_utils.h
  HDRTEST drivers/gpu/drm/i915/display/intel_pch_display.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display_types.h
  HDRTEST drivers/gpu/drm/i915/display/intel_backlight.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gsp/gv100.o
  HDRTEST drivers/gpu/drm/i915/display/intel_vblank.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dp.h
  HDRTEST drivers/gpu/drm/i915/display/intel_backlight_regs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gsp/ga102.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.o
  HDRTEST drivers/gpu/drm/i915/display/intel_combo_phy_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_aldebaran.o
  HDRTEST drivers/gpu/drm/i915/display/intel_display_reset.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display_power_map.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10_3.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_config.h
  HDRTEST drivers/gpu/drm/i915/display/intel_ddi_buf_trans.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v11.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_vma.h
  HDRTEST drivers/gpu/drm/i915/display/icl_dsi.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.o
  HDRTEST drivers/gpu/drm/i915/display/intel_lspcon.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv04.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_job.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dpio_phy.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/vlv_sideband.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_acp.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../acp/acp_hw.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dp_hdcp.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_mchbar_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ioc32.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_debugfs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/soc/intel_gmch.h
  HDRTEST drivers/gpu/drm/i915/display/intel_fb_pin.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv4e.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_vgpu.h
  HDRTEST drivers/gpu/drm/i915/display/intel_pps.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_fixed.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv50.o
  HDRTEST drivers/gpu/drm/i915/display/intel_sprite_uapi.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/g94.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/arcturus_ppt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/navi10_ppt.o
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_ttm.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/sienna_cichlid_ppt.o
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_region.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf117.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_runtime_pm.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_context_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf119.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_pm_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/vangogh_ppt.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_uncore.h
../drivers/gpu/drm/i915/gem/i915_gem_region.h:25: warning: Incorrect use of kernel-doc format:          * process_obj - Process the current object
../drivers/gpu/drm/i915/gem/i915_gem_region.h:35: warning: Function parameter or member 'process_obj' not described in 'i915_gem_apply_to_region_ops'
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_lmem.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_pci_config.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gk104.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_clock_gating.h
  HDRTEST drivers/gpu/drm/xe/display/ext/i915_irq.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gk110.o
  HDRTEST drivers/gpu/drm/xe/display/ext/intel_pch.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_mman.h
  HDRTEST drivers/gpu/drm/xe/display/ext/intel_dram.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_object_types.h
  HDRTEST drivers/gpu/drm/xe/display/ext/intel_device_info.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_reg_defs.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_context.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gm200.o
  HDRTEST drivers/gpu/drm/xe/regs/xe_guc_regs.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_gt_regs.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_regs.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_gpu_commands.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/cyan_skillfish_ppt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/smu_v11_0.o
  HDRTEST drivers/gpu/drm/xe/regs/xe_lrc_layout.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_clflush.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/pad.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padnv04.o
  HDRTEST drivers/gpu/drm/xe/regs/xe_engine_regs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padnv4e.o
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_tiling.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padnv50.o
  HDRTEST drivers/gpu/drm/xe/tests/xe_test.h
  HDRTEST drivers/gpu/drm/xe/tests/xe_pci_test.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padg94.o
  HDRTEST drivers/gpu/drm/xe/tests/xe_migrate_test.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_stolen.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.h
  HDRTEST drivers/gpu/drm/xe/tests/xe_dma_buf_test.h
  HDRTEST drivers/gpu/drm/xe/tests/xe_bo_test.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu12/renoir_ppt.o
  HDRTEST drivers/gpu/drm/xe/xe_bb.h
  HDRTEST drivers/gpu/drm/xe/xe_bb_types.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_create.h
  HDRTEST drivers/gpu/drm/xe/xe_bo.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_ttm_move.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_ioctls.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_domain.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu12/smu_v12_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padgf119.o
  HDRTEST drivers/gpu/drm/xe/xe_bo_doc.h
../drivers/gpu/drm/i915/gem/i915_gem_ttm.h:50: warning: Function parameter or member 'bo' not described in 'i915_ttm_to_gem'
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_internal.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_dmabuf.h
  HDRTEST drivers/gpu/drm/i915/gem/selftests/mock_context.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padgm200.o
  HDRTEST drivers/gpu/drm/i915/gem/selftests/huge_gem_object.h
  HDRTEST drivers/gpu/drm/i915/gem/selftests/mock_gem_object.h
  HDRTEST drivers/gpu/drm/xe/xe_bo_evict.h
  HDRTEST drivers/gpu/drm/i915/gem/selftests/mock_dmabuf.h
  HDRTEST drivers/gpu/drm/xe/xe_bo_types.h
  HDRTEST drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.h
  HDRTEST drivers/gpu/drm/xe/xe_debugfs.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_userptr.h
  HDRTEST drivers/gpu/drm/xe/xe_devcoredump.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/smu_v13_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bus.o
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_pm.h
  HDRTEST drivers/gpu/drm/xe/xe_devcoredump_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/aldebaran_ppt.o
  HDRTEST drivers/gpu/drm/xe/xe_device.h
  HDRTEST drivers/gpu/drm/xe/xe_device_types.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_shrinker.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/yellow_carp_ppt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/smu_v13_0_0_ppt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/smu_v13_0_4_ppt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/smu_v13_0_5_ppt.o
  HDRTEST drivers/gpu/drm/i915/gem/i915_gemfs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv04.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/smu_v13_0_7_ppt.o
  HDRTEST drivers/gpu/drm/xe/xe_display.h
  HDRTEST drivers/gpu/drm/xe/xe_dma_buf.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv4e.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/smu_v13_0_6_ppt.o
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_object.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv50.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_timeline_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busgf119.o
  HDRTEST drivers/gpu/drm/i915/gt/selftest_engine.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_breadcrumbs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bit.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_engine_heartbeat.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_context_types.h
  HDRTEST drivers/gpu/drm/xe/xe_drv.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_execlists_submission.h
  HDRTEST drivers/gpu/drm/xe/xe_engine.h
  HDRTEST drivers/gpu/drm/xe/xe_engine_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxg94.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_pm.h
  HDRTEST drivers/gpu/drm/i915/gt/selftest_rc6.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_llc_types.h
  HDRTEST drivers/gpu/drm/xe/xe_exec.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgf119.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_region_lmem.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_requests.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgm200.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_ggtt_gmch.h
  HDRTEST drivers/gpu/drm/xe/xe_execlist.h
  HDRTEST drivers/gpu/drm/xe/xe_execlist_types.h
  HDRTEST drivers/gpu/drm/xe/xe_force_wake.h
  HDRTEST drivers/gpu/drm/xe/xe_force_wake_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/anx9805.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_print.h
  HDRTEST drivers/gpu/drm/i915/gt/gen8_ppgtt.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_mcr.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_timeline.h
  HDRTEST drivers/gpu/drm/xe/xe_ggtt.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu_cmn.o
  HDRTEST drivers/gpu/drm/xe/xe_ggtt_types.h
  HDRTEST drivers/gpu/drm/i915/gt/gen6_engine_cs.h
  HDRTEST drivers/gpu/drm/xe/xe_gt.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_clock.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_debugfs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.o
  HDRTEST drivers/gpu/drm/xe/xe_gt_mcr.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_pagefault.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_printk.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_workarounds_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/smumgr.o
  HDRTEST drivers/gpu/drm/xe/xe_gt_sysfs.h
  HDRTEST drivers/gpu/drm/i915/gt/selftest_rps.h
../drivers/gpu/drm/i915/gem/i915_gem_object.h:94: warning: Function parameter or member 'file' not described in 'i915_gem_object_lookup_rcu'
../drivers/gpu/drm/i915/gem/i915_gem_object.h:94: warning: Excess function parameter 'filp' description in 'i915_gem_object_lookup_rcu'
  HDRTEST drivers/gpu/drm/xe/xe_gt_sysfs_types.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_tlb_invalidation.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_tlb_invalidation_types.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_sa_media.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/gf100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/instmem/base.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_debugfs.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_clock_utils.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_rps_types.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_topology.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.o
  HDRTEST drivers/gpu/drm/i915/gt/selftest_engine_heartbeat.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/smu8_smumgr.o
  HDRTEST drivers/gpu/drm/xe/xe_guc.h
  HDRTEST drivers/gpu/drm/i915/gt/sysfs_engines.h
  HDRTEST drivers/gpu/drm/i915/gt/gen7_renderclear.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_ads.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_ads_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_ct.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/tonga_smumgr.o
  HDRTEST drivers/gpu/drm/xe/xe_guc_ct_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_engine_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/fiji_smumgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv40.o
  HDRTEST drivers/gpu/drm/xe/xe_guc_fwif.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/polaris10_smumgr.o
  HDRTEST drivers/gpu/drm/xe/xe_guc_hwconfig.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_log.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_context.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_log_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.o
  HDRTEST drivers/gpu/drm/xe/xe_guc_pc.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/base.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_wopcm.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_pc_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_submit.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_mocs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gf100.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_engine_pm.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gk104.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_sysfs.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_rc6.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_ring_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_submit_types.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_workarounds.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_engine_regs.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_types.h
  HDRTEST drivers/gpu/drm/xe/xe_huc.h
  HDRTEST drivers/gpu/drm/xe/xe_huc_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_huc_types.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_pm_irq.h
  HDRTEST drivers/gpu/drm/i915/gt/shmem_utils.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/iceland_smumgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm107.o
  HDRTEST drivers/gpu/drm/xe/xe_hw_engine.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm200.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/smu7_smumgr.o
  HDRTEST drivers/gpu/drm/xe/xe_hw_engine_types.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_engine.h
  HDRTEST drivers/gpu/drm/xe/xe_hw_fence.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gp100.o
  HDRTEST drivers/gpu/drm/xe/xe_hw_fence_types.h
  HDRTEST drivers/gpu/drm/xe/xe_irq.h
  HDRTEST drivers/gpu/drm/xe/xe_lrc.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_reset_types.h
  HDRTEST drivers/gpu/drm/xe/xe_lrc_types.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_regs.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_reset.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_gsc_fw.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gp102.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/vega10_smumgr.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gp10b.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/ga102.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_uc.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_uc_fw_abi.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_print.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/smu10_smumgr.o
  HDRTEST drivers/gpu/drm/xe/xe_macros.h
  HDRTEST drivers/gpu/drm/xe/xe_map.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/ci_smumgr.o
  HDRTEST drivers/gpu/drm/xe/xe_migrate.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_fw.h
  HDRTEST drivers/gpu/drm/xe/xe_migrate_doc.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_mmio.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h
  HDRTEST drivers/gpu/drm/xe/xe_mocs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.o
  HDRTEST drivers/gpu/drm/xe/xe_module.h
  HDRTEST drivers/gpu/drm/xe/xe_pat.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/abi/guc_errors_abi.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/vega12_smumgr.o
  HDRTEST drivers/gpu/drm/xe/xe_pci.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv04.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/abi/guc_actions_slpc_abi.h
  HDRTEST drivers/gpu/drm/xe/xe_pci_types.h
  HDRTEST drivers/gpu/drm/xe/xe_pcode.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv11.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv17.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/vegam_smumgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/smu9_smumgr.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/abi/guc_communication_mmio_abi.h
  HDRTEST drivers/gpu/drm/xe/xe_pcode_api.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/vega20_smumgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv44.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/hwmgr.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/abi/guc_communication_ctb_abi.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/abi/guc_messages_abi.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/processpptables.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv50.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_heci_cmd_submit.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/hardwaremanager.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_huc.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_huc_fw.h
../drivers/gpu/drm/i915/gt/intel_context.h:108: warning: Function parameter or member 'ce' not described in 'intel_context_lock_pinned'
../drivers/gpu/drm/i915/gt/intel_context.h:123: warning: Function parameter or member 'ce' not described in 'intel_context_is_pinned'
../drivers/gpu/drm/i915/gt/intel_context.h:142: warning: Function parameter or member 'ce' not described in 'intel_context_unlock_pinned'
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_capture.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_log_debugfs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/g84.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_submission.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/g98.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
  HDRTEST drivers/gpu/drm/xe/xe_platform_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu8_hwmgr.o
  HDRTEST drivers/gpu/drm/xe/xe_pm.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/pppcielanes.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_log.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_ct.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/gt215.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/process_pptables_v1_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/gf100.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/ppatomctrl.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_ads.h
  HDRTEST drivers/gpu/drm/xe/xe_preempt_fence.h
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:27: warning: Function parameter or member 'size' not described in '__guc_capture_bufstate'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:27: warning: Function parameter or member 'data' not described in '__guc_capture_bufstate'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:27: warning: Function parameter or member 'rd' not described in '__guc_capture_bufstate'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:27: warning: Function parameter or member 'wr' not described in '__guc_capture_bufstate'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:59: warning: Function parameter or member 'link' not described in '__guc_capture_parsed_output'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:59: warning: Function parameter or member 'is_partial' not described in '__guc_capture_parsed_output'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:59: warning: Function parameter or member 'eng_class' not described in '__guc_capture_parsed_output'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:59: warning: Function parameter or member 'eng_inst' not described in '__guc_capture_parsed_output'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:59: warning: Function parameter or member 'guc_id' not described in '__guc_capture_parsed_output'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:59: warning: Function parameter or member 'lrca' not described in '__guc_capture_parsed_output'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:59: warning: Function parameter or member 'reginfo' not described in '__guc_capture_parsed_output'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:62: warning: wrong kernel-doc identifier on line:
 * struct guc_debug_capture_list_header / struct guc_debug_capture_list
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:80: warning: wrong kernel-doc identifier on line:
 * struct __guc_mmio_reg_descr / struct __guc_mmio_reg_descr_group
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:105: warning: wrong kernel-doc identifier on line:
 * struct guc_state_capture_header_t / struct guc_state_capture_t /
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:163: warning: Function parameter or member 'is_valid' not described in '__guc_capture_ads_cache'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:163: warning: Function parameter or member 'ptr' not described in '__guc_capture_ads_cache'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:163: warning: Function parameter or member 'size' not described in '__guc_capture_ads_cache'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:163: warning: Function parameter or member 'status' not described in '__guc_capture_ads_cache'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:216: warning: Function parameter or member 'ads_null_cache' not described in 'intel_guc_state_capture'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:216: warning: Function parameter or member 'max_mmio_per_node' not described in 'intel_guc_state_capture'
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_preempt_fence_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/gk104.o
  HDRTEST drivers/gpu/drm/xe/xe_pt.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_rc.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_huc_debugfs.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_hwconfig.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_llc.h
  HDRTEST drivers/gpu/drm/xe/xe_pt_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/gk20a.o
  HDRTEST drivers/gpu/drm/i915/gt/gen8_engine_cs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/gp100.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_sseu_debugfs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/gp10b.o
  HDRTEST drivers/gpu/drm/xe/xe_pt_walk.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_rc6_types.h
  HDRTEST drivers/gpu/drm/xe/xe_query.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/ga100.o
  HDRTEST drivers/gpu/drm/xe/xe_reg_sr.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_context_param.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/ppatomfwctrl.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_gpu_commands.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv04.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv41.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_engine_user.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_irq.h
../drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h:491: warning: Function parameter or member 'marker' not described in 'guc_log_buffer_state'
../drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h:491: warning: Function parameter or member 'read_ptr' not described in 'guc_log_buffer_state'
../drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h:491: warning: Function parameter or member 'write_ptr' not described in 'guc_log_buffer_state'
../drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h:491: warning: Function parameter or member 'size' not described in 'guc_log_buffer_state'
../drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h:491: warning: Function parameter or member 'sampled_write_ptr' not described in 'guc_log_buffer_state'
../drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h:491: warning: Function parameter or member 'wrap_offset' not described in 'guc_log_buffer_state'
../drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h:491: warning: Function parameter or member 'flush_to_file' not described in 'guc_log_buffer_state'
../drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h:491: warning: Function parameter or member 'buffer_full_cnt' not described in 'guc_log_buffer_state'
../drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h:491: warning: Function parameter or member 'reserved' not described in 'guc_log_buffer_state'
../drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h:491: warning: Function parameter or member 'flags' not described in 'guc_log_buffer_state'
../drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h:491: warning: Function parameter or member 'version' not described in 'guc_log_buffer_state'
  HDRTEST drivers/gpu/drm/i915/gt/intel_gsc.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv44.o
  HDRTEST drivers/gpu/drm/xe/xe_reg_sr_types.h
../drivers/gpu/drm/i915/gt/uc/intel_guc.h:274: warning: Function parameter or member 'dbgfs_node' not described in 'intel_guc'
  HDRTEST drivers/gpu/drm/i915/gt/intel_rps.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.o
  HDRTEST drivers/gpu/drm/i915/gt/selftest_llc.h
  HDRTEST drivers/gpu/drm/i915/gt/gen6_ppgtt.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_ggtt_fencing.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_migrate_types.h
  HDRTEST drivers/gpu/drm/i915/gt/selftests/mock_timeline.h
  HDRTEST drivers/gpu/drm/xe/xe_reg_whitelist.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_lrc.h
  HDRTEST drivers/gpu/drm/xe/xe_res_cursor.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_powertune.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/g84.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_lrc_reg.h
  HDRTEST drivers/gpu/drm/xe/xe_ring_ops.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_migrate.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_breadcrumbs_types.h
  HDRTEST drivers/gpu/drm/xe/xe_ring_ops_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/mcp77.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gf100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_thermal.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.h
  HDRTEST drivers/gpu/drm/xe/xe_rtp.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_clockpowergating.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega10_processpptables.o
  HDRTEST drivers/gpu/drm/i915/gt/mock_engine.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_engine_stats.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_gtt.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gk104.o
  HDRTEST drivers/gpu/drm/xe/xe_rtp_types.h
  HDRTEST drivers/gpu/drm/xe/xe_sa.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega10_hwmgr.o
  HDRTEST drivers/gpu/drm/xe/xe_sa_types.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_buffer_pool_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gk20a.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_ring.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gm200.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega10_powertune.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega10_thermal.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gm20b.o
  HDRTEST drivers/gpu/drm/xe/xe_sched_job.h
  HDRTEST drivers/gpu/drm/xe/xe_sched_job_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gp100.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu10_hwmgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/pp_psm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gp10b.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega12_processpptables.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_renderstate.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega12_hwmgr.o
  HDRTEST drivers/gpu/drm/xe/xe_step.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega12_thermal.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gv100.o
  HDRTEST drivers/gpu/drm/xe/xe_step_types.h
  HDRTEST drivers/gpu/drm/xe/xe_sync.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_sseu.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_engine_types.h
  HDRTEST drivers/gpu/drm/xe/xe_sync_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/tu102.o
  HDRTEST drivers/gpu/drm/xe/xe_tile.h
  HDRTEST drivers/gpu/drm/xe/xe_trace.h
  HDRTEST drivers/gpu/drm/xe/xe_ttm_stolen_mgr.h
  HDRTEST drivers/gpu/drm/xe/xe_ttm_sys_mgr.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/mem.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/pp_overdriver.o
  HDRTEST drivers/gpu/drm/xe/xe_ttm_vram_mgr.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu_helper.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/memnv04.o
  HDRTEST drivers/gpu/drm/xe/xe_ttm_vram_mgr_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega20_processpptables.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/memnv50.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/memgf100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega20_hwmgr.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega20_powertune.o
  HDRTEST drivers/gpu/drm/i915/gt/gen2_engine_cs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega20_thermal.o
  HDRTEST drivers/gpu/drm/i915/gvt/gvt.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/common_baco.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.o
../drivers/gpu/drm/i915/gt/intel_gtt.h:515: warning: Function parameter or member 'vm' not described in 'i915_vm_resv_put'
../drivers/gpu/drm/i915/gt/intel_gtt.h:515: warning: Excess function parameter 'resv' description in 'i915_vm_resv_put'
  HDRTEST drivers/gpu/drm/i915/gvt/trace.h
  HDRTEST drivers/gpu/drm/i915/gvt/debug.h
  HDRTEST drivers/gpu/drm/i915/gvt/edid.h
  HDRTEST drivers/gpu/drm/i915/gvt/page_track.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega10_baco.o
  HDRTEST drivers/gpu/drm/i915/gvt/mmio.h
  HDRTEST drivers/gpu/drm/i915/gvt/sched_policy.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv04.o
  HDRTEST drivers/gpu/drm/i915/gvt/fb_decoder.h
  HDRTEST drivers/gpu/drm/i915/gvt/cmd_parser.h
  HDRTEST drivers/gpu/drm/i915/gvt/dmabuf.h
  HDRTEST drivers/gpu/drm/i915/gvt/mmio_context.h
  HDRTEST drivers/gpu/drm/i915/gvt/display.h
  HDRTEST drivers/gpu/drm/i915/gvt/gtt.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv41.o
  HDRTEST drivers/gpu/drm/i915/gvt/scheduler.h
  HDRTEST drivers/gpu/drm/i915/gvt/reg.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv44.o
  HDRTEST drivers/gpu/drm/i915/gvt/execlist.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv50.o
  HDRTEST drivers/gpu/drm/xe/xe_tuning.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega20_baco.o
  HDRTEST drivers/gpu/drm/xe/xe_uc.h
  HDRTEST drivers/gpu/drm/xe/xe_uc_debugfs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmmcp77.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgf100.o
  HDRTEST drivers/gpu/drm/xe/xe_uc_fw.h
  HDRTEST drivers/gpu/drm/i915/gvt/interrupt.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgk104.o
  HDRTEST drivers/gpu/drm/i915/i915_active.h
  HDRTEST drivers/gpu/drm/i915/i915_active_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega12_baco.o
  HDRTEST drivers/gpu/drm/i915/i915_cmd_parser.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgk20a.o
  HDRTEST drivers/gpu/drm/i915/i915_config.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu9_baco.o
../drivers/gpu/drm/i915/gt/intel_engine_types.h:293: warning: Function parameter or member 'preempt_hang' not described in 'intel_engine_execlists'
  HDRTEST drivers/gpu/drm/i915/i915_debugfs.h
  HDRTEST drivers/gpu/drm/i915/i915_debugfs_params.h
  HDRTEST drivers/gpu/drm/i915/i915_deps.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgm200.o
  HDRTEST drivers/gpu/drm/i915/i915_driver.h
  HDRTEST drivers/gpu/drm/xe/xe_uc_fw_abi.h
  HDRTEST drivers/gpu/drm/xe/xe_uc_fw_types.h
  HDRTEST drivers/gpu/drm/i915/i915_drm_client.h
  HDRTEST drivers/gpu/drm/i915/i915_drv.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgm20b.o
  HDRTEST drivers/gpu/drm/i915/i915_file_private.h
  HDRTEST drivers/gpu/drm/xe/xe_uc_types.h
  HDRTEST drivers/gpu/drm/i915/i915_fixed.h
  HDRTEST drivers/gpu/drm/xe/xe_vm.h
  HDRTEST drivers/gpu/drm/xe/xe_vm_doc.h
  HDRTEST drivers/gpu/drm/i915/i915_gem.h
  HDRTEST drivers/gpu/drm/xe/xe_vm_madvise.h
  HDRTEST drivers/gpu/drm/xe/xe_vm_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgp100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgp10b.o
  HDRTEST drivers/gpu/drm/xe/xe_wa.h
  HDRTEST drivers/gpu/drm/i915/i915_gem_evict.h
  HDRTEST drivers/gpu/drm/i915/i915_gem_gtt.h
  HDRTEST drivers/gpu/drm/xe/xe_wait_user_fence.h
  HDRTEST drivers/gpu/drm/xe/xe_wopcm.h
  HDRTEST drivers/gpu/drm/xe/xe_wopcm_types.h
  HDRTEST drivers/gpu/drm/i915/i915_gem_ww.h
  HDRTEST drivers/gpu/drm/i915/i915_gpu_error.h
  HDRTEST drivers/gpu/drm/i915/i915_getparam.h
  HDRTEST drivers/gpu/drm/i915/i915_hwmon.h
  HDRTEST drivers/gpu/drm/i915/i915_ioc32.h
  HDRTEST drivers/gpu/drm/i915/i915_ioctl.h
  HDRTEST drivers/gpu/drm/i915/i915_iosf_mbi.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/tonga_baco.o
  HDRTEST drivers/gpu/drm/i915/i915_irq.h
  HDRTEST drivers/gpu/drm/i915/i915_memcpy.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/polaris_baco.o
  HDRTEST drivers/gpu/drm/i915/i915_mitigations.h
  HDRTEST drivers/gpu/drm/i915/i915_mm.h
  HDRTEST drivers/gpu/drm/i915/i915_params.h
  LD [M]  drivers/gpu/drm/xe/xe.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgv100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/fiji_baco.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmtu102.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/umem.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_baco.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/ummu.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/ci_baco.o
../drivers/gpu/drm/i915/i915_active.h:66: warning: Function parameter or member 'active' not described in '__i915_active_fence_init'
../drivers/gpu/drm/i915/i915_active.h:66: warning: Function parameter or member 'fence' not described in '__i915_active_fence_init'
../drivers/gpu/drm/i915/i915_active.h:66: warning: Function parameter or member 'fn' not described in '__i915_active_fence_init'
../drivers/gpu/drm/i915/i915_active.h:89: warning: Function parameter or member 'active' not described in 'i915_active_fence_set'
../drivers/gpu/drm/i915/i915_active.h:89: warning: Function parameter or member 'rq' not described in 'i915_active_fence_set'
../drivers/gpu/drm/i915/i915_active.h:102: warning: Function parameter or member 'active' not described in 'i915_active_fence_get'
../drivers/gpu/drm/i915/i915_active.h:122: warning: Function parameter or member 'active' not described in 'i915_active_fence_isset'
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/uvmm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/agp.o
  HDRTEST drivers/gpu/drm/i915/i915_pci.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/amd_powerplay.o
  HDRTEST drivers/gpu/drm/i915/i915_perf.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/legacy_dpm.o
  HDRTEST drivers/gpu/drm/i915/i915_perf_oa_regs.h
  HDRTEST drivers/gpu/drm/i915/i915_perf_types.h
  HDRTEST drivers/gpu/drm/i915/i915_pmu.h
  HDRTEST drivers/gpu/drm/i915/i915_priolist_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/pcie.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_smc.o
  HDRTEST drivers/gpu/drm/i915/i915_pvinfo.h
  HDRTEST drivers/gpu/drm/i915/i915_query.h
  HDRTEST drivers/gpu/drm/i915/i915_reg.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_dpm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_smc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/nv04.o
  HDRTEST drivers/gpu/drm/i915/i915_reg_defs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/amdgpu_dpm.o
  HDRTEST drivers/gpu/drm/i915/i915_request.h
  HDRTEST drivers/gpu/drm/i915/i915_scatterlist.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/amdgpu_pm.o
  HDRTEST drivers/gpu/drm/i915/i915_scheduler.h
  HDRTEST drivers/gpu/drm/i915/i915_scheduler_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/nv40.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/amdgpu_dpm_internal.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.o
  HDRTEST drivers/gpu/drm/i915/i915_selftest.h
  HDRTEST drivers/gpu/drm/i915/i915_suspend.h
  HDRTEST drivers/gpu/drm/i915/i915_sw_fence.h
  HDRTEST drivers/gpu/drm/i915/i915_sw_fence_work.h
  HDRTEST drivers/gpu/drm/i915/i915_switcheroo.h
drivers/gpu/drm/xe/xe.o: warning: objtool: intel_set_cpu_fifo_underrun_reporting+0x3ab: unreachable instruction
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_plane.o
  HDRTEST drivers/gpu/drm/i915/i915_syncmap.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/nv46.o
  HDRTEST drivers/gpu/drm/i915/i915_sysfs.h
../drivers/gpu/drm/i915/i915_pmu.h:21: warning: cannot understand function prototype: 'enum i915_pmu_tracked_events '
../drivers/gpu/drm/i915/i915_pmu.h:32: warning: cannot understand function prototype: 'enum '
../drivers/gpu/drm/i915/i915_pmu.h:41: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
 * How many different events we track in the global PMU mask.
  HDRTEST drivers/gpu/drm/i915/i915_tasklet.h
  HDRTEST drivers/gpu/drm/i915/i915_trace.h
  HDRTEST drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/nv4c.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_crtc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/g84.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/g92.o
  HDRTEST drivers/gpu/drm/i915/i915_user_extensions.h
  HDRTEST drivers/gpu/drm/i915/i915_utils.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_irq.o
  HDRTEST drivers/gpu/drm/i915/i915_vgpu.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_mst_types.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/g94.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_color.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/gf100.o
  HDRTEST drivers/gpu/drm/i915/i915_vma.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/dc_fpu.o
  HDRTEST drivers/gpu/drm/i915/i915_vma_resource.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_services.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_helpers.o
  HDRTEST drivers/gpu/drm/i915/i915_vma_types.h
  HDRTEST drivers/gpu/drm/i915/intel_clock_gating.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/gf106.o
../drivers/gpu/drm/i915/i915_scatterlist.h:160: warning: Incorrect use of kernel-doc format:          * release() - Free the memory of the struct i915_refct_sgt
../drivers/gpu/drm/i915/i915_scatterlist.h:164: warning: Function parameter or member 'release' not described in 'i915_refct_sgt_ops'
../drivers/gpu/drm/i915/i915_scatterlist.h:187: warning: Function parameter or member 'rsgt' not described in 'i915_refct_sgt_put'
../drivers/gpu/drm/i915/i915_scatterlist.h:198: warning: Function parameter or member 'rsgt' not described in 'i915_refct_sgt_get'
../drivers/gpu/drm/i915/i915_scatterlist.h:214: warning: Function parameter or member 'rsgt' not described in '__i915_refct_sgt_init'
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/gk104.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/gp100.o
  HDRTEST drivers/gpu/drm/i915/intel_device_info.h
  HDRTEST drivers/gpu/drm/i915/intel_gvt.h
  HDRTEST drivers/gpu/drm/i915/intel_mchbar_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_pp_smu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.o
../drivers/gpu/drm/i915/i915_request.h:176: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
 * Request queue structure.
../drivers/gpu/drm/i915/i915_request.h:477: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
 * Returns true if seq1 is later than seq2.
  HDRTEST drivers/gpu/drm/i915/intel_memory_region.h
  HDRTEST drivers/gpu/drm/i915/intel_pci_config.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_psr.o
  HDRTEST drivers/gpu/drm/i915/intel_pcode.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_hdcp.o
  HDRTEST drivers/gpu/drm/i915/intel_region_ttm.h
  HDRTEST drivers/gpu/drm/i915/intel_runtime_pm.h
  HDRTEST drivers/gpu/drm/i915/intel_sbi.h
  HDRTEST drivers/gpu/drm/i915/intel_step.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/memx.o
  HDRTEST drivers/gpu/drm/i915/intel_uncore.h
../drivers/gpu/drm/i915/i915_utils.h:284: warning: Function parameter or member 'OP' not described in '__wait_for'
../drivers/gpu/drm/i915/i915_utils.h:284: warning: Function parameter or member 'COND' not described in '__wait_for'
../drivers/gpu/drm/i915/i915_utils.h:284: warning: Function parameter or member 'US' not described in '__wait_for'
../drivers/gpu/drm/i915/i915_utils.h:284: warning: Function parameter or member 'Wmin' not described in '__wait_for'
../drivers/gpu/drm/i915/i915_utils.h:284: warning: Function parameter or member 'Wmax' not described in '__wait_for'
  HDRTEST drivers/gpu/drm/i915/intel_wakeref.h
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_tee.h
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_irq.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_crc.o
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_session.h
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_cmd_interface_43.h
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.o
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp.h
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_types.h
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.h
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_cmd_interface_cmn.h
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_huc.h
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_pm.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gt215.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gf100.o
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_cmd_interface_42.h
  HDRTEST drivers/gpu/drm/i915/selftests/igt_live_test.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/basics/conversion.o
  HDRTEST drivers/gpu/drm/i915/selftests/igt_atomic.h
  HDRTEST drivers/gpu/drm/i915/selftests/mock_gem_device.h
  HDRTEST drivers/gpu/drm/i915/selftests/mock_drm.h
../drivers/gpu/drm/i915/i915_vma_resource.h:91: warning: Incorrect use of kernel-doc format:          * struct i915_vma_bindinfo - Information needed for async bind
../drivers/gpu/drm/i915/i915_vma_resource.h:129: warning: Function parameter or member 'wakeref' not described in 'i915_vma_resource'
../drivers/gpu/drm/i915/i915_vma_resource.h:129: warning: Function parameter or member 'bi' not described in 'i915_vma_resource'
  HDRTEST drivers/gpu/drm/i915/selftests/igt_reset.h
  HDRTEST drivers/gpu/drm/i915/selftests/intel_scheduler_helpers.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gf119.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/basics/fixpt31_32.o
  HDRTEST drivers/gpu/drm/i915/selftests/lib_sw_fence.h
  HDRTEST drivers/gpu/drm/i915/selftests/i915_perf_selftests.h
  HDRTEST drivers/gpu/drm/i915/selftests/mock_uncore.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk104.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk110.o
  HDRTEST drivers/gpu/drm/i915/selftests/mock_gtt.h
../drivers/gpu/drm/i915/pxp/intel_pxp_types.h:96: warning: Function parameter or member 'dev_link' not described in 'intel_pxp'
  HDRTEST drivers/gpu/drm/i915/selftests/i915_mock_selftests.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk208.o
  HDRTEST drivers/gpu/drm/i915/selftests/mock_request.h
../drivers/gpu/drm/i915/i915_vma.h:145: warning: expecting prototype for i915_vma_offset(). Prototype was for i915_vma_size() instead
  HDRTEST drivers/gpu/drm/i915/selftests/i915_random.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.o
  HDRTEST drivers/gpu/drm/i915/selftests/igt_spinner.h
  HDRTEST drivers/gpu/drm/i915/selftests/librapl.h
  HDRTEST drivers/gpu/drm/i915/selftests/mock_region.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm107.o
  HDRTEST drivers/gpu/drm/i915/selftests/i915_live_selftests.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/basics/vector.o
  HDRTEST drivers/gpu/drm/i915/selftests/igt_mmap.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/basics/dc_common.o
  HDRTEST drivers/gpu/drm/i915/selftests/igt_flush_test.h
  HDRTEST drivers/gpu/drm/i915/soc/intel_pch.h
  HDRTEST drivers/gpu/drm/i915/soc/intel_dram.h
  HDRTEST drivers/gpu/drm/i915/soc/intel_gmch.h
  HDRTEST drivers/gpu/drm/i915/vlv_sideband.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser.o
  HDRTEST drivers/gpu/drm/i915/vlv_sideband_reg.h
  HDRTEST drivers/gpu/drm/i915/vlv_suspend.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm200.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm20b.o
  LD [M]  drivers/gpu/drm/i915/i915.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gp102.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gp10b.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser_interface.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser_helper.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table_helper.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/privring/gf100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser_common.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/privring/gf117.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/privring/gk104.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table2.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/privring/gk20a.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table_helper2.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser2.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/dce60/command_table_helper_dce60.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/dce80/command_table_helper_dce80.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/dce110/command_table_helper_dce110.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/dce112/command_table_helper_dce112.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/privring/gm200.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/dce112/command_table_helper2_dce112.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/dce_calcs.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/custom_float.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/bw_fixed.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/display_mode_lib.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/privring/gp10b.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/fannil.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/ic.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/display_rq_dlg_helpers.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn10/dcn10_fpu.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/dcn20_fpu.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/display_mode_vba.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/gt215.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_rq_dlg_calc_20.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_mode_vba_20.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_rq_dlg_calc_20v2.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_mode_vba_20v2.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn21/display_rq_dlg_calc_21.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/gm107.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn21/display_mode_vba_21.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/gm200.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/gp100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/dcn30_fpu.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_rq_dlg_calc_30.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn31/display_mode_vba_31.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/timer/base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv04.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn31/display_rq_dlg_calc_31.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn314/display_mode_vba_314.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv40.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn314/display_rq_dlg_calc_314.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv41.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/timer/gk20a.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/top/base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/top/gk104.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/top/ga100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/vfn/base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/vfn/uvfn.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/vfn/gv100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/vfn/tu102.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/vfn/ga100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/volt/gpio.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn32/display_mode_vba_32.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/volt/nv40.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn32/display_rq_dlg_calc_32.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/volt/gf100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn32/display_mode_vba_util_32.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/volt/gf117.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk104.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk20a.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn31/dcn31_fpu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/volt/gm20b.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn32/dcn32_fpu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/falcon.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/xtensa.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/bsp/g84.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/gt215.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/gf100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/gk104.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/gm107.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/gm200.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn321/dcn321_fpu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/gp100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn301/dcn301_fpu.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn302/dcn302_fpu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/gp102.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn303/dcn303_fpu.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn314/dcn314_fpu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/gv100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/tu102.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/ga100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/ga102.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/cipher/g84.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dsc/rc_calc_fpu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/device/acpi.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/dcn_calcs.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/device/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/dcn_calc_math.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/device/pci.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/dcn_calc_auto.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/device/user.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/clk_mgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dce60/dce60_clk_mgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dce100/dce_clk_mgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dce110/dce110_clk_mgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dce112/dce112_clk_mgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dce120/dce120_clk_mgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmi.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn10/rv1_clk_mgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn10/rv1_clk_mgr_vbios_smu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/head.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn10/rv2_clk_mgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn20/dcn20_clk_mgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/vga.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/nv04.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn201/dcn201_clk_mgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/g84.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn21/rn_clk_mgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn21/rn_clk_mgr_vbios_smu.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn30/dcn30_clk_mgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn30/dcn30_clk_mgr_smu_msg.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gt200.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp77.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gt215.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/dcn301_smu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp89.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn31/dcn31_smu.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn31/dcn31_clk_mgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn314/dcn314_smu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gk104.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gk110.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn314/dcn314_clk_mgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn315/dcn315_smu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gm107.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn315/dcn315_clk_mgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn316/dcn316_smu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gp100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn316/dcn316_clk_mgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn32/dcn32_clk_mgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gp102.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/tu102.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/ga102.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/udisp.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn32/dcn32_clk_mgr_smu_msg.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_audio.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_stream_encoder.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_link_encoder.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/uhead.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_hwseq.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/nv04.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/nv50.o
  CC [M]  dri



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

* [Intel-xe] ✓ CI.Hooks: success for xe_device_mem_access fixes and related bits (rev2)
  2023-06-26 10:50 [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Matthew Auld
                   ` (16 preceding siblings ...)
  2023-06-26 13:01 ` [Intel-xe] ✓ CI.Build: " Patchwork
@ 2023-06-26 13:01 ` Patchwork
  2023-06-26 13:02 ` [Intel-xe] ✓ CI.checksparse: " Patchwork
                   ` (2 subsequent siblings)
  20 siblings, 0 replies; 36+ messages in thread
From: Patchwork @ 2023-06-26 13:01 UTC (permalink / raw)
  To: Matthew Auld; +Cc: intel-xe

== Series Details ==

Series: xe_device_mem_access fixes and related bits (rev2)
URL   : https://patchwork.freedesktop.org/series/119213/
State : success

== Summary ==

run-parts: executing /workspace/ci/hooks/00-showenv
+ pwd
+ ls -la
/workspace
total 520
drwxrwxr-x 10 1003 1003   4096 Jun 26 13:01 .
drwxr-xr-x  1 root root   4096 Jun 26 13:01 ..
-rw-rw-r--  1 1003 1003 397196 Jun 26 13:01 build.log
-rw-rw-r--  1 1003 1003   3091 Jun 26 12:56 checkpatch.log
drwxrwxr-x  5 1003 1003   4096 Jun 26 12:54 ci
drwxrwxr-x 10 1003 1003   4096 Jun 26 12:54 docker
drwxrwxr-x  8 1003 1003   4096 Jun 26 12:54 .git
-rw-rw-r--  1 1003 1003    937 Jun 26 12:55 git_apply.log
drwxrwxr-x  3 1003 1003   4096 Jun 26 12:54 .github
-rw-rw-r--  1 1003 1003    233 Jun 26 12:54 .groovylintrc.json
-rw-rw-r--  1 1003 1003     78 Jun 26 13:01 hooks.log
drwxrwxr-x 31 1003 1003   4096 Jun 26 13:00 kernel
-rw-rw-r--  1 1003 1003  42519 Jun 26 12:55 kernel.mbox
-rw-rw-r--  1 1003 1003  25980 Jun 26 12:57 kunit.log
drwxrwxr-x 42 1003 1003   4096 Jun 26 12:54 pipelines
-rw-rw-r--  1 1003 1003    793 Jun 26 12:54 README.adoc
drwxrwxr-x  3 1003 1003   4096 Jun 26 12:54 scripts
drwxrwxr-x  2 1003 1003   4096 Jun 26 12:54 .vscode
+ uname -a
Linux 726edf62f474 5.4.0-149-generic #166-Ubuntu SMP Tue Apr 18 16:51:45 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
+ export
+ grep -Ei '(^|\W)CI_'
declare -x CI_KERNEL_BUILD_DIR="/workspace/kernel/build64"
declare -x CI_KERNEL_IMAGES_DIR="/workspace/kernel/archive/boot"
declare -x CI_KERNEL_MODULES_DIR="/workspace/kernel/archive"
declare -x CI_KERNEL_SRC_DIR="/workspace/kernel"
declare -x CI_SRC_DIR="/workspace/kernel"
declare -x CI_TOOLS_SRC_DIR="/workspace/ci"
declare -x CI_WORKSPACE_DIR="/workspace"
+ '[' -n /workspace ']'
+ git_args='-C /workspace/kernel'
+ git_log_args=
+ git --no-pager -C /workspace/kernel log --format=oneline --abbrev-commit
22347f984 drm/xe: add lockdep annotation for xe_device_mem_access_get()
7ee89f580 drm/xe: drop xe_device_mem_access_get() from invalidation_vma
2c6140152 drm/xe/ggtt: prime ggtt->lock against FS_RECLAIM
08dfd8e55 drm/xe: drop xe_device_mem_access_get() from guc_ct_send
7b8d9716c drm/xe/mmio: enforce xe_device_assert_mem_access
3ef81c5bf drm/xe/display: use mem_access underneath
859db692d drm/xe/pci: wrap probe with mem_access
8e7037b5f drm/xe: ensure correct access_put ordering
b541505e3 drm/xe/mmio: grab mem_access in xe_mmio_ioctl
c497e9cf4 drm/xe/guc_pc: add missing mem_access for freq_rpe_show
f0e75364c drm/xe/debugfs: grab mem_access around forcewake
c18ae7d89 drm/xe/vm: tidy up xe_runtime_pm usage
12dc13a5b drm/xe: fix xe_device_mem_access_get() races
d3fc5af59 drm/xe/bo: consider bo->flags in xe_bo_migrate()
run-parts: executing /workspace/ci/hooks/10-build-W1
+ SRC_DIR=/workspace/kernel
+ RESTORE_DISPLAY_CONFIG=0
+ '[' -n /workspace/kernel/build64 ']'
+ BUILD_DIR=/workspace/kernel/build64
+ cd /workspace/kernel
+ grep -q -e '^CONFIG_DRM_XE_DISPLAY=[yY]' /workspace/kernel/build64/.config
+ RESTORE_DISPLAY_CONFIG=1
+ trap cleanup EXIT
+ ./scripts/config --file /workspace/kernel/build64/.config --disable CONFIG_DRM_XE_DISPLAY
++ nproc
+ make -j48 O=/workspace/kernel/build64 modules_prepare
make[1]: Entering directory '/workspace/kernel/build64'
  SYNC    include/config/auto.conf.cmd
  GEN     Makefile
  GEN     Makefile
  UPD     include/config/kernel.release
  UPD     include/generated/compile.h
  UPD     include/generated/utsrelease.h
  DESCEND objtool
  CALL    ../scripts/checksyscalls.sh
  HOSTCC  /workspace/kernel/build64/tools/objtool/fixdep.o
  HOSTLD  /workspace/kernel/build64/tools/objtool/fixdep-in.o
  LINK    /workspace/kernel/build64/tools/objtool/fixdep
  INSTALL libsubcmd_headers
  CC      /workspace/kernel/build64/tools/objtool/libsubcmd/exec-cmd.o
  CC      /workspace/kernel/build64/tools/objtool/libsubcmd/help.o
  CC      /workspace/kernel/build64/tools/objtool/libsubcmd/pager.o
  CC      /workspace/kernel/build64/tools/objtool/libsubcmd/parse-options.o
  CC      /workspace/kernel/build64/tools/objtool/libsubcmd/run-command.o
  CC      /workspace/kernel/build64/tools/objtool/libsubcmd/sigchain.o
  CC      /workspace/kernel/build64/tools/objtool/libsubcmd/subcmd-config.o
  LD      /workspace/kernel/build64/tools/objtool/libsubcmd/libsubcmd-in.o
  AR      /workspace/kernel/build64/tools/objtool/libsubcmd/libsubcmd.a
  CC      /workspace/kernel/build64/tools/objtool/weak.o
  CC      /workspace/kernel/build64/tools/objtool/check.o
  CC      /workspace/kernel/build64/tools/objtool/special.o
  CC      /workspace/kernel/build64/tools/objtool/builtin-check.o
  CC      /workspace/kernel/build64/tools/objtool/elf.o
  CC      /workspace/kernel/build64/tools/objtool/objtool.o
  CC      /workspace/kernel/build64/tools/objtool/orc_gen.o
  CC      /workspace/kernel/build64/tools/objtool/orc_dump.o
  CC      /workspace/kernel/build64/tools/objtool/libstring.o
  CC      /workspace/kernel/build64/tools/objtool/libctype.o
  CC      /workspace/kernel/build64/tools/objtool/str_error_r.o
  CC      /workspace/kernel/build64/tools/objtool/librbtree.o
  CC      /workspace/kernel/build64/tools/objtool/arch/x86/special.o
  CC      /workspace/kernel/build64/tools/objtool/arch/x86/decode.o
  LD      /workspace/kernel/build64/tools/objtool/arch/x86/objtool-in.o
  LD      /workspace/kernel/build64/tools/objtool/objtool-in.o
  LINK    /workspace/kernel/build64/tools/objtool/objtool
make[1]: Leaving directory '/workspace/kernel/build64'
++ nproc
+ make -j48 O=/workspace/kernel/build64 M=drivers/gpu/drm/xe W=1
make[1]: Entering directory '/workspace/kernel/build64'
  CC [M]  drivers/gpu/drm/xe/xe_bb.o
  CC [M]  drivers/gpu/drm/xe/xe_bo.o
  CC [M]  drivers/gpu/drm/xe/xe_bo_evict.o
  CC [M]  drivers/gpu/drm/xe/xe_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_devcoredump.o
  CC [M]  drivers/gpu/drm/xe/xe_device.o
  CC [M]  drivers/gpu/drm/xe/xe_dma_buf.o
  CC [M]  drivers/gpu/drm/xe/xe_engine.o
  CC [M]  drivers/gpu/drm/xe/xe_exec.o
  CC [M]  drivers/gpu/drm/xe/xe_execlist.o
  CC [M]  drivers/gpu/drm/xe/xe_force_wake.o
  CC [M]  drivers/gpu/drm/xe/xe_ggtt.o
  CC [M]  drivers/gpu/drm/xe/xe_gt.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_clock.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_mcr.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_pagefault.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_sysfs.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_tlb_invalidation.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_topology.o
  HOSTCC  drivers/gpu/drm/xe/xe_gen_wa_oob
  CC [M]  drivers/gpu/drm/xe/xe_guc_ads.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_ct.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_hwconfig.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_log.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_pc.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_submit.o
  CC [M]  drivers/gpu/drm/xe/xe_hw_engine.o
  CC [M]  drivers/gpu/drm/xe/xe_hw_fence.o
  CC [M]  drivers/gpu/drm/xe/xe_huc.o
  CC [M]  drivers/gpu/drm/xe/xe_huc_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_irq.o
  CC [M]  drivers/gpu/drm/xe/xe_lrc.o
  CC [M]  drivers/gpu/drm/xe/xe_migrate.o
  CC [M]  drivers/gpu/drm/xe/xe_mmio.o
  CC [M]  drivers/gpu/drm/xe/xe_mocs.o
  CC [M]  drivers/gpu/drm/xe/xe_module.o
  CC [M]  drivers/gpu/drm/xe/xe_pat.o
  CC [M]  drivers/gpu/drm/xe/xe_pci.o
  CC [M]  drivers/gpu/drm/xe/xe_pcode.o
  CC [M]  drivers/gpu/drm/xe/xe_pm.o
  CC [M]  drivers/gpu/drm/xe/xe_preempt_fence.o
  CC [M]  drivers/gpu/drm/xe/xe_pt.o
  CC [M]  drivers/gpu/drm/xe/xe_pt_walk.o
  CC [M]  drivers/gpu/drm/xe/xe_query.o
  CC [M]  drivers/gpu/drm/xe/xe_reg_sr.o
  CC [M]  drivers/gpu/drm/xe/xe_reg_whitelist.o
  CC [M]  drivers/gpu/drm/xe/xe_rtp.o
  CC [M]  drivers/gpu/drm/xe/xe_sa.o
  CC [M]  drivers/gpu/drm/xe/xe_sched_job.o
  CC [M]  drivers/gpu/drm/xe/xe_step.o
  CC [M]  drivers/gpu/drm/xe/xe_sync.o
  CC [M]  drivers/gpu/drm/xe/xe_tile.o
  CC [M]  drivers/gpu/drm/xe/xe_trace.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_sys_mgr.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_stolen_mgr.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_vram_mgr.o
  CC [M]  drivers/gpu/drm/xe/xe_tuning.o
  CC [M]  drivers/gpu/drm/xe/xe_uc.o
  CC [M]  drivers/gpu/drm/xe/xe_uc_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_uc_fw.o
  CC [M]  drivers/gpu/drm/xe/xe_vm.o
  CC [M]  drivers/gpu/drm/xe/xe_vm_madvise.o
  CC [M]  drivers/gpu/drm/xe/xe_wait_user_fence.o
  CC [M]  drivers/gpu/drm/xe/xe_wopcm.o
  HDRTEST drivers/gpu/drm/xe/abi/guc_klvs_abi.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_errors_abi.h
  CC [M]  drivers/gpu/drm/xe/tests/xe_bo_test.o
  HDRTEST drivers/gpu/drm/xe/abi/guc_actions_slpc_abi.h
  CC [M]  drivers/gpu/drm/xe/tests/xe_dma_buf_test.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_migrate_test.o
  HDRTEST drivers/gpu/drm/xe/abi/guc_communication_mmio_abi.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_actions_abi.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_messages_abi.h
  CC [M]  drivers/gpu/drm/xe/tests/xe_pci_test.o
  HDRTEST drivers/gpu/drm/xe/regs/xe_reg_defs.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_guc_regs.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_gt_regs.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_regs.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_gpu_commands.h
  CC [M]  drivers/gpu/drm/xe/tests/xe_rtp_test.o
  HDRTEST drivers/gpu/drm/xe/regs/xe_lrc_layout.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_engine_regs.h
  CC [M]  drivers/gpu/drm/xe/tests/xe_wa_test.o
  HDRTEST drivers/gpu/drm/xe/tests/xe_test.h
  HDRTEST drivers/gpu/drm/xe/tests/xe_pci_test.h
  HDRTEST drivers/gpu/drm/xe/tests/xe_migrate_test.h
  HDRTEST drivers/gpu/drm/xe/tests/xe_dma_buf_test.h
  HDRTEST drivers/gpu/drm/xe/tests/xe_bo_test.h
  HDRTEST drivers/gpu/drm/xe/xe_bb.h
  HDRTEST drivers/gpu/drm/xe/xe_bb_types.h
  HDRTEST drivers/gpu/drm/xe/xe_bo.h
  HDRTEST drivers/gpu/drm/xe/xe_bo_doc.h
  HDRTEST drivers/gpu/drm/xe/xe_bo_evict.h
  HDRTEST drivers/gpu/drm/xe/xe_bo_types.h
  HDRTEST drivers/gpu/drm/xe/xe_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_devcoredump.h
  HDRTEST drivers/gpu/drm/xe/xe_devcoredump_types.h
  HDRTEST drivers/gpu/drm/xe/xe_device.h
  HDRTEST drivers/gpu/drm/xe/xe_device_types.h
  HDRTEST drivers/gpu/drm/xe/xe_dma_buf.h
  HDRTEST drivers/gpu/drm/xe/xe_drv.h
  HDRTEST drivers/gpu/drm/xe/xe_engine.h
  HDRTEST drivers/gpu/drm/xe/xe_engine_types.h
  HDRTEST drivers/gpu/drm/xe/xe_exec.h
  HDRTEST drivers/gpu/drm/xe/xe_execlist.h
  HDRTEST drivers/gpu/drm/xe/xe_execlist_types.h
  HDRTEST drivers/gpu/drm/xe/xe_force_wake.h
  HDRTEST drivers/gpu/drm/xe/xe_force_wake_types.h
  HDRTEST drivers/gpu/drm/xe/xe_ggtt.h
  HDRTEST drivers/gpu/drm/xe/xe_ggtt_types.h
  HDRTEST drivers/gpu/drm/xe/xe_gt.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_clock.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_mcr.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_pagefault.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_printk.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_sysfs.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_sysfs_types.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_tlb_invalidation.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_tlb_invalidation_types.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_topology.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_ads.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_ads_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_ct.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_ct_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_engine_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_hwconfig.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_fwif.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_log.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_log_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_pc.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_pc_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_submit.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_submit_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_types.h
  HDRTEST drivers/gpu/drm/xe/xe_huc.h
  HDRTEST drivers/gpu/drm/xe/xe_huc_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_huc_types.h
  HDRTEST drivers/gpu/drm/xe/xe_hw_engine.h
  HDRTEST drivers/gpu/drm/xe/xe_hw_engine_types.h
  HDRTEST drivers/gpu/drm/xe/xe_hw_fence.h
  HDRTEST drivers/gpu/drm/xe/xe_hw_fence_types.h
  HDRTEST drivers/gpu/drm/xe/xe_irq.h
  HDRTEST drivers/gpu/drm/xe/xe_lrc.h
  HDRTEST drivers/gpu/drm/xe/xe_lrc_types.h
  HDRTEST drivers/gpu/drm/xe/xe_macros.h
  HDRTEST drivers/gpu/drm/xe/xe_map.h
  HDRTEST drivers/gpu/drm/xe/xe_migrate.h
  HDRTEST drivers/gpu/drm/xe/xe_migrate_doc.h
  HDRTEST drivers/gpu/drm/xe/xe_mmio.h
  HDRTEST drivers/gpu/drm/xe/xe_mocs.h
  HDRTEST drivers/gpu/drm/xe/xe_module.h
  HDRTEST drivers/gpu/drm/xe/xe_pat.h
  HDRTEST drivers/gpu/drm/xe/xe_pci.h
  HDRTEST drivers/gpu/drm/xe/xe_pci_types.h
  HDRTEST drivers/gpu/drm/xe/xe_pcode.h
  HDRTEST drivers/gpu/drm/xe/xe_pcode_api.h
  HDRTEST drivers/gpu/drm/xe/xe_platform_types.h
  HDRTEST drivers/gpu/drm/xe/xe_pm.h
  HDRTEST drivers/gpu/drm/xe/xe_preempt_fence.h
  HDRTEST drivers/gpu/drm/xe/xe_preempt_fence_types.h
  HDRTEST drivers/gpu/drm/xe/xe_pt.h
  HDRTEST drivers/gpu/drm/xe/xe_pt_types.h
  HDRTEST drivers/gpu/drm/xe/xe_pt_walk.h
  HDRTEST drivers/gpu/drm/xe/xe_query.h
  HDRTEST drivers/gpu/drm/xe/xe_reg_sr.h
  HDRTEST drivers/gpu/drm/xe/xe_reg_sr_types.h
  HDRTEST drivers/gpu/drm/xe/xe_reg_whitelist.h
  HDRTEST drivers/gpu/drm/xe/xe_res_cursor.h
  HDRTEST drivers/gpu/drm/xe/xe_ring_ops.h
  HDRTEST drivers/gpu/drm/xe/xe_ring_ops_types.h
  HDRTEST drivers/gpu/drm/xe/xe_rtp.h
  HDRTEST drivers/gpu/drm/xe/xe_rtp_types.h
  HDRTEST drivers/gpu/drm/xe/xe_sa.h
  HDRTEST drivers/gpu/drm/xe/xe_sa_types.h
  HDRTEST drivers/gpu/drm/xe/xe_sched_job.h
  HDRTEST drivers/gpu/drm/xe/xe_sched_job_types.h
  HDRTEST drivers/gpu/drm/xe/xe_step.h
  HDRTEST drivers/gpu/drm/xe/xe_step_types.h
  HDRTEST drivers/gpu/drm/xe/xe_sync.h
  HDRTEST drivers/gpu/drm/xe/xe_sync_types.h
  HDRTEST drivers/gpu/drm/xe/xe_tile.h
  HDRTEST drivers/gpu/drm/xe/xe_trace.h
  HDRTEST drivers/gpu/drm/xe/xe_ttm_stolen_mgr.h
  HDRTEST drivers/gpu/drm/xe/xe_ttm_sys_mgr.h
  HDRTEST drivers/gpu/drm/xe/xe_ttm_vram_mgr.h
  HDRTEST drivers/gpu/drm/xe/xe_ttm_vram_mgr_types.h
  HDRTEST drivers/gpu/drm/xe/xe_tuning.h
  HDRTEST drivers/gpu/drm/xe/xe_uc.h
  HDRTEST drivers/gpu/drm/xe/xe_uc_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_uc_fw.h
  HDRTEST drivers/gpu/drm/xe/xe_uc_fw_abi.h
  HDRTEST drivers/gpu/drm/xe/xe_uc_fw_types.h
  HDRTEST drivers/gpu/drm/xe/xe_uc_types.h
  HDRTEST drivers/gpu/drm/xe/xe_vm.h
  HDRTEST drivers/gpu/drm/xe/xe_vm_doc.h
  HDRTEST drivers/gpu/drm/xe/xe_vm_madvise.h
  HDRTEST drivers/gpu/drm/xe/xe_vm_types.h
  HDRTEST drivers/gpu/drm/xe/xe_wa.h
  HDRTEST drivers/gpu/drm/xe/xe_wait_user_fence.h
  HDRTEST drivers/gpu/drm/xe/xe_wopcm.h
  HDRTEST drivers/gpu/drm/xe/xe_wopcm_types.h
  GEN     xe_wa_oob.c xe_wa_oob.h
  GEN     xe_wa_oob.c xe_wa_oob.h
  CC [M]  drivers/gpu/drm/xe/xe_guc.o
  CC [M]  drivers/gpu/drm/xe/xe_ring_ops.o
  CC [M]  drivers/gpu/drm/xe/xe_wa.o
  LD [M]  drivers/gpu/drm/xe/xe.o
  MODPOST drivers/gpu/drm/xe/Module.symvers
  CC [M]  drivers/gpu/drm/xe/xe.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_bo_test.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_dma_buf_test.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_migrate_test.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_pci_test.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_rtp_test.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_wa_test.mod.o
  LD [M]  drivers/gpu/drm/xe/tests/xe_bo_test.ko
  LD [M]  drivers/gpu/drm/xe/xe.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_migrate_test.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_rtp_test.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_wa_test.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_dma_buf_test.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_pci_test.ko
make[1]: Leaving directory '/workspace/kernel/build64'
+ cleanup
+ '[' 1 -eq 1 ']'
+ ./scripts/config --file /workspace/kernel/build64/.config --enable CONFIG_DRM_XE_DISPLAY
run-parts: executing /workspace/ci/hooks/20-kernel-doc
+ SRC_DIR=/workspace/kernel
+ cd /workspace/kernel
+ find drivers/gpu/drm/xe/ -name '*.[ch]' -not -path 'drivers/gpu/drm/xe/display/*'
+ xargs ./scripts/kernel-doc -Werror -none
All hooks done



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

* [Intel-xe] ✓ CI.checksparse: success for xe_device_mem_access fixes and related bits (rev2)
  2023-06-26 10:50 [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Matthew Auld
                   ` (17 preceding siblings ...)
  2023-06-26 13:01 ` [Intel-xe] ✓ CI.Hooks: " Patchwork
@ 2023-06-26 13:02 ` Patchwork
  2023-06-26 13:46 ` [Intel-xe] ○ CI.BAT: info " Patchwork
  2023-06-30  6:21 ` [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Dixit, Ashutosh
  20 siblings, 0 replies; 36+ messages in thread
From: Patchwork @ 2023-06-26 13:02 UTC (permalink / raw)
  To: Matthew Auld; +Cc: intel-xe

== Series Details ==

Series: xe_device_mem_access fixes and related bits (rev2)
URL   : https://patchwork.freedesktop.org/series/119213/
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 d3fc5af59c7c17ad1a0272c49dbff84534d9d606
Sparse version: 0.6.1 (Ubuntu: 0.6.1-2build1)
Fast mode used, each commit won't be checked separately.
Okay!

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



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

* [Intel-xe] ○ CI.BAT: info for xe_device_mem_access fixes and related bits (rev2)
  2023-06-26 10:50 [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Matthew Auld
                   ` (18 preceding siblings ...)
  2023-06-26 13:02 ` [Intel-xe] ✓ CI.checksparse: " Patchwork
@ 2023-06-26 13:46 ` Patchwork
  2023-06-30  6:21 ` [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Dixit, Ashutosh
  20 siblings, 0 replies; 36+ messages in thread
From: Patchwork @ 2023-06-26 13:46 UTC (permalink / raw)
  To: Matthew Auld; +Cc: intel-xe

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

== Series Details ==

Series: xe_device_mem_access fixes and related bits (rev2)
URL   : https://patchwork.freedesktop.org/series/119213/
State : info

== Summary ==

Participating hosts:
bat-pvc-2
bat-atsm-2
bat-dg2-oem2
bat-adlp-7
Missing hosts results[0]:
Results: [xe-pw-119213v2](https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-119213v2/index.html)



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

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

* Re: [Intel-xe] [PATCH v12 04/13] drm/xe/guc_pc: add missing mem_access for freq_rpe_show
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 04/13] drm/xe/guc_pc: add missing mem_access for freq_rpe_show Matthew Auld
@ 2023-06-27  6:53   ` Gupta, Anshuman
  2023-06-27  8:20     ` Matthew Auld
  0 siblings, 1 reply; 36+ messages in thread
From: Gupta, Anshuman @ 2023-06-27  6:53 UTC (permalink / raw)
  To: Auld, Matthew, intel-xe; +Cc: Vivi, Rodrigo



> -----Original Message-----
> From: Auld, Matthew <matthew.auld@intel.com>
> Sent: Monday, June 26, 2023 4:21 PM
> To: intel-xe@lists.freedesktop.org
> Cc: Brost, Matthew <matthew.brost@intel.com>; Vivi, Rodrigo
> <rodrigo.vivi@intel.com>; Gupta, Anshuman <anshuman.gupta@intel.com>
> Subject: [PATCH v12 04/13] drm/xe/guc_pc: add missing mem_access for
> freq_rpe_show
> 
> The mem_access is meant to cover any kind of device level memory access,
> mmio included.
> 
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> Cc: Matthew Brost <matthew.brost@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Anshuman Gupta <anshuman.gupta@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_guc_pc.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/xe_guc_pc.c b/drivers/gpu/drm/xe/xe_guc_pc.c
> index 5d5cf4b0d508..e3722a805837 100644
> --- a/drivers/gpu/drm/xe/xe_guc_pc.c
> +++ b/drivers/gpu/drm/xe/xe_guc_pc.c
> @@ -430,8 +430,12 @@ static ssize_t freq_rpe_show(struct device *dev,
>  			     struct device_attribute *attr, char *buf)  {
>  	struct xe_guc_pc *pc = dev_to_pc(dev);
> +	struct xe_gt *gt = pc_to_gt(pc);
> +	struct xe_device *xe = gt_to_xe(gt);
> 
> +	xe_device_mem_access_get(xe);
What is desirable to use here , xe_pm_runtime_get() or  xe_device_mem_access_get() ?
It is register mmio access
Few places in driver using xe_pm_runtime_get() for mmio access.
Thanks,
Anshuman Gupta.
>  	pc_update_rp_values(pc);
> +	xe_device_mem_access_put(xe);
>  	return sysfs_emit(buf, "%d\n", pc->rpe_freq);  }  static
> DEVICE_ATTR_RO(freq_rpe);
> --
> 2.41.0


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

* Re: [Intel-xe] [PATCH v12 04/13] drm/xe/guc_pc: add missing mem_access for freq_rpe_show
  2023-06-27  6:53   ` Gupta, Anshuman
@ 2023-06-27  8:20     ` Matthew Auld
  2023-06-27 10:14       ` Gupta, Anshuman
  0 siblings, 1 reply; 36+ messages in thread
From: Matthew Auld @ 2023-06-27  8:20 UTC (permalink / raw)
  To: Gupta, Anshuman, intel-xe; +Cc: Vivi, Rodrigo

Hi,

On 27/06/2023 07:53, Gupta, Anshuman wrote:
> 
> 
>> -----Original Message----- From: Auld, Matthew 
>> <matthew.auld@intel.com> Sent: Monday, June 26, 2023 4:21 PM To: 
>> intel-xe@lists.freedesktop.org Cc: Brost, Matthew 
>> <matthew.brost@intel.com>; Vivi, Rodrigo <rodrigo.vivi@intel.com>; 
>> Gupta, Anshuman <anshuman.gupta@intel.com> Subject: [PATCH v12 
>> 04/13] drm/xe/guc_pc: add missing mem_access for freq_rpe_show
>> 
>> The mem_access is meant to cover any kind of device level memory 
>> access, mmio included.
>> 
>> Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Matthew 
>> Brost <matthew.brost@intel.com> Cc: Rodrigo Vivi 
>> <rodrigo.vivi@intel.com> Cc: Anshuman Gupta 
>> <anshuman.gupta@intel.com> --- drivers/gpu/drm/xe/xe_guc_pc.c | 4 
>> ++++ 1 file changed, 4 insertions(+)
>> 
>> diff --git a/drivers/gpu/drm/xe/xe_guc_pc.c 
>> b/drivers/gpu/drm/xe/xe_guc_pc.c index 5d5cf4b0d508..e3722a805837 
>> 100644 --- a/drivers/gpu/drm/xe/xe_guc_pc.c +++ 
>> b/drivers/gpu/drm/xe/xe_guc_pc.c @@ -430,8 +430,12 @@ static 
>> ssize_t freq_rpe_show(struct device *dev, struct device_attribute 
>> *attr, char *buf)  { struct xe_guc_pc *pc = dev_to_pc(dev); + 
>> struct xe_gt *gt = pc_to_gt(pc); +	struct xe_device *xe = 
>> gt_to_xe(gt);
>> 
>> +	xe_device_mem_access_get(xe);
> What is desirable to use here , xe_pm_runtime_get() or 
> xe_device_mem_access_get() ?

Rodrigo suggested using xe_device_mem_access_get() for MMIO, since it 
can be thought of as just another type of memory access, which seems 
pretty reasonable to me. Matt Roper also had thoughts about it here:
https://patchwork.freedesktop.org/patch/542538/?series=119345&rev=1

I don't have a strong opinion either way, just so long as we are 
consistent about it and have a reliable way to 
assert_device_active/assert_mem_access.

> It is register mmio access Few places in driver using 
> xe_pm_runtime_get() for mmio access.

The one in xe_vm.c looks to be a workaround for the race in patch 1, 
which is fixed in this series. Ignoring that I only see the cases in 
compat-i915-headers/i915_drv.h, which looks to be a special case for 
display/i915, but that is also converted to use mem_access later in the 
series, since I wanted to try adding assert_mem_access from all MMIO 
calls to see what CI says (it complained about freq_rpe_show() as per 
this patch). Are there some other places I missed that are using 
xe_pm_runtime_get?

> Thanks, Anshuman Gupta.
>> pc_update_rp_values(pc); +	xe_device_mem_access_put(xe); return 
>> sysfs_emit(buf, "%d\n", pc->rpe_freq);  }  static 
>> DEVICE_ATTR_RO(freq_rpe); -- 2.41.0
> 

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

* Re: [Intel-xe] [PATCH v12 04/13] drm/xe/guc_pc: add missing mem_access for freq_rpe_show
  2023-06-27  8:20     ` Matthew Auld
@ 2023-06-27 10:14       ` Gupta, Anshuman
  0 siblings, 0 replies; 36+ messages in thread
From: Gupta, Anshuman @ 2023-06-27 10:14 UTC (permalink / raw)
  To: Auld, Matthew, intel-xe; +Cc: Vivi, Rodrigo



> -----Original Message-----
> From: Auld, Matthew <matthew.auld@intel.com>
> Sent: Tuesday, June 27, 2023 1:51 PM
> To: Gupta, Anshuman <anshuman.gupta@intel.com>; intel-
> xe@lists.freedesktop.org
> Cc: Brost, Matthew <matthew.brost@intel.com>; Vivi, Rodrigo
> <rodrigo.vivi@intel.com>
> Subject: Re: [PATCH v12 04/13] drm/xe/guc_pc: add missing mem_access for
> freq_rpe_show
> 
> Hi,
> 
> On 27/06/2023 07:53, Gupta, Anshuman wrote:
> >
> >
> >> -----Original Message----- From: Auld, Matthew
> >> <matthew.auld@intel.com> Sent: Monday, June 26, 2023 4:21 PM To:
> >> intel-xe@lists.freedesktop.org Cc: Brost, Matthew
> >> <matthew.brost@intel.com>; Vivi, Rodrigo <rodrigo.vivi@intel.com>;
> >> Gupta, Anshuman <anshuman.gupta@intel.com> Subject: [PATCH v12 04/13]
> >> drm/xe/guc_pc: add missing mem_access for freq_rpe_show
> >>
> >> The mem_access is meant to cover any kind of device level memory
> >> access, mmio included.
> >>
> >> Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Matthew
> >> Brost <matthew.brost@intel.com> Cc: Rodrigo Vivi
> >> <rodrigo.vivi@intel.com> Cc: Anshuman Gupta
> >> <anshuman.gupta@intel.com> --- drivers/gpu/drm/xe/xe_guc_pc.c | 4
> >> ++++ 1 file changed, 4 insertions(+)
> >>
> >> diff --git a/drivers/gpu/drm/xe/xe_guc_pc.c
> >> b/drivers/gpu/drm/xe/xe_guc_pc.c index 5d5cf4b0d508..e3722a805837
> >> 100644 --- a/drivers/gpu/drm/xe/xe_guc_pc.c +++
> >> b/drivers/gpu/drm/xe/xe_guc_pc.c @@ -430,8 +430,12 @@ static ssize_t
> >> freq_rpe_show(struct device *dev, struct device_attribute *attr, char
> >> *buf)  { struct xe_guc_pc *pc = dev_to_pc(dev); +
> >> struct xe_gt *gt = pc_to_gt(pc); +	struct xe_device *xe =
> >> gt_to_xe(gt);
> >>
> >> +	xe_device_mem_access_get(xe);
> > What is desirable to use here , xe_pm_runtime_get() or
> > xe_device_mem_access_get() ?
> 
> Rodrigo suggested using xe_device_mem_access_get() for MMIO, since it can
> be thought of as just another type of memory access, which seems pretty
> reasonable to me. Matt Roper also had thoughts about it here:
> https://patchwork.freedesktop.org/patch/542538/?series=119345&rev=1
> 
> I don't have a strong opinion either way, just so long as we are consistent about
> it and have a reliable way to assert_device_active/assert_mem_access.
> 
> > It is register mmio access Few places in driver using
> > xe_pm_runtime_get() for mmio access.
> 
> The one in xe_vm.c looks to be a workaround for the race in patch 1, which is
> fixed in this series. Ignoring that I only see the cases in compat-i915-
> headers/i915_drv.h, which looks to be a special case for display/i915, but that is
> also converted to use mem_access later in the series, since I wanted to try
> adding assert_mem_access from all MMIO calls to see what CI says (it
> complained about freq_rpe_show() as per this patch). Are there some other
> places I missed that are using xe_pm_runtime_get?
Thanks for explanation.
Reviewed-by: Anshuman Gupta <anshuman.gupta@intel.com>
> 
> > Thanks, Anshuman Gupta.
> >> pc_update_rp_values(pc); +	xe_device_mem_access_put(xe); return
> >> sysfs_emit(buf, "%d\n", pc->rpe_freq);  }  static
> >> DEVICE_ATTR_RO(freq_rpe); -- 2.41.0
> >

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

* Re: [Intel-xe] [PATCH v12 08/13] drm/xe/display: use mem_access underneath
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 08/13] drm/xe/display: use mem_access underneath Matthew Auld
@ 2023-06-28  9:51   ` Gupta, Anshuman
  2023-06-29  9:19     ` Matthew Auld
  0 siblings, 1 reply; 36+ messages in thread
From: Gupta, Anshuman @ 2023-06-28  9:51 UTC (permalink / raw)
  To: Auld, Matthew, intel-xe



> -----Original Message-----
> From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of
> Matthew Auld
> Sent: Monday, June 26, 2023 4:21 PM
> To: intel-xe@lists.freedesktop.org
> Subject: [Intel-xe] [PATCH v12 08/13] drm/xe/display: use mem_access
> underneath
> 
> There are places in the display code (i915) doing mmio access.
> 
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> ---
>  drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
> b/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
> index 59bf1d4a61d6..7a43f3af1796 100644
> --- a/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
> +++ b/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
> @@ -151,6 +151,7 @@ static inline bool intel_runtime_pm_get(struct
> xe_runtime_pm *pm)
>  		xe_pm_runtime_put(xe);
>  		return false;
>  	}
> +	xe_device_mem_access_get(xe);
>  	return true;
>  }
> 
> @@ -158,14 +159,14 @@ static inline bool
> intel_runtime_pm_get_if_in_use(struct xe_runtime_pm *pm)  {
>  	struct xe_device *xe = container_of(pm, struct xe_device,
> runtime_pm);
> 
> -	return xe_pm_runtime_get_if_active(xe);
> +	return xe_device_mem_access_get_if_ongoing(xe);
>  }
> 
>  static inline void intel_runtime_pm_put_unchecked(struct xe_runtime_pm
> *pm)  {
>  	struct xe_device *xe = container_of(pm, struct xe_device,
> runtime_pm);
> 
> -	xe_pm_runtime_put(xe);
> +	xe_device_mem_access_put(xe);
This patch does not remove xe_pm_runtime_get() from intel_runtime_pm_get() but removes 
xe_pm_runtime_put() here. It will be unbalanced dev usage_count.
Thanks,
Anshuman Gupta.
>  }
> 
>  static inline void intel_runtime_pm_put(struct xe_runtime_pm *pm, bool
> wakeref)
> --
> 2.41.0


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

* Re: [Intel-xe] [PATCH v12 08/13] drm/xe/display: use mem_access underneath
  2023-06-28  9:51   ` Gupta, Anshuman
@ 2023-06-29  9:19     ` Matthew Auld
  0 siblings, 0 replies; 36+ messages in thread
From: Matthew Auld @ 2023-06-29  9:19 UTC (permalink / raw)
  To: Gupta, Anshuman, intel-xe

On 28/06/2023 10:51, Gupta, Anshuman wrote:
> 
> 
>> -----Original Message-----
>> From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of
>> Matthew Auld
>> Sent: Monday, June 26, 2023 4:21 PM
>> To: intel-xe@lists.freedesktop.org
>> Subject: [Intel-xe] [PATCH v12 08/13] drm/xe/display: use mem_access
>> underneath
>>
>> There are places in the display code (i915) doing mmio access.
>>
>> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
>> ---
>>   drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h | 5 +++--
>>   1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
>> b/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
>> index 59bf1d4a61d6..7a43f3af1796 100644
>> --- a/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
>> +++ b/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
>> @@ -151,6 +151,7 @@ static inline bool intel_runtime_pm_get(struct
>> xe_runtime_pm *pm)
>>   		xe_pm_runtime_put(xe);
>>   		return false;
>>   	}
>> +	xe_device_mem_access_get(xe);
>>   	return true;
>>   }
>>
>> @@ -158,14 +159,14 @@ static inline bool
>> intel_runtime_pm_get_if_in_use(struct xe_runtime_pm *pm)  {
>>   	struct xe_device *xe = container_of(pm, struct xe_device,
>> runtime_pm);
>>
>> -	return xe_pm_runtime_get_if_active(xe);
>> +	return xe_device_mem_access_get_if_ongoing(xe);
>>   }
>>
>>   static inline void intel_runtime_pm_put_unchecked(struct xe_runtime_pm
>> *pm)  {
>>   	struct xe_device *xe = container_of(pm, struct xe_device,
>> runtime_pm);
>>
>> -	xe_pm_runtime_put(xe);
>> +	xe_device_mem_access_put(xe);
> This patch does not remove xe_pm_runtime_get() from intel_runtime_pm_get() but removes
> xe_pm_runtime_put() here. It will be unbalanced dev usage_count.

Indeed. Thanks for catching.

> Thanks,
> Anshuman Gupta.
>>   }
>>
>>   static inline void intel_runtime_pm_put(struct xe_runtime_pm *pm, bool
>> wakeref)
>> --
>> 2.41.0
> 

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

* Re: [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits
  2023-06-26 10:50 [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Matthew Auld
                   ` (19 preceding siblings ...)
  2023-06-26 13:46 ` [Intel-xe] ○ CI.BAT: info " Patchwork
@ 2023-06-30  6:21 ` Dixit, Ashutosh
  2023-06-30 11:07   ` Matthew Auld
  20 siblings, 1 reply; 36+ messages in thread
From: Dixit, Ashutosh @ 2023-06-30  6:21 UTC (permalink / raw)
  To: Matthew Auld; +Cc: intel-xe

On Mon, 26 Jun 2023 03:50:38 -0700, Matthew Auld wrote:
>
> Main goal is to fix the races in xe_device_mem_access_get(). With that fixed we
> can clean up some hacks and also start rolling it out to more places that need
> it, including now asserting it around every mmio access. We also add lockdep
> annotations for xe_device_mem_access_get() and fix the remaining lockdep
> fallout.
>
> v11 -> v12:
>   - freq_rpe_show also needs the device to be awake
>   - Improvements to the lockdep annotation patch

Just FYI, fwiw this is from my local branch, but even with this series I am
seeing this on DG2. Probe is fine but as soon as my IGT (perf) runs the
trace below spews out. The unit test runs fine on RPLP. If there's a
temporary workaround for this I'd like to know. Thanks.

-Ashutosh

[  486.110571] xe: loading out-of-tree module taints kernel.
[  486.131776] xe 0000:03:00.0: vgaarb: deactivate vga console
[  486.133136] GT topology dss mask (geometry): 00000000,0000ff00
[  486.133139] GT topology dss mask (compute):  00000000,0000ff00
[  486.133141] GT topology EU mask per DSS:     0000ffff
[  486.133636] xe 0000:03:00.0: [drm] VISIBLE VRAM: 0x0000004000000000, 0x0000000200000000
[  486.133686] xe 0000:03:00.0: [drm] VRAM[0, 0]: 0x0000004000000000, 0x000000017c800000
[  486.133688] xe 0000:03:00.0: [drm] Total VRAM: 0x0000004000000000, 0x0000000180000000
[  486.133690] xe 0000:03:00.0: [drm] Available VRAM: 0x0000004000000000, 0x000000017c800000
[  486.195204] xe 0000:03:00.0: [drm] Using GuC firmware (70.5) from i915/dg2_guc_70.bin
[  486.198192] xe 0000:03:00.0: [drm] HuC disabled
[  486.241959] xe 0000:03:00.0: [drm] ccs0 fused off
[  486.241964] xe 0000:03:00.0: [drm] ccs2 fused off
[  486.241965] xe 0000:03:00.0: [drm] ccs3 fused off
[  486.242509] xe REG[0x223a8-0x223af]: allow read access
[  486.242606] xe REG[0x1c03a8-0x1c03af]: allow read access
[  486.242708] xe REG[0x1d03a8-0x1d03af]: allow read access
[  486.242826] xe REG[0x1c83a8-0x1c83af]: allow read access
[  486.242945] xe REG[0x1d83a8-0x1d83af]: allow read access
[  486.243033] xe REG[0x1c3a8-0x1c3af]: allow read access
[  486.306291] [drm] Initialized xe 1.1.0 20201103 for 0000:03:00.0 on minor 0
[  486.309344] insmod (3290) used greatest stack depth: 10936 bytes left
[  487.559809] xe 0000:03:00.0: [drm] GT0: suspended
[  500.096224] [IGT] perf: executing
[  502.830435] pcieport 0000:01:00.0: not ready 1023ms after resume; giving up
[  502.832901] pcieport 0000:01:00.0: Unable to change power state from D3cold to D0, device inaccessible
[  502.835939] pcieport 0000:02:01.0: Unable to change power state from D3cold to D0, device inaccessible
[  502.836769] pcieport 0000:02:04.0: Unable to change power state from D3cold to D0, device inaccessible
[  505.070434] xe 0000:03:00.0: not ready 1023ms after resume; giving up
[  505.071074] xe 0000:03:00.0: Unable to change power state from D3cold to D0, device inaccessible
[  505.087125] snd_hda_intel 0000:04:00.0: not ready 1023ms after resume; giving up
[  505.087154] snd_hda_intel 0000:04:00.0: Unable to change power state from D3cold to D0, device inaccessible
[  505.183156] xe 0000:03:00.0: Unable to change power state from D3cold to D0, device inaccessible
[  505.242684] xe 0000:03:00.0: [drm] Force wake domain (0) failed to ack sleep, ret=-110
[  505.296974] snd_hda_intel 0000:04:00.0: CORB reset timeout#2, CORBRP = 65535
[  505.302246] xe 0000:03:00.0: [drm] Force wake domain (1) failed to ack sleep, ret=-110
[  505.362158] xe 0000:03:00.0: [drm] Force wake domain (3) failed to ack sleep, ret=-110
[  505.423158] xe 0000:03:00.0: [drm] Force wake domain (5) failed to ack sleep, ret=-110
[  505.484157] xe 0000:03:00.0: [drm] Force wake domain (11) failed to ack sleep, ret=-110
[  505.543101] xe 0000:03:00.0: [drm] Force wake domain (12) failed to ack sleep, ret=-110
[  505.543139] ------------[ cut here ]------------
[  505.543141] WARNING: CPU: 1 PID: 3328 at drivers/gpu/drm/xe/xe_oa.c:1913 xe_oa_timestamp_frequency+0xca/0xd0 [xe]
[  505.543173] Modules linked in: xe(O) gpu_sched drm_buddy drm_suballoc_helper drm_ttm_helper ttm nfnetlink br_netfilter overlay mei_pxp x86_pkg_temp_thermal mei_hdcp coretemp kvm_intel snd_hda_codec_h
dmi snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio snd_hda_intel snd_intel_dspcfg snd_hda_codec snd_hwdep snd_hda_core wmi_bmof mei_gsc mei_me snd_pcm mei fuse ip_tables x_tables crct10dif_pc
lmul crc32_pclmul ghash_clmulni_intel e1000e i2c_i801 i2c_smbus ptp pps_core wmi [last unloaded: prime_numbers]
[  505.543220] CPU: 1 PID: 3328 Comm: perf Tainted: G           O       6.3.0+ #2
[  505.543222] Hardware name: Intel Corporation CoffeeLake Client Platform/CoffeeLake S UDIMM RVP, BIOS CNLSFWR1.R00.X220.B00.2103302221 03/30/2021
[  505.543224] RIP: 0010:xe_oa_timestamp_frequency+0xca/0xd0 [xe]
[  505.543252] Code: 5c 8b 40 10 f7 d1 41 5d 83 e1 03 d3 e0 c3 cc cc cc cc 41 8b 84 24 4c 02 00 00 05 00 0d 00 00 25 ff ff 3f 00 eb ab 0f 0b eb 80 <0f> 0b eb bb 66 90 90 90 90 90 90 90 90 90 90 90 90 90
 90 90 90 90
[  505.543255] RSP: 0018:ffffc90005617d58 EFLAGS: 00010282
[  505.543257] RAX: 00000000ffffff92 RBX: ffff88810f798000 RCX: ffffc90005617c4c
[  505.543259] RDX: 0000000000000000 RSI: ffffffff8268031a RDI: ffffffff826a5b09
[  505.543261] RBP: ffff88813fd88050 R08: 0000000000000000 R09: 00000000fffeffff
[  505.543262] R10: 0000000000000000 R11: ffff88846de6fac0 R12: 00000000ffffffff
[  505.543264] R13: ffff88810f79a268 R14: 0000000000000000 R15: ffff88810f798000
[  505.543265] FS:  00007fe0dc224c00(0000) GS:ffff88845da80000(0000) knlGS:0000000000000000
[  505.543267] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  505.543269] CR2: 000055c202d18fb0 CR3: 00000001302d8006 CR4: 00000000003706e0
[  505.543271] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  505.543272] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[  505.543274] Call Trace:
[  505.543276]  <TASK>
[  505.543279]  query_gts+0xd9/0x1f0 [xe]
[  505.543309]  ? __pfx_xe_query_ioctl+0x10/0x10 [xe]
[  505.543337]  drm_ioctl_kernel+0xb4/0x150
[  505.543343]  drm_ioctl+0x214/0x440
[  505.543347]  ? __pfx_xe_query_ioctl+0x10/0x10 [xe]
[  505.543376]  ? __rseq_handle_notify_resume+0x48e/0x5c0
[  505.543382]  ? xfd_validate_state+0x1d/0x80
[  505.543387]  __x64_sys_ioctl+0x89/0xb0
[  505.543391]  do_syscall_64+0x3c/0x90
[  505.543396]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
[  505.543399] RIP: 0033:0x7fe0de11aaff

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

* Re: [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits
  2023-06-30  6:21 ` [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Dixit, Ashutosh
@ 2023-06-30 11:07   ` Matthew Auld
  2023-06-30 16:59     ` Dixit, Ashutosh
  0 siblings, 1 reply; 36+ messages in thread
From: Matthew Auld @ 2023-06-30 11:07 UTC (permalink / raw)
  To: Dixit, Ashutosh; +Cc: intel-xe

On 30/06/2023 07:21, Dixit, Ashutosh wrote:
> On Mon, 26 Jun 2023 03:50:38 -0700, Matthew Auld wrote:
>>
>> Main goal is to fix the races in xe_device_mem_access_get(). With that fixed we
>> can clean up some hacks and also start rolling it out to more places that need
>> it, including now asserting it around every mmio access. We also add lockdep
>> annotations for xe_device_mem_access_get() and fix the remaining lockdep
>> fallout.
>>
>> v11 -> v12:
>>    - freq_rpe_show also needs the device to be awake
>>    - Improvements to the lockdep annotation patch
> 
> Just FYI, fwiw this is from my local branch, but even with this series I am
> seeing this on DG2. Probe is fine but as soon as my IGT (perf) runs the
> trace below spews out. The unit test runs fine on RPLP. If there's a
> temporary workaround for this I'd like to know. Thanks.
> 
> -Ashutosh
> 
> [  486.110571] xe: loading out-of-tree module taints kernel.
> [  486.131776] xe 0000:03:00.0: vgaarb: deactivate vga console
> [  486.133136] GT topology dss mask (geometry): 00000000,0000ff00
> [  486.133139] GT topology dss mask (compute):  00000000,0000ff00
> [  486.133141] GT topology EU mask per DSS:     0000ffff
> [  486.133636] xe 0000:03:00.0: [drm] VISIBLE VRAM: 0x0000004000000000, 0x0000000200000000
> [  486.133686] xe 0000:03:00.0: [drm] VRAM[0, 0]: 0x0000004000000000, 0x000000017c800000
> [  486.133688] xe 0000:03:00.0: [drm] Total VRAM: 0x0000004000000000, 0x0000000180000000
> [  486.133690] xe 0000:03:00.0: [drm] Available VRAM: 0x0000004000000000, 0x000000017c800000
> [  486.195204] xe 0000:03:00.0: [drm] Using GuC firmware (70.5) from i915/dg2_guc_70.bin
> [  486.198192] xe 0000:03:00.0: [drm] HuC disabled
> [  486.241959] xe 0000:03:00.0: [drm] ccs0 fused off
> [  486.241964] xe 0000:03:00.0: [drm] ccs2 fused off
> [  486.241965] xe 0000:03:00.0: [drm] ccs3 fused off
> [  486.242509] xe REG[0x223a8-0x223af]: allow read access
> [  486.242606] xe REG[0x1c03a8-0x1c03af]: allow read access
> [  486.242708] xe REG[0x1d03a8-0x1d03af]: allow read access
> [  486.242826] xe REG[0x1c83a8-0x1c83af]: allow read access
> [  486.242945] xe REG[0x1d83a8-0x1d83af]: allow read access
> [  486.243033] xe REG[0x1c3a8-0x1c3af]: allow read access
> [  486.306291] [drm] Initialized xe 1.1.0 20201103 for 0000:03:00.0 on minor 0
> [  486.309344] insmod (3290) used greatest stack depth: 10936 bytes left
> [  487.559809] xe 0000:03:00.0: [drm] GT0: suspended

Device hits runtime suspend after probing the device. Looks normal so far...

> [  500.096224] [IGT] perf: executing
> [  502.830435] pcieport 0000:01:00.0: not ready 1023ms after resume; giving up
> [  502.832901] pcieport 0000:01:00.0: Unable to change power state from D3cold to D0, device inaccessible
> [  502.835939] pcieport 0000:02:01.0: Unable to change power state from D3cold to D0, device inaccessible
> [  502.836769] pcieport 0000:02:04.0: Unable to change power state from D3cold to D0, device inaccessible
> [  505.070434] xe 0000:03:00.0: not ready 1023ms after resume; giving up
> [  505.071074] xe 0000:03:00.0: Unable to change power state from D3cold to D0, device inaccessible

And here we are tying to resume the device. This is still deep in PCI 
stuff, and it's already looking bad since the device is unable to exit 
from D3cold. Also we shouldn't even be in D3cold here (it implies PCI 
device is powered off), but only D3hot. For reference on my DG2 it only 
goes from D0 -> D3hot on runtime suspend and D3hot -> D0 on runtime 
resume. D3cold is explicitly disabled for now with rpm as per 
xe->d3cold_allowed. But even so, it's unclear why it can't restore power 
and get back to D0 (device is maybe unresponsive/dead?). Although even 
if it did get as far as the driver part of the resume it would still be 
all kinds of broken since VRAM has been nuked.

I would assume there is something broken/faulty with that system. You 
could maybe try disabling rpm, and avoiding forced suspend/resume on 
that system:

--- a/drivers/gpu/drm/xe/xe_pm.c
+++ b/drivers/gpu/drm/xe/xe_pm.c
@@ -124,7 +124,6 @@ void xe_pm_runtime_init(struct xe_device *xe)
         pm_runtime_use_autosuspend(dev);
         pm_runtime_set_autosuspend_delay(dev, 1000);
         pm_runtime_set_active(dev);
-       pm_runtime_allow(dev);
         pm_runtime_mark_last_busy(dev);
         pm_runtime_put_autosuspend(dev);
  }

> [  505.087125] snd_hda_intel 0000:04:00.0: not ready 1023ms after resume; giving up
> [  505.087154] snd_hda_intel 0000:04:00.0: Unable to change power state from D3cold to D0, device inaccessible
> [  505.183156] xe 0000:03:00.0: Unable to change power state from D3cold to D0, device inaccessible
> [  505.242684] xe 0000:03:00.0: [drm] Force wake domain (0) failed to ack sleep, ret=-110
> [  505.296974] snd_hda_intel 0000:04:00.0: CORB reset timeout#2, CORBRP = 65535
> [  505.302246] xe 0000:03:00.0: [drm] Force wake domain (1) failed to ack sleep, ret=-110
> [  505.362158] xe 0000:03:00.0: [drm] Force wake domain (3) failed to ack sleep, ret=-110
> [  505.423158] xe 0000:03:00.0: [drm] Force wake domain (5) failed to ack sleep, ret=-110
> [  505.484157] xe 0000:03:00.0: [drm] Force wake domain (11) failed to ack sleep, ret=-110
> [  505.543101] xe 0000:03:00.0: [drm] Force wake domain (12) failed to ack sleep, ret=-110
> [  505.543139] ------------[ cut here ]------------
> [  505.543141] WARNING: CPU: 1 PID: 3328 at drivers/gpu/drm/xe/xe_oa.c:1913 xe_oa_timestamp_frequency+0xca/0xd0 [xe]
> [  505.543173] Modules linked in: xe(O) gpu_sched drm_buddy drm_suballoc_helper drm_ttm_helper ttm nfnetlink br_netfilter overlay mei_pxp x86_pkg_temp_thermal mei_hdcp coretemp kvm_intel snd_hda_codec_h
> dmi snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio snd_hda_intel snd_intel_dspcfg snd_hda_codec snd_hwdep snd_hda_core wmi_bmof mei_gsc mei_me snd_pcm mei fuse ip_tables x_tables crct10dif_pc
> lmul crc32_pclmul ghash_clmulni_intel e1000e i2c_i801 i2c_smbus ptp pps_core wmi [last unloaded: prime_numbers]
> [  505.543220] CPU: 1 PID: 3328 Comm: perf Tainted: G           O       6.3.0+ #2
> [  505.543222] Hardware name: Intel Corporation CoffeeLake Client Platform/CoffeeLake S UDIMM RVP, BIOS CNLSFWR1.R00.X220.B00.2103302221 03/30/2021
> [  505.543224] RIP: 0010:xe_oa_timestamp_frequency+0xca/0xd0 [xe]
> [  505.543252] Code: 5c 8b 40 10 f7 d1 41 5d 83 e1 03 d3 e0 c3 cc cc cc cc 41 8b 84 24 4c 02 00 00 05 00 0d 00 00 25 ff ff 3f 00 eb ab 0f 0b eb 80 <0f> 0b eb bb 66 90 90 90 90 90 90 90 90 90 90 90 90 90
>   90 90 90 90
> [  505.543255] RSP: 0018:ffffc90005617d58 EFLAGS: 00010282
> [  505.543257] RAX: 00000000ffffff92 RBX: ffff88810f798000 RCX: ffffc90005617c4c
> [  505.543259] RDX: 0000000000000000 RSI: ffffffff8268031a RDI: ffffffff826a5b09
> [  505.543261] RBP: ffff88813fd88050 R08: 0000000000000000 R09: 00000000fffeffff
> [  505.543262] R10: 0000000000000000 R11: ffff88846de6fac0 R12: 00000000ffffffff
> [  505.543264] R13: ffff88810f79a268 R14: 0000000000000000 R15: ffff88810f798000
> [  505.543265] FS:  00007fe0dc224c00(0000) GS:ffff88845da80000(0000) knlGS:0000000000000000
> [  505.543267] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  505.543269] CR2: 000055c202d18fb0 CR3: 00000001302d8006 CR4: 00000000003706e0
> [  505.543271] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [  505.543272] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> [  505.543274] Call Trace:
> [  505.543276]  <TASK>
> [  505.543279]  query_gts+0xd9/0x1f0 [xe]
> [  505.543309]  ? __pfx_xe_query_ioctl+0x10/0x10 [xe]
> [  505.543337]  drm_ioctl_kernel+0xb4/0x150
> [  505.543343]  drm_ioctl+0x214/0x440
> [  505.543347]  ? __pfx_xe_query_ioctl+0x10/0x10 [xe]
> [  505.543376]  ? __rseq_handle_notify_resume+0x48e/0x5c0
> [  505.543382]  ? xfd_validate_state+0x1d/0x80
> [  505.543387]  __x64_sys_ioctl+0x89/0xb0
> [  505.543391]  do_syscall_64+0x3c/0x90
> [  505.543396]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  505.543399] RIP: 0033:0x7fe0de11aaff

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

* Re: [Intel-xe] [PATCH v12 01/13] drm/xe: fix xe_device_mem_access_get() races
  2023-06-26 10:50 ` [Intel-xe] [PATCH v12 01/13] drm/xe: fix xe_device_mem_access_get() races Matthew Auld
@ 2023-06-30 15:22   ` Gupta, Anshuman
  2023-07-04 11:25     ` Matthew Auld
  0 siblings, 1 reply; 36+ messages in thread
From: Gupta, Anshuman @ 2023-06-30 15:22 UTC (permalink / raw)
  To: Matthew Auld, intel-xe; +Cc: Rodrigo Vivi



On 6/26/2023 4:20 PM, Matthew Auld wrote:
> It looks like there is at least one race here, given that the
> pm_runtime_suspended() check looks to return false if we are in the
> process of suspending the device (RPM_SUSPENDING vs RPM_SUSPENDED).  We
> later also do xe_pm_runtime_get_if_active(), but since the device is
> suspending or has now suspended, this doesn't do anything either.
> Following from this we can potentially return from
> xe_device_mem_access_get() with the device suspended or about to be,
> leading to broken behaviour.
> 
> Attempt to fix this by always grabbing the runtime ref when our internal
> ref transitions from 0 -> 1. The hard part is then dealing with the
> runtime_pm callbacks also calling xe_device_mem_access_get() and
> deadlocking, which the pm_runtime_suspended() check prevented.
> 
> v2:
>   - ct->lock looks to be primed with fs_reclaim, so holding that and then
>     allocating memory will cause lockdep to complain. Now that we
>     unconditionally grab the mem_access.lock around mem_access_{get,put}, we
>     need to change the ordering wrt to grabbing the ct->lock, since some of
>     the runtime_pm routines can allocate memory (or at least that's what
>     lockdep seems to suggest). Hopefully not a big deal.  It might be that
>     there were already issues with this, just that the atomics where
>     "hiding" the potential issues.
> v3:
>   - Use Thomas Hellström' idea with tracking the active task that is
>     executing in the resume or suspend callback, in order to avoid
>     recursive resume/suspend calls deadlocking on itself.
>   - Split the ct->lock change.
> v4:
>   - Add smb_mb() around accessing the pm_callback_task for extra safety.
>     (Thomas Hellström)
> v5:
>   - Clarify the kernel-doc for the mem_access.lock, given that it is quite
>     strange in what it protects (data vs code). The real motivation is to
>     aid lockdep. (Rodrigo Vivi)
> v6:
>   - Split out the lock change. We still want this as a lockdep aid but
>     only for the xe_device_mem_access_get() path. Sticking a lock on the
>     put() looks be a no-go, also the runtime_put() there is always async.
>   - Now that the lock is gone move to atomics and rely on the pm code
>     serialising multiple callers on the 0 -> 1 transition.
>   - g2h_worker_func() looks to be the next issue, given that
>     suspend-resume callbacks are using CT, so try to handle that.
> v7:
>   - Add xe_device_mem_access_get_if_ongoing(), and use it in
>     g2h_worker_func().
> 
> Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/258
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> Cc: Matthew Brost <matthew.brost@intel.com>
> Cc: Anshuman Gupta <anshuman.gupta@intel.com>
> ---
>   drivers/gpu/drm/xe/xe_device.c       | 58 +++++++++++++++++++-----
>   drivers/gpu/drm/xe/xe_device.h       | 12 ++---
>   drivers/gpu/drm/xe/xe_device_types.h |  6 +++
>   drivers/gpu/drm/xe/xe_guc_ct.c       | 34 +++++++++++++-
>   drivers/gpu/drm/xe/xe_pm.c           | 66 +++++++++++++++++++---------
>   drivers/gpu/drm/xe/xe_pm.h           |  3 +-
>   6 files changed, 134 insertions(+), 45 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> index c7985af85a53..1dc552da434f 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -411,27 +411,61 @@ u32 xe_device_ccs_bytes(struct xe_device *xe, u64 size)
>   		DIV_ROUND_UP(size, NUM_BYTES_PER_CCS_BYTE) : 0;
>   }
>   
> +bool xe_device_mem_access_ongoing(struct xe_device *xe)
> +{
> +	if (xe_pm_read_callback_task(xe) != NULL)
> +		return true;
> +
> +	return atomic_read(&xe->mem_access.ref);
> +}
> +
> +void xe_device_assert_mem_access(struct xe_device *xe)
> +{
> +	XE_WARN_ON(!xe_device_mem_access_ongoing(xe));
> +}
> +
> +bool xe_device_mem_access_get_if_ongoing(struct xe_device *xe)
> +{
> +	return atomic_inc_not_zero(&xe->mem_access.ref);
> +}
> +
>   void xe_device_mem_access_get(struct xe_device *xe)
>   {
> -	bool resumed = xe_pm_runtime_resume_if_suspended(xe);
> -	int ref = atomic_inc_return(&xe->mem_access.ref);
> +	/*
> +	 * This looks racy, but should be fine since the pm_callback_task only
> +	 * transitions from NULL -> current (and back to NULL again), during the
> +	 * runtime_resume() or runtime_suspend() callbacks, for which there can
> +	 * only be a single one running for our device. We only need to prevent
> +	 * recursively calling the runtime_get or runtime_put from those
> +	 * callbacks, as well as preventing triggering any access_ongoing
> +	 * asserts.
> +	 */
two runtime_suspend() can run in parallel for two different pci device 
those worker thread pooled by pm_wq workqueue, it is not guaranteed 
that tast_struct will be different for two worker spawned by same pm_wq ?

> +	if (xe_pm_read_callback_task(xe) == current)
> +		return;
>   
> -	if (ref == 1)
> -		xe->mem_access.hold_rpm = xe_pm_runtime_get_if_active(xe);
> +	if (!atomic_inc_not_zero(&xe->mem_access.ref)) {
> +		bool hold_rpm = xe_pm_runtime_resume_and_get(xe);
> +		int ref;
>   
> -	/* The usage counter increased if device was immediately resumed */
> -	if (resumed)
> -		xe_pm_runtime_put(xe);
> -
> -	XE_WARN_ON(ref == S32_MAX);
> +		ref = atomic_inc_return(&xe->mem_access.ref);
> +		if (ref == 1)
> +			xe->mem_access.hold_rpm = hold_rpm;
> +		else
> +			xe_pm_runtime_put(xe);
> +	} else {
> +		XE_WARN_ON(atomic_read(&xe->mem_access.ref) == S32_MAX);
> +	}
>   }
>   
>   void xe_device_mem_access_put(struct xe_device *xe)
>   {
> -	bool hold = xe->mem_access.hold_rpm;
> -	int ref = atomic_dec_return(&xe->mem_access.ref);
> +	int ref;
>   
> -	if (!ref && hold)
> +	if (xe_pm_read_callback_task(xe) == current)
> +		return;
> +
> +	ref = atomic_dec_return(&xe->mem_access.ref);
> +	if (ref == 0 && xe->mem_access.hold_rpm)
>   		xe_pm_runtime_put(xe);
>   
>   	XE_WARN_ON(ref < 0);
/snip
> +
>   int xe_pm_runtime_suspend(struct xe_device *xe)
>   {
>   	struct xe_gt *gt;
>   	u8 id;
> -	int err;
> +	int err = 0;
> +
> +	if (xe->d3cold_allowed && xe_device_mem_access_ongoing(xe))
> +		return -EBUSY;
Not related to this patch but We should return -EBUSY even for d3hot as 
well.
Br,
Anshuman Gupta
> +
> +	/* Disable access_ongoing asserts and prevent recursive pm calls */
> +	xe_pm_write_callback_task(xe, current);
>   
>   	if (xe->d3cold_allowed) {
> -		if (xe_device_mem_access_ongoing(xe))
> -			return -EBUSY;
> -
>   		err = xe_bo_evict_all(xe);
>   		if (err)
> -			return err;
> +			goto out;
>   	}
>   
>   	for_each_gt(gt, xe, id) {
>   		err = xe_gt_suspend(gt);
>   		if (err)
> -			return err;
> +			goto out;
>   	}
>   
>   	xe_irq_suspend(xe);
> -
> -	return 0;
> +out:
> +	xe_pm_write_callback_task(xe, NULL);
> +	return err;
>   }
>   
>   int xe_pm_runtime_resume(struct xe_device *xe)
>   {
>   	struct xe_gt *gt;
>   	u8 id;
> -	int err;
> +	int err = 0;
> +
> +	/* Disable access_ongoing asserts and prevent recursive pm calls */
> +	xe_pm_write_callback_task(xe, current);
>   
>   	if (xe->d3cold_allowed) {
>   		for_each_gt(gt, xe, id) {
>   			err = xe_pcode_init(gt);
>   			if (err)
> -				return err;
> +				goto out;
>   		}
>   
>   		/*
> @@ -182,7 +210,7 @@ int xe_pm_runtime_resume(struct xe_device *xe)
>   		 */
>   		err = xe_bo_restore_kernel(xe);
>   		if (err)
> -			return err;
> +			goto out;
>   	}
>   
>   	xe_irq_resume(xe);
> @@ -193,10 +221,11 @@ int xe_pm_runtime_resume(struct xe_device *xe)
>   	if (xe->d3cold_allowed) {
>   		err = xe_bo_restore_user(xe);
>   		if (err)
> -			return err;
> +			goto out;
>   	}
> -
> -	return 0;
> +out:
> +	xe_pm_write_callback_task(xe, NULL);
> +	return err;
>   }
>   
>   int xe_pm_runtime_get(struct xe_device *xe)
> @@ -210,14 +239,9 @@ int xe_pm_runtime_put(struct xe_device *xe)
>   	return pm_runtime_put_autosuspend(xe->drm.dev);
>   }
>   
> -/* Return true if resume operation happened and usage count was increased */
> -bool xe_pm_runtime_resume_if_suspended(struct xe_device *xe)
> +bool xe_pm_runtime_resume_and_get(struct xe_device *xe)
>   {
> -	/* In case we are suspended we need to immediately wake up */
> -	if (pm_runtime_suspended(xe->drm.dev))
> -		return !pm_runtime_resume_and_get(xe->drm.dev);
> -
> -	return false;
> +	return !pm_runtime_resume_and_get(xe->drm.dev);
>   }
>   
>   int xe_pm_runtime_get_if_active(struct xe_device *xe)
> diff --git a/drivers/gpu/drm/xe/xe_pm.h b/drivers/gpu/drm/xe/xe_pm.h
> index 6a885585f653..e92c508d44b9 100644
> --- a/drivers/gpu/drm/xe/xe_pm.h
> +++ b/drivers/gpu/drm/xe/xe_pm.h
> @@ -19,7 +19,8 @@ int xe_pm_runtime_suspend(struct xe_device *xe);
>   int xe_pm_runtime_resume(struct xe_device *xe);
>   int xe_pm_runtime_get(struct xe_device *xe);
>   int xe_pm_runtime_put(struct xe_device *xe);
> -bool xe_pm_runtime_resume_if_suspended(struct xe_device *xe);
> +bool xe_pm_runtime_resume_and_get(struct xe_device *xe);
>   int xe_pm_runtime_get_if_active(struct xe_device *xe);
> +struct task_struct *xe_pm_read_callback_task(struct xe_device *xe);
>   
>   #endif

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

* Re: [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits
  2023-06-30 11:07   ` Matthew Auld
@ 2023-06-30 16:59     ` Dixit, Ashutosh
  0 siblings, 0 replies; 36+ messages in thread
From: Dixit, Ashutosh @ 2023-06-30 16:59 UTC (permalink / raw)
  To: Matthew Auld; +Cc: intel-xe

On Fri, 30 Jun 2023 04:07:44 -0700, Matthew Auld wrote:
>

Hi Matt,

> On 30/06/2023 07:21, Dixit, Ashutosh wrote:
> > On Mon, 26 Jun 2023 03:50:38 -0700, Matthew Auld wrote:
> >>
> >> Main goal is to fix the races in xe_device_mem_access_get(). With that fixed we
> >> can clean up some hacks and also start rolling it out to more places that need
> >> it, including now asserting it around every mmio access. We also add lockdep
> >> annotations for xe_device_mem_access_get() and fix the remaining lockdep
> >> fallout.
> >>
> >> v11 -> v12:
> >>    - freq_rpe_show also needs the device to be awake
> >>    - Improvements to the lockdep annotation patch
> >
> > Just FYI, fwiw this is from my local branch, but even with this series I am
> > seeing this on DG2. Probe is fine but as soon as my IGT (perf) runs the
> > trace below spews out. The unit test runs fine on RPLP. If there's a
> > temporary workaround for this I'd like to know. Thanks.
> >
> > -Ashutosh
> >
> > [  486.110571] xe: loading out-of-tree module taints kernel.
> > [  486.131776] xe 0000:03:00.0: vgaarb: deactivate vga console
> > [  486.133136] GT topology dss mask (geometry): 00000000,0000ff00
> > [  486.133139] GT topology dss mask (compute):  00000000,0000ff00
> > [  486.133141] GT topology EU mask per DSS:     0000ffff
> > [  486.133636] xe 0000:03:00.0: [drm] VISIBLE VRAM: 0x0000004000000000, 0x0000000200000000
> > [  486.133686] xe 0000:03:00.0: [drm] VRAM[0, 0]: 0x0000004000000000, 0x000000017c800000
> > [  486.133688] xe 0000:03:00.0: [drm] Total VRAM: 0x0000004000000000, 0x0000000180000000
> > [  486.133690] xe 0000:03:00.0: [drm] Available VRAM: 0x0000004000000000, 0x000000017c800000
> > [  486.195204] xe 0000:03:00.0: [drm] Using GuC firmware (70.5) from i915/dg2_guc_70.bin
> > [  486.198192] xe 0000:03:00.0: [drm] HuC disabled
> > [  486.241959] xe 0000:03:00.0: [drm] ccs0 fused off
> > [  486.241964] xe 0000:03:00.0: [drm] ccs2 fused off
> > [  486.241965] xe 0000:03:00.0: [drm] ccs3 fused off
> > [  486.242509] xe REG[0x223a8-0x223af]: allow read access
> > [  486.242606] xe REG[0x1c03a8-0x1c03af]: allow read access
> > [  486.242708] xe REG[0x1d03a8-0x1d03af]: allow read access
> > [  486.242826] xe REG[0x1c83a8-0x1c83af]: allow read access
> > [  486.242945] xe REG[0x1d83a8-0x1d83af]: allow read access
> > [  486.243033] xe REG[0x1c3a8-0x1c3af]: allow read access
> > [  486.306291] [drm] Initialized xe 1.1.0 20201103 for 0000:03:00.0 on minor 0
> > [  486.309344] insmod (3290) used greatest stack depth: 10936 bytes left
> > [  487.559809] xe 0000:03:00.0: [drm] GT0: suspended
>
> Device hits runtime suspend after probing the device. Looks normal so far...
>
> > [  500.096224] [IGT] perf: executing
> > [  502.830435] pcieport 0000:01:00.0: not ready 1023ms after resume; giving up
> > [  502.832901] pcieport 0000:01:00.0: Unable to change power state from D3cold to D0, device inaccessible
> > [  502.835939] pcieport 0000:02:01.0: Unable to change power state from D3cold to D0, device inaccessible
> > [  502.836769] pcieport 0000:02:04.0: Unable to change power state from D3cold to D0, device inaccessible
> > [  505.070434] xe 0000:03:00.0: not ready 1023ms after resume; giving up
> > [  505.071074] xe 0000:03:00.0: Unable to change power state from D3cold to D0, device inaccessible
>
> And here we are tying to resume the device. This is still deep in PCI
> stuff, and it's already looking bad since the device is unable to exit from
> D3cold. Also we shouldn't even be in D3cold here (it implies PCI device is
> powered off), but only D3hot. For reference on my DG2 it only goes from D0
> -> D3hot on runtime suspend and D3hot -> D0 on runtime resume. D3cold is
> explicitly disabled for now with rpm as per xe->d3cold_allowed. But even
> so, it's unclear why it can't restore power and get back to D0 (device is
> maybe unresponsive/dead?). Although even if it did get as far as the driver
> part of the resume it would still be all kinds of broken since VRAM has
> been nuked.
>
> I would assume there is something broken/faulty with that system.

Yes, now that I think about it, believe the IGT did work on a different
system.

> You could maybe try disabling rpm, and avoiding forced suspend/resume on
> that system:
>
> --- a/drivers/gpu/drm/xe/xe_pm.c
> +++ b/drivers/gpu/drm/xe/xe_pm.c
> @@ -124,7 +124,6 @@ void xe_pm_runtime_init(struct xe_device *xe)
>         pm_runtime_use_autosuspend(dev);
>         pm_runtime_set_autosuspend_delay(dev, 1000);
>         pm_runtime_set_active(dev);
> -       pm_runtime_allow(dev);
>         pm_runtime_mark_last_busy(dev);
>         pm_runtime_put_autosuspend(dev);

Thanks, yes this did unblock me on this system.

Ashutosh

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

* Re: [Intel-xe] [PATCH v12 01/13] drm/xe: fix xe_device_mem_access_get() races
  2023-06-30 15:22   ` Gupta, Anshuman
@ 2023-07-04 11:25     ` Matthew Auld
  2023-07-04 15:29       ` Gupta, Anshuman
  0 siblings, 1 reply; 36+ messages in thread
From: Matthew Auld @ 2023-07-04 11:25 UTC (permalink / raw)
  To: Gupta, Anshuman, intel-xe; +Cc: Rodrigo Vivi

On 30/06/2023 16:22, Gupta, Anshuman wrote:
> 
> 
> On 6/26/2023 4:20 PM, Matthew Auld wrote:
>> It looks like there is at least one race here, given that the
>> pm_runtime_suspended() check looks to return false if we are in the
>> process of suspending the device (RPM_SUSPENDING vs RPM_SUSPENDED).  We
>> later also do xe_pm_runtime_get_if_active(), but since the device is
>> suspending or has now suspended, this doesn't do anything either.
>> Following from this we can potentially return from
>> xe_device_mem_access_get() with the device suspended or about to be,
>> leading to broken behaviour.
>>
>> Attempt to fix this by always grabbing the runtime ref when our internal
>> ref transitions from 0 -> 1. The hard part is then dealing with the
>> runtime_pm callbacks also calling xe_device_mem_access_get() and
>> deadlocking, which the pm_runtime_suspended() check prevented.
>>
>> v2:
>>   - ct->lock looks to be primed with fs_reclaim, so holding that and then
>>     allocating memory will cause lockdep to complain. Now that we
>>     unconditionally grab the mem_access.lock around 
>> mem_access_{get,put}, we
>>     need to change the ordering wrt to grabbing the ct->lock, since 
>> some of
>>     the runtime_pm routines can allocate memory (or at least that's what
>>     lockdep seems to suggest). Hopefully not a big deal.  It might be 
>> that
>>     there were already issues with this, just that the atomics where
>>     "hiding" the potential issues.
>> v3:
>>   - Use Thomas Hellström' idea with tracking the active task that is
>>     executing in the resume or suspend callback, in order to avoid
>>     recursive resume/suspend calls deadlocking on itself.
>>   - Split the ct->lock change.
>> v4:
>>   - Add smb_mb() around accessing the pm_callback_task for extra safety.
>>     (Thomas Hellström)
>> v5:
>>   - Clarify the kernel-doc for the mem_access.lock, given that it is 
>> quite
>>     strange in what it protects (data vs code). The real motivation is to
>>     aid lockdep. (Rodrigo Vivi)
>> v6:
>>   - Split out the lock change. We still want this as a lockdep aid but
>>     only for the xe_device_mem_access_get() path. Sticking a lock on the
>>     put() looks be a no-go, also the runtime_put() there is always async.
>>   - Now that the lock is gone move to atomics and rely on the pm code
>>     serialising multiple callers on the 0 -> 1 transition.
>>   - g2h_worker_func() looks to be the next issue, given that
>>     suspend-resume callbacks are using CT, so try to handle that.
>> v7:
>>   - Add xe_device_mem_access_get_if_ongoing(), and use it in
>>     g2h_worker_func().
>>
>> Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/258
>> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
>> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
>> Cc: Matthew Brost <matthew.brost@intel.com>
>> Cc: Anshuman Gupta <anshuman.gupta@intel.com>
>> ---
>>   drivers/gpu/drm/xe/xe_device.c       | 58 +++++++++++++++++++-----
>>   drivers/gpu/drm/xe/xe_device.h       | 12 ++---
>>   drivers/gpu/drm/xe/xe_device_types.h |  6 +++
>>   drivers/gpu/drm/xe/xe_guc_ct.c       | 34 +++++++++++++-
>>   drivers/gpu/drm/xe/xe_pm.c           | 66 +++++++++++++++++++---------
>>   drivers/gpu/drm/xe/xe_pm.h           |  3 +-
>>   6 files changed, 134 insertions(+), 45 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_device.c 
>> b/drivers/gpu/drm/xe/xe_device.c
>> index c7985af85a53..1dc552da434f 100644
>> --- a/drivers/gpu/drm/xe/xe_device.c
>> +++ b/drivers/gpu/drm/xe/xe_device.c
>> @@ -411,27 +411,61 @@ u32 xe_device_ccs_bytes(struct xe_device *xe, 
>> u64 size)
>>           DIV_ROUND_UP(size, NUM_BYTES_PER_CCS_BYTE) : 0;
>>   }
>> +bool xe_device_mem_access_ongoing(struct xe_device *xe)
>> +{
>> +    if (xe_pm_read_callback_task(xe) != NULL)
>> +        return true;
>> +
>> +    return atomic_read(&xe->mem_access.ref);
>> +}
>> +
>> +void xe_device_assert_mem_access(struct xe_device *xe)
>> +{
>> +    XE_WARN_ON(!xe_device_mem_access_ongoing(xe));
>> +}
>> +
>> +bool xe_device_mem_access_get_if_ongoing(struct xe_device *xe)
>> +{
>> +    return atomic_inc_not_zero(&xe->mem_access.ref);
>> +}
>> +
>>   void xe_device_mem_access_get(struct xe_device *xe)
>>   {
>> -    bool resumed = xe_pm_runtime_resume_if_suspended(xe);
>> -    int ref = atomic_inc_return(&xe->mem_access.ref);
>> +    /*
>> +     * This looks racy, but should be fine since the pm_callback_task 
>> only
>> +     * transitions from NULL -> current (and back to NULL again), 
>> during the
>> +     * runtime_resume() or runtime_suspend() callbacks, for which 
>> there can
>> +     * only be a single one running for our device. We only need to 
>> prevent
>> +     * recursively calling the runtime_get or runtime_put from those
>> +     * callbacks, as well as preventing triggering any access_ongoing
>> +     * asserts.
>> +     */
> two runtime_suspend() can run in parallel for two different pci device 
> those worker thread pooled by pm_wq workqueue, it is not guaranteed that 
> tast_struct will be different for two worker spawned by same pm_wq ?

IIUC we only use pm_wq for the async put(). If somehow tast_struct can 
be the same for different workers when using pm_wq (I'm not sure tbh), 
then I think it's fine since all put() must be balanced with a get(), 
and all get() are handled directly in the caller (not pm_wq) since it's 
non-async, and must first wait for any running callback.

> 
>> +    if (xe_pm_read_callback_task(xe) == current)
>> +        return;
>> -    if (ref == 1)
>> -        xe->mem_access.hold_rpm = xe_pm_runtime_get_if_active(xe);
>> +    if (!atomic_inc_not_zero(&xe->mem_access.ref)) {
>> +        bool hold_rpm = xe_pm_runtime_resume_and_get(xe);
>> +        int ref;
>> -    /* The usage counter increased if device was immediately resumed */
>> -    if (resumed)
>> -        xe_pm_runtime_put(xe);
>> -
>> -    XE_WARN_ON(ref == S32_MAX);
>> +        ref = atomic_inc_return(&xe->mem_access.ref);
>> +        if (ref == 1)
>> +            xe->mem_access.hold_rpm = hold_rpm;
>> +        else
>> +            xe_pm_runtime_put(xe);
>> +    } else {
>> +        XE_WARN_ON(atomic_read(&xe->mem_access.ref) == S32_MAX);
>> +    }
>>   }
>>   void xe_device_mem_access_put(struct xe_device *xe)
>>   {
>> -    bool hold = xe->mem_access.hold_rpm;
>> -    int ref = atomic_dec_return(&xe->mem_access.ref);
>> +    int ref;
>> -    if (!ref && hold)
>> +    if (xe_pm_read_callback_task(xe) == current)
>> +        return;
>> +
>> +    ref = atomic_dec_return(&xe->mem_access.ref);
>> +    if (ref == 0 && xe->mem_access.hold_rpm)
>>           xe_pm_runtime_put(xe);
>>       XE_WARN_ON(ref < 0);
> /snip
>> +
>>   int xe_pm_runtime_suspend(struct xe_device *xe)
>>   {
>>       struct xe_gt *gt;
>>       u8 id;
>> -    int err;
>> +    int err = 0;
>> +
>> +    if (xe->d3cold_allowed && xe_device_mem_access_ongoing(xe))
>> +        return -EBUSY;
> Not related to this patch but We should return -EBUSY even for d3hot as 
> well.

Looking at this again, access_ongoing is always going to be false here, 
right? On the 0 -> 1 transition we always do full sync pm get before 
increment mem_access.ref, so not sure if this check actually does anything.

> Br,
> Anshuman Gupta
>> +
>> +    /* Disable access_ongoing asserts and prevent recursive pm calls */
>> +    xe_pm_write_callback_task(xe, current);
>>       if (xe->d3cold_allowed) {
>> -        if (xe_device_mem_access_ongoing(xe))
>> -            return -EBUSY;
>> -
>>           err = xe_bo_evict_all(xe);
>>           if (err)
>> -            return err;
>> +            goto out;
>>       }
>>       for_each_gt(gt, xe, id) {
>>           err = xe_gt_suspend(gt);
>>           if (err)
>> -            return err;
>> +            goto out;
>>       }
>>       xe_irq_suspend(xe);
>> -
>> -    return 0;
>> +out:
>> +    xe_pm_write_callback_task(xe, NULL);
>> +    return err;
>>   }
>>   int xe_pm_runtime_resume(struct xe_device *xe)
>>   {
>>       struct xe_gt *gt;
>>       u8 id;
>> -    int err;
>> +    int err = 0;
>> +
>> +    /* Disable access_ongoing asserts and prevent recursive pm calls */
>> +    xe_pm_write_callback_task(xe, current);
>>       if (xe->d3cold_allowed) {
>>           for_each_gt(gt, xe, id) {
>>               err = xe_pcode_init(gt);
>>               if (err)
>> -                return err;
>> +                goto out;
>>           }
>>           /*
>> @@ -182,7 +210,7 @@ int xe_pm_runtime_resume(struct xe_device *xe)
>>            */
>>           err = xe_bo_restore_kernel(xe);
>>           if (err)
>> -            return err;
>> +            goto out;
>>       }
>>       xe_irq_resume(xe);
>> @@ -193,10 +221,11 @@ int xe_pm_runtime_resume(struct xe_device *xe)
>>       if (xe->d3cold_allowed) {
>>           err = xe_bo_restore_user(xe);
>>           if (err)
>> -            return err;
>> +            goto out;
>>       }
>> -
>> -    return 0;
>> +out:
>> +    xe_pm_write_callback_task(xe, NULL);
>> +    return err;
>>   }
>>   int xe_pm_runtime_get(struct xe_device *xe)
>> @@ -210,14 +239,9 @@ int xe_pm_runtime_put(struct xe_device *xe)
>>       return pm_runtime_put_autosuspend(xe->drm.dev);
>>   }
>> -/* Return true if resume operation happened and usage count was 
>> increased */
>> -bool xe_pm_runtime_resume_if_suspended(struct xe_device *xe)
>> +bool xe_pm_runtime_resume_and_get(struct xe_device *xe)
>>   {
>> -    /* In case we are suspended we need to immediately wake up */
>> -    if (pm_runtime_suspended(xe->drm.dev))
>> -        return !pm_runtime_resume_and_get(xe->drm.dev);
>> -
>> -    return false;
>> +    return !pm_runtime_resume_and_get(xe->drm.dev);
>>   }
>>   int xe_pm_runtime_get_if_active(struct xe_device *xe)
>> diff --git a/drivers/gpu/drm/xe/xe_pm.h b/drivers/gpu/drm/xe/xe_pm.h
>> index 6a885585f653..e92c508d44b9 100644
>> --- a/drivers/gpu/drm/xe/xe_pm.h
>> +++ b/drivers/gpu/drm/xe/xe_pm.h
>> @@ -19,7 +19,8 @@ int xe_pm_runtime_suspend(struct xe_device *xe);
>>   int xe_pm_runtime_resume(struct xe_device *xe);
>>   int xe_pm_runtime_get(struct xe_device *xe);
>>   int xe_pm_runtime_put(struct xe_device *xe);
>> -bool xe_pm_runtime_resume_if_suspended(struct xe_device *xe);
>> +bool xe_pm_runtime_resume_and_get(struct xe_device *xe);
>>   int xe_pm_runtime_get_if_active(struct xe_device *xe);
>> +struct task_struct *xe_pm_read_callback_task(struct xe_device *xe);
>>   #endif

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

* Re: [Intel-xe] [PATCH v12 01/13] drm/xe: fix xe_device_mem_access_get() races
  2023-07-04 11:25     ` Matthew Auld
@ 2023-07-04 15:29       ` Gupta, Anshuman
  2023-07-04 16:00         ` Matthew Auld
  0 siblings, 1 reply; 36+ messages in thread
From: Gupta, Anshuman @ 2023-07-04 15:29 UTC (permalink / raw)
  To: Matthew Auld, intel-xe; +Cc: Rodrigo Vivi



On 7/4/2023 4:55 PM, Matthew Auld wrote:
> On 30/06/2023 16:22, Gupta, Anshuman wrote:
>>
>>
>> On 6/26/2023 4:20 PM, Matthew Auld wrote:
>>> It looks like there is at least one race here, given that the
>>> pm_runtime_suspended() check looks to return false if we are in the
>>> process of suspending the device (RPM_SUSPENDING vs RPM_SUSPENDED).  We
>>> later also do xe_pm_runtime_get_if_active(), but since the device is
>>> suspending or has now suspended, this doesn't do anything either.
>>> Following from this we can potentially return from
>>> xe_device_mem_access_get() with the device suspended or about to be,
>>> leading to broken behaviour.
>>>
>>> Attempt to fix this by always grabbing the runtime ref when our internal
>>> ref transitions from 0 -> 1. The hard part is then dealing with the
>>> runtime_pm callbacks also calling xe_device_mem_access_get() and
>>> deadlocking, which the pm_runtime_suspended() check prevented.
>>>
>>> v2:
>>>   - ct->lock looks to be primed with fs_reclaim, so holding that and 
>>> then
>>>     allocating memory will cause lockdep to complain. Now that we
>>>     unconditionally grab the mem_access.lock around 
>>> mem_access_{get,put}, we
>>>     need to change the ordering wrt to grabbing the ct->lock, since 
>>> some of
>>>     the runtime_pm routines can allocate memory (or at least that's what
>>>     lockdep seems to suggest). Hopefully not a big deal.  It might be 
>>> that
>>>     there were already issues with this, just that the atomics where
>>>     "hiding" the potential issues.
>>> v3:
>>>   - Use Thomas Hellström' idea with tracking the active task that is
>>>     executing in the resume or suspend callback, in order to avoid
>>>     recursive resume/suspend calls deadlocking on itself.
>>>   - Split the ct->lock change.
>>> v4:
>>>   - Add smb_mb() around accessing the pm_callback_task for extra safety.
>>>     (Thomas Hellström)
>>> v5:
>>>   - Clarify the kernel-doc for the mem_access.lock, given that it is 
>>> quite
>>>     strange in what it protects (data vs code). The real motivation 
>>> is to
>>>     aid lockdep. (Rodrigo Vivi)
>>> v6:
>>>   - Split out the lock change. We still want this as a lockdep aid but
>>>     only for the xe_device_mem_access_get() path. Sticking a lock on the
>>>     put() looks be a no-go, also the runtime_put() there is always 
>>> async.
>>>   - Now that the lock is gone move to atomics and rely on the pm code
>>>     serialising multiple callers on the 0 -> 1 transition.
>>>   - g2h_worker_func() looks to be the next issue, given that
>>>     suspend-resume callbacks are using CT, so try to handle that.
>>> v7:
>>>   - Add xe_device_mem_access_get_if_ongoing(), and use it in
>>>     g2h_worker_func().
>>>
>>> Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/258
>>> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
>>> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>>> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
>>> Cc: Matthew Brost <matthew.brost@intel.com>
>>> Cc: Anshuman Gupta <anshuman.gupta@intel.com>
>>> ---
>>>   drivers/gpu/drm/xe/xe_device.c       | 58 +++++++++++++++++++-----
>>>   drivers/gpu/drm/xe/xe_device.h       | 12 ++---
>>>   drivers/gpu/drm/xe/xe_device_types.h |  6 +++
>>>   drivers/gpu/drm/xe/xe_guc_ct.c       | 34 +++++++++++++-
>>>   drivers/gpu/drm/xe/xe_pm.c           | 66 +++++++++++++++++++---------
>>>   drivers/gpu/drm/xe/xe_pm.h           |  3 +-
>>>   6 files changed, 134 insertions(+), 45 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/xe/xe_device.c 
>>> b/drivers/gpu/drm/xe/xe_device.c
>>> index c7985af85a53..1dc552da434f 100644
>>> --- a/drivers/gpu/drm/xe/xe_device.c
>>> +++ b/drivers/gpu/drm/xe/xe_device.c
>>> @@ -411,27 +411,61 @@ u32 xe_device_ccs_bytes(struct xe_device *xe, 
>>> u64 size)
>>>           DIV_ROUND_UP(size, NUM_BYTES_PER_CCS_BYTE) : 0;
>>>   }
>>> +bool xe_device_mem_access_ongoing(struct xe_device *xe)
>>> +{
>>> +    if (xe_pm_read_callback_task(xe) != NULL)
>>> +        return true;
>>> +
>>> +    return atomic_read(&xe->mem_access.ref);
>>> +}
>>> +
>>> +void xe_device_assert_mem_access(struct xe_device *xe)
>>> +{
>>> +    XE_WARN_ON(!xe_device_mem_access_ongoing(xe));
>>> +}
>>> +
>>> +bool xe_device_mem_access_get_if_ongoing(struct xe_device *xe)
>>> +{
>>> +    return atomic_inc_not_zero(&xe->mem_access.ref);
>>> +}
>>> +
>>>   void xe_device_mem_access_get(struct xe_device *xe)
>>>   {
>>> -    bool resumed = xe_pm_runtime_resume_if_suspended(xe);
>>> -    int ref = atomic_inc_return(&xe->mem_access.ref);
>>> +    /*
>>> +     * This looks racy, but should be fine since the 
>>> pm_callback_task only
>>> +     * transitions from NULL -> current (and back to NULL again), 
>>> during the
>>> +     * runtime_resume() or runtime_suspend() callbacks, for which 
>>> there can
>>> +     * only be a single one running for our device. We only need to 
>>> prevent
>>> +     * recursively calling the runtime_get or runtime_put from those
>>> +     * callbacks, as well as preventing triggering any access_ongoing
>>> +     * asserts.
>>> +     */
>> two runtime_suspend() can run in parallel for two different pci device 
>> those worker thread pooled by pm_wq workqueue, it is not guaranteed 
>> that tast_struct will be different for two worker spawned by same pm_wq ?
> 
> IIUC we only use pm_wq for the async put(). If somehow tast_struct can 
> be the same for different workers when using pm_wq (I'm not sure tbh), 
> then I think it's fine since all put() must be balanced with a get(), 
> and all get() are handled directly in the caller (not pm_wq) since it's 
> non-async, and must first wait for any running callback.
Agree with that.
> 
>>
>>> +    if (xe_pm_read_callback_task(xe) == current)
>>> +        return;
>>> -    if (ref == 1)
>>> -        xe->mem_access.hold_rpm = xe_pm_runtime_get_if_active(xe);
>>> +    if (!atomic_inc_not_zero(&xe->mem_access.ref)) {
>>> +        bool hold_rpm = xe_pm_runtime_resume_and_get(xe);
>>> +        int ref;
>>> -    /* The usage counter increased if device was immediately resumed */
>>> -    if (resumed)
>>> -        xe_pm_runtime_put(xe);
>>> -
>>> -    XE_WARN_ON(ref == S32_MAX);
>>> +        ref = atomic_inc_return(&xe->mem_access.ref);
>>> +        if (ref == 1)
>>> +            xe->mem_access.hold_rpm = hold_rpm;
>>> +        else
>>> +            xe_pm_runtime_put(xe);
AFAIU above is not possible ?
>>> +    } else {
>>> +        XE_WARN_ON(atomic_read(&xe->mem_access.ref) == S32_MAX);
>>> +    }
>>>   }
>>>   void xe_device_mem_access_put(struct xe_device *xe)
>>>   {
>>> -    bool hold = xe->mem_access.hold_rpm;
>>> -    int ref = atomic_dec_return(&xe->mem_access.ref);
>>> +    int ref;
>>> -    if (!ref && hold)
>>> +    if (xe_pm_read_callback_task(xe) == current)
>>> +        return;
>>> +
>>> +    ref = atomic_dec_return(&xe->mem_access.ref);
>>> +    if (ref == 0 && xe->mem_access.hold_rpm)
>>>           xe_pm_runtime_put(xe);
>>>       XE_WARN_ON(ref < 0);
>> /snip
>>> +
>>>   int xe_pm_runtime_suspend(struct xe_device *xe)
>>>   {
>>>       struct xe_gt *gt;
>>>       u8 id;
>>> -    int err;
>>> +    int err = 0;
>>> +
>>> +    if (xe->d3cold_allowed && xe_device_mem_access_ongoing(xe))
>>> +        return -EBUSY;
>> Not related to this patch but We should return -EBUSY even for d3hot 
>> as well.
> 
> Looking at this again, access_ongoing is always going to be false here, 
> right? On the 0 -> 1 transition we always do full sync pm get before 
> increment mem_access.ref, so not sure if this check actually does anything.
I belive this is paranoid check against any unbalanced put.
Br,
Anshuman Gupta.
> 
>> Br,
>> Anshuman Gupta
>>> +
>>> +    /* Disable access_ongoing asserts and prevent recursive pm calls */
>>> +    xe_pm_write_callback_task(xe, current);
>>>       if (xe->d3cold_allowed) {
>>> -        if (xe_device_mem_access_ongoing(xe))
>>> -            return -EBUSY;
>>> -
>>>           err = xe_bo_evict_all(xe);
>>>           if (err)
>>> -            return err;
>>> +            goto out;
>>>       }
>>>       for_each_gt(gt, xe, id) {
>>>           err = xe_gt_suspend(gt);
>>>           if (err)
>>> -            return err;
>>> +            goto out;
>>>       }
>>>       xe_irq_suspend(xe);
>>> -
>>> -    return 0;
>>> +out:
>>> +    xe_pm_write_callback_task(xe, NULL);
>>> +    return err;
>>>   }
>>>   int xe_pm_runtime_resume(struct xe_device *xe)
>>>   {
>>>       struct xe_gt *gt;
>>>       u8 id;
>>> -    int err;
>>> +    int err = 0;
>>> +
>>> +    /* Disable access_ongoing asserts and prevent recursive pm calls */
>>> +    xe_pm_write_callback_task(xe, current);
>>>       if (xe->d3cold_allowed) {
>>>           for_each_gt(gt, xe, id) {
>>>               err = xe_pcode_init(gt);
>>>               if (err)
>>> -                return err;
>>> +                goto out;
>>>           }
>>>           /*
>>> @@ -182,7 +210,7 @@ int xe_pm_runtime_resume(struct xe_device *xe)
>>>            */
>>>           err = xe_bo_restore_kernel(xe);
>>>           if (err)
>>> -            return err;
>>> +            goto out;
>>>       }
>>>       xe_irq_resume(xe);
>>> @@ -193,10 +221,11 @@ int xe_pm_runtime_resume(struct xe_device *xe)
>>>       if (xe->d3cold_allowed) {
>>>           err = xe_bo_restore_user(xe);
>>>           if (err)
>>> -            return err;
>>> +            goto out;
>>>       }
>>> -
>>> -    return 0;
>>> +out:
>>> +    xe_pm_write_callback_task(xe, NULL);
>>> +    return err;
>>>   }
>>>   int xe_pm_runtime_get(struct xe_device *xe)
>>> @@ -210,14 +239,9 @@ int xe_pm_runtime_put(struct xe_device *xe)
>>>       return pm_runtime_put_autosuspend(xe->drm.dev);
>>>   }
>>> -/* Return true if resume operation happened and usage count was 
>>> increased */
>>> -bool xe_pm_runtime_resume_if_suspended(struct xe_device *xe)
>>> +bool xe_pm_runtime_resume_and_get(struct xe_device *xe)
>>>   {
>>> -    /* In case we are suspended we need to immediately wake up */
>>> -    if (pm_runtime_suspended(xe->drm.dev))
>>> -        return !pm_runtime_resume_and_get(xe->drm.dev);
>>> -
>>> -    return false;
>>> +    return !pm_runtime_resume_and_get(xe->drm.dev);
>>>   }
>>>   int xe_pm_runtime_get_if_active(struct xe_device *xe)
>>> diff --git a/drivers/gpu/drm/xe/xe_pm.h b/drivers/gpu/drm/xe/xe_pm.h
>>> index 6a885585f653..e92c508d44b9 100644
>>> --- a/drivers/gpu/drm/xe/xe_pm.h
>>> +++ b/drivers/gpu/drm/xe/xe_pm.h
>>> @@ -19,7 +19,8 @@ int xe_pm_runtime_suspend(struct xe_device *xe);
>>>   int xe_pm_runtime_resume(struct xe_device *xe);
>>>   int xe_pm_runtime_get(struct xe_device *xe);
>>>   int xe_pm_runtime_put(struct xe_device *xe);
>>> -bool xe_pm_runtime_resume_if_suspended(struct xe_device *xe);
>>> +bool xe_pm_runtime_resume_and_get(struct xe_device *xe);
>>>   int xe_pm_runtime_get_if_active(struct xe_device *xe);
>>> +struct task_struct *xe_pm_read_callback_task(struct xe_device *xe);
>>>   #endif

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

* Re: [Intel-xe] [PATCH v12 01/13] drm/xe: fix xe_device_mem_access_get() races
  2023-07-04 15:29       ` Gupta, Anshuman
@ 2023-07-04 16:00         ` Matthew Auld
  2023-07-11  9:00           ` Gupta, Anshuman
  0 siblings, 1 reply; 36+ messages in thread
From: Matthew Auld @ 2023-07-04 16:00 UTC (permalink / raw)
  To: Gupta, Anshuman, intel-xe; +Cc: Rodrigo Vivi

On 04/07/2023 16:29, Gupta, Anshuman wrote:
> 
> 
> On 7/4/2023 4:55 PM, Matthew Auld wrote:
>> On 30/06/2023 16:22, Gupta, Anshuman wrote:
>>>
>>>
>>> On 6/26/2023 4:20 PM, Matthew Auld wrote:
>>>> It looks like there is at least one race here, given that the
>>>> pm_runtime_suspended() check looks to return false if we are in the
>>>> process of suspending the device (RPM_SUSPENDING vs RPM_SUSPENDED).  We
>>>> later also do xe_pm_runtime_get_if_active(), but since the device is
>>>> suspending or has now suspended, this doesn't do anything either.
>>>> Following from this we can potentially return from
>>>> xe_device_mem_access_get() with the device suspended or about to be,
>>>> leading to broken behaviour.
>>>>
>>>> Attempt to fix this by always grabbing the runtime ref when our 
>>>> internal
>>>> ref transitions from 0 -> 1. The hard part is then dealing with the
>>>> runtime_pm callbacks also calling xe_device_mem_access_get() and
>>>> deadlocking, which the pm_runtime_suspended() check prevented.
>>>>
>>>> v2:
>>>>   - ct->lock looks to be primed with fs_reclaim, so holding that and 
>>>> then
>>>>     allocating memory will cause lockdep to complain. Now that we
>>>>     unconditionally grab the mem_access.lock around 
>>>> mem_access_{get,put}, we
>>>>     need to change the ordering wrt to grabbing the ct->lock, since 
>>>> some of
>>>>     the runtime_pm routines can allocate memory (or at least that's 
>>>> what
>>>>     lockdep seems to suggest). Hopefully not a big deal.  It might 
>>>> be that
>>>>     there were already issues with this, just that the atomics where
>>>>     "hiding" the potential issues.
>>>> v3:
>>>>   - Use Thomas Hellström' idea with tracking the active task that is
>>>>     executing in the resume or suspend callback, in order to avoid
>>>>     recursive resume/suspend calls deadlocking on itself.
>>>>   - Split the ct->lock change.
>>>> v4:
>>>>   - Add smb_mb() around accessing the pm_callback_task for extra 
>>>> safety.
>>>>     (Thomas Hellström)
>>>> v5:
>>>>   - Clarify the kernel-doc for the mem_access.lock, given that it is 
>>>> quite
>>>>     strange in what it protects (data vs code). The real motivation 
>>>> is to
>>>>     aid lockdep. (Rodrigo Vivi)
>>>> v6:
>>>>   - Split out the lock change. We still want this as a lockdep aid but
>>>>     only for the xe_device_mem_access_get() path. Sticking a lock on 
>>>> the
>>>>     put() looks be a no-go, also the runtime_put() there is always 
>>>> async.
>>>>   - Now that the lock is gone move to atomics and rely on the pm code
>>>>     serialising multiple callers on the 0 -> 1 transition.
>>>>   - g2h_worker_func() looks to be the next issue, given that
>>>>     suspend-resume callbacks are using CT, so try to handle that.
>>>> v7:
>>>>   - Add xe_device_mem_access_get_if_ongoing(), and use it in
>>>>     g2h_worker_func().
>>>>
>>>> Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/258
>>>> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
>>>> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>>>> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
>>>> Cc: Matthew Brost <matthew.brost@intel.com>
>>>> Cc: Anshuman Gupta <anshuman.gupta@intel.com>
>>>> ---
>>>>   drivers/gpu/drm/xe/xe_device.c       | 58 +++++++++++++++++++-----
>>>>   drivers/gpu/drm/xe/xe_device.h       | 12 ++---
>>>>   drivers/gpu/drm/xe/xe_device_types.h |  6 +++
>>>>   drivers/gpu/drm/xe/xe_guc_ct.c       | 34 +++++++++++++-
>>>>   drivers/gpu/drm/xe/xe_pm.c           | 66 
>>>> +++++++++++++++++++---------
>>>>   drivers/gpu/drm/xe/xe_pm.h           |  3 +-
>>>>   6 files changed, 134 insertions(+), 45 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/xe/xe_device.c 
>>>> b/drivers/gpu/drm/xe/xe_device.c
>>>> index c7985af85a53..1dc552da434f 100644
>>>> --- a/drivers/gpu/drm/xe/xe_device.c
>>>> +++ b/drivers/gpu/drm/xe/xe_device.c
>>>> @@ -411,27 +411,61 @@ u32 xe_device_ccs_bytes(struct xe_device *xe, 
>>>> u64 size)
>>>>           DIV_ROUND_UP(size, NUM_BYTES_PER_CCS_BYTE) : 0;
>>>>   }
>>>> +bool xe_device_mem_access_ongoing(struct xe_device *xe)
>>>> +{
>>>> +    if (xe_pm_read_callback_task(xe) != NULL)
>>>> +        return true;
>>>> +
>>>> +    return atomic_read(&xe->mem_access.ref);
>>>> +}
>>>> +
>>>> +void xe_device_assert_mem_access(struct xe_device *xe)
>>>> +{
>>>> +    XE_WARN_ON(!xe_device_mem_access_ongoing(xe));
>>>> +}
>>>> +
>>>> +bool xe_device_mem_access_get_if_ongoing(struct xe_device *xe)
>>>> +{
>>>> +    return atomic_inc_not_zero(&xe->mem_access.ref);
>>>> +}
>>>> +
>>>>   void xe_device_mem_access_get(struct xe_device *xe)
>>>>   {
>>>> -    bool resumed = xe_pm_runtime_resume_if_suspended(xe);
>>>> -    int ref = atomic_inc_return(&xe->mem_access.ref);
>>>> +    /*
>>>> +     * This looks racy, but should be fine since the 
>>>> pm_callback_task only
>>>> +     * transitions from NULL -> current (and back to NULL again), 
>>>> during the
>>>> +     * runtime_resume() or runtime_suspend() callbacks, for which 
>>>> there can
>>>> +     * only be a single one running for our device. We only need to 
>>>> prevent
>>>> +     * recursively calling the runtime_get or runtime_put from those
>>>> +     * callbacks, as well as preventing triggering any access_ongoing
>>>> +     * asserts.
>>>> +     */
>>> two runtime_suspend() can run in parallel for two different pci 
>>> device those worker thread pooled by pm_wq workqueue, it is not 
>>> guaranteed that tast_struct will be different for two worker spawned 
>>> by same pm_wq ?
>>
>> IIUC we only use pm_wq for the async put(). If somehow tast_struct can 
>> be the same for different workers when using pm_wq (I'm not sure tbh), 
>> then I think it's fine since all put() must be balanced with a get(), 
>> and all get() are handled directly in the caller (not pm_wq) since 
>> it's non-async, and must first wait for any running callback.
> Agree with that.
>>
>>>
>>>> +    if (xe_pm_read_callback_task(xe) == current)
>>>> +        return;
>>>> -    if (ref == 1)
>>>> -        xe->mem_access.hold_rpm = xe_pm_runtime_get_if_active(xe);
>>>> +    if (!atomic_inc_not_zero(&xe->mem_access.ref)) {
>>>> +        bool hold_rpm = xe_pm_runtime_resume_and_get(xe);
>>>> +        int ref;
>>>> -    /* The usage counter increased if device was immediately 
>>>> resumed */
>>>> -    if (resumed)
>>>> -        xe_pm_runtime_put(xe);
>>>> -
>>>> -    XE_WARN_ON(ref == S32_MAX);
>>>> +        ref = atomic_inc_return(&xe->mem_access.ref);
>>>> +        if (ref == 1)
>>>> +            xe->mem_access.hold_rpm = hold_rpm;
>>>> +        else
>>>> +            xe_pm_runtime_put(xe);
> AFAIU above is not possible ?

Do you mean the xe_pm_runtime_put() part? On the 0 -> 1 transition we 
just always call xe_pm_runtime_resume_and_get(). That serialises 
multiple callers such that exactly one runs our rpm resume callback and 
the rest all block waiting for it to transition into RPM_ACTIVE. However 
once we return from xe_pm_runtime_resume_and_get() there are potentially 
several different callers holding an rpm ref. We only need the one rpm 
ref for our needs, so we simply drop the rest here keeping the one that 
first incremented the ref.

>>>> +    } else {
>>>> +        XE_WARN_ON(atomic_read(&xe->mem_access.ref) == S32_MAX);
>>>> +    }
>>>>   }
>>>>   void xe_device_mem_access_put(struct xe_device *xe)
>>>>   {
>>>> -    bool hold = xe->mem_access.hold_rpm;
>>>> -    int ref = atomic_dec_return(&xe->mem_access.ref);
>>>> +    int ref;
>>>> -    if (!ref && hold)
>>>> +    if (xe_pm_read_callback_task(xe) == current)
>>>> +        return;
>>>> +
>>>> +    ref = atomic_dec_return(&xe->mem_access.ref);
>>>> +    if (ref == 0 && xe->mem_access.hold_rpm)
>>>>           xe_pm_runtime_put(xe);
>>>>       XE_WARN_ON(ref < 0);
>>> /snip
>>>> +
>>>>   int xe_pm_runtime_suspend(struct xe_device *xe)
>>>>   {
>>>>       struct xe_gt *gt;
>>>>       u8 id;
>>>> -    int err;
>>>> +    int err = 0;
>>>> +
>>>> +    if (xe->d3cold_allowed && xe_device_mem_access_ongoing(xe))
>>>> +        return -EBUSY;
>>> Not related to this patch but We should return -EBUSY even for d3hot 
>>> as well.
>>
>> Looking at this again, access_ongoing is always going to be false 
>> here, right? On the 0 -> 1 transition we always do full sync pm get 
>> before increment mem_access.ref, so not sure if this check actually 
>> does anything.
> I belive this is paranoid check against any unbalanced put.
> Br,
> Anshuman Gupta.
>>
>>> Br,
>>> Anshuman Gupta
>>>> +
>>>> +    /* Disable access_ongoing asserts and prevent recursive pm 
>>>> calls */
>>>> +    xe_pm_write_callback_task(xe, current);
>>>>       if (xe->d3cold_allowed) {
>>>> -        if (xe_device_mem_access_ongoing(xe))
>>>> -            return -EBUSY;
>>>> -
>>>>           err = xe_bo_evict_all(xe);
>>>>           if (err)
>>>> -            return err;
>>>> +            goto out;
>>>>       }
>>>>       for_each_gt(gt, xe, id) {
>>>>           err = xe_gt_suspend(gt);
>>>>           if (err)
>>>> -            return err;
>>>> +            goto out;
>>>>       }
>>>>       xe_irq_suspend(xe);
>>>> -
>>>> -    return 0;
>>>> +out:
>>>> +    xe_pm_write_callback_task(xe, NULL);
>>>> +    return err;
>>>>   }
>>>>   int xe_pm_runtime_resume(struct xe_device *xe)
>>>>   {
>>>>       struct xe_gt *gt;
>>>>       u8 id;
>>>> -    int err;
>>>> +    int err = 0;
>>>> +
>>>> +    /* Disable access_ongoing asserts and prevent recursive pm 
>>>> calls */
>>>> +    xe_pm_write_callback_task(xe, current);
>>>>       if (xe->d3cold_allowed) {
>>>>           for_each_gt(gt, xe, id) {
>>>>               err = xe_pcode_init(gt);
>>>>               if (err)
>>>> -                return err;
>>>> +                goto out;
>>>>           }
>>>>           /*
>>>> @@ -182,7 +210,7 @@ int xe_pm_runtime_resume(struct xe_device *xe)
>>>>            */
>>>>           err = xe_bo_restore_kernel(xe);
>>>>           if (err)
>>>> -            return err;
>>>> +            goto out;
>>>>       }
>>>>       xe_irq_resume(xe);
>>>> @@ -193,10 +221,11 @@ int xe_pm_runtime_resume(struct xe_device *xe)
>>>>       if (xe->d3cold_allowed) {
>>>>           err = xe_bo_restore_user(xe);
>>>>           if (err)
>>>> -            return err;
>>>> +            goto out;
>>>>       }
>>>> -
>>>> -    return 0;
>>>> +out:
>>>> +    xe_pm_write_callback_task(xe, NULL);
>>>> +    return err;
>>>>   }
>>>>   int xe_pm_runtime_get(struct xe_device *xe)
>>>> @@ -210,14 +239,9 @@ int xe_pm_runtime_put(struct xe_device *xe)
>>>>       return pm_runtime_put_autosuspend(xe->drm.dev);
>>>>   }
>>>> -/* Return true if resume operation happened and usage count was 
>>>> increased */
>>>> -bool xe_pm_runtime_resume_if_suspended(struct xe_device *xe)
>>>> +bool xe_pm_runtime_resume_and_get(struct xe_device *xe)
>>>>   {
>>>> -    /* In case we are suspended we need to immediately wake up */
>>>> -    if (pm_runtime_suspended(xe->drm.dev))
>>>> -        return !pm_runtime_resume_and_get(xe->drm.dev);
>>>> -
>>>> -    return false;
>>>> +    return !pm_runtime_resume_and_get(xe->drm.dev);
>>>>   }
>>>>   int xe_pm_runtime_get_if_active(struct xe_device *xe)
>>>> diff --git a/drivers/gpu/drm/xe/xe_pm.h b/drivers/gpu/drm/xe/xe_pm.h
>>>> index 6a885585f653..e92c508d44b9 100644
>>>> --- a/drivers/gpu/drm/xe/xe_pm.h
>>>> +++ b/drivers/gpu/drm/xe/xe_pm.h
>>>> @@ -19,7 +19,8 @@ int xe_pm_runtime_suspend(struct xe_device *xe);
>>>>   int xe_pm_runtime_resume(struct xe_device *xe);
>>>>   int xe_pm_runtime_get(struct xe_device *xe);
>>>>   int xe_pm_runtime_put(struct xe_device *xe);
>>>> -bool xe_pm_runtime_resume_if_suspended(struct xe_device *xe);
>>>> +bool xe_pm_runtime_resume_and_get(struct xe_device *xe);
>>>>   int xe_pm_runtime_get_if_active(struct xe_device *xe);
>>>> +struct task_struct *xe_pm_read_callback_task(struct xe_device *xe);
>>>>   #endif

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

* Re: [Intel-xe] [PATCH v12 01/13] drm/xe: fix xe_device_mem_access_get() races
  2023-07-04 16:00         ` Matthew Auld
@ 2023-07-11  9:00           ` Gupta, Anshuman
  2023-07-11 11:06             ` Matthew Auld
  0 siblings, 1 reply; 36+ messages in thread
From: Gupta, Anshuman @ 2023-07-11  9:00 UTC (permalink / raw)
  To: Auld, Matthew, intel-xe; +Cc: Vivi, Rodrigo



> -----Original Message-----
> From: Auld, Matthew <matthew.auld@intel.com>
> Sent: Tuesday, July 4, 2023 9:30 PM
> To: Gupta, Anshuman <anshuman.gupta@intel.com>; intel-
> xe@lists.freedesktop.org
> Cc: Vivi, Rodrigo <rodrigo.vivi@intel.com>; Thomas Hellström
> <thomas.hellstrom@linux.intel.com>; Brost, Matthew
> <matthew.brost@intel.com>
> Subject: Re: [PATCH v12 01/13] drm/xe: fix xe_device_mem_access_get() races
> 
> On 04/07/2023 16:29, Gupta, Anshuman wrote:
> >
> >
> > On 7/4/2023 4:55 PM, Matthew Auld wrote:
> >> On 30/06/2023 16:22, Gupta, Anshuman wrote:
> >>>
> >>>
> >>> On 6/26/2023 4:20 PM, Matthew Auld wrote:
> >>>> It looks like there is at least one race here, given that the
> >>>> pm_runtime_suspended() check looks to return false if we are in the
> >>>> process of suspending the device (RPM_SUSPENDING vs
> RPM_SUSPENDED).
> >>>> We later also do xe_pm_runtime_get_if_active(), but since the
> >>>> device is suspending or has now suspended, this doesn't do anything either.
> >>>> Following from this we can potentially return from
> >>>> xe_device_mem_access_get() with the device suspended or about to
> >>>> be, leading to broken behaviour.
> >>>>
> >>>> Attempt to fix this by always grabbing the runtime ref when our
> >>>> internal ref transitions from 0 -> 1. The hard part is then dealing
> >>>> with the runtime_pm callbacks also calling
> >>>> xe_device_mem_access_get() and deadlocking, which the
> >>>> pm_runtime_suspended() check prevented.
> >>>>
> >>>> v2:
> >>>>   - ct->lock looks to be primed with fs_reclaim, so holding that
> >>>> and then
> >>>>     allocating memory will cause lockdep to complain. Now that we
> >>>>     unconditionally grab the mem_access.lock around
> >>>> mem_access_{get,put}, we
> >>>>     need to change the ordering wrt to grabbing the ct->lock, since
> >>>> some of
> >>>>     the runtime_pm routines can allocate memory (or at least that's
> >>>> what
> >>>>     lockdep seems to suggest). Hopefully not a big deal.  It might
> >>>> be that
> >>>>     there were already issues with this, just that the atomics
> >>>> where
> >>>>     "hiding" the potential issues.
> >>>> v3:
> >>>>   - Use Thomas Hellström' idea with tracking the active task that
> >>>> is
> >>>>     executing in the resume or suspend callback, in order to avoid
> >>>>     recursive resume/suspend calls deadlocking on itself.
> >>>>   - Split the ct->lock change.
> >>>> v4:
> >>>>   - Add smb_mb() around accessing the pm_callback_task for extra
> >>>> safety.
> >>>>     (Thomas Hellström)
> >>>> v5:
> >>>>   - Clarify the kernel-doc for the mem_access.lock, given that it
> >>>> is quite
> >>>>     strange in what it protects (data vs code). The real motivation
> >>>> is to
> >>>>     aid lockdep. (Rodrigo Vivi)
> >>>> v6:
> >>>>   - Split out the lock change. We still want this as a lockdep aid
> >>>> but
> >>>>     only for the xe_device_mem_access_get() path. Sticking a lock
> >>>> on the
> >>>>     put() looks be a no-go, also the runtime_put() there is always
> >>>> async.
> >>>>   - Now that the lock is gone move to atomics and rely on the pm
> >>>> code
> >>>>     serialising multiple callers on the 0 -> 1 transition.
> >>>>   - g2h_worker_func() looks to be the next issue, given that
> >>>>     suspend-resume callbacks are using CT, so try to handle that.
> >>>> v7:
> >>>>   - Add xe_device_mem_access_get_if_ongoing(), and use it in
> >>>>     g2h_worker_func().
> >>>>
> >>>> Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/258
> >>>> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> >>>> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> >>>> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> >>>> Cc: Matthew Brost <matthew.brost@intel.com>
> >>>> Cc: Anshuman Gupta <anshuman.gupta@intel.com>
> >>>> ---
> >>>>   drivers/gpu/drm/xe/xe_device.c       | 58
> >>>> +++++++++++++++++++-----
> >>>>   drivers/gpu/drm/xe/xe_device.h       | 12 ++---
> >>>>   drivers/gpu/drm/xe/xe_device_types.h |  6 +++
> >>>>   drivers/gpu/drm/xe/xe_guc_ct.c       | 34 +++++++++++++-
> >>>>   drivers/gpu/drm/xe/xe_pm.c           | 66
> >>>> +++++++++++++++++++---------
> >>>>   drivers/gpu/drm/xe/xe_pm.h           |  3 +-
> >>>>   6 files changed, 134 insertions(+), 45 deletions(-)
> >>>>
> >>>> diff --git a/drivers/gpu/drm/xe/xe_device.c
> >>>> b/drivers/gpu/drm/xe/xe_device.c index c7985af85a53..1dc552da434f
> >>>> 100644
> >>>> --- a/drivers/gpu/drm/xe/xe_device.c
> >>>> +++ b/drivers/gpu/drm/xe/xe_device.c
> >>>> @@ -411,27 +411,61 @@ u32 xe_device_ccs_bytes(struct xe_device *xe,
> >>>> u64 size)
> >>>>           DIV_ROUND_UP(size, NUM_BYTES_PER_CCS_BYTE) : 0;
> >>>>   }
> >>>> +bool xe_device_mem_access_ongoing(struct xe_device *xe) {
> >>>> +    if (xe_pm_read_callback_task(xe) != NULL)
> >>>> +        return true;
> >>>> +
> >>>> +    return atomic_read(&xe->mem_access.ref); }
> >>>> +
> >>>> +void xe_device_assert_mem_access(struct xe_device *xe) {
> >>>> +    XE_WARN_ON(!xe_device_mem_access_ongoing(xe));
> >>>> +}
> >>>> +
> >>>> +bool xe_device_mem_access_get_if_ongoing(struct xe_device *xe) {
> >>>> +    return atomic_inc_not_zero(&xe->mem_access.ref);
> >>>> +}
> >>>> +
> >>>>   void xe_device_mem_access_get(struct xe_device *xe)
> >>>>   {
> >>>> -    bool resumed = xe_pm_runtime_resume_if_suspended(xe);
> >>>> -    int ref = atomic_inc_return(&xe->mem_access.ref);
> >>>> +    /*
> >>>> +     * This looks racy, but should be fine since the
> >>>> pm_callback_task only
> >>>> +     * transitions from NULL -> current (and back to NULL again),
> >>>> during the
> >>>> +     * runtime_resume() or runtime_suspend() callbacks, for which
> >>>> there can
> >>>> +     * only be a single one running for our device. We only need
> >>>> +to
> >>>> prevent
> >>>> +     * recursively calling the runtime_get or runtime_put from
> >>>> +those
> >>>> +     * callbacks, as well as preventing triggering any
> >>>> +access_ongoing
> >>>> +     * asserts.
> >>>> +     */
> >>> two runtime_suspend() can run in parallel for two different pci
> >>> device those worker thread pooled by pm_wq workqueue, it is not
> >>> guaranteed that tast_struct will be different for two worker spawned
> >>> by same pm_wq ?
> >>
> >> IIUC we only use pm_wq for the async put(). If somehow tast_struct
> >> can be the same for different workers when using pm_wq (I'm not sure
> >> tbh), then I think it's fine since all put() must be balanced with a
> >> get(), and all get() are handled directly in the caller (not pm_wq)
> >> since it's non-async, and must first wait for any running callback.
> > Agree with that.
> >>
> >>>
> >>>> +    if (xe_pm_read_callback_task(xe) == current)
> >>>> +        return;
> >>>> -    if (ref == 1)
> >>>> -        xe->mem_access.hold_rpm = xe_pm_runtime_get_if_active(xe);
> >>>> +    if (!atomic_inc_not_zero(&xe->mem_access.ref)) {
> >>>> +        bool hold_rpm = xe_pm_runtime_resume_and_get(xe);
> >>>> +        int ref;
> >>>> -    /* The usage counter increased if device was immediately
> >>>> resumed */
> >>>> -    if (resumed)
> >>>> -        xe_pm_runtime_put(xe);
> >>>> -
> >>>> -    XE_WARN_ON(ref == S32_MAX);
> >>>> +        ref = atomic_inc_return(&xe->mem_access.ref);
> >>>> +        if (ref == 1)
> >>>> +            xe->mem_access.hold_rpm = hold_rpm;
> >>>> +        else
> >>>> +            xe_pm_runtime_put(xe);
> > AFAIU above is not possible ?
> 
> Do you mean the xe_pm_runtime_put() part? On the 0 -> 1 transition we just
> always call xe_pm_runtime_resume_and_get(). That serialises multiple callers
> such that exactly one runs our rpm resume callback and the rest all block waiting
> for it to transition into RPM_ACTIVE. However once we return from
> xe_pm_runtime_resume_and_get() there are potentially several different callers
> holding an rpm ref. We only need the one rpm ref for our needs, so we simply
> drop the rest here keeping the one that first incremented the ref.
Thanks for explanation.
I am still not clear with how are we handling case of error return by xe_pm_runtime_resume_and_get() ?
If one of two simultaneous call of xe_device_mem_access_get() fails at xe_pm_runtime_resume_and_get() 
then it drops the rpm ref of other passed call as well ?   
That eventually provide access to PCI bar without RPM protection.
We should also check returned value from xe_pm_runtime_resume_and_get() before calling 
xe_pm_runtime_put() as pm_runtime_resume_and_get() also drops the device usage count on
error case.
Br,
Anshuman Gupta.
> 
> >>>> +    } else {
> >>>> +        XE_WARN_ON(atomic_read(&xe->mem_access.ref) == S32_MAX);
> >>>> +    }
> >>>>   }
> >>>>   void xe_device_mem_access_put(struct xe_device *xe)
> >>>>   {
> >>>> -    bool hold = xe->mem_access.hold_rpm;
> >>>> -    int ref = atomic_dec_return(&xe->mem_access.ref);
> >>>> +    int ref;
> >>>> -    if (!ref && hold)
> >>>> +    if (xe_pm_read_callback_task(xe) == current)
> >>>> +        return;
> >>>> +
> >>>> +    ref = atomic_dec_return(&xe->mem_access.ref);
> >>>> +    if (ref == 0 && xe->mem_access.hold_rpm)
> >>>>           xe_pm_runtime_put(xe);
> >>>>       XE_WARN_ON(ref < 0);
> >>> /snip
> >>>> +
> >>>>   int xe_pm_runtime_suspend(struct xe_device *xe)
> >>>>   {
> >>>>       struct xe_gt *gt;
> >>>>       u8 id;
> >>>> -    int err;
> >>>> +    int err = 0;
> >>>> +
> >>>> +    if (xe->d3cold_allowed && xe_device_mem_access_ongoing(xe))
> >>>> +        return -EBUSY;
> >>> Not related to this patch but We should return -EBUSY even for d3hot
> >>> as well.
> >>
> >> Looking at this again, access_ongoing is always going to be false
> >> here, right? On the 0 -> 1 transition we always do full sync pm get
> >> before increment mem_access.ref, so not sure if this check actually
> >> does anything.
> > I belive this is paranoid check against any unbalanced put.
> > Br,
> > Anshuman Gupta.
> >>
> >>> Br,
> >>> Anshuman Gupta
> >>>> +
> >>>> +    /* Disable access_ongoing asserts and prevent recursive pm
> >>>> calls */
> >>>> +    xe_pm_write_callback_task(xe, current);
> >>>>       if (xe->d3cold_allowed) {
> >>>> -        if (xe_device_mem_access_ongoing(xe))
> >>>> -            return -EBUSY;
> >>>> -
> >>>>           err = xe_bo_evict_all(xe);
> >>>>           if (err)
> >>>> -            return err;
> >>>> +            goto out;
> >>>>       }
> >>>>       for_each_gt(gt, xe, id) {
> >>>>           err = xe_gt_suspend(gt);
> >>>>           if (err)
> >>>> -            return err;
> >>>> +            goto out;
> >>>>       }
> >>>>       xe_irq_suspend(xe);
> >>>> -
> >>>> -    return 0;
> >>>> +out:
> >>>> +    xe_pm_write_callback_task(xe, NULL);
> >>>> +    return err;
> >>>>   }
> >>>>   int xe_pm_runtime_resume(struct xe_device *xe)
> >>>>   {
> >>>>       struct xe_gt *gt;
> >>>>       u8 id;
> >>>> -    int err;
> >>>> +    int err = 0;
> >>>> +
> >>>> +    /* Disable access_ongoing asserts and prevent recursive pm
> >>>> calls */
> >>>> +    xe_pm_write_callback_task(xe, current);
> >>>>       if (xe->d3cold_allowed) {
> >>>>           for_each_gt(gt, xe, id) {
> >>>>               err = xe_pcode_init(gt);
> >>>>               if (err)
> >>>> -                return err;
> >>>> +                goto out;
> >>>>           }
> >>>>           /*
> >>>> @@ -182,7 +210,7 @@ int xe_pm_runtime_resume(struct xe_device *xe)
> >>>>            */
> >>>>           err = xe_bo_restore_kernel(xe);
> >>>>           if (err)
> >>>> -            return err;
> >>>> +            goto out;
> >>>>       }
> >>>>       xe_irq_resume(xe);
> >>>> @@ -193,10 +221,11 @@ int xe_pm_runtime_resume(struct xe_device
> >>>> *xe)
> >>>>       if (xe->d3cold_allowed) {
> >>>>           err = xe_bo_restore_user(xe);
> >>>>           if (err)
> >>>> -            return err;
> >>>> +            goto out;
> >>>>       }
> >>>> -
> >>>> -    return 0;
> >>>> +out:
> >>>> +    xe_pm_write_callback_task(xe, NULL);
> >>>> +    return err;
> >>>>   }
> >>>>   int xe_pm_runtime_get(struct xe_device *xe) @@ -210,14 +239,9 @@
> >>>> int xe_pm_runtime_put(struct xe_device *xe)
> >>>>       return pm_runtime_put_autosuspend(xe->drm.dev);
> >>>>   }
> >>>> -/* Return true if resume operation happened and usage count was
> >>>> increased */ -bool xe_pm_runtime_resume_if_suspended(struct
> >>>> xe_device *xe)
> >>>> +bool xe_pm_runtime_resume_and_get(struct xe_device *xe)
> >>>>   {
> >>>> -    /* In case we are suspended we need to immediately wake up */
> >>>> -    if (pm_runtime_suspended(xe->drm.dev))
> >>>> -        return !pm_runtime_resume_and_get(xe->drm.dev);
> >>>> -
> >>>> -    return false;
> >>>> +    return !pm_runtime_resume_and_get(xe->drm.dev);
> >>>>   }
> >>>>   int xe_pm_runtime_get_if_active(struct xe_device *xe) diff --git
> >>>> a/drivers/gpu/drm/xe/xe_pm.h b/drivers/gpu/drm/xe/xe_pm.h index
> >>>> 6a885585f653..e92c508d44b9 100644
> >>>> --- a/drivers/gpu/drm/xe/xe_pm.h
> >>>> +++ b/drivers/gpu/drm/xe/xe_pm.h
> >>>> @@ -19,7 +19,8 @@ int xe_pm_runtime_suspend(struct xe_device *xe);
> >>>>   int xe_pm_runtime_resume(struct xe_device *xe);
> >>>>   int xe_pm_runtime_get(struct xe_device *xe);
> >>>>   int xe_pm_runtime_put(struct xe_device *xe); -bool
> >>>> xe_pm_runtime_resume_if_suspended(struct xe_device *xe);
> >>>> +bool xe_pm_runtime_resume_and_get(struct xe_device *xe);
> >>>>   int xe_pm_runtime_get_if_active(struct xe_device *xe);
> >>>> +struct task_struct *xe_pm_read_callback_task(struct xe_device
> >>>> +*xe);
> >>>>   #endif

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

* Re: [Intel-xe] [PATCH v12 01/13] drm/xe: fix xe_device_mem_access_get() races
  2023-07-11  9:00           ` Gupta, Anshuman
@ 2023-07-11 11:06             ` Matthew Auld
  2023-07-11 17:56               ` Gupta, Anshuman
  0 siblings, 1 reply; 36+ messages in thread
From: Matthew Auld @ 2023-07-11 11:06 UTC (permalink / raw)
  To: Gupta, Anshuman, intel-xe; +Cc: Vivi, Rodrigo

On 11/07/2023 10:00, Gupta, Anshuman wrote:
> 
> 
>> -----Original Message-----
>> From: Auld, Matthew <matthew.auld@intel.com>
>> Sent: Tuesday, July 4, 2023 9:30 PM
>> To: Gupta, Anshuman <anshuman.gupta@intel.com>; intel-
>> xe@lists.freedesktop.org
>> Cc: Vivi, Rodrigo <rodrigo.vivi@intel.com>; Thomas Hellström
>> <thomas.hellstrom@linux.intel.com>; Brost, Matthew
>> <matthew.brost@intel.com>
>> Subject: Re: [PATCH v12 01/13] drm/xe: fix xe_device_mem_access_get() races
>>
>> On 04/07/2023 16:29, Gupta, Anshuman wrote:
>>>
>>>
>>> On 7/4/2023 4:55 PM, Matthew Auld wrote:
>>>> On 30/06/2023 16:22, Gupta, Anshuman wrote:
>>>>>
>>>>>
>>>>> On 6/26/2023 4:20 PM, Matthew Auld wrote:
>>>>>> It looks like there is at least one race here, given that the
>>>>>> pm_runtime_suspended() check looks to return false if we are in the
>>>>>> process of suspending the device (RPM_SUSPENDING vs
>> RPM_SUSPENDED).
>>>>>> We later also do xe_pm_runtime_get_if_active(), but since the
>>>>>> device is suspending or has now suspended, this doesn't do anything either.
>>>>>> Following from this we can potentially return from
>>>>>> xe_device_mem_access_get() with the device suspended or about to
>>>>>> be, leading to broken behaviour.
>>>>>>
>>>>>> Attempt to fix this by always grabbing the runtime ref when our
>>>>>> internal ref transitions from 0 -> 1. The hard part is then dealing
>>>>>> with the runtime_pm callbacks also calling
>>>>>> xe_device_mem_access_get() and deadlocking, which the
>>>>>> pm_runtime_suspended() check prevented.
>>>>>>
>>>>>> v2:
>>>>>>    - ct->lock looks to be primed with fs_reclaim, so holding that
>>>>>> and then
>>>>>>      allocating memory will cause lockdep to complain. Now that we
>>>>>>      unconditionally grab the mem_access.lock around
>>>>>> mem_access_{get,put}, we
>>>>>>      need to change the ordering wrt to grabbing the ct->lock, since
>>>>>> some of
>>>>>>      the runtime_pm routines can allocate memory (or at least that's
>>>>>> what
>>>>>>      lockdep seems to suggest). Hopefully not a big deal.  It might
>>>>>> be that
>>>>>>      there were already issues with this, just that the atomics
>>>>>> where
>>>>>>      "hiding" the potential issues.
>>>>>> v3:
>>>>>>    - Use Thomas Hellström' idea with tracking the active task that
>>>>>> is
>>>>>>      executing in the resume or suspend callback, in order to avoid
>>>>>>      recursive resume/suspend calls deadlocking on itself.
>>>>>>    - Split the ct->lock change.
>>>>>> v4:
>>>>>>    - Add smb_mb() around accessing the pm_callback_task for extra
>>>>>> safety.
>>>>>>      (Thomas Hellström)
>>>>>> v5:
>>>>>>    - Clarify the kernel-doc for the mem_access.lock, given that it
>>>>>> is quite
>>>>>>      strange in what it protects (data vs code). The real motivation
>>>>>> is to
>>>>>>      aid lockdep. (Rodrigo Vivi)
>>>>>> v6:
>>>>>>    - Split out the lock change. We still want this as a lockdep aid
>>>>>> but
>>>>>>      only for the xe_device_mem_access_get() path. Sticking a lock
>>>>>> on the
>>>>>>      put() looks be a no-go, also the runtime_put() there is always
>>>>>> async.
>>>>>>    - Now that the lock is gone move to atomics and rely on the pm
>>>>>> code
>>>>>>      serialising multiple callers on the 0 -> 1 transition.
>>>>>>    - g2h_worker_func() looks to be the next issue, given that
>>>>>>      suspend-resume callbacks are using CT, so try to handle that.
>>>>>> v7:
>>>>>>    - Add xe_device_mem_access_get_if_ongoing(), and use it in
>>>>>>      g2h_worker_func().
>>>>>>
>>>>>> Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/258
>>>>>> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
>>>>>> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>>>>>> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
>>>>>> Cc: Matthew Brost <matthew.brost@intel.com>
>>>>>> Cc: Anshuman Gupta <anshuman.gupta@intel.com>
>>>>>> ---
>>>>>>    drivers/gpu/drm/xe/xe_device.c       | 58
>>>>>> +++++++++++++++++++-----
>>>>>>    drivers/gpu/drm/xe/xe_device.h       | 12 ++---
>>>>>>    drivers/gpu/drm/xe/xe_device_types.h |  6 +++
>>>>>>    drivers/gpu/drm/xe/xe_guc_ct.c       | 34 +++++++++++++-
>>>>>>    drivers/gpu/drm/xe/xe_pm.c           | 66
>>>>>> +++++++++++++++++++---------
>>>>>>    drivers/gpu/drm/xe/xe_pm.h           |  3 +-
>>>>>>    6 files changed, 134 insertions(+), 45 deletions(-)
>>>>>>
>>>>>> diff --git a/drivers/gpu/drm/xe/xe_device.c
>>>>>> b/drivers/gpu/drm/xe/xe_device.c index c7985af85a53..1dc552da434f
>>>>>> 100644
>>>>>> --- a/drivers/gpu/drm/xe/xe_device.c
>>>>>> +++ b/drivers/gpu/drm/xe/xe_device.c
>>>>>> @@ -411,27 +411,61 @@ u32 xe_device_ccs_bytes(struct xe_device *xe,
>>>>>> u64 size)
>>>>>>            DIV_ROUND_UP(size, NUM_BYTES_PER_CCS_BYTE) : 0;
>>>>>>    }
>>>>>> +bool xe_device_mem_access_ongoing(struct xe_device *xe) {
>>>>>> +    if (xe_pm_read_callback_task(xe) != NULL)
>>>>>> +        return true;
>>>>>> +
>>>>>> +    return atomic_read(&xe->mem_access.ref); }
>>>>>> +
>>>>>> +void xe_device_assert_mem_access(struct xe_device *xe) {
>>>>>> +    XE_WARN_ON(!xe_device_mem_access_ongoing(xe));
>>>>>> +}
>>>>>> +
>>>>>> +bool xe_device_mem_access_get_if_ongoing(struct xe_device *xe) {
>>>>>> +    return atomic_inc_not_zero(&xe->mem_access.ref);
>>>>>> +}
>>>>>> +
>>>>>>    void xe_device_mem_access_get(struct xe_device *xe)
>>>>>>    {
>>>>>> -    bool resumed = xe_pm_runtime_resume_if_suspended(xe);
>>>>>> -    int ref = atomic_inc_return(&xe->mem_access.ref);
>>>>>> +    /*
>>>>>> +     * This looks racy, but should be fine since the
>>>>>> pm_callback_task only
>>>>>> +     * transitions from NULL -> current (and back to NULL again),
>>>>>> during the
>>>>>> +     * runtime_resume() or runtime_suspend() callbacks, for which
>>>>>> there can
>>>>>> +     * only be a single one running for our device. We only need
>>>>>> +to
>>>>>> prevent
>>>>>> +     * recursively calling the runtime_get or runtime_put from
>>>>>> +those
>>>>>> +     * callbacks, as well as preventing triggering any
>>>>>> +access_ongoing
>>>>>> +     * asserts.
>>>>>> +     */
>>>>> two runtime_suspend() can run in parallel for two different pci
>>>>> device those worker thread pooled by pm_wq workqueue, it is not
>>>>> guaranteed that tast_struct will be different for two worker spawned
>>>>> by same pm_wq ?
>>>>
>>>> IIUC we only use pm_wq for the async put(). If somehow tast_struct
>>>> can be the same for different workers when using pm_wq (I'm not sure
>>>> tbh), then I think it's fine since all put() must be balanced with a
>>>> get(), and all get() are handled directly in the caller (not pm_wq)
>>>> since it's non-async, and must first wait for any running callback.
>>> Agree with that.
>>>>
>>>>>
>>>>>> +    if (xe_pm_read_callback_task(xe) == current)
>>>>>> +        return;
>>>>>> -    if (ref == 1)
>>>>>> -        xe->mem_access.hold_rpm = xe_pm_runtime_get_if_active(xe);
>>>>>> +    if (!atomic_inc_not_zero(&xe->mem_access.ref)) {
>>>>>> +        bool hold_rpm = xe_pm_runtime_resume_and_get(xe);
>>>>>> +        int ref;
>>>>>> -    /* The usage counter increased if device was immediately
>>>>>> resumed */
>>>>>> -    if (resumed)
>>>>>> -        xe_pm_runtime_put(xe);
>>>>>> -
>>>>>> -    XE_WARN_ON(ref == S32_MAX);
>>>>>> +        ref = atomic_inc_return(&xe->mem_access.ref);
>>>>>> +        if (ref == 1)
>>>>>> +            xe->mem_access.hold_rpm = hold_rpm;
>>>>>> +        else
>>>>>> +            xe_pm_runtime_put(xe);
>>> AFAIU above is not possible ?
>>
>> Do you mean the xe_pm_runtime_put() part? On the 0 -> 1 transition we just
>> always call xe_pm_runtime_resume_and_get(). That serialises multiple callers
>> such that exactly one runs our rpm resume callback and the rest all block waiting
>> for it to transition into RPM_ACTIVE. However once we return from
>> xe_pm_runtime_resume_and_get() there are potentially several different callers
>> holding an rpm ref. We only need the one rpm ref for our needs, so we simply
>> drop the rest here keeping the one that first incremented the ref.
> Thanks for explanation.
> I am still not clear with how are we handling case of error return by xe_pm_runtime_resume_and_get() ?
> If one of two simultaneous call of xe_device_mem_access_get() fails at xe_pm_runtime_resume_and_get()
> then it drops the rpm ref of other passed call as well ?


I guess we could do something like:

-               if (ref == 1)
+               if (ref == 1 && hold_rpm)
                         xe->mem_access.hold_rpm = hold_rpm;
-               else
+               else if (hold_rpm)
                         xe_pm_runtime_put(xe);

Or we can just always grab the rpm:

-       if (!atomic_inc_not_zero(&xe->mem_access.ref)) {
-               bool hold_rpm = xe_pm_runtime_resume_and_get(xe);
-               int ref;
-
-               ref = atomic_inc_return(&xe->mem_access.ref);
-               if (ref == 1)
-                       xe->mem_access.hold_rpm = hold_rpm;
-               else
-                       xe_pm_runtime_put(xe);
-       } else {
-               XE_WARN_ON(atomic_read(&xe->mem_access.ref) == S32_MAX);
-       }
+       xe_pm_runtime_resume_and_get(xe);
+       ref = atomic_inc_return(&xe->mem_access.ref);
+       XE_WARN_ON(ref == S32_MAX);

         lock_map_release(&xe_device_mem_access_lockdep_map);
  }
@@ -489,8 +480,7 @@ void xe_device_mem_access_put(struct xe_device *xe)
                 return;

         ref = atomic_dec_return(&xe->mem_access.ref);
-       if (ref == 0 && xe->mem_access.hold_rpm)
-               xe_pm_runtime_put(xe);
+       xe_pm_runtime_put(xe);


And then also remove hold_rpm stuff. But either way there is still the 
big issue of what to do if the rpm get fails. If it fails as you say, 
the driver is still broken even with the above.

> That eventually provide access to PCI bar without RPM protection.
> We should also check returned value from xe_pm_runtime_resume_and_get() before calling
> xe_pm_runtime_put() as pm_runtime_resume_and_get() also drops the device usage count on
> error case.

So do we already know how we want to handle such failures from callers 
pov? Currently there is no return value for xe_device_mem_access_get(), 
so caller currently has zero clue, and any device access will be end 
badly anyway. But I wasn't really trying to solve that in this series.

Do we just want to return an error if access_get fails? If so handling 
the above becomes quite simple, with something like the following in 
xe_device_mem_access_get():

+       if (!xe_pm_runtime_resume_and_get(xe))
+               return false;

> Br,
> Anshuman Gupta.
>>
>>>>>> +    } else {
>>>>>> +        XE_WARN_ON(atomic_read(&xe->mem_access.ref) == S32_MAX);
>>>>>> +    }
>>>>>>    }
>>>>>>    void xe_device_mem_access_put(struct xe_device *xe)
>>>>>>    {
>>>>>> -    bool hold = xe->mem_access.hold_rpm;
>>>>>> -    int ref = atomic_dec_return(&xe->mem_access.ref);
>>>>>> +    int ref;
>>>>>> -    if (!ref && hold)
>>>>>> +    if (xe_pm_read_callback_task(xe) == current)
>>>>>> +        return;
>>>>>> +
>>>>>> +    ref = atomic_dec_return(&xe->mem_access.ref);
>>>>>> +    if (ref == 0 && xe->mem_access.hold_rpm)
>>>>>>            xe_pm_runtime_put(xe);
>>>>>>        XE_WARN_ON(ref < 0);
>>>>> /snip
>>>>>> +
>>>>>>    int xe_pm_runtime_suspend(struct xe_device *xe)
>>>>>>    {
>>>>>>        struct xe_gt *gt;
>>>>>>        u8 id;
>>>>>> -    int err;
>>>>>> +    int err = 0;
>>>>>> +
>>>>>> +    if (xe->d3cold_allowed && xe_device_mem_access_ongoing(xe))
>>>>>> +        return -EBUSY;
>>>>> Not related to this patch but We should return -EBUSY even for d3hot
>>>>> as well.
>>>>
>>>> Looking at this again, access_ongoing is always going to be false
>>>> here, right? On the 0 -> 1 transition we always do full sync pm get
>>>> before increment mem_access.ref, so not sure if this check actually
>>>> does anything.
>>> I belive this is paranoid check against any unbalanced put.
>>> Br,
>>> Anshuman Gupta.
>>>>
>>>>> Br,
>>>>> Anshuman Gupta
>>>>>> +
>>>>>> +    /* Disable access_ongoing asserts and prevent recursive pm
>>>>>> calls */
>>>>>> +    xe_pm_write_callback_task(xe, current);
>>>>>>        if (xe->d3cold_allowed) {
>>>>>> -        if (xe_device_mem_access_ongoing(xe))
>>>>>> -            return -EBUSY;
>>>>>> -
>>>>>>            err = xe_bo_evict_all(xe);
>>>>>>            if (err)
>>>>>> -            return err;
>>>>>> +            goto out;
>>>>>>        }
>>>>>>        for_each_gt(gt, xe, id) {
>>>>>>            err = xe_gt_suspend(gt);
>>>>>>            if (err)
>>>>>> -            return err;
>>>>>> +            goto out;
>>>>>>        }
>>>>>>        xe_irq_suspend(xe);
>>>>>> -
>>>>>> -    return 0;
>>>>>> +out:
>>>>>> +    xe_pm_write_callback_task(xe, NULL);
>>>>>> +    return err;
>>>>>>    }
>>>>>>    int xe_pm_runtime_resume(struct xe_device *xe)
>>>>>>    {
>>>>>>        struct xe_gt *gt;
>>>>>>        u8 id;
>>>>>> -    int err;
>>>>>> +    int err = 0;
>>>>>> +
>>>>>> +    /* Disable access_ongoing asserts and prevent recursive pm
>>>>>> calls */
>>>>>> +    xe_pm_write_callback_task(xe, current);
>>>>>>        if (xe->d3cold_allowed) {
>>>>>>            for_each_gt(gt, xe, id) {
>>>>>>                err = xe_pcode_init(gt);
>>>>>>                if (err)
>>>>>> -                return err;
>>>>>> +                goto out;
>>>>>>            }
>>>>>>            /*
>>>>>> @@ -182,7 +210,7 @@ int xe_pm_runtime_resume(struct xe_device *xe)
>>>>>>             */
>>>>>>            err = xe_bo_restore_kernel(xe);
>>>>>>            if (err)
>>>>>> -            return err;
>>>>>> +            goto out;
>>>>>>        }
>>>>>>        xe_irq_resume(xe);
>>>>>> @@ -193,10 +221,11 @@ int xe_pm_runtime_resume(struct xe_device
>>>>>> *xe)
>>>>>>        if (xe->d3cold_allowed) {
>>>>>>            err = xe_bo_restore_user(xe);
>>>>>>            if (err)
>>>>>> -            return err;
>>>>>> +            goto out;
>>>>>>        }
>>>>>> -
>>>>>> -    return 0;
>>>>>> +out:
>>>>>> +    xe_pm_write_callback_task(xe, NULL);
>>>>>> +    return err;
>>>>>>    }
>>>>>>    int xe_pm_runtime_get(struct xe_device *xe) @@ -210,14 +239,9 @@
>>>>>> int xe_pm_runtime_put(struct xe_device *xe)
>>>>>>        return pm_runtime_put_autosuspend(xe->drm.dev);
>>>>>>    }
>>>>>> -/* Return true if resume operation happened and usage count was
>>>>>> increased */ -bool xe_pm_runtime_resume_if_suspended(struct
>>>>>> xe_device *xe)
>>>>>> +bool xe_pm_runtime_resume_and_get(struct xe_device *xe)
>>>>>>    {
>>>>>> -    /* In case we are suspended we need to immediately wake up */
>>>>>> -    if (pm_runtime_suspended(xe->drm.dev))
>>>>>> -        return !pm_runtime_resume_and_get(xe->drm.dev);
>>>>>> -
>>>>>> -    return false;
>>>>>> +    return !pm_runtime_resume_and_get(xe->drm.dev);
>>>>>>    }
>>>>>>    int xe_pm_runtime_get_if_active(struct xe_device *xe) diff --git
>>>>>> a/drivers/gpu/drm/xe/xe_pm.h b/drivers/gpu/drm/xe/xe_pm.h index
>>>>>> 6a885585f653..e92c508d44b9 100644
>>>>>> --- a/drivers/gpu/drm/xe/xe_pm.h
>>>>>> +++ b/drivers/gpu/drm/xe/xe_pm.h
>>>>>> @@ -19,7 +19,8 @@ int xe_pm_runtime_suspend(struct xe_device *xe);
>>>>>>    int xe_pm_runtime_resume(struct xe_device *xe);
>>>>>>    int xe_pm_runtime_get(struct xe_device *xe);
>>>>>>    int xe_pm_runtime_put(struct xe_device *xe); -bool
>>>>>> xe_pm_runtime_resume_if_suspended(struct xe_device *xe);
>>>>>> +bool xe_pm_runtime_resume_and_get(struct xe_device *xe);
>>>>>>    int xe_pm_runtime_get_if_active(struct xe_device *xe);
>>>>>> +struct task_struct *xe_pm_read_callback_task(struct xe_device
>>>>>> +*xe);
>>>>>>    #endif

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

* Re: [Intel-xe] [PATCH v12 01/13] drm/xe: fix xe_device_mem_access_get() races
  2023-07-11 11:06             ` Matthew Auld
@ 2023-07-11 17:56               ` Gupta, Anshuman
  0 siblings, 0 replies; 36+ messages in thread
From: Gupta, Anshuman @ 2023-07-11 17:56 UTC (permalink / raw)
  To: Auld, Matthew, intel-xe; +Cc: Vivi, Rodrigo



> -----Original Message-----
> From: Auld, Matthew <matthew.auld@intel.com>
> Sent: Tuesday, July 11, 2023 4:36 PM
> To: Gupta, Anshuman <anshuman.gupta@intel.com>; intel-
> xe@lists.freedesktop.org
> Cc: Vivi, Rodrigo <rodrigo.vivi@intel.com>; Thomas Hellström
> <thomas.hellstrom@linux.intel.com>; Brost, Matthew
> <matthew.brost@intel.com>
> Subject: Re: [PATCH v12 01/13] drm/xe: fix xe_device_mem_access_get()
> races
> 
> On 11/07/2023 10:00, Gupta, Anshuman wrote:
> >
> >
> >> -----Original Message-----
> >> From: Auld, Matthew <matthew.auld@intel.com>
> >> Sent: Tuesday, July 4, 2023 9:30 PM
> >> To: Gupta, Anshuman <anshuman.gupta@intel.com>; intel-
> >> xe@lists.freedesktop.org
> >> Cc: Vivi, Rodrigo <rodrigo.vivi@intel.com>; Thomas Hellström
> >> <thomas.hellstrom@linux.intel.com>; Brost, Matthew
> >> <matthew.brost@intel.com>
> >> Subject: Re: [PATCH v12 01/13] drm/xe: fix xe_device_mem_access_get()
> >> races
> >>
> >> On 04/07/2023 16:29, Gupta, Anshuman wrote:
> >>>
> >>>
> >>> On 7/4/2023 4:55 PM, Matthew Auld wrote:
> >>>> On 30/06/2023 16:22, Gupta, Anshuman wrote:
> >>>>>
> >>>>>
> >>>>> On 6/26/2023 4:20 PM, Matthew Auld wrote:
> >>>>>> It looks like there is at least one race here, given that the
> >>>>>> pm_runtime_suspended() check looks to return false if we are in
> >>>>>> the process of suspending the device (RPM_SUSPENDING vs
> >> RPM_SUSPENDED).
> >>>>>> We later also do xe_pm_runtime_get_if_active(), but since the
> >>>>>> device is suspending or has now suspended, this doesn't do anything
> either.
> >>>>>> Following from this we can potentially return from
> >>>>>> xe_device_mem_access_get() with the device suspended or about
> to
> >>>>>> be, leading to broken behaviour.
> >>>>>>
> >>>>>> Attempt to fix this by always grabbing the runtime ref when our
> >>>>>> internal ref transitions from 0 -> 1. The hard part is then
> >>>>>> dealing with the runtime_pm callbacks also calling
> >>>>>> xe_device_mem_access_get() and deadlocking, which the
> >>>>>> pm_runtime_suspended() check prevented.
> >>>>>>
> >>>>>> v2:
> >>>>>>    - ct->lock looks to be primed with fs_reclaim, so holding that
> >>>>>> and then
> >>>>>>      allocating memory will cause lockdep to complain. Now that
> >>>>>> we
> >>>>>>      unconditionally grab the mem_access.lock around
> >>>>>> mem_access_{get,put}, we
> >>>>>>      need to change the ordering wrt to grabbing the ct->lock,
> >>>>>> since some of
> >>>>>>      the runtime_pm routines can allocate memory (or at least
> >>>>>> that's what
> >>>>>>      lockdep seems to suggest). Hopefully not a big deal.  It
> >>>>>> might be that
> >>>>>>      there were already issues with this, just that the atomics
> >>>>>> where
> >>>>>>      "hiding" the potential issues.
> >>>>>> v3:
> >>>>>>    - Use Thomas Hellström' idea with tracking the active task
> >>>>>> that is
> >>>>>>      executing in the resume or suspend callback, in order to
> >>>>>> avoid
> >>>>>>      recursive resume/suspend calls deadlocking on itself.
> >>>>>>    - Split the ct->lock change.
> >>>>>> v4:
> >>>>>>    - Add smb_mb() around accessing the pm_callback_task for extra
> >>>>>> safety.
> >>>>>>      (Thomas Hellström)
> >>>>>> v5:
> >>>>>>    - Clarify the kernel-doc for the mem_access.lock, given that
> >>>>>> it is quite
> >>>>>>      strange in what it protects (data vs code). The real
> >>>>>> motivation is to
> >>>>>>      aid lockdep. (Rodrigo Vivi)
> >>>>>> v6:
> >>>>>>    - Split out the lock change. We still want this as a lockdep
> >>>>>> aid but
> >>>>>>      only for the xe_device_mem_access_get() path. Sticking a
> >>>>>> lock on the
> >>>>>>      put() looks be a no-go, also the runtime_put() there is
> >>>>>> always async.
> >>>>>>    - Now that the lock is gone move to atomics and rely on the pm
> >>>>>> code
> >>>>>>      serialising multiple callers on the 0 -> 1 transition.
> >>>>>>    - g2h_worker_func() looks to be the next issue, given that
> >>>>>>      suspend-resume callbacks are using CT, so try to handle that.
> >>>>>> v7:
> >>>>>>    - Add xe_device_mem_access_get_if_ongoing(), and use it in
> >>>>>>      g2h_worker_func().
> >>>>>>
> >>>>>> Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/258
> >>>>>> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> >>>>>> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> >>>>>> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> >>>>>> Cc: Matthew Brost <matthew.brost@intel.com>
> >>>>>> Cc: Anshuman Gupta <anshuman.gupta@intel.com>
> >>>>>> ---
> >>>>>>    drivers/gpu/drm/xe/xe_device.c       | 58
> >>>>>> +++++++++++++++++++-----
> >>>>>>    drivers/gpu/drm/xe/xe_device.h       | 12 ++---
> >>>>>>    drivers/gpu/drm/xe/xe_device_types.h |  6 +++
> >>>>>>    drivers/gpu/drm/xe/xe_guc_ct.c       | 34 +++++++++++++-
> >>>>>>    drivers/gpu/drm/xe/xe_pm.c           | 66
> >>>>>> +++++++++++++++++++---------
> >>>>>>    drivers/gpu/drm/xe/xe_pm.h           |  3 +-
> >>>>>>    6 files changed, 134 insertions(+), 45 deletions(-)
> >>>>>>
> >>>>>> diff --git a/drivers/gpu/drm/xe/xe_device.c
> >>>>>> b/drivers/gpu/drm/xe/xe_device.c index
> c7985af85a53..1dc552da434f
> >>>>>> 100644
> >>>>>> --- a/drivers/gpu/drm/xe/xe_device.c
> >>>>>> +++ b/drivers/gpu/drm/xe/xe_device.c
> >>>>>> @@ -411,27 +411,61 @@ u32 xe_device_ccs_bytes(struct xe_device
> >>>>>> *xe,
> >>>>>> u64 size)
> >>>>>>            DIV_ROUND_UP(size, NUM_BYTES_PER_CCS_BYTE) : 0;
> >>>>>>    }
> >>>>>> +bool xe_device_mem_access_ongoing(struct xe_device *xe) {
> >>>>>> +    if (xe_pm_read_callback_task(xe) != NULL)
> >>>>>> +        return true;
> >>>>>> +
> >>>>>> +    return atomic_read(&xe->mem_access.ref); }
> >>>>>> +
> >>>>>> +void xe_device_assert_mem_access(struct xe_device *xe) {
> >>>>>> +    XE_WARN_ON(!xe_device_mem_access_ongoing(xe));
> >>>>>> +}
> >>>>>> +
> >>>>>> +bool xe_device_mem_access_get_if_ongoing(struct xe_device
> *xe) {
> >>>>>> +    return atomic_inc_not_zero(&xe->mem_access.ref);
> >>>>>> +}
> >>>>>> +
> >>>>>>    void xe_device_mem_access_get(struct xe_device *xe)
> >>>>>>    {
> >>>>>> -    bool resumed = xe_pm_runtime_resume_if_suspended(xe);
> >>>>>> -    int ref = atomic_inc_return(&xe->mem_access.ref);
> >>>>>> +    /*
> >>>>>> +     * This looks racy, but should be fine since the
> >>>>>> pm_callback_task only
> >>>>>> +     * transitions from NULL -> current (and back to NULL
> >>>>>> +again),
> >>>>>> during the
> >>>>>> +     * runtime_resume() or runtime_suspend() callbacks, for
> >>>>>> +which
> >>>>>> there can
> >>>>>> +     * only be a single one running for our device. We only need
> >>>>>> +to
> >>>>>> prevent
> >>>>>> +     * recursively calling the runtime_get or runtime_put from
> >>>>>> +those
> >>>>>> +     * callbacks, as well as preventing triggering any
> >>>>>> +access_ongoing
> >>>>>> +     * asserts.
> >>>>>> +     */
> >>>>> two runtime_suspend() can run in parallel for two different pci
> >>>>> device those worker thread pooled by pm_wq workqueue, it is not
> >>>>> guaranteed that tast_struct will be different for two worker
> >>>>> spawned by same pm_wq ?
> >>>>
> >>>> IIUC we only use pm_wq for the async put(). If somehow tast_struct
> >>>> can be the same for different workers when using pm_wq (I'm not
> >>>> sure tbh), then I think it's fine since all put() must be balanced
> >>>> with a get(), and all get() are handled directly in the caller (not
> >>>> pm_wq) since it's non-async, and must first wait for any running
> callback.
> >>> Agree with that.
> >>>>
> >>>>>
> >>>>>> +    if (xe_pm_read_callback_task(xe) == current)
> >>>>>> +        return;
> >>>>>> -    if (ref == 1)
> >>>>>> -        xe->mem_access.hold_rpm =
> >>>>>> xe_pm_runtime_get_if_active(xe);
> >>>>>> +    if (!atomic_inc_not_zero(&xe->mem_access.ref)) {
> >>>>>> +        bool hold_rpm = xe_pm_runtime_resume_and_get(xe);
> >>>>>> +        int ref;
> >>>>>> -    /* The usage counter increased if device was immediately
> >>>>>> resumed */
> >>>>>> -    if (resumed)
> >>>>>> -        xe_pm_runtime_put(xe);
> >>>>>> -
> >>>>>> -    XE_WARN_ON(ref == S32_MAX);
> >>>>>> +        ref = atomic_inc_return(&xe->mem_access.ref);
> >>>>>> +        if (ref == 1)
> >>>>>> +            xe->mem_access.hold_rpm = hold_rpm;
> >>>>>> +        else
> >>>>>> +            xe_pm_runtime_put(xe);
> >>> AFAIU above is not possible ?
> >>
> >> Do you mean the xe_pm_runtime_put() part? On the 0 -> 1 transition we
> >> just always call xe_pm_runtime_resume_and_get(). That serialises
> >> multiple callers such that exactly one runs our rpm resume callback
> >> and the rest all block waiting for it to transition into RPM_ACTIVE.
> >> However once we return from
> >> xe_pm_runtime_resume_and_get() there are potentially several
> >> different callers holding an rpm ref. We only need the one rpm ref
> >> for our needs, so we simply drop the rest here keeping the one that first
> incremented the ref.
> > Thanks for explanation.
> > I am still not clear with how are we handling case of error return by
> xe_pm_runtime_resume_and_get() ?
> > If one of two simultaneous call of xe_device_mem_access_get() fails at
> > xe_pm_runtime_resume_and_get() then it drops the rpm ref of other
> passed call as well ?
> 
> 
> I guess we could do something like:
> 
> -               if (ref == 1)
> +               if (ref == 1 && hold_rpm)
>                          xe->mem_access.hold_rpm = hold_rpm;
> -               else
> +               else if (hold_rpm)
>                          xe_pm_runtime_put(xe);
> 
> Or we can just always grab the rpm:
> 
> -       if (!atomic_inc_not_zero(&xe->mem_access.ref)) {
> -               bool hold_rpm = xe_pm_runtime_resume_and_get(xe);
> -               int ref;
> -
> -               ref = atomic_inc_return(&xe->mem_access.ref);
> -               if (ref == 1)
> -                       xe->mem_access.hold_rpm = hold_rpm;
> -               else
> -                       xe_pm_runtime_put(xe);
> -       } else {
> -               XE_WARN_ON(atomic_read(&xe->mem_access.ref) == S32_MAX);
> -       }
> +       xe_pm_runtime_resume_and_get(xe);
> +       ref = atomic_inc_return(&xe->mem_access.ref);
> +       XE_WARN_ON(ref == S32_MAX);
IMO this is simple and better.
> 
>          lock_map_release(&xe_device_mem_access_lockdep_map);
>   }
> @@ -489,8 +480,7 @@ void xe_device_mem_access_put(struct xe_device
> *xe)
>                  return;
> 
>          ref = atomic_dec_return(&xe->mem_access.ref);
> -       if (ref == 0 && xe->mem_access.hold_rpm)
> -               xe_pm_runtime_put(xe);
> +       xe_pm_runtime_put(xe);
> 
> 
> And then also remove hold_rpm stuff. But either way there is still the big
> issue of what to do if the rpm get fails. If it fails as you say, the driver is still
> broken even with the above.
AFAIU we can't bail out from such a state , printing a kernel Error will suffice here.
Referring runtime documentation, 
* If the resume callback returns an error code, the PM core regards this as a
    fatal error and will refuse to run the helper functions described in Section
    4 for the device, until its status is directly set to either 'active', or
    'suspended' (by means of special helper functions provided by the PM core
    for this purpose).
*https://www.kernel.org/doc/Documentation/power/runtime_pm.txt
> 
> > That eventually provide access to PCI bar without RPM protection.
> > We should also check returned value from
> > xe_pm_runtime_resume_and_get() before calling
> > xe_pm_runtime_put() as pm_runtime_resume_and_get() also drops the
> > device usage count on error case.
> 
> So do we already know how we want to handle such failures from callers
> pov? Currently there is no return value for xe_device_mem_access_get(), so
> caller currently has zero clue, and any device access will be end badly
> anyway. But I wasn't really trying to solve that in this series.
There is no way to handle runtime  PM error, my comment was just about the 
nonessential xe_pm_runtime_put().
BR,
Anshuman Gupta.
> 
> Do we just want to return an error if access_get fails? If so handling the
> above becomes quite simple, with something like the following in
> xe_device_mem_access_get():
> 
> +       if (!xe_pm_runtime_resume_and_get(xe))
> +               return false;
> 
> > Br,
> > Anshuman Gupta.
> >>
> >>>>>> +    } else {
> >>>>>> +        XE_WARN_ON(atomic_read(&xe->mem_access.ref) ==
> S32_MAX);
> >>>>>> +    }
> >>>>>>    }
> >>>>>>    void xe_device_mem_access_put(struct xe_device *xe)
> >>>>>>    {
> >>>>>> -    bool hold = xe->mem_access.hold_rpm;
> >>>>>> -    int ref = atomic_dec_return(&xe->mem_access.ref);
> >>>>>> +    int ref;
> >>>>>> -    if (!ref && hold)
> >>>>>> +    if (xe_pm_read_callback_task(xe) == current)
> >>>>>> +        return;
> >>>>>> +
> >>>>>> +    ref = atomic_dec_return(&xe->mem_access.ref);
> >>>>>> +    if (ref == 0 && xe->mem_access.hold_rpm)
> >>>>>>            xe_pm_runtime_put(xe);
> >>>>>>        XE_WARN_ON(ref < 0);
> >>>>> /snip
> >>>>>> +
> >>>>>>    int xe_pm_runtime_suspend(struct xe_device *xe)
> >>>>>>    {
> >>>>>>        struct xe_gt *gt;
> >>>>>>        u8 id;
> >>>>>> -    int err;
> >>>>>> +    int err = 0;
> >>>>>> +
> >>>>>> +    if (xe->d3cold_allowed &&
> xe_device_mem_access_ongoing(xe))
> >>>>>> +        return -EBUSY;
> >>>>> Not related to this patch but We should return -EBUSY even for
> >>>>> d3hot as well.
> >>>>
> >>>> Looking at this again, access_ongoing is always going to be false
> >>>> here, right? On the 0 -> 1 transition we always do full sync pm get
> >>>> before increment mem_access.ref, so not sure if this check actually
> >>>> does anything.
> >>> I belive this is paranoid check against any unbalanced put.
> >>> Br,
> >>> Anshuman Gupta.
> >>>>
> >>>>> Br,
> >>>>> Anshuman Gupta
> >>>>>> +
> >>>>>> +    /* Disable access_ongoing asserts and prevent recursive pm
> >>>>>> calls */
> >>>>>> +    xe_pm_write_callback_task(xe, current);
> >>>>>>        if (xe->d3cold_allowed) {
> >>>>>> -        if (xe_device_mem_access_ongoing(xe))
> >>>>>> -            return -EBUSY;
> >>>>>> -
> >>>>>>            err = xe_bo_evict_all(xe);
> >>>>>>            if (err)
> >>>>>> -            return err;
> >>>>>> +            goto out;
> >>>>>>        }
> >>>>>>        for_each_gt(gt, xe, id) {
> >>>>>>            err = xe_gt_suspend(gt);
> >>>>>>            if (err)
> >>>>>> -            return err;
> >>>>>> +            goto out;
> >>>>>>        }
> >>>>>>        xe_irq_suspend(xe);
> >>>>>> -
> >>>>>> -    return 0;
> >>>>>> +out:
> >>>>>> +    xe_pm_write_callback_task(xe, NULL);
> >>>>>> +    return err;
> >>>>>>    }
> >>>>>>    int xe_pm_runtime_resume(struct xe_device *xe)
> >>>>>>    {
> >>>>>>        struct xe_gt *gt;
> >>>>>>        u8 id;
> >>>>>> -    int err;
> >>>>>> +    int err = 0;
> >>>>>> +
> >>>>>> +    /* Disable access_ongoing asserts and prevent recursive pm
> >>>>>> calls */
> >>>>>> +    xe_pm_write_callback_task(xe, current);
> >>>>>>        if (xe->d3cold_allowed) {
> >>>>>>            for_each_gt(gt, xe, id) {
> >>>>>>                err = xe_pcode_init(gt);
> >>>>>>                if (err)
> >>>>>> -                return err;
> >>>>>> +                goto out;
> >>>>>>            }
> >>>>>>            /*
> >>>>>> @@ -182,7 +210,7 @@ int xe_pm_runtime_resume(struct
> xe_device
> >>>>>> *xe)
> >>>>>>             */
> >>>>>>            err = xe_bo_restore_kernel(xe);
> >>>>>>            if (err)
> >>>>>> -            return err;
> >>>>>> +            goto out;
> >>>>>>        }
> >>>>>>        xe_irq_resume(xe);
> >>>>>> @@ -193,10 +221,11 @@ int xe_pm_runtime_resume(struct
> xe_device
> >>>>>> *xe)
> >>>>>>        if (xe->d3cold_allowed) {
> >>>>>>            err = xe_bo_restore_user(xe);
> >>>>>>            if (err)
> >>>>>> -            return err;
> >>>>>> +            goto out;
> >>>>>>        }
> >>>>>> -
> >>>>>> -    return 0;
> >>>>>> +out:
> >>>>>> +    xe_pm_write_callback_task(xe, NULL);
> >>>>>> +    return err;
> >>>>>>    }
> >>>>>>    int xe_pm_runtime_get(struct xe_device *xe) @@ -210,14 +239,9
> >>>>>> @@ int xe_pm_runtime_put(struct xe_device *xe)
> >>>>>>        return pm_runtime_put_autosuspend(xe->drm.dev);
> >>>>>>    }
> >>>>>> -/* Return true if resume operation happened and usage count was
> >>>>>> increased */ -bool xe_pm_runtime_resume_if_suspended(struct
> >>>>>> xe_device *xe)
> >>>>>> +bool xe_pm_runtime_resume_and_get(struct xe_device *xe)
> >>>>>>    {
> >>>>>> -    /* In case we are suspended we need to immediately wake up
> >>>>>> */
> >>>>>> -    if (pm_runtime_suspended(xe->drm.dev))
> >>>>>> -        return !pm_runtime_resume_and_get(xe->drm.dev);
> >>>>>> -
> >>>>>> -    return false;
> >>>>>> +    return !pm_runtime_resume_and_get(xe->drm.dev);
> >>>>>>    }
> >>>>>>    int xe_pm_runtime_get_if_active(struct xe_device *xe) diff
> >>>>>> --git a/drivers/gpu/drm/xe/xe_pm.h
> b/drivers/gpu/drm/xe/xe_pm.h
> >>>>>> index
> >>>>>> 6a885585f653..e92c508d44b9 100644
> >>>>>> --- a/drivers/gpu/drm/xe/xe_pm.h
> >>>>>> +++ b/drivers/gpu/drm/xe/xe_pm.h
> >>>>>> @@ -19,7 +19,8 @@ int xe_pm_runtime_suspend(struct xe_device
> >>>>>> *xe);
> >>>>>>    int xe_pm_runtime_resume(struct xe_device *xe);
> >>>>>>    int xe_pm_runtime_get(struct xe_device *xe);
> >>>>>>    int xe_pm_runtime_put(struct xe_device *xe); -bool
> >>>>>> xe_pm_runtime_resume_if_suspended(struct xe_device *xe);
> >>>>>> +bool xe_pm_runtime_resume_and_get(struct xe_device *xe);
> >>>>>>    int xe_pm_runtime_get_if_active(struct xe_device *xe);
> >>>>>> +struct task_struct *xe_pm_read_callback_task(struct xe_device
> >>>>>> +*xe);
> >>>>>>    #endif

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

end of thread, other threads:[~2023-07-11 18:12 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-26 10:50 [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Matthew Auld
2023-06-26 10:50 ` [Intel-xe] [PATCH v12 01/13] drm/xe: fix xe_device_mem_access_get() races Matthew Auld
2023-06-30 15:22   ` Gupta, Anshuman
2023-07-04 11:25     ` Matthew Auld
2023-07-04 15:29       ` Gupta, Anshuman
2023-07-04 16:00         ` Matthew Auld
2023-07-11  9:00           ` Gupta, Anshuman
2023-07-11 11:06             ` Matthew Auld
2023-07-11 17:56               ` Gupta, Anshuman
2023-06-26 10:50 ` [Intel-xe] [PATCH v12 02/13] drm/xe/vm: tidy up xe_runtime_pm usage Matthew Auld
2023-06-26 10:50 ` [Intel-xe] [PATCH v12 03/13] drm/xe/debugfs: grab mem_access around forcewake Matthew Auld
2023-06-26 10:50 ` [Intel-xe] [PATCH v12 04/13] drm/xe/guc_pc: add missing mem_access for freq_rpe_show Matthew Auld
2023-06-27  6:53   ` Gupta, Anshuman
2023-06-27  8:20     ` Matthew Auld
2023-06-27 10:14       ` Gupta, Anshuman
2023-06-26 10:50 ` [Intel-xe] [PATCH v12 05/13] drm/xe/mmio: grab mem_access in xe_mmio_ioctl Matthew Auld
2023-06-26 10:50 ` [Intel-xe] [PATCH v12 06/13] drm/xe: ensure correct access_put ordering Matthew Auld
2023-06-26 10:50 ` [Intel-xe] [PATCH v12 07/13] drm/xe/pci: wrap probe with mem_access Matthew Auld
2023-06-26 10:50 ` [Intel-xe] [PATCH v12 08/13] drm/xe/display: use mem_access underneath Matthew Auld
2023-06-28  9:51   ` Gupta, Anshuman
2023-06-29  9:19     ` Matthew Auld
2023-06-26 10:50 ` [Intel-xe] [PATCH v12 09/13] drm/xe/mmio: enforce xe_device_assert_mem_access Matthew Auld
2023-06-26 10:50 ` [Intel-xe] [PATCH v12 10/13] drm/xe: drop xe_device_mem_access_get() from guc_ct_send Matthew Auld
2023-06-26 10:50 ` [Intel-xe] [PATCH v12 11/13] drm/xe/ggtt: prime ggtt->lock against FS_RECLAIM Matthew Auld
2023-06-26 10:50 ` [Intel-xe] [PATCH v12 12/13] drm/xe: drop xe_device_mem_access_get() from invalidation_vma Matthew Auld
2023-06-26 10:50 ` [Intel-xe] [PATCH v12 13/13] drm/xe: add lockdep annotation for xe_device_mem_access_get() Matthew Auld
2023-06-26 12:55 ` [Intel-xe] ✓ CI.Patch_applied: success for xe_device_mem_access fixes and related bits (rev2) Patchwork
2023-06-26 12:56 ` [Intel-xe] ✗ CI.checkpatch: warning " Patchwork
2023-06-26 12:57 ` [Intel-xe] ✓ CI.KUnit: success " Patchwork
2023-06-26 13:01 ` [Intel-xe] ✓ CI.Build: " Patchwork
2023-06-26 13:01 ` [Intel-xe] ✓ CI.Hooks: " Patchwork
2023-06-26 13:02 ` [Intel-xe] ✓ CI.checksparse: " Patchwork
2023-06-26 13:46 ` [Intel-xe] ○ CI.BAT: info " Patchwork
2023-06-30  6:21 ` [Intel-xe] [PATCH v12 00/13] xe_device_mem_access fixes and related bits Dixit, Ashutosh
2023-06-30 11:07   ` Matthew Auld
2023-06-30 16:59     ` Dixit, Ashutosh

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.