All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3
@ 2023-09-26 12:55 Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 01/30] drm/xe: Fix array bounds check for queries Francois Dugast
                   ` (37 more replies)
  0 siblings, 38 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast

v3:
Rebase and add more fixes to uAPI as well as drm_xe_vm_bind_op extension,
query for microcontroller version and documentation.

This is still not the final version as we are missing at least:
- a fix for GEM create flags [1]
- a uAPI update to go per tile rather than per GT [3]
- PAT and cache coherency support [4]

v2:
This v2 has 3 extra patches that was missing on yesterday's submission.
But that aligns with the IGT series sent yesterday.

Also I'm glad that Mesa reacted super fast and we already have the MR
ready that aligns with v1 sent yesterday:

https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25300

Thank you Jose!

v1:
As a result of the uAPI review efforts started by Thomas[1],
we have identified many updates on our uAPI that would lead to
breakage in the compatibility. What it is not acceptable after
we are merged upstream. So, let's break it before it is too late,
and start upstreaming a good, reliable and clean uapi.

Most of this work on putting these patches together for a single
shot was led by Francois.

The IGT counter part of this series is available as well[2].

[1] - https://lore.kernel.org/all/863bebd0c624d6fc2b38c0a06b63e468b4185128.camel@l\
inux.intel.com/
[2] - https://lore.kernel.org/all/20230919142000.91363-1-rodrigo.vivi@intel.com
[3] - https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/633
[4] - https://patchwork.freedesktop.org/series/123027/

Ashutosh Dixit (1):
  drm/xe/uapi: Use common drm_xe_ext_set_property extension

Francois Dugast (11):
  drm/xe/uapi: Separate VM_BIND's operation and flag
  drm/xe/vm: Remove VM_BIND_OP macro
  drm/xe/uapi: Remove MMIO ioctl
  drm/xe/uapi: Fix naming of XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY
  drm/xe/uapi: Add documentation for query
  drm/xe/uapi: Document DRM_XE_DEVICE_QUERY_HWCONFIG
  drm/xe/uapi: Add pad to drm_xe_engine_class_instance
  drm/xe: Extend uAPI to query HuC micro-controler firmware version
  drm/xe: Remove useless query config num_params
  drm/xe/uapi: Add missing DRM_ prefix in uAPI constants
  drm/xe/uapi: Add _FLAG to uAPI constants usable for flags

José Roberto de Souza (1):
  drm/xe: Add uAPI to query micro-controler firmware version

Matthew Brost (7):
  drm/xe: Fix xe_exec_queue_is_idle for parallel exec queues
  drm/xe: Deprecate XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE
    implementation
  drm/xe: Rename exec_queue_kill_compute to
    xe_vm_remove_compute_exec_queue
  drm/xe: Remove XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE from uAPI
  drm/xe/uapi: Kill DRM_XE_UFENCE_WAIT_VM_ERROR
  drm/xe: Remove async worker and rework sync binds
  drm/xe: Fix VM bind out-sync signaling ordering

Mika Kuoppala (1):
  drm/xe: Extend drm_xe_vm_bind_op

Rodrigo Vivi (6):
  drm/xe: Kill XE_VM_PROPERTY_BIND_OP_ERROR_CAPTURE_ADDRESS extension
  drm/xe/uapi: Document drm_xe_query_gt
  drm/xe/uapi: Replace useless 'instance' per unique gt_id
  drm/xe/uapi: Remove unused field of drm_xe_query_gt
  drm/xe/uapi: Rename gts to gt_list
  drm/xe/uapi: Crystal Reference Clock updates

Umesh Nerlige Ramappa (3):
  drm/xe: Fix array bounds check for queries
  drm/xe: Set the correct type for xe_to_user_engine_class
  drm/xe: Correlate engine and cpu timestamps with better accuracy

 drivers/gpu/drm/xe/xe_bo.c               |  14 +-
 drivers/gpu/drm/xe/xe_device.c           |   1 -
 drivers/gpu/drm/xe/xe_exec.c             |  43 --
 drivers/gpu/drm/xe/xe_exec_queue.c       | 201 +++---
 drivers/gpu/drm/xe/xe_exec_queue.h       |   7 +
 drivers/gpu/drm/xe/xe_exec_queue_types.h |  14 +-
 drivers/gpu/drm/xe/xe_gt.c               |   2 +-
 drivers/gpu/drm/xe/xe_gt_types.h         |   2 +-
 drivers/gpu/drm/xe/xe_mmio.c             | 102 ---
 drivers/gpu/drm/xe/xe_pci.c              |   4 -
 drivers/gpu/drm/xe/xe_pmu.c              |  20 +-
 drivers/gpu/drm/xe/xe_query.c            | 266 ++++++--
 drivers/gpu/drm/xe/xe_sync.c             |  28 +-
 drivers/gpu/drm/xe/xe_sync.h             |   2 +-
 drivers/gpu/drm/xe/xe_vm.c               | 829 ++++++-----------------
 drivers/gpu/drm/xe/xe_vm.h               |   3 +-
 drivers/gpu/drm/xe/xe_vm_doc.h           |  14 +-
 drivers/gpu/drm/xe/xe_vm_madvise.c       |   8 +-
 drivers/gpu/drm/xe/xe_vm_types.h         |  42 +-
 drivers/gpu/drm/xe/xe_wait_user_fence.c  |  49 +-
 include/uapi/drm/xe_drm.h                | 516 +++++++-------
 21 files changed, 915 insertions(+), 1252 deletions(-)

-- 
2.34.1


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

* [Intel-xe] [PATCH v3 01/30] drm/xe: Fix array bounds check for queries
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 02/30] drm/xe: Set the correct type for xe_to_user_engine_class Francois Dugast
                   ` (36 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast, Rodrigo Vivi

From: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>

Queries are 0-indexed, so a query with value N is invalid if the
ARRAY_SIZE is N. Modify the check to account for that.

Fixes: 22504d560287 ("drm/xe: Introduce a new DRM driver for Intel GPUs")
Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Reviewed-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Signed-off-by: Francois Dugast <francois.dugast@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/xe/xe_query.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
index a951205100fe..e0c2203e428e 100644
--- a/drivers/gpu/drm/xe/xe_query.c
+++ b/drivers/gpu/drm/xe/xe_query.c
@@ -381,7 +381,7 @@ int xe_query_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
 	    XE_IOCTL_DBG(xe, query->reserved[0] || query->reserved[1]))
 		return -EINVAL;
 
-	if (XE_IOCTL_DBG(xe, query->query > ARRAY_SIZE(xe_query_funcs)))
+	if (XE_IOCTL_DBG(xe, query->query >= ARRAY_SIZE(xe_query_funcs)))
 		return -EINVAL;
 
 	idx = array_index_nospec(query->query, ARRAY_SIZE(xe_query_funcs));
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 02/30] drm/xe: Set the correct type for xe_to_user_engine_class
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 01/30] drm/xe: Fix array bounds check for queries Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 03/30] drm/xe: Correlate engine and cpu timestamps with better accuracy Francois Dugast
                   ` (35 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast, Rodrigo Vivi

From: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>

User engine class is of type u16. Set the same type for the array used to
map xe engines to user engines.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Reviewed-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Signed-off-by: Francois Dugast <francois.dugast@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/xe/xe_query.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
index e0c2203e428e..cbccd5c3dbc8 100644
--- a/drivers/gpu/drm/xe/xe_query.c
+++ b/drivers/gpu/drm/xe/xe_query.c
@@ -19,7 +19,7 @@
 #include "xe_macros.h"
 #include "xe_ttm_vram_mgr.h"
 
-static const enum xe_engine_class xe_to_user_engine_class[] = {
+static const u16 xe_to_user_engine_class[] = {
 	[XE_ENGINE_CLASS_RENDER] = DRM_XE_ENGINE_CLASS_RENDER,
 	[XE_ENGINE_CLASS_COPY] = DRM_XE_ENGINE_CLASS_COPY,
 	[XE_ENGINE_CLASS_VIDEO_DECODE] = DRM_XE_ENGINE_CLASS_VIDEO_DECODE,
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 03/30] drm/xe: Correlate engine and cpu timestamps with better accuracy
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 01/30] drm/xe: Fix array bounds check for queries Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 02/30] drm/xe: Set the correct type for xe_to_user_engine_class Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 16:42   ` Souza, Jose
  2023-09-26 18:43   ` Umesh Nerlige Ramappa
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 04/30] drm/xe/uapi: Separate VM_BIND's operation and flag Francois Dugast
                   ` (34 subsequent siblings)
  37 siblings, 2 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast, Rodrigo Vivi

From: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>

Perf measurements rely on CPU and engine timestamps to correlate
events of interest across these time domains. Current mechanisms get
these timestamps separately and the calculated delta between these
timestamps lack enough accuracy.

To improve the accuracy of these time measurements to within a few us,
add a query that returns the engine and cpu timestamps captured as
close to each other as possible.

Prior work: https://patchwork.freedesktop.org/series/87552/

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Signed-off-by: Francois Dugast <francois.dugast@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/xe/xe_query.c | 141 ++++++++++++++++++++++++++++++++++
 include/uapi/drm/xe_drm.h     |  95 ++++++++++++++++++-----
 2 files changed, 218 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
index cbccd5c3dbc8..be9affd4f181 100644
--- a/drivers/gpu/drm/xe/xe_query.c
+++ b/drivers/gpu/drm/xe/xe_query.c
@@ -6,10 +6,12 @@
 #include "xe_query.h"
 
 #include <linux/nospec.h>
+#include <linux/sched/clock.h>
 
 #include <drm/ttm/ttm_placement.h>
 #include <drm/xe_drm.h>
 
+#include "regs/xe_engine_regs.h"
 #include "xe_bo.h"
 #include "xe_device.h"
 #include "xe_exec_queue.h"
@@ -17,6 +19,7 @@
 #include "xe_gt.h"
 #include "xe_guc_hwconfig.h"
 #include "xe_macros.h"
+#include "xe_mmio.h"
 #include "xe_ttm_vram_mgr.h"
 
 static const u16 xe_to_user_engine_class[] = {
@@ -27,6 +30,14 @@ static const u16 xe_to_user_engine_class[] = {
 	[XE_ENGINE_CLASS_COMPUTE] = DRM_XE_ENGINE_CLASS_COMPUTE,
 };
 
+static const enum xe_engine_class user_to_xe_engine_class[] = {
+	[DRM_XE_ENGINE_CLASS_RENDER] = XE_ENGINE_CLASS_RENDER,
+	[DRM_XE_ENGINE_CLASS_COPY] = XE_ENGINE_CLASS_COPY,
+	[DRM_XE_ENGINE_CLASS_VIDEO_DECODE] = XE_ENGINE_CLASS_VIDEO_DECODE,
+	[DRM_XE_ENGINE_CLASS_VIDEO_ENHANCE] = XE_ENGINE_CLASS_VIDEO_ENHANCE,
+	[DRM_XE_ENGINE_CLASS_COMPUTE] = XE_ENGINE_CLASS_COMPUTE,
+};
+
 static size_t calc_hw_engine_info_size(struct xe_device *xe)
 {
 	struct xe_hw_engine *hwe;
@@ -45,6 +56,135 @@ static size_t calc_hw_engine_info_size(struct xe_device *xe)
 	return i * sizeof(struct drm_xe_engine_class_instance);
 }
 
+typedef u64 (*__ktime_func_t)(void);
+static __ktime_func_t __clock_id_to_func(clockid_t clk_id)
+{
+	/*
+	 * Use logic same as the perf subsystem to allow user to select the
+	 * reference clock id to be used for timestamps.
+	 */
+	switch (clk_id) {
+	case CLOCK_MONOTONIC:
+		return &ktime_get_ns;
+	case CLOCK_MONOTONIC_RAW:
+		return &ktime_get_raw_ns;
+	case CLOCK_REALTIME:
+		return &ktime_get_real_ns;
+	case CLOCK_BOOTTIME:
+		return &ktime_get_boottime_ns;
+	case CLOCK_TAI:
+		return &ktime_get_clocktai_ns;
+	default:
+		return NULL;
+	}
+}
+
+static void
+__read_timestamps(struct xe_gt *gt,
+		  struct xe_reg lower_reg,
+		  struct xe_reg upper_reg,
+		  u64 *cs_ts,
+		  u64 *cpu_ts,
+		  u64 *cpu_delta,
+		  __ktime_func_t cpu_clock)
+{
+	u32 upper, lower, old_upper, loop = 0;
+
+	upper = xe_mmio_read32(gt, upper_reg);
+	do {
+		*cpu_delta = local_clock();
+		*cpu_ts = cpu_clock();
+		lower = xe_mmio_read32(gt, lower_reg);
+		*cpu_delta = local_clock() - *cpu_delta;
+		old_upper = upper;
+		upper = xe_mmio_read32(gt, upper_reg);
+	} while (upper != old_upper && loop++ < 2);
+
+	*cs_ts = (u64)upper << 32 | lower;
+}
+
+static int
+query_cs_cycles(struct xe_device *xe,
+		struct drm_xe_device_query *query)
+{
+	struct drm_xe_query_cs_cycles __user *query_ptr;
+	struct drm_xe_engine_class_instance *eci;
+	struct drm_xe_query_cs_cycles resp;
+	size_t size = sizeof(resp);
+	__ktime_func_t cpu_clock;
+	struct xe_hw_engine *hwe;
+	struct xe_gt *gt;
+
+	if (query->size == 0) {
+		query->size = size;
+		return 0;
+	} else if (XE_IOCTL_DBG(xe, query->size != size)) {
+		return -EINVAL;
+	}
+
+	query_ptr = u64_to_user_ptr(query->data);
+	if (copy_from_user(&resp, query_ptr, size))
+		return -EFAULT;
+
+	if (resp.rsvd)
+		return -EINVAL;
+
+	cpu_clock = __clock_id_to_func(resp.clockid);
+	if (!cpu_clock)
+		return -EINVAL;
+
+	eci = &resp.eci;
+	if (eci->gt_id > XE_MAX_GT_PER_TILE)
+		return -EINVAL;
+
+	gt = xe_device_get_gt(xe, eci->gt_id);
+	if (!gt)
+		return -EINVAL;
+
+	if (eci->engine_class >= ARRAY_SIZE(user_to_xe_engine_class))
+		return -EINVAL;
+
+	hwe = xe_gt_hw_engine(gt, user_to_xe_engine_class[eci->engine_class],
+			      eci->engine_instance, true);
+	if (!hwe)
+		return -EINVAL;
+
+	resp.cs_frequency = gt->info.clock_freq;
+
+	xe_device_mem_access_get(xe);
+	xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL);
+
+	__read_timestamps(gt,
+			  RING_TIMESTAMP(hwe->mmio_base),
+			  RING_TIMESTAMP_UDW(hwe->mmio_base),
+			  &resp.cs_cycles,
+			  &resp.cpu_timestamp,
+			  &resp.cpu_delta,
+			  cpu_clock);
+
+	xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL);
+	xe_device_mem_access_put(xe);
+	resp.width = 36;
+
+	/* Only write to the output fields of user query */
+	if (put_user(resp.cs_frequency, &query_ptr->cs_frequency))
+		return -EFAULT;
+
+	if (put_user(resp.cpu_timestamp, &query_ptr->cpu_timestamp))
+		return -EFAULT;
+
+	if (put_user(resp.cpu_delta, &query_ptr->cpu_delta))
+		return -EFAULT;
+
+	if (put_user(resp.cs_cycles, &query_ptr->cs_cycles))
+		return -EFAULT;
+
+	if (put_user(resp.width, &query_ptr->width))
+		return -EFAULT;
+
+	return 0;
+}
+
 static int query_engines(struct xe_device *xe,
 			 struct drm_xe_device_query *query)
 {
@@ -369,6 +509,7 @@ static int (* const xe_query_funcs[])(struct xe_device *xe,
 	query_gts,
 	query_hwconfig,
 	query_gt_topology,
+	query_cs_cycles,
 };
 
 int xe_query_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index d48d8e3c898c..fde1378a60b9 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -128,6 +128,24 @@ struct xe_user_extension {
 #define DRM_IOCTL_XE_WAIT_USER_FENCE		DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_WAIT_USER_FENCE, struct drm_xe_wait_user_fence)
 #define DRM_IOCTL_XE_VM_MADVISE			 DRM_IOW(DRM_COMMAND_BASE + DRM_XE_VM_MADVISE, struct drm_xe_vm_madvise)
 
+/** struct drm_xe_engine_class_instance - instance of an engine class */
+struct drm_xe_engine_class_instance {
+#define DRM_XE_ENGINE_CLASS_RENDER		0
+#define DRM_XE_ENGINE_CLASS_COPY		1
+#define DRM_XE_ENGINE_CLASS_VIDEO_DECODE	2
+#define DRM_XE_ENGINE_CLASS_VIDEO_ENHANCE	3
+#define DRM_XE_ENGINE_CLASS_COMPUTE		4
+	/*
+	 * Kernel only class (not actual hardware engine class). Used for
+	 * creating ordered queues of VM bind operations.
+	 */
+#define DRM_XE_ENGINE_CLASS_VM_BIND		5
+	__u16 engine_class;
+
+	__u16 engine_instance;
+	__u16 gt_id;
+};
+
 /**
  * enum drm_xe_memory_class - Supported memory classes.
  */
@@ -219,6 +237,64 @@ struct drm_xe_query_mem_region {
 	__u64 reserved[6];
 };
 
+/**
+ * struct drm_xe_query_cs_cycles - correlate CPU and GPU timestamps
+ *
+ * If a query is made with a struct drm_xe_device_query where .query
+ * is equal to DRM_XE_QUERY_CS_CYCLES, then the reply uses
+ * struct drm_xe_query_cs_cycles in .data.
+ *
+ * struct drm_xe_query_cs_cycles is allocated by the user and .data points to
+ * this allocated structure. The user must pass .eci and .clockid as inputs to
+ * this query. eci determines the engine and tile info required to fetch the
+ * relevant GPU timestamp. clockid is used to return the specific CPU
+ * timestamp.
+ *
+ * The query returns the command streamer cycles and the frequency that can
+ * be used to calculate the command streamer timestamp. In addition the
+ * query returns a set of cpu timestamps that indicate when the command
+ * streamer cycle count was captured.
+ */
+struct drm_xe_query_cs_cycles {
+	/** Engine for which command streamer cycles is queried. */
+	struct drm_xe_engine_class_instance eci;
+
+	/** MBZ (pad eci to 64 bit) */
+	__u16 rsvd;
+
+	/**
+	 * Command streamer cycles as read from the command streamer
+	 * register at 0x358 offset.
+	 */
+	__u64 cs_cycles;
+
+	/** Frequency of the cs cycles in Hz. */
+	__u64 cs_frequency;
+
+	/**
+	 * CPU timestamp in ns. The timestamp is captured before reading the
+	 * cs_cycles register using the reference clockid set by the user.
+	 */
+	__u64 cpu_timestamp;
+
+	/**
+	 * Time delta in ns captured around reading the lower dword of the
+	 * cs_cycles register.
+	 */
+	__u64 cpu_delta;
+
+	/**
+	 * Reference clock id for CPU timestamp. For definition, see
+	 * clock_gettime(2) and perf_event_open(2). Supported clock ids are
+	 * CLOCK_MONOTONIC, CLOCK_MONOTONIC_RAW, CLOCK_REALTIME, CLOCK_BOOTTIME,
+	 * CLOCK_TAI.
+	 */
+	__s32 clockid;
+
+	/** Width of the cs cycle counter in bits. */
+	__u32 width;
+};
+
 /**
  * struct drm_xe_query_mem_usage - describe memory regions and usage
  *
@@ -391,6 +467,7 @@ struct drm_xe_device_query {
 #define DRM_XE_DEVICE_QUERY_GTS		3
 #define DRM_XE_DEVICE_QUERY_HWCONFIG	4
 #define DRM_XE_DEVICE_QUERY_GT_TOPOLOGY	5
+#define DRM_XE_QUERY_CS_CYCLES		6
 	/** @query: The type of data to query */
 	__u32 query;
 
@@ -732,24 +809,6 @@ struct drm_xe_exec_queue_set_property {
 	__u64 reserved[2];
 };
 
-/** struct drm_xe_engine_class_instance - instance of an engine class */
-struct drm_xe_engine_class_instance {
-#define DRM_XE_ENGINE_CLASS_RENDER		0
-#define DRM_XE_ENGINE_CLASS_COPY		1
-#define DRM_XE_ENGINE_CLASS_VIDEO_DECODE	2
-#define DRM_XE_ENGINE_CLASS_VIDEO_ENHANCE	3
-#define DRM_XE_ENGINE_CLASS_COMPUTE		4
-	/*
-	 * Kernel only class (not actual hardware engine class). Used for
-	 * creating ordered queues of VM bind operations.
-	 */
-#define DRM_XE_ENGINE_CLASS_VM_BIND		5
-	__u16 engine_class;
-
-	__u16 engine_instance;
-	__u16 gt_id;
-};
-
 struct drm_xe_exec_queue_create {
 #define XE_EXEC_QUEUE_EXTENSION_SET_PROPERTY               0
 	/** @extensions: Pointer to the first extension struct, if any */
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 04/30] drm/xe/uapi: Separate VM_BIND's operation and flag
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (2 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 03/30] drm/xe: Correlate engine and cpu timestamps with better accuracy Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 05/30] drm/xe/vm: Remove VM_BIND_OP macro Francois Dugast
                   ` (33 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast, Rodrigo Vivi

Use different members in the drm_xe_vm_bind_op for op and for flags as
it is done in other structures.

Type is left to u32 to leave enough room for future operations and flags.

v2: Remove the XE_VM_BIND_* flags shift (Rodrigo Vivi)

Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/303
Signed-off-by: Francois Dugast <francois.dugast@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_vm.c | 29 ++++++++++++++++-------------
 include/uapi/drm/xe_drm.h  | 14 ++++++++------
 2 files changed, 24 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index 861d050871bb..e81d8cc5c29e 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -2160,11 +2160,11 @@ static void vm_set_async_error(struct xe_vm *vm, int err)
 }
 
 static int vm_bind_ioctl_lookup_vma(struct xe_vm *vm, struct xe_bo *bo,
-				    u64 addr, u64 range, u32 op)
+				    u64 addr, u64 range, u32 op, u32 flags)
 {
 	struct xe_device *xe = vm->xe;
 	struct xe_vma *vma;
-	bool async = !!(op & XE_VM_BIND_FLAG_ASYNC);
+	bool async = !!(flags & XE_VM_BIND_FLAG_ASYNC);
 
 	lockdep_assert_held(&vm->lock);
 
@@ -2265,7 +2265,7 @@ static void print_op(struct xe_device *xe, struct drm_gpuva_op *op)
 static struct drm_gpuva_ops *
 vm_bind_ioctl_ops_create(struct xe_vm *vm, struct xe_bo *bo,
 			 u64 bo_offset_or_userptr, u64 addr, u64 range,
-			 u32 operation, u8 tile_mask, u32 region)
+			 u32 operation, u32 flags, u8 tile_mask, u32 region)
 {
 	struct drm_gem_object *obj = bo ? &bo->ttm.base : NULL;
 	struct drm_gpuva_ops *ops;
@@ -2293,10 +2293,10 @@ vm_bind_ioctl_ops_create(struct xe_vm *vm, struct xe_bo *bo,
 
 			op->tile_mask = tile_mask;
 			op->map.immediate =
-				operation & XE_VM_BIND_FLAG_IMMEDIATE;
+				flags & XE_VM_BIND_FLAG_IMMEDIATE;
 			op->map.read_only =
-				operation & XE_VM_BIND_FLAG_READONLY;
-			op->map.is_null = operation & XE_VM_BIND_FLAG_NULL;
+				flags & XE_VM_BIND_FLAG_READONLY;
+			op->map.is_null = flags & XE_VM_BIND_FLAG_NULL;
 		}
 		break;
 	case XE_VM_BIND_OP_UNMAP:
@@ -3108,15 +3108,16 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
 		u64 range = (*bind_ops)[i].range;
 		u64 addr = (*bind_ops)[i].addr;
 		u32 op = (*bind_ops)[i].op;
+		u32 flags = (*bind_ops)[i].flags;
 		u32 obj = (*bind_ops)[i].obj;
 		u64 obj_offset = (*bind_ops)[i].obj_offset;
 		u32 region = (*bind_ops)[i].region;
-		bool is_null = op & XE_VM_BIND_FLAG_NULL;
+		bool is_null = flags & XE_VM_BIND_FLAG_NULL;
 
 		if (i == 0) {
-			*async = !!(op & XE_VM_BIND_FLAG_ASYNC);
+			*async = !!(flags & XE_VM_BIND_FLAG_ASYNC);
 		} else if (XE_IOCTL_DBG(xe, !*async) ||
-			   XE_IOCTL_DBG(xe, !(op & XE_VM_BIND_FLAG_ASYNC)) ||
+			   XE_IOCTL_DBG(xe, !(flags & XE_VM_BIND_FLAG_ASYNC)) ||
 			   XE_IOCTL_DBG(xe, VM_BIND_OP(op) ==
 					XE_VM_BIND_OP_RESTART)) {
 			err = -EINVAL;
@@ -3137,7 +3138,7 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
 
 		if (XE_IOCTL_DBG(xe, VM_BIND_OP(op) >
 				 XE_VM_BIND_OP_PREFETCH) ||
-		    XE_IOCTL_DBG(xe, op & ~SUPPORTED_FLAGS) ||
+		    XE_IOCTL_DBG(xe, flags & ~SUPPORTED_FLAGS) ||
 		    XE_IOCTL_DBG(xe, obj && is_null) ||
 		    XE_IOCTL_DBG(xe, obj_offset && is_null) ||
 		    XE_IOCTL_DBG(xe, VM_BIND_OP(op) != XE_VM_BIND_OP_MAP &&
@@ -3352,8 +3353,9 @@ int xe_vm_bind_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
 		u64 range = bind_ops[i].range;
 		u64 addr = bind_ops[i].addr;
 		u32 op = bind_ops[i].op;
+		u32 flags = bind_ops[i].flags;
 
-		err = vm_bind_ioctl_lookup_vma(vm, bos[i], addr, range, op);
+		err = vm_bind_ioctl_lookup_vma(vm, bos[i], addr, range, op, flags);
 		if (err)
 			goto free_syncs;
 	}
@@ -3362,13 +3364,14 @@ int xe_vm_bind_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
 		u64 range = bind_ops[i].range;
 		u64 addr = bind_ops[i].addr;
 		u32 op = bind_ops[i].op;
+		u32 flags = bind_ops[i].flags;
 		u64 obj_offset = bind_ops[i].obj_offset;
 		u8 tile_mask = bind_ops[i].tile_mask;
 		u32 region = bind_ops[i].region;
 
 		ops[i] = vm_bind_ioctl_ops_create(vm, bos[i], obj_offset,
-						  addr, range, op, tile_mask,
-						  region);
+						  addr, range, op, flags,
+						  tile_mask, region);
 		if (IS_ERR(ops[i])) {
 			err = PTR_ERR(ops[i]);
 			ops[i] = NULL;
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index fde1378a60b9..285bba48ffbf 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -663,8 +663,10 @@ struct drm_xe_vm_bind_op {
 #define XE_VM_BIND_OP_RESTART		0x3
 #define XE_VM_BIND_OP_UNMAP_ALL		0x4
 #define XE_VM_BIND_OP_PREFETCH		0x5
+	/** @op: Bind operation to perform */
+	__u32 op;
 
-#define XE_VM_BIND_FLAG_READONLY	(0x1 << 16)
+#define XE_VM_BIND_FLAG_READONLY	(0x1 << 0)
 	/*
 	 * A bind ops completions are always async, hence the support for out
 	 * sync. This flag indicates the allocation of the memory for new page
@@ -689,12 +691,12 @@ struct drm_xe_vm_bind_op {
 	 * configured in the VM and must be set if the VM is configured with
 	 * DRM_XE_VM_CREATE_ASYNC_BIND_OPS and not in an error state.
 	 */
-#define XE_VM_BIND_FLAG_ASYNC		(0x1 << 17)
+#define XE_VM_BIND_FLAG_ASYNC		(0x1 << 1)
 	/*
 	 * Valid on a faulting VM only, do the MAP operation immediately rather
 	 * than deferring the MAP to the page fault handler.
 	 */
-#define XE_VM_BIND_FLAG_IMMEDIATE	(0x1 << 18)
+#define XE_VM_BIND_FLAG_IMMEDIATE	(0x1 << 2)
 	/*
 	 * When the NULL flag is set, the page tables are setup with a special
 	 * bit which indicates writes are dropped and all reads return zero.  In
@@ -702,9 +704,9 @@ struct drm_xe_vm_bind_op {
 	 * operations, the BO handle MBZ, and the BO offset MBZ. This flag is
 	 * intended to implement VK sparse bindings.
 	 */
-#define XE_VM_BIND_FLAG_NULL		(0x1 << 19)
-	/** @op: Operation to perform (lower 16 bits) and flags (upper 16 bits) */
-	__u32 op;
+#define XE_VM_BIND_FLAG_NULL		(0x1 << 3)
+	/** @flags: Bind flags */
+	__u32 flags;
 
 	/** @mem_region: Memory region to prefetch VMA to, instance not a mask */
 	__u32 region;
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 05/30] drm/xe/vm: Remove VM_BIND_OP macro
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (3 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 04/30] drm/xe/uapi: Separate VM_BIND's operation and flag Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 06/30] drm/xe/uapi: Remove MMIO ioctl Francois Dugast
                   ` (32 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast, Rodrigo Vivi

This macro was necessary when bind operations were shifted but this
is no longer the case, so removing to simplify code.

Signed-off-by: Francois Dugast <francois.dugast@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_vm.c | 42 +++++++++++++++++---------------------
 1 file changed, 19 insertions(+), 23 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index e81d8cc5c29e..e84002555d34 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -2142,8 +2142,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 ?
@@ -2168,7 +2166,7 @@ static int vm_bind_ioctl_lookup_vma(struct xe_vm *vm, struct xe_bo *bo,
 
 	lockdep_assert_held(&vm->lock);
 
-	switch (VM_BIND_OP(op)) {
+	switch (op) {
 	case XE_VM_BIND_OP_MAP:
 	case XE_VM_BIND_OP_MAP_USERPTR:
 		vma = xe_vm_find_overlapping_vma(vm, addr, range);
@@ -2277,10 +2275,10 @@ vm_bind_ioctl_ops_create(struct xe_vm *vm, struct xe_bo *bo,
 
 	vm_dbg(&vm->xe->drm,
 	       "op=%d, addr=0x%016llx, range=0x%016llx, bo_offset_or_userptr=0x%016llx",
-	       VM_BIND_OP(operation), (ULL)addr, (ULL)range,
+	       operation, (ULL)addr, (ULL)range,
 	       (ULL)bo_offset_or_userptr);
 
-	switch (VM_BIND_OP(operation)) {
+	switch (operation) {
 	case XE_VM_BIND_OP_MAP:
 	case XE_VM_BIND_OP_MAP_USERPTR:
 		ops = drm_gpuva_sm_map_ops_create(&vm->mgr, addr, range,
@@ -3118,50 +3116,48 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
 			*async = !!(flags & XE_VM_BIND_FLAG_ASYNC);
 		} else if (XE_IOCTL_DBG(xe, !*async) ||
 			   XE_IOCTL_DBG(xe, !(flags & XE_VM_BIND_FLAG_ASYNC)) ||
-			   XE_IOCTL_DBG(xe, VM_BIND_OP(op) ==
-					XE_VM_BIND_OP_RESTART)) {
+			   XE_IOCTL_DBG(xe, op == XE_VM_BIND_OP_RESTART)) {
 			err = -EINVAL;
 			goto free_bind_ops;
 		}
 
 		if (XE_IOCTL_DBG(xe, !*async &&
-				 VM_BIND_OP(op) == XE_VM_BIND_OP_UNMAP_ALL)) {
+				 op == XE_VM_BIND_OP_UNMAP_ALL)) {
 			err = -EINVAL;
 			goto free_bind_ops;
 		}
 
 		if (XE_IOCTL_DBG(xe, !*async &&
-				 VM_BIND_OP(op) == XE_VM_BIND_OP_PREFETCH)) {
+				 op == XE_VM_BIND_OP_PREFETCH)) {
 			err = -EINVAL;
 			goto free_bind_ops;
 		}
 
-		if (XE_IOCTL_DBG(xe, VM_BIND_OP(op) >
-				 XE_VM_BIND_OP_PREFETCH) ||
+		if (XE_IOCTL_DBG(xe, op > XE_VM_BIND_OP_PREFETCH) ||
 		    XE_IOCTL_DBG(xe, flags & ~SUPPORTED_FLAGS) ||
 		    XE_IOCTL_DBG(xe, obj && is_null) ||
 		    XE_IOCTL_DBG(xe, obj_offset && is_null) ||
-		    XE_IOCTL_DBG(xe, VM_BIND_OP(op) != XE_VM_BIND_OP_MAP &&
+		    XE_IOCTL_DBG(xe, op != XE_VM_BIND_OP_MAP &&
 				 is_null) ||
 		    XE_IOCTL_DBG(xe, !obj &&
-				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP &&
+				 op == XE_VM_BIND_OP_MAP &&
 				 !is_null) ||
 		    XE_IOCTL_DBG(xe, !obj &&
-				 VM_BIND_OP(op) == XE_VM_BIND_OP_UNMAP_ALL) ||
+				 op == XE_VM_BIND_OP_UNMAP_ALL) ||
 		    XE_IOCTL_DBG(xe, addr &&
-				 VM_BIND_OP(op) == XE_VM_BIND_OP_UNMAP_ALL) ||
+				 op == XE_VM_BIND_OP_UNMAP_ALL) ||
 		    XE_IOCTL_DBG(xe, range &&
-				 VM_BIND_OP(op) == XE_VM_BIND_OP_UNMAP_ALL) ||
+				 op == XE_VM_BIND_OP_UNMAP_ALL) ||
 		    XE_IOCTL_DBG(xe, obj &&
-				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP_USERPTR) ||
+				 op == XE_VM_BIND_OP_MAP_USERPTR) ||
 		    XE_IOCTL_DBG(xe, obj &&
-				 VM_BIND_OP(op) == XE_VM_BIND_OP_PREFETCH) ||
+				 op == XE_VM_BIND_OP_PREFETCH) ||
 		    XE_IOCTL_DBG(xe, region &&
-				 VM_BIND_OP(op) != XE_VM_BIND_OP_PREFETCH) ||
+				 op != XE_VM_BIND_OP_PREFETCH) ||
 		    XE_IOCTL_DBG(xe, !(BIT(region) &
 				       xe->info.mem_region_mask)) ||
 		    XE_IOCTL_DBG(xe, obj &&
-				 VM_BIND_OP(op) == XE_VM_BIND_OP_UNMAP)) {
+				 op == XE_VM_BIND_OP_UNMAP)) {
 			err = -EINVAL;
 			goto free_bind_ops;
 		}
@@ -3169,9 +3165,9 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
 		if (XE_IOCTL_DBG(xe, obj_offset & ~PAGE_MASK) ||
 		    XE_IOCTL_DBG(xe, addr & ~PAGE_MASK) ||
 		    XE_IOCTL_DBG(xe, range & ~PAGE_MASK) ||
-		    XE_IOCTL_DBG(xe, !range && VM_BIND_OP(op) !=
+		    XE_IOCTL_DBG(xe, !range && op !=
 				 XE_VM_BIND_OP_RESTART &&
-				 VM_BIND_OP(op) != XE_VM_BIND_OP_UNMAP_ALL)) {
+				 op != XE_VM_BIND_OP_UNMAP_ALL)) {
 			err = -EINVAL;
 			goto free_bind_ops;
 		}
@@ -3235,7 +3231,7 @@ int xe_vm_bind_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
 		goto release_vm_lock;
 	}
 
-	if (VM_BIND_OP(bind_ops[0].op) == XE_VM_BIND_OP_RESTART) {
+	if (bind_ops[0].op == XE_VM_BIND_OP_RESTART) {
 		if (XE_IOCTL_DBG(xe, !(vm->flags & XE_VM_FLAG_ASYNC_BIND_OPS)))
 			err = -EOPNOTSUPP;
 		if (XE_IOCTL_DBG(xe, !err && args->num_syncs))
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 06/30] drm/xe/uapi: Remove MMIO ioctl
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (4 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 05/30] drm/xe/vm: Remove VM_BIND_OP macro Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 07/30] drm/xe: Fix xe_exec_queue_is_idle for parallel exec queues Francois Dugast
                   ` (31 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast, Lucas De Marchi, Rodrigo Vivi

This was previously used in UMD for timestamp correlation, which can now
be done with DRM_XE_QUERY_CS_CYCLES.

Link: https://lore.kernel.org/all/20230706042044.GR6953@mdroper-desk1.amr.corp.intel.com/
Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/636
Signed-off-by: Francois Dugast <francois.dugast@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/xe/xe_device.c |   1 -
 drivers/gpu/drm/xe/xe_mmio.c   | 102 ---------------------------------
 include/uapi/drm/xe_drm.h      |  31 ++--------
 3 files changed, 4 insertions(+), 130 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 687dc3d79a66..aaaa2bb87eb2 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -120,7 +120,6 @@ static const struct drm_ioctl_desc xe_ioctls[] = {
 	DRM_IOCTL_DEF_DRV(XE_EXEC_QUEUE_DESTROY, xe_exec_queue_destroy_ioctl,
 			  DRM_RENDER_ALLOW),
 	DRM_IOCTL_DEF_DRV(XE_EXEC, xe_exec_ioctl, DRM_RENDER_ALLOW),
-	DRM_IOCTL_DEF_DRV(XE_MMIO, xe_mmio_ioctl, DRM_RENDER_ALLOW),
 	DRM_IOCTL_DEF_DRV(XE_EXEC_QUEUE_SET_PROPERTY, xe_exec_queue_set_property_ioctl,
 			  DRM_RENDER_ALLOW),
 	DRM_IOCTL_DEF_DRV(XE_WAIT_USER_FENCE, xe_wait_user_fence_ioctl,
diff --git a/drivers/gpu/drm/xe/xe_mmio.c b/drivers/gpu/drm/xe/xe_mmio.c
index 3ccc0af4430b..e636e3f3456d 100644
--- a/drivers/gpu/drm/xe/xe_mmio.c
+++ b/drivers/gpu/drm/xe/xe_mmio.c
@@ -422,108 +422,6 @@ int xe_mmio_init(struct xe_device *xe)
 	return 0;
 }
 
-#define VALID_MMIO_FLAGS (\
-	DRM_XE_MMIO_BITS_MASK |\
-	DRM_XE_MMIO_READ |\
-	DRM_XE_MMIO_WRITE)
-
-static const struct xe_reg mmio_read_whitelist[] = {
-	RING_TIMESTAMP(RENDER_RING_BASE),
-};
-
-int xe_mmio_ioctl(struct drm_device *dev, void *data,
-		  struct drm_file *file)
-{
-	struct xe_device *xe = to_xe_device(dev);
-	struct xe_gt *gt = xe_root_mmio_gt(xe);
-	struct drm_xe_mmio *args = data;
-	unsigned int bits_flag, bytes;
-	struct xe_reg reg;
-	bool allowed;
-	int ret = 0;
-
-	if (XE_IOCTL_DBG(xe, args->extensions) ||
-	    XE_IOCTL_DBG(xe, args->reserved[0] || args->reserved[1]))
-		return -EINVAL;
-
-	if (XE_IOCTL_DBG(xe, args->flags & ~VALID_MMIO_FLAGS))
-		return -EINVAL;
-
-	if (XE_IOCTL_DBG(xe, !(args->flags & DRM_XE_MMIO_WRITE) && args->value))
-		return -EINVAL;
-
-	allowed = capable(CAP_SYS_ADMIN);
-	if (!allowed && ((args->flags & ~DRM_XE_MMIO_BITS_MASK) == DRM_XE_MMIO_READ)) {
-		unsigned int i;
-
-		for (i = 0; i < ARRAY_SIZE(mmio_read_whitelist); i++) {
-			if (mmio_read_whitelist[i].addr == args->addr) {
-				allowed = true;
-				break;
-			}
-		}
-	}
-
-	if (XE_IOCTL_DBG(xe, !allowed))
-		return -EPERM;
-
-	bits_flag = args->flags & DRM_XE_MMIO_BITS_MASK;
-	bytes = 1 << bits_flag;
-	if (XE_IOCTL_DBG(xe, args->addr + bytes > xe->mmio.size))
-		return -EINVAL;
-
-	/*
-	 * TODO: migrate to xe_gt_mcr to lookup the mmio range and handle
-	 * multicast registers. Steering would need uapi extension.
-	 */
-	reg = XE_REG(args->addr);
-
-	xe_device_mem_access_get(xe);
-	xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL);
-
-	if (args->flags & DRM_XE_MMIO_WRITE) {
-		switch (bits_flag) {
-		case DRM_XE_MMIO_32BIT:
-			if (XE_IOCTL_DBG(xe, args->value > U32_MAX)) {
-				ret = -EINVAL;
-				goto exit;
-			}
-			xe_mmio_write32(gt, reg, args->value);
-			break;
-		default:
-			drm_dbg(&xe->drm, "Invalid MMIO bit size");
-			fallthrough;
-		case DRM_XE_MMIO_8BIT: /* TODO */
-		case DRM_XE_MMIO_16BIT: /* TODO */
-			ret = -EOPNOTSUPP;
-			goto exit;
-		}
-	}
-
-	if (args->flags & DRM_XE_MMIO_READ) {
-		switch (bits_flag) {
-		case DRM_XE_MMIO_32BIT:
-			args->value = xe_mmio_read32(gt, reg);
-			break;
-		case DRM_XE_MMIO_64BIT:
-			args->value = xe_mmio_read64_2x32(gt, reg);
-			break;
-		default:
-			drm_dbg(&xe->drm, "Invalid MMIO bit size");
-			fallthrough;
-		case DRM_XE_MMIO_8BIT: /* TODO */
-		case DRM_XE_MMIO_16BIT: /* TODO */
-			ret = -EOPNOTSUPP;
-		}
-	}
-
-exit:
-	xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL);
-	xe_device_mem_access_put(xe);
-
-	return ret;
-}
-
 /**
  * xe_mmio_read64_2x32() - Read a 64-bit register as two 32-bit reads
  * @gt: MMIO target GT
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index 285bba48ffbf..1a6d0fdc3f74 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -106,11 +106,10 @@ struct xe_user_extension {
 #define DRM_XE_EXEC_QUEUE_CREATE		0x06
 #define DRM_XE_EXEC_QUEUE_DESTROY		0x07
 #define DRM_XE_EXEC			0x08
-#define DRM_XE_MMIO			0x09
-#define DRM_XE_EXEC_QUEUE_SET_PROPERTY	0x0a
-#define DRM_XE_WAIT_USER_FENCE		0x0b
-#define DRM_XE_VM_MADVISE		0x0c
-#define DRM_XE_EXEC_QUEUE_GET_PROPERTY	0x0d
+#define DRM_XE_EXEC_QUEUE_SET_PROPERTY	0x09
+#define DRM_XE_WAIT_USER_FENCE		0x0a
+#define DRM_XE_VM_MADVISE		0x0b
+#define DRM_XE_EXEC_QUEUE_GET_PROPERTY	0x0c
 
 /* Must be kept compact -- no holes */
 #define DRM_IOCTL_XE_DEVICE_QUERY		DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_DEVICE_QUERY, struct drm_xe_device_query)
@@ -123,7 +122,6 @@ struct xe_user_extension {
 #define DRM_IOCTL_XE_EXEC_QUEUE_GET_PROPERTY	DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_GET_PROPERTY, struct drm_xe_exec_queue_get_property)
 #define DRM_IOCTL_XE_EXEC_QUEUE_DESTROY		 DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_DESTROY, struct drm_xe_exec_queue_destroy)
 #define DRM_IOCTL_XE_EXEC			 DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC, struct drm_xe_exec)
-#define DRM_IOCTL_XE_MMIO			DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_MMIO, struct drm_xe_mmio)
 #define DRM_IOCTL_XE_EXEC_QUEUE_SET_PROPERTY	 DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_SET_PROPERTY, struct drm_xe_exec_queue_set_property)
 #define DRM_IOCTL_XE_WAIT_USER_FENCE		DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_WAIT_USER_FENCE, struct drm_xe_wait_user_fence)
 #define DRM_IOCTL_XE_VM_MADVISE			 DRM_IOW(DRM_COMMAND_BASE + DRM_XE_VM_MADVISE, struct drm_xe_vm_madvise)
@@ -939,27 +937,6 @@ struct drm_xe_exec {
 	__u64 reserved[2];
 };
 
-struct drm_xe_mmio {
-	/** @extensions: Pointer to the first extension struct, if any */
-	__u64 extensions;
-
-	__u32 addr;
-
-#define DRM_XE_MMIO_8BIT	0x0
-#define DRM_XE_MMIO_16BIT	0x1
-#define DRM_XE_MMIO_32BIT	0x2
-#define DRM_XE_MMIO_64BIT	0x3
-#define DRM_XE_MMIO_BITS_MASK	0x3
-#define DRM_XE_MMIO_READ	0x4
-#define DRM_XE_MMIO_WRITE	0x8
-	__u32 flags;
-
-	__u64 value;
-
-	/** @reserved: Reserved */
-	__u64 reserved[2];
-};
-
 /**
  * struct drm_xe_wait_user_fence - wait user fence
  *
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 07/30] drm/xe: Fix xe_exec_queue_is_idle for parallel exec queues
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (5 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 06/30] drm/xe/uapi: Remove MMIO ioctl Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 08/30] drm/xe: Deprecate XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE implementation Francois Dugast
                   ` (30 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Rodrigo Vivi

From: Matthew Brost <matthew.brost@intel.com>

Last little piece to support parallel exec queue is compute mode.

Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/xe/xe_exec_queue.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c
index 744be293fe37..6f1e64896a2d 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue.c
+++ b/drivers/gpu/drm/xe/xe_exec_queue.c
@@ -867,8 +867,17 @@ bool xe_exec_queue_ring_full(struct xe_exec_queue *q)
  */
 bool xe_exec_queue_is_idle(struct xe_exec_queue *q)
 {
-	if (XE_WARN_ON(xe_exec_queue_is_parallel(q)))
-		return false;
+	if (xe_exec_queue_is_parallel(q)) {
+		int i;
+
+		for (i = 0; i < q->width; ++i) {
+			if (xe_lrc_seqno(&q->lrc[i]) !=
+			    q->lrc[i].fence_ctx.next_seqno - 1)
+				return false;
+		}
+
+		return true;
+	}
 
 	return xe_lrc_seqno(&q->lrc[0]) ==
 		q->lrc[0].fence_ctx.next_seqno - 1;
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 08/30] drm/xe: Deprecate XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE implementation
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (6 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 07/30] drm/xe: Fix xe_exec_queue_is_idle for parallel exec queues Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 09/30] drm/xe: Rename exec_queue_kill_compute to xe_vm_remove_compute_exec_queue Francois Dugast
                   ` (29 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Rodrigo Vivi

From: Matthew Brost <matthew.brost@intel.com>

We are going to remove XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE from the
uAPI, deprecate the implementation first by making
XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE a NOP. After removal of
XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE the proper is simply inherented
from the VM.

v2:
 - Update commit message with explaination of removal (Niranjana)

Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/xe/xe_exec_queue.c       | 57 ++++++------------------
 drivers/gpu/drm/xe/xe_exec_queue_types.h |  6 +--
 2 files changed, 16 insertions(+), 47 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c
index 6f1e64896a2d..68cd2234acf5 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue.c
+++ b/drivers/gpu/drm/xe/xe_exec_queue.c
@@ -323,39 +323,6 @@ static int exec_queue_set_preemption_timeout(struct xe_device *xe,
 static int exec_queue_set_compute_mode(struct xe_device *xe, struct xe_exec_queue *q,
 				       u64 value, bool create)
 {
-	if (XE_IOCTL_DBG(xe, !create))
-		return -EINVAL;
-
-	if (XE_IOCTL_DBG(xe, q->flags & EXEC_QUEUE_FLAG_COMPUTE_MODE))
-		return -EINVAL;
-
-	if (XE_IOCTL_DBG(xe, q->flags & EXEC_QUEUE_FLAG_VM))
-		return -EINVAL;
-
-	if (value) {
-		struct xe_vm *vm = q->vm;
-		int err;
-
-		if (XE_IOCTL_DBG(xe, xe_vm_in_fault_mode(vm)))
-			return -EOPNOTSUPP;
-
-		if (XE_IOCTL_DBG(xe, !xe_vm_in_compute_mode(vm)))
-			return -EOPNOTSUPP;
-
-		if (XE_IOCTL_DBG(xe, q->width != 1))
-			return -EINVAL;
-
-		q->compute.context = dma_fence_context_alloc(1);
-		spin_lock_init(&q->compute.lock);
-
-		err = xe_vm_add_compute_exec_queue(vm, q);
-		if (XE_IOCTL_DBG(xe, err))
-			return err;
-
-		q->flags |= EXEC_QUEUE_FLAG_COMPUTE_MODE;
-		q->flags &= ~EXEC_QUEUE_FLAG_PERSISTENT;
-	}
-
 	return 0;
 }
 
@@ -365,7 +332,7 @@ static int exec_queue_set_persistence(struct xe_device *xe, struct xe_exec_queue
 	if (XE_IOCTL_DBG(xe, !create))
 		return -EINVAL;
 
-	if (XE_IOCTL_DBG(xe, q->flags & EXEC_QUEUE_FLAG_COMPUTE_MODE))
+	if (XE_IOCTL_DBG(xe, xe_vm_in_compute_mode(q->vm)))
 		return -EINVAL;
 
 	if (value)
@@ -742,18 +709,21 @@ int xe_exec_queue_create_ioctl(struct drm_device *dev, void *data,
 		xe_vm_put(vm);
 		if (IS_ERR(q))
 			return PTR_ERR(q);
+
+		if (xe_vm_in_compute_mode(vm)) {
+			q->compute.context = dma_fence_context_alloc(1);
+			spin_lock_init(&q->compute.lock);
+
+			err = xe_vm_add_compute_exec_queue(vm, q);
+			if (XE_IOCTL_DBG(xe, err))
+				goto put_exec_queue;
+		}
 	}
 
 	if (args->extensions) {
 		err = exec_queue_user_extensions(xe, q, args->extensions, 0, true);
 		if (XE_IOCTL_DBG(xe, err))
-			goto put_exec_queue;
-	}
-
-	if (XE_IOCTL_DBG(xe, q->vm && xe_vm_in_compute_mode(q->vm) !=
-			 !!(q->flags & EXEC_QUEUE_FLAG_COMPUTE_MODE))) {
-		err = -EOPNOTSUPP;
-		goto put_exec_queue;
+			goto kill_exec_queue;
 	}
 
 	q->persistent.xef = xef;
@@ -762,14 +732,15 @@ int xe_exec_queue_create_ioctl(struct drm_device *dev, void *data,
 	err = xa_alloc(&xef->exec_queue.xa, &id, q, xa_limit_32b, GFP_KERNEL);
 	mutex_unlock(&xef->exec_queue.lock);
 	if (err)
-		goto put_exec_queue;
+		goto kill_exec_queue;
 
 	args->exec_queue_id = id;
 
 	return 0;
 
-put_exec_queue:
+kill_exec_queue:
 	xe_exec_queue_kill(q);
+put_exec_queue:
 	xe_exec_queue_put(q);
 	return err;
 }
diff --git a/drivers/gpu/drm/xe/xe_exec_queue_types.h b/drivers/gpu/drm/xe/xe_exec_queue_types.h
index 347d28442701..f73b9e80b25a 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue_types.h
+++ b/drivers/gpu/drm/xe/xe_exec_queue_types.h
@@ -60,12 +60,10 @@ struct xe_exec_queue {
 #define EXEC_QUEUE_FLAG_PERMANENT		BIT(2)
 /* queue keeps running pending jobs after destroy ioctl */
 #define EXEC_QUEUE_FLAG_PERSISTENT		BIT(3)
-/* queue for use with compute VMs */
-#define EXEC_QUEUE_FLAG_COMPUTE_MODE		BIT(4)
 /* for VM jobs. Caller needs to hold rpm ref when creating queue with this flag */
-#define EXEC_QUEUE_FLAG_VM			BIT(5)
+#define EXEC_QUEUE_FLAG_VM			BIT(4)
 /* child of VM queue for multi-tile VM jobs */
-#define EXEC_QUEUE_FLAG_BIND_ENGINE_CHILD	BIT(6)
+#define EXEC_QUEUE_FLAG_BIND_ENGINE_CHILD	BIT(5)
 
 	/**
 	 * @flags: flags for this exec queue, should statically setup aside from ban
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 09/30] drm/xe: Rename exec_queue_kill_compute to xe_vm_remove_compute_exec_queue
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (7 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 08/30] drm/xe: Deprecate XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE implementation Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 10/30] drm/xe: Remove XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE from uAPI Francois Dugast
                   ` (28 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Rodrigo Vivi

From: Matthew Brost <matthew.brost@intel.com>

Much better name and aligns with xe_vm_add_compute_exec_queue. As part
of the rename, move the implementation from xe_exec_queue.c to xe_vm.c.

Suggested-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/xe/xe_exec_queue.c | 20 ++------------------
 drivers/gpu/drm/xe/xe_vm.c         | 21 +++++++++++++++++++++
 drivers/gpu/drm/xe/xe_vm.h         |  1 +
 3 files changed, 24 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c
index 68cd2234acf5..170d9d9c48d2 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue.c
+++ b/drivers/gpu/drm/xe/xe_exec_queue.c
@@ -775,22 +775,6 @@ int xe_exec_queue_get_property_ioctl(struct drm_device *dev, void *data,
 	return ret;
 }
 
-static void exec_queue_kill_compute(struct xe_exec_queue *q)
-{
-	if (!xe_vm_in_compute_mode(q->vm))
-		return;
-
-	down_write(&q->vm->lock);
-	list_del(&q->compute.link);
-	--q->vm->preempt.num_exec_queues;
-	if (q->compute.pfence) {
-		dma_fence_enable_sw_signaling(q->compute.pfence);
-		dma_fence_put(q->compute.pfence);
-		q->compute.pfence = NULL;
-	}
-	up_write(&q->vm->lock);
-}
-
 /**
  * xe_exec_queue_is_lr() - Whether an exec_queue is long-running
  * @q: The exec_queue
@@ -861,11 +845,11 @@ void xe_exec_queue_kill(struct xe_exec_queue *q)
 	list_for_each_entry_safe(eq, next, &eq->multi_gt_list,
 				 multi_gt_link) {
 		q->ops->kill(eq);
-		exec_queue_kill_compute(eq);
+		xe_vm_remove_compute_exec_queue(q->vm, eq);
 	}
 
 	q->ops->kill(q);
-	exec_queue_kill_compute(q);
+	xe_vm_remove_compute_exec_queue(q->vm, q);
 }
 
 int xe_exec_queue_destroy_ioctl(struct drm_device *dev, void *data,
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index e84002555d34..8f00f979d5b5 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -381,6 +381,27 @@ int xe_vm_add_compute_exec_queue(struct xe_vm *vm, struct xe_exec_queue *q)
 	return err;
 }
 
+/**
+ * xe_vm_remove_compute_exec_queue() - Remove compute exec queue from VM
+ * @vm: The VM.
+ * @q: The exec_queue
+ */
+void xe_vm_remove_compute_exec_queue(struct xe_vm *vm, struct xe_exec_queue *q)
+{
+	if (!xe_vm_in_compute_mode(vm))
+		return;
+
+	down_write(&vm->lock);
+	list_del(&q->compute.link);
+	--vm->preempt.num_exec_queues;
+	if (q->compute.pfence) {
+		dma_fence_enable_sw_signaling(q->compute.pfence);
+		dma_fence_put(q->compute.pfence);
+		q->compute.pfence = NULL;
+	}
+	up_write(&vm->lock);
+}
+
 /**
  * __xe_vm_userptr_needs_repin() - Check whether the VM does have userptrs
  * that need repinning.
diff --git a/drivers/gpu/drm/xe/xe_vm.h b/drivers/gpu/drm/xe/xe_vm.h
index f966ed39b711..ceae9c1be697 100644
--- a/drivers/gpu/drm/xe/xe_vm.h
+++ b/drivers/gpu/drm/xe/xe_vm.h
@@ -168,6 +168,7 @@ static inline bool xe_vm_no_dma_fences(struct xe_vm *vm)
 }
 
 int xe_vm_add_compute_exec_queue(struct xe_vm *vm, struct xe_exec_queue *q);
+void xe_vm_remove_compute_exec_queue(struct xe_vm *vm, struct xe_exec_queue *q);
 
 int xe_vm_userptr_pin(struct xe_vm *vm);
 
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 10/30] drm/xe: Remove XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE from uAPI
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (8 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 09/30] drm/xe: Rename exec_queue_kill_compute to xe_vm_remove_compute_exec_queue Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 11/30] drm/xe/uapi: Use common drm_xe_ext_set_property extension Francois Dugast
                   ` (27 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Rodrigo Vivi

From: Matthew Brost <matthew.brost@intel.com>

Functionality of XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE deprecated in a
previous patch, drop from uAPI. The property is just simply inherented
from the VM.

v2:
 - Update commit message (Niranjana)

Reviewed-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/xe/xe_exec_queue.c |  7 -------
 include/uapi/drm/xe_drm.h          | 19 ++++++-------------
 2 files changed, 6 insertions(+), 20 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c
index 170d9d9c48d2..f70332986c73 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue.c
+++ b/drivers/gpu/drm/xe/xe_exec_queue.c
@@ -320,12 +320,6 @@ static int exec_queue_set_preemption_timeout(struct xe_device *xe,
 	return q->ops->set_preempt_timeout(q, value);
 }
 
-static int exec_queue_set_compute_mode(struct xe_device *xe, struct xe_exec_queue *q,
-				       u64 value, bool create)
-{
-	return 0;
-}
-
 static int exec_queue_set_persistence(struct xe_device *xe, struct xe_exec_queue *q,
 				      u64 value, bool create)
 {
@@ -411,7 +405,6 @@ static const xe_exec_queue_set_property_fn exec_queue_set_property_funcs[] = {
 	[XE_EXEC_QUEUE_SET_PROPERTY_PRIORITY] = exec_queue_set_priority,
 	[XE_EXEC_QUEUE_SET_PROPERTY_TIMESLICE] = exec_queue_set_timeslice,
 	[XE_EXEC_QUEUE_SET_PROPERTY_PREEMPTION_TIMEOUT] = exec_queue_set_preemption_timeout,
-	[XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE] = exec_queue_set_compute_mode,
 	[XE_EXEC_QUEUE_SET_PROPERTY_PERSISTENCE] = exec_queue_set_persistence,
 	[XE_EXEC_QUEUE_SET_PROPERTY_JOB_TIMEOUT] = exec_queue_set_job_timeout,
 	[XE_EXEC_QUEUE_SET_PROPERTY_ACC_TRIGGER] = exec_queue_set_acc_trigger,
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index 1a6d0fdc3f74..4f122bd3a280 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -784,21 +784,14 @@ struct drm_xe_exec_queue_set_property {
 	/** @exec_queue_id: Exec queue ID */
 	__u32 exec_queue_id;
 
-#define XE_EXEC_QUEUE_SET_PROPERTY_PRIORITY			0
+#define XE_EXEC_QUEUE_SET_PROPERTY_PRIORITY		0
 #define XE_EXEC_QUEUE_SET_PROPERTY_TIMESLICE		1
 #define XE_EXEC_QUEUE_SET_PROPERTY_PREEMPTION_TIMEOUT	2
-	/*
-	 * Long running or ULLS engine mode. DMA fences not allowed in this
-	 * mode. Must match the value of DRM_XE_VM_CREATE_COMPUTE_MODE, serves
-	 * as a sanity check the UMD knows what it is doing. Can only be set at
-	 * engine create time.
-	 */
-#define XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE		3
-#define XE_EXEC_QUEUE_SET_PROPERTY_PERSISTENCE		4
-#define XE_EXEC_QUEUE_SET_PROPERTY_JOB_TIMEOUT		5
-#define XE_EXEC_QUEUE_SET_PROPERTY_ACC_TRIGGER		6
-#define XE_EXEC_QUEUE_SET_PROPERTY_ACC_NOTIFY		7
-#define XE_EXEC_QUEUE_SET_PROPERTY_ACC_GRANULARITY		8
+#define XE_EXEC_QUEUE_SET_PROPERTY_PERSISTENCE		3
+#define XE_EXEC_QUEUE_SET_PROPERTY_JOB_TIMEOUT		4
+#define XE_EXEC_QUEUE_SET_PROPERTY_ACC_TRIGGER		5
+#define XE_EXEC_QUEUE_SET_PROPERTY_ACC_NOTIFY		6
+#define XE_EXEC_QUEUE_SET_PROPERTY_ACC_GRANULARITY	7
 	/** @property: property to set */
 	__u32 property;
 
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 11/30] drm/xe/uapi: Use common drm_xe_ext_set_property extension
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (9 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 10/30] drm/xe: Remove XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE from uAPI Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 12/30] drm/xe: Kill XE_VM_PROPERTY_BIND_OP_ERROR_CAPTURE_ADDRESS extension Francois Dugast
                   ` (26 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast, Rodrigo Vivi

From: Ashutosh Dixit <ashutosh.dixit@intel.com>

There really is no difference between 'struct drm_xe_ext_vm_set_property'
and 'struct drm_xe_ext_exec_queue_set_property', they are extensions which
specify a <property, value> pair. Replace the two extensions with a single
common 'struct drm_xe_ext_set_property' extension. The rationale is that
rather than have each XE module (including future modules) invent their own
property/value extensions, all XE modules use a common set_property
extension when possible.

Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Signed-off-by: Francois Dugast <francois.dugast@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_exec_queue.c |  2 +-
 drivers/gpu/drm/xe/xe_vm.c         |  2 +-
 include/uapi/drm/xe_drm.h          | 21 +++------------------
 3 files changed, 5 insertions(+), 20 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c
index f70332986c73..411ba38cb2b8 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue.c
+++ b/drivers/gpu/drm/xe/xe_exec_queue.c
@@ -418,7 +418,7 @@ static int exec_queue_user_ext_set_property(struct xe_device *xe,
 					    bool create)
 {
 	u64 __user *address = u64_to_user_ptr(extension);
-	struct drm_xe_ext_exec_queue_set_property ext;
+	struct drm_xe_ext_set_property ext;
 	int err;
 	u32 idx;
 
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index 8f00f979d5b5..f5f457252df6 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -1936,7 +1936,7 @@ static int vm_user_ext_set_property(struct xe_device *xe, struct xe_vm *vm,
 				    u64 extension)
 {
 	u64 __user *address = u64_to_user_ptr(extension);
-	struct drm_xe_ext_vm_set_property ext;
+	struct drm_xe_ext_set_property ext;
 	int err;
 
 	err = __copy_from_user(&ext, address, sizeof(ext));
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index 4f122bd3a280..ce73913c23a9 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -572,12 +572,11 @@ struct drm_xe_vm_bind_op_error_capture {
 	__u64 size;
 };
 
-/** struct drm_xe_ext_vm_set_property - VM set property extension */
-struct drm_xe_ext_vm_set_property {
+/** struct drm_xe_ext_set_property - XE set property extension */
+struct drm_xe_ext_set_property {
 	/** @base: base user extension */
 	struct xe_user_extension base;
 
-#define XE_VM_PROPERTY_BIND_OP_ERROR_CAPTURE_ADDRESS		0
 	/** @property: property to set */
 	__u32 property;
 
@@ -593,6 +592,7 @@ struct drm_xe_ext_vm_set_property {
 
 struct drm_xe_vm_create {
 #define XE_VM_EXTENSION_SET_PROPERTY	0
+#define XE_VM_PROPERTY_BIND_OP_ERROR_CAPTURE_ADDRESS		0
 	/** @extensions: Pointer to the first extension struct, if any */
 	__u64 extensions;
 
@@ -757,21 +757,6 @@ struct drm_xe_vm_bind {
 	__u64 reserved[2];
 };
 
-/** struct drm_xe_ext_exec_queue_set_property - exec queue set property extension */
-struct drm_xe_ext_exec_queue_set_property {
-	/** @base: base user extension */
-	struct xe_user_extension base;
-
-	/** @property: property to set */
-	__u32 property;
-
-	/** @pad: MBZ */
-	__u32 pad;
-
-	/** @value: property value */
-	__u64 value;
-};
-
 /**
  * struct drm_xe_exec_queue_set_property - exec queue set property
  *
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 12/30] drm/xe: Kill XE_VM_PROPERTY_BIND_OP_ERROR_CAPTURE_ADDRESS extension
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (10 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 11/30] drm/xe/uapi: Use common drm_xe_ext_set_property extension Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 13/30] drm/xe/uapi: Kill DRM_XE_UFENCE_WAIT_VM_ERROR Francois Dugast
                   ` (25 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast, Rodrigo Vivi

From: Rodrigo Vivi <rodrigo.vivi@intel.com>

This extension is currently not used and it is not aligned with
the error handling on async VM_BIND. Let's remove it and along with
that, since it was the only extension for the vm_create, remove VM
extension entirely.

v2: rebase on top of the removal of drm_xe_ext_exec_queue_set_property

Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Signed-off-by: Francois Dugast <francois.dugast@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_vm.c | 129 +------------------------------------
 include/uapi/drm/xe_drm.h  |  23 +------
 2 files changed, 4 insertions(+), 148 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index f5f457252df6..ceab489e8f3b 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -1391,37 +1391,6 @@ static void flush_async_ops(struct xe_vm *vm)
 	flush_work(&vm->async_ops.work);
 }
 
-static void vm_error_capture(struct xe_vm *vm, int err,
-			     u32 op, u64 addr, u64 size)
-{
-	struct drm_xe_vm_bind_op_error_capture capture;
-	u64 __user *address =
-		u64_to_user_ptr(vm->async_ops.error_capture.addr);
-	bool in_kthread = !current->mm;
-
-	capture.error = err;
-	capture.op = op;
-	capture.addr = addr;
-	capture.size = size;
-
-	if (in_kthread) {
-		if (!mmget_not_zero(vm->async_ops.error_capture.mm))
-			goto mm_closed;
-		kthread_use_mm(vm->async_ops.error_capture.mm);
-	}
-
-	if (copy_to_user(address, &capture, sizeof(capture)))
-		drm_warn(&vm->xe->drm, "Copy to user failed");
-
-	if (in_kthread) {
-		kthread_unuse_mm(vm->async_ops.error_capture.mm);
-		mmput(vm->async_ops.error_capture.mm);
-	}
-
-mm_closed:
-	wake_up_all(&vm->async_ops.error_capture.wq);
-}
-
 static void xe_vm_close(struct xe_vm *vm)
 {
 	down_write(&vm->lock);
@@ -1905,91 +1874,6 @@ static int xe_vm_unbind(struct xe_vm *vm, struct xe_vma *vma,
 	return 0;
 }
 
-static int vm_set_error_capture_address(struct xe_device *xe, struct xe_vm *vm,
-					u64 value)
-{
-	if (XE_IOCTL_DBG(xe, !value))
-		return -EINVAL;
-
-	if (XE_IOCTL_DBG(xe, !(vm->flags & XE_VM_FLAG_ASYNC_BIND_OPS)))
-		return -EOPNOTSUPP;
-
-	if (XE_IOCTL_DBG(xe, vm->async_ops.error_capture.addr))
-		return -EOPNOTSUPP;
-
-	vm->async_ops.error_capture.mm = current->mm;
-	vm->async_ops.error_capture.addr = value;
-	init_waitqueue_head(&vm->async_ops.error_capture.wq);
-
-	return 0;
-}
-
-typedef int (*xe_vm_set_property_fn)(struct xe_device *xe, struct xe_vm *vm,
-				     u64 value);
-
-static const xe_vm_set_property_fn vm_set_property_funcs[] = {
-	[XE_VM_PROPERTY_BIND_OP_ERROR_CAPTURE_ADDRESS] =
-		vm_set_error_capture_address,
-};
-
-static int vm_user_ext_set_property(struct xe_device *xe, struct xe_vm *vm,
-				    u64 extension)
-{
-	u64 __user *address = u64_to_user_ptr(extension);
-	struct drm_xe_ext_set_property ext;
-	int err;
-
-	err = __copy_from_user(&ext, address, sizeof(ext));
-	if (XE_IOCTL_DBG(xe, err))
-		return -EFAULT;
-
-	if (XE_IOCTL_DBG(xe, ext.property >=
-			 ARRAY_SIZE(vm_set_property_funcs)) ||
-	    XE_IOCTL_DBG(xe, ext.pad) ||
-	    XE_IOCTL_DBG(xe, ext.reserved[0] || ext.reserved[1]))
-		return -EINVAL;
-
-	return vm_set_property_funcs[ext.property](xe, vm, ext.value);
-}
-
-typedef int (*xe_vm_user_extension_fn)(struct xe_device *xe, struct xe_vm *vm,
-				       u64 extension);
-
-static const xe_vm_set_property_fn vm_user_extension_funcs[] = {
-	[XE_VM_EXTENSION_SET_PROPERTY] = vm_user_ext_set_property,
-};
-
-#define MAX_USER_EXTENSIONS	16
-static int vm_user_extensions(struct xe_device *xe, struct xe_vm *vm,
-			      u64 extensions, int ext_number)
-{
-	u64 __user *address = u64_to_user_ptr(extensions);
-	struct xe_user_extension ext;
-	int err;
-
-	if (XE_IOCTL_DBG(xe, ext_number >= MAX_USER_EXTENSIONS))
-		return -E2BIG;
-
-	err = __copy_from_user(&ext, address, sizeof(ext));
-	if (XE_IOCTL_DBG(xe, err))
-		return -EFAULT;
-
-	if (XE_IOCTL_DBG(xe, ext.pad) ||
-	    XE_IOCTL_DBG(xe, ext.name >=
-			 ARRAY_SIZE(vm_user_extension_funcs)))
-		return -EINVAL;
-
-	err = vm_user_extension_funcs[ext.name](xe, vm, extensions);
-	if (XE_IOCTL_DBG(xe, err))
-		return err;
-
-	if (ext.next_extension)
-		return vm_user_extensions(xe, vm, ext.next_extension,
-					  ++ext_number);
-
-	return 0;
-}
-
 #define ALL_DRM_XE_VM_CREATE_FLAGS (DRM_XE_VM_CREATE_SCRATCH_PAGE | \
 				    DRM_XE_VM_CREATE_COMPUTE_MODE | \
 				    DRM_XE_VM_CREATE_ASYNC_BIND_OPS | \
@@ -2007,6 +1891,9 @@ int xe_vm_create_ioctl(struct drm_device *dev, void *data,
 	int err;
 	u32 flags = 0;
 
+	if (XE_IOCTL_DBG(xe, args->extensions))
+		return -EINVAL;
+
 	if (XE_WA(xe_root_mmio_gt(xe), 14016763929))
 		args->flags |= DRM_XE_VM_CREATE_SCRATCH_PAGE;
 
@@ -2049,14 +1936,6 @@ int xe_vm_create_ioctl(struct drm_device *dev, void *data,
 	if (IS_ERR(vm))
 		return PTR_ERR(vm);
 
-	if (args->extensions) {
-		err = vm_user_extensions(xe, vm, args->extensions, 0);
-		if (XE_IOCTL_DBG(xe, err)) {
-			xe_vm_close_and_put(vm);
-			return err;
-		}
-	}
-
 	mutex_lock(&xef->vm.lock);
 	err = xa_alloc(&xef->vm.xa, &id, vm, xa_limit_32b, GFP_KERNEL);
 	mutex_unlock(&xef->vm.lock);
@@ -2958,8 +2837,6 @@ static void xe_vma_op_work_func(struct work_struct *w)
 				vm_set_async_error(vm, err);
 				up_write(&vm->lock);
 
-				if (vm->async_ops.error_capture.addr)
-					vm_error_capture(vm, err, 0, 0, 0);
 				break;
 			}
 			up_write(&vm->lock);
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index ce73913c23a9..1151afaf6df0 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -555,23 +555,6 @@ struct drm_xe_gem_mmap_offset {
 	__u64 reserved[2];
 };
 
-/**
- * struct drm_xe_vm_bind_op_error_capture - format of VM bind op error capture
- */
-struct drm_xe_vm_bind_op_error_capture {
-	/** @error: errno that occurred */
-	__s32 error;
-
-	/** @op: operation that encounter an error */
-	__u32 op;
-
-	/** @addr: address of bind op */
-	__u64 addr;
-
-	/** @size: size of bind */
-	__u64 size;
-};
-
 /** struct drm_xe_ext_set_property - XE set property extension */
 struct drm_xe_ext_set_property {
 	/** @base: base user extension */
@@ -592,7 +575,6 @@ struct drm_xe_ext_set_property {
 
 struct drm_xe_vm_create {
 #define XE_VM_EXTENSION_SET_PROPERTY	0
-#define XE_VM_PROPERTY_BIND_OP_ERROR_CAPTURE_ADDRESS		0
 	/** @extensions: Pointer to the first extension struct, if any */
 	__u64 extensions;
 
@@ -677,10 +659,7 @@ struct drm_xe_vm_bind_op {
 	 * practice the bind op is good and will complete.
 	 *
 	 * If this flag is set and doesn't return an error, the bind op can
-	 * still fail and recovery is needed. If configured, the bind op that
-	 * caused the error will be captured in drm_xe_vm_bind_op_error_capture.
-	 * Once the user sees the error (via a ufence +
-	 * XE_VM_PROPERTY_BIND_OP_ERROR_CAPTURE_ADDRESS), it should free memory
+	 * still fail and recovery is needed. It should free memory
 	 * via non-async unbinds, and then restart all queued async binds op via
 	 * XE_VM_BIND_OP_RESTART. Or alternatively the user should destroy the
 	 * VM.
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 13/30] drm/xe/uapi: Kill DRM_XE_UFENCE_WAIT_VM_ERROR
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (11 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 12/30] drm/xe: Kill XE_VM_PROPERTY_BIND_OP_ERROR_CAPTURE_ADDRESS extension Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 14/30] drm/xe: Remove async worker and rework sync binds Francois Dugast
                   ` (24 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe

From: Matthew Brost <matthew.brost@intel.com>

This is not used nor does it align VM async document, kill this.

Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
---
 drivers/gpu/drm/xe/xe_vm.c              |  3 --
 drivers/gpu/drm/xe/xe_vm_types.h        | 11 -------
 drivers/gpu/drm/xe/xe_wait_user_fence.c | 43 +++----------------------
 include/uapi/drm/xe_drm.h               | 17 +++-------
 4 files changed, 9 insertions(+), 65 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index ceab489e8f3b..99b3746cd2af 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -1477,9 +1477,6 @@ void xe_vm_close_and_put(struct xe_vm *vm)
 		xe_vma_destroy_unlocked(vma);
 	}
 
-	if (vm->async_ops.error_capture.addr)
-		wake_up_all(&vm->async_ops.error_capture.wq);
-
 	xe_assert(xe, list_empty(&vm->extobj.list));
 	up_write(&vm->lock);
 
diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
index af2ba4acf1f9..c45f66db835c 100644
--- a/drivers/gpu/drm/xe/xe_vm_types.h
+++ b/drivers/gpu/drm/xe/xe_vm_types.h
@@ -222,17 +222,6 @@ struct xe_vm {
 		struct work_struct work;
 		/** @lock: protects list of pending async VM ops and fences */
 		spinlock_t lock;
-		/** @error_capture: error capture state */
-		struct {
-			/** @mm: user MM */
-			struct mm_struct *mm;
-			/**
-			 * @addr: user pointer to copy error capture state too
-			 */
-			u64 addr;
-			/** @wq: user fence wait queue for VM errors */
-			wait_queue_head_t wq;
-		} error_capture;
 		/** @fence: fence state */
 		struct {
 			/** @context: context of async fence */
diff --git a/drivers/gpu/drm/xe/xe_wait_user_fence.c b/drivers/gpu/drm/xe/xe_wait_user_fence.c
index 761eed3a022f..b47e9464c115 100644
--- a/drivers/gpu/drm/xe/xe_wait_user_fence.c
+++ b/drivers/gpu/drm/xe/xe_wait_user_fence.c
@@ -13,7 +13,6 @@
 #include "xe_device.h"
 #include "xe_gt.h"
 #include "xe_macros.h"
-#include "xe_vm.h"
 
 static int do_compare(u64 addr, u64 value, u64 mask, u16 op)
 {
@@ -81,8 +80,7 @@ static int check_hw_engines(struct xe_device *xe,
 }
 
 #define VALID_FLAGS	(DRM_XE_UFENCE_WAIT_SOFT_OP | \
-			 DRM_XE_UFENCE_WAIT_ABSTIME | \
-			 DRM_XE_UFENCE_WAIT_VM_ERROR)
+			 DRM_XE_UFENCE_WAIT_ABSTIME)
 #define MAX_OP		DRM_XE_UFENCE_WAIT_LTE
 
 static unsigned long to_jiffies_timeout(struct drm_xe_wait_user_fence *args)
@@ -109,11 +107,9 @@ int xe_wait_user_fence_ioctl(struct drm_device *dev, void *data,
 	struct drm_xe_engine_class_instance eci[XE_HW_ENGINE_MAX_INSTANCE];
 	struct drm_xe_engine_class_instance __user *user_eci =
 		u64_to_user_ptr(args->instances);
-	struct xe_vm *vm = NULL;
 	u64 addr = args->addr;
 	int err;
-	bool no_engines = args->flags & DRM_XE_UFENCE_WAIT_SOFT_OP ||
-		args->flags & DRM_XE_UFENCE_WAIT_VM_ERROR;
+	bool no_engines = args->flags & DRM_XE_UFENCE_WAIT_SOFT_OP;
 	unsigned long timeout;
 	ktime_t start;
 
@@ -134,8 +130,7 @@ int xe_wait_user_fence_ioctl(struct drm_device *dev, void *data,
 	if (XE_IOCTL_DBG(xe, !no_engines && !args->num_engines))
 		return -EINVAL;
 
-	if (XE_IOCTL_DBG(xe, !(args->flags & DRM_XE_UFENCE_WAIT_VM_ERROR) &&
-			 addr & 0x7))
+	if (XE_IOCTL_DBG(xe, addr & 0x7))
 		return -EINVAL;
 
 	if (XE_IOCTL_DBG(xe, args->num_engines > XE_HW_ENGINE_MAX_INSTANCE))
@@ -153,22 +148,6 @@ int xe_wait_user_fence_ioctl(struct drm_device *dev, void *data,
 			return -EINVAL;
 	}
 
-	if (args->flags & DRM_XE_UFENCE_WAIT_VM_ERROR) {
-		if (XE_IOCTL_DBG(xe, args->vm_id >> 32))
-			return -EINVAL;
-
-		vm = xe_vm_lookup(to_xe_file(file), args->vm_id);
-		if (XE_IOCTL_DBG(xe, !vm))
-			return -ENOENT;
-
-		if (XE_IOCTL_DBG(xe, !vm->async_ops.error_capture.addr)) {
-			xe_vm_put(vm);
-			return -EOPNOTSUPP;
-		}
-
-		addr = vm->async_ops.error_capture.addr;
-	}
-
 	/*
 	 * For negative timeout we want to wait "forever" by setting
 	 * MAX_SCHEDULE_TIMEOUT. But we have to assign this value also
@@ -188,15 +167,8 @@ int xe_wait_user_fence_ioctl(struct drm_device *dev, void *data,
 	 * hardware engine. Open coding as 'do_compare' can sleep which doesn't
 	 * work with the wait_event_* macros.
 	 */
-	if (vm)
-		add_wait_queue(&vm->async_ops.error_capture.wq, &w_wait);
-	else
-		add_wait_queue(&xe->ufence_wq, &w_wait);
+	add_wait_queue(&xe->ufence_wq, &w_wait);
 	for (;;) {
-		if (vm && xe_vm_is_closed(vm)) {
-			err = -ENODEV;
-			break;
-		}
 		err = do_compare(addr, args->value, args->mask, args->op);
 		if (err <= 0)
 			break;
@@ -213,12 +185,7 @@ int xe_wait_user_fence_ioctl(struct drm_device *dev, void *data,
 
 		timeout = wait_woken(&w_wait, TASK_INTERRUPTIBLE, timeout);
 	}
-	if (vm) {
-		remove_wait_queue(&vm->async_ops.error_capture.wq, &w_wait);
-		xe_vm_put(vm);
-	} else {
-		remove_wait_queue(&xe->ufence_wq, &w_wait);
-	}
+	remove_wait_queue(&xe->ufence_wq, &w_wait);
 
 	if (!(args->flags & DRM_XE_UFENCE_WAIT_ABSTIME)) {
 		args->timeout -= ktime_to_ns(ktime_sub(ktime_get(), start));
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index 1151afaf6df0..f7529d690d2f 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -908,18 +908,10 @@ struct drm_xe_wait_user_fence {
 	/** @extensions: Pointer to the first extension struct, if any */
 	__u64 extensions;
 
-	union {
-		/**
-		 * @addr: user pointer address to wait on, must qword aligned
-		 */
-		__u64 addr;
-
-		/**
-		 * @vm_id: The ID of the VM which encounter an error used with
-		 * DRM_XE_UFENCE_WAIT_VM_ERROR. Upper 32 bits must be clear.
-		 */
-		__u64 vm_id;
-	};
+	/**
+	 * @addr: user pointer address to wait on, must qword aligned
+	 */
+	__u64 addr;
 
 #define DRM_XE_UFENCE_WAIT_EQ	0
 #define DRM_XE_UFENCE_WAIT_NEQ	1
@@ -932,7 +924,6 @@ struct drm_xe_wait_user_fence {
 
 #define DRM_XE_UFENCE_WAIT_SOFT_OP	(1 << 0)	/* e.g. Wait on VM bind */
 #define DRM_XE_UFENCE_WAIT_ABSTIME	(1 << 1)
-#define DRM_XE_UFENCE_WAIT_VM_ERROR	(1 << 2)
 	/** @flags: wait flags */
 	__u16 flags;
 
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 14/30] drm/xe: Remove async worker and rework sync binds
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (12 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 13/30] drm/xe/uapi: Kill DRM_XE_UFENCE_WAIT_VM_ERROR Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 15/30] drm/xe: Fix VM bind out-sync signaling ordering Francois Dugast
                   ` (23 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe

From: Matthew Brost <matthew.brost@intel.com>

Async worker is gone. All jobs and memory allocations done in IOCTL to
align with dma fencing rules.

Async vs. sync now means when do bind operations complete relative to
the IOCTL. Async completes when out-syncs signal while sync completes
when the IOCTL returns. In-syncs and out-syncs are only allowed in async
mode.

If memory allocations fail in the job creation step the VM is killed.
This is temporary, eventually a proper unwind will be done and VM will
be usable.

Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
---
 drivers/gpu/drm/xe/xe_exec.c             |  43 --
 drivers/gpu/drm/xe/xe_exec_queue.c       |   7 +-
 drivers/gpu/drm/xe/xe_exec_queue_types.h |   2 +
 drivers/gpu/drm/xe/xe_sync.c             |  14 +-
 drivers/gpu/drm/xe/xe_sync.h             |   2 +-
 drivers/gpu/drm/xe/xe_vm.c               | 536 +++++------------------
 drivers/gpu/drm/xe/xe_vm.h               |   2 -
 drivers/gpu/drm/xe/xe_vm_types.h         |  31 +-
 include/uapi/drm/xe_drm.h                |  33 +-
 9 files changed, 127 insertions(+), 543 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_exec.c b/drivers/gpu/drm/xe/xe_exec.c
index 7d0381d41b32..28e84a0bbeb0 100644
--- a/drivers/gpu/drm/xe/xe_exec.c
+++ b/drivers/gpu/drm/xe/xe_exec.c
@@ -196,27 +196,6 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
 		}
 	}
 
-	/*
-	 * We can't install a job into the VM dma-resv shared slot before an
-	 * async VM bind passed in as a fence without the risk of deadlocking as
-	 * the bind can trigger an eviction which in turn depends on anything in
-	 * the VM dma-resv shared slots. Not an ideal solution, but we wait for
-	 * all dependent async VM binds to start (install correct fences into
-	 * dma-resv slots) before moving forward.
-	 */
-	if (!xe_vm_no_dma_fences(vm) &&
-	    vm->flags & XE_VM_FLAG_ASYNC_BIND_OPS) {
-		for (i = 0; i < args->num_syncs; i++) {
-			struct dma_fence *fence = syncs[i].fence;
-
-			if (fence) {
-				err = xe_vm_async_fence_wait_start(fence);
-				if (err)
-					goto err_syncs;
-			}
-		}
-	}
-
 retry:
 	if (!xe_vm_no_dma_fences(vm) && xe_vm_userptr_check_repin(vm)) {
 		err = down_write_killable(&vm->lock);
@@ -229,28 +208,6 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
 	if (err)
 		goto err_syncs;
 
-	/* We don't allow execs while the VM is in error state */
-	if (vm->async_ops.error) {
-		err = vm->async_ops.error;
-		goto err_unlock_list;
-	}
-
-	/*
-	 * Extreme corner where we exit a VM error state with a munmap style VM
-	 * unbind inflight which requires a rebind. In this case the rebind
-	 * needs to install some fences into the dma-resv slots. The worker to
-	 * do this queued, let that worker make progress by dropping vm->lock,
-	 * flushing the worker and retrying the exec.
-	 */
-	if (vm->async_ops.munmap_rebind_inflight) {
-		if (write_locked)
-			up_write(&vm->lock);
-		else
-			up_read(&vm->lock);
-		flush_work(&vm->async_ops.work);
-		goto retry;
-	}
-
 	if (write_locked) {
 		err = xe_vm_userptr_pin(vm);
 		downgrade_write(&vm->lock);
diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c
index 411ba38cb2b8..be3c8e6db088 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue.c
+++ b/drivers/gpu/drm/xe/xe_exec_queue.c
@@ -621,7 +621,10 @@ int xe_exec_queue_create_ioctl(struct drm_device *dev, void *data,
 	if (XE_IOCTL_DBG(xe, eci[0].gt_id >= xe->info.gt_count))
 		return -EINVAL;
 
-	if (eci[0].engine_class == DRM_XE_ENGINE_CLASS_VM_BIND) {
+	if (eci[0].engine_class >= DRM_XE_ENGINE_CLASS_VM_BIND_ASYNC) {
+		bool sync = eci[0].engine_class ==
+			DRM_XE_ENGINE_CLASS_VM_BIND_SYNC;
+
 		for_each_gt(gt, xe, id) {
 			struct xe_exec_queue *new;
 
@@ -647,6 +650,8 @@ int xe_exec_queue_create_ioctl(struct drm_device *dev, void *data,
 						   args->width, hwe,
 						   EXEC_QUEUE_FLAG_PERSISTENT |
 						   EXEC_QUEUE_FLAG_VM |
+						   (sync ? 0 :
+						    EXEC_QUEUE_FLAG_VM_ASYNC) |
 						   (id ?
 						    EXEC_QUEUE_FLAG_BIND_ENGINE_CHILD :
 						    0));
diff --git a/drivers/gpu/drm/xe/xe_exec_queue_types.h b/drivers/gpu/drm/xe/xe_exec_queue_types.h
index f73b9e80b25a..d0ab51acc651 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue_types.h
+++ b/drivers/gpu/drm/xe/xe_exec_queue_types.h
@@ -64,6 +64,8 @@ struct xe_exec_queue {
 #define EXEC_QUEUE_FLAG_VM			BIT(4)
 /* child of VM queue for multi-tile VM jobs */
 #define EXEC_QUEUE_FLAG_BIND_ENGINE_CHILD	BIT(5)
+/* VM jobs for this queue are asynchronous */
+#define EXEC_QUEUE_FLAG_VM_ASYNC		BIT(6)
 
 	/**
 	 * @flags: flags for this exec queue, should statically setup aside from ban
diff --git a/drivers/gpu/drm/xe/xe_sync.c b/drivers/gpu/drm/xe/xe_sync.c
index 9fcd7802ba30..73ef259aa387 100644
--- a/drivers/gpu/drm/xe/xe_sync.c
+++ b/drivers/gpu/drm/xe/xe_sync.c
@@ -18,7 +18,6 @@
 #include "xe_sched_job_types.h"
 
 #define SYNC_FLAGS_TYPE_MASK 0x3
-#define SYNC_FLAGS_FENCE_INSTALLED	0x10000
 
 struct user_fence {
 	struct xe_device *xe;
@@ -223,12 +222,11 @@ int xe_sync_entry_add_deps(struct xe_sync_entry *sync, struct xe_sched_job *job)
 	return 0;
 }
 
-bool xe_sync_entry_signal(struct xe_sync_entry *sync, struct xe_sched_job *job,
+void xe_sync_entry_signal(struct xe_sync_entry *sync, struct xe_sched_job *job,
 			  struct dma_fence *fence)
 {
-	if (!(sync->flags & DRM_XE_SYNC_SIGNAL) ||
-	    sync->flags & SYNC_FLAGS_FENCE_INSTALLED)
-		return false;
+	if (!(sync->flags & DRM_XE_SYNC_SIGNAL))
+		return;
 
 	if (sync->chain_fence) {
 		drm_syncobj_add_point(sync->syncobj, sync->chain_fence,
@@ -260,12 +258,6 @@ bool xe_sync_entry_signal(struct xe_sync_entry *sync, struct xe_sched_job *job,
 		job->user_fence.addr = sync->addr;
 		job->user_fence.value = sync->timeline_value;
 	}
-
-	/* TODO: external BO? */
-
-	sync->flags |= SYNC_FLAGS_FENCE_INSTALLED;
-
-	return true;
 }
 
 void xe_sync_entry_cleanup(struct xe_sync_entry *sync)
diff --git a/drivers/gpu/drm/xe/xe_sync.h b/drivers/gpu/drm/xe/xe_sync.h
index 4cbcf7a19911..30958ddc4cdc 100644
--- a/drivers/gpu/drm/xe/xe_sync.h
+++ b/drivers/gpu/drm/xe/xe_sync.h
@@ -19,7 +19,7 @@ int xe_sync_entry_parse(struct xe_device *xe, struct xe_file *xef,
 int xe_sync_entry_wait(struct xe_sync_entry *sync);
 int xe_sync_entry_add_deps(struct xe_sync_entry *sync,
 			   struct xe_sched_job *job);
-bool xe_sync_entry_signal(struct xe_sync_entry *sync,
+void xe_sync_entry_signal(struct xe_sync_entry *sync,
 			  struct xe_sched_job *job,
 			  struct dma_fence *fence);
 void xe_sync_entry_cleanup(struct xe_sync_entry *sync);
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index 99b3746cd2af..be716b5622b9 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -587,7 +587,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
 	unsigned int fence_count = 0;
 	LIST_HEAD(preempt_fences);
 	ktime_t end = 0;
-	int err;
+	int err = 0;
 	long wait;
 	int __maybe_unused tries = 0;
 
@@ -603,22 +603,6 @@ static void preempt_rebind_work_func(struct work_struct *w)
 	}
 
 retry:
-	if (vm->async_ops.error)
-		goto out_unlock_outer;
-
-	/*
-	 * Extreme corner where we exit a VM error state with a munmap style VM
-	 * unbind inflight which requires a rebind. In this case the rebind
-	 * needs to install some fences into the dma-resv slots. The worker to
-	 * do this queued, let that worker make progress by dropping vm->lock
-	 * and trying this again.
-	 */
-	if (vm->async_ops.munmap_rebind_inflight) {
-		up_write(&vm->lock);
-		flush_work(&vm->async_ops.work);
-		goto retry;
-	}
-
 	if (xe_vm_userptr_check_repin(vm)) {
 		err = xe_vm_userptr_pin(vm);
 		if (err)
@@ -1212,7 +1196,6 @@ static struct drm_gpuva_fn_ops gpuva_ops = {
 	.op_alloc = xe_vm_op_alloc,
 };
 
-static void xe_vma_op_work_func(struct work_struct *w);
 static void vm_destroy_work_func(struct work_struct *w);
 
 struct xe_vm *xe_vm_create(struct xe_device *xe, u32 flags)
@@ -1246,10 +1229,6 @@ struct xe_vm *xe_vm_create(struct xe_device *xe, u32 flags)
 	INIT_LIST_HEAD(&vm->notifier.rebind_list);
 	spin_lock_init(&vm->notifier.list_lock);
 
-	INIT_LIST_HEAD(&vm->async_ops.pending);
-	INIT_WORK(&vm->async_ops.work, xe_vma_op_work_func);
-	spin_lock_init(&vm->async_ops.lock);
-
 	INIT_WORK(&vm->destroy_work, vm_destroy_work_func);
 
 	INIT_LIST_HEAD(&vm->preempt.exec_queues);
@@ -1303,11 +1282,6 @@ struct xe_vm *xe_vm_create(struct xe_device *xe, u32 flags)
 		vm->batch_invalidate_tlb = false;
 	}
 
-	if (flags & XE_VM_FLAG_ASYNC_BIND_OPS) {
-		vm->async_ops.fence.context = dma_fence_context_alloc(1);
-		vm->flags |= XE_VM_FLAG_ASYNC_BIND_OPS;
-	}
-
 	/* Fill pt_root after allocating scratch tables */
 	for_each_tile(tile, xe, id) {
 		if (!vm->pt_root[id])
@@ -1323,6 +1297,9 @@ struct xe_vm *xe_vm_create(struct xe_device *xe, u32 flags)
 			struct xe_gt *gt = tile->primary_gt;
 			struct xe_vm *migrate_vm;
 			struct xe_exec_queue *q;
+			u32 create_flags = EXEC_QUEUE_FLAG_VM |
+				((flags & XE_VM_FLAG_ASYNC_DEFAULT) ?
+				EXEC_QUEUE_FLAG_VM_ASYNC : 0);
 
 			if (!vm->pt_root[id])
 				continue;
@@ -1330,7 +1307,7 @@ struct xe_vm *xe_vm_create(struct xe_device *xe, u32 flags)
 			migrate_vm = xe_migrate_get_vm(tile->migrate);
 			q = xe_exec_queue_create_class(xe, gt, migrate_vm,
 						       XE_ENGINE_CLASS_COPY,
-						       EXEC_QUEUE_FLAG_VM);
+						       create_flags);
 			xe_vm_put(migrate_vm);
 			if (IS_ERR(q)) {
 				xe_vm_close_and_put(vm);
@@ -1385,12 +1362,6 @@ struct xe_vm *xe_vm_create(struct xe_device *xe, u32 flags)
 	return ERR_PTR(err);
 }
 
-static void flush_async_ops(struct xe_vm *vm)
-{
-	queue_work(system_unbound_wq, &vm->async_ops.work);
-	flush_work(&vm->async_ops.work);
-}
-
 static void xe_vm_close(struct xe_vm *vm)
 {
 	down_write(&vm->lock);
@@ -1410,7 +1381,6 @@ void xe_vm_close_and_put(struct xe_vm *vm)
 	xe_assert(xe, !vm->preempt.num_exec_queues);
 
 	xe_vm_close(vm);
-	flush_async_ops(vm);
 	if (xe_vm_in_compute_mode(vm))
 		flush_work(&vm->preempt.rebind_work);
 
@@ -1630,10 +1600,8 @@ xe_vm_unbind_vma(struct xe_vma *vma, struct xe_exec_queue *q,
 
 err_fences:
 	if (fences) {
-		while (cur_fence) {
-			/* FIXME: Rewind the previous binds? */
+		while (cur_fence)
 			dma_fence_put(fences[--cur_fence]);
-		}
 		kfree(fences);
 	}
 
@@ -1707,100 +1675,24 @@ xe_vm_bind_vma(struct xe_vma *vma, struct xe_exec_queue *q,
 
 err_fences:
 	if (fences) {
-		while (cur_fence) {
-			/* FIXME: Rewind the previous binds? */
+		while (cur_fence)
 			dma_fence_put(fences[--cur_fence]);
-		}
 		kfree(fences);
 	}
 
 	return ERR_PTR(err);
 }
 
-struct async_op_fence {
-	struct dma_fence fence;
-	struct dma_fence *wait_fence;
-	struct dma_fence_cb cb;
-	struct xe_vm *vm;
-	wait_queue_head_t wq;
-	bool started;
-};
-
-static const char *async_op_fence_get_driver_name(struct dma_fence *dma_fence)
-{
-	return "xe";
-}
-
-static const char *
-async_op_fence_get_timeline_name(struct dma_fence *dma_fence)
+static bool xe_vm_sync_mode(struct xe_vm *vm, struct xe_exec_queue *q)
 {
-	return "async_op_fence";
-}
-
-static const struct dma_fence_ops async_op_fence_ops = {
-	.get_driver_name = async_op_fence_get_driver_name,
-	.get_timeline_name = async_op_fence_get_timeline_name,
-};
-
-static void async_op_fence_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
-{
-	struct async_op_fence *afence =
-		container_of(cb, struct async_op_fence, cb);
-
-	afence->fence.error = afence->wait_fence->error;
-	dma_fence_signal(&afence->fence);
-	xe_vm_put(afence->vm);
-	dma_fence_put(afence->wait_fence);
-	dma_fence_put(&afence->fence);
-}
-
-static void add_async_op_fence_cb(struct xe_vm *vm,
-				  struct dma_fence *fence,
-				  struct async_op_fence *afence)
-{
-	int ret;
-
-	if (!xe_vm_no_dma_fences(vm)) {
-		afence->started = true;
-		smp_wmb();
-		wake_up_all(&afence->wq);
-	}
-
-	afence->wait_fence = dma_fence_get(fence);
-	afence->vm = xe_vm_get(vm);
-	dma_fence_get(&afence->fence);
-	ret = dma_fence_add_callback(fence, &afence->cb, async_op_fence_cb);
-	if (ret == -ENOENT) {
-		afence->fence.error = afence->wait_fence->error;
-		dma_fence_signal(&afence->fence);
-	}
-	if (ret) {
-		xe_vm_put(vm);
-		dma_fence_put(afence->wait_fence);
-		dma_fence_put(&afence->fence);
-	}
-	XE_WARN_ON(ret && ret != -ENOENT);
-}
-
-int xe_vm_async_fence_wait_start(struct dma_fence *fence)
-{
-	if (fence->ops == &async_op_fence_ops) {
-		struct async_op_fence *afence =
-			container_of(fence, struct async_op_fence, fence);
-
-		xe_assert(afence->vm->xe, !xe_vm_no_dma_fences(afence->vm));
-
-		smp_rmb();
-		return wait_event_interruptible(afence->wq, afence->started);
-	}
-
-	return 0;
+	return q ? !(q->flags & EXEC_QUEUE_FLAG_VM_ASYNC) :
+		!(vm->flags & XE_VM_FLAG_ASYNC_DEFAULT);
 }
 
 static int __xe_vm_bind(struct xe_vm *vm, struct xe_vma *vma,
 			struct xe_exec_queue *q, struct xe_sync_entry *syncs,
-			u32 num_syncs, struct async_op_fence *afence,
-			bool immediate, bool first_op, bool last_op)
+			u32 num_syncs, bool immediate, bool first_op,
+			bool last_op)
 {
 	struct dma_fence *fence;
 
@@ -1822,17 +1714,18 @@ static int __xe_vm_bind(struct xe_vm *vm, struct xe_vma *vma,
 				xe_sync_entry_signal(&syncs[i], NULL, fence);
 		}
 	}
-	if (afence)
-		add_async_op_fence_cb(vm, fence, afence);
 
+	if (last_op && xe_vm_sync_mode(vm, q))
+		dma_fence_wait(fence, true);
 	dma_fence_put(fence);
+
 	return 0;
 }
 
 static int xe_vm_bind(struct xe_vm *vm, struct xe_vma *vma, struct xe_exec_queue *q,
 		      struct xe_bo *bo, struct xe_sync_entry *syncs,
-		      u32 num_syncs, struct async_op_fence *afence,
-		      bool immediate, bool first_op, bool last_op)
+		      u32 num_syncs, bool immediate, bool first_op,
+		      bool last_op)
 {
 	int err;
 
@@ -1845,14 +1738,13 @@ static int xe_vm_bind(struct xe_vm *vm, struct xe_vma *vma, struct xe_exec_queue
 			return err;
 	}
 
-	return __xe_vm_bind(vm, vma, q, syncs, num_syncs, afence, immediate,
-			    first_op, last_op);
+	return __xe_vm_bind(vm, vma, q, syncs, num_syncs, immediate, first_op,
+			    last_op);
 }
 
 static int xe_vm_unbind(struct xe_vm *vm, struct xe_vma *vma,
 			struct xe_exec_queue *q, struct xe_sync_entry *syncs,
-			u32 num_syncs, struct async_op_fence *afence,
-			bool first_op, bool last_op)
+			u32 num_syncs, bool first_op, bool last_op)
 {
 	struct dma_fence *fence;
 
@@ -1862,10 +1754,10 @@ static int xe_vm_unbind(struct xe_vm *vm, struct xe_vma *vma,
 	fence = xe_vm_unbind_vma(vma, q, syncs, num_syncs, first_op, last_op);
 	if (IS_ERR(fence))
 		return PTR_ERR(fence);
-	if (afence)
-		add_async_op_fence_cb(vm, fence, afence);
 
 	xe_vma_destroy(vma, fence);
+	if (last_op && xe_vm_sync_mode(vm, q))
+		dma_fence_wait(fence, true);
 	dma_fence_put(fence);
 
 	return 0;
@@ -1873,7 +1765,7 @@ static int xe_vm_unbind(struct xe_vm *vm, struct xe_vma *vma,
 
 #define ALL_DRM_XE_VM_CREATE_FLAGS (DRM_XE_VM_CREATE_SCRATCH_PAGE | \
 				    DRM_XE_VM_CREATE_COMPUTE_MODE | \
-				    DRM_XE_VM_CREATE_ASYNC_BIND_OPS | \
+				    DRM_XE_VM_CREATE_ASYNC_DEFAULT | \
 				    DRM_XE_VM_CREATE_FAULT_MODE)
 
 int xe_vm_create_ioctl(struct drm_device *dev, void *data,
@@ -1920,12 +1812,15 @@ int xe_vm_create_ioctl(struct drm_device *dev, void *data,
 			 xe_device_in_fault_mode(xe)))
 		return -EINVAL;
 
+	if (XE_IOCTL_DBG(xe, args->extensions))
+		return -EINVAL;
+
 	if (args->flags & DRM_XE_VM_CREATE_SCRATCH_PAGE)
 		flags |= XE_VM_FLAG_SCRATCH_PAGE;
 	if (args->flags & DRM_XE_VM_CREATE_COMPUTE_MODE)
 		flags |= XE_VM_FLAG_COMPUTE_MODE;
-	if (args->flags & DRM_XE_VM_CREATE_ASYNC_BIND_OPS)
-		flags |= XE_VM_FLAG_ASYNC_BIND_OPS;
+	if (args->flags & DRM_XE_VM_CREATE_ASYNC_DEFAULT)
+		flags |= XE_VM_FLAG_ASYNC_DEFAULT;
 	if (args->flags & DRM_XE_VM_CREATE_FAULT_MODE)
 		flags |= XE_VM_FLAG_FAULT_MODE;
 
@@ -2008,8 +1903,7 @@ static const u32 region_to_mem_type[] = {
 static int xe_vm_prefetch(struct xe_vm *vm, struct xe_vma *vma,
 			  struct xe_exec_queue *q, u32 region,
 			  struct xe_sync_entry *syncs, u32 num_syncs,
-			  struct async_op_fence *afence, bool first_op,
-			  bool last_op)
+			  bool first_op, bool last_op)
 {
 	int err;
 
@@ -2023,7 +1917,7 @@ static int xe_vm_prefetch(struct xe_vm *vm, struct xe_vma *vma,
 
 	if (vma->tile_mask != (vma->tile_present & ~vma->usm.tile_invalidated)) {
 		return xe_vm_bind(vm, vma, q, xe_vma_bo(vma), syncs, num_syncs,
-				  afence, true, first_op, last_op);
+				  true, first_op, last_op);
 	} else {
 		int i;
 
@@ -2033,8 +1927,7 @@ static int xe_vm_prefetch(struct xe_vm *vm, struct xe_vma *vma,
 				xe_sync_entry_signal(&syncs[i], NULL,
 						     dma_fence_get_stub());
 		}
-		if (afence)
-			dma_fence_signal(&afence->fence);
+
 		return 0;
 	}
 }
@@ -2048,51 +1941,6 @@ struct ttm_buffer_object *xe_vm_ttm_bo(struct xe_vm *vm)
 	return &vm->pt_root[idx]->bo->ttm;
 }
 
-static void vm_set_async_error(struct xe_vm *vm, int err)
-{
-	lockdep_assert_held(&vm->lock);
-	vm->async_ops.error = err;
-}
-
-static int vm_bind_ioctl_lookup_vma(struct xe_vm *vm, struct xe_bo *bo,
-				    u64 addr, u64 range, u32 op, u32 flags)
-{
-	struct xe_device *xe = vm->xe;
-	struct xe_vma *vma;
-	bool async = !!(flags & XE_VM_BIND_FLAG_ASYNC);
-
-	lockdep_assert_held(&vm->lock);
-
-	switch (op) {
-	case XE_VM_BIND_OP_MAP:
-	case XE_VM_BIND_OP_MAP_USERPTR:
-		vma = xe_vm_find_overlapping_vma(vm, addr, range);
-		if (XE_IOCTL_DBG(xe, vma && !async))
-			return -EBUSY;
-		break;
-	case XE_VM_BIND_OP_UNMAP:
-	case XE_VM_BIND_OP_PREFETCH:
-		vma = xe_vm_find_overlapping_vma(vm, addr, range);
-		if (XE_IOCTL_DBG(xe, !vma))
-			/* Not an actual error, IOCTL cleans up returns and 0 */
-			return -ENODATA;
-		if (XE_IOCTL_DBG(xe, (xe_vma_start(vma) != addr ||
-				      xe_vma_end(vma) != addr + range) && !async))
-			return -EINVAL;
-		break;
-	case XE_VM_BIND_OP_UNMAP_ALL:
-		if (XE_IOCTL_DBG(xe, list_empty(&bo->ttm.base.gpuva.list)))
-			/* Not an actual error, IOCTL cleans up returns and 0 */
-			return -ENODATA;
-		break;
-	default:
-		drm_warn(&xe->drm, "NOT POSSIBLE");
-		return -EINVAL;
-	}
-
-	return 0;
-}
-
 static void prep_vma_destroy(struct xe_vm *vm, struct xe_vma *vma,
 			     bool post_commit)
 {
@@ -2380,37 +2228,15 @@ static int vm_bind_ioctl_ops_parse(struct xe_vm *vm, struct xe_exec_queue *q,
 				   bool async)
 {
 	struct xe_vma_op *last_op = NULL;
-	struct async_op_fence *fence = NULL;
 	struct drm_gpuva_op *__op;
 	int err = 0;
 
 	lockdep_assert_held_write(&vm->lock);
 
-	if (last && num_syncs && async) {
-		u64 seqno;
-
-		fence = kmalloc(sizeof(*fence), GFP_KERNEL);
-		if (!fence)
-			return -ENOMEM;
-
-		seqno = q ? ++q->bind.fence_seqno : ++vm->async_ops.fence.seqno;
-		dma_fence_init(&fence->fence, &async_op_fence_ops,
-			       &vm->async_ops.lock, q ? q->bind.fence_ctx :
-			       vm->async_ops.fence.context, seqno);
-
-		if (!xe_vm_no_dma_fences(vm)) {
-			fence->vm = vm;
-			fence->started = false;
-			init_waitqueue_head(&fence->wq);
-		}
-	}
-
 	drm_gpuva_for_each_op(__op, ops) {
 		struct xe_vma_op *op = gpuva_op_to_vma_op(__op);
 		bool first = list_empty(ops_list);
 
-		xe_assert(vm->xe, first || async);
-
 		INIT_LIST_HEAD(&op->link);
 		list_add_tail(&op->link, ops_list);
 
@@ -2430,10 +2256,8 @@ static int vm_bind_ioctl_ops_parse(struct xe_vm *vm, struct xe_exec_queue *q,
 			vma = new_vma(vm, &op->base.map,
 				      op->tile_mask, op->map.read_only,
 				      op->map.is_null);
-			if (IS_ERR(vma)) {
-				err = PTR_ERR(vma);
-				goto free_fence;
-			}
+			if (IS_ERR(vma))
+				return PTR_ERR(vma);
 
 			op->map.vma = vma;
 			break;
@@ -2458,10 +2282,8 @@ static int vm_bind_ioctl_ops_parse(struct xe_vm *vm, struct xe_exec_queue *q,
 				vma = new_vma(vm, op->base.remap.prev,
 					      op->tile_mask, read_only,
 					      is_null);
-				if (IS_ERR(vma)) {
-					err = PTR_ERR(vma);
-					goto free_fence;
-				}
+				if (IS_ERR(vma))
+					return PTR_ERR(vma);
 
 				op->remap.prev = vma;
 
@@ -2494,10 +2316,8 @@ static int vm_bind_ioctl_ops_parse(struct xe_vm *vm, struct xe_exec_queue *q,
 				vma = new_vma(vm, op->base.remap.next,
 					      op->tile_mask, read_only,
 					      is_null);
-				if (IS_ERR(vma)) {
-					err = PTR_ERR(vma);
-					goto free_fence;
-				}
+				if (IS_ERR(vma))
+					return PTR_ERR(vma);
 
 				op->remap.next = vma;
 
@@ -2529,27 +2349,23 @@ static int vm_bind_ioctl_ops_parse(struct xe_vm *vm, struct xe_exec_queue *q,
 
 		err = xe_vma_op_commit(vm, op);
 		if (err)
-			goto free_fence;
+			return err;
 	}
 
 	/* FIXME: Unhandled corner case */
 	XE_WARN_ON(!last_op && last && !list_empty(ops_list));
 
 	if (!last_op)
-		goto free_fence;
+		return 0;
+
 	last_op->ops = ops;
 	if (last) {
 		last_op->flags |= XE_VMA_OP_LAST;
 		last_op->num_syncs = num_syncs;
 		last_op->syncs = syncs;
-		last_op->fence = fence;
 	}
 
 	return 0;
-
-free_fence:
-	kfree(fence);
-	return err;
 }
 
 static int op_execute(struct drm_exec *exec, struct xe_vm *vm,
@@ -2569,7 +2385,7 @@ static int op_execute(struct drm_exec *exec, struct xe_vm *vm,
 	switch (op->base.op) {
 	case DRM_GPUVA_OP_MAP:
 		err = xe_vm_bind(vm, vma, op->q, xe_vma_bo(vma),
-				 op->syncs, op->num_syncs, op->fence,
+				 op->syncs, op->num_syncs,
 				 op->map.immediate || !xe_vm_in_fault_mode(vm),
 				 op->flags & XE_VMA_OP_FIRST,
 				 op->flags & XE_VMA_OP_LAST);
@@ -2580,16 +2396,13 @@ static int op_execute(struct drm_exec *exec, struct xe_vm *vm,
 		bool next = !!op->remap.next;
 
 		if (!op->remap.unmap_done) {
-			if (prev || next) {
-				vm->async_ops.munmap_rebind_inflight = true;
+			if (prev || next)
 				vma->gpuva.flags |= XE_VMA_FIRST_REBIND;
-			}
 			err = xe_vm_unbind(vm, vma, op->q, op->syncs,
 					   op->num_syncs,
-					   !prev && !next ? op->fence : NULL,
 					   op->flags & XE_VMA_OP_FIRST,
-					   op->flags & XE_VMA_OP_LAST && !prev &&
-					   !next);
+					   op->flags & XE_VMA_OP_LAST &&
+					   !prev && !next);
 			if (err)
 				break;
 			op->remap.unmap_done = true;
@@ -2599,8 +2412,7 @@ static int op_execute(struct drm_exec *exec, struct xe_vm *vm,
 			op->remap.prev->gpuva.flags |= XE_VMA_LAST_REBIND;
 			err = xe_vm_bind(vm, op->remap.prev, op->q,
 					 xe_vma_bo(op->remap.prev), op->syncs,
-					 op->num_syncs,
-					 !next ? op->fence : NULL, true, false,
+					 op->num_syncs, true, false,
 					 op->flags & XE_VMA_OP_LAST && !next);
 			op->remap.prev->gpuva.flags &= ~XE_VMA_LAST_REBIND;
 			if (err)
@@ -2613,26 +2425,24 @@ static int op_execute(struct drm_exec *exec, struct xe_vm *vm,
 			err = xe_vm_bind(vm, op->remap.next, op->q,
 					 xe_vma_bo(op->remap.next),
 					 op->syncs, op->num_syncs,
-					 op->fence, true, false,
+					 true, false,
 					 op->flags & XE_VMA_OP_LAST);
 			op->remap.next->gpuva.flags &= ~XE_VMA_LAST_REBIND;
 			if (err)
 				break;
 			op->remap.next = NULL;
 		}
-		vm->async_ops.munmap_rebind_inflight = false;
 
 		break;
 	}
 	case DRM_GPUVA_OP_UNMAP:
 		err = xe_vm_unbind(vm, vma, op->q, op->syncs,
-				   op->num_syncs, op->fence,
-				   op->flags & XE_VMA_OP_FIRST,
+				   op->num_syncs, op->flags & XE_VMA_OP_FIRST,
 				   op->flags & XE_VMA_OP_LAST);
 		break;
 	case DRM_GPUVA_OP_PREFETCH:
 		err = xe_vm_prefetch(vm, vma, op->q, op->prefetch.region,
-				     op->syncs, op->num_syncs, op->fence,
+				     op->syncs, op->num_syncs,
 				     op->flags & XE_VMA_OP_FIRST,
 				     op->flags & XE_VMA_OP_LAST);
 		break;
@@ -2731,14 +2541,9 @@ static void xe_vma_op_cleanup(struct xe_vm *vm, struct xe_vma_op *op)
 		kfree(op->syncs);
 		if (op->q)
 			xe_exec_queue_put(op->q);
-		if (op->fence)
-			dma_fence_put(&op->fence->fence);
 	}
-	if (!list_empty(&op->link)) {
-		spin_lock_irq(&vm->async_ops.lock);
+	if (!list_empty(&op->link))
 		list_del(&op->link);
-		spin_unlock_irq(&vm->async_ops.lock);
-	}
 	if (op->ops)
 		drm_gpuva_ops_free(&vm->mgr, op->ops);
 	if (last)
@@ -2800,130 +2605,6 @@ static void xe_vma_op_unwind(struct xe_vm *vm, struct xe_vma_op *op,
 	}
 }
 
-static struct xe_vma_op *next_vma_op(struct xe_vm *vm)
-{
-	return list_first_entry_or_null(&vm->async_ops.pending,
-					struct xe_vma_op, link);
-}
-
-static void xe_vma_op_work_func(struct work_struct *w)
-{
-	struct xe_vm *vm = container_of(w, struct xe_vm, async_ops.work);
-
-	for (;;) {
-		struct xe_vma_op *op;
-		int err;
-
-		if (vm->async_ops.error && !xe_vm_is_closed(vm))
-			break;
-
-		spin_lock_irq(&vm->async_ops.lock);
-		op = next_vma_op(vm);
-		spin_unlock_irq(&vm->async_ops.lock);
-
-		if (!op)
-			break;
-
-		if (!xe_vm_is_closed(vm)) {
-			down_write(&vm->lock);
-			err = xe_vma_op_execute(vm, op);
-			if (err) {
-				drm_warn(&vm->xe->drm,
-					 "Async VM op(%d) failed with %d",
-					 op->base.op, err);
-				vm_set_async_error(vm, err);
-				up_write(&vm->lock);
-
-				break;
-			}
-			up_write(&vm->lock);
-		} else {
-			struct xe_vma *vma;
-
-			switch (op->base.op) {
-			case DRM_GPUVA_OP_REMAP:
-				vma = gpuva_to_vma(op->base.remap.unmap->va);
-				trace_xe_vma_flush(vma);
-
-				down_write(&vm->lock);
-				xe_vma_destroy_unlocked(vma);
-				up_write(&vm->lock);
-				break;
-			case DRM_GPUVA_OP_UNMAP:
-				vma = gpuva_to_vma(op->base.unmap.va);
-				trace_xe_vma_flush(vma);
-
-				down_write(&vm->lock);
-				xe_vma_destroy_unlocked(vma);
-				up_write(&vm->lock);
-				break;
-			default:
-				/* Nothing to do */
-				break;
-			}
-
-			if (op->fence && !test_bit(DMA_FENCE_FLAG_SIGNALED_BIT,
-						   &op->fence->fence.flags)) {
-				if (!xe_vm_no_dma_fences(vm)) {
-					op->fence->started = true;
-					wake_up_all(&op->fence->wq);
-				}
-				dma_fence_signal(&op->fence->fence);
-			}
-		}
-
-		xe_vma_op_cleanup(vm, op);
-	}
-}
-
-static int vm_bind_ioctl_ops_execute(struct xe_vm *vm,
-				     struct list_head *ops_list, bool async)
-{
-	struct xe_vma_op *op, *last_op, *next;
-	int err;
-
-	lockdep_assert_held_write(&vm->lock);
-
-	list_for_each_entry(op, ops_list, link)
-		last_op = op;
-
-	if (!async) {
-		err = xe_vma_op_execute(vm, last_op);
-		if (err)
-			goto unwind;
-		xe_vma_op_cleanup(vm, last_op);
-	} else {
-		int i;
-		bool installed = false;
-
-		for (i = 0; i < last_op->num_syncs; i++)
-			installed |= xe_sync_entry_signal(&last_op->syncs[i],
-							  NULL,
-							  &last_op->fence->fence);
-		if (!installed && last_op->fence)
-			dma_fence_signal(&last_op->fence->fence);
-
-		spin_lock_irq(&vm->async_ops.lock);
-		list_splice_tail(ops_list, &vm->async_ops.pending);
-		spin_unlock_irq(&vm->async_ops.lock);
-
-		if (!vm->async_ops.error)
-			queue_work(system_unbound_wq, &vm->async_ops.work);
-	}
-
-	return 0;
-
-unwind:
-	list_for_each_entry_reverse(op, ops_list, link)
-		xe_vma_op_unwind(vm, op, op->flags & XE_VMA_OP_COMMITTED,
-				 op->flags & XE_VMA_OP_PREV_COMMITTED,
-				 op->flags & XE_VMA_OP_NEXT_COMMITTED);
-	list_for_each_entry_safe(op, next, ops_list, link)
-		xe_vma_op_cleanup(vm, op);
-
-	return err;
-}
-
 static void vm_bind_ioctl_ops_unwind(struct xe_vm *vm,
 				     struct drm_gpuva_ops **ops,
 				     int num_ops_list)
@@ -2950,6 +2631,31 @@ static void vm_bind_ioctl_ops_unwind(struct xe_vm *vm,
 	}
 }
 
+static int vm_bind_ioctl_ops_execute(struct xe_vm *vm,
+				     struct list_head *ops_list)
+{
+	struct xe_vma_op *op, *next;
+	int err;
+
+	lockdep_assert_held_write(&vm->lock);
+
+	list_for_each_entry_safe(op, next, ops_list, link) {
+		err = xe_vma_op_execute(vm, op);
+		if (err) {
+			drm_warn(&vm->xe->drm, "VM op(%d) failed with %d",
+				 op->base.op, err);
+			/*
+			 * FIXME: Killing VM rather than proper error handling
+			 */
+			xe_vm_kill(vm);
+			return -ENOSPC;
+		}
+		xe_vma_op_cleanup(vm, op);
+	}
+
+	return 0;
+}
+
 #ifdef TEST_VM_ASYNC_OPS_ERROR
 #define SUPPORTED_FLAGS	\
 	(FORCE_ASYNC_OP_ERROR | XE_VM_BIND_FLAG_ASYNC | \
@@ -2958,7 +2664,8 @@ static void vm_bind_ioctl_ops_unwind(struct xe_vm *vm,
 #else
 #define SUPPORTED_FLAGS	\
 	(XE_VM_BIND_FLAG_ASYNC | XE_VM_BIND_FLAG_READONLY | \
-	 XE_VM_BIND_FLAG_IMMEDIATE | XE_VM_BIND_FLAG_NULL | 0xffff)
+	 XE_VM_BIND_FLAG_IMMEDIATE | XE_VM_BIND_FLAG_NULL | \
+	 0xffff)
 #endif
 #define XE_64K_PAGE_MASK 0xffffull
 
@@ -3009,21 +2716,12 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
 
 		if (i == 0) {
 			*async = !!(flags & XE_VM_BIND_FLAG_ASYNC);
-		} else if (XE_IOCTL_DBG(xe, !*async) ||
-			   XE_IOCTL_DBG(xe, !(flags & XE_VM_BIND_FLAG_ASYNC)) ||
-			   XE_IOCTL_DBG(xe, op == XE_VM_BIND_OP_RESTART)) {
-			err = -EINVAL;
-			goto free_bind_ops;
-		}
-
-		if (XE_IOCTL_DBG(xe, !*async &&
-				 op == XE_VM_BIND_OP_UNMAP_ALL)) {
-			err = -EINVAL;
-			goto free_bind_ops;
-		}
-
-		if (XE_IOCTL_DBG(xe, !*async &&
-				 op == XE_VM_BIND_OP_PREFETCH)) {
+			if (XE_IOCTL_DBG(xe, !*async && args->num_syncs)) {
+				err = -EINVAL;
+				goto free_bind_ops;
+			}
+		} else if (XE_IOCTL_DBG(xe, *async !=
+					!!(flags & XE_VM_BIND_FLAG_ASYNC))) {
 			err = -EINVAL;
 			goto free_bind_ops;
 		}
@@ -3060,8 +2758,7 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
 		if (XE_IOCTL_DBG(xe, obj_offset & ~PAGE_MASK) ||
 		    XE_IOCTL_DBG(xe, addr & ~PAGE_MASK) ||
 		    XE_IOCTL_DBG(xe, range & ~PAGE_MASK) ||
-		    XE_IOCTL_DBG(xe, !range && op !=
-				 XE_VM_BIND_OP_RESTART &&
+		    XE_IOCTL_DBG(xe, !range &&
 				 op != XE_VM_BIND_OP_UNMAP_ALL)) {
 			err = -EINVAL;
 			goto free_bind_ops;
@@ -3109,6 +2806,12 @@ int xe_vm_bind_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
 			err = -EINVAL;
 			goto put_exec_queue;
 		}
+
+		if (XE_IOCTL_DBG(xe, async !=
+				 !!(q->flags & EXEC_QUEUE_FLAG_VM_ASYNC))) {
+			err = -EINVAL;
+			goto put_exec_queue;
+		}
 	}
 
 	vm = xe_vm_lookup(xef, args->vm_id);
@@ -3117,6 +2820,14 @@ int xe_vm_bind_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
 		goto put_exec_queue;
 	}
 
+	if (!args->exec_queue_id) {
+		if (XE_IOCTL_DBG(xe, async !=
+				 !!(vm->flags & XE_VM_FLAG_ASYNC_DEFAULT))) {
+			err = -EINVAL;
+			goto put_vm;
+		}
+	}
+
 	err = down_write_killable(&vm->lock);
 	if (err)
 		goto put_vm;
@@ -3126,34 +2837,6 @@ int xe_vm_bind_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
 		goto release_vm_lock;
 	}
 
-	if (bind_ops[0].op == XE_VM_BIND_OP_RESTART) {
-		if (XE_IOCTL_DBG(xe, !(vm->flags & XE_VM_FLAG_ASYNC_BIND_OPS)))
-			err = -EOPNOTSUPP;
-		if (XE_IOCTL_DBG(xe, !err && args->num_syncs))
-			err = EINVAL;
-		if (XE_IOCTL_DBG(xe, !err && !vm->async_ops.error))
-			err = -EPROTO;
-
-		if (!err) {
-			trace_xe_vm_restart(vm);
-			vm_set_async_error(vm, 0);
-
-			queue_work(system_unbound_wq, &vm->async_ops.work);
-
-			/* Rebinds may have been blocked, give worker a kick */
-			if (xe_vm_in_compute_mode(vm))
-				xe_vm_queue_rebind_worker(vm);
-		}
-
-		goto release_vm_lock;
-	}
-
-	if (XE_IOCTL_DBG(xe, !vm->async_ops.error &&
-			 async != !!(vm->flags & XE_VM_FLAG_ASYNC_BIND_OPS))) {
-		err = -EOPNOTSUPP;
-		goto release_vm_lock;
-	}
-
 	for (i = 0; i < args->num_binds; ++i) {
 		u64 range = bind_ops[i].range;
 		u64 addr = bind_ops[i].addr;
@@ -3239,18 +2922,6 @@ int xe_vm_bind_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
 			goto free_syncs;
 	}
 
-	/* Do some error checking first to make the unwind easier */
-	for (i = 0; i < args->num_binds; ++i) {
-		u64 range = bind_ops[i].range;
-		u64 addr = bind_ops[i].addr;
-		u32 op = bind_ops[i].op;
-		u32 flags = bind_ops[i].flags;
-
-		err = vm_bind_ioctl_lookup_vma(vm, bos[i], addr, range, op, flags);
-		if (err)
-			goto free_syncs;
-	}
-
 	for (i = 0; i < args->num_binds; ++i) {
 		u64 range = bind_ops[i].range;
 		u64 addr = bind_ops[i].addr;
@@ -3283,10 +2954,19 @@ int xe_vm_bind_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
 		goto unwind_ops;
 	}
 
-	err = vm_bind_ioctl_ops_execute(vm, &ops_list, async);
+	xe_vm_get(vm);
+	if (q)
+		xe_exec_queue_get(q);
+
+	err = vm_bind_ioctl_ops_execute(vm, &ops_list);
+
 	up_write(&vm->lock);
 
-	for (i = 0; i < args->num_binds; ++i)
+	if (q)
+		xe_exec_queue_put(q);
+	xe_vm_put(vm);
+
+	for (i = 0; bos && i < args->num_binds; ++i)
 		xe_bo_put(bos[i]);
 
 	kfree(bos);
diff --git a/drivers/gpu/drm/xe/xe_vm.h b/drivers/gpu/drm/xe/xe_vm.h
index ceae9c1be697..195b70d25356 100644
--- a/drivers/gpu/drm/xe/xe_vm.h
+++ b/drivers/gpu/drm/xe/xe_vm.h
@@ -180,8 +180,6 @@ struct dma_fence *xe_vm_rebind(struct xe_vm *vm, bool rebind_worker);
 
 int xe_vm_invalidate_vma(struct xe_vma *vma);
 
-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);
diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
index c45f66db835c..62d50e797167 100644
--- a/drivers/gpu/drm/xe/xe_vm_types.h
+++ b/drivers/gpu/drm/xe/xe_vm_types.h
@@ -17,7 +17,6 @@
 #include "xe_pt_types.h"
 #include "xe_range_fence.h"
 
-struct async_op_fence;
 struct xe_bo;
 struct xe_sync_entry;
 struct xe_vm;
@@ -163,7 +162,7 @@ struct xe_vm {
 	 */
 #define XE_VM_FLAG_64K			BIT(0)
 #define XE_VM_FLAG_COMPUTE_MODE		BIT(1)
-#define XE_VM_FLAG_ASYNC_BIND_OPS	BIT(2)
+#define XE_VM_FLAG_ASYNC_DEFAULT	BIT(2)
 #define XE_VM_FLAG_MIGRATION		BIT(3)
 #define XE_VM_FLAG_SCRATCH_PAGE		BIT(4)
 #define XE_VM_FLAG_FAULT_MODE		BIT(5)
@@ -214,30 +213,6 @@ struct xe_vm {
 		struct list_head list;
 	} extobj;
 
-	/** @async_ops: async VM operations (bind / unbinds) */
-	struct {
-		/** @list: list of pending async VM ops */
-		struct list_head pending;
-		/** @work: worker to execute async VM ops */
-		struct work_struct work;
-		/** @lock: protects list of pending async VM ops and fences */
-		spinlock_t lock;
-		/** @fence: fence state */
-		struct {
-			/** @context: context of async fence */
-			u64 context;
-			/** @seqno: seqno of async fence */
-			u32 seqno;
-		} fence;
-		/** @error: error state for async VM ops */
-		int error;
-		/**
-		 * @munmap_rebind_inflight: an munmap style VM bind is in the
-		 * middle of a set of ops which requires a rebind at the end.
-		 */
-		bool munmap_rebind_inflight;
-	} async_ops;
-
 	/** @userptr: user pointer state */
 	struct {
 		/**
@@ -399,10 +374,6 @@ struct xe_vma_op {
 	u32 num_syncs;
 	/** @link: async operation link */
 	struct list_head link;
-	/**
-	 * @fence: async operation fence, signaled on last operation complete
-	 */
-	struct async_op_fence *fence;
 	/** @tile_mask: gt mask for this operation */
 	u8 tile_mask;
 	/** @flags: operation flags */
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index f7529d690d2f..4a8124e00da2 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -134,10 +134,11 @@ struct drm_xe_engine_class_instance {
 #define DRM_XE_ENGINE_CLASS_VIDEO_ENHANCE	3
 #define DRM_XE_ENGINE_CLASS_COMPUTE		4
 	/*
-	 * Kernel only class (not actual hardware engine class). Used for
+	 * Kernel only classes (not actual hardware engine class). Used for
 	 * creating ordered queues of VM bind operations.
 	 */
-#define DRM_XE_ENGINE_CLASS_VM_BIND		5
+#define DRM_XE_ENGINE_CLASS_VM_BIND_ASYNC	5
+#define DRM_XE_ENGINE_CLASS_VM_BIND_SYNC	6
 	__u16 engine_class;
 
 	__u16 engine_instance;
@@ -580,7 +581,7 @@ struct drm_xe_vm_create {
 
 #define DRM_XE_VM_CREATE_SCRATCH_PAGE	(0x1 << 0)
 #define DRM_XE_VM_CREATE_COMPUTE_MODE	(0x1 << 1)
-#define DRM_XE_VM_CREATE_ASYNC_BIND_OPS	(0x1 << 2)
+#define DRM_XE_VM_CREATE_ASYNC_DEFAULT	(0x1 << 2)
 #define DRM_XE_VM_CREATE_FAULT_MODE	(0x1 << 3)
 	/** @flags: Flags */
 	__u32 flags;
@@ -640,34 +641,12 @@ struct drm_xe_vm_bind_op {
 #define XE_VM_BIND_OP_MAP		0x0
 #define XE_VM_BIND_OP_UNMAP		0x1
 #define XE_VM_BIND_OP_MAP_USERPTR	0x2
-#define XE_VM_BIND_OP_RESTART		0x3
-#define XE_VM_BIND_OP_UNMAP_ALL		0x4
-#define XE_VM_BIND_OP_PREFETCH		0x5
+#define XE_VM_BIND_OP_UNMAP_ALL		0x3
+#define XE_VM_BIND_OP_PREFETCH		0x4
 	/** @op: Bind operation to perform */
 	__u32 op;
 
 #define XE_VM_BIND_FLAG_READONLY	(0x1 << 0)
-	/*
-	 * A bind ops completions are always async, hence the support for out
-	 * sync. This flag indicates the allocation of the memory for new page
-	 * tables and the job to program the pages tables is asynchronous
-	 * relative to the IOCTL. That part of a bind operation can fail under
-	 * memory pressure, the job in practice can't fail unless the system is
-	 * totally shot.
-	 *
-	 * If this flag is clear and the IOCTL doesn't return an error, in
-	 * practice the bind op is good and will complete.
-	 *
-	 * If this flag is set and doesn't return an error, the bind op can
-	 * still fail and recovery is needed. It should free memory
-	 * via non-async unbinds, and then restart all queued async binds op via
-	 * XE_VM_BIND_OP_RESTART. Or alternatively the user should destroy the
-	 * VM.
-	 *
-	 * This flag is only allowed when DRM_XE_VM_CREATE_ASYNC_BIND_OPS is
-	 * configured in the VM and must be set if the VM is configured with
-	 * DRM_XE_VM_CREATE_ASYNC_BIND_OPS and not in an error state.
-	 */
 #define XE_VM_BIND_FLAG_ASYNC		(0x1 << 1)
 	/*
 	 * Valid on a faulting VM only, do the MAP operation immediately rather
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 15/30] drm/xe: Fix VM bind out-sync signaling ordering
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (13 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 14/30] drm/xe: Remove async worker and rework sync binds Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 16/30] drm/xe/uapi: Document drm_xe_query_gt Francois Dugast
                   ` (22 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe

From: Matthew Brost <matthew.brost@intel.com>

A case existed where an out-sync of a later VM bind operation could
signal before a previous one if the later operation results in a NOP
(e.g. a unbind or prefetch to a VA range without any mappings). This
breaks the ordering rules, fix this. This patch also lays the groundwork
for users to pass in num_binds == 0 and out-syncs.

Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
---
 drivers/gpu/drm/xe/xe_exec_queue.c       | 75 ++++++++++++++++++++++++
 drivers/gpu/drm/xe/xe_exec_queue.h       |  7 +++
 drivers/gpu/drm/xe/xe_exec_queue_types.h |  6 ++
 drivers/gpu/drm/xe/xe_vm.c               | 45 +++++++++++---
 4 files changed, 125 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c
index be3c8e6db088..dd61c4267e24 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue.c
+++ b/drivers/gpu/drm/xe/xe_exec_queue.c
@@ -156,6 +156,7 @@ void xe_exec_queue_destroy(struct kref *ref)
 	struct xe_exec_queue *q = container_of(ref, struct xe_exec_queue, refcount);
 	struct xe_exec_queue *eq, *next;
 
+	xe_exec_queue_last_fence_put_unlocked(q);
 	if (!(q->flags & EXEC_QUEUE_FLAG_BIND_ENGINE_CHILD)) {
 		list_for_each_entry_safe(eq, next, &q->multi_gt_list,
 					 multi_gt_link)
@@ -916,3 +917,77 @@ int xe_exec_queue_set_property_ioctl(struct drm_device *dev, void *data,
 
 	return ret;
 }
+
+static void xe_exec_queue_last_fence_lockdep_assert(struct xe_exec_queue *q,
+						    struct xe_vm *vm)
+{
+	lockdep_assert_held_write(&vm->lock);
+}
+
+/**
+ * xe_exec_queue_last_fence_put() - Drop ref to last fence
+ * @q: The exec queue
+ * @vm: The VM the engine does a bind or exec for
+ */
+void xe_exec_queue_last_fence_put(struct xe_exec_queue *q, struct xe_vm *vm)
+{
+	xe_exec_queue_last_fence_lockdep_assert(q, vm);
+
+	if (q->last_fence) {
+		dma_fence_put(q->last_fence);
+		q->last_fence = NULL;
+	}
+}
+
+/**
+ * xe_exec_queue_last_fence_put_unlocked() - Drop ref to last fence unlocked
+ * @q: The exec queue
+ *
+ * Only safe to be called from xe_exec_queue_destroy().
+ */
+void xe_exec_queue_last_fence_put_unlocked(struct xe_exec_queue *q)
+{
+	if (q->last_fence) {
+		dma_fence_put(q->last_fence);
+		q->last_fence = NULL;
+	}
+}
+
+/**
+ * xe_exec_queue_last_fence_get() - Get last fence
+ * @q: The exec queue
+ * @vm: The VM the engine does a bind or exec for
+ *
+ * Get last fence, does not take a ref
+ *
+ * Returns: last fence if not signaled, dma fence stub if signaled
+ */
+struct dma_fence *xe_exec_queue_last_fence_get(struct xe_exec_queue *q,
+					       struct xe_vm *vm)
+{
+	xe_exec_queue_last_fence_lockdep_assert(q, vm);
+
+	if (q->last_fence &&
+	    test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &q->last_fence->flags))
+		xe_exec_queue_last_fence_put(q, vm);
+
+	return q->last_fence ? q->last_fence : dma_fence_get_stub();
+}
+
+/**
+ * xe_exec_queue_last_fence_set() - Set last fence
+ * @q: The exec queue
+ * @vm: The VM the engine does a bind or exec for
+ * @fence: The fence
+ *
+ * Set the last fence for the engine. Increases reference count for fence, when
+ * closing engine xe_exec_queue_last_fence_put should be called.
+ */
+void xe_exec_queue_last_fence_set(struct xe_exec_queue *q, struct xe_vm *vm,
+				  struct dma_fence *fence)
+{
+	xe_exec_queue_last_fence_lockdep_assert(q, vm);
+
+	xe_exec_queue_last_fence_put(q, vm);
+	q->last_fence = dma_fence_get(fence);
+}
diff --git a/drivers/gpu/drm/xe/xe_exec_queue.h b/drivers/gpu/drm/xe/xe_exec_queue.h
index ce1ec2243b6a..59a54bfb9a8c 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue.h
+++ b/drivers/gpu/drm/xe/xe_exec_queue.h
@@ -61,4 +61,11 @@ int xe_exec_queue_get_property_ioctl(struct drm_device *dev, void *data,
 				     struct drm_file *file);
 enum drm_sched_priority xe_exec_queue_device_get_max_priority(struct xe_device *xe);
 
+void xe_exec_queue_last_fence_put(struct xe_exec_queue *e, struct xe_vm *vm);
+void xe_exec_queue_last_fence_put_unlocked(struct xe_exec_queue *e);
+struct dma_fence *xe_exec_queue_last_fence_get(struct xe_exec_queue *e,
+					       struct xe_vm *vm);
+void xe_exec_queue_last_fence_set(struct xe_exec_queue *e, struct xe_vm *vm,
+				  struct dma_fence *fence);
+
 #endif
diff --git a/drivers/gpu/drm/xe/xe_exec_queue_types.h b/drivers/gpu/drm/xe/xe_exec_queue_types.h
index d0ab51acc651..ecd761177567 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue_types.h
+++ b/drivers/gpu/drm/xe/xe_exec_queue_types.h
@@ -52,6 +52,12 @@ struct xe_exec_queue {
 	/** @fence_irq: fence IRQ used to signal job completion */
 	struct xe_hw_fence_irq *fence_irq;
 
+	/**
+	 * @last_fence: last fence on engine, protected by vm->lock in write
+	 * mode if bind engine
+	 */
+	struct dma_fence *last_fence;
+
 /* queue no longer allowed to submit */
 #define EXEC_QUEUE_FLAG_BANNED			BIT(0)
 /* queue used for kernel submission only */
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index be716b5622b9..acf097c57259 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -1384,6 +1384,13 @@ void xe_vm_close_and_put(struct xe_vm *vm)
 	if (xe_vm_in_compute_mode(vm))
 		flush_work(&vm->preempt.rebind_work);
 
+	down_write(&vm->lock);
+	for_each_tile(tile, xe, id) {
+		if (vm->q[id])
+			xe_exec_queue_last_fence_put(vm->q[id], vm);
+	}
+	up_write(&vm->lock);
+
 	for_each_tile(tile, xe, id) {
 		if (vm->q[id]) {
 			xe_exec_queue_kill(vm->q[id]);
@@ -1535,16 +1542,23 @@ u64 xe_vm_pdp4_descriptor(struct xe_vm *vm, struct xe_tile *tile)
 			     XE_CACHE_WB);
 }
 
+static struct xe_exec_queue *
+to_wait_exec_queue(struct xe_vm *vm, struct xe_exec_queue *q)
+{
+	return q ? q : vm->q[0];
+}
+
 static struct dma_fence *
 xe_vm_unbind_vma(struct xe_vma *vma, struct xe_exec_queue *q,
 		 struct xe_sync_entry *syncs, u32 num_syncs,
 		 bool first_op, bool last_op)
 {
+	struct xe_vm *vm = xe_vma_vm(vma);
+	struct xe_exec_queue *wait_exec_queue = to_wait_exec_queue(vm, q);
 	struct xe_tile *tile;
 	struct dma_fence *fence = NULL;
 	struct dma_fence **fences = NULL;
 	struct dma_fence_array *cf = NULL;
-	struct xe_vm *vm = xe_vma_vm(vma);
 	int cur_fence = 0, i;
 	int number_tiles = hweight8(vma->tile_present);
 	int err;
@@ -1596,7 +1610,8 @@ xe_vm_unbind_vma(struct xe_vma *vma, struct xe_exec_queue *q,
 					     cf ? &cf->base : fence);
 	}
 
-	return cf ? &cf->base : !fence ? dma_fence_get_stub() : fence;
+	return cf ? &cf->base : !fence ?
+		xe_exec_queue_last_fence_get(wait_exec_queue, vm) : fence;
 
 err_fences:
 	if (fences) {
@@ -1695,6 +1710,7 @@ static int __xe_vm_bind(struct xe_vm *vm, struct xe_vma *vma,
 			bool last_op)
 {
 	struct dma_fence *fence;
+	struct xe_exec_queue *wait_exec_queue = to_wait_exec_queue(vm, q);
 
 	xe_vm_assert_held(vm);
 
@@ -1708,13 +1724,15 @@ static int __xe_vm_bind(struct xe_vm *vm, struct xe_vma *vma,
 
 		xe_assert(vm->xe, xe_vm_in_fault_mode(vm));
 
-		fence = dma_fence_get_stub();
+		fence = xe_exec_queue_last_fence_get(wait_exec_queue, vm);
 		if (last_op) {
 			for (i = 0; i < num_syncs; i++)
 				xe_sync_entry_signal(&syncs[i], NULL, fence);
 		}
 	}
 
+	if (last_op)
+		xe_exec_queue_last_fence_set(wait_exec_queue, vm, fence);
 	if (last_op && xe_vm_sync_mode(vm, q))
 		dma_fence_wait(fence, true);
 	dma_fence_put(fence);
@@ -1747,6 +1765,7 @@ static int xe_vm_unbind(struct xe_vm *vm, struct xe_vma *vma,
 			u32 num_syncs, bool first_op, bool last_op)
 {
 	struct dma_fence *fence;
+	struct xe_exec_queue *wait_exec_queue = to_wait_exec_queue(vm, q);
 
 	xe_vm_assert_held(vm);
 	xe_bo_assert_held(xe_vma_bo(vma));
@@ -1756,6 +1775,8 @@ static int xe_vm_unbind(struct xe_vm *vm, struct xe_vma *vma,
 		return PTR_ERR(fence);
 
 	xe_vma_destroy(vma, fence);
+	if (last_op)
+		xe_exec_queue_last_fence_set(wait_exec_queue, vm, fence);
 	if (last_op && xe_vm_sync_mode(vm, q))
 		dma_fence_wait(fence, true);
 	dma_fence_put(fence);
@@ -1905,6 +1926,7 @@ static int xe_vm_prefetch(struct xe_vm *vm, struct xe_vma *vma,
 			  struct xe_sync_entry *syncs, u32 num_syncs,
 			  bool first_op, bool last_op)
 {
+	struct xe_exec_queue *wait_exec_queue = to_wait_exec_queue(vm, q);
 	int err;
 
 	xe_assert(vm->xe, region <= ARRAY_SIZE(region_to_mem_type));
@@ -1923,9 +1945,12 @@ static int xe_vm_prefetch(struct xe_vm *vm, struct xe_vma *vma,
 
 		/* Nothing to do, signal fences now */
 		if (last_op) {
-			for (i = 0; i < num_syncs; i++)
-				xe_sync_entry_signal(&syncs[i], NULL,
-						     dma_fence_get_stub());
+			for (i = 0; i < num_syncs; i++) {
+				struct dma_fence *fence =
+					xe_exec_queue_last_fence_get(wait_exec_queue, vm);
+
+				xe_sync_entry_signal(&syncs[i], NULL, fence);
+			}
 		}
 
 		return 0;
@@ -2979,8 +3004,12 @@ int xe_vm_bind_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
 unwind_ops:
 	vm_bind_ioctl_ops_unwind(vm, ops, args->num_binds);
 free_syncs:
-	for (i = 0; err == -ENODATA && i < num_syncs; i++)
-		xe_sync_entry_signal(&syncs[i], NULL, dma_fence_get_stub());
+	for (i = 0; err == -ENODATA && i < num_syncs; i++) {
+		struct dma_fence *fence =
+			xe_exec_queue_last_fence_get(to_wait_exec_queue(vm, q), vm);
+
+		xe_sync_entry_signal(&syncs[i], NULL, fence);
+	}
 	while (num_syncs--)
 		xe_sync_entry_cleanup(&syncs[num_syncs]);
 
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 16/30] drm/xe/uapi: Document drm_xe_query_gt
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (14 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 15/30] drm/xe: Fix VM bind out-sync signaling ordering Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 17/30] drm/xe/uapi: Replace useless 'instance' per unique gt_id Francois Dugast
                   ` (21 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast, Matt Roper, Rodrigo Vivi

From: Rodrigo Vivi <rodrigo.vivi@intel.com>

Split drm_xe_query_gt out of the gt list one in order to better
document it.

No functional change at this point. Any actual change to the
uapi should come in follow-up additions.

v2: s/maks/mask

Cc: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Francois Dugast <francois.dugast@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
 include/uapi/drm/xe_drm.h | 65 ++++++++++++++++++++++++++-------------
 1 file changed, 43 insertions(+), 22 deletions(-)

diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index 4a8124e00da2..35c0de344253 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -337,6 +337,47 @@ struct drm_xe_query_config {
 	__u64 info[];
 };
 
+/**
+ * struct drm_xe_query_gt - describe an individual GT.
+ *
+ * To be used with drm_xe_query_gts, which will return a list with all the
+ * existing GT individual descriptions.
+ * Graphics Technology (GT) is a subset of a GPU/tile that is responsible for
+ * implementing graphics and/or media operations.
+ */
+struct drm_xe_query_gt {
+#define XE_QUERY_GT_TYPE_MAIN		0
+#define XE_QUERY_GT_TYPE_REMOTE		1
+#define XE_QUERY_GT_TYPE_MEDIA		2
+	/** @type: GT type: Main, Remote, or Media */
+	__u16 type;
+	/** @instance: Instance of this GT in the GT list */
+	__u16 instance;
+	/** @clock_freq: A clock frequency for timestamp */
+	__u32 clock_freq;
+	/** @features: Reserved for future information about GT features */
+	__u64 features;
+	/**
+	 * @native_mem_regions: Bit mask of instances from
+	 * drm_xe_query_mem_usage that lives on the same GPU/Tile and have
+	 * direct access.
+	 */
+	__u64 native_mem_regions;
+	/**
+	 * @slow_mem_regions: Bit mask of instances from
+	 * drm_xe_query_mem_usage that this GT can indirectly access, although
+	 * they live on a different GPU/Tile.
+	 */
+	__u64 slow_mem_regions;
+	/**
+	 * @inaccessible_mem_regions: Bit mask of instances from
+	 * drm_xe_query_mem_usage that is not accessible by this GT at all.
+	 */
+	__u64 inaccessible_mem_regions;
+	/** @reserved: Reserved */
+	__u64 reserved[8];
+};
+
 /**
  * struct drm_xe_query_gts - describe GTs
  *
@@ -347,30 +388,10 @@ struct drm_xe_query_config {
 struct drm_xe_query_gts {
 	/** @num_gt: number of GTs returned in gts */
 	__u32 num_gt;
-
 	/** @pad: MBZ */
 	__u32 pad;
-
-	/**
-	 * @gts: The GTs returned for this device
-	 *
-	 * TODO: convert drm_xe_query_gt to proper kernel-doc.
-	 * TODO: Perhaps info about every mem region relative to this GT? e.g.
-	 * bandwidth between this GT and remote region?
-	 */
-	struct drm_xe_query_gt {
-#define XE_QUERY_GT_TYPE_MAIN		0
-#define XE_QUERY_GT_TYPE_REMOTE		1
-#define XE_QUERY_GT_TYPE_MEDIA		2
-		__u16 type;
-		__u16 instance;
-		__u32 clock_freq;
-		__u64 features;
-		__u64 native_mem_regions;	/* bit mask of instances from drm_xe_query_mem_usage */
-		__u64 slow_mem_regions;		/* bit mask of instances from drm_xe_query_mem_usage */
-		__u64 inaccessible_mem_regions;	/* bit mask of instances from drm_xe_query_mem_usage */
-		__u64 reserved[8];
-	} gts[];
+	/** @gts: The GT list returned for this device */
+	struct drm_xe_query_gt gts[];
 };
 
 /**
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 17/30] drm/xe/uapi: Replace useless 'instance' per unique gt_id
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (15 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 16/30] drm/xe/uapi: Document drm_xe_query_gt Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 18/30] drm/xe/uapi: Remove unused field of drm_xe_query_gt Francois Dugast
                   ` (20 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast, Rodrigo Vivi

From: Rodrigo Vivi <rodrigo.vivi@intel.com>

Let's have a single GT ID per GT within the PCI Device Card.

Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Francois Dugast <francois.dugast@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_gt_types.h | 2 +-
 drivers/gpu/drm/xe/xe_pci.c      | 4 ----
 drivers/gpu/drm/xe/xe_query.c    | 2 +-
 include/uapi/drm/xe_drm.h        | 4 ++--
 4 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_gt_types.h b/drivers/gpu/drm/xe/xe_gt_types.h
index d4310be3e1e7..d3f2793684e2 100644
--- a/drivers/gpu/drm/xe/xe_gt_types.h
+++ b/drivers/gpu/drm/xe/xe_gt_types.h
@@ -105,7 +105,7 @@ struct xe_gt {
 	struct {
 		/** @type: type of GT */
 		enum xe_gt_type type;
-		/** @id: id of GT */
+		/** @id: Unique ID of this GT within the PCI Device */
 		u8 id;
 		/** @clock_freq: clock frequency */
 		u32 clock_freq;
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index a11163b89a3f..48b46be7e755 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -599,10 +599,6 @@ static int xe_info_init(struct xe_device *xe,
 			return PTR_ERR(tile->primary_gt);
 
 		gt = tile->primary_gt;
-		/*
-		 * FIXME: GT numbering scheme may change depending on UAPI
-		 * decisions.
-		 */
 		gt->info.id = xe->info.gt_count++;
 		gt->info.type = XE_GT_TYPE_MAIN;
 		gt->info.__engine_mask = graphics_desc->hw_engine_mask;
diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
index be9affd4f181..fb448e76fb0f 100644
--- a/drivers/gpu/drm/xe/xe_query.c
+++ b/drivers/gpu/drm/xe/xe_query.c
@@ -379,7 +379,7 @@ static int query_gts(struct xe_device *xe, struct drm_xe_device_query *query)
 			gts->gts[id].type = XE_QUERY_GT_TYPE_REMOTE;
 		else
 			gts->gts[id].type = XE_QUERY_GT_TYPE_MAIN;
-		gts->gts[id].instance = id;
+		gts->gts[id].gt_id = gt->info.id;
 		gts->gts[id].clock_freq = gt->info.clock_freq;
 		if (!IS_DGFX(xe))
 			gts->gts[id].native_mem_regions = 0x1;
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index 35c0de344253..406a5472199e 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -351,8 +351,8 @@ struct drm_xe_query_gt {
 #define XE_QUERY_GT_TYPE_MEDIA		2
 	/** @type: GT type: Main, Remote, or Media */
 	__u16 type;
-	/** @instance: Instance of this GT in the GT list */
-	__u16 instance;
+	/** @gt_id: Unique ID of this GT within the PCI Device */
+	__u16 gt_id;
 	/** @clock_freq: A clock frequency for timestamp */
 	__u32 clock_freq;
 	/** @features: Reserved for future information about GT features */
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 18/30] drm/xe/uapi: Remove unused field of drm_xe_query_gt
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (16 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 17/30] drm/xe/uapi: Replace useless 'instance' per unique gt_id Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 19/30] drm/xe/uapi: Rename gts to gt_list Francois Dugast
                   ` (19 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast, Rodrigo Vivi

From: Rodrigo Vivi <rodrigo.vivi@intel.com>

We already have many bits reserved at the end already.
Let's kill the unused ones.

Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Francois Dugast <francois.dugast@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
 include/uapi/drm/xe_drm.h | 2 --
 1 file changed, 2 deletions(-)

diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index 406a5472199e..2896750ec491 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -355,8 +355,6 @@ struct drm_xe_query_gt {
 	__u16 gt_id;
 	/** @clock_freq: A clock frequency for timestamp */
 	__u32 clock_freq;
-	/** @features: Reserved for future information about GT features */
-	__u64 features;
 	/**
 	 * @native_mem_regions: Bit mask of instances from
 	 * drm_xe_query_mem_usage that lives on the same GPU/Tile and have
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 19/30] drm/xe/uapi: Rename gts to gt_list
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (17 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 18/30] drm/xe/uapi: Remove unused field of drm_xe_query_gt Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 20/30] drm/xe/uapi: Fix naming of XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY Francois Dugast
                   ` (18 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast, Matt Roper, Rodrigo Vivi

From: Rodrigo Vivi <rodrigo.vivi@intel.com>

During the uapi review it was identified a possible confusion
with the plural of acronym with a new acronym. So the
recommendation is to go with gt_list instead.

Suggested-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Francois Dugast <francois.dugast@intel.com>
---
 drivers/gpu/drm/xe/xe_query.c | 40 +++++++++++++++++------------------
 include/uapi/drm/xe_drm.h     | 18 ++++++++--------
 2 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
index fb448e76fb0f..f7a374c28fa5 100644
--- a/drivers/gpu/drm/xe/xe_query.c
+++ b/drivers/gpu/drm/xe/xe_query.c
@@ -350,14 +350,14 @@ static int query_config(struct xe_device *xe, struct drm_xe_device_query *query)
 	return 0;
 }
 
-static int query_gts(struct xe_device *xe, struct drm_xe_device_query *query)
+static int query_gt_list(struct xe_device *xe, struct drm_xe_device_query *query)
 {
 	struct xe_gt *gt;
-	size_t size = sizeof(struct drm_xe_query_gts) +
+	size_t size = sizeof(struct drm_xe_query_gt_list) +
 		xe->info.gt_count * sizeof(struct drm_xe_query_gt);
-	struct drm_xe_query_gts __user *query_ptr =
+	struct drm_xe_query_gt_list __user *query_ptr =
 		u64_to_user_ptr(query->data);
-	struct drm_xe_query_gts *gts;
+	struct drm_xe_query_gt_list *gt_list;
 	u8 id;
 
 	if (query->size == 0) {
@@ -367,34 +367,34 @@ static int query_gts(struct xe_device *xe, struct drm_xe_device_query *query)
 		return -EINVAL;
 	}
 
-	gts = kzalloc(size, GFP_KERNEL);
-	if (!gts)
+	gt_list = kzalloc(size, GFP_KERNEL);
+	if (!gt_list)
 		return -ENOMEM;
 
-	gts->num_gt = xe->info.gt_count;
+	gt_list->num_gt = xe->info.gt_count;
 	for_each_gt(gt, xe, id) {
 		if (xe_gt_is_media_type(gt))
-			gts->gts[id].type = XE_QUERY_GT_TYPE_MEDIA;
+			gt_list->gt_list[id].type = XE_QUERY_GT_TYPE_MEDIA;
 		else if (gt_to_tile(gt)->id > 0)
-			gts->gts[id].type = XE_QUERY_GT_TYPE_REMOTE;
+			gt_list->gt_list[id].type = XE_QUERY_GT_TYPE_REMOTE;
 		else
-			gts->gts[id].type = XE_QUERY_GT_TYPE_MAIN;
-		gts->gts[id].gt_id = gt->info.id;
-		gts->gts[id].clock_freq = gt->info.clock_freq;
+			gt_list->gt_list[id].type = XE_QUERY_GT_TYPE_MAIN;
+		gt_list->gt_list[id].gt_id = gt->info.id;
+		gt_list->gt_list[id].clock_freq = gt->info.clock_freq;
 		if (!IS_DGFX(xe))
-			gts->gts[id].native_mem_regions = 0x1;
+			gt_list->gt_list[id].native_mem_regions = 0x1;
 		else
-			gts->gts[id].native_mem_regions =
+			gt_list->gt_list[id].native_mem_regions =
 				BIT(gt_to_tile(gt)->id) << 1;
-		gts->gts[id].slow_mem_regions = xe->info.mem_region_mask ^
-			gts->gts[id].native_mem_regions;
+		gt_list->gt_list[id].slow_mem_regions = xe->info.mem_region_mask ^
+			gt_list->gt_list[id].native_mem_regions;
 	}
 
-	if (copy_to_user(query_ptr, gts, size)) {
-		kfree(gts);
+	if (copy_to_user(query_ptr, gt_list, size)) {
+		kfree(gt_list);
 		return -EFAULT;
 	}
-	kfree(gts);
+	kfree(gt_list);
 
 	return 0;
 }
@@ -506,7 +506,7 @@ static int (* const xe_query_funcs[])(struct xe_device *xe,
 	query_engines,
 	query_memory_usage,
 	query_config,
-	query_gts,
+	query_gt_list,
 	query_hwconfig,
 	query_gt_topology,
 	query_cs_cycles,
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index 2896750ec491..98a1f393ec0e 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -340,7 +340,7 @@ struct drm_xe_query_config {
 /**
  * struct drm_xe_query_gt - describe an individual GT.
  *
- * To be used with drm_xe_query_gts, which will return a list with all the
+ * To be used with drm_xe_query_gt_list, which will return a list with all the
  * existing GT individual descriptions.
  * Graphics Technology (GT) is a subset of a GPU/tile that is responsible for
  * implementing graphics and/or media operations.
@@ -377,19 +377,19 @@ struct drm_xe_query_gt {
 };
 
 /**
- * struct drm_xe_query_gts - describe GTs
+ * struct drm_xe_query_gt_list - A list with GT description items.
  *
  * If a query is made with a struct drm_xe_device_query where .query
- * is equal to DRM_XE_DEVICE_QUERY_GTS, then the reply uses struct
- * drm_xe_query_gts in .data.
+ * is equal to DRM_XE_DEVICE_QUERY_GT_LIST, then the reply uses struct
+ * drm_xe_query_gt_list in .data.
  */
-struct drm_xe_query_gts {
-	/** @num_gt: number of GTs returned in gts */
+struct drm_xe_query_gt_list {
+	/** @num_gt: number of GT items returned in gt_list */
 	__u32 num_gt;
 	/** @pad: MBZ */
 	__u32 pad;
-	/** @gts: The GT list returned for this device */
-	struct drm_xe_query_gt gts[];
+	/** @gt_list: The GT list returned for this device */
+	struct drm_xe_query_gt gt_list[];
 };
 
 /**
@@ -482,7 +482,7 @@ struct drm_xe_device_query {
 #define DRM_XE_DEVICE_QUERY_ENGINES	0
 #define DRM_XE_DEVICE_QUERY_MEM_USAGE	1
 #define DRM_XE_DEVICE_QUERY_CONFIG	2
-#define DRM_XE_DEVICE_QUERY_GTS		3
+#define DRM_XE_DEVICE_QUERY_GT_LIST	3
 #define DRM_XE_DEVICE_QUERY_HWCONFIG	4
 #define DRM_XE_DEVICE_QUERY_GT_TOPOLOGY	5
 #define DRM_XE_QUERY_CS_CYCLES		6
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 20/30] drm/xe/uapi: Fix naming of XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (18 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 19/30] drm/xe/uapi: Rename gts to gt_list Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 21/30] drm/xe/uapi: Add documentation for query Francois Dugast
                   ` (17 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast, Rodrigo Vivi

This is used for the priority of an exec queue (not an engine) and
should be named accordingly.

Signed-off-by: Francois Dugast <francois.dugast@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_query.c | 2 +-
 include/uapi/drm/xe_drm.h     | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
index f7a374c28fa5..a27b10583f5a 100644
--- a/drivers/gpu/drm/xe/xe_query.c
+++ b/drivers/gpu/drm/xe/xe_query.c
@@ -338,7 +338,7 @@ static int query_config(struct xe_device *xe, struct drm_xe_device_query *query)
 	config->info[XE_QUERY_CONFIG_GT_COUNT] = xe->info.gt_count;
 	config->info[XE_QUERY_CONFIG_MEM_REGION_COUNT] =
 		hweight_long(xe->info.mem_region_mask);
-	config->info[XE_QUERY_CONFIG_MAX_ENGINE_PRIORITY] =
+	config->info[XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY] =
 		xe_exec_queue_device_get_max_priority(xe);
 
 	if (copy_to_user(query_ptr, config, size)) {
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index 98a1f393ec0e..e9969c27c3c4 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -331,8 +331,8 @@ struct drm_xe_query_config {
 #define XE_QUERY_CONFIG_VA_BITS			3
 #define XE_QUERY_CONFIG_GT_COUNT		4
 #define XE_QUERY_CONFIG_MEM_REGION_COUNT	5
-#define XE_QUERY_CONFIG_MAX_ENGINE_PRIORITY	6
-#define XE_QUERY_CONFIG_NUM_PARAM		(XE_QUERY_CONFIG_MAX_ENGINE_PRIORITY + 1)
+#define XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY	6
+#define XE_QUERY_CONFIG_NUM_PARAM		(XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY + 1)
 	/** @info: array of elements containing the config info */
 	__u64 info[];
 };
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 21/30] drm/xe/uapi: Add documentation for query
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (19 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 20/30] drm/xe/uapi: Fix naming of XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 22/30] drm/xe/uapi: Crystal Reference Clock updates Francois Dugast
                   ` (16 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast, Rodrigo Vivi

Provide a description of the keys used the struct
drm_xe_query_config info array. Document the behavior
of the driver for IOCTL DRM_IOCTL_XE_DEVICE_QUERY
depending on the size value provided in struct
drm_xe_device_query.

Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/637
Signed-off-by: Francois Dugast <francois.dugast@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 include/uapi/drm/xe_drm.h | 41 ++++++++++++++++++++++++++++++++++++---
 1 file changed, 38 insertions(+), 3 deletions(-)

diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index e9969c27c3c4..f306cae6d467 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -324,14 +324,43 @@ struct drm_xe_query_config {
 	/** @pad: MBZ */
 	__u32 pad;
 
+	/*
+	 * Device ID (lower 16 bits) and the device revision (next
+	 * 8 bits)
+	 */
 #define XE_QUERY_CONFIG_REV_AND_DEVICE_ID	0
+	/*
+	 * Flags describing the device configuration, see list below
+	 */
 #define XE_QUERY_CONFIG_FLAGS			1
+	/*
+	 * Flag is set if the device has usable VRAM
+	 */
 	#define XE_QUERY_CONFIG_FLAGS_HAS_VRAM		(0x1 << 0)
+	/*
+	 * Minimal memory alignment required by this device,
+	 * typically SZ_4K or SZ_64K
+	 */
 #define XE_QUERY_CONFIG_MIN_ALIGNMENT		2
+	/*
+	 * Maximum bits of a virtual address
+	 */
 #define XE_QUERY_CONFIG_VA_BITS			3
+	/*
+	 * Total number of GTs for the entire device
+	 */
 #define XE_QUERY_CONFIG_GT_COUNT		4
+	/*
+	 * Total number of accessible memory regions
+	 */
 #define XE_QUERY_CONFIG_MEM_REGION_COUNT	5
+	/*
+	 * Value of the highest available exec queue priority
+	 */
 #define XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY	6
+	/*
+	 * Number of elements in the info array
+	 */
 #define XE_QUERY_CONFIG_NUM_PARAM		(XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY + 1)
 	/** @info: array of elements containing the config info */
 	__u64 info[];
@@ -443,9 +472,15 @@ struct drm_xe_query_topology_mask {
 /**
  * struct drm_xe_device_query - main structure to query device information
  *
- * If size is set to 0, the driver fills it with the required size for the
- * requested type of data to query. If size is equal to the required size,
- * the queried information is copied into data.
+ * The user selects the type of data to query among DRM_XE_DEVICE_QUERY_*
+ * and sets the value in the query member. This determines the type of
+ * the structure provided by the driver in data, among struct drm_xe_query_*.
+ *
+ * If size is set to 0, the driver fills it with the required size for
+ * the requested type of data to query. If size is equal to the required
+ * size, the queried information is copied into data. If size is set to
+ * a value different from 0 and different from the required size, the
+ * IOCTL call returns -EINVAL.
  *
  * For example the following code snippet allows retrieving and printing
  * information about the device engines with DRM_XE_DEVICE_QUERY_ENGINES:
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 22/30] drm/xe/uapi: Crystal Reference Clock updates
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (20 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 21/30] drm/xe/uapi: Add documentation for query Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 16:40   ` Souza, Jose
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 23/30] drm/xe: Extend drm_xe_vm_bind_op Francois Dugast
                   ` (15 subsequent siblings)
  37 siblings, 1 reply; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast, Matt Roper, Rodrigo Vivi

From: Rodrigo Vivi <rodrigo.vivi@intel.com>

First of all, let's remove the duplication.
But also, let's rename it to remove the word 'frequency'
out of it. In general, the first thing people think of frequency
is the frequency in which the GTs are operating to execute the
GPU instructions.

While this frequency here is a crystal reference clock frequency
which is the base of everything else, and in this case of this
uAPI it is used to calculate a better and precise timestamp.

Cc: Matt Roper <matthew.d.roper@intel.com>
Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Cc: Francois Dugast <francois.dugast@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Francois Dugast <francois.dugast@intel.com>
---
 drivers/gpu/drm/xe/xe_query.c |  5 ++---
 include/uapi/drm/xe_drm.h     | 10 ++++------
 2 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
index a27b10583f5a..8184df4abde1 100644
--- a/drivers/gpu/drm/xe/xe_query.c
+++ b/drivers/gpu/drm/xe/xe_query.c
@@ -149,7 +149,7 @@ query_cs_cycles(struct xe_device *xe,
 	if (!hwe)
 		return -EINVAL;
 
-	resp.cs_frequency = gt->info.clock_freq;
+	resp.cs_reference_clock = gt->info.clock_freq;
 
 	xe_device_mem_access_get(xe);
 	xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL);
@@ -167,7 +167,7 @@ query_cs_cycles(struct xe_device *xe,
 	resp.width = 36;
 
 	/* Only write to the output fields of user query */
-	if (put_user(resp.cs_frequency, &query_ptr->cs_frequency))
+	if (put_user(resp.cs_reference_clock, &query_ptr->cs_reference_clock))
 		return -EFAULT;
 
 	if (put_user(resp.cpu_timestamp, &query_ptr->cpu_timestamp))
@@ -380,7 +380,6 @@ static int query_gt_list(struct xe_device *xe, struct drm_xe_device_query *query
 		else
 			gt_list->gt_list[id].type = XE_QUERY_GT_TYPE_MAIN;
 		gt_list->gt_list[id].gt_id = gt->info.id;
-		gt_list->gt_list[id].clock_freq = gt->info.clock_freq;
 		if (!IS_DGFX(xe))
 			gt_list->gt_list[id].native_mem_regions = 0x1;
 		else
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index f306cae6d467..026536a20253 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -249,8 +249,8 @@ struct drm_xe_query_mem_region {
  * relevant GPU timestamp. clockid is used to return the specific CPU
  * timestamp.
  *
- * The query returns the command streamer cycles and the frequency that can
- * be used to calculate the command streamer timestamp. In addition the
+ * The query returns the command streamer cycles and the reference clock that
+ * can be used to calculate the command streamer timestamp. In addition the
  * query returns a set of cpu timestamps that indicate when the command
  * streamer cycle count was captured.
  */
@@ -267,8 +267,8 @@ struct drm_xe_query_cs_cycles {
 	 */
 	__u64 cs_cycles;
 
-	/** Frequency of the cs cycles in Hz. */
-	__u64 cs_frequency;
+	/** Reference Clock of the cs cycles in Hz. */
+	__u64 cs_reference_clock;
 
 	/**
 	 * CPU timestamp in ns. The timestamp is captured before reading the
@@ -382,8 +382,6 @@ struct drm_xe_query_gt {
 	__u16 type;
 	/** @gt_id: Unique ID of this GT within the PCI Device */
 	__u16 gt_id;
-	/** @clock_freq: A clock frequency for timestamp */
-	__u32 clock_freq;
 	/**
 	 * @native_mem_regions: Bit mask of instances from
 	 * drm_xe_query_mem_usage that lives on the same GPU/Tile and have
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 23/30] drm/xe: Extend drm_xe_vm_bind_op
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (21 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 22/30] drm/xe/uapi: Crystal Reference Clock updates Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 24/30] drm/xe: Add uAPI to query micro-controler firmware version Francois Dugast
                   ` (14 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast, Lucas De Marchi, Rodrigo Vivi

From: Mika Kuoppala <mika.kuoppala@linux.intel.com>

The bind api is extensible but for a single bind op, there
is not a mechanism to extend. Add extensions field to
struct drm_xe_vm_bind_op.

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Francois Dugast <francois.dugast@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Dominik Grzegorzek <dominik.grzegorzek@intel.com>
Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
---
 include/uapi/drm/xe_drm.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index 026536a20253..2521ae703d30 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -657,6 +657,9 @@ struct drm_xe_vm_destroy {
 };
 
 struct drm_xe_vm_bind_op {
+	/** @extensions: Pointer to the first extension struct, if any */
+	__u64 extensions;
+
 	/**
 	 * @obj: GEM object to operate on, MBZ for MAP_USERPTR, MBZ for UNMAP
 	 */
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 24/30] drm/xe: Add uAPI to query micro-controler firmware version
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (22 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 23/30] drm/xe: Extend drm_xe_vm_bind_op Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 25/30] drm/xe/uapi: Document DRM_XE_DEVICE_QUERY_HWCONFIG Francois Dugast
                   ` (13 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe

From: José Roberto de Souza <jose.souza@intel.com>

Due to a bug in GuC firmware, Mesa can't enable by default the usage of
compute engines in DG2 and newer.

A new GuC firmware fixed the issue but until now there was no way
for Mesa to know if KMD was running with the fixed GuC version or not,
so this uAPI is required.

It may be expanded in future to query other firmware versions too.

More information: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23661
Mesa usage: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25233

v2:
- changed to submission version
- added branch version to be future proof
- checking if pads and reserved are zero

v3:
- add braces around case XE_QUERY_UC_TYPE_GUC to make CI happy

Cc: John Harrison <John.C.Harrison@Intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
---
 drivers/gpu/drm/xe/xe_query.c | 41 +++++++++++++++++++++++++++++++
 include/uapi/drm/xe_drm.h     | 45 +++++++++++++++++++++++++++++------
 2 files changed, 79 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
index 8184df4abde1..7a0ffd9a654a 100644
--- a/drivers/gpu/drm/xe/xe_query.c
+++ b/drivers/gpu/drm/xe/xe_query.c
@@ -500,6 +500,46 @@ static int query_gt_topology(struct xe_device *xe,
 	return 0;
 }
 
+static int
+query_uc_fw_version(struct xe_device *xe, struct drm_xe_device_query *query)
+{
+	struct drm_xe_query_uc_fw_version __user *query_ptr = u64_to_user_ptr(query->data);
+	size_t size = sizeof(struct drm_xe_query_uc_fw_version);
+	struct drm_xe_query_uc_fw_version resp;
+
+	if (query->size == 0) {
+		query->size = size;
+		return 0;
+	} else if (XE_IOCTL_DBG(xe, query->size != size)) {
+		return -EINVAL;
+	}
+
+	if (copy_from_user(&resp, query_ptr, size))
+		return -EFAULT;
+
+	if (XE_IOCTL_DBG(xe, resp.pad || resp.pad2 || resp.reserved))
+		return -EINVAL;
+
+	switch (resp.uc_type) {
+	case XE_QUERY_UC_TYPE_GUC: {
+		struct xe_guc *guc = &xe->tiles[0].primary_gt->uc.guc;
+
+		resp.major_ver = guc->submission_state.version.major;
+		resp.minor_ver = guc->submission_state.version.minor;
+		resp.patch_ver = guc->submission_state.version.patch;
+		resp.branch_ver = 0;
+		break;
+	}
+	default:
+		return -EINVAL;
+	}
+
+	if (copy_to_user(query_ptr, &resp, size))
+		return -EFAULT;
+
+	return 0;
+}
+
 static int (* const xe_query_funcs[])(struct xe_device *xe,
 				      struct drm_xe_device_query *query) = {
 	query_engines,
@@ -509,6 +549,7 @@ static int (* const xe_query_funcs[])(struct xe_device *xe,
 	query_hwconfig,
 	query_gt_topology,
 	query_cs_cycles,
+	query_uc_fw_version,
 };
 
 int xe_query_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index 2521ae703d30..cce36277ef68 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -467,6 +467,36 @@ struct drm_xe_query_topology_mask {
 	__u8 mask[];
 };
 
+/**
+ * struct drm_xe_query_uc_fw_version - query a micro-controller firmware version
+ *
+ * Given a uc_type this will return the major, minor, patch and branch version
+ * of the micro-controller firmware.
+ */
+struct drm_xe_query_uc_fw_version {
+	/** @uc: The micro-controller type to query firmware version */
+#define XE_QUERY_UC_TYPE_GUC 0
+	__u16 uc_type;
+
+	/** @pad: MBZ */
+	__u16 pad;
+
+	/* @major_ver: major uc fw version */
+	__u32 major_ver;
+	/* @minor_ver: minor uc fw version */
+	__u32 minor_ver;
+	/* @patch_ver: patch uc fw version */
+	__u32 patch_ver;
+	/* @branch_ver: branch uc fw version */
+	__u32 branch_ver;
+
+	/** @pad2: MBZ */
+	__u32 pad2;
+
+	/** @reserved: Reserved */
+	__u64 reserved;
+};
+
 /**
  * struct drm_xe_device_query - main structure to query device information
  *
@@ -512,13 +542,14 @@ struct drm_xe_device_query {
 	/** @extensions: Pointer to the first extension struct, if any */
 	__u64 extensions;
 
-#define DRM_XE_DEVICE_QUERY_ENGINES	0
-#define DRM_XE_DEVICE_QUERY_MEM_USAGE	1
-#define DRM_XE_DEVICE_QUERY_CONFIG	2
-#define DRM_XE_DEVICE_QUERY_GT_LIST	3
-#define DRM_XE_DEVICE_QUERY_HWCONFIG	4
-#define DRM_XE_DEVICE_QUERY_GT_TOPOLOGY	5
-#define DRM_XE_QUERY_CS_CYCLES		6
+#define DRM_XE_DEVICE_QUERY_ENGINES		0
+#define DRM_XE_DEVICE_QUERY_MEM_USAGE		1
+#define DRM_XE_DEVICE_QUERY_CONFIG		2
+#define DRM_XE_DEVICE_QUERY_GT_LIST		3
+#define DRM_XE_DEVICE_QUERY_HWCONFIG		4
+#define DRM_XE_DEVICE_QUERY_GT_TOPOLOGY		5
+#define DRM_XE_QUERY_CS_CYCLES			6
+#define DRM_XE_DEVICE_QUERY_UC_FW_VERSION	7
 	/** @query: The type of data to query */
 	__u32 query;
 
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 25/30] drm/xe/uapi: Document DRM_XE_DEVICE_QUERY_HWCONFIG
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (23 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 24/30] drm/xe: Add uAPI to query micro-controler firmware version Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 26/30] drm/xe/uapi: Add pad to drm_xe_engine_class_instance Francois Dugast
                   ` (12 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast

Add a documentation on the content and format of when using query type
DRM_XE_DEVICE_QUERY_HWCONFIG. The list of keys can be found in IGT
under lib/intel_hwconfig_types.h.

Signed-off-by: Francois Dugast <francois.dugast@intel.com>
---
 include/uapi/drm/xe_drm.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index cce36277ef68..79e47708d526 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -546,6 +546,11 @@ struct drm_xe_device_query {
 #define DRM_XE_DEVICE_QUERY_MEM_USAGE		1
 #define DRM_XE_DEVICE_QUERY_CONFIG		2
 #define DRM_XE_DEVICE_QUERY_GT_LIST		3
+	/*
+	 * Query type to retrieve the hardware configuration of the device
+	 * such as information on slices, memory, caches, and so on. It is
+	 * provided as a table of attributes (key / value).
+	 */
 #define DRM_XE_DEVICE_QUERY_HWCONFIG		4
 #define DRM_XE_DEVICE_QUERY_GT_TOPOLOGY		5
 #define DRM_XE_QUERY_CS_CYCLES			6
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 26/30] drm/xe/uapi: Add pad to drm_xe_engine_class_instance
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (24 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 25/30] drm/xe/uapi: Document DRM_XE_DEVICE_QUERY_HWCONFIG Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-29  0:36   ` Umesh Nerlige Ramappa
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 27/30] drm/xe: Extend uAPI to query HuC micro-controler firmware version Francois Dugast
                   ` (11 subsequent siblings)
  37 siblings, 1 reply; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast

Add pad to reserve space for future uses such as special configurations
for media.

Signed-off-by: Francois Dugast <francois.dugast@intel.com>
---
 include/uapi/drm/xe_drm.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index 79e47708d526..84091860c7d2 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -143,6 +143,8 @@ struct drm_xe_engine_class_instance {
 
 	__u16 engine_instance;
 	__u16 gt_id;
+	/** @pad: MBZ */
+	__u32 pad;
 };
 
 /**
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 27/30] drm/xe: Extend uAPI to query HuC micro-controler firmware version
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (25 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 26/30] drm/xe/uapi: Add pad to drm_xe_engine_class_instance Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 16:46   ` Souza, Jose
  2023-10-10 19:10   ` Lucas De Marchi
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 28/30] drm/xe: Remove useless query config num_params Francois Dugast
                   ` (10 subsequent siblings)
  37 siblings, 2 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast

The infrastructure to query GuC firmware version is already in place. It
is extended with a new micro-controller type to query the HuC firmware
version. It can be used from user space to know if HuC is running.

Signed-off-by: Francois Dugast <francois.dugast@intel.com>
---
 drivers/gpu/drm/xe/xe_query.c | 9 +++++++++
 include/uapi/drm/xe_drm.h     | 1 +
 2 files changed, 10 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
index 7a0ffd9a654a..c250ca534bb9 100644
--- a/drivers/gpu/drm/xe/xe_query.c
+++ b/drivers/gpu/drm/xe/xe_query.c
@@ -530,6 +530,15 @@ query_uc_fw_version(struct xe_device *xe, struct drm_xe_device_query *query)
 		resp.branch_ver = 0;
 		break;
 	}
+	case XE_QUERY_UC_TYPE_HUC: {
+		struct xe_huc *huc = &xe->tiles[0].primary_gt->uc.huc;
+
+		resp.major_ver = huc->fw.major_ver_found;
+		resp.minor_ver = huc->fw.minor_ver_found;
+		resp.patch_ver = huc->fw.patch_ver_found;
+		resp.branch_ver = 0;
+		break;
+	}
 	default:
 		return -EINVAL;
 	}
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index 84091860c7d2..fe7e83a5bd3e 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -478,6 +478,7 @@ struct drm_xe_query_topology_mask {
 struct drm_xe_query_uc_fw_version {
 	/** @uc: The micro-controller type to query firmware version */
 #define XE_QUERY_UC_TYPE_GUC 0
+#define XE_QUERY_UC_TYPE_HUC 1
 	__u16 uc_type;
 
 	/** @pad: MBZ */
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 28/30] drm/xe: Remove useless query config num_params
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (26 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 27/30] drm/xe: Extend uAPI to query HuC micro-controler firmware version Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 29/30] drm/xe/uapi: Add missing DRM_ prefix in uAPI constants Francois Dugast
                   ` (9 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast

num_params is only used to represent the number of query types.
Removing it as it is useless and should not be used.

Signed-off-by: Francois Dugast <francois.dugast@intel.com>
---
 drivers/gpu/drm/xe/xe_query.c | 6 +++---
 include/uapi/drm/xe_drm.h     | 7 -------
 2 files changed, 3 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
index c250ca534bb9..17857827d3bd 100644
--- a/drivers/gpu/drm/xe/xe_query.c
+++ b/drivers/gpu/drm/xe/xe_query.c
@@ -308,9 +308,10 @@ static int query_memory_usage(struct xe_device *xe,
 
 static int query_config(struct xe_device *xe, struct drm_xe_device_query *query)
 {
-	u32 num_params = XE_QUERY_CONFIG_NUM_PARAM;
+#define XE_QUERY_CONFIG_NUM_PARAM	(XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY + 1)
 	size_t size =
-		sizeof(struct drm_xe_query_config) + num_params * sizeof(u64);
+		sizeof(struct drm_xe_query_config)
+		+ XE_QUERY_CONFIG_NUM_PARAM * sizeof(u64);
 	struct drm_xe_query_config __user *query_ptr =
 		u64_to_user_ptr(query->data);
 	struct drm_xe_query_config *config;
@@ -326,7 +327,6 @@ static int query_config(struct xe_device *xe, struct drm_xe_device_query *query)
 	if (!config)
 		return -ENOMEM;
 
-	config->num_params = num_params;
 	config->info[XE_QUERY_CONFIG_REV_AND_DEVICE_ID] =
 		xe->info.devid | (xe->info.revid << 16);
 	if (xe_device_get_root_tile(xe)->mem.vram.usable_size)
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index fe7e83a5bd3e..1ca17e949cea 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -320,9 +320,6 @@ struct drm_xe_query_mem_usage {
  * struct drm_xe_query_config in .data.
  */
 struct drm_xe_query_config {
-	/** @num_params: number of parameters returned in info */
-	__u32 num_params;
-
 	/** @pad: MBZ */
 	__u32 pad;
 
@@ -360,10 +357,6 @@ struct drm_xe_query_config {
 	 * Value of the highest available exec queue priority
 	 */
 #define XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY	6
-	/*
-	 * Number of elements in the info array
-	 */
-#define XE_QUERY_CONFIG_NUM_PARAM		(XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY + 1)
 	/** @info: array of elements containing the config info */
 	__u64 info[];
 };
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 29/30] drm/xe/uapi: Add missing DRM_ prefix in uAPI constants
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (27 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 28/30] drm/xe: Remove useless query config num_params Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 16:24   ` Souza, Jose
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 30/30] drm/xe/uapi: Add _FLAG to uAPI constants usable for flags Francois Dugast
                   ` (8 subsequent siblings)
  37 siblings, 1 reply; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast

Most constants defined in xe_drm.h use DRM_XE_ as prefix which is
helpful to identify the name space. Make this systematic and add
this prefix where it was missing.

Signed-off-by: Francois Dugast <francois.dugast@intel.com>
---
 drivers/gpu/drm/xe/xe_bo.c         |  14 ++--
 drivers/gpu/drm/xe/xe_exec_queue.c |  20 +++---
 drivers/gpu/drm/xe/xe_gt.c         |   2 +-
 drivers/gpu/drm/xe/xe_pmu.c        |  20 +++---
 drivers/gpu/drm/xe/xe_query.c      |  38 +++++-----
 drivers/gpu/drm/xe/xe_vm.c         |  54 +++++++-------
 drivers/gpu/drm/xe/xe_vm_doc.h     |  12 ++--
 drivers/gpu/drm/xe/xe_vm_madvise.c |   8 +--
 include/uapi/drm/xe_drm.h          | 110 ++++++++++++++---------------
 9 files changed, 139 insertions(+), 139 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
index 61789c0e88fb..5b9f07838061 100644
--- a/drivers/gpu/drm/xe/xe_bo.c
+++ b/drivers/gpu/drm/xe/xe_bo.c
@@ -208,7 +208,7 @@ static int __xe_bo_placement_for_flags(struct xe_device *xe, struct xe_bo *bo,
 
 	/* The order of placements should indicate preferred location */
 
-	if (bo->props.preferred_mem_class == XE_MEM_REGION_CLASS_SYSMEM) {
+	if (bo->props.preferred_mem_class == DRM_XE_MEM_REGION_CLASS_SYSMEM) {
 		try_add_system(bo, places, bo_flags, &c);
 		try_add_vram(xe, bo, places, bo_flags, &c);
 	} else {
@@ -1773,9 +1773,9 @@ int xe_gem_create_ioctl(struct drm_device *dev, void *data,
 		return -EINVAL;
 
 	if (XE_IOCTL_DBG(xe, args->flags &
-			 ~(XE_GEM_CREATE_FLAG_DEFER_BACKING |
-			   XE_GEM_CREATE_FLAG_SCANOUT |
-			   XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM |
+			 ~(DRM_XE_GEM_CREATE_FLAG_DEFER_BACKING |
+			   DRM_XE_GEM_CREATE_FLAG_SCANOUT |
+			   DRM_XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM |
 			   xe->info.mem_region_mask)))
 		return -EINVAL;
 
@@ -1795,15 +1795,15 @@ int xe_gem_create_ioctl(struct drm_device *dev, void *data,
 	if (XE_IOCTL_DBG(xe, args->size & ~PAGE_MASK))
 		return -EINVAL;
 
-	if (args->flags & XE_GEM_CREATE_FLAG_DEFER_BACKING)
+	if (args->flags & DRM_XE_GEM_CREATE_FLAG_DEFER_BACKING)
 		bo_flags |= XE_BO_DEFER_BACKING;
 
-	if (args->flags & XE_GEM_CREATE_FLAG_SCANOUT)
+	if (args->flags & DRM_XE_GEM_CREATE_FLAG_SCANOUT)
 		bo_flags |= XE_BO_SCANOUT_BIT;
 
 	bo_flags |= args->flags << (ffs(XE_BO_CREATE_SYSTEM_BIT) - 1);
 
-	if (args->flags & XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM) {
+	if (args->flags & DRM_XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM) {
 		if (XE_IOCTL_DBG(xe, !(bo_flags & XE_BO_CREATE_VRAM_MASK)))
 			return -EINVAL;
 
diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c
index dd61c4267e24..98f9d4cd9cc5 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue.c
+++ b/drivers/gpu/drm/xe/xe_exec_queue.c
@@ -403,14 +403,14 @@ typedef int (*xe_exec_queue_set_property_fn)(struct xe_device *xe,
 					     u64 value, bool create);
 
 static const xe_exec_queue_set_property_fn exec_queue_set_property_funcs[] = {
-	[XE_EXEC_QUEUE_SET_PROPERTY_PRIORITY] = exec_queue_set_priority,
-	[XE_EXEC_QUEUE_SET_PROPERTY_TIMESLICE] = exec_queue_set_timeslice,
-	[XE_EXEC_QUEUE_SET_PROPERTY_PREEMPTION_TIMEOUT] = exec_queue_set_preemption_timeout,
-	[XE_EXEC_QUEUE_SET_PROPERTY_PERSISTENCE] = exec_queue_set_persistence,
-	[XE_EXEC_QUEUE_SET_PROPERTY_JOB_TIMEOUT] = exec_queue_set_job_timeout,
-	[XE_EXEC_QUEUE_SET_PROPERTY_ACC_TRIGGER] = exec_queue_set_acc_trigger,
-	[XE_EXEC_QUEUE_SET_PROPERTY_ACC_NOTIFY] = exec_queue_set_acc_notify,
-	[XE_EXEC_QUEUE_SET_PROPERTY_ACC_GRANULARITY] = exec_queue_set_acc_granularity,
+	[DRM_XE_EXEC_QUEUE_SET_PROPERTY_PRIORITY] = exec_queue_set_priority,
+	[DRM_XE_EXEC_QUEUE_SET_PROPERTY_TIMESLICE] = exec_queue_set_timeslice,
+	[DRM_XE_EXEC_QUEUE_SET_PROPERTY_PREEMPTION_TIMEOUT] = exec_queue_set_preemption_timeout,
+	[DRM_XE_EXEC_QUEUE_SET_PROPERTY_PERSISTENCE] = exec_queue_set_persistence,
+	[DRM_XE_EXEC_QUEUE_SET_PROPERTY_JOB_TIMEOUT] = exec_queue_set_job_timeout,
+	[DRM_XE_EXEC_QUEUE_SET_PROPERTY_ACC_TRIGGER] = exec_queue_set_acc_trigger,
+	[DRM_XE_EXEC_QUEUE_SET_PROPERTY_ACC_NOTIFY] = exec_queue_set_acc_notify,
+	[DRM_XE_EXEC_QUEUE_SET_PROPERTY_ACC_GRANULARITY] = exec_queue_set_acc_granularity,
 };
 
 static int exec_queue_user_ext_set_property(struct xe_device *xe,
@@ -442,7 +442,7 @@ typedef int (*xe_exec_queue_user_extension_fn)(struct xe_device *xe,
 					       bool create);
 
 static const xe_exec_queue_set_property_fn exec_queue_user_extension_funcs[] = {
-	[XE_EXEC_QUEUE_EXTENSION_SET_PROPERTY] = exec_queue_user_ext_set_property,
+	[DRM_XE_EXEC_QUEUE_EXTENSION_SET_PROPERTY] = exec_queue_user_ext_set_property,
 };
 
 #define MAX_USER_EXTENSIONS	16
@@ -761,7 +761,7 @@ int xe_exec_queue_get_property_ioctl(struct drm_device *dev, void *data,
 		return -ENOENT;
 
 	switch (args->property) {
-	case XE_EXEC_QUEUE_GET_PROPERTY_BAN:
+	case DRM_XE_EXEC_QUEUE_GET_PROPERTY_BAN:
 		args->value = !!(q->flags & EXEC_QUEUE_FLAG_BANNED);
 		ret = 0;
 		break;
diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
index 1aa44d4f9ac1..5370e0c88bfd 100644
--- a/drivers/gpu/drm/xe/xe_gt.c
+++ b/drivers/gpu/drm/xe/xe_gt.c
@@ -534,7 +534,7 @@ static void xe_uevent_gt_reset_failure(struct pci_dev *pdev, u8 tile_id, u8 gt_i
 {
 	char *reset_event[4];
 
-	reset_event[0] = XE_RESET_FAILED_UEVENT "=NEEDS_RESET";
+	reset_event[0] = DRM_XE_RESET_FAILED_UEVENT "=NEEDS_RESET";
 	reset_event[1] = kasprintf(GFP_KERNEL, "TILE_ID=%d", tile_id);
 	reset_event[2] = kasprintf(GFP_KERNEL, "GT_ID=%d", gt_id);
 	reset_event[3] = NULL;
diff --git a/drivers/gpu/drm/xe/xe_pmu.c b/drivers/gpu/drm/xe/xe_pmu.c
index abfc0b3aeac4..8378ca3007d9 100644
--- a/drivers/gpu/drm/xe/xe_pmu.c
+++ b/drivers/gpu/drm/xe/xe_pmu.c
@@ -114,17 +114,17 @@ config_status(struct xe_device *xe, u64 config)
 		return -ENOENT;
 
 	switch (config_counter(config)) {
-	case XE_PMU_INTERRUPTS(0):
+	case DRM_XE_PMU_INTERRUPTS(0):
 		if (gt_id)
 			return -ENOENT;
 		break;
-	case XE_PMU_RENDER_GROUP_BUSY(0):
-	case XE_PMU_COPY_GROUP_BUSY(0):
-	case XE_PMU_ANY_ENGINE_GROUP_BUSY(0):
+	case DRM_XE_PMU_RENDER_GROUP_BUSY(0):
+	case DRM_XE_PMU_COPY_GROUP_BUSY(0):
+	case DRM_XE_PMU_ANY_ENGINE_GROUP_BUSY(0):
 		if (gt->info.type == XE_GT_TYPE_MEDIA)
 			return -ENOENT;
 		break;
-	case XE_PMU_MEDIA_GROUP_BUSY(0):
+	case DRM_XE_PMU_MEDIA_GROUP_BUSY(0):
 		if (!(gt->info.engine_mask & (BIT(XE_HW_ENGINE_VCS0) | BIT(XE_HW_ENGINE_VECS0))))
 			return -ENOENT;
 		break;
@@ -185,13 +185,13 @@ static u64 __xe_pmu_event_read(struct perf_event *event)
 	u64 val;
 
 	switch (config_counter(config)) {
-	case XE_PMU_INTERRUPTS(0):
+	case DRM_XE_PMU_INTERRUPTS(0):
 		val = READ_ONCE(pmu->irq_count);
 		break;
-	case XE_PMU_RENDER_GROUP_BUSY(0):
-	case XE_PMU_COPY_GROUP_BUSY(0):
-	case XE_PMU_ANY_ENGINE_GROUP_BUSY(0):
-	case XE_PMU_MEDIA_GROUP_BUSY(0):
+	case DRM_XE_PMU_RENDER_GROUP_BUSY(0):
+	case DRM_XE_PMU_COPY_GROUP_BUSY(0):
+	case DRM_XE_PMU_ANY_ENGINE_GROUP_BUSY(0):
+	case DRM_XE_PMU_MEDIA_GROUP_BUSY(0):
 		val = engine_group_busyness_read(gt, config);
 		break;
 	default:
diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
index 17857827d3bd..86ee77ea5ba3 100644
--- a/drivers/gpu/drm/xe/xe_query.c
+++ b/drivers/gpu/drm/xe/xe_query.c
@@ -264,7 +264,7 @@ static int query_memory_usage(struct xe_device *xe,
 		return -ENOMEM;
 
 	man = ttm_manager_type(&xe->ttm, XE_PL_TT);
-	usage->regions[0].mem_class = XE_MEM_REGION_CLASS_SYSMEM;
+	usage->regions[0].mem_class = DRM_XE_MEM_REGION_CLASS_SYSMEM;
 	usage->regions[0].instance = 0;
 	usage->regions[0].min_page_size = PAGE_SIZE;
 	usage->regions[0].total_size = man->size << PAGE_SHIFT;
@@ -276,7 +276,7 @@ static int query_memory_usage(struct xe_device *xe,
 		man = ttm_manager_type(&xe->ttm, i);
 		if (man) {
 			usage->regions[usage->num_regions].mem_class =
-				XE_MEM_REGION_CLASS_VRAM;
+				DRM_XE_MEM_REGION_CLASS_VRAM;
 			usage->regions[usage->num_regions].instance =
 				usage->num_regions;
 			usage->regions[usage->num_regions].min_page_size =
@@ -308,7 +308,7 @@ static int query_memory_usage(struct xe_device *xe,
 
 static int query_config(struct xe_device *xe, struct drm_xe_device_query *query)
 {
-#define XE_QUERY_CONFIG_NUM_PARAM	(XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY + 1)
+#define XE_QUERY_CONFIG_NUM_PARAM	(DRM_XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY + 1)
 	size_t size =
 		sizeof(struct drm_xe_query_config)
 		+ XE_QUERY_CONFIG_NUM_PARAM * sizeof(u64);
@@ -327,18 +327,18 @@ static int query_config(struct xe_device *xe, struct drm_xe_device_query *query)
 	if (!config)
 		return -ENOMEM;
 
-	config->info[XE_QUERY_CONFIG_REV_AND_DEVICE_ID] =
+	config->info[DRM_XE_QUERY_CONFIG_REV_AND_DEVICE_ID] =
 		xe->info.devid | (xe->info.revid << 16);
 	if (xe_device_get_root_tile(xe)->mem.vram.usable_size)
-		config->info[XE_QUERY_CONFIG_FLAGS] =
-			XE_QUERY_CONFIG_FLAGS_HAS_VRAM;
-	config->info[XE_QUERY_CONFIG_MIN_ALIGNMENT] =
+		config->info[DRM_XE_QUERY_CONFIG_FLAGS] =
+			DRM_DRM_XE_QUERY_CONFIG_FLAGS_HAS_VRAM;
+	config->info[DRM_XE_QUERY_CONFIG_MIN_ALIGNMENT] =
 		xe->info.vram_flags & XE_VRAM_FLAGS_NEED64K ? SZ_64K : SZ_4K;
-	config->info[XE_QUERY_CONFIG_VA_BITS] = xe->info.va_bits;
-	config->info[XE_QUERY_CONFIG_GT_COUNT] = xe->info.gt_count;
-	config->info[XE_QUERY_CONFIG_MEM_REGION_COUNT] =
+	config->info[DRM_XE_QUERY_CONFIG_VA_BITS] = xe->info.va_bits;
+	config->info[DRM_XE_QUERY_CONFIG_GT_COUNT] = xe->info.gt_count;
+	config->info[DRM_XE_QUERY_CONFIG_MEM_REGION_COUNT] =
 		hweight_long(xe->info.mem_region_mask);
-	config->info[XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY] =
+	config->info[DRM_XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY] =
 		xe_exec_queue_device_get_max_priority(xe);
 
 	if (copy_to_user(query_ptr, config, size)) {
@@ -374,11 +374,11 @@ static int query_gt_list(struct xe_device *xe, struct drm_xe_device_query *query
 	gt_list->num_gt = xe->info.gt_count;
 	for_each_gt(gt, xe, id) {
 		if (xe_gt_is_media_type(gt))
-			gt_list->gt_list[id].type = XE_QUERY_GT_TYPE_MEDIA;
+			gt_list->gt_list[id].type = DRM_XE_QUERY_GT_TYPE_MEDIA;
 		else if (gt_to_tile(gt)->id > 0)
-			gt_list->gt_list[id].type = XE_QUERY_GT_TYPE_REMOTE;
+			gt_list->gt_list[id].type = DRM_XE_QUERY_GT_TYPE_REMOTE;
 		else
-			gt_list->gt_list[id].type = XE_QUERY_GT_TYPE_MAIN;
+			gt_list->gt_list[id].type = DRM_XE_QUERY_GT_TYPE_MAIN;
 		gt_list->gt_list[id].gt_id = gt->info.id;
 		if (!IS_DGFX(xe))
 			gt_list->gt_list[id].native_mem_regions = 0x1;
@@ -475,21 +475,21 @@ static int query_gt_topology(struct xe_device *xe,
 	for_each_gt(gt, xe, id) {
 		topo.gt_id = id;
 
-		topo.type = XE_TOPO_DSS_GEOMETRY;
+		topo.type = DRM_XE_TOPO_DSS_GEOMETRY;
 		query_ptr = copy_mask(query_ptr, &topo,
 				      gt->fuse_topo.g_dss_mask,
 				      sizeof(gt->fuse_topo.g_dss_mask));
 		if (IS_ERR(query_ptr))
 			return PTR_ERR(query_ptr);
 
-		topo.type = XE_TOPO_DSS_COMPUTE;
+		topo.type = DRM_XE_TOPO_DSS_COMPUTE;
 		query_ptr = copy_mask(query_ptr, &topo,
 				      gt->fuse_topo.c_dss_mask,
 				      sizeof(gt->fuse_topo.c_dss_mask));
 		if (IS_ERR(query_ptr))
 			return PTR_ERR(query_ptr);
 
-		topo.type = XE_TOPO_EU_PER_DSS;
+		topo.type = DRM_XE_TOPO_EU_PER_DSS;
 		query_ptr = copy_mask(query_ptr, &topo,
 				      gt->fuse_topo.eu_mask_per_dss,
 				      sizeof(gt->fuse_topo.eu_mask_per_dss));
@@ -521,7 +521,7 @@ query_uc_fw_version(struct xe_device *xe, struct drm_xe_device_query *query)
 		return -EINVAL;
 
 	switch (resp.uc_type) {
-	case XE_QUERY_UC_TYPE_GUC: {
+	case DRM_XE_QUERY_UC_TYPE_GUC: {
 		struct xe_guc *guc = &xe->tiles[0].primary_gt->uc.guc;
 
 		resp.major_ver = guc->submission_state.version.major;
@@ -530,7 +530,7 @@ query_uc_fw_version(struct xe_device *xe, struct drm_xe_device_query *query)
 		resp.branch_ver = 0;
 		break;
 	}
-	case XE_QUERY_UC_TYPE_HUC: {
+	case DRM_XE_QUERY_UC_TYPE_HUC: {
 		struct xe_huc *huc = &xe->tiles[0].primary_gt->uc.huc;
 
 		resp.major_ver = huc->fw.major_ver_found;
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index acf097c57259..f985580b0eeb 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -2049,8 +2049,8 @@ vm_bind_ioctl_ops_create(struct xe_vm *vm, struct xe_bo *bo,
 	       (ULL)bo_offset_or_userptr);
 
 	switch (operation) {
-	case XE_VM_BIND_OP_MAP:
-	case XE_VM_BIND_OP_MAP_USERPTR:
+	case DRM_XE_VM_BIND_OP_MAP:
+	case DRM_DRM_XE_VM_BIND_OP_MAP_USERPTR:
 		ops = drm_gpuva_sm_map_ops_create(&vm->mgr, addr, range,
 						  obj, bo_offset_or_userptr);
 		if (IS_ERR(ops))
@@ -2061,13 +2061,13 @@ vm_bind_ioctl_ops_create(struct xe_vm *vm, struct xe_bo *bo,
 
 			op->tile_mask = tile_mask;
 			op->map.immediate =
-				flags & XE_VM_BIND_FLAG_IMMEDIATE;
+				flags & DRM_XE_VM_BIND_FLAG_IMMEDIATE;
 			op->map.read_only =
-				flags & XE_VM_BIND_FLAG_READONLY;
-			op->map.is_null = flags & XE_VM_BIND_FLAG_NULL;
+				flags & DRM_XE_VM_BIND_FLAG_READONLY;
+			op->map.is_null = flags & DRM_XE_VM_BIND_FLAG_NULL;
 		}
 		break;
-	case XE_VM_BIND_OP_UNMAP:
+	case DRM_XE_VM_BIND_OP_UNMAP:
 		ops = drm_gpuva_sm_unmap_ops_create(&vm->mgr, addr, range);
 		if (IS_ERR(ops))
 			return ops;
@@ -2078,7 +2078,7 @@ vm_bind_ioctl_ops_create(struct xe_vm *vm, struct xe_bo *bo,
 			op->tile_mask = tile_mask;
 		}
 		break;
-	case XE_VM_BIND_OP_PREFETCH:
+	case DRM_XE_VM_BIND_OP_PREFETCH:
 		ops = drm_gpuva_prefetch_ops_create(&vm->mgr, addr, range);
 		if (IS_ERR(ops))
 			return ops;
@@ -2090,7 +2090,7 @@ vm_bind_ioctl_ops_create(struct xe_vm *vm, struct xe_bo *bo,
 			op->prefetch.region = region;
 		}
 		break;
-	case XE_VM_BIND_OP_UNMAP_ALL:
+	case DRM_DRM_XE_VM_BIND_OP_UNMAP_ALL:
 		xe_assert(vm->xe, bo);
 
 		err = xe_bo_lock(bo, true);
@@ -2683,13 +2683,13 @@ static int vm_bind_ioctl_ops_execute(struct xe_vm *vm,
 
 #ifdef TEST_VM_ASYNC_OPS_ERROR
 #define SUPPORTED_FLAGS	\
-	(FORCE_ASYNC_OP_ERROR | XE_VM_BIND_FLAG_ASYNC | \
-	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | \
-	 XE_VM_BIND_FLAG_NULL | 0xffff)
+	(FORCE_ASYNC_OP_ERROR | DRM_XE_VM_BIND_FLAG_ASYNC | \
+	 DRM_XE_VM_BIND_FLAG_READONLY | DRM_XE_VM_BIND_FLAG_IMMEDIATE | \
+	 DRM_XE_VM_BIND_FLAG_NULL | 0xffff)
 #else
 #define SUPPORTED_FLAGS	\
-	(XE_VM_BIND_FLAG_ASYNC | XE_VM_BIND_FLAG_READONLY | \
-	 XE_VM_BIND_FLAG_IMMEDIATE | XE_VM_BIND_FLAG_NULL | \
+	(DRM_XE_VM_BIND_FLAG_ASYNC | DRM_XE_VM_BIND_FLAG_READONLY | \
+	 DRM_XE_VM_BIND_FLAG_IMMEDIATE | DRM_XE_VM_BIND_FLAG_NULL | \
 	 0xffff)
 #endif
 #define XE_64K_PAGE_MASK 0xffffull
@@ -2737,45 +2737,45 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
 		u32 obj = (*bind_ops)[i].obj;
 		u64 obj_offset = (*bind_ops)[i].obj_offset;
 		u32 region = (*bind_ops)[i].region;
-		bool is_null = flags & XE_VM_BIND_FLAG_NULL;
+		bool is_null = flags & DRM_XE_VM_BIND_FLAG_NULL;
 
 		if (i == 0) {
-			*async = !!(flags & XE_VM_BIND_FLAG_ASYNC);
+			*async = !!(flags & DRM_XE_VM_BIND_FLAG_ASYNC);
 			if (XE_IOCTL_DBG(xe, !*async && args->num_syncs)) {
 				err = -EINVAL;
 				goto free_bind_ops;
 			}
 		} else if (XE_IOCTL_DBG(xe, *async !=
-					!!(flags & XE_VM_BIND_FLAG_ASYNC))) {
+					!!(flags & DRM_XE_VM_BIND_FLAG_ASYNC))) {
 			err = -EINVAL;
 			goto free_bind_ops;
 		}
 
-		if (XE_IOCTL_DBG(xe, op > XE_VM_BIND_OP_PREFETCH) ||
+		if (XE_IOCTL_DBG(xe, op > DRM_XE_VM_BIND_OP_PREFETCH) ||
 		    XE_IOCTL_DBG(xe, flags & ~SUPPORTED_FLAGS) ||
 		    XE_IOCTL_DBG(xe, obj && is_null) ||
 		    XE_IOCTL_DBG(xe, obj_offset && is_null) ||
-		    XE_IOCTL_DBG(xe, op != XE_VM_BIND_OP_MAP &&
+		    XE_IOCTL_DBG(xe, op != DRM_XE_VM_BIND_OP_MAP &&
 				 is_null) ||
 		    XE_IOCTL_DBG(xe, !obj &&
-				 op == XE_VM_BIND_OP_MAP &&
+				 op == DRM_XE_VM_BIND_OP_MAP &&
 				 !is_null) ||
 		    XE_IOCTL_DBG(xe, !obj &&
-				 op == XE_VM_BIND_OP_UNMAP_ALL) ||
+				 op == DRM_DRM_XE_VM_BIND_OP_UNMAP_ALL) ||
 		    XE_IOCTL_DBG(xe, addr &&
-				 op == XE_VM_BIND_OP_UNMAP_ALL) ||
+				 op == DRM_DRM_XE_VM_BIND_OP_UNMAP_ALL) ||
 		    XE_IOCTL_DBG(xe, range &&
-				 op == XE_VM_BIND_OP_UNMAP_ALL) ||
+				 op == DRM_DRM_XE_VM_BIND_OP_UNMAP_ALL) ||
 		    XE_IOCTL_DBG(xe, obj &&
-				 op == XE_VM_BIND_OP_MAP_USERPTR) ||
+				 op == DRM_DRM_XE_VM_BIND_OP_MAP_USERPTR) ||
 		    XE_IOCTL_DBG(xe, obj &&
-				 op == XE_VM_BIND_OP_PREFETCH) ||
+				 op == DRM_XE_VM_BIND_OP_PREFETCH) ||
 		    XE_IOCTL_DBG(xe, region &&
-				 op != XE_VM_BIND_OP_PREFETCH) ||
+				 op != DRM_XE_VM_BIND_OP_PREFETCH) ||
 		    XE_IOCTL_DBG(xe, !(BIT(region) &
 				       xe->info.mem_region_mask)) ||
 		    XE_IOCTL_DBG(xe, obj &&
-				 op == XE_VM_BIND_OP_UNMAP)) {
+				 op == DRM_XE_VM_BIND_OP_UNMAP)) {
 			err = -EINVAL;
 			goto free_bind_ops;
 		}
@@ -2784,7 +2784,7 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
 		    XE_IOCTL_DBG(xe, addr & ~PAGE_MASK) ||
 		    XE_IOCTL_DBG(xe, range & ~PAGE_MASK) ||
 		    XE_IOCTL_DBG(xe, !range &&
-				 op != XE_VM_BIND_OP_UNMAP_ALL)) {
+				 op != DRM_DRM_XE_VM_BIND_OP_UNMAP_ALL)) {
 			err = -EINVAL;
 			goto free_bind_ops;
 		}
diff --git a/drivers/gpu/drm/xe/xe_vm_doc.h b/drivers/gpu/drm/xe/xe_vm_doc.h
index b1b2dc4a6089..1fd46b0e1079 100644
--- a/drivers/gpu/drm/xe/xe_vm_doc.h
+++ b/drivers/gpu/drm/xe/xe_vm_doc.h
@@ -32,9 +32,9 @@
  * Operations
  * ----------
  *
- * XE_VM_BIND_OP_MAP		- Create mapping for a BO
- * XE_VM_BIND_OP_UNMAP		- Destroy mapping for a BO / userptr
- * XE_VM_BIND_OP_MAP_USERPTR	- Create mapping for userptr
+ * DRM_XE_VM_BIND_OP_MAP		- Create mapping for a BO
+ * DRM_XE_VM_BIND_OP_UNMAP		- Destroy mapping for a BO / userptr
+ * DRM_DRM_XE_VM_BIND_OP_MAP_USERPTR	- Create mapping for userptr
  *
  * Implementation details
  * ~~~~~~~~~~~~~~~~~~~~~~
@@ -113,7 +113,7 @@
  * VM uses to report errors to. The ufence wait interface can be used to wait on
  * a VM going into an error state. Once an error is reported the VM's async
  * worker is paused. While the VM's async worker is paused sync,
- * XE_VM_BIND_OP_UNMAP operations are allowed (this can free memory). Once the
+ * DRM_XE_VM_BIND_OP_UNMAP operations are allowed (this can free memory). Once the
  * uses believe the error state is fixed, the async worker can be resumed via
  * XE_VM_BIND_OP_RESTART operation. When VM async bind work is restarted, the
  * first operation processed is the operation that caused the original error.
@@ -193,7 +193,7 @@
  * In a VM is in fault mode (TODO: link to fault mode), new bind operations that
  * create mappings are by default are deferred to the page fault handler (first
  * use). This behavior can be overriden by setting the flag
- * XE_VM_BIND_FLAG_IMMEDIATE which indicates to creating the mapping
+ * DRM_XE_VM_BIND_FLAG_IMMEDIATE which indicates to creating the mapping
  * immediately.
  *
  * User pointer
@@ -322,7 +322,7 @@
  *
  * By default, on a faulting VM binds just allocate the VMA and the actual
  * updating of the page tables is defered to the page fault handler. This
- * behavior can be overridden by setting the flag XE_VM_BIND_FLAG_IMMEDIATE in
+ * behavior can be overridden by setting the flag DRM_XE_VM_BIND_FLAG_IMMEDIATE in
  * the VM bind which will then do the bind immediately.
  *
  * Page fault handler
diff --git a/drivers/gpu/drm/xe/xe_vm_madvise.c b/drivers/gpu/drm/xe/xe_vm_madvise.c
index d2fd99462756..0eb477c3025f 100644
--- a/drivers/gpu/drm/xe/xe_vm_madvise.c
+++ b/drivers/gpu/drm/xe/xe_vm_madvise.c
@@ -19,10 +19,10 @@ static int madvise_preferred_mem_class(struct xe_device *xe, struct xe_vm *vm,
 {
 	int i, err;
 
-	if (XE_IOCTL_DBG(xe, value > XE_MEM_REGION_CLASS_VRAM))
+	if (XE_IOCTL_DBG(xe, value > DRM_XE_MEM_REGION_CLASS_VRAM))
 		return -EINVAL;
 
-	if (XE_IOCTL_DBG(xe, value == XE_MEM_REGION_CLASS_VRAM &&
+	if (XE_IOCTL_DBG(xe, value == DRM_XE_MEM_REGION_CLASS_VRAM &&
 			 !xe->info.is_dgfx))
 		return -EINVAL;
 
@@ -75,10 +75,10 @@ static int madvise_preferred_mem_class_gt(struct xe_device *xe,
 	u32 gt_id = upper_32_bits(value);
 	u32 mem_class = lower_32_bits(value);
 
-	if (XE_IOCTL_DBG(xe, mem_class > XE_MEM_REGION_CLASS_VRAM))
+	if (XE_IOCTL_DBG(xe, mem_class > DRM_XE_MEM_REGION_CLASS_VRAM))
 		return -EINVAL;
 
-	if (XE_IOCTL_DBG(xe, mem_class == XE_MEM_REGION_CLASS_VRAM &&
+	if (XE_IOCTL_DBG(xe, mem_class == DRM_XE_MEM_REGION_CLASS_VRAM &&
 			 !xe->info.is_dgfx))
 		return -EINVAL;
 
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index 1ca17e949cea..9e8e7b4c42b2 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -19,12 +19,12 @@ extern "C" {
 /**
  * DOC: uevent generated by xe on it's pci node.
  *
- * XE_RESET_FAILED_UEVENT - Event is generated when attempt to reset gt
+ * DRM_XE_RESET_FAILED_UEVENT - Event is generated when attempt to reset gt
  * fails. The value supplied with the event is always "NEEDS_RESET".
  * Additional information supplied is tile id and gt id of the gt unit for
  * which reset has failed.
  */
-#define XE_RESET_FAILED_UEVENT "DEVICE_STATUS"
+#define DRM_XE_RESET_FAILED_UEVENT "DEVICE_STATUS"
 
 /**
  * struct xe_user_extension - Base class for defining a chain of extensions
@@ -151,14 +151,14 @@ struct drm_xe_engine_class_instance {
  * enum drm_xe_memory_class - Supported memory classes.
  */
 enum drm_xe_memory_class {
-	/** @XE_MEM_REGION_CLASS_SYSMEM: Represents system memory. */
-	XE_MEM_REGION_CLASS_SYSMEM = 0,
+	/** @DRM_XE_MEM_REGION_CLASS_SYSMEM: Represents system memory. */
+	DRM_XE_MEM_REGION_CLASS_SYSMEM = 0,
 	/**
-	 * @XE_MEM_REGION_CLASS_VRAM: On discrete platforms, this
+	 * @DRM_XE_MEM_REGION_CLASS_VRAM: On discrete platforms, this
 	 * represents the memory that is local to the device, which we
 	 * call VRAM. Not valid on integrated platforms.
 	 */
-	XE_MEM_REGION_CLASS_VRAM
+	DRM_XE_MEM_REGION_CLASS_VRAM
 };
 
 /**
@@ -218,7 +218,7 @@ struct drm_xe_query_mem_region {
 	 * always equal the @total_size, since all of it will be CPU
 	 * accessible.
 	 *
-	 * Note this is only tracked for XE_MEM_REGION_CLASS_VRAM
+	 * Note this is only tracked for DRM_XE_MEM_REGION_CLASS_VRAM
 	 * regions (for other types the value here will always equal
 	 * zero).
 	 */
@@ -230,7 +230,7 @@ struct drm_xe_query_mem_region {
 	 * Requires CAP_PERFMON or CAP_SYS_ADMIN to get reliable
 	 * accounting. Without this the value here will always equal
 	 * zero.  Note this is only currently tracked for
-	 * XE_MEM_REGION_CLASS_VRAM regions (for other types the value
+	 * DRM_XE_MEM_REGION_CLASS_VRAM regions (for other types the value
 	 * here will always be zero).
 	 */
 	__u64 cpu_visible_used;
@@ -327,36 +327,36 @@ struct drm_xe_query_config {
 	 * Device ID (lower 16 bits) and the device revision (next
 	 * 8 bits)
 	 */
-#define XE_QUERY_CONFIG_REV_AND_DEVICE_ID	0
+#define DRM_XE_QUERY_CONFIG_REV_AND_DEVICE_ID	0
 	/*
 	 * Flags describing the device configuration, see list below
 	 */
-#define XE_QUERY_CONFIG_FLAGS			1
+#define DRM_XE_QUERY_CONFIG_FLAGS			1
 	/*
 	 * Flag is set if the device has usable VRAM
 	 */
-	#define XE_QUERY_CONFIG_FLAGS_HAS_VRAM		(0x1 << 0)
+	#define DRM_DRM_XE_QUERY_CONFIG_FLAGS_HAS_VRAM		(0x1 << 0)
 	/*
 	 * Minimal memory alignment required by this device,
 	 * typically SZ_4K or SZ_64K
 	 */
-#define XE_QUERY_CONFIG_MIN_ALIGNMENT		2
+#define DRM_XE_QUERY_CONFIG_MIN_ALIGNMENT		2
 	/*
 	 * Maximum bits of a virtual address
 	 */
-#define XE_QUERY_CONFIG_VA_BITS			3
+#define DRM_XE_QUERY_CONFIG_VA_BITS			3
 	/*
 	 * Total number of GTs for the entire device
 	 */
-#define XE_QUERY_CONFIG_GT_COUNT		4
+#define DRM_XE_QUERY_CONFIG_GT_COUNT		4
 	/*
 	 * Total number of accessible memory regions
 	 */
-#define XE_QUERY_CONFIG_MEM_REGION_COUNT	5
+#define DRM_XE_QUERY_CONFIG_MEM_REGION_COUNT	5
 	/*
 	 * Value of the highest available exec queue priority
 	 */
-#define XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY	6
+#define DRM_XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY	6
 	/** @info: array of elements containing the config info */
 	__u64 info[];
 };
@@ -370,9 +370,9 @@ struct drm_xe_query_config {
  * implementing graphics and/or media operations.
  */
 struct drm_xe_query_gt {
-#define XE_QUERY_GT_TYPE_MAIN		0
-#define XE_QUERY_GT_TYPE_REMOTE		1
-#define XE_QUERY_GT_TYPE_MEDIA		2
+#define DRM_XE_QUERY_GT_TYPE_MAIN		0
+#define DRM_XE_QUERY_GT_TYPE_REMOTE		1
+#define DRM_XE_QUERY_GT_TYPE_MEDIA		2
 	/** @type: GT type: Main, Remote, or Media */
 	__u16 type;
 	/** @gt_id: Unique ID of this GT within the PCI Device */
@@ -435,7 +435,7 @@ struct drm_xe_query_topology_mask {
 	 *   DSS_GEOMETRY    ff ff ff ff 00 00 00 00
 	 * means 32 DSS are available for geometry.
 	 */
-#define XE_TOPO_DSS_GEOMETRY	(1 << 0)
+#define DRM_XE_TOPO_DSS_GEOMETRY	(1 << 0)
 	/*
 	 * To query the mask of Dual Sub Slices (DSS) available for compute
 	 * operations. For example a query response containing the following
@@ -443,7 +443,7 @@ struct drm_xe_query_topology_mask {
 	 *   DSS_COMPUTE    ff ff ff ff 00 00 00 00
 	 * means 32 DSS are available for compute.
 	 */
-#define XE_TOPO_DSS_COMPUTE	(1 << 1)
+#define DRM_XE_TOPO_DSS_COMPUTE	(1 << 1)
 	/*
 	 * To query the mask of Execution Units (EU) available per Dual Sub
 	 * Slices (DSS). For example a query response containing the following
@@ -451,7 +451,7 @@ struct drm_xe_query_topology_mask {
 	 *   EU_PER_DSS    ff ff 00 00 00 00 00 00
 	 * means each DSS has 16 EU.
 	 */
-#define XE_TOPO_EU_PER_DSS	(1 << 2)
+#define DRM_XE_TOPO_EU_PER_DSS	(1 << 2)
 	/** @type: type of mask */
 	__u16 type;
 
@@ -470,8 +470,8 @@ struct drm_xe_query_topology_mask {
  */
 struct drm_xe_query_uc_fw_version {
 	/** @uc: The micro-controller type to query firmware version */
-#define XE_QUERY_UC_TYPE_GUC 0
-#define XE_QUERY_UC_TYPE_HUC 1
+#define DRM_XE_QUERY_UC_TYPE_GUC 0
+#define DRM_XE_QUERY_UC_TYPE_HUC 1
 	__u16 uc_type;
 
 	/** @pad: MBZ */
@@ -575,8 +575,8 @@ struct drm_xe_gem_create {
 	 */
 	__u64 size;
 
-#define XE_GEM_CREATE_FLAG_DEFER_BACKING	(0x1 << 24)
-#define XE_GEM_CREATE_FLAG_SCANOUT		(0x1 << 25)
+#define DRM_XE_GEM_CREATE_FLAG_DEFER_BACKING	(0x1 << 24)
+#define DRM_XE_GEM_CREATE_FLAG_SCANOUT		(0x1 << 25)
 /*
  * When using VRAM as a possible placement, ensure that the corresponding VRAM
  * allocation will always use the CPU accessible part of VRAM. This is important
@@ -592,7 +592,7 @@ struct drm_xe_gem_create {
  * display surfaces, therefore the kernel requires setting this flag for such
  * objects, otherwise an error is thrown on small-bar systems.
  */
-#define XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM	(0x1 << 26)
+#define DRM_XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM	(0x1 << 26)
 	/**
 	 * @flags: Flags, currently a mask of memory instances of where BO can
 	 * be placed
@@ -659,7 +659,7 @@ struct drm_xe_ext_set_property {
 };
 
 struct drm_xe_vm_create {
-#define XE_VM_EXTENSION_SET_PROPERTY	0
+#define DRM_XE_VM_EXTENSION_SET_PROPERTY	0
 	/** @extensions: Pointer to the first extension struct, if any */
 	__u64 extensions;
 
@@ -725,29 +725,29 @@ struct drm_xe_vm_bind_op {
 	 */
 	__u64 tile_mask;
 
-#define XE_VM_BIND_OP_MAP		0x0
-#define XE_VM_BIND_OP_UNMAP		0x1
-#define XE_VM_BIND_OP_MAP_USERPTR	0x2
-#define XE_VM_BIND_OP_UNMAP_ALL		0x3
-#define XE_VM_BIND_OP_PREFETCH		0x4
+#define DRM_XE_VM_BIND_OP_MAP		0x0
+#define DRM_XE_VM_BIND_OP_UNMAP		0x1
+#define DRM_DRM_XE_VM_BIND_OP_MAP_USERPTR	0x2
+#define DRM_DRM_XE_VM_BIND_OP_UNMAP_ALL		0x3
+#define DRM_XE_VM_BIND_OP_PREFETCH		0x4
 	/** @op: Bind operation to perform */
 	__u32 op;
 
-#define XE_VM_BIND_FLAG_READONLY	(0x1 << 0)
-#define XE_VM_BIND_FLAG_ASYNC		(0x1 << 1)
+#define DRM_XE_VM_BIND_FLAG_READONLY	(0x1 << 0)
+#define DRM_XE_VM_BIND_FLAG_ASYNC		(0x1 << 1)
 	/*
 	 * Valid on a faulting VM only, do the MAP operation immediately rather
 	 * than deferring the MAP to the page fault handler.
 	 */
-#define XE_VM_BIND_FLAG_IMMEDIATE	(0x1 << 2)
+#define DRM_XE_VM_BIND_FLAG_IMMEDIATE	(0x1 << 2)
 	/*
 	 * When the NULL flag is set, the page tables are setup with a special
 	 * bit which indicates writes are dropped and all reads return zero.  In
-	 * the future, the NULL flags will only be valid for XE_VM_BIND_OP_MAP
+	 * the future, the NULL flags will only be valid for DRM_XE_VM_BIND_OP_MAP
 	 * operations, the BO handle MBZ, and the BO offset MBZ. This flag is
 	 * intended to implement VK sparse bindings.
 	 */
-#define XE_VM_BIND_FLAG_NULL		(0x1 << 3)
+#define DRM_XE_VM_BIND_FLAG_NULL		(0x1 << 3)
 	/** @flags: Bind flags */
 	__u32 flags;
 
@@ -814,14 +814,14 @@ struct drm_xe_exec_queue_set_property {
 	/** @exec_queue_id: Exec queue ID */
 	__u32 exec_queue_id;
 
-#define XE_EXEC_QUEUE_SET_PROPERTY_PRIORITY		0
-#define XE_EXEC_QUEUE_SET_PROPERTY_TIMESLICE		1
-#define XE_EXEC_QUEUE_SET_PROPERTY_PREEMPTION_TIMEOUT	2
-#define XE_EXEC_QUEUE_SET_PROPERTY_PERSISTENCE		3
-#define XE_EXEC_QUEUE_SET_PROPERTY_JOB_TIMEOUT		4
-#define XE_EXEC_QUEUE_SET_PROPERTY_ACC_TRIGGER		5
-#define XE_EXEC_QUEUE_SET_PROPERTY_ACC_NOTIFY		6
-#define XE_EXEC_QUEUE_SET_PROPERTY_ACC_GRANULARITY	7
+#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_PRIORITY		0
+#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_TIMESLICE		1
+#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_PREEMPTION_TIMEOUT	2
+#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_PERSISTENCE		3
+#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_JOB_TIMEOUT		4
+#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_ACC_TRIGGER		5
+#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_ACC_NOTIFY		6
+#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_ACC_GRANULARITY	7
 	/** @property: property to set */
 	__u32 property;
 
@@ -833,7 +833,7 @@ struct drm_xe_exec_queue_set_property {
 };
 
 struct drm_xe_exec_queue_create {
-#define XE_EXEC_QUEUE_EXTENSION_SET_PROPERTY               0
+#define DRM_XE_EXEC_QUEUE_EXTENSION_SET_PROPERTY               0
 	/** @extensions: Pointer to the first extension struct, if any */
 	__u64 extensions;
 
@@ -872,7 +872,7 @@ struct drm_xe_exec_queue_get_property {
 	/** @exec_queue_id: Exec queue ID */
 	__u32 exec_queue_id;
 
-#define XE_EXEC_QUEUE_GET_PROPERTY_BAN			0
+#define DRM_XE_EXEC_QUEUE_GET_PROPERTY_BAN			0
 	/** @property: property to get */
 	__u32 property;
 
@@ -1112,7 +1112,7 @@ struct drm_xe_vm_madvise {
  * in 'struct perf_event_attr' as part of perf_event_open syscall to read a
  * particular event.
  *
- * For example to open the XE_PMU_INTERRUPTS(0):
+ * For example to open the DRM_XE_PMU_INTERRUPTS(0):
  *
  * .. code-block:: C
  *
@@ -1126,7 +1126,7 @@ struct drm_xe_vm_madvise {
  *	attr.read_format = PERF_FORMAT_TOTAL_TIME_ENABLED;
  *	attr.use_clockid = 1;
  *	attr.clockid = CLOCK_MONOTONIC;
- *	attr.config = XE_PMU_INTERRUPTS(0);
+ *	attr.config = DRM_XE_PMU_INTERRUPTS(0);
  *
  *	fd = syscall(__NR_perf_event_open, &attr, -1, cpu, -1, 0);
  */
@@ -1139,11 +1139,11 @@ struct drm_xe_vm_madvise {
 #define ___XE_PMU_OTHER(gt, x) \
 	(((__u64)(x)) | ((__u64)(gt) << __XE_PMU_GT_SHIFT))
 
-#define XE_PMU_INTERRUPTS(gt)			___XE_PMU_OTHER(gt, 0)
-#define XE_PMU_RENDER_GROUP_BUSY(gt)		___XE_PMU_OTHER(gt, 1)
-#define XE_PMU_COPY_GROUP_BUSY(gt)		___XE_PMU_OTHER(gt, 2)
-#define XE_PMU_MEDIA_GROUP_BUSY(gt)		___XE_PMU_OTHER(gt, 3)
-#define XE_PMU_ANY_ENGINE_GROUP_BUSY(gt)	___XE_PMU_OTHER(gt, 4)
+#define DRM_XE_PMU_INTERRUPTS(gt)			___XE_PMU_OTHER(gt, 0)
+#define DRM_XE_PMU_RENDER_GROUP_BUSY(gt)		___XE_PMU_OTHER(gt, 1)
+#define DRM_XE_PMU_COPY_GROUP_BUSY(gt)		___XE_PMU_OTHER(gt, 2)
+#define DRM_XE_PMU_MEDIA_GROUP_BUSY(gt)		___XE_PMU_OTHER(gt, 3)
+#define DRM_XE_PMU_ANY_ENGINE_GROUP_BUSY(gt)	___XE_PMU_OTHER(gt, 4)
 
 #if defined(__cplusplus)
 }
-- 
2.34.1


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

* [Intel-xe] [PATCH v3 30/30] drm/xe/uapi: Add _FLAG to uAPI constants usable for flags
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (28 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 29/30] drm/xe/uapi: Add missing DRM_ prefix in uAPI constants Francois Dugast
@ 2023-09-26 12:55 ` Francois Dugast
  2023-09-26 13:12 ` [Intel-xe] ✓ CI.Patch_applied: success for uAPI Alignment - take 1 v3 Patchwork
                   ` (7 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-09-26 12:55 UTC (permalink / raw)
  To: intel-xe; +Cc: Francois Dugast

Most constants defined in xe_drm.h which can be used for flags are
named DRM_XE_*_FLAG_*, which is helpful to identify them. Make this
systematic and add _FLAG where it was missing.

Signed-off-by: Francois Dugast <francois.dugast@intel.com>
---
 drivers/gpu/drm/xe/xe_sync.c            | 16 ++++++-------
 drivers/gpu/drm/xe/xe_vm.c              | 32 ++++++++++++-------------
 drivers/gpu/drm/xe/xe_vm_doc.h          |  2 +-
 drivers/gpu/drm/xe/xe_wait_user_fence.c | 10 ++++----
 include/uapi/drm/xe_drm.h               | 30 +++++++++++------------
 5 files changed, 45 insertions(+), 45 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_sync.c b/drivers/gpu/drm/xe/xe_sync.c
index 73ef259aa387..eafe53c2f55d 100644
--- a/drivers/gpu/drm/xe/xe_sync.c
+++ b/drivers/gpu/drm/xe/xe_sync.c
@@ -110,14 +110,14 @@ int xe_sync_entry_parse(struct xe_device *xe, struct xe_file *xef,
 		return -EFAULT;
 
 	if (XE_IOCTL_DBG(xe, sync_in.flags &
-			 ~(SYNC_FLAGS_TYPE_MASK | DRM_XE_SYNC_SIGNAL)) ||
+			 ~(SYNC_FLAGS_TYPE_MASK | DRM_XE_SYNC_FLAG_SIGNAL)) ||
 	    XE_IOCTL_DBG(xe, sync_in.pad) ||
 	    XE_IOCTL_DBG(xe, sync_in.reserved[0] || sync_in.reserved[1]))
 		return -EINVAL;
 
-	signal = sync_in.flags & DRM_XE_SYNC_SIGNAL;
+	signal = sync_in.flags & DRM_XE_SYNC_FLAG_SIGNAL;
 	switch (sync_in.flags & SYNC_FLAGS_TYPE_MASK) {
-	case DRM_XE_SYNC_SYNCOBJ:
+	case DRM_XE_SYNC_FLAG_SYNCOBJ:
 		if (XE_IOCTL_DBG(xe, no_dma_fences && signal))
 			return -EOPNOTSUPP;
 
@@ -135,7 +135,7 @@ int xe_sync_entry_parse(struct xe_device *xe, struct xe_file *xef,
 		}
 		break;
 
-	case DRM_XE_SYNC_TIMELINE_SYNCOBJ:
+	case DRM_XE_SYNC_FLAG_TIMELINE_SYNCOBJ:
 		if (XE_IOCTL_DBG(xe, no_dma_fences && signal))
 			return -EOPNOTSUPP;
 
@@ -165,12 +165,12 @@ int xe_sync_entry_parse(struct xe_device *xe, struct xe_file *xef,
 		}
 		break;
 
-	case DRM_XE_SYNC_DMA_BUF:
+	case DRM_XE_SYNC_FLAG_DMA_BUF:
 		if (XE_IOCTL_DBG(xe, "TODO"))
 			return -EINVAL;
 		break;
 
-	case DRM_XE_SYNC_USER_FENCE:
+	case DRM_XE_SYNC_FLAG_USER_FENCE:
 		if (XE_IOCTL_DBG(xe, !signal))
 			return -EOPNOTSUPP;
 
@@ -225,7 +225,7 @@ int xe_sync_entry_add_deps(struct xe_sync_entry *sync, struct xe_sched_job *job)
 void xe_sync_entry_signal(struct xe_sync_entry *sync, struct xe_sched_job *job,
 			  struct dma_fence *fence)
 {
-	if (!(sync->flags & DRM_XE_SYNC_SIGNAL))
+	if (!(sync->flags & DRM_XE_SYNC_FLAG_SIGNAL))
 		return;
 
 	if (sync->chain_fence) {
@@ -253,7 +253,7 @@ void xe_sync_entry_signal(struct xe_sync_entry *sync, struct xe_sched_job *job,
 			dma_fence_put(fence);
 		}
 	} else if ((sync->flags & SYNC_FLAGS_TYPE_MASK) ==
-		   DRM_XE_SYNC_USER_FENCE) {
+		   DRM_XE_SYNC_FLAG_USER_FENCE) {
 		job->user_fence.used = true;
 		job->user_fence.addr = sync->addr;
 		job->user_fence.value = sync->timeline_value;
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index f985580b0eeb..694d883e108e 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -1784,10 +1784,10 @@ static int xe_vm_unbind(struct xe_vm *vm, struct xe_vma *vma,
 	return 0;
 }
 
-#define ALL_DRM_XE_VM_CREATE_FLAGS (DRM_XE_VM_CREATE_SCRATCH_PAGE | \
-				    DRM_XE_VM_CREATE_COMPUTE_MODE | \
-				    DRM_XE_VM_CREATE_ASYNC_DEFAULT | \
-				    DRM_XE_VM_CREATE_FAULT_MODE)
+#define ALL_DRM_XE_VM_CREATE_FLAGS (DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE | \
+				    DRM_XE_VM_CREATE_FLAG_COMPUTE_MODE | \
+				    DRM_XE_VM_CREATE_FLAG_ASYNC_DEFAULT | \
+				    DRM_XE_VM_CREATE_FLAG_FAULT_MODE)
 
 int xe_vm_create_ioctl(struct drm_device *dev, void *data,
 		       struct drm_file *file)
@@ -1805,9 +1805,9 @@ int xe_vm_create_ioctl(struct drm_device *dev, void *data,
 		return -EINVAL;
 
 	if (XE_WA(xe_root_mmio_gt(xe), 14016763929))
-		args->flags |= DRM_XE_VM_CREATE_SCRATCH_PAGE;
+		args->flags |= DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE;
 
-	if (XE_IOCTL_DBG(xe, args->flags & DRM_XE_VM_CREATE_FAULT_MODE &&
+	if (XE_IOCTL_DBG(xe, args->flags & DRM_XE_VM_CREATE_FLAG_FAULT_MODE &&
 			 !xe->info.supports_usm))
 		return -EINVAL;
 
@@ -1817,32 +1817,32 @@ int xe_vm_create_ioctl(struct drm_device *dev, void *data,
 	if (XE_IOCTL_DBG(xe, args->flags & ~ALL_DRM_XE_VM_CREATE_FLAGS))
 		return -EINVAL;
 
-	if (XE_IOCTL_DBG(xe, args->flags & DRM_XE_VM_CREATE_SCRATCH_PAGE &&
-			 args->flags & DRM_XE_VM_CREATE_FAULT_MODE))
+	if (XE_IOCTL_DBG(xe, args->flags & DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE &&
+			 args->flags & DRM_XE_VM_CREATE_FLAG_FAULT_MODE))
 		return -EINVAL;
 
-	if (XE_IOCTL_DBG(xe, args->flags & DRM_XE_VM_CREATE_COMPUTE_MODE &&
-			 args->flags & DRM_XE_VM_CREATE_FAULT_MODE))
+	if (XE_IOCTL_DBG(xe, args->flags & DRM_XE_VM_CREATE_FLAG_COMPUTE_MODE &&
+			 args->flags & DRM_XE_VM_CREATE_FLAG_FAULT_MODE))
 		return -EINVAL;
 
-	if (XE_IOCTL_DBG(xe, args->flags & DRM_XE_VM_CREATE_FAULT_MODE &&
+	if (XE_IOCTL_DBG(xe, args->flags & DRM_XE_VM_CREATE_FLAG_FAULT_MODE &&
 			 xe_device_in_non_fault_mode(xe)))
 		return -EINVAL;
 
-	if (XE_IOCTL_DBG(xe, !(args->flags & DRM_XE_VM_CREATE_FAULT_MODE) &&
+	if (XE_IOCTL_DBG(xe, !(args->flags & DRM_XE_VM_CREATE_FLAG_FAULT_MODE) &&
 			 xe_device_in_fault_mode(xe)))
 		return -EINVAL;
 
 	if (XE_IOCTL_DBG(xe, args->extensions))
 		return -EINVAL;
 
-	if (args->flags & DRM_XE_VM_CREATE_SCRATCH_PAGE)
+	if (args->flags & DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE)
 		flags |= XE_VM_FLAG_SCRATCH_PAGE;
-	if (args->flags & DRM_XE_VM_CREATE_COMPUTE_MODE)
+	if (args->flags & DRM_XE_VM_CREATE_FLAG_COMPUTE_MODE)
 		flags |= XE_VM_FLAG_COMPUTE_MODE;
-	if (args->flags & DRM_XE_VM_CREATE_ASYNC_DEFAULT)
+	if (args->flags & DRM_XE_VM_CREATE_FLAG_ASYNC_DEFAULT)
 		flags |= XE_VM_FLAG_ASYNC_DEFAULT;
-	if (args->flags & DRM_XE_VM_CREATE_FAULT_MODE)
+	if (args->flags & DRM_XE_VM_CREATE_FLAG_FAULT_MODE)
 		flags |= XE_VM_FLAG_FAULT_MODE;
 
 	vm = xe_vm_create(xe, flags);
diff --git a/drivers/gpu/drm/xe/xe_vm_doc.h b/drivers/gpu/drm/xe/xe_vm_doc.h
index 1fd46b0e1079..5be2cbb6cfd3 100644
--- a/drivers/gpu/drm/xe/xe_vm_doc.h
+++ b/drivers/gpu/drm/xe/xe_vm_doc.h
@@ -18,7 +18,7 @@
  * Scratch page
  * ------------
  *
- * If the VM is created with the flag, DRM_XE_VM_CREATE_SCRATCH_PAGE, set the
+ * If the VM is created with the flag, DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE, set the
  * entire page table structure defaults pointing to blank page allocated by the
  * VM. Invalid memory access rather than fault just read / write to this page.
  *
diff --git a/drivers/gpu/drm/xe/xe_wait_user_fence.c b/drivers/gpu/drm/xe/xe_wait_user_fence.c
index b47e9464c115..d9a6ffc20296 100644
--- a/drivers/gpu/drm/xe/xe_wait_user_fence.c
+++ b/drivers/gpu/drm/xe/xe_wait_user_fence.c
@@ -79,15 +79,15 @@ static int check_hw_engines(struct xe_device *xe,
 	return 0;
 }
 
-#define VALID_FLAGS	(DRM_XE_UFENCE_WAIT_SOFT_OP | \
-			 DRM_XE_UFENCE_WAIT_ABSTIME)
+#define VALID_FLAGS	(DRM_XE_UFENCE_WAIT_FLAG_SOFT_OP | \
+			 DRM_XE_UFENCE_WAIT_FLAG_ABSTIME)
 #define MAX_OP		DRM_XE_UFENCE_WAIT_LTE
 
 static unsigned long to_jiffies_timeout(struct drm_xe_wait_user_fence *args)
 {
 	unsigned long timeout;
 
-	if (args->flags & DRM_XE_UFENCE_WAIT_ABSTIME)
+	if (args->flags & DRM_XE_UFENCE_WAIT_FLAG_ABSTIME)
 		return drm_timeout_abs_to_jiffies(args->timeout);
 
 	if (args->timeout == MAX_SCHEDULE_TIMEOUT || args->timeout == 0)
@@ -109,7 +109,7 @@ int xe_wait_user_fence_ioctl(struct drm_device *dev, void *data,
 		u64_to_user_ptr(args->instances);
 	u64 addr = args->addr;
 	int err;
-	bool no_engines = args->flags & DRM_XE_UFENCE_WAIT_SOFT_OP;
+	bool no_engines = args->flags & DRM_XE_UFENCE_WAIT_FLAG_SOFT_OP;
 	unsigned long timeout;
 	ktime_t start;
 
@@ -187,7 +187,7 @@ int xe_wait_user_fence_ioctl(struct drm_device *dev, void *data,
 	}
 	remove_wait_queue(&xe->ufence_wq, &w_wait);
 
-	if (!(args->flags & DRM_XE_UFENCE_WAIT_ABSTIME)) {
+	if (!(args->flags & DRM_XE_UFENCE_WAIT_FLAG_ABSTIME)) {
 		args->timeout -= ktime_to_ns(ktime_sub(ktime_get(), start));
 		if (args->timeout < 0)
 			args->timeout = 0;
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index 9e8e7b4c42b2..24c175ec11b3 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -663,10 +663,10 @@ struct drm_xe_vm_create {
 	/** @extensions: Pointer to the first extension struct, if any */
 	__u64 extensions;
 
-#define DRM_XE_VM_CREATE_SCRATCH_PAGE	(0x1 << 0)
-#define DRM_XE_VM_CREATE_COMPUTE_MODE	(0x1 << 1)
-#define DRM_XE_VM_CREATE_ASYNC_DEFAULT	(0x1 << 2)
-#define DRM_XE_VM_CREATE_FAULT_MODE	(0x1 << 3)
+#define DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE	(0x1 << 0)
+#define DRM_XE_VM_CREATE_FLAG_COMPUTE_MODE	(0x1 << 1)
+#define DRM_XE_VM_CREATE_FLAG_ASYNC_DEFAULT	(0x1 << 2)
+#define DRM_XE_VM_CREATE_FLAG_FAULT_MODE	(0x1 << 3)
 	/** @flags: Flags */
 	__u32 flags;
 
@@ -898,11 +898,11 @@ struct drm_xe_sync {
 	/** @extensions: Pointer to the first extension struct, if any */
 	__u64 extensions;
 
-#define DRM_XE_SYNC_SYNCOBJ		0x0
-#define DRM_XE_SYNC_TIMELINE_SYNCOBJ	0x1
-#define DRM_XE_SYNC_DMA_BUF		0x2
-#define DRM_XE_SYNC_USER_FENCE		0x3
-#define DRM_XE_SYNC_SIGNAL		0x10
+#define DRM_XE_SYNC_FLAG_SYNCOBJ		0x0
+#define DRM_XE_SYNC_FLAG_TIMELINE_SYNCOBJ	0x1
+#define DRM_XE_SYNC_FLAG_DMA_BUF		0x2
+#define DRM_XE_SYNC_FLAG_USER_FENCE		0x3
+#define DRM_XE_SYNC_FLAG_SIGNAL		0x10
 	__u32 flags;
 
 	/** @pad: MBZ */
@@ -988,8 +988,8 @@ struct drm_xe_wait_user_fence {
 	/** @op: wait operation (type of comparison) */
 	__u16 op;
 
-#define DRM_XE_UFENCE_WAIT_SOFT_OP	(1 << 0)	/* e.g. Wait on VM bind */
-#define DRM_XE_UFENCE_WAIT_ABSTIME	(1 << 1)
+#define DRM_XE_UFENCE_WAIT_FLAG_SOFT_OP	(1 << 0)	/* e.g. Wait on VM bind */
+#define DRM_XE_UFENCE_WAIT_FLAG_ABSTIME	(1 << 1)
 	/** @flags: wait flags */
 	__u16 flags;
 
@@ -1007,10 +1007,10 @@ struct drm_xe_wait_user_fence {
 	__u64 mask;
 	/**
 	 * @timeout: how long to wait before bailing, value in nanoseconds.
-	 * Without DRM_XE_UFENCE_WAIT_ABSTIME flag set (relative timeout)
+	 * Without DRM_XE_UFENCE_WAIT_FLAG_ABSTIME flag set (relative timeout)
 	 * it contains timeout expressed in nanoseconds to wait (fence will
 	 * expire at now() + timeout).
-	 * When DRM_XE_UFENCE_WAIT_ABSTIME flat is set (absolute timeout) wait
+	 * When DRM_XE_UFENCE_WAIT_FLAG_ABSTIME flat is set (absolute timeout) wait
 	 * will end at timeout (uses system MONOTONIC_CLOCK).
 	 * Passing negative timeout leads to neverending wait.
 	 *
@@ -1023,13 +1023,13 @@ struct drm_xe_wait_user_fence {
 
 	/**
 	 * @num_engines: number of engine instances to wait on, must be zero
-	 * when DRM_XE_UFENCE_WAIT_SOFT_OP set
+	 * when DRM_XE_UFENCE_WAIT_FLAG_SOFT_OP set
 	 */
 	__u64 num_engines;
 
 	/**
 	 * @instances: user pointer to array of drm_xe_engine_class_instance to
-	 * wait on, must be NULL when DRM_XE_UFENCE_WAIT_SOFT_OP set
+	 * wait on, must be NULL when DRM_XE_UFENCE_WAIT_FLAG_SOFT_OP set
 	 */
 	__u64 instances;
 
-- 
2.34.1


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

* [Intel-xe] ✓ CI.Patch_applied: success for uAPI Alignment - take 1 v3
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (29 preceding siblings ...)
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 30/30] drm/xe/uapi: Add _FLAG to uAPI constants usable for flags Francois Dugast
@ 2023-09-26 13:12 ` Patchwork
  2023-09-26 13:13 ` [Intel-xe] ✗ CI.checkpatch: warning " Patchwork
                   ` (6 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Patchwork @ 2023-09-26 13:12 UTC (permalink / raw)
  To: Francois Dugast; +Cc: intel-xe

== Series Details ==

Series: uAPI Alignment - take 1 v3
URL   : https://patchwork.freedesktop.org/series/124271/
State : success

== Summary ==

=== Applying kernel patches on branch 'drm-xe-next' with base: ===
Base commit: fc8ec3c56 drm/xe: Add Wa_18028616096
=== git am output follows ===
Applying: drm/xe: Fix array bounds check for queries
Applying: drm/xe: Set the correct type for xe_to_user_engine_class
Applying: drm/xe: Correlate engine and cpu timestamps with better accuracy
Applying: drm/xe/uapi: Separate VM_BIND's operation and flag
Applying: drm/xe/vm: Remove VM_BIND_OP macro
Applying: drm/xe/uapi: Remove MMIO ioctl
Applying: drm/xe: Fix xe_exec_queue_is_idle for parallel exec queues
Applying: drm/xe: Deprecate XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE implementation
Applying: drm/xe: Rename exec_queue_kill_compute to xe_vm_remove_compute_exec_queue
Applying: drm/xe: Remove XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE from uAPI
Applying: drm/xe/uapi: Use common drm_xe_ext_set_property extension
Applying: drm/xe: Kill XE_VM_PROPERTY_BIND_OP_ERROR_CAPTURE_ADDRESS extension
Applying: drm/xe/uapi: Kill DRM_XE_UFENCE_WAIT_VM_ERROR
Applying: drm/xe: Remove async worker and rework sync binds
Applying: drm/xe: Fix VM bind out-sync signaling ordering
Applying: drm/xe/uapi: Document drm_xe_query_gt
Applying: drm/xe/uapi: Replace useless 'instance' per unique gt_id
Applying: drm/xe/uapi: Remove unused field of drm_xe_query_gt
Applying: drm/xe/uapi: Rename gts to gt_list
Applying: drm/xe/uapi: Fix naming of XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY
Applying: drm/xe/uapi: Add documentation for query
Applying: drm/xe/uapi: Crystal Reference Clock updates
Applying: drm/xe: Extend drm_xe_vm_bind_op
Applying: drm/xe: Add uAPI to query micro-controler firmware version
Applying: drm/xe/uapi: Document DRM_XE_DEVICE_QUERY_HWCONFIG
Applying: drm/xe/uapi: Add pad to drm_xe_engine_class_instance
Applying: drm/xe: Extend uAPI to query HuC micro-controler firmware version
Applying: drm/xe: Remove useless query config num_params
Applying: drm/xe/uapi: Add missing DRM_ prefix in uAPI constants
Applying: drm/xe/uapi: Add _FLAG to uAPI constants usable for flags



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

* [Intel-xe] ✗ CI.checkpatch: warning for uAPI Alignment - take 1 v3
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (30 preceding siblings ...)
  2023-09-26 13:12 ` [Intel-xe] ✓ CI.Patch_applied: success for uAPI Alignment - take 1 v3 Patchwork
@ 2023-09-26 13:13 ` Patchwork
  2023-09-26 13:14 ` [Intel-xe] ✓ CI.KUnit: success " Patchwork
                   ` (5 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Patchwork @ 2023-09-26 13:13 UTC (permalink / raw)
  To: Francois Dugast; +Cc: intel-xe

== Series Details ==

Series: uAPI Alignment - take 1 v3
URL   : https://patchwork.freedesktop.org/series/124271/
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
63c2b6b160bca2df6efc7bc4cea6f442097d7854
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit d59f38a611abbc340a5b3bbde9b1471c3d6f53ef
Author: Francois Dugast <francois.dugast@intel.com>
Date:   Tue Sep 26 12:55:40 2023 +0000

    drm/xe/uapi: Add _FLAG to uAPI constants usable for flags
    
    Most constants defined in xe_drm.h which can be used for flags are
    named DRM_XE_*_FLAG_*, which is helpful to identify them. Make this
    systematic and add _FLAG where it was missing.
    
    Signed-off-by: Francois Dugast <francois.dugast@intel.com>
+ /mt/dim checkpatch fc8ec3c56efa5c15b630ddc17c89100440fe03ef drm-intel
cb15bb2d5 drm/xe: Fix array bounds check for queries
-:9: WARNING:UNKNOWN_COMMIT_ID: Unknown commit id '22504d560287', maybe rebased or not pulled?
#9: 
Fixes: 22504d560287 ("drm/xe: Introduce a new DRM driver for Intel GPUs")

total: 0 errors, 1 warnings, 0 checks, 8 lines checked
ac53f74e2 drm/xe: Set the correct type for xe_to_user_engine_class
cefcdc6e5 drm/xe: Correlate engine and cpu timestamps with better accuracy
07c2354d3 drm/xe/uapi: Separate VM_BIND's operation and flag
a3e7c95d7 drm/xe/vm: Remove VM_BIND_OP macro
f65de3dac drm/xe/uapi: Remove MMIO ioctl
9fbf6c3c5 drm/xe: Fix xe_exec_queue_is_idle for parallel exec queues
a187384b9 drm/xe: Deprecate XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE implementation
4d868dd83 drm/xe: Rename exec_queue_kill_compute to xe_vm_remove_compute_exec_queue
8c238f901 drm/xe: Remove XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE from uAPI
d3e147345 drm/xe/uapi: Use common drm_xe_ext_set_property extension
6f0a08ad9 drm/xe: Kill XE_VM_PROPERTY_BIND_OP_ERROR_CAPTURE_ADDRESS extension
7f6aba850 drm/xe/uapi: Kill DRM_XE_UFENCE_WAIT_VM_ERROR
3f291a866 drm/xe: Remove async worker and rework sync binds
2961873bd drm/xe: Fix VM bind out-sync signaling ordering
24f54cc08 drm/xe/uapi: Document drm_xe_query_gt
ca379205e drm/xe/uapi: Replace useless 'instance' per unique gt_id
7452f1dba drm/xe/uapi: Remove unused field of drm_xe_query_gt
2697244ab drm/xe/uapi: Rename gts to gt_list
b299740d9 drm/xe/uapi: Fix naming of XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY
d5409402f drm/xe/uapi: Add documentation for query
08186f954 drm/xe/uapi: Crystal Reference Clock updates
683faf5bb drm/xe: Extend drm_xe_vm_bind_op
20a107a92 drm/xe: Add uAPI to query micro-controler firmware version
-:18: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description (prefer a maximum 75 chars per line)
#18: 
More information: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23661

total: 0 errors, 1 warnings, 0 checks, 110 lines checked
3cb79850c drm/xe/uapi: Document DRM_XE_DEVICE_QUERY_HWCONFIG
52b8b9bd9 drm/xe/uapi: Add pad to drm_xe_engine_class_instance
9de056a38 drm/xe: Extend uAPI to query HuC micro-controler firmware version
710037287 drm/xe: Remove useless query config num_params
af9c72343 drm/xe/uapi: Add missing DRM_ prefix in uAPI constants
d59f38a61 drm/xe/uapi: Add _FLAG to uAPI constants usable for flags



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

* [Intel-xe] ✓ CI.KUnit: success for uAPI Alignment - take 1 v3
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (31 preceding siblings ...)
  2023-09-26 13:13 ` [Intel-xe] ✗ CI.checkpatch: warning " Patchwork
@ 2023-09-26 13:14 ` Patchwork
  2023-09-26 13:21 ` [Intel-xe] ✓ CI.Build: " Patchwork
                   ` (4 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Patchwork @ 2023-09-26 13:14 UTC (permalink / raw)
  To: Francois Dugast; +Cc: intel-xe

== Series Details ==

Series: uAPI Alignment - take 1 v3
URL   : https://patchwork.freedesktop.org/series/124271/
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
[13:13:27] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[13:13:31] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make ARCH=um O=.kunit --jobs=48
[13:13:51] Starting KUnit Kernel (1/1)...
[13:13:51] ============================================================
[13:13:51] ==================== xe_bo (2 subtests) ====================
[13:13:51] [SKIPPED] xe_ccs_migrate_kunit
[13:13:51] [SKIPPED] xe_bo_evict_kunit
[13:13:51] ===================== [SKIPPED] xe_bo ======================
[13:13:51] ================== xe_dma_buf (1 subtest) ==================
[13:13:51] [SKIPPED] xe_dma_buf_kunit
[13:13:51] =================== [SKIPPED] xe_dma_buf ===================
[13:13:51] ================== xe_migrate (1 subtest) ==================
[13:13:51] [SKIPPED] xe_migrate_sanity_kunit
[13:13:51] =================== [SKIPPED] xe_migrate ===================
[13:13:51] =================== xe_pci (2 subtests) ====================
[13:13:51] [PASSED] xe_gmdid_graphics_ip
[13:13:51] [PASSED] xe_gmdid_media_ip
[13:13:51] ===================== [PASSED] xe_pci ======================
[13:13:51] ==================== xe_rtp (1 subtest) ====================
[13:13:51] ================== xe_rtp_process_tests  ===================
[13:13:51] [PASSED] coalesce-same-reg
[13:13:51] [PASSED] no-match-no-add
[13:13:51] [PASSED] no-match-no-add-multiple-rules
[13:13:51] [PASSED] two-regs-two-entries
[13:13:51] [PASSED] clr-one-set-other
[13:13:51] [PASSED] set-field
[13:13:51] [PASSED] conflict-duplicate
[13:13:51] [PASSED] conflict-not-disjoint
[13:13:51] [PASSED] conflict-reg-type
[13:13:51] ============== [PASSED] xe_rtp_process_tests ===============
[13:13:51] ===================== [PASSED] xe_rtp ======================
[13:13:51] ==================== xe_wa (1 subtest) =====================
[13:13:51] ======================== xe_wa_gt  =========================
[13:13:51] [PASSED] TIGERLAKE (B0)
[13:13:51] [PASSED] DG1 (A0)
[13:13:51] [PASSED] DG1 (B0)
[13:13:51] [PASSED] ALDERLAKE_S (A0)
[13:13:51] [PASSED] ALDERLAKE_S (B0)
[13:13:51] [PASSED] ALDERLAKE_S (C0)
[13:13:51] [PASSED] ALDERLAKE_S (D0)
[13:13:51] [PASSED] ALDERLAKE_P (A0)
[13:13:51] [PASSED] ALDERLAKE_P (B0)
[13:13:51] [PASSED] ALDERLAKE_P (C0)
[13:13:51] [PASSED] DG2_G10 (A0)
[13:13:51] [PASSED] DG2_G10 (A1)
[13:13:51] [PASSED] DG2_G10 (B0)
[13:13:51] [PASSED] DG2_G10 (C0)
[13:13:51] [PASSED] DG2_G11 (A0)
[13:13:51] [PASSED] DG2_G11 (B0)
[13:13:51] [PASSED] DG2_G11 (B1)
[13:13:51] [PASSED] DG2_G12 (A0)
[13:13:51] [PASSED] DG2_G12 (A1)
[13:13:51] [PASSED] PVC (B0)
[13:13:51] [PASSED] PVC (B1)
[13:13:51] [PASSED] PVC (C0)
[13:13:51] ==================== [PASSED] xe_wa_gt =====================
[13:13:51] ====================== [PASSED] xe_wa ======================
[13:13:51] ============================================================
[13:13:51] Testing complete. Ran 37 tests: passed: 33, skipped: 4
[13:13:51] Elapsed time: 24.074s total, 4.179s configuring, 19.776s building, 0.105s running

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

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



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

* [Intel-xe] ✓ CI.Build: success for uAPI Alignment - take 1 v3
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (32 preceding siblings ...)
  2023-09-26 13:14 ` [Intel-xe] ✓ CI.KUnit: success " Patchwork
@ 2023-09-26 13:21 ` Patchwork
  2023-09-26 13:22 ` [Intel-xe] ✗ CI.Hooks: failure " Patchwork
                   ` (3 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Patchwork @ 2023-09-26 13:21 UTC (permalink / raw)
  To: Francois Dugast; +Cc: intel-xe

== Series Details ==

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



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

* [Intel-xe] ✗ CI.Hooks: failure for uAPI Alignment - take 1 v3
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (33 preceding siblings ...)
  2023-09-26 13:21 ` [Intel-xe] ✓ CI.Build: " Patchwork
@ 2023-09-26 13:22 ` Patchwork
  2023-09-26 13:23 ` [Intel-xe] ✓ CI.checksparse: success " Patchwork
                   ` (2 subsequent siblings)
  37 siblings, 0 replies; 60+ messages in thread
From: Patchwork @ 2023-09-26 13:22 UTC (permalink / raw)
  To: Francois Dugast; +Cc: intel-xe

== Series Details ==

Series: uAPI Alignment - take 1 v3
URL   : https://patchwork.freedesktop.org/series/124271/
State : failure

== Summary ==

run-parts: executing /workspace/ci/hooks/00-showenv
+ pwd
+ ls -la
/workspace
total 1052
drwxrwxr-x 10 1003 1003   4096 Sep 26 13:21 .
drwxr-xr-x  1 root root   4096 Sep 26 13:21 ..
-rw-rw-r--  1 1003 1003 789644 Sep 26 13:21 build.log
-rw-rw-r--  1 1003 1003   3252 Sep 26 13:13 checkpatch.log
drwxrwxr-x  5 1003 1003   4096 Sep 26 13:11 ci
drwxrwxr-x  9 1003 1003   4096 Sep 26 13:11 docker
drwxrwxr-x  8 1003 1003   4096 Sep 26 13:11 .git
-rw-rw-r--  1 1003 1003   2027 Sep 26 13:12 git_apply.log
drwxrwxr-x  4 1003 1003   4096 Sep 26 13:11 .github
-rw-rw-r--  1 1003 1003    233 Sep 26 13:11 .groovylintrc.json
-rw-rw-r--  1 1003 1003     78 Sep 26 13:21 hooks.log
drwxrwxr-x 31 1003 1003   4096 Sep 26 13:21 kernel
-rw-rw-r--  1 1003 1003 191915 Sep 26 13:12 kernel.mbox
-rw-rw-r--  1 1003 1003  26482 Sep 26 13:14 kunit.log
-rw-rw-r--  1 1003 1003     48 Sep 26 13:12 parent.tag
drwxrwxr-x 45 1003 1003   4096 Sep 26 13:11 pipelines
-rw-rw-r--  1 1003 1003    793 Sep 26 13:11 README.adoc
drwxrwxr-x  3 1003 1003   4096 Sep 26 13:11 scripts
drwxrwxr-x  2 1003 1003   4096 Sep 26 13:11 .vscode
+ uname -a
Linux 9c074123938c 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-default"
declare -x CI_KERNEL_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
d59f38a61 drm/xe/uapi: Add _FLAG to uAPI constants usable for flags
af9c72343 drm/xe/uapi: Add missing DRM_ prefix in uAPI constants
710037287 drm/xe: Remove useless query config num_params
9de056a38 drm/xe: Extend uAPI to query HuC micro-controler firmware version
52b8b9bd9 drm/xe/uapi: Add pad to drm_xe_engine_class_instance
3cb79850c drm/xe/uapi: Document DRM_XE_DEVICE_QUERY_HWCONFIG
20a107a92 drm/xe: Add uAPI to query micro-controler firmware version
683faf5bb drm/xe: Extend drm_xe_vm_bind_op
08186f954 drm/xe/uapi: Crystal Reference Clock updates
d5409402f drm/xe/uapi: Add documentation for query
b299740d9 drm/xe/uapi: Fix naming of XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY
2697244ab drm/xe/uapi: Rename gts to gt_list
7452f1dba drm/xe/uapi: Remove unused field of drm_xe_query_gt
ca379205e drm/xe/uapi: Replace useless 'instance' per unique gt_id
24f54cc08 drm/xe/uapi: Document drm_xe_query_gt
2961873bd drm/xe: Fix VM bind out-sync signaling ordering
3f291a866 drm/xe: Remove async worker and rework sync binds
7f6aba850 drm/xe/uapi: Kill DRM_XE_UFENCE_WAIT_VM_ERROR
6f0a08ad9 drm/xe: Kill XE_VM_PROPERTY_BIND_OP_ERROR_CAPTURE_ADDRESS extension
d3e147345 drm/xe/uapi: Use common drm_xe_ext_set_property extension
8c238f901 drm/xe: Remove XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE from uAPI
4d868dd83 drm/xe: Rename exec_queue_kill_compute to xe_vm_remove_compute_exec_queue
a187384b9 drm/xe: Deprecate XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE implementation
9fbf6c3c5 drm/xe: Fix xe_exec_queue_is_idle for parallel exec queues
f65de3dac drm/xe/uapi: Remove MMIO ioctl
a3e7c95d7 drm/xe/vm: Remove VM_BIND_OP macro
07c2354d3 drm/xe/uapi: Separate VM_BIND's operation and flag
cefcdc6e5 drm/xe: Correlate engine and cpu timestamps with better accuracy
ac53f74e2 drm/xe: Set the correct type for xe_to_user_engine_class
cb15bb2d5 drm/xe: Fix array bounds check for queries
fc8ec3c56 drm/xe: Add Wa_18028616096
run-parts: executing /workspace/ci/hooks/10-build-W1
+ SRC_DIR=/workspace/kernel
+ RESTORE_DISPLAY_CONFIG=0
+ '[' -n /workspace/kernel/build64-default ']'
+ BUILD_DIR=/workspace/kernel/build64-default
+ cd /workspace/kernel
+ grep -q -e '^CONFIG_DRM_XE_DISPLAY=[yY]' /workspace/kernel/build64-default/.config
+ RESTORE_DISPLAY_CONFIG=1
+ trap cleanup EXIT
+ ./scripts/config --file /workspace/kernel/build64-default/.config --disable CONFIG_DRM_XE_DISPLAY
++ nproc
+ make -j48 O=/workspace/kernel/build64-default modules_prepare
make[1]: Entering directory '/workspace/kernel/build64-default'
  SYNC    include/config/auto.conf.cmd
  GEN     Makefile
  GEN     Makefile
  UPD     include/config/kernel.release
  UPD     include/generated/compile.h
  UPD     include/generated/utsrelease.h
  DESCEND objtool
  CALL    ../scripts/checksyscalls.sh
  HOSTCC  /workspace/kernel/build64-default/tools/objtool/fixdep.o
  HOSTLD  /workspace/kernel/build64-default/tools/objtool/fixdep-in.o
  LINK    /workspace/kernel/build64-default/tools/objtool/fixdep
  INSTALL libsubcmd_headers
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/exec-cmd.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/help.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/pager.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/parse-options.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/run-command.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/sigchain.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/subcmd-config.o
  LD      /workspace/kernel/build64-default/tools/objtool/libsubcmd/libsubcmd-in.o
  AR      /workspace/kernel/build64-default/tools/objtool/libsubcmd/libsubcmd.a
  CC      /workspace/kernel/build64-default/tools/objtool/weak.o
  CC      /workspace/kernel/build64-default/tools/objtool/check.o
  CC      /workspace/kernel/build64-default/tools/objtool/special.o
  CC      /workspace/kernel/build64-default/tools/objtool/builtin-check.o
  CC      /workspace/kernel/build64-default/tools/objtool/elf.o
  CC      /workspace/kernel/build64-default/tools/objtool/objtool.o
  CC      /workspace/kernel/build64-default/tools/objtool/orc_gen.o
  CC      /workspace/kernel/build64-default/tools/objtool/orc_dump.o
  CC      /workspace/kernel/build64-default/tools/objtool/libstring.o
  CC      /workspace/kernel/build64-default/tools/objtool/libctype.o
  CC      /workspace/kernel/build64-default/tools/objtool/str_error_r.o
  CC      /workspace/kernel/build64-default/tools/objtool/librbtree.o
  CC      /workspace/kernel/build64-default/tools/objtool/arch/x86/special.o
  CC      /workspace/kernel/build64-default/tools/objtool/arch/x86/decode.o
  LD      /workspace/kernel/build64-default/tools/objtool/arch/x86/objtool-in.o
  LD      /workspace/kernel/build64-default/tools/objtool/objtool-in.o
  LINK    /workspace/kernel/build64-default/tools/objtool/objtool
make[1]: Leaving directory '/workspace/kernel/build64-default'
++ nproc
+ make -j48 O=/workspace/kernel/build64-default M=drivers/gpu/drm/xe W=1
make[1]: Entering directory '/workspace/kernel/build64-default'
  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_device_sysfs.o
  CC [M]  drivers/gpu/drm/xe/xe_dma_buf.o
  CC [M]  drivers/gpu/drm/xe/xe_drm_client.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_exec_queue.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_engine_class_sysfs.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_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_range_fence.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_madvise.o
  CC [M]  drivers/gpu/drm/xe/xe_wait_user_fence.o
  CC [M]  drivers/gpu/drm/xe/xe_wopcm.o
  CC [M]  drivers/gpu/drm/xe/xe_pmu.o
  HDRTEST drivers/gpu/drm/xe/abi/guc_klvs_abi.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_errors_abi.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_actions_slpc_abi.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_communication_mmio_abi.h
  CC [M]  drivers/gpu/drm/xe/tests/xe_bo_test.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_dma_buf_test.o
  HDRTEST drivers/gpu/drm/xe/abi/guc_actions_abi.h
  CC [M]  drivers/gpu/drm/xe/tests/xe_migrate_test.o
  HDRTEST drivers/gpu/drm/xe/abi/guc_communication_ctb_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/abi/guc_messages_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/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
  CC [M]  drivers/gpu/drm/xe/tests/xe_wa_test.o
  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_assert.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_sysfs.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_drm_client.h
  HDRTEST drivers/gpu/drm/xe/xe_drv.h
  HDRTEST drivers/gpu/drm/xe/xe_exec.h
  HDRTEST drivers/gpu/drm/xe/xe_exec_queue.h
  HDRTEST drivers/gpu/drm/xe/xe_exec_queue_types.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_idle_sysfs.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_debugfs.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_exec_queue_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_types.h
  HDRTEST drivers/gpu/drm/xe/xe_huc_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_hw_engine.h
  HDRTEST drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.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_pat.h
  HDRTEST drivers/gpu/drm/xe/xe_module.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_pmu.h
  HDRTEST drivers/gpu/drm/xe/xe_pmu_types.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_range_fence.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_migrate.o
  CC [M]  drivers/gpu/drm/xe/xe_ring_ops.o
  CC [M]  drivers/gpu/drm/xe/xe_vm.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
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/xe/tests/xe_bo_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/xe/tests/xe_dma_buf_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/xe/tests/xe_migrate_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/xe/tests/xe_pci_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/xe/tests/xe_rtp_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/xe/tests/xe_wa_test.o
  CC [M]  drivers/gpu/drm/xe/xe.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_bo_test.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_dma_buf_test.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_migrate_test.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_pci_test.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_rtp_test.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_wa_test.mod.o
  LD [M]  drivers/gpu/drm/xe/tests/xe_bo_test.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_rtp_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_migrate_test.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_dma_buf_test.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_wa_test.ko
make[1]: Leaving directory '/workspace/kernel/build64-default'
+ cleanup
+ '[' 1 -eq 1 ']'
+ ./scripts/config --file /workspace/kernel/build64-default/.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
include/uapi/drm/xe_drm.h:267: warning: Incorrect use of kernel-doc format:          * Command streamer cycles as read from the command streamer
include/uapi/drm/xe_drm.h:276: warning: Incorrect use of kernel-doc format:          * CPU timestamp in ns. The timestamp is captured before reading the
include/uapi/drm/xe_drm.h:282: warning: Incorrect use of kernel-doc format:          * Time delta in ns captured around reading the lower dword of the
include/uapi/drm/xe_drm.h:288: warning: Incorrect use of kernel-doc format:          * Reference clock id for CPU timestamp. For definition, see
include/uapi/drm/xe_drm.h:297: warning: Function parameter or member 'eci' not described in 'drm_xe_query_cs_cycles'
include/uapi/drm/xe_drm.h:297: warning: Function parameter or member 'rsvd' not described in 'drm_xe_query_cs_cycles'
include/uapi/drm/xe_drm.h:297: warning: Function parameter or member 'cs_cycles' not described in 'drm_xe_query_cs_cycles'
include/uapi/drm/xe_drm.h:297: warning: Function parameter or member 'cs_reference_clock' not described in 'drm_xe_query_cs_cycles'
include/uapi/drm/xe_drm.h:297: warning: Function parameter or member 'cpu_timestamp' not described in 'drm_xe_query_cs_cycles'
include/uapi/drm/xe_drm.h:297: warning: Function parameter or member 'cpu_delta' not described in 'drm_xe_query_cs_cycles'
include/uapi/drm/xe_drm.h:297: warning: Function parameter or member 'clockid' not described in 'drm_xe_query_cs_cycles'
include/uapi/drm/xe_drm.h:297: warning: Function parameter or member 'width' not described in 'drm_xe_query_cs_cycles'
include/uapi/drm/xe_drm.h:494: warning: Function parameter or member 'uc_type' not described in 'drm_xe_query_uc_fw_version'
include/uapi/drm/xe_drm.h:494: warning: Function parameter or member 'major_ver' not described in 'drm_xe_query_uc_fw_version'
include/uapi/drm/xe_drm.h:494: warning: Function parameter or member 'minor_ver' not described in 'drm_xe_query_uc_fw_version'
include/uapi/drm/xe_drm.h:494: warning: Function parameter or member 'patch_ver' not described in 'drm_xe_query_uc_fw_version'
include/uapi/drm/xe_drm.h:494: warning: Function parameter or member 'branch_ver' not described in 'drm_xe_query_uc_fw_version'
17 warnings as Errors
run-parts: /workspace/ci/hooks/20-kernel-doc exited with return code 123



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

* [Intel-xe] ✓ CI.checksparse: success for uAPI Alignment - take 1 v3
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (34 preceding siblings ...)
  2023-09-26 13:22 ` [Intel-xe] ✗ CI.Hooks: failure " Patchwork
@ 2023-09-26 13:23 ` Patchwork
  2023-09-26 13:49 ` [Intel-xe] ✗ CI.BAT: failure " Patchwork
  2023-10-04  0:31 ` [Intel-xe] [PATCH v3 00/30] " John Harrison
  37 siblings, 0 replies; 60+ messages in thread
From: Patchwork @ 2023-09-26 13:23 UTC (permalink / raw)
  To: Francois Dugast; +Cc: intel-xe

== Series Details ==

Series: uAPI Alignment - take 1 v3
URL   : https://patchwork.freedesktop.org/series/124271/
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 fc8ec3c56efa5c15b630ddc17c89100440fe03ef
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] 60+ messages in thread

* [Intel-xe] ✗ CI.BAT: failure for uAPI Alignment - take 1 v3
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (35 preceding siblings ...)
  2023-09-26 13:23 ` [Intel-xe] ✓ CI.checksparse: success " Patchwork
@ 2023-09-26 13:49 ` Patchwork
  2023-10-04  0:31 ` [Intel-xe] [PATCH v3 00/30] " John Harrison
  37 siblings, 0 replies; 60+ messages in thread
From: Patchwork @ 2023-09-26 13:49 UTC (permalink / raw)
  To: Francois Dugast; +Cc: intel-xe

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

== Series Details ==

Series: uAPI Alignment - take 1 v3
URL   : https://patchwork.freedesktop.org/series/124271/
State : failure

== Summary ==

CI Bug Log - changes from xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef_BAT -> xe-pw-124271v1_BAT
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with xe-pw-124271v1_BAT absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in xe-pw-124271v1_BAT, please notify your bug team (lgci.bug.filing@intel.com) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

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

  Missing    (1): bat-pvc-2 

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

  Here are the unknown changes that may have been introduced in xe-pw-124271v1_BAT:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_psr@primary_page_flip:
    - bat-adlp-7:         NOTRUN -> [FAIL][1] +12 other tests fail
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-adlp-7/igt@kms_psr@primary_page_flip.html

  * igt@xe_exec_compute_mode@twice-userptr-invalidate:
    - bat-atsm-2:         [PASS][2] -> [FAIL][3] +130 other tests fail
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-atsm-2/igt@xe_exec_compute_mode@twice-userptr-invalidate.html
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-atsm-2/igt@xe_exec_compute_mode@twice-userptr-invalidate.html

  * igt@xe_intel_bb@create-in-region:
    - bat-dg2-oem2:       [PASS][4] -> [FAIL][5] +180 other tests fail
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-dg2-oem2/igt@xe_intel_bb@create-in-region.html
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-dg2-oem2/igt@xe_intel_bb@create-in-region.html
    - bat-adlp-7:         [PASS][6] -> [FAIL][7] +158 other tests fail
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-adlp-7/igt@xe_intel_bb@create-in-region.html
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-adlp-7/igt@xe_intel_bb@create-in-region.html

  
#### Warnings ####

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
    - bat-dg2-oem2:       [SKIP][8] ([Intel XE#623]) -> [FAIL][9]
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-dg2-oem2/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-dg2-oem2/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html

  * igt@kms_addfb_basic@basic-y-tiled-legacy:
    - bat-dg2-oem2:       [SKIP][10] ([Intel XE#624]) -> [FAIL][11]
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-dg2-oem2/igt@kms_addfb_basic@basic-y-tiled-legacy.html
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-dg2-oem2/igt@kms_addfb_basic@basic-y-tiled-legacy.html
    - bat-adlp-7:         [FAIL][12] ([Intel XE#609]) -> [FAIL][13] +2 other tests fail
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-adlp-7/igt@kms_addfb_basic@basic-y-tiled-legacy.html
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-adlp-7/igt@kms_addfb_basic@basic-y-tiled-legacy.html

  * igt@kms_addfb_basic@invalid-set-prop-any:
    - bat-atsm-2:         [SKIP][14] ([i915#6077]) -> [FAIL][15] +33 other tests fail
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-atsm-2/igt@kms_addfb_basic@invalid-set-prop-any.html
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-atsm-2/igt@kms_addfb_basic@invalid-set-prop-any.html

  * igt@kms_addfb_basic@tile-pitch-mismatch:
    - bat-dg2-oem2:       [FAIL][16] ([Intel XE#609]) -> [FAIL][17] +1 other test fail
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-dg2-oem2/igt@kms_addfb_basic@tile-pitch-mismatch.html
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-dg2-oem2/igt@kms_addfb_basic@tile-pitch-mismatch.html

  * igt@kms_cursor_legacy@basic-flip-before-cursor-legacy:
    - bat-atsm-2:         [SKIP][18] ([Intel XE#274] / [Intel XE#539]) -> [FAIL][19] +5 other tests fail
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-atsm-2/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-atsm-2/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html

  * igt@kms_dsc@dsc-basic:
    - bat-atsm-2:         [SKIP][20] ([Intel XE#539]) -> [FAIL][21] +1 other test fail
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-atsm-2/igt@kms_dsc@dsc-basic.html
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-atsm-2/igt@kms_dsc@dsc-basic.html
    - bat-dg2-oem2:       [SKIP][22] ([Intel XE#423]) -> [FAIL][23]
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-dg2-oem2/igt@kms_dsc@dsc-basic.html
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-dg2-oem2/igt@kms_dsc@dsc-basic.html
    - bat-adlp-7:         [SKIP][24] ([Intel XE#423]) -> [FAIL][25]
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-adlp-7/igt@kms_dsc@dsc-basic.html
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-adlp-7/igt@kms_dsc@dsc-basic.html

  * igt@kms_flip@basic-flip-vs-modeset:
    - bat-atsm-2:         [SKIP][26] ([Intel XE#275]) -> [FAIL][27] +3 other tests fail
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-atsm-2/igt@kms_flip@basic-flip-vs-modeset.html
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-atsm-2/igt@kms_flip@basic-flip-vs-modeset.html

  * igt@kms_force_connector_basic@force-connector-state:
    - bat-atsm-2:         [SKIP][28] ([Intel XE#277] / [Intel XE#540]) -> [FAIL][29] +2 other tests fail
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-atsm-2/igt@kms_force_connector_basic@force-connector-state.html
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-atsm-2/igt@kms_force_connector_basic@force-connector-state.html

  * igt@kms_force_connector_basic@prune-stale-modes:
    - bat-dg2-oem2:       [SKIP][30] ([i915#5274]) -> [FAIL][31]
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-dg2-oem2/igt@kms_force_connector_basic@prune-stale-modes.html
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-dg2-oem2/igt@kms_force_connector_basic@prune-stale-modes.html

  * igt@kms_frontbuffer_tracking@basic:
    - bat-dg2-oem2:       [FAIL][32] ([Intel XE#608]) -> [FAIL][33]
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-dg2-oem2/igt@kms_frontbuffer_tracking@basic.html
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-dg2-oem2/igt@kms_frontbuffer_tracking@basic.html
    - bat-adlp-7:         [INCOMPLETE][34] ([Intel XE#632]) -> [FAIL][35]
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-adlp-7/igt@kms_frontbuffer_tracking@basic.html
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-adlp-7/igt@kms_frontbuffer_tracking@basic.html

  * igt@kms_hdmi_inject@inject-audio:
    - bat-atsm-2:         [SKIP][36] ([Intel XE#540]) -> [FAIL][37]
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-atsm-2/igt@kms_hdmi_inject@inject-audio.html
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-atsm-2/igt@kms_hdmi_inject@inject-audio.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12:
    - bat-dg2-oem2:       [FAIL][38] ([Intel XE#400]) -> [FAIL][39]
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-dg2-oem2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12.html
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-dg2-oem2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xr24:
    - bat-atsm-2:         [SKIP][40] ([Intel XE#537] / [i915#1836]) -> [FAIL][41] +6 other tests fail
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-atsm-2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xr24.html
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-atsm-2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xr24.html

  * igt@kms_prop_blob@basic:
    - bat-atsm-2:         [SKIP][42] ([Intel XE#273]) -> [FAIL][43]
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-atsm-2/igt@kms_prop_blob@basic.html
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-atsm-2/igt@kms_prop_blob@basic.html

  * igt@kms_psr@cursor_plane_move:
    - bat-atsm-2:         [SKIP][44] ([i915#1072]) -> [FAIL][45] +2 other tests fail
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-atsm-2/igt@kms_psr@cursor_plane_move.html
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-atsm-2/igt@kms_psr@cursor_plane_move.html

  * igt@kms_psr@primary_page_flip:
    - bat-dg2-oem2:       [SKIP][46] ([i915#1072]) -> [FAIL][47] +2 other tests fail
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-dg2-oem2/igt@kms_psr@primary_page_flip.html
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-dg2-oem2/igt@kms_psr@primary_page_flip.html

  * igt@xe_compute@compute-square:
    - bat-atsm-2:         [SKIP][48] ([Intel XE#672]) -> [FAIL][49]
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-atsm-2/igt@xe_compute@compute-square.html
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-atsm-2/igt@xe_compute@compute-square.html
    - bat-dg2-oem2:       [SKIP][50] ([Intel XE#672]) -> [FAIL][51]
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-dg2-oem2/igt@xe_compute@compute-square.html
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-dg2-oem2/igt@xe_compute@compute-square.html

  * igt@xe_evict@evict-beng-small-external:
    - bat-adlp-7:         [SKIP][52] ([Intel XE#261] / [Intel XE#688]) -> [FAIL][53] +15 other tests fail
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-adlp-7/igt@xe_evict@evict-beng-small-external.html
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-adlp-7/igt@xe_evict@evict-beng-small-external.html

  * igt@xe_exec_fault_mode@many-basic:
    - bat-dg2-oem2:       [SKIP][54] ([Intel XE#288]) -> [FAIL][55] +17 other tests fail
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-dg2-oem2/igt@xe_exec_fault_mode@many-basic.html
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-dg2-oem2/igt@xe_exec_fault_mode@many-basic.html

  * igt@xe_exec_fault_mode@twice-userptr:
    - bat-adlp-7:         [SKIP][56] ([Intel XE#288]) -> [FAIL][57] +17 other tests fail
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-adlp-7/igt@xe_exec_fault_mode@twice-userptr.html
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-adlp-7/igt@xe_exec_fault_mode@twice-userptr.html

  * igt@xe_exec_fault_mode@twice-userptr-invalidate-imm:
    - bat-atsm-2:         [SKIP][58] ([Intel XE#288]) -> [FAIL][59] +17 other tests fail
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-atsm-2/igt@xe_exec_fault_mode@twice-userptr-invalidate-imm.html
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-atsm-2/igt@xe_exec_fault_mode@twice-userptr-invalidate-imm.html

  * igt@xe_huc_copy@huc_copy:
    - bat-dg2-oem2:       [SKIP][60] ([Intel XE#255]) -> [FAIL][61]
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-dg2-oem2/igt@xe_huc_copy@huc_copy.html
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-dg2-oem2/igt@xe_huc_copy@huc_copy.html
    - bat-atsm-2:         [SKIP][62] ([Intel XE#255]) -> [FAIL][63]
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-atsm-2/igt@xe_huc_copy@huc_copy.html
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-atsm-2/igt@xe_huc_copy@huc_copy.html

  * igt@xe_mmap@vram:
    - bat-adlp-7:         [SKIP][64] ([Intel XE#263]) -> [FAIL][65]
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-adlp-7/igt@xe_mmap@vram.html
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-adlp-7/igt@xe_mmap@vram.html

  
#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * {igt@xe_exec_basic@no-exec-bindexecqueue}:
    - bat-dg2-oem2:       [PASS][66] -> [FAIL][67] +13 other tests fail
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-dg2-oem2/igt@xe_exec_basic@no-exec-bindexecqueue.html
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-dg2-oem2/igt@xe_exec_basic@no-exec-bindexecqueue.html

  * {igt@xe_exec_compute_mode@twice-bindexecqueue-userptr-rebind}:
    - bat-atsm-2:         [PASS][68] -> [FAIL][69] +13 other tests fail
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-atsm-2/igt@xe_exec_compute_mode@twice-bindexecqueue-userptr-rebind.html
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-atsm-2/igt@xe_exec_compute_mode@twice-bindexecqueue-userptr-rebind.html

  * {igt@xe_exec_fault_mode@twice-bindexecqueue-userptr}:
    - bat-adlp-7:         [SKIP][70] ([Intel XE#288]) -> [FAIL][71] +14 other tests fail
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-adlp-7/igt@xe_exec_fault_mode@twice-bindexecqueue-userptr.html
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-adlp-7/igt@xe_exec_fault_mode@twice-bindexecqueue-userptr.html

  * {igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-invalidate}:
    - bat-dg2-oem2:       [SKIP][72] ([Intel XE#288]) -> [FAIL][73] +14 other tests fail
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-dg2-oem2/igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-invalidate.html
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-dg2-oem2/igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-invalidate.html

  * {igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-rebind}:
    - bat-atsm-2:         [SKIP][74] ([Intel XE#288]) -> [FAIL][75] +14 other tests fail
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-atsm-2/igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-rebind.html
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-atsm-2/igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-rebind.html

  * {igt@xe_vm@bind-execqueues-independent}:
    - bat-adlp-7:         [PASS][76] -> [FAIL][77] +13 other tests fail
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef/bat-adlp-7/igt@xe_vm@bind-execqueues-independent.html
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-124271v1/bat-adlp-7/igt@xe_vm@bind-execqueues-independent.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [Intel XE#255]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/255
  [Intel XE#261]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/261
  [Intel XE#263]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/263
  [Intel XE#273]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/273
  [Intel XE#274]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/274
  [Intel XE#275]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/275
  [Intel XE#277]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/277
  [Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
  [Intel XE#400]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/400
  [Intel XE#423]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/423
  [Intel XE#537]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/537
  [Intel XE#539]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/539
  [Intel XE#540]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/540
  [Intel XE#608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/608
  [Intel XE#609]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/609
  [Intel XE#623]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/623
  [Intel XE#624]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/624
  [Intel XE#632]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/632
  [Intel XE#672]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/672
  [Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1836]: https://gitlab.freedesktop.org/drm/intel/issues/1836
  [i915#5274]: https://gitlab.freedesktop.org/drm/intel/issues/5274
  [i915#6077]: https://gitlab.freedesktop.org/drm/intel/issues/6077


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

  * IGT: IGT_7502 -> IGT_7503
  * Linux: xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef -> xe-pw-124271v1

  IGT_7502: ac56ba97248b33668fbe771882360bd7b274cc9a @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  IGT_7503: 7503
  xe-396-fc8ec3c56efa5c15b630ddc17c89100440fe03ef: fc8ec3c56efa5c15b630ddc17c89100440fe03ef
  xe-pw-124271v1: 124271v1

== Logs ==

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

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

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

* Re: [Intel-xe] [PATCH v3 29/30] drm/xe/uapi: Add missing DRM_ prefix in uAPI constants
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 29/30] drm/xe/uapi: Add missing DRM_ prefix in uAPI constants Francois Dugast
@ 2023-09-26 16:24   ` Souza, Jose
  0 siblings, 0 replies; 60+ messages in thread
From: Souza, Jose @ 2023-09-26 16:24 UTC (permalink / raw)
  To: intel-xe, Dugast, Francois

On Tue, 2023-09-26 at 12:55 +0000, Francois Dugast wrote:
> Most constants defined in xe_drm.h use DRM_XE_ as prefix which is
> helpful to identify the name space. Make this systematic and add
> this prefix where it was missing.
> 
> Signed-off-by: Francois Dugast <francois.dugast@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_bo.c         |  14 ++--
>  drivers/gpu/drm/xe/xe_exec_queue.c |  20 +++---
>  drivers/gpu/drm/xe/xe_gt.c         |   2 +-
>  drivers/gpu/drm/xe/xe_pmu.c        |  20 +++---
>  drivers/gpu/drm/xe/xe_query.c      |  38 +++++-----
>  drivers/gpu/drm/xe/xe_vm.c         |  54 +++++++-------
>  drivers/gpu/drm/xe/xe_vm_doc.h     |  12 ++--
>  drivers/gpu/drm/xe/xe_vm_madvise.c |   8 +--
>  include/uapi/drm/xe_drm.h          | 110 ++++++++++++++---------------
>  9 files changed, 139 insertions(+), 139 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
> index 61789c0e88fb..5b9f07838061 100644
> --- a/drivers/gpu/drm/xe/xe_bo.c
> +++ b/drivers/gpu/drm/xe/xe_bo.c
> @@ -208,7 +208,7 @@ static int __xe_bo_placement_for_flags(struct xe_device *xe, struct xe_bo *bo,
>  
>  	/* The order of placements should indicate preferred location */
>  
> -	if (bo->props.preferred_mem_class == XE_MEM_REGION_CLASS_SYSMEM) {
> +	if (bo->props.preferred_mem_class == DRM_XE_MEM_REGION_CLASS_SYSMEM) {
>  		try_add_system(bo, places, bo_flags, &c);
>  		try_add_vram(xe, bo, places, bo_flags, &c);
>  	} else {
> @@ -1773,9 +1773,9 @@ int xe_gem_create_ioctl(struct drm_device *dev, void *data,
>  		return -EINVAL;
>  
>  	if (XE_IOCTL_DBG(xe, args->flags &
> -			 ~(XE_GEM_CREATE_FLAG_DEFER_BACKING |
> -			   XE_GEM_CREATE_FLAG_SCANOUT |
> -			   XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM |
> +			 ~(DRM_XE_GEM_CREATE_FLAG_DEFER_BACKING |
> +			   DRM_XE_GEM_CREATE_FLAG_SCANOUT |
> +			   DRM_XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM |
>  			   xe->info.mem_region_mask)))
>  		return -EINVAL;
>  
> @@ -1795,15 +1795,15 @@ int xe_gem_create_ioctl(struct drm_device *dev, void *data,
>  	if (XE_IOCTL_DBG(xe, args->size & ~PAGE_MASK))
>  		return -EINVAL;
>  
> -	if (args->flags & XE_GEM_CREATE_FLAG_DEFER_BACKING)
> +	if (args->flags & DRM_XE_GEM_CREATE_FLAG_DEFER_BACKING)
>  		bo_flags |= XE_BO_DEFER_BACKING;
>  
> -	if (args->flags & XE_GEM_CREATE_FLAG_SCANOUT)
> +	if (args->flags & DRM_XE_GEM_CREATE_FLAG_SCANOUT)
>  		bo_flags |= XE_BO_SCANOUT_BIT;
>  
>  	bo_flags |= args->flags << (ffs(XE_BO_CREATE_SYSTEM_BIT) - 1);
>  
> -	if (args->flags & XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM) {
> +	if (args->flags & DRM_XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM) {
>  		if (XE_IOCTL_DBG(xe, !(bo_flags & XE_BO_CREATE_VRAM_MASK)))
>  			return -EINVAL;
>  
> diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c
> index dd61c4267e24..98f9d4cd9cc5 100644
> --- a/drivers/gpu/drm/xe/xe_exec_queue.c
> +++ b/drivers/gpu/drm/xe/xe_exec_queue.c
> @@ -403,14 +403,14 @@ typedef int (*xe_exec_queue_set_property_fn)(struct xe_device *xe,
>  					     u64 value, bool create);
>  
>  static const xe_exec_queue_set_property_fn exec_queue_set_property_funcs[] = {
> -	[XE_EXEC_QUEUE_SET_PROPERTY_PRIORITY] = exec_queue_set_priority,
> -	[XE_EXEC_QUEUE_SET_PROPERTY_TIMESLICE] = exec_queue_set_timeslice,
> -	[XE_EXEC_QUEUE_SET_PROPERTY_PREEMPTION_TIMEOUT] = exec_queue_set_preemption_timeout,
> -	[XE_EXEC_QUEUE_SET_PROPERTY_PERSISTENCE] = exec_queue_set_persistence,
> -	[XE_EXEC_QUEUE_SET_PROPERTY_JOB_TIMEOUT] = exec_queue_set_job_timeout,
> -	[XE_EXEC_QUEUE_SET_PROPERTY_ACC_TRIGGER] = exec_queue_set_acc_trigger,
> -	[XE_EXEC_QUEUE_SET_PROPERTY_ACC_NOTIFY] = exec_queue_set_acc_notify,
> -	[XE_EXEC_QUEUE_SET_PROPERTY_ACC_GRANULARITY] = exec_queue_set_acc_granularity,
> +	[DRM_XE_EXEC_QUEUE_SET_PROPERTY_PRIORITY] = exec_queue_set_priority,
> +	[DRM_XE_EXEC_QUEUE_SET_PROPERTY_TIMESLICE] = exec_queue_set_timeslice,
> +	[DRM_XE_EXEC_QUEUE_SET_PROPERTY_PREEMPTION_TIMEOUT] = exec_queue_set_preemption_timeout,
> +	[DRM_XE_EXEC_QUEUE_SET_PROPERTY_PERSISTENCE] = exec_queue_set_persistence,
> +	[DRM_XE_EXEC_QUEUE_SET_PROPERTY_JOB_TIMEOUT] = exec_queue_set_job_timeout,
> +	[DRM_XE_EXEC_QUEUE_SET_PROPERTY_ACC_TRIGGER] = exec_queue_set_acc_trigger,
> +	[DRM_XE_EXEC_QUEUE_SET_PROPERTY_ACC_NOTIFY] = exec_queue_set_acc_notify,
> +	[DRM_XE_EXEC_QUEUE_SET_PROPERTY_ACC_GRANULARITY] = exec_queue_set_acc_granularity,
>  };
>  
>  static int exec_queue_user_ext_set_property(struct xe_device *xe,
> @@ -442,7 +442,7 @@ typedef int (*xe_exec_queue_user_extension_fn)(struct xe_device *xe,
>  					       bool create);
>  
>  static const xe_exec_queue_set_property_fn exec_queue_user_extension_funcs[] = {
> -	[XE_EXEC_QUEUE_EXTENSION_SET_PROPERTY] = exec_queue_user_ext_set_property,
> +	[DRM_XE_EXEC_QUEUE_EXTENSION_SET_PROPERTY] = exec_queue_user_ext_set_property,
>  };
>  
>  #define MAX_USER_EXTENSIONS	16
> @@ -761,7 +761,7 @@ int xe_exec_queue_get_property_ioctl(struct drm_device *dev, void *data,
>  		return -ENOENT;
>  
>  	switch (args->property) {
> -	case XE_EXEC_QUEUE_GET_PROPERTY_BAN:
> +	case DRM_XE_EXEC_QUEUE_GET_PROPERTY_BAN:
>  		args->value = !!(q->flags & EXEC_QUEUE_FLAG_BANNED);
>  		ret = 0;
>  		break;
> diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
> index 1aa44d4f9ac1..5370e0c88bfd 100644
> --- a/drivers/gpu/drm/xe/xe_gt.c
> +++ b/drivers/gpu/drm/xe/xe_gt.c
> @@ -534,7 +534,7 @@ static void xe_uevent_gt_reset_failure(struct pci_dev *pdev, u8 tile_id, u8 gt_i
>  {
>  	char *reset_event[4];
>  
> -	reset_event[0] = XE_RESET_FAILED_UEVENT "=NEEDS_RESET";
> +	reset_event[0] = DRM_XE_RESET_FAILED_UEVENT "=NEEDS_RESET";
>  	reset_event[1] = kasprintf(GFP_KERNEL, "TILE_ID=%d", tile_id);
>  	reset_event[2] = kasprintf(GFP_KERNEL, "GT_ID=%d", gt_id);
>  	reset_event[3] = NULL;
> diff --git a/drivers/gpu/drm/xe/xe_pmu.c b/drivers/gpu/drm/xe/xe_pmu.c
> index abfc0b3aeac4..8378ca3007d9 100644
> --- a/drivers/gpu/drm/xe/xe_pmu.c
> +++ b/drivers/gpu/drm/xe/xe_pmu.c
> @@ -114,17 +114,17 @@ config_status(struct xe_device *xe, u64 config)
>  		return -ENOENT;
>  
>  	switch (config_counter(config)) {
> -	case XE_PMU_INTERRUPTS(0):
> +	case DRM_XE_PMU_INTERRUPTS(0):
>  		if (gt_id)
>  			return -ENOENT;
>  		break;
> -	case XE_PMU_RENDER_GROUP_BUSY(0):
> -	case XE_PMU_COPY_GROUP_BUSY(0):
> -	case XE_PMU_ANY_ENGINE_GROUP_BUSY(0):
> +	case DRM_XE_PMU_RENDER_GROUP_BUSY(0):
> +	case DRM_XE_PMU_COPY_GROUP_BUSY(0):
> +	case DRM_XE_PMU_ANY_ENGINE_GROUP_BUSY(0):
>  		if (gt->info.type == XE_GT_TYPE_MEDIA)
>  			return -ENOENT;
>  		break;
> -	case XE_PMU_MEDIA_GROUP_BUSY(0):
> +	case DRM_XE_PMU_MEDIA_GROUP_BUSY(0):
>  		if (!(gt->info.engine_mask & (BIT(XE_HW_ENGINE_VCS0) | BIT(XE_HW_ENGINE_VECS0))))
>  			return -ENOENT;
>  		break;
> @@ -185,13 +185,13 @@ static u64 __xe_pmu_event_read(struct perf_event *event)
>  	u64 val;
>  
>  	switch (config_counter(config)) {
> -	case XE_PMU_INTERRUPTS(0):
> +	case DRM_XE_PMU_INTERRUPTS(0):
>  		val = READ_ONCE(pmu->irq_count);
>  		break;
> -	case XE_PMU_RENDER_GROUP_BUSY(0):
> -	case XE_PMU_COPY_GROUP_BUSY(0):
> -	case XE_PMU_ANY_ENGINE_GROUP_BUSY(0):
> -	case XE_PMU_MEDIA_GROUP_BUSY(0):
> +	case DRM_XE_PMU_RENDER_GROUP_BUSY(0):
> +	case DRM_XE_PMU_COPY_GROUP_BUSY(0):
> +	case DRM_XE_PMU_ANY_ENGINE_GROUP_BUSY(0):
> +	case DRM_XE_PMU_MEDIA_GROUP_BUSY(0):
>  		val = engine_group_busyness_read(gt, config);
>  		break;
>  	default:
> diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
> index 17857827d3bd..86ee77ea5ba3 100644
> --- a/drivers/gpu/drm/xe/xe_query.c
> +++ b/drivers/gpu/drm/xe/xe_query.c
> @@ -264,7 +264,7 @@ static int query_memory_usage(struct xe_device *xe,
>  		return -ENOMEM;
>  
>  	man = ttm_manager_type(&xe->ttm, XE_PL_TT);
> -	usage->regions[0].mem_class = XE_MEM_REGION_CLASS_SYSMEM;
> +	usage->regions[0].mem_class = DRM_XE_MEM_REGION_CLASS_SYSMEM;
>  	usage->regions[0].instance = 0;
>  	usage->regions[0].min_page_size = PAGE_SIZE;
>  	usage->regions[0].total_size = man->size << PAGE_SHIFT;
> @@ -276,7 +276,7 @@ static int query_memory_usage(struct xe_device *xe,
>  		man = ttm_manager_type(&xe->ttm, i);
>  		if (man) {
>  			usage->regions[usage->num_regions].mem_class =
> -				XE_MEM_REGION_CLASS_VRAM;
> +				DRM_XE_MEM_REGION_CLASS_VRAM;
>  			usage->regions[usage->num_regions].instance =
>  				usage->num_regions;
>  			usage->regions[usage->num_regions].min_page_size =
> @@ -308,7 +308,7 @@ static int query_memory_usage(struct xe_device *xe,
>  
>  static int query_config(struct xe_device *xe, struct drm_xe_device_query *query)
>  {
> -#define XE_QUERY_CONFIG_NUM_PARAM	(XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY + 1)
> +#define XE_QUERY_CONFIG_NUM_PARAM	(DRM_XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY + 1)
>  	size_t size =
>  		sizeof(struct drm_xe_query_config)
>  		+ XE_QUERY_CONFIG_NUM_PARAM * sizeof(u64);
> @@ -327,18 +327,18 @@ static int query_config(struct xe_device *xe, struct drm_xe_device_query *query)
>  	if (!config)
>  		return -ENOMEM;
>  
> -	config->info[XE_QUERY_CONFIG_REV_AND_DEVICE_ID] =
> +	config->info[DRM_XE_QUERY_CONFIG_REV_AND_DEVICE_ID] =
>  		xe->info.devid | (xe->info.revid << 16);
>  	if (xe_device_get_root_tile(xe)->mem.vram.usable_size)
> -		config->info[XE_QUERY_CONFIG_FLAGS] =
> -			XE_QUERY_CONFIG_FLAGS_HAS_VRAM;
> -	config->info[XE_QUERY_CONFIG_MIN_ALIGNMENT] =
> +		config->info[DRM_XE_QUERY_CONFIG_FLAGS] =
> +			DRM_DRM_XE_QUERY_CONFIG_FLAGS_HAS_VRAM;
> +	config->info[DRM_XE_QUERY_CONFIG_MIN_ALIGNMENT] =
>  		xe->info.vram_flags & XE_VRAM_FLAGS_NEED64K ? SZ_64K : SZ_4K;
> -	config->info[XE_QUERY_CONFIG_VA_BITS] = xe->info.va_bits;
> -	config->info[XE_QUERY_CONFIG_GT_COUNT] = xe->info.gt_count;
> -	config->info[XE_QUERY_CONFIG_MEM_REGION_COUNT] =
> +	config->info[DRM_XE_QUERY_CONFIG_VA_BITS] = xe->info.va_bits;
> +	config->info[DRM_XE_QUERY_CONFIG_GT_COUNT] = xe->info.gt_count;
> +	config->info[DRM_XE_QUERY_CONFIG_MEM_REGION_COUNT] =
>  		hweight_long(xe->info.mem_region_mask);
> -	config->info[XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY] =
> +	config->info[DRM_XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY] =
>  		xe_exec_queue_device_get_max_priority(xe);
>  
>  	if (copy_to_user(query_ptr, config, size)) {
> @@ -374,11 +374,11 @@ static int query_gt_list(struct xe_device *xe, struct drm_xe_device_query *query
>  	gt_list->num_gt = xe->info.gt_count;
>  	for_each_gt(gt, xe, id) {
>  		if (xe_gt_is_media_type(gt))
> -			gt_list->gt_list[id].type = XE_QUERY_GT_TYPE_MEDIA;
> +			gt_list->gt_list[id].type = DRM_XE_QUERY_GT_TYPE_MEDIA;
>  		else if (gt_to_tile(gt)->id > 0)
> -			gt_list->gt_list[id].type = XE_QUERY_GT_TYPE_REMOTE;
> +			gt_list->gt_list[id].type = DRM_XE_QUERY_GT_TYPE_REMOTE;
>  		else
> -			gt_list->gt_list[id].type = XE_QUERY_GT_TYPE_MAIN;
> +			gt_list->gt_list[id].type = DRM_XE_QUERY_GT_TYPE_MAIN;
>  		gt_list->gt_list[id].gt_id = gt->info.id;
>  		if (!IS_DGFX(xe))
>  			gt_list->gt_list[id].native_mem_regions = 0x1;
> @@ -475,21 +475,21 @@ static int query_gt_topology(struct xe_device *xe,
>  	for_each_gt(gt, xe, id) {
>  		topo.gt_id = id;
>  
> -		topo.type = XE_TOPO_DSS_GEOMETRY;
> +		topo.type = DRM_XE_TOPO_DSS_GEOMETRY;
>  		query_ptr = copy_mask(query_ptr, &topo,
>  				      gt->fuse_topo.g_dss_mask,
>  				      sizeof(gt->fuse_topo.g_dss_mask));
>  		if (IS_ERR(query_ptr))
>  			return PTR_ERR(query_ptr);
>  
> -		topo.type = XE_TOPO_DSS_COMPUTE;
> +		topo.type = DRM_XE_TOPO_DSS_COMPUTE;
>  		query_ptr = copy_mask(query_ptr, &topo,
>  				      gt->fuse_topo.c_dss_mask,
>  				      sizeof(gt->fuse_topo.c_dss_mask));
>  		if (IS_ERR(query_ptr))
>  			return PTR_ERR(query_ptr);
>  
> -		topo.type = XE_TOPO_EU_PER_DSS;
> +		topo.type = DRM_XE_TOPO_EU_PER_DSS;
>  		query_ptr = copy_mask(query_ptr, &topo,
>  				      gt->fuse_topo.eu_mask_per_dss,
>  				      sizeof(gt->fuse_topo.eu_mask_per_dss));
> @@ -521,7 +521,7 @@ query_uc_fw_version(struct xe_device *xe, struct drm_xe_device_query *query)
>  		return -EINVAL;
>  
>  	switch (resp.uc_type) {
> -	case XE_QUERY_UC_TYPE_GUC: {
> +	case DRM_XE_QUERY_UC_TYPE_GUC: {
>  		struct xe_guc *guc = &xe->tiles[0].primary_gt->uc.guc;
>  
>  		resp.major_ver = guc->submission_state.version.major;
> @@ -530,7 +530,7 @@ query_uc_fw_version(struct xe_device *xe, struct drm_xe_device_query *query)
>  		resp.branch_ver = 0;
>  		break;
>  	}
> -	case XE_QUERY_UC_TYPE_HUC: {
> +	case DRM_XE_QUERY_UC_TYPE_HUC: {
>  		struct xe_huc *huc = &xe->tiles[0].primary_gt->uc.huc;
>  
>  		resp.major_ver = huc->fw.major_ver_found;
> diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> index acf097c57259..f985580b0eeb 100644
> --- a/drivers/gpu/drm/xe/xe_vm.c
> +++ b/drivers/gpu/drm/xe/xe_vm.c
> @@ -2049,8 +2049,8 @@ vm_bind_ioctl_ops_create(struct xe_vm *vm, struct xe_bo *bo,
>  	       (ULL)bo_offset_or_userptr);
>  
>  	switch (operation) {
> -	case XE_VM_BIND_OP_MAP:
> -	case XE_VM_BIND_OP_MAP_USERPTR:
> +	case DRM_XE_VM_BIND_OP_MAP:
> +	case DRM_DRM_XE_VM_BIND_OP_MAP_USERPTR:
>  		ops = drm_gpuva_sm_map_ops_create(&vm->mgr, addr, range,
>  						  obj, bo_offset_or_userptr);
>  		if (IS_ERR(ops))
> @@ -2061,13 +2061,13 @@ vm_bind_ioctl_ops_create(struct xe_vm *vm, struct xe_bo *bo,
>  
>  			op->tile_mask = tile_mask;
>  			op->map.immediate =
> -				flags & XE_VM_BIND_FLAG_IMMEDIATE;
> +				flags & DRM_XE_VM_BIND_FLAG_IMMEDIATE;
>  			op->map.read_only =
> -				flags & XE_VM_BIND_FLAG_READONLY;
> -			op->map.is_null = flags & XE_VM_BIND_FLAG_NULL;
> +				flags & DRM_XE_VM_BIND_FLAG_READONLY;
> +			op->map.is_null = flags & DRM_XE_VM_BIND_FLAG_NULL;
>  		}
>  		break;
> -	case XE_VM_BIND_OP_UNMAP:
> +	case DRM_XE_VM_BIND_OP_UNMAP:
>  		ops = drm_gpuva_sm_unmap_ops_create(&vm->mgr, addr, range);
>  		if (IS_ERR(ops))
>  			return ops;
> @@ -2078,7 +2078,7 @@ vm_bind_ioctl_ops_create(struct xe_vm *vm, struct xe_bo *bo,
>  			op->tile_mask = tile_mask;
>  		}
>  		break;
> -	case XE_VM_BIND_OP_PREFETCH:
> +	case DRM_XE_VM_BIND_OP_PREFETCH:
>  		ops = drm_gpuva_prefetch_ops_create(&vm->mgr, addr, range);
>  		if (IS_ERR(ops))
>  			return ops;
> @@ -2090,7 +2090,7 @@ vm_bind_ioctl_ops_create(struct xe_vm *vm, struct xe_bo *bo,
>  			op->prefetch.region = region;
>  		}
>  		break;
> -	case XE_VM_BIND_OP_UNMAP_ALL:
> +	case DRM_DRM_XE_VM_BIND_OP_UNMAP_ALL:
>  		xe_assert(vm->xe, bo);
>  
>  		err = xe_bo_lock(bo, true);
> @@ -2683,13 +2683,13 @@ static int vm_bind_ioctl_ops_execute(struct xe_vm *vm,
>  
>  #ifdef TEST_VM_ASYNC_OPS_ERROR
>  #define SUPPORTED_FLAGS	\
> -	(FORCE_ASYNC_OP_ERROR | XE_VM_BIND_FLAG_ASYNC | \
> -	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | \
> -	 XE_VM_BIND_FLAG_NULL | 0xffff)
> +	(FORCE_ASYNC_OP_ERROR | DRM_XE_VM_BIND_FLAG_ASYNC | \
> +	 DRM_XE_VM_BIND_FLAG_READONLY | DRM_XE_VM_BIND_FLAG_IMMEDIATE | \
> +	 DRM_XE_VM_BIND_FLAG_NULL | 0xffff)
>  #else
>  #define SUPPORTED_FLAGS	\
> -	(XE_VM_BIND_FLAG_ASYNC | XE_VM_BIND_FLAG_READONLY | \
> -	 XE_VM_BIND_FLAG_IMMEDIATE | XE_VM_BIND_FLAG_NULL | \
> +	(DRM_XE_VM_BIND_FLAG_ASYNC | DRM_XE_VM_BIND_FLAG_READONLY | \
> +	 DRM_XE_VM_BIND_FLAG_IMMEDIATE | DRM_XE_VM_BIND_FLAG_NULL | \
>  	 0xffff)
>  #endif
>  #define XE_64K_PAGE_MASK 0xffffull
> @@ -2737,45 +2737,45 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
>  		u32 obj = (*bind_ops)[i].obj;
>  		u64 obj_offset = (*bind_ops)[i].obj_offset;
>  		u32 region = (*bind_ops)[i].region;
> -		bool is_null = flags & XE_VM_BIND_FLAG_NULL;
> +		bool is_null = flags & DRM_XE_VM_BIND_FLAG_NULL;
>  
>  		if (i == 0) {
> -			*async = !!(flags & XE_VM_BIND_FLAG_ASYNC);
> +			*async = !!(flags & DRM_XE_VM_BIND_FLAG_ASYNC);
>  			if (XE_IOCTL_DBG(xe, !*async && args->num_syncs)) {
>  				err = -EINVAL;
>  				goto free_bind_ops;
>  			}
>  		} else if (XE_IOCTL_DBG(xe, *async !=
> -					!!(flags & XE_VM_BIND_FLAG_ASYNC))) {
> +					!!(flags & DRM_XE_VM_BIND_FLAG_ASYNC))) {
>  			err = -EINVAL;
>  			goto free_bind_ops;
>  		}
>  
> -		if (XE_IOCTL_DBG(xe, op > XE_VM_BIND_OP_PREFETCH) ||
> +		if (XE_IOCTL_DBG(xe, op > DRM_XE_VM_BIND_OP_PREFETCH) ||
>  		    XE_IOCTL_DBG(xe, flags & ~SUPPORTED_FLAGS) ||
>  		    XE_IOCTL_DBG(xe, obj && is_null) ||
>  		    XE_IOCTL_DBG(xe, obj_offset && is_null) ||
> -		    XE_IOCTL_DBG(xe, op != XE_VM_BIND_OP_MAP &&
> +		    XE_IOCTL_DBG(xe, op != DRM_XE_VM_BIND_OP_MAP &&
>  				 is_null) ||
>  		    XE_IOCTL_DBG(xe, !obj &&
> -				 op == XE_VM_BIND_OP_MAP &&
> +				 op == DRM_XE_VM_BIND_OP_MAP &&
>  				 !is_null) ||
>  		    XE_IOCTL_DBG(xe, !obj &&
> -				 op == XE_VM_BIND_OP_UNMAP_ALL) ||
> +				 op == DRM_DRM_XE_VM_BIND_OP_UNMAP_ALL) ||
>  		    XE_IOCTL_DBG(xe, addr &&
> -				 op == XE_VM_BIND_OP_UNMAP_ALL) ||
> +				 op == DRM_DRM_XE_VM_BIND_OP_UNMAP_ALL) ||
>  		    XE_IOCTL_DBG(xe, range &&
> -				 op == XE_VM_BIND_OP_UNMAP_ALL) ||
> +				 op == DRM_DRM_XE_VM_BIND_OP_UNMAP_ALL) ||
>  		    XE_IOCTL_DBG(xe, obj &&
> -				 op == XE_VM_BIND_OP_MAP_USERPTR) ||
> +				 op == DRM_DRM_XE_VM_BIND_OP_MAP_USERPTR) ||
>  		    XE_IOCTL_DBG(xe, obj &&
> -				 op == XE_VM_BIND_OP_PREFETCH) ||
> +				 op == DRM_XE_VM_BIND_OP_PREFETCH) ||
>  		    XE_IOCTL_DBG(xe, region &&
> -				 op != XE_VM_BIND_OP_PREFETCH) ||
> +				 op != DRM_XE_VM_BIND_OP_PREFETCH) ||
>  		    XE_IOCTL_DBG(xe, !(BIT(region) &
>  				       xe->info.mem_region_mask)) ||
>  		    XE_IOCTL_DBG(xe, obj &&
> -				 op == XE_VM_BIND_OP_UNMAP)) {
> +				 op == DRM_XE_VM_BIND_OP_UNMAP)) {
>  			err = -EINVAL;
>  			goto free_bind_ops;
>  		}
> @@ -2784,7 +2784,7 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
>  		    XE_IOCTL_DBG(xe, addr & ~PAGE_MASK) ||
>  		    XE_IOCTL_DBG(xe, range & ~PAGE_MASK) ||
>  		    XE_IOCTL_DBG(xe, !range &&
> -				 op != XE_VM_BIND_OP_UNMAP_ALL)) {
> +				 op != DRM_DRM_XE_VM_BIND_OP_UNMAP_ALL)) {
>  			err = -EINVAL;
>  			goto free_bind_ops;
>  		}
> diff --git a/drivers/gpu/drm/xe/xe_vm_doc.h b/drivers/gpu/drm/xe/xe_vm_doc.h
> index b1b2dc4a6089..1fd46b0e1079 100644
> --- a/drivers/gpu/drm/xe/xe_vm_doc.h
> +++ b/drivers/gpu/drm/xe/xe_vm_doc.h
> @@ -32,9 +32,9 @@
>   * Operations
>   * ----------
>   *
> - * XE_VM_BIND_OP_MAP		- Create mapping for a BO
> - * XE_VM_BIND_OP_UNMAP		- Destroy mapping for a BO / userptr
> - * XE_VM_BIND_OP_MAP_USERPTR	- Create mapping for userptr
> + * DRM_XE_VM_BIND_OP_MAP		- Create mapping for a BO
> + * DRM_XE_VM_BIND_OP_UNMAP		- Destroy mapping for a BO / userptr
> + * DRM_DRM_XE_VM_BIND_OP_MAP_USERPTR	- Create mapping for userptr
>   *
>   * Implementation details
>   * ~~~~~~~~~~~~~~~~~~~~~~
> @@ -113,7 +113,7 @@
>   * VM uses to report errors to. The ufence wait interface can be used to wait on
>   * a VM going into an error state. Once an error is reported the VM's async
>   * worker is paused. While the VM's async worker is paused sync,
> - * XE_VM_BIND_OP_UNMAP operations are allowed (this can free memory). Once the
> + * DRM_XE_VM_BIND_OP_UNMAP operations are allowed (this can free memory). Once the
>   * uses believe the error state is fixed, the async worker can be resumed via
>   * XE_VM_BIND_OP_RESTART operation. When VM async bind work is restarted, the
>   * first operation processed is the operation that caused the original error.
> @@ -193,7 +193,7 @@
>   * In a VM is in fault mode (TODO: link to fault mode), new bind operations that
>   * create mappings are by default are deferred to the page fault handler (first
>   * use). This behavior can be overriden by setting the flag
> - * XE_VM_BIND_FLAG_IMMEDIATE which indicates to creating the mapping
> + * DRM_XE_VM_BIND_FLAG_IMMEDIATE which indicates to creating the mapping
>   * immediately.
>   *
>   * User pointer
> @@ -322,7 +322,7 @@
>   *
>   * By default, on a faulting VM binds just allocate the VMA and the actual
>   * updating of the page tables is defered to the page fault handler. This
> - * behavior can be overridden by setting the flag XE_VM_BIND_FLAG_IMMEDIATE in
> + * behavior can be overridden by setting the flag DRM_XE_VM_BIND_FLAG_IMMEDIATE in
>   * the VM bind which will then do the bind immediately.
>   *
>   * Page fault handler
> diff --git a/drivers/gpu/drm/xe/xe_vm_madvise.c b/drivers/gpu/drm/xe/xe_vm_madvise.c
> index d2fd99462756..0eb477c3025f 100644
> --- a/drivers/gpu/drm/xe/xe_vm_madvise.c
> +++ b/drivers/gpu/drm/xe/xe_vm_madvise.c
> @@ -19,10 +19,10 @@ static int madvise_preferred_mem_class(struct xe_device *xe, struct xe_vm *vm,
>  {
>  	int i, err;
>  
> -	if (XE_IOCTL_DBG(xe, value > XE_MEM_REGION_CLASS_VRAM))
> +	if (XE_IOCTL_DBG(xe, value > DRM_XE_MEM_REGION_CLASS_VRAM))
>  		return -EINVAL;
>  
> -	if (XE_IOCTL_DBG(xe, value == XE_MEM_REGION_CLASS_VRAM &&
> +	if (XE_IOCTL_DBG(xe, value == DRM_XE_MEM_REGION_CLASS_VRAM &&
>  			 !xe->info.is_dgfx))
>  		return -EINVAL;
>  
> @@ -75,10 +75,10 @@ static int madvise_preferred_mem_class_gt(struct xe_device *xe,
>  	u32 gt_id = upper_32_bits(value);
>  	u32 mem_class = lower_32_bits(value);
>  
> -	if (XE_IOCTL_DBG(xe, mem_class > XE_MEM_REGION_CLASS_VRAM))
> +	if (XE_IOCTL_DBG(xe, mem_class > DRM_XE_MEM_REGION_CLASS_VRAM))
>  		return -EINVAL;
>  
> -	if (XE_IOCTL_DBG(xe, mem_class == XE_MEM_REGION_CLASS_VRAM &&
> +	if (XE_IOCTL_DBG(xe, mem_class == DRM_XE_MEM_REGION_CLASS_VRAM &&
>  			 !xe->info.is_dgfx))
>  		return -EINVAL;
>  
> diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> index 1ca17e949cea..9e8e7b4c42b2 100644
> --- a/include/uapi/drm/xe_drm.h
> +++ b/include/uapi/drm/xe_drm.h
> @@ -19,12 +19,12 @@ extern "C" {
>  /**
>   * DOC: uevent generated by xe on it's pci node.
>   *
> - * XE_RESET_FAILED_UEVENT - Event is generated when attempt to reset gt
> + * DRM_XE_RESET_FAILED_UEVENT - Event is generated when attempt to reset gt
>   * fails. The value supplied with the event is always "NEEDS_RESET".
>   * Additional information supplied is tile id and gt id of the gt unit for
>   * which reset has failed.
>   */
> -#define XE_RESET_FAILED_UEVENT "DEVICE_STATUS"
> +#define DRM_XE_RESET_FAILED_UEVENT "DEVICE_STATUS"
>  
>  /**
>   * struct xe_user_extension - Base class for defining a chain of extensions
> @@ -151,14 +151,14 @@ struct drm_xe_engine_class_instance {
>   * enum drm_xe_memory_class - Supported memory classes.
>   */
>  enum drm_xe_memory_class {
> -	/** @XE_MEM_REGION_CLASS_SYSMEM: Represents system memory. */
> -	XE_MEM_REGION_CLASS_SYSMEM = 0,
> +	/** @DRM_XE_MEM_REGION_CLASS_SYSMEM: Represents system memory. */
> +	DRM_XE_MEM_REGION_CLASS_SYSMEM = 0,
>  	/**
> -	 * @XE_MEM_REGION_CLASS_VRAM: On discrete platforms, this
> +	 * @DRM_XE_MEM_REGION_CLASS_VRAM: On discrete platforms, this
>  	 * represents the memory that is local to the device, which we
>  	 * call VRAM. Not valid on integrated platforms.
>  	 */
> -	XE_MEM_REGION_CLASS_VRAM
> +	DRM_XE_MEM_REGION_CLASS_VRAM
>  };
>  
>  /**
> @@ -218,7 +218,7 @@ struct drm_xe_query_mem_region {
>  	 * always equal the @total_size, since all of it will be CPU
>  	 * accessible.
>  	 *
> -	 * Note this is only tracked for XE_MEM_REGION_CLASS_VRAM
> +	 * Note this is only tracked for DRM_XE_MEM_REGION_CLASS_VRAM
>  	 * regions (for other types the value here will always equal
>  	 * zero).
>  	 */
> @@ -230,7 +230,7 @@ struct drm_xe_query_mem_region {
>  	 * Requires CAP_PERFMON or CAP_SYS_ADMIN to get reliable
>  	 * accounting. Without this the value here will always equal
>  	 * zero.  Note this is only currently tracked for
> -	 * XE_MEM_REGION_CLASS_VRAM regions (for other types the value
> +	 * DRM_XE_MEM_REGION_CLASS_VRAM regions (for other types the value
>  	 * here will always be zero).
>  	 */
>  	__u64 cpu_visible_used;
> @@ -327,36 +327,36 @@ struct drm_xe_query_config {
>  	 * Device ID (lower 16 bits) and the device revision (next
>  	 * 8 bits)
>  	 */
> -#define XE_QUERY_CONFIG_REV_AND_DEVICE_ID	0
> +#define DRM_XE_QUERY_CONFIG_REV_AND_DEVICE_ID	0
>  	/*
>  	 * Flags describing the device configuration, see list below
>  	 */
> -#define XE_QUERY_CONFIG_FLAGS			1
> +#define DRM_XE_QUERY_CONFIG_FLAGS			1
>  	/*
>  	 * Flag is set if the device has usable VRAM
>  	 */
> -	#define XE_QUERY_CONFIG_FLAGS_HAS_VRAM		(0x1 << 0)
> +	#define DRM_DRM_XE_QUERY_CONFIG_FLAGS_HAS_VRAM		(0x1 << 0)


Double DRM_

Same in DRM_DRM_XE_VM_BIND_OP_MAP_USERPTR and DRM_DRM_XE_VM_BIND_OP_UNMAP_ALL

>  	/*
>  	 * Minimal memory alignment required by this device,
>  	 * typically SZ_4K or SZ_64K
>  	 */
> -#define XE_QUERY_CONFIG_MIN_ALIGNMENT		2
> +#define DRM_XE_QUERY_CONFIG_MIN_ALIGNMENT		2
>  	/*
>  	 * Maximum bits of a virtual address
>  	 */
> -#define XE_QUERY_CONFIG_VA_BITS			3
> +#define DRM_XE_QUERY_CONFIG_VA_BITS			3
>  	/*
>  	 * Total number of GTs for the entire device
>  	 */
> -#define XE_QUERY_CONFIG_GT_COUNT		4
> +#define DRM_XE_QUERY_CONFIG_GT_COUNT		4
>  	/*
>  	 * Total number of accessible memory regions
>  	 */
> -#define XE_QUERY_CONFIG_MEM_REGION_COUNT	5
> +#define DRM_XE_QUERY_CONFIG_MEM_REGION_COUNT	5
>  	/*
>  	 * Value of the highest available exec queue priority
>  	 */
> -#define XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY	6
> +#define DRM_XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY	6
>  	/** @info: array of elements containing the config info */
>  	__u64 info[];
>  };
> @@ -370,9 +370,9 @@ struct drm_xe_query_config {
>   * implementing graphics and/or media operations.
>   */
>  struct drm_xe_query_gt {
> -#define XE_QUERY_GT_TYPE_MAIN		0
> -#define XE_QUERY_GT_TYPE_REMOTE		1
> -#define XE_QUERY_GT_TYPE_MEDIA		2
> +#define DRM_XE_QUERY_GT_TYPE_MAIN		0
> +#define DRM_XE_QUERY_GT_TYPE_REMOTE		1
> +#define DRM_XE_QUERY_GT_TYPE_MEDIA		2
>  	/** @type: GT type: Main, Remote, or Media */
>  	__u16 type;
>  	/** @gt_id: Unique ID of this GT within the PCI Device */
> @@ -435,7 +435,7 @@ struct drm_xe_query_topology_mask {
>  	 *   DSS_GEOMETRY    ff ff ff ff 00 00 00 00
>  	 * means 32 DSS are available for geometry.
>  	 */
> -#define XE_TOPO_DSS_GEOMETRY	(1 << 0)
> +#define DRM_XE_TOPO_DSS_GEOMETRY	(1 << 0)
>  	/*
>  	 * To query the mask of Dual Sub Slices (DSS) available for compute
>  	 * operations. For example a query response containing the following
> @@ -443,7 +443,7 @@ struct drm_xe_query_topology_mask {
>  	 *   DSS_COMPUTE    ff ff ff ff 00 00 00 00
>  	 * means 32 DSS are available for compute.
>  	 */
> -#define XE_TOPO_DSS_COMPUTE	(1 << 1)
> +#define DRM_XE_TOPO_DSS_COMPUTE	(1 << 1)
>  	/*
>  	 * To query the mask of Execution Units (EU) available per Dual Sub
>  	 * Slices (DSS). For example a query response containing the following
> @@ -451,7 +451,7 @@ struct drm_xe_query_topology_mask {
>  	 *   EU_PER_DSS    ff ff 00 00 00 00 00 00
>  	 * means each DSS has 16 EU.
>  	 */
> -#define XE_TOPO_EU_PER_DSS	(1 << 2)
> +#define DRM_XE_TOPO_EU_PER_DSS	(1 << 2)
>  	/** @type: type of mask */
>  	__u16 type;
>  
> @@ -470,8 +470,8 @@ struct drm_xe_query_topology_mask {
>   */
>  struct drm_xe_query_uc_fw_version {
>  	/** @uc: The micro-controller type to query firmware version */
> -#define XE_QUERY_UC_TYPE_GUC 0
> -#define XE_QUERY_UC_TYPE_HUC 1
> +#define DRM_XE_QUERY_UC_TYPE_GUC 0
> +#define DRM_XE_QUERY_UC_TYPE_HUC 1
>  	__u16 uc_type;
>  
>  	/** @pad: MBZ */
> @@ -575,8 +575,8 @@ struct drm_xe_gem_create {
>  	 */
>  	__u64 size;
>  
> -#define XE_GEM_CREATE_FLAG_DEFER_BACKING	(0x1 << 24)
> -#define XE_GEM_CREATE_FLAG_SCANOUT		(0x1 << 25)
> +#define DRM_XE_GEM_CREATE_FLAG_DEFER_BACKING	(0x1 << 24)
> +#define DRM_XE_GEM_CREATE_FLAG_SCANOUT		(0x1 << 25)
>  /*
>   * When using VRAM as a possible placement, ensure that the corresponding VRAM
>   * allocation will always use the CPU accessible part of VRAM. This is important
> @@ -592,7 +592,7 @@ struct drm_xe_gem_create {
>   * display surfaces, therefore the kernel requires setting this flag for such
>   * objects, otherwise an error is thrown on small-bar systems.
>   */
> -#define XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM	(0x1 << 26)
> +#define DRM_XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM	(0x1 << 26)
>  	/**
>  	 * @flags: Flags, currently a mask of memory instances of where BO can
>  	 * be placed
> @@ -659,7 +659,7 @@ struct drm_xe_ext_set_property {
>  };
>  
>  struct drm_xe_vm_create {
> -#define XE_VM_EXTENSION_SET_PROPERTY	0
> +#define DRM_XE_VM_EXTENSION_SET_PROPERTY	0
>  	/** @extensions: Pointer to the first extension struct, if any */
>  	__u64 extensions;
>  
> @@ -725,29 +725,29 @@ struct drm_xe_vm_bind_op {
>  	 */
>  	__u64 tile_mask;
>  
> -#define XE_VM_BIND_OP_MAP		0x0
> -#define XE_VM_BIND_OP_UNMAP		0x1
> -#define XE_VM_BIND_OP_MAP_USERPTR	0x2
> -#define XE_VM_BIND_OP_UNMAP_ALL		0x3
> -#define XE_VM_BIND_OP_PREFETCH		0x4
> +#define DRM_XE_VM_BIND_OP_MAP		0x0
> +#define DRM_XE_VM_BIND_OP_UNMAP		0x1
> +#define DRM_DRM_XE_VM_BIND_OP_MAP_USERPTR	0x2
> +#define DRM_DRM_XE_VM_BIND_OP_UNMAP_ALL		0x3
> +#define DRM_XE_VM_BIND_OP_PREFETCH		0x4
>  	/** @op: Bind operation to perform */
>  	__u32 op;
>  
> -#define XE_VM_BIND_FLAG_READONLY	(0x1 << 0)
> -#define XE_VM_BIND_FLAG_ASYNC		(0x1 << 1)
> +#define DRM_XE_VM_BIND_FLAG_READONLY	(0x1 << 0)
> +#define DRM_XE_VM_BIND_FLAG_ASYNC		(0x1 << 1)
>  	/*
>  	 * Valid on a faulting VM only, do the MAP operation immediately rather
>  	 * than deferring the MAP to the page fault handler.
>  	 */
> -#define XE_VM_BIND_FLAG_IMMEDIATE	(0x1 << 2)
> +#define DRM_XE_VM_BIND_FLAG_IMMEDIATE	(0x1 << 2)
>  	/*
>  	 * When the NULL flag is set, the page tables are setup with a special
>  	 * bit which indicates writes are dropped and all reads return zero.  In
> -	 * the future, the NULL flags will only be valid for XE_VM_BIND_OP_MAP
> +	 * the future, the NULL flags will only be valid for DRM_XE_VM_BIND_OP_MAP
>  	 * operations, the BO handle MBZ, and the BO offset MBZ. This flag is
>  	 * intended to implement VK sparse bindings.
>  	 */
> -#define XE_VM_BIND_FLAG_NULL		(0x1 << 3)
> +#define DRM_XE_VM_BIND_FLAG_NULL		(0x1 << 3)
>  	/** @flags: Bind flags */
>  	__u32 flags;
>  
> @@ -814,14 +814,14 @@ struct drm_xe_exec_queue_set_property {
>  	/** @exec_queue_id: Exec queue ID */
>  	__u32 exec_queue_id;
>  
> -#define XE_EXEC_QUEUE_SET_PROPERTY_PRIORITY		0
> -#define XE_EXEC_QUEUE_SET_PROPERTY_TIMESLICE		1
> -#define XE_EXEC_QUEUE_SET_PROPERTY_PREEMPTION_TIMEOUT	2
> -#define XE_EXEC_QUEUE_SET_PROPERTY_PERSISTENCE		3
> -#define XE_EXEC_QUEUE_SET_PROPERTY_JOB_TIMEOUT		4
> -#define XE_EXEC_QUEUE_SET_PROPERTY_ACC_TRIGGER		5
> -#define XE_EXEC_QUEUE_SET_PROPERTY_ACC_NOTIFY		6
> -#define XE_EXEC_QUEUE_SET_PROPERTY_ACC_GRANULARITY	7
> +#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_PRIORITY		0
> +#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_TIMESLICE		1
> +#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_PREEMPTION_TIMEOUT	2
> +#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_PERSISTENCE		3
> +#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_JOB_TIMEOUT		4
> +#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_ACC_TRIGGER		5
> +#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_ACC_NOTIFY		6
> +#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_ACC_GRANULARITY	7
>  	/** @property: property to set */
>  	__u32 property;
>  
> @@ -833,7 +833,7 @@ struct drm_xe_exec_queue_set_property {
>  };
>  
>  struct drm_xe_exec_queue_create {
> -#define XE_EXEC_QUEUE_EXTENSION_SET_PROPERTY               0
> +#define DRM_XE_EXEC_QUEUE_EXTENSION_SET_PROPERTY               0
>  	/** @extensions: Pointer to the first extension struct, if any */
>  	__u64 extensions;
>  
> @@ -872,7 +872,7 @@ struct drm_xe_exec_queue_get_property {
>  	/** @exec_queue_id: Exec queue ID */
>  	__u32 exec_queue_id;
>  
> -#define XE_EXEC_QUEUE_GET_PROPERTY_BAN			0
> +#define DRM_XE_EXEC_QUEUE_GET_PROPERTY_BAN			0
>  	/** @property: property to get */
>  	__u32 property;
>  
> @@ -1112,7 +1112,7 @@ struct drm_xe_vm_madvise {
>   * in 'struct perf_event_attr' as part of perf_event_open syscall to read a
>   * particular event.
>   *
> - * For example to open the XE_PMU_INTERRUPTS(0):
> + * For example to open the DRM_XE_PMU_INTERRUPTS(0):
>   *
>   * .. code-block:: C
>   *
> @@ -1126,7 +1126,7 @@ struct drm_xe_vm_madvise {
>   *	attr.read_format = PERF_FORMAT_TOTAL_TIME_ENABLED;
>   *	attr.use_clockid = 1;
>   *	attr.clockid = CLOCK_MONOTONIC;
> - *	attr.config = XE_PMU_INTERRUPTS(0);
> + *	attr.config = DRM_XE_PMU_INTERRUPTS(0);
>   *
>   *	fd = syscall(__NR_perf_event_open, &attr, -1, cpu, -1, 0);
>   */
> @@ -1139,11 +1139,11 @@ struct drm_xe_vm_madvise {
>  #define ___XE_PMU_OTHER(gt, x) \
>  	(((__u64)(x)) | ((__u64)(gt) << __XE_PMU_GT_SHIFT))
>  
> -#define XE_PMU_INTERRUPTS(gt)			___XE_PMU_OTHER(gt, 0)
> -#define XE_PMU_RENDER_GROUP_BUSY(gt)		___XE_PMU_OTHER(gt, 1)
> -#define XE_PMU_COPY_GROUP_BUSY(gt)		___XE_PMU_OTHER(gt, 2)
> -#define XE_PMU_MEDIA_GROUP_BUSY(gt)		___XE_PMU_OTHER(gt, 3)
> -#define XE_PMU_ANY_ENGINE_GROUP_BUSY(gt)	___XE_PMU_OTHER(gt, 4)
> +#define DRM_XE_PMU_INTERRUPTS(gt)			___XE_PMU_OTHER(gt, 0)
> +#define DRM_XE_PMU_RENDER_GROUP_BUSY(gt)		___XE_PMU_OTHER(gt, 1)
> +#define DRM_XE_PMU_COPY_GROUP_BUSY(gt)		___XE_PMU_OTHER(gt, 2)
> +#define DRM_XE_PMU_MEDIA_GROUP_BUSY(gt)		___XE_PMU_OTHER(gt, 3)
> +#define DRM_XE_PMU_ANY_ENGINE_GROUP_BUSY(gt)	___XE_PMU_OTHER(gt, 4)
>  
>  #if defined(__cplusplus)
>  }


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

* Re: [Intel-xe] [PATCH v3 22/30] drm/xe/uapi: Crystal Reference Clock updates
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 22/30] drm/xe/uapi: Crystal Reference Clock updates Francois Dugast
@ 2023-09-26 16:40   ` Souza, Jose
  0 siblings, 0 replies; 60+ messages in thread
From: Souza, Jose @ 2023-09-26 16:40 UTC (permalink / raw)
  To: intel-xe, Dugast, Francois; +Cc: Roper, Matthew D, Vivi, Rodrigo

On Tue, 2023-09-26 at 12:55 +0000, Francois Dugast wrote:
> From: Rodrigo Vivi <rodrigo.vivi@intel.com>
> 
> First of all, let's remove the duplication.
> But also, let's rename it to remove the word 'frequency'
> out of it. In general, the first thing people think of frequency
> is the frequency in which the GTs are operating to execute the
> GPU instructions.
> 
> While this frequency here is a crystal reference clock frequency
> which is the base of everything else, and in this case of this
> uAPI it is used to calculate a better and precise timestamp.
> 
> Cc: Matt Roper <matthew.d.roper@intel.com>
> Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>

Missing Cc.

Discussed with Rodrigo offline and was agreed to bring back clock_freq in drm_xe_query_gt and drop cs_reference_clock/cs_frequency from
drm_xe_query_cs_cycles.

> Cc: Francois Dugast <francois.dugast@intel.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Francois Dugast <francois.dugast@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_query.c |  5 ++---
>  include/uapi/drm/xe_drm.h     | 10 ++++------
>  2 files changed, 6 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
> index a27b10583f5a..8184df4abde1 100644
> --- a/drivers/gpu/drm/xe/xe_query.c
> +++ b/drivers/gpu/drm/xe/xe_query.c
> @@ -149,7 +149,7 @@ query_cs_cycles(struct xe_device *xe,
>  	if (!hwe)
>  		return -EINVAL;
>  
> -	resp.cs_frequency = gt->info.clock_freq;
> +	resp.cs_reference_clock = gt->info.clock_freq;
>  
>  	xe_device_mem_access_get(xe);
>  	xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL);
> @@ -167,7 +167,7 @@ query_cs_cycles(struct xe_device *xe,
>  	resp.width = 36;
>  
>  	/* Only write to the output fields of user query */
> -	if (put_user(resp.cs_frequency, &query_ptr->cs_frequency))
> +	if (put_user(resp.cs_reference_clock, &query_ptr->cs_reference_clock))
>  		return -EFAULT;
>  
>  	if (put_user(resp.cpu_timestamp, &query_ptr->cpu_timestamp))
> @@ -380,7 +380,6 @@ static int query_gt_list(struct xe_device *xe, struct drm_xe_device_query *query
>  		else
>  			gt_list->gt_list[id].type = XE_QUERY_GT_TYPE_MAIN;
>  		gt_list->gt_list[id].gt_id = gt->info.id;
> -		gt_list->gt_list[id].clock_freq = gt->info.clock_freq;
>  		if (!IS_DGFX(xe))
>  			gt_list->gt_list[id].native_mem_regions = 0x1;
>  		else
> diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> index f306cae6d467..026536a20253 100644
> --- a/include/uapi/drm/xe_drm.h
> +++ b/include/uapi/drm/xe_drm.h
> @@ -249,8 +249,8 @@ struct drm_xe_query_mem_region {
>   * relevant GPU timestamp. clockid is used to return the specific CPU
>   * timestamp.
>   *
> - * The query returns the command streamer cycles and the frequency that can
> - * be used to calculate the command streamer timestamp. In addition the
> + * The query returns the command streamer cycles and the reference clock that
> + * can be used to calculate the command streamer timestamp. In addition the
>   * query returns a set of cpu timestamps that indicate when the command
>   * streamer cycle count was captured.
>   */
> @@ -267,8 +267,8 @@ struct drm_xe_query_cs_cycles {
>  	 */
>  	__u64 cs_cycles;
>  
> -	/** Frequency of the cs cycles in Hz. */
> -	__u64 cs_frequency;
> +	/** Reference Clock of the cs cycles in Hz. */
> +	__u64 cs_reference_clock;
>  
>  	/**
>  	 * CPU timestamp in ns. The timestamp is captured before reading the
> @@ -382,8 +382,6 @@ struct drm_xe_query_gt {
>  	__u16 type;
>  	/** @gt_id: Unique ID of this GT within the PCI Device */
>  	__u16 gt_id;
> -	/** @clock_freq: A clock frequency for timestamp */
> -	__u32 clock_freq;
>  	/**
>  	 * @native_mem_regions: Bit mask of instances from
>  	 * drm_xe_query_mem_usage that lives on the same GPU/Tile and have


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

* Re: [Intel-xe] [PATCH v3 03/30] drm/xe: Correlate engine and cpu timestamps with better accuracy
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 03/30] drm/xe: Correlate engine and cpu timestamps with better accuracy Francois Dugast
@ 2023-09-26 16:42   ` Souza, Jose
  2023-09-26 18:43   ` Umesh Nerlige Ramappa
  1 sibling, 0 replies; 60+ messages in thread
From: Souza, Jose @ 2023-09-26 16:42 UTC (permalink / raw)
  To: intel-xe, Dugast, Francois; +Cc: Vivi, Rodrigo

On Tue, 2023-09-26 at 12:55 +0000, Francois Dugast wrote:
> From: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> 
> Perf measurements rely on CPU and engine timestamps to correlate
> events of interest across these time domains. Current mechanisms get
> these timestamps separately and the calculated delta between these
> timestamps lack enough accuracy.
> 
> To improve the accuracy of these time measurements to within a few us,
> add a query that returns the engine and cpu timestamps captured as
> close to each other as possible.
> 
> Prior work: https://patchwork.freedesktop.org/series/87552/

Reviewed-by: José Roberto de Souza <jose.souza@intel.com>

> 
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> Signed-off-by: Francois Dugast <francois.dugast@intel.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_query.c | 141 ++++++++++++++++++++++++++++++++++
>  include/uapi/drm/xe_drm.h     |  95 ++++++++++++++++++-----
>  2 files changed, 218 insertions(+), 18 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
> index cbccd5c3dbc8..be9affd4f181 100644
> --- a/drivers/gpu/drm/xe/xe_query.c
> +++ b/drivers/gpu/drm/xe/xe_query.c
> @@ -6,10 +6,12 @@
>  #include "xe_query.h"
>  
>  #include <linux/nospec.h>
> +#include <linux/sched/clock.h>
>  
>  #include <drm/ttm/ttm_placement.h>
>  #include <drm/xe_drm.h>
>  
> +#include "regs/xe_engine_regs.h"
>  #include "xe_bo.h"
>  #include "xe_device.h"
>  #include "xe_exec_queue.h"
> @@ -17,6 +19,7 @@
>  #include "xe_gt.h"
>  #include "xe_guc_hwconfig.h"
>  #include "xe_macros.h"
> +#include "xe_mmio.h"
>  #include "xe_ttm_vram_mgr.h"
>  
>  static const u16 xe_to_user_engine_class[] = {
> @@ -27,6 +30,14 @@ static const u16 xe_to_user_engine_class[] = {
>  	[XE_ENGINE_CLASS_COMPUTE] = DRM_XE_ENGINE_CLASS_COMPUTE,
>  };
>  
> +static const enum xe_engine_class user_to_xe_engine_class[] = {
> +	[DRM_XE_ENGINE_CLASS_RENDER] = XE_ENGINE_CLASS_RENDER,
> +	[DRM_XE_ENGINE_CLASS_COPY] = XE_ENGINE_CLASS_COPY,
> +	[DRM_XE_ENGINE_CLASS_VIDEO_DECODE] = XE_ENGINE_CLASS_VIDEO_DECODE,
> +	[DRM_XE_ENGINE_CLASS_VIDEO_ENHANCE] = XE_ENGINE_CLASS_VIDEO_ENHANCE,
> +	[DRM_XE_ENGINE_CLASS_COMPUTE] = XE_ENGINE_CLASS_COMPUTE,
> +};
> +
>  static size_t calc_hw_engine_info_size(struct xe_device *xe)
>  {
>  	struct xe_hw_engine *hwe;
> @@ -45,6 +56,135 @@ static size_t calc_hw_engine_info_size(struct xe_device *xe)
>  	return i * sizeof(struct drm_xe_engine_class_instance);
>  }
>  
> +typedef u64 (*__ktime_func_t)(void);
> +static __ktime_func_t __clock_id_to_func(clockid_t clk_id)
> +{
> +	/*
> +	 * Use logic same as the perf subsystem to allow user to select the
> +	 * reference clock id to be used for timestamps.
> +	 */
> +	switch (clk_id) {
> +	case CLOCK_MONOTONIC:
> +		return &ktime_get_ns;
> +	case CLOCK_MONOTONIC_RAW:
> +		return &ktime_get_raw_ns;
> +	case CLOCK_REALTIME:
> +		return &ktime_get_real_ns;
> +	case CLOCK_BOOTTIME:
> +		return &ktime_get_boottime_ns;
> +	case CLOCK_TAI:
> +		return &ktime_get_clocktai_ns;
> +	default:
> +		return NULL;
> +	}
> +}
> +
> +static void
> +__read_timestamps(struct xe_gt *gt,
> +		  struct xe_reg lower_reg,
> +		  struct xe_reg upper_reg,
> +		  u64 *cs_ts,
> +		  u64 *cpu_ts,
> +		  u64 *cpu_delta,
> +		  __ktime_func_t cpu_clock)
> +{
> +	u32 upper, lower, old_upper, loop = 0;
> +
> +	upper = xe_mmio_read32(gt, upper_reg);
> +	do {
> +		*cpu_delta = local_clock();
> +		*cpu_ts = cpu_clock();
> +		lower = xe_mmio_read32(gt, lower_reg);
> +		*cpu_delta = local_clock() - *cpu_delta;
> +		old_upper = upper;
> +		upper = xe_mmio_read32(gt, upper_reg);
> +	} while (upper != old_upper && loop++ < 2);
> +
> +	*cs_ts = (u64)upper << 32 | lower;
> +}
> +
> +static int
> +query_cs_cycles(struct xe_device *xe,
> +		struct drm_xe_device_query *query)
> +{
> +	struct drm_xe_query_cs_cycles __user *query_ptr;
> +	struct drm_xe_engine_class_instance *eci;
> +	struct drm_xe_query_cs_cycles resp;
> +	size_t size = sizeof(resp);
> +	__ktime_func_t cpu_clock;
> +	struct xe_hw_engine *hwe;
> +	struct xe_gt *gt;
> +
> +	if (query->size == 0) {
> +		query->size = size;
> +		return 0;
> +	} else if (XE_IOCTL_DBG(xe, query->size != size)) {
> +		return -EINVAL;
> +	}
> +
> +	query_ptr = u64_to_user_ptr(query->data);
> +	if (copy_from_user(&resp, query_ptr, size))
> +		return -EFAULT;
> +
> +	if (resp.rsvd)
> +		return -EINVAL;
> +
> +	cpu_clock = __clock_id_to_func(resp.clockid);
> +	if (!cpu_clock)
> +		return -EINVAL;
> +
> +	eci = &resp.eci;
> +	if (eci->gt_id > XE_MAX_GT_PER_TILE)
> +		return -EINVAL;
> +
> +	gt = xe_device_get_gt(xe, eci->gt_id);
> +	if (!gt)
> +		return -EINVAL;
> +
> +	if (eci->engine_class >= ARRAY_SIZE(user_to_xe_engine_class))
> +		return -EINVAL;
> +
> +	hwe = xe_gt_hw_engine(gt, user_to_xe_engine_class[eci->engine_class],
> +			      eci->engine_instance, true);
> +	if (!hwe)
> +		return -EINVAL;
> +
> +	resp.cs_frequency = gt->info.clock_freq;
> +
> +	xe_device_mem_access_get(xe);
> +	xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL);
> +
> +	__read_timestamps(gt,
> +			  RING_TIMESTAMP(hwe->mmio_base),
> +			  RING_TIMESTAMP_UDW(hwe->mmio_base),
> +			  &resp.cs_cycles,
> +			  &resp.cpu_timestamp,
> +			  &resp.cpu_delta,
> +			  cpu_clock);
> +
> +	xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL);
> +	xe_device_mem_access_put(xe);
> +	resp.width = 36;
> +
> +	/* Only write to the output fields of user query */
> +	if (put_user(resp.cs_frequency, &query_ptr->cs_frequency))
> +		return -EFAULT;
> +
> +	if (put_user(resp.cpu_timestamp, &query_ptr->cpu_timestamp))
> +		return -EFAULT;
> +
> +	if (put_user(resp.cpu_delta, &query_ptr->cpu_delta))
> +		return -EFAULT;
> +
> +	if (put_user(resp.cs_cycles, &query_ptr->cs_cycles))
> +		return -EFAULT;
> +
> +	if (put_user(resp.width, &query_ptr->width))
> +		return -EFAULT;
> +
> +	return 0;
> +}
> +
>  static int query_engines(struct xe_device *xe,
>  			 struct drm_xe_device_query *query)
>  {
> @@ -369,6 +509,7 @@ static int (* const xe_query_funcs[])(struct xe_device *xe,
>  	query_gts,
>  	query_hwconfig,
>  	query_gt_topology,
> +	query_cs_cycles,
>  };
>  
>  int xe_query_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
> diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> index d48d8e3c898c..fde1378a60b9 100644
> --- a/include/uapi/drm/xe_drm.h
> +++ b/include/uapi/drm/xe_drm.h
> @@ -128,6 +128,24 @@ struct xe_user_extension {
>  #define DRM_IOCTL_XE_WAIT_USER_FENCE		DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_WAIT_USER_FENCE, struct drm_xe_wait_user_fence)
>  #define DRM_IOCTL_XE_VM_MADVISE			 DRM_IOW(DRM_COMMAND_BASE + DRM_XE_VM_MADVISE, struct drm_xe_vm_madvise)
>  
> +/** struct drm_xe_engine_class_instance - instance of an engine class */
> +struct drm_xe_engine_class_instance {
> +#define DRM_XE_ENGINE_CLASS_RENDER		0
> +#define DRM_XE_ENGINE_CLASS_COPY		1
> +#define DRM_XE_ENGINE_CLASS_VIDEO_DECODE	2
> +#define DRM_XE_ENGINE_CLASS_VIDEO_ENHANCE	3
> +#define DRM_XE_ENGINE_CLASS_COMPUTE		4
> +	/*
> +	 * Kernel only class (not actual hardware engine class). Used for
> +	 * creating ordered queues of VM bind operations.
> +	 */
> +#define DRM_XE_ENGINE_CLASS_VM_BIND		5
> +	__u16 engine_class;
> +
> +	__u16 engine_instance;
> +	__u16 gt_id;
> +};
> +
>  /**
>   * enum drm_xe_memory_class - Supported memory classes.
>   */
> @@ -219,6 +237,64 @@ struct drm_xe_query_mem_region {
>  	__u64 reserved[6];
>  };
>  
> +/**
> + * struct drm_xe_query_cs_cycles - correlate CPU and GPU timestamps
> + *
> + * If a query is made with a struct drm_xe_device_query where .query
> + * is equal to DRM_XE_QUERY_CS_CYCLES, then the reply uses
> + * struct drm_xe_query_cs_cycles in .data.
> + *
> + * struct drm_xe_query_cs_cycles is allocated by the user and .data points to
> + * this allocated structure. The user must pass .eci and .clockid as inputs to
> + * this query. eci determines the engine and tile info required to fetch the
> + * relevant GPU timestamp. clockid is used to return the specific CPU
> + * timestamp.
> + *
> + * The query returns the command streamer cycles and the frequency that can
> + * be used to calculate the command streamer timestamp. In addition the
> + * query returns a set of cpu timestamps that indicate when the command
> + * streamer cycle count was captured.
> + */
> +struct drm_xe_query_cs_cycles {
> +	/** Engine for which command streamer cycles is queried. */
> +	struct drm_xe_engine_class_instance eci;
> +
> +	/** MBZ (pad eci to 64 bit) */
> +	__u16 rsvd;
> +
> +	/**
> +	 * Command streamer cycles as read from the command streamer
> +	 * register at 0x358 offset.
> +	 */
> +	__u64 cs_cycles;
> +
> +	/** Frequency of the cs cycles in Hz. */
> +	__u64 cs_frequency;
> +
> +	/**
> +	 * CPU timestamp in ns. The timestamp is captured before reading the
> +	 * cs_cycles register using the reference clockid set by the user.
> +	 */
> +	__u64 cpu_timestamp;
> +
> +	/**
> +	 * Time delta in ns captured around reading the lower dword of the
> +	 * cs_cycles register.
> +	 */
> +	__u64 cpu_delta;
> +
> +	/**
> +	 * Reference clock id for CPU timestamp. For definition, see
> +	 * clock_gettime(2) and perf_event_open(2). Supported clock ids are
> +	 * CLOCK_MONOTONIC, CLOCK_MONOTONIC_RAW, CLOCK_REALTIME, CLOCK_BOOTTIME,
> +	 * CLOCK_TAI.
> +	 */
> +	__s32 clockid;
> +
> +	/** Width of the cs cycle counter in bits. */
> +	__u32 width;
> +};
> +
>  /**
>   * struct drm_xe_query_mem_usage - describe memory regions and usage
>   *
> @@ -391,6 +467,7 @@ struct drm_xe_device_query {
>  #define DRM_XE_DEVICE_QUERY_GTS		3
>  #define DRM_XE_DEVICE_QUERY_HWCONFIG	4
>  #define DRM_XE_DEVICE_QUERY_GT_TOPOLOGY	5
> +#define DRM_XE_QUERY_CS_CYCLES		6
>  	/** @query: The type of data to query */
>  	__u32 query;
>  
> @@ -732,24 +809,6 @@ struct drm_xe_exec_queue_set_property {
>  	__u64 reserved[2];
>  };
>  
> -/** struct drm_xe_engine_class_instance - instance of an engine class */
> -struct drm_xe_engine_class_instance {
> -#define DRM_XE_ENGINE_CLASS_RENDER		0
> -#define DRM_XE_ENGINE_CLASS_COPY		1
> -#define DRM_XE_ENGINE_CLASS_VIDEO_DECODE	2
> -#define DRM_XE_ENGINE_CLASS_VIDEO_ENHANCE	3
> -#define DRM_XE_ENGINE_CLASS_COMPUTE		4
> -	/*
> -	 * Kernel only class (not actual hardware engine class). Used for
> -	 * creating ordered queues of VM bind operations.
> -	 */
> -#define DRM_XE_ENGINE_CLASS_VM_BIND		5
> -	__u16 engine_class;
> -
> -	__u16 engine_instance;
> -	__u16 gt_id;
> -};
> -
>  struct drm_xe_exec_queue_create {
>  #define XE_EXEC_QUEUE_EXTENSION_SET_PROPERTY               0
>  	/** @extensions: Pointer to the first extension struct, if any */


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

* Re: [Intel-xe] [PATCH v3 27/30] drm/xe: Extend uAPI to query HuC micro-controler firmware version
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 27/30] drm/xe: Extend uAPI to query HuC micro-controler firmware version Francois Dugast
@ 2023-09-26 16:46   ` Souza, Jose
  2023-09-27 17:04     ` Rodrigo Vivi
  2023-10-10 19:10   ` Lucas De Marchi
  1 sibling, 1 reply; 60+ messages in thread
From: Souza, Jose @ 2023-09-26 16:46 UTC (permalink / raw)
  To: intel-xe, Vivi,  Rodrigo, Dugast, Francois

On Tue, 2023-09-26 at 12:55 +0000, Francois Dugast wrote:
> The infrastructure to query GuC firmware version is already in place. It
> is extended with a new micro-controller type to query the HuC firmware
> version. It can be used from user space to know if HuC is running.
> 
> Signed-off-by: Francois Dugast <francois.dugast@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_query.c | 9 +++++++++
>  include/uapi/drm/xe_drm.h     | 1 +
>  2 files changed, 10 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
> index 7a0ffd9a654a..c250ca534bb9 100644
> --- a/drivers/gpu/drm/xe/xe_query.c
> +++ b/drivers/gpu/drm/xe/xe_query.c
> @@ -530,6 +530,15 @@ query_uc_fw_version(struct xe_device *xe, struct drm_xe_device_query *query)
>  		resp.branch_ver = 0;
>  		break;
>  	}
> +	case XE_QUERY_UC_TYPE_HUC: {
> +		struct xe_huc *huc = &xe->tiles[0].primary_gt->uc.huc;
> +
> +		resp.major_ver = huc->fw.major_ver_found;
> +		resp.minor_ver = huc->fw.minor_ver_found;
> +		resp.patch_ver = huc->fw.patch_ver_found;

Have you confirmed that HuC will not have something like submission version like GuC have?
At least in GuC, when running in SRIOV mode the VFs will not have access to the actual GuC version, that is why it have submission version.

Not sure if providing a complete different firmware version from one kernel version to other would be considered a uAPI break...

> +		resp.branch_ver = 0;
> +		break;
> +	}
>  	default:
>  		return -EINVAL;
>  	}
> diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> index 84091860c7d2..fe7e83a5bd3e 100644
> --- a/include/uapi/drm/xe_drm.h
> +++ b/include/uapi/drm/xe_drm.h
> @@ -478,6 +478,7 @@ struct drm_xe_query_topology_mask {
>  struct drm_xe_query_uc_fw_version {
>  	/** @uc: The micro-controller type to query firmware version */
>  #define XE_QUERY_UC_TYPE_GUC 0
> +#define XE_QUERY_UC_TYPE_HUC 1
>  	__u16 uc_type;
>  
>  	/** @pad: MBZ */


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

* Re: [Intel-xe] [PATCH v3 03/30] drm/xe: Correlate engine and cpu timestamps with better accuracy
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 03/30] drm/xe: Correlate engine and cpu timestamps with better accuracy Francois Dugast
  2023-09-26 16:42   ` Souza, Jose
@ 2023-09-26 18:43   ` Umesh Nerlige Ramappa
  1 sibling, 0 replies; 60+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-09-26 18:43 UTC (permalink / raw)
  To: Francois Dugast; +Cc: intel-xe, Rodrigo Vivi

On Tue, Sep 26, 2023 at 12:55:13PM +0000, Francois Dugast wrote:
>From: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>
>Perf measurements rely on CPU and engine timestamps to correlate
>events of interest across these time domains. Current mechanisms get
>these timestamps separately and the calculated delta between these
>timestamps lack enough accuracy.
>
>To improve the accuracy of these time measurements to within a few us,
>add a query that returns the engine and cpu timestamps captured as
>close to each other as possible.
>
>Prior work: https://patchwork.freedesktop.org/series/87552/
>
>Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>Signed-off-by: Francois Dugast <francois.dugast@intel.com>
>Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>---
> drivers/gpu/drm/xe/xe_query.c | 141 ++++++++++++++++++++++++++++++++++
> include/uapi/drm/xe_drm.h     |  95 ++++++++++++++++++-----
> 2 files changed, 218 insertions(+), 18 deletions(-)
>
>diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
>index cbccd5c3dbc8..be9affd4f181 100644
>--- a/drivers/gpu/drm/xe/xe_query.c
>+++ b/drivers/gpu/drm/xe/xe_query.c
>@@ -6,10 +6,12 @@
> #include "xe_query.h"
>
> #include <linux/nospec.h>
>+#include <linux/sched/clock.h>
>
> #include <drm/ttm/ttm_placement.h>
> #include <drm/xe_drm.h>
>
>+#include "regs/xe_engine_regs.h"
> #include "xe_bo.h"
> #include "xe_device.h"
> #include "xe_exec_queue.h"
>@@ -17,6 +19,7 @@
> #include "xe_gt.h"
> #include "xe_guc_hwconfig.h"
> #include "xe_macros.h"
>+#include "xe_mmio.h"
> #include "xe_ttm_vram_mgr.h"
>
> static const u16 xe_to_user_engine_class[] = {
>@@ -27,6 +30,14 @@ static const u16 xe_to_user_engine_class[] = {
> 	[XE_ENGINE_CLASS_COMPUTE] = DRM_XE_ENGINE_CLASS_COMPUTE,
> };
>
>+static const enum xe_engine_class user_to_xe_engine_class[] = {
>+	[DRM_XE_ENGINE_CLASS_RENDER] = XE_ENGINE_CLASS_RENDER,
>+	[DRM_XE_ENGINE_CLASS_COPY] = XE_ENGINE_CLASS_COPY,
>+	[DRM_XE_ENGINE_CLASS_VIDEO_DECODE] = XE_ENGINE_CLASS_VIDEO_DECODE,
>+	[DRM_XE_ENGINE_CLASS_VIDEO_ENHANCE] = XE_ENGINE_CLASS_VIDEO_ENHANCE,
>+	[DRM_XE_ENGINE_CLASS_COMPUTE] = XE_ENGINE_CLASS_COMPUTE,
>+};
>+
> static size_t calc_hw_engine_info_size(struct xe_device *xe)
> {
> 	struct xe_hw_engine *hwe;
>@@ -45,6 +56,135 @@ static size_t calc_hw_engine_info_size(struct xe_device *xe)
> 	return i * sizeof(struct drm_xe_engine_class_instance);
> }
>
>+typedef u64 (*__ktime_func_t)(void);
>+static __ktime_func_t __clock_id_to_func(clockid_t clk_id)
>+{
>+	/*
>+	 * Use logic same as the perf subsystem to allow user to select the
>+	 * reference clock id to be used for timestamps.
>+	 */
>+	switch (clk_id) {
>+	case CLOCK_MONOTONIC:
>+		return &ktime_get_ns;
>+	case CLOCK_MONOTONIC_RAW:
>+		return &ktime_get_raw_ns;
>+	case CLOCK_REALTIME:
>+		return &ktime_get_real_ns;
>+	case CLOCK_BOOTTIME:
>+		return &ktime_get_boottime_ns;
>+	case CLOCK_TAI:
>+		return &ktime_get_clocktai_ns;
>+	default:
>+		return NULL;
>+	}
>+}
>+
>+static void
>+__read_timestamps(struct xe_gt *gt,
>+		  struct xe_reg lower_reg,
>+		  struct xe_reg upper_reg,
>+		  u64 *cs_ts,
>+		  u64 *cpu_ts,
>+		  u64 *cpu_delta,
>+		  __ktime_func_t cpu_clock)
>+{
>+	u32 upper, lower, old_upper, loop = 0;
>+
>+	upper = xe_mmio_read32(gt, upper_reg);
>+	do {
>+		*cpu_delta = local_clock();
>+		*cpu_ts = cpu_clock();
>+		lower = xe_mmio_read32(gt, lower_reg);
>+		*cpu_delta = local_clock() - *cpu_delta;
>+		old_upper = upper;
>+		upper = xe_mmio_read32(gt, upper_reg);
>+	} while (upper != old_upper && loop++ < 2);
>+
>+	*cs_ts = (u64)upper << 32 | lower;
>+}
>+
>+static int
>+query_cs_cycles(struct xe_device *xe,
>+		struct drm_xe_device_query *query)
>+{
>+	struct drm_xe_query_cs_cycles __user *query_ptr;
>+	struct drm_xe_engine_class_instance *eci;
>+	struct drm_xe_query_cs_cycles resp;
>+	size_t size = sizeof(resp);
>+	__ktime_func_t cpu_clock;
>+	struct xe_hw_engine *hwe;
>+	struct xe_gt *gt;
>+
>+	if (query->size == 0) {
>+		query->size = size;
>+		return 0;
>+	} else if (XE_IOCTL_DBG(xe, query->size != size)) {
>+		return -EINVAL;
>+	}
>+
>+	query_ptr = u64_to_user_ptr(query->data);
>+	if (copy_from_user(&resp, query_ptr, size))
>+		return -EFAULT;
>+
>+	if (resp.rsvd)
>+		return -EINVAL;
>+
>+	cpu_clock = __clock_id_to_func(resp.clockid);
>+	if (!cpu_clock)
>+		return -EINVAL;
>+
>+	eci = &resp.eci;
>+	if (eci->gt_id > XE_MAX_GT_PER_TILE)
>+		return -EINVAL;
>+
>+	gt = xe_device_get_gt(xe, eci->gt_id);
>+	if (!gt)
>+		return -EINVAL;
>+
>+	if (eci->engine_class >= ARRAY_SIZE(user_to_xe_engine_class))
>+		return -EINVAL;
>+
>+	hwe = xe_gt_hw_engine(gt, user_to_xe_engine_class[eci->engine_class],
>+			      eci->engine_instance, true);
>+	if (!hwe)
>+		return -EINVAL;
>+
>+	resp.cs_frequency = gt->info.clock_freq;
>+
>+	xe_device_mem_access_get(xe);
>+	xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL);
>+
>+	__read_timestamps(gt,
>+			  RING_TIMESTAMP(hwe->mmio_base),
>+			  RING_TIMESTAMP_UDW(hwe->mmio_base),
>+			  &resp.cs_cycles,
>+			  &resp.cpu_timestamp,
>+			  &resp.cpu_delta,
>+			  cpu_clock);
>+
>+	xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL);
>+	xe_device_mem_access_put(xe);
>+	resp.width = 36;
>+
>+	/* Only write to the output fields of user query */
>+	if (put_user(resp.cs_frequency, &query_ptr->cs_frequency))
>+		return -EFAULT;
>+
>+	if (put_user(resp.cpu_timestamp, &query_ptr->cpu_timestamp))
>+		return -EFAULT;
>+
>+	if (put_user(resp.cpu_delta, &query_ptr->cpu_delta))
>+		return -EFAULT;
>+
>+	if (put_user(resp.cs_cycles, &query_ptr->cs_cycles))
>+		return -EFAULT;
>+
>+	if (put_user(resp.width, &query_ptr->width))
>+		return -EFAULT;
>+
>+	return 0;
>+}
>+
> static int query_engines(struct xe_device *xe,
> 			 struct drm_xe_device_query *query)
> {
>@@ -369,6 +509,7 @@ static int (* const xe_query_funcs[])(struct xe_device *xe,
> 	query_gts,
> 	query_hwconfig,
> 	query_gt_topology,
>+	query_cs_cycles,
> };
>
> int xe_query_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
>diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
>index d48d8e3c898c..fde1378a60b9 100644
>--- a/include/uapi/drm/xe_drm.h
>+++ b/include/uapi/drm/xe_drm.h
>@@ -128,6 +128,24 @@ struct xe_user_extension {
> #define DRM_IOCTL_XE_WAIT_USER_FENCE		DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_WAIT_USER_FENCE, struct drm_xe_wait_user_fence)
> #define DRM_IOCTL_XE_VM_MADVISE			 DRM_IOW(DRM_COMMAND_BASE + DRM_XE_VM_MADVISE, struct drm_xe_vm_madvise)
>
>+/** struct drm_xe_engine_class_instance - instance of an engine class */
>+struct drm_xe_engine_class_instance {
>+#define DRM_XE_ENGINE_CLASS_RENDER		0
>+#define DRM_XE_ENGINE_CLASS_COPY		1
>+#define DRM_XE_ENGINE_CLASS_VIDEO_DECODE	2
>+#define DRM_XE_ENGINE_CLASS_VIDEO_ENHANCE	3
>+#define DRM_XE_ENGINE_CLASS_COMPUTE		4
>+	/*
>+	 * Kernel only class (not actual hardware engine class). Used for
>+	 * creating ordered queues of VM bind operations.
>+	 */
>+#define DRM_XE_ENGINE_CLASS_VM_BIND		5
>+	__u16 engine_class;
>+
>+	__u16 engine_instance;
>+	__u16 gt_id;
>+};
>+
> /**
>  * enum drm_xe_memory_class - Supported memory classes.
>  */
>@@ -219,6 +237,64 @@ struct drm_xe_query_mem_region {
> 	__u64 reserved[6];
> };
>
>+/**
>+ * struct drm_xe_query_cs_cycles - correlate CPU and GPU timestamps
>+ *
>+ * If a query is made with a struct drm_xe_device_query where .query
>+ * is equal to DRM_XE_QUERY_CS_CYCLES, then the reply uses
>+ * struct drm_xe_query_cs_cycles in .data.
>+ *
>+ * struct drm_xe_query_cs_cycles is allocated by the user and .data points to
>+ * this allocated structure. The user must pass .eci and .clockid as inputs to
>+ * this query. eci determines the engine and tile info required to fetch the
>+ * relevant GPU timestamp. clockid is used to return the specific CPU
>+ * timestamp.
>+ *
>+ * The query returns the command streamer cycles and the frequency that can
>+ * be used to calculate the command streamer timestamp. In addition the
>+ * query returns a set of cpu timestamps that indicate when the command
>+ * streamer cycle count was captured.
>+ */
>+struct drm_xe_query_cs_cycles {
>+	/** Engine for which command streamer cycles is queried. */
>+	struct drm_xe_engine_class_instance eci;
>+
>+	/** MBZ (pad eci to 64 bit) */
>+	__u16 rsvd;
>+
>+	/**
>+	 * Command streamer cycles as read from the command streamer
>+	 * register at 0x358 offset.
>+	 */
>+	__u64 cs_cycles;
>+
>+	/** Frequency of the cs cycles in Hz. */
>+	__u64 cs_frequency;
>+
>+	/**
>+	 * CPU timestamp in ns. The timestamp is captured before reading the
>+	 * cs_cycles register using the reference clockid set by the user.
>+	 */
>+	__u64 cpu_timestamp;
>+
>+	/**
>+	 * Time delta in ns captured around reading the lower dword of the
>+	 * cs_cycles register.
>+	 */
>+	__u64 cpu_delta;
>+
>+	/**
>+	 * Reference clock id for CPU timestamp. For definition, see
>+	 * clock_gettime(2) and perf_event_open(2). Supported clock ids are
>+	 * CLOCK_MONOTONIC, CLOCK_MONOTONIC_RAW, CLOCK_REALTIME, CLOCK_BOOTTIME,
>+	 * CLOCK_TAI.
>+	 */
>+	__s32 clockid;
>+
>+	/** Width of the cs cycle counter in bits. */
>+	__u32 width;
>+};
>+
> /**
>  * struct drm_xe_query_mem_usage - describe memory regions and usage
>  *
>@@ -391,6 +467,7 @@ struct drm_xe_device_query {
> #define DRM_XE_DEVICE_QUERY_GTS		3
> #define DRM_XE_DEVICE_QUERY_HWCONFIG	4
> #define DRM_XE_DEVICE_QUERY_GT_TOPOLOGY	5
>+#define DRM_XE_QUERY_CS_CYCLES		6
> 	/** @query: The type of data to query */
> 	__u32 query;
>
>@@ -732,24 +809,6 @@ struct drm_xe_exec_queue_set_property {
> 	__u64 reserved[2];
> };
>
>-/** struct drm_xe_engine_class_instance - instance of an engine class */
>-struct drm_xe_engine_class_instance {
>-#define DRM_XE_ENGINE_CLASS_RENDER		0
>-#define DRM_XE_ENGINE_CLASS_COPY		1
>-#define DRM_XE_ENGINE_CLASS_VIDEO_DECODE	2
>-#define DRM_XE_ENGINE_CLASS_VIDEO_ENHANCE	3
>-#define DRM_XE_ENGINE_CLASS_COMPUTE		4
>-	/*
>-	 * Kernel only class (not actual hardware engine class). Used for
>-	 * creating ordered queues of VM bind operations.
>-	 */
>-#define DRM_XE_ENGINE_CLASS_VM_BIND		5
>-	__u16 engine_class;
>-
>-	__u16 engine_instance;
>-	__u16 gt_id;

Patch 26/30 where a pad is added here (drm/xe/uapi: Add pad to 
drm_xe_engine_class_instance) should appear before this patch in the 
series.

Thanks,
Umesh

>-};
>-
> struct drm_xe_exec_queue_create {
> #define XE_EXEC_QUEUE_EXTENSION_SET_PROPERTY               0
> 	/** @extensions: Pointer to the first extension struct, if any */
>-- 
>2.34.1
>

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

* Re: [Intel-xe] [PATCH v3 27/30] drm/xe: Extend uAPI to query HuC micro-controler firmware version
  2023-09-26 16:46   ` Souza, Jose
@ 2023-09-27 17:04     ` Rodrigo Vivi
  2023-09-27 17:22       ` Souza, Jose
  0 siblings, 1 reply; 60+ messages in thread
From: Rodrigo Vivi @ 2023-09-27 17:04 UTC (permalink / raw)
  To: Souza, Jose; +Cc: Dugast, Francois, intel-xe

On Tue, Sep 26, 2023 at 04:46:36PM +0000, Souza, Jose wrote:
> On Tue, 2023-09-26 at 12:55 +0000, Francois Dugast wrote:
> > The infrastructure to query GuC firmware version is already in place. It
> > is extended with a new micro-controller type to query the HuC firmware
> > version. It can be used from user space to know if HuC is running.
> > 
> > Signed-off-by: Francois Dugast <francois.dugast@intel.com>
> > ---
> >  drivers/gpu/drm/xe/xe_query.c | 9 +++++++++
> >  include/uapi/drm/xe_drm.h     | 1 +
> >  2 files changed, 10 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
> > index 7a0ffd9a654a..c250ca534bb9 100644
> > --- a/drivers/gpu/drm/xe/xe_query.c
> > +++ b/drivers/gpu/drm/xe/xe_query.c
> > @@ -530,6 +530,15 @@ query_uc_fw_version(struct xe_device *xe, struct drm_xe_device_query *query)
> >  		resp.branch_ver = 0;
> >  		break;
> >  	}
> > +	case XE_QUERY_UC_TYPE_HUC: {
> > +		struct xe_huc *huc = &xe->tiles[0].primary_gt->uc.huc;
> > +
> > +		resp.major_ver = huc->fw.major_ver_found;
> > +		resp.minor_ver = huc->fw.minor_ver_found;
> > +		resp.patch_ver = huc->fw.patch_ver_found;
> 
> Have you confirmed that HuC will not have something like submission version like GuC have?

Nah... GuC is the only complicated fw in our set of fw...

> At least in GuC, when running in SRIOV mode the VFs will not have access to the actual GuC version, that is why it have submission version.
> 
> Not sure if providing a complete different firmware version from one kernel version to other would be considered a uAPI break...

hmmm... but now what I'm asking myself is if we shouldn't move the guc one to
have the current loaded firmware and create a special category for the
submission version:

XE_QUERY_UC_TYPE_GUC
XE_QUERY_UC_TYPE_GUC_SUBMISSION
XE_QUERY_UC_TYPE_HUC

But to be really really honest, there's something really fishy on this
submission version. Why the VF cannot read the running firmware and
get the submission version from there?

> 
> > +		resp.branch_ver = 0;
> > +		break;
> > +	}
> >  	default:
> >  		return -EINVAL;
> >  	}
> > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> > index 84091860c7d2..fe7e83a5bd3e 100644
> > --- a/include/uapi/drm/xe_drm.h
> > +++ b/include/uapi/drm/xe_drm.h
> > @@ -478,6 +478,7 @@ struct drm_xe_query_topology_mask {
> >  struct drm_xe_query_uc_fw_version {
> >  	/** @uc: The micro-controller type to query firmware version */
> >  #define XE_QUERY_UC_TYPE_GUC 0
> > +#define XE_QUERY_UC_TYPE_HUC 1
> >  	__u16 uc_type;
> >  
> >  	/** @pad: MBZ */
> 

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

* Re: [Intel-xe] [PATCH v3 27/30] drm/xe: Extend uAPI to query HuC micro-controler firmware version
  2023-09-27 17:04     ` Rodrigo Vivi
@ 2023-09-27 17:22       ` Souza, Jose
  2023-10-04  0:48         ` John Harrison
  0 siblings, 1 reply; 60+ messages in thread
From: Souza, Jose @ 2023-09-27 17:22 UTC (permalink / raw)
  To: Vivi, Rodrigo, Harrison, John C; +Cc: Dugast, Francois, intel-xe

+ John Harrison

On Wed, 2023-09-27 at 13:04 -0400, Rodrigo Vivi wrote:
> On Tue, Sep 26, 2023 at 04:46:36PM +0000, Souza, Jose wrote:
> > On Tue, 2023-09-26 at 12:55 +0000, Francois Dugast wrote:
> > > The infrastructure to query GuC firmware version is already in place. It
> > > is extended with a new micro-controller type to query the HuC firmware
> > > version. It can be used from user space to know if HuC is running.
> > > 
> > > Signed-off-by: Francois Dugast <francois.dugast@intel.com>
> > > ---
> > >  drivers/gpu/drm/xe/xe_query.c | 9 +++++++++
> > >  include/uapi/drm/xe_drm.h     | 1 +
> > >  2 files changed, 10 insertions(+)
> > > 
> > > diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
> > > index 7a0ffd9a654a..c250ca534bb9 100644
> > > --- a/drivers/gpu/drm/xe/xe_query.c
> > > +++ b/drivers/gpu/drm/xe/xe_query.c
> > > @@ -530,6 +530,15 @@ query_uc_fw_version(struct xe_device *xe, struct drm_xe_device_query *query)
> > >  		resp.branch_ver = 0;
> > >  		break;
> > >  	}
> > > +	case XE_QUERY_UC_TYPE_HUC: {
> > > +		struct xe_huc *huc = &xe->tiles[0].primary_gt->uc.huc;
> > > +
> > > +		resp.major_ver = huc->fw.major_ver_found;
> > > +		resp.minor_ver = huc->fw.minor_ver_found;
> > > +		resp.patch_ver = huc->fw.patch_ver_found;
> > 
> > Have you confirmed that HuC will not have something like submission version like GuC have?
> 
> Nah... GuC is the only complicated fw in our set of fw...
> 
> > At least in GuC, when running in SRIOV mode the VFs will not have access to the actual GuC version, that is why it have submission version.
> > 
> > Not sure if providing a complete different firmware version from one kernel version to other would be considered a uAPI break...
> 
> hmmm... but now what I'm asking myself is if we shouldn't move the guc one to
> have the current loaded firmware and create a special category for the
> submission version:
> 
> XE_QUERY_UC_TYPE_GUC
> XE_QUERY_UC_TYPE_GUC_SUBMISSION
> XE_QUERY_UC_TYPE_HUC

I don't think any UMD would fetch the actual GUC FW version and risk fail when running under SRIOV VF.
If needed we can map a submission version to a actual version...

> 
> But to be really really honest, there's something really fishy on this
> submission version. Why the VF cannot read the running firmware and
> get the submission version from there?

Got this information from John, he can explain it better.

> 
> > 
> > > +		resp.branch_ver = 0;
> > > +		break;
> > > +	}
> > >  	default:
> > >  		return -EINVAL;
> > >  	}
> > > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> > > index 84091860c7d2..fe7e83a5bd3e 100644
> > > --- a/include/uapi/drm/xe_drm.h
> > > +++ b/include/uapi/drm/xe_drm.h
> > > @@ -478,6 +478,7 @@ struct drm_xe_query_topology_mask {
> > >  struct drm_xe_query_uc_fw_version {
> > >  	/** @uc: The micro-controller type to query firmware version */
> > >  #define XE_QUERY_UC_TYPE_GUC 0
> > > +#define XE_QUERY_UC_TYPE_HUC 1
> > >  	__u16 uc_type;
> > >  
> > >  	/** @pad: MBZ */
> > 


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

* Re: [Intel-xe] [PATCH v3 26/30] drm/xe/uapi: Add pad to drm_xe_engine_class_instance
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 26/30] drm/xe/uapi: Add pad to drm_xe_engine_class_instance Francois Dugast
@ 2023-09-29  0:36   ` Umesh Nerlige Ramappa
  2023-09-29  9:06     ` Francois Dugast
  0 siblings, 1 reply; 60+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-09-29  0:36 UTC (permalink / raw)
  To: Francois Dugast; +Cc: intel-xe

On Tue, Sep 26, 2023 at 12:55:36PM +0000, Francois Dugast wrote:
>Add pad to reserve space for future uses such as special configurations
>for media.
>
>Signed-off-by: Francois Dugast <francois.dugast@intel.com>

I saw a comment in v4 that you dropped the patches that are not 
reviewed, so this is: 

Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>

Hoping this will be part of the final series that you merge since the 
ENGINE_CYCLES query is using this structure and relies on this padding.

Thanks,
Umesh
>---
> include/uapi/drm/xe_drm.h | 2 ++
> 1 file changed, 2 insertions(+)
>
>diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
>index 79e47708d526..84091860c7d2 100644
>--- a/include/uapi/drm/xe_drm.h
>+++ b/include/uapi/drm/xe_drm.h
>@@ -143,6 +143,8 @@ struct drm_xe_engine_class_instance {
>
> 	__u16 engine_instance;
> 	__u16 gt_id;
>+	/** @pad: MBZ */
>+	__u32 pad;
> };
>
> /**
>-- 
>2.34.1
>

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

* Re: [Intel-xe] [PATCH v3 26/30] drm/xe/uapi: Add pad to drm_xe_engine_class_instance
  2023-09-29  0:36   ` Umesh Nerlige Ramappa
@ 2023-09-29  9:06     ` Francois Dugast
  2023-09-29 16:00       ` Umesh Nerlige Ramappa
  0 siblings, 1 reply; 60+ messages in thread
From: Francois Dugast @ 2023-09-29  9:06 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa; +Cc: intel-xe

Hi Umesh,

On Thu, Sep 28, 2023 at 05:36:39PM -0700, Umesh Nerlige Ramappa wrote:
> On Tue, Sep 26, 2023 at 12:55:36PM +0000, Francois Dugast wrote:
> > Add pad to reserve space for future uses such as special configurations
> > for media.
> > 
> > Signed-off-by: Francois Dugast <francois.dugast@intel.com>
> 
> I saw a comment in v4 that you dropped the patches that are not reviewed, so
> this is:
> 
> Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> 
> Hoping this will be part of the final series that you merge since the
> ENGINE_CYCLES query is using this structure and relies on this padding.

Actually using your original submission [1] this patch should not longer
be necessary, right? It includes:

   __u16 rsvd;

[1] https://lore.kernel.org/intel-xe/20230814223734.375449-5-umesh.nerlige.ramappa@intel.com/

Francois

> 
> Thanks,
> Umesh
> > ---
> > include/uapi/drm/xe_drm.h | 2 ++
> > 1 file changed, 2 insertions(+)
> > 
> > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> > index 79e47708d526..84091860c7d2 100644
> > --- a/include/uapi/drm/xe_drm.h
> > +++ b/include/uapi/drm/xe_drm.h
> > @@ -143,6 +143,8 @@ struct drm_xe_engine_class_instance {
> > 
> > 	__u16 engine_instance;
> > 	__u16 gt_id;
> > +	/** @pad: MBZ */
> > +	__u32 pad;
> > };
> > 
> > /**
> > -- 
> > 2.34.1
> > 

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

* Re: [Intel-xe] [PATCH v3 26/30] drm/xe/uapi: Add pad to drm_xe_engine_class_instance
  2023-09-29  9:06     ` Francois Dugast
@ 2023-09-29 16:00       ` Umesh Nerlige Ramappa
  2023-09-29 16:45         ` Souza, Jose
  0 siblings, 1 reply; 60+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-09-29 16:00 UTC (permalink / raw)
  To: Francois Dugast; +Cc: intel-xe

On Fri, Sep 29, 2023 at 11:06:53AM +0200, Francois Dugast wrote:
>Hi Umesh,
>
>On Thu, Sep 28, 2023 at 05:36:39PM -0700, Umesh Nerlige Ramappa wrote:
>> On Tue, Sep 26, 2023 at 12:55:36PM +0000, Francois Dugast wrote:
>> > Add pad to reserve space for future uses such as special configurations
>> > for media.
>> >
>> > Signed-off-by: Francois Dugast <francois.dugast@intel.com>
>>
>> I saw a comment in v4 that you dropped the patches that are not reviewed, so
>> this is:
>>
>> Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>>
>> Hoping this will be part of the final series that you merge since the
>> ENGINE_CYCLES query is using this structure and relies on this padding.
>
>Actually using your original submission [1] this patch should not longer
>be necessary, right? It includes:
>
>   __u16 rsvd;
>
>[1] https://lore.kernel.org/intel-xe/20230814223734.375449-5-umesh.nerlige.ramappa@intel.com/

Hmmm, I failed to notice that earlier. My bad. v4 looks good, you can 
ignore this.

Thanks,
Umesh
>
>Francois
>
>>
>> Thanks,
>> Umesh
>> > ---
>> > include/uapi/drm/xe_drm.h | 2 ++
>> > 1 file changed, 2 insertions(+)
>> >
>> > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
>> > index 79e47708d526..84091860c7d2 100644
>> > --- a/include/uapi/drm/xe_drm.h
>> > +++ b/include/uapi/drm/xe_drm.h
>> > @@ -143,6 +143,8 @@ struct drm_xe_engine_class_instance {
>> >
>> > 	__u16 engine_instance;
>> > 	__u16 gt_id;
>> > +	/** @pad: MBZ */
>> > +	__u32 pad;
>> > };
>> >
>> > /**
>> > --
>> > 2.34.1
>> >

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

* Re: [Intel-xe] [PATCH v3 26/30] drm/xe/uapi: Add pad to drm_xe_engine_class_instance
  2023-09-29 16:00       ` Umesh Nerlige Ramappa
@ 2023-09-29 16:45         ` Souza, Jose
  2023-10-03 18:15           ` Umesh Nerlige Ramappa
  0 siblings, 1 reply; 60+ messages in thread
From: Souza, Jose @ 2023-09-29 16:45 UTC (permalink / raw)
  To: Vivi, Rodrigo, Nerlige Ramappa, Umesh, Dugast, Francois; +Cc: intel-xe

On Fri, 2023-09-29 at 09:00 -0700, Umesh Nerlige Ramappa wrote:
> On Fri, Sep 29, 2023 at 11:06:53AM +0200, Francois Dugast wrote:
> > Hi Umesh,
> > 
> > On Thu, Sep 28, 2023 at 05:36:39PM -0700, Umesh Nerlige Ramappa wrote:
> > > On Tue, Sep 26, 2023 at 12:55:36PM +0000, Francois Dugast wrote:
> > > > Add pad to reserve space for future uses such as special configurations
> > > > for media.
> > > > 
> > > > Signed-off-by: Francois Dugast <francois.dugast@intel.com>
> > > 
> > > I saw a comment in v4 that you dropped the patches that are not reviewed, so
> > > this is:
> > > 
> > > Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> > > 
> > > Hoping this will be part of the final series that you merge since the
> > > ENGINE_CYCLES query is using this structure and relies on this padding.
> > 
> > Actually using your original submission [1] this patch should not longer
> > be necessary, right? It includes:
> > 
> >   __u16 rsvd;
> > 
> > [1] https://lore.kernel.org/intel-xe/20230814223734.375449-5-umesh.nerlige.ramappa@intel.com/
> 
> Hmmm, I failed to notice that earlier. My bad. v4 looks good, you can 
> ignore this.

It is named as rsvd but it should be a pad.

We can't leave as reserved to be future used to return media engine capabilities because drm_xe_engine_class_instance is also used as input to other
uAPIs and that is useless information after initialization that UMDs should not need to carry around.

Instead DRM_XE_DEVICE_QUERY_ENGINES should return something like

struct drm_xe_engine_info {
	struct drm_xe_engine_class_instance instance;
	__u32 rsvd;/* future could be __u16 capabilities; __u16 rsvd; */
};

This can be fixed in uAPI take 2.

> 
> Thanks,
> Umesh
> > 
> > Francois
> > 
> > > 
> > > Thanks,
> > > Umesh
> > > > ---
> > > > include/uapi/drm/xe_drm.h | 2 ++
> > > > 1 file changed, 2 insertions(+)
> > > > 
> > > > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> > > > index 79e47708d526..84091860c7d2 100644
> > > > --- a/include/uapi/drm/xe_drm.h
> > > > +++ b/include/uapi/drm/xe_drm.h
> > > > @@ -143,6 +143,8 @@ struct drm_xe_engine_class_instance {
> > > > 
> > > > 	__u16 engine_instance;
> > > > 	__u16 gt_id;
> > > > +	/** @pad: MBZ */
> > > > +	__u32 pad;
> > > > };
> > > > 
> > > > /**
> > > > --
> > > > 2.34.1
> > > > 


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

* Re: [Intel-xe] [PATCH v3 26/30] drm/xe/uapi: Add pad to drm_xe_engine_class_instance
  2023-09-29 16:45         ` Souza, Jose
@ 2023-10-03 18:15           ` Umesh Nerlige Ramappa
  2023-10-04 10:55             ` Francois Dugast
  0 siblings, 1 reply; 60+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-10-03 18:15 UTC (permalink / raw)
  To: Souza, Jose; +Cc: Dugast, Francois, intel-xe, Vivi, Rodrigo

On Fri, Sep 29, 2023 at 09:45:35AM -0700, Souza, Jose wrote:
>On Fri, 2023-09-29 at 09:00 -0700, Umesh Nerlige Ramappa wrote:
>> On Fri, Sep 29, 2023 at 11:06:53AM +0200, Francois Dugast wrote:
>> > Hi Umesh,
>> >
>> > On Thu, Sep 28, 2023 at 05:36:39PM -0700, Umesh Nerlige Ramappa wrote:
>> > > On Tue, Sep 26, 2023 at 12:55:36PM +0000, Francois Dugast wrote:
>> > > > Add pad to reserve space for future uses such as special configurations
>> > > > for media.
>> > > >
>> > > > Signed-off-by: Francois Dugast <francois.dugast@intel.com>
>> > >
>> > > I saw a comment in v4 that you dropped the patches that are not reviewed, so
>> > > this is:
>> > >
>> > > Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>> > >
>> > > Hoping this will be part of the final series that you merge since the
>> > > ENGINE_CYCLES query is using this structure and relies on this padding.
>> >
>> > Actually using your original submission [1] this patch should not longer
>> > be necessary, right? It includes:
>> >
>> >   __u16 rsvd;
>> >
>> > [1] https://lore.kernel.org/intel-xe/20230814223734.375449-5-umesh.nerlige.ramappa@intel.com/
>>
>> Hmmm, I failed to notice that earlier. My bad. v4 looks good, you can
>> ignore this.
>
>It is named as rsvd but it should be a pad.
>
>We can't leave as reserved to be future used to return media engine capabilities because drm_xe_engine_class_instance is also used as input to other
>uAPIs and that is useless information after initialization that UMDs should not need to carry around.
>
>Instead DRM_XE_DEVICE_QUERY_ENGINES should return something like
>
>struct drm_xe_engine_info {
>	struct drm_xe_engine_class_instance instance;
>	__u32 rsvd;/* future could be __u16 capabilities; __u16 rsvd; */
>};
>
>This can be fixed in uAPI take 2.

Hi Francois,

As per Jose's inputs, I posted a new version of my series here - 
https://patchwork.freedesktop.org/patch/560614/?series=124565&rev=1. 

Can you please pick up patch 3/3 from here. Note that just adding the 
pad does not resolve the issue I was mentioning in my original series.  
We also need to explicitly initialize the pad to 0 in this case. I have 
included that change as well in the above patch.

Thanks,
Umesh
>
>>
>> Thanks,
>> Umesh
>> >
>> > Francois
>> >
>> > >
>> > > Thanks,
>> > > Umesh
>> > > > ---
>> > > > include/uapi/drm/xe_drm.h | 2 ++
>> > > > 1 file changed, 2 insertions(+)
>> > > >
>> > > > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
>> > > > index 79e47708d526..84091860c7d2 100644
>> > > > --- a/include/uapi/drm/xe_drm.h
>> > > > +++ b/include/uapi/drm/xe_drm.h
>> > > > @@ -143,6 +143,8 @@ struct drm_xe_engine_class_instance {
>> > > >
>> > > > 	__u16 engine_instance;
>> > > > 	__u16 gt_id;
>> > > > +	/** @pad: MBZ */
>> > > > +	__u32 pad;
>> > > > };
>> > > >
>> > > > /**
>> > > > --
>> > > > 2.34.1
>> > > >
>

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

* Re: [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3
  2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
                   ` (36 preceding siblings ...)
  2023-09-26 13:49 ` [Intel-xe] ✗ CI.BAT: failure " Patchwork
@ 2023-10-04  0:31 ` John Harrison
  37 siblings, 0 replies; 60+ messages in thread
From: John Harrison @ 2023-10-04  0:31 UTC (permalink / raw)
  To: Francois Dugast, intel-xe

On 9/26/2023 05:55, Francois Dugast wrote:
> v3:
> Rebase and add more fixes to uAPI as well as drm_xe_vm_bind_op extension,
> query for microcontroller version and documentation.
>
> This is still not the final version as we are missing at least:
> - a fix for GEM create flags [1]
> - a uAPI update to go per tile rather than per GT [3]
> - PAT and cache coherency support [4]
There is a need to rework the PMU counters (unless that support hasn't 
yet been ported across from i915?). Hardware generated engine busyness 
is reported in clock ticks not nanoseconds. And while technically a 
native device can convert from ticks to ns and compare the activiy count 
against wall time, a VF cannot do that - wall time is not a valid 
concept in a VF because the VF only gets to run on the hardware for some 
amount of the time. Therefore, the interface needs to return 'active 
ticks' and 'total available ticks' and the user can only use these as a 
ratio to determine an active busyness. Comparison to wall time is not 
valid. And in order to prevent code being written on native and then 
failing when run in a VF, we need to make sure the only interface 
provided to the user is the VF compliant one.

John.


>
> v2:
> This v2 has 3 extra patches that was missing on yesterday's submission.
> But that aligns with the IGT series sent yesterday.
>
> Also I'm glad that Mesa reacted super fast and we already have the MR
> ready that aligns with v1 sent yesterday:
>
> https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25300
>
> Thank you Jose!
>
> v1:
> As a result of the uAPI review efforts started by Thomas[1],
> we have identified many updates on our uAPI that would lead to
> breakage in the compatibility. What it is not acceptable after
> we are merged upstream. So, let's break it before it is too late,
> and start upstreaming a good, reliable and clean uapi.
>
> Most of this work on putting these patches together for a single
> shot was led by Francois.
>
> The IGT counter part of this series is available as well[2].
>
> [1] - https://lore.kernel.org/all/863bebd0c624d6fc2b38c0a06b63e468b4185128.camel@l\
> inux.intel.com/
> [2] - https://lore.kernel.org/all/20230919142000.91363-1-rodrigo.vivi@intel.com
> [3] - https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/633
> [4] - https://patchwork.freedesktop.org/series/123027/
>
> Ashutosh Dixit (1):
>    drm/xe/uapi: Use common drm_xe_ext_set_property extension
>
> Francois Dugast (11):
>    drm/xe/uapi: Separate VM_BIND's operation and flag
>    drm/xe/vm: Remove VM_BIND_OP macro
>    drm/xe/uapi: Remove MMIO ioctl
>    drm/xe/uapi: Fix naming of XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY
>    drm/xe/uapi: Add documentation for query
>    drm/xe/uapi: Document DRM_XE_DEVICE_QUERY_HWCONFIG
>    drm/xe/uapi: Add pad to drm_xe_engine_class_instance
>    drm/xe: Extend uAPI to query HuC micro-controler firmware version
>    drm/xe: Remove useless query config num_params
>    drm/xe/uapi: Add missing DRM_ prefix in uAPI constants
>    drm/xe/uapi: Add _FLAG to uAPI constants usable for flags
>
> José Roberto de Souza (1):
>    drm/xe: Add uAPI to query micro-controler firmware version
>
> Matthew Brost (7):
>    drm/xe: Fix xe_exec_queue_is_idle for parallel exec queues
>    drm/xe: Deprecate XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE
>      implementation
>    drm/xe: Rename exec_queue_kill_compute to
>      xe_vm_remove_compute_exec_queue
>    drm/xe: Remove XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE from uAPI
>    drm/xe/uapi: Kill DRM_XE_UFENCE_WAIT_VM_ERROR
>    drm/xe: Remove async worker and rework sync binds
>    drm/xe: Fix VM bind out-sync signaling ordering
>
> Mika Kuoppala (1):
>    drm/xe: Extend drm_xe_vm_bind_op
>
> Rodrigo Vivi (6):
>    drm/xe: Kill XE_VM_PROPERTY_BIND_OP_ERROR_CAPTURE_ADDRESS extension
>    drm/xe/uapi: Document drm_xe_query_gt
>    drm/xe/uapi: Replace useless 'instance' per unique gt_id
>    drm/xe/uapi: Remove unused field of drm_xe_query_gt
>    drm/xe/uapi: Rename gts to gt_list
>    drm/xe/uapi: Crystal Reference Clock updates
>
> Umesh Nerlige Ramappa (3):
>    drm/xe: Fix array bounds check for queries
>    drm/xe: Set the correct type for xe_to_user_engine_class
>    drm/xe: Correlate engine and cpu timestamps with better accuracy
>
>   drivers/gpu/drm/xe/xe_bo.c               |  14 +-
>   drivers/gpu/drm/xe/xe_device.c           |   1 -
>   drivers/gpu/drm/xe/xe_exec.c             |  43 --
>   drivers/gpu/drm/xe/xe_exec_queue.c       | 201 +++---
>   drivers/gpu/drm/xe/xe_exec_queue.h       |   7 +
>   drivers/gpu/drm/xe/xe_exec_queue_types.h |  14 +-
>   drivers/gpu/drm/xe/xe_gt.c               |   2 +-
>   drivers/gpu/drm/xe/xe_gt_types.h         |   2 +-
>   drivers/gpu/drm/xe/xe_mmio.c             | 102 ---
>   drivers/gpu/drm/xe/xe_pci.c              |   4 -
>   drivers/gpu/drm/xe/xe_pmu.c              |  20 +-
>   drivers/gpu/drm/xe/xe_query.c            | 266 ++++++--
>   drivers/gpu/drm/xe/xe_sync.c             |  28 +-
>   drivers/gpu/drm/xe/xe_sync.h             |   2 +-
>   drivers/gpu/drm/xe/xe_vm.c               | 829 ++++++-----------------
>   drivers/gpu/drm/xe/xe_vm.h               |   3 +-
>   drivers/gpu/drm/xe/xe_vm_doc.h           |  14 +-
>   drivers/gpu/drm/xe/xe_vm_madvise.c       |   8 +-
>   drivers/gpu/drm/xe/xe_vm_types.h         |  42 +-
>   drivers/gpu/drm/xe/xe_wait_user_fence.c  |  49 +-
>   include/uapi/drm/xe_drm.h                | 516 +++++++-------
>   21 files changed, 915 insertions(+), 1252 deletions(-)
>


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

* Re: [Intel-xe] [PATCH v3 27/30] drm/xe: Extend uAPI to query HuC micro-controler firmware version
  2023-09-27 17:22       ` Souza, Jose
@ 2023-10-04  0:48         ` John Harrison
  2023-10-09 13:08           ` Francois Dugast
  0 siblings, 1 reply; 60+ messages in thread
From: John Harrison @ 2023-10-04  0:48 UTC (permalink / raw)
  To: Souza, Jose, Vivi, Rodrigo; +Cc: Dugast, Francois, intel-xe

On 9/27/2023 10:22, Souza, Jose wrote:
> + John Harrison
>
> On Wed, 2023-09-27 at 13:04 -0400, Rodrigo Vivi wrote:
>> On Tue, Sep 26, 2023 at 04:46:36PM +0000, Souza, Jose wrote:
>>> On Tue, 2023-09-26 at 12:55 +0000, Francois Dugast wrote:
>>>> The infrastructure to query GuC firmware version is already in place. It
>>>> is extended with a new micro-controller type to query the HuC firmware
>>>> version. It can be used from user space to know if HuC is running.
>>>>
>>>> Signed-off-by: Francois Dugast <francois.dugast@intel.com>
>>>> ---
>>>>   drivers/gpu/drm/xe/xe_query.c | 9 +++++++++
>>>>   include/uapi/drm/xe_drm.h     | 1 +
>>>>   2 files changed, 10 insertions(+)
>>>>
>>>> diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
>>>> index 7a0ffd9a654a..c250ca534bb9 100644
>>>> --- a/drivers/gpu/drm/xe/xe_query.c
>>>> +++ b/drivers/gpu/drm/xe/xe_query.c
>>>> @@ -530,6 +530,15 @@ query_uc_fw_version(struct xe_device *xe, struct drm_xe_device_query *query)
>>>>   		resp.branch_ver = 0;
>>>>   		break;
>>>>   	}
>>>> +	case XE_QUERY_UC_TYPE_HUC: {
>>>> +		struct xe_huc *huc = &xe->tiles[0].primary_gt->uc.huc;
>>>> +
>>>> +		resp.major_ver = huc->fw.major_ver_found;
>>>> +		resp.minor_ver = huc->fw.minor_ver_found;
>>>> +		resp.patch_ver = huc->fw.patch_ver_found;
>>> Have you confirmed that HuC will not have something like submission version like GuC have?
>> Nah... GuC is the only complicated fw in our set of fw...
HuC has no split interface. It is only ever accessed by the UMD from a 
batch buffer. The KMD has no dealings with the HuC beyond providing the 
firmware image to whatever entity does the loading (GuC or GSC according 
to platform). So no need to multiple interface versions.

>>
>>> At least in GuC, when running in SRIOV mode the VFs will not have access to the actual GuC version, that is why it have submission version.
>>>
>>> Not sure if providing a complete different firmware version from one kernel version to other would be considered a uAPI break...
>> hmmm... but now what I'm asking myself is if we shouldn't move the guc one to
>> have the current loaded firmware and create a special category for the
>> submission version:
>>
>> XE_QUERY_UC_TYPE_GUC
>> XE_QUERY_UC_TYPE_GUC_SUBMISSION
>> XE_QUERY_UC_TYPE_HUC
> I don't think any UMD would fetch the actual GUC FW version and risk fail when running under SRIOV VF.
> If needed we can map a submission version to a actual version...
>
>> But to be really really honest, there's something really fishy on this
>> submission version. Why the VF cannot read the running firmware and
>> get the submission version from there?
> Got this information from John, he can explain it better.
Because the VF does not need to know the master version number.

Especially when you get in to VF migration and such. The VF could start 
executing with one back end GuC version but then be migrated to a system 
with a completely different back end GuC version. As long as the 
submission API is compatible then the VF doesn't care. However, the PF 
that is managing the GuC very definitely needs to know how to manage 
that specific GuC version. Even ignoring live migration, an end customer 
may have a specific OS image that they have validated and tested and 
want to run on some cloud server system. The cloud provider may need to 
update the GuC version to take security fixes. But the customer's image 
should not have to change as a result. The GuC update must be backwards 
compatible at the VF level even if it is backwards breaking at the PF level.

In short, the GuC presents two completely separate APIs. One for 
management that is only visible to the PF and one for clients/submission 
that is visible to the VF (and directly to the UMDs if we ever support 
direct submission, plus indirectly to the UMDs via bugs!). On native, 
the KMD sees everything so technically only one version is required for 
native. But for SRIOV, the two interfaces are totally separate. A VF KMD 
does not have access to the management interfaces and does not care what 
master version the GuC is. It only cares that the client interface 
matches what it knows about. Likewise a UMD. Therefore, we need two 
completely separate interface version numbers. And we need to be very 
careful that nothing uses the master version when it should be using the 
submission version. Otherwise, stuff will break when it starts to run in 
a VF.

Whether it is useful to return the master version via this query 
interface is debatable. There should be no functional requirement for 
it. Any UMD code should only care about the client interface/behaviour 
and so should only need the submission interface version number. 
Potentially we might want to report the master version to the end user 
via some control panel information tool thing. But that should be the 
only purpose for it.

John.


>>>> +		resp.branch_ver = 0;
>>>> +		break;
>>>> +	}
>>>>   	default:
>>>>   		return -EINVAL;
>>>>   	}
>>>> diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
>>>> index 84091860c7d2..fe7e83a5bd3e 100644
>>>> --- a/include/uapi/drm/xe_drm.h
>>>> +++ b/include/uapi/drm/xe_drm.h
>>>> @@ -478,6 +478,7 @@ struct drm_xe_query_topology_mask {
>>>>   struct drm_xe_query_uc_fw_version {
>>>>   	/** @uc: The micro-controller type to query firmware version */
>>>>   #define XE_QUERY_UC_TYPE_GUC 0
>>>> +#define XE_QUERY_UC_TYPE_HUC 1
>>>>   	__u16 uc_type;
>>>>   
>>>>   	/** @pad: MBZ */


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

* Re: [Intel-xe] [PATCH v3 26/30] drm/xe/uapi: Add pad to drm_xe_engine_class_instance
  2023-10-03 18:15           ` Umesh Nerlige Ramappa
@ 2023-10-04 10:55             ` Francois Dugast
  2023-10-05  2:35               ` Umesh Nerlige Ramappa
  2023-10-06  2:07               ` Umesh Nerlige Ramappa
  0 siblings, 2 replies; 60+ messages in thread
From: Francois Dugast @ 2023-10-04 10:55 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa; +Cc: intel-xe, Vivi, Rodrigo

On Tue, Oct 03, 2023 at 11:15:00AM -0700, Umesh Nerlige Ramappa wrote:
> On Fri, Sep 29, 2023 at 09:45:35AM -0700, Souza, Jose wrote:
> > On Fri, 2023-09-29 at 09:00 -0700, Umesh Nerlige Ramappa wrote:
> > > On Fri, Sep 29, 2023 at 11:06:53AM +0200, Francois Dugast wrote:
> > > > Hi Umesh,
> > > >
> > > > On Thu, Sep 28, 2023 at 05:36:39PM -0700, Umesh Nerlige Ramappa wrote:
> > > > > On Tue, Sep 26, 2023 at 12:55:36PM +0000, Francois Dugast wrote:
> > > > > > Add pad to reserve space for future uses such as special configurations
> > > > > > for media.
> > > > > >
> > > > > > Signed-off-by: Francois Dugast <francois.dugast@intel.com>
> > > > >
> > > > > I saw a comment in v4 that you dropped the patches that are not reviewed, so
> > > > > this is:
> > > > >
> > > > > Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> > > > >
> > > > > Hoping this will be part of the final series that you merge since the
> > > > > ENGINE_CYCLES query is using this structure and relies on this padding.
> > > >
> > > > Actually using your original submission [1] this patch should not longer
> > > > be necessary, right? It includes:
> > > >
> > > >   __u16 rsvd;
> > > >
> > > > [1] https://lore.kernel.org/intel-xe/20230814223734.375449-5-umesh.nerlige.ramappa@intel.com/
> > > 
> > > Hmmm, I failed to notice that earlier. My bad. v4 looks good, you can
> > > ignore this.
> > 
> > It is named as rsvd but it should be a pad.
> > 
> > We can't leave as reserved to be future used to return media engine capabilities because drm_xe_engine_class_instance is also used as input to other
> > uAPIs and that is useless information after initialization that UMDs should not need to carry around.
> > 
> > Instead DRM_XE_DEVICE_QUERY_ENGINES should return something like
> > 
> > struct drm_xe_engine_info {
> > 	struct drm_xe_engine_class_instance instance;
> > 	__u32 rsvd;/* future could be __u16 capabilities; __u16 rsvd; */
> > };
> > 
> > This can be fixed in uAPI take 2.
> 
> Hi Francois,
> 
> As per Jose's inputs, I posted a new version of my series here -
> https://patchwork.freedesktop.org/patch/560614/?series=124565&rev=1.
> 
> Can you please pick up patch 3/3 from here. Note that just adding the pad
> does not resolve the issue I was mentioning in my original series.  We also
> need to explicitly initialize the pad to 0 in this case. I have included
> that change as well in the above patch.
> 
> Thanks,
> Umesh

Hi Umesh,

Thanks for the update. An earlier version was already included in take 1
of the uAPI changes [1], against which UMDs are currently aligning, so it
would be best to leave take 1 as it is and include your fix as a fixup in
take 2. Could you please send a fixup instead?

[1] https://patchwork.freedesktop.org/patch/560614/?series=124565&rev=1

Francois

> > 
> > > 
> > > Thanks,
> > > Umesh
> > > >
> > > > Francois
> > > >
> > > > >
> > > > > Thanks,
> > > > > Umesh
> > > > > > ---
> > > > > > include/uapi/drm/xe_drm.h | 2 ++
> > > > > > 1 file changed, 2 insertions(+)
> > > > > >
> > > > > > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> > > > > > index 79e47708d526..84091860c7d2 100644
> > > > > > --- a/include/uapi/drm/xe_drm.h
> > > > > > +++ b/include/uapi/drm/xe_drm.h
> > > > > > @@ -143,6 +143,8 @@ struct drm_xe_engine_class_instance {
> > > > > >
> > > > > > 	__u16 engine_instance;
> > > > > > 	__u16 gt_id;
> > > > > > +	/** @pad: MBZ */
> > > > > > +	__u32 pad;
> > > > > > };
> > > > > >
> > > > > > /**
> > > > > > --
> > > > > > 2.34.1
> > > > > >
> > 

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

* Re: [Intel-xe] [PATCH v3 26/30] drm/xe/uapi: Add pad to drm_xe_engine_class_instance
  2023-10-04 10:55             ` Francois Dugast
@ 2023-10-05  2:35               ` Umesh Nerlige Ramappa
  2023-10-09 17:05                 ` Umesh Nerlige Ramappa
  2023-10-06  2:07               ` Umesh Nerlige Ramappa
  1 sibling, 1 reply; 60+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-10-05  2:35 UTC (permalink / raw)
  To: Francois Dugast; +Cc: intel-xe, Vivi, Rodrigo

On Wed, Oct 04, 2023 at 12:55:19PM +0200, Francois Dugast wrote:
>On Tue, Oct 03, 2023 at 11:15:00AM -0700, Umesh Nerlige Ramappa wrote:
>> On Fri, Sep 29, 2023 at 09:45:35AM -0700, Souza, Jose wrote:
>> > On Fri, 2023-09-29 at 09:00 -0700, Umesh Nerlige Ramappa wrote:
>> > > On Fri, Sep 29, 2023 at 11:06:53AM +0200, Francois Dugast wrote:
>> > > > Hi Umesh,
>> > > >
>> > > > On Thu, Sep 28, 2023 at 05:36:39PM -0700, Umesh Nerlige Ramappa wrote:
>> > > > > On Tue, Sep 26, 2023 at 12:55:36PM +0000, Francois Dugast wrote:
>> > > > > > Add pad to reserve space for future uses such as special configurations
>> > > > > > for media.
>> > > > > >
>> > > > > > Signed-off-by: Francois Dugast <francois.dugast@intel.com>
>> > > > >
>> > > > > I saw a comment in v4 that you dropped the patches that are not reviewed, so
>> > > > > this is:
>> > > > >
>> > > > > Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>> > > > >
>> > > > > Hoping this will be part of the final series that you merge since the
>> > > > > ENGINE_CYCLES query is using this structure and relies on this padding.
>> > > >
>> > > > Actually using your original submission [1] this patch should not longer
>> > > > be necessary, right? It includes:
>> > > >
>> > > >   __u16 rsvd;
>> > > >
>> > > > [1] https://lore.kernel.org/intel-xe/20230814223734.375449-5-umesh.nerlige.ramappa@intel.com/
>> > >
>> > > Hmmm, I failed to notice that earlier. My bad. v4 looks good, you can
>> > > ignore this.
>> >
>> > It is named as rsvd but it should be a pad.
>> >
>> > We can't leave as reserved to be future used to return media engine capabilities because drm_xe_engine_class_instance is also used as input to other
>> > uAPIs and that is useless information after initialization that UMDs should not need to carry around.
>> >
>> > Instead DRM_XE_DEVICE_QUERY_ENGINES should return something like
>> >
>> > struct drm_xe_engine_info {
>> > 	struct drm_xe_engine_class_instance instance;
>> > 	__u32 rsvd;/* future could be __u16 capabilities; __u16 rsvd; */
>> > };
>> >
>> > This can be fixed in uAPI take 2.
>>
>> Hi Francois,
>>
>> As per Jose's inputs, I posted a new version of my series here -
>> https://patchwork.freedesktop.org/patch/560614/?series=124565&rev=1.
>>
>> Can you please pick up patch 3/3 from here. Note that just adding the pad
>> does not resolve the issue I was mentioning in my original series.  We also
>> need to explicitly initialize the pad to 0 in this case. I have included
>> that change as well in the above patch.
>>
>> Thanks,
>> Umesh
>
>Hi Umesh,
>
>Thanks for the update. An earlier version was already included in take 1
>of the uAPI changes [1],

Not sure if the below link in [1] is what you wanted to share. It points 
to the series I posted. I am guessing you were intending to point to a 
take 1 series.

Thanks,
Umesh

>against which UMDs are currently aligning, so it
>would be best to leave take 1 as it is and include your fix as a fixup in
>take 2. Could you please send a fixup instead?
>
>[1] https://patchwork.freedesktop.org/patch/560614/?series=124565&rev=1
>
>Francois
>
>> >
>> > >
>> > > Thanks,
>> > > Umesh
>> > > >
>> > > > Francois
>> > > >
>> > > > >
>> > > > > Thanks,
>> > > > > Umesh
>> > > > > > ---
>> > > > > > include/uapi/drm/xe_drm.h | 2 ++
>> > > > > > 1 file changed, 2 insertions(+)
>> > > > > >
>> > > > > > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
>> > > > > > index 79e47708d526..84091860c7d2 100644
>> > > > > > --- a/include/uapi/drm/xe_drm.h
>> > > > > > +++ b/include/uapi/drm/xe_drm.h
>> > > > > > @@ -143,6 +143,8 @@ struct drm_xe_engine_class_instance {
>> > > > > >
>> > > > > > 	__u16 engine_instance;
>> > > > > > 	__u16 gt_id;
>> > > > > > +	/** @pad: MBZ */
>> > > > > > +	__u32 pad;
>> > > > > > };
>> > > > > >
>> > > > > > /**
>> > > > > > --
>> > > > > > 2.34.1
>> > > > > >
>> >

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

* Re: [Intel-xe] [PATCH v3 26/30] drm/xe/uapi: Add pad to drm_xe_engine_class_instance
  2023-10-04 10:55             ` Francois Dugast
  2023-10-05  2:35               ` Umesh Nerlige Ramappa
@ 2023-10-06  2:07               ` Umesh Nerlige Ramappa
  1 sibling, 0 replies; 60+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-10-06  2:07 UTC (permalink / raw)
  To: Francois Dugast; +Cc: intel-xe, Vivi, Rodrigo

On Wed, Oct 04, 2023 at 12:55:19PM +0200, Francois Dugast wrote:
>On Tue, Oct 03, 2023 at 11:15:00AM -0700, Umesh Nerlige Ramappa wrote:
>> On Fri, Sep 29, 2023 at 09:45:35AM -0700, Souza, Jose wrote:
>> > On Fri, 2023-09-29 at 09:00 -0700, Umesh Nerlige Ramappa wrote:
>> > > On Fri, Sep 29, 2023 at 11:06:53AM +0200, Francois Dugast wrote:
>> > > > Hi Umesh,
>> > > >
>> > > > On Thu, Sep 28, 2023 at 05:36:39PM -0700, Umesh Nerlige Ramappa wrote:
>> > > > > On Tue, Sep 26, 2023 at 12:55:36PM +0000, Francois Dugast wrote:
>> > > > > > Add pad to reserve space for future uses such as special configurations
>> > > > > > for media.
>> > > > > >
>> > > > > > Signed-off-by: Francois Dugast <francois.dugast@intel.com>
>> > > > >
>> > > > > I saw a comment in v4 that you dropped the patches that are not reviewed, so
>> > > > > this is:
>> > > > >
>> > > > > Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>> > > > >
>> > > > > Hoping this will be part of the final series that you merge since the
>> > > > > ENGINE_CYCLES query is using this structure and relies on this padding.
>> > > >
>> > > > Actually using your original submission [1] this patch should not longer
>> > > > be necessary, right? It includes:
>> > > >
>> > > >   __u16 rsvd;
>> > > >
>> > > > [1] https://lore.kernel.org/intel-xe/20230814223734.375449-5-umesh.nerlige.ramappa@intel.com/
>> > >
>> > > Hmmm, I failed to notice that earlier. My bad. v4 looks good, you can
>> > > ignore this.
>> >
>> > It is named as rsvd but it should be a pad.
>> >
>> > We can't leave as reserved to be future used to return media engine capabilities because drm_xe_engine_class_instance is also used as input to other
>> > uAPIs and that is useless information after initialization that UMDs should not need to carry around.
>> >
>> > Instead DRM_XE_DEVICE_QUERY_ENGINES should return something like
>> >
>> > struct drm_xe_engine_info {
>> > 	struct drm_xe_engine_class_instance instance;
>> > 	__u32 rsvd;/* future could be __u16 capabilities; __u16 rsvd; */
>> > };
>> >
>> > This can be fixed in uAPI take 2.
>>
>> Hi Francois,
>>
>> As per Jose's inputs, I posted a new version of my series here -
>> https://patchwork.freedesktop.org/patch/560614/?series=124565&rev=1.
>>
>> Can you please pick up patch 3/3 from here. Note that just adding the pad
>> does not resolve the issue I was mentioning in my original series.  We also
>> need to explicitly initialize the pad to 0 in this case. I have included
>> that change as well in the above patch.
>>
>> Thanks,
>> Umesh
>
>Hi Umesh,
>
>Thanks for the update. An earlier version was already included in take 1
>of the uAPI changes [1], against which UMDs are currently aligning, so it
>would be best to leave take 1 as it is and include your fix as a fixup in
>take 2. Could you please send a fixup instead?

Fixup posted here - 
https://patchwork.freedesktop.org/patch/561095/?series=124690&rev=1

Thanks,
Umesh

>
>[1] https://patchwork.freedesktop.org/patch/560614/?series=124565&rev=1
>
>Francois
>
>> >
>> > >
>> > > Thanks,
>> > > Umesh
>> > > >
>> > > > Francois
>> > > >
>> > > > >
>> > > > > Thanks,
>> > > > > Umesh
>> > > > > > ---
>> > > > > > include/uapi/drm/xe_drm.h | 2 ++
>> > > > > > 1 file changed, 2 insertions(+)
>> > > > > >
>> > > > > > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
>> > > > > > index 79e47708d526..84091860c7d2 100644
>> > > > > > --- a/include/uapi/drm/xe_drm.h
>> > > > > > +++ b/include/uapi/drm/xe_drm.h
>> > > > > > @@ -143,6 +143,8 @@ struct drm_xe_engine_class_instance {
>> > > > > >
>> > > > > > 	__u16 engine_instance;
>> > > > > > 	__u16 gt_id;
>> > > > > > +	/** @pad: MBZ */
>> > > > > > +	__u32 pad;
>> > > > > > };
>> > > > > >
>> > > > > > /**
>> > > > > > --
>> > > > > > 2.34.1
>> > > > > >
>> >

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

* Re: [Intel-xe] [PATCH v3 27/30] drm/xe: Extend uAPI to query HuC micro-controler firmware version
  2023-10-04  0:48         ` John Harrison
@ 2023-10-09 13:08           ` Francois Dugast
  2023-10-09 13:35             ` Souza, Jose
  0 siblings, 1 reply; 60+ messages in thread
From: Francois Dugast @ 2023-10-09 13:08 UTC (permalink / raw)
  To: John Harrison; +Cc: intel-xe, Vivi, Rodrigo

On Tue, Oct 03, 2023 at 05:48:07PM -0700, John Harrison wrote:
> On 9/27/2023 10:22, Souza, Jose wrote:
> > + John Harrison
> > 
> > On Wed, 2023-09-27 at 13:04 -0400, Rodrigo Vivi wrote:
> > > On Tue, Sep 26, 2023 at 04:46:36PM +0000, Souza, Jose wrote:
> > > > On Tue, 2023-09-26 at 12:55 +0000, Francois Dugast wrote:
> > > > > The infrastructure to query GuC firmware version is already in place. It
> > > > > is extended with a new micro-controller type to query the HuC firmware
> > > > > version. It can be used from user space to know if HuC is running.
> > > > > 
> > > > > Signed-off-by: Francois Dugast <francois.dugast@intel.com>
> > > > > ---
> > > > >   drivers/gpu/drm/xe/xe_query.c | 9 +++++++++
> > > > >   include/uapi/drm/xe_drm.h     | 1 +
> > > > >   2 files changed, 10 insertions(+)
> > > > > 
> > > > > diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
> > > > > index 7a0ffd9a654a..c250ca534bb9 100644
> > > > > --- a/drivers/gpu/drm/xe/xe_query.c
> > > > > +++ b/drivers/gpu/drm/xe/xe_query.c
> > > > > @@ -530,6 +530,15 @@ query_uc_fw_version(struct xe_device *xe, struct drm_xe_device_query *query)
> > > > >   		resp.branch_ver = 0;
> > > > >   		break;
> > > > >   	}
> > > > > +	case XE_QUERY_UC_TYPE_HUC: {
> > > > > +		struct xe_huc *huc = &xe->tiles[0].primary_gt->uc.huc;
> > > > > +
> > > > > +		resp.major_ver = huc->fw.major_ver_found;
> > > > > +		resp.minor_ver = huc->fw.minor_ver_found;
> > > > > +		resp.patch_ver = huc->fw.patch_ver_found;
> > > > Have you confirmed that HuC will not have something like submission version like GuC have?
> > > Nah... GuC is the only complicated fw in our set of fw...
> HuC has no split interface. It is only ever accessed by the UMD from a batch
> buffer. The KMD has no dealings with the HuC beyond providing the firmware
> image to whatever entity does the loading (GuC or GSC according to
> platform). So no need to multiple interface versions.

Many thanks John for the explanations here and below.

Jose: with this, back to the original submission, it seems returning
just the firmware version for HuC is correct, right?

Francois

> 
> > > 
> > > > At least in GuC, when running in SRIOV mode the VFs will not have access to the actual GuC version, that is why it have submission version.
> > > > 
> > > > Not sure if providing a complete different firmware version from one kernel version to other would be considered a uAPI break...
> > > hmmm... but now what I'm asking myself is if we shouldn't move the guc one to
> > > have the current loaded firmware and create a special category for the
> > > submission version:
> > > 
> > > XE_QUERY_UC_TYPE_GUC
> > > XE_QUERY_UC_TYPE_GUC_SUBMISSION
> > > XE_QUERY_UC_TYPE_HUC
> > I don't think any UMD would fetch the actual GUC FW version and risk fail when running under SRIOV VF.
> > If needed we can map a submission version to a actual version...
> > 
> > > But to be really really honest, there's something really fishy on this
> > > submission version. Why the VF cannot read the running firmware and
> > > get the submission version from there?
> > Got this information from John, he can explain it better.
> Because the VF does not need to know the master version number.
> 
> Especially when you get in to VF migration and such. The VF could start
> executing with one back end GuC version but then be migrated to a system
> with a completely different back end GuC version. As long as the submission
> API is compatible then the VF doesn't care. However, the PF that is managing
> the GuC very definitely needs to know how to manage that specific GuC
> version. Even ignoring live migration, an end customer may have a specific
> OS image that they have validated and tested and want to run on some cloud
> server system. The cloud provider may need to update the GuC version to take
> security fixes. But the customer's image should not have to change as a
> result. The GuC update must be backwards compatible at the VF level even if
> it is backwards breaking at the PF level.
> 
> In short, the GuC presents two completely separate APIs. One for management
> that is only visible to the PF and one for clients/submission that is
> visible to the VF (and directly to the UMDs if we ever support direct
> submission, plus indirectly to the UMDs via bugs!). On native, the KMD sees
> everything so technically only one version is required for native. But for
> SRIOV, the two interfaces are totally separate. A VF KMD does not have
> access to the management interfaces and does not care what master version
> the GuC is. It only cares that the client interface matches what it knows
> about. Likewise a UMD. Therefore, we need two completely separate interface
> version numbers. And we need to be very careful that nothing uses the master
> version when it should be using the submission version. Otherwise, stuff
> will break when it starts to run in a VF.
> 
> Whether it is useful to return the master version via this query interface
> is debatable. There should be no functional requirement for it. Any UMD code
> should only care about the client interface/behaviour and so should only
> need the submission interface version number. Potentially we might want to
> report the master version to the end user via some control panel information
> tool thing. But that should be the only purpose for it.
> 
> John.
> 
> 
> > > > > +		resp.branch_ver = 0;
> > > > > +		break;
> > > > > +	}
> > > > >   	default:
> > > > >   		return -EINVAL;
> > > > >   	}
> > > > > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> > > > > index 84091860c7d2..fe7e83a5bd3e 100644
> > > > > --- a/include/uapi/drm/xe_drm.h
> > > > > +++ b/include/uapi/drm/xe_drm.h
> > > > > @@ -478,6 +478,7 @@ struct drm_xe_query_topology_mask {
> > > > >   struct drm_xe_query_uc_fw_version {
> > > > >   	/** @uc: The micro-controller type to query firmware version */
> > > > >   #define XE_QUERY_UC_TYPE_GUC 0
> > > > > +#define XE_QUERY_UC_TYPE_HUC 1
> > > > >   	__u16 uc_type;
> > > > >   	/** @pad: MBZ */
> 

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

* Re: [Intel-xe] [PATCH v3 27/30] drm/xe: Extend uAPI to query HuC micro-controler firmware version
  2023-10-09 13:08           ` Francois Dugast
@ 2023-10-09 13:35             ` Souza, Jose
  0 siblings, 0 replies; 60+ messages in thread
From: Souza, Jose @ 2023-10-09 13:35 UTC (permalink / raw)
  To: Harrison, John C, Dugast, Francois; +Cc: intel-xe, Vivi,  Rodrigo

On Mon, 2023-10-09 at 15:08 +0200, Francois Dugast wrote:
> On Tue, Oct 03, 2023 at 05:48:07PM -0700, John Harrison wrote:
> > On 9/27/2023 10:22, Souza, Jose wrote:
> > > + John Harrison
> > > 
> > > On Wed, 2023-09-27 at 13:04 -0400, Rodrigo Vivi wrote:
> > > > On Tue, Sep 26, 2023 at 04:46:36PM +0000, Souza, Jose wrote:
> > > > > On Tue, 2023-09-26 at 12:55 +0000, Francois Dugast wrote:
> > > > > > The infrastructure to query GuC firmware version is already in place. It
> > > > > > is extended with a new micro-controller type to query the HuC firmware
> > > > > > version. It can be used from user space to know if HuC is running.
> > > > > > 
> > > > > > Signed-off-by: Francois Dugast <francois.dugast@intel.com>
> > > > > > ---
> > > > > >   drivers/gpu/drm/xe/xe_query.c | 9 +++++++++
> > > > > >   include/uapi/drm/xe_drm.h     | 1 +
> > > > > >   2 files changed, 10 insertions(+)
> > > > > > 
> > > > > > diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
> > > > > > index 7a0ffd9a654a..c250ca534bb9 100644
> > > > > > --- a/drivers/gpu/drm/xe/xe_query.c
> > > > > > +++ b/drivers/gpu/drm/xe/xe_query.c
> > > > > > @@ -530,6 +530,15 @@ query_uc_fw_version(struct xe_device *xe, struct drm_xe_device_query *query)
> > > > > >   		resp.branch_ver = 0;
> > > > > >   		break;
> > > > > >   	}
> > > > > > +	case XE_QUERY_UC_TYPE_HUC: {
> > > > > > +		struct xe_huc *huc = &xe->tiles[0].primary_gt->uc.huc;
> > > > > > +
> > > > > > +		resp.major_ver = huc->fw.major_ver_found;
> > > > > > +		resp.minor_ver = huc->fw.minor_ver_found;
> > > > > > +		resp.patch_ver = huc->fw.patch_ver_found;
> > > > > Have you confirmed that HuC will not have something like submission version like GuC have?
> > > > Nah... GuC is the only complicated fw in our set of fw...
> > HuC has no split interface. It is only ever accessed by the UMD from a batch
> > buffer. The KMD has no dealings with the HuC beyond providing the firmware
> > image to whatever entity does the loading (GuC or GSC according to
> > platform). So no need to multiple interface versions.
> 
> Many thanks John for the explanations here and below.
> 
> Jose: with this, back to the original submission, it seems returning
> just the firmware version for HuC is correct, right?

Yes, that is correct.

> 
> Francois
> 
> > 
> > > > 
> > > > > At least in GuC, when running in SRIOV mode the VFs will not have access to the actual GuC version, that is why it have submission version.
> > > > > 
> > > > > Not sure if providing a complete different firmware version from one kernel version to other would be considered a uAPI break...
> > > > hmmm... but now what I'm asking myself is if we shouldn't move the guc one to
> > > > have the current loaded firmware and create a special category for the
> > > > submission version:
> > > > 
> > > > XE_QUERY_UC_TYPE_GUC
> > > > XE_QUERY_UC_TYPE_GUC_SUBMISSION
> > > > XE_QUERY_UC_TYPE_HUC
> > > I don't think any UMD would fetch the actual GUC FW version and risk fail when running under SRIOV VF.
> > > If needed we can map a submission version to a actual version...
> > > 
> > > > But to be really really honest, there's something really fishy on this
> > > > submission version. Why the VF cannot read the running firmware and
> > > > get the submission version from there?
> > > Got this information from John, he can explain it better.
> > Because the VF does not need to know the master version number.
> > 
> > Especially when you get in to VF migration and such. The VF could start
> > executing with one back end GuC version but then be migrated to a system
> > with a completely different back end GuC version. As long as the submission
> > API is compatible then the VF doesn't care. However, the PF that is managing
> > the GuC very definitely needs to know how to manage that specific GuC
> > version. Even ignoring live migration, an end customer may have a specific
> > OS image that they have validated and tested and want to run on some cloud
> > server system. The cloud provider may need to update the GuC version to take
> > security fixes. But the customer's image should not have to change as a
> > result. The GuC update must be backwards compatible at the VF level even if
> > it is backwards breaking at the PF level.
> > 
> > In short, the GuC presents two completely separate APIs. One for management
> > that is only visible to the PF and one for clients/submission that is
> > visible to the VF (and directly to the UMDs if we ever support direct
> > submission, plus indirectly to the UMDs via bugs!). On native, the KMD sees
> > everything so technically only one version is required for native. But for
> > SRIOV, the two interfaces are totally separate. A VF KMD does not have
> > access to the management interfaces and does not care what master version
> > the GuC is. It only cares that the client interface matches what it knows
> > about. Likewise a UMD. Therefore, we need two completely separate interface
> > version numbers. And we need to be very careful that nothing uses the master
> > version when it should be using the submission version. Otherwise, stuff
> > will break when it starts to run in a VF.
> > 
> > Whether it is useful to return the master version via this query interface
> > is debatable. There should be no functional requirement for it. Any UMD code
> > should only care about the client interface/behaviour and so should only
> > need the submission interface version number. Potentially we might want to
> > report the master version to the end user via some control panel information
> > tool thing. But that should be the only purpose for it.
> > 
> > John.
> > 
> > 
> > > > > > +		resp.branch_ver = 0;
> > > > > > +		break;
> > > > > > +	}
> > > > > >   	default:
> > > > > >   		return -EINVAL;
> > > > > >   	}
> > > > > > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> > > > > > index 84091860c7d2..fe7e83a5bd3e 100644
> > > > > > --- a/include/uapi/drm/xe_drm.h
> > > > > > +++ b/include/uapi/drm/xe_drm.h
> > > > > > @@ -478,6 +478,7 @@ struct drm_xe_query_topology_mask {
> > > > > >   struct drm_xe_query_uc_fw_version {
> > > > > >   	/** @uc: The micro-controller type to query firmware version */
> > > > > >   #define XE_QUERY_UC_TYPE_GUC 0
> > > > > > +#define XE_QUERY_UC_TYPE_HUC 1
> > > > > >   	__u16 uc_type;
> > > > > >   	/** @pad: MBZ */
> > 


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

* Re: [Intel-xe] [PATCH v3 26/30] drm/xe/uapi: Add pad to drm_xe_engine_class_instance
  2023-10-05  2:35               ` Umesh Nerlige Ramappa
@ 2023-10-09 17:05                 ` Umesh Nerlige Ramappa
  2023-10-09 17:16                   ` Francois Dugast
  0 siblings, 1 reply; 60+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-10-09 17:05 UTC (permalink / raw)
  To: Francois Dugast; +Cc: intel-xe, Vivi,  Rodrigo

On Wed, Oct 04, 2023 at 07:35:06PM -0700, Umesh Nerlige Ramappa wrote:
>On Wed, Oct 04, 2023 at 12:55:19PM +0200, Francois Dugast wrote:
>>On Tue, Oct 03, 2023 at 11:15:00AM -0700, Umesh Nerlige Ramappa wrote:
>>>On Fri, Sep 29, 2023 at 09:45:35AM -0700, Souza, Jose wrote:
>>>> On Fri, 2023-09-29 at 09:00 -0700, Umesh Nerlige Ramappa wrote:
>>>> > On Fri, Sep 29, 2023 at 11:06:53AM +0200, Francois Dugast wrote:
>>>> > > Hi Umesh,
>>>> > >
>>>> > > On Thu, Sep 28, 2023 at 05:36:39PM -0700, Umesh Nerlige Ramappa wrote:
>>>> > > > On Tue, Sep 26, 2023 at 12:55:36PM +0000, Francois Dugast wrote:
>>>> > > > > Add pad to reserve space for future uses such as special configurations
>>>> > > > > for media.
>>>> > > > >
>>>> > > > > Signed-off-by: Francois Dugast <francois.dugast@intel.com>
>>>> > > >
>>>> > > > I saw a comment in v4 that you dropped the patches that are not reviewed, so
>>>> > > > this is:
>>>> > > >
>>>> > > > Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>>>> > > >
>>>> > > > Hoping this will be part of the final series that you merge since the
>>>> > > > ENGINE_CYCLES query is using this structure and relies on this padding.
>>>> > >
>>>> > > Actually using your original submission [1] this patch should not longer
>>>> > > be necessary, right? It includes:
>>>> > >
>>>> > >   __u16 rsvd;
>>>> > >
>>>> > > [1] https://lore.kernel.org/intel-xe/20230814223734.375449-5-umesh.nerlige.ramappa@intel.com/
>>>> >
>>>> > Hmmm, I failed to notice that earlier. My bad. v4 looks good, you can
>>>> > ignore this.
>>>>
>>>> It is named as rsvd but it should be a pad.
>>>>
>>>> We can't leave as reserved to be future used to return media engine capabilities because drm_xe_engine_class_instance is also used as input to other
>>>> uAPIs and that is useless information after initialization that UMDs should not need to carry around.
>>>>
>>>> Instead DRM_XE_DEVICE_QUERY_ENGINES should return something like
>>>>
>>>> struct drm_xe_engine_info {
>>>> 	struct drm_xe_engine_class_instance instance;
>>>> 	__u32 rsvd;/* future could be __u16 capabilities; __u16 rsvd; */
>>>> };
>>>>
>>>> This can be fixed in uAPI take 2.
>>>
>>>Hi Francois,
>>>
>>>As per Jose's inputs, I posted a new version of my series here -
>>>https://patchwork.freedesktop.org/patch/560614/?series=124565&rev=1.
>>>
>>>Can you please pick up patch 3/3 from here. Note that just adding the pad
>>>does not resolve the issue I was mentioning in my original series.  We also
>>>need to explicitly initialize the pad to 0 in this case. I have included
>>>that change as well in the above patch.
>>>
>>>Thanks,
>>>Umesh
>>
>>Hi Umesh,
>>
>>Thanks for the update. An earlier version was already included in take 1
>>of the uAPI changes [1],
>
>Not sure if the below link in [1] is what you wanted to share. It 
>points to the series I posted. I am guessing you were intending to 
>point to a take 1 series.

fixup here - https://patchwork.freedesktop.org/series/124690/

Thanks,
Umesh
>
>Thanks,
>Umesh
>
>>against which UMDs are currently aligning, so it
>>would be best to leave take 1 as it is and include your fix as a fixup in
>>take 2. Could you please send a fixup instead?
>>
>>[1] https://patchwork.freedesktop.org/patch/560614/?series=124565&rev=1
>>
>>Francois
>>
>>>>
>>>> >
>>>> > Thanks,
>>>> > Umesh
>>>> > >
>>>> > > Francois
>>>> > >
>>>> > > >
>>>> > > > Thanks,
>>>> > > > Umesh
>>>> > > > > ---
>>>> > > > > include/uapi/drm/xe_drm.h | 2 ++
>>>> > > > > 1 file changed, 2 insertions(+)
>>>> > > > >
>>>> > > > > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
>>>> > > > > index 79e47708d526..84091860c7d2 100644
>>>> > > > > --- a/include/uapi/drm/xe_drm.h
>>>> > > > > +++ b/include/uapi/drm/xe_drm.h
>>>> > > > > @@ -143,6 +143,8 @@ struct drm_xe_engine_class_instance {
>>>> > > > >
>>>> > > > > 	__u16 engine_instance;
>>>> > > > > 	__u16 gt_id;
>>>> > > > > +	/** @pad: MBZ */
>>>> > > > > +	__u32 pad;
>>>> > > > > };
>>>> > > > >
>>>> > > > > /**
>>>> > > > > --
>>>> > > > > 2.34.1
>>>> > > > >
>>>>

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

* Re: [Intel-xe] [PATCH v3 26/30] drm/xe/uapi: Add pad to drm_xe_engine_class_instance
  2023-10-09 17:05                 ` Umesh Nerlige Ramappa
@ 2023-10-09 17:16                   ` Francois Dugast
  0 siblings, 0 replies; 60+ messages in thread
From: Francois Dugast @ 2023-10-09 17:16 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa; +Cc: intel-xe, Vivi,  Rodrigo

On Mon, Oct 09, 2023 at 10:05:33AM -0700, Umesh Nerlige Ramappa wrote:
> On Wed, Oct 04, 2023 at 07:35:06PM -0700, Umesh Nerlige Ramappa wrote:
> > On Wed, Oct 04, 2023 at 12:55:19PM +0200, Francois Dugast wrote:
> > > On Tue, Oct 03, 2023 at 11:15:00AM -0700, Umesh Nerlige Ramappa wrote:
> > > > On Fri, Sep 29, 2023 at 09:45:35AM -0700, Souza, Jose wrote:
> > > > > On Fri, 2023-09-29 at 09:00 -0700, Umesh Nerlige Ramappa wrote:
> > > > > > On Fri, Sep 29, 2023 at 11:06:53AM +0200, Francois Dugast wrote:
> > > > > > > Hi Umesh,
> > > > > > >
> > > > > > > On Thu, Sep 28, 2023 at 05:36:39PM -0700, Umesh Nerlige Ramappa wrote:
> > > > > > > > On Tue, Sep 26, 2023 at 12:55:36PM +0000, Francois Dugast wrote:
> > > > > > > > > Add pad to reserve space for future uses such as special configurations
> > > > > > > > > for media.
> > > > > > > > >
> > > > > > > > > Signed-off-by: Francois Dugast <francois.dugast@intel.com>
> > > > > > > >
> > > > > > > > I saw a comment in v4 that you dropped the patches that are not reviewed, so
> > > > > > > > this is:
> > > > > > > >
> > > > > > > > Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> > > > > > > >
> > > > > > > > Hoping this will be part of the final series that you merge since the
> > > > > > > > ENGINE_CYCLES query is using this structure and relies on this padding.
> > > > > > >
> > > > > > > Actually using your original submission [1] this patch should not longer
> > > > > > > be necessary, right? It includes:
> > > > > > >
> > > > > > >   __u16 rsvd;
> > > > > > >
> > > > > > > [1] https://lore.kernel.org/intel-xe/20230814223734.375449-5-umesh.nerlige.ramappa@intel.com/
> > > > > >
> > > > > > Hmmm, I failed to notice that earlier. My bad. v4 looks good, you can
> > > > > > ignore this.
> > > > > 
> > > > > It is named as rsvd but it should be a pad.
> > > > > 
> > > > > We can't leave as reserved to be future used to return media engine capabilities because drm_xe_engine_class_instance is also used as input to other
> > > > > uAPIs and that is useless information after initialization that UMDs should not need to carry around.
> > > > > 
> > > > > Instead DRM_XE_DEVICE_QUERY_ENGINES should return something like
> > > > > 
> > > > > struct drm_xe_engine_info {
> > > > > 	struct drm_xe_engine_class_instance instance;
> > > > > 	__u32 rsvd;/* future could be __u16 capabilities; __u16 rsvd; */
> > > > > };
> > > > > 
> > > > > This can be fixed in uAPI take 2.
> > > > 
> > > > Hi Francois,
> > > > 
> > > > As per Jose's inputs, I posted a new version of my series here -
> > > > https://patchwork.freedesktop.org/patch/560614/?series=124565&rev=1.
> > > > 
> > > > Can you please pick up patch 3/3 from here. Note that just adding the pad
> > > > does not resolve the issue I was mentioning in my original series.  We also
> > > > need to explicitly initialize the pad to 0 in this case. I have included
> > > > that change as well in the above patch.
> > > > 
> > > > Thanks,
> > > > Umesh
> > > 
> > > Hi Umesh,
> > > 
> > > Thanks for the update. An earlier version was already included in take 1
> > > of the uAPI changes [1],
> > 
> > Not sure if the below link in [1] is what you wanted to share. It points
> > to the series I posted. I am guessing you were intending to point to a
> > take 1 series.
> 
> fixup here - https://patchwork.freedesktop.org/series/124690/
> 
> Thanks,
> Umesh

Thanks, I will be included in uAPI take 2.

Francois

> > 
> > Thanks,
> > Umesh
> > 
> > > against which UMDs are currently aligning, so it
> > > would be best to leave take 1 as it is and include your fix as a fixup in
> > > take 2. Could you please send a fixup instead?
> > > 
> > > [1] https://patchwork.freedesktop.org/patch/560614/?series=124565&rev=1
> > > 
> > > Francois
> > > 
> > > > > 
> > > > > >
> > > > > > Thanks,
> > > > > > Umesh
> > > > > > >
> > > > > > > Francois
> > > > > > >
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > > Umesh
> > > > > > > > > ---
> > > > > > > > > include/uapi/drm/xe_drm.h | 2 ++
> > > > > > > > > 1 file changed, 2 insertions(+)
> > > > > > > > >
> > > > > > > > > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> > > > > > > > > index 79e47708d526..84091860c7d2 100644
> > > > > > > > > --- a/include/uapi/drm/xe_drm.h
> > > > > > > > > +++ b/include/uapi/drm/xe_drm.h
> > > > > > > > > @@ -143,6 +143,8 @@ struct drm_xe_engine_class_instance {
> > > > > > > > >
> > > > > > > > > 	__u16 engine_instance;
> > > > > > > > > 	__u16 gt_id;
> > > > > > > > > +	/** @pad: MBZ */
> > > > > > > > > +	__u32 pad;
> > > > > > > > > };
> > > > > > > > >
> > > > > > > > > /**
> > > > > > > > > --
> > > > > > > > > 2.34.1
> > > > > > > > >
> > > > > 

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

* Re: [Intel-xe] [PATCH v3 27/30] drm/xe: Extend uAPI to query HuC micro-controler firmware version
  2023-09-26 12:55 ` [Intel-xe] [PATCH v3 27/30] drm/xe: Extend uAPI to query HuC micro-controler firmware version Francois Dugast
  2023-09-26 16:46   ` Souza, Jose
@ 2023-10-10 19:10   ` Lucas De Marchi
  1 sibling, 0 replies; 60+ messages in thread
From: Lucas De Marchi @ 2023-10-10 19:10 UTC (permalink / raw)
  To: Francois Dugast; +Cc: intel-xe

On Tue, Sep 26, 2023 at 12:55:37PM +0000, Francois Dugast wrote:
>The infrastructure to query GuC firmware version is already in place. It
>is extended with a new micro-controller type to query the HuC firmware
>version. It can be used from user space to know if HuC is running.
>
>Signed-off-by: Francois Dugast <francois.dugast@intel.com>
>---
> drivers/gpu/drm/xe/xe_query.c | 9 +++++++++
> include/uapi/drm/xe_drm.h     | 1 +
> 2 files changed, 10 insertions(+)
>
>diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
>index 7a0ffd9a654a..c250ca534bb9 100644
>--- a/drivers/gpu/drm/xe/xe_query.c
>+++ b/drivers/gpu/drm/xe/xe_query.c
>@@ -530,6 +530,15 @@ query_uc_fw_version(struct xe_device *xe, struct drm_xe_device_query *query)
> 		resp.branch_ver = 0;
> 		break;
> 	}
>+	case XE_QUERY_UC_TYPE_HUC: {
>+		struct xe_huc *huc = &xe->tiles[0].primary_gt->uc.huc;

This doesn't look right... on MTL/LNL we are expected to have media
engines only on the media_gt and huc is only loaded there. I think this
could be either of:
	
	a) use media_gt if media_gt is non-NULL
	b) loop through the tiles and use the first gt that has
	   a media engine

Another thing is... does this capture the scenario in which HuC is
selected / loaded , but it's not yet running? Looking at
xe_uc_fw_init() it doesn't seem so because after parsing the header and
printing the version, there are still failure scenarios and we simply
leave the version set.

Maybe we should have a status or a simplified form of it?
 From drivers/gpu/drm/xe/xe_uc_fw_types.h:

enum xe_uc_fw_status {
         XE_UC_FIRMWARE_NOT_SUPPORTED = -1, /* no uc HW */
         XE_UC_FIRMWARE_UNINITIALIZED = 0, /* used to catch checks done too early
         XE_UC_FIRMWARE_DISABLED, /* disabled */
         XE_UC_FIRMWARE_SELECTED, /* selected the blob we want to load */
         XE_UC_FIRMWARE_MISSING, /* blob not found on the system */
         XE_UC_FIRMWARE_ERROR, /* invalid format or version */
         XE_UC_FIRMWARE_AVAILABLE, /* blob found and copied in mem */
         XE_UC_FIRMWARE_INIT_FAIL, /* failed to prepare fw objects for load */
         XE_UC_FIRMWARE_LOADABLE, /* all fw-required objects are ready */
         XE_UC_FIRMWARE_LOAD_FAIL, /* failed to xfer or init/auth the fw */
         XE_UC_FIRMWARE_TRANSFERRED, /* dma xfer done */
         XE_UC_FIRMWARE_RUNNING /* init/auth done */
};



Lucas De Marchi

>+
>+		resp.major_ver = huc->fw.major_ver_found;
>+		resp.minor_ver = huc->fw.minor_ver_found;
>+		resp.patch_ver = huc->fw.patch_ver_found;
>+		resp.branch_ver = 0;
>+		break;
>+	}
> 	default:
> 		return -EINVAL;
> 	}
>diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
>index 84091860c7d2..fe7e83a5bd3e 100644
>--- a/include/uapi/drm/xe_drm.h
>+++ b/include/uapi/drm/xe_drm.h
>@@ -478,6 +478,7 @@ struct drm_xe_query_topology_mask {
> struct drm_xe_query_uc_fw_version {
> 	/** @uc: The micro-controller type to query firmware version */
> #define XE_QUERY_UC_TYPE_GUC 0
>+#define XE_QUERY_UC_TYPE_HUC 1
> 	__u16 uc_type;
>
> 	/** @pad: MBZ */
>-- 
>2.34.1
>

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

end of thread, other threads:[~2023-10-10 19:10 UTC | newest]

Thread overview: 60+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-26 12:55 [Intel-xe] [PATCH v3 00/30] uAPI Alignment - take 1 v3 Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 01/30] drm/xe: Fix array bounds check for queries Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 02/30] drm/xe: Set the correct type for xe_to_user_engine_class Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 03/30] drm/xe: Correlate engine and cpu timestamps with better accuracy Francois Dugast
2023-09-26 16:42   ` Souza, Jose
2023-09-26 18:43   ` Umesh Nerlige Ramappa
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 04/30] drm/xe/uapi: Separate VM_BIND's operation and flag Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 05/30] drm/xe/vm: Remove VM_BIND_OP macro Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 06/30] drm/xe/uapi: Remove MMIO ioctl Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 07/30] drm/xe: Fix xe_exec_queue_is_idle for parallel exec queues Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 08/30] drm/xe: Deprecate XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE implementation Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 09/30] drm/xe: Rename exec_queue_kill_compute to xe_vm_remove_compute_exec_queue Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 10/30] drm/xe: Remove XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE from uAPI Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 11/30] drm/xe/uapi: Use common drm_xe_ext_set_property extension Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 12/30] drm/xe: Kill XE_VM_PROPERTY_BIND_OP_ERROR_CAPTURE_ADDRESS extension Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 13/30] drm/xe/uapi: Kill DRM_XE_UFENCE_WAIT_VM_ERROR Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 14/30] drm/xe: Remove async worker and rework sync binds Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 15/30] drm/xe: Fix VM bind out-sync signaling ordering Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 16/30] drm/xe/uapi: Document drm_xe_query_gt Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 17/30] drm/xe/uapi: Replace useless 'instance' per unique gt_id Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 18/30] drm/xe/uapi: Remove unused field of drm_xe_query_gt Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 19/30] drm/xe/uapi: Rename gts to gt_list Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 20/30] drm/xe/uapi: Fix naming of XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 21/30] drm/xe/uapi: Add documentation for query Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 22/30] drm/xe/uapi: Crystal Reference Clock updates Francois Dugast
2023-09-26 16:40   ` Souza, Jose
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 23/30] drm/xe: Extend drm_xe_vm_bind_op Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 24/30] drm/xe: Add uAPI to query micro-controler firmware version Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 25/30] drm/xe/uapi: Document DRM_XE_DEVICE_QUERY_HWCONFIG Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 26/30] drm/xe/uapi: Add pad to drm_xe_engine_class_instance Francois Dugast
2023-09-29  0:36   ` Umesh Nerlige Ramappa
2023-09-29  9:06     ` Francois Dugast
2023-09-29 16:00       ` Umesh Nerlige Ramappa
2023-09-29 16:45         ` Souza, Jose
2023-10-03 18:15           ` Umesh Nerlige Ramappa
2023-10-04 10:55             ` Francois Dugast
2023-10-05  2:35               ` Umesh Nerlige Ramappa
2023-10-09 17:05                 ` Umesh Nerlige Ramappa
2023-10-09 17:16                   ` Francois Dugast
2023-10-06  2:07               ` Umesh Nerlige Ramappa
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 27/30] drm/xe: Extend uAPI to query HuC micro-controler firmware version Francois Dugast
2023-09-26 16:46   ` Souza, Jose
2023-09-27 17:04     ` Rodrigo Vivi
2023-09-27 17:22       ` Souza, Jose
2023-10-04  0:48         ` John Harrison
2023-10-09 13:08           ` Francois Dugast
2023-10-09 13:35             ` Souza, Jose
2023-10-10 19:10   ` Lucas De Marchi
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 28/30] drm/xe: Remove useless query config num_params Francois Dugast
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 29/30] drm/xe/uapi: Add missing DRM_ prefix in uAPI constants Francois Dugast
2023-09-26 16:24   ` Souza, Jose
2023-09-26 12:55 ` [Intel-xe] [PATCH v3 30/30] drm/xe/uapi: Add _FLAG to uAPI constants usable for flags Francois Dugast
2023-09-26 13:12 ` [Intel-xe] ✓ CI.Patch_applied: success for uAPI Alignment - take 1 v3 Patchwork
2023-09-26 13:13 ` [Intel-xe] ✗ CI.checkpatch: warning " Patchwork
2023-09-26 13:14 ` [Intel-xe] ✓ CI.KUnit: success " Patchwork
2023-09-26 13:21 ` [Intel-xe] ✓ CI.Build: " Patchwork
2023-09-26 13:22 ` [Intel-xe] ✗ CI.Hooks: failure " Patchwork
2023-09-26 13:23 ` [Intel-xe] ✓ CI.checksparse: success " Patchwork
2023-09-26 13:49 ` [Intel-xe] ✗ CI.BAT: failure " Patchwork
2023-10-04  0:31 ` [Intel-xe] [PATCH v3 00/30] " John Harrison

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.