* [Intel-xe] [PATCH v2 0/2] drm/xe: switch to using drm_exec
@ 2023-07-13 13:17 Francois Dugast
2023-07-13 13:17 ` [Intel-xe] [PATCH v2 1/2] drm: execution context for GEM buffers v7 Francois Dugast
` (7 more replies)
0 siblings, 8 replies; 14+ messages in thread
From: Francois Dugast @ 2023-07-13 13:17 UTC (permalink / raw)
To: intel-xe; +Cc: Francois Dugast, christian.koenig
Make Xe use drm_exec (execution context for GEM buffers v7) which was just merged to drm-misc-next.
Christian König (1):
drm: execution context for GEM buffers v7
Francois Dugast (1):
drm/xe: switch to using drm_exec
Documentation/gpu/drm-mm.rst | 12 +
drivers/gpu/drm/Kconfig | 6 +
drivers/gpu/drm/Makefile | 2 +
drivers/gpu/drm/drm_exec.c | 333 +++++++++++++++++++++++++++
drivers/gpu/drm/xe/Kconfig | 1 +
drivers/gpu/drm/xe/xe_bo.c | 29 ++-
drivers/gpu/drm/xe/xe_bo_types.h | 1 -
drivers/gpu/drm/xe/xe_exec.c | 30 +--
drivers/gpu/drm/xe/xe_gt_pagefault.c | 55 +----
drivers/gpu/drm/xe/xe_vm.c | 246 ++++++++++----------
drivers/gpu/drm/xe/xe_vm.h | 32 +--
include/drm/drm_exec.h | 123 ++++++++++
12 files changed, 644 insertions(+), 226 deletions(-)
create mode 100644 drivers/gpu/drm/drm_exec.c
create mode 100644 include/drm/drm_exec.h
--
2.34.1
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Intel-xe] [PATCH v2 1/2] drm: execution context for GEM buffers v7
2023-07-13 13:17 [Intel-xe] [PATCH v2 0/2] drm/xe: switch to using drm_exec Francois Dugast
@ 2023-07-13 13:17 ` Francois Dugast
2023-07-13 13:17 ` [Intel-xe] [PATCH v2 2/2] drm/xe: switch to using drm_exec Francois Dugast
` (6 subsequent siblings)
7 siblings, 0 replies; 14+ messages in thread
From: Francois Dugast @ 2023-07-13 13:17 UTC (permalink / raw)
To: intel-xe
Cc: Alex Deucher, Boris Brezillon, Danilo Krummrich, christian.koenig
From: Christian König <christian.koenig@amd.com>
This adds the infrastructure for an execution context for GEM buffers
which is similar to the existing TTMs execbuf util and intended to replace
it in the long term.
The basic functionality is that we abstracts the necessary loop to lock
many different GEM buffers with automated deadlock and duplicate handling.
v2: drop xarray and use dynamic resized array instead, the locking
overhead is unnecessary and measurable.
v3: drop duplicate tracking, radeon is really the only one needing that.
v4: fixes issues pointed out by Danilo, some typos in comments and a
helper for lock arrays of GEM objects.
v5: some suggestions by Boris Brezillon, especially just use one retry
macro, drop loop in prepare_array, use flags instead of bool
v6: minor changes suggested by Thomas, Boris and Danilo
v7: minor typos pointed out by checkpatch.pl fixed
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Danilo Krummrich <dakr@redhat.com>
Tested-by: Danilo Krummrich <dakr@redhat.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230711133122.3710-2-christian.koenig@amd.com
---
Documentation/gpu/drm-mm.rst | 12 ++
drivers/gpu/drm/Kconfig | 6 +
drivers/gpu/drm/Makefile | 2 +
drivers/gpu/drm/drm_exec.c | 333 +++++++++++++++++++++++++++++++++++
include/drm/drm_exec.h | 123 +++++++++++++
5 files changed, 476 insertions(+)
create mode 100644 drivers/gpu/drm/drm_exec.c
create mode 100644 include/drm/drm_exec.h
diff --git a/Documentation/gpu/drm-mm.rst b/Documentation/gpu/drm-mm.rst
index b21df6ce9fcb..3d5dc9dc1bfe 100644
--- a/Documentation/gpu/drm-mm.rst
+++ b/Documentation/gpu/drm-mm.rst
@@ -529,6 +529,18 @@ DRM Sync Objects
.. kernel-doc:: drivers/gpu/drm/drm_syncobj.c
:export:
+DRM Execution context
+=====================
+
+.. kernel-doc:: drivers/gpu/drm/drm_exec.c
+ :doc: Overview
+
+.. kernel-doc:: include/drm/drm_exec.h
+ :internal:
+
+.. kernel-doc:: drivers/gpu/drm/drm_exec.c
+ :export:
+
GPU Scheduler
=============
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig
index 8eeaa202e8ac..6016987c6ab9 100644
--- a/drivers/gpu/drm/Kconfig
+++ b/drivers/gpu/drm/Kconfig
@@ -194,6 +194,12 @@ config DRM_TTM
GPU memory types. Will be enabled automatically if a device driver
uses it.
+config DRM_EXEC
+ tristate
+ depends on DRM
+ help
+ Execution context for command submissions
+
config DRM_BUDDY
tristate
depends on DRM
diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile
index 90ee955ef4d1..3032059bf8bf 100644
--- a/drivers/gpu/drm/Makefile
+++ b/drivers/gpu/drm/Makefile
@@ -79,6 +79,8 @@ obj-$(CONFIG_DRM_PANEL_ORIENTATION_QUIRKS) += drm_panel_orientation_quirks.o
#
# Memory-management helpers
#
+#
+obj-$(CONFIG_DRM_EXEC) += drm_exec.o
obj-$(CONFIG_DRM_BUDDY) += drm_buddy.o
diff --git a/drivers/gpu/drm/drm_exec.c b/drivers/gpu/drm/drm_exec.c
new file mode 100644
index 000000000000..ff69cf0fb42a
--- /dev/null
+++ b/drivers/gpu/drm/drm_exec.c
@@ -0,0 +1,333 @@
+// SPDX-License-Identifier: GPL-2.0 OR MIT
+
+#include <drm/drm_exec.h>
+#include <drm/drm_gem.h>
+#include <linux/dma-resv.h>
+
+/**
+ * DOC: Overview
+ *
+ * This component mainly abstracts the retry loop necessary for locking
+ * multiple GEM objects while preparing hardware operations (e.g. command
+ * submissions, page table updates etc..).
+ *
+ * If a contention is detected while locking a GEM object the cleanup procedure
+ * unlocks all previously locked GEM objects and locks the contended one first
+ * before locking any further objects.
+ *
+ * After an object is locked fences slots can optionally be reserved on the
+ * dma_resv object inside the GEM object.
+ *
+ * A typical usage pattern should look like this::
+ *
+ * struct drm_gem_object *obj;
+ * struct drm_exec exec;
+ * unsigned long index;
+ * int ret;
+ *
+ * drm_exec_init(&exec, DRM_EXEC_INTERRUPTIBLE_WAIT);
+ * drm_exec_until_all_locked(&exec) {
+ * ret = drm_exec_prepare_obj(&exec, boA, 1);
+ * drm_exec_retry_on_contention(&exec);
+ * if (ret)
+ * goto error;
+ *
+ * ret = drm_exec_prepare_obj(&exec, boB, 1);
+ * drm_exec_retry_on_contention(&exec);
+ * if (ret)
+ * goto error;
+ * }
+ *
+ * drm_exec_for_each_locked_object(&exec, index, obj) {
+ * dma_resv_add_fence(obj->resv, fence, DMA_RESV_USAGE_READ);
+ * ...
+ * }
+ * drm_exec_fini(&exec);
+ *
+ * See struct dma_exec for more details.
+ */
+
+/* Dummy value used to initially enter the retry loop */
+#define DRM_EXEC_DUMMY ((void *)~0)
+
+/* Unlock all objects and drop references */
+static void drm_exec_unlock_all(struct drm_exec *exec)
+{
+ struct drm_gem_object *obj;
+ unsigned long index;
+
+ drm_exec_for_each_locked_object(exec, index, obj) {
+ dma_resv_unlock(obj->resv);
+ drm_gem_object_put(obj);
+ }
+
+ drm_gem_object_put(exec->prelocked);
+ exec->prelocked = NULL;
+}
+
+/**
+ * drm_exec_init - initialize a drm_exec object
+ * @exec: the drm_exec object to initialize
+ * @flags: controls locking behavior, see DRM_EXEC_* defines
+ *
+ * Initialize the object and make sure that we can track locked objects.
+ */
+void drm_exec_init(struct drm_exec *exec, uint32_t flags)
+{
+ exec->flags = flags;
+ exec->objects = kmalloc(PAGE_SIZE, GFP_KERNEL);
+
+ /* If allocation here fails, just delay that till the first use */
+ exec->max_objects = exec->objects ? PAGE_SIZE / sizeof(void *) : 0;
+ exec->num_objects = 0;
+ exec->contended = DRM_EXEC_DUMMY;
+ exec->prelocked = NULL;
+}
+EXPORT_SYMBOL(drm_exec_init);
+
+/**
+ * drm_exec_fini - finalize a drm_exec object
+ * @exec: the drm_exec object to finalize
+ *
+ * Unlock all locked objects, drop the references to objects and free all memory
+ * used for tracking the state.
+ */
+void drm_exec_fini(struct drm_exec *exec)
+{
+ drm_exec_unlock_all(exec);
+ kvfree(exec->objects);
+ if (exec->contended != DRM_EXEC_DUMMY) {
+ drm_gem_object_put(exec->contended);
+ ww_acquire_fini(&exec->ticket);
+ }
+}
+EXPORT_SYMBOL(drm_exec_fini);
+
+/**
+ * drm_exec_cleanup - cleanup when contention is detected
+ * @exec: the drm_exec object to cleanup
+ *
+ * Cleanup the current state and return true if we should stay inside the retry
+ * loop, false if there wasn't any contention detected and we can keep the
+ * objects locked.
+ */
+bool drm_exec_cleanup(struct drm_exec *exec)
+{
+ if (likely(!exec->contended)) {
+ ww_acquire_done(&exec->ticket);
+ return false;
+ }
+
+ if (likely(exec->contended == DRM_EXEC_DUMMY)) {
+ exec->contended = NULL;
+ ww_acquire_init(&exec->ticket, &reservation_ww_class);
+ return true;
+ }
+
+ drm_exec_unlock_all(exec);
+ exec->num_objects = 0;
+ return true;
+}
+EXPORT_SYMBOL(drm_exec_cleanup);
+
+/* Track the locked object in the array */
+static int drm_exec_obj_locked(struct drm_exec *exec,
+ struct drm_gem_object *obj)
+{
+ if (unlikely(exec->num_objects == exec->max_objects)) {
+ size_t size = exec->max_objects * sizeof(void *);
+ void *tmp;
+
+ tmp = kvrealloc(exec->objects, size, size + PAGE_SIZE,
+ GFP_KERNEL);
+ if (!tmp)
+ return -ENOMEM;
+
+ exec->objects = tmp;
+ exec->max_objects += PAGE_SIZE / sizeof(void *);
+ }
+ drm_gem_object_get(obj);
+ exec->objects[exec->num_objects++] = obj;
+
+ return 0;
+}
+
+/* Make sure the contended object is locked first */
+static int drm_exec_lock_contended(struct drm_exec *exec)
+{
+ struct drm_gem_object *obj = exec->contended;
+ int ret;
+
+ if (likely(!obj))
+ return 0;
+
+ /* Always cleanup the contention so that error handling can kick in */
+ exec->contended = NULL;
+ if (exec->flags & DRM_EXEC_INTERRUPTIBLE_WAIT) {
+ ret = dma_resv_lock_slow_interruptible(obj->resv,
+ &exec->ticket);
+ if (unlikely(ret))
+ goto error_dropref;
+ } else {
+ dma_resv_lock_slow(obj->resv, &exec->ticket);
+ }
+
+ ret = drm_exec_obj_locked(exec, obj);
+ if (unlikely(ret))
+ goto error_unlock;
+
+ exec->prelocked = obj;
+ return 0;
+
+error_unlock:
+ dma_resv_unlock(obj->resv);
+
+error_dropref:
+ drm_gem_object_put(obj);
+ return ret;
+}
+
+/**
+ * drm_exec_lock_obj - lock a GEM object for use
+ * @exec: the drm_exec object with the state
+ * @obj: the GEM object to lock
+ *
+ * Lock a GEM object for use and grab a reference to it.
+ *
+ * Returns: -EDEADLK if a contention is detected, -EALREADY when object is
+ * already locked (can be suppressed by setting the DRM_EXEC_IGNORE_DUPLICATES
+ * flag), -ENOMEM when memory allocation failed and zero for success.
+ */
+int drm_exec_lock_obj(struct drm_exec *exec, struct drm_gem_object *obj)
+{
+ int ret;
+
+ ret = drm_exec_lock_contended(exec);
+ if (unlikely(ret))
+ return ret;
+
+ if (exec->prelocked == obj) {
+ drm_gem_object_put(exec->prelocked);
+ exec->prelocked = NULL;
+ return 0;
+ }
+
+ if (exec->flags & DRM_EXEC_INTERRUPTIBLE_WAIT)
+ ret = dma_resv_lock_interruptible(obj->resv, &exec->ticket);
+ else
+ ret = dma_resv_lock(obj->resv, &exec->ticket);
+
+ if (unlikely(ret == -EDEADLK)) {
+ drm_gem_object_get(obj);
+ exec->contended = obj;
+ return -EDEADLK;
+ }
+
+ if (unlikely(ret == -EALREADY) &&
+ exec->flags & DRM_EXEC_IGNORE_DUPLICATES)
+ return 0;
+
+ if (unlikely(ret))
+ return ret;
+
+ ret = drm_exec_obj_locked(exec, obj);
+ if (ret)
+ goto error_unlock;
+
+ return 0;
+
+error_unlock:
+ dma_resv_unlock(obj->resv);
+ return ret;
+}
+EXPORT_SYMBOL(drm_exec_lock_obj);
+
+/**
+ * drm_exec_unlock_obj - unlock a GEM object in this exec context
+ * @exec: the drm_exec object with the state
+ * @obj: the GEM object to unlock
+ *
+ * Unlock the GEM object and remove it from the collection of locked objects.
+ * Should only be used to unlock the most recently locked objects. It's not time
+ * efficient to unlock objects locked long ago.
+ */
+void drm_exec_unlock_obj(struct drm_exec *exec, struct drm_gem_object *obj)
+{
+ unsigned int i;
+
+ for (i = exec->num_objects; i--;) {
+ if (exec->objects[i] == obj) {
+ dma_resv_unlock(obj->resv);
+ for (++i; i < exec->num_objects; ++i)
+ exec->objects[i - 1] = exec->objects[i];
+ --exec->num_objects;
+ drm_gem_object_put(obj);
+ return;
+ }
+
+ }
+}
+EXPORT_SYMBOL(drm_exec_unlock_obj);
+
+/**
+ * drm_exec_prepare_obj - prepare a GEM object for use
+ * @exec: the drm_exec object with the state
+ * @obj: the GEM object to prepare
+ * @num_fences: how many fences to reserve
+ *
+ * Prepare a GEM object for use by locking it and reserving fence slots.
+ *
+ * Returns: -EDEADLK if a contention is detected, -EALREADY when object is
+ * already locked, -ENOMEM when memory allocation failed and zero for success.
+ */
+int drm_exec_prepare_obj(struct drm_exec *exec, struct drm_gem_object *obj,
+ unsigned int num_fences)
+{
+ int ret;
+
+ ret = drm_exec_lock_obj(exec, obj);
+ if (ret)
+ return ret;
+
+ ret = dma_resv_reserve_fences(obj->resv, num_fences);
+ if (ret) {
+ drm_exec_unlock_obj(exec, obj);
+ return ret;
+ }
+
+ return 0;
+}
+EXPORT_SYMBOL(drm_exec_prepare_obj);
+
+/**
+ * drm_exec_prepare_array - helper to prepare an array of objects
+ * @exec: the drm_exec object with the state
+ * @objects: array of GEM object to prepare
+ * @num_objects: number of GEM objects in the array
+ * @num_fences: number of fences to reserve on each GEM object
+ *
+ * Prepares all GEM objects in an array, aborts on first error.
+ * Reserves @num_fences on each GEM object after locking it.
+ *
+ * Returns: -EDEADLOCK on contention, -EALREADY when object is already locked,
+ * -ENOMEM when memory allocation failed and zero for success.
+ */
+int drm_exec_prepare_array(struct drm_exec *exec,
+ struct drm_gem_object **objects,
+ unsigned int num_objects,
+ unsigned int num_fences)
+{
+ int ret;
+
+ for (unsigned int i = 0; i < num_objects; ++i) {
+ ret = drm_exec_prepare_obj(exec, objects[i], num_fences);
+ if (unlikely(ret))
+ return ret;
+ }
+
+ return 0;
+}
+EXPORT_SYMBOL(drm_exec_prepare_array);
+
+MODULE_DESCRIPTION("DRM execution context");
+MODULE_LICENSE("Dual MIT/GPL");
diff --git a/include/drm/drm_exec.h b/include/drm/drm_exec.h
new file mode 100644
index 000000000000..73205afec162
--- /dev/null
+++ b/include/drm/drm_exec.h
@@ -0,0 +1,123 @@
+/* SPDX-License-Identifier: GPL-2.0 OR MIT */
+
+#ifndef __DRM_EXEC_H__
+#define __DRM_EXEC_H__
+
+#include <linux/ww_mutex.h>
+
+#define DRM_EXEC_INTERRUPTIBLE_WAIT BIT(0)
+#define DRM_EXEC_IGNORE_DUPLICATES BIT(1)
+
+struct drm_gem_object;
+
+/**
+ * struct drm_exec - Execution context
+ */
+struct drm_exec {
+ /**
+ * @flags: Flags to control locking behavior
+ */
+ uint32_t flags;
+
+ /**
+ * @ticket: WW ticket used for acquiring locks
+ */
+ struct ww_acquire_ctx ticket;
+
+ /**
+ * @num_objects: number of objects locked
+ */
+ unsigned int num_objects;
+
+ /**
+ * @max_objects: maximum objects in array
+ */
+ unsigned int max_objects;
+
+ /**
+ * @objects: array of the locked objects
+ */
+ struct drm_gem_object **objects;
+
+ /**
+ * @contended: contended GEM object we backed off for
+ */
+ struct drm_gem_object *contended;
+
+ /**
+ * @prelocked: already locked GEM object due to contention
+ */
+ struct drm_gem_object *prelocked;
+};
+
+/**
+ * drm_exec_for_each_locked_object - iterate over all the locked objects
+ * @exec: drm_exec object
+ * @index: unsigned long index for the iteration
+ * @obj: the current GEM object
+ *
+ * Iterate over all the locked GEM objects inside the drm_exec object.
+ */
+#define drm_exec_for_each_locked_object(exec, index, obj) \
+ for (index = 0, obj = (exec)->objects[0]; \
+ index < (exec)->num_objects; \
+ ++index, obj = (exec)->objects[index])
+
+/**
+ * drm_exec_until_all_locked - loop until all GEM objects are locked
+ * @exec: drm_exec object
+ *
+ * Core functionality of the drm_exec object. Loops until all GEM objects are
+ * locked and no more contention exists. At the beginning of the loop it is
+ * guaranteed that no GEM object is locked.
+ *
+ * Since labels can't be defined local to the loops body we use a jump pointer
+ * to make sure that the retry is only used from within the loops body.
+ */
+#define drm_exec_until_all_locked(exec) \
+ for (void *__drm_exec_retry_ptr; ({ \
+ __label__ __drm_exec_retry; \
+__drm_exec_retry: \
+ __drm_exec_retry_ptr = &&__drm_exec_retry; \
+ (void)__drm_exec_retry_ptr; \
+ drm_exec_cleanup(exec); \
+ });)
+
+/**
+ * drm_exec_retry_on_contention - restart the loop to grap all locks
+ * @exec: drm_exec object
+ *
+ * Control flow helper to continue when a contention was detected and we need to
+ * clean up and re-start the loop to prepare all GEM objects.
+ */
+#define drm_exec_retry_on_contention(exec) \
+ do { \
+ if (unlikely(drm_exec_is_contended(exec))) \
+ goto *__drm_exec_retry_ptr; \
+ } while (0)
+
+/**
+ * drm_exec_is_contended - check for contention
+ * @exec: drm_exec object
+ *
+ * Returns true if the drm_exec object has run into some contention while
+ * locking a GEM object and needs to clean up.
+ */
+static inline bool drm_exec_is_contended(struct drm_exec *exec)
+{
+ return !!exec->contended;
+}
+
+void drm_exec_init(struct drm_exec *exec, uint32_t flags);
+void drm_exec_fini(struct drm_exec *exec);
+bool drm_exec_cleanup(struct drm_exec *exec);
+int drm_exec_lock_obj(struct drm_exec *exec, struct drm_gem_object *obj);
+void drm_exec_unlock_obj(struct drm_exec *exec, struct drm_gem_object *obj);
+int drm_exec_prepare_obj(struct drm_exec *exec, struct drm_gem_object *obj,
+ unsigned int num_fences);
+int drm_exec_prepare_array(struct drm_exec *exec,
+ struct drm_gem_object **objects,
+ unsigned int num_objects,
+ unsigned int num_fences);
+
+#endif
--
2.34.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Intel-xe] [PATCH v2 2/2] drm/xe: switch to using drm_exec
2023-07-13 13:17 [Intel-xe] [PATCH v2 0/2] drm/xe: switch to using drm_exec Francois Dugast
2023-07-13 13:17 ` [Intel-xe] [PATCH v2 1/2] drm: execution context for GEM buffers v7 Francois Dugast
@ 2023-07-13 13:17 ` Francois Dugast
2023-07-13 14:00 ` Matthew Brost
2023-07-13 14:18 ` [Intel-xe] ✓ CI.Patch_applied: success for " Patchwork
` (5 subsequent siblings)
7 siblings, 1 reply; 14+ messages in thread
From: Francois Dugast @ 2023-07-13 13:17 UTC (permalink / raw)
To: intel-xe; +Cc: Francois Dugast, christian.koenig
Replace the use of ttm_execbuf_util helpers with the drm_exec helpers.
v2:
- Call dma-resv locking functions directly in xe_bo_lock and
xe_vm_lock functions (Matthew Brost)
- Switch to execution context for GEM buffers v7 (Christian König)
- Use DRM_EXEC_INTERRUPTIBLE_WAIT
Signed-off-by: Francois Dugast <francois.dugast@intel.com>
---
drivers/gpu/drm/xe/Kconfig | 1 +
drivers/gpu/drm/xe/xe_bo.c | 29 +++-
drivers/gpu/drm/xe/xe_bo_types.h | 1 -
drivers/gpu/drm/xe/xe_exec.c | 30 +---
drivers/gpu/drm/xe/xe_gt_pagefault.c | 55 +-----
drivers/gpu/drm/xe/xe_vm.c | 246 +++++++++++++--------------
drivers/gpu/drm/xe/xe_vm.h | 32 ++--
7 files changed, 168 insertions(+), 226 deletions(-)
diff --git a/drivers/gpu/drm/xe/Kconfig b/drivers/gpu/drm/xe/Kconfig
index d44794f99338..b739faa401d3 100644
--- a/drivers/gpu/drm/xe/Kconfig
+++ b/drivers/gpu/drm/xe/Kconfig
@@ -8,6 +8,7 @@ config DRM_XE
select SHMEM
select TMPFS
select DRM_BUDDY
+ select DRM_EXEC
select DRM_KMS_HELPER
select DRM_PANEL
select DRM_SUBALLOC_HELPER
diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
index 6353afa8d846..aafe69ed4320 100644
--- a/drivers/gpu/drm/xe/xe_bo.c
+++ b/drivers/gpu/drm/xe/xe_bo.c
@@ -1806,17 +1806,32 @@ int xe_gem_mmap_offset_ioctl(struct drm_device *dev, void *data,
int xe_bo_lock(struct xe_bo *bo, struct ww_acquire_ctx *ww,
int num_resv, bool intr)
{
- struct ttm_validate_buffer tv_bo;
- LIST_HEAD(objs);
- LIST_HEAD(dups);
+ struct dma_resv *obj;
+ int err;
XE_BUG_ON(!ww);
- tv_bo.num_shared = num_resv;
- tv_bo.bo = &bo->ttm;;
- list_add_tail(&tv_bo.head, &objs);
+ obj = bo->ttm.base.resv;
+ ww_acquire_init(ww, &reservation_ww_class);
+
+ if (intr)
+ err = dma_resv_lock_interruptible(obj, ww);
+ else
+ err = dma_resv_lock(obj, ww);
+
+ if (unlikely(err))
+ return err;
+
+ num_resv = max(num_resv, 1);
+ err = dma_resv_reserve_fences(obj, num_resv);
+ if (err)
+ goto out_err;
- return ttm_eu_reserve_buffers(ww, &objs, intr, &dups);
+ return 0;
+
+out_err:
+ dma_resv_unlock(obj);
+ return err;
}
void xe_bo_unlock(struct xe_bo *bo, struct ww_acquire_ctx *ww)
diff --git a/drivers/gpu/drm/xe/xe_bo_types.h b/drivers/gpu/drm/xe/xe_bo_types.h
index f6ee920303af..bc67263c6713 100644
--- a/drivers/gpu/drm/xe/xe_bo_types.h
+++ b/drivers/gpu/drm/xe/xe_bo_types.h
@@ -11,7 +11,6 @@
#include <drm/drm_mm.h>
#include <drm/ttm/ttm_bo.h>
#include <drm/ttm/ttm_device.h>
-#include <drm/ttm/ttm_execbuf_util.h>
#include <drm/ttm/ttm_placement.h>
struct xe_device;
diff --git a/drivers/gpu/drm/xe/xe_exec.c b/drivers/gpu/drm/xe/xe_exec.c
index ba13d20ed348..32a6e16ec177 100644
--- a/drivers/gpu/drm/xe/xe_exec.c
+++ b/drivers/gpu/drm/xe/xe_exec.c
@@ -6,6 +6,7 @@
#include "xe_exec.h"
#include <drm/drm_device.h>
+#include <drm/drm_exec.h>
#include <drm/drm_file.h>
#include <drm/xe_drm.h>
#include <linux/delay.h>
@@ -95,23 +96,18 @@
#define XE_EXEC_BIND_RETRY_TIMEOUT_MS 1000
-static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
- struct ttm_validate_buffer tv_onstack[],
- struct ttm_validate_buffer **tv,
- struct list_head *objs)
+static int xe_exec_begin(struct xe_engine *e, struct drm_exec *exec)
{
struct xe_vm *vm = e->vm;
struct xe_vma *vma;
- LIST_HEAD(dups);
ktime_t end = 0;
int err = 0;
- *tv = NULL;
if (xe_vm_no_dma_fences(e->vm))
return 0;
retry:
- err = xe_vm_lock_dma_resv(vm, ww, tv_onstack, tv, objs, true, 1);
+ err = xe_vm_lock_dma_resv(vm, exec, true, 1);
if (err)
return err;
@@ -128,8 +124,7 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
err = xe_bo_validate(xe_vma_bo(vma), vm, false);
if (err) {
- xe_vm_unlock_dma_resv(vm, tv_onstack, *tv, ww, objs);
- *tv = NULL;
+ xe_vm_unlock_dma_resv(vm, exec);
break;
}
}
@@ -153,14 +148,10 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
return err;
}
-static void xe_exec_end(struct xe_engine *e,
- struct ttm_validate_buffer *tv_onstack,
- struct ttm_validate_buffer *tv,
- struct ww_acquire_ctx *ww,
- struct list_head *objs)
+static void xe_exec_end(struct xe_engine *e, struct drm_exec *exec)
{
if (!xe_vm_no_dma_fences(e->vm))
- xe_vm_unlock_dma_resv(e->vm, tv_onstack, tv, ww, objs);
+ xe_vm_unlock_dma_resv(e->vm, exec);
}
int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
@@ -173,14 +164,11 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
struct xe_engine *engine;
struct xe_sync_entry *syncs = NULL;
u64 addresses[XE_HW_ENGINE_MAX_INSTANCE];
- struct ttm_validate_buffer tv_onstack[XE_ONSTACK_TV];
- struct ttm_validate_buffer *tv = NULL;
u32 i, num_syncs = 0;
struct xe_sched_job *job;
struct dma_fence *rebind_fence;
struct xe_vm *vm;
- struct ww_acquire_ctx ww;
- struct list_head objs;
+ struct drm_exec exec;
bool write_locked;
int err = 0;
@@ -293,7 +281,7 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
goto err_unlock_list;
}
- err = xe_exec_begin(engine, &ww, tv_onstack, &tv, &objs);
+ err = xe_exec_begin(engine, &exec);
if (err)
goto err_unlock_list;
@@ -412,7 +400,7 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
if (err)
xe_sched_job_put(job);
err_engine_end:
- xe_exec_end(engine, tv_onstack, tv, &ww, &objs);
+ xe_exec_end(engine, &exec);
err_unlock_list:
if (write_locked)
up_write(&vm->lock);
diff --git a/drivers/gpu/drm/xe/xe_gt_pagefault.c b/drivers/gpu/drm/xe/xe_gt_pagefault.c
index 125e4744fa38..94f59c29ba9b 100644
--- a/drivers/gpu/drm/xe/xe_gt_pagefault.c
+++ b/drivers/gpu/drm/xe/xe_gt_pagefault.c
@@ -8,8 +8,8 @@
#include <linux/bitfield.h>
#include <linux/circ_buf.h>
+#include <drm/drm_exec.h>
#include <drm/drm_managed.h>
-#include <drm/ttm/ttm_execbuf_util.h>
#include "xe_bo.h"
#include "xe_gt.h"
@@ -84,11 +84,6 @@ static bool vma_matches(struct xe_vma *vma, u64 page_addr)
return true;
}
-static bool only_needs_bo_lock(struct xe_bo *bo)
-{
- return bo && bo->vm;
-}
-
static struct xe_vma *lookup_vma(struct xe_vm *vm, u64 page_addr)
{
struct xe_vma *vma = NULL;
@@ -110,10 +105,7 @@ static int handle_pagefault(struct xe_gt *gt, struct pagefault *pf)
struct xe_vm *vm;
struct xe_vma *vma = NULL;
struct xe_bo *bo;
- LIST_HEAD(objs);
- LIST_HEAD(dups);
- struct ttm_validate_buffer tv_bo, tv_vm;
- struct ww_acquire_ctx ww;
+ struct drm_exec exec;
struct dma_fence *fence;
bool write_locked;
int ret = 0;
@@ -171,20 +163,7 @@ static int handle_pagefault(struct xe_gt *gt, struct pagefault *pf)
/* Lock VM and BOs dma-resv */
bo = xe_vma_bo(vma);
- if (only_needs_bo_lock(bo)) {
- /* This path ensures the BO's LRU is updated */
- ret = xe_bo_lock(bo, &ww, xe->info.tile_count, false);
- } else {
- tv_vm.num_shared = xe->info.tile_count;
- tv_vm.bo = xe_vm_ttm_bo(vm);
- list_add(&tv_vm.head, &objs);
- if (bo) {
- tv_bo.bo = &bo->ttm;
- tv_bo.num_shared = xe->info.tile_count;
- list_add(&tv_bo.head, &objs);
- }
- ret = ttm_eu_reserve_buffers(&ww, &objs, false, &dups);
- }
+ ret = xe_vm_bo_lock(vm, bo, &exec, xe->info.tile_count, false);
if (ret)
goto unlock_vm;
@@ -227,10 +206,7 @@ static int handle_pagefault(struct xe_gt *gt, struct pagefault *pf)
vma->usm.tile_invalidated &= ~BIT(gt_to_tile(gt)->id);
unlock_dma_resv:
- if (only_needs_bo_lock(bo))
- xe_bo_unlock(bo, &ww);
- else
- ttm_eu_backoff_reservation(&ww, &objs);
+ xe_vm_bo_unlock(vm, bo, &exec, true);
unlock_vm:
if (!ret)
vm->usm.last_fault_vma = vma;
@@ -498,10 +474,7 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
struct xe_vm *vm;
struct xe_vma *vma;
struct xe_bo *bo;
- LIST_HEAD(objs);
- LIST_HEAD(dups);
- struct ttm_validate_buffer tv_bo, tv_vm;
- struct ww_acquire_ctx ww;
+ struct drm_exec exec;
int ret = 0;
/* We only support ACC_TRIGGER at the moment */
@@ -534,28 +507,14 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
/* Lock VM and BOs dma-resv */
bo = xe_vma_bo(vma);
- if (only_needs_bo_lock(bo)) {
- /* This path ensures the BO's LRU is updated */
- ret = xe_bo_lock(bo, &ww, xe->info.tile_count, false);
- } else {
- tv_vm.num_shared = xe->info.tile_count;
- tv_vm.bo = xe_vm_ttm_bo(vm);
- list_add(&tv_vm.head, &objs);
- tv_bo.bo = &bo->ttm;
- tv_bo.num_shared = xe->info.tile_count;
- list_add(&tv_bo.head, &objs);
- ret = ttm_eu_reserve_buffers(&ww, &objs, false, &dups);
- }
+ ret = xe_vm_bo_lock(vm, bo, &exec, xe->info.tile_count, false);
if (ret)
goto unlock_vm;
/* Migrate to VRAM, move should invalidate the VMA first */
ret = xe_bo_migrate(bo, XE_PL_VRAM0 + tile->id);
- if (only_needs_bo_lock(bo))
- xe_bo_unlock(bo, &ww);
- else
- ttm_eu_backoff_reservation(&ww, &objs);
+ xe_vm_bo_unlock(vm, bo, &exec, true);
unlock_vm:
up_read(&vm->lock);
xe_vm_put(vm);
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index 6c216350084b..c89b10d5feb5 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -7,8 +7,8 @@
#include <linux/dma-fence-array.h>
+#include <drm/drm_exec.h>
#include <drm/drm_print.h>
-#include <drm/ttm/ttm_execbuf_util.h>
#include <drm/ttm/ttm_tt.h>
#include <drm/xe_drm.h>
#include <linux/delay.h>
@@ -321,11 +321,8 @@ static void resume_and_reinstall_preempt_fences(struct xe_vm *vm)
int xe_vm_add_compute_engine(struct xe_vm *vm, struct xe_engine *e)
{
- struct ttm_validate_buffer tv_onstack[XE_ONSTACK_TV];
- struct ttm_validate_buffer *tv;
- struct ww_acquire_ctx ww;
- struct list_head objs;
struct dma_fence *pfence;
+ struct drm_exec exec;
int err;
bool wait;
@@ -333,7 +330,7 @@ int xe_vm_add_compute_engine(struct xe_vm *vm, struct xe_engine *e)
down_write(&vm->lock);
- err = xe_vm_lock_dma_resv(vm, &ww, tv_onstack, &tv, &objs, true, 1);
+ err = xe_vm_lock_dma_resv(vm, &exec, true, 1);
if (err)
goto out_unlock_outer;
@@ -367,7 +364,7 @@ int xe_vm_add_compute_engine(struct xe_vm *vm, struct xe_engine *e)
up_read(&vm->userptr.notifier_lock);
out_unlock:
- xe_vm_unlock_dma_resv(vm, tv_onstack, tv, &ww, &objs);
+ xe_vm_unlock_dma_resv(vm, &exec);
out_unlock_outer:
up_write(&vm->lock);
@@ -397,68 +394,43 @@ int __xe_vm_userptr_needs_repin(struct xe_vm *vm)
* xe_vm_lock_dma_resv() - Lock the vm dma_resv object and the dma_resv
* objects of the vm's external buffer objects.
* @vm: The vm.
- * @ww: Pointer to a struct ww_acquire_ctx locking context.
- * @tv_onstack: Array size XE_ONSTACK_TV of storage for the struct
- * ttm_validate_buffers used for locking.
- * @tv: Pointer to a pointer that on output contains the actual storage used.
- * @objs: List head for the buffer objects locked.
+ * @exec: Pointer to a struct drm_exec execution context.
* @intr: Whether to lock interruptible.
* @num_shared: Number of dma-fence slots to reserve in the locked objects.
*
* Locks the vm dma-resv objects and all the dma-resv objects of the
- * buffer objects on the vm external object list. The TTM utilities require
- * a list of struct ttm_validate_buffers pointing to the actual buffer
- * objects to lock. Storage for those struct ttm_validate_buffers should
- * be provided in @tv_onstack, and is typically reserved on the stack
- * of the caller. If the size of @tv_onstack isn't sufficient, then
- * storage will be allocated internally using kvmalloc().
+ * buffer objects on the vm external object list using helpers provided
+ * by drm_exec.
*
* The function performs deadlock handling internally, and after a
* successful return the ww locking transaction should be considered
* sealed.
*
- * Return: 0 on success, Negative error code on error. In particular if
- * @intr is set to true, -EINTR or -ERESTARTSYS may be returned. In case
- * of error, any locking performed has been reverted.
+ * Return: 0 on success, Negative error code on error.
*/
-int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
- struct ttm_validate_buffer *tv_onstack,
- struct ttm_validate_buffer **tv,
- struct list_head *objs,
- bool intr,
- unsigned int num_shared)
-{
- struct ttm_validate_buffer *tv_vm, *tv_bo;
+int xe_vm_lock_dma_resv(struct xe_vm *vm, struct drm_exec *exec,
+ bool intr, unsigned int num_shared)
+{
struct xe_vma *vma, *next;
- LIST_HEAD(dups);
+ struct drm_gem_object *obj;
int err;
lockdep_assert_held(&vm->lock);
- if (vm->extobj.entries < XE_ONSTACK_TV) {
- tv_vm = tv_onstack;
- } else {
- tv_vm = kvmalloc_array(vm->extobj.entries + 1, sizeof(*tv_vm),
- GFP_KERNEL);
- if (!tv_vm)
- return -ENOMEM;
+ drm_exec_init(exec, intr ? DRM_EXEC_INTERRUPTIBLE_WAIT : 0);
+ drm_exec_until_all_locked(exec) {
+ err = drm_exec_prepare_obj(exec, xe_vm_gem(vm), num_shared);
+ drm_exec_retry_on_contention(exec);
+ if (unlikely(err) && err != -EALREADY)
+ goto out_err;
+ list_for_each_entry(vma, &vm->extobj.list, extobj.link) {
+ obj = &xe_vma_bo(vma)->ttm.base;
+ err = drm_exec_prepare_obj(exec, obj, num_shared);
+ drm_exec_retry_on_contention(exec);
+ if (unlikely(err) && err != -EALREADY)
+ goto out_err;
+ }
}
- tv_bo = tv_vm + 1;
-
- INIT_LIST_HEAD(objs);
- list_for_each_entry(vma, &vm->extobj.list, extobj.link) {
- tv_bo->num_shared = num_shared;
- tv_bo->bo = &xe_vma_bo(vma)->ttm;
-
- list_add_tail(&tv_bo->head, objs);
- tv_bo++;
- }
- tv_vm->num_shared = num_shared;
- tv_vm->bo = xe_vm_ttm_bo(vm);
- list_add_tail(&tv_vm->head, objs);
- err = ttm_eu_reserve_buffers(ww, objs, intr, &dups);
- if (err)
- goto out_err;
spin_lock(&vm->notifier.list_lock);
list_for_each_entry_safe(vma, next, &vm->notifier.rebind_list,
@@ -470,14 +442,10 @@ int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
list_move_tail(&vma->rebind_link, &vm->rebind_list);
}
spin_unlock(&vm->notifier.list_lock);
-
- *tv = tv_vm;
return 0;
out_err:
- if (tv_vm != tv_onstack)
- kvfree(tv_vm);
-
+ drm_exec_fini(exec);
return err;
}
@@ -485,20 +453,16 @@ int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
* xe_vm_unlock_dma_resv() - Unlock reservation objects locked by
* xe_vm_lock_dma_resv()
* @vm: The vm.
- * @tv_onstack: The @tv_onstack array given to xe_vm_lock_dma_resv().
- * @tv: The value of *@tv given by xe_vm_lock_dma_resv().
- * @ww: The ww_acquire_context used for locking.
- * @objs: The list returned from xe_vm_lock_dma_resv().
+ * @exec: The @drm_exec given to xe_vm_lock_dma_resv().
*
* Unlocks the reservation objects and frees any memory allocated by
* xe_vm_lock_dma_resv().
*/
-void xe_vm_unlock_dma_resv(struct xe_vm *vm,
- struct ttm_validate_buffer *tv_onstack,
- struct ttm_validate_buffer *tv,
- struct ww_acquire_ctx *ww,
- struct list_head *objs)
+void xe_vm_unlock_dma_resv(struct xe_vm *vm, struct drm_exec *exec)
{
+ struct drm_gem_object *obj, *skip = xe_vm_gem(vm);
+ unsigned long index;
+
/*
* Nothing should've been able to enter the list while we were locked,
* since we've held the dma-resvs of all the vm's external objects,
@@ -507,9 +471,13 @@ void xe_vm_unlock_dma_resv(struct xe_vm *vm,
*/
XE_WARN_ON(!list_empty(&vm->notifier.rebind_list));
- ttm_eu_backoff_reservation(ww, objs);
- if (tv && tv != tv_onstack)
- kvfree(tv);
+ drm_exec_for_each_locked_object(exec, index, obj) {
+ struct xe_bo *bo = gem_to_xe_bo(obj);
+
+ if (obj != skip)
+ ttm_bo_move_to_lru_tail_unlocked(&bo->ttm);
+ }
+ drm_exec_fini(exec);
}
#define XE_VM_REBIND_RETRY_TIMEOUT_MS 1000
@@ -536,10 +504,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
{
struct xe_vm *vm = container_of(w, struct xe_vm, preempt.rebind_work);
struct xe_vma *vma;
- struct ttm_validate_buffer tv_onstack[XE_ONSTACK_TV];
- struct ttm_validate_buffer *tv;
- struct ww_acquire_ctx ww;
- struct list_head objs;
+ struct drm_exec exec;
struct dma_fence *rebind_fence;
unsigned int fence_count = 0;
LIST_HEAD(preempt_fences);
@@ -582,8 +547,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
goto out_unlock_outer;
}
- err = xe_vm_lock_dma_resv(vm, &ww, tv_onstack, &tv, &objs,
- false, vm->preempt.num_engines);
+ err = xe_vm_lock_dma_resv(vm, &exec, false, vm->preempt.num_engines);
if (err)
goto out_unlock_outer;
@@ -662,7 +626,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
up_read(&vm->userptr.notifier_lock);
out_unlock:
- xe_vm_unlock_dma_resv(vm, tv_onstack, tv, &ww, &objs);
+ xe_vm_unlock_dma_resv(vm, &exec);
out_unlock_outer:
if (err == -EAGAIN) {
trace_xe_vm_rebind_worker_retry(vm);
@@ -1105,27 +1069,17 @@ static void xe_vma_destroy(struct xe_vma *vma, struct dma_fence *fence)
static void xe_vma_destroy_unlocked(struct xe_vma *vma)
{
- struct ttm_validate_buffer tv[2];
- struct ww_acquire_ctx ww;
+ struct xe_vm *vm = xe_vma_vm(vma);
struct xe_bo *bo = xe_vma_bo(vma);
- LIST_HEAD(objs);
- LIST_HEAD(dups);
+ struct drm_exec exec;
int err;
- memset(tv, 0, sizeof(tv));
- tv[0].bo = xe_vm_ttm_bo(xe_vma_vm(vma));
- list_add(&tv[0].head, &objs);
-
- if (bo) {
- tv[1].bo = &xe_bo_get(bo)->ttm;
- list_add(&tv[1].head, &objs);
- }
- err = ttm_eu_reserve_buffers(&ww, &objs, false, &dups);
+ err = xe_vm_bo_lock(vm, xe_bo_get(bo), &exec, 0, false);
XE_WARN_ON(err);
xe_vma_destroy(vma, NULL);
- ttm_eu_backoff_reservation(&ww, &objs);
+ xe_vm_bo_unlock(vm, bo, &exec, false);
if (bo)
xe_bo_put(bo);
}
@@ -2125,21 +2079,6 @@ static int xe_vm_prefetch(struct xe_vm *vm, struct xe_vma *vma,
#define VM_BIND_OP(op) (op & 0xffff)
-struct ttm_buffer_object *xe_vm_ttm_bo(struct xe_vm *vm)
-{
- int idx = vm->flags & XE_VM_FLAG_MIGRATION ?
- XE_VM_FLAG_GT_ID(vm->flags) : 0;
-
- /* Safe to use index 0 as all BO in the VM share a single dma-resv lock */
- return &vm->pt_root[idx]->bo->ttm;
-}
-
-static void xe_vm_tv_populate(struct xe_vm *vm, struct ttm_validate_buffer *tv)
-{
- tv->num_shared = 1;
- tv->bo = xe_vm_ttm_bo(vm);
-}
-
static void vm_set_async_error(struct xe_vm *vm, int err)
{
lockdep_assert_held(&vm->lock);
@@ -2577,17 +2516,12 @@ static int xe_vma_op_commit(struct xe_vm *vm, struct xe_vma_op *op)
static int __xe_vma_op_execute(struct xe_vm *vm, struct xe_vma *vma,
struct xe_vma_op *op)
{
- LIST_HEAD(objs);
- LIST_HEAD(dups);
- struct ttm_validate_buffer tv_bo, tv_vm;
- struct ww_acquire_ctx ww;
struct xe_bo *vbo;
+ struct drm_exec exec;
int err;
lockdep_assert_held_write(&vm->lock);
- xe_vm_tv_populate(vm, &tv_vm);
- list_add_tail(&tv_vm.head, &objs);
vbo = xe_vma_bo(vma);
if (vbo) {
/*
@@ -2596,16 +2530,10 @@ static int __xe_vma_op_execute(struct xe_vm *vm, struct xe_vma *vma,
* take a reference here.
*/
xe_bo_get(vbo);
-
- if (!vbo->vm) {
- tv_bo.bo = &vbo->ttm;
- tv_bo.num_shared = 1;
- list_add(&tv_bo.head, &objs);
- }
}
again:
- err = ttm_eu_reserve_buffers(&ww, &objs, true, &dups);
+ err = xe_vm_bo_lock(vm, vbo, &exec, 1, true);
if (err) {
xe_bo_put(vbo);
return err;
@@ -2687,7 +2615,7 @@ static int __xe_vma_op_execute(struct xe_vm *vm, struct xe_vma *vma,
XE_BUG_ON("NOT POSSIBLE");
}
- ttm_eu_backoff_reservation(&ww, &objs);
+ xe_vm_bo_unlock(vm, vbo, &exec, false);
if (err == -EAGAIN && xe_vma_is_userptr(vma)) {
lockdep_assert_held_write(&vm->lock);
err = xe_vma_userptr_pin_pages(vma);
@@ -3338,24 +3266,47 @@ int xe_vm_bind_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
return err == -ENODATA ? 0 : err;
}
+struct drm_gem_object *xe_vm_gem(struct xe_vm *vm)
+{
+ int idx = vm->flags & XE_VM_FLAG_MIGRATION ?
+ XE_VM_FLAG_GT_ID(vm->flags) : 0;
+
+ /* Safe to use index 0 as all BO in the VM share a single dma-resv lock */
+ return &vm->pt_root[idx]->bo->ttm.base;
+}
+
/*
- * XXX: Using the TTM wrappers for now, likely can call into dma-resv code
- * directly to optimize. Also this likely should be an inline function.
+ * XXX: This likely should be an inline function.
*/
int xe_vm_lock(struct xe_vm *vm, struct ww_acquire_ctx *ww,
int num_resv, bool intr)
{
- struct ttm_validate_buffer tv_vm;
- LIST_HEAD(objs);
- LIST_HEAD(dups);
+ struct dma_resv *obj;
+ int err;
XE_BUG_ON(!ww);
- tv_vm.num_shared = num_resv;
- tv_vm.bo = xe_vm_ttm_bo(vm);;
- list_add_tail(&tv_vm.head, &objs);
+ obj = xe_vm_gem(vm)->resv;
+ ww_acquire_init(ww, &reservation_ww_class);
+
+ if (intr)
+ err = dma_resv_lock_interruptible(obj, ww);
+ else
+ err = dma_resv_lock(obj, ww);
+
+ if (unlikely(err))
+ return err;
+
+ num_resv = max(num_resv, 1);
+ err = dma_resv_reserve_fences(obj, num_resv);
+ if (err)
+ goto out_err;
- return ttm_eu_reserve_buffers(ww, &objs, intr, &dups);
+ return 0;
+
+out_err:
+ dma_resv_unlock(&vm->resv);
+ return err;
}
void xe_vm_unlock(struct xe_vm *vm, struct ww_acquire_ctx *ww)
@@ -3364,6 +3315,43 @@ void xe_vm_unlock(struct xe_vm *vm, struct ww_acquire_ctx *ww)
ww_acquire_fini(ww);
}
+int xe_vm_bo_lock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
+ int num_resv, bool intr)
+{
+ int err;
+
+ drm_exec_init(exec, intr ? DRM_EXEC_INTERRUPTIBLE_WAIT : 0);
+ drm_exec_until_all_locked(exec) {
+ err = drm_exec_prepare_obj(exec, xe_vm_gem(vm),
+ num_resv);
+ drm_exec_retry_on_contention(exec);
+ if (err && err != -EALREADY)
+ goto out_err;
+
+ if (bo && !bo->vm) {
+ err = drm_exec_prepare_obj(exec, &bo->ttm.base,
+ num_resv);
+ drm_exec_retry_on_contention(exec);
+ if (err && err != -EALREADY)
+ goto out_err;
+ }
+ }
+
+ return 0;
+
+out_err:
+ drm_exec_fini(exec);
+ return err;
+}
+
+void xe_vm_bo_unlock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
+ bool lru_update)
+{
+ if (lru_update && bo && (!bo->vm || xe_vm_no_dma_fences(vm)))
+ ttm_bo_move_to_lru_tail_unlocked(&bo->ttm);
+ drm_exec_fini(exec);
+}
+
/**
* xe_vm_invalidate_vma - invalidate GPU mappings for VMA without a lock
* @vma: VMA to invalidate
diff --git a/drivers/gpu/drm/xe/xe_vm.h b/drivers/gpu/drm/xe/xe_vm.h
index eaf11ac8ff51..62a062bd5078 100644
--- a/drivers/gpu/drm/xe/xe_vm.h
+++ b/drivers/gpu/drm/xe/xe_vm.h
@@ -12,6 +12,7 @@
#include "xe_vm_types.h"
struct drm_device;
+struct drm_exec;
struct drm_printer;
struct drm_file;
@@ -39,11 +40,17 @@ static inline void xe_vm_put(struct xe_vm *vm)
kref_put(&vm->refcount, xe_vm_free);
}
+struct drm_gem_object *xe_vm_gem(struct xe_vm *vm);
+
int xe_vm_lock(struct xe_vm *vm, struct ww_acquire_ctx *ww,
int num_resv, bool intr);
-
void xe_vm_unlock(struct xe_vm *vm, struct ww_acquire_ctx *ww);
+int xe_vm_bo_lock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
+ int num_resv, bool intr);
+void xe_vm_bo_unlock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
+ bool lru_update);
+
static inline bool xe_vm_is_closed(struct xe_vm *vm)
{
/* Only guaranteed not to change when vm->lock is held */
@@ -183,8 +190,6 @@ int xe_vm_async_fence_wait_start(struct dma_fence *fence);
extern struct ttm_device_funcs xe_ttm_funcs;
-struct ttm_buffer_object *xe_vm_ttm_bo(struct xe_vm *vm);
-
/**
* xe_vm_reactivate_rebind() - Reactivate the rebind functionality on compute
* vms.
@@ -212,23 +217,10 @@ static inline void xe_vm_queue_rebind_worker(struct xe_vm *vm)
queue_work(vm->xe->ordered_wq, &vm->preempt.rebind_work);
}
-/*
- * XE_ONSTACK_TV is used to size the tv_onstack array that is input
- * to xe_vm_lock_dma_resv() and xe_vm_unlock_dma_resv().
- */
-#define XE_ONSTACK_TV 20
-int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
- struct ttm_validate_buffer *tv_onstack,
- struct ttm_validate_buffer **tv,
- struct list_head *objs,
- bool intr,
- unsigned int num_shared);
-
-void xe_vm_unlock_dma_resv(struct xe_vm *vm,
- struct ttm_validate_buffer *tv_onstack,
- struct ttm_validate_buffer *tv,
- struct ww_acquire_ctx *ww,
- struct list_head *objs);
+int xe_vm_lock_dma_resv(struct xe_vm *vm, struct drm_exec *exec,
+ bool intr, unsigned int num_shared);
+
+void xe_vm_unlock_dma_resv(struct xe_vm *vm, struct drm_exec *exec);
void xe_vm_fence_all_extobjs(struct xe_vm *vm, struct dma_fence *fence,
enum dma_resv_usage usage);
--
2.34.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [Intel-xe] [PATCH v2 2/2] drm/xe: switch to using drm_exec
2023-07-13 13:17 ` [Intel-xe] [PATCH v2 2/2] drm/xe: switch to using drm_exec Francois Dugast
@ 2023-07-13 14:00 ` Matthew Brost
2023-07-13 14:17 ` Francois Dugast
2023-07-13 14:35 ` Christian König
0 siblings, 2 replies; 14+ messages in thread
From: Matthew Brost @ 2023-07-13 14:00 UTC (permalink / raw)
To: Francois Dugast; +Cc: intel-xe, christian.koenig
On Thu, Jul 13, 2023 at 01:17:11PM +0000, Francois Dugast wrote:
> Replace the use of ttm_execbuf_util helpers with the drm_exec helpers.
>
> v2:
> - Call dma-resv locking functions directly in xe_bo_lock and
> xe_vm_lock functions (Matthew Brost)
> - Switch to execution context for GEM buffers v7 (Christian König)
> - Use DRM_EXEC_INTERRUPTIBLE_WAIT
>
> Signed-off-by: Francois Dugast <francois.dugast@intel.com>
> ---
> drivers/gpu/drm/xe/Kconfig | 1 +
> drivers/gpu/drm/xe/xe_bo.c | 29 +++-
> drivers/gpu/drm/xe/xe_bo_types.h | 1 -
> drivers/gpu/drm/xe/xe_exec.c | 30 +---
> drivers/gpu/drm/xe/xe_gt_pagefault.c | 55 +-----
> drivers/gpu/drm/xe/xe_vm.c | 246 +++++++++++++--------------
> drivers/gpu/drm/xe/xe_vm.h | 32 ++--
> 7 files changed, 168 insertions(+), 226 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/Kconfig b/drivers/gpu/drm/xe/Kconfig
> index d44794f99338..b739faa401d3 100644
> --- a/drivers/gpu/drm/xe/Kconfig
> +++ b/drivers/gpu/drm/xe/Kconfig
> @@ -8,6 +8,7 @@ config DRM_XE
> select SHMEM
> select TMPFS
> select DRM_BUDDY
> + select DRM_EXEC
> select DRM_KMS_HELPER
> select DRM_PANEL
> select DRM_SUBALLOC_HELPER
> diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
> index 6353afa8d846..aafe69ed4320 100644
> --- a/drivers/gpu/drm/xe/xe_bo.c
> +++ b/drivers/gpu/drm/xe/xe_bo.c
> @@ -1806,17 +1806,32 @@ int xe_gem_mmap_offset_ioctl(struct drm_device *dev, void *data,
> int xe_bo_lock(struct xe_bo *bo, struct ww_acquire_ctx *ww,
> int num_resv, bool intr)
> {
> - struct ttm_validate_buffer tv_bo;
> - LIST_HEAD(objs);
> - LIST_HEAD(dups);
> + struct dma_resv *obj;
> + int err;
>
> XE_BUG_ON(!ww);
>
> - tv_bo.num_shared = num_resv;
> - tv_bo.bo = &bo->ttm;;
> - list_add_tail(&tv_bo.head, &objs);
> + obj = bo->ttm.base.resv;
> + ww_acquire_init(ww, &reservation_ww_class);
> +
> + if (intr)
> + err = dma_resv_lock_interruptible(obj, ww);
> + else
> + err = dma_resv_lock(obj, ww);
> +
> + if (unlikely(err))
> + return err;
> +
> + num_resv = max(num_resv, 1);
Why? If the user ask to reserve 0 fences this will reserve 1.
> + err = dma_resv_reserve_fences(obj, num_resv);
> + if (err)
> + goto out_err;
>
> - return ttm_eu_reserve_buffers(ww, &objs, intr, &dups);
> + return 0;
> +
> +out_err:
> + dma_resv_unlock(obj);
> + return err;
> }
>
> void xe_bo_unlock(struct xe_bo *bo, struct ww_acquire_ctx *ww)
> diff --git a/drivers/gpu/drm/xe/xe_bo_types.h b/drivers/gpu/drm/xe/xe_bo_types.h
> index f6ee920303af..bc67263c6713 100644
> --- a/drivers/gpu/drm/xe/xe_bo_types.h
> +++ b/drivers/gpu/drm/xe/xe_bo_types.h
> @@ -11,7 +11,6 @@
> #include <drm/drm_mm.h>
> #include <drm/ttm/ttm_bo.h>
> #include <drm/ttm/ttm_device.h>
> -#include <drm/ttm/ttm_execbuf_util.h>
> #include <drm/ttm/ttm_placement.h>
>
> struct xe_device;
> diff --git a/drivers/gpu/drm/xe/xe_exec.c b/drivers/gpu/drm/xe/xe_exec.c
> index ba13d20ed348..32a6e16ec177 100644
> --- a/drivers/gpu/drm/xe/xe_exec.c
> +++ b/drivers/gpu/drm/xe/xe_exec.c
> @@ -6,6 +6,7 @@
> #include "xe_exec.h"
>
> #include <drm/drm_device.h>
> +#include <drm/drm_exec.h>
> #include <drm/drm_file.h>
> #include <drm/xe_drm.h>
> #include <linux/delay.h>
> @@ -95,23 +96,18 @@
>
> #define XE_EXEC_BIND_RETRY_TIMEOUT_MS 1000
>
> -static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
> - struct ttm_validate_buffer tv_onstack[],
> - struct ttm_validate_buffer **tv,
> - struct list_head *objs)
> +static int xe_exec_begin(struct xe_engine *e, struct drm_exec *exec)
> {
> struct xe_vm *vm = e->vm;
> struct xe_vma *vma;
> - LIST_HEAD(dups);
> ktime_t end = 0;
> int err = 0;
>
> - *tv = NULL;
> if (xe_vm_no_dma_fences(e->vm))
> return 0;
>
> retry:
> - err = xe_vm_lock_dma_resv(vm, ww, tv_onstack, tv, objs, true, 1);
> + err = xe_vm_lock_dma_resv(vm, exec, true, 1);
> if (err)
> return err;
>
> @@ -128,8 +124,7 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
>
> err = xe_bo_validate(xe_vma_bo(vma), vm, false);
> if (err) {
> - xe_vm_unlock_dma_resv(vm, tv_onstack, *tv, ww, objs);
> - *tv = NULL;
> + xe_vm_unlock_dma_resv(vm, exec);
> break;
> }
> }
> @@ -153,14 +148,10 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
> return err;
> }
>
> -static void xe_exec_end(struct xe_engine *e,
> - struct ttm_validate_buffer *tv_onstack,
> - struct ttm_validate_buffer *tv,
> - struct ww_acquire_ctx *ww,
> - struct list_head *objs)
> +static void xe_exec_end(struct xe_engine *e, struct drm_exec *exec)
> {
> if (!xe_vm_no_dma_fences(e->vm))
> - xe_vm_unlock_dma_resv(e->vm, tv_onstack, tv, ww, objs);
> + xe_vm_unlock_dma_resv(e->vm, exec);
> }
>
> int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
> @@ -173,14 +164,11 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
> struct xe_engine *engine;
> struct xe_sync_entry *syncs = NULL;
> u64 addresses[XE_HW_ENGINE_MAX_INSTANCE];
> - struct ttm_validate_buffer tv_onstack[XE_ONSTACK_TV];
> - struct ttm_validate_buffer *tv = NULL;
> u32 i, num_syncs = 0;
> struct xe_sched_job *job;
> struct dma_fence *rebind_fence;
> struct xe_vm *vm;
> - struct ww_acquire_ctx ww;
> - struct list_head objs;
> + struct drm_exec exec;
> bool write_locked;
> int err = 0;
>
> @@ -293,7 +281,7 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
> goto err_unlock_list;
> }
>
> - err = xe_exec_begin(engine, &ww, tv_onstack, &tv, &objs);
> + err = xe_exec_begin(engine, &exec);
> if (err)
> goto err_unlock_list;
>
> @@ -412,7 +400,7 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
> if (err)
> xe_sched_job_put(job);
> err_engine_end:
> - xe_exec_end(engine, tv_onstack, tv, &ww, &objs);
> + xe_exec_end(engine, &exec);
> err_unlock_list:
> if (write_locked)
> up_write(&vm->lock);
> diff --git a/drivers/gpu/drm/xe/xe_gt_pagefault.c b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> index 125e4744fa38..94f59c29ba9b 100644
> --- a/drivers/gpu/drm/xe/xe_gt_pagefault.c
> +++ b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> @@ -8,8 +8,8 @@
> #include <linux/bitfield.h>
> #include <linux/circ_buf.h>
>
> +#include <drm/drm_exec.h>
> #include <drm/drm_managed.h>
> -#include <drm/ttm/ttm_execbuf_util.h>
>
> #include "xe_bo.h"
> #include "xe_gt.h"
> @@ -84,11 +84,6 @@ static bool vma_matches(struct xe_vma *vma, u64 page_addr)
> return true;
> }
>
> -static bool only_needs_bo_lock(struct xe_bo *bo)
> -{
> - return bo && bo->vm;
> -}
> -
> static struct xe_vma *lookup_vma(struct xe_vm *vm, u64 page_addr)
> {
> struct xe_vma *vma = NULL;
> @@ -110,10 +105,7 @@ static int handle_pagefault(struct xe_gt *gt, struct pagefault *pf)
> struct xe_vm *vm;
> struct xe_vma *vma = NULL;
> struct xe_bo *bo;
> - LIST_HEAD(objs);
> - LIST_HEAD(dups);
> - struct ttm_validate_buffer tv_bo, tv_vm;
> - struct ww_acquire_ctx ww;
> + struct drm_exec exec;
> struct dma_fence *fence;
> bool write_locked;
> int ret = 0;
> @@ -171,20 +163,7 @@ static int handle_pagefault(struct xe_gt *gt, struct pagefault *pf)
>
> /* Lock VM and BOs dma-resv */
> bo = xe_vma_bo(vma);
> - if (only_needs_bo_lock(bo)) {
> - /* This path ensures the BO's LRU is updated */
> - ret = xe_bo_lock(bo, &ww, xe->info.tile_count, false);
> - } else {
> - tv_vm.num_shared = xe->info.tile_count;
> - tv_vm.bo = xe_vm_ttm_bo(vm);
> - list_add(&tv_vm.head, &objs);
> - if (bo) {
> - tv_bo.bo = &bo->ttm;
> - tv_bo.num_shared = xe->info.tile_count;
> - list_add(&tv_bo.head, &objs);
> - }
> - ret = ttm_eu_reserve_buffers(&ww, &objs, false, &dups);
> - }
> + ret = xe_vm_bo_lock(vm, bo, &exec, xe->info.tile_count, false);
> if (ret)
> goto unlock_vm;
>
> @@ -227,10 +206,7 @@ static int handle_pagefault(struct xe_gt *gt, struct pagefault *pf)
> vma->usm.tile_invalidated &= ~BIT(gt_to_tile(gt)->id);
>
> unlock_dma_resv:
> - if (only_needs_bo_lock(bo))
> - xe_bo_unlock(bo, &ww);
> - else
> - ttm_eu_backoff_reservation(&ww, &objs);
> + xe_vm_bo_unlock(vm, bo, &exec, true);
> unlock_vm:
> if (!ret)
> vm->usm.last_fault_vma = vma;
> @@ -498,10 +474,7 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
> struct xe_vm *vm;
> struct xe_vma *vma;
> struct xe_bo *bo;
> - LIST_HEAD(objs);
> - LIST_HEAD(dups);
> - struct ttm_validate_buffer tv_bo, tv_vm;
> - struct ww_acquire_ctx ww;
> + struct drm_exec exec;
> int ret = 0;
>
> /* We only support ACC_TRIGGER at the moment */
> @@ -534,28 +507,14 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
>
> /* Lock VM and BOs dma-resv */
> bo = xe_vma_bo(vma);
> - if (only_needs_bo_lock(bo)) {
> - /* This path ensures the BO's LRU is updated */
> - ret = xe_bo_lock(bo, &ww, xe->info.tile_count, false);
> - } else {
> - tv_vm.num_shared = xe->info.tile_count;
> - tv_vm.bo = xe_vm_ttm_bo(vm);
> - list_add(&tv_vm.head, &objs);
> - tv_bo.bo = &bo->ttm;
> - tv_bo.num_shared = xe->info.tile_count;
> - list_add(&tv_bo.head, &objs);
> - ret = ttm_eu_reserve_buffers(&ww, &objs, false, &dups);
> - }
> + ret = xe_vm_bo_lock(vm, bo, &exec, xe->info.tile_count, false);
> if (ret)
> goto unlock_vm;
>
> /* Migrate to VRAM, move should invalidate the VMA first */
> ret = xe_bo_migrate(bo, XE_PL_VRAM0 + tile->id);
>
> - if (only_needs_bo_lock(bo))
> - xe_bo_unlock(bo, &ww);
> - else
> - ttm_eu_backoff_reservation(&ww, &objs);
> + xe_vm_bo_unlock(vm, bo, &exec, true);
> unlock_vm:
> up_read(&vm->lock);
> xe_vm_put(vm);
> diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> index 6c216350084b..c89b10d5feb5 100644
> --- a/drivers/gpu/drm/xe/xe_vm.c
> +++ b/drivers/gpu/drm/xe/xe_vm.c
> @@ -7,8 +7,8 @@
>
> #include <linux/dma-fence-array.h>
>
> +#include <drm/drm_exec.h>
> #include <drm/drm_print.h>
> -#include <drm/ttm/ttm_execbuf_util.h>
> #include <drm/ttm/ttm_tt.h>
> #include <drm/xe_drm.h>
> #include <linux/delay.h>
> @@ -321,11 +321,8 @@ static void resume_and_reinstall_preempt_fences(struct xe_vm *vm)
>
> int xe_vm_add_compute_engine(struct xe_vm *vm, struct xe_engine *e)
> {
> - struct ttm_validate_buffer tv_onstack[XE_ONSTACK_TV];
> - struct ttm_validate_buffer *tv;
> - struct ww_acquire_ctx ww;
> - struct list_head objs;
> struct dma_fence *pfence;
> + struct drm_exec exec;
> int err;
> bool wait;
>
> @@ -333,7 +330,7 @@ int xe_vm_add_compute_engine(struct xe_vm *vm, struct xe_engine *e)
>
> down_write(&vm->lock);
>
> - err = xe_vm_lock_dma_resv(vm, &ww, tv_onstack, &tv, &objs, true, 1);
> + err = xe_vm_lock_dma_resv(vm, &exec, true, 1);
> if (err)
> goto out_unlock_outer;
>
> @@ -367,7 +364,7 @@ int xe_vm_add_compute_engine(struct xe_vm *vm, struct xe_engine *e)
> up_read(&vm->userptr.notifier_lock);
>
> out_unlock:
> - xe_vm_unlock_dma_resv(vm, tv_onstack, tv, &ww, &objs);
> + xe_vm_unlock_dma_resv(vm, &exec);
> out_unlock_outer:
> up_write(&vm->lock);
>
> @@ -397,68 +394,43 @@ int __xe_vm_userptr_needs_repin(struct xe_vm *vm)
> * xe_vm_lock_dma_resv() - Lock the vm dma_resv object and the dma_resv
> * objects of the vm's external buffer objects.
> * @vm: The vm.
> - * @ww: Pointer to a struct ww_acquire_ctx locking context.
> - * @tv_onstack: Array size XE_ONSTACK_TV of storage for the struct
> - * ttm_validate_buffers used for locking.
> - * @tv: Pointer to a pointer that on output contains the actual storage used.
> - * @objs: List head for the buffer objects locked.
> + * @exec: Pointer to a struct drm_exec execution context.
> * @intr: Whether to lock interruptible.
> * @num_shared: Number of dma-fence slots to reserve in the locked objects.
> *
> * Locks the vm dma-resv objects and all the dma-resv objects of the
> - * buffer objects on the vm external object list. The TTM utilities require
> - * a list of struct ttm_validate_buffers pointing to the actual buffer
> - * objects to lock. Storage for those struct ttm_validate_buffers should
> - * be provided in @tv_onstack, and is typically reserved on the stack
> - * of the caller. If the size of @tv_onstack isn't sufficient, then
> - * storage will be allocated internally using kvmalloc().
> + * buffer objects on the vm external object list using helpers provided
> + * by drm_exec.
> *
> * The function performs deadlock handling internally, and after a
> * successful return the ww locking transaction should be considered
> * sealed.
> *
> - * Return: 0 on success, Negative error code on error. In particular if
> - * @intr is set to true, -EINTR or -ERESTARTSYS may be returned. In case
> - * of error, any locking performed has been reverted.
> + * Return: 0 on success, Negative error code on error.
> */
> -int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
> - struct ttm_validate_buffer *tv_onstack,
> - struct ttm_validate_buffer **tv,
> - struct list_head *objs,
> - bool intr,
> - unsigned int num_shared)
> -{
> - struct ttm_validate_buffer *tv_vm, *tv_bo;
> +int xe_vm_lock_dma_resv(struct xe_vm *vm, struct drm_exec *exec,
> + bool intr, unsigned int num_shared)
> +{
> struct xe_vma *vma, *next;
> - LIST_HEAD(dups);
> + struct drm_gem_object *obj;
> int err;
>
> lockdep_assert_held(&vm->lock);
>
> - if (vm->extobj.entries < XE_ONSTACK_TV) {
> - tv_vm = tv_onstack;
> - } else {
> - tv_vm = kvmalloc_array(vm->extobj.entries + 1, sizeof(*tv_vm),
> - GFP_KERNEL);
> - if (!tv_vm)
> - return -ENOMEM;
> + drm_exec_init(exec, intr ? DRM_EXEC_INTERRUPTIBLE_WAIT : 0);
> + drm_exec_until_all_locked(exec) {
> + err = drm_exec_prepare_obj(exec, xe_vm_gem(vm), num_shared);
> + drm_exec_retry_on_contention(exec);
> + if (unlikely(err) && err != -EALREADY)
> + goto out_err;
> + list_for_each_entry(vma, &vm->extobj.list, extobj.link) {
> + obj = &xe_vma_bo(vma)->ttm.base;
> + err = drm_exec_prepare_obj(exec, obj, num_shared);
> + drm_exec_retry_on_contention(exec);
> + if (unlikely(err) && err != -EALREADY)
> + goto out_err;
> + }
> }
> - tv_bo = tv_vm + 1;
> -
> - INIT_LIST_HEAD(objs);
> - list_for_each_entry(vma, &vm->extobj.list, extobj.link) {
> - tv_bo->num_shared = num_shared;
> - tv_bo->bo = &xe_vma_bo(vma)->ttm;
> -
> - list_add_tail(&tv_bo->head, objs);
> - tv_bo++;
> - }
> - tv_vm->num_shared = num_shared;
> - tv_vm->bo = xe_vm_ttm_bo(vm);
> - list_add_tail(&tv_vm->head, objs);
> - err = ttm_eu_reserve_buffers(ww, objs, intr, &dups);
> - if (err)
> - goto out_err;
>
> spin_lock(&vm->notifier.list_lock);
> list_for_each_entry_safe(vma, next, &vm->notifier.rebind_list,
> @@ -470,14 +442,10 @@ int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
> list_move_tail(&vma->rebind_link, &vm->rebind_list);
> }
> spin_unlock(&vm->notifier.list_lock);
> -
> - *tv = tv_vm;
> return 0;
>
> out_err:
> - if (tv_vm != tv_onstack)
> - kvfree(tv_vm);
> -
> + drm_exec_fini(exec);
> return err;
> }
>
> @@ -485,20 +453,16 @@ int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
> * xe_vm_unlock_dma_resv() - Unlock reservation objects locked by
> * xe_vm_lock_dma_resv()
> * @vm: The vm.
> - * @tv_onstack: The @tv_onstack array given to xe_vm_lock_dma_resv().
> - * @tv: The value of *@tv given by xe_vm_lock_dma_resv().
> - * @ww: The ww_acquire_context used for locking.
> - * @objs: The list returned from xe_vm_lock_dma_resv().
> + * @exec: The @drm_exec given to xe_vm_lock_dma_resv().
> *
> * Unlocks the reservation objects and frees any memory allocated by
> * xe_vm_lock_dma_resv().
> */
> -void xe_vm_unlock_dma_resv(struct xe_vm *vm,
> - struct ttm_validate_buffer *tv_onstack,
> - struct ttm_validate_buffer *tv,
> - struct ww_acquire_ctx *ww,
> - struct list_head *objs)
> +void xe_vm_unlock_dma_resv(struct xe_vm *vm, struct drm_exec *exec)
> {
> + struct drm_gem_object *obj, *skip = xe_vm_gem(vm);
> + unsigned long index;
> +
> /*
> * Nothing should've been able to enter the list while we were locked,
> * since we've held the dma-resvs of all the vm's external objects,
> @@ -507,9 +471,13 @@ void xe_vm_unlock_dma_resv(struct xe_vm *vm,
> */
> XE_WARN_ON(!list_empty(&vm->notifier.rebind_list));
>
> - ttm_eu_backoff_reservation(ww, objs);
> - if (tv && tv != tv_onstack)
> - kvfree(tv);
> + drm_exec_for_each_locked_object(exec, index, obj) {
> + struct xe_bo *bo = gem_to_xe_bo(obj);
> +
> + if (obj != skip)
> + ttm_bo_move_to_lru_tail_unlocked(&bo->ttm);
> + }
> + drm_exec_fini(exec);
> }
>
> #define XE_VM_REBIND_RETRY_TIMEOUT_MS 1000
> @@ -536,10 +504,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
> {
> struct xe_vm *vm = container_of(w, struct xe_vm, preempt.rebind_work);
> struct xe_vma *vma;
> - struct ttm_validate_buffer tv_onstack[XE_ONSTACK_TV];
> - struct ttm_validate_buffer *tv;
> - struct ww_acquire_ctx ww;
> - struct list_head objs;
> + struct drm_exec exec;
> struct dma_fence *rebind_fence;
> unsigned int fence_count = 0;
> LIST_HEAD(preempt_fences);
> @@ -582,8 +547,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
> goto out_unlock_outer;
> }
>
> - err = xe_vm_lock_dma_resv(vm, &ww, tv_onstack, &tv, &objs,
> - false, vm->preempt.num_engines);
> + err = xe_vm_lock_dma_resv(vm, &exec, false, vm->preempt.num_engines);
> if (err)
> goto out_unlock_outer;
>
> @@ -662,7 +626,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
> up_read(&vm->userptr.notifier_lock);
>
> out_unlock:
> - xe_vm_unlock_dma_resv(vm, tv_onstack, tv, &ww, &objs);
> + xe_vm_unlock_dma_resv(vm, &exec);
> out_unlock_outer:
> if (err == -EAGAIN) {
> trace_xe_vm_rebind_worker_retry(vm);
> @@ -1105,27 +1069,17 @@ static void xe_vma_destroy(struct xe_vma *vma, struct dma_fence *fence)
>
> static void xe_vma_destroy_unlocked(struct xe_vma *vma)
> {
> - struct ttm_validate_buffer tv[2];
> - struct ww_acquire_ctx ww;
> + struct xe_vm *vm = xe_vma_vm(vma);
> struct xe_bo *bo = xe_vma_bo(vma);
> - LIST_HEAD(objs);
> - LIST_HEAD(dups);
> + struct drm_exec exec;
> int err;
>
> - memset(tv, 0, sizeof(tv));
> - tv[0].bo = xe_vm_ttm_bo(xe_vma_vm(vma));
> - list_add(&tv[0].head, &objs);
> -
> - if (bo) {
> - tv[1].bo = &xe_bo_get(bo)->ttm;
> - list_add(&tv[1].head, &objs);
> - }
> - err = ttm_eu_reserve_buffers(&ww, &objs, false, &dups);
> + err = xe_vm_bo_lock(vm, xe_bo_get(bo), &exec, 0, false);
> XE_WARN_ON(err);
>
> xe_vma_destroy(vma, NULL);
>
> - ttm_eu_backoff_reservation(&ww, &objs);
> + xe_vm_bo_unlock(vm, bo, &exec, false);
> if (bo)
> xe_bo_put(bo);
> }
> @@ -2125,21 +2079,6 @@ static int xe_vm_prefetch(struct xe_vm *vm, struct xe_vma *vma,
>
> #define VM_BIND_OP(op) (op & 0xffff)
>
> -struct ttm_buffer_object *xe_vm_ttm_bo(struct xe_vm *vm)
> -{
> - int idx = vm->flags & XE_VM_FLAG_MIGRATION ?
> - XE_VM_FLAG_GT_ID(vm->flags) : 0;
> -
> - /* Safe to use index 0 as all BO in the VM share a single dma-resv lock */
> - return &vm->pt_root[idx]->bo->ttm;
> -}
> -
> -static void xe_vm_tv_populate(struct xe_vm *vm, struct ttm_validate_buffer *tv)
> -{
> - tv->num_shared = 1;
> - tv->bo = xe_vm_ttm_bo(vm);
> -}
> -
> static void vm_set_async_error(struct xe_vm *vm, int err)
> {
> lockdep_assert_held(&vm->lock);
> @@ -2577,17 +2516,12 @@ static int xe_vma_op_commit(struct xe_vm *vm, struct xe_vma_op *op)
> static int __xe_vma_op_execute(struct xe_vm *vm, struct xe_vma *vma,
> struct xe_vma_op *op)
> {
> - LIST_HEAD(objs);
> - LIST_HEAD(dups);
> - struct ttm_validate_buffer tv_bo, tv_vm;
> - struct ww_acquire_ctx ww;
> struct xe_bo *vbo;
> + struct drm_exec exec;
> int err;
>
> lockdep_assert_held_write(&vm->lock);
>
> - xe_vm_tv_populate(vm, &tv_vm);
> - list_add_tail(&tv_vm.head, &objs);
> vbo = xe_vma_bo(vma);
> if (vbo) {
> /*
> @@ -2596,16 +2530,10 @@ static int __xe_vma_op_execute(struct xe_vm *vm, struct xe_vma *vma,
> * take a reference here.
> */
> xe_bo_get(vbo);
> -
> - if (!vbo->vm) {
> - tv_bo.bo = &vbo->ttm;
> - tv_bo.num_shared = 1;
> - list_add(&tv_bo.head, &objs);
> - }
> }
>
> again:
> - err = ttm_eu_reserve_buffers(&ww, &objs, true, &dups);
> + err = xe_vm_bo_lock(vm, vbo, &exec, 1, true);
> if (err) {
> xe_bo_put(vbo);
> return err;
> @@ -2687,7 +2615,7 @@ static int __xe_vma_op_execute(struct xe_vm *vm, struct xe_vma *vma,
> XE_BUG_ON("NOT POSSIBLE");
> }
>
> - ttm_eu_backoff_reservation(&ww, &objs);
> + xe_vm_bo_unlock(vm, vbo, &exec, false);
> if (err == -EAGAIN && xe_vma_is_userptr(vma)) {
> lockdep_assert_held_write(&vm->lock);
> err = xe_vma_userptr_pin_pages(vma);
> @@ -3338,24 +3266,47 @@ int xe_vm_bind_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
> return err == -ENODATA ? 0 : err;
> }
>
> +struct drm_gem_object *xe_vm_gem(struct xe_vm *vm)
> +{
> + int idx = vm->flags & XE_VM_FLAG_MIGRATION ?
> + XE_VM_FLAG_GT_ID(vm->flags) : 0;
> +
> + /* Safe to use index 0 as all BO in the VM share a single dma-resv lock */
> + return &vm->pt_root[idx]->bo->ttm.base;
> +}
> +
> /*
> - * XXX: Using the TTM wrappers for now, likely can call into dma-resv code
> - * directly to optimize. Also this likely should be an inline function.
> + * XXX: This likely should be an inline function.
> */
> int xe_vm_lock(struct xe_vm *vm, struct ww_acquire_ctx *ww,
> int num_resv, bool intr)
> {
> - struct ttm_validate_buffer tv_vm;
> - LIST_HEAD(objs);
> - LIST_HEAD(dups);
> + struct dma_resv *obj;
> + int err;
>
> XE_BUG_ON(!ww);
>
> - tv_vm.num_shared = num_resv;
> - tv_vm.bo = xe_vm_ttm_bo(vm);;
> - list_add_tail(&tv_vm.head, &objs);
> + obj = xe_vm_gem(vm)->resv;
> + ww_acquire_init(ww, &reservation_ww_class);
> +
> + if (intr)
> + err = dma_resv_lock_interruptible(obj, ww);
> + else
> + err = dma_resv_lock(obj, ww);
> +
> + if (unlikely(err))
> + return err;
> +
> + num_resv = max(num_resv, 1);
Same question as above here.
Matt
> + err = dma_resv_reserve_fences(obj, num_resv);
> + if (err)
> + goto out_err;
>
> - return ttm_eu_reserve_buffers(ww, &objs, intr, &dups);
> + return 0;
> +
> +out_err:
> + dma_resv_unlock(&vm->resv);
> + return err;
> }
>
> void xe_vm_unlock(struct xe_vm *vm, struct ww_acquire_ctx *ww)
> @@ -3364,6 +3315,43 @@ void xe_vm_unlock(struct xe_vm *vm, struct ww_acquire_ctx *ww)
> ww_acquire_fini(ww);
> }
>
> +int xe_vm_bo_lock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
> + int num_resv, bool intr)
> +{
> + int err;
> +
> + drm_exec_init(exec, intr ? DRM_EXEC_INTERRUPTIBLE_WAIT : 0);
> + drm_exec_until_all_locked(exec) {
> + err = drm_exec_prepare_obj(exec, xe_vm_gem(vm),
> + num_resv);
> + drm_exec_retry_on_contention(exec);
> + if (err && err != -EALREADY)
> + goto out_err;
> +
> + if (bo && !bo->vm) {
> + err = drm_exec_prepare_obj(exec, &bo->ttm.base,
> + num_resv);
> + drm_exec_retry_on_contention(exec);
> + if (err && err != -EALREADY)
> + goto out_err;
> + }
> + }
> +
> + return 0;
> +
> +out_err:
> + drm_exec_fini(exec);
> + return err;
> +}
> +
> +void xe_vm_bo_unlock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
> + bool lru_update)
> +{
> + if (lru_update && bo && (!bo->vm || xe_vm_no_dma_fences(vm)))
> + ttm_bo_move_to_lru_tail_unlocked(&bo->ttm);
> + drm_exec_fini(exec);
> +}
> +
> /**
> * xe_vm_invalidate_vma - invalidate GPU mappings for VMA without a lock
> * @vma: VMA to invalidate
> diff --git a/drivers/gpu/drm/xe/xe_vm.h b/drivers/gpu/drm/xe/xe_vm.h
> index eaf11ac8ff51..62a062bd5078 100644
> --- a/drivers/gpu/drm/xe/xe_vm.h
> +++ b/drivers/gpu/drm/xe/xe_vm.h
> @@ -12,6 +12,7 @@
> #include "xe_vm_types.h"
>
> struct drm_device;
> +struct drm_exec;
> struct drm_printer;
> struct drm_file;
>
> @@ -39,11 +40,17 @@ static inline void xe_vm_put(struct xe_vm *vm)
> kref_put(&vm->refcount, xe_vm_free);
> }
>
> +struct drm_gem_object *xe_vm_gem(struct xe_vm *vm);
> +
> int xe_vm_lock(struct xe_vm *vm, struct ww_acquire_ctx *ww,
> int num_resv, bool intr);
> -
> void xe_vm_unlock(struct xe_vm *vm, struct ww_acquire_ctx *ww);
>
> +int xe_vm_bo_lock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
> + int num_resv, bool intr);
> +void xe_vm_bo_unlock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
> + bool lru_update);
> +
> static inline bool xe_vm_is_closed(struct xe_vm *vm)
> {
> /* Only guaranteed not to change when vm->lock is held */
> @@ -183,8 +190,6 @@ int xe_vm_async_fence_wait_start(struct dma_fence *fence);
>
> extern struct ttm_device_funcs xe_ttm_funcs;
>
> -struct ttm_buffer_object *xe_vm_ttm_bo(struct xe_vm *vm);
> -
> /**
> * xe_vm_reactivate_rebind() - Reactivate the rebind functionality on compute
> * vms.
> @@ -212,23 +217,10 @@ static inline void xe_vm_queue_rebind_worker(struct xe_vm *vm)
> queue_work(vm->xe->ordered_wq, &vm->preempt.rebind_work);
> }
>
> -/*
> - * XE_ONSTACK_TV is used to size the tv_onstack array that is input
> - * to xe_vm_lock_dma_resv() and xe_vm_unlock_dma_resv().
> - */
> -#define XE_ONSTACK_TV 20
> -int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
> - struct ttm_validate_buffer *tv_onstack,
> - struct ttm_validate_buffer **tv,
> - struct list_head *objs,
> - bool intr,
> - unsigned int num_shared);
> -
> -void xe_vm_unlock_dma_resv(struct xe_vm *vm,
> - struct ttm_validate_buffer *tv_onstack,
> - struct ttm_validate_buffer *tv,
> - struct ww_acquire_ctx *ww,
> - struct list_head *objs);
> +int xe_vm_lock_dma_resv(struct xe_vm *vm, struct drm_exec *exec,
> + bool intr, unsigned int num_shared);
> +
> +void xe_vm_unlock_dma_resv(struct xe_vm *vm, struct drm_exec *exec);
>
> void xe_vm_fence_all_extobjs(struct xe_vm *vm, struct dma_fence *fence,
> enum dma_resv_usage usage);
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Intel-xe] [PATCH v2 2/2] drm/xe: switch to using drm_exec
2023-07-13 14:00 ` Matthew Brost
@ 2023-07-13 14:17 ` Francois Dugast
2023-07-13 14:35 ` Christian König
1 sibling, 0 replies; 14+ messages in thread
From: Francois Dugast @ 2023-07-13 14:17 UTC (permalink / raw)
To: Matthew Brost; +Cc: intel-xe, christian.koenig
On Thu, Jul 13, 2023 at 02:00:14PM +0000, Matthew Brost wrote:
> On Thu, Jul 13, 2023 at 01:17:11PM +0000, Francois Dugast wrote:
> > Replace the use of ttm_execbuf_util helpers with the drm_exec helpers.
> >
> > v2:
> > - Call dma-resv locking functions directly in xe_bo_lock and
> > xe_vm_lock functions (Matthew Brost)
> > - Switch to execution context for GEM buffers v7 (Christian König)
> > - Use DRM_EXEC_INTERRUPTIBLE_WAIT
> >
> > Signed-off-by: Francois Dugast <francois.dugast@intel.com>
> > ---
> > drivers/gpu/drm/xe/Kconfig | 1 +
> > drivers/gpu/drm/xe/xe_bo.c | 29 +++-
> > drivers/gpu/drm/xe/xe_bo_types.h | 1 -
> > drivers/gpu/drm/xe/xe_exec.c | 30 +---
> > drivers/gpu/drm/xe/xe_gt_pagefault.c | 55 +-----
> > drivers/gpu/drm/xe/xe_vm.c | 246 +++++++++++++--------------
> > drivers/gpu/drm/xe/xe_vm.h | 32 ++--
> > 7 files changed, 168 insertions(+), 226 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/xe/Kconfig b/drivers/gpu/drm/xe/Kconfig
> > index d44794f99338..b739faa401d3 100644
> > --- a/drivers/gpu/drm/xe/Kconfig
> > +++ b/drivers/gpu/drm/xe/Kconfig
> > @@ -8,6 +8,7 @@ config DRM_XE
> > select SHMEM
> > select TMPFS
> > select DRM_BUDDY
> > + select DRM_EXEC
> > select DRM_KMS_HELPER
> > select DRM_PANEL
> > select DRM_SUBALLOC_HELPER
> > diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
> > index 6353afa8d846..aafe69ed4320 100644
> > --- a/drivers/gpu/drm/xe/xe_bo.c
> > +++ b/drivers/gpu/drm/xe/xe_bo.c
> > @@ -1806,17 +1806,32 @@ int xe_gem_mmap_offset_ioctl(struct drm_device *dev, void *data,
> > int xe_bo_lock(struct xe_bo *bo, struct ww_acquire_ctx *ww,
> > int num_resv, bool intr)
> > {
> > - struct ttm_validate_buffer tv_bo;
> > - LIST_HEAD(objs);
> > - LIST_HEAD(dups);
> > + struct dma_resv *obj;
> > + int err;
> >
> > XE_BUG_ON(!ww);
> >
> > - tv_bo.num_shared = num_resv;
> > - tv_bo.bo = &bo->ttm;;
> > - list_add_tail(&tv_bo.head, &objs);
> > + obj = bo->ttm.base.resv;
> > + ww_acquire_init(ww, &reservation_ww_class);
> > +
> > + if (intr)
> > + err = dma_resv_lock_interruptible(obj, ww);
> > + else
> > + err = dma_resv_lock(obj, ww);
> > +
> > + if (unlikely(err))
> > + return err;
> > +
> > + num_resv = max(num_resv, 1);
>
> Why? If the user ask to reserve 0 fences this will reserve 1.
The intention was to not deviate from the previous behavior with
ttm_eu_reserve_buffers [1]:
num_fences = max(entry->num_shared, 1u);
But if you confirm is not needed then I will remove it so that exactly num_resv
fences are reserved.
[1] https://gitlab.freedesktop.org/drm/xe/kernel/-/blob/drm-xe-next/drivers/gpu/drm/ttm/ttm_execbuf_util.c#L100
Francois
>
> > + err = dma_resv_reserve_fences(obj, num_resv);
> > + if (err)
> > + goto out_err;
> >
> > - return ttm_eu_reserve_buffers(ww, &objs, intr, &dups);
> > + return 0;
> > +
> > +out_err:
> > + dma_resv_unlock(obj);
> > + return err;
> > }
> >
> > void xe_bo_unlock(struct xe_bo *bo, struct ww_acquire_ctx *ww)
> > diff --git a/drivers/gpu/drm/xe/xe_bo_types.h b/drivers/gpu/drm/xe/xe_bo_types.h
> > index f6ee920303af..bc67263c6713 100644
> > --- a/drivers/gpu/drm/xe/xe_bo_types.h
> > +++ b/drivers/gpu/drm/xe/xe_bo_types.h
> > @@ -11,7 +11,6 @@
> > #include <drm/drm_mm.h>
> > #include <drm/ttm/ttm_bo.h>
> > #include <drm/ttm/ttm_device.h>
> > -#include <drm/ttm/ttm_execbuf_util.h>
> > #include <drm/ttm/ttm_placement.h>
> >
> > struct xe_device;
> > diff --git a/drivers/gpu/drm/xe/xe_exec.c b/drivers/gpu/drm/xe/xe_exec.c
> > index ba13d20ed348..32a6e16ec177 100644
> > --- a/drivers/gpu/drm/xe/xe_exec.c
> > +++ b/drivers/gpu/drm/xe/xe_exec.c
> > @@ -6,6 +6,7 @@
> > #include "xe_exec.h"
> >
> > #include <drm/drm_device.h>
> > +#include <drm/drm_exec.h>
> > #include <drm/drm_file.h>
> > #include <drm/xe_drm.h>
> > #include <linux/delay.h>
> > @@ -95,23 +96,18 @@
> >
> > #define XE_EXEC_BIND_RETRY_TIMEOUT_MS 1000
> >
> > -static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
> > - struct ttm_validate_buffer tv_onstack[],
> > - struct ttm_validate_buffer **tv,
> > - struct list_head *objs)
> > +static int xe_exec_begin(struct xe_engine *e, struct drm_exec *exec)
> > {
> > struct xe_vm *vm = e->vm;
> > struct xe_vma *vma;
> > - LIST_HEAD(dups);
> > ktime_t end = 0;
> > int err = 0;
> >
> > - *tv = NULL;
> > if (xe_vm_no_dma_fences(e->vm))
> > return 0;
> >
> > retry:
> > - err = xe_vm_lock_dma_resv(vm, ww, tv_onstack, tv, objs, true, 1);
> > + err = xe_vm_lock_dma_resv(vm, exec, true, 1);
> > if (err)
> > return err;
> >
> > @@ -128,8 +124,7 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
> >
> > err = xe_bo_validate(xe_vma_bo(vma), vm, false);
> > if (err) {
> > - xe_vm_unlock_dma_resv(vm, tv_onstack, *tv, ww, objs);
> > - *tv = NULL;
> > + xe_vm_unlock_dma_resv(vm, exec);
> > break;
> > }
> > }
> > @@ -153,14 +148,10 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
> > return err;
> > }
> >
> > -static void xe_exec_end(struct xe_engine *e,
> > - struct ttm_validate_buffer *tv_onstack,
> > - struct ttm_validate_buffer *tv,
> > - struct ww_acquire_ctx *ww,
> > - struct list_head *objs)
> > +static void xe_exec_end(struct xe_engine *e, struct drm_exec *exec)
> > {
> > if (!xe_vm_no_dma_fences(e->vm))
> > - xe_vm_unlock_dma_resv(e->vm, tv_onstack, tv, ww, objs);
> > + xe_vm_unlock_dma_resv(e->vm, exec);
> > }
> >
> > int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
> > @@ -173,14 +164,11 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
> > struct xe_engine *engine;
> > struct xe_sync_entry *syncs = NULL;
> > u64 addresses[XE_HW_ENGINE_MAX_INSTANCE];
> > - struct ttm_validate_buffer tv_onstack[XE_ONSTACK_TV];
> > - struct ttm_validate_buffer *tv = NULL;
> > u32 i, num_syncs = 0;
> > struct xe_sched_job *job;
> > struct dma_fence *rebind_fence;
> > struct xe_vm *vm;
> > - struct ww_acquire_ctx ww;
> > - struct list_head objs;
> > + struct drm_exec exec;
> > bool write_locked;
> > int err = 0;
> >
> > @@ -293,7 +281,7 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
> > goto err_unlock_list;
> > }
> >
> > - err = xe_exec_begin(engine, &ww, tv_onstack, &tv, &objs);
> > + err = xe_exec_begin(engine, &exec);
> > if (err)
> > goto err_unlock_list;
> >
> > @@ -412,7 +400,7 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
> > if (err)
> > xe_sched_job_put(job);
> > err_engine_end:
> > - xe_exec_end(engine, tv_onstack, tv, &ww, &objs);
> > + xe_exec_end(engine, &exec);
> > err_unlock_list:
> > if (write_locked)
> > up_write(&vm->lock);
> > diff --git a/drivers/gpu/drm/xe/xe_gt_pagefault.c b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> > index 125e4744fa38..94f59c29ba9b 100644
> > --- a/drivers/gpu/drm/xe/xe_gt_pagefault.c
> > +++ b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> > @@ -8,8 +8,8 @@
> > #include <linux/bitfield.h>
> > #include <linux/circ_buf.h>
> >
> > +#include <drm/drm_exec.h>
> > #include <drm/drm_managed.h>
> > -#include <drm/ttm/ttm_execbuf_util.h>
> >
> > #include "xe_bo.h"
> > #include "xe_gt.h"
> > @@ -84,11 +84,6 @@ static bool vma_matches(struct xe_vma *vma, u64 page_addr)
> > return true;
> > }
> >
> > -static bool only_needs_bo_lock(struct xe_bo *bo)
> > -{
> > - return bo && bo->vm;
> > -}
> > -
> > static struct xe_vma *lookup_vma(struct xe_vm *vm, u64 page_addr)
> > {
> > struct xe_vma *vma = NULL;
> > @@ -110,10 +105,7 @@ static int handle_pagefault(struct xe_gt *gt, struct pagefault *pf)
> > struct xe_vm *vm;
> > struct xe_vma *vma = NULL;
> > struct xe_bo *bo;
> > - LIST_HEAD(objs);
> > - LIST_HEAD(dups);
> > - struct ttm_validate_buffer tv_bo, tv_vm;
> > - struct ww_acquire_ctx ww;
> > + struct drm_exec exec;
> > struct dma_fence *fence;
> > bool write_locked;
> > int ret = 0;
> > @@ -171,20 +163,7 @@ static int handle_pagefault(struct xe_gt *gt, struct pagefault *pf)
> >
> > /* Lock VM and BOs dma-resv */
> > bo = xe_vma_bo(vma);
> > - if (only_needs_bo_lock(bo)) {
> > - /* This path ensures the BO's LRU is updated */
> > - ret = xe_bo_lock(bo, &ww, xe->info.tile_count, false);
> > - } else {
> > - tv_vm.num_shared = xe->info.tile_count;
> > - tv_vm.bo = xe_vm_ttm_bo(vm);
> > - list_add(&tv_vm.head, &objs);
> > - if (bo) {
> > - tv_bo.bo = &bo->ttm;
> > - tv_bo.num_shared = xe->info.tile_count;
> > - list_add(&tv_bo.head, &objs);
> > - }
> > - ret = ttm_eu_reserve_buffers(&ww, &objs, false, &dups);
> > - }
> > + ret = xe_vm_bo_lock(vm, bo, &exec, xe->info.tile_count, false);
> > if (ret)
> > goto unlock_vm;
> >
> > @@ -227,10 +206,7 @@ static int handle_pagefault(struct xe_gt *gt, struct pagefault *pf)
> > vma->usm.tile_invalidated &= ~BIT(gt_to_tile(gt)->id);
> >
> > unlock_dma_resv:
> > - if (only_needs_bo_lock(bo))
> > - xe_bo_unlock(bo, &ww);
> > - else
> > - ttm_eu_backoff_reservation(&ww, &objs);
> > + xe_vm_bo_unlock(vm, bo, &exec, true);
> > unlock_vm:
> > if (!ret)
> > vm->usm.last_fault_vma = vma;
> > @@ -498,10 +474,7 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
> > struct xe_vm *vm;
> > struct xe_vma *vma;
> > struct xe_bo *bo;
> > - LIST_HEAD(objs);
> > - LIST_HEAD(dups);
> > - struct ttm_validate_buffer tv_bo, tv_vm;
> > - struct ww_acquire_ctx ww;
> > + struct drm_exec exec;
> > int ret = 0;
> >
> > /* We only support ACC_TRIGGER at the moment */
> > @@ -534,28 +507,14 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
> >
> > /* Lock VM and BOs dma-resv */
> > bo = xe_vma_bo(vma);
> > - if (only_needs_bo_lock(bo)) {
> > - /* This path ensures the BO's LRU is updated */
> > - ret = xe_bo_lock(bo, &ww, xe->info.tile_count, false);
> > - } else {
> > - tv_vm.num_shared = xe->info.tile_count;
> > - tv_vm.bo = xe_vm_ttm_bo(vm);
> > - list_add(&tv_vm.head, &objs);
> > - tv_bo.bo = &bo->ttm;
> > - tv_bo.num_shared = xe->info.tile_count;
> > - list_add(&tv_bo.head, &objs);
> > - ret = ttm_eu_reserve_buffers(&ww, &objs, false, &dups);
> > - }
> > + ret = xe_vm_bo_lock(vm, bo, &exec, xe->info.tile_count, false);
> > if (ret)
> > goto unlock_vm;
> >
> > /* Migrate to VRAM, move should invalidate the VMA first */
> > ret = xe_bo_migrate(bo, XE_PL_VRAM0 + tile->id);
> >
> > - if (only_needs_bo_lock(bo))
> > - xe_bo_unlock(bo, &ww);
> > - else
> > - ttm_eu_backoff_reservation(&ww, &objs);
> > + xe_vm_bo_unlock(vm, bo, &exec, true);
> > unlock_vm:
> > up_read(&vm->lock);
> > xe_vm_put(vm);
> > diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> > index 6c216350084b..c89b10d5feb5 100644
> > --- a/drivers/gpu/drm/xe/xe_vm.c
> > +++ b/drivers/gpu/drm/xe/xe_vm.c
> > @@ -7,8 +7,8 @@
> >
> > #include <linux/dma-fence-array.h>
> >
> > +#include <drm/drm_exec.h>
> > #include <drm/drm_print.h>
> > -#include <drm/ttm/ttm_execbuf_util.h>
> > #include <drm/ttm/ttm_tt.h>
> > #include <drm/xe_drm.h>
> > #include <linux/delay.h>
> > @@ -321,11 +321,8 @@ static void resume_and_reinstall_preempt_fences(struct xe_vm *vm)
> >
> > int xe_vm_add_compute_engine(struct xe_vm *vm, struct xe_engine *e)
> > {
> > - struct ttm_validate_buffer tv_onstack[XE_ONSTACK_TV];
> > - struct ttm_validate_buffer *tv;
> > - struct ww_acquire_ctx ww;
> > - struct list_head objs;
> > struct dma_fence *pfence;
> > + struct drm_exec exec;
> > int err;
> > bool wait;
> >
> > @@ -333,7 +330,7 @@ int xe_vm_add_compute_engine(struct xe_vm *vm, struct xe_engine *e)
> >
> > down_write(&vm->lock);
> >
> > - err = xe_vm_lock_dma_resv(vm, &ww, tv_onstack, &tv, &objs, true, 1);
> > + err = xe_vm_lock_dma_resv(vm, &exec, true, 1);
> > if (err)
> > goto out_unlock_outer;
> >
> > @@ -367,7 +364,7 @@ int xe_vm_add_compute_engine(struct xe_vm *vm, struct xe_engine *e)
> > up_read(&vm->userptr.notifier_lock);
> >
> > out_unlock:
> > - xe_vm_unlock_dma_resv(vm, tv_onstack, tv, &ww, &objs);
> > + xe_vm_unlock_dma_resv(vm, &exec);
> > out_unlock_outer:
> > up_write(&vm->lock);
> >
> > @@ -397,68 +394,43 @@ int __xe_vm_userptr_needs_repin(struct xe_vm *vm)
> > * xe_vm_lock_dma_resv() - Lock the vm dma_resv object and the dma_resv
> > * objects of the vm's external buffer objects.
> > * @vm: The vm.
> > - * @ww: Pointer to a struct ww_acquire_ctx locking context.
> > - * @tv_onstack: Array size XE_ONSTACK_TV of storage for the struct
> > - * ttm_validate_buffers used for locking.
> > - * @tv: Pointer to a pointer that on output contains the actual storage used.
> > - * @objs: List head for the buffer objects locked.
> > + * @exec: Pointer to a struct drm_exec execution context.
> > * @intr: Whether to lock interruptible.
> > * @num_shared: Number of dma-fence slots to reserve in the locked objects.
> > *
> > * Locks the vm dma-resv objects and all the dma-resv objects of the
> > - * buffer objects on the vm external object list. The TTM utilities require
> > - * a list of struct ttm_validate_buffers pointing to the actual buffer
> > - * objects to lock. Storage for those struct ttm_validate_buffers should
> > - * be provided in @tv_onstack, and is typically reserved on the stack
> > - * of the caller. If the size of @tv_onstack isn't sufficient, then
> > - * storage will be allocated internally using kvmalloc().
> > + * buffer objects on the vm external object list using helpers provided
> > + * by drm_exec.
> > *
> > * The function performs deadlock handling internally, and after a
> > * successful return the ww locking transaction should be considered
> > * sealed.
> > *
> > - * Return: 0 on success, Negative error code on error. In particular if
> > - * @intr is set to true, -EINTR or -ERESTARTSYS may be returned. In case
> > - * of error, any locking performed has been reverted.
> > + * Return: 0 on success, Negative error code on error.
> > */
> > -int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
> > - struct ttm_validate_buffer *tv_onstack,
> > - struct ttm_validate_buffer **tv,
> > - struct list_head *objs,
> > - bool intr,
> > - unsigned int num_shared)
> > -{
> > - struct ttm_validate_buffer *tv_vm, *tv_bo;
> > +int xe_vm_lock_dma_resv(struct xe_vm *vm, struct drm_exec *exec,
> > + bool intr, unsigned int num_shared)
> > +{
> > struct xe_vma *vma, *next;
> > - LIST_HEAD(dups);
> > + struct drm_gem_object *obj;
> > int err;
> >
> > lockdep_assert_held(&vm->lock);
> >
> > - if (vm->extobj.entries < XE_ONSTACK_TV) {
> > - tv_vm = tv_onstack;
> > - } else {
> > - tv_vm = kvmalloc_array(vm->extobj.entries + 1, sizeof(*tv_vm),
> > - GFP_KERNEL);
> > - if (!tv_vm)
> > - return -ENOMEM;
> > + drm_exec_init(exec, intr ? DRM_EXEC_INTERRUPTIBLE_WAIT : 0);
> > + drm_exec_until_all_locked(exec) {
> > + err = drm_exec_prepare_obj(exec, xe_vm_gem(vm), num_shared);
> > + drm_exec_retry_on_contention(exec);
> > + if (unlikely(err) && err != -EALREADY)
> > + goto out_err;
> > + list_for_each_entry(vma, &vm->extobj.list, extobj.link) {
> > + obj = &xe_vma_bo(vma)->ttm.base;
> > + err = drm_exec_prepare_obj(exec, obj, num_shared);
> > + drm_exec_retry_on_contention(exec);
> > + if (unlikely(err) && err != -EALREADY)
> > + goto out_err;
> > + }
> > }
> > - tv_bo = tv_vm + 1;
> > -
> > - INIT_LIST_HEAD(objs);
> > - list_for_each_entry(vma, &vm->extobj.list, extobj.link) {
> > - tv_bo->num_shared = num_shared;
> > - tv_bo->bo = &xe_vma_bo(vma)->ttm;
> > -
> > - list_add_tail(&tv_bo->head, objs);
> > - tv_bo++;
> > - }
> > - tv_vm->num_shared = num_shared;
> > - tv_vm->bo = xe_vm_ttm_bo(vm);
> > - list_add_tail(&tv_vm->head, objs);
> > - err = ttm_eu_reserve_buffers(ww, objs, intr, &dups);
> > - if (err)
> > - goto out_err;
> >
> > spin_lock(&vm->notifier.list_lock);
> > list_for_each_entry_safe(vma, next, &vm->notifier.rebind_list,
> > @@ -470,14 +442,10 @@ int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
> > list_move_tail(&vma->rebind_link, &vm->rebind_list);
> > }
> > spin_unlock(&vm->notifier.list_lock);
> > -
> > - *tv = tv_vm;
> > return 0;
> >
> > out_err:
> > - if (tv_vm != tv_onstack)
> > - kvfree(tv_vm);
> > -
> > + drm_exec_fini(exec);
> > return err;
> > }
> >
> > @@ -485,20 +453,16 @@ int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
> > * xe_vm_unlock_dma_resv() - Unlock reservation objects locked by
> > * xe_vm_lock_dma_resv()
> > * @vm: The vm.
> > - * @tv_onstack: The @tv_onstack array given to xe_vm_lock_dma_resv().
> > - * @tv: The value of *@tv given by xe_vm_lock_dma_resv().
> > - * @ww: The ww_acquire_context used for locking.
> > - * @objs: The list returned from xe_vm_lock_dma_resv().
> > + * @exec: The @drm_exec given to xe_vm_lock_dma_resv().
> > *
> > * Unlocks the reservation objects and frees any memory allocated by
> > * xe_vm_lock_dma_resv().
> > */
> > -void xe_vm_unlock_dma_resv(struct xe_vm *vm,
> > - struct ttm_validate_buffer *tv_onstack,
> > - struct ttm_validate_buffer *tv,
> > - struct ww_acquire_ctx *ww,
> > - struct list_head *objs)
> > +void xe_vm_unlock_dma_resv(struct xe_vm *vm, struct drm_exec *exec)
> > {
> > + struct drm_gem_object *obj, *skip = xe_vm_gem(vm);
> > + unsigned long index;
> > +
> > /*
> > * Nothing should've been able to enter the list while we were locked,
> > * since we've held the dma-resvs of all the vm's external objects,
> > @@ -507,9 +471,13 @@ void xe_vm_unlock_dma_resv(struct xe_vm *vm,
> > */
> > XE_WARN_ON(!list_empty(&vm->notifier.rebind_list));
> >
> > - ttm_eu_backoff_reservation(ww, objs);
> > - if (tv && tv != tv_onstack)
> > - kvfree(tv);
> > + drm_exec_for_each_locked_object(exec, index, obj) {
> > + struct xe_bo *bo = gem_to_xe_bo(obj);
> > +
> > + if (obj != skip)
> > + ttm_bo_move_to_lru_tail_unlocked(&bo->ttm);
> > + }
> > + drm_exec_fini(exec);
> > }
> >
> > #define XE_VM_REBIND_RETRY_TIMEOUT_MS 1000
> > @@ -536,10 +504,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
> > {
> > struct xe_vm *vm = container_of(w, struct xe_vm, preempt.rebind_work);
> > struct xe_vma *vma;
> > - struct ttm_validate_buffer tv_onstack[XE_ONSTACK_TV];
> > - struct ttm_validate_buffer *tv;
> > - struct ww_acquire_ctx ww;
> > - struct list_head objs;
> > + struct drm_exec exec;
> > struct dma_fence *rebind_fence;
> > unsigned int fence_count = 0;
> > LIST_HEAD(preempt_fences);
> > @@ -582,8 +547,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
> > goto out_unlock_outer;
> > }
> >
> > - err = xe_vm_lock_dma_resv(vm, &ww, tv_onstack, &tv, &objs,
> > - false, vm->preempt.num_engines);
> > + err = xe_vm_lock_dma_resv(vm, &exec, false, vm->preempt.num_engines);
> > if (err)
> > goto out_unlock_outer;
> >
> > @@ -662,7 +626,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
> > up_read(&vm->userptr.notifier_lock);
> >
> > out_unlock:
> > - xe_vm_unlock_dma_resv(vm, tv_onstack, tv, &ww, &objs);
> > + xe_vm_unlock_dma_resv(vm, &exec);
> > out_unlock_outer:
> > if (err == -EAGAIN) {
> > trace_xe_vm_rebind_worker_retry(vm);
> > @@ -1105,27 +1069,17 @@ static void xe_vma_destroy(struct xe_vma *vma, struct dma_fence *fence)
> >
> > static void xe_vma_destroy_unlocked(struct xe_vma *vma)
> > {
> > - struct ttm_validate_buffer tv[2];
> > - struct ww_acquire_ctx ww;
> > + struct xe_vm *vm = xe_vma_vm(vma);
> > struct xe_bo *bo = xe_vma_bo(vma);
> > - LIST_HEAD(objs);
> > - LIST_HEAD(dups);
> > + struct drm_exec exec;
> > int err;
> >
> > - memset(tv, 0, sizeof(tv));
> > - tv[0].bo = xe_vm_ttm_bo(xe_vma_vm(vma));
> > - list_add(&tv[0].head, &objs);
> > -
> > - if (bo) {
> > - tv[1].bo = &xe_bo_get(bo)->ttm;
> > - list_add(&tv[1].head, &objs);
> > - }
> > - err = ttm_eu_reserve_buffers(&ww, &objs, false, &dups);
> > + err = xe_vm_bo_lock(vm, xe_bo_get(bo), &exec, 0, false);
> > XE_WARN_ON(err);
> >
> > xe_vma_destroy(vma, NULL);
> >
> > - ttm_eu_backoff_reservation(&ww, &objs);
> > + xe_vm_bo_unlock(vm, bo, &exec, false);
> > if (bo)
> > xe_bo_put(bo);
> > }
> > @@ -2125,21 +2079,6 @@ static int xe_vm_prefetch(struct xe_vm *vm, struct xe_vma *vma,
> >
> > #define VM_BIND_OP(op) (op & 0xffff)
> >
> > -struct ttm_buffer_object *xe_vm_ttm_bo(struct xe_vm *vm)
> > -{
> > - int idx = vm->flags & XE_VM_FLAG_MIGRATION ?
> > - XE_VM_FLAG_GT_ID(vm->flags) : 0;
> > -
> > - /* Safe to use index 0 as all BO in the VM share a single dma-resv lock */
> > - return &vm->pt_root[idx]->bo->ttm;
> > -}
> > -
> > -static void xe_vm_tv_populate(struct xe_vm *vm, struct ttm_validate_buffer *tv)
> > -{
> > - tv->num_shared = 1;
> > - tv->bo = xe_vm_ttm_bo(vm);
> > -}
> > -
> > static void vm_set_async_error(struct xe_vm *vm, int err)
> > {
> > lockdep_assert_held(&vm->lock);
> > @@ -2577,17 +2516,12 @@ static int xe_vma_op_commit(struct xe_vm *vm, struct xe_vma_op *op)
> > static int __xe_vma_op_execute(struct xe_vm *vm, struct xe_vma *vma,
> > struct xe_vma_op *op)
> > {
> > - LIST_HEAD(objs);
> > - LIST_HEAD(dups);
> > - struct ttm_validate_buffer tv_bo, tv_vm;
> > - struct ww_acquire_ctx ww;
> > struct xe_bo *vbo;
> > + struct drm_exec exec;
> > int err;
> >
> > lockdep_assert_held_write(&vm->lock);
> >
> > - xe_vm_tv_populate(vm, &tv_vm);
> > - list_add_tail(&tv_vm.head, &objs);
> > vbo = xe_vma_bo(vma);
> > if (vbo) {
> > /*
> > @@ -2596,16 +2530,10 @@ static int __xe_vma_op_execute(struct xe_vm *vm, struct xe_vma *vma,
> > * take a reference here.
> > */
> > xe_bo_get(vbo);
> > -
> > - if (!vbo->vm) {
> > - tv_bo.bo = &vbo->ttm;
> > - tv_bo.num_shared = 1;
> > - list_add(&tv_bo.head, &objs);
> > - }
> > }
> >
> > again:
> > - err = ttm_eu_reserve_buffers(&ww, &objs, true, &dups);
> > + err = xe_vm_bo_lock(vm, vbo, &exec, 1, true);
> > if (err) {
> > xe_bo_put(vbo);
> > return err;
> > @@ -2687,7 +2615,7 @@ static int __xe_vma_op_execute(struct xe_vm *vm, struct xe_vma *vma,
> > XE_BUG_ON("NOT POSSIBLE");
> > }
> >
> > - ttm_eu_backoff_reservation(&ww, &objs);
> > + xe_vm_bo_unlock(vm, vbo, &exec, false);
> > if (err == -EAGAIN && xe_vma_is_userptr(vma)) {
> > lockdep_assert_held_write(&vm->lock);
> > err = xe_vma_userptr_pin_pages(vma);
> > @@ -3338,24 +3266,47 @@ int xe_vm_bind_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
> > return err == -ENODATA ? 0 : err;
> > }
> >
> > +struct drm_gem_object *xe_vm_gem(struct xe_vm *vm)
> > +{
> > + int idx = vm->flags & XE_VM_FLAG_MIGRATION ?
> > + XE_VM_FLAG_GT_ID(vm->flags) : 0;
> > +
> > + /* Safe to use index 0 as all BO in the VM share a single dma-resv lock */
> > + return &vm->pt_root[idx]->bo->ttm.base;
> > +}
> > +
> > /*
> > - * XXX: Using the TTM wrappers for now, likely can call into dma-resv code
> > - * directly to optimize. Also this likely should be an inline function.
> > + * XXX: This likely should be an inline function.
> > */
> > int xe_vm_lock(struct xe_vm *vm, struct ww_acquire_ctx *ww,
> > int num_resv, bool intr)
> > {
> > - struct ttm_validate_buffer tv_vm;
> > - LIST_HEAD(objs);
> > - LIST_HEAD(dups);
> > + struct dma_resv *obj;
> > + int err;
> >
> > XE_BUG_ON(!ww);
> >
> > - tv_vm.num_shared = num_resv;
> > - tv_vm.bo = xe_vm_ttm_bo(vm);;
> > - list_add_tail(&tv_vm.head, &objs);
> > + obj = xe_vm_gem(vm)->resv;
> > + ww_acquire_init(ww, &reservation_ww_class);
> > +
> > + if (intr)
> > + err = dma_resv_lock_interruptible(obj, ww);
> > + else
> > + err = dma_resv_lock(obj, ww);
> > +
> > + if (unlikely(err))
> > + return err;
> > +
> > + num_resv = max(num_resv, 1);
>
> Same question as above here.
>
> Matt
>
> > + err = dma_resv_reserve_fences(obj, num_resv);
> > + if (err)
> > + goto out_err;
> >
> > - return ttm_eu_reserve_buffers(ww, &objs, intr, &dups);
> > + return 0;
> > +
> > +out_err:
> > + dma_resv_unlock(&vm->resv);
> > + return err;
> > }
> >
> > void xe_vm_unlock(struct xe_vm *vm, struct ww_acquire_ctx *ww)
> > @@ -3364,6 +3315,43 @@ void xe_vm_unlock(struct xe_vm *vm, struct ww_acquire_ctx *ww)
> > ww_acquire_fini(ww);
> > }
> >
> > +int xe_vm_bo_lock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
> > + int num_resv, bool intr)
> > +{
> > + int err;
> > +
> > + drm_exec_init(exec, intr ? DRM_EXEC_INTERRUPTIBLE_WAIT : 0);
> > + drm_exec_until_all_locked(exec) {
> > + err = drm_exec_prepare_obj(exec, xe_vm_gem(vm),
> > + num_resv);
> > + drm_exec_retry_on_contention(exec);
> > + if (err && err != -EALREADY)
> > + goto out_err;
> > +
> > + if (bo && !bo->vm) {
> > + err = drm_exec_prepare_obj(exec, &bo->ttm.base,
> > + num_resv);
> > + drm_exec_retry_on_contention(exec);
> > + if (err && err != -EALREADY)
> > + goto out_err;
> > + }
> > + }
> > +
> > + return 0;
> > +
> > +out_err:
> > + drm_exec_fini(exec);
> > + return err;
> > +}
> > +
> > +void xe_vm_bo_unlock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
> > + bool lru_update)
> > +{
> > + if (lru_update && bo && (!bo->vm || xe_vm_no_dma_fences(vm)))
> > + ttm_bo_move_to_lru_tail_unlocked(&bo->ttm);
> > + drm_exec_fini(exec);
> > +}
> > +
> > /**
> > * xe_vm_invalidate_vma - invalidate GPU mappings for VMA without a lock
> > * @vma: VMA to invalidate
> > diff --git a/drivers/gpu/drm/xe/xe_vm.h b/drivers/gpu/drm/xe/xe_vm.h
> > index eaf11ac8ff51..62a062bd5078 100644
> > --- a/drivers/gpu/drm/xe/xe_vm.h
> > +++ b/drivers/gpu/drm/xe/xe_vm.h
> > @@ -12,6 +12,7 @@
> > #include "xe_vm_types.h"
> >
> > struct drm_device;
> > +struct drm_exec;
> > struct drm_printer;
> > struct drm_file;
> >
> > @@ -39,11 +40,17 @@ static inline void xe_vm_put(struct xe_vm *vm)
> > kref_put(&vm->refcount, xe_vm_free);
> > }
> >
> > +struct drm_gem_object *xe_vm_gem(struct xe_vm *vm);
> > +
> > int xe_vm_lock(struct xe_vm *vm, struct ww_acquire_ctx *ww,
> > int num_resv, bool intr);
> > -
> > void xe_vm_unlock(struct xe_vm *vm, struct ww_acquire_ctx *ww);
> >
> > +int xe_vm_bo_lock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
> > + int num_resv, bool intr);
> > +void xe_vm_bo_unlock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
> > + bool lru_update);
> > +
> > static inline bool xe_vm_is_closed(struct xe_vm *vm)
> > {
> > /* Only guaranteed not to change when vm->lock is held */
> > @@ -183,8 +190,6 @@ int xe_vm_async_fence_wait_start(struct dma_fence *fence);
> >
> > extern struct ttm_device_funcs xe_ttm_funcs;
> >
> > -struct ttm_buffer_object *xe_vm_ttm_bo(struct xe_vm *vm);
> > -
> > /**
> > * xe_vm_reactivate_rebind() - Reactivate the rebind functionality on compute
> > * vms.
> > @@ -212,23 +217,10 @@ static inline void xe_vm_queue_rebind_worker(struct xe_vm *vm)
> > queue_work(vm->xe->ordered_wq, &vm->preempt.rebind_work);
> > }
> >
> > -/*
> > - * XE_ONSTACK_TV is used to size the tv_onstack array that is input
> > - * to xe_vm_lock_dma_resv() and xe_vm_unlock_dma_resv().
> > - */
> > -#define XE_ONSTACK_TV 20
> > -int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
> > - struct ttm_validate_buffer *tv_onstack,
> > - struct ttm_validate_buffer **tv,
> > - struct list_head *objs,
> > - bool intr,
> > - unsigned int num_shared);
> > -
> > -void xe_vm_unlock_dma_resv(struct xe_vm *vm,
> > - struct ttm_validate_buffer *tv_onstack,
> > - struct ttm_validate_buffer *tv,
> > - struct ww_acquire_ctx *ww,
> > - struct list_head *objs);
> > +int xe_vm_lock_dma_resv(struct xe_vm *vm, struct drm_exec *exec,
> > + bool intr, unsigned int num_shared);
> > +
> > +void xe_vm_unlock_dma_resv(struct xe_vm *vm, struct drm_exec *exec);
> >
> > void xe_vm_fence_all_extobjs(struct xe_vm *vm, struct dma_fence *fence,
> > enum dma_resv_usage usage);
> > --
> > 2.34.1
> >
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Intel-xe] ✓ CI.Patch_applied: success for drm/xe: switch to using drm_exec
2023-07-13 13:17 [Intel-xe] [PATCH v2 0/2] drm/xe: switch to using drm_exec Francois Dugast
2023-07-13 13:17 ` [Intel-xe] [PATCH v2 1/2] drm: execution context for GEM buffers v7 Francois Dugast
2023-07-13 13:17 ` [Intel-xe] [PATCH v2 2/2] drm/xe: switch to using drm_exec Francois Dugast
@ 2023-07-13 14:18 ` Patchwork
2023-07-13 14:19 ` [Intel-xe] ✗ CI.checkpatch: warning " Patchwork
` (4 subsequent siblings)
7 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2023-07-13 14:18 UTC (permalink / raw)
To: Francois Dugast; +Cc: intel-xe
== Series Details ==
Series: drm/xe: switch to using drm_exec
URL : https://patchwork.freedesktop.org/series/120675/
State : success
== Summary ==
=== Applying kernel patches on branch 'drm-xe-next' with base: ===
Base commit: ccde55837 drm/xe: handle TLB invalidations from CT fast-path
=== git am output follows ===
Applying: drm: execution context for GEM buffers v7
Applying: drm/xe: switch to using drm_exec
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Intel-xe] ✗ CI.checkpatch: warning for drm/xe: switch to using drm_exec
2023-07-13 13:17 [Intel-xe] [PATCH v2 0/2] drm/xe: switch to using drm_exec Francois Dugast
` (2 preceding siblings ...)
2023-07-13 14:18 ` [Intel-xe] ✓ CI.Patch_applied: success for " Patchwork
@ 2023-07-13 14:19 ` Patchwork
2023-07-13 14:20 ` [Intel-xe] ✓ CI.KUnit: success " Patchwork
` (3 subsequent siblings)
7 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2023-07-13 14:19 UTC (permalink / raw)
To: Francois Dugast; +Cc: intel-xe
== Series Details ==
Series: drm/xe: switch to using drm_exec
URL : https://patchwork.freedesktop.org/series/120675/
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 e1397169e05dcfd3a11de1fcde23c0930f27030a
Author: Francois Dugast <francois.dugast@intel.com>
Date: Thu Jul 13 13:17:11 2023 +0000
drm/xe: switch to using drm_exec
Replace the use of ttm_execbuf_util helpers with the drm_exec helpers.
v2:
- Call dma-resv locking functions directly in xe_bo_lock and
xe_vm_lock functions (Matthew Brost)
- Switch to execution context for GEM buffers v7 (Christian König)
- Use DRM_EXEC_INTERRUPTIBLE_WAIT
Signed-off-by: Francois Dugast <francois.dugast@intel.com>
+ /mt/dim checkpatch ccde558371c92a1f8b3707fe7cf274e388c434dd drm-intel
0f1a124b2 drm: execution context for GEM buffers v7
Traceback (most recent call last):
File "scripts/spdxcheck.py", line 6, in <module>
from ply import lex, yacc
ModuleNotFoundError: No module named 'ply'
Traceback (most recent call last):
File "scripts/spdxcheck.py", line 6, in <module>
from ply import lex, yacc
ModuleNotFoundError: No module named 'ply'
-:87: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#87:
new file mode 100644
-:359: CHECK:BRACES: Blank lines aren't necessary before a close brace '}'
#359: FILE: drivers/gpu/drm/drm_exec.c:268:
+
+ }
-:450: CHECK:PREFER_KERNEL_TYPES: Prefer kernel type 'u32' over 'uint32_t'
#450: FILE: include/drm/drm_exec.h:20:
+ uint32_t flags;
-:491: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'exec' - possible side-effects?
#491: FILE: include/drm/drm_exec.h:61:
+#define drm_exec_for_each_locked_object(exec, index, obj) \
+ for (index = 0, obj = (exec)->objects[0]; \
+ index < (exec)->num_objects; \
+ ++index, obj = (exec)->objects[index])
-:491: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'index' - possible side-effects?
#491: FILE: include/drm/drm_exec.h:61:
+#define drm_exec_for_each_locked_object(exec, index, obj) \
+ for (index = 0, obj = (exec)->objects[0]; \
+ index < (exec)->num_objects; \
+ ++index, obj = (exec)->objects[index])
-:491: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'obj' - possible side-effects?
#491: FILE: include/drm/drm_exec.h:61:
+#define drm_exec_for_each_locked_object(exec, index, obj) \
+ for (index = 0, obj = (exec)->objects[0]; \
+ index < (exec)->num_objects; \
+ ++index, obj = (exec)->objects[index])
-:523: WARNING:MACRO_WITH_FLOW_CONTROL: Macros with flow control statements should be avoided
#523: FILE: include/drm/drm_exec.h:93:
+#define drm_exec_retry_on_contention(exec) \
+ do { \
+ if (unlikely(drm_exec_is_contended(exec))) \
+ goto *__drm_exec_retry_ptr; \
+ } while (0)
total: 0 errors, 2 warnings, 5 checks, 494 lines checked
e1397169e drm/xe: switch to using drm_exec
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Intel-xe] ✓ CI.KUnit: success for drm/xe: switch to using drm_exec
2023-07-13 13:17 [Intel-xe] [PATCH v2 0/2] drm/xe: switch to using drm_exec Francois Dugast
` (3 preceding siblings ...)
2023-07-13 14:19 ` [Intel-xe] ✗ CI.checkpatch: warning " Patchwork
@ 2023-07-13 14:20 ` Patchwork
2023-07-13 14:24 ` [Intel-xe] ✓ CI.Build: " Patchwork
` (2 subsequent siblings)
7 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2023-07-13 14:20 UTC (permalink / raw)
To: Francois Dugast; +Cc: intel-xe
== Series Details ==
Series: drm/xe: switch to using drm_exec
URL : https://patchwork.freedesktop.org/series/120675/
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
[14:19:01] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[14:19:05] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make ARCH=um O=.kunit --jobs=48
[14:19:24] Starting KUnit Kernel (1/1)...
[14:19:24] ============================================================
[14:19:25] ==================== xe_bo (2 subtests) ====================
[14:19:25] [SKIPPED] xe_ccs_migrate_kunit
[14:19:25] [SKIPPED] xe_bo_evict_kunit
[14:19:25] ===================== [SKIPPED] xe_bo ======================
[14:19:25] ================== xe_dma_buf (1 subtest) ==================
[14:19:25] [SKIPPED] xe_dma_buf_kunit
[14:19:25] =================== [SKIPPED] xe_dma_buf ===================
[14:19:25] ================== xe_migrate (1 subtest) ==================
[14:19:25] [SKIPPED] xe_migrate_sanity_kunit
[14:19:25] =================== [SKIPPED] xe_migrate ===================
[14:19:25] =================== xe_pci (2 subtests) ====================
[14:19:25] [PASSED] xe_gmdid_graphics_ip
[14:19:25] [PASSED] xe_gmdid_media_ip
[14:19:25] ===================== [PASSED] xe_pci ======================
[14:19:25] ==================== xe_rtp (1 subtest) ====================
[14:19:25] ================== xe_rtp_process_tests ===================
[14:19:25] [PASSED] coalesce-same-reg
[14:19:25] [PASSED] no-match-no-add
[14:19:25] [PASSED] no-match-no-add-multiple-rules
[14:19:25] [PASSED] two-regs-two-entries
[14:19:25] [PASSED] clr-one-set-other
[14:19:25] [PASSED] set-field
[14:19:25] [PASSED] conflict-duplicate
[14:19:25] [PASSED] conflict-not-disjoint
[14:19:25] [PASSED] conflict-reg-type
[14:19:25] ============== [PASSED] xe_rtp_process_tests ===============
[14:19:25] ===================== [PASSED] xe_rtp ======================
[14:19:25] ==================== xe_wa (1 subtest) =====================
[14:19:25] ======================== xe_wa_gt =========================
[14:19:25] [PASSED] TIGERLAKE (B0)
[14:19:25] [PASSED] DG1 (A0)
[14:19:25] [PASSED] DG1 (B0)
[14:19:25] [PASSED] ALDERLAKE_S (A0)
[14:19:25] [PASSED] ALDERLAKE_S (B0)
[14:19:25] [PASSED] ALDERLAKE_S (C0)
[14:19:25] [PASSED] ALDERLAKE_S (D0)
[14:19:25] [PASSED] ALDERLAKE_P (A0)
[14:19:25] [PASSED] ALDERLAKE_P (B0)
[14:19:25] [PASSED] ALDERLAKE_P (C0)
[14:19:25] [PASSED] DG2_G10 (A0)
[14:19:25] [PASSED] DG2_G10 (A1)
[14:19:25] [PASSED] DG2_G10 (B0)
[14:19:25] [PASSED] DG2_G10 (C0)
[14:19:25] [PASSED] DG2_G11 (A0)
[14:19:25] [PASSED] DG2_G11 (B0)
[14:19:25] [PASSED] DG2_G11 (B1)
[14:19:25] [PASSED] DG2_G12 (A0)
[14:19:25] [PASSED] DG2_G12 (A1)
[14:19:25] [PASSED] PVC (B0)
[14:19:25] [PASSED] PVC (B1)
[14:19:25] [PASSED] PVC (C0)
[14:19:25] ==================== [PASSED] xe_wa_gt =====================
[14:19:25] ====================== [PASSED] xe_wa ======================
[14:19:25] ============================================================
[14:19:25] Testing complete. Ran 37 tests: passed: 33, skipped: 4
[14:19:25] Elapsed time: 23.779s total, 4.267s configuring, 19.342s building, 0.146s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[14:19:25] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[14:19:26] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make ARCH=um O=.kunit --jobs=48
[14:19:45] Starting KUnit Kernel (1/1)...
[14:19:45] ============================================================
[14:19:45] ============ drm_test_pick_cmdline (2 subtests) ============
[14:19:45] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[14:19:45] =============== drm_test_pick_cmdline_named ===============
[14:19:45] [PASSED] NTSC
[14:19:45] [PASSED] NTSC-J
[14:19:45] [PASSED] PAL
[14:19:45] [PASSED] PAL-M
[14:19:45] =========== [PASSED] drm_test_pick_cmdline_named ===========
[14:19:45] ============== [PASSED] drm_test_pick_cmdline ==============
[14:19:45] ================== drm_buddy (6 subtests) ==================
[14:19:45] [PASSED] drm_test_buddy_alloc_limit
[14:19:45] [PASSED] drm_test_buddy_alloc_range
[14:19:45] [PASSED] drm_test_buddy_alloc_optimistic
[14:19:45] [PASSED] drm_test_buddy_alloc_pessimistic
[14:19:45] [PASSED] drm_test_buddy_alloc_smoke
[14:19:45] [PASSED] drm_test_buddy_alloc_pathological
[14:19:45] ==================== [PASSED] drm_buddy ====================
[14:19:45] ============= drm_cmdline_parser (40 subtests) =============
[14:19:45] [PASSED] drm_test_cmdline_force_d_only
[14:19:45] [PASSED] drm_test_cmdline_force_D_only_dvi
[14:19:45] [PASSED] drm_test_cmdline_force_D_only_hdmi
[14:19:45] [PASSED] drm_test_cmdline_force_D_only_not_digital
[14:19:45] [PASSED] drm_test_cmdline_force_e_only
[14:19:45] [PASSED] drm_test_cmdline_res
[14:19:45] [PASSED] drm_test_cmdline_res_vesa
[14:19:45] [PASSED] drm_test_cmdline_res_vesa_rblank
[14:19:45] [PASSED] drm_test_cmdline_res_rblank
[14:19:45] [PASSED] drm_test_cmdline_res_bpp
[14:19:45] [PASSED] drm_test_cmdline_res_refresh
[14:19:45] [PASSED] drm_test_cmdline_res_bpp_refresh
[14:19:45] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[14:19:45] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[14:19:45] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[14:19:45] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[14:19:45] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[14:19:45] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[14:19:45] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[14:19:45] [PASSED] drm_test_cmdline_res_margins_force_on
[14:19:45] [PASSED] drm_test_cmdline_res_vesa_margins
[14:19:45] [PASSED] drm_test_cmdline_name
[14:19:45] [PASSED] drm_test_cmdline_name_bpp
[14:19:45] [PASSED] drm_test_cmdline_name_option
[14:19:45] [PASSED] drm_test_cmdline_name_bpp_option
[14:19:45] [PASSED] drm_test_cmdline_rotate_0
[14:19:45] [PASSED] drm_test_cmdline_rotate_90
[14:19:45] [PASSED] drm_test_cmdline_rotate_180
[14:19:45] [PASSED] drm_test_cmdline_rotate_270
[14:19:45] [PASSED] drm_test_cmdline_hmirror
[14:19:45] [PASSED] drm_test_cmdline_vmirror
[14:19:45] [PASSED] drm_test_cmdline_margin_options
[14:19:45] [PASSED] drm_test_cmdline_multiple_options
[14:19:45] [PASSED] drm_test_cmdline_bpp_extra_and_option
[14:19:45] [PASSED] drm_test_cmdline_extra_and_option
[14:19:45] [PASSED] drm_test_cmdline_freestanding_options
[14:19:45] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[14:19:45] [PASSED] drm_test_cmdline_panel_orientation
[14:19:45] ================ drm_test_cmdline_invalid =================
[14:19:45] [PASSED] margin_only
[14:19:45] [PASSED] interlace_only
[14:19:45] [PASSED] res_missing_x
[14:19:45] [PASSED] res_missing_y
[14:19:45] [PASSED] res_bad_y
[14:19:45] [PASSED] res_missing_y_bpp
[14:19:45] [PASSED] res_bad_bpp
[14:19:45] [PASSED] res_bad_refresh
[14:19:45] [PASSED] res_bpp_refresh_force_on_off
[14:19:45] [PASSED] res_invalid_mode
[14:19:45] [PASSED] res_bpp_wrong_place_mode
[14:19:45] [PASSED] name_bpp_refresh
[14:19:45] [PASSED] name_refresh
[14:19:45] [PASSED] name_refresh_wrong_mode
[14:19:45] [PASSED] name_refresh_invalid_mode
[14:19:45] [PASSED] rotate_multiple
[14:19:45] [PASSED] rotate_invalid_val
[14:19:45] [PASSED] rotate_truncated
[14:19:45] [PASSED] invalid_option
[14:19:45] [PASSED] invalid_tv_option
[14:19:45] [PASSED] truncated_tv_option
[14:19:45] ============ [PASSED] drm_test_cmdline_invalid =============
[14:19:45] =============== drm_test_cmdline_tv_options ===============
[14:19:45] [PASSED] NTSC
[14:19:45] [PASSED] NTSC_443
[14:19:45] [PASSED] NTSC_J
[14:19:45] [PASSED] PAL
[14:19:45] [PASSED] PAL_M
[14:19:45] [PASSED] PAL_N
[14:19:45] [PASSED] SECAM
[14:19:45] =========== [PASSED] drm_test_cmdline_tv_options ===========
[14:19:45] =============== [PASSED] drm_cmdline_parser ================
[14:19:45] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[14:19:45] ========== drm_test_get_tv_mode_from_name_valid ===========
[14:19:45] [PASSED] NTSC
[14:19:45] [PASSED] NTSC-443
[14:19:45] [PASSED] NTSC-J
[14:19:45] [PASSED] PAL
[14:19:45] [PASSED] PAL-M
[14:19:45] [PASSED] PAL-N
[14:19:45] [PASSED] SECAM
[14:19:45] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[14:19:45] [PASSED] drm_test_get_tv_mode_from_name_truncated
[14:19:45] ============ [PASSED] drm_get_tv_mode_from_name ============
[14:19:45] ============= drm_damage_helper (21 subtests) ==============
[14:19:45] [PASSED] drm_test_damage_iter_no_damage
[14:19:45] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[14:19:45] [PASSED] drm_test_damage_iter_no_damage_src_moved
[14:19:45] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[14:19:45] [PASSED] drm_test_damage_iter_no_damage_not_visible
[14:19:45] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[14:19:45] [PASSED] drm_test_damage_iter_no_damage_no_fb
[14:19:45] [PASSED] drm_test_damage_iter_simple_damage
[14:19:45] [PASSED] drm_test_damage_iter_single_damage
[14:19:45] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[14:19:45] [PASSED] drm_test_damage_iter_single_damage_outside_src
[14:19:45] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[14:19:45] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[14:19:45] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[14:19:45] [PASSED] drm_test_damage_iter_single_damage_src_moved
[14:19:45] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[14:19:45] [PASSED] drm_test_damage_iter_damage
[14:19:45] [PASSED] drm_test_damage_iter_damage_one_intersect
[14:19:45] [PASSED] drm_test_damage_iter_damage_one_outside
[14:19:45] [PASSED] drm_test_damage_iter_damage_src_moved
[14:19:45] [PASSED] drm_test_damage_iter_damage_not_visible
[14:19:45] ================ [PASSED] drm_damage_helper ================
[14:19:45] ============== drm_dp_mst_helper (2 subtests) ==============
[14:19:45] ============== drm_test_dp_mst_calc_pbn_mode ==============
[14:19:45] [PASSED] Clock 154000 BPP 30 DSC disabled
[14:19:45] [PASSED] Clock 234000 BPP 30 DSC disabled
[14:19:45] [PASSED] Clock 297000 BPP 24 DSC disabled
[14:19:45] [PASSED] Clock 332880 BPP 24 DSC enabled
[14:19:45] [PASSED] Clock 324540 BPP 24 DSC enabled
[14:19:45] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[14:19:45] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[14:19:45] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[14:19:45] [PASSED] DP_POWER_UP_PHY with port number
[14:19:45] [PASSED] DP_POWER_DOWN_PHY with port number
[14:19:45] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[14:19:45] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[14:19:45] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[14:19:45] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[14:19:45] [PASSED] DP_QUERY_PAYLOAD with port number
[14:19:45] [PASSED] DP_QUERY_PAYLOAD with VCPI
[14:19:45] [PASSED] DP_REMOTE_DPCD_READ with port number
[14:19:45] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[14:19:45] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[14:19:45] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[14:19:45] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[14:19:45] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[14:19:45] [PASSED] DP_REMOTE_I2C_READ with port number
[14:19:45] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[14:19:45] [PASSED] DP_REMOTE_I2C_READ with transactions array
[14:19:45] [PASSED] DP_REMOTE_I2C_WRITE with port number
[14:19:45] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[14:19:45] [PASSED] DP_REMOTE_I2C_WRITE with data array
[14:19:45] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[14:19:45] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[14:19:45] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[14:19:45] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[14:19:45] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[14:19:45] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[14:19:45] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[14:19:45] ================ [PASSED] drm_dp_mst_helper ================
[14:19:45] =========== drm_format_helper_test (11 subtests) ===========
[14:19:45] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[14:19:45] [PASSED] single_pixel_source_buffer
[14:19:45] [PASSED] single_pixel_clip_rectangle
[14:19:45] [PASSED] well_known_colors
[14:19:45] [PASSED] destination_pitch
[14:19:45] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[14:19:45] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[14:19:45] [PASSED] single_pixel_source_buffer
[14:19:45] [PASSED] single_pixel_clip_rectangle
[14:19:45] [PASSED] well_known_colors
[14:19:45] [PASSED] destination_pitch
[14:19:45] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[14:19:45] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[14:19:45] [PASSED] single_pixel_source_buffer
[14:19:45] [PASSED] single_pixel_clip_rectangle
[14:19:45] [PASSED] well_known_colors
[14:19:45] [PASSED] destination_pitch
[14:19:45] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[14:19:45] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[14:19:45] [PASSED] single_pixel_source_buffer
[14:19:45] [PASSED] single_pixel_clip_rectangle
[14:19:45] [PASSED] well_known_colors
[14:19:45] [PASSED] destination_pitch
[14:19:45] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[14:19:45] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[14:19:45] [PASSED] single_pixel_source_buffer
[14:19:45] [PASSED] single_pixel_clip_rectangle
[14:19:45] [PASSED] well_known_colors
[14:19:45] [PASSED] destination_pitch
[14:19:45] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[14:19:45] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[14:19:45] [PASSED] single_pixel_source_buffer
[14:19:45] [PASSED] single_pixel_clip_rectangle
[14:19:45] [PASSED] well_known_colors
[14:19:45] [PASSED] destination_pitch
[14:19:45] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[14:19:45] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[14:19:45] [PASSED] single_pixel_source_buffer
[14:19:45] [PASSED] single_pixel_clip_rectangle
[14:19:45] [PASSED] well_known_colors
[14:19:45] [PASSED] destination_pitch
[14:19:45] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[14:19:45] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[14:19:45] [PASSED] single_pixel_source_buffer
[14:19:45] [PASSED] single_pixel_clip_rectangle
[14:19:45] [PASSED] well_known_colors
[14:19:45] [PASSED] destination_pitch
[14:19:45] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[14:19:45] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[14:19:45] [PASSED] single_pixel_source_buffer
[14:19:45] [PASSED] single_pixel_clip_rectangle
[14:19:45] [PASSED] well_known_colors
[14:19:45] [PASSED] destination_pitch
[14:19:45] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[14:19:45] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[14:19:45] [PASSED] single_pixel_source_buffer
[14:19:45] [PASSED] single_pixel_clip_rectangle
[14:19:45] [PASSED] well_known_colors
[14:19:45] [PASSED] destination_pitch
[14:19:45] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[14:19:45] ============== drm_test_fb_xrgb8888_to_mono ===============
[14:19:45] [PASSED] single_pixel_source_buffer
[14:19:45] [PASSED] single_pixel_clip_rectangle
[14:19:45] [PASSED] well_known_colors
[14:19:45] [PASSED] destination_pitch
[14:19:45] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[14:19:45] ============= [PASSED] drm_format_helper_test ==============
[14:19:45] ================= drm_format (18 subtests) =================
[14:19:45] [PASSED] drm_test_format_block_width_invalid
[14:19:45] [PASSED] drm_test_format_block_width_one_plane
[14:19:45] [PASSED] drm_test_format_block_width_two_plane
[14:19:45] [PASSED] drm_test_format_block_width_three_plane
[14:19:45] [PASSED] drm_test_format_block_width_tiled
[14:19:45] [PASSED] drm_test_format_block_height_invalid
[14:19:45] [PASSED] drm_test_format_block_height_one_plane
[14:19:45] [PASSED] drm_test_format_block_height_two_plane
[14:19:45] [PASSED] drm_test_format_block_height_three_plane
[14:19:45] [PASSED] drm_test_format_block_height_tiled
[14:19:45] [PASSED] drm_test_format_min_pitch_invalid
[14:19:45] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[14:19:45] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[14:19:45] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[14:19:45] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[14:19:45] [PASSED] drm_test_format_min_pitch_two_plane
[14:19:45] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[14:19:45] [PASSED] drm_test_format_min_pitch_tiled
[14:19:45] =================== [PASSED] drm_format ====================
[14:19:45] =============== drm_framebuffer (1 subtest) ================
[14:19:45] =============== drm_test_framebuffer_create ===============
[14:19:45] [PASSED] ABGR8888 normal sizes
[14:19:45] [PASSED] ABGR8888 max sizes
[14:19:45] [PASSED] ABGR8888 pitch greater than min required
[14:19:45] [PASSED] ABGR8888 pitch less than min required
[14:19:45] [PASSED] ABGR8888 Invalid width
[14:19:45] [PASSED] ABGR8888 Invalid buffer handle
[14:19:45] [PASSED] No pixel format
[14:19:45] [PASSED] ABGR8888 Width 0
[14:19:45] [PASSED] ABGR8888 Height 0
[14:19:45] [PASSED] ABGR8888 Out of bound height * pitch combination
[14:19:45] [PASSED] ABGR8888 Large buffer offset
[14:19:45] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[14:19:45] [PASSED] ABGR8888 Valid buffer modifier
[14:19:45] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[14:19:45] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[14:19:45] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[14:19:45] [PASSED] NV12 Normal sizes
[14:19:45] [PASSED] NV12 Max sizes
[14:19:45] [PASSED] NV12 Invalid pitch
[14:19:45] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[14:19:45] [PASSED] NV12 different modifier per-plane
[14:19:45] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[14:19:45] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[14:19:45] [PASSED] NV12 Modifier for inexistent plane
[14:19:45] [PASSED] NV12 Handle for inexistent plane
[14:19:45] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[14:19:45] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[14:19:45] [PASSED] YVU420 Normal sizes
[14:19:45] [PASSED] YVU420 Max sizes
[14:19:45] [PASSED] YVU420 Invalid pitch
[14:19:45] [PASSED] YVU420 Different pitches
[14:19:45] [PASSED] YVU420 Different buffer offsets/pitches
[14:19:45] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[14:19:45] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[14:19:45] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[14:19:45] [PASSED] YVU420 Valid modifier
[14:19:45] [PASSED] YVU420 Different modifiers per plane
[14:19:45] [PASSED] YVU420 Modifier for inexistent plane
[14:19:45] [PASSED] X0L2 Normal sizes
[14:19:45] [PASSED] X0L2 Max sizes
[14:19:45] [PASSED] X0L2 Invalid pitch
[14:19:45] [PASSED] X0L2 Pitch greater than minimum required
stty: 'standard input': Inappropriate ioctl for device
[14:19:45] [PASSED] X0L2 Handle for inexistent plane
[14:19:45] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[14:19:45] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[14:19:45] [PASSED] X0L2 Valid modifier
[14:19:45] [PASSED] X0L2 Modifier for inexistent plane
[14:19:45] =========== [PASSED] drm_test_framebuffer_create ===========
[14:19:45] ================= [PASSED] drm_framebuffer =================
[14:19:45] =============== drm-test-managed (1 subtest) ===============
[14:19:45] [PASSED] drm_test_managed_run_action
[14:19:45] ================ [PASSED] drm-test-managed =================
[14:19:45] =================== drm_mm (19 subtests) ===================
[14:19:45] [PASSED] drm_test_mm_init
[14:19:45] [PASSED] drm_test_mm_debug
[14:19:55] [PASSED] drm_test_mm_reserve
[14:20:05] [PASSED] drm_test_mm_insert
[14:20:06] [PASSED] drm_test_mm_replace
[14:20:06] [PASSED] drm_test_mm_insert_range
[14:20:06] [PASSED] drm_test_mm_frag
[14:20:06] [PASSED] drm_test_mm_align
[14:20:06] [PASSED] drm_test_mm_align32
[14:20:06] [PASSED] drm_test_mm_align64
[14:20:06] [PASSED] drm_test_mm_evict
[14:20:06] [PASSED] drm_test_mm_evict_range
[14:20:06] [PASSED] drm_test_mm_topdown
[14:20:06] [PASSED] drm_test_mm_bottomup
[14:20:06] [PASSED] drm_test_mm_lowest
[14:20:06] [PASSED] drm_test_mm_highest
[14:20:07] [PASSED] drm_test_mm_color
[14:20:08] [PASSED] drm_test_mm_color_evict
[14:20:08] [PASSED] drm_test_mm_color_evict_range
[14:20:08] ===================== [PASSED] drm_mm ======================
[14:20:08] ============= drm_modes_analog_tv (4 subtests) =============
[14:20:08] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[14:20:08] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[14:20:08] [PASSED] drm_test_modes_analog_tv_pal_576i
[14:20:08] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[14:20:08] =============== [PASSED] drm_modes_analog_tv ===============
[14:20:08] ============== drm_plane_helper (2 subtests) ===============
[14:20:08] =============== drm_test_check_plane_state ================
[14:20:08] [PASSED] clipping_simple
[14:20:08] [PASSED] clipping_rotate_reflect
[14:20:08] [PASSED] positioning_simple
[14:20:08] [PASSED] upscaling
[14:20:08] [PASSED] downscaling
[14:20:08] [PASSED] rounding1
[14:20:08] [PASSED] rounding2
[14:20:08] [PASSED] rounding3
[14:20:08] [PASSED] rounding4
[14:20:08] =========== [PASSED] drm_test_check_plane_state ============
[14:20:08] =========== drm_test_check_invalid_plane_state ============
[14:20:08] [PASSED] positioning_invalid
[14:20:08] [PASSED] upscaling_invalid
[14:20:08] [PASSED] downscaling_invalid
[14:20:08] ======= [PASSED] drm_test_check_invalid_plane_state ========
[14:20:08] ================ [PASSED] drm_plane_helper =================
[14:20:08] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[14:20:08] ====== drm_test_connector_helper_tv_get_modes_check =======
[14:20:08] [PASSED] None
[14:20:08] [PASSED] PAL
[14:20:08] [PASSED] NTSC
[14:20:08] [PASSED] Both, NTSC Default
[14:20:08] [PASSED] Both, PAL Default
[14:20:08] [PASSED] Both, NTSC Default, with PAL on command-line
[14:20:08] [PASSED] Both, PAL Default, with NTSC on command-line
[14:20:08] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[14:20:08] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[14:20:08] ================== drm_rect (9 subtests) ===================
[14:20:08] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[14:20:08] [PASSED] drm_test_rect_clip_scaled_not_clipped
[14:20:08] [PASSED] drm_test_rect_clip_scaled_clipped
[14:20:08] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[14:20:08] ================= drm_test_rect_intersect =================
[14:20:08] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[14:20:08] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[14:20:08] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[14:20:08] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[14:20:08] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[14:20:08] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[14:20:08] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[14:20:08] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[14:20:08] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[14:20:08] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[14:20:08] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[14:20:08] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[14:20:08] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[14:20:08] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[14:20:08] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[14:20:08] ============= [PASSED] drm_test_rect_intersect =============
[14:20:08] ================ drm_test_rect_calc_hscale ================
[14:20:08] [PASSED] normal use
[14:20:08] [PASSED] out of max range
[14:20:08] [PASSED] out of min range
[14:20:08] [PASSED] zero dst
[14:20:08] [PASSED] negative src
[14:20:08] [PASSED] negative dst
[14:20:08] ============ [PASSED] drm_test_rect_calc_hscale ============
[14:20:08] ================ drm_test_rect_calc_vscale ================
[14:20:08] [PASSED] normal use
[14:20:08] [PASSED] out of max range
[14:20:08] [PASSED] out of min range
[14:20:08] [PASSED] zero dst
[14:20:08] [PASSED] negative src
[14:20:08] [PASSED] negative dst
[14:20:08] ============ [PASSED] drm_test_rect_calc_vscale ============
[14:20:08] ================== drm_test_rect_rotate ===================
[14:20:08] [PASSED] reflect-x
[14:20:08] [PASSED] reflect-y
[14:20:08] [PASSED] rotate-0
[14:20:08] [PASSED] rotate-90
[14:20:08] [PASSED] rotate-180
[14:20:08] [PASSED] rotate-270
[14:20:08] ============== [PASSED] drm_test_rect_rotate ===============
[14:20:08] ================ drm_test_rect_rotate_inv =================
[14:20:08] [PASSED] reflect-x
[14:20:08] [PASSED] reflect-y
[14:20:08] [PASSED] rotate-0
[14:20:08] [PASSED] rotate-90
[14:20:08] [PASSED] rotate-180
[14:20:08] [PASSED] rotate-270
[14:20:08] ============ [PASSED] drm_test_rect_rotate_inv =============
[14:20:08] ==================== [PASSED] drm_rect =====================
[14:20:08] ============================================================
[14:20:08] Testing complete. Ran 333 tests: passed: 333
[14:20:08] Elapsed time: 43.162s total, 1.712s configuring, 18.361s building, 23.037s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Intel-xe] ✓ CI.Build: success for drm/xe: switch to using drm_exec
2023-07-13 13:17 [Intel-xe] [PATCH v2 0/2] drm/xe: switch to using drm_exec Francois Dugast
` (4 preceding siblings ...)
2023-07-13 14:20 ` [Intel-xe] ✓ CI.KUnit: success " Patchwork
@ 2023-07-13 14:24 ` Patchwork
2023-07-13 14:24 ` [Intel-xe] ✓ CI.Hooks: " Patchwork
2023-07-13 14:25 ` [Intel-xe] ✓ CI.checksparse: " Patchwork
7 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2023-07-13 14:24 UTC (permalink / raw)
To: Francois Dugast; +Cc: intel-xe
== Series Details ==
Series: drm/xe: switch to using drm_exec
URL : https://patchwork.freedesktop.org/series/120675/
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:1689258021:build_x86_64[collapsed=true]\r\e[0KBuild x86-64'
+ mkdir -p build64
^[[0Ksection_start:1689258021: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/errno.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_32.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_64.h
WRAP arch/x86/include/generated/uapi/asm/fcntl.h
WRAP arch/x86/include/generated/uapi/asm/ioctl.h
GEN arch/x86/include/generated/asm/orc_hash.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_x32.h
WRAP arch/x86/include/generated/uapi/asm/ioctls.h
SYSTBL arch/x86/include/generated/asm/syscalls_32.h
SYSHDR arch/x86/include/generated/asm/unistd_32_ia32.h
WRAP arch/x86/include/generated/uapi/asm/ipcbuf.h
SYSHDR arch/x86/include/generated/asm/unistd_64_x32.h
WRAP arch/x86/include/generated/uapi/asm/param.h
SYSTBL arch/x86/include/generated/asm/syscalls_64.h
WRAP arch/x86/include/generated/uapi/asm/poll.h
WRAP arch/x86/include/generated/uapi/asm/resource.h
WRAP arch/x86/include/generated/uapi/asm/socket.h
WRAP arch/x86/include/generated/uapi/asm/sockios.h
WRAP arch/x86/include/generated/uapi/asm/termbits.h
WRAP arch/x86/include/generated/uapi/asm/termios.h
WRAP arch/x86/include/generated/uapi/asm/types.h
HOSTCC arch/x86/tools/relocs_32.o
HOSTCC arch/x86/tools/relocs_64.o
HOSTCC arch/x86/tools/relocs_common.o
WRAP arch/x86/include/generated/asm/early_ioremap.h
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
WRAP arch/x86/include/generated/asm/kmap_size.h
WRAP arch/x86/include/generated/asm/local64.h
WRAP arch/x86/include/generated/asm/mmiowb.h
WRAP arch/x86/include/generated/asm/module.lds.h
WRAP arch/x86/include/generated/asm/rwonce.h
WRAP arch/x86/include/generated/asm/unaligned.h
UPD include/generated/uapi/linux/version.h
UPD include/config/kernel.release
HOSTCC scripts/unifdef
UPD include/generated/compile.h
HOSTCC scripts/kallsyms
HOSTCC scripts/sorttable
HOSTCC scripts/asn1_compiler
UPD include/generated/utsrelease.h
DESCEND objtool
HOSTCC /kernel/build64/tools/objtool/fixdep.o
HOSTLD /kernel/build64/tools/objtool/fixdep-in.o
LINK /kernel/build64/tools/objtool/fixdep
HOSTLD arch/x86/tools/relocs
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
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/drm/amdgpu_drm.h
HDRINST usr/include/video/uvesafb.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/habanalabs_accel.h
HDRINST usr/include/drm/vmwgfx_drm.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/armada_drm.h
HDRINST usr/include/drm/drm.h
HDRINST usr/include/mtd/inftl-user.h
HDRINST usr/include/mtd/mtd-user.h
HDRINST usr/include/mtd/nftl-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
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/int-ll64.h
HDRINST usr/include/asm-generic/termbits.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
UPD scripts/mod/devicetable-offsets.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
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
HDRINST usr/include/linux/rkisp1-config.h
HDRINST usr/include/linux/vhost.h
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
MKELF scripts/mod/elfconfig.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
HOSTCC scripts/mod/modpost.o
HDRINST usr/include/linux/if_arcnet.h
HDRINST usr/include/linux/romfs_fs.h
HOSTCC scripts/mod/file2alias.o
HDRINST usr/include/linux/posix_types.h
HOSTCC scripts/mod/sumversion.o
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/firewire-cdev.h
HDRINST usr/include/linux/const.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/atmppp.h
HDRINST usr/include/linux/ipv6_route.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_statistic.h
HDRINST usr/include/linux/netfilter/xt_helper.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/audit.h
HDRINST usr/include/linux/tipc_config.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/virtio_input.h
HDRINST usr/include/linux/types.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/netfilter_ipv4/ipt_TTL.h
HDRINST usr/include/linux/msg.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
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/ext4.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/blkzoned.h
HDRINST usr/include/linux/netfilter_bridge/ebt_arpreply.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
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/user_events.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/if_bridge.h
HDRINST usr/include/linux/thermal.h
HDRINST usr/include/linux/uinput.h
HDRINST usr/include/linux/handshake.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/virtio_pcidev.h
HDRINST usr/include/linux/termios.h
HDRINST usr/include/linux/mpls.h
HDRINST usr/include/linux/cgroupstats.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
HDRINST usr/include/linux/atm_nicstar.h
HDRINST usr/include/linux/ncsi.h
HDRINST usr/include/linux/virtio_net.h
HDRINST usr/include/linux/ioctl.h
HDRINST usr/include/linux/stddef.h
HDRINST usr/include/linux/limits.h
HDRINST usr/include/linux/ipmi_bmc.h
HDRINST usr/include/linux/netfilter_arp.h
HDRINST usr/include/linux/if_addr.h
HDRINST usr/include/linux/rpmsg.h
HDRINST usr/include/linux/media-bus-format.h
HDRINST usr/include/linux/kernelcapi.h
HDRINST usr/include/linux/ppp_defs.h
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
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
LD /kernel/build64/tools/objtool/libsubcmd/libsubcmd-in.o
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
AR /kernel/build64/tools/objtool/libsubcmd/libsubcmd.a
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
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/mei_uuid.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/btrfs.h
HDRINST usr/include/linux/if.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
CC /kernel/build64/tools/objtool/weak.o
HDRINST usr/include/linux/atmioc.h
CC /kernel/build64/tools/objtool/check.o
HDRINST usr/include/linux/dlm.h
CC /kernel/build64/tools/objtool/special.o
HDRINST usr/include/linux/pci_regs.h
CC /kernel/build64/tools/objtool/builtin-check.o
HDRINST usr/include/linux/cachefiles.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/membarrier.h
CC /kernel/build64/tools/objtool/orc_gen.o
HDRINST usr/include/linux/nfs_idmap.h
MKDIR /kernel/build64/tools/objtool/arch/x86/lib/
HDRINST usr/include/linux/ip.h
CC /kernel/build64/tools/objtool/orc_dump.o
HDRINST usr/include/linux/atm_he.h
CC /kernel/build64/tools/objtool/arch/x86/special.o
CC /kernel/build64/tools/objtool/libstring.o
HDRINST usr/include/linux/nfsd/export.h
CC /kernel/build64/tools/objtool/libctype.o
HDRINST usr/include/linux/nfsd/stats.h
GEN /kernel/build64/tools/objtool/arch/x86/lib/inat-tables.c
CC /kernel/build64/tools/objtool/str_error_r.o
HDRINST usr/include/linux/nfsd/debug.h
CC /kernel/build64/tools/objtool/librbtree.o
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/pktcdvd.h
HDRINST usr/include/linux/aio_abi.h
HDRINST usr/include/linux/atmlec.h
HDRINST usr/include/linux/libc-compat.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
CC /kernel/build64/tools/objtool/arch/x86/decode.o
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/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/bitsperlong.h
HDRINST usr/include/asm/kvm_perf.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/boot.h
HDRINST usr/include/asm/prctl.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/sgx.h
HDRINST usr/include/asm/ucontext.h
HDRINST usr/include/asm/byteorder.h
HDRINST usr/include/asm/unistd_64.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 init/main.o
AR certs/built-in.a
CC ipc/sem.o
HOSTCC usr/gen_init_cpio
CC init/do_mounts.o
CC ipc/shm.o
CC io_uring/io_uring.o
CC ipc/syscall.o
AS arch/x86/lib/clear_page_64.o
CC init/do_mounts_initrd.o
CC io_uring/xattr.o
CC ipc/ipc_sysctl.o
CC arch/x86/lib/cmdline.o
CC security/commoncap.o
CC io_uring/nop.o
UPD init/utsversion-tmp.h
AR arch/x86/video/built-in.a
CC arch/x86/power/cpu.o
CC ipc/mqueue.o
CC arch/x86/pci/i386.o
AR net/bpf/built-in.a
CC net/llc/llc_core.o
AR virt/lib/built-in.a
CC net/ethernet/eth.o
CC arch/x86/pci/init.o
CC net/core/sock.o
CC net/802/p8022.o
CC net/ethtool/ioctl.o
CC net/sched/sch_generic.o
CC block/partitions/core.o
CC net/netlink/af_netlink.o
CC [M] virt/lib/irqbypass.o
CC arch/x86/realmode/init.o
CC arch/x86/events/amd/core.o
CC [M] arch/x86/video/fbdev.o
AS arch/x86/crypto/aesni-intel_asm.o
CC net/netfilter/core.o
CC arch/x86/mm/pat/set_memory.o
AR drivers/irqchip/built-in.a
CC security/keys/gc.o
CC sound/core/seq/seq.o
CC fs/notify/dnotify/dnotify.o
CC [M] net/netfilter/ipvs/ip_vs_conn.o
CC arch/x86/kernel/fpu/init.o
AR drivers/bus/mhi/built-in.a
AR drivers/phy/allwinner/built-in.a
CC arch/x86/entry/vdso/vma.o
CC lib/kunit/test.o
AR drivers/bus/built-in.a
CC lib/kunit/resource.o
AR drivers/phy/amlogic/built-in.a
CC kernel/sched/core.o
CC mm/kasan/common.o
AR drivers/phy/broadcom/built-in.a
CC arch/x86/crypto/aesni-intel_glue.o
CC crypto/api.o
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
AS arch/x86/lib/cmpxchg16b_emu.o
AR drivers/phy/lantiq/built-in.a
AR drivers/phy/marvell/built-in.a
CC arch/x86/lib/copy_mc.o
AR drivers/phy/mediatek/built-in.a
AR drivers/phy/microchip/built-in.a
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
AR drivers/phy/sunplus/built-in.a
GEN usr/initramfs_data.cpio
AR drivers/phy/tegra/built-in.a
COPY usr/initramfs_inc_data
AS usr/initramfs_data.o
AR drivers/phy/ti/built-in.a
AR drivers/phy/xilinx/built-in.a
AR usr/built-in.a
CC drivers/phy/phy-core.o
CC [M] net/netfilter/ipvs/ip_vs_core.o
CC arch/x86/kernel/fpu/bugs.o
AR virt/built-in.a
CC arch/x86/kernel/fpu/core.o
AS arch/x86/lib/copy_mc_64.o
AS arch/x86/lib/copy_page_64.o
CC security/min_addr.o
AS arch/x86/lib/copy_user_64.o
CC ipc/namespace.o
CC arch/x86/kernel/fpu/regset.o
CC arch/x86/kernel/fpu/signal.o
AS arch/x86/realmode/rm/header.o
AS arch/x86/lib/copy_user_uncached_64.o
CC sound/core/seq/seq_lock.o
CC lib/kunit/static_stub.o
AS arch/x86/realmode/rm/trampoline_64.o
CC arch/x86/lib/cpu.o
AS arch/x86/realmode/rm/stack.o
AS arch/x86/realmode/rm/reboot.o
CC security/keys/key.o
CC arch/x86/entry/vsyscall/vsyscall_64.o
AS arch/x86/entry/entry.o
CC arch/x86/lib/delay.o
AS arch/x86/realmode/rm/wakeup_asm.o
CC arch/x86/realmode/rm/wakemain.o
CC arch/x86/events/amd/lbr.o
AR fs/notify/dnotify/built-in.a
CC arch/x86/pci/mmconfig_64.o
CC fs/notify/inotify/inotify_fsnotify.o
CC arch/x86/power/hibernate_64.o
AS arch/x86/power/hibernate_asm_64.o
CC net/802/psnap.o
CC fs/notify/inotify/inotify_user.o
CC arch/x86/power/hibernate.o
CC arch/x86/realmode/rm/video-mode.o
CC net/sched/sch_mq.o
CC net/llc/llc_input.o
CC crypto/cipher.o
CC arch/x86/entry/vdso/extable.o
CC mm/kasan/report.o
CC block/partitions/ldm.o
AS arch/x86/realmode/rm/copy.o
CC net/ethtool/common.o
AS arch/x86/realmode/rm/bioscall.o
CC arch/x86/realmode/rm/regs.o
CC sound/core/seq/seq_clientmgr.o
CC kernel/locking/mutex.o
AS arch/x86/lib/getuser.o
CC arch/x86/realmode/rm/video-vga.o
GEN arch/x86/lib/inat-tables.c
AS arch/x86/crypto/aesni-intel_avx-x86_64.o
CC arch/x86/realmode/rm/video-vesa.o
CC sound/core/seq/seq_memory.o
CC arch/x86/lib/insn-eval.o
CC lib/kunit/string-stream.o
CC ipc/mq_sysctl.o
CC arch/x86/realmode/rm/video-bios.o
CC mm/kasan/init.o
CC net/ethtool/netlink.o
CC arch/x86/events/amd/ibs.o
CC arch/x86/events/amd/uncore.o
CC arch/x86/mm/pat/memtype.o
PASYMS arch/x86/realmode/rm/pasyms.h
LDS arch/x86/realmode/rm/realmode.lds
AR net/ethernet/built-in.a
CC arch/x86/mm/pat/memtype_interval.o
LD arch/x86/realmode/rm/realmode.elf
CC net/ethtool/bitset.o
RELOCS arch/x86/realmode/rm/realmode.relocs
OBJCOPY arch/x86/realmode/rm/realmode.bin
AS arch/x86/realmode/rmpiggy.o
AR arch/x86/realmode/built-in.a
AR drivers/phy/built-in.a
AR arch/x86/ia32/built-in.a
CC crypto/compress.o
AR arch/x86/platform/atom/built-in.a
AR drivers/pinctrl/actions/built-in.a
AS arch/x86/crypto/aes_ctrby8_avx-x86_64.o
AR drivers/pinctrl/bcm/built-in.a
AR arch/x86/platform/ce4100/built-in.a
AR drivers/pinctrl/cirrus/built-in.a
CC arch/x86/platform/efi/memmap.o
AR drivers/pinctrl/freescale/built-in.a
AR net/ipv4/netfilter/built-in.a
CC [M] net/ipv4/netfilter/nf_defrag_ipv4.o
CC drivers/pinctrl/intel/pinctrl-baytrail.o
CC arch/x86/pci/direct.o
CC arch/x86/platform/efi/quirks.o
AS [M] arch/x86/crypto/ghash-clmulni-intel_asm.o
CC arch/x86/platform/efi/efi.o
CC drivers/pinctrl/intel/pinctrl-intel.o
CC [M] arch/x86/crypto/ghash-clmulni-intel_glue.o
AS arch/x86/entry/vsyscall/vsyscall_emu_64.o
AR drivers/pinctrl/mediatek/built-in.a
AR arch/x86/power/built-in.a
CC arch/x86/lib/insn.o
AR arch/x86/net/built-in.a
CC kernel/locking/semaphore.o
CC init/initramfs.o
CC init/calibrate.o
AR arch/x86/entry/vsyscall/built-in.a
AS arch/x86/lib/memcpy_64.o
CC arch/x86/entry/vdso/vdso32-setup.o
CC crypto/algapi.o
CC lib/kunit/assert.o
CC crypto/scatterwalk.o
CC net/802/stp.o
CC net/ethtool/strset.o
CC security/keys/keyring.o
CC lib/kunit/try-catch.o
CC net/llc/llc_output.o
CC crypto/proc.o
CC arch/x86/kernel/fpu/xstate.o
LDS arch/x86/entry/vdso/vdso.lds
AR fs/notify/inotify/built-in.a
AS arch/x86/entry/vdso/vdso-note.o
CC fs/notify/fanotify/fanotify.o
CC [M] arch/x86/kvm/../../../virt/kvm/kvm_main.o
CC arch/x86/entry/vdso/vclock_gettime.o
CC fs/notify/fanotify/fanotify_user.o
CC mm/kasan/generic.o
CC [M] arch/x86/kvm/../../../virt/kvm/eventfd.o
CC [M] net/netfilter/ipvs/ip_vs_ctl.o
CC [M] net/netfilter/ipvs/ip_vs_sched.o
CC sound/core/seq/seq_queue.o
CC kernel/locking/rwsem.o
AS [M] arch/x86/crypto/crc32-pclmul_asm.o
AS arch/x86/lib/memmove_64.o
CC lib/kunit/executor.o
CC [M] arch/x86/crypto/crc32-pclmul_glue.o
AS arch/x86/lib/memset_64.o
CC arch/x86/mm/init.o
CC arch/x86/lib/misc.o
CC arch/x86/pci/mmconfig-shared.o
CC sound/core/sound.o
CC arch/x86/lib/pc-conf-reg.o
CC net/sched/sch_frag.o
CC arch/x86/mm/init_64.o
CC block/partitions/msdos.o
AR arch/x86/mm/pat/built-in.a
AR ipc/built-in.a
CC kernel/locking/percpu-rwsem.o
CC arch/x86/entry/vdso/vgetcpu.o
AS arch/x86/lib/putuser.o
CC fs/notify/fsnotify.o
CC arch/x86/platform/efi/efi_64.o
CC kernel/locking/irqflag-debug.o
AS arch/x86/lib/retpoline.o
AS [M] arch/x86/crypto/crct10dif-pcl-asm_64.o
CC net/sched/sch_api.o
CC mm/kasan/report_generic.o
CC mm/kasan/shadow.o
CC arch/x86/lib/usercopy.o
CC kernel/locking/mutex-debug.o
HOSTCC arch/x86/entry/vdso/vdso2c
AR arch/x86/events/amd/built-in.a
CC net/ipv4/route.o
CC arch/x86/events/intel/core.o
AR net/802/built-in.a
CC net/ipv4/inetpeer.o
CC crypto/aead.o
CC [M] net/ipv4/netfilter/nf_reject_ipv4.o
CC [M] arch/x86/kvm/../../../virt/kvm/binary_stats.o
AR net/llc/built-in.a
LDS arch/x86/entry/vdso/vdso32/vdso32.lds
CC arch/x86/events/zhaoxin/core.o
CC net/ipv4/protocol.o
CC net/ipv4/ip_input.o
CC init/init_task.o
CC [M] arch/x86/crypto/crct10dif-pclmul_glue.o
CC net/ipv4/ip_fragment.o
CC lib/kunit/hooks.o
CC [M] arch/x86/kvm/../../../virt/kvm/vfio.o
CC arch/x86/lib/usercopy_64.o
CC net/ethtool/linkinfo.o
AS arch/x86/entry/vdso/vdso32/note.o
CC sound/core/seq/seq_fifo.o
CC net/ethtool/linkmodes.o
CC net/ethtool/rss.o
CC [M] drivers/pinctrl/intel/pinctrl-cherryview.o
AS arch/x86/entry/vdso/vdso32/system_call.o
AR lib/kunit/built-in.a
CC lib/math/div64.o
AS arch/x86/entry/vdso/vdso32/sigreturn.o
CC lib/math/gcd.o
CC lib/math/lcm.o
CC arch/x86/entry/vdso/vdso32/vclock_gettime.o
CC [M] net/netfilter/ipvs/ip_vs_xmit.o
CC security/keys/keyctl.o
CC arch/x86/events/core.o
CC security/keys/permission.o
CC net/netlink/genetlink.o
CC lib/math/int_pow.o
CC lib/math/int_sqrt.o
CC lib/math/reciprocal_div.o
CC security/keys/process_keys.o
LD [M] arch/x86/crypto/ghash-clmulni-intel.o
CC mm/kasan/quarantine.o
CC block/partitions/efi.o
LD [M] arch/x86/crypto/crc32-pclmul.o
LD [M] arch/x86/crypto/crct10dif-pclmul.o
CC net/netlink/policy.o
AR arch/x86/crypto/built-in.a
CC security/keys/request_key.o
CC [M] net/ipv4/netfilter/ip_tables.o
CC arch/x86/pci/fixup.o
AS arch/x86/platform/efi/efi_stub_64.o
CC lib/math/rational.o
AR arch/x86/kernel/fpu/built-in.a
CC [M] lib/math/prime_numbers.o
CC arch/x86/kernel/cpu/mce/core.o
AR arch/x86/platform/efi/built-in.a
AR arch/x86/platform/geode/built-in.a
CC arch/x86/kernel/cpu/mce/severity.o
AR arch/x86/platform/iris/built-in.a
CC arch/x86/platform/intel/iosf_mbi.o
CC arch/x86/pci/acpi.o
CC arch/x86/kernel/cpu/mce/genpool.o
CC init/version.o
CC crypto/geniv.o
CC arch/x86/lib/msr-smp.o
CC arch/x86/kernel/acpi/boot.o
CC kernel/locking/lockdep.o
AR fs/notify/fanotify/built-in.a
CC fs/notify/notification.o
AR arch/x86/events/zhaoxin/built-in.a
CC fs/notify/group.o
CC kernel/sched/fair.o
CC sound/core/seq/seq_prioq.o
CC [M] net/ipv4/netfilter/iptable_filter.o
CC [M] net/ipv4/netfilter/iptable_mangle.o
CC fs/nfs_common/grace.o
AR drivers/pinctrl/mvebu/built-in.a
AR init/built-in.a
CC net/netfilter/nf_log.o
CC sound/core/seq/seq_timer.o
CC arch/x86/entry/vdso/vdso32/vgetcpu.o
CC arch/x86/lib/cache-smp.o
CC security/keys/request_key_auth.o
CC net/core/request_sock.o
VDSO arch/x86/entry/vdso/vdso64.so.dbg
CC arch/x86/mm/fault.o
VDSO arch/x86/entry/vdso/vdso32.so.dbg
OBJCOPY arch/x86/entry/vdso/vdso64.so
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
AR lib/math/built-in.a
CC kernel/locking/lockdep_proc.o
CC lib/crypto/memneq.o
CC arch/x86/lib/msr.o
CC lib/crypto/utils.o
CC arch/x86/kernel/acpi/sleep.o
AR mm/kasan/built-in.a
CC mm/filemap.o
CC fs/iomap/trace.o
CC net/ethtool/linkstate.o
CC arch/x86/kernel/cpu/mce/intel.o
CC arch/x86/kernel/cpu/mce/threshold.o
CC net/ethtool/debug.o
AR arch/x86/platform/intel/built-in.a
AR arch/x86/platform/intel-mid/built-in.a
CC arch/x86/entry/vdso/vdso-image-32.o
AR arch/x86/platform/intel-quark/built-in.a
AR arch/x86/platform/olpc/built-in.a
CC net/ethtool/wol.o
AR arch/x86/platform/scx200/built-in.a
AR arch/x86/platform/ts5500/built-in.a
AR block/partitions/built-in.a
AR arch/x86/platform/uv/built-in.a
CC net/ethtool/features.o
CC arch/x86/pci/legacy.o
CC [M] drivers/pinctrl/intel/pinctrl-broxton.o
CC block/bdev.o
AR arch/x86/platform/built-in.a
CC block/fops.o
CC arch/x86/pci/irq.o
CC fs/iomap/iter.o
CC crypto/skcipher.o
CC fs/notify/mark.o
CC lib/crypto/chacha.o
AR arch/x86/entry/vdso/built-in.a
AS arch/x86/entry/entry_64.o
CC net/netfilter/nf_queue.o
CC arch/x86/entry/syscall_64.o
CC net/netfilter/nf_sockopt.o
CC lib/crypto/aes.o
CC [M] drivers/pinctrl/intel/pinctrl-geminilake.o
CC security/keys/user_defined.o
AR fs/nfs_common/built-in.a
CC sound/core/seq/seq_system.o
CC fs/notify/fdinfo.o
CC arch/x86/entry/common.o
CC [M] net/ipv4/netfilter/iptable_nat.o
CC net/netlink/diag.o
CC lib/zlib_inflate/inffast.o
AS arch/x86/kernel/acpi/wakeup_64.o
CC mm/mempool.o
CC arch/x86/kernel/acpi/apei.o
CC net/core/skbuff.o
CC net/core/datagram.o
CC net/sched/sch_blackhole.o
CC arch/x86/kernel/acpi/cppc.o
AS arch/x86/lib/msr-reg.o
CC lib/zlib_deflate/deflate.o
CC arch/x86/lib/msr-reg-export.o
CC lib/zlib_deflate/deftree.o
AR drivers/pinctrl/nomadik/built-in.a
CC arch/x86/kernel/cpu/mce/apei.o
CC lib/zlib_inflate/inflate.o
AS arch/x86/lib/hweight.o
CC arch/x86/pci/common.o
CC arch/x86/pci/early.o
CC arch/x86/pci/bus_numa.o
CC arch/x86/lib/iomem.o
AR drivers/pinctrl/nuvoton/built-in.a
AR drivers/pinctrl/nxp/built-in.a
CC [M] drivers/pinctrl/intel/pinctrl-sunrisepoint.o
CC arch/x86/kernel/acpi/cstate.o
CC lib/crypto/gf128mul.o
CC net/ethtool/privflags.o
CC sound/core/seq/seq_ports.o
CC net/ethtool/rings.o
CC arch/x86/events/intel/bts.o
CC security/keys/compat.o
CC fs/iomap/buffered-io.o
CC [M] net/netfilter/ipvs/ip_vs_app.o
CC io_uring/fs.o
CC [M] net/netfilter/ipvs/ip_vs_sync.o
CC lib/crypto/blake2s.o
CC lib/crypto/blake2s-generic.o
AS arch/x86/entry/thunk_64.o
AS arch/x86/entry/entry_64_compat.o
CC lib/crypto/blake2s-selftest.o
CC block/bio.o
CC arch/x86/entry/syscall_32.o
CC net/core/stream.o
CC arch/x86/mm/ioremap.o
CC block/elevator.o
CC drivers/gpio/gpiolib.o
AR fs/notify/built-in.a
AR drivers/pwm/built-in.a
CC block/blk-core.o
CC kernel/locking/spinlock.o
AS arch/x86/lib/iomap_copy_64.o
CC arch/x86/lib/inat.o
CC net/netfilter/utils.o
CC crypto/seqiv.o
AR fs/quota/built-in.a
CC arch/x86/pci/amd_bus.o
CC arch/x86/kernel/cpu/mtrr/mtrr.o
AR drivers/pinctrl/intel/built-in.a
AR drivers/pinctrl/sprd/built-in.a
AR arch/x86/lib/built-in.a
CC [M] net/netfilter/nfnetlink.o
AR arch/x86/lib/lib.a
AR drivers/pinctrl/sunplus/built-in.a
CC drivers/pinctrl/core.o
AR drivers/pinctrl/ti/built-in.a
CC lib/crypto/des.o
CC kernel/locking/osq_lock.o
AR arch/x86/kernel/cpu/mce/built-in.a
CC lib/crypto/sha1.o
CC fs/iomap/direct-io.o
CC arch/x86/kernel/cpu/cacheinfo.o
AR arch/x86/kernel/acpi/built-in.a
CC fs/iomap/fiemap.o
CC net/sched/sch_fifo.o
CC sound/core/seq/seq_info.o
CC net/ipv4/ip_forward.o
AR net/netlink/built-in.a
CC lib/zlib_deflate/deflate_syms.o
CC lib/zlib_inflate/infutil.o
CC fs/proc/task_mmu.o
CC [M] net/ipv4/netfilter/ipt_REJECT.o
CC fs/proc/inode.o
CC security/inode.o
CC security/keys/proc.o
CC arch/x86/kernel/cpu/mtrr/if.o
CC arch/x86/events/probe.o
CC arch/x86/kernel/cpu/mtrr/generic.o
CC lib/zlib_inflate/inftrees.o
CC kernel/locking/qspinlock.o
AR arch/x86/entry/built-in.a
CC lib/lzo/lzo1x_compress.o
CC io_uring/splice.o
CC arch/x86/events/intel/ds.o
CC arch/x86/events/intel/knc.o
CC security/keys/sysctl.o
CC arch/x86/events/intel/lbr.o
AR lib/zlib_deflate/built-in.a
CC drivers/gpio/gpiolib-devres.o
CC lib/lz4/lz4_compress.o
CC lib/zlib_inflate/inflate_syms.o
CC crypto/echainiv.o
CC net/ethtool/channels.o
AR sound/core/seq/built-in.a
CC sound/core/init.o
CC arch/x86/events/utils.o
CC arch/x86/kernel/apic/apic.o
CC arch/x86/mm/extable.o
AR arch/x86/pci/built-in.a
CC net/ipv4/ip_options.o
CC kernel/sched/build_policy.o
CC kernel/sched/build_utility.o
CC lib/zstd/zstd_compress_module.o
CC lib/zstd/compress/fse_compress.o
CC kernel/locking/rtmutex_api.o
AR lib/zlib_inflate/built-in.a
CC lib/lzo/lzo1x_decompress_safe.o
CC lib/zstd/compress/hist.o
CC lib/zstd/compress/huf_compress.o
CC lib/zstd/compress/zstd_compress.o
CC net/ipv4/ip_output.o
CC net/core/scm.o
AR security/keys/built-in.a
CC security/device_cgroup.o
AR net/sched/built-in.a
CC drivers/pci/msi/pcidev_msi.o
CC arch/x86/events/rapl.o
CC drivers/video/logo/logo.o
CC drivers/video/console/dummycon.o
HOSTCC drivers/video/logo/pnmtologo
AR sound/i2c/other/built-in.a
AR sound/i2c/built-in.a
CC arch/x86/kernel/cpu/mtrr/cleanup.o
CC lib/crypto/sha256.o
CC net/xfrm/xfrm_policy.o
CC io_uring/sync.o
CC net/unix/af_unix.o
CC crypto/ahash.o
AR net/ipv6/netfilter/built-in.a
CC [M] net/ipv6/netfilter/nf_defrag_ipv6_hooks.o
CC crypto/shash.o
CC io_uring/advise.o
CC net/ipv6/af_inet6.o
CC io_uring/filetable.o
CC net/packet/af_packet.o
CC drivers/pinctrl/pinctrl-utils.o
CC net/xfrm/xfrm_state.o
AR lib/lzo/built-in.a
CC [M] net/netfilter/ipvs/ip_vs_est.o
AR sound/drivers/opl3/built-in.a
AR sound/drivers/opl4/built-in.a
CC arch/x86/mm/mmap.o
AR sound/drivers/mpu401/built-in.a
CC net/unix/garbage.o
CC [M] arch/x86/kvm/../../../virt/kvm/coalesced_mmio.o
LOGO drivers/video/logo/logo_linux_clut224.c
AR sound/drivers/vx/built-in.a
CC drivers/video/logo/logo_linux_clut224.o
AR sound/drivers/pcsp/built-in.a
AR sound/drivers/built-in.a
CC lib/xz/xz_dec_syms.o
CC lib/raid6/algos.o
AR drivers/video/logo/built-in.a
CC net/packet/diag.o
CC sound/core/memory.o
CC fs/iomap/seek.o
CC net/ethtool/coalesce.o
CC drivers/video/console/vgacon.o
CC drivers/pci/msi/api.o
CC lib/raid6/recov.o
CC crypto/akcipher.o
CC [M] lib/crypto/arc4.o
CC lib/xz/xz_dec_stream.o
CC drivers/pinctrl/pinmux.o
CC arch/x86/kernel/cpu/scattered.o
CC net/xfrm/xfrm_hash.o
CC fs/proc/root.o
CC arch/x86/kernel/kprobes/core.o
CC mm/oom_kill.o
CC sound/core/control.o
CC arch/x86/kernel/kprobes/opt.o
CC arch/x86/kernel/cpu/topology.o
CC kernel/locking/spinlock_debug.o
CC arch/x86/mm/pgtable.o
CC block/blk-sysfs.o
AR arch/x86/kernel/cpu/mtrr/built-in.a
CC net/unix/sysctl_net_unix.o
CC lib/lz4/lz4hc_compress.o
AR lib/crypto/built-in.a
LD [M] lib/crypto/libarc4.o
CC drivers/pci/pcie/portdrv.o
CC drivers/pci/hotplug/pci_hotplug_core.o
CC crypto/kpp.o
CC drivers/pci/hotplug/acpi_pcihp.o
CC net/core/gen_stats.o
CC fs/iomap/swapfile.o
CC arch/x86/events/intel/p4.o
AR security/built-in.a
CC drivers/pci/hotplug/pciehp_core.o
CC [M] arch/x86/kvm/../../../virt/kvm/async_pf.o
CC arch/x86/events/intel/p6.o
CC io_uring/openclose.o
HOSTCC lib/raid6/mktables
CC lib/xz/xz_dec_lzma2.o
CC drivers/pci/msi/msi.o
CC [M] net/ipv6/netfilter/nf_conntrack_reasm.o
CC drivers/pci/msi/irqdomain.o
CC net/ethtool/pause.o
CC arch/x86/kernel/cpu/common.o
CC net/unix/diag.o
CC [M] arch/x86/kvm/../../../virt/kvm/irqchip.o
CC arch/x86/kernel/apic/apic_common.o
CC kernel/locking/qrwlock.o
UNROLL lib/raid6/int1.c
CC arch/x86/kernel/cpu/rdrand.o
UNROLL lib/raid6/int2.c
UNROLL lib/raid6/int4.c
CC drivers/gpio/gpiolib-legacy.o
UNROLL lib/raid6/int8.c
UNROLL lib/raid6/int16.c
UNROLL lib/raid6/int32.c
CC lib/raid6/recov_ssse3.o
CC fs/proc/base.o
CC net/ethtool/eee.o
CC drivers/pinctrl/pinconf.o
AR drivers/video/console/built-in.a
CC net/xfrm/xfrm_input.o
CC drivers/video/backlight/backlight.o
CC lib/raid6/recov_avx2.o
CC crypto/acompress.o
CC arch/x86/kernel/kprobes/ftrace.o
AR fs/iomap/built-in.a
CC net/xfrm/xfrm_output.o
CC fs/kernfs/mount.o
CC arch/x86/kernel/apic/apic_noop.o
CC drivers/pci/pcie/rcec.o
CC arch/x86/kernel/apic/ipi.o
CC arch/x86/events/intel/pt.o
CC drivers/gpio/gpiolib-cdev.o
AR kernel/locking/built-in.a
CC [M] net/netfilter/ipvs/ip_vs_proto.o
CC drivers/pci/pcie/aspm.o
CC drivers/pci/hotplug/pciehp_ctrl.o
CC fs/kernfs/inode.o
CC arch/x86/mm/physaddr.o
CC fs/kernfs/dir.o
CC block/blk-flush.o
LDS arch/x86/kernel/vmlinux.lds
CC lib/xz/xz_dec_bcj.o
CC sound/core/misc.o
CC drivers/pci/pcie/aer.o
CC drivers/idle/intel_idle.o
CC arch/x86/kernel/apic/vector.o
CC lib/raid6/mmx.o
CC io_uring/uring_cmd.o
CC net/core/gen_estimator.o
CC drivers/pinctrl/pinconf-generic.o
CC lib/lz4/lz4_decompress.o
CC drivers/pci/pcie/err.o
AR drivers/pci/msi/built-in.a
CC drivers/pci/pcie/aer_inject.o
CC net/ethtool/tsinfo.o
CC [M] arch/x86/kvm/../../../virt/kvm/dirty_ring.o
CC lib/raid6/sse1.o
CC lib/raid6/sse2.o
CC mm/fadvise.o
AR arch/x86/kernel/kprobes/built-in.a
CC net/unix/scm.o
AS arch/x86/kernel/head_64.o
AR drivers/pci/controller/dwc/built-in.a
AR drivers/pci/controller/mobiveil/built-in.a
CC drivers/pci/controller/vmd.o
CC drivers/pci/pcie/pme.o
CC arch/x86/mm/tlb.o
CC net/ipv4/ip_sockglue.o
CC crypto/scompress.o
CC crypto/algboss.o
AR drivers/video/backlight/built-in.a
CC net/ethtool/cabletest.o
CC [M] arch/x86/kvm/../../../virt/kvm/pfncache.o
CC drivers/video/fbdev/core/fb_notify.o
AR lib/xz/built-in.a
CC [M] arch/x86/kvm/x86.o
CC arch/x86/kernel/head64.o
CC lib/raid6/avx2.o
CC drivers/pci/hotplug/pciehp_pci.o
CC sound/core/device.o
AR drivers/pinctrl/built-in.a
CC lib/raid6/avx512.o
CC net/ethtool/tunnels.o
AR drivers/char/ipmi/built-in.a
LD [M] net/ipv6/netfilter/nf_defrag_ipv6.o
CC lib/raid6/recov_avx512.o
CC net/ipv6/anycast.o
CC arch/x86/kernel/cpu/match.o
CC block/blk-settings.o
CC lib/zstd/compress/zstd_compress_literals.o
CC drivers/pci/pcie/dpc.o
CC lib/zstd/compress/zstd_compress_sequences.o
CC block/blk-ioc.o
TABLE lib/raid6/tables.c
CC arch/x86/kernel/apic/hw_nmi.o
CC block/blk-map.o
CC arch/x86/kernel/cpu/bugs.o
CC mm/maccess.o
CC arch/x86/events/intel/uncore.o
CC [M] net/netfilter/ipvs/ip_vs_pe.o
CC fs/kernfs/file.o
CC io_uring/epoll.o
CC arch/x86/events/intel/uncore_nhmex.o
CC mm/page-writeback.o
CC sound/core/info.o
AR drivers/idle/built-in.a
CC net/core/net_namespace.o
CC lib/raid6/int1.o
CC lib/fonts/fonts.o
CC sound/core/isadma.o
CC lib/fonts/font_8x8.o
CC [M] drivers/video/fbdev/core/fb_backlight.o
CC [M] drivers/video/fbdev/core/fb_info.o
CC crypto/testmgr.o
CC sound/core/vmaster.o
AR net/unix/built-in.a
AR lib/lz4/built-in.a
CC sound/core/ctljack.o
CC net/ethtool/fec.o
CC [M] net/netfilter/ipvs/ip_vs_proto_tcp.o
CC drivers/pci/hotplug/pciehp_hpc.o
CC [M] net/netfilter/ipvs/ip_vs_proto_udp.o
CC [M] net/netfilter/ipvs/ip_vs_nfct.o
CC net/key/af_key.o
CC fs/proc/generic.o
CC lib/zstd/compress/zstd_compress_superblock.o
AR drivers/pci/controller/built-in.a
CC arch/x86/mm/cpu_entry_area.o
CC drivers/gpio/gpiolib-sysfs.o
CC [M] net/netfilter/nf_conntrack_core.o
CC fs/proc/array.o
CC net/xfrm/xfrm_sysctl.o
CC lib/raid6/int2.o
CC sound/core/jack.o
AR net/bridge/netfilter/built-in.a
CC net/bridge/br.o
CC lib/fonts/font_8x16.o
CC sound/core/timer.o
CC arch/x86/kernel/apic/io_apic.o
AR drivers/pci/pcie/built-in.a
CC net/bridge/br_device.o
CC lib/zstd/compress/zstd_double_fast.o
CC lib/raid6/int4.o
CC lib/zstd/compress/zstd_fast.o
AR net/packet/built-in.a
AR sound/isa/ad1816a/built-in.a
AR sound/isa/ad1848/built-in.a
AR sound/pci/ac97/built-in.a
AR sound/isa/cs423x/built-in.a
AR sound/pci/ali5451/built-in.a
AR sound/isa/es1688/built-in.a
AR sound/pci/asihpi/built-in.a
AR sound/isa/galaxy/built-in.a
AR sound/pci/au88x0/built-in.a
AR sound/isa/gus/built-in.a
AR sound/isa/msnd/built-in.a
AR sound/pci/aw2/built-in.a
AR sound/ppc/built-in.a
AR sound/isa/opti9xx/built-in.a
AR sound/pci/ctxfi/built-in.a
CC lib/raid6/int8.o
CC mm/folio-compat.o
AR sound/isa/sb/built-in.a
CC io_uring/statx.o
AR sound/pci/ca0106/built-in.a
AR sound/isa/wavefront/built-in.a
AR sound/pci/cs46xx/built-in.a
AR sound/isa/wss/built-in.a
AR sound/isa/built-in.a
AR sound/pci/cs5535audio/built-in.a
CC mm/readahead.o
AR sound/pci/lola/built-in.a
CC lib/raid6/int16.o
AR net/dsa/built-in.a
AR sound/pci/lx6464es/built-in.a
CC net/core/secure_seq.o
AR sound/pci/echoaudio/built-in.a
AR sound/pci/emu10k1/built-in.a
CC fs/proc/fd.o
AR sound/pci/hda/built-in.a
CC [M] drivers/video/fbdev/core/fbmem.o
CC [M] sound/pci/hda/hda_bind.o
CC mm/swap.o
CC net/ipv6/ip6_output.o
AR lib/fonts/built-in.a
CC arch/x86/mm/maccess.o
CC sound/core/hrtimer.o
CC net/ipv6/ip6_input.o
CC block/blk-merge.o
CC fs/kernfs/symlink.o
CC drivers/gpio/gpiolib-acpi.o
CC [M] net/netfilter/ipvs/ip_vs_rr.o
CC drivers/acpi/acpica/dsargs.o
CC drivers/acpi/acpica/dscontrol.o
CC arch/x86/events/intel/uncore_snb.o
CC lib/raid6/int32.o
CC net/ethtool/eeprom.o
CC arch/x86/mm/pgprot.o
AR sound/pci/ice1712/built-in.a
CC lib/raid6/tables.o
CC drivers/pci/hotplug/acpiphp_core.o
CC mm/truncate.o
CC net/ipv4/inet_hashtables.o
CC lib/argv_split.o
CC drivers/acpi/acpica/dsdebug.o
CC [M] net/netfilter/nf_conntrack_standalone.o
CC net/xfrm/xfrm_replay.o
CC [M] arch/x86/kvm/emulate.o
CC net/ethtool/stats.o
CC arch/x86/kernel/cpu/aperfmperf.o
CC io_uring/net.o
CC crypto/cmac.o
CC drivers/acpi/acpica/dsfield.o
CC net/ipv4/inet_timewait_sock.o
CC mm/vmscan.o
CC net/bridge/br_fdb.o
AR fs/kernfs/built-in.a
CC [M] sound/pci/hda/hda_codec.o
CC net/bridge/br_forward.o
CC io_uring/msg_ring.o
CC fs/proc/proc_tty.o
CC crypto/hmac.o
CC fs/proc/cmdline.o
CC net/ipv4/inet_connection_sock.o
CC lib/bug.o
AR kernel/sched/built-in.a
CC arch/x86/mm/hugetlbpage.o
CC kernel/power/qos.o
CC net/core/flow_dissector.o
CC fs/proc/consoles.o
CC lib/buildid.o
CC net/core/sysctl_net_core.o
CC net/core/dev.o
AR lib/raid6/built-in.a
LD [M] net/netfilter/ipvs/ip_vs.o
CC arch/x86/kernel/cpu/cpuid-deps.o
CC drivers/pci/hotplug/acpiphp_glue.o
AR sound/arm/built-in.a
AR sound/sh/built-in.a
CC crypto/vmac.o
CC drivers/acpi/acpica/dsinit.o
CC drivers/acpi/acpica/dsmethod.o
CC [M] drivers/video/fbdev/core/fbmon.o
CC drivers/acpi/acpica/dsmthdat.o
CC drivers/gpio/gpiolib-swnode.o
CC arch/x86/events/intel/uncore_snbep.o
CC [M] sound/pci/hda/hda_jack.o
CC sound/core/seq_device.o
CC net/xfrm/xfrm_device.o
CC fs/proc/cpuinfo.o
CC arch/x86/mm/kasan_init_64.o
CC arch/x86/kernel/apic/msi.o
CC net/bridge/br_if.o
CC mm/shmem.o
CC net/xfrm/xfrm_algo.o
CC arch/x86/mm/pkeys.o
CC arch/x86/kernel/cpu/umwait.o
CC net/xfrm/xfrm_user.o
CC block/blk-timeout.o
CC arch/x86/mm/pti.o
CC net/core/dev_addr_lists.o
AR drivers/video/fbdev/omap/built-in.a
CC [M] drivers/video/fbdev/uvesafb.o
AR drivers/video/fbdev/omap2/omapfb/dss/built-in.a
CC net/ethtool/phc_vclocks.o
AR drivers/video/fbdev/omap2/omapfb/displays/built-in.a
CC drivers/acpi/acpica/dsobject.o
AR drivers/video/fbdev/omap2/omapfb/built-in.a
AR drivers/video/fbdev/omap2/built-in.a
AR drivers/gpio/built-in.a
CC net/ethtool/mm.o
CC drivers/pnp/pnpacpi/core.o
CC drivers/pnp/core.o
CC kernel/power/main.o
CC drivers/pnp/pnpacpi/rsparser.o
CC lib/cmdline.o
CC drivers/pnp/card.o
CC kernel/power/console.o
CC [M] sound/core/control_led.o
CC fs/proc/devices.o
AR net/key/built-in.a
CC drivers/acpi/acpica/dsopcode.o
CC net/ipv4/tcp.o
CC io_uring/timeout.o
CC io_uring/sqpoll.o
CC crypto/xcbc.o
CC drivers/acpi/apei/apei-base.o
AR drivers/acpi/pmic/built-in.a
CC [M] net/netfilter/nf_conntrack_expect.o
CC drivers/acpi/apei/hest.o
CC drivers/acpi/apei/erst.o
CC arch/x86/kernel/apic/x2apic_phys.o
CC drivers/acpi/apei/bert.o
AR drivers/pci/hotplug/built-in.a
CC arch/x86/kernel/cpu/proc.o
AR drivers/pci/switch/built-in.a
CC drivers/pci/access.o
CC block/blk-lib.o
CC mm/util.o
AR arch/x86/mm/built-in.a
CC mm/mmzone.o
CC mm/vmstat.o
MKCAP arch/x86/kernel/cpu/capflags.c
CC drivers/acpi/acpica/dspkginit.o
CC net/ipv4/tcp_input.o
CC [M] drivers/video/fbdev/core/fbcmap.o
CC lib/cpumask.o
CC net/ethtool/module.o
CC crypto/crypto_null.o
CC fs/proc/interrupts.o
CC lib/zstd/compress/zstd_lazy.o
AR sound/pci/korg1212/built-in.a
AR sound/pci/mixart/built-in.a
AR sound/pci/nm256/built-in.a
CC drivers/acpi/acpica/dsutils.o
AR sound/pci/oxygen/built-in.a
CC io_uring/fdinfo.o
AR sound/pci/pcxhr/built-in.a
CC drivers/video/aperture.o
AR sound/pci/riptide/built-in.a
AR sound/pci/rme9652/built-in.a
CC [M] sound/core/hwdep.o
CC drivers/acpi/acpica/dswexec.o
AR drivers/pnp/pnpacpi/built-in.a
CC lib/zstd/compress/zstd_ldm.o
CC drivers/pnp/driver.o
CC net/core/dst.o
CC kernel/power/process.o
CC drivers/pnp/resource.o
CC arch/x86/kernel/apic/x2apic_cluster.o
CC arch/x86/kernel/apic/apic_flat_64.o
CC arch/x86/kernel/cpu/powerflags.o
CC net/bridge/br_input.o
CC lib/ctype.o
CC net/core/netevent.o
CC lib/dec_and_lock.o
CC [M] sound/pci/hda/hda_auto_parser.o
CC net/core/neighbour.o
CC lib/decompress.o
CC drivers/acpi/apei/ghes.o
CC block/blk-mq.o
CC lib/decompress_bunzip2.o
CC drivers/acpi/acpica/dswload.o
CC drivers/acpi/acpica/dswload2.o
CC lib/decompress_inflate.o
CC [M] drivers/video/fbdev/simplefb.o
CC fs/proc/loadavg.o
CC drivers/pci/bus.o
CC [M] net/sunrpc/auth_gss/auth_gss.o
CC net/8021q/vlan_core.o
CC net/dcb/dcbnl.o
CC crypto/md5.o
CC crypto/sha1_generic.o
CC net/sunrpc/clnt.o
CC net/ipv6/addrconf.o
CC io_uring/tctx.o
CC [M] drivers/video/fbdev/core/modedb.o
CC [M] drivers/video/fbdev/core/fbcvt.o
CC [M] arch/x86/kvm/i8259.o
CC drivers/pnp/manager.o
CC lib/zstd/compress/zstd_opt.o
CC arch/x86/events/intel/uncore_discovery.o
CC [M] sound/core/pcm.o
CC drivers/video/cmdline.o
CC lib/decompress_unlz4.o
CC net/ethtool/pse-pd.o
CC arch/x86/kernel/apic/probe_64.o
CC drivers/acpi/acpica/dswscope.o
CC net/dcb/dcbevent.o
CC fs/proc/meminfo.o
CC [M] net/netfilter/nf_conntrack_helper.o
CC drivers/pnp/support.o
CC fs/sysfs/file.o
CC lib/decompress_unlzma.o
AR arch/x86/kernel/apic/built-in.a
CC [M] net/8021q/vlan.o
CC [M] net/8021q/vlan_dev.o
CC kernel/power/suspend.o
CC crypto/sha256_generic.o
CC fs/sysfs/dir.o
CC crypto/sha512_generic.o
CC drivers/pci/probe.o
CC io_uring/poll.o
CC [M] arch/x86/kvm/irq.o
CC [M] arch/x86/kvm/lapic.o
CC drivers/pnp/interface.o
CC drivers/acpi/acpica/dswstate.o
CC arch/x86/events/intel/cstate.o
CC [M] sound/pci/hda/hda_sysfs.o
CC net/core/rtnetlink.o
AR drivers/acpi/apei/built-in.a
CC net/l3mdev/l3mdev.o
AR net/xfrm/built-in.a
CC drivers/acpi/dptf/int340x_thermal.o
CC [M] sound/pci/hda/hda_controller.o
CC arch/x86/events/msr.o
CC drivers/acpi/tables.o
CC net/handshake/genl.o
CC net/bridge/br_ioctl.o
CC [M] drivers/video/fbdev/core/fb_cmdline.o
CC lib/zstd/zstd_decompress_module.o
CC fs/proc/stat.o
CC [M] sound/core/pcm_native.o
CC crypto/blake2b_generic.o
CC net/handshake/netlink.o
CC crypto/ecb.o
CC net/handshake/request.o
CC net/ethtool/plca.o
CC net/handshake/tlshd.o
CC drivers/acpi/acpica/evevent.o
CC fs/sysfs/symlink.o
CC net/handshake/trace.o
CC [M] net/bluetooth/af_bluetooth.o
CC drivers/pnp/quirks.o
CC [M] net/bluetooth/hci_core.o
CC mm/backing-dev.o
AR drivers/acpi/dptf/built-in.a
CC [M] sound/pci/hda/hda_proc.o
CC arch/x86/kernel/cpu/feat_ctl.o
CC [M] sound/core/pcm_lib.o
CC fs/sysfs/mount.o
AR arch/x86/events/intel/built-in.a
CC crypto/cbc.o
CC arch/x86/kernel/cpu/intel.o
CC [M] net/8021q/vlan_netlink.o
AR arch/x86/events/built-in.a
CC kernel/power/hibernate.o
CC [M] net/8021q/vlanproc.o
CC drivers/pnp/system.o
CC drivers/acpi/acpica/evgpe.o
CC lib/zstd/decompress/huf_decompress.o
CC fs/proc/uptime.o
CC [M] net/netfilter/nf_conntrack_proto.o
CC [M] drivers/video/fbdev/core/fb_io_fops.o
AR net/l3mdev/built-in.a
AR sound/pci/trident/built-in.a
CC [M] net/netfilter/nf_conntrack_proto_generic.o
AR net/dcb/built-in.a
CC [M] net/dns_resolver/dns_key.o
CC net/devres.o
CC io_uring/cancel.o
CC [M] net/netfilter/nf_conntrack_proto_tcp.o
CC arch/x86/kernel/cpu/intel_pconfig.o
AR sound/pci/ymfpci/built-in.a
CC kernel/power/snapshot.o
CC arch/x86/kernel/cpu/tsx.o
CC crypto/pcbc.o
CC [M] sound/core/pcm_misc.o
AR drivers/pnp/built-in.a
CC net/bridge/br_stp.o
CC net/bridge/br_stp_bpdu.o
CC fs/sysfs/group.o
CC [M] net/sunrpc/auth_gss/gss_generic_token.o
AR net/ethtool/built-in.a
CC drivers/acpi/acpica/evgpeblk.o
CC net/bridge/br_stp_if.o
AR drivers/amba/built-in.a
CC crypto/cts.o
CC fs/proc/util.o
CC net/ipv6/addrlabel.o
CC arch/x86/kernel/cpu/intel_epb.o
CC net/ipv4/tcp_output.o
CC [M] sound/pci/hda/hda_hwdep.o
CC drivers/pci/host-bridge.o
CC lib/zstd/decompress/zstd_ddict.o
CC [M] net/dns_resolver/dns_query.o
CC [M] sound/core/pcm_memory.o
CC [M] drivers/video/fbdev/core/fb_defio.o
AR net/8021q/built-in.a
CC [M] drivers/video/fbdev/core/fb_chrdev.o
AR net/handshake/built-in.a
CC net/ipv4/tcp_timer.o
LD [M] net/8021q/8021q.o
CC crypto/lrw.o
CC drivers/video/nomodeset.o
AR drivers/clk/actions/built-in.a
CC arch/x86/kernel/cpu/amd.o
CC [M] net/netfilter/nf_conntrack_proto_udp.o
AR drivers/clk/analogbits/built-in.a
AR drivers/clk/bcm/built-in.a
AR drivers/clk/imgtec/built-in.a
CC crypto/xts.o
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
CC fs/proc/version.o
AR drivers/clk/mvebu/built-in.a
CC io_uring/kbuf.o
CC fs/proc/softirqs.o
AR drivers/clk/ralink/built-in.a
CC drivers/acpi/acpica/evgpeinit.o
AR drivers/clk/renesas/built-in.a
AR drivers/clk/socfpga/built-in.a
AR drivers/clk/sprd/built-in.a
AR drivers/clk/starfive/built-in.a
CC io_uring/rsrc.o
AR drivers/clk/sunxi-ng/built-in.a
CC net/socket.o
AR drivers/clk/ti/built-in.a
CC mm/mm_init.o
AR drivers/clk/versatile/built-in.a
CC drivers/clk/x86/clk-lpss-atom.o
CC fs/proc/namespaces.o
CC [M] net/bluetooth/hci_conn.o
AR fs/sysfs/built-in.a
CC arch/x86/kernel/cpu/hygon.o
CC [M] net/sunrpc/auth_gss/gss_mech_switch.o
CC drivers/clk/x86/clk-pmc-atom.o
CC lib/decompress_unlzo.o
CC [M] sound/pci/hda/hda_generic.o
CC drivers/pci/remove.o
CC net/core/utils.o
CC net/core/link_watch.o
CC lib/zstd/decompress/zstd_decompress.o
CC drivers/video/hdmi.o
LD [M] net/dns_resolver/dns_resolver.o
CC net/compat.o
CC drivers/pci/pci.o
CC drivers/acpi/acpica/evgpeutil.o
CC net/sysctl_net.o
CC fs/configfs/inode.o
CC arch/x86/kernel/cpu/centaur.o
CC [M] net/sunrpc/auth_gss/svcauth_gss.o
CC lib/decompress_unxz.o
CC lib/decompress_unzstd.o
CC kernel/power/swap.o
CC net/bridge/br_stp_timer.o
CC [M] drivers/video/fbdev/core/fb_procfs.o
CC crypto/ctr.o
CC net/bridge/br_netlink.o
CC arch/x86/kernel/cpu/zhaoxin.o
CC net/ipv6/route.o
CC [M] drivers/video/fbdev/core/fbsysfs.o
CC net/ipv6/ip6_fib.o
CC block/blk-mq-tag.o
CC lib/dump_stack.o
AR drivers/clk/x86/built-in.a
CC [M] arch/x86/kvm/i8254.o
AR drivers/clk/xilinx/built-in.a
CC drivers/clk/clk-devres.o
CC fs/proc/self.o
CC drivers/acpi/acpica/evglock.o
CC drivers/pci/pci-driver.o
CC net/bridge/br_netlink_tunnel.o
CC arch/x86/kernel/cpu/perfctr-watchdog.o
CC lib/zstd/decompress/zstd_decompress_block.o
CC drivers/clk/clk-bulk.o
CC [M] net/netfilter/nf_conntrack_proto_icmp.o
CC net/ipv6/ipv6_sockglue.o
CC fs/configfs/file.o
CC crypto/gcm.o
CC lib/zstd/zstd_common_module.o
CC arch/x86/kernel/ebda.o
CC drivers/clk/clkdev.o
CC lib/zstd/common/debug.o
CC [M] sound/core/memalloc.o
CC crypto/pcrypt.o
CC drivers/acpi/acpica/evhandler.o
CC [M] net/netfilter/nf_conntrack_extend.o
CC fs/proc/thread_self.o
CC net/ipv4/tcp_ipv4.o
CC [M] net/netfilter/nf_conntrack_acct.o
CC arch/x86/kernel/platform-quirks.o
CC fs/configfs/dir.o
CC mm/percpu.o
CC fs/configfs/symlink.o
CC crypto/cryptd.o
CC [M] arch/x86/kvm/ioapic.o
CC [M] drivers/video/fbdev/core/fbcon.o
CC lib/zstd/common/entropy_common.o
CC drivers/dma/dw/core.o
CC lib/zstd/common/error_private.o
CC net/bridge/br_arp_nd_proxy.o
CC arch/x86/kernel/process_64.o
CC block/blk-stat.o
CC arch/x86/kernel/cpu/vmware.o
CC [M] net/bluetooth/hci_event.o
CC io_uring/rw.o
CC drivers/clk/clk.o
CC drivers/acpi/acpica/evmisc.o
CC drivers/acpi/acpica/evregion.o
CC drivers/acpi/acpica/evrgnini.o
CC arch/x86/kernel/signal.o
CC arch/x86/kernel/signal_64.o
CC drivers/clk/clk-divider.o
CC fs/proc/proc_sysctl.o
CC kernel/power/user.o
CC net/bridge/br_sysfs_if.o
CC crypto/des_generic.o
CC fs/configfs/mount.o
CC net/ipv4/tcp_minisocks.o
CC net/ipv4/tcp_cong.o
CC net/ipv6/ndisc.o
CC [M] net/netfilter/nf_conntrack_seqadj.o
CC [M] sound/core/pcm_timer.o
CC arch/x86/kernel/cpu/hypervisor.o
CC drivers/acpi/acpica/evsci.o
CC net/ipv6/udp.o
CC [M] net/bluetooth/mgmt.o
CC arch/x86/kernel/cpu/mshyperv.o
CC [M] arch/x86/kvm/irq_comm.o
CC drivers/pci/search.o
CC arch/x86/kernel/traps.o
CC drivers/acpi/acpica/evxface.o
CC net/core/filter.o
CC io_uring/opdef.o
CC crypto/aes_generic.o
CC block/blk-mq-sysfs.o
CC mm/slab_common.o
CC net/sunrpc/xprt.o
CC arch/x86/kernel/idt.o
CC net/core/sock_diag.o
CC arch/x86/kernel/irq.o
CC fs/configfs/item.o
CC [M] net/sunrpc/auth_gss/gss_rpc_upcall.o
CC [M] net/sunrpc/auth_gss/gss_rpc_xdr.o
CC kernel/power/poweroff.o
CC net/sunrpc/socklib.o
CC fs/proc/proc_net.o
CC net/bridge/br_sysfs_br.o
CC net/ipv6/udplite.o
CC drivers/dma/dw/dw.o
LD [M] sound/core/snd-ctl-led.o
LD [M] sound/core/snd-hwdep.o
LD [M] sound/core/snd-pcm.o
CC net/bridge/br_nf_core.o
AR kernel/power/built-in.a
CC kernel/printk/printk.o
AR sound/core/built-in.a
CC kernel/irq/irqdesc.o
CC kernel/irq/handle.o
CC drivers/acpi/acpica/evxfevnt.o
CC io_uring/notif.o
CC drivers/dma/hsu/hsu.o
CC net/ipv6/raw.o
CC arch/x86/kernel/cpu/capflags.o
AR fs/configfs/built-in.a
AR drivers/soc/apple/built-in.a
CC drivers/virtio/virtio.o
AR drivers/soc/aspeed/built-in.a
AR arch/x86/kernel/cpu/built-in.a
CC block/blk-mq-cpumap.o
AR drivers/soc/bcm/bcm63xx/built-in.a
AR drivers/soc/bcm/built-in.a
AR drivers/soc/fsl/built-in.a
AR drivers/soc/fujitsu/built-in.a
AR drivers/soc/imx/built-in.a
CC drivers/virtio/virtio_ring.o
CC drivers/pci/pci-sysfs.o
AR drivers/soc/ixp4xx/built-in.a
AR drivers/soc/loongson/built-in.a
AR drivers/soc/mediatek/built-in.a
AR drivers/soc/microchip/built-in.a
CC [M] net/netfilter/nf_conntrack_proto_icmpv6.o
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
AR drivers/soc/renesas/built-in.a
AR drivers/soc/rockchip/built-in.a
CC mm/compaction.o
CC [M] drivers/video/fbdev/core/bitblit.o
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
CC kernel/printk/printk_safe.o
AR drivers/soc/built-in.a
CC drivers/dma/dw/idma32.o
CC [M] arch/x86/kvm/cpuid.o
CC drivers/virtio/virtio_anchor.o
CC arch/x86/kernel/irq_64.o
CC net/sunrpc/xprtsock.o
CC drivers/acpi/acpica/evxfgpe.o
CC drivers/pci/rom.o
CC fs/proc/kcore.o
CC lib/zstd/common/fse_decompress.o
CC crypto/deflate.o
CC block/blk-mq-sched.o
CC crypto/crc32c_generic.o
CC net/sunrpc/sched.o
CC kernel/irq/manage.o
CC [M] net/sunrpc/auth_gss/trace.o
CC net/sunrpc/auth.o
CC drivers/dma/dw/acpi.o
CC lib/zstd/common/zstd_common.o
CC fs/devpts/inode.o
CC net/bridge/br_multicast.o
CC kernel/printk/printk_ringbuffer.o
CC kernel/irq/spurious.o
CC kernel/irq/resend.o
AR drivers/dma/idxd/built-in.a
CC net/sunrpc/auth_null.o
AR drivers/dma/hsu/built-in.a
CC net/ipv4/tcp_metrics.o
CC net/sunrpc/auth_unix.o
CC drivers/pci/setup-res.o
CC [M] sound/pci/hda/patch_realtek.o
CC drivers/acpi/acpica/evxfregn.o
CC crypto/crct10dif_common.o
CC [M] arch/x86/kvm/pmu.o
CC io_uring/io-wq.o
CC kernel/irq/chip.o
CC mm/interval_tree.o
CC drivers/dma/dw/pci.o
CC [M] arch/x86/kvm/mtrr.o
CC [M] arch/x86/kvm/hyperv.o
CC drivers/clk/clk-fixed-factor.o
CC fs/ext4/balloc.o
CC [M] drivers/video/fbdev/core/softcursor.o
CC arch/x86/kernel/dumpstack_64.o
CC fs/ext4/bitmap.o
CC fs/proc/kmsg.o
CC crypto/crct10dif_generic.o
CC crypto/authenc.o
CC net/sunrpc/svc.o
CC drivers/virtio/virtio_pci_modern_dev.o
CC drivers/acpi/acpica/exconcat.o
CC net/bridge/br_mdb.o
CC net/ipv6/icmp.o
CC [M] net/netfilter/nf_conntrack_proto_dccp.o
CC net/ipv6/mcast.o
AR fs/devpts/built-in.a
CC crypto/authencesn.o
CC block/ioctl.o
AR drivers/dma/dw/built-in.a
CC drivers/pci/irq.o
AR drivers/dma/mediatek/built-in.a
CC drivers/clk/clk-fixed-rate.o
AR drivers/dma/qcom/built-in.a
AR drivers/dma/ti/built-in.a
AR drivers/dma/xilinx/built-in.a
CC [M] drivers/dma/ioat/init.o
CC drivers/clk/clk-gate.o
CC arch/x86/kernel/time.o
CC drivers/pci/vpd.o
CC lib/earlycpio.o
CC fs/proc/page.o
CC [M] net/netfilter/nf_conntrack_proto_sctp.o
CC kernel/printk/sysctl.o
CC drivers/acpi/acpica/exconfig.o
CC fs/jbd2/transaction.o
CC fs/ramfs/inode.o
CC lib/extable.o
CC net/sunrpc/svcsock.o
CC fs/ramfs/file-mmu.o
CC drivers/clk/clk-multiplier.o
CC [M] drivers/video/fbdev/core/tileblit.o
CC drivers/dma/dmaengine.o
CC [M] net/sunrpc/auth_gss/gss_krb5_mech.o
CC kernel/irq/dummychip.o
CC [M] net/sunrpc/auth_gss/gss_krb5_seal.o
AR kernel/printk/built-in.a
CC fs/hugetlbfs/inode.o
CC drivers/virtio/virtio_pci_legacy_dev.o
CC drivers/virtio/virtio_mmio.o
CC drivers/virtio/virtio_pci_modern.o
AR sound/synth/emux/built-in.a
CC arch/x86/kernel/ioport.o
AR sound/synth/built-in.a
CC drivers/pci/setup-bus.o
CC fs/ext4/block_validity.o
CC [M] net/sunrpc/auth_gss/gss_krb5_unseal.o
CC drivers/acpi/acpica/exconvrt.o
CC [M] arch/x86/kvm/debugfs.o
CC fs/jbd2/commit.o
CC block/genhd.o
CC crypto/lzo.o
CC arch/x86/kernel/dumpstack.o
CC drivers/virtio/virtio_pci_common.o
CC drivers/clk/clk-mux.o
AR io_uring/built-in.a
CC [M] sound/pci/hda/patch_analog.o
CC [M] net/netfilter/nf_conntrack_netlink.o
CC net/ipv4/tcp_fastopen.o
CC kernel/irq/devres.o
CC net/bridge/br_multicast_eht.o
AR fs/ramfs/built-in.a
CC block/ioprio.o
CC [M] net/sunrpc/auth_gss/gss_krb5_seqnum.o
CC block/badblocks.o
AR fs/proc/built-in.a
CC fs/fat/cache.o
CC [M] drivers/video/fbdev/core/cfbfillrect.o
CC fs/nfs/client.o
CC drivers/acpi/acpica/excreate.o
CC drivers/virtio/virtio_pci_legacy.o
CC kernel/rcu/update.o
CC [M] drivers/dma/ioat/dma.o
CC net/sunrpc/svcauth.o
CC kernel/rcu/sync.o
CC lib/flex_proportions.o
CC drivers/clk/clk-composite.o
CC drivers/dma/virt-dma.o
CC crypto/lzo-rle.o
CC lib/idr.o
CC kernel/irq/autoprobe.o
CC arch/x86/kernel/nmi.o
CC kernel/irq/irqdomain.o
CC lib/irq_regs.o
CC [M] net/sunrpc/auth_gss/gss_krb5_wrap.o
CC fs/ext4/dir.o
CC kernel/irq/proc.o
CC mm/list_lru.o
CC [M] net/bluetooth/hci_sock.o
CC block/blk-rq-qos.o
CC [M] net/sunrpc/auth_gss/gss_krb5_crypto.o
CC drivers/acpi/acpica/exdebug.o
CC [M] sound/pci/hda/patch_hdmi.o
CC crypto/lz4.o
CC kernel/irq/migration.o
CC fs/nfs/dir.o
CC [M] arch/x86/kvm/mmu/mmu.o
CC [M] net/sunrpc/auth_gss/gss_krb5_keys.o
CC [M] sound/pci/hda/hda_eld.o
CC [M] net/bluetooth/hci_sysfs.o
AR fs/hugetlbfs/built-in.a
CC kernel/rcu/srcutree.o
CC kernel/rcu/tree.o
CC fs/fat/dir.o
CC [M] drivers/virtio/virtio_mem.o
CC drivers/dma/acpi-dma.o
CC net/bridge/br_vlan.o
CC kernel/rcu/rcu_segcblist.o
CC [M] arch/x86/kvm/mmu/page_track.o
CC drivers/clk/clk-fractional-divider.o
CC [M] drivers/video/fbdev/core/cfbcopyarea.o
CC arch/x86/kernel/ldt.o
CC crypto/lz4hc.o
CC [M] sound/pci/hda/hda_intel.o
CC drivers/acpi/acpica/exdump.o
CC crypto/xxhash_generic.o
CC fs/jbd2/recovery.o
CC fs/exportfs/expfs.o
CC fs/lockd/clntlock.o
CC fs/nls/nls_base.o
CC net/bridge/br_vlan_tunnel.o
CC net/bridge/br_vlan_options.o
CC drivers/pci/vc.o
CC block/disk-events.o
CC net/ipv4/tcp_rate.o
CC lib/is_single_threaded.o
CC drivers/acpi/acpica/exfield.o
CC crypto/rng.o
CC fs/ext4/ext4_jbd2.o
CC mm/workingset.o
CC [M] drivers/dma/ioat/prep.o
CC crypto/drbg.o
AR sound/pci/vx222/built-in.a
CC [M] drivers/dma/ioat/dca.o
CC drivers/clk/clk-gpio.o
CC kernel/irq/cpuhotplug.o
CC net/ipv4/tcp_recovery.o
AR fs/unicode/built-in.a
CC fs/fat/fatent.o
CC net/ipv4/tcp_ulp.o
CC [M] drivers/dma/ioat/sysfs.o
CC fs/nls/nls_cp437.o
LD [M] net/sunrpc/auth_gss/auth_rpcgss.o
CC arch/x86/kernel/setup.o
CC net/sunrpc/svcauth_unix.o
CC [M] net/bluetooth/l2cap_core.o
CC arch/x86/kernel/x86_init.o
LD [M] net/sunrpc/auth_gss/rpcsec_gss_krb5.o
CC net/ipv4/tcp_offload.o
CC net/sunrpc/addr.o
AR fs/exportfs/built-in.a
LD [M] sound/pci/hda/snd-hda-codec.o
CC [M] drivers/video/fbdev/core/cfbimgblt.o
CC drivers/acpi/acpica/exfldio.o
CC fs/ext4/extents.o
CC [M] arch/x86/kvm/mmu/spte.o
CC net/ipv4/tcp_plb.o
CC drivers/pci/mmap.o
CC drivers/pci/setup-irq.o
CC fs/nls/nls_ascii.o
AR drivers/clk/built-in.a
CC block/blk-ia-ranges.o
CC drivers/tty/vt/vt_ioctl.o
CC drivers/tty/hvc/hvc_console.o
CC fs/jbd2/checkpoint.o
CC kernel/irq/pm.o
CC fs/jbd2/revoke.o
CC net/ipv6/reassembly.o
CC [M] arch/x86/kvm/mmu/tdp_iter.o
CC fs/nls/nls_iso8859-1.o
CC mm/debug.o
CC drivers/tty/vt/vc_screen.o
CC [M] net/netfilter/nf_nat_core.o
CC fs/lockd/clntproc.o
CC drivers/tty/vt/selection.o
CC drivers/acpi/acpica/exmisc.o
CC net/sunrpc/rpcb_clnt.o
CC drivers/char/hw_random/core.o
AR drivers/iommu/amd/built-in.a
CC drivers/iommu/intel/dmar.o
LD [M] drivers/dma/ioat/ioatdma.o
CC fs/ext4/extents_status.o
AR drivers/dma/built-in.a
CC drivers/char/hw_random/intel-rng.o
CC fs/nls/nls_utf8.o
CC fs/fat/file.o
CC drivers/pci/proc.o
CC net/bridge/br_mst.o
CC fs/fat/inode.o
CC arch/x86/kernel/i8259.o
CC [M] drivers/video/fbdev/core/sysfillrect.o
CC [M] arch/x86/kvm/mmu/tdp_mmu.o
AR drivers/virtio/built-in.a
CC [M] arch/x86/kvm/smm.o
AR drivers/iommu/arm/arm-smmu/built-in.a
CC [M] arch/x86/kvm/vmx/vmx.o
CC fs/fat/misc.o
CC fs/fat/nfs.o
AR drivers/iommu/arm/arm-smmu-v3/built-in.a
AR drivers/iommu/arm/built-in.a
AR drivers/gpu/host1x/built-in.a
CC block/bsg.o
LD [M] sound/pci/hda/snd-hda-codec-generic.o
AR drivers/gpu/drm/tests/built-in.a
CC net/ipv4/datagram.o
CC [M] drivers/gpu/drm/tests/drm_kunit_helpers.o
LD [M] sound/pci/hda/snd-hda-codec-realtek.o
LD [M] sound/pci/hda/snd-hda-codec-analog.o
CC drivers/acpi/acpica/exmutex.o
LD [M] sound/pci/hda/snd-hda-codec-hdmi.o
CC kernel/irq/msi.o
CC drivers/connector/cn_queue.o
LD [M] sound/pci/hda/snd-hda-intel.o
AR sound/pci/built-in.a
CC crypto/jitterentropy.o
AR fs/nls/built-in.a
AR kernel/livepatch/built-in.a
CC drivers/char/agp/backend.o
CC drivers/char/agp/generic.o
AR sound/usb/misc/built-in.a
AR sound/usb/usx2y/built-in.a
CC crypto/jitterentropy-kcapi.o
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
AR sound/firewire/built-in.a
AR drivers/tty/hvc/built-in.a
CC drivers/char/agp/isoch.o
AR sound/sparc/built-in.a
AR sound/spi/built-in.a
CC [M] arch/x86/kvm/kvm-asm-offsets.s
CC net/ipv4/raw.o
CC kernel/dma/mapping.o
AR sound/parisc/built-in.a
AR sound/pcmcia/vx/built-in.a
CC [M] arch/x86/kvm/vmx/pmu_intel.o
CC mm/gup.o
AR sound/pcmcia/pdaudiocf/built-in.a
AR sound/pcmcia/built-in.a
AR sound/mips/built-in.a
CC fs/jbd2/journal.o
AR sound/soc/built-in.a
CC drivers/tty/vt/keyboard.o
AR sound/atmel/built-in.a
CC arch/x86/kernel/irqinit.o
AR sound/hda/built-in.a
CC [M] sound/hda/hda_bus_type.o
CC drivers/acpi/acpica/exnames.o
AR drivers/char/hw_random/built-in.a
CC net/ipv4/udp.o
CC block/bsg-lib.o
CC [M] drivers/gpu/drm/tests/drm_buddy_test.o
CC [M] net/bluetooth/l2cap_sock.o
CC drivers/pci/slot.o
CC fs/fat/namei_vfat.o
CC crypto/ghash-generic.o
CC net/core/dev_ioctl.o
CC drivers/acpi/blacklist.o
CC net/ipv4/udplite.o
CC [M] net/bluetooth/smp.o
CC [M] drivers/video/fbdev/core/syscopyarea.o
CC fs/nfs/file.o
CC net/ipv4/udp_offload.o
CC drivers/acpi/acpica/exoparg1.o
CC fs/lockd/clntxdr.o
CC net/ipv6/tcp_ipv6.o
CC drivers/iommu/intel/iommu.o
CC [M] sound/hda/hdac_bus.o
CC [M] net/netfilter/nf_nat_proto.o
CC drivers/connector/connector.o
CC block/blk-cgroup.o
CC [M] net/bridge/br_netfilter_hooks.o
CC drivers/iommu/intel/pasid.o
CC crypto/af_alg.o
CC fs/fat/namei_msdos.o
CC arch/x86/kernel/jump_label.o
CC net/ipv4/arp.o
CC drivers/acpi/osi.o
CC net/ipv6/ping.o
CC drivers/acpi/acpica/exoparg2.o
CC drivers/char/agp/intel-agp.o
CC kernel/irq/affinity.o
CC kernel/irq/matrix.o
CC kernel/dma/direct.o
CC net/sunrpc/timer.o
CC fs/lockd/host.o
CC drivers/pci/pci-acpi.o
CC fs/lockd/svc.o
CC drivers/acpi/acpica/exoparg3.o
AR lib/zstd/built-in.a
CC lib/klist.o
CC [M] drivers/gpu/drm/tests/drm_cmdline_parser_test.o
CC fs/ext4/file.o
CC [M] drivers/video/fbdev/core/sysimgblt.o
CC drivers/connector/cn_proc.o
CC net/ipv4/icmp.o
CC drivers/pci/quirks.o
CC [M] sound/hda/hdac_device.o
CC drivers/acpi/acpica/exoparg6.o
CC drivers/iommu/intel/trace.o
CC arch/x86/kernel/irq_work.o
CC fs/lockd/svclock.o
CC net/core/tso.o
CC drivers/acpi/acpica/exprep.o
CC lib/kobject.o
CC drivers/tty/vt/consolemap.o
CC kernel/dma/ops_helpers.o
AR fs/fat/built-in.a
AR drivers/iommu/iommufd/built-in.a
CC mm/mmap_lock.o
CC drivers/iommu/iommu.o
HOSTCC drivers/tty/vt/conmakehash
CC arch/x86/kernel/probe_roms.o
CC drivers/char/agp/intel-gtt.o
CC [M] arch/x86/kvm/vmx/vmcs12.o
AR drivers/gpu/vga/built-in.a
CC drivers/acpi/acpica/exregion.o
CC fs/ntfs/aops.o
CC kernel/dma/dummy.o
CC net/sunrpc/xdr.o
CC arch/x86/kernel/sys_ia32.o
CC drivers/tty/vt/vt.o
CC net/ipv4/devinet.o
CC fs/ntfs/attrib.o
CC drivers/base/power/sysfs.o
CC [M] drivers/video/fbdev/core/fb_sys_fops.o
AR kernel/irq/built-in.a
CC drivers/base/power/generic_ops.o
CC [M] net/netfilter/nf_nat_helper.o
AR kernel/rcu/built-in.a
CC drivers/block/loop.o
AR drivers/misc/eeprom/built-in.a
CC drivers/mfd/mfd-core.o
AR drivers/nfc/built-in.a
AR drivers/misc/cb710/built-in.a
CC fs/nfs/getroot.o
AR drivers/misc/ti-st/built-in.a
AR drivers/dax/hmem/built-in.a
CC drivers/tty/serial/8250/8250_core.o
CC drivers/dax/super.o
AR drivers/misc/lis3lv02d/built-in.a
CC mm/highmem.o
CC [M] sound/hda/hdac_sysfs.o
AR drivers/misc/cardreader/built-in.a
CC lib/kobject_uevent.o
CC drivers/tty/serial/8250/8250_pnp.o
CC drivers/acpi/acpica/exresnte.o
CC [M] drivers/misc/mei/hdcp/mei_hdcp.o
CC [M] drivers/misc/mei/pxp/mei_pxp.o
CC crypto/algif_hash.o
CC net/core/sock_reuseport.o
CC kernel/dma/contiguous.o
AR drivers/misc/built-in.a
AR drivers/connector/built-in.a
CC drivers/dax/bus.o
CC drivers/dma-buf/dma-buf.o
CC block/blk-cgroup-rwstat.o
CC block/blk-throttle.o
CC arch/x86/kernel/signal_32.o
CC fs/ext4/fsmap.o
COPY drivers/tty/vt/defkeymap.c
CC fs/lockd/svcshare.o
CC fs/lockd/svcproc.o
CC drivers/tty/serial/serial_core.o
CC drivers/base/power/common.o
CC drivers/acpi/acpica/exresolv.o
AR fs/jbd2/built-in.a
AR drivers/cxl/core/built-in.a
AR drivers/cxl/built-in.a
CC fs/lockd/svcsubs.o
CC drivers/char/tpm/tpm-chip.o
CC drivers/char/mem.o
AR drivers/char/agp/built-in.a
CC drivers/acpi/osl.o
CC [M] net/bridge/br_netfilter_ipv6.o
CC [M] drivers/gpu/drm/tests/drm_connector_test.o
CC net/ipv6/exthdrs.o
CC mm/memory.o
LD [M] drivers/video/fbdev/core/fb.o
CC drivers/char/random.o
AR drivers/video/fbdev/core/built-in.a
CC [M] net/bluetooth/lib.o
CC drivers/base/power/qos.o
AR drivers/video/fbdev/built-in.a
AR drivers/video/built-in.a
CC fs/ntfs/collate.o
CC drivers/char/misc.o
CC fs/ntfs/compress.o
CC kernel/dma/swiotlb.o
CC [M] sound/hda/hdac_regmap.o
CC drivers/mfd/intel-lpss.o
CC fs/ntfs/debug.o
CC drivers/acpi/acpica/exresop.o
CC [M] drivers/misc/mei/init.o
CC drivers/acpi/acpica/exserial.o
CC fs/ntfs/dir.o
CC fs/lockd/mon.o
CC fs/nfs/inode.o
CC drivers/tty/serial/8250/8250_port.o
CC lib/logic_pio.o
CC [M] net/netfilter/nf_nat_redirect.o
CC arch/x86/kernel/sys_x86_64.o
CC crypto/algif_skcipher.o
CC block/mq-deadline.o
CC [M] drivers/gpu/drm/tests/drm_damage_helper_test.o
CC drivers/iommu/intel/cap_audit.o
CC drivers/pci/ats.o
CC drivers/char/tpm/tpm-dev-common.o
CC fs/ntfs/file.o
CC fs/ntfs/index.o
CC crypto/xor.o
CC drivers/dma-buf/dma-fence.o
CC drivers/dma-buf/dma-fence-array.o
CC drivers/pci/iov.o
CC drivers/pci/pci-label.o
CC [M] drivers/gpu/drm/tests/drm_dp_mst_helper_test.o
CC drivers/acpi/acpica/exstore.o
AR drivers/dax/built-in.a
CC drivers/iommu/iommu-traces.o
CC fs/lockd/trace.o
CC drivers/mfd/intel-lpss-pci.o
CC [M] sound/hda/hdac_controller.o
CC fs/lockd/xdr.o
CC drivers/char/virtio_console.o
CC [M] net/bluetooth/ecdh_helper.o
CC [M] drivers/misc/mei/hbm.o
CC drivers/block/virtio_blk.o
CC net/core/fib_notifier.o
CC drivers/dma-buf/dma-fence-chain.o
CC drivers/base/power/runtime.o
CC lib/maple_tree.o
CC block/kyber-iosched.o
CC [M] arch/x86/kvm/vmx/hyperv.o
AR net/bridge/built-in.a
LD [M] net/bridge/br_netfilter.o
CC arch/x86/kernel/espfix_64.o
CC drivers/acpi/utils.o
CC drivers/acpi/acpica/exstoren.o
CC fs/ext4/fsync.o
CC drivers/dma-buf/dma-fence-unwrap.o
CC drivers/dma-buf/dma-resv.o
CC kernel/dma/remap.o
CC [M] drivers/block/nbd.o
CC drivers/acpi/acpica/exstorob.o
CC net/sunrpc/sunrpc_syms.o
CC fs/ext4/hash.o
CC drivers/char/tpm/tpm-dev.o
CC [M] net/netfilter/nf_nat_masquerade.o
CC arch/x86/kernel/ksysfs.o
CC fs/nfs/super.o
CC drivers/mfd/intel-lpss-acpi.o
CC fs/ntfs/inode.o
CC drivers/mfd/intel_soc_pmic_crc.o
CC net/ipv4/af_inet.o
CC crypto/hash_info.o
CC drivers/iommu/intel/irq_remapping.o
CC crypto/simd.o
CC [M] net/bluetooth/hci_request.o
CC drivers/acpi/acpica/exsystem.o
CC [M] drivers/gpu/drm/tests/drm_format_helper_test.o
CC fs/lockd/clnt4xdr.o
CONMK drivers/tty/vt/consolemap_deftbl.c
CC net/ipv4/igmp.o
CC drivers/iommu/iommu-sysfs.o
CC drivers/tty/vt/defkeymap.o
CC drivers/iommu/dma-iommu.o
CC [M] sound/hda/hdac_stream.o
CC drivers/tty/vt/consolemap_deftbl.o
CC net/ipv4/fib_frontend.o
CC drivers/pci/pci-stub.o
CC fs/autofs/init.o
AR fs/hostfs/built-in.a
AR drivers/gpu/drm/arm/built-in.a
AR drivers/tty/ipwireless/built-in.a
CC drivers/tty/serial/earlycon.o
CC block/bfq-iosched.o
CC drivers/pci/vgaarb.o
AR drivers/tty/vt/built-in.a
CC fs/debugfs/inode.o
AR kernel/dma/built-in.a
CC net/core/xdp.o
CC kernel/entry/common.o
CC drivers/tty/serial/serial_mctrl_gpio.o
CC fs/debugfs/file.o
CC drivers/base/power/wakeirq.o
CC drivers/acpi/acpica/extrace.o
CC net/ipv6/datagram.o
CC drivers/char/tpm/tpm-interface.o
CC drivers/acpi/reboot.o
CC drivers/acpi/acpica/exutils.o
CC arch/x86/kernel/bootflag.o
CC [M] drivers/misc/mei/interrupt.o
CC drivers/acpi/acpica/hwacpi.o
CC [M] drivers/mfd/lpc_sch.o
CC [M] crypto/md4.o
CC [M] drivers/mfd/lpc_ich.o
AR drivers/macintosh/built-in.a
CC mm/mincore.o
AR drivers/gpu/drm/display/built-in.a
CC [M] drivers/gpu/drm/display/drm_display_helper_mod.o
CC fs/autofs/inode.o
CC drivers/dma-buf/sync_file.o
AR drivers/gpu/drm/renesas/rcar-du/built-in.a
AR drivers/gpu/drm/renesas/built-in.a
CC drivers/dma-buf/sw_sync.o
CC drivers/tty/serial/8250/8250_dma.o
CC [M] sound/hda/array.o
CC net/sunrpc/cache.o
CC fs/ext4/ialloc.o
CC [M] sound/hda/hdmi_chmap.o
AR drivers/gpu/drm/omapdrm/built-in.a
CC [M] sound/hda/trace.o
CC [M] arch/x86/kvm/vmx/nested.o
CC drivers/tty/tty_io.o
CC [M] drivers/gpu/drm/tests/drm_format_test.o
CC drivers/base/power/main.o
CC drivers/char/hpet.o
CC drivers/acpi/acpica/hwesleep.o
CC block/bfq-wf2q.o
CC arch/x86/kernel/e820.o
CC fs/lockd/xdr4.o
CC [M] drivers/gpu/drm/display/drm_dp_dual_mode_helper.o
CC drivers/scsi/scsi.o
CC drivers/scsi/hosts.o
CC [M] drivers/gpu/drm/display/drm_dp_helper.o
CC [M] net/netfilter/x_tables.o
CC [M] crypto/ccm.o
CC fs/ext4/indirect.o
CC fs/ext4/inline.o
CC drivers/char/tpm/tpm1-cmd.o
CC fs/ext4/inode.o
CC fs/ntfs/mft.o
CC fs/nfs/io.o
CC drivers/iommu/intel/perfmon.o
CC kernel/entry/syscall_user_dispatch.o
AR fs/debugfs/built-in.a
CC [M] net/bluetooth/mgmt_util.o
CC [M] crypto/arc4.o
CC [M] arch/x86/kvm/vmx/posted_intr.o
CC [M] drivers/misc/mei/client.o
LD [M] arch/x86/kvm/kvm.o
CC drivers/acpi/acpica/hwgpe.o
CC fs/autofs/root.o
AR drivers/pci/built-in.a
AR drivers/mfd/built-in.a
CC drivers/dma-buf/sync_debug.o
CC [M] sound/hda/hdac_component.o
CC [M] sound/hda/hdac_i915.o
CC drivers/tty/serial/8250/8250_dwlib.o
CC mm/mlock.o
CC [M] net/bluetooth/mgmt_config.o
AR drivers/gpu/drm/tilcdc/built-in.a
AR drivers/gpu/drm/imx/built-in.a
AR drivers/gpu/drm/i2c/built-in.a
AR drivers/gpu/drm/panel/built-in.a
CC [M] crypto/ecc.o
CC [M] net/bluetooth/hci_codec.o
AR drivers/gpu/drm/bridge/analogix/built-in.a
AR drivers/gpu/drm/hisilicon/built-in.a
CC [M] sound/hda/intel-dsp-config.o
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
CC [M] drivers/gpu/drm/tests/drm_framebuffer_test.o
AR drivers/gpu/drm/bridge/built-in.a
CC [M] drivers/gpu/drm/tests/drm_managed_test.o
CC kernel/entry/kvm.o
CC [M] drivers/gpu/drm/tests/drm_mm_test.o
CC drivers/tty/serial/8250/8250_pcilib.o
CC fs/autofs/symlink.o
CC net/core/flow_offload.o
CC drivers/acpi/acpica/hwregs.o
CC net/ipv4/fib_semantics.o
CC [M] drivers/dma-buf/selftest.o
CC [M] drivers/misc/mei/main.o
CC fs/ntfs/mst.o
CC net/ipv6/ip6_flowlabel.o
CC [M] drivers/gpu/drm/tests/drm_modes_test.o
CC drivers/char/tpm/tpm2-cmd.o
AR drivers/gpu/drm/mxsfb/built-in.a
CC fs/autofs/waitq.o
AR drivers/gpu/drm/tiny/built-in.a
CC net/ipv4/fib_trie.o
CC net/ipv4/fib_notifier.o
CC fs/lockd/svc4proc.o
CC drivers/iommu/iova.o
CC arch/x86/kernel/pci-dma.o
AR drivers/block/built-in.a
CC [M] drivers/dma-buf/st-dma-fence.o
CC fs/nfs/direct.o
CC drivers/scsi/scsi_ioctl.o
AR drivers/gpu/drm/xlnx/built-in.a
CC fs/tracefs/inode.o
CC drivers/acpi/nvs.o
CC [M] drivers/gpu/drm/tests/drm_plane_helper_test.o
CC [M] drivers/gpu/drm/tests/drm_probe_helper_test.o
CC [M] net/bluetooth/eir.o
CC [M] drivers/gpu/drm/tests/drm_rect_test.o
CC [M] sound/hda/intel-nhlt.o
CC drivers/acpi/acpica/hwsleep.o
AR sound/x86/built-in.a
UPD arch/x86/kvm/kvm-asm-offsets.h
AS [M] arch/x86/kvm/vmx/vmenter.o
CC [M] net/bluetooth/hci_sync.o
AR drivers/iommu/intel/built-in.a
CC drivers/tty/serial/8250/8250_pci.o
CC [M] sound/hda/intel-sdw-acpi.o
CC fs/ntfs/namei.o
AR kernel/entry/built-in.a
CC fs/ntfs/runlist.o
CC kernel/module/main.o
CC fs/btrfs/super.o
CC kernel/module/strict_rwx.o
CC fs/pstore/inode.o
CC fs/ntfs/super.o
CC drivers/char/tpm/tpmrm-dev.o
CC drivers/base/power/wakeup.o
CC fs/autofs/expire.o
CC arch/x86/kernel/quirks.o
CC [M] drivers/gpu/drm/display/drm_dp_mst_topology.o
CC drivers/acpi/acpica/hwvalid.o
CC [M] drivers/dma-buf/st-dma-fence-chain.o
CC kernel/module/kmod.o
CC fs/pstore/platform.o
CC fs/ntfs/sysctl.o
CC [M] net/netfilter/xt_tcpudp.o
CC [M] net/netfilter/xt_mark.o
CC drivers/iommu/irq_remapping.o
CC [M] net/netfilter/xt_nat.o
CC [M] drivers/dma-buf/st-dma-fence-unwrap.o
AR fs/tracefs/built-in.a
CC net/ipv4/inet_fragment.o
CC net/ipv6/inet6_connection_sock.o
CC net/core/gro.o
CC drivers/char/tpm/tpm2-space.o
CC [M] crypto/essiv.o
CC [M] drivers/misc/mei/dma-ring.o
CC drivers/char/tpm/tpm-sysfs.o
LD [M] sound/hda/snd-hda-core.o
LD [M] sound/hda/snd-intel-dspcfg.o
LD [M] sound/hda/snd-intel-sdw-acpi.o
CC drivers/acpi/acpica/hwxface.o
AR sound/xen/built-in.a
AR sound/virtio/built-in.a
CC drivers/scsi/scsicam.o
CC mm/mmap.o
CC drivers/scsi/scsi_error.o
CC sound/sound_core.o
CC fs/lockd/procfs.o
CC drivers/scsi/scsi_lib.o
CC net/sunrpc/rpc_pipe.o
CC fs/nfs/pagelist.o
CC block/bfq-cgroup.o
CC drivers/acpi/acpica/hwxfsleep.o
CC net/ipv6/udp_offload.o
CC [M] net/bluetooth/coredump.o
CC fs/autofs/dev-ioctl.o
CC fs/ext4/ioctl.o
CC [M] crypto/ecdh.o
CC [M] crypto/ecdh_helper.o
CC arch/x86/kernel/topology.o
CC fs/pstore/pmsg.o
CC sound/last.o
CC mm/mmu_gather.o
CC [M] drivers/dma-buf/st-dma-resv.o
CC arch/x86/kernel/kdebugfs.o
AR drivers/gpu/drm/gud/built-in.a
AR drivers/iommu/built-in.a
CC net/ipv6/seg6.o
CC drivers/acpi/acpica/hwpci.o
CC [M] drivers/misc/mei/bus.o
CC [M] drivers/misc/mei/bus-fixup.o
CC block/blk-mq-pci.o
AR drivers/gpu/drm/solomon/built-in.a
CC drivers/scsi/scsi_lib_dma.o
CC [M] drivers/gpu/drm/ttm/ttm_tt.o
CC [M] drivers/gpu/drm/scheduler/sched_main.o
CC drivers/tty/serial/8250/8250_exar.o
CC drivers/scsi/scsi_scan.o
CC drivers/char/tpm/eventlog/common.o
AR drivers/dma-buf/built-in.a
CC block/blk-mq-virtio.o
CC kernel/module/tree_lookup.o
AR fs/lockd/built-in.a
CC [M] drivers/gpu/drm/ttm/ttm_bo.o
CC drivers/base/power/wakeup_stats.o
CC [M] drivers/gpu/drm/display/drm_dsc_helper.o
AR sound/built-in.a
AR crypto/built-in.a
CC arch/x86/kernel/alternative.o
CC [M] drivers/gpu/drm/display/drm_hdcp_helper.o
LD [M] crypto/ecdh_generic.o
CC fs/ntfs/unistr.o
CC [M] net/netfilter/xt_REDIRECT.o
CC net/ipv4/ping.o
CC [M] drivers/gpu/drm/scheduler/sched_fence.o
CC drivers/acpi/acpica/nsaccess.o
AR fs/pstore/built-in.a
GEN drivers/scsi/scsi_devinfo_tbl.c
CC fs/efivarfs/inode.o
LD [M] drivers/dma-buf/dmabuf_selftests.o
CC arch/x86/kernel/i8253.o
AR fs/autofs/built-in.a
CC [M] fs/netfs/buffered_read.o
CC arch/x86/kernel/hw_breakpoint.o
CC arch/x86/kernel/tsc.o
CC arch/x86/kernel/tsc_msr.o
CC drivers/scsi/scsi_devinfo.o
CC mm/mprotect.o
CC block/blk-mq-debugfs.o
CC drivers/base/power/domain.o
CC drivers/base/power/domain_governor.o
CC drivers/char/tpm/eventlog/tpm1.o
CC drivers/nvme/host/core.o
AR drivers/nvme/target/built-in.a
CC net/ipv6/fib6_notifier.o
CC [M] net/netfilter/xt_MASQUERADE.o
CC [M] net/bluetooth/sco.o
CC [M] net/bluetooth/iso.o
CC block/blk-pm.o
CC drivers/nvme/host/ioctl.o
CC net/ipv6/rpl.o
CC drivers/scsi/scsi_sysctl.o
CC drivers/acpi/acpica/nsalloc.o
CC drivers/scsi/scsi_debugfs.o
CC [M] net/netfilter/xt_addrtype.o
CC [M] net/bluetooth/a2mp.o
CC fs/efivarfs/file.o
CC net/core/netdev-genl.o
CC drivers/base/power/clock_ops.o
CC fs/ntfs/upcase.o
CC [M] drivers/misc/mei/debugfs.o
CC drivers/tty/serial/8250/8250_early.o
CC [M] drivers/gpu/drm/display/drm_hdmi_helper.o
CC [M] drivers/gpu/drm/display/drm_scdc_helper.o
CC net/sunrpc/sysfs.o
CC arch/x86/kernel/io_delay.o
CC [M] drivers/gpu/drm/scheduler/sched_entity.o
CC [M] drivers/gpu/drm/ttm/ttm_bo_util.o
CC kernel/module/debug_kmemleak.o
CC lib/memcat_p.o
CC kernel/module/kallsyms.o
CC drivers/acpi/acpica/nsarguments.o
CC net/core/netdev-genl-gen.o
CC drivers/scsi/scsi_trace.o
CC [M] fs/netfs/io.o
CC drivers/char/tpm/eventlog/tpm2.o
CC lib/nmi_backtrace.o
CC arch/x86/kernel/rtc.o
CC net/sunrpc/svc_xprt.o
CC net/sunrpc/xprtmultipath.o
CC net/sunrpc/stats.o
CC fs/efivarfs/super.o
CC net/sunrpc/sysctl.o
CC [M] drivers/gpu/drm/ttm/ttm_bo_vm.o
AR fs/ntfs/built-in.a
CC net/core/net-sysfs.o
CC [M] drivers/misc/mei/mei-trace.o
CC fs/ext4/mballoc.o
CC fs/nfs/read.o
CC [M] drivers/gpu/drm/display/drm_dp_aux_dev.o
CC block/holder.o
CC net/core/page_pool.o
CC drivers/tty/serial/8250/8250_dw.o
CC fs/efivarfs/vars.o
CC fs/ext4/migrate.o
CC [M] drivers/gpu/drm/ttm/ttm_module.o
CC [M] net/netfilter/xt_conntrack.o
CC drivers/acpi/acpica/nsconvert.o
CC net/ipv6/ioam6.o
CC drivers/acpi/acpica/nsdump.o
CC mm/mremap.o
CC [M] drivers/gpu/drm/amd/amdxcp/amdgpu_xcp_drv.o
CC mm/msync.o
CC net/ipv4/ip_tunnel_core.o
CC net/ipv4/gre_offload.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_drv.o
CC drivers/nvme/host/trace.o
CC lib/plist.o
CC arch/x86/kernel/resource.o
CC drivers/scsi/scsi_logging.o
CC drivers/char/tpm/tpm_ppi.o
CC drivers/char/tpm/eventlog/acpi.o
CC drivers/nvme/host/pci.o
LD [M] drivers/gpu/drm/scheduler/gpu-sched.o
CC kernel/module/procfs.o
CC drivers/tty/serial/8250/8250_lpss.o
CC lib/radix-tree.o
CC [M] drivers/gpu/drm/ttm/ttm_execbuf_util.o
CC [M] fs/fscache/cache.o
CC kernel/module/sysfs.o
CC drivers/base/regmap/regmap.o
LD [M] arch/x86/kvm/kvm-intel.o
CC drivers/base/firmware_loader/builtin/main.o
CC drivers/acpi/acpica/nseval.o
AR block/built-in.a
CC drivers/base/firmware_loader/main.o
CC drivers/base/regmap/regcache.o
AS arch/x86/kernel/irqflags.o
AR drivers/base/power/built-in.a
CC net/ipv6/sysctl_net_ipv6.o
CC arch/x86/kernel/static_call.o
CC fs/nfs/symlink.o
LD [M] drivers/gpu/drm/amd/amdxcp/amdxcp.o
AR drivers/base/test/built-in.a
CC fs/nfs/unlink.o
CC fs/nfs/write.o
CC mm/page_vma_mapped.o
CC [M] drivers/misc/mei/pci-me.o
AR fs/efivarfs/built-in.a
CC lib/ratelimit.o
CC net/ipv4/metrics.o
CC [M] drivers/gpu/drm/i915/i915_driver.o
LD [M] drivers/gpu/drm/display/drm_display_helper.o
CC [M] net/bluetooth/amp.o
CC [M] fs/netfs/iterator.o
CC [M] drivers/gpu/drm/i915/i915_drm_client.o
CC drivers/acpi/acpica/nsinit.o
AR drivers/base/firmware_loader/builtin/built-in.a
CC [M] net/bluetooth/hci_debugfs.o
CC drivers/tty/serial/8250/8250_mid.o
CC [M] drivers/gpu/drm/vgem/vgem_drv.o
CC drivers/acpi/acpica/nsload.o
CC net/ipv6/xfrm6_policy.o
CC [M] drivers/gpu/drm/vgem/vgem_fence.o
CC [M] drivers/gpu/drm/nouveau/nvif/object.o
CC mm/pagewalk.o
CC arch/x86/kernel/process.o
CC [M] drivers/gpu/drm/xe/tests/xe_bo_test.o
CC drivers/char/tpm/eventlog/efi.o
CC [M] net/netfilter/xt_ipvs.o
CC [M] drivers/gpu/drm/ttm/ttm_range_manager.o
CC [M] drivers/gpu/drm/xe/tests/xe_dma_buf_test.o
CC drivers/scsi/scsi_pm.o
CC [M] drivers/gpu/drm/nouveau/nvif/client.o
AR kernel/module/built-in.a
CC kernel/time/time.o
CC drivers/scsi/scsi_bsg.o
CC drivers/acpi/acpica/nsnames.o
CC [M] fs/fscache/cookie.o
CC drivers/acpi/acpica/nsobject.o
CC kernel/futex/core.o
CC [M] drivers/misc/mei/hw-me.o
CC kernel/futex/syscalls.o
CC [M] fs/fscache/io.o
CC lib/rbtree.o
CC drivers/acpi/acpica/nsparse.o
CC drivers/base/regmap/regcache-rbtree.o
CC kernel/futex/pi.o
CC fs/nfs/namespace.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_device.o
CC drivers/tty/serial/8250/8250_pericom.o
CC drivers/acpi/acpica/nspredef.o
AR drivers/base/firmware_loader/built-in.a
CC fs/ext4/mmp.o
CC [M] drivers/gpu/drm/xe/tests/xe_migrate_test.o
CC drivers/tty/n_tty.o
CC net/core/net-procfs.o
CC lib/seq_buf.o
CC [M] fs/netfs/main.o
CC drivers/acpi/acpica/nsprepkg.o
LD [M] drivers/gpu/drm/vgem/vgem.o
CC fs/ext4/move_extent.o
CC drivers/char/tpm/tpm_crb.o
CC [M] drivers/gpu/drm/ttm/ttm_resource.o
CC net/ipv4/netlink.o
CC drivers/acpi/acpica/nsrepair.o
CC drivers/ata/libata-core.o
CC net/core/netpoll.o
CC [M] drivers/gpu/drm/i915/i915_config.o
CC drivers/acpi/acpica/nsrepair2.o
CC drivers/scsi/scsi_common.o
CC drivers/ata/libata-scsi.o
CC [M] drivers/gpu/drm/nouveau/nvif/conn.o
CC mm/pgtable-generic.o
CC [M] fs/smb/common/cifs_arc4.o
CC [M] fs/smb/client/trace.o
CC [M] drivers/gpu/drm/xe/tests/xe_pci_test.o
CC [M] fs/smb/client/cifsfs.o
AR net/sunrpc/built-in.a
CC [M] fs/smb/client/cifs_debug.o
CC drivers/acpi/acpica/nssearch.o
CC net/ipv6/xfrm6_state.o
CC net/ipv4/nexthop.o
CC [M] drivers/gpu/drm/i915/i915_getparam.o
CC drivers/acpi/acpica/nsutils.o
CC kernel/futex/requeue.o
CC kernel/time/timer.o
LD [M] net/netfilter/nf_conntrack.o
AR drivers/tty/serial/8250/built-in.a
AR drivers/tty/serial/built-in.a
CC net/ipv4/udp_tunnel_stub.o
CC lib/show_mem.o
CC [M] drivers/gpu/drm/ast/ast_drv.o
LD [M] net/netfilter/nf_nat.o
CC [M] drivers/gpu/drm/ast/ast_i2c.o
AR net/netfilter/built-in.a
CC drivers/base/component.o
CC drivers/acpi/acpica/nswalk.o
CC kernel/futex/waitwake.o
CC drivers/scsi/sd.o
CC [M] fs/smb/common/cifs_md4.o
CC drivers/acpi/acpica/nsxfeval.o
CC arch/x86/kernel/ptrace.o
CC drivers/gpu/drm/drm_mipi_dsi.o
CC [M] drivers/gpu/drm/i915/i915_ioctl.o
CC drivers/acpi/acpica/nsxfname.o
LD [M] net/bluetooth/bluetooth.o
CC [M] drivers/gpu/drm/ttm/ttm_pool.o
CC net/core/fib_rules.o
AR drivers/char/tpm/built-in.a
CC drivers/char/nvram.o
CC drivers/scsi/sg.o
CC [M] fs/netfs/objects.o
CC drivers/spi/spi.o
CC [M] drivers/gpu/drm/nouveau/nvif/device.o
AR drivers/firewire/built-in.a
CC drivers/net/phy/mdio-boardinfo.o
CC [M] drivers/gpu/drm/ttm/ttm_device.o
CC [M] drivers/gpu/drm/xe/tests/xe_rtp_test.o
CC [M] drivers/gpu/drm/ttm/ttm_sys_manager.o
CC lib/siphash.o
CC lib/string.o
AR drivers/nvme/host/built-in.a
CC [M] fs/fscache/main.o
AR drivers/nvme/built-in.a
CC net/ipv4/sysctl_net_ipv4.o
CC mm/rmap.o
CC [M] fs/fscache/volume.o
CC net/ipv4/proc.o
CC fs/btrfs/ctree.o
CC drivers/acpi/acpica/nsxfobj.o
CC drivers/net/phy/mdio_devres.o
CC arch/x86/kernel/tls.o
AR kernel/futex/built-in.a
CC net/ipv6/xfrm6_input.o
CC [M] fs/smb/client/connect.o
CC net/ipv6/xfrm6_output.o
CC [M] drivers/misc/mei/gsc-me.o
CC [M] fs/fscache/proc.o
CC [M] drivers/gpu/drm/ast/ast_main.o
LD [M] drivers/misc/mei/mei.o
CC mm/vmalloc.o
CC drivers/tty/tty_ioctl.o
CC drivers/acpi/acpica/psargs.o
CC net/core/net-traces.o
CC drivers/acpi/acpica/psloop.o
CC [M] drivers/gpu/drm/drm_aperture.o
CC drivers/acpi/acpica/psobject.o
CC fs/nfs/mount_clnt.o
CC fs/nfs/nfstrace.o
CC lib/timerqueue.o
CC drivers/base/regmap/regcache-flat.o
AR drivers/char/built-in.a
CC [M] fs/smb/client/dir.o
CC [M] drivers/gpu/drm/i915/i915_irq.o
LD [M] drivers/misc/mei/mei-me.o
CC fs/btrfs/extent-tree.o
CC [M] drivers/gpu/drm/ttm/ttm_agp_backend.o
CC net/core/selftests.o
LD [M] fs/netfs/netfs.o
CC drivers/tty/tty_ldisc.o
CC [M] drivers/gpu/drm/xe/tests/xe_wa_test.o
CC net/core/ptp_classifier.o
CC fs/nfs/export.o
CC [M] drivers/gpu/drm/nouveau/nvif/disp.o
CC mm/page_alloc.o
CC drivers/net/phy/phy.o
CC lib/vsprintf.o
CC arch/x86/kernel/step.o
CC arch/x86/kernel/i8237.o
CC fs/btrfs/print-tree.o
CC arch/x86/kernel/stacktrace.o
CC arch/x86/kernel/reboot.o
CC drivers/acpi/acpica/psopcode.o
LD [M] drivers/misc/mei/mei-gsc.o
CC drivers/net/phy/phy-c45.o
CC [M] drivers/gpu/drm/i915/i915_mitigations.o
CC drivers/base/regmap/regcache-maple.o
LD [M] fs/fscache/fscache.o
CC drivers/tty/tty_buffer.o
CC arch/x86/kernel/msr.o
LD [M] drivers/gpu/drm/ttm/ttm.o
CC [M] drivers/gpu/drm/ast/ast_mm.o
CC [M] drivers/gpu/drm/drm_atomic.o
CC [M] fs/smb/client/file.o
AR drivers/cdrom/built-in.a
CC drivers/tty/tty_port.o
AR drivers/auxdisplay/built-in.a
CC drivers/usb/common/common.o
CC drivers/usb/core/usb.o
CC drivers/base/regmap/regmap-debugfs.o
CC drivers/acpi/acpica/psopinfo.o
CC net/ipv6/xfrm6_protocol.o
CC drivers/acpi/acpica/psparse.o
CC drivers/ata/libata-eh.o
CC [M] drivers/gpu/drm/xe/xe_bb.o
CC [M] fs/fuse/dev.o
CC kernel/time/hrtimer.o
CC [M] drivers/gpu/drm/nouveau/nvif/driver.o
AR drivers/net/pse-pd/built-in.a
CC drivers/tty/tty_mutex.o
CC drivers/base/regmap/regmap-i2c.o
CC mm/init-mm.o
CC fs/nfs/sysfs.o
CC net/core/netprio_cgroup.o
AR drivers/usb/phy/built-in.a
CC drivers/usb/host/pci-quirks.o
CC drivers/acpi/acpica/psscope.o
CC mm/memblock.o
CC drivers/scsi/scsi_sysfs.o
CC [M] fs/fuse/dir.o
CC fs/nfs/fs_context.o
CC [M] drivers/gpu/drm/i915/i915_module.o
CC arch/x86/kernel/cpuid.o
CC drivers/usb/common/debug.o
CC drivers/base/core.o
CC fs/ext4/namei.o
CC fs/btrfs/root-tree.o
CC [M] drivers/gpu/drm/ast/ast_mode.o
CC [M] fs/fuse/file.o
AR drivers/usb/common/built-in.a
CC [M] drivers/gpu/drm/drm_atomic_uapi.o
CC drivers/base/regmap/regmap-irq.o
CC drivers/tty/tty_ldsem.o
CC drivers/acpi/wakeup.o
CC drivers/acpi/sleep.o
CC [M] drivers/gpu/drm/xe/xe_bo.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_kms.o
CC [M] drivers/gpu/drm/i915/i915_params.o
CC fs/nfs/sysctl.o
CC fs/btrfs/dir-item.o
CC drivers/acpi/acpica/pstree.o
CC [M] drivers/gpu/drm/nouveau/nvif/event.o
CC drivers/net/phy/phy-core.o
CC drivers/tty/tty_baudrate.o
CC [M] fs/fuse/inode.o
CC drivers/usb/core/hub.o
CC [M] drivers/gpu/drm/xe/xe_bo_evict.o
CC net/ipv4/syncookies.o
CC arch/x86/kernel/early-quirks.o
CC net/ipv6/netfilter.o
CC fs/nfs/nfs2super.o
CC [M] fs/fuse/control.o
CC [M] fs/fuse/xattr.o
CC drivers/acpi/acpica/psutils.o
CC [M] fs/smb/client/inode.o
CC drivers/usb/host/ehci-hcd.o
AR drivers/spi/built-in.a
CC drivers/input/serio/serio.o
CC drivers/usb/host/ehci-pci.o
CC kernel/time/timekeeping.o
CC drivers/tty/tty_jobctrl.o
CC [M] fs/smb/client/link.o
CC [M] drivers/gpu/drm/nouveau/nvif/fifo.o
CC drivers/acpi/acpica/pswalk.o
CC drivers/acpi/acpica/psxface.o
CC fs/nfs/proc.o
CC kernel/time/ntp.o
CC drivers/net/phy/phy_device.o
CC [M] drivers/gpu/drm/i915/i915_pci.o
CC mm/memory_hotplug.o
CC lib/win_minmax.o
AR drivers/scsi/built-in.a
CC [M] fs/fuse/acl.o
CC net/core/dst_cache.o
AR drivers/base/regmap/built-in.a
CC drivers/base/bus.o
CC arch/x86/kernel/smp.o
CC drivers/base/dd.o
CC [M] fs/overlayfs/super.o
CC fs/open.o
CC [M] fs/overlayfs/namei.o
CC [M] fs/overlayfs/util.o
CC [M] fs/overlayfs/inode.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.o
CC kernel/time/clocksource.o
CC arch/x86/kernel/smpboot.o
CC net/ipv6/fib6_rules.o
CC drivers/acpi/acpica/rsaddr.o
CC [M] fs/fuse/readdir.o
CC [M] drivers/gpu/drm/i915/i915_scatterlist.o
CC [M] drivers/gpu/drm/ast/ast_post.o
CC lib/xarray.o
CC drivers/input/serio/i8042.o
CC fs/nfs/nfs2xdr.o
CC drivers/tty/n_null.o
CC [M] drivers/gpu/drm/amd/amdgpu/atombios_crtc.o
CC net/ipv4/esp4.o
CC [M] drivers/gpu/drm/nouveau/nvif/head.o
CC [M] fs/smb/client/misc.o
CC [M] fs/smb/client/netmisc.o
CC drivers/input/serio/libps2.o
CC net/ipv4/esp4_offload.o
CC [M] fs/fuse/ioctl.o
CC drivers/acpi/acpica/rscalc.o
CC drivers/base/syscore.o
CC drivers/ata/libata-transport.o
CC [M] drivers/gpu/drm/xe/xe_debugfs.o
CC [M] drivers/gpu/drm/i915/i915_suspend.o
CC [M] drivers/gpu/drm/i915/i915_switcheroo.o
CC drivers/tty/pty.o
CC arch/x86/kernel/tsc_sync.o
CC drivers/base/driver.o
CC kernel/time/jiffies.o
CC kernel/time/timer_list.o
CC kernel/time/timeconv.o
CC arch/x86/kernel/setup_percpu.o
CC [M] drivers/gpu/drm/xe/xe_devcoredump.o
CC kernel/time/timecounter.o
CC net/ipv6/proc.o
CC mm/madvise.o
CC net/ipv4/netfilter.o
CC arch/x86/kernel/ftrace.o
CC drivers/acpi/acpica/rscreate.o
CC fs/btrfs/file-item.o
CC [M] drivers/gpu/drm/i915/i915_sysfs.o
CC [M] drivers/gpu/drm/nouveau/nvif/mem.o
CC net/ipv6/syncookies.o
CC net/ipv4/inet_diag.o
CC kernel/time/alarmtimer.o
CC net/core/gro_cells.o
AS arch/x86/kernel/ftrace_64.o
CC arch/x86/kernel/trace_clock.o
CC [M] drivers/gpu/drm/i915/i915_utils.o
CC [M] drivers/gpu/drm/nouveau/nvif/mmu.o
LD [M] fs/fuse/fuse.o
CC kernel/time/posix-timers.o
CC net/core/failover.o
CC drivers/acpi/acpica/rsdumpinfo.o
CC [M] fs/overlayfs/file.o
CC mm/page_io.o
AR drivers/input/serio/built-in.a
CC net/ipv4/tcp_diag.o
CC fs/btrfs/inode-item.o
CC fs/btrfs/disk-io.o
CC [M] drivers/gpu/drm/drm_auth.o
CC [M] drivers/gpu/drm/ast/ast_dp501.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.o
CC [M] fs/overlayfs/dir.o
CC [M] drivers/gpu/drm/nouveau/nvif/outp.o
CC fs/btrfs/transaction.o
CC drivers/base/class.o
CC drivers/net/phy/linkmode.o
CC [M] fs/smb/client/smbencrypt.o
CC drivers/usb/host/ohci-hcd.o
CC fs/ext4/page-io.o
CC drivers/tty/sysrq.o
CC drivers/usb/host/ohci-pci.o
CC net/ipv4/udp_diag.o
CC [M] drivers/gpu/drm/xe/xe_device.o
CC drivers/ata/libata-trace.o
CC lib/lockref.o
CC arch/x86/kernel/trace.o
CC drivers/acpi/acpica/rsinfo.o
CC fs/nfs/nfs3super.o
CC arch/x86/kernel/rethook.o
CC mm/swap_state.o
CC [M] drivers/gpu/drm/xe/xe_dma_buf.o
CC lib/bcd.o
CC [M] drivers/gpu/drm/xe/xe_engine.o
CC lib/sort.o
CC lib/parser.o
CC [M] drivers/gpu/drm/drm_blend.o
CC net/ipv4/tcp_cubic.o
CC drivers/usb/core/hcd.o
CC drivers/ata/libata-sata.o
CC drivers/ata/libata-sff.o
CC [M] drivers/gpu/drm/nouveau/nvif/timer.o
CC drivers/acpi/acpica/rsio.o
CC drivers/ata/libata-pmp.o
CC drivers/usb/core/urb.o
CC drivers/usb/core/message.o
CC [M] drivers/gpu/drm/xe/xe_exec.o
AR net/core/built-in.a
CC fs/btrfs/inode.o
CC [M] drivers/gpu/drm/i915/intel_clock_gating.o
CC drivers/net/phy/mdio_bus.o
CC net/ipv4/xfrm4_policy.o
CC [M] drivers/gpu/drm/xe/xe_execlist.o
CC drivers/usb/host/uhci-hcd.o
CC drivers/base/platform.o
CC [M] drivers/gpu/drm/i915/intel_device_info.o
CC [M] drivers/gpu/drm/ast/ast_dp.o
CC arch/x86/kernel/crash_core_64.o
CC net/ipv6/mip6.o
CC arch/x86/kernel/module.o
CC lib/debug_locks.o
CC drivers/usb/storage/scsiglue.o
CC drivers/usb/serial/usb-serial.o
CC mm/swapfile.o
CC fs/nfs/nfs3client.o
CC drivers/acpi/acpica/rsirq.o
CC fs/nfs/nfs3proc.o
AR drivers/tty/built-in.a
CC arch/x86/kernel/early_printk.o
CC [M] fs/overlayfs/readdir.o
CC lib/random32.o
CC fs/ext4/readpage.o
CC mm/swap_slots.o
CC mm/dmapool.o
CC mm/hugetlb.o
CC drivers/usb/host/xhci.o
CC kernel/time/posix-cpu-timers.o
AR drivers/usb/misc/built-in.a
CC net/ipv4/xfrm4_state.o
CC drivers/usb/gadget/udc/core.o
AR drivers/usb/gadget/function/built-in.a
CC [M] drivers/gpu/drm/nouveau/nvif/vmm.o
CC arch/x86/kernel/hpet.o
CC fs/btrfs/file.o
CC [M] drivers/usb/class/usbtmc.o
CC drivers/acpi/acpica/rslist.o
CC arch/x86/kernel/amd_nb.o
CC mm/hugetlb_vmemmap.o
CC lib/bust_spinlocks.o
CC [M] fs/smb/client/transport.o
CC [M] drivers/gpu/drm/xe/xe_force_wake.o
CC mm/sparse.o
CC [M] drivers/gpu/drm/nouveau/nvif/user.o
CC [M] drivers/gpu/drm/amd/amdgpu/atom.o
LD [M] drivers/gpu/drm/ast/ast.o
CC [M] drivers/gpu/drm/drm_bridge.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_fence.o
CC drivers/acpi/device_sysfs.o
CC [M] drivers/gpu/drm/xe/xe_ggtt.o
CC net/ipv4/xfrm4_input.o
CC [M] drivers/gpu/drm/xe/xe_gt.o
CC drivers/usb/core/driver.o
CC drivers/usb/storage/protocol.o
CC fs/btrfs/defrag.o
CC drivers/base/cpu.o
CC drivers/acpi/acpica/rsmemory.o
CC drivers/input/keyboard/atkbd.o
CC drivers/rtc/lib.o
CC [M] drivers/gpu/drm/i915/intel_memory_region.o
CC [M] drivers/gpu/drm/xe/xe_gt_clock.o
CC net/ipv6/addrconf_core.o
CC drivers/net/phy/mdio_device.o
CC fs/ext4/resize.o
CC lib/kasprintf.o
CC [M] fs/overlayfs/copy_up.o
CC drivers/usb/core/config.o
CC fs/nfs/nfs3xdr.o
CC [M] drivers/gpu/drm/xe/xe_gt_debugfs.o
CC drivers/net/phy/swphy.o
CC drivers/net/phy/fixed_phy.o
CC drivers/acpi/acpica/rsmisc.o
CC drivers/usb/serial/generic.o
CC drivers/acpi/acpica/rsserial.o
CC net/ipv6/exthdrs_core.o
CC drivers/usb/host/xhci-mem.o
CC arch/x86/kernel/kvm.o
CC drivers/usb/host/xhci-ext-caps.o
CC arch/x86/kernel/kvmclock.o
CC drivers/acpi/acpica/rsutils.o
CC [M] drivers/gpu/drm/nouveau/nvif/userc361.o
CC drivers/acpi/acpica/rsxface.o
CC lib/bitmap.o
CC drivers/rtc/class.o
CC drivers/usb/storage/transport.o
CC kernel/time/posix-clock.o
CC drivers/base/firmware.o
CC drivers/usb/storage/usb.o
AR drivers/input/mouse/built-in.a
CC [M] drivers/net/phy/phylink.o
CC drivers/net/mdio/acpi_mdio.o
AR drivers/usb/gadget/legacy/built-in.a
CC drivers/ata/libata-acpi.o
CC mm/sparse-vmemmap.o
CC drivers/usb/gadget/udc/trace.o
CC drivers/usb/serial/bus.o
CC kernel/time/itimer.o
CC [M] drivers/net/phy/aquantia_main.o
CC net/ipv4/xfrm4_output.o
CC [M] drivers/gpu/drm/nouveau/nvkm/core/client.o
CC drivers/base/init.o
CC [M] drivers/net/phy/aquantia_hwmon.o
CC drivers/acpi/acpica/tbdata.o
CC drivers/usb/serial/console.o
CC [M] drivers/gpu/drm/xe/xe_gt_idle_sysfs.o
CC drivers/usb/serial/ftdi_sio.o
CC drivers/base/map.o
AR drivers/input/keyboard/built-in.a
CC drivers/input/input.o
CC drivers/usb/gadget/usbstring.o
CC arch/x86/kernel/paravirt.o
CC [M] fs/smb/client/cached_dir.o
CC mm/mmu_notifier.o
CC [M] drivers/gpu/drm/xe/xe_gt_mcr.o
CC drivers/rtc/interface.o
CC fs/ext4/super.o
CC drivers/base/devres.o
CC drivers/usb/gadget/config.o
CC drivers/usb/serial/pl2303.o
CC [M] fs/overlayfs/export.o
CC drivers/net/mdio/fwnode_mdio.o
CC net/ipv6/ip6_checksum.o
CC drivers/usb/core/file.o
CC kernel/cgroup/cgroup.o
CC kernel/cgroup/rstat.o
CC fs/btrfs/extent_map.o
CC drivers/base/attribute_container.o
CC fs/btrfs/sysfs.o
CC drivers/base/transport_class.o
CC drivers/acpi/acpica/tbfadt.o
CC drivers/usb/storage/initializers.o
CC lib/scatterlist.o
CC drivers/usb/storage/sierra_ms.o
CC [M] drivers/gpu/drm/i915/intel_pcode.o
CC arch/x86/kernel/pvclock.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.o
CC mm/ksm.o
CC fs/btrfs/accessors.o
CC kernel/time/clockevents.o
CC fs/btrfs/xattr.o
CC kernel/time/tick-common.o
CC drivers/acpi/device_pm.o
CC [M] drivers/gpu/drm/nouveau/nvkm/core/engine.o
CC drivers/ata/libata-pata-timings.o
AR drivers/net/pcs/built-in.a
CC drivers/ata/ahci.o
CC net/ipv4/xfrm4_protocol.o
AR drivers/i2c/algos/built-in.a
CC [M] drivers/i2c/algos/i2c-algo-bit.o
AR drivers/usb/gadget/udc/built-in.a
CC drivers/usb/gadget/epautoconf.o
CC [M] drivers/gpu/drm/i915/intel_region_ttm.o
AR drivers/net/ethernet/adi/built-in.a
AR drivers/net/ethernet/alacritech/built-in.a
CC [M] drivers/gpu/drm/xe/xe_gt_pagefault.o
AR drivers/net/ethernet/amazon/built-in.a
AR drivers/net/ethernet/aquantia/built-in.a
AR drivers/net/ethernet/asix/built-in.a
CC drivers/usb/gadget/composite.o
AR drivers/net/ethernet/cadence/built-in.a
CC [M] drivers/gpu/drm/xe/xe_gt_sysfs.o
CC drivers/acpi/acpica/tbfind.o
LD [M] fs/overlayfs/overlay.o
AR drivers/net/ethernet/broadcom/built-in.a
CC [M] drivers/net/ethernet/broadcom/b44.o
AR drivers/net/ethernet/cavium/common/built-in.a
CC [M] drivers/gpu/drm/xe/xe_gt_tlb_invalidation.o
AR drivers/net/ethernet/cavium/thunder/built-in.a
CC drivers/usb/core/buffer.o
AR drivers/net/ethernet/cavium/liquidio/built-in.a
CC drivers/base/topology.o
AR drivers/net/mdio/built-in.a
CC [M] drivers/gpu/drm/xe/xe_gt_topology.o
CC [M] drivers/net/ethernet/broadcom/bnx2.o
AR fs/nfs/built-in.a
AR drivers/net/ethernet/cavium/octeon/built-in.a
AR drivers/net/ethernet/cavium/built-in.a
CC [M] drivers/net/ethernet/broadcom/cnic.o
HOSTCC drivers/gpu/drm/xe/xe_gen_wa_oob
CC kernel/time/tick-broadcast.o
CC [M] drivers/net/phy/ax88796b.o
CC fs/read_write.o
CC arch/x86/kernel/pcspeaker.o
CC drivers/usb/core/sysfs.o
AR drivers/usb/serial/built-in.a
CC drivers/usb/storage/option_ms.o
CC drivers/acpi/proc.o
CC [M] drivers/net/phy/bcm7xxx.o
AR drivers/net/usb/built-in.a
CC [M] drivers/net/usb/pegasus.o
CC net/ipv6/ip6_icmp.o
CC drivers/acpi/acpica/tbinstal.o
CC [M] drivers/net/usb/rtl8150.o
CC drivers/usb/host/xhci-ring.o
CC lib/list_sort.o
CC fs/file_table.o
CC drivers/acpi/bus.o
CC [M] drivers/gpu/drm/nouveau/nvkm/core/enum.o
CC [M] fs/smb/client/cifs_unicode.o
CC drivers/i2c/busses/i2c-designware-common.o
CC arch/x86/kernel/check.o
CC lib/uuid.o
CC drivers/i2c/busses/i2c-designware-master.o
CC drivers/input/input-compat.o
CC lib/iov_iter.o
CC drivers/rtc/nvmem.o
CC drivers/base/container.o
CC lib/clz_ctz.o
CC [M] drivers/net/ethernet/broadcom/tg3.o
CC [M] drivers/gpu/drm/nouveau/nvkm/core/event.o
CC [M] drivers/gpu/drm/nouveau/nvkm/core/firmware.o
CC kernel/time/tick-broadcast-hrtimer.o
CC arch/x86/kernel/uprobes.o
CC drivers/acpi/acpica/tbprint.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_object.o
CC drivers/input/input-mt.o
CC drivers/ata/libahci.o
CC drivers/input/input-poller.o
CC lib/bsearch.o
CC [M] drivers/gpu/drm/i915/intel_runtime_pm.o
CC [M] net/ipv4/ip_tunnel.o
CC drivers/usb/storage/usual-tables.o
CC [M] drivers/gpu/drm/i915/intel_sbi.o
CC drivers/acpi/acpica/tbutils.o
CC kernel/cgroup/namespace.o
CC drivers/ata/ata_piix.o
CC drivers/base/property.o
CC [M] drivers/gpu/drm/xe/xe_guc_ads.o
CC drivers/rtc/dev.o
CC kernel/trace/trace_clock.o
CC [M] drivers/net/phy/bcm87xx.o
CC kernel/time/tick-oneshot.o
CC drivers/usb/core/endpoint.o
CC kernel/bpf/core.o
CC fs/ext4/symlink.o
CC drivers/input/ff-core.o
CC [M] drivers/net/phy/bcm-phy-lib.o
CC [M] drivers/net/usb/r8152.o
CC net/ipv6/output_core.o
CC drivers/acpi/acpica/tbxface.o
CC drivers/acpi/acpica/tbxfload.o
CC drivers/usb/core/devio.o
AR drivers/usb/storage/built-in.a
CC fs/btrfs/ordered-data.o
CC [M] drivers/net/usb/asix_devices.o
CC kernel/cgroup/cgroup-v1.o
CC kernel/trace/ftrace.o
CC [M] fs/smb/client/nterr.o
CC drivers/acpi/acpica/tbxfroot.o
CC drivers/i2c/busses/i2c-designware-platdrv.o
CC [M] drivers/gpu/drm/nouveau/nvkm/core/gpuobj.o
CC arch/x86/kernel/perf_regs.o
CC [M] drivers/gpu/drm/nouveau/nvkm/core/intr.o
CC kernel/time/tick-sched.o
CC lib/find_bit.o
CC net/ipv6/protocol.o
CC fs/btrfs/extent_io.o
CC [M] drivers/net/usb/asix_common.o
CC [M] drivers/net/ipvlan/ipvlan_core.o
CC drivers/rtc/proc.o
CC [M] drivers/net/ipvlan/ipvlan_main.o
CC mm/slub.o
CC drivers/usb/core/notify.o
CC drivers/rtc/sysfs.o
CC [M] drivers/net/vxlan/vxlan_core.o
CC drivers/input/touchscreen.o
CC drivers/usb/gadget/functions.o
CC [M] drivers/net/vxlan/vxlan_multicast.o
CC [M] drivers/net/vxlan/vxlan_vnifilter.o
CC [M] drivers/gpu/drm/nouveau/nvkm/core/ioctl.o
CC drivers/usb/gadget/configfs.o
CC drivers/acpi/acpica/utaddress.o
CC [M] fs/smb/client/cifsencrypt.o
CC [M] drivers/gpu/drm/i915/intel_step.o
CC [M] drivers/gpu/drm/i915/intel_uncore.o
CC drivers/base/cacheinfo.o
CC arch/x86/kernel/tracepoint.o
CC [M] drivers/gpu/drm/xe/xe_guc_ct.o
CC drivers/rtc/rtc-mc146818-lib.o
CC [M] drivers/net/phy/broadcom.o
CC [M] drivers/net/phy/lxt.o
CC drivers/acpi/acpica/utalloc.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_gart.o
CC drivers/i2c/busses/i2c-designware-baytrail.o
CC [M] drivers/gpu/drm/nouveau/nvkm/core/memory.o
CC [M] drivers/gpu/drm/nouveau/nvkm/core/mm.o
CC mm/migrate.o
CC drivers/input/ff-memless.o
CC arch/x86/kernel/itmt.o
CC net/ipv6/ip6_offload.o
CC drivers/acpi/acpica/utascii.o
CC [M] drivers/gpu/drm/nouveau/nvkm/core/object.o
CC mm/migrate_device.o
CC kernel/time/vsyscall.o
AR drivers/ata/built-in.a
CC fs/btrfs/volumes.o
CC fs/ext4/sysfs.o
CC lib/llist.o
CC kernel/cgroup/freezer.o
CC [M] drivers/i2c/busses/i2c-scmi.o
CC [M] drivers/i2c/busses/i2c-ccgx-ucsi.o
CC drivers/rtc/rtc-cmos.o
CC drivers/usb/gadget/u_f.o
CC drivers/acpi/acpica/utbuffer.o
CC drivers/base/swnode.o
CC drivers/acpi/acpica/utcksum.o
CC [M] drivers/gpu/drm/i915/intel_wakeref.o
CC kernel/time/timekeeping_debug.o
CC [M] net/ipv4/udp_tunnel_core.o
CC arch/x86/kernel/umip.o
CC fs/ext4/xattr.o
CC [M] drivers/net/vxlan/vxlan_mdb.o
AR drivers/net/ethernet/cortina/built-in.a
CC [M] drivers/gpu/drm/xe/xe_guc_debugfs.o
CC fs/btrfs/async-thread.o
CC lib/memweight.o
CC [M] drivers/gpu/drm/nouveau/nvkm/core/oproxy.o
AR drivers/net/ethernet/engleder/built-in.a
AR drivers/net/ethernet/ezchip/built-in.a
AR drivers/net/ethernet/fungible/built-in.a
AR drivers/net/ethernet/huawei/built-in.a
CC lib/kfifo.o
CC drivers/input/vivaldi-fmap.o
CC [M] drivers/net/ethernet/intel/e1000/e1000_main.o
CC [M] drivers/net/phy/realtek.o
CC [M] drivers/net/ipvlan/ipvlan_l3s.o
CC [M] drivers/gpu/drm/nouveau/nvkm/core/option.o
CC [M] drivers/net/ethernet/intel/e1000e/82571.o
CC drivers/acpi/acpica/utcopy.o
CC [M] drivers/gpu/drm/nouveau/nvkm/core/ramht.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.o
AR drivers/usb/gadget/built-in.a
CC net/ipv6/tcpv6_offload.o
CC drivers/usb/host/xhci-hub.o
CC drivers/usb/core/generic.o
CC [M] fs/smb/client/readdir.o
CC net/ipv6/exthdrs_offload.o
CC [M] drivers/net/ethernet/intel/e1000e/ich8lan.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_display.o
CC [M] drivers/net/usb/ax88172a.o
CC drivers/input/input-leds.o
CC [M] drivers/i2c/busses/i2c-i801.o
CC kernel/time/namespace.o
CC arch/x86/kernel/unwind_orc.o
AR drivers/i2c/muxes/built-in.a
CC [M] drivers/gpu/drm/xe/xe_guc_hwconfig.o
CC drivers/base/auxiliary.o
CC [M] drivers/i2c/muxes/i2c-mux-gpio.o
CC [M] drivers/gpu/drm/xe/xe_guc_log.o
CC drivers/base/devtmpfs.o
AR drivers/rtc/built-in.a
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_i2c.o
CC drivers/acpi/acpica/utexcep.o
AR kernel/bpf/built-in.a
CC drivers/i2c/i2c-boardinfo.o
CC [M] drivers/gpu/drm/nouveau/nvkm/core/subdev.o
CC lib/percpu-refcount.o
CC [M] drivers/net/usb/ax88179_178a.o
CC [M] drivers/net/phy/smsc.o
CC kernel/cgroup/legacy_freezer.o
CC drivers/acpi/acpica/utdebug.o
CC drivers/usb/core/quirks.o
CC net/ipv6/inet6_hashtables.o
CC [M] net/ipv4/udp_tunnel_nic.o
CC drivers/input/mousedev.o
CC drivers/usb/core/devices.o
CC fs/ext4/xattr_hurd.o
CC drivers/acpi/acpica/utdecode.o
CC drivers/acpi/acpica/utdelete.o
CC [M] drivers/gpu/drm/nouveau/nvkm/core/uevent.o
LD [M] drivers/net/ipvlan/ipvlan.o
CC drivers/usb/core/phy.o
CC [M] drivers/gpu/drm/i915/vlv_sideband.o
CC [M] drivers/net/usb/cdc_ether.o
CC drivers/input/evdev.o
AR kernel/time/built-in.a
CC net/ipv6/mcast_snoop.o
CC drivers/base/memory.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_gem.o
CC [M] drivers/gpu/drm/xe/xe_guc_pc.o
CC arch/x86/kernel/callthunks.o
CC arch/x86/kernel/mmconf-fam10h_64.o
AR net/ipv4/built-in.a
CC [M] drivers/gpu/drm/i915/vlv_suspend.o
CC lib/rhashtable.o
CC fs/btrfs/ioctl.o
CC kernel/events/core.o
CC [M] drivers/net/ethernet/intel/e1000e/80003es2lan.o
CC lib/base64.o
CC kernel/events/ring_buffer.o
CC lib/once.o
CC drivers/usb/core/port.o
CC [M] drivers/gpu/drm/i915/soc/intel_dram.o
CC drivers/acpi/acpica/uterror.o
CC kernel/cgroup/pids.o
CC [M] fs/smb/client/ioctl.o
CC fs/ext4/xattr_trusted.o
AR drivers/i3c/built-in.a
CC drivers/acpi/acpica/uteval.o
CC [M] drivers/i2c/busses/i2c-isch.o
LD [M] drivers/net/phy/aquantia.o
AR drivers/net/phy/built-in.a
CC mm/huge_memory.o
CC kernel/events/callchain.o
CC drivers/usb/core/hcd-pci.o
CC kernel/cgroup/cpuset.o
CC [M] drivers/gpu/drm/nouveau/nvkm/nvfw/fw.o
CC kernel/trace/ring_buffer.o
CC fs/ext4/xattr_user.o
CC [M] drivers/gpu/drm/nouveau/nvkm/nvfw/hs.o
CC mm/khugepaged.o
CC drivers/acpi/acpica/utglobal.o
CC [M] drivers/i2c/busses/i2c-ismt.o
CC drivers/usb/host/xhci-dbg.o
CC kernel/events/hw_breakpoint.o
CC fs/ext4/fast_commit.o
CC [M] fs/smb/client/sess.o
CC arch/x86/kernel/vsmp_64.o
AR drivers/media/i2c/built-in.a
AR drivers/media/tuners/built-in.a
CC drivers/base/module.o
AR drivers/media/rc/keymaps/built-in.a
AR drivers/ptp/built-in.a
AR drivers/media/rc/built-in.a
CC [M] drivers/ptp/ptp_clock.o
AR drivers/media/common/b2c2/built-in.a
AR drivers/media/platform/allegro-dvt/built-in.a
AR drivers/media/common/saa7146/built-in.a
AR drivers/media/common/siano/built-in.a
AR drivers/media/platform/amlogic/meson-ge2d/built-in.a
AR drivers/media/common/v4l2-tpg/built-in.a
AR drivers/media/platform/amlogic/built-in.a
AR drivers/media/platform/amphion/built-in.a
AR drivers/media/common/videobuf2/built-in.a
CC [M] fs/smb/client/export.o
AR drivers/media/common/built-in.a
AR drivers/media/platform/aspeed/built-in.a
AR drivers/media/platform/atmel/built-in.a
CC [M] fs/smb/client/unc.o
CC lib/refcount.o
AR drivers/media/platform/cadence/built-in.a
AR drivers/media/platform/chips-media/built-in.a
CC [M] net/ipv6/ip6_udp_tunnel.o
AR drivers/media/platform/intel/built-in.a
AR drivers/media/pci/ttpci/built-in.a
AR drivers/power/reset/built-in.a
AR drivers/media/platform/marvell/built-in.a
AR drivers/media/pci/b2c2/built-in.a
CC drivers/power/supply/power_supply_core.o
AR drivers/media/platform/mediatek/jpeg/built-in.a
AR drivers/media/pci/pluto2/built-in.a
AR drivers/input/built-in.a
AR drivers/media/pci/dm1105/built-in.a
AR drivers/media/platform/mediatek/mdp/built-in.a
AR drivers/media/pci/pt1/built-in.a
CC drivers/hwmon/hwmon.o
AR drivers/media/platform/mediatek/vcodec/built-in.a
AR drivers/media/pci/pt3/built-in.a
AR drivers/media/platform/mediatek/vpu/built-in.a
AR drivers/media/pci/mantis/built-in.a
AR drivers/media/platform/mediatek/mdp3/built-in.a
CC [M] drivers/hwmon/acpi_power_meter.o
AR drivers/media/platform/mediatek/built-in.a
AR drivers/media/pci/ngene/built-in.a
CC [M] drivers/hwmon/coretemp.o
AR drivers/media/pci/ddbridge/built-in.a
AR drivers/media/platform/microchip/built-in.a
CC drivers/acpi/acpica/uthex.o
AR drivers/media/pci/saa7146/built-in.a
CC [M] drivers/gpu/drm/xe/xe_guc_submit.o
AR drivers/media/platform/nvidia/tegra-vde/built-in.a
AR drivers/media/pci/smipcie/built-in.a
CC [M] drivers/gpu/drm/xe/xe_hw_engine.o
AR drivers/media/platform/nvidia/built-in.a
AR drivers/media/pci/netup_unidvb/built-in.a
AR drivers/media/platform/nxp/dw100/built-in.a
AR drivers/media/pci/intel/ipu3/built-in.a
AR drivers/media/pci/intel/built-in.a
AR drivers/media/platform/nxp/imx-jpeg/built-in.a
AR drivers/media/pci/built-in.a
AR drivers/media/platform/nxp/imx8-isi/built-in.a
AR drivers/media/platform/nxp/built-in.a
CC [M] drivers/gpu/drm/i915/soc/intel_gmch.o
LD [M] net/ipv4/udp_tunnel.o
AR drivers/media/platform/qcom/camss/built-in.a
AR drivers/thermal/broadcom/built-in.a
AR drivers/media/platform/qcom/venus/built-in.a
AR drivers/thermal/samsung/built-in.a
AR drivers/media/platform/qcom/built-in.a
CC drivers/watchdog/watchdog_core.o
CC drivers/thermal/intel/intel_tcc.o
CC drivers/thermal/intel/therm_throt.o
AR drivers/media/platform/renesas/rcar-vin/built-in.a
AR arch/x86/kernel/built-in.a
AR drivers/media/platform/renesas/rzg2l-cru/built-in.a
CC drivers/usb/host/xhci-trace.o
CC [M] drivers/thermal/intel/x86_pkg_temp_thermal.o
AR drivers/media/platform/renesas/vsp1/built-in.a
AR arch/x86/built-in.a
AR drivers/media/platform/renesas/built-in.a
CC drivers/base/pinctrl.o
CC drivers/net/loopback.o
AR drivers/media/platform/rockchip/rga/built-in.a
AR drivers/media/platform/rockchip/rkisp1/built-in.a
CC [M] drivers/gpu/drm/i915/soc/intel_pch.o
AR drivers/media/platform/rockchip/built-in.a
CC kernel/events/uprobes.o
AR drivers/media/platform/samsung/exynos-gsc/built-in.a
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_ring.o
CC [M] drivers/net/ethernet/intel/igb/igb_main.o
AR drivers/media/platform/samsung/exynos4-is/built-in.a
CC [M] drivers/gpu/drm/drm_cache.o
AR drivers/media/platform/samsung/s3c-camif/built-in.a
AR drivers/media/platform/samsung/s5p-g2d/built-in.a
AR drivers/media/platform/samsung/s5p-jpeg/built-in.a
AR drivers/media/platform/samsung/s5p-mfc/built-in.a
CC [M] drivers/net/ethernet/intel/igb/igb_ethtool.o
AR drivers/media/platform/samsung/built-in.a
CC drivers/usb/core/usb-acpi.o
AR drivers/media/platform/st/sti/bdisp/built-in.a
AR drivers/media/platform/st/sti/c8sectpfe/built-in.a
AR drivers/media/platform/st/sti/delta/built-in.a
AR drivers/media/platform/st/sti/hva/built-in.a
CC lib/rcuref.o
AR drivers/media/platform/st/stm32/built-in.a
AR drivers/media/platform/st/built-in.a
CC [M] drivers/net/ethernet/intel/igb/e1000_82575.o
LD [M] drivers/net/vxlan/vxlan.o
CC [M] drivers/gpu/drm/nouveau/nvkm/nvfw/ls.o
AR drivers/media/platform/sunxi/sun4i-csi/built-in.a
CC drivers/acpi/acpica/utids.o
AR drivers/media/platform/sunxi/sun6i-csi/built-in.a
AR drivers/media/platform/sunxi/sun6i-mipi-csi2/built-in.a
AR drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/built-in.a
CC [M] drivers/net/ethernet/intel/e1000e/mac.o
AR drivers/media/platform/sunxi/sun8i-di/built-in.a
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_cs.o
AR drivers/media/platform/sunxi/sun8i-rotate/built-in.a
AR drivers/media/platform/sunxi/built-in.a
AR drivers/media/platform/ti/am437x/built-in.a
AR drivers/media/platform/ti/cal/built-in.a
AR drivers/media/platform/ti/vpe/built-in.a
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_bios.o
AR drivers/media/platform/ti/davinci/built-in.a
AR drivers/media/platform/ti/omap/built-in.a
AR drivers/media/platform/ti/omap3isp/built-in.a
CC lib/usercopy.o
AR drivers/media/platform/ti/built-in.a
AR drivers/media/platform/verisilicon/built-in.a
AR drivers/media/platform/via/built-in.a
AR drivers/media/platform/xilinx/built-in.a
CC [M] drivers/i2c/busses/i2c-piix4.o
CC drivers/base/devcoredump.o
AR drivers/media/platform/built-in.a
CC [M] drivers/ptp/ptp_chardev.o
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
AR drivers/media/usb/s2255/built-in.a
AR drivers/media/usb/siano/built-in.a
CC [M] fs/smb/client/winucase.o
AR drivers/media/usb/ttusb-budget/built-in.a
CC [M] drivers/i2c/busses/i2c-designware-pcidrv.o
AR drivers/media/usb/ttusb-dec/built-in.a
AR drivers/media/usb/built-in.a
CC fs/ext4/orphan.o
AR drivers/media/mmc/siano/built-in.a
AR drivers/media/mmc/built-in.a
CC [M] drivers/gpu/drm/i915/i915_memcpy.o
AR drivers/media/firewire/built-in.a
CC [M] drivers/net/usb/cdc_eem.o
AR drivers/media/spi/built-in.a
AR drivers/media/test-drivers/built-in.a
CC drivers/power/supply/power_supply_sysfs.o
AR drivers/media/built-in.a
CC [M] drivers/gpu/drm/drm_client.o
CC [M] drivers/net/ethernet/intel/igb/e1000_mac.o
CC mm/page_counter.o
CC fs/btrfs/locking.o
CC lib/errseq.o
CC drivers/acpi/acpica/utinit.o
AR net/ipv6/built-in.a
CC [M] drivers/net/ethernet/intel/e1000/e1000_hw.o
AR net/built-in.a
CC [M] drivers/ptp/ptp_sysfs.o
CC [M] drivers/ptp/ptp_vclock.o
AR drivers/usb/core/built-in.a
CC lib/bucket_locks.o
CC [M] drivers/gpu/drm/i915/i915_mm.o
CC [M] drivers/gpu/drm/xe/xe_hw_fence.o
CC mm/memcontrol.o
CC [M] drivers/gpu/drm/i915/i915_sw_fence.o
AR drivers/hwmon/built-in.a
CC drivers/watchdog/watchdog_dev.o
CC drivers/md/md.o
CC [M] drivers/md/persistent-data/dm-array.o
AR drivers/thermal/intel/built-in.a
AR drivers/thermal/st/built-in.a
AR drivers/thermal/qcom/built-in.a
AR drivers/thermal/tegra/built-in.a
AR drivers/thermal/mediatek/built-in.a
CC drivers/thermal/thermal_core.o
CC drivers/md/md-bitmap.o
CC drivers/thermal/thermal_sysfs.o
CC drivers/base/platform-msi.o
CC [M] drivers/gpu/drm/nouveau/nvkm/nvfw/acr.o
CC drivers/acpi/acpica/utlock.o
AR drivers/net/ethernet/i825xx/built-in.a
CC drivers/watchdog/softdog.o
CC drivers/power/supply/power_supply_leds.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.o
CC [M] drivers/ptp/ptp_kvm_x86.o
CC lib/generic-radix-tree.o
CC [M] drivers/net/ethernet/intel/igc/igc_main.o
CC drivers/acpi/glue.o
CC [M] drivers/net/usb/smsc75xx.o
CC [M] drivers/gpu/drm/nouveau/nvkm/nvfw/flcn.o
CC [M] drivers/ptp/ptp_kvm_common.o
LD [M] drivers/i2c/busses/i2c-designware-pci.o
AR drivers/i2c/busses/built-in.a
CC drivers/i2c/i2c-core-base.o
CC drivers/acpi/acpica/utmath.o
CC drivers/i2c/i2c-core-smbus.o
CC [M] drivers/gpu/drm/drm_client_modeset.o
CC drivers/base/physical_location.o
CC drivers/acpi/acpica/utmisc.o
CC [M] fs/smb/client/smb2ops.o
CC [M] drivers/net/ethernet/intel/e1000e/manage.o
CC drivers/power/supply/power_supply_hwmon.o
CC [M] drivers/gpu/drm/i915/i915_sw_fence_work.o
CC [M] drivers/net/ethernet/intel/igc/igc_mac.o
CC [M] drivers/md/persistent-data/dm-bitset.o
CC lib/string_helpers.o
CC [M] drivers/net/usb/smsc95xx.o
CC [M] fs/smb/client/smb2maperror.o
AR drivers/watchdog/built-in.a
CC fs/btrfs/orphan.o
LD [M] drivers/ptp/ptp.o
AR drivers/net/ethernet/microsoft/built-in.a
CC drivers/net/netconsole.o
CC [M] drivers/net/ethernet/intel/igbvf/vf.o
CC kernel/trace/trace.o
AR drivers/net/ethernet/litex/built-in.a
CC mm/vmpressure.o
CC [M] drivers/net/ethernet/intel/igbvf/mbx.o
CC drivers/usb/host/xhci-debugfs.o
CC kernel/fork.o
AR kernel/cgroup/built-in.a
CC [M] drivers/gpu/drm/i915/i915_syncmap.o
CC kernel/exec_domain.o
CC mm/swap_cgroup.o
CC [M] drivers/gpu/drm/xe/xe_huc.o
CC [M] drivers/net/ethernet/intel/ixgbe/ixgbe_main.o
CC [M] drivers/md/persistent-data/dm-block-manager.o
CC drivers/acpi/acpica/utmutex.o
CC [M] drivers/net/ethernet/intel/ixgbe/ixgbe_common.o
CC drivers/base/trace.o
AR fs/ext4/built-in.a
CC mm/hugetlb_cgroup.o
CC drivers/md/md-autodetect.o
CC [M] drivers/net/ethernet/intel/igbvf/ethtool.o
AR drivers/power/supply/built-in.a
LD [M] drivers/ptp/ptp_kvm.o
AR drivers/power/built-in.a
CC [M] drivers/net/ethernet/intel/igbvf/netdev.o
CC [M] drivers/md/persistent-data/dm-space-map-common.o
CC [M] drivers/gpu/drm/amd/amdgpu/atombios_dp.o
CC drivers/opp/core.o
CC drivers/thermal/thermal_trip.o
CC [M] drivers/gpu/drm/i915/i915_user_extensions.o
CC [M] drivers/gpu/drm/nouveau/nvkm/falcon/base.o
CC drivers/cpufreq/cpufreq.o
CC drivers/acpi/acpica/utnonansi.o
CC drivers/cpufreq/freq_table.o
CC lib/hexdump.o
CC drivers/cpufreq/cpufreq_performance.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_afmt.o
CC drivers/cpuidle/governors/menu.o
CC drivers/cpuidle/cpuidle.o
CC [M] drivers/net/ethernet/intel/e1000e/nvm.o
CC drivers/cpuidle/driver.o
CC mm/kmemleak.o
CC drivers/cpuidle/governor.o
CC mm/page_isolation.o
CC [M] drivers/gpu/drm/xe/xe_huc_debugfs.o
AR drivers/base/built-in.a
CC kernel/panic.o
CC lib/kstrtox.o
CC [M] drivers/gpu/drm/drm_color_mgmt.o
CC fs/btrfs/export.o
CC [M] drivers/net/ethernet/intel/e1000e/phy.o
CC drivers/acpi/acpica/utobject.o
CC [M] drivers/net/ethernet/intel/e1000e/param.o
CC drivers/thermal/thermal_helpers.o
CC drivers/i2c/i2c-core-acpi.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_trace_points.o
CC drivers/usb/host/xhci-pci.o
CC drivers/opp/cpu.o
CC [M] drivers/gpu/drm/i915/i915_ioc32.o
CC lib/debug_info.o
CC kernel/cpu.o
CC drivers/cpuidle/sysfs.o
CC drivers/cpuidle/governors/haltpoll.o
CC drivers/md/dm-uevent.o
CC drivers/opp/debugfs.o
CC drivers/i2c/i2c-core-slave.o
CC [M] drivers/md/persistent-data/dm-space-map-disk.o
CC drivers/i2c/i2c-dev.o
CC [M] drivers/net/ethernet/intel/e1000/e1000_ethtool.o
CC [M] drivers/net/ethernet/intel/e1000e/ethtool.o
CC [M] drivers/net/ethernet/intel/e1000e/netdev.o
CC [M] drivers/gpu/drm/amd/amdgpu/atombios_encoders.o
CC [M] drivers/net/usb/mcs7830.o
CC drivers/acpi/acpica/utosi.o
CC [M] drivers/gpu/drm/nouveau/nvkm/falcon/cmdq.o
CC [M] drivers/gpu/drm/xe/xe_irq.o
CC drivers/thermal/thermal_hwmon.o
CC drivers/thermal/gov_fair_share.o
CC [M] drivers/i2c/i2c-smbus.o
CC drivers/thermal/gov_step_wise.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_sa.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
AR drivers/net/ethernet/netronome/built-in.a
AR drivers/net/ethernet/ni/built-in.a
AR drivers/net/ethernet/packetengines/built-in.a
CC [M] drivers/net/ethernet/intel/e1000e/ptp.o
AR drivers/net/ethernet/realtek/built-in.a
CC [M] drivers/net/ethernet/realtek/8139cp.o
CC drivers/cpuidle/poll_state.o
CC kernel/exit.o
AR drivers/opp/built-in.a
CC [M] drivers/net/ethernet/realtek/8139too.o
CC [M] drivers/md/persistent-data/dm-space-map-metadata.o
CC drivers/cpuidle/cpuidle-haltpoll.o
CC kernel/softirq.o
CC kernel/resource.o
CC drivers/acpi/acpica/utownerid.o
CC drivers/mmc/core/core.o
AR drivers/cpuidle/governors/built-in.a
AR drivers/ufs/built-in.a
CC kernel/sysctl.o
CC [M] drivers/gpu/drm/i915/i915_debugfs.o
CC [M] drivers/net/ethernet/intel/ixgbevf/vf.o
AR drivers/net/ethernet/intel/built-in.a
CC drivers/thermal/gov_user_space.o
CC [M] drivers/net/ethernet/intel/e100.o
CC [M] drivers/gpu/drm/xe/xe_lrc.o
CC drivers/mmc/core/bus.o
CC [M] drivers/gpu/drm/nouveau/nvkm/falcon/fw.o
CC [M] drivers/gpu/drm/nouveau/nvkm/falcon/msgq.o
CC fs/btrfs/tree-log.o
CC lib/iomap.o
CC fs/btrfs/free-space-cache.o
AR drivers/usb/host/built-in.a
AR drivers/usb/built-in.a
AR drivers/cpuidle/built-in.a
CC fs/btrfs/zlib.o
AR drivers/leds/trigger/built-in.a
CC [M] drivers/leds/trigger/ledtrig-audio.o
CC drivers/acpi/acpica/utpredef.o
CC [M] drivers/gpu/drm/nouveau/nvkm/falcon/qmgr.o
AR drivers/leds/blink/built-in.a
CC [M] drivers/net/ethernet/intel/igb/e1000_nvm.o
LD [M] drivers/net/ethernet/intel/igbvf/igbvf.o
CC [M] drivers/i2c/i2c-mux.o
CC fs/btrfs/lzo.o
CC [M] drivers/net/usb/usbnet.o
CC drivers/cpufreq/cpufreq_ondemand.o
CC drivers/mmc/host/sdhci.o
AR drivers/thermal/built-in.a
CC drivers/cpufreq/cpufreq_governor.o
CC drivers/mmc/host/sdhci-pci-core.o
CC [M] drivers/md/persistent-data/dm-transaction-manager.o
CC mm/early_ioremap.o
AR drivers/leds/simple/built-in.a
CC drivers/leds/led-core.o
CC drivers/acpi/acpica/utresdecode.o
CC drivers/acpi/acpica/utresrc.o
CC drivers/leds/led-class.o
CC drivers/leds/led-triggers.o
CC [M] drivers/net/ethernet/intel/e1000/e1000_param.o
CC lib/pci_iomap.o
CC [M] drivers/gpu/drm/amd/amdgpu/atombios_i2c.o
CC [M] drivers/net/ethernet/intel/ixgbevf/mbx.o
CC [M] drivers/md/persistent-data/dm-btree.o
CC [M] drivers/md/persistent-data/dm-btree-remove.o
CC drivers/acpi/scan.o
CC [M] drivers/gpu/drm/xe/xe_migrate.o
CC [M] drivers/gpu/drm/nouveau/nvkm/falcon/v1.o
CC lib/iomap_copy.o
CC drivers/mmc/core/host.o
CC mm/cma.o
CC drivers/mmc/host/sdhci-pci-o2micro.o
CC drivers/cpufreq/cpufreq_governor_attr_set.o
AR drivers/firmware/arm_ffa/built-in.a
AR drivers/firmware/arm_scmi/built-in.a
CC drivers/cpufreq/acpi-cpufreq.o
AR drivers/firmware/broadcom/built-in.a
AR drivers/firmware/cirrus/built-in.a
CC drivers/cpufreq/intel_pstate.o
AR drivers/firmware/meson/built-in.a
AR drivers/crypto/stm32/built-in.a
AR drivers/crypto/xilinx/built-in.a
AR drivers/crypto/hisilicon/trng/built-in.a
AR drivers/crypto/hisilicon/built-in.a
AR drivers/i2c/built-in.a
CC drivers/acpi/acpica/utstate.o
AR drivers/crypto/intel/keembay/built-in.a
AR drivers/crypto/intel/ixp4xx/built-in.a
CC drivers/mmc/host/sdhci-pci-arasan.o
CC drivers/firmware/efi/efi-bgrt.o
AR drivers/crypto/intel/built-in.a
AR drivers/crypto/built-in.a
CC drivers/firmware/efi/libstub/efi-stub-helper.o
CC [M] drivers/gpu/drm/i915/i915_debugfs_params.o
CC drivers/firmware/efi/libstub/gop.o
CC [M] drivers/gpu/drm/i915/display/intel_display_debugfs.o
CC lib/devres.o
CC drivers/mmc/host/sdhci-pci-dwc-mshc.o
CC lib/check_signature.o
CC drivers/acpi/acpica/utstring.o
CC [M] drivers/net/ethernet/intel/igb/e1000_phy.o
CC [M] drivers/net/ethernet/intel/igc/igc_i225.o
CC [M] drivers/net/ethernet/intel/igc/igc_base.o
CC kernel/trace/trace_output.o
CC lib/interval_tree.o
CC [M] drivers/net/ethernet/realtek/r8169_main.o
AR drivers/firmware/imx/built-in.a
CC [M] drivers/net/ethernet/intel/igc/igc_nvm.o
AR drivers/firmware/psci/built-in.a
AR drivers/leds/built-in.a
CC [M] drivers/net/ethernet/realtek/r8169_firmware.o
AR drivers/firmware/smccc/built-in.a
AR drivers/firmware/tegra/built-in.a
CC [M] drivers/net/ethernet/intel/igc/igc_phy.o
CC lib/assoc_array.o
CC drivers/acpi/acpica/utstrsuppt.o
CC lib/list_debug.o
CC kernel/trace/trace_seq.o
CC kernel/trace/trace_stat.o
CC kernel/capability.o
CC fs/btrfs/zstd.o
AR kernel/events/built-in.a
CC kernel/ptrace.o
CC [M] drivers/gpu/drm/nouveau/nvkm/falcon/gm200.o
CC drivers/acpi/acpica/utstrtoul64.o
CC drivers/acpi/acpica/utxface.o
CC [M] drivers/net/ethernet/intel/ixgbevf/ethtool.o
CC [M] drivers/net/ethernet/intel/igc/igc_diag.o
CC drivers/mmc/host/sdhci-pci-gli.o
CC [M] drivers/net/ethernet/intel/igc/igc_ethtool.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.o
CC [M] drivers/gpu/drm/i915/display/intel_pipe_crc.o
CC drivers/acpi/resource.o
CC drivers/mmc/core/mmc.o
CC kernel/trace/trace_printk.o
AR drivers/firmware/xilinx/built-in.a
CC [M] drivers/net/ethernet/realtek/r8169_phy_config.o
CC drivers/firmware/dmi_scan.o
CC drivers/firmware/efi/libstub/secureboot.o
CC [M] drivers/gpu/drm/i915/i915_pmu.o
CC [M] fs/smb/client/smb2transport.o
CC fs/btrfs/compression.o
CC [M] drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.o
LD [M] drivers/net/ethernet/intel/e1000/e1000.o
CC [M] drivers/gpu/drm/nouveau/nvkm/falcon/gp102.o
CC drivers/mmc/core/mmc_ops.o
CC [M] drivers/md/persistent-data/dm-btree-spine.o
CC [M] drivers/gpu/drm/nouveau/nvkm/falcon/ga100.o
CC [M] drivers/net/usb/cdc_ncm.o
AR drivers/net/ethernet/renesas/built-in.a
AR drivers/net/ethernet/sfc/built-in.a
CC mm/secretmem.o
AR drivers/net/ethernet/smsc/built-in.a
CC lib/debugobjects.o
CC [M] drivers/net/ethernet/smsc/smsc9420.o
CC drivers/acpi/acpica/utxfinit.o
CC drivers/mmc/host/sdhci-acpi.o
CC drivers/mmc/core/sd.o
CC lib/bitrev.o
CC kernel/trace/pid_list.o
CC [M] drivers/net/ethernet/intel/igc/igc_ptp.o
CC drivers/acpi/acpi_processor.o
CC drivers/acpi/acpica/utxferror.o
CC drivers/acpi/acpica/utxfmutex.o
CC drivers/firmware/efi/libstub/tpm.o
CC drivers/firmware/efi/libstub/file.o
CC drivers/acpi/processor_core.o
CC kernel/trace/trace_sched_switch.o
CC drivers/mmc/host/cqhci-core.o
CC drivers/firmware/efi/libstub/mem.o
CC drivers/firmware/efi/libstub/random.o
CC [M] drivers/net/ethernet/intel/igb/e1000_mbx.o
LD [M] drivers/md/persistent-data/dm-persistent-data.o
CC [M] drivers/gpu/drm/nouveau/nvkm/falcon/ga102.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_vm.o
CC [M] drivers/net/ethernet/intel/igc/igc_dump.o
CC kernel/trace/trace_functions.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/acr/base.o
CC [M] drivers/gpu/drm/drm_connector.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.o
AR drivers/acpi/acpica/built-in.a
CC drivers/acpi/processor_pdc.o
CC kernel/user.o
CC kernel/trace/trace_preemptirq.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_ib.o
CC drivers/md/dm.o
CC [M] drivers/gpu/drm/i915/gt/gen2_engine_cs.o
CC mm/userfaultfd.o
CC mm/memremap.o
CC fs/btrfs/delayed-ref.o
AR drivers/cpufreq/built-in.a
CC lib/crc16.o
CC [M] drivers/gpu/drm/xe/xe_mmio.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/acr/lsfw.o
CC [M] drivers/gpu/drm/xe/xe_mocs.o
CC [M] fs/smb/client/smb2misc.o
CC drivers/acpi/ec.o
CC lib/crc-t10dif.o
CC drivers/md/dm-table.o
CC drivers/md/dm-target.o
CC drivers/md/dm-linear.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_pll.o
CC drivers/mmc/core/sd_ops.o
CC kernel/signal.o
CC kernel/sys.o
CC drivers/firmware/efi/libstub/randomalloc.o
CC [M] fs/smb/client/smb2pdu.o
CC drivers/clocksource/acpi_pm.o
CC drivers/clocksource/i8253.o
CC [M] drivers/gpu/drm/i915/gt/gen6_engine_cs.o
CC kernel/umh.o
CC [M] drivers/gpu/drm/i915/gt/gen6_ppgtt.o
CC [M] fs/smb/client/smb2inode.o
CC drivers/hid/usbhid/hid-core.o
CC drivers/hid/hid-core.o
CC [M] drivers/net/ethernet/intel/igb/e1000_i210.o
CC drivers/hid/hid-input.o
LD [M] drivers/net/ethernet/intel/e1000e/e1000e.o
CC [M] fs/smb/client/smb2file.o
CC fs/super.o
HOSTCC lib/gen_crc32table
CC [M] drivers/net/ethernet/intel/igc/igc_tsn.o
CC drivers/net/virtio_net.o
CC drivers/hid/hid-quirks.o
CC kernel/trace/trace_nop.o
CC [M] drivers/net/ethernet/intel/igb/igb_ptp.o
CC lib/libcrc32c.o
CC [M] drivers/net/usb/r8153_ecm.o
CC [M] drivers/gpu/drm/i915/gt/gen7_renderclear.o
CC drivers/net/net_failover.o
CC drivers/mmc/core/sdio.o
CC fs/btrfs/relocation.o
CC mm/hmm.o
CC [M] drivers/gpu/drm/xe/xe_module.o
CC [M] drivers/mmc/host/sdhci-pltfm.o
CC [M] drivers/net/ethernet/intel/igc/igc_xdp.o
CC drivers/firmware/efi/libstub/pci.o
CC drivers/md/dm-stripe.o
CC mm/memfd.o
AR drivers/clocksource/built-in.a
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.o
CC [M] drivers/gpu/drm/i915/gt/gen8_engine_cs.o
CC [M] drivers/gpu/drm/xe/xe_pat.o
AR drivers/net/ethernet/socionext/built-in.a
AR drivers/net/ethernet/vertexcom/built-in.a
CC [M] drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.o
CC [M] drivers/gpu/drm/xe/xe_pci.o
AR drivers/net/ethernet/wangxun/built-in.a
CC drivers/firmware/efi/libstub/skip_spaces.o
LD [M] drivers/net/ethernet/realtek/r8169.o
CC [M] drivers/gpu/drm/drm_crtc.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm20b.o
CC lib/xxhash.o
CC [M] drivers/net/ethernet/intel/ixgbe/ixgbe_82599.o
CC mm/bootmem_info.o
AR drivers/staging/media/built-in.a
AR drivers/staging/built-in.a
CC drivers/mailbox/mailbox.o
AR drivers/platform/x86/amd/built-in.a
CC drivers/platform/x86/intel/pmc/core.o
CC kernel/trace/trace_functions_graph.o
CC drivers/platform/x86/intel/pmc/spt.o
AR drivers/net/ethernet/xilinx/built-in.a
AR drivers/net/ethernet/synopsys/built-in.a
AR drivers/net/ethernet/pensando/built-in.a
CC drivers/firmware/efi/efi.o
CC [M] drivers/net/ethernet/intel/igb/igb_hwmon.o
CC kernel/trace/fgraph.o
CC drivers/md/dm-ioctl.o
CC kernel/trace/blktrace.o
CC drivers/acpi/dock.o
CC drivers/firmware/efi/libstub/lib-cmdline.o
LD [M] drivers/net/usb/asix.o
CC drivers/devfreq/devfreq.o
CC drivers/md/dm-io.o
AR drivers/mmc/host/built-in.a
CC [M] drivers/devfreq/governor_simpleondemand.o
CC [M] drivers/devfreq/governor_performance.o
CC drivers/acpi/pci_root.o
CC lib/genalloc.o
CC drivers/firmware/efi/libstub/lib-ctype.o
CC drivers/firmware/efi/libstub/alignedmem.o
CC drivers/powercap/powercap_sys.o
CC [M] drivers/gpu/drm/i915/gt/gen8_ppgtt.o
CC drivers/platform/x86/p2sb.o
CC fs/btrfs/delayed-inode.o
CC [M] drivers/gpu/drm/xe/xe_pcode.o
CC drivers/mailbox/pcc.o
LD [M] drivers/net/ethernet/intel/igc/igc.o
CC [M] drivers/net/dummy.o
CC drivers/mmc/core/sdio_ops.o
AR mm/built-in.a
CC [M] fs/smb/client/cifsacl.o
CC [M] drivers/net/macvlan.o
CC fs/btrfs/scrub.o
AR drivers/perf/built-in.a
CC drivers/hid/usbhid/hiddev.o
CC [M] fs/smb/client/fs_context.o
CC [M] drivers/net/ethernet/intel/ixgbe/ixgbe_82598.o
CC drivers/md/dm-kcopyd.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp102.o
CC lib/percpu_counter.o
CC drivers/ras/ras.o
CC drivers/hid/hid-debug.o
CC [M] drivers/net/ethernet/intel/ixgbevf/ipsec.o
CC [M] drivers/net/mii.o
CC [M] drivers/gpu/drm/xe/xe_pm.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.o
CC drivers/firmware/efi/vars.o
CC drivers/hid/hidraw.o
CC drivers/platform/x86/intel/pmc/cnp.o
CC [M] fs/smb/client/dns_resolve.o
CC lib/fault-inject.o
CC drivers/firmware/efi/libstub/relocate.o
CC [M] drivers/gpu/drm/drm_displayid.o
CC kernel/trace/trace_events.o
LD [M] drivers/net/ethernet/intel/igb/igb.o
CC [M] drivers/gpu/drm/i915/gt/intel_breadcrumbs.o
CC kernel/trace/trace_export.o
CC drivers/ras/debugfs.o
AR drivers/hwtracing/intel_th/built-in.a
CC kernel/trace/trace_event_perf.o
CC kernel/workqueue.o
AR drivers/mailbox/built-in.a
CC drivers/platform/x86/intel/pmc/icl.o
ASN.1 fs/smb/client/cifs_spnego_negtokeninit.asn1.[ch]
CC [M] drivers/gpu/drm/drm_drv.o
AR drivers/platform/surface/built-in.a
CC drivers/powercap/intel_rapl_common.o
CC lib/syscall.o
CC drivers/md/dm-sysfs.o
CC drivers/md/dm-stats.o
CC drivers/mmc/core/sdio_bus.o
CC fs/btrfs/backref.o
CC drivers/acpi/pci_link.o
CC drivers/platform/x86/intel/pmc/tgl.o
CC drivers/powercap/intel_rapl_msr.o
CC [M] drivers/net/ethernet/intel/ixgbe/ixgbe_phy.o
CC lib/dynamic_debug.o
CC lib/errname.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp108.o
CC drivers/firmware/efi/libstub/printk.o
CC fs/char_dev.o
CC drivers/firmware/dmi-sysfs.o
CC drivers/firmware/dmi-id.o
CC [M] drivers/gpu/drm/xe/xe_preempt_fence.o
CC drivers/firmware/memmap.o
CC lib/nlattr.o
AR drivers/ras/built-in.a
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/acr/gv100.o
CC fs/stat.o
CC kernel/pid.o
AR drivers/hid/usbhid/built-in.a
CC fs/exec.o
CC [M] drivers/gpu/drm/i915/gt/intel_context.o
CC [M] drivers/gpu/drm/drm_dumb_buffers.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp10b.o
CC lib/checksum.o
CC drivers/android/binderfs.o
CC drivers/hid/hid-generic.o
AR drivers/devfreq/built-in.a
CC drivers/android/binder.o
CC drivers/platform/x86/intel/pmc/adl.o
LD [M] drivers/net/ethernet/intel/ixgbevf/ixgbevf.o
CC kernel/trace/trace_events_filter.o
CC drivers/md/dm-rq.o
CC drivers/mmc/core/sdio_cis.o
CC drivers/hid/hid-a4tech.o
CC lib/cpu_rmap.o
CC [M] drivers/net/mdio.o
CC drivers/hid/hid-apple.o
CC drivers/hid/hid-belkin.o
CC [M] drivers/gpu/drm/drm_edid.o
CC [M] drivers/net/tun.o
CC [M] drivers/gpu/drm/drm_encoder.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.o
CC drivers/acpi/pci_irq.o
CC [M] drivers/platform/x86/intel/pmt/class.o
CC drivers/firmware/efi/libstub/vsprintf.o
CC drivers/android/binder_alloc.o
CC drivers/acpi/acpi_lpss.o
AR drivers/nvmem/layouts/built-in.a
CC drivers/nvmem/core.o
AR drivers/powercap/built-in.a
CC [M] drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.o
CC drivers/md/dm-io-rewind.o
CC [M] drivers/gpu/drm/xe/xe_pt.o
CC drivers/platform/x86/intel/pmc/mtl.o
CC [M] drivers/gpu/drm/xe/xe_pt_walk.o
CC drivers/firmware/efi/libstub/x86-stub.o
CC [M] drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.o
CC [M] drivers/gpu/drm/drm_file.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/acr/tu102.o
CC [M] drivers/mtd/chips/chipreg.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/acr/ga100.o
CC [M] drivers/gpu/drm/drm_fourcc.o
CC lib/dynamic_queue_limits.o
CC lib/glob.o
CC [M] drivers/gpu/drm/i915/gt/intel_context_sseu.o
CC [M] drivers/net/veth.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/acr/ga102.o
CC lib/strncpy_from_user.o
CC drivers/mmc/core/sdio_io.o
CC [M] drivers/gpu/drm/i915/gt/intel_engine_cs.o
CC fs/pipe.o
CC fs/btrfs/ulist.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bar/base.o
CC [M] fs/smb/client/smb1ops.o
CC [M] drivers/gpu/drm/drm_framebuffer.o
CC [M] drivers/gpu/drm/drm_gem.o
CC [M] drivers/platform/x86/intel/pmt/telemetry.o
CC [M] drivers/gpu/drm/drm_ioctl.o
STUBCPY drivers/firmware/efi/libstub/alignedmem.stub.o
CC [M] drivers/gpu/drm/drm_lease.o
STUBCPY drivers/firmware/efi/libstub/efi-stub-helper.stub.o
CC kernel/task_work.o
CC drivers/firmware/efi/reboot.o
CC [M] fs/smb/client/cifssmb.o
CC drivers/firmware/efi/memattr.o
CC kernel/trace/trace_events_trigger.o
CC drivers/hid/hid-cherry.o
CC [M] drivers/mtd/mtdcore.o
CC [M] drivers/mtd/mtdsuper.o
CC [M] drivers/mtd/mtdconcat.o
CC drivers/platform/x86/intel/pmc/pltdrv.o
CC drivers/md/dm-builtin.o
CC fs/btrfs/qgroup.o
STUBCPY drivers/firmware/efi/libstub/file.stub.o
STUBCPY drivers/firmware/efi/libstub/gop.stub.o
CC lib/strnlen_user.o
STUBCPY drivers/firmware/efi/libstub/lib-cmdline.stub.o
CC drivers/acpi/acpi_apd.o
STUBCPY drivers/firmware/efi/libstub/lib-ctype.stub.o
STUBCPY drivers/firmware/efi/libstub/mem.stub.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.o
CC [M] fs/smb/client/cifs_spnego_negtokeninit.asn1.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
STUBCPY drivers/firmware/efi/libstub/relocate.stub.o
CC [M] fs/smb/client/asn1.o
CC [M] drivers/net/ethernet/intel/ixgbe/ixgbe_x540.o
STUBCPY drivers/firmware/efi/libstub/secureboot.stub.o
CC drivers/hid/hid-chicony.o
STUBCPY drivers/firmware/efi/libstub/skip_spaces.stub.o
STUBCPY drivers/firmware/efi/libstub/tpm.stub.o
STUBCPY drivers/firmware/efi/libstub/vsprintf.stub.o
CC drivers/firmware/efi/tpm.o
STUBCPY drivers/firmware/efi/libstub/x86-stub.stub.o
AR drivers/firmware/efi/libstub/lib.a
CC lib/net_utils.o
CC drivers/firmware/efi/memmap.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_sync.o
AR drivers/nvmem/built-in.a
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bar/g84.o
CC [M] drivers/platform/x86/intel/pmt/crashlog.o
AR drivers/platform/x86/intel/pmc/built-in.a
CC drivers/mmc/core/sdio_irq.o
CC drivers/hid/hid-cypress.o
CC drivers/hid/hid-ezkey.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.o
CC drivers/hid/hid-kensington.o
CC drivers/firmware/efi/esrt.o
LD [M] drivers/platform/x86/intel/pmt/pmt_class.o
LD [M] drivers/platform/x86/intel/pmt/pmt_telemetry.o
CC [M] drivers/gpu/drm/i915/gt/intel_engine_heartbeat.o
CC kernel/extable.o
CC drivers/firmware/efi/efi-pstore.o
CC [M] drivers/gpu/drm/drm_managed.o
CC drivers/mmc/core/slot-gpio.o
CC [M] drivers/uio/uio.o
CC [M] drivers/vfio/pci/vfio_pci_core.o
CC drivers/acpi/acpi_platform.o
CC [M] drivers/pps/pps.o
CC [M] drivers/md/dm-bufio.o
CC drivers/hid/hid-lg.o
CC drivers/acpi/acpi_pnp.o
CC kernel/params.o
CC [M] drivers/vfio/vfio_main.o
CC [M] drivers/net/ethernet/intel/ixgbe/ixgbe_x550.o
CC lib/sg_pool.o
CC [M] drivers/gpu/drm/xe/xe_query.o
CC drivers/mmc/core/regulator.o
CC [M] drivers/mtd/mtdpart.o
CC drivers/hid/hid-lg-g15.o
CC drivers/hid/hid-microsoft.o
CC drivers/acpi/power.o
CC drivers/hid/hid-monterey.o
LD [M] drivers/platform/x86/intel/pmt/pmt_crashlog.o
CC [M] drivers/vfio/group.o
CC drivers/platform/x86/intel/turbo_max_3.o
CC [M] drivers/vfio/iova_bitmap.o
CC kernel/trace/trace_eprobe.o
CC fs/btrfs/send.o
CC kernel/kthread.o
CC fs/btrfs/dev-replace.o
CC [M] drivers/vfio/container.o
CC drivers/firmware/efi/cper.o
CC [M] drivers/vfio/virqfd.o
CC [M] drivers/vfio/vfio_iommu_type1.o
CC drivers/acpi/event.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bar/gk20a.o
CC fs/namei.o
CC fs/btrfs/raid56.o
CC drivers/mmc/core/debugfs.o
CC kernel/sys_ni.o
CC fs/btrfs/uuid-tree.o
CC [M] drivers/pps/kapi.o
CC [M] drivers/gpu/drm/xe/xe_reg_sr.o
CC fs/fcntl.o
CC [M] drivers/platform/x86/intel/vsec.o
CC [M] drivers/vfio/pci/vfio_pci_intrs.o
CC [M] drivers/mtd/mtdchar.o
CC kernel/nsproxy.o
CC lib/stackdepot.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.o
CC [M] drivers/bluetooth/btusb.o
CC kernel/notifier.o
CC drivers/mmc/core/block.o
CC [M] drivers/bluetooth/btintel.o
CC [M] drivers/net/ethernet/intel/ixgbe/ixgbe_lib.o
CC kernel/ksysfs.o
CC fs/ioctl.o
CC [M] drivers/gpu/drm/xe/xe_reg_whitelist.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.o
CC [M] drivers/pps/sysfs.o
CC drivers/acpi/evged.o
CC [M] drivers/gpu/drm/xe/xe_rtp.o
CC [M] drivers/vfio/pci/vfio_pci_rdwr.o
CC kernel/trace/trace_kprobe.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bar/gm107.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bar/gm20b.o
CC fs/btrfs/props.o
AR drivers/hid/built-in.a
CC drivers/platform/x86/pmc_atom.o
CC lib/ucs2_string.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bar/tu102.o
CC [M] drivers/gpu/drm/drm_mm.o
CC drivers/acpi/sysfs.o
CC [M] drivers/dca/dca-core.o
CC [M] drivers/ssb/main.o
CC [M] drivers/platform/x86/intel/rst.o
CC drivers/firmware/efi/cper_cxl.o
CC lib/sbitmap.o
CC kernel/cred.o
LD [M] drivers/pps/pps_core.o
CC [M] drivers/gpu/drm/i915/gt/intel_engine_pm.o
CC [M] drivers/vfio/pci/vfio_pci_config.o
CC [M] drivers/md/dm-bio-prison-v1.o
CC drivers/mmc/core/queue.o
CC [M] drivers/platform/x86/wmi.o
GEN xe_wa_oob.c xe_wa_oob.h
CC kernel/trace/error_report-traces.o
CC [M] drivers/gpu/drm/i915/gt/intel_engine_user.o
CC [M] drivers/platform/x86/wmi-bmof.o
CC [M] drivers/platform/x86/mxm-wmi.o
CC drivers/acpi/property.o
GEN xe_wa_oob.c xe_wa_oob.h
CC [M] drivers/gpu/drm/xe/xe_sa.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.o
CC [M] drivers/gpu/drm/i915/gt/intel_execlists_submission.o
CC [M] drivers/ssb/scan.o
LD [M] drivers/platform/x86/intel/intel_vsec.o
LD [M] drivers/mtd/mtd.o
CC [M] drivers/ssb/sprom.o
CC drivers/firmware/efi/runtime-wrappers.o
AR drivers/platform/x86/intel/built-in.a
LD [M] drivers/platform/x86/intel/intel-rst.o
CC [M] drivers/platform/x86/intel_ips.o
CC fs/readdir.o
CC [M] drivers/gpu/drm/xe/xe_sched_job.o
CC [M] drivers/gpu/drm/i915/gt/intel_ggtt.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_virt.o
CC [M] drivers/vhost/net.o
CC fs/select.o
CC [M] drivers/ssb/pci.o
CC fs/dcache.o
CC fs/inode.o
CC [M] drivers/gpu/drm/i915/gt/intel_ggtt_fencing.o
CC [M] drivers/vhost/vhost.o
CC [M] drivers/dca/dca-sysfs.o
CC [M] drivers/gpu/drm/i915/gt/intel_gt.o
CC [M] drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/bit.o
CC [M] drivers/gpu/drm/drm_mode_config.o
CC [M] drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.o
CC lib/group_cpus.o
CC [M] drivers/gpu/drm/xe/xe_step.o
CC [M] drivers/md/dm-bio-prison-v2.o
CC kernel/reboot.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/boost.o
CC [M] drivers/ssb/pcihost_wrapper.o
CC [M] drivers/ssb/driver_chipcommon.o
CC [M] drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.o
CC [M] drivers/gpu/drm/drm_mode_object.o
CC fs/btrfs/free-space-tree.o
CC fs/attr.o
LD [M] drivers/vfio/vfio.o
CC fs/bad_inode.o
LD [M] drivers/dca/dca.o
AR drivers/platform/x86/built-in.a
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.o
CC [M] drivers/vfio/pci/vfio_pci.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/conn.o
AR drivers/android/built-in.a
CC drivers/acpi/acpi_cmos_rtc.o
CC drivers/acpi/x86/apple.o
CC [M] lib/asn1_decoder.o
CC [M] drivers/bluetooth/btbcm.o
CC kernel/async.o
CC drivers/firmware/efi/dev-path-parser.o
CC fs/file.o
CC [M] drivers/gpu/drm/i915/gt/intel_gt_clock_utils.o
AR drivers/mmc/core/built-in.a
AR drivers/mmc/built-in.a
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_vf_error.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_sched.o
LD [M] fs/smb/client/cifs.o
CC fs/filesystems.o
AR drivers/platform/built-in.a
CC [M] drivers/bluetooth/btrtl.o
CC [M] drivers/gpu/drm/xe/xe_sync.o
CC [M] drivers/md/dm-crypt.o
CC [M] drivers/vhost/iotlb.o
CC drivers/acpi/x86/utils.o
CC [M] drivers/ssb/driver_chipcommon_pmu.o
CC drivers/acpi/x86/s2idle.o
CC kernel/trace/power-traces.o
CC kernel/trace/rpm-traces.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.o
CC [M] drivers/gpu/drm/drm_modes.o
CC [M] drivers/gpu/drm/xe/xe_tile.o
CC [M] drivers/md/dm-thin.o
CC [M] drivers/ssb/driver_pcicore.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/cstep.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.o
CC [M] drivers/gpu/drm/drm_modeset_lock.o
CC [M] drivers/gpu/drm/xe/xe_tile_sysfs.o
CC kernel/trace/trace_dynevent.o
GEN lib/oid_registry_data.c
CC [M] lib/oid_registry.o
LD [M] drivers/vfio/pci/vfio-pci-core.o
LD [M] drivers/vfio/pci/vfio-pci.o
CC drivers/firmware/efi/apple-properties.o
CC kernel/range.o
CC [M] drivers/md/dm-thin-metadata.o
CC drivers/firmware/efi/earlycon.o
CC [M] drivers/gpu/drm/drm_plane.o
CC [M] drivers/gpu/drm/i915/gt/intel_gt_debugfs.o
CC [M] drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.o
CC [M] drivers/gpu/drm/i915/gt/intel_gt_irq.o
CC kernel/trace/trace_probe.o
CC [M] drivers/gpu/drm/i915/gt/intel_gt_mcr.o
CC [M] drivers/gpu/drm/i915/gt/intel_gt_pm.o
CC [M] drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.o
CC [M] drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82598.o
LD [M] drivers/vhost/vhost_iotlb.o
LD [M] drivers/md/dm-bio-prison.o
AR drivers/md/built-in.a
CC [M] drivers/gpu/drm/drm_prime.o
CC drivers/acpi/debugfs.o
CC drivers/firmware/efi/cper-x86.o
CC [M] drivers/gpu/drm/xe/xe_trace.o
AR lib/lib.a
GEN lib/crc32table.h
CC fs/btrfs/tree-checker.o
CC lib/crc32.o
CC fs/btrfs/space-info.o
CC fs/namespace.o
CC kernel/smpboot.o
CC kernel/ucount.o
CC [M] drivers/gpu/drm/xe/xe_ttm_sys_mgr.o
LD [M] drivers/vhost/vhost_net.o
CC kernel/regset.o
CC [M] drivers/gpu/drm/drm_print.o
CC [M] drivers/gpu/drm/drm_property.o
CC kernel/trace/trace_uprobe.o
CC [M] drivers/gpu/drm/xe/xe_ttm_stolen_mgr.o
CC fs/btrfs/block-rsv.o
CC [M] drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.o
CC kernel/groups.o
LD [M] drivers/ssb/ssb.o
CC [M] drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/disp.o
CC [M] drivers/gpu/drm/drm_syncobj.o
CC [M] drivers/gpu/drm/xe/xe_ttm_vram_mgr.o
CC fs/seq_file.o
CC [M] drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.o
CC kernel/trace/rethook.o
CC [M] drivers/gpu/drm/i915/gt/intel_gt_pm_irq.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/dp.o
CC fs/btrfs/delalloc-space.o
CC drivers/acpi/acpi_lpat.o
CC drivers/acpi/acpi_lpit.o
CC kernel/vhost_task.o
AR lib/built-in.a
AR drivers/firmware/efi/built-in.a
CC kernel/kcmp.o
AR drivers/firmware/built-in.a
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_ids.o
CC [M] drivers/gpu/drm/i915/gt/intel_gt_requests.o
CC [M] drivers/gpu/drm/xe/xe_tuning.o
CC [M] drivers/gpu/drm/i915/gt/intel_gt_sysfs.o
CC [M] drivers/net/ethernet/intel/ixgbe/ixgbe_sysfs.o
CC [M] drivers/net/ethernet/intel/ixgbe/ixgbe_debugfs.o
CC kernel/freezer.o
CC kernel/stacktrace.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/extdev.o
CC [M] drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.o
CC [M] drivers/gpu/drm/drm_sysfs.o
CC [M] drivers/gpu/drm/xe/xe_uc.o
CC kernel/dma.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.o
CC [M] drivers/gpu/drm/drm_trace_points.o
CC fs/btrfs/block-group.o
CC [M] drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.o
CC kernel/smp.o
CC [M] drivers/gpu/drm/i915/gt/intel_gtt.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/fan.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/gpio.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/i2c.o
CC kernel/uid16.o
CC drivers/acpi/prmt.o
CC [M] drivers/gpu/drm/i915/gt/intel_llc.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/iccsense.o
CC fs/xattr.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_mmhub.o
CC [M] drivers/gpu/drm/i915/gt/intel_lrc.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_hdp.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/image.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/i915/gt/intel_migrate.o
CC fs/libfs.o
CC [M] drivers/gpu/drm/i915/gt/intel_mocs.o
CC kernel/kallsyms.o
CC kernel/acct.o
CC drivers/acpi/acpi_pcc.o
CC fs/btrfs/discard.o
CC [M] drivers/gpu/drm/i915/gt/intel_ppgtt.o
CC kernel/crash_core.o
CC [M] drivers/gpu/drm/xe/xe_vm.o
CC kernel/compat.o
CC fs/fs-writeback.o
CC [M] drivers/gpu/drm/drm_vblank.o
CC [M] drivers/gpu/drm/xe/xe_vm_madvise.o
CC [M] drivers/gpu/drm/drm_vblank_work.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.o
CC fs/btrfs/reflink.o
CC [M] drivers/gpu/drm/drm_vma_manager.o
CC [M] drivers/gpu/drm/drm_gpuva_mgr.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/mxm.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_csa.o
CC fs/btrfs/subpage.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/npde.o
CC fs/pnode.o
CC [M] drivers/gpu/drm/i915/gt/intel_rc6.o
CC [M] drivers/gpu/drm/drm_writeback.o
LD [M] drivers/md/dm-thin-pool.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/pcir.o
CC fs/btrfs/tree-mod-log.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/perf.o
CC [M] drivers/gpu/drm/xe/xe_wait_user_fence.o
CC drivers/acpi/ac.o
CC drivers/acpi/button.o
CC drivers/acpi/fan_core.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/pll.o
CC drivers/acpi/fan_attr.o
AR kernel/trace/built-in.a
CC [M] drivers/gpu/drm/i915/gt/intel_region_lmem.o
CC kernel/utsname.o
CC fs/splice.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_ras.o
CC [M] drivers/gpu/drm/i915/gt/intel_renderstate.o
CC [M] drivers/gpu/drm/xe/xe_wa.o
CC kernel/user_namespace.o
CC [M] drivers/gpu/drm/lib/drm_random.o
CC kernel/pid_namespace.o
CC [M] drivers/gpu/drm/drm_ioc32.o
CC [M] drivers/gpu/drm/drm_panel.o
CC fs/sync.o
CC drivers/acpi/processor_driver.o
CC [M] drivers/gpu/drm/xe/xe_wopcm.o
LD [M] drivers/net/ethernet/intel/ixgbe/ixgbe.o
CC drivers/acpi/processor_thermal.o
UPD kernel/config_data
CC kernel/stop_machine.o
CC kernel/kprobes.o
CC [M] drivers/gpu/drm/xe/xe_display.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/pmu.o
CC fs/utimes.o
CC [M] drivers/gpu/drm/drm_pci.o
CC fs/btrfs/extent-io-tree.o
CC drivers/acpi/processor_idle.o
CC drivers/acpi/processor_throttling.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/power_budget.o
AR drivers/net/ethernet/built-in.a
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_vm_cpu.o
CC drivers/acpi/processor_perflib.o
CC [M] drivers/gpu/drm/drm_debugfs.o
AR drivers/net/built-in.a
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/ramcfg.o
CC fs/btrfs/fs.o
CC fs/btrfs/messages.o
CC [M] drivers/gpu/drm/i915/gt/intel_reset.o
CC drivers/acpi/container.o
CC [M] drivers/gpu/drm/xe/display/xe_fb_pin.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/rammap.o
CC [M] drivers/gpu/drm/xe/display/xe_hdcp_gsc.o
CC drivers/acpi/thermal.o
CC [M] drivers/gpu/drm/drm_debugfs_crc.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.o
CC [M] drivers/gpu/drm/drm_edid_load.o
CC drivers/acpi/acpi_memhotplug.o
CC drivers/acpi/ioapic.o
CC kernel/hung_task.o
CC fs/d_path.o
CC kernel/watchdog.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowacpi.o
CC kernel/watchdog_hld.o
CC [M] drivers/gpu/drm/drm_panel_orientation_quirks.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.o
CC fs/btrfs/bio.o
CC fs/stack.o
CC [M] drivers/gpu/drm/xe/display/xe_plane_initial.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowof.o
CC [M] drivers/gpu/drm/xe/display/xe_display_rps.o
CC fs/btrfs/lru_cache.o
CC fs/fs_struct.o
CC [M] drivers/gpu/drm/xe/display/ext/i915_irq.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.o
CC drivers/acpi/battery.o
CC [M] drivers/gpu/drm/i915/gt/intel_ring.o
CC drivers/acpi/hed.o
CC fs/statfs.o
CC fs/fs_pin.o
CC fs/nsfs.o
CC [M] drivers/gpu/drm/xe/display/ext/intel_clock_gating.o
CC drivers/acpi/bgrt.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.o
CC [M] drivers/gpu/drm/drm_exec.o
CC [M] drivers/gpu/drm/xe/display/ext/intel_device_info.o
CC [M] drivers/gpu/drm/drm_buddy.o
CC fs/fs_types.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_umc.o
CC drivers/acpi/cppc_acpi.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowramin.o
CC [M] drivers/gpu/drm/xe/i915-soc/intel_dram.o
CC [M] drivers/gpu/drm/drm_gem_shmem_helper.o
CC fs/btrfs/acl.o
CC [M] drivers/gpu/drm/drm_suballoc.o
CC [M] drivers/gpu/drm/amd/amdgpu/smu_v11_0_i2c.o
CC drivers/acpi/spcr.o
CC drivers/acpi/acpi_pad.o
CC [M] drivers/gpu/drm/i915/gt/intel_ring_submission.o
CC [M] drivers/acpi/acpi_video.o
CC kernel/seccomp.o
CC kernel/relay.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowrom.o
CC [M] drivers/gpu/drm/xe/i915-soc/intel_pch.o
CC kernel/utsname_sysctl.o
CC kernel/delayacct.o
CC [M] drivers/acpi/video_detect.o
CC kernel/taskstats.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/timing.o
CC fs/fs_context.o
CC kernel/tsacct.o
CC fs/fs_parser.o
CC [M] drivers/gpu/drm/i915/gt/intel_rps.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/therm.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.o
CC [M] drivers/gpu/drm/xe/i915-display/icl_dsi.o
CC kernel/tracepoint.o
CC kernel/latencytop.o
CC [M] drivers/gpu/drm/drm_gem_ttm_helper.o
CC [M] drivers/gpu/drm/i915/gt/intel_sa_media.o
CC [M] drivers/gpu/drm/drm_atomic_helper.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/vmap.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_atomic.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_atomic_plane.o
CC fs/fsopen.o
CC [M] drivers/gpu/drm/i915/gt/intel_sseu.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/xe/i915-display/intel_audio.o
CC kernel/irq_work.o
CC kernel/static_call.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/volt.o
CC [M] drivers/gpu/drm/i915/gt/intel_wopcm.o
CC [M] drivers/gpu/drm/drm_atomic_state_helper.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_rap.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/xe/i915-display/intel_backlight.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/vpstate.o
CC fs/init.o
CC fs/kernel_read_file.o
CC fs/mnt_idmapping.o
CC [M] drivers/gpu/drm/drm_bridge_connector.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_bios.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_fw_attestation.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.o
AR fs/btrfs/built-in.a
CC kernel/static_call_inline.o
CC fs/remap_range.o
CC [M] drivers/gpu/drm/i915/gt/sysfs_engines.o
CC [M] drivers/gpu/drm/drm_crtc_helper.o
CC kernel/user-return-notifier.o
CC fs/buffer.o
CC kernel/padata.o
CC kernel/jump_label.o
CC fs/mpage.o
AR drivers/acpi/built-in.a
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_eeprom.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/xpio.o
CC kernel/context_tracking.o
CC [M] drivers/gpu/drm/drm_damage_helper.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_bw.o
CC fs/proc_namespace.o
CC fs/direct-io.o
CC kernel/iomem.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_mca.o
CC kernel/rseq.o
CC fs/eventpoll.o
CC [M] drivers/gpu/drm/drm_encoder_slave.o
CC [M] drivers/gpu/drm/drm_flip_work.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_cdclk.o
CC fs/anon_inodes.o
LD [M] drivers/acpi/video.o
CC fs/signalfd.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/M0203.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/M0205.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/M0209.o
GZIP kernel/config_data.gz
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bios/P0260.o
CC fs/timerfd.o
CC [M] drivers/gpu/drm/i915/gt/intel_ggtt_gmch.o
CC [M] drivers/gpu/drm/i915/gt/gen6_renderstate.o
CC kernel/configs.o
CC [M] drivers/gpu/drm/i915/gt/gen7_renderstate.o
CC [M] drivers/gpu/drm/i915/gt/gen8_renderstate.o
CC fs/eventfd.o
CC [M] drivers/gpu/drm/i915/gt/gen9_renderstate.o
CC [M] drivers/gpu/drm/i915/gem/i915_gem_busy.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/amd/amdgpu/amdgpu_xcp.o
CC [M] drivers/gpu/drm/drm_format_helper.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_color.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bus/base.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.o
CC [M] drivers/gpu/drm/i915/gem/i915_gem_clflush.o
CC fs/userfaultfd.o
CC [M] drivers/gpu/drm/drm_gem_atomic_helper.o
CC [M] drivers/gpu/drm/i915/gem/i915_gem_context.o
CC fs/aio.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/xe/i915-display/intel_combo_phy.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 fs/locks.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_pmu.o
CC [M] drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o
AR kernel/built-in.a
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bus/hwsq.o
CC [M] drivers/gpu/drm/amd/amdgpu/cik.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv04.o
CC [M] drivers/gpu/drm/amd/amdgpu/cik_ih.o
CC [M] drivers/gpu/drm/drm_modeset_helper.o
CC fs/binfmt_script.o
CC [M] drivers/gpu/drm/i915/gem/i915_gem_internal.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv31.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv50.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_connector.o
CC [M] drivers/gpu/drm/amd/amdgpu/dce_v8_0.o
CC [M] drivers/gpu/drm/i915/gem/i915_gem_object.o
CC [M] drivers/gpu/drm/i915/gem/i915_gem_lmem.o
CC fs/binfmt_elf.o
CC [M] drivers/gpu/drm/drm_plane_helper.o
CC fs/compat_binfmt_elf.o
CC fs/mbcache.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bus/g94.o
CC [M] drivers/gpu/drm/drm_probe_helper.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_crtc.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/bus/gf100.o
CC [M] drivers/gpu/drm/amd/amdgpu/gfx_v7_0.o
CC fs/posix_acl.o
CC fs/coredump.o
CC [M] drivers/gpu/drm/drm_rect.o
CC [M] drivers/gpu/drm/i915/gem/i915_gem_mman.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_crtc_state_dump.o
CC [M] drivers/gpu/drm/i915/gem/i915_gem_pages.o
CC [M] drivers/gpu/drm/amd/amdgpu/cik_sdma.o
CC [M] drivers/gpu/drm/i915/gem/i915_gem_phys.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.o
CC [M] drivers/gpu/drm/amd/amdgpu/uvd_v4_2.o
CC [M] drivers/gpu/drm/drm_self_refresh_helper.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv04.o
CC [M] drivers/gpu/drm/i915/gem/i915_gem_pm.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv40.o
CC [M] drivers/gpu/drm/amd/amdgpu/vce_v2_0.o
CC fs/drop_caches.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_cursor.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_cx0_phy.o
CC [M] drivers/gpu/drm/amd/amdgpu/si.o
CC [M] drivers/gpu/drm/i915/gem/i915_gem_region.o
CC [M] drivers/gpu/drm/i915/gem/i915_gem_shmem.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.o
CC fs/sysctls.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/clk/g84.o
CC fs/fhandle.o
CC [M] drivers/gpu/drm/i915/gem/i915_gem_shrinker.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_ddi.o
CC [M] drivers/gpu/drm/drm_simple_kms_helper.o
CC [M] drivers/gpu/drm/i915/gem/i915_gem_stolen.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.o
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/bridge/panel.o
CC [M] drivers/gpu/drm/drm_fbdev_generic.o
CC [M] drivers/gpu/drm/i915/gem/i915_gem_throttle.o
CC [M] drivers/gpu/drm/amd/amdgpu/gmc_v6_0.o
CC [M] drivers/gpu/drm/drm_fb_helper.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk104.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk20a.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/clk/gm20b.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/nouveau/nvkm/subdev/clk/pllnv04.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_ddi_buf_trans.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display.o
CC [M] drivers/gpu/drm/i915/gem/i915_gem_ttm_move.o
CC [M] drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/clk/pllgt215.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/devinit/base.o
CC [M] drivers/gpu/drm/i915/gem/i915_gem_userptr.o
CC [M] drivers/gpu/drm/i915/gem/i915_gem_wait.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv04.o
LD [M] drivers/gpu/drm/drm.o
LD [M] drivers/gpu/drm/drm_shmem_helper.o
LD [M] drivers/gpu/drm/drm_suballoc_helper.o
CC [M] drivers/gpu/drm/amd/amdgpu/gfx_v6_0.o
LD [M] drivers/gpu/drm/drm_ttm_helper.o
AR drivers/gpu/drm/built-in.a
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/amd/amdgpu/dce_v6_0.o
CC [M] drivers/gpu/drm/i915/gem/i915_gemfs.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_debugfs.o
CC [M] drivers/gpu/drm/i915/i915_active.o
CC [M] drivers/gpu/drm/i915/i915_cmd_parser.o
CC [M] drivers/gpu/drm/i915/i915_deps.o
CC [M] drivers/gpu/drm/i915/i915_gem_evict.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv05.o
CC [M] drivers/gpu/drm/amd/amdgpu/uvd_v3_1.o
CC [M] drivers/gpu/drm/i915/i915_gem_gtt.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv10.o
CC [M] drivers/gpu/drm/i915/i915_gem_ww.o
AR fs/built-in.a
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv1a.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_device.o
CC [M] drivers/gpu/drm/amd/amdgpu/vi.o
CC [M] drivers/gpu/drm/i915/i915_gem.o
CC [M] drivers/gpu/drm/i915/i915_query.o
CC [M] drivers/gpu/drm/amd/amdgpu/mxgpu_vi.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/i915/i915_request.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/devinit/g84.o
CC [M] drivers/gpu/drm/i915/i915_scheduler.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/devinit/g98.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gt215.o
CC [M] drivers/gpu/drm/amd/amdgpu/nbio_v6_1.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_driver.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/devinit/mcp89.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_irq.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/nouveau/nvkm/subdev/devinit/gf100.o
CC [M] drivers/gpu/drm/i915/i915_vma_resource.o
CC [M] drivers/gpu/drm/amd/amdgpu/soc15.o
CC [M] drivers/gpu/drm/amd/amdgpu/emu_soc.o
CC [M] drivers/gpu/drm/i915/gt/uc/intel_gsc_fw.o
CC [M] drivers/gpu/drm/i915/gt/uc/intel_gsc_proxy.o
CC [M] drivers/gpu/drm/amd/amdgpu/mxgpu_ai.o
LD [M] drivers/gpu/drm/drm_kms_helper.o
CC [M] drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_power.o
CC [M] drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_debugfs.o
CC [M] drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_heci_cmd_submit.o
CC [M] drivers/gpu/drm/i915/gt/uc/intel_guc.o
CC [M] drivers/gpu/drm/i915/gt/uc/intel_guc_ads.o
CC [M] drivers/gpu/drm/i915/gt/uc/intel_guc_capture.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm107.o
CC [M] drivers/gpu/drm/amd/amdgpu/nbio_v7_0.o
CC [M] drivers/gpu/drm/i915/gt/uc/intel_guc_ct.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm200.o
CC [M] drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.o
CC [M] drivers/gpu/drm/amd/amdgpu/vega10_reg_init.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gv100.o
CC [M] drivers/gpu/drm/i915/gt/uc/intel_guc_fw.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/devinit/tu102.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/devinit/ga100.o
CC [M] drivers/gpu/drm/i915/gt/uc/intel_guc_hwconfig.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fault/base.o
CC [M] drivers/gpu/drm/amd/amdgpu/vega20_reg_init.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_power_map.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fault/user.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_power_well.o
CC [M] drivers/gpu/drm/i915/gt/uc/intel_guc_log.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_trace.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/nbio_v7_4.o
CC [M] drivers/gpu/drm/amd/amdgpu/nbio_v2_3.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/nouveau/nvkm/subdev/fault/gp100.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/i915/gt/uc/intel_uc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dkl_phy.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dmc.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fault/gp10b.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fault/gv100.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fault/tu102.o
CC [M] drivers/gpu/drm/amd/amdgpu/nv.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/base.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp.o
CC [M] drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.o
CC [M] drivers/gpu/drm/amd/amdgpu/arct_reg_init.o
CC [M] drivers/gpu/drm/i915/gt/uc/intel_uc_fw.o
CC [M] drivers/gpu/drm/i915/gt/intel_gsc.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv04.o
CC [M] drivers/gpu/drm/amd/amdgpu/mxgpu_nv.o
CC [M] drivers/gpu/drm/i915/i915_hwmon.o
CC [M] drivers/gpu/drm/amd/amdgpu/nbio_v7_2.o
CC [M] drivers/gpu/drm/i915/display/hsw_ips.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/hdp_v4_0.o
CC [M] drivers/gpu/drm/amd/amdgpu/hdp_v5_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/i915/display/intel_bw.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_aux.o
CC [M] drivers/gpu/drm/i915/display/intel_cdclk.o
CC [M] drivers/gpu/drm/amd/amdgpu/aldebaran_reg_init.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv10.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv1a.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_aux_backlight.o
CC [M] drivers/gpu/drm/i915/display/intel_color.o
CC [M] drivers/gpu/drm/amd/amdgpu/aldebaran.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_hdcp.o
CC [M] drivers/gpu/drm/i915/display/intel_combo_phy.o
CC [M] drivers/gpu/drm/i915/display/intel_connector.o
CC [M] drivers/gpu/drm/i915/display/intel_crtc.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv20.o
CC [M] drivers/gpu/drm/i915/display/intel_crtc_state_dump.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv25.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv30.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv35.o
CC [M] drivers/gpu/drm/i915/display/intel_cursor.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_link_training.o
CC [M] drivers/gpu/drm/i915/display/intel_display.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_mst.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv36.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/xe/i915-display/intel_dpll.o
CC [M] drivers/gpu/drm/i915/display/intel_display_power.o
CC [M] drivers/gpu/drm/amd/amdgpu/soc21.o
CC [M] drivers/gpu/drm/amd/amdgpu/sienna_cichlid.o
CC [M] drivers/gpu/drm/amd/amdgpu/smu_v13_0_10.o
CC [M] drivers/gpu/drm/i915/display/intel_display_power_map.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv40.o
CC [M] drivers/gpu/drm/amd/amdgpu/nbio_v4_3.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dpll_mgr.o
CC [M] drivers/gpu/drm/i915/display/intel_display_power_well.o
CC [M] drivers/gpu/drm/i915/display/intel_display_reset.o
CC [M] drivers/gpu/drm/i915/display/intel_display_rps.o
CC [M] drivers/gpu/drm/amd/amdgpu/hdp_v6_0.o
CC [M] drivers/gpu/drm/i915/display/intel_dmc.o
CC [M] drivers/gpu/drm/i915/display/intel_dpio_phy.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/nouveau/nvkm/subdev/fb/nv46.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dpt.o
CC [M] drivers/gpu/drm/amd/amdgpu/nbio_v7_7.o
CC [M] drivers/gpu/drm/i915/display/intel_dpll.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_drrs.o
CC [M] drivers/gpu/drm/i915/display/intel_dpll_mgr.o
CC [M] drivers/gpu/drm/amd/amdgpu/hdp_v5_2.o
CC [M] drivers/gpu/drm/i915/display/intel_dpt.o
CC [M] drivers/gpu/drm/i915/display/intel_drrs.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dsb.o
CC [M] drivers/gpu/drm/i915/display/intel_dsb.o
CC [M] drivers/gpu/drm/i915/display/intel_fb.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dsi.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dsi_dcs_backlight.o
CC [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/i915/display/intel_fdi.o
CC [M] drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.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/i915/display/intel_global_state.o
CC [M] drivers/gpu/drm/i915/display/intel_hdcp.o
CC [M] drivers/gpu/drm/amd/amdgpu/nbio_v7_9.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dsi_vbt.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv47.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv49.o
CC [M] drivers/gpu/drm/amd/amdgpu/aqua_vanjaram_reg_init.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/xe/i915-display/intel_fb.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_fbc.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/xe/i915-display/intel_fdi.o
CC [M] drivers/gpu/drm/amd/amdgpu/df_v4_3.o
CC [M] drivers/gpu/drm/i915/display/intel_lpe_audio.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_fifo_underrun.o
CC [M] drivers/gpu/drm/amd/amdgpu/gmc_v7_0.o
CC [M] drivers/gpu/drm/amd/amdgpu/gmc_v8_0.o
CC [M] drivers/gpu/drm/i915/display/intel_modeset_lock.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv4e.o
CC [M] drivers/gpu/drm/i915/display/intel_modeset_verify.o
CC [M] drivers/gpu/drm/i915/display/intel_modeset_setup.o
CC [M] drivers/gpu/drm/i915/display/intel_overlay.o
CC [M] drivers/gpu/drm/i915/display/intel_pch_display.o
CC [M] drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.o
CC [M] drivers/gpu/drm/i915/display/intel_pch_refclk.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_frontbuffer.o
CC [M] drivers/gpu/drm/i915/display/intel_plane_initial.o
CC [M] drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.o
CC [M] drivers/gpu/drm/amd/amdgpu/gmc_v9_0.o
CC [M] drivers/gpu/drm/i915/display/intel_pmdemand.o
CC [M] drivers/gpu/drm/i915/display/intel_psr.o
CC [M] drivers/gpu/drm/amd/amdgpu/gfxhub_v1_1.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/i915/display/intel_sprite_uapi.o
CC [M] drivers/gpu/drm/i915/display/intel_tc.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.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/amd/amdgpu/mmhub_v9_4.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/amd/amdgpu/gfxhub_v2_0.o
CC [M] drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.o
CC [M] drivers/gpu/drm/i915/display/i9xx_wm.o
CC [M] drivers/gpu/drm/i915/display/skl_scaler.o
CC [M] drivers/gpu/drm/amd/amdgpu/gmc_v10_0.o
CC [M] drivers/gpu/drm/i915/display/skl_universal_plane.o
CC [M] drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.o
CC [M] drivers/gpu/drm/i915/display/skl_watermark.o
CC [M] drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.o
CC [M] drivers/gpu/drm/i915/display/intel_acpi.o
CC [M] drivers/gpu/drm/i915/display/intel_opregion.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_global_state.o
CC [M] drivers/gpu/drm/i915/display/intel_fbdev.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_gmbus.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hdcp.o
CC [M] drivers/gpu/drm/i915/display/dvo_ch7017.o
CC [M] drivers/gpu/drm/amd/amdgpu/mmhub_v1_7.o
CC [M] drivers/gpu/drm/i915/display/dvo_ch7xxx.o
CC [M] drivers/gpu/drm/i915/display/dvo_ivch.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/g84.o
CC [M] drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hdmi.o
CC [M] drivers/gpu/drm/amd/amdgpu/mmhub_v3_0.o
CC [M] drivers/gpu/drm/i915/display/dvo_ns2501.o
CC [M] drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_2.o
CC [M] drivers/gpu/drm/i915/display/dvo_sil164.o
CC [M] drivers/gpu/drm/amd/amdgpu/gmc_v11_0.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hotplug.o
CC [M] drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_1.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/i915/display/g4x_hdmi.o
CC [M] drivers/gpu/drm/i915/display/icl_dsi.o
CC [M] drivers/gpu/drm/i915/display/intel_backlight.o
CC [M] drivers/gpu/drm/i915/display/intel_crt.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/i915/display/intel_ddi_buf_trans.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/gfxhub_v3_0_3.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/gt215.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hotplug_irq.o
CC [M] drivers/gpu/drm/amd/amdgpu/gfxhub_v1_2.o
CC [M] drivers/gpu/drm/i915/display/intel_dkl_phy.o
CC [M] drivers/gpu/drm/amd/amdgpu/mmhub_v1_8.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hti.o
CC [M] drivers/gpu/drm/i915/display/intel_dp.o
CC [M] drivers/gpu/drm/amd/amdgpu/umc_v6_0.o
CC [M] drivers/gpu/drm/i915/display/intel_dp_aux.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_lspcon.o
CC [M] drivers/gpu/drm/i915/display/intel_dp_aux_backlight.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/xe/i915-display/intel_modeset_lock.o
CC [M] drivers/gpu/drm/i915/display/intel_dp_mst.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_modeset_setup.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/i915/display/intel_dsi_vbt.o
CC [M] drivers/gpu/drm/i915/display/intel_dvo.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/xe/i915-display/intel_modeset_verify.o
CC [M] drivers/gpu/drm/amd/amdgpu/umc_v6_1.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_panel.o
CC [M] drivers/gpu/drm/amd/amdgpu/umc_v6_7.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/mcp77.o
CC [M] drivers/gpu/drm/amd/amdgpu/umc_v8_7.o
CC [M] drivers/gpu/drm/amd/amdgpu/umc_v8_10.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_pipe_crc.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_irq.o
CC [M] drivers/gpu/drm/i915/display/intel_panel.o
CC [M] drivers/gpu/drm/i915/display/intel_pps.o
CC [M] drivers/gpu/drm/i915/display/intel_qp_tables.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_pmdemand.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_ih.o
CC [M] drivers/gpu/drm/i915/display/intel_sdvo.o
CC [M] drivers/gpu/drm/i915/display/intel_snps_phy.o
CC [M] drivers/gpu/drm/amd/amdgpu/iceland_ih.o
CC [M] drivers/gpu/drm/i915/display/intel_tv.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_pps.o
CC [M] drivers/gpu/drm/i915/display/intel_vdsc.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/mcp89.o
CC [M] drivers/gpu/drm/amd/amdgpu/tonga_ih.o
CC [M] drivers/gpu/drm/i915/display/intel_vrr.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/i915/i915_perf.o
CC [M] drivers/gpu/drm/i915/pxp/intel_pxp.o
CC [M] drivers/gpu/drm/amd/amdgpu/cz_ih.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_psr.o
CC [M] drivers/gpu/drm/amd/amdgpu/vega10_ih.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/i915/pxp/intel_pxp_tee.o
CC [M] drivers/gpu/drm/amd/amdgpu/ih_v6_0.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf100.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf108.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/xe/i915-display/intel_qp_tables.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_quirks.o
CC [M] drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.o
CC [M] drivers/gpu/drm/i915/pxp/intel_pxp_gsccs.o
CC [M] drivers/gpu/drm/i915/pxp/intel_pxp_irq.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_snps_phy.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_psp.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_tc.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk104.o
CC [M] drivers/gpu/drm/amd/amdgpu/psp_v3_1.o
CC [M] drivers/gpu/drm/i915/i915_gpu_error.o
CC [M] drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.o
CC [M] drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.o
CC [M] drivers/gpu/drm/amd/amdgpu/psp_v10_0.o
CC [M] drivers/gpu/drm/i915/selftests/intel_scheduler_helpers.o
CC [M] drivers/gpu/drm/i915/selftests/i915_random.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/nouveau/nvkm/subdev/fb/gk110.o
CC [M] drivers/gpu/drm/amd/amdgpu/psp_v11_0.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk20a.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/xe/i915-display/intel_vblank.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/i915/selftests/igt_spinner.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_vdsc.o
CC [M] drivers/gpu/drm/i915/selftests/librapl.o
CC [M] drivers/gpu/drm/i915/i915_vgpu.o
CC [M] drivers/gpu/drm/amd/amdgpu/psp_v11_0_8.o
HDRTEST drivers/gpu/drm/i915/display/intel_dkl_phy_regs.h
CC [M] drivers/gpu/drm/amd/amdgpu/psp_v12_0.o
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
HDRTEST drivers/gpu/drm/i915/display/intel_hdcp_regs.h
CC [M] drivers/gpu/drm/amd/amdgpu/psp_v13_0.o
HDRTEST drivers/gpu/drm/i915/display/intel_overlay.h
CC [M] drivers/gpu/drm/amd/amdgpu/psp_v13_0_4.o
HDRTEST drivers/gpu/drm/i915/display/intel_display.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/gm107.o
HDRTEST drivers/gpu/drm/i915/display/skl_watermark_regs.h
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
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/gm200.o
HDRTEST drivers/gpu/drm/i915/display/intel_lvds.h
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
HDRTEST drivers/gpu/drm/i915/display/intel_display_driver.h
HDRTEST drivers/gpu/drm/i915/display/intel_dpll.h
HDRTEST drivers/gpu/drm/i915/display/vlv_dsi_pll_regs.h
HDRTEST drivers/gpu/drm/i915/display/intel_dp_mst.h
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
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
CC [M] drivers/gpu/drm/amd/amdgpu/dce_v10_0.o
HDRTEST drivers/gpu/drm/i915/display/intel_crt.h
HDRTEST drivers/gpu/drm/i915/display/intel_opregion.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/gm20b.o
CC [M] drivers/gpu/drm/amd/amdgpu/dce_v11_0.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/amd/amdgpu/amdgpu_vkms.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_gfx.o
HDRTEST drivers/gpu/drm/i915/display/intel_drrs.h
HDRTEST drivers/gpu/drm/i915/display/intel_display_rps.h
HDRTEST drivers/gpu/drm/i915/display/intel_fbdev.h
HDRTEST drivers/gpu/drm/i915/display/intel_pps_regs.h
CC [M] drivers/gpu/drm/xe/i915-display/intel_vga.o
HDRTEST drivers/gpu/drm/i915/display/intel_hdmi.h
HDRTEST drivers/gpu/drm/i915/display/intel_fdi.h
HDRTEST drivers/gpu/drm/i915/display/intel_fb.h
HDRTEST drivers/gpu/drm/i915/display/intel_qp_tables.h
HDRTEST drivers/gpu/drm/i915/display/intel_dsb_regs.h
HDRTEST drivers/gpu/drm/i915/display/intel_vdsc.h
HDRTEST drivers/gpu/drm/i915/display/intel_snps_phy.h
HDRTEST drivers/gpu/drm/i915/display/intel_display_core.h
CC [M] drivers/gpu/drm/xe/i915-display/intel_vrr.o
HDRTEST drivers/gpu/drm/i915/display/vlv_dsi_pll.h
HDRTEST drivers/gpu/drm/i915/display/intel_dvo_dev.h
HDRTEST drivers/gpu/drm/i915/display/intel_hdcp.h
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_modeset_lock.h
HDRTEST drivers/gpu/drm/i915/display/intel_display_trace.h
HDRTEST drivers/gpu/drm/i915/display/intel_display_power.h
HDRTEST drivers/gpu/drm/i915/display/intel_dp_aux_regs.h
CC [M] drivers/gpu/drm/xe/i915-display/intel_wm.o
HDRTEST drivers/gpu/drm/i915/display/i9xx_plane.h
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.o
HDRTEST drivers/gpu/drm/i915/display/intel_dp_aux_backlight.h
HDRTEST drivers/gpu/drm/i915/display/intel_dpll_mgr.h
HDRTEST drivers/gpu/drm/i915/display/vlv_dsi.h
HDRTEST drivers/gpu/drm/i915/display/intel_plane_initial.h
HDRTEST drivers/gpu/drm/i915/display/intel_display_device.h
HDRTEST drivers/gpu/drm/i915/display/intel_fifo_underrun.h
HDRTEST drivers/gpu/drm/i915/display/intel_cursor.h
HDRTEST drivers/gpu/drm/i915/display/vlv_dsi_regs.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/gp100.o
HDRTEST drivers/gpu/drm/i915/display/intel_cx0_phy.h
HDRTEST drivers/gpu/drm/i915/display/skl_scaler.h
CC [M] drivers/gpu/drm/amd/amdgpu/gfx_v8_0.o
CC [M] drivers/gpu/drm/amd/amdgpu/gfx_v9_0.o
HDRTEST drivers/gpu/drm/i915/display/intel_hti.h
HDRTEST drivers/gpu/drm/i915/display/icl_dsi_regs.h
HDRTEST drivers/gpu/drm/i915/display/intel_atomic_plane.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/gp102.o
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
HDRTEST drivers/gpu/drm/i915/display/intel_acpi.h
HDRTEST drivers/gpu/drm/i915/display/intel_connector.h
CC [M] drivers/gpu/drm/amd/amdgpu/gfx_v9_4.o
HDRTEST drivers/gpu/drm/i915/display/intel_dpt.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/i915/display/intel_color.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/gp10b.o
CC [M] drivers/gpu/drm/amd/amdgpu/gfx_v9_4_2.o
HDRTEST drivers/gpu/drm/i915/display/intel_crtc.h
CC [M] drivers/gpu/drm/xe/i915-display/skl_scaler.o
HDRTEST drivers/gpu/drm/i915/display/intel_display_debugfs.h
HDRTEST drivers/gpu/drm/i915/display/intel_modeset_verify.h
HDRTEST drivers/gpu/drm/i915/display/intel_display_power_well.h
HDRTEST drivers/gpu/drm/i915/display/intel_psr_regs.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/gv100.o
CC [M] drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.o
HDRTEST drivers/gpu/drm/i915/display/intel_wm.h
CC [M] drivers/gpu/drm/xe/i915-display/skl_universal_plane.o
HDRTEST drivers/gpu/drm/i915/display/intel_pipe_crc.h
HDRTEST drivers/gpu/drm/i915/display/intel_audio_regs.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/tu102.o
HDRTEST drivers/gpu/drm/i915/display/intel_panel.h
HDRTEST drivers/gpu/drm/i915/display/intel_sprite.h
HDRTEST drivers/gpu/drm/i915/display/intel_wm_types.h
HDRTEST drivers/gpu/drm/i915/display/intel_tv.h
CC [M] drivers/gpu/drm/amd/amdgpu/gfx_v10_0.o
HDRTEST drivers/gpu/drm/i915/display/intel_hti_regs.h
CC [M] drivers/gpu/drm/xe/i915-display/skl_watermark.o
HDRTEST drivers/gpu/drm/i915/display/intel_vrr.h
HDRTEST drivers/gpu/drm/i915/display/intel_load_detect.h
HDRTEST drivers/gpu/drm/i915/display/skl_universal_plane.h
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/xe/i915-display/intel_acpi.o
HDRTEST drivers/gpu/drm/i915/display/intel_display_irq.h
CC [M] drivers/gpu/drm/amd/amdgpu/imu_v11_0.o
HDRTEST drivers/gpu/drm/i915/display/intel_de.h
CC [M] drivers/gpu/drm/amd/amdgpu/gfx_v11_0.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_opregion.o
HDRTEST drivers/gpu/drm/i915/display/intel_lvds_regs.h
HDRTEST drivers/gpu/drm/i915/display/intel_gmbus_regs.h
HDRTEST drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.h
HDRTEST drivers/gpu/drm/i915/display/intel_dvo.h
HDRTEST drivers/gpu/drm/i915/display/intel_sdvo.h
HDRTEST drivers/gpu/drm/i915/display/intel_dp_aux.h
HDRTEST drivers/gpu/drm/i915/display/intel_vdsc_regs.h
CC [M] drivers/gpu/drm/amd/amdgpu/gfx_v11_0_3.o
CC [M] drivers/gpu/drm/amd/amdgpu/imu_v11_0_3.o
HDRTEST drivers/gpu/drm/i915/display/intel_combo_phy.h
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/amd/amdgpu/amdgpu_sdma.o
CC [M] drivers/gpu/drm/amd/amdgpu/sdma_v2_4.o
HDRTEST drivers/gpu/drm/i915/display/intel_dsi.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/ga100.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_fbdev.o
HDRTEST drivers/gpu/drm/i915/display/intel_dmc_regs.h
HDRTEST drivers/gpu/drm/i915/display/intel_ddi.h
HDRTEST drivers/gpu/drm/i915/display/intel_hotplug_irq.h
CC [M] drivers/gpu/drm/amd/amdgpu/sdma_v3_0.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/ga102.o
HDRTEST drivers/gpu/drm/i915/display/intel_tv_regs.h
HDRTEST drivers/gpu/drm/i915/display/intel_dsb.h
HDRTEST drivers/gpu/drm/i915/display/intel_bios.h
HDRTEST drivers/gpu/drm/i915/display/intel_pch_display.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/ram.o
HDRTEST drivers/gpu/drm/i915/display/intel_display_types.h
HDRTEST drivers/gpu/drm/i915/display/intel_backlight.h
CC [M] drivers/gpu/drm/amd/amdgpu/sdma_v4_0.o
HDRTEST drivers/gpu/drm/i915/display/intel_vblank.h
CC [M] drivers/gpu/drm/xe/xe_guc.o
HDRTEST drivers/gpu/drm/i915/display/intel_dp.h
CC [M] drivers/gpu/drm/amd/amdgpu/sdma_v4_4.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv04.o
CC [M] drivers/gpu/drm/xe/xe_ring_ops.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv10.o
CC [M] drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.o
HDRTEST drivers/gpu/drm/i915/display/intel_pmdemand.h
CC [M] drivers/gpu/drm/amd/amdgpu/sdma_v5_0.o
HDRTEST drivers/gpu/drm/i915/display/intel_backlight_regs.h
CC [M] drivers/gpu/drm/amd/amdgpu/sdma_v5_2.o
HDRTEST drivers/gpu/drm/i915/display/intel_combo_phy_regs.h
HDRTEST drivers/gpu/drm/i915/display/intel_display_reset.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.o
HDRTEST drivers/gpu/drm/i915/display/intel_display_power_map.h
HDRTEST drivers/gpu/drm/i915/display/intel_ddi_buf_trans.h
HDRTEST drivers/gpu/drm/i915/display/icl_dsi.h
HDRTEST drivers/gpu/drm/i915/display/intel_lspcon.h
CC [M] drivers/gpu/drm/amd/amdgpu/sdma_v6_0.o
HDRTEST drivers/gpu/drm/i915/display/intel_dpio_phy.h
HDRTEST drivers/gpu/drm/i915/display/intel_dp_hdcp.h
HDRTEST drivers/gpu/drm/i915/display/intel_fb_pin.h
HDRTEST drivers/gpu/drm/i915/display/intel_pps.h
HDRTEST drivers/gpu/drm/i915/display/intel_sprite_uapi.h
HDRTEST drivers/gpu/drm/i915/gem/i915_gem_ttm.h
HDRTEST drivers/gpu/drm/i915/gem/i915_gem_region.h
HDRTEST drivers/gpu/drm/i915/gem/i915_gem_context_types.h
HDRTEST drivers/gpu/drm/i915/gem/i915_gem_lmem.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv20.o
HDRTEST drivers/gpu/drm/i915/gem/i915_gem_mman.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv40.o
HDRTEST drivers/gpu/drm/i915/gem/i915_gem_object_types.h
HDRTEST drivers/gpu/drm/i915/gem/i915_gem_context.h
HDRTEST drivers/gpu/drm/i915/gem/i915_gem_clflush.h
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_mes.o
HDRTEST drivers/gpu/drm/i915/gem/i915_gem_tiling.h
HDRTEST drivers/gpu/drm/i915/gem/i915_gem_stolen.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv41.o
HDRTEST drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.h
HDRTEST drivers/gpu/drm/i915/gem/i915_gem_create.h
CC [M] drivers/gpu/drm/amd/amdgpu/mes_v10_1.o
CC [M] drivers/gpu/drm/amd/amdgpu/mes_v11_0.o
HDRTEST drivers/gpu/drm/i915/gem/i915_gem_ttm_move.h
HDRTEST drivers/gpu/drm/xe/abi/guc_klvs_abi.h
HDRTEST drivers/gpu/drm/xe/abi/guc_errors_abi.h
HDRTEST drivers/gpu/drm/i915/gem/i915_gem_ioctls.h
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.o
CC [M] drivers/gpu/drm/amd/amdgpu/uvd_v5_0.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv44.o
CC [M] drivers/gpu/drm/amd/amdgpu/uvd_v6_0.o
HDRTEST drivers/gpu/drm/i915/gem/i915_gem_domain.h
CC [M] drivers/gpu/drm/amd/amdgpu/uvd_v7_0.o
HDRTEST drivers/gpu/drm/i915/gem/i915_gem_internal.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv49.o
HDRTEST drivers/gpu/drm/i915/gem/i915_gem_dmabuf.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv4e.o
HDRTEST drivers/gpu/drm/i915/gem/selftests/mock_context.h
HDRTEST drivers/gpu/drm/i915/gem/selftests/huge_gem_object.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv50.o
HDRTEST drivers/gpu/drm/i915/gem/selftests/mock_gem_object.h
HDRTEST drivers/gpu/drm/i915/gem/selftests/mock_dmabuf.h
HDRTEST drivers/gpu/drm/xe/abi/guc_actions_slpc_abi.h
HDRTEST drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.h
HDRTEST drivers/gpu/drm/i915/gem/i915_gem_userptr.h
HDRTEST drivers/gpu/drm/xe/abi/guc_communication_mmio_abi.h
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_vce.o
CC [M] drivers/gpu/drm/amd/amdgpu/vce_v3_0.o
CC [M] drivers/gpu/drm/amd/amdgpu/vce_v4_0.o
HDRTEST drivers/gpu/drm/i915/gem/i915_gem_pm.h
HDRTEST drivers/gpu/drm/xe/abi/guc_actions_abi.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.o
HDRTEST drivers/gpu/drm/i915/gem/i915_gem_shrinker.h
HDRTEST drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h
HDRTEST drivers/gpu/drm/xe/abi/guc_messages_abi.h
HDRTEST drivers/gpu/drm/i915/gem/i915_gemfs.h
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.o
HDRTEST drivers/gpu/drm/i915/gem/i915_gem_object.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/rammcp77.o
HDRTEST drivers/gpu/drm/i915/gt/intel_timeline_types.h
HDRTEST drivers/gpu/drm/i915/gt/selftest_engine.h
HDRTEST drivers/gpu/drm/i915/gt/intel_breadcrumbs.h
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_vma_types.h
HDRTEST drivers/gpu/drm/i915/gt/intel_engine_heartbeat.h
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/vlv_sideband_reg.h
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_wakeref.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgf100.o
HDRTEST drivers/gpu/drm/i915/gt/intel_context_types.h
HDRTEST drivers/gpu/drm/i915/gt/intel_execlists_submission.h
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_pcode.h
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
CC [M] drivers/gpu/drm/amd/amdgpu/vcn_sw_ring.o
HDRTEST drivers/gpu/drm/i915/gt/intel_gt.h
HDRTEST drivers/gpu/drm/i915/gt/intel_region_lmem.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgf108.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.o
HDRTEST drivers/gpu/drm/i915/gt/intel_gt_requests.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgm107.o
HDRTEST drivers/gpu/drm/i915/gt/intel_ggtt_gmch.h
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
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgm200.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgp100.o
CC [M] drivers/gpu/drm/amd/amdgpu/vcn_v1_0.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramga102.o
HDRTEST drivers/gpu/drm/i915/gt/intel_timeline.h
HDRTEST drivers/gpu/drm/i915/gt/gen6_engine_cs.h
HDRTEST drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.h
HDRTEST drivers/gpu/drm/i915/gt/intel_workarounds_types.h
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
HDRTEST drivers/gpu/drm/i915/gt/selftest_rps.h
HDRTEST drivers/gpu/drm/i915/gt/intel_sa_media.h
HDRTEST drivers/gpu/drm/i915/gt/intel_gt_debugfs.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/sddr2.o
HDRTEST drivers/gpu/drm/i915/gt/intel_gt_clock_utils.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/sddr3.o
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_reg_defs.h
HDRTEST drivers/gpu/drm/i915/gt/intel_rps_types.h
HDRTEST drivers/gpu/drm/i915/gt/selftest_engine_heartbeat.h
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_trace.h
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_reg.h
HDRTEST drivers/gpu/drm/i915/gt/sysfs_engines.h
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_active_types.h
HDRTEST drivers/gpu/drm/i915/gt/gen7_renderclear.h
CC [M] drivers/gpu/drm/amd/amdgpu/vcn_v2_0.o
HDRTEST drivers/gpu/drm/i915/gt/intel_context.h
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_utils.h
CC [M] drivers/gpu/drm/amd/amdgpu/vcn_v2_5.o
HDRTEST drivers/gpu/drm/i915/gt/intel_wopcm.h
HDRTEST drivers/gpu/drm/i915/gt/intel_mocs.h
CC [M] drivers/gpu/drm/amd/amdgpu/vcn_v3_0.o
HDRTEST drivers/gpu/drm/i915/gt/intel_engine_pm.h
HDRTEST drivers/gpu/drm/i915/gt/intel_gt_sysfs.h
HDRTEST drivers/gpu/drm/i915/gt/intel_rc6.h
CC [M] drivers/gpu/drm/amd/amdgpu/vcn_v4_0.o
HDRTEST drivers/gpu/drm/i915/gt/intel_ring_types.h
CC [M] drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.o
HDRTEST drivers/gpu/drm/i915/gt/intel_workarounds.h
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_config.h
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_vma.h
HDRTEST drivers/gpu/drm/i915/gt/intel_engine_regs.h
HDRTEST drivers/gpu/drm/i915/gt/intel_gt_pm_irq.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr3.o
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/vlv_sideband.h
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.o
HDRTEST drivers/gpu/drm/i915/gt/shmem_utils.h
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_mchbar_regs.h
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_debugfs.h
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/soc/intel_pch.h
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/soc/intel_dram.h
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/soc/intel_gmch.h
CC [M] drivers/gpu/drm/amd/amdgpu/jpeg_v1_0.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr5.o
HDRTEST drivers/gpu/drm/i915/gt/intel_engine.h
HDRTEST drivers/gpu/drm/i915/gt/intel_reset_types.h
HDRTEST drivers/gpu/drm/i915/gt/intel_gt_regs.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fuse/base.o
CC [M] drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.o
CC [M] drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fuse/nv50.o
HDRTEST drivers/gpu/drm/i915/gt/intel_reset.h
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_vgpu.h
CC [M] drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fuse/gf100.o
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_fixed.h
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_gsc_fw.h
CC [M] drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.o
HDRTEST drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h
CC [M] drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.o
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_runtime_pm.h
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_pm_types.h
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_uncore.h
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_uc.h
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_pci_config.h
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/gt/intel_rps.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/fuse/gm107.o
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_uc_fw_abi.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nv10.o
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_print.h
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_fw.h
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nv50.o
HDRTEST drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/gpio/g94.o
HDRTEST drivers/gpu/drm/i915/gt/uc/abi/guc_errors_abi.h
HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_clock_gating.h
HDRTEST drivers/gpu/drm/i915/gt/uc/abi/guc_actions_slpc_abi.h
HDRTEST drivers/gpu/drm/xe/display/ext/i915_irq.h
HDRTEST drivers/gpu/drm/xe/display/ext/intel_device_info.h
CC [M] drivers/gpu/drm/amd/amdgpu/athub_v1_0.o
HDRTEST drivers/gpu/drm/i915/gt/uc/abi/guc_communication_mmio_abi.h
HDRTEST drivers/gpu/drm/xe/regs/xe_reg_defs.h
HDRTEST drivers/gpu/drm/xe/regs/xe_guc_regs.h
HDRTEST drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h
HDRTEST drivers/gpu/drm/xe/regs/xe_gt_regs.h
HDRTEST drivers/gpu/drm/i915/gt/uc/abi/guc_communication_ctb_abi.h
HDRTEST drivers/gpu/drm/xe/regs/xe_regs.h
HDRTEST drivers/gpu/drm/i915/gt/uc/abi/guc_messages_abi.h
HDRTEST drivers/gpu/drm/xe/regs/xe_gpu_commands.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/gpio/gf119.o
HDRTEST drivers/gpu/drm/xe/regs/xe_lrc_layout.h
HDRTEST drivers/gpu/drm/xe/regs/xe_engine_regs.h
HDRTEST drivers/gpu/drm/xe/tests/xe_test.h
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_debugfs.h
HDRTEST drivers/gpu/drm/xe/tests/xe_pci_test.h
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
HDRTEST drivers/gpu/drm/xe/tests/xe_migrate_test.h
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/gpio/gk104.o
HDRTEST drivers/gpu/drm/xe/tests/xe_dma_buf_test.h
CC [M] drivers/gpu/drm/amd/amdgpu/athub_v2_0.o
HDRTEST drivers/gpu/drm/xe/tests/xe_bo_test.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/gpio/ga102.o
CC [M] drivers/gpu/drm/amd/amdgpu/athub_v2_1.o
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_huc.h
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_gsc_binary_headers.h
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc.h
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_huc_print.h
CC [M] drivers/gpu/drm/amd/amdgpu/athub_v3_0.o
HDRTEST drivers/gpu/drm/xe/xe_bb.h
HDRTEST drivers/gpu/drm/xe/xe_bb_types.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/gsp/base.o
HDRTEST drivers/gpu/drm/xe/xe_bo.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/gsp/gv100.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/gsp/ga102.o
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_huc_fw.h
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_capture.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/base.o
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_log_debugfs.h
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_gsc_proxy.h
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_submission.h
CC [M] drivers/gpu/drm/amd/amdgpu/smuio_v9_0.o
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
CC [M] drivers/gpu/drm/amd/amdgpu/smuio_v11_0.o
CC [M] drivers/gpu/drm/amd/amdgpu/smuio_v11_0_6.o
HDRTEST drivers/gpu/drm/xe/xe_bo_doc.h
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_log.h
HDRTEST drivers/gpu/drm/xe/xe_bo_evict.h
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_ct.h
HDRTEST drivers/gpu/drm/xe/xe_bo_types.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv04.o
HDRTEST drivers/gpu/drm/xe/xe_debugfs.h
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.h
HDRTEST drivers/gpu/drm/xe/xe_devcoredump.h
HDRTEST drivers/gpu/drm/xe/xe_devcoredump_types.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv4e.o
CC [M] drivers/gpu/drm/amd/amdgpu/smuio_v13_0.o
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h
CC [M] drivers/gpu/drm/amd/amdgpu/smuio_v13_0_3.o
CC [M] drivers/gpu/drm/amd/amdgpu/smuio_v13_0_6.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_reset.o
CC [M] drivers/gpu/drm/amd/amdgpu/mca_v3_0.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.o
HDRTEST drivers/gpu/drm/xe/xe_device.h
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_module.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv50.o
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device.o
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.o
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_ads.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/g94.o
HDRTEST drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.h
HDRTEST drivers/gpu/drm/xe/xe_device_types.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf117.o
HDRTEST drivers/gpu/drm/xe/xe_display.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/xe/xe_dma_buf.h
HDRTEST drivers/gpu/drm/i915/gt/intel_hwconfig.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf119.o
HDRTEST drivers/gpu/drm/i915/gt/intel_llc.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gk104.o
HDRTEST drivers/gpu/drm/xe/xe_drv.h
HDRTEST drivers/gpu/drm/i915/gt/gen8_engine_cs.h
HDRTEST drivers/gpu/drm/i915/gt/intel_sseu_debugfs.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gk110.o
HDRTEST drivers/gpu/drm/i915/gt/intel_rc6_types.h
HDRTEST drivers/gpu/drm/i915/gt/intel_context_param.h
HDRTEST drivers/gpu/drm/i915/gt/intel_gpu_commands.h
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_topology.o
HDRTEST drivers/gpu/drm/i915/gt/intel_engine_user.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gm200.o
HDRTEST drivers/gpu/drm/i915/gt/intel_gt_irq.h
HDRTEST drivers/gpu/drm/i915/gt/intel_gsc.h
HDRTEST drivers/gpu/drm/i915/gt/intel_rps.h
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
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/pad.o
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_pasid.o
HDRTEST drivers/gpu/drm/i915/gt/selftests/mock_timeline.h
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_doorbell.o
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_flat_memory.o
HDRTEST drivers/gpu/drm/xe/xe_engine.h
HDRTEST drivers/gpu/drm/i915/gt/intel_lrc.h
HDRTEST drivers/gpu/drm/i915/gt/intel_lrc_reg.h
HDRTEST drivers/gpu/drm/i915/gt/intel_migrate.h
HDRTEST drivers/gpu/drm/xe/xe_engine_types.h
HDRTEST drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.h
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.o
HDRTEST drivers/gpu/drm/i915/gt/intel_breadcrumbs_types.h
HDRTEST drivers/gpu/drm/xe/xe_exec.h
HDRTEST drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.h
HDRTEST drivers/gpu/drm/i915/gt/mock_engine.h
HDRTEST drivers/gpu/drm/i915/gt/intel_engine_stats.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
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padnv04.o
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_queue.o
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padnv4e.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padnv50.o
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_cik.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padg94.o
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_vi.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padgf119.o
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/i915/gt/intel_gtt.h
HDRTEST drivers/gpu/drm/i915/gt/intel_gt_buffer_pool_types.h
HDRTEST drivers/gpu/drm/xe/xe_gt.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padgm200.o
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_idle_sysfs.h
HDRTEST drivers/gpu/drm/xe/xe_gt_idle_sysfs_types.h
HDRTEST drivers/gpu/drm/xe/xe_gt_mcr.h
HDRTEST drivers/gpu/drm/i915/gt/intel_ring.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/i915/gt/intel_gt_types.h
HDRTEST drivers/gpu/drm/i915/gt/intel_renderstate.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/i915/gt/intel_sseu.h
HDRTEST drivers/gpu/drm/i915/gt/intel_engine_types.h
HDRTEST drivers/gpu/drm/xe/xe_gt_tlb_invalidation_types.h
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_v9.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bus.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv04.o
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_v10.o
HDRTEST drivers/gpu/drm/xe/xe_gt_topology.h
HDRTEST drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.h
HDRTEST drivers/gpu/drm/i915/gt/gen2_engine_cs.h
HDRTEST drivers/gpu/drm/xe/xe_gt_types.h
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_v11.o
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_kernel_queue.o
HDRTEST drivers/gpu/drm/xe/xe_guc.h
HDRTEST drivers/gpu/drm/i915/gvt/gvt.h
HDRTEST drivers/gpu/drm/i915/gvt/trace.h
HDRTEST drivers/gpu/drm/i915/gvt/debug.h
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_packet_manager.o
HDRTEST drivers/gpu/drm/i915/gvt/edid.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv4e.o
HDRTEST drivers/gpu/drm/i915/gvt/page_track.h
HDRTEST drivers/gpu/drm/xe/xe_guc_ads.h
HDRTEST drivers/gpu/drm/i915/gvt/mmio.h
HDRTEST drivers/gpu/drm/i915/gvt/sched_policy.h
HDRTEST drivers/gpu/drm/xe/xe_guc_ads_types.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv50.o
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_packet_manager_vi.o
HDRTEST drivers/gpu/drm/xe/xe_guc_ct.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/xe_guc_ct_types.h
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
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busgf119.o
HDRTEST drivers/gpu/drm/i915/gvt/gtt.h
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager.o
HDRTEST drivers/gpu/drm/xe/xe_guc_debugfs.h
HDRTEST drivers/gpu/drm/i915/gvt/scheduler.h
HDRTEST drivers/gpu/drm/i915/gvt/reg.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bit.o
HDRTEST drivers/gpu/drm/xe/xe_guc_engine_types.h
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager_cik.o
HDRTEST drivers/gpu/drm/i915/gvt/execlist.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.o
HDRTEST drivers/gpu/drm/i915/gvt/interrupt.h
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager_vi.o
HDRTEST drivers/gpu/drm/i915/i915_active.h
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager_v9.o
HDRTEST drivers/gpu/drm/xe/xe_guc_fwif.h
HDRTEST drivers/gpu/drm/i915/i915_active_types.h
HDRTEST drivers/gpu/drm/xe/xe_guc_hwconfig.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/i915/i915_cmd_parser.h
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager_v10.o
HDRTEST drivers/gpu/drm/xe/xe_guc_pc_types.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxg94.o
HDRTEST drivers/gpu/drm/i915/i915_config.h
HDRTEST drivers/gpu/drm/xe/xe_guc_submit.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgf119.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgm200.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/i2c/anx9805.o
HDRTEST drivers/gpu/drm/i915/i915_debugfs.h
HDRTEST drivers/gpu/drm/i915/i915_debugfs_params.h
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager_v11.o
HDRTEST drivers/gpu/drm/i915/i915_deps.h
HDRTEST drivers/gpu/drm/xe/xe_guc_submit_types.h
HDRTEST drivers/gpu/drm/xe/xe_guc_types.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.o
HDRTEST drivers/gpu/drm/xe/xe_huc.h
HDRTEST drivers/gpu/drm/i915/i915_driver.h
HDRTEST drivers/gpu/drm/xe/xe_huc_debugfs.h
HDRTEST drivers/gpu/drm/i915/i915_drm_client.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/gf100.o
HDRTEST drivers/gpu/drm/xe/xe_huc_types.h
HDRTEST drivers/gpu/drm/i915/i915_drv.h
HDRTEST drivers/gpu/drm/xe/xe_hw_engine.h
HDRTEST drivers/gpu/drm/i915/i915_file_private.h
HDRTEST drivers/gpu/drm/i915/i915_fixed.h
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_interrupt.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/instmem/base.o
HDRTEST drivers/gpu/drm/i915/i915_gem.h
HDRTEST drivers/gpu/drm/i915/i915_gem_evict.h
HDRTEST drivers/gpu/drm/i915/i915_gem_gtt.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.o
HDRTEST drivers/gpu/drm/i915/i915_gem_ww.h
HDRTEST drivers/gpu/drm/i915/i915_getparam.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv40.o
HDRTEST drivers/gpu/drm/xe/xe_hw_engine_types.h
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_events.o
HDRTEST drivers/gpu/drm/i915/i915_gpu_error.h
HDRTEST drivers/gpu/drm/i915/i915_hwmon.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.o
HDRTEST drivers/gpu/drm/i915/i915_ioc32.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.o
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/cik_event_interrupt.o
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_int_process_v9.o
HDRTEST drivers/gpu/drm/i915/i915_ioctl.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/ltc/base.o
HDRTEST drivers/gpu/drm/xe/xe_hw_fence.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gf100.o
HDRTEST drivers/gpu/drm/xe/xe_hw_fence_types.h
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_int_process_v10.o
HDRTEST drivers/gpu/drm/i915/i915_iosf_mbi.h
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_int_process_v11.o
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_smi_events.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gk104.o
HDRTEST drivers/gpu/drm/i915/i915_irq.h
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_crat.o
HDRTEST drivers/gpu/drm/i915/i915_memcpy.h
HDRTEST drivers/gpu/drm/i915/i915_mitigations.h
HDRTEST drivers/gpu/drm/i915/i915_mm.h
HDRTEST drivers/gpu/drm/i915/i915_params.h
HDRTEST drivers/gpu/drm/xe/xe_irq.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm107.o
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_debug.o
HDRTEST drivers/gpu/drm/i915/i915_pci.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm200.o
HDRTEST drivers/gpu/drm/xe/xe_lrc.h
HDRTEST drivers/gpu/drm/i915/i915_perf.h
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/amd/amdgpu/../amdkfd/kfd_debugfs.o
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/i915/i915_pvinfo.h
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.o
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
CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_migrate.o
HDRTEST drivers/gpu/drm/xe/xe_module.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gp100.o
HDRTEST drivers/gpu/drm/i915/i915_query.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gp102.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gp10b.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/ltc/ga102.o
HDRTEST drivers/gpu/drm/i915/i915_reg.h
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.o
HDRTEST drivers/gpu/drm/i915/i915_reg_defs.h
HDRTEST drivers/gpu/drm/i915/i915_request.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.o
HDRTEST drivers/gpu/drm/xe/xe_pat.h
HDRTEST drivers/gpu/drm/i915/i915_scatterlist.h
HDRTEST drivers/gpu/drm/xe/xe_pci.h
HDRTEST drivers/gpu/drm/i915/i915_scheduler.h
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.o
HDRTEST drivers/gpu/drm/i915/i915_scheduler_types.h
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_aldebaran.o
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
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gc_9_4_3.o
HDRTEST drivers/gpu/drm/i915/i915_selftest.h
HDRTEST drivers/gpu/drm/xe/xe_platform_types.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv04.o
HDRTEST drivers/gpu/drm/xe/xe_pm.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv11.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv17.o
HDRTEST drivers/gpu/drm/i915/i915_suspend.h
HDRTEST drivers/gpu/drm/xe/xe_preempt_fence.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv44.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv50.o
HDRTEST drivers/gpu/drm/i915/i915_sw_fence.h
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10_3.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mc/g84.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mc/g98.o
HDRTEST drivers/gpu/drm/xe/xe_preempt_fence_types.h
HDRTEST drivers/gpu/drm/i915/i915_sw_fence_work.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mc/gt215.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mc/gf100.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mc/gk104.o
HDRTEST drivers/gpu/drm/i915/i915_switcheroo.h
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v11.o
HDRTEST drivers/gpu/drm/i915/i915_syncmap.h
HDRTEST drivers/gpu/drm/xe/xe_pt.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mc/gk20a.o
HDRTEST drivers/gpu/drm/xe/xe_pt_types.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mc/gp100.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.o
HDRTEST drivers/gpu/drm/i915/i915_sysfs.h
HDRTEST drivers/gpu/drm/i915/i915_tasklet.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mc/gp10b.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_job.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mc/ga100.o
HDRTEST drivers/gpu/drm/xe/xe_pt_walk.h
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_acp.o
HDRTEST drivers/gpu/drm/i915/i915_trace.h
HDRTEST drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
HDRTEST drivers/gpu/drm/i915/i915_user_extensions.h
HDRTEST drivers/gpu/drm/i915/i915_utils.h
HDRTEST drivers/gpu/drm/i915/i915_vgpu.h
CC [M] drivers/gpu/drm/amd/amdgpu/../acp/acp_hw.o
HDRTEST drivers/gpu/drm/i915/i915_vma.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.o
HDRTEST drivers/gpu/drm/i915/i915_vma_resource.h
HDRTEST drivers/gpu/drm/i915/i915_vma_types.h
HDRTEST drivers/gpu/drm/i915/intel_clock_gating.h
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_ioc32.o
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.o
HDRTEST drivers/gpu/drm/i915/intel_device_info.h
CC [M] drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv04.o
HDRTEST drivers/gpu/drm/i915/intel_gvt.h
HDRTEST drivers/gpu/drm/i915/intel_mchbar_regs.h
HDRTEST drivers/gpu/drm/i915/intel_memory_region.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv41.o
HDRTEST drivers/gpu/drm/xe/xe_query.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv44.o
HDRTEST drivers/gpu/drm/xe/xe_reg_sr.h
HDRTEST drivers/gpu/drm/i915/intel_pci_config.h
HDRTEST drivers/gpu/drm/i915/intel_pcode.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.o
HDRTEST drivers/gpu/drm/i915/intel_region_ttm.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/g84.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/mcp77.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gf100.o
HDRTEST drivers/gpu/drm/xe/xe_reg_sr_types.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gk104.o
HDRTEST drivers/gpu/drm/i915/intel_runtime_pm.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gk20a.o
HDRTEST drivers/gpu/drm/i915/intel_sbi.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gm200.o
HDRTEST drivers/gpu/drm/xe/xe_reg_whitelist.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gm20b.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/arcturus_ppt.o
HDRTEST drivers/gpu/drm/xe/xe_res_cursor.h
HDRTEST drivers/gpu/drm/xe/xe_ring_ops.h
HDRTEST drivers/gpu/drm/i915/intel_step.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gp100.o
HDRTEST drivers/gpu/drm/i915/intel_uncore.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gp10b.o
HDRTEST drivers/gpu/drm/xe/xe_ring_ops_types.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gv100.o
HDRTEST drivers/gpu/drm/i915/intel_wakeref.h
HDRTEST drivers/gpu/drm/xe/xe_rtp.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/tu102.o
HDRTEST drivers/gpu/drm/xe/xe_rtp_types.h
HDRTEST drivers/gpu/drm/xe/xe_sa.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/mem.o
HDRTEST drivers/gpu/drm/xe/xe_sa_types.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/memnv04.o
HDRTEST drivers/gpu/drm/xe/xe_sched_job.h
HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_tee.h
HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_irq.h
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_gsccs.h
HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/navi10_ppt.o
HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp.h
HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_types.h
HDRTEST drivers/gpu/drm/xe/xe_sched_job_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
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/sienna_cichlid_ppt.o
HDRTEST drivers/gpu/drm/xe/xe_step.h
HDRTEST drivers/gpu/drm/xe/xe_step_types.h
HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_pm.h
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/vangogh_ppt.o
HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_cmd_interface_42.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/i915/pxp/intel_pxp_regs.h
HDRTEST drivers/gpu/drm/xe/xe_sync.h
HDRTEST drivers/gpu/drm/xe/xe_sync_types.h
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/nouveau/nvkm/subdev/mmu/vmm.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv04.o
HDRTEST drivers/gpu/drm/i915/selftests/igt_live_test.h
HDRTEST drivers/gpu/drm/i915/selftests/igt_atomic.h
HDRTEST drivers/gpu/drm/xe/xe_tile.h
HDRTEST drivers/gpu/drm/i915/selftests/mock_gem_device.h
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu12/renoir_ppt.o
HDRTEST drivers/gpu/drm/xe/xe_tile_sysfs.h
HDRTEST drivers/gpu/drm/i915/selftests/mock_drm.h
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu12/smu_v12_0.o
HDRTEST drivers/gpu/drm/i915/selftests/igt_reset.h
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/smu_v13_0.o
HDRTEST drivers/gpu/drm/i915/selftests/intel_scheduler_helpers.h
HDRTEST drivers/gpu/drm/i915/selftests/lib_sw_fence.h
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/aldebaran_ppt.o
HDRTEST drivers/gpu/drm/xe/xe_tile_sysfs_types.h
HDRTEST drivers/gpu/drm/xe/xe_trace.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv41.o
HDRTEST drivers/gpu/drm/xe/xe_ttm_stolen_mgr.h
HDRTEST drivers/gpu/drm/i915/selftests/i915_perf_selftests.h
HDRTEST drivers/gpu/drm/xe/xe_ttm_sys_mgr.h
HDRTEST drivers/gpu/drm/i915/selftests/mock_uncore.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv44.o
HDRTEST drivers/gpu/drm/i915/selftests/mock_gtt.h
HDRTEST drivers/gpu/drm/xe/xe_ttm_vram_mgr.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv50.o
HDRTEST drivers/gpu/drm/xe/xe_ttm_vram_mgr_types.h
HDRTEST drivers/gpu/drm/i915/selftests/i915_mock_selftests.h
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/yellow_carp_ppt.o
HDRTEST drivers/gpu/drm/xe/xe_tuning.h
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/smu_v13_0_0_ppt.o
HDRTEST drivers/gpu/drm/i915/selftests/mock_request.h
HDRTEST drivers/gpu/drm/i915/selftests/i915_random.h
HDRTEST drivers/gpu/drm/i915/selftests/igt_spinner.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmmcp77.o
HDRTEST drivers/gpu/drm/xe/xe_uc.h
HDRTEST drivers/gpu/drm/i915/selftests/librapl.h
HDRTEST drivers/gpu/drm/i915/selftests/mock_region.h
HDRTEST drivers/gpu/drm/i915/selftests/i915_live_selftests.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgf100.o
HDRTEST drivers/gpu/drm/i915/selftests/igt_mmap.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgk104.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgk20a.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgm200.o
HDRTEST drivers/gpu/drm/i915/selftests/igt_flush_test.h
HDRTEST drivers/gpu/drm/i915/soc/intel_pch.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgm20b.o
HDRTEST drivers/gpu/drm/xe/xe_uc_debugfs.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgp100.o
HDRTEST drivers/gpu/drm/i915/soc/intel_dram.h
HDRTEST drivers/gpu/drm/xe/xe_uc_fw.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgp10b.o
HDRTEST drivers/gpu/drm/xe/xe_uc_fw_abi.h
HDRTEST drivers/gpu/drm/xe/xe_uc_fw_types.h
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/smu_v13_0_4_ppt.o
HDRTEST drivers/gpu/drm/xe/xe_uc_types.h
HDRTEST drivers/gpu/drm/i915/soc/intel_gmch.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
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgv100.o
HDRTEST drivers/gpu/drm/i915/vlv_sideband.h
HDRTEST drivers/gpu/drm/i915/vlv_sideband_reg.h
HDRTEST drivers/gpu/drm/i915/vlv_suspend.h
HDRTEST drivers/gpu/drm/xe/xe_vm_types.h
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmtu102.o
LD [M] drivers/gpu/drm/i915/i915.o
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
LD [M] drivers/gpu/drm/xe/xe.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/umem.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/smu_v13_0_5_ppt.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/mmu/ummu.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/smu_v13_0_7_ppt.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/smu_v13_0_6_ppt.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu_cmn.o
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
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pci/pcie.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pci/nv04.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pci/nv40.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/smumgr.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/smu8_smumgr.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/tonga_smumgr.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pci/nv46.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pci/nv4c.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pci/g84.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pci/g92.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pci/g94.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/fiji_smumgr.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pci/gf100.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pci/gf106.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pci/gk104.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pci/gp100.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pmu/memx.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gt215.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gf100.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/polaris10_smumgr.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gf119.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk104.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/iceland_smumgr.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/smu7_smumgr.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/vega10_smumgr.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk110.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/smu10_smumgr.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk208.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/ci_smumgr.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/vega12_smumgr.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/vegam_smumgr.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/smu9_smumgr.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm107.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm200.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm20b.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/../pm/powerplay/smumgr/vega20_smumgr.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/privring/gf100.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/hwmgr.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/nouveau/nvkm/subdev/privring/gk20a.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/privring/gm200.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/processpptables.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/amd/amdgpu/../pm/powerplay/hwmgr/hardwaremanager.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu8_hwmgr.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/amd/amdgpu/../pm/powerplay/hwmgr/pppcielanes.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/process_pptables_v1_0.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/ppatomctrl.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/therm/ic.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/ppatomfwctrl.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.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/amd/amdgpu/../pm/powerplay/hwmgr/smu7_powertune.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/therm/gt215.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf100.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_thermal.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/therm/gm107.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/nouveau/nvkm/subdev/timer/base.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv04.o
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
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv40.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv41.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega10_hwmgr.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/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/amd/amdgpu/../pm/powerplay/hwmgr/smu10_hwmgr.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/amd/amdgpu/../pm/powerplay/hwmgr/pp_psm.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega12_processpptables.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega12_hwmgr.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/amd/amdgpu/../pm/powerplay/hwmgr/vega12_thermal.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/nouveau/nvkm/subdev/volt/nv40.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/volt/gf100.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/volt/gf117.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/pp_overdriver.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu_helper.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega20_processpptables.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/../pm/powerplay/hwmgr/vega20_hwmgr.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega20_powertune.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega20_thermal.o
CC [M] drivers/gpu/drm/nouveau/nvkm/subdev/volt/gm20b.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/amd/amdgpu/../pm/powerplay/hwmgr/common_baco.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega10_baco.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/amd/amdgpu/../pm/powerplay/hwmgr/vega20_baco.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega12_baco.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/nouveau/nvkm/engine/ce/gp100.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu9_baco.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/ce/gp102.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/amd/amdgpu/../pm/powerplay/hwmgr/tonga_baco.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/polaris_baco.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/ce/ga100.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/fiji_baco.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/ci_baco.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/nouveau/nvkm/engine/device/acpi.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/device/base.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_baco.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/amd/amdgpu/../pm/powerplay/amd_powerplay.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/device/user.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/legacy_dpm.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/disp/base.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmi.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_smc.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/disp/head.o
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/amd/amdgpu/../pm/amdgpu_dpm.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/amd/amdgpu/../pm/amdgpu_pm.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.o
CC [M] drivers/gpu/drm/amd/amdgpu/../pm/amdgpu_dpm_internal.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/disp/g84.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/disp/gt200.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp77.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_plane.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/disp/gt215.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_crtc.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_irq.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp89.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_mst_types.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/disp/gk104.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_color.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/disp/gk110.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/dc_fpu.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/disp/gm107.o
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
CC [M] drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_pp_smu.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/disp/gp100.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/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_psr.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/disp/ga102.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_hdcp.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/disp/udisp.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_crc.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.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/basics/conversion.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/basics/fixpt31_32.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] drivers/gpu/drm/amd/amdgpu/../display/dc/basics/vector.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/dma/gf100.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/dma/gf119.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/basics/dc_common.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser_interface.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/dma/gv100.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser_helper.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/dma/user.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv04.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv50.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table_helper.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser_common.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/dma/usergf100.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table2.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/nouveau/nvkm/engine/dma/usergf119.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/dma/usergv100.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/engine/fifo/base.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/fifo/cgrp.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/fifo/chid.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/bios/dce112/command_table_helper2_dce112.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/dce_calcs.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/fifo/runq.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/nouveau/nvkm/engine/fifo/nv04.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/display_mode_lib.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/display_rq_dlg_helpers.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.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/nouveau/nvkm/engine/fifo/g84.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/display_mode_vba.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_rq_dlg_calc_20.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/fifo/g98.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_mode_vba_20.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/fifo/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/engine/fifo/gk104.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk110.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk208.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk20a.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm107.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_mode_vba_20v2.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn21/display_rq_dlg_calc_21.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn21/display_mode_vba_21.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm200.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/fifo/gp100.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.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/nouveau/nvkm/engine/fifo/tu102.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn31/display_mode_vba_31.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn31/display_rq_dlg_calc_31.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga102.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn314/display_mode_vba_314.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/fifo/ucgrp.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/engine/fifo/uchan.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn32/display_mode_vba_32.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/engine/gr/base.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn32/display_mode_vba_util_32.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn31/dcn31_fpu.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn32/dcn32_fpu.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/nv15.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn321/dcn321_fpu.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/nv17.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn301/dcn301_fpu.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn302/dcn302_fpu.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn303/dcn303_fpu.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn314/dcn314_fpu.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dsc/rc_calc_fpu.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/nv44.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/dcn_calcs.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/g84.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/gt200.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/dcn_calc_math.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/dcn_calc_auto.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/mcp79.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/clk_mgr.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/gt215.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/mcp89.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/gf104.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/gf108.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/gf110.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/gf117.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dce60/dce60_clk_mgr.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/gr/gf119.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/gk104.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dce110/dce110_clk_mgr.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/gk110.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/gr/gk110b.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/gk208.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dce120/dce120_clk_mgr.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/gr/gk20a.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/gm107.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn10/rv2_clk_mgr.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/gm200.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/gr/gm20b.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn201/dcn201_clk_mgr.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn21/rn_clk_mgr.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/gp100.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/gp102.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/gp104.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn21/rn_clk_mgr_vbios_smu.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/gp107.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/gp108.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/gr/gp10b.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/gv100.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/tu102.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/ga102.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn30/dcn30_clk_mgr_smu_msg.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv40.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf104.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf108.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/dcn301_smu.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/amd/amdgpu/../display/dc/clk_mgr/dcn314/dcn314_smu.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn314/dcn314_clk_mgr.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf110.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf117.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn315/dcn315_smu.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/gr/ctxgf119.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk110.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn316/dcn316_smu.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk110b.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk208.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn316/dcn316_clk_mgr.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk20a.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.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/gr/ctxgm200.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/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/gr/ctxgm20b.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_hwseq.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp102.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_mem_input.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_clock_source.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_scl_filters.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_transform.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_opp.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp104.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp107.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgv100.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxtu102.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_dmcu.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxga102.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_abm.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv40.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_ipp.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv50.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/mpeg/g84.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/mspdec/base.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_aux.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/mspdec/g98.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_i2c.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/mspdec/gt215.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_i2c_hw.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_i2c_sw.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dmub_psr.o
CC [M] drivers/gpu/drm/nouveau/nvkm/engine/mspdec/gf100.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dmub_abm.o
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dmub_abm_lcd.o
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Intel-xe] ✓ CI.Hooks: success for drm/xe: switch to using drm_exec
2023-07-13 13:17 [Intel-xe] [PATCH v2 0/2] drm/xe: switch to using drm_exec Francois Dugast
` (5 preceding siblings ...)
2023-07-13 14:24 ` [Intel-xe] ✓ CI.Build: " Patchwork
@ 2023-07-13 14:24 ` Patchwork
2023-07-13 14:25 ` [Intel-xe] ✓ CI.checksparse: " Patchwork
7 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2023-07-13 14:24 UTC (permalink / raw)
To: Francois Dugast; +Cc: intel-xe
== Series Details ==
Series: drm/xe: switch to using drm_exec
URL : https://patchwork.freedesktop.org/series/120675/
State : success
== Summary ==
run-parts: executing /workspace/ci/hooks/00-showenv
+ pwd
+ ls -la
/workspace
total 516
drwxrwxr-x 10 1003 1003 4096 Jul 13 14:24 .
drwxr-xr-x 1 root root 4096 Jul 13 14:24 ..
-rw-rw-r-- 1 1003 1003 389651 Jul 13 14:23 build.log
-rw-rw-r-- 1 1003 1003 3073 Jul 13 14:18 checkpatch.log
drwxrwxr-x 5 1003 1003 4096 Jul 13 14:17 ci
drwxrwxr-x 9 1003 1003 4096 Jul 13 14:17 docker
drwxrwxr-x 8 1003 1003 4096 Jul 13 14:17 .git
-rw-rw-r-- 1 1003 1003 266 Jul 13 14:18 git_apply.log
drwxrwxr-x 3 1003 1003 4096 Jul 13 14:17 .github
-rw-rw-r-- 1 1003 1003 233 Jul 13 14:17 .groovylintrc.json
-rw-rw-r-- 1 1003 1003 78 Jul 13 14:24 hooks.log
drwxrwxr-x 31 1003 1003 4096 Jul 13 14:23 kernel
-rw-rw-r-- 1 1003 1003 41196 Jul 13 14:18 kernel.mbox
-rw-rw-r-- 1 1003 1003 26091 Jul 13 14:20 kunit.log
drwxrwxr-x 44 1003 1003 4096 Jul 13 14:17 pipelines
-rw-rw-r-- 1 1003 1003 793 Jul 13 14:17 README.adoc
drwxrwxr-x 3 1003 1003 4096 Jul 13 14:17 scripts
drwxrwxr-x 2 1003 1003 4096 Jul 13 14:17 .vscode
+ uname -a
Linux d58925ea2343 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
e1397169e drm/xe: switch to using drm_exec
0f1a124b2 drm: execution context for GEM buffers v7
ccde55837 drm/xe: handle TLB invalidations from CT fast-path
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/generated/compile.h
UPD include/config/kernel.release
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_idle_sysfs.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_tile_sysfs.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
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
CC [M] drivers/gpu/drm/xe/tests/xe_migrate_test.o
HDRTEST drivers/gpu/drm/xe/abi/guc_messages_abi.h
CC [M] drivers/gpu/drm/xe/tests/xe_pci_test.o
CC [M] drivers/gpu/drm/xe/tests/xe_rtp_test.o
HDRTEST drivers/gpu/drm/xe/regs/xe_reg_defs.h
CC [M] drivers/gpu/drm/xe/tests/xe_wa_test.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
HDRTEST drivers/gpu/drm/xe/regs/xe_lrc_layout.h
HDRTEST drivers/gpu/drm/xe/regs/xe_engine_regs.h
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_idle_sysfs.h
HDRTEST drivers/gpu/drm/xe/xe_gt_idle_sysfs_types.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_fwif.h
HDRTEST drivers/gpu/drm/xe/xe_guc_hwconfig.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_tile_sysfs.h
HDRTEST drivers/gpu/drm/xe/xe_tile_sysfs_types.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_migrate_test.ko
LD [M] drivers/gpu/drm/xe/tests/xe_bo_test.ko
LD [M] drivers/gpu/drm/xe/tests/xe_dma_buf_test.ko
LD [M] drivers/gpu/drm/xe/xe.ko
LD [M] drivers/gpu/drm/xe/tests/xe_pci_test.ko
LD [M] drivers/gpu/drm/xe/tests/xe_rtp_test.ko
LD [M] drivers/gpu/drm/xe/tests/xe_wa_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 include/uapi/drm/xe_drm.h
All hooks done
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Intel-xe] ✓ CI.checksparse: success for drm/xe: switch to using drm_exec
2023-07-13 13:17 [Intel-xe] [PATCH v2 0/2] drm/xe: switch to using drm_exec Francois Dugast
` (6 preceding siblings ...)
2023-07-13 14:24 ` [Intel-xe] ✓ CI.Hooks: " Patchwork
@ 2023-07-13 14:25 ` Patchwork
7 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2023-07-13 14:25 UTC (permalink / raw)
To: Francois Dugast; +Cc: intel-xe
== Series Details ==
Series: drm/xe: switch to using drm_exec
URL : https://patchwork.freedesktop.org/series/120675/
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 ccde558371c92a1f8b3707fe7cf274e388c434dd
Sparse version: 0.6.1 (Ubuntu: 0.6.1-2build1)
Fast mode used, each commit won't be checked separately.
Okay!
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Intel-xe] [PATCH v2 2/2] drm/xe: switch to using drm_exec
2023-07-13 14:00 ` Matthew Brost
2023-07-13 14:17 ` Francois Dugast
@ 2023-07-13 14:35 ` Christian König
2023-07-13 18:13 ` Matthew Brost
1 sibling, 1 reply; 14+ messages in thread
From: Christian König @ 2023-07-13 14:35 UTC (permalink / raw)
To: Matthew Brost, Francois Dugast; +Cc: intel-xe
Am 13.07.23 um 16:00 schrieb Matthew Brost:
> On Thu, Jul 13, 2023 at 01:17:11PM +0000, Francois Dugast wrote:
>> Replace the use of ttm_execbuf_util helpers with the drm_exec helpers.
>>
>> v2:
>> - Call dma-resv locking functions directly in xe_bo_lock and
>> xe_vm_lock functions (Matthew Brost)
>> - Switch to execution context for GEM buffers v7 (Christian König)
>> - Use DRM_EXEC_INTERRUPTIBLE_WAIT
>>
>> Signed-off-by: Francois Dugast <francois.dugast@intel.com>
>> ---
>> drivers/gpu/drm/xe/Kconfig | 1 +
>> drivers/gpu/drm/xe/xe_bo.c | 29 +++-
>> drivers/gpu/drm/xe/xe_bo_types.h | 1 -
>> drivers/gpu/drm/xe/xe_exec.c | 30 +---
>> drivers/gpu/drm/xe/xe_gt_pagefault.c | 55 +-----
>> drivers/gpu/drm/xe/xe_vm.c | 246 +++++++++++++--------------
>> drivers/gpu/drm/xe/xe_vm.h | 32 ++--
>> 7 files changed, 168 insertions(+), 226 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/Kconfig b/drivers/gpu/drm/xe/Kconfig
>> index d44794f99338..b739faa401d3 100644
>> --- a/drivers/gpu/drm/xe/Kconfig
>> +++ b/drivers/gpu/drm/xe/Kconfig
>> @@ -8,6 +8,7 @@ config DRM_XE
>> select SHMEM
>> select TMPFS
>> select DRM_BUDDY
>> + select DRM_EXEC
>> select DRM_KMS_HELPER
>> select DRM_PANEL
>> select DRM_SUBALLOC_HELPER
>> diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
>> index 6353afa8d846..aafe69ed4320 100644
>> --- a/drivers/gpu/drm/xe/xe_bo.c
>> +++ b/drivers/gpu/drm/xe/xe_bo.c
>> @@ -1806,17 +1806,32 @@ int xe_gem_mmap_offset_ioctl(struct drm_device *dev, void *data,
>> int xe_bo_lock(struct xe_bo *bo, struct ww_acquire_ctx *ww,
>> int num_resv, bool intr)
>> {
>> - struct ttm_validate_buffer tv_bo;
>> - LIST_HEAD(objs);
>> - LIST_HEAD(dups);
>> + struct dma_resv *obj;
>> + int err;
>>
>> XE_BUG_ON(!ww);
>>
>> - tv_bo.num_shared = num_resv;
>> - tv_bo.bo = &bo->ttm;;
>> - list_add_tail(&tv_bo.head, &objs);
>> + obj = bo->ttm.base.resv;
>> + ww_acquire_init(ww, &reservation_ww_class);
>> +
>> + if (intr)
>> + err = dma_resv_lock_interruptible(obj, ww);
>> + else
>> + err = dma_resv_lock(obj, ww);
>> +
>> + if (unlikely(err))
>> + return err;
>> +
>> + num_resv = max(num_resv, 1);
> Why? If the user ask to reserve 0 fences this will reserve 1.
Reserving 0 fences is illegal. The dma_resv object will complain about
that in debug builds IIRC.
Christian.
>
>> + err = dma_resv_reserve_fences(obj, num_resv);
>> + if (err)
>> + goto out_err;
>>
>> - return ttm_eu_reserve_buffers(ww, &objs, intr, &dups);
>> + return 0;
>> +
>> +out_err:
>> + dma_resv_unlock(obj);
>> + return err;
>> }
>>
>> void xe_bo_unlock(struct xe_bo *bo, struct ww_acquire_ctx *ww)
>> diff --git a/drivers/gpu/drm/xe/xe_bo_types.h b/drivers/gpu/drm/xe/xe_bo_types.h
>> index f6ee920303af..bc67263c6713 100644
>> --- a/drivers/gpu/drm/xe/xe_bo_types.h
>> +++ b/drivers/gpu/drm/xe/xe_bo_types.h
>> @@ -11,7 +11,6 @@
>> #include <drm/drm_mm.h>
>> #include <drm/ttm/ttm_bo.h>
>> #include <drm/ttm/ttm_device.h>
>> -#include <drm/ttm/ttm_execbuf_util.h>
>> #include <drm/ttm/ttm_placement.h>
>>
>> struct xe_device;
>> diff --git a/drivers/gpu/drm/xe/xe_exec.c b/drivers/gpu/drm/xe/xe_exec.c
>> index ba13d20ed348..32a6e16ec177 100644
>> --- a/drivers/gpu/drm/xe/xe_exec.c
>> +++ b/drivers/gpu/drm/xe/xe_exec.c
>> @@ -6,6 +6,7 @@
>> #include "xe_exec.h"
>>
>> #include <drm/drm_device.h>
>> +#include <drm/drm_exec.h>
>> #include <drm/drm_file.h>
>> #include <drm/xe_drm.h>
>> #include <linux/delay.h>
>> @@ -95,23 +96,18 @@
>>
>> #define XE_EXEC_BIND_RETRY_TIMEOUT_MS 1000
>>
>> -static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
>> - struct ttm_validate_buffer tv_onstack[],
>> - struct ttm_validate_buffer **tv,
>> - struct list_head *objs)
>> +static int xe_exec_begin(struct xe_engine *e, struct drm_exec *exec)
>> {
>> struct xe_vm *vm = e->vm;
>> struct xe_vma *vma;
>> - LIST_HEAD(dups);
>> ktime_t end = 0;
>> int err = 0;
>>
>> - *tv = NULL;
>> if (xe_vm_no_dma_fences(e->vm))
>> return 0;
>>
>> retry:
>> - err = xe_vm_lock_dma_resv(vm, ww, tv_onstack, tv, objs, true, 1);
>> + err = xe_vm_lock_dma_resv(vm, exec, true, 1);
>> if (err)
>> return err;
>>
>> @@ -128,8 +124,7 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
>>
>> err = xe_bo_validate(xe_vma_bo(vma), vm, false);
>> if (err) {
>> - xe_vm_unlock_dma_resv(vm, tv_onstack, *tv, ww, objs);
>> - *tv = NULL;
>> + xe_vm_unlock_dma_resv(vm, exec);
>> break;
>> }
>> }
>> @@ -153,14 +148,10 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
>> return err;
>> }
>>
>> -static void xe_exec_end(struct xe_engine *e,
>> - struct ttm_validate_buffer *tv_onstack,
>> - struct ttm_validate_buffer *tv,
>> - struct ww_acquire_ctx *ww,
>> - struct list_head *objs)
>> +static void xe_exec_end(struct xe_engine *e, struct drm_exec *exec)
>> {
>> if (!xe_vm_no_dma_fences(e->vm))
>> - xe_vm_unlock_dma_resv(e->vm, tv_onstack, tv, ww, objs);
>> + xe_vm_unlock_dma_resv(e->vm, exec);
>> }
>>
>> int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
>> @@ -173,14 +164,11 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
>> struct xe_engine *engine;
>> struct xe_sync_entry *syncs = NULL;
>> u64 addresses[XE_HW_ENGINE_MAX_INSTANCE];
>> - struct ttm_validate_buffer tv_onstack[XE_ONSTACK_TV];
>> - struct ttm_validate_buffer *tv = NULL;
>> u32 i, num_syncs = 0;
>> struct xe_sched_job *job;
>> struct dma_fence *rebind_fence;
>> struct xe_vm *vm;
>> - struct ww_acquire_ctx ww;
>> - struct list_head objs;
>> + struct drm_exec exec;
>> bool write_locked;
>> int err = 0;
>>
>> @@ -293,7 +281,7 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
>> goto err_unlock_list;
>> }
>>
>> - err = xe_exec_begin(engine, &ww, tv_onstack, &tv, &objs);
>> + err = xe_exec_begin(engine, &exec);
>> if (err)
>> goto err_unlock_list;
>>
>> @@ -412,7 +400,7 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
>> if (err)
>> xe_sched_job_put(job);
>> err_engine_end:
>> - xe_exec_end(engine, tv_onstack, tv, &ww, &objs);
>> + xe_exec_end(engine, &exec);
>> err_unlock_list:
>> if (write_locked)
>> up_write(&vm->lock);
>> diff --git a/drivers/gpu/drm/xe/xe_gt_pagefault.c b/drivers/gpu/drm/xe/xe_gt_pagefault.c
>> index 125e4744fa38..94f59c29ba9b 100644
>> --- a/drivers/gpu/drm/xe/xe_gt_pagefault.c
>> +++ b/drivers/gpu/drm/xe/xe_gt_pagefault.c
>> @@ -8,8 +8,8 @@
>> #include <linux/bitfield.h>
>> #include <linux/circ_buf.h>
>>
>> +#include <drm/drm_exec.h>
>> #include <drm/drm_managed.h>
>> -#include <drm/ttm/ttm_execbuf_util.h>
>>
>> #include "xe_bo.h"
>> #include "xe_gt.h"
>> @@ -84,11 +84,6 @@ static bool vma_matches(struct xe_vma *vma, u64 page_addr)
>> return true;
>> }
>>
>> -static bool only_needs_bo_lock(struct xe_bo *bo)
>> -{
>> - return bo && bo->vm;
>> -}
>> -
>> static struct xe_vma *lookup_vma(struct xe_vm *vm, u64 page_addr)
>> {
>> struct xe_vma *vma = NULL;
>> @@ -110,10 +105,7 @@ static int handle_pagefault(struct xe_gt *gt, struct pagefault *pf)
>> struct xe_vm *vm;
>> struct xe_vma *vma = NULL;
>> struct xe_bo *bo;
>> - LIST_HEAD(objs);
>> - LIST_HEAD(dups);
>> - struct ttm_validate_buffer tv_bo, tv_vm;
>> - struct ww_acquire_ctx ww;
>> + struct drm_exec exec;
>> struct dma_fence *fence;
>> bool write_locked;
>> int ret = 0;
>> @@ -171,20 +163,7 @@ static int handle_pagefault(struct xe_gt *gt, struct pagefault *pf)
>>
>> /* Lock VM and BOs dma-resv */
>> bo = xe_vma_bo(vma);
>> - if (only_needs_bo_lock(bo)) {
>> - /* This path ensures the BO's LRU is updated */
>> - ret = xe_bo_lock(bo, &ww, xe->info.tile_count, false);
>> - } else {
>> - tv_vm.num_shared = xe->info.tile_count;
>> - tv_vm.bo = xe_vm_ttm_bo(vm);
>> - list_add(&tv_vm.head, &objs);
>> - if (bo) {
>> - tv_bo.bo = &bo->ttm;
>> - tv_bo.num_shared = xe->info.tile_count;
>> - list_add(&tv_bo.head, &objs);
>> - }
>> - ret = ttm_eu_reserve_buffers(&ww, &objs, false, &dups);
>> - }
>> + ret = xe_vm_bo_lock(vm, bo, &exec, xe->info.tile_count, false);
>> if (ret)
>> goto unlock_vm;
>>
>> @@ -227,10 +206,7 @@ static int handle_pagefault(struct xe_gt *gt, struct pagefault *pf)
>> vma->usm.tile_invalidated &= ~BIT(gt_to_tile(gt)->id);
>>
>> unlock_dma_resv:
>> - if (only_needs_bo_lock(bo))
>> - xe_bo_unlock(bo, &ww);
>> - else
>> - ttm_eu_backoff_reservation(&ww, &objs);
>> + xe_vm_bo_unlock(vm, bo, &exec, true);
>> unlock_vm:
>> if (!ret)
>> vm->usm.last_fault_vma = vma;
>> @@ -498,10 +474,7 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
>> struct xe_vm *vm;
>> struct xe_vma *vma;
>> struct xe_bo *bo;
>> - LIST_HEAD(objs);
>> - LIST_HEAD(dups);
>> - struct ttm_validate_buffer tv_bo, tv_vm;
>> - struct ww_acquire_ctx ww;
>> + struct drm_exec exec;
>> int ret = 0;
>>
>> /* We only support ACC_TRIGGER at the moment */
>> @@ -534,28 +507,14 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
>>
>> /* Lock VM and BOs dma-resv */
>> bo = xe_vma_bo(vma);
>> - if (only_needs_bo_lock(bo)) {
>> - /* This path ensures the BO's LRU is updated */
>> - ret = xe_bo_lock(bo, &ww, xe->info.tile_count, false);
>> - } else {
>> - tv_vm.num_shared = xe->info.tile_count;
>> - tv_vm.bo = xe_vm_ttm_bo(vm);
>> - list_add(&tv_vm.head, &objs);
>> - tv_bo.bo = &bo->ttm;
>> - tv_bo.num_shared = xe->info.tile_count;
>> - list_add(&tv_bo.head, &objs);
>> - ret = ttm_eu_reserve_buffers(&ww, &objs, false, &dups);
>> - }
>> + ret = xe_vm_bo_lock(vm, bo, &exec, xe->info.tile_count, false);
>> if (ret)
>> goto unlock_vm;
>>
>> /* Migrate to VRAM, move should invalidate the VMA first */
>> ret = xe_bo_migrate(bo, XE_PL_VRAM0 + tile->id);
>>
>> - if (only_needs_bo_lock(bo))
>> - xe_bo_unlock(bo, &ww);
>> - else
>> - ttm_eu_backoff_reservation(&ww, &objs);
>> + xe_vm_bo_unlock(vm, bo, &exec, true);
>> unlock_vm:
>> up_read(&vm->lock);
>> xe_vm_put(vm);
>> diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
>> index 6c216350084b..c89b10d5feb5 100644
>> --- a/drivers/gpu/drm/xe/xe_vm.c
>> +++ b/drivers/gpu/drm/xe/xe_vm.c
>> @@ -7,8 +7,8 @@
>>
>> #include <linux/dma-fence-array.h>
>>
>> +#include <drm/drm_exec.h>
>> #include <drm/drm_print.h>
>> -#include <drm/ttm/ttm_execbuf_util.h>
>> #include <drm/ttm/ttm_tt.h>
>> #include <drm/xe_drm.h>
>> #include <linux/delay.h>
>> @@ -321,11 +321,8 @@ static void resume_and_reinstall_preempt_fences(struct xe_vm *vm)
>>
>> int xe_vm_add_compute_engine(struct xe_vm *vm, struct xe_engine *e)
>> {
>> - struct ttm_validate_buffer tv_onstack[XE_ONSTACK_TV];
>> - struct ttm_validate_buffer *tv;
>> - struct ww_acquire_ctx ww;
>> - struct list_head objs;
>> struct dma_fence *pfence;
>> + struct drm_exec exec;
>> int err;
>> bool wait;
>>
>> @@ -333,7 +330,7 @@ int xe_vm_add_compute_engine(struct xe_vm *vm, struct xe_engine *e)
>>
>> down_write(&vm->lock);
>>
>> - err = xe_vm_lock_dma_resv(vm, &ww, tv_onstack, &tv, &objs, true, 1);
>> + err = xe_vm_lock_dma_resv(vm, &exec, true, 1);
>> if (err)
>> goto out_unlock_outer;
>>
>> @@ -367,7 +364,7 @@ int xe_vm_add_compute_engine(struct xe_vm *vm, struct xe_engine *e)
>> up_read(&vm->userptr.notifier_lock);
>>
>> out_unlock:
>> - xe_vm_unlock_dma_resv(vm, tv_onstack, tv, &ww, &objs);
>> + xe_vm_unlock_dma_resv(vm, &exec);
>> out_unlock_outer:
>> up_write(&vm->lock);
>>
>> @@ -397,68 +394,43 @@ int __xe_vm_userptr_needs_repin(struct xe_vm *vm)
>> * xe_vm_lock_dma_resv() - Lock the vm dma_resv object and the dma_resv
>> * objects of the vm's external buffer objects.
>> * @vm: The vm.
>> - * @ww: Pointer to a struct ww_acquire_ctx locking context.
>> - * @tv_onstack: Array size XE_ONSTACK_TV of storage for the struct
>> - * ttm_validate_buffers used for locking.
>> - * @tv: Pointer to a pointer that on output contains the actual storage used.
>> - * @objs: List head for the buffer objects locked.
>> + * @exec: Pointer to a struct drm_exec execution context.
>> * @intr: Whether to lock interruptible.
>> * @num_shared: Number of dma-fence slots to reserve in the locked objects.
>> *
>> * Locks the vm dma-resv objects and all the dma-resv objects of the
>> - * buffer objects on the vm external object list. The TTM utilities require
>> - * a list of struct ttm_validate_buffers pointing to the actual buffer
>> - * objects to lock. Storage for those struct ttm_validate_buffers should
>> - * be provided in @tv_onstack, and is typically reserved on the stack
>> - * of the caller. If the size of @tv_onstack isn't sufficient, then
>> - * storage will be allocated internally using kvmalloc().
>> + * buffer objects on the vm external object list using helpers provided
>> + * by drm_exec.
>> *
>> * The function performs deadlock handling internally, and after a
>> * successful return the ww locking transaction should be considered
>> * sealed.
>> *
>> - * Return: 0 on success, Negative error code on error. In particular if
>> - * @intr is set to true, -EINTR or -ERESTARTSYS may be returned. In case
>> - * of error, any locking performed has been reverted.
>> + * Return: 0 on success, Negative error code on error.
>> */
>> -int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
>> - struct ttm_validate_buffer *tv_onstack,
>> - struct ttm_validate_buffer **tv,
>> - struct list_head *objs,
>> - bool intr,
>> - unsigned int num_shared)
>> -{
>> - struct ttm_validate_buffer *tv_vm, *tv_bo;
>> +int xe_vm_lock_dma_resv(struct xe_vm *vm, struct drm_exec *exec,
>> + bool intr, unsigned int num_shared)
>> +{
>> struct xe_vma *vma, *next;
>> - LIST_HEAD(dups);
>> + struct drm_gem_object *obj;
>> int err;
>>
>> lockdep_assert_held(&vm->lock);
>>
>> - if (vm->extobj.entries < XE_ONSTACK_TV) {
>> - tv_vm = tv_onstack;
>> - } else {
>> - tv_vm = kvmalloc_array(vm->extobj.entries + 1, sizeof(*tv_vm),
>> - GFP_KERNEL);
>> - if (!tv_vm)
>> - return -ENOMEM;
>> + drm_exec_init(exec, intr ? DRM_EXEC_INTERRUPTIBLE_WAIT : 0);
>> + drm_exec_until_all_locked(exec) {
>> + err = drm_exec_prepare_obj(exec, xe_vm_gem(vm), num_shared);
>> + drm_exec_retry_on_contention(exec);
>> + if (unlikely(err) && err != -EALREADY)
>> + goto out_err;
>> + list_for_each_entry(vma, &vm->extobj.list, extobj.link) {
>> + obj = &xe_vma_bo(vma)->ttm.base;
>> + err = drm_exec_prepare_obj(exec, obj, num_shared);
>> + drm_exec_retry_on_contention(exec);
>> + if (unlikely(err) && err != -EALREADY)
>> + goto out_err;
>> + }
>> }
>> - tv_bo = tv_vm + 1;
>> -
>> - INIT_LIST_HEAD(objs);
>> - list_for_each_entry(vma, &vm->extobj.list, extobj.link) {
>> - tv_bo->num_shared = num_shared;
>> - tv_bo->bo = &xe_vma_bo(vma)->ttm;
>> -
>> - list_add_tail(&tv_bo->head, objs);
>> - tv_bo++;
>> - }
>> - tv_vm->num_shared = num_shared;
>> - tv_vm->bo = xe_vm_ttm_bo(vm);
>> - list_add_tail(&tv_vm->head, objs);
>> - err = ttm_eu_reserve_buffers(ww, objs, intr, &dups);
>> - if (err)
>> - goto out_err;
>>
>> spin_lock(&vm->notifier.list_lock);
>> list_for_each_entry_safe(vma, next, &vm->notifier.rebind_list,
>> @@ -470,14 +442,10 @@ int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
>> list_move_tail(&vma->rebind_link, &vm->rebind_list);
>> }
>> spin_unlock(&vm->notifier.list_lock);
>> -
>> - *tv = tv_vm;
>> return 0;
>>
>> out_err:
>> - if (tv_vm != tv_onstack)
>> - kvfree(tv_vm);
>> -
>> + drm_exec_fini(exec);
>> return err;
>> }
>>
>> @@ -485,20 +453,16 @@ int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
>> * xe_vm_unlock_dma_resv() - Unlock reservation objects locked by
>> * xe_vm_lock_dma_resv()
>> * @vm: The vm.
>> - * @tv_onstack: The @tv_onstack array given to xe_vm_lock_dma_resv().
>> - * @tv: The value of *@tv given by xe_vm_lock_dma_resv().
>> - * @ww: The ww_acquire_context used for locking.
>> - * @objs: The list returned from xe_vm_lock_dma_resv().
>> + * @exec: The @drm_exec given to xe_vm_lock_dma_resv().
>> *
>> * Unlocks the reservation objects and frees any memory allocated by
>> * xe_vm_lock_dma_resv().
>> */
>> -void xe_vm_unlock_dma_resv(struct xe_vm *vm,
>> - struct ttm_validate_buffer *tv_onstack,
>> - struct ttm_validate_buffer *tv,
>> - struct ww_acquire_ctx *ww,
>> - struct list_head *objs)
>> +void xe_vm_unlock_dma_resv(struct xe_vm *vm, struct drm_exec *exec)
>> {
>> + struct drm_gem_object *obj, *skip = xe_vm_gem(vm);
>> + unsigned long index;
>> +
>> /*
>> * Nothing should've been able to enter the list while we were locked,
>> * since we've held the dma-resvs of all the vm's external objects,
>> @@ -507,9 +471,13 @@ void xe_vm_unlock_dma_resv(struct xe_vm *vm,
>> */
>> XE_WARN_ON(!list_empty(&vm->notifier.rebind_list));
>>
>> - ttm_eu_backoff_reservation(ww, objs);
>> - if (tv && tv != tv_onstack)
>> - kvfree(tv);
>> + drm_exec_for_each_locked_object(exec, index, obj) {
>> + struct xe_bo *bo = gem_to_xe_bo(obj);
>> +
>> + if (obj != skip)
>> + ttm_bo_move_to_lru_tail_unlocked(&bo->ttm);
>> + }
>> + drm_exec_fini(exec);
>> }
>>
>> #define XE_VM_REBIND_RETRY_TIMEOUT_MS 1000
>> @@ -536,10 +504,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
>> {
>> struct xe_vm *vm = container_of(w, struct xe_vm, preempt.rebind_work);
>> struct xe_vma *vma;
>> - struct ttm_validate_buffer tv_onstack[XE_ONSTACK_TV];
>> - struct ttm_validate_buffer *tv;
>> - struct ww_acquire_ctx ww;
>> - struct list_head objs;
>> + struct drm_exec exec;
>> struct dma_fence *rebind_fence;
>> unsigned int fence_count = 0;
>> LIST_HEAD(preempt_fences);
>> @@ -582,8 +547,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
>> goto out_unlock_outer;
>> }
>>
>> - err = xe_vm_lock_dma_resv(vm, &ww, tv_onstack, &tv, &objs,
>> - false, vm->preempt.num_engines);
>> + err = xe_vm_lock_dma_resv(vm, &exec, false, vm->preempt.num_engines);
>> if (err)
>> goto out_unlock_outer;
>>
>> @@ -662,7 +626,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
>> up_read(&vm->userptr.notifier_lock);
>>
>> out_unlock:
>> - xe_vm_unlock_dma_resv(vm, tv_onstack, tv, &ww, &objs);
>> + xe_vm_unlock_dma_resv(vm, &exec);
>> out_unlock_outer:
>> if (err == -EAGAIN) {
>> trace_xe_vm_rebind_worker_retry(vm);
>> @@ -1105,27 +1069,17 @@ static void xe_vma_destroy(struct xe_vma *vma, struct dma_fence *fence)
>>
>> static void xe_vma_destroy_unlocked(struct xe_vma *vma)
>> {
>> - struct ttm_validate_buffer tv[2];
>> - struct ww_acquire_ctx ww;
>> + struct xe_vm *vm = xe_vma_vm(vma);
>> struct xe_bo *bo = xe_vma_bo(vma);
>> - LIST_HEAD(objs);
>> - LIST_HEAD(dups);
>> + struct drm_exec exec;
>> int err;
>>
>> - memset(tv, 0, sizeof(tv));
>> - tv[0].bo = xe_vm_ttm_bo(xe_vma_vm(vma));
>> - list_add(&tv[0].head, &objs);
>> -
>> - if (bo) {
>> - tv[1].bo = &xe_bo_get(bo)->ttm;
>> - list_add(&tv[1].head, &objs);
>> - }
>> - err = ttm_eu_reserve_buffers(&ww, &objs, false, &dups);
>> + err = xe_vm_bo_lock(vm, xe_bo_get(bo), &exec, 0, false);
>> XE_WARN_ON(err);
>>
>> xe_vma_destroy(vma, NULL);
>>
>> - ttm_eu_backoff_reservation(&ww, &objs);
>> + xe_vm_bo_unlock(vm, bo, &exec, false);
>> if (bo)
>> xe_bo_put(bo);
>> }
>> @@ -2125,21 +2079,6 @@ static int xe_vm_prefetch(struct xe_vm *vm, struct xe_vma *vma,
>>
>> #define VM_BIND_OP(op) (op & 0xffff)
>>
>> -struct ttm_buffer_object *xe_vm_ttm_bo(struct xe_vm *vm)
>> -{
>> - int idx = vm->flags & XE_VM_FLAG_MIGRATION ?
>> - XE_VM_FLAG_GT_ID(vm->flags) : 0;
>> -
>> - /* Safe to use index 0 as all BO in the VM share a single dma-resv lock */
>> - return &vm->pt_root[idx]->bo->ttm;
>> -}
>> -
>> -static void xe_vm_tv_populate(struct xe_vm *vm, struct ttm_validate_buffer *tv)
>> -{
>> - tv->num_shared = 1;
>> - tv->bo = xe_vm_ttm_bo(vm);
>> -}
>> -
>> static void vm_set_async_error(struct xe_vm *vm, int err)
>> {
>> lockdep_assert_held(&vm->lock);
>> @@ -2577,17 +2516,12 @@ static int xe_vma_op_commit(struct xe_vm *vm, struct xe_vma_op *op)
>> static int __xe_vma_op_execute(struct xe_vm *vm, struct xe_vma *vma,
>> struct xe_vma_op *op)
>> {
>> - LIST_HEAD(objs);
>> - LIST_HEAD(dups);
>> - struct ttm_validate_buffer tv_bo, tv_vm;
>> - struct ww_acquire_ctx ww;
>> struct xe_bo *vbo;
>> + struct drm_exec exec;
>> int err;
>>
>> lockdep_assert_held_write(&vm->lock);
>>
>> - xe_vm_tv_populate(vm, &tv_vm);
>> - list_add_tail(&tv_vm.head, &objs);
>> vbo = xe_vma_bo(vma);
>> if (vbo) {
>> /*
>> @@ -2596,16 +2530,10 @@ static int __xe_vma_op_execute(struct xe_vm *vm, struct xe_vma *vma,
>> * take a reference here.
>> */
>> xe_bo_get(vbo);
>> -
>> - if (!vbo->vm) {
>> - tv_bo.bo = &vbo->ttm;
>> - tv_bo.num_shared = 1;
>> - list_add(&tv_bo.head, &objs);
>> - }
>> }
>>
>> again:
>> - err = ttm_eu_reserve_buffers(&ww, &objs, true, &dups);
>> + err = xe_vm_bo_lock(vm, vbo, &exec, 1, true);
>> if (err) {
>> xe_bo_put(vbo);
>> return err;
>> @@ -2687,7 +2615,7 @@ static int __xe_vma_op_execute(struct xe_vm *vm, struct xe_vma *vma,
>> XE_BUG_ON("NOT POSSIBLE");
>> }
>>
>> - ttm_eu_backoff_reservation(&ww, &objs);
>> + xe_vm_bo_unlock(vm, vbo, &exec, false);
>> if (err == -EAGAIN && xe_vma_is_userptr(vma)) {
>> lockdep_assert_held_write(&vm->lock);
>> err = xe_vma_userptr_pin_pages(vma);
>> @@ -3338,24 +3266,47 @@ int xe_vm_bind_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
>> return err == -ENODATA ? 0 : err;
>> }
>>
>> +struct drm_gem_object *xe_vm_gem(struct xe_vm *vm)
>> +{
>> + int idx = vm->flags & XE_VM_FLAG_MIGRATION ?
>> + XE_VM_FLAG_GT_ID(vm->flags) : 0;
>> +
>> + /* Safe to use index 0 as all BO in the VM share a single dma-resv lock */
>> + return &vm->pt_root[idx]->bo->ttm.base;
>> +}
>> +
>> /*
>> - * XXX: Using the TTM wrappers for now, likely can call into dma-resv code
>> - * directly to optimize. Also this likely should be an inline function.
>> + * XXX: This likely should be an inline function.
>> */
>> int xe_vm_lock(struct xe_vm *vm, struct ww_acquire_ctx *ww,
>> int num_resv, bool intr)
>> {
>> - struct ttm_validate_buffer tv_vm;
>> - LIST_HEAD(objs);
>> - LIST_HEAD(dups);
>> + struct dma_resv *obj;
>> + int err;
>>
>> XE_BUG_ON(!ww);
>>
>> - tv_vm.num_shared = num_resv;
>> - tv_vm.bo = xe_vm_ttm_bo(vm);;
>> - list_add_tail(&tv_vm.head, &objs);
>> + obj = xe_vm_gem(vm)->resv;
>> + ww_acquire_init(ww, &reservation_ww_class);
>> +
>> + if (intr)
>> + err = dma_resv_lock_interruptible(obj, ww);
>> + else
>> + err = dma_resv_lock(obj, ww);
>> +
>> + if (unlikely(err))
>> + return err;
>> +
>> + num_resv = max(num_resv, 1);
> Same question as above here.
>
> Matt
>
>> + err = dma_resv_reserve_fences(obj, num_resv);
>> + if (err)
>> + goto out_err;
>>
>> - return ttm_eu_reserve_buffers(ww, &objs, intr, &dups);
>> + return 0;
>> +
>> +out_err:
>> + dma_resv_unlock(&vm->resv);
>> + return err;
>> }
>>
>> void xe_vm_unlock(struct xe_vm *vm, struct ww_acquire_ctx *ww)
>> @@ -3364,6 +3315,43 @@ void xe_vm_unlock(struct xe_vm *vm, struct ww_acquire_ctx *ww)
>> ww_acquire_fini(ww);
>> }
>>
>> +int xe_vm_bo_lock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
>> + int num_resv, bool intr)
>> +{
>> + int err;
>> +
>> + drm_exec_init(exec, intr ? DRM_EXEC_INTERRUPTIBLE_WAIT : 0);
>> + drm_exec_until_all_locked(exec) {
>> + err = drm_exec_prepare_obj(exec, xe_vm_gem(vm),
>> + num_resv);
>> + drm_exec_retry_on_contention(exec);
>> + if (err && err != -EALREADY)
>> + goto out_err;
>> +
>> + if (bo && !bo->vm) {
>> + err = drm_exec_prepare_obj(exec, &bo->ttm.base,
>> + num_resv);
>> + drm_exec_retry_on_contention(exec);
>> + if (err && err != -EALREADY)
>> + goto out_err;
>> + }
>> + }
>> +
>> + return 0;
>> +
>> +out_err:
>> + drm_exec_fini(exec);
>> + return err;
>> +}
>> +
>> +void xe_vm_bo_unlock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
>> + bool lru_update)
>> +{
>> + if (lru_update && bo && (!bo->vm || xe_vm_no_dma_fences(vm)))
>> + ttm_bo_move_to_lru_tail_unlocked(&bo->ttm);
>> + drm_exec_fini(exec);
>> +}
>> +
>> /**
>> * xe_vm_invalidate_vma - invalidate GPU mappings for VMA without a lock
>> * @vma: VMA to invalidate
>> diff --git a/drivers/gpu/drm/xe/xe_vm.h b/drivers/gpu/drm/xe/xe_vm.h
>> index eaf11ac8ff51..62a062bd5078 100644
>> --- a/drivers/gpu/drm/xe/xe_vm.h
>> +++ b/drivers/gpu/drm/xe/xe_vm.h
>> @@ -12,6 +12,7 @@
>> #include "xe_vm_types.h"
>>
>> struct drm_device;
>> +struct drm_exec;
>> struct drm_printer;
>> struct drm_file;
>>
>> @@ -39,11 +40,17 @@ static inline void xe_vm_put(struct xe_vm *vm)
>> kref_put(&vm->refcount, xe_vm_free);
>> }
>>
>> +struct drm_gem_object *xe_vm_gem(struct xe_vm *vm);
>> +
>> int xe_vm_lock(struct xe_vm *vm, struct ww_acquire_ctx *ww,
>> int num_resv, bool intr);
>> -
>> void xe_vm_unlock(struct xe_vm *vm, struct ww_acquire_ctx *ww);
>>
>> +int xe_vm_bo_lock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
>> + int num_resv, bool intr);
>> +void xe_vm_bo_unlock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
>> + bool lru_update);
>> +
>> static inline bool xe_vm_is_closed(struct xe_vm *vm)
>> {
>> /* Only guaranteed not to change when vm->lock is held */
>> @@ -183,8 +190,6 @@ int xe_vm_async_fence_wait_start(struct dma_fence *fence);
>>
>> extern struct ttm_device_funcs xe_ttm_funcs;
>>
>> -struct ttm_buffer_object *xe_vm_ttm_bo(struct xe_vm *vm);
>> -
>> /**
>> * xe_vm_reactivate_rebind() - Reactivate the rebind functionality on compute
>> * vms.
>> @@ -212,23 +217,10 @@ static inline void xe_vm_queue_rebind_worker(struct xe_vm *vm)
>> queue_work(vm->xe->ordered_wq, &vm->preempt.rebind_work);
>> }
>>
>> -/*
>> - * XE_ONSTACK_TV is used to size the tv_onstack array that is input
>> - * to xe_vm_lock_dma_resv() and xe_vm_unlock_dma_resv().
>> - */
>> -#define XE_ONSTACK_TV 20
>> -int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
>> - struct ttm_validate_buffer *tv_onstack,
>> - struct ttm_validate_buffer **tv,
>> - struct list_head *objs,
>> - bool intr,
>> - unsigned int num_shared);
>> -
>> -void xe_vm_unlock_dma_resv(struct xe_vm *vm,
>> - struct ttm_validate_buffer *tv_onstack,
>> - struct ttm_validate_buffer *tv,
>> - struct ww_acquire_ctx *ww,
>> - struct list_head *objs);
>> +int xe_vm_lock_dma_resv(struct xe_vm *vm, struct drm_exec *exec,
>> + bool intr, unsigned int num_shared);
>> +
>> +void xe_vm_unlock_dma_resv(struct xe_vm *vm, struct drm_exec *exec);
>>
>> void xe_vm_fence_all_extobjs(struct xe_vm *vm, struct dma_fence *fence,
>> enum dma_resv_usage usage);
>> --
>> 2.34.1
>>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Intel-xe] [PATCH v2 2/2] drm/xe: switch to using drm_exec
2023-07-13 14:35 ` Christian König
@ 2023-07-13 18:13 ` Matthew Brost
2023-07-14 6:44 ` Christian König
0 siblings, 1 reply; 14+ messages in thread
From: Matthew Brost @ 2023-07-13 18:13 UTC (permalink / raw)
To: Christian König; +Cc: Francois Dugast, intel-xe
On Thu, Jul 13, 2023 at 04:35:57PM +0200, Christian König wrote:
> Am 13.07.23 um 16:00 schrieb Matthew Brost:
> > On Thu, Jul 13, 2023 at 01:17:11PM +0000, Francois Dugast wrote:
> > > Replace the use of ttm_execbuf_util helpers with the drm_exec helpers.
> > >
> > > v2:
> > > - Call dma-resv locking functions directly in xe_bo_lock and
> > > xe_vm_lock functions (Matthew Brost)
> > > - Switch to execution context for GEM buffers v7 (Christian König)
> > > - Use DRM_EXEC_INTERRUPTIBLE_WAIT
> > >
> > > Signed-off-by: Francois Dugast <francois.dugast@intel.com>
> > > ---
> > > drivers/gpu/drm/xe/Kconfig | 1 +
> > > drivers/gpu/drm/xe/xe_bo.c | 29 +++-
> > > drivers/gpu/drm/xe/xe_bo_types.h | 1 -
> > > drivers/gpu/drm/xe/xe_exec.c | 30 +---
> > > drivers/gpu/drm/xe/xe_gt_pagefault.c | 55 +-----
> > > drivers/gpu/drm/xe/xe_vm.c | 246 +++++++++++++--------------
> > > drivers/gpu/drm/xe/xe_vm.h | 32 ++--
> > > 7 files changed, 168 insertions(+), 226 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/xe/Kconfig b/drivers/gpu/drm/xe/Kconfig
> > > index d44794f99338..b739faa401d3 100644
> > > --- a/drivers/gpu/drm/xe/Kconfig
> > > +++ b/drivers/gpu/drm/xe/Kconfig
> > > @@ -8,6 +8,7 @@ config DRM_XE
> > > select SHMEM
> > > select TMPFS
> > > select DRM_BUDDY
> > > + select DRM_EXEC
> > > select DRM_KMS_HELPER
> > > select DRM_PANEL
> > > select DRM_SUBALLOC_HELPER
> > > diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
> > > index 6353afa8d846..aafe69ed4320 100644
> > > --- a/drivers/gpu/drm/xe/xe_bo.c
> > > +++ b/drivers/gpu/drm/xe/xe_bo.c
> > > @@ -1806,17 +1806,32 @@ int xe_gem_mmap_offset_ioctl(struct drm_device *dev, void *data,
> > > int xe_bo_lock(struct xe_bo *bo, struct ww_acquire_ctx *ww,
> > > int num_resv, bool intr)
> > > {
> > > - struct ttm_validate_buffer tv_bo;
> > > - LIST_HEAD(objs);
> > > - LIST_HEAD(dups);
> > > + struct dma_resv *obj;
> > > + int err;
> > > XE_BUG_ON(!ww);
> > > - tv_bo.num_shared = num_resv;
> > > - tv_bo.bo = &bo->ttm;;
> > > - list_add_tail(&tv_bo.head, &objs);
> > > + obj = bo->ttm.base.resv;
> > > + ww_acquire_init(ww, &reservation_ww_class);
> > > +
> > > + if (intr)
> > > + err = dma_resv_lock_interruptible(obj, ww);
> > > + else
> > > + err = dma_resv_lock(obj, ww);
> > > +
> > > + if (unlikely(err))
> > > + return err;
> > > +
> > > + num_resv = max(num_resv, 1);
> > Why? If the user ask to reserve 0 fences this will reserve 1.
>
> Reserving 0 fences is illegal. The dma_resv object will complain about that
> in debug builds IIRC.
>
Maybe if you call dma_resv_reserve_fences with 0 or try to install a
fence without reserving something will complain but certainly can do
this:
dma_resv_lock
do something without calling dma_resv_reserve_fences
dma_resv_unlock
Matt
> Christian.
>
> >
> > > + err = dma_resv_reserve_fences(obj, num_resv);
> > > + if (err)
> > > + goto out_err;
> > > - return ttm_eu_reserve_buffers(ww, &objs, intr, &dups);
> > > + return 0;
> > > +
> > > +out_err:
> > > + dma_resv_unlock(obj);
> > > + return err;
> > > }
> > > void xe_bo_unlock(struct xe_bo *bo, struct ww_acquire_ctx *ww)
> > > diff --git a/drivers/gpu/drm/xe/xe_bo_types.h b/drivers/gpu/drm/xe/xe_bo_types.h
> > > index f6ee920303af..bc67263c6713 100644
> > > --- a/drivers/gpu/drm/xe/xe_bo_types.h
> > > +++ b/drivers/gpu/drm/xe/xe_bo_types.h
> > > @@ -11,7 +11,6 @@
> > > #include <drm/drm_mm.h>
> > > #include <drm/ttm/ttm_bo.h>
> > > #include <drm/ttm/ttm_device.h>
> > > -#include <drm/ttm/ttm_execbuf_util.h>
> > > #include <drm/ttm/ttm_placement.h>
> > > struct xe_device;
> > > diff --git a/drivers/gpu/drm/xe/xe_exec.c b/drivers/gpu/drm/xe/xe_exec.c
> > > index ba13d20ed348..32a6e16ec177 100644
> > > --- a/drivers/gpu/drm/xe/xe_exec.c
> > > +++ b/drivers/gpu/drm/xe/xe_exec.c
> > > @@ -6,6 +6,7 @@
> > > #include "xe_exec.h"
> > > #include <drm/drm_device.h>
> > > +#include <drm/drm_exec.h>
> > > #include <drm/drm_file.h>
> > > #include <drm/xe_drm.h>
> > > #include <linux/delay.h>
> > > @@ -95,23 +96,18 @@
> > > #define XE_EXEC_BIND_RETRY_TIMEOUT_MS 1000
> > > -static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
> > > - struct ttm_validate_buffer tv_onstack[],
> > > - struct ttm_validate_buffer **tv,
> > > - struct list_head *objs)
> > > +static int xe_exec_begin(struct xe_engine *e, struct drm_exec *exec)
> > > {
> > > struct xe_vm *vm = e->vm;
> > > struct xe_vma *vma;
> > > - LIST_HEAD(dups);
> > > ktime_t end = 0;
> > > int err = 0;
> > > - *tv = NULL;
> > > if (xe_vm_no_dma_fences(e->vm))
> > > return 0;
> > > retry:
> > > - err = xe_vm_lock_dma_resv(vm, ww, tv_onstack, tv, objs, true, 1);
> > > + err = xe_vm_lock_dma_resv(vm, exec, true, 1);
> > > if (err)
> > > return err;
> > > @@ -128,8 +124,7 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
> > > err = xe_bo_validate(xe_vma_bo(vma), vm, false);
> > > if (err) {
> > > - xe_vm_unlock_dma_resv(vm, tv_onstack, *tv, ww, objs);
> > > - *tv = NULL;
> > > + xe_vm_unlock_dma_resv(vm, exec);
> > > break;
> > > }
> > > }
> > > @@ -153,14 +148,10 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
> > > return err;
> > > }
> > > -static void xe_exec_end(struct xe_engine *e,
> > > - struct ttm_validate_buffer *tv_onstack,
> > > - struct ttm_validate_buffer *tv,
> > > - struct ww_acquire_ctx *ww,
> > > - struct list_head *objs)
> > > +static void xe_exec_end(struct xe_engine *e, struct drm_exec *exec)
> > > {
> > > if (!xe_vm_no_dma_fences(e->vm))
> > > - xe_vm_unlock_dma_resv(e->vm, tv_onstack, tv, ww, objs);
> > > + xe_vm_unlock_dma_resv(e->vm, exec);
> > > }
> > > int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
> > > @@ -173,14 +164,11 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
> > > struct xe_engine *engine;
> > > struct xe_sync_entry *syncs = NULL;
> > > u64 addresses[XE_HW_ENGINE_MAX_INSTANCE];
> > > - struct ttm_validate_buffer tv_onstack[XE_ONSTACK_TV];
> > > - struct ttm_validate_buffer *tv = NULL;
> > > u32 i, num_syncs = 0;
> > > struct xe_sched_job *job;
> > > struct dma_fence *rebind_fence;
> > > struct xe_vm *vm;
> > > - struct ww_acquire_ctx ww;
> > > - struct list_head objs;
> > > + struct drm_exec exec;
> > > bool write_locked;
> > > int err = 0;
> > > @@ -293,7 +281,7 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
> > > goto err_unlock_list;
> > > }
> > > - err = xe_exec_begin(engine, &ww, tv_onstack, &tv, &objs);
> > > + err = xe_exec_begin(engine, &exec);
> > > if (err)
> > > goto err_unlock_list;
> > > @@ -412,7 +400,7 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
> > > if (err)
> > > xe_sched_job_put(job);
> > > err_engine_end:
> > > - xe_exec_end(engine, tv_onstack, tv, &ww, &objs);
> > > + xe_exec_end(engine, &exec);
> > > err_unlock_list:
> > > if (write_locked)
> > > up_write(&vm->lock);
> > > diff --git a/drivers/gpu/drm/xe/xe_gt_pagefault.c b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> > > index 125e4744fa38..94f59c29ba9b 100644
> > > --- a/drivers/gpu/drm/xe/xe_gt_pagefault.c
> > > +++ b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> > > @@ -8,8 +8,8 @@
> > > #include <linux/bitfield.h>
> > > #include <linux/circ_buf.h>
> > > +#include <drm/drm_exec.h>
> > > #include <drm/drm_managed.h>
> > > -#include <drm/ttm/ttm_execbuf_util.h>
> > > #include "xe_bo.h"
> > > #include "xe_gt.h"
> > > @@ -84,11 +84,6 @@ static bool vma_matches(struct xe_vma *vma, u64 page_addr)
> > > return true;
> > > }
> > > -static bool only_needs_bo_lock(struct xe_bo *bo)
> > > -{
> > > - return bo && bo->vm;
> > > -}
> > > -
> > > static struct xe_vma *lookup_vma(struct xe_vm *vm, u64 page_addr)
> > > {
> > > struct xe_vma *vma = NULL;
> > > @@ -110,10 +105,7 @@ static int handle_pagefault(struct xe_gt *gt, struct pagefault *pf)
> > > struct xe_vm *vm;
> > > struct xe_vma *vma = NULL;
> > > struct xe_bo *bo;
> > > - LIST_HEAD(objs);
> > > - LIST_HEAD(dups);
> > > - struct ttm_validate_buffer tv_bo, tv_vm;
> > > - struct ww_acquire_ctx ww;
> > > + struct drm_exec exec;
> > > struct dma_fence *fence;
> > > bool write_locked;
> > > int ret = 0;
> > > @@ -171,20 +163,7 @@ static int handle_pagefault(struct xe_gt *gt, struct pagefault *pf)
> > > /* Lock VM and BOs dma-resv */
> > > bo = xe_vma_bo(vma);
> > > - if (only_needs_bo_lock(bo)) {
> > > - /* This path ensures the BO's LRU is updated */
> > > - ret = xe_bo_lock(bo, &ww, xe->info.tile_count, false);
> > > - } else {
> > > - tv_vm.num_shared = xe->info.tile_count;
> > > - tv_vm.bo = xe_vm_ttm_bo(vm);
> > > - list_add(&tv_vm.head, &objs);
> > > - if (bo) {
> > > - tv_bo.bo = &bo->ttm;
> > > - tv_bo.num_shared = xe->info.tile_count;
> > > - list_add(&tv_bo.head, &objs);
> > > - }
> > > - ret = ttm_eu_reserve_buffers(&ww, &objs, false, &dups);
> > > - }
> > > + ret = xe_vm_bo_lock(vm, bo, &exec, xe->info.tile_count, false);
> > > if (ret)
> > > goto unlock_vm;
> > > @@ -227,10 +206,7 @@ static int handle_pagefault(struct xe_gt *gt, struct pagefault *pf)
> > > vma->usm.tile_invalidated &= ~BIT(gt_to_tile(gt)->id);
> > > unlock_dma_resv:
> > > - if (only_needs_bo_lock(bo))
> > > - xe_bo_unlock(bo, &ww);
> > > - else
> > > - ttm_eu_backoff_reservation(&ww, &objs);
> > > + xe_vm_bo_unlock(vm, bo, &exec, true);
> > > unlock_vm:
> > > if (!ret)
> > > vm->usm.last_fault_vma = vma;
> > > @@ -498,10 +474,7 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
> > > struct xe_vm *vm;
> > > struct xe_vma *vma;
> > > struct xe_bo *bo;
> > > - LIST_HEAD(objs);
> > > - LIST_HEAD(dups);
> > > - struct ttm_validate_buffer tv_bo, tv_vm;
> > > - struct ww_acquire_ctx ww;
> > > + struct drm_exec exec;
> > > int ret = 0;
> > > /* We only support ACC_TRIGGER at the moment */
> > > @@ -534,28 +507,14 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
> > > /* Lock VM and BOs dma-resv */
> > > bo = xe_vma_bo(vma);
> > > - if (only_needs_bo_lock(bo)) {
> > > - /* This path ensures the BO's LRU is updated */
> > > - ret = xe_bo_lock(bo, &ww, xe->info.tile_count, false);
> > > - } else {
> > > - tv_vm.num_shared = xe->info.tile_count;
> > > - tv_vm.bo = xe_vm_ttm_bo(vm);
> > > - list_add(&tv_vm.head, &objs);
> > > - tv_bo.bo = &bo->ttm;
> > > - tv_bo.num_shared = xe->info.tile_count;
> > > - list_add(&tv_bo.head, &objs);
> > > - ret = ttm_eu_reserve_buffers(&ww, &objs, false, &dups);
> > > - }
> > > + ret = xe_vm_bo_lock(vm, bo, &exec, xe->info.tile_count, false);
> > > if (ret)
> > > goto unlock_vm;
> > > /* Migrate to VRAM, move should invalidate the VMA first */
> > > ret = xe_bo_migrate(bo, XE_PL_VRAM0 + tile->id);
> > > - if (only_needs_bo_lock(bo))
> > > - xe_bo_unlock(bo, &ww);
> > > - else
> > > - ttm_eu_backoff_reservation(&ww, &objs);
> > > + xe_vm_bo_unlock(vm, bo, &exec, true);
> > > unlock_vm:
> > > up_read(&vm->lock);
> > > xe_vm_put(vm);
> > > diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> > > index 6c216350084b..c89b10d5feb5 100644
> > > --- a/drivers/gpu/drm/xe/xe_vm.c
> > > +++ b/drivers/gpu/drm/xe/xe_vm.c
> > > @@ -7,8 +7,8 @@
> > > #include <linux/dma-fence-array.h>
> > > +#include <drm/drm_exec.h>
> > > #include <drm/drm_print.h>
> > > -#include <drm/ttm/ttm_execbuf_util.h>
> > > #include <drm/ttm/ttm_tt.h>
> > > #include <drm/xe_drm.h>
> > > #include <linux/delay.h>
> > > @@ -321,11 +321,8 @@ static void resume_and_reinstall_preempt_fences(struct xe_vm *vm)
> > > int xe_vm_add_compute_engine(struct xe_vm *vm, struct xe_engine *e)
> > > {
> > > - struct ttm_validate_buffer tv_onstack[XE_ONSTACK_TV];
> > > - struct ttm_validate_buffer *tv;
> > > - struct ww_acquire_ctx ww;
> > > - struct list_head objs;
> > > struct dma_fence *pfence;
> > > + struct drm_exec exec;
> > > int err;
> > > bool wait;
> > > @@ -333,7 +330,7 @@ int xe_vm_add_compute_engine(struct xe_vm *vm, struct xe_engine *e)
> > > down_write(&vm->lock);
> > > - err = xe_vm_lock_dma_resv(vm, &ww, tv_onstack, &tv, &objs, true, 1);
> > > + err = xe_vm_lock_dma_resv(vm, &exec, true, 1);
> > > if (err)
> > > goto out_unlock_outer;
> > > @@ -367,7 +364,7 @@ int xe_vm_add_compute_engine(struct xe_vm *vm, struct xe_engine *e)
> > > up_read(&vm->userptr.notifier_lock);
> > > out_unlock:
> > > - xe_vm_unlock_dma_resv(vm, tv_onstack, tv, &ww, &objs);
> > > + xe_vm_unlock_dma_resv(vm, &exec);
> > > out_unlock_outer:
> > > up_write(&vm->lock);
> > > @@ -397,68 +394,43 @@ int __xe_vm_userptr_needs_repin(struct xe_vm *vm)
> > > * xe_vm_lock_dma_resv() - Lock the vm dma_resv object and the dma_resv
> > > * objects of the vm's external buffer objects.
> > > * @vm: The vm.
> > > - * @ww: Pointer to a struct ww_acquire_ctx locking context.
> > > - * @tv_onstack: Array size XE_ONSTACK_TV of storage for the struct
> > > - * ttm_validate_buffers used for locking.
> > > - * @tv: Pointer to a pointer that on output contains the actual storage used.
> > > - * @objs: List head for the buffer objects locked.
> > > + * @exec: Pointer to a struct drm_exec execution context.
> > > * @intr: Whether to lock interruptible.
> > > * @num_shared: Number of dma-fence slots to reserve in the locked objects.
> > > *
> > > * Locks the vm dma-resv objects and all the dma-resv objects of the
> > > - * buffer objects on the vm external object list. The TTM utilities require
> > > - * a list of struct ttm_validate_buffers pointing to the actual buffer
> > > - * objects to lock. Storage for those struct ttm_validate_buffers should
> > > - * be provided in @tv_onstack, and is typically reserved on the stack
> > > - * of the caller. If the size of @tv_onstack isn't sufficient, then
> > > - * storage will be allocated internally using kvmalloc().
> > > + * buffer objects on the vm external object list using helpers provided
> > > + * by drm_exec.
> > > *
> > > * The function performs deadlock handling internally, and after a
> > > * successful return the ww locking transaction should be considered
> > > * sealed.
> > > *
> > > - * Return: 0 on success, Negative error code on error. In particular if
> > > - * @intr is set to true, -EINTR or -ERESTARTSYS may be returned. In case
> > > - * of error, any locking performed has been reverted.
> > > + * Return: 0 on success, Negative error code on error.
> > > */
> > > -int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
> > > - struct ttm_validate_buffer *tv_onstack,
> > > - struct ttm_validate_buffer **tv,
> > > - struct list_head *objs,
> > > - bool intr,
> > > - unsigned int num_shared)
> > > -{
> > > - struct ttm_validate_buffer *tv_vm, *tv_bo;
> > > +int xe_vm_lock_dma_resv(struct xe_vm *vm, struct drm_exec *exec,
> > > + bool intr, unsigned int num_shared)
> > > +{
> > > struct xe_vma *vma, *next;
> > > - LIST_HEAD(dups);
> > > + struct drm_gem_object *obj;
> > > int err;
> > > lockdep_assert_held(&vm->lock);
> > > - if (vm->extobj.entries < XE_ONSTACK_TV) {
> > > - tv_vm = tv_onstack;
> > > - } else {
> > > - tv_vm = kvmalloc_array(vm->extobj.entries + 1, sizeof(*tv_vm),
> > > - GFP_KERNEL);
> > > - if (!tv_vm)
> > > - return -ENOMEM;
> > > + drm_exec_init(exec, intr ? DRM_EXEC_INTERRUPTIBLE_WAIT : 0);
> > > + drm_exec_until_all_locked(exec) {
> > > + err = drm_exec_prepare_obj(exec, xe_vm_gem(vm), num_shared);
> > > + drm_exec_retry_on_contention(exec);
> > > + if (unlikely(err) && err != -EALREADY)
> > > + goto out_err;
> > > + list_for_each_entry(vma, &vm->extobj.list, extobj.link) {
> > > + obj = &xe_vma_bo(vma)->ttm.base;
> > > + err = drm_exec_prepare_obj(exec, obj, num_shared);
> > > + drm_exec_retry_on_contention(exec);
> > > + if (unlikely(err) && err != -EALREADY)
> > > + goto out_err;
> > > + }
> > > }
> > > - tv_bo = tv_vm + 1;
> > > -
> > > - INIT_LIST_HEAD(objs);
> > > - list_for_each_entry(vma, &vm->extobj.list, extobj.link) {
> > > - tv_bo->num_shared = num_shared;
> > > - tv_bo->bo = &xe_vma_bo(vma)->ttm;
> > > -
> > > - list_add_tail(&tv_bo->head, objs);
> > > - tv_bo++;
> > > - }
> > > - tv_vm->num_shared = num_shared;
> > > - tv_vm->bo = xe_vm_ttm_bo(vm);
> > > - list_add_tail(&tv_vm->head, objs);
> > > - err = ttm_eu_reserve_buffers(ww, objs, intr, &dups);
> > > - if (err)
> > > - goto out_err;
> > > spin_lock(&vm->notifier.list_lock);
> > > list_for_each_entry_safe(vma, next, &vm->notifier.rebind_list,
> > > @@ -470,14 +442,10 @@ int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
> > > list_move_tail(&vma->rebind_link, &vm->rebind_list);
> > > }
> > > spin_unlock(&vm->notifier.list_lock);
> > > -
> > > - *tv = tv_vm;
> > > return 0;
> > > out_err:
> > > - if (tv_vm != tv_onstack)
> > > - kvfree(tv_vm);
> > > -
> > > + drm_exec_fini(exec);
> > > return err;
> > > }
> > > @@ -485,20 +453,16 @@ int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
> > > * xe_vm_unlock_dma_resv() - Unlock reservation objects locked by
> > > * xe_vm_lock_dma_resv()
> > > * @vm: The vm.
> > > - * @tv_onstack: The @tv_onstack array given to xe_vm_lock_dma_resv().
> > > - * @tv: The value of *@tv given by xe_vm_lock_dma_resv().
> > > - * @ww: The ww_acquire_context used for locking.
> > > - * @objs: The list returned from xe_vm_lock_dma_resv().
> > > + * @exec: The @drm_exec given to xe_vm_lock_dma_resv().
> > > *
> > > * Unlocks the reservation objects and frees any memory allocated by
> > > * xe_vm_lock_dma_resv().
> > > */
> > > -void xe_vm_unlock_dma_resv(struct xe_vm *vm,
> > > - struct ttm_validate_buffer *tv_onstack,
> > > - struct ttm_validate_buffer *tv,
> > > - struct ww_acquire_ctx *ww,
> > > - struct list_head *objs)
> > > +void xe_vm_unlock_dma_resv(struct xe_vm *vm, struct drm_exec *exec)
> > > {
> > > + struct drm_gem_object *obj, *skip = xe_vm_gem(vm);
> > > + unsigned long index;
> > > +
> > > /*
> > > * Nothing should've been able to enter the list while we were locked,
> > > * since we've held the dma-resvs of all the vm's external objects,
> > > @@ -507,9 +471,13 @@ void xe_vm_unlock_dma_resv(struct xe_vm *vm,
> > > */
> > > XE_WARN_ON(!list_empty(&vm->notifier.rebind_list));
> > > - ttm_eu_backoff_reservation(ww, objs);
> > > - if (tv && tv != tv_onstack)
> > > - kvfree(tv);
> > > + drm_exec_for_each_locked_object(exec, index, obj) {
> > > + struct xe_bo *bo = gem_to_xe_bo(obj);
> > > +
> > > + if (obj != skip)
> > > + ttm_bo_move_to_lru_tail_unlocked(&bo->ttm);
> > > + }
> > > + drm_exec_fini(exec);
> > > }
> > > #define XE_VM_REBIND_RETRY_TIMEOUT_MS 1000
> > > @@ -536,10 +504,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
> > > {
> > > struct xe_vm *vm = container_of(w, struct xe_vm, preempt.rebind_work);
> > > struct xe_vma *vma;
> > > - struct ttm_validate_buffer tv_onstack[XE_ONSTACK_TV];
> > > - struct ttm_validate_buffer *tv;
> > > - struct ww_acquire_ctx ww;
> > > - struct list_head objs;
> > > + struct drm_exec exec;
> > > struct dma_fence *rebind_fence;
> > > unsigned int fence_count = 0;
> > > LIST_HEAD(preempt_fences);
> > > @@ -582,8 +547,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
> > > goto out_unlock_outer;
> > > }
> > > - err = xe_vm_lock_dma_resv(vm, &ww, tv_onstack, &tv, &objs,
> > > - false, vm->preempt.num_engines);
> > > + err = xe_vm_lock_dma_resv(vm, &exec, false, vm->preempt.num_engines);
> > > if (err)
> > > goto out_unlock_outer;
> > > @@ -662,7 +626,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
> > > up_read(&vm->userptr.notifier_lock);
> > > out_unlock:
> > > - xe_vm_unlock_dma_resv(vm, tv_onstack, tv, &ww, &objs);
> > > + xe_vm_unlock_dma_resv(vm, &exec);
> > > out_unlock_outer:
> > > if (err == -EAGAIN) {
> > > trace_xe_vm_rebind_worker_retry(vm);
> > > @@ -1105,27 +1069,17 @@ static void xe_vma_destroy(struct xe_vma *vma, struct dma_fence *fence)
> > > static void xe_vma_destroy_unlocked(struct xe_vma *vma)
> > > {
> > > - struct ttm_validate_buffer tv[2];
> > > - struct ww_acquire_ctx ww;
> > > + struct xe_vm *vm = xe_vma_vm(vma);
> > > struct xe_bo *bo = xe_vma_bo(vma);
> > > - LIST_HEAD(objs);
> > > - LIST_HEAD(dups);
> > > + struct drm_exec exec;
> > > int err;
> > > - memset(tv, 0, sizeof(tv));
> > > - tv[0].bo = xe_vm_ttm_bo(xe_vma_vm(vma));
> > > - list_add(&tv[0].head, &objs);
> > > -
> > > - if (bo) {
> > > - tv[1].bo = &xe_bo_get(bo)->ttm;
> > > - list_add(&tv[1].head, &objs);
> > > - }
> > > - err = ttm_eu_reserve_buffers(&ww, &objs, false, &dups);
> > > + err = xe_vm_bo_lock(vm, xe_bo_get(bo), &exec, 0, false);
> > > XE_WARN_ON(err);
> > > xe_vma_destroy(vma, NULL);
> > > - ttm_eu_backoff_reservation(&ww, &objs);
> > > + xe_vm_bo_unlock(vm, bo, &exec, false);
> > > if (bo)
> > > xe_bo_put(bo);
> > > }
> > > @@ -2125,21 +2079,6 @@ static int xe_vm_prefetch(struct xe_vm *vm, struct xe_vma *vma,
> > > #define VM_BIND_OP(op) (op & 0xffff)
> > > -struct ttm_buffer_object *xe_vm_ttm_bo(struct xe_vm *vm)
> > > -{
> > > - int idx = vm->flags & XE_VM_FLAG_MIGRATION ?
> > > - XE_VM_FLAG_GT_ID(vm->flags) : 0;
> > > -
> > > - /* Safe to use index 0 as all BO in the VM share a single dma-resv lock */
> > > - return &vm->pt_root[idx]->bo->ttm;
> > > -}
> > > -
> > > -static void xe_vm_tv_populate(struct xe_vm *vm, struct ttm_validate_buffer *tv)
> > > -{
> > > - tv->num_shared = 1;
> > > - tv->bo = xe_vm_ttm_bo(vm);
> > > -}
> > > -
> > > static void vm_set_async_error(struct xe_vm *vm, int err)
> > > {
> > > lockdep_assert_held(&vm->lock);
> > > @@ -2577,17 +2516,12 @@ static int xe_vma_op_commit(struct xe_vm *vm, struct xe_vma_op *op)
> > > static int __xe_vma_op_execute(struct xe_vm *vm, struct xe_vma *vma,
> > > struct xe_vma_op *op)
> > > {
> > > - LIST_HEAD(objs);
> > > - LIST_HEAD(dups);
> > > - struct ttm_validate_buffer tv_bo, tv_vm;
> > > - struct ww_acquire_ctx ww;
> > > struct xe_bo *vbo;
> > > + struct drm_exec exec;
> > > int err;
> > > lockdep_assert_held_write(&vm->lock);
> > > - xe_vm_tv_populate(vm, &tv_vm);
> > > - list_add_tail(&tv_vm.head, &objs);
> > > vbo = xe_vma_bo(vma);
> > > if (vbo) {
> > > /*
> > > @@ -2596,16 +2530,10 @@ static int __xe_vma_op_execute(struct xe_vm *vm, struct xe_vma *vma,
> > > * take a reference here.
> > > */
> > > xe_bo_get(vbo);
> > > -
> > > - if (!vbo->vm) {
> > > - tv_bo.bo = &vbo->ttm;
> > > - tv_bo.num_shared = 1;
> > > - list_add(&tv_bo.head, &objs);
> > > - }
> > > }
> > > again:
> > > - err = ttm_eu_reserve_buffers(&ww, &objs, true, &dups);
> > > + err = xe_vm_bo_lock(vm, vbo, &exec, 1, true);
> > > if (err) {
> > > xe_bo_put(vbo);
> > > return err;
> > > @@ -2687,7 +2615,7 @@ static int __xe_vma_op_execute(struct xe_vm *vm, struct xe_vma *vma,
> > > XE_BUG_ON("NOT POSSIBLE");
> > > }
> > > - ttm_eu_backoff_reservation(&ww, &objs);
> > > + xe_vm_bo_unlock(vm, vbo, &exec, false);
> > > if (err == -EAGAIN && xe_vma_is_userptr(vma)) {
> > > lockdep_assert_held_write(&vm->lock);
> > > err = xe_vma_userptr_pin_pages(vma);
> > > @@ -3338,24 +3266,47 @@ int xe_vm_bind_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
> > > return err == -ENODATA ? 0 : err;
> > > }
> > > +struct drm_gem_object *xe_vm_gem(struct xe_vm *vm)
> > > +{
> > > + int idx = vm->flags & XE_VM_FLAG_MIGRATION ?
> > > + XE_VM_FLAG_GT_ID(vm->flags) : 0;
> > > +
> > > + /* Safe to use index 0 as all BO in the VM share a single dma-resv lock */
> > > + return &vm->pt_root[idx]->bo->ttm.base;
> > > +}
> > > +
> > > /*
> > > - * XXX: Using the TTM wrappers for now, likely can call into dma-resv code
> > > - * directly to optimize. Also this likely should be an inline function.
> > > + * XXX: This likely should be an inline function.
> > > */
> > > int xe_vm_lock(struct xe_vm *vm, struct ww_acquire_ctx *ww,
> > > int num_resv, bool intr)
> > > {
> > > - struct ttm_validate_buffer tv_vm;
> > > - LIST_HEAD(objs);
> > > - LIST_HEAD(dups);
> > > + struct dma_resv *obj;
> > > + int err;
> > > XE_BUG_ON(!ww);
> > > - tv_vm.num_shared = num_resv;
> > > - tv_vm.bo = xe_vm_ttm_bo(vm);;
> > > - list_add_tail(&tv_vm.head, &objs);
> > > + obj = xe_vm_gem(vm)->resv;
> > > + ww_acquire_init(ww, &reservation_ww_class);
> > > +
> > > + if (intr)
> > > + err = dma_resv_lock_interruptible(obj, ww);
> > > + else
> > > + err = dma_resv_lock(obj, ww);
> > > +
> > > + if (unlikely(err))
> > > + return err;
> > > +
> > > + num_resv = max(num_resv, 1);
> > Same question as above here.
> >
> > Matt
> >
> > > + err = dma_resv_reserve_fences(obj, num_resv);
> > > + if (err)
> > > + goto out_err;
> > > - return ttm_eu_reserve_buffers(ww, &objs, intr, &dups);
> > > + return 0;
> > > +
> > > +out_err:
> > > + dma_resv_unlock(&vm->resv);
> > > + return err;
> > > }
> > > void xe_vm_unlock(struct xe_vm *vm, struct ww_acquire_ctx *ww)
> > > @@ -3364,6 +3315,43 @@ void xe_vm_unlock(struct xe_vm *vm, struct ww_acquire_ctx *ww)
> > > ww_acquire_fini(ww);
> > > }
> > > +int xe_vm_bo_lock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
> > > + int num_resv, bool intr)
> > > +{
> > > + int err;
> > > +
> > > + drm_exec_init(exec, intr ? DRM_EXEC_INTERRUPTIBLE_WAIT : 0);
> > > + drm_exec_until_all_locked(exec) {
> > > + err = drm_exec_prepare_obj(exec, xe_vm_gem(vm),
> > > + num_resv);
> > > + drm_exec_retry_on_contention(exec);
> > > + if (err && err != -EALREADY)
> > > + goto out_err;
> > > +
> > > + if (bo && !bo->vm) {
> > > + err = drm_exec_prepare_obj(exec, &bo->ttm.base,
> > > + num_resv);
> > > + drm_exec_retry_on_contention(exec);
> > > + if (err && err != -EALREADY)
> > > + goto out_err;
> > > + }
> > > + }
> > > +
> > > + return 0;
> > > +
> > > +out_err:
> > > + drm_exec_fini(exec);
> > > + return err;
> > > +}
> > > +
> > > +void xe_vm_bo_unlock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
> > > + bool lru_update)
> > > +{
> > > + if (lru_update && bo && (!bo->vm || xe_vm_no_dma_fences(vm)))
> > > + ttm_bo_move_to_lru_tail_unlocked(&bo->ttm);
> > > + drm_exec_fini(exec);
> > > +}
> > > +
> > > /**
> > > * xe_vm_invalidate_vma - invalidate GPU mappings for VMA without a lock
> > > * @vma: VMA to invalidate
> > > diff --git a/drivers/gpu/drm/xe/xe_vm.h b/drivers/gpu/drm/xe/xe_vm.h
> > > index eaf11ac8ff51..62a062bd5078 100644
> > > --- a/drivers/gpu/drm/xe/xe_vm.h
> > > +++ b/drivers/gpu/drm/xe/xe_vm.h
> > > @@ -12,6 +12,7 @@
> > > #include "xe_vm_types.h"
> > > struct drm_device;
> > > +struct drm_exec;
> > > struct drm_printer;
> > > struct drm_file;
> > > @@ -39,11 +40,17 @@ static inline void xe_vm_put(struct xe_vm *vm)
> > > kref_put(&vm->refcount, xe_vm_free);
> > > }
> > > +struct drm_gem_object *xe_vm_gem(struct xe_vm *vm);
> > > +
> > > int xe_vm_lock(struct xe_vm *vm, struct ww_acquire_ctx *ww,
> > > int num_resv, bool intr);
> > > -
> > > void xe_vm_unlock(struct xe_vm *vm, struct ww_acquire_ctx *ww);
> > > +int xe_vm_bo_lock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
> > > + int num_resv, bool intr);
> > > +void xe_vm_bo_unlock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
> > > + bool lru_update);
> > > +
> > > static inline bool xe_vm_is_closed(struct xe_vm *vm)
> > > {
> > > /* Only guaranteed not to change when vm->lock is held */
> > > @@ -183,8 +190,6 @@ int xe_vm_async_fence_wait_start(struct dma_fence *fence);
> > > extern struct ttm_device_funcs xe_ttm_funcs;
> > > -struct ttm_buffer_object *xe_vm_ttm_bo(struct xe_vm *vm);
> > > -
> > > /**
> > > * xe_vm_reactivate_rebind() - Reactivate the rebind functionality on compute
> > > * vms.
> > > @@ -212,23 +217,10 @@ static inline void xe_vm_queue_rebind_worker(struct xe_vm *vm)
> > > queue_work(vm->xe->ordered_wq, &vm->preempt.rebind_work);
> > > }
> > > -/*
> > > - * XE_ONSTACK_TV is used to size the tv_onstack array that is input
> > > - * to xe_vm_lock_dma_resv() and xe_vm_unlock_dma_resv().
> > > - */
> > > -#define XE_ONSTACK_TV 20
> > > -int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
> > > - struct ttm_validate_buffer *tv_onstack,
> > > - struct ttm_validate_buffer **tv,
> > > - struct list_head *objs,
> > > - bool intr,
> > > - unsigned int num_shared);
> > > -
> > > -void xe_vm_unlock_dma_resv(struct xe_vm *vm,
> > > - struct ttm_validate_buffer *tv_onstack,
> > > - struct ttm_validate_buffer *tv,
> > > - struct ww_acquire_ctx *ww,
> > > - struct list_head *objs);
> > > +int xe_vm_lock_dma_resv(struct xe_vm *vm, struct drm_exec *exec,
> > > + bool intr, unsigned int num_shared);
> > > +
> > > +void xe_vm_unlock_dma_resv(struct xe_vm *vm, struct drm_exec *exec);
> > > void xe_vm_fence_all_extobjs(struct xe_vm *vm, struct dma_fence *fence,
> > > enum dma_resv_usage usage);
> > > --
> > > 2.34.1
> > >
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Intel-xe] [PATCH v2 2/2] drm/xe: switch to using drm_exec
2023-07-13 18:13 ` Matthew Brost
@ 2023-07-14 6:44 ` Christian König
0 siblings, 0 replies; 14+ messages in thread
From: Christian König @ 2023-07-14 6:44 UTC (permalink / raw)
To: Matthew Brost; +Cc: Francois Dugast, intel-xe
Am 13.07.23 um 20:13 schrieb Matthew Brost:
> On Thu, Jul 13, 2023 at 04:35:57PM +0200, Christian König wrote:
>> Am 13.07.23 um 16:00 schrieb Matthew Brost:
>>> On Thu, Jul 13, 2023 at 01:17:11PM +0000, Francois Dugast wrote:
>>>> Replace the use of ttm_execbuf_util helpers with the drm_exec helpers.
>>>>
>>>> v2:
>>>> - Call dma-resv locking functions directly in xe_bo_lock and
>>>> xe_vm_lock functions (Matthew Brost)
>>>> - Switch to execution context for GEM buffers v7 (Christian König)
>>>> - Use DRM_EXEC_INTERRUPTIBLE_WAIT
>>>>
>>>> Signed-off-by: Francois Dugast <francois.dugast@intel.com>
>>>> ---
>>>> drivers/gpu/drm/xe/Kconfig | 1 +
>>>> drivers/gpu/drm/xe/xe_bo.c | 29 +++-
>>>> drivers/gpu/drm/xe/xe_bo_types.h | 1 -
>>>> drivers/gpu/drm/xe/xe_exec.c | 30 +---
>>>> drivers/gpu/drm/xe/xe_gt_pagefault.c | 55 +-----
>>>> drivers/gpu/drm/xe/xe_vm.c | 246 +++++++++++++--------------
>>>> drivers/gpu/drm/xe/xe_vm.h | 32 ++--
>>>> 7 files changed, 168 insertions(+), 226 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/xe/Kconfig b/drivers/gpu/drm/xe/Kconfig
>>>> index d44794f99338..b739faa401d3 100644
>>>> --- a/drivers/gpu/drm/xe/Kconfig
>>>> +++ b/drivers/gpu/drm/xe/Kconfig
>>>> @@ -8,6 +8,7 @@ config DRM_XE
>>>> select SHMEM
>>>> select TMPFS
>>>> select DRM_BUDDY
>>>> + select DRM_EXEC
>>>> select DRM_KMS_HELPER
>>>> select DRM_PANEL
>>>> select DRM_SUBALLOC_HELPER
>>>> diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
>>>> index 6353afa8d846..aafe69ed4320 100644
>>>> --- a/drivers/gpu/drm/xe/xe_bo.c
>>>> +++ b/drivers/gpu/drm/xe/xe_bo.c
>>>> @@ -1806,17 +1806,32 @@ int xe_gem_mmap_offset_ioctl(struct drm_device *dev, void *data,
>>>> int xe_bo_lock(struct xe_bo *bo, struct ww_acquire_ctx *ww,
>>>> int num_resv, bool intr)
>>>> {
>>>> - struct ttm_validate_buffer tv_bo;
>>>> - LIST_HEAD(objs);
>>>> - LIST_HEAD(dups);
>>>> + struct dma_resv *obj;
>>>> + int err;
>>>> XE_BUG_ON(!ww);
>>>> - tv_bo.num_shared = num_resv;
>>>> - tv_bo.bo = &bo->ttm;;
>>>> - list_add_tail(&tv_bo.head, &objs);
>>>> + obj = bo->ttm.base.resv;
>>>> + ww_acquire_init(ww, &reservation_ww_class);
>>>> +
>>>> + if (intr)
>>>> + err = dma_resv_lock_interruptible(obj, ww);
>>>> + else
>>>> + err = dma_resv_lock(obj, ww);
>>>> +
>>>> + if (unlikely(err))
>>>> + return err;
>>>> +
>>>> + num_resv = max(num_resv, 1);
>>> Why? If the user ask to reserve 0 fences this will reserve 1.
>> Reserving 0 fences is illegal. The dma_resv object will complain about that
>> in debug builds IIRC.
>>
>
> Maybe if you call dma_resv_reserve_fences with 0 or try to install a
> fence without reserving something will complain but certainly can do
> this:
>
> dma_resv_lock
> do something without calling dma_resv_reserve_fences
> dma_resv_unlock
Yeah, that's exactly why I have separate the _prepare_obj() and
_lock_obj() functions in drm_exec:
* drm_exec_prepare_obj - prepare a GEM object for use
* @exec: the drm_exec object with the state
* @obj: the GEM object to prepare
* @num_fences: how many fences to reserve
* drm_exec_lock_obj - lock a GEM object for use
* @exec: the drm_exec object with the state
* @obj: the GEM object to lock
If you don't need to reserve a fence then don't call the function for
that, otherwise reserve at least one fence or you will get a warning :)
A simple if (!num_resv) here should do as well.
Regards,
Christian.
>
> Matt
>
>> Christian.
>>
>>>> + err = dma_resv_reserve_fences(obj, num_resv);
>>>> + if (err)
>>>> + goto out_err;
>>>> - return ttm_eu_reserve_buffers(ww, &objs, intr, &dups);
>>>> + return 0;
>>>> +
>>>> +out_err:
>>>> + dma_resv_unlock(obj);
>>>> + return err;
>>>> }
>>>> void xe_bo_unlock(struct xe_bo *bo, struct ww_acquire_ctx *ww)
>>>> diff --git a/drivers/gpu/drm/xe/xe_bo_types.h b/drivers/gpu/drm/xe/xe_bo_types.h
>>>> index f6ee920303af..bc67263c6713 100644
>>>> --- a/drivers/gpu/drm/xe/xe_bo_types.h
>>>> +++ b/drivers/gpu/drm/xe/xe_bo_types.h
>>>> @@ -11,7 +11,6 @@
>>>> #include <drm/drm_mm.h>
>>>> #include <drm/ttm/ttm_bo.h>
>>>> #include <drm/ttm/ttm_device.h>
>>>> -#include <drm/ttm/ttm_execbuf_util.h>
>>>> #include <drm/ttm/ttm_placement.h>
>>>> struct xe_device;
>>>> diff --git a/drivers/gpu/drm/xe/xe_exec.c b/drivers/gpu/drm/xe/xe_exec.c
>>>> index ba13d20ed348..32a6e16ec177 100644
>>>> --- a/drivers/gpu/drm/xe/xe_exec.c
>>>> +++ b/drivers/gpu/drm/xe/xe_exec.c
>>>> @@ -6,6 +6,7 @@
>>>> #include "xe_exec.h"
>>>> #include <drm/drm_device.h>
>>>> +#include <drm/drm_exec.h>
>>>> #include <drm/drm_file.h>
>>>> #include <drm/xe_drm.h>
>>>> #include <linux/delay.h>
>>>> @@ -95,23 +96,18 @@
>>>> #define XE_EXEC_BIND_RETRY_TIMEOUT_MS 1000
>>>> -static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
>>>> - struct ttm_validate_buffer tv_onstack[],
>>>> - struct ttm_validate_buffer **tv,
>>>> - struct list_head *objs)
>>>> +static int xe_exec_begin(struct xe_engine *e, struct drm_exec *exec)
>>>> {
>>>> struct xe_vm *vm = e->vm;
>>>> struct xe_vma *vma;
>>>> - LIST_HEAD(dups);
>>>> ktime_t end = 0;
>>>> int err = 0;
>>>> - *tv = NULL;
>>>> if (xe_vm_no_dma_fences(e->vm))
>>>> return 0;
>>>> retry:
>>>> - err = xe_vm_lock_dma_resv(vm, ww, tv_onstack, tv, objs, true, 1);
>>>> + err = xe_vm_lock_dma_resv(vm, exec, true, 1);
>>>> if (err)
>>>> return err;
>>>> @@ -128,8 +124,7 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
>>>> err = xe_bo_validate(xe_vma_bo(vma), vm, false);
>>>> if (err) {
>>>> - xe_vm_unlock_dma_resv(vm, tv_onstack, *tv, ww, objs);
>>>> - *tv = NULL;
>>>> + xe_vm_unlock_dma_resv(vm, exec);
>>>> break;
>>>> }
>>>> }
>>>> @@ -153,14 +148,10 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
>>>> return err;
>>>> }
>>>> -static void xe_exec_end(struct xe_engine *e,
>>>> - struct ttm_validate_buffer *tv_onstack,
>>>> - struct ttm_validate_buffer *tv,
>>>> - struct ww_acquire_ctx *ww,
>>>> - struct list_head *objs)
>>>> +static void xe_exec_end(struct xe_engine *e, struct drm_exec *exec)
>>>> {
>>>> if (!xe_vm_no_dma_fences(e->vm))
>>>> - xe_vm_unlock_dma_resv(e->vm, tv_onstack, tv, ww, objs);
>>>> + xe_vm_unlock_dma_resv(e->vm, exec);
>>>> }
>>>> int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
>>>> @@ -173,14 +164,11 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
>>>> struct xe_engine *engine;
>>>> struct xe_sync_entry *syncs = NULL;
>>>> u64 addresses[XE_HW_ENGINE_MAX_INSTANCE];
>>>> - struct ttm_validate_buffer tv_onstack[XE_ONSTACK_TV];
>>>> - struct ttm_validate_buffer *tv = NULL;
>>>> u32 i, num_syncs = 0;
>>>> struct xe_sched_job *job;
>>>> struct dma_fence *rebind_fence;
>>>> struct xe_vm *vm;
>>>> - struct ww_acquire_ctx ww;
>>>> - struct list_head objs;
>>>> + struct drm_exec exec;
>>>> bool write_locked;
>>>> int err = 0;
>>>> @@ -293,7 +281,7 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
>>>> goto err_unlock_list;
>>>> }
>>>> - err = xe_exec_begin(engine, &ww, tv_onstack, &tv, &objs);
>>>> + err = xe_exec_begin(engine, &exec);
>>>> if (err)
>>>> goto err_unlock_list;
>>>> @@ -412,7 +400,7 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
>>>> if (err)
>>>> xe_sched_job_put(job);
>>>> err_engine_end:
>>>> - xe_exec_end(engine, tv_onstack, tv, &ww, &objs);
>>>> + xe_exec_end(engine, &exec);
>>>> err_unlock_list:
>>>> if (write_locked)
>>>> up_write(&vm->lock);
>>>> diff --git a/drivers/gpu/drm/xe/xe_gt_pagefault.c b/drivers/gpu/drm/xe/xe_gt_pagefault.c
>>>> index 125e4744fa38..94f59c29ba9b 100644
>>>> --- a/drivers/gpu/drm/xe/xe_gt_pagefault.c
>>>> +++ b/drivers/gpu/drm/xe/xe_gt_pagefault.c
>>>> @@ -8,8 +8,8 @@
>>>> #include <linux/bitfield.h>
>>>> #include <linux/circ_buf.h>
>>>> +#include <drm/drm_exec.h>
>>>> #include <drm/drm_managed.h>
>>>> -#include <drm/ttm/ttm_execbuf_util.h>
>>>> #include "xe_bo.h"
>>>> #include "xe_gt.h"
>>>> @@ -84,11 +84,6 @@ static bool vma_matches(struct xe_vma *vma, u64 page_addr)
>>>> return true;
>>>> }
>>>> -static bool only_needs_bo_lock(struct xe_bo *bo)
>>>> -{
>>>> - return bo && bo->vm;
>>>> -}
>>>> -
>>>> static struct xe_vma *lookup_vma(struct xe_vm *vm, u64 page_addr)
>>>> {
>>>> struct xe_vma *vma = NULL;
>>>> @@ -110,10 +105,7 @@ static int handle_pagefault(struct xe_gt *gt, struct pagefault *pf)
>>>> struct xe_vm *vm;
>>>> struct xe_vma *vma = NULL;
>>>> struct xe_bo *bo;
>>>> - LIST_HEAD(objs);
>>>> - LIST_HEAD(dups);
>>>> - struct ttm_validate_buffer tv_bo, tv_vm;
>>>> - struct ww_acquire_ctx ww;
>>>> + struct drm_exec exec;
>>>> struct dma_fence *fence;
>>>> bool write_locked;
>>>> int ret = 0;
>>>> @@ -171,20 +163,7 @@ static int handle_pagefault(struct xe_gt *gt, struct pagefault *pf)
>>>> /* Lock VM and BOs dma-resv */
>>>> bo = xe_vma_bo(vma);
>>>> - if (only_needs_bo_lock(bo)) {
>>>> - /* This path ensures the BO's LRU is updated */
>>>> - ret = xe_bo_lock(bo, &ww, xe->info.tile_count, false);
>>>> - } else {
>>>> - tv_vm.num_shared = xe->info.tile_count;
>>>> - tv_vm.bo = xe_vm_ttm_bo(vm);
>>>> - list_add(&tv_vm.head, &objs);
>>>> - if (bo) {
>>>> - tv_bo.bo = &bo->ttm;
>>>> - tv_bo.num_shared = xe->info.tile_count;
>>>> - list_add(&tv_bo.head, &objs);
>>>> - }
>>>> - ret = ttm_eu_reserve_buffers(&ww, &objs, false, &dups);
>>>> - }
>>>> + ret = xe_vm_bo_lock(vm, bo, &exec, xe->info.tile_count, false);
>>>> if (ret)
>>>> goto unlock_vm;
>>>> @@ -227,10 +206,7 @@ static int handle_pagefault(struct xe_gt *gt, struct pagefault *pf)
>>>> vma->usm.tile_invalidated &= ~BIT(gt_to_tile(gt)->id);
>>>> unlock_dma_resv:
>>>> - if (only_needs_bo_lock(bo))
>>>> - xe_bo_unlock(bo, &ww);
>>>> - else
>>>> - ttm_eu_backoff_reservation(&ww, &objs);
>>>> + xe_vm_bo_unlock(vm, bo, &exec, true);
>>>> unlock_vm:
>>>> if (!ret)
>>>> vm->usm.last_fault_vma = vma;
>>>> @@ -498,10 +474,7 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
>>>> struct xe_vm *vm;
>>>> struct xe_vma *vma;
>>>> struct xe_bo *bo;
>>>> - LIST_HEAD(objs);
>>>> - LIST_HEAD(dups);
>>>> - struct ttm_validate_buffer tv_bo, tv_vm;
>>>> - struct ww_acquire_ctx ww;
>>>> + struct drm_exec exec;
>>>> int ret = 0;
>>>> /* We only support ACC_TRIGGER at the moment */
>>>> @@ -534,28 +507,14 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
>>>> /* Lock VM and BOs dma-resv */
>>>> bo = xe_vma_bo(vma);
>>>> - if (only_needs_bo_lock(bo)) {
>>>> - /* This path ensures the BO's LRU is updated */
>>>> - ret = xe_bo_lock(bo, &ww, xe->info.tile_count, false);
>>>> - } else {
>>>> - tv_vm.num_shared = xe->info.tile_count;
>>>> - tv_vm.bo = xe_vm_ttm_bo(vm);
>>>> - list_add(&tv_vm.head, &objs);
>>>> - tv_bo.bo = &bo->ttm;
>>>> - tv_bo.num_shared = xe->info.tile_count;
>>>> - list_add(&tv_bo.head, &objs);
>>>> - ret = ttm_eu_reserve_buffers(&ww, &objs, false, &dups);
>>>> - }
>>>> + ret = xe_vm_bo_lock(vm, bo, &exec, xe->info.tile_count, false);
>>>> if (ret)
>>>> goto unlock_vm;
>>>> /* Migrate to VRAM, move should invalidate the VMA first */
>>>> ret = xe_bo_migrate(bo, XE_PL_VRAM0 + tile->id);
>>>> - if (only_needs_bo_lock(bo))
>>>> - xe_bo_unlock(bo, &ww);
>>>> - else
>>>> - ttm_eu_backoff_reservation(&ww, &objs);
>>>> + xe_vm_bo_unlock(vm, bo, &exec, true);
>>>> unlock_vm:
>>>> up_read(&vm->lock);
>>>> xe_vm_put(vm);
>>>> diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
>>>> index 6c216350084b..c89b10d5feb5 100644
>>>> --- a/drivers/gpu/drm/xe/xe_vm.c
>>>> +++ b/drivers/gpu/drm/xe/xe_vm.c
>>>> @@ -7,8 +7,8 @@
>>>> #include <linux/dma-fence-array.h>
>>>> +#include <drm/drm_exec.h>
>>>> #include <drm/drm_print.h>
>>>> -#include <drm/ttm/ttm_execbuf_util.h>
>>>> #include <drm/ttm/ttm_tt.h>
>>>> #include <drm/xe_drm.h>
>>>> #include <linux/delay.h>
>>>> @@ -321,11 +321,8 @@ static void resume_and_reinstall_preempt_fences(struct xe_vm *vm)
>>>> int xe_vm_add_compute_engine(struct xe_vm *vm, struct xe_engine *e)
>>>> {
>>>> - struct ttm_validate_buffer tv_onstack[XE_ONSTACK_TV];
>>>> - struct ttm_validate_buffer *tv;
>>>> - struct ww_acquire_ctx ww;
>>>> - struct list_head objs;
>>>> struct dma_fence *pfence;
>>>> + struct drm_exec exec;
>>>> int err;
>>>> bool wait;
>>>> @@ -333,7 +330,7 @@ int xe_vm_add_compute_engine(struct xe_vm *vm, struct xe_engine *e)
>>>> down_write(&vm->lock);
>>>> - err = xe_vm_lock_dma_resv(vm, &ww, tv_onstack, &tv, &objs, true, 1);
>>>> + err = xe_vm_lock_dma_resv(vm, &exec, true, 1);
>>>> if (err)
>>>> goto out_unlock_outer;
>>>> @@ -367,7 +364,7 @@ int xe_vm_add_compute_engine(struct xe_vm *vm, struct xe_engine *e)
>>>> up_read(&vm->userptr.notifier_lock);
>>>> out_unlock:
>>>> - xe_vm_unlock_dma_resv(vm, tv_onstack, tv, &ww, &objs);
>>>> + xe_vm_unlock_dma_resv(vm, &exec);
>>>> out_unlock_outer:
>>>> up_write(&vm->lock);
>>>> @@ -397,68 +394,43 @@ int __xe_vm_userptr_needs_repin(struct xe_vm *vm)
>>>> * xe_vm_lock_dma_resv() - Lock the vm dma_resv object and the dma_resv
>>>> * objects of the vm's external buffer objects.
>>>> * @vm: The vm.
>>>> - * @ww: Pointer to a struct ww_acquire_ctx locking context.
>>>> - * @tv_onstack: Array size XE_ONSTACK_TV of storage for the struct
>>>> - * ttm_validate_buffers used for locking.
>>>> - * @tv: Pointer to a pointer that on output contains the actual storage used.
>>>> - * @objs: List head for the buffer objects locked.
>>>> + * @exec: Pointer to a struct drm_exec execution context.
>>>> * @intr: Whether to lock interruptible.
>>>> * @num_shared: Number of dma-fence slots to reserve in the locked objects.
>>>> *
>>>> * Locks the vm dma-resv objects and all the dma-resv objects of the
>>>> - * buffer objects on the vm external object list. The TTM utilities require
>>>> - * a list of struct ttm_validate_buffers pointing to the actual buffer
>>>> - * objects to lock. Storage for those struct ttm_validate_buffers should
>>>> - * be provided in @tv_onstack, and is typically reserved on the stack
>>>> - * of the caller. If the size of @tv_onstack isn't sufficient, then
>>>> - * storage will be allocated internally using kvmalloc().
>>>> + * buffer objects on the vm external object list using helpers provided
>>>> + * by drm_exec.
>>>> *
>>>> * The function performs deadlock handling internally, and after a
>>>> * successful return the ww locking transaction should be considered
>>>> * sealed.
>>>> *
>>>> - * Return: 0 on success, Negative error code on error. In particular if
>>>> - * @intr is set to true, -EINTR or -ERESTARTSYS may be returned. In case
>>>> - * of error, any locking performed has been reverted.
>>>> + * Return: 0 on success, Negative error code on error.
>>>> */
>>>> -int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
>>>> - struct ttm_validate_buffer *tv_onstack,
>>>> - struct ttm_validate_buffer **tv,
>>>> - struct list_head *objs,
>>>> - bool intr,
>>>> - unsigned int num_shared)
>>>> -{
>>>> - struct ttm_validate_buffer *tv_vm, *tv_bo;
>>>> +int xe_vm_lock_dma_resv(struct xe_vm *vm, struct drm_exec *exec,
>>>> + bool intr, unsigned int num_shared)
>>>> +{
>>>> struct xe_vma *vma, *next;
>>>> - LIST_HEAD(dups);
>>>> + struct drm_gem_object *obj;
>>>> int err;
>>>> lockdep_assert_held(&vm->lock);
>>>> - if (vm->extobj.entries < XE_ONSTACK_TV) {
>>>> - tv_vm = tv_onstack;
>>>> - } else {
>>>> - tv_vm = kvmalloc_array(vm->extobj.entries + 1, sizeof(*tv_vm),
>>>> - GFP_KERNEL);
>>>> - if (!tv_vm)
>>>> - return -ENOMEM;
>>>> + drm_exec_init(exec, intr ? DRM_EXEC_INTERRUPTIBLE_WAIT : 0);
>>>> + drm_exec_until_all_locked(exec) {
>>>> + err = drm_exec_prepare_obj(exec, xe_vm_gem(vm), num_shared);
>>>> + drm_exec_retry_on_contention(exec);
>>>> + if (unlikely(err) && err != -EALREADY)
>>>> + goto out_err;
>>>> + list_for_each_entry(vma, &vm->extobj.list, extobj.link) {
>>>> + obj = &xe_vma_bo(vma)->ttm.base;
>>>> + err = drm_exec_prepare_obj(exec, obj, num_shared);
>>>> + drm_exec_retry_on_contention(exec);
>>>> + if (unlikely(err) && err != -EALREADY)
>>>> + goto out_err;
>>>> + }
>>>> }
>>>> - tv_bo = tv_vm + 1;
>>>> -
>>>> - INIT_LIST_HEAD(objs);
>>>> - list_for_each_entry(vma, &vm->extobj.list, extobj.link) {
>>>> - tv_bo->num_shared = num_shared;
>>>> - tv_bo->bo = &xe_vma_bo(vma)->ttm;
>>>> -
>>>> - list_add_tail(&tv_bo->head, objs);
>>>> - tv_bo++;
>>>> - }
>>>> - tv_vm->num_shared = num_shared;
>>>> - tv_vm->bo = xe_vm_ttm_bo(vm);
>>>> - list_add_tail(&tv_vm->head, objs);
>>>> - err = ttm_eu_reserve_buffers(ww, objs, intr, &dups);
>>>> - if (err)
>>>> - goto out_err;
>>>> spin_lock(&vm->notifier.list_lock);
>>>> list_for_each_entry_safe(vma, next, &vm->notifier.rebind_list,
>>>> @@ -470,14 +442,10 @@ int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
>>>> list_move_tail(&vma->rebind_link, &vm->rebind_list);
>>>> }
>>>> spin_unlock(&vm->notifier.list_lock);
>>>> -
>>>> - *tv = tv_vm;
>>>> return 0;
>>>> out_err:
>>>> - if (tv_vm != tv_onstack)
>>>> - kvfree(tv_vm);
>>>> -
>>>> + drm_exec_fini(exec);
>>>> return err;
>>>> }
>>>> @@ -485,20 +453,16 @@ int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
>>>> * xe_vm_unlock_dma_resv() - Unlock reservation objects locked by
>>>> * xe_vm_lock_dma_resv()
>>>> * @vm: The vm.
>>>> - * @tv_onstack: The @tv_onstack array given to xe_vm_lock_dma_resv().
>>>> - * @tv: The value of *@tv given by xe_vm_lock_dma_resv().
>>>> - * @ww: The ww_acquire_context used for locking.
>>>> - * @objs: The list returned from xe_vm_lock_dma_resv().
>>>> + * @exec: The @drm_exec given to xe_vm_lock_dma_resv().
>>>> *
>>>> * Unlocks the reservation objects and frees any memory allocated by
>>>> * xe_vm_lock_dma_resv().
>>>> */
>>>> -void xe_vm_unlock_dma_resv(struct xe_vm *vm,
>>>> - struct ttm_validate_buffer *tv_onstack,
>>>> - struct ttm_validate_buffer *tv,
>>>> - struct ww_acquire_ctx *ww,
>>>> - struct list_head *objs)
>>>> +void xe_vm_unlock_dma_resv(struct xe_vm *vm, struct drm_exec *exec)
>>>> {
>>>> + struct drm_gem_object *obj, *skip = xe_vm_gem(vm);
>>>> + unsigned long index;
>>>> +
>>>> /*
>>>> * Nothing should've been able to enter the list while we were locked,
>>>> * since we've held the dma-resvs of all the vm's external objects,
>>>> @@ -507,9 +471,13 @@ void xe_vm_unlock_dma_resv(struct xe_vm *vm,
>>>> */
>>>> XE_WARN_ON(!list_empty(&vm->notifier.rebind_list));
>>>> - ttm_eu_backoff_reservation(ww, objs);
>>>> - if (tv && tv != tv_onstack)
>>>> - kvfree(tv);
>>>> + drm_exec_for_each_locked_object(exec, index, obj) {
>>>> + struct xe_bo *bo = gem_to_xe_bo(obj);
>>>> +
>>>> + if (obj != skip)
>>>> + ttm_bo_move_to_lru_tail_unlocked(&bo->ttm);
>>>> + }
>>>> + drm_exec_fini(exec);
>>>> }
>>>> #define XE_VM_REBIND_RETRY_TIMEOUT_MS 1000
>>>> @@ -536,10 +504,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
>>>> {
>>>> struct xe_vm *vm = container_of(w, struct xe_vm, preempt.rebind_work);
>>>> struct xe_vma *vma;
>>>> - struct ttm_validate_buffer tv_onstack[XE_ONSTACK_TV];
>>>> - struct ttm_validate_buffer *tv;
>>>> - struct ww_acquire_ctx ww;
>>>> - struct list_head objs;
>>>> + struct drm_exec exec;
>>>> struct dma_fence *rebind_fence;
>>>> unsigned int fence_count = 0;
>>>> LIST_HEAD(preempt_fences);
>>>> @@ -582,8 +547,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
>>>> goto out_unlock_outer;
>>>> }
>>>> - err = xe_vm_lock_dma_resv(vm, &ww, tv_onstack, &tv, &objs,
>>>> - false, vm->preempt.num_engines);
>>>> + err = xe_vm_lock_dma_resv(vm, &exec, false, vm->preempt.num_engines);
>>>> if (err)
>>>> goto out_unlock_outer;
>>>> @@ -662,7 +626,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
>>>> up_read(&vm->userptr.notifier_lock);
>>>> out_unlock:
>>>> - xe_vm_unlock_dma_resv(vm, tv_onstack, tv, &ww, &objs);
>>>> + xe_vm_unlock_dma_resv(vm, &exec);
>>>> out_unlock_outer:
>>>> if (err == -EAGAIN) {
>>>> trace_xe_vm_rebind_worker_retry(vm);
>>>> @@ -1105,27 +1069,17 @@ static void xe_vma_destroy(struct xe_vma *vma, struct dma_fence *fence)
>>>> static void xe_vma_destroy_unlocked(struct xe_vma *vma)
>>>> {
>>>> - struct ttm_validate_buffer tv[2];
>>>> - struct ww_acquire_ctx ww;
>>>> + struct xe_vm *vm = xe_vma_vm(vma);
>>>> struct xe_bo *bo = xe_vma_bo(vma);
>>>> - LIST_HEAD(objs);
>>>> - LIST_HEAD(dups);
>>>> + struct drm_exec exec;
>>>> int err;
>>>> - memset(tv, 0, sizeof(tv));
>>>> - tv[0].bo = xe_vm_ttm_bo(xe_vma_vm(vma));
>>>> - list_add(&tv[0].head, &objs);
>>>> -
>>>> - if (bo) {
>>>> - tv[1].bo = &xe_bo_get(bo)->ttm;
>>>> - list_add(&tv[1].head, &objs);
>>>> - }
>>>> - err = ttm_eu_reserve_buffers(&ww, &objs, false, &dups);
>>>> + err = xe_vm_bo_lock(vm, xe_bo_get(bo), &exec, 0, false);
>>>> XE_WARN_ON(err);
>>>> xe_vma_destroy(vma, NULL);
>>>> - ttm_eu_backoff_reservation(&ww, &objs);
>>>> + xe_vm_bo_unlock(vm, bo, &exec, false);
>>>> if (bo)
>>>> xe_bo_put(bo);
>>>> }
>>>> @@ -2125,21 +2079,6 @@ static int xe_vm_prefetch(struct xe_vm *vm, struct xe_vma *vma,
>>>> #define VM_BIND_OP(op) (op & 0xffff)
>>>> -struct ttm_buffer_object *xe_vm_ttm_bo(struct xe_vm *vm)
>>>> -{
>>>> - int idx = vm->flags & XE_VM_FLAG_MIGRATION ?
>>>> - XE_VM_FLAG_GT_ID(vm->flags) : 0;
>>>> -
>>>> - /* Safe to use index 0 as all BO in the VM share a single dma-resv lock */
>>>> - return &vm->pt_root[idx]->bo->ttm;
>>>> -}
>>>> -
>>>> -static void xe_vm_tv_populate(struct xe_vm *vm, struct ttm_validate_buffer *tv)
>>>> -{
>>>> - tv->num_shared = 1;
>>>> - tv->bo = xe_vm_ttm_bo(vm);
>>>> -}
>>>> -
>>>> static void vm_set_async_error(struct xe_vm *vm, int err)
>>>> {
>>>> lockdep_assert_held(&vm->lock);
>>>> @@ -2577,17 +2516,12 @@ static int xe_vma_op_commit(struct xe_vm *vm, struct xe_vma_op *op)
>>>> static int __xe_vma_op_execute(struct xe_vm *vm, struct xe_vma *vma,
>>>> struct xe_vma_op *op)
>>>> {
>>>> - LIST_HEAD(objs);
>>>> - LIST_HEAD(dups);
>>>> - struct ttm_validate_buffer tv_bo, tv_vm;
>>>> - struct ww_acquire_ctx ww;
>>>> struct xe_bo *vbo;
>>>> + struct drm_exec exec;
>>>> int err;
>>>> lockdep_assert_held_write(&vm->lock);
>>>> - xe_vm_tv_populate(vm, &tv_vm);
>>>> - list_add_tail(&tv_vm.head, &objs);
>>>> vbo = xe_vma_bo(vma);
>>>> if (vbo) {
>>>> /*
>>>> @@ -2596,16 +2530,10 @@ static int __xe_vma_op_execute(struct xe_vm *vm, struct xe_vma *vma,
>>>> * take a reference here.
>>>> */
>>>> xe_bo_get(vbo);
>>>> -
>>>> - if (!vbo->vm) {
>>>> - tv_bo.bo = &vbo->ttm;
>>>> - tv_bo.num_shared = 1;
>>>> - list_add(&tv_bo.head, &objs);
>>>> - }
>>>> }
>>>> again:
>>>> - err = ttm_eu_reserve_buffers(&ww, &objs, true, &dups);
>>>> + err = xe_vm_bo_lock(vm, vbo, &exec, 1, true);
>>>> if (err) {
>>>> xe_bo_put(vbo);
>>>> return err;
>>>> @@ -2687,7 +2615,7 @@ static int __xe_vma_op_execute(struct xe_vm *vm, struct xe_vma *vma,
>>>> XE_BUG_ON("NOT POSSIBLE");
>>>> }
>>>> - ttm_eu_backoff_reservation(&ww, &objs);
>>>> + xe_vm_bo_unlock(vm, vbo, &exec, false);
>>>> if (err == -EAGAIN && xe_vma_is_userptr(vma)) {
>>>> lockdep_assert_held_write(&vm->lock);
>>>> err = xe_vma_userptr_pin_pages(vma);
>>>> @@ -3338,24 +3266,47 @@ int xe_vm_bind_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
>>>> return err == -ENODATA ? 0 : err;
>>>> }
>>>> +struct drm_gem_object *xe_vm_gem(struct xe_vm *vm)
>>>> +{
>>>> + int idx = vm->flags & XE_VM_FLAG_MIGRATION ?
>>>> + XE_VM_FLAG_GT_ID(vm->flags) : 0;
>>>> +
>>>> + /* Safe to use index 0 as all BO in the VM share a single dma-resv lock */
>>>> + return &vm->pt_root[idx]->bo->ttm.base;
>>>> +}
>>>> +
>>>> /*
>>>> - * XXX: Using the TTM wrappers for now, likely can call into dma-resv code
>>>> - * directly to optimize. Also this likely should be an inline function.
>>>> + * XXX: This likely should be an inline function.
>>>> */
>>>> int xe_vm_lock(struct xe_vm *vm, struct ww_acquire_ctx *ww,
>>>> int num_resv, bool intr)
>>>> {
>>>> - struct ttm_validate_buffer tv_vm;
>>>> - LIST_HEAD(objs);
>>>> - LIST_HEAD(dups);
>>>> + struct dma_resv *obj;
>>>> + int err;
>>>> XE_BUG_ON(!ww);
>>>> - tv_vm.num_shared = num_resv;
>>>> - tv_vm.bo = xe_vm_ttm_bo(vm);;
>>>> - list_add_tail(&tv_vm.head, &objs);
>>>> + obj = xe_vm_gem(vm)->resv;
>>>> + ww_acquire_init(ww, &reservation_ww_class);
>>>> +
>>>> + if (intr)
>>>> + err = dma_resv_lock_interruptible(obj, ww);
>>>> + else
>>>> + err = dma_resv_lock(obj, ww);
>>>> +
>>>> + if (unlikely(err))
>>>> + return err;
>>>> +
>>>> + num_resv = max(num_resv, 1);
>>> Same question as above here.
>>>
>>> Matt
>>>
>>>> + err = dma_resv_reserve_fences(obj, num_resv);
>>>> + if (err)
>>>> + goto out_err;
>>>> - return ttm_eu_reserve_buffers(ww, &objs, intr, &dups);
>>>> + return 0;
>>>> +
>>>> +out_err:
>>>> + dma_resv_unlock(&vm->resv);
>>>> + return err;
>>>> }
>>>> void xe_vm_unlock(struct xe_vm *vm, struct ww_acquire_ctx *ww)
>>>> @@ -3364,6 +3315,43 @@ void xe_vm_unlock(struct xe_vm *vm, struct ww_acquire_ctx *ww)
>>>> ww_acquire_fini(ww);
>>>> }
>>>> +int xe_vm_bo_lock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
>>>> + int num_resv, bool intr)
>>>> +{
>>>> + int err;
>>>> +
>>>> + drm_exec_init(exec, intr ? DRM_EXEC_INTERRUPTIBLE_WAIT : 0);
>>>> + drm_exec_until_all_locked(exec) {
>>>> + err = drm_exec_prepare_obj(exec, xe_vm_gem(vm),
>>>> + num_resv);
>>>> + drm_exec_retry_on_contention(exec);
>>>> + if (err && err != -EALREADY)
>>>> + goto out_err;
>>>> +
>>>> + if (bo && !bo->vm) {
>>>> + err = drm_exec_prepare_obj(exec, &bo->ttm.base,
>>>> + num_resv);
>>>> + drm_exec_retry_on_contention(exec);
>>>> + if (err && err != -EALREADY)
>>>> + goto out_err;
>>>> + }
>>>> + }
>>>> +
>>>> + return 0;
>>>> +
>>>> +out_err:
>>>> + drm_exec_fini(exec);
>>>> + return err;
>>>> +}
>>>> +
>>>> +void xe_vm_bo_unlock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
>>>> + bool lru_update)
>>>> +{
>>>> + if (lru_update && bo && (!bo->vm || xe_vm_no_dma_fences(vm)))
>>>> + ttm_bo_move_to_lru_tail_unlocked(&bo->ttm);
>>>> + drm_exec_fini(exec);
>>>> +}
>>>> +
>>>> /**
>>>> * xe_vm_invalidate_vma - invalidate GPU mappings for VMA without a lock
>>>> * @vma: VMA to invalidate
>>>> diff --git a/drivers/gpu/drm/xe/xe_vm.h b/drivers/gpu/drm/xe/xe_vm.h
>>>> index eaf11ac8ff51..62a062bd5078 100644
>>>> --- a/drivers/gpu/drm/xe/xe_vm.h
>>>> +++ b/drivers/gpu/drm/xe/xe_vm.h
>>>> @@ -12,6 +12,7 @@
>>>> #include "xe_vm_types.h"
>>>> struct drm_device;
>>>> +struct drm_exec;
>>>> struct drm_printer;
>>>> struct drm_file;
>>>> @@ -39,11 +40,17 @@ static inline void xe_vm_put(struct xe_vm *vm)
>>>> kref_put(&vm->refcount, xe_vm_free);
>>>> }
>>>> +struct drm_gem_object *xe_vm_gem(struct xe_vm *vm);
>>>> +
>>>> int xe_vm_lock(struct xe_vm *vm, struct ww_acquire_ctx *ww,
>>>> int num_resv, bool intr);
>>>> -
>>>> void xe_vm_unlock(struct xe_vm *vm, struct ww_acquire_ctx *ww);
>>>> +int xe_vm_bo_lock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
>>>> + int num_resv, bool intr);
>>>> +void xe_vm_bo_unlock(struct xe_vm *vm, struct xe_bo *bo, struct drm_exec *exec,
>>>> + bool lru_update);
>>>> +
>>>> static inline bool xe_vm_is_closed(struct xe_vm *vm)
>>>> {
>>>> /* Only guaranteed not to change when vm->lock is held */
>>>> @@ -183,8 +190,6 @@ int xe_vm_async_fence_wait_start(struct dma_fence *fence);
>>>> extern struct ttm_device_funcs xe_ttm_funcs;
>>>> -struct ttm_buffer_object *xe_vm_ttm_bo(struct xe_vm *vm);
>>>> -
>>>> /**
>>>> * xe_vm_reactivate_rebind() - Reactivate the rebind functionality on compute
>>>> * vms.
>>>> @@ -212,23 +217,10 @@ static inline void xe_vm_queue_rebind_worker(struct xe_vm *vm)
>>>> queue_work(vm->xe->ordered_wq, &vm->preempt.rebind_work);
>>>> }
>>>> -/*
>>>> - * XE_ONSTACK_TV is used to size the tv_onstack array that is input
>>>> - * to xe_vm_lock_dma_resv() and xe_vm_unlock_dma_resv().
>>>> - */
>>>> -#define XE_ONSTACK_TV 20
>>>> -int xe_vm_lock_dma_resv(struct xe_vm *vm, struct ww_acquire_ctx *ww,
>>>> - struct ttm_validate_buffer *tv_onstack,
>>>> - struct ttm_validate_buffer **tv,
>>>> - struct list_head *objs,
>>>> - bool intr,
>>>> - unsigned int num_shared);
>>>> -
>>>> -void xe_vm_unlock_dma_resv(struct xe_vm *vm,
>>>> - struct ttm_validate_buffer *tv_onstack,
>>>> - struct ttm_validate_buffer *tv,
>>>> - struct ww_acquire_ctx *ww,
>>>> - struct list_head *objs);
>>>> +int xe_vm_lock_dma_resv(struct xe_vm *vm, struct drm_exec *exec,
>>>> + bool intr, unsigned int num_shared);
>>>> +
>>>> +void xe_vm_unlock_dma_resv(struct xe_vm *vm, struct drm_exec *exec);
>>>> void xe_vm_fence_all_extobjs(struct xe_vm *vm, struct dma_fence *fence,
>>>> enum dma_resv_usage usage);
>>>> --
>>>> 2.34.1
>>>>
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2023-07-14 6:45 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-13 13:17 [Intel-xe] [PATCH v2 0/2] drm/xe: switch to using drm_exec Francois Dugast
2023-07-13 13:17 ` [Intel-xe] [PATCH v2 1/2] drm: execution context for GEM buffers v7 Francois Dugast
2023-07-13 13:17 ` [Intel-xe] [PATCH v2 2/2] drm/xe: switch to using drm_exec Francois Dugast
2023-07-13 14:00 ` Matthew Brost
2023-07-13 14:17 ` Francois Dugast
2023-07-13 14:35 ` Christian König
2023-07-13 18:13 ` Matthew Brost
2023-07-14 6:44 ` Christian König
2023-07-13 14:18 ` [Intel-xe] ✓ CI.Patch_applied: success for " Patchwork
2023-07-13 14:19 ` [Intel-xe] ✗ CI.checkpatch: warning " Patchwork
2023-07-13 14:20 ` [Intel-xe] ✓ CI.KUnit: success " Patchwork
2023-07-13 14:24 ` [Intel-xe] ✓ CI.Build: " Patchwork
2023-07-13 14:24 ` [Intel-xe] ✓ CI.Hooks: " Patchwork
2023-07-13 14:25 ` [Intel-xe] ✓ CI.checksparse: " Patchwork
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.