Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-xe] [PATCH v6 0/5] PAT and cache coherency support
@ 2023-09-28 10:05 Matthew Auld
  2023-09-28 10:05 ` [Intel-xe] [PATCH v6 1/5] drm/xe/pat: trim the xelp PAT table Matthew Auld
                   ` (12 more replies)
  0 siblings, 13 replies; 27+ messages in thread
From: Matthew Auld @ 2023-09-28 10:05 UTC (permalink / raw)
  To: intel-xe

Branch available here:
https://gitlab.freedesktop.org/mwa/kernel/-/tree/xe-pat-index?ref_type=heads

Goal here is to allow userspace to directly control the pat_index when mapping
memory via the ppGTT, in addtion to the CPU caching mode. This is very much
needed on newer igpu platforms which allow incoherent GT access, where the
choice over the cache level and expected coherency is best left to userspace
depending on their usecase.  In the future there may also be other stuff encoded
in the pat_index, so giving userspace direct control will also be needed there.

To support this we added new gem_create uAPI for selecting the CPU cache
mode to use for system memory, including the expected GPU coherency mode. There
are various restrictions here for the selected coherency mode and compatible CPU
cache modes.  With that in place the actual pat_index can now be provided as
part of vm_bind. The only restriction is that the coherency mode of the
pat_index must be at least as coherent as the gem_create coherency mode. There
are also some special cases like with userptr and dma-buf.

v2:
  - Loads of improvements/tweaks. Main changes are to now allow
    gem_create.coh_mode <= coh_mode(pat_index), rather than it needing to match
    exactly. This simplifies the dma-buf policy from userspace pov. Also we now
    only consider COH_NONE and COH_AT_LEAST_1WAY.
v3:
  - Rebase. Split the pte_encode() refactoring, plus various smaller tweaks and
    fixes.
v4:
  - Rebase on Lucas' new series.
  - Drop UC cache mode.
  - s/smem_cpu_caching/cpu_caching/. Idea is to make VRAM WC explicit in the
    uapi, plus make it more future proof.
v5:
  - Rebase, plus some small tweaks and fixes.
v6:
  - CI hooks fixes + checkpatch.

-- 
2.41.0


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

* [Intel-xe] [PATCH v6 1/5] drm/xe/pat: trim the xelp PAT table
  2023-09-28 10:05 [Intel-xe] [PATCH v6 0/5] PAT and cache coherency support Matthew Auld
@ 2023-09-28 10:05 ` Matthew Auld
  2023-09-28 13:04   ` Lucas De Marchi
  2023-09-28 10:05 ` [Intel-xe] [PATCH v6 2/5] drm/xe: directly use pat_index for pte_encode Matthew Auld
                   ` (11 subsequent siblings)
  12 siblings, 1 reply; 27+ messages in thread
From: Matthew Auld @ 2023-09-28 10:05 UTC (permalink / raw)
  To: intel-xe; +Cc: Lucas De Marchi, Matt Roper

We don't seem to use the 4-7 pat indexes, even though they are defined
by the HW. In the next patch userspace will be able to directly set the
pat_index as part of vm_bind and we don't want to allow setting 4-7.
Simplest is to just ignore them here.

Suggested-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Pallavi Mishra <pallavi.mishra@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
---
 drivers/gpu/drm/xe/xe_pat.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_pat.c b/drivers/gpu/drm/xe/xe_pat.c
index 869aee64641f..36b79d675e54 100644
--- a/drivers/gpu/drm/xe/xe_pat.c
+++ b/drivers/gpu/drm/xe/xe_pat.c
@@ -42,10 +42,6 @@ static const u32 xelp_pat_table[] = {
 	[1] = XELP_PAT_WC,
 	[2] = XELP_PAT_WT,
 	[3] = XELP_PAT_UC,
-	[4] = XELP_PAT_WB,
-	[5] = XELP_PAT_WB,
-	[6] = XELP_PAT_WB,
-	[7] = XELP_PAT_WB,
 };
 
 static const u32 xehpc_pat_table[] = {
-- 
2.41.0


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

* [Intel-xe] [PATCH v6 2/5] drm/xe: directly use pat_index for pte_encode
  2023-09-28 10:05 [Intel-xe] [PATCH v6 0/5] PAT and cache coherency support Matthew Auld
  2023-09-28 10:05 ` [Intel-xe] [PATCH v6 1/5] drm/xe/pat: trim the xelp PAT table Matthew Auld
@ 2023-09-28 10:05 ` Matthew Auld
  2023-09-28 13:15   ` Lucas De Marchi
                     ` (2 more replies)
  2023-09-28 10:05 ` [Intel-xe] [PATCH v6 3/5] drm/xe/uapi: Add support for cache and coherency mode Matthew Auld
                   ` (10 subsequent siblings)
  12 siblings, 3 replies; 27+ messages in thread
From: Matthew Auld @ 2023-09-28 10:05 UTC (permalink / raw)
  To: intel-xe; +Cc: Matt Roper, Lucas De Marchi

In the next patch userspace will be able to directly set the pat_index
as part of vm_bind. To support this we need to get away from using
xe_cache_level in the low level routines and rather just use the
pat_index directly.

v2: Rebase
v3: Some missed conversions, also prefer tile_to_xe() (Niranjana)

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Cc: Pallavi Mishra <pallavi.mishra@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
---
 drivers/gpu/drm/xe/display/xe_fb_pin.c | 10 ++++++----
 drivers/gpu/drm/xe/tests/xe_migrate.c  |  2 +-
 drivers/gpu/drm/xe/xe_ggtt.c           | 16 +++++++++-------
 drivers/gpu/drm/xe/xe_ggtt_types.h     |  3 +--
 drivers/gpu/drm/xe/xe_migrate.c        | 19 +++++++++++--------
 drivers/gpu/drm/xe/xe_pt.c             | 11 ++++++-----
 drivers/gpu/drm/xe/xe_pt_types.h       |  8 ++++----
 drivers/gpu/drm/xe/xe_vm.c             | 24 +++++++++++-------------
 8 files changed, 49 insertions(+), 44 deletions(-)

diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
index b7a04fba3585..2c36e5032433 100644
--- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
@@ -30,7 +30,7 @@ write_dpt_rotated(struct xe_bo *bo, struct iosys_map *map, u32 *dpt_ofs, u32 bo_
 
 		for (row = 0; row < height; row++) {
 			u64 pte = ggtt->pt_ops->pte_encode_bo(bo, src_idx * XE_PAGE_SIZE,
-							      XE_CACHE_WB);
+							      xe->pat.idx[XE_CACHE_WB]);
 
 			iosys_map_wr(map, *dpt_ofs, u64, pte);
 			*dpt_ofs += 8;
@@ -84,7 +84,7 @@ static int __xe_pin_fb_vma_dpt(struct intel_framebuffer *fb,
 
 		for (x = 0; x < size / XE_PAGE_SIZE; x++) {
 			u64 pte = ggtt->pt_ops->pte_encode_bo(bo, x * XE_PAGE_SIZE,
-							      XE_CACHE_WB);
+							      xe->pat.idx[XE_CACHE_WB]);
 
 			iosys_map_wr(&dpt->vmap, x * 8, u64, pte);
 		}
@@ -110,6 +110,7 @@ static void
 write_ggtt_rotated(struct xe_bo *bo, struct xe_ggtt *ggtt, u32 *ggtt_ofs, u32 bo_ofs,
 		   u32 width, u32 height, u32 src_stride, u32 dst_stride)
 {
+	struct xe_device *xe = xe_bo_device(bo);
 	u32 column, row;
 
 	for (column = 0; column < width; column++) {
@@ -117,7 +118,7 @@ write_ggtt_rotated(struct xe_bo *bo, struct xe_ggtt *ggtt, u32 *ggtt_ofs, u32 bo
 
 		for (row = 0; row < height; row++) {
 			u64 pte = ggtt->pt_ops->pte_encode_bo(bo, src_idx * XE_PAGE_SIZE,
-							      XE_CACHE_WB);
+							      xe->pat.idx[XE_CACHE_WB]);
 
 			xe_ggtt_set_pte(ggtt, *ggtt_ofs, pte);
 			*ggtt_ofs += XE_PAGE_SIZE;
@@ -162,7 +163,8 @@ static int __xe_pin_fb_vma_ggtt(struct intel_framebuffer *fb,
 			goto out_unlock;
 
 		for (x = 0; x < size; x += XE_PAGE_SIZE) {
-			u64 pte = ggtt->pt_ops->pte_encode_bo(bo, x, XE_CACHE_WB);
+			u64 pte = ggtt->pt_ops->pte_encode_bo(bo, x,
+							      xe->pat.idx[XE_CACHE_WB]);
 
 			xe_ggtt_set_pte(ggtt, vma->node.start + x, pte);
 		}
diff --git a/drivers/gpu/drm/xe/tests/xe_migrate.c b/drivers/gpu/drm/xe/tests/xe_migrate.c
index 6906ff9d9c31..4c8526af06ce 100644
--- a/drivers/gpu/drm/xe/tests/xe_migrate.c
+++ b/drivers/gpu/drm/xe/tests/xe_migrate.c
@@ -301,7 +301,7 @@ static void xe_migrate_sanity_test(struct xe_migrate *m, struct kunit *test)
 	/* First part of the test, are we updating our pagetable bo with a new entry? */
 	xe_map_wr(xe, &bo->vmap, XE_PAGE_SIZE * (NUM_KERNEL_PDE - 1), u64,
 		  0xdeaddeadbeefbeef);
-	expected = m->q->vm->pt_ops->pte_encode_bo(pt, 0, XE_CACHE_WB, 0);
+	expected = m->q->vm->pt_ops->pte_encode_bo(pt, 0, xe->pat.idx[XE_CACHE_WB], 0);
 	if (m->q->vm->flags & XE_VM_FLAG_64K)
 		expected |= XE_PTE_PS64;
 	if (xe_bo_is_vram(pt))
diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
index 99b54794917e..354871a6b371 100644
--- a/drivers/gpu/drm/xe/xe_ggtt.c
+++ b/drivers/gpu/drm/xe/xe_ggtt.c
@@ -27,7 +27,7 @@
 #define GUC_GGTT_TOP	0xFEE00000
 
 static u64 xelp_ggtt_pte_encode_bo(struct xe_bo *bo, u64 bo_offset,
-				   enum xe_cache_level cache)
+				   u16 pat_index)
 {
 	u64 pte;
 
@@ -41,13 +41,12 @@ static u64 xelp_ggtt_pte_encode_bo(struct xe_bo *bo, u64 bo_offset,
 }
 
 static u64 xelpg_ggtt_pte_encode_bo(struct xe_bo *bo, u64 bo_offset,
-				    enum xe_cache_level cache)
+				    u16 pat_index)
 {
 	struct xe_device *xe = xe_bo_device(bo);
-	u32 pat_index = xe->pat.idx[cache];
 	u64 pte;
 
-	pte = xelp_ggtt_pte_encode_bo(bo, bo_offset, cache);
+	pte = xelp_ggtt_pte_encode_bo(bo, bo_offset, pat_index);
 
 	xe_assert(xe, pat_index <= 3);
 
@@ -79,6 +78,7 @@ void xe_ggtt_set_pte(struct xe_ggtt *ggtt, u64 addr, u64 pte)
 
 static void xe_ggtt_clear(struct xe_ggtt *ggtt, u64 start, u64 size)
 {
+	u16 pat_index = tile_to_xe(ggtt->tile)->pat.idx[XE_CACHE_WB];
 	u64 end = start + size - 1;
 	u64 scratch_pte;
 
@@ -86,7 +86,7 @@ static void xe_ggtt_clear(struct xe_ggtt *ggtt, u64 start, u64 size)
 
 	if (ggtt->scratch)
 		scratch_pte = ggtt->pt_ops->pte_encode_bo(ggtt->scratch, 0,
-							  XE_CACHE_WB);
+							  pat_index);
 	else
 		scratch_pte = 0;
 
@@ -285,9 +285,10 @@ void xe_ggtt_invalidate(struct xe_ggtt *ggtt)
 
 void xe_ggtt_printk(struct xe_ggtt *ggtt, const char *prefix)
 {
+	u16 pat_index = tile_to_xe(ggtt->tile)->pat.idx[XE_CACHE_WB];
 	u64 addr, scratch_pte;
 
-	scratch_pte = ggtt->pt_ops->pte_encode_bo(ggtt->scratch, 0, XE_CACHE_WB);
+	scratch_pte = ggtt->pt_ops->pte_encode_bo(ggtt->scratch, 0, pat_index);
 
 	printk("%sGlobal GTT:", prefix);
 	for (addr = 0; addr < ggtt->size; addr += XE_PAGE_SIZE) {
@@ -324,11 +325,12 @@ int xe_ggtt_insert_special_node(struct xe_ggtt *ggtt, struct drm_mm_node *node,
 
 void xe_ggtt_map_bo(struct xe_ggtt *ggtt, struct xe_bo *bo)
 {
+	u16 pat_index = tile_to_xe(ggtt->tile)->pat.idx[XE_CACHE_WB];
 	u64 start = bo->ggtt_node.start;
 	u64 offset, pte;
 
 	for (offset = 0; offset < bo->size; offset += XE_PAGE_SIZE) {
-		pte = ggtt->pt_ops->pte_encode_bo(bo, offset, XE_CACHE_WB);
+		pte = ggtt->pt_ops->pte_encode_bo(bo, offset, pat_index);
 		xe_ggtt_set_pte(ggtt, start + offset, pte);
 	}
 
diff --git a/drivers/gpu/drm/xe/xe_ggtt_types.h b/drivers/gpu/drm/xe/xe_ggtt_types.h
index 486016ea5b67..d8c584d9a8c3 100644
--- a/drivers/gpu/drm/xe/xe_ggtt_types.h
+++ b/drivers/gpu/drm/xe/xe_ggtt_types.h
@@ -14,8 +14,7 @@ struct xe_bo;
 struct xe_gt;
 
 struct xe_ggtt_pt_ops {
-	u64 (*pte_encode_bo)(struct xe_bo *bo, u64 bo_offset,
-			     enum xe_cache_level cache);
+	u64 (*pte_encode_bo)(struct xe_bo *bo, u64 bo_offset, u16 pat_index);
 };
 
 struct xe_ggtt {
diff --git a/drivers/gpu/drm/xe/xe_migrate.c b/drivers/gpu/drm/xe/xe_migrate.c
index cd2e00008aab..b8b81a9ce2ca 100644
--- a/drivers/gpu/drm/xe/xe_migrate.c
+++ b/drivers/gpu/drm/xe/xe_migrate.c
@@ -158,6 +158,7 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile, struct xe_migrate *m,
 				 struct xe_vm *vm)
 {
 	struct xe_device *xe = tile_to_xe(tile);
+	u16 pat_index = xe->pat.idx[XE_CACHE_WB];
 	u8 id = tile->id;
 	u32 num_entries = NUM_PT_SLOTS, num_level = vm->pt_root[id]->level;
 	u32 map_ofs, level, i;
@@ -189,7 +190,7 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile, struct xe_migrate *m,
 		return ret;
 	}
 
-	entry = vm->pt_ops->pde_encode_bo(bo, bo->size - XE_PAGE_SIZE, XE_CACHE_WB);
+	entry = vm->pt_ops->pde_encode_bo(bo, bo->size - XE_PAGE_SIZE, pat_index);
 	xe_pt_write(xe, &vm->pt_root[id]->bo->vmap, 0, entry);
 
 	map_ofs = (num_entries - num_level) * XE_PAGE_SIZE;
@@ -197,7 +198,7 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile, struct xe_migrate *m,
 	/* Map the entire BO in our level 0 pt */
 	for (i = 0, level = 0; i < num_entries; level++) {
 		entry = vm->pt_ops->pte_encode_bo(bo, i * XE_PAGE_SIZE,
-						  XE_CACHE_WB, 0);
+						  pat_index, 0);
 
 		xe_map_wr(xe, &bo->vmap, map_ofs + level * 8, u64, entry);
 
@@ -216,7 +217,7 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile, struct xe_migrate *m,
 		     i += vm->flags & XE_VM_FLAG_64K ? XE_64K_PAGE_SIZE :
 		     XE_PAGE_SIZE) {
 			entry = vm->pt_ops->pte_encode_bo(batch, i,
-							  XE_CACHE_WB, 0);
+							  pat_index, 0);
 
 			xe_map_wr(xe, &bo->vmap, map_ofs + level * 8, u64,
 				  entry);
@@ -241,7 +242,7 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile, struct xe_migrate *m,
 			flags = XE_PDE_64K;
 
 		entry = vm->pt_ops->pde_encode_bo(bo, map_ofs + (level - 1) *
-						  XE_PAGE_SIZE, XE_CACHE_WB);
+						  XE_PAGE_SIZE, pat_index);
 		xe_map_wr(xe, &bo->vmap, map_ofs + XE_PAGE_SIZE * level, u64,
 			  entry | flags);
 	}
@@ -249,7 +250,7 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile, struct xe_migrate *m,
 	/* Write PDE's that point to our BO. */
 	for (i = 0; i < num_entries - num_level; i++) {
 		entry = vm->pt_ops->pde_encode_bo(bo, i * XE_PAGE_SIZE,
-						  XE_CACHE_WB);
+						  pat_index);
 
 		xe_map_wr(xe, &bo->vmap, map_ofs + XE_PAGE_SIZE +
 			  (i + 1) * 8, u64, entry);
@@ -261,7 +262,7 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile, struct xe_migrate *m,
 
 		level = 2;
 		ofs = map_ofs + XE_PAGE_SIZE * level + 256 * 8;
-		flags = vm->pt_ops->pte_encode_addr(xe, 0, XE_CACHE_WB, level,
+		flags = vm->pt_ops->pte_encode_addr(xe, 0, pat_index, level,
 						    true, 0);
 
 		/*
@@ -457,6 +458,7 @@ static void emit_pte(struct xe_migrate *m,
 		     struct xe_res_cursor *cur,
 		     u32 size, struct xe_bo *bo)
 {
+	u16 pat_index = tile_to_xe(m->tile)->pat.idx[XE_CACHE_WB];
 	u32 ptes;
 	u64 ofs = at_pt * XE_PAGE_SIZE;
 	u64 cur_ofs;
@@ -500,7 +502,7 @@ static void emit_pte(struct xe_migrate *m,
 			}
 
 			addr = m->q->vm->pt_ops->pte_encode_addr(m->tile->xe,
-								 addr, XE_CACHE_WB,
+								 addr, pat_index,
 								 0, devmem, flags);
 			bb->cs[bb->len++] = lower_32_bits(addr);
 			bb->cs[bb->len++] = upper_32_bits(addr);
@@ -1198,6 +1200,7 @@ xe_migrate_update_pgtables(struct xe_migrate *m,
 	bool first_munmap_rebind = vma &&
 		vma->gpuva.flags & XE_VMA_FIRST_REBIND;
 	struct xe_exec_queue *q_override = !q ? m->q : q;
+	u16 pat_index = xe->pat.idx[XE_CACHE_WB];
 
 	/* Use the CPU if no in syncs and engine is idle */
 	if (no_in_syncs(syncs, num_syncs) && xe_exec_queue_is_idle(q_override)) {
@@ -1269,7 +1272,7 @@ xe_migrate_update_pgtables(struct xe_migrate *m,
 
 			xe_tile_assert(tile, pt_bo->size == SZ_4K);
 
-			addr = vm->pt_ops->pte_encode_bo(pt_bo, 0, XE_CACHE_WB, 0);
+			addr = vm->pt_ops->pte_encode_bo(pt_bo, 0, pat_index, 0);
 			bb->cs[bb->len++] = lower_32_bits(addr);
 			bb->cs[bb->len++] = upper_32_bits(addr);
 		}
diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
index 4d4c6a4c305e..92b512641b4a 100644
--- a/drivers/gpu/drm/xe/xe_pt.c
+++ b/drivers/gpu/drm/xe/xe_pt.c
@@ -50,6 +50,7 @@ static struct xe_pt *xe_pt_entry(struct xe_pt_dir *pt_dir, unsigned int index)
 static u64 __xe_pt_empty_pte(struct xe_tile *tile, struct xe_vm *vm,
 			     unsigned int level)
 {
+	u16 pat_index = tile_to_xe(tile)->pat.idx[XE_CACHE_WB];
 	u8 id = tile->id;
 
 	if (!vm->scratch_bo[id])
@@ -57,9 +58,9 @@ static u64 __xe_pt_empty_pte(struct xe_tile *tile, struct xe_vm *vm,
 
 	if (level > 0)
 		return vm->pt_ops->pde_encode_bo(vm->scratch_pt[id][level - 1]->bo,
-						 0, XE_CACHE_WB);
+						 0, pat_index);
 
-	return vm->pt_ops->pte_encode_bo(vm->scratch_bo[id], 0, XE_CACHE_WB, 0);
+	return vm->pt_ops->pte_encode_bo(vm->scratch_bo[id], 0, pat_index, 0);
 }
 
 /**
@@ -510,6 +511,7 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
 {
 	struct xe_pt_stage_bind_walk *xe_walk =
 		container_of(walk, typeof(*xe_walk), base);
+	u16 pat_index = tile_to_xe(xe_walk->tile)->pat.idx[xe_walk->cache];
 	struct xe_pt *xe_parent = container_of(parent, typeof(*xe_parent), base);
 	struct xe_vm *vm = xe_walk->vm;
 	struct xe_pt *xe_child;
@@ -526,7 +528,7 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
 
 		pte = vm->pt_ops->pte_encode_vma(is_null ? 0 :
 						 xe_res_dma(curs) + xe_walk->dma_offset,
-						 xe_walk->vma, xe_walk->cache, level);
+						 xe_walk->vma, pat_index, level);
 		pte |= xe_walk->default_pte;
 
 		/*
@@ -591,8 +593,7 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
 			xe_child->is_compact = true;
 		}
 
-		pte = vm->pt_ops->pde_encode_bo(xe_child->bo, 0,
-						xe_walk->cache) | flags;
+		pte = vm->pt_ops->pde_encode_bo(xe_child->bo, 0, pat_index) | flags;
 		ret = xe_pt_insert_entry(xe_walk, xe_parent, offset, xe_child,
 					 pte);
 	}
diff --git a/drivers/gpu/drm/xe/xe_pt_types.h b/drivers/gpu/drm/xe/xe_pt_types.h
index bd6645295fe6..355fa8f014e9 100644
--- a/drivers/gpu/drm/xe/xe_pt_types.h
+++ b/drivers/gpu/drm/xe/xe_pt_types.h
@@ -38,14 +38,14 @@ struct xe_pt {
 
 struct xe_pt_ops {
 	u64 (*pte_encode_bo)(struct xe_bo *bo, u64 bo_offset,
-			     enum xe_cache_level cache, u32 pt_level);
+			     u16 pat_index, u32 pt_level);
 	u64 (*pte_encode_vma)(u64 pte, struct xe_vma *vma,
-			      enum xe_cache_level cache, u32 pt_level);
+			      u16 pat_index, u32 pt_level);
 	u64 (*pte_encode_addr)(struct xe_device *xe, u64 addr,
-			       enum xe_cache_level cache,
+			       u16 pat_index,
 			       u32 pt_level, bool devmem, u64 flags);
 	u64 (*pde_encode_bo)(struct xe_bo *bo, u64 bo_offset,
-			     const enum xe_cache_level cache);
+			     const u16 pat_index);
 };
 
 struct xe_pt_entry {
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index beffbb1039d3..4804a0cd8a36 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -1191,9 +1191,8 @@ static struct drm_gpuva_fn_ops gpuva_ops = {
 	.op_alloc = xe_vm_op_alloc,
 };
 
-static u64 pde_encode_cache(struct xe_device *xe, enum xe_cache_level cache)
+static u64 pde_encode_pat_index(struct xe_device *xe, u16 pat_index)
 {
-	u32 pat_index = xe->pat.idx[cache];
 	u64 pte = 0;
 
 	if (pat_index & BIT(0))
@@ -1205,9 +1204,8 @@ static u64 pde_encode_cache(struct xe_device *xe, enum xe_cache_level cache)
 	return pte;
 }
 
-static u64 pte_encode_cache(struct xe_device *xe, enum xe_cache_level cache)
+static u64 pte_encode_pat_index(struct xe_device *xe, u16 pat_index)
 {
-	u32 pat_index = xe->pat.idx[cache];
 	u64 pte = 0;
 
 	if (pat_index & BIT(0))
@@ -1238,27 +1236,27 @@ static u64 pte_encode_ps(u32 pt_level)
 }
 
 static u64 xelp_pde_encode_bo(struct xe_bo *bo, u64 bo_offset,
-			      const enum xe_cache_level cache)
+			      const u16 pat_index)
 {
 	struct xe_device *xe = xe_bo_device(bo);
 	u64 pde;
 
 	pde = xe_bo_addr(bo, bo_offset, XE_PAGE_SIZE);
 	pde |= XE_PAGE_PRESENT | XE_PAGE_RW;
-	pde |= pde_encode_cache(xe, cache);
+	pde |= pde_encode_pat_index(xe, pat_index);
 
 	return pde;
 }
 
 static u64 xelp_pte_encode_bo(struct xe_bo *bo, u64 bo_offset,
-			      enum xe_cache_level cache, u32 pt_level)
+			      u16 pat_index, u32 pt_level)
 {
 	struct xe_device *xe = xe_bo_device(bo);
 	u64 pte;
 
 	pte = xe_bo_addr(bo, bo_offset, XE_PAGE_SIZE);
 	pte |= XE_PAGE_PRESENT | XE_PAGE_RW;
-	pte |= pte_encode_cache(xe, cache);
+	pte |= pte_encode_pat_index(xe, pat_index);
 	pte |= pte_encode_ps(pt_level);
 
 	if (xe_bo_is_vram(bo) || xe_bo_is_stolen_devmem(bo))
@@ -1268,7 +1266,7 @@ static u64 xelp_pte_encode_bo(struct xe_bo *bo, u64 bo_offset,
 }
 
 static u64 xelp_pte_encode_vma(u64 pte, struct xe_vma *vma,
-			       enum xe_cache_level cache, u32 pt_level)
+			       u16 pat_index, u32 pt_level)
 {
 	struct xe_device *xe = xe_vma_vm(vma)->xe;
 
@@ -1277,7 +1275,7 @@ static u64 xelp_pte_encode_vma(u64 pte, struct xe_vma *vma,
 	if (likely(!xe_vma_read_only(vma)))
 		pte |= XE_PAGE_RW;
 
-	pte |= pte_encode_cache(xe, cache);
+	pte |= pte_encode_pat_index(xe, pat_index);
 	pte |= pte_encode_ps(pt_level);
 
 	if (unlikely(xe_vma_is_null(vma)))
@@ -1287,7 +1285,7 @@ static u64 xelp_pte_encode_vma(u64 pte, struct xe_vma *vma,
 }
 
 static u64 xelp_pte_encode_addr(struct xe_device *xe, u64 addr,
-				enum xe_cache_level cache,
+				u16 pat_index,
 				u32 pt_level, bool devmem, u64 flags)
 {
 	u64 pte;
@@ -1297,7 +1295,7 @@ static u64 xelp_pte_encode_addr(struct xe_device *xe, u64 addr,
 
 	pte = addr;
 	pte |= XE_PAGE_PRESENT | XE_PAGE_RW;
-	pte |= pte_encode_cache(xe, cache);
+	pte |= pte_encode_pat_index(xe, pat_index);
 	pte |= pte_encode_ps(pt_level);
 
 	if (devmem)
@@ -1701,7 +1699,7 @@ struct xe_vm *xe_vm_lookup(struct xe_file *xef, u32 id)
 u64 xe_vm_pdp4_descriptor(struct xe_vm *vm, struct xe_tile *tile)
 {
 	return vm->pt_ops->pde_encode_bo(vm->pt_root[tile->id]->bo, 0,
-					 XE_CACHE_WB);
+					 tile_to_xe(tile)->pat.idx[XE_CACHE_WB]);
 }
 
 static struct dma_fence *
-- 
2.41.0


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

* [Intel-xe] [PATCH v6 3/5] drm/xe/uapi: Add support for cache and coherency mode
  2023-09-28 10:05 [Intel-xe] [PATCH v6 0/5] PAT and cache coherency support Matthew Auld
  2023-09-28 10:05 ` [Intel-xe] [PATCH v6 1/5] drm/xe/pat: trim the xelp PAT table Matthew Auld
  2023-09-28 10:05 ` [Intel-xe] [PATCH v6 2/5] drm/xe: directly use pat_index for pte_encode Matthew Auld
@ 2023-09-28 10:05 ` Matthew Auld
  2023-09-28 19:32   ` Souza, Jose
  2023-09-28 10:05 ` [Intel-xe] [PATCH v6 4/5] drm/xe/pat: annotate pat_index with " Matthew Auld
                   ` (9 subsequent siblings)
  12 siblings, 1 reply; 27+ messages in thread
From: Matthew Auld @ 2023-09-28 10:05 UTC (permalink / raw)
  To: intel-xe
  Cc: Filip Hazubski, Lucas De Marchi, Carl Zhang, Effie Yu, Matt Roper

From: Pallavi Mishra <pallavi.mishra@intel.com>

Allow userspace to specify the CPU caching mode to use in addition to
coherency modes during object creation. Modify gem create handler and
introduce xe_bo_create_user to replace xe_bo_create. In a later patch we
will support setting the pat_index as part of vm_bind, where expectation
is that the coherency mode extracted from the pat_index must match the
one set at object creation.

v2
  - s/smem_caching/smem_cpu_caching/ and
    s/XE_GEM_CACHING/XE_GEM_CPU_CACHING/. (Matt Roper)
  - Drop COH_2WAY and just use COH_NONE + COH_AT_LEAST_1WAY; KMD mostly
    just cares that zeroing/swap-in can't be bypassed with the given
    smem_caching mode. (Matt Roper)
  - Fix broken range check for coh_mode and smem_cpu_caching and also
    don't use constant value, but the already defined macros. (José)
  - Prefer switch statement for smem_cpu_caching -> ttm_caching. (José)
  - Add note in kernel-doc for dgpu and coherency modes for system
    memory. (José)
v3 (José):
  - Make sure to reject coh_mode == 0 for VRAM-only.
  - Also make sure to actually pass along the (start, end) for
    __xe_bo_create_locked.
v4
  - Drop UC caching mode. Can be added back if we need it. (Matt Roper)
  - s/smem_cpu_caching/cpu_caching. Idea is that VRAM is always WC, but
    that is currently implicit and KMD controlled. Make it explicit in
    the uapi with the limitation that it currently must be WC. For VRAM
    + SYS objects userspace must now select WC. (José)
  - Make sure to initialize bo_flags. (José)
v5
  - Make to align with the other uapi and prefix uapi constants with
    DRM_ (José)

Signed-off-by: Pallavi Mishra <pallavi.mishra@intel.com>
Co-developed-by: Matthew Auld <matthew.auld@intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Cc: José Roberto de Souza <jose.souza@intel.com>
Cc: Filip Hazubski <filip.hazubski@intel.com>
Cc: Carl Zhang <carl.zhang@intel.com>
Cc: Effie Yu <effie.yu@intel.com>
---
 drivers/gpu/drm/xe/xe_bo.c       | 113 ++++++++++++++++++++++++-------
 drivers/gpu/drm/xe/xe_bo.h       |   9 +--
 drivers/gpu/drm/xe/xe_bo_types.h |  10 +++
 drivers/gpu/drm/xe/xe_dma_buf.c  |   5 +-
 include/uapi/drm/xe_drm.h        |  50 +++++++++++++-
 5 files changed, 154 insertions(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
index 61789c0e88fb..db56f4dce5cb 100644
--- a/drivers/gpu/drm/xe/xe_bo.c
+++ b/drivers/gpu/drm/xe/xe_bo.c
@@ -326,7 +326,7 @@ static struct ttm_tt *xe_ttm_tt_create(struct ttm_buffer_object *ttm_bo,
 	struct xe_device *xe = xe_bo_device(bo);
 	struct xe_ttm_tt *tt;
 	unsigned long extra_pages;
-	enum ttm_caching caching = ttm_cached;
+	enum ttm_caching caching;
 	int err;
 
 	tt = kzalloc(sizeof(*tt), GFP_KERNEL);
@@ -340,13 +340,22 @@ static struct ttm_tt *xe_ttm_tt_create(struct ttm_buffer_object *ttm_bo,
 		extra_pages = DIV_ROUND_UP(xe_device_ccs_bytes(xe, bo->size),
 					   PAGE_SIZE);
 
+	switch (bo->cpu_caching) {
+	case DRM_XE_GEM_CPU_CACHING_WC:
+		caching = ttm_write_combined;
+		break;
+	default:
+		caching = ttm_cached;
+		break;
+	}
+
 	/*
 	 * Display scanout is always non-coherent with the CPU cache.
 	 *
 	 * For Xe_LPG and beyond, PPGTT PTE lookups are also non-coherent and
 	 * require a CPU:WC mapping.
 	 */
-	if (bo->flags & XE_BO_SCANOUT_BIT ||
+	if ((!bo->cpu_caching && bo->flags & XE_BO_SCANOUT_BIT) ||
 	    (xe->info.graphics_verx100 >= 1270 && bo->flags & XE_BO_PAGETABLE))
 		caching = ttm_write_combined;
 
@@ -1190,10 +1199,11 @@ void xe_bo_free(struct xe_bo *bo)
 	kfree(bo);
 }
 
-struct xe_bo *__xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
-				    struct xe_tile *tile, struct dma_resv *resv,
-				    struct ttm_lru_bulk_move *bulk, size_t size,
-				    enum ttm_bo_type type, u32 flags)
+struct xe_bo *___xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
+				     struct xe_tile *tile, struct dma_resv *resv,
+				     struct ttm_lru_bulk_move *bulk, size_t size,
+				     u16 cpu_caching, u16 coh_mode,
+				     enum ttm_bo_type type, u32 flags)
 {
 	struct ttm_operation_ctx ctx = {
 		.interruptible = true,
@@ -1231,6 +1241,8 @@ struct xe_bo *__xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
 	bo->tile = tile;
 	bo->size = size;
 	bo->flags = flags;
+	bo->cpu_caching = cpu_caching;
+	bo->coh_mode = coh_mode;
 	bo->ttm.base.funcs = &xe_gem_object_funcs;
 	bo->props.preferred_mem_class = XE_BO_PROPS_INVALID;
 	bo->props.preferred_gt = XE_BO_PROPS_INVALID;
@@ -1315,11 +1327,12 @@ static int __xe_bo_fixed_placement(struct xe_device *xe,
 	return 0;
 }
 
-struct xe_bo *
-xe_bo_create_locked_range(struct xe_device *xe,
-			  struct xe_tile *tile, struct xe_vm *vm,
-			  size_t size, u64 start, u64 end,
-			  enum ttm_bo_type type, u32 flags)
+static struct xe_bo *
+__xe_bo_create_locked(struct xe_device *xe,
+		      struct xe_tile *tile, struct xe_vm *vm,
+		      size_t size, u64 start, u64 end,
+		      u16 cpu_caching, u16 coh_mode,
+		      enum ttm_bo_type type, u32 flags)
 {
 	struct xe_bo *bo = NULL;
 	int err;
@@ -1340,11 +1353,12 @@ xe_bo_create_locked_range(struct xe_device *xe,
 		}
 	}
 
-	bo = __xe_bo_create_locked(xe, bo, tile, vm ? &vm->resv : NULL,
-				   vm && !xe_vm_in_fault_mode(vm) &&
-				   flags & XE_BO_CREATE_USER_BIT ?
-				   &vm->lru_bulk_move : NULL, size,
-				   type, flags);
+	bo = ___xe_bo_create_locked(xe, bo, tile, vm ? &vm->resv : NULL,
+				    vm && !xe_vm_in_fault_mode(vm) &&
+				    flags & XE_BO_CREATE_USER_BIT ?
+				    &vm->lru_bulk_move : NULL, size,
+				    cpu_caching, coh_mode,
+				    type, flags);
 	if (IS_ERR(bo))
 		return bo;
 
@@ -1377,11 +1391,35 @@ xe_bo_create_locked_range(struct xe_device *xe,
 	return ERR_PTR(err);
 }
 
+struct xe_bo *
+xe_bo_create_locked_range(struct xe_device *xe,
+			  struct xe_tile *tile, struct xe_vm *vm,
+			  size_t size, u64 start, u64 end,
+			  enum ttm_bo_type type, u32 flags)
+{
+	return __xe_bo_create_locked(xe, tile, vm, size, start, end, 0, 0, type, flags);
+}
+
 struct xe_bo *xe_bo_create_locked(struct xe_device *xe, struct xe_tile *tile,
 				  struct xe_vm *vm, size_t size,
 				  enum ttm_bo_type type, u32 flags)
 {
-	return xe_bo_create_locked_range(xe, tile, vm, size, 0, ~0ULL, type, flags);
+	return __xe_bo_create_locked(xe, tile, vm, size, 0, ~0ULL, 0, 0, type, flags);
+}
+
+static struct xe_bo *xe_bo_create_user(struct xe_device *xe, struct xe_tile *tile,
+				       struct xe_vm *vm, size_t size,
+				       u16 cpu_caching, u16 coh_mode,
+				       enum ttm_bo_type type,
+				       u32 flags)
+{
+	struct xe_bo *bo = __xe_bo_create_locked(xe, tile, vm, size, 0, ~0ULL,
+						 cpu_caching, coh_mode, type,
+						 flags | XE_BO_CREATE_USER_BIT);
+	if (!IS_ERR(bo))
+		xe_bo_unlock_vm_held(bo);
+
+	return bo;
 }
 
 struct xe_bo *xe_bo_create(struct xe_device *xe, struct xe_tile *tile,
@@ -1764,11 +1802,11 @@ int xe_gem_create_ioctl(struct drm_device *dev, void *data,
 	struct drm_xe_gem_create *args = data;
 	struct xe_vm *vm = NULL;
 	struct xe_bo *bo;
-	unsigned int bo_flags = XE_BO_CREATE_USER_BIT;
+	unsigned int bo_flags;
 	u32 handle;
 	int err;
 
-	if (XE_IOCTL_DBG(xe, args->extensions) || XE_IOCTL_DBG(xe, args->pad) ||
+	if (XE_IOCTL_DBG(xe, args->extensions) ||
 	    XE_IOCTL_DBG(xe, args->reserved[0] || args->reserved[1]))
 		return -EINVAL;
 
@@ -1795,6 +1833,7 @@ int xe_gem_create_ioctl(struct drm_device *dev, void *data,
 	if (XE_IOCTL_DBG(xe, args->size & ~PAGE_MASK))
 		return -EINVAL;
 
+	bo_flags = 0;
 	if (args->flags & XE_GEM_CREATE_FLAG_DEFER_BACKING)
 		bo_flags |= XE_BO_DEFER_BACKING;
 
@@ -1810,6 +1849,26 @@ int xe_gem_create_ioctl(struct drm_device *dev, void *data,
 		bo_flags |= XE_BO_NEEDS_CPU_ACCESS;
 	}
 
+	if (XE_IOCTL_DBG(xe, !args->coh_mode ||
+			 args->coh_mode > DRM_XE_GEM_COH_AT_LEAST_1WAY))
+		return -EINVAL;
+
+	if (XE_IOCTL_DBG(xe, !args->cpu_caching ||
+			 args->cpu_caching > DRM_XE_GEM_CPU_CACHING_WC))
+		return -EINVAL;
+
+	if (XE_IOCTL_DBG(xe, bo_flags & XE_BO_CREATE_VRAM_MASK &&
+			 args->cpu_caching != DRM_XE_GEM_CPU_CACHING_WC))
+		return -EINVAL;
+
+	if (XE_IOCTL_DBG(xe, bo_flags & XE_BO_SCANOUT_BIT &&
+			 args->cpu_caching == DRM_XE_GEM_CPU_CACHING_WB))
+		return -EINVAL;
+
+	if (XE_IOCTL_DBG(xe, args->coh_mode == DRM_XE_GEM_COH_NONE &&
+			 args->cpu_caching == DRM_XE_GEM_CPU_CACHING_WB))
+		return -EINVAL;
+
 	if (args->vm_id) {
 		vm = xe_vm_lookup(xef, args->vm_id);
 		if (XE_IOCTL_DBG(xe, !vm))
@@ -1821,8 +1880,10 @@ int xe_gem_create_ioctl(struct drm_device *dev, void *data,
 		}
 	}
 
-	bo = xe_bo_create(xe, NULL, vm, args->size, ttm_bo_type_device,
-			  bo_flags);
+	bo = xe_bo_create_user(xe, NULL, vm, args->size,
+			       args->cpu_caching, args->coh_mode,
+			       ttm_bo_type_device,
+			       bo_flags);
 	if (IS_ERR(bo)) {
 		err = PTR_ERR(bo);
 		goto out_vm;
@@ -2114,10 +2175,12 @@ int xe_bo_dumb_create(struct drm_file *file_priv,
 	args->size = ALIGN(mul_u32_u32(args->pitch, args->height),
 			   page_size);
 
-	bo = xe_bo_create(xe, NULL, NULL, args->size, ttm_bo_type_device,
-			  XE_BO_CREATE_VRAM_IF_DGFX(xe_device_get_root_tile(xe)) |
-			  XE_BO_CREATE_USER_BIT | XE_BO_SCANOUT_BIT |
-			  XE_BO_NEEDS_CPU_ACCESS);
+	bo = xe_bo_create_user(xe, NULL, NULL, args->size,
+			       DRM_XE_GEM_CPU_CACHING_WC, DRM_XE_GEM_COH_NONE,
+			       ttm_bo_type_device,
+			       XE_BO_CREATE_VRAM_IF_DGFX(xe_device_get_root_tile(xe)) |
+			       XE_BO_CREATE_USER_BIT | XE_BO_SCANOUT_BIT |
+			       XE_BO_NEEDS_CPU_ACCESS);
 	if (IS_ERR(bo))
 		return PTR_ERR(bo);
 
diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
index 5090bdd1e462..e4f57a116de7 100644
--- a/drivers/gpu/drm/xe/xe_bo.h
+++ b/drivers/gpu/drm/xe/xe_bo.h
@@ -83,10 +83,11 @@ struct sg_table;
 struct xe_bo *xe_bo_alloc(void);
 void xe_bo_free(struct xe_bo *bo);
 
-struct xe_bo *__xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
-				    struct xe_tile *tile, struct dma_resv *resv,
-				    struct ttm_lru_bulk_move *bulk, size_t size,
-				    enum ttm_bo_type type, u32 flags);
+struct xe_bo *___xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
+				     struct xe_tile *tile, struct dma_resv *resv,
+				     struct ttm_lru_bulk_move *bulk, size_t size,
+				     u16 cpu_caching, u16 coh_mode,
+				     enum ttm_bo_type type, u32 flags);
 struct xe_bo *
 xe_bo_create_locked_range(struct xe_device *xe,
 			  struct xe_tile *tile, struct xe_vm *vm,
diff --git a/drivers/gpu/drm/xe/xe_bo_types.h b/drivers/gpu/drm/xe/xe_bo_types.h
index 051fe990c133..56f7f9a4975f 100644
--- a/drivers/gpu/drm/xe/xe_bo_types.h
+++ b/drivers/gpu/drm/xe/xe_bo_types.h
@@ -76,6 +76,16 @@ struct xe_bo {
 	struct llist_node freed;
 	/** @created: Whether the bo has passed initial creation */
 	bool created;
+	/**
+	 * @coh_mode: Coherency setting. Currently only used for userspace
+	 * objects.
+	 */
+	u16 coh_mode;
+	/**
+	 * @cpu_caching: CPU caching mode. Currently only used for userspace
+	 * objects.
+	 */
+	u16 cpu_caching;
 };
 
 #define intel_bo_to_drm_bo(bo) (&(bo)->ttm.base)
diff --git a/drivers/gpu/drm/xe/xe_dma_buf.c b/drivers/gpu/drm/xe/xe_dma_buf.c
index cfde3be3b0dc..9da5cffeef13 100644
--- a/drivers/gpu/drm/xe/xe_dma_buf.c
+++ b/drivers/gpu/drm/xe/xe_dma_buf.c
@@ -214,8 +214,9 @@ xe_dma_buf_init_obj(struct drm_device *dev, struct xe_bo *storage,
 	int ret;
 
 	dma_resv_lock(resv, NULL);
-	bo = __xe_bo_create_locked(xe, storage, NULL, resv, NULL, dma_buf->size,
-				   ttm_bo_type_sg, XE_BO_CREATE_SYSTEM_BIT);
+	bo = ___xe_bo_create_locked(xe, storage, NULL, resv, NULL, dma_buf->size,
+				    0, 0, /* Will require 1way or 2way for vm_bind */
+				    ttm_bo_type_sg, XE_BO_CREATE_SYSTEM_BIT);
 	if (IS_ERR(bo)) {
 		ret = PTR_ERR(bo);
 		goto error;
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index d48d8e3c898c..ec4cdbc8d2bd 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -456,8 +456,54 @@ struct drm_xe_gem_create {
 	 */
 	__u32 handle;
 
-	/** @pad: MBZ */
-	__u32 pad;
+	/**
+	 * @coh_mode: The coherency mode for this object. This will limit the
+	 * possible @cpu_caching values.
+	 *
+	 * Supported values:
+	 *
+	 * DRM_XE_GEM_COH_NONE: GPU access is assumed to be not coherent with
+	 * CPU. CPU caches are not snooped.
+	 *
+	 * DRM_XE_GEM_COH_AT_LEAST_1WAY:
+	 *
+	 * CPU-GPU coherency must be at least 1WAY.
+	 *
+	 * If 1WAY then GPU access is coherent with CPU (CPU caches are snooped)
+	 * until GPU acquires. The acquire by the GPU is not tracked by CPU
+	 * caches.
+	 *
+	 * If 2WAY then should be fully coherent between GPU and CPU.  Fully
+	 * tracked by CPU caches. Both CPU and GPU caches are snooped.
+	 *
+	 * Note: On dgpu the GPU device never caches system memory. The device
+	 * should be thought of as always 1WAY coherent, with the addition that
+	 * the GPU never caches system memory. At least on current dgpu HW there
+	 * is no way to turn off snooping so likely the different coherency
+	 * modes of the pat_index make no difference for system memory.
+	 */
+#define DRM_XE_GEM_COH_NONE		1
+#define DRM_XE_GEM_COH_AT_LEAST_1WAY	2
+	__u16 coh_mode;
+
+	/**
+	 * @cpu_caching: The CPU caching mode to select for this object. If
+	 * mmaping the object the mode selected here will also be used.
+	 *
+	 * Supported values:
+	 *
+	 * DRM_XE_GEM_CPU_CACHING_WB: Allocate the pages with write-back caching.
+	 * On iGPU this can't be used for scanout surfaces. The @coh_mode must
+	 * be DRM_XE_GEM_COH_AT_LEAST_1WAY. Currently not allowed for objects placed
+	 * in VRAM.
+	 *
+	 * DRM_XE_GEM_CPU_CACHING_WC: Allocate the pages as write-combined. This is
+	 * uncached. Any @coh_mode is permitted. Scanout surfaces should likely
+	 * use this. All objects that can be placed in VRAM must use this.
+	 */
+#define DRM_XE_GEM_CPU_CACHING_WB                      1
+#define DRM_XE_GEM_CPU_CACHING_WC                      2
+	__u16 cpu_caching;
 
 	/** @reserved: Reserved */
 	__u64 reserved[2];
-- 
2.41.0


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

* [Intel-xe] [PATCH v6 4/5] drm/xe/pat: annotate pat_index with coherency mode
  2023-09-28 10:05 [Intel-xe] [PATCH v6 0/5] PAT and cache coherency support Matthew Auld
                   ` (2 preceding siblings ...)
  2023-09-28 10:05 ` [Intel-xe] [PATCH v6 3/5] drm/xe/uapi: Add support for cache and coherency mode Matthew Auld
@ 2023-09-28 10:05 ` Matthew Auld
  2023-10-01 15:33   ` Mishra, Pallavi
  2023-09-28 10:05 ` [Intel-xe] [PATCH v6 5/5] drm/xe/uapi: support pat_index selection with vm_bind Matthew Auld
                   ` (8 subsequent siblings)
  12 siblings, 1 reply; 27+ messages in thread
From: Matthew Auld @ 2023-09-28 10:05 UTC (permalink / raw)
  To: intel-xe
  Cc: Filip Hazubski, Lucas De Marchi, Carl Zhang, Effie Yu, Matt Roper

Future uapi needs to give userspace the ability to select the pat_index
for a given vm_bind. However we need to be able to extract the coherency
mode from the provided pat_index to ensure it matches the coherency mode
set at object creation. There are various security reasons for why this
matters.  However the pat_index itself is very platform specific, so
seems reasonable to annotate each platform definition of the pat table.
On some older platforms there is no explicit coherency mode, so we just
pick whatever makes sense.

v2:
  - Simplify with COH_AT_LEAST_1_WAY
  - Add some kernel-doc
v3 (Matt Roper):
  - Some small tweaks
v4:
  - Rebase

Bspec: 45101, 44235 #xe
Bspec: 70552, 71582, 59400 #xe2
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Pallavi Mishra <pallavi.mishra@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Cc: José Roberto de Souza <jose.souza@intel.com>
Cc: Filip Hazubski <filip.hazubski@intel.com>
Cc: Carl Zhang <carl.zhang@intel.com>
Cc: Effie Yu <effie.yu@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
---
 drivers/gpu/drm/xe/xe_device_types.h |  2 +-
 drivers/gpu/drm/xe/xe_pat.c          | 64 +++++++++++++++++-----------
 drivers/gpu/drm/xe/xe_pat.h          | 28 ++++++++++++
 3 files changed, 67 insertions(+), 27 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index 0717839ae964..8b0ac0cf43ac 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -338,7 +338,7 @@ struct xe_device {
 		/** Internal operations to abstract platforms */
 		const struct xe_pat_ops *ops;
 		/** PAT table to program in the HW */
-		const u32 *table;
+		const struct xe_pat_table_entry *table;
 		/** Number of PAT entries */
 		int n_entries;
 		u32 idx[__XE_CACHE_LEVEL_COUNT];
diff --git a/drivers/gpu/drm/xe/xe_pat.c b/drivers/gpu/drm/xe/xe_pat.c
index 36b79d675e54..3e9d253ac1ff 100644
--- a/drivers/gpu/drm/xe/xe_pat.c
+++ b/drivers/gpu/drm/xe/xe_pat.c
@@ -5,6 +5,8 @@
 
 #include "xe_pat.h"
 
+#include <drm/xe_drm.h>
+
 #include "regs/xe_reg_defs.h"
 #include "xe_gt.h"
 #include "xe_gt_mcr.h"
@@ -33,51 +35,60 @@
 #define XELP_PAT_UC				REG_FIELD_PREP(XELP_MEM_TYPE_MASK, 0)
 
 struct xe_pat_ops {
-	void (*program_graphics)(struct xe_gt *gt, const u32 table[], int n_entries);
-	void (*program_media)(struct xe_gt *gt, const u32 table[], int n_entries);
+	void (*program_graphics)(struct xe_gt *gt, const struct xe_pat_table_entry table[],
+				 int n_entries);
+	void (*program_media)(struct xe_gt *gt, const struct xe_pat_table_entry table[],
+			      int n_entries);
 };
 
-static const u32 xelp_pat_table[] = {
-	[0] = XELP_PAT_WB,
-	[1] = XELP_PAT_WC,
-	[2] = XELP_PAT_WT,
-	[3] = XELP_PAT_UC,
+static const struct xe_pat_table_entry xelp_pat_table[] = {
+	[0] = { XELP_PAT_WB, DRM_XE_GEM_COH_AT_LEAST_1WAY },
+	[1] = { XELP_PAT_WC, DRM_XE_GEM_COH_NONE },
+	[2] = { XELP_PAT_WT, DRM_XE_GEM_COH_NONE },
+	[3] = { XELP_PAT_UC, DRM_XE_GEM_COH_NONE },
 };
 
-static const u32 xehpc_pat_table[] = {
-	[0] = XELP_PAT_UC,
-	[1] = XELP_PAT_WC,
-	[2] = XELP_PAT_WT,
-	[3] = XELP_PAT_WB,
-	[4] = XEHPC_PAT_CLOS(1) | XELP_PAT_WT,
-	[5] = XEHPC_PAT_CLOS(1) | XELP_PAT_WB,
-	[6] = XEHPC_PAT_CLOS(2) | XELP_PAT_WT,
-	[7] = XEHPC_PAT_CLOS(2) | XELP_PAT_WB,
+static const struct xe_pat_table_entry xehpc_pat_table[] = {
+	[0] = { XELP_PAT_UC, DRM_XE_GEM_COH_NONE },
+	[1] = { XELP_PAT_WC, DRM_XE_GEM_COH_NONE },
+	[2] = { XELP_PAT_WT, DRM_XE_GEM_COH_NONE },
+	[3] = { XELP_PAT_WB, DRM_XE_GEM_COH_AT_LEAST_1WAY },
+	[4] = { XEHPC_PAT_CLOS(1) | XELP_PAT_WT, DRM_XE_GEM_COH_NONE },
+	[5] = { XEHPC_PAT_CLOS(1) | XELP_PAT_WB, DRM_XE_GEM_COH_AT_LEAST_1WAY },
+	[6] = { XEHPC_PAT_CLOS(2) | XELP_PAT_WT, DRM_XE_GEM_COH_NONE },
+	[7] = { XEHPC_PAT_CLOS(2) | XELP_PAT_WB, DRM_XE_GEM_COH_AT_LEAST_1WAY },
 };
 
-static const u32 xelpg_pat_table[] = {
-	[0] = XELPG_PAT_0_WB,
-	[1] = XELPG_PAT_1_WT,
-	[2] = XELPG_PAT_3_UC,
-	[3] = XELPG_PAT_0_WB | XELPG_2_COH_1W,
-	[4] = XELPG_PAT_0_WB | XELPG_3_COH_2W,
+static const struct xe_pat_table_entry xelpg_pat_table[] = {
+	[0] = { XELPG_PAT_0_WB, DRM_XE_GEM_COH_NONE },
+	[1] = { XELPG_PAT_1_WT, DRM_XE_GEM_COH_NONE },
+	[2] = { XELPG_PAT_3_UC, DRM_XE_GEM_COH_NONE },
+	[3] = { XELPG_PAT_0_WB | XELPG_2_COH_1W, DRM_XE_GEM_COH_AT_LEAST_1WAY },
+	[4] = { XELPG_PAT_0_WB | XELPG_3_COH_2W, DRM_XE_GEM_COH_AT_LEAST_1WAY },
 };
 
-static void program_pat(struct xe_gt *gt, const u32 table[], int n_entries)
+u16 xe_pat_index_get_coh_mode(struct xe_device *xe, u16 pat_index)
+{
+	WARN_ON(pat_index >= xe->pat.n_entries);
+	return xe->pat.table[pat_index].coh_mode;
+}
+
+static void program_pat(struct xe_gt *gt, const struct xe_pat_table_entry table[], int n_entries)
 {
 	for (int i = 0; i < n_entries; i++) {
 		struct xe_reg reg = XE_REG(_PAT_INDEX(i));
 
-		xe_mmio_write32(gt, reg, table[i]);
+		xe_mmio_write32(gt, reg, table[i].value);
 	}
 }
 
-static void program_pat_mcr(struct xe_gt *gt, const u32 table[], int n_entries)
+static void program_pat_mcr(struct xe_gt *gt, const struct xe_pat_table_entry table[],
+			    int n_entries)
 {
 	for (int i = 0; i < n_entries; i++) {
 		struct xe_reg_mcr reg_mcr = XE_REG_MCR(_PAT_INDEX(i));
 
-		xe_gt_mcr_multicast_write(gt, reg_mcr, table[i]);
+		xe_gt_mcr_multicast_write(gt, reg_mcr, table[i].value);
 	}
 }
 
@@ -126,6 +137,7 @@ void xe_pat_init_early(struct xe_device *xe)
 		xe->pat.idx[XE_CACHE_WT] = 2;
 		xe->pat.idx[XE_CACHE_WB] = 0;
 	} else if (GRAPHICS_VERx100(xe) <= 1210) {
+		WARN_ON_ONCE(!IS_DGFX(xe) && !xe->info.has_llc);
 		xe->pat.ops = &xelp_pat_ops;
 		xe->pat.table = xelp_pat_table;
 		xe->pat.n_entries = ARRAY_SIZE(xelp_pat_table);
diff --git a/drivers/gpu/drm/xe/xe_pat.h b/drivers/gpu/drm/xe/xe_pat.h
index 168e80e63809..a4fe9d5466bc 100644
--- a/drivers/gpu/drm/xe/xe_pat.h
+++ b/drivers/gpu/drm/xe/xe_pat.h
@@ -6,9 +6,29 @@
 #ifndef _XE_PAT_H_
 #define _XE_PAT_H_
 
+#include <linux/types.h>
+
 struct xe_gt;
 struct xe_device;
 
+/**
+ * struct xe_pat_table_entry - The pat_index encoding and other meta information.
+ */
+struct xe_pat_table_entry {
+	/**
+	 * @value: The platform specific value encoding the various memory
+	 * attributes (this maps to some fixed pat_index). So things like
+	 * caching, coherency, compression etc can be encoded here.
+	 */
+	u32 value;
+
+	/**
+	 * @coh_mode: The GPU coherency mode that @value maps to. Either
+	 * DRM_XE_GEM_COH_NONE or DRM_XE_GEM_COH_AT_LEAST_1WAY.
+	 */
+	u16 coh_mode;
+};
+
 /**
  * xe_pat_init_early - SW initialization, setting up data based on device
  * @xe: xe device
@@ -21,4 +41,12 @@ void xe_pat_init_early(struct xe_device *xe);
  */
 void xe_pat_init(struct xe_gt *gt);
 
+/**
+ * xe_pat_index_get_coh_mode - Extract the coherency mode for the given
+ * pat_index.
+ * @xe: xe device
+ * @pat_index: The pat_index to query
+ */
+u16 xe_pat_index_get_coh_mode(struct xe_device *xe, u16 pat_index);
+
 #endif
-- 
2.41.0


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

* [Intel-xe] [PATCH v6 5/5] drm/xe/uapi: support pat_index selection with vm_bind
  2023-09-28 10:05 [Intel-xe] [PATCH v6 0/5] PAT and cache coherency support Matthew Auld
                   ` (3 preceding siblings ...)
  2023-09-28 10:05 ` [Intel-xe] [PATCH v6 4/5] drm/xe/pat: annotate pat_index with " Matthew Auld
@ 2023-09-28 10:05 ` Matthew Auld
  2023-09-28 10:18 ` [Intel-xe] ✓ CI.Patch_applied: success for PAT and cache coherency support (rev7) Patchwork
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 27+ messages in thread
From: Matthew Auld @ 2023-09-28 10:05 UTC (permalink / raw)
  To: intel-xe
  Cc: Filip Hazubski, Lucas De Marchi, Carl Zhang, Effie Yu, Matt Roper

Allow userspace to directly control the pat_index for a given vm
binding. This should allow directly controlling the coherency, caching
and potentially other stuff in the future for the ppGTT binding.

The exact meaning behind the pat_index is very platform specific (see
BSpec or PRMs) but effectively maps to some predefined memory
attributes. From the KMD pov we only care about the coherency that is
provided by the pat_index, which falls into either NONE, 1WAY or 2WAY.
The vm_bind coherency mode for the given pat_index needs to be at least
as coherent as the coh_mode that was set at object creation. For
platforms that lack the explicit coherency mode, we treat UC/WT/WC as
NONE and WB as AT_LEAST_1WAY.

For userptr mappings we lack a corresponding gem object, so the expected
coherency mode is instead implicit and must fall into either 1WAY or
2WAY. Trying to use NONE will be rejected by the kernel. For imported
dma-buf (from a different device) the coherency mode is also implicit
and must also be either 1WAY or 2WAY i.e AT_LEAST_1WAY.

v2:
  - Undefined coh_mode(pat_index) can now be treated as programmer
    error. (Matt Roper)
  - We now allow gem_create.coh_mode <= coh_mode(pat_index), rather than
    having to match exactly. This ensures imported dma-buf can always
    just use 1way (or even 2way), now that we also bundle 1way/2way into
    at_least_1way. We still require 1way/2way for external dma-buf, but
    the policy can now be the same for self-import, if desired.
  - Use u16 for pat_index in uapi. u32 is massive overkill. (José)
  - Move as much of the pat_index validation as we can into
    vm_bind_ioctl_check_args. (José)
v3 (Matt Roper):
  - Split the pte_encode() refactoring into separate patch.
v4:
  - Rebase

Bspec: 45101, 44235 #xe
Bspec: 70552, 71582, 59400 #xe2
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Pallavi Mishra <pallavi.mishra@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Cc: José Roberto de Souza <jose.souza@intel.com>
Cc: Filip Hazubski <filip.hazubski@intel.com>
Cc: Carl Zhang <carl.zhang@intel.com>
Cc: Effie Yu <effie.yu@intel.com>
---
 drivers/gpu/drm/xe/xe_pt.c       | 11 ++----
 drivers/gpu/drm/xe/xe_vm.c       | 61 +++++++++++++++++++++++++++-----
 drivers/gpu/drm/xe/xe_vm_types.h |  7 ++++
 include/uapi/drm/xe_drm.h        | 43 +++++++++++++++++++++-
 4 files changed, 104 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
index 92b512641b4a..f9f9010dca10 100644
--- a/drivers/gpu/drm/xe/xe_pt.c
+++ b/drivers/gpu/drm/xe/xe_pt.c
@@ -290,8 +290,6 @@ struct xe_pt_stage_bind_walk {
 	struct xe_vm *vm;
 	/** @tile: The tile we're building for. */
 	struct xe_tile *tile;
-	/** @cache: Desired cache level for the ptes */
-	enum xe_cache_level cache;
 	/** @default_pte: PTE flag only template. No address is associated */
 	u64 default_pte;
 	/** @dma_offset: DMA offset to add to the PTE. */
@@ -511,7 +509,7 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
 {
 	struct xe_pt_stage_bind_walk *xe_walk =
 		container_of(walk, typeof(*xe_walk), base);
-	u16 pat_index = tile_to_xe(xe_walk->tile)->pat.idx[xe_walk->cache];
+	u16 pat_index = xe_walk->vma->pat_index;
 	struct xe_pt *xe_parent = container_of(parent, typeof(*xe_parent), base);
 	struct xe_vm *vm = xe_walk->vm;
 	struct xe_pt *xe_child;
@@ -654,13 +652,8 @@ xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
 		if (vma && vma->gpuva.flags & XE_VMA_ATOMIC_PTE_BIT)
 			xe_walk.default_pte |= XE_USM_PPGTT_PTE_AE;
 		xe_walk.dma_offset = vram_region_gpu_offset(bo->ttm.resource);
-		xe_walk.cache = XE_CACHE_WB;
-	} else {
-		if (!xe_vma_has_no_bo(vma) && bo->flags & XE_BO_SCANOUT_BIT)
-			xe_walk.cache = XE_CACHE_WT;
-		else
-			xe_walk.cache = XE_CACHE_WB;
 	}
+
 	if (!xe_vma_has_no_bo(vma) && xe_bo_is_stolen(bo))
 		xe_walk.dma_offset = xe_ttm_stolen_gpu_offset(xe_bo_device(bo));
 
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index 4804a0cd8a36..19792e620ff1 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -6,6 +6,7 @@
 #include "xe_vm.h"
 
 #include <linux/dma-fence-array.h>
+#include <linux/nospec.h>
 
 #include <drm/drm_exec.h>
 #include <drm/drm_print.h>
@@ -25,6 +26,7 @@
 #include "xe_gt_pagefault.h"
 #include "xe_gt_tlb_invalidation.h"
 #include "xe_migrate.h"
+#include "xe_pat.h"
 #include "xe_pm.h"
 #include "xe_preempt_fence.h"
 #include "xe_pt.h"
@@ -858,7 +860,8 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
 				    u64 start, u64 end,
 				    bool read_only,
 				    bool is_null,
-				    u8 tile_mask)
+				    u8 tile_mask,
+				    u16 pat_index)
 {
 	struct xe_vma *vma;
 	struct xe_tile *tile;
@@ -897,6 +900,8 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
 			vma->tile_mask |= 0x1 << id;
 	}
 
+	vma->pat_index = pat_index;
+
 	if (vm->xe->info.platform == XE_PVC)
 		vma->gpuva.flags |= XE_VMA_ATOMIC_PTE_BIT;
 
@@ -2389,7 +2394,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, u8 tile_mask, u32 region, u16 pat_index)
 {
 	struct drm_gem_object *obj = bo ? &bo->ttm.base : NULL;
 	struct drm_gpuva_ops *ops;
@@ -2416,6 +2421,7 @@ vm_bind_ioctl_ops_create(struct xe_vm *vm, struct xe_bo *bo,
 			struct xe_vma_op *op = gpuva_op_to_vma_op(__op);
 
 			op->tile_mask = tile_mask;
+			op->pat_index = pat_index;
 			op->map.immediate =
 				operation & XE_VM_BIND_FLAG_IMMEDIATE;
 			op->map.read_only =
@@ -2443,6 +2449,7 @@ vm_bind_ioctl_ops_create(struct xe_vm *vm, struct xe_bo *bo,
 			struct xe_vma_op *op = gpuva_op_to_vma_op(__op);
 
 			op->tile_mask = tile_mask;
+			op->pat_index = pat_index;
 			op->prefetch.region = region;
 		}
 		break;
@@ -2485,7 +2492,8 @@ vm_bind_ioctl_ops_create(struct xe_vm *vm, struct xe_bo *bo,
 }
 
 static struct xe_vma *new_vma(struct xe_vm *vm, struct drm_gpuva_op_map *op,
-			      u8 tile_mask, bool read_only, bool is_null)
+			      u8 tile_mask, bool read_only, bool is_null,
+			      u16 pat_index)
 {
 	struct xe_bo *bo = op->gem.obj ? gem_to_xe_bo(op->gem.obj) : NULL;
 	struct xe_vma *vma;
@@ -2501,7 +2509,7 @@ static struct xe_vma *new_vma(struct xe_vm *vm, struct drm_gpuva_op_map *op,
 	vma = xe_vma_create(vm, bo, op->gem.offset,
 			    op->va.addr, op->va.addr +
 			    op->va.range - 1, read_only, is_null,
-			    tile_mask);
+			    tile_mask, pat_index);
 	if (bo)
 		xe_bo_unlock(bo);
 
@@ -2658,7 +2666,7 @@ 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);
+				      op->map.is_null, op->pat_index);
 			if (IS_ERR(vma)) {
 				err = PTR_ERR(vma);
 				goto free_fence;
@@ -2686,7 +2694,7 @@ 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);
+					      is_null, op->pat_index);
 				if (IS_ERR(vma)) {
 					err = PTR_ERR(vma);
 					goto free_fence;
@@ -2722,7 +2730,7 @@ 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);
+					      is_null, op->pat_index);
 				if (IS_ERR(vma)) {
 					err = PTR_ERR(vma);
 					goto free_fence;
@@ -3235,7 +3243,22 @@ 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;
+		u16 pat_index = (*bind_ops)[i].pat_index;
 		bool is_null = op & XE_VM_BIND_FLAG_NULL;
+		u16 coh_mode;
+
+		if (XE_IOCTL_DBG(xe, pat_index >= xe->pat.n_entries)) {
+			err = -EINVAL;
+			goto free_bind_ops;
+		}
+
+		pat_index = array_index_nospec(pat_index, xe->pat.n_entries);
+		(*bind_ops)[i].pat_index = pat_index;
+		coh_mode = xe_pat_index_get_coh_mode(xe, pat_index);
+		if (XE_WARN_ON(!coh_mode || coh_mode > DRM_XE_GEM_COH_AT_LEAST_1WAY)) {
+			err = -EINVAL;
+			goto free_bind_ops;
+		}
 
 		if (i == 0) {
 			*async = !!(op & XE_VM_BIND_FLAG_ASYNC);
@@ -3277,6 +3300,8 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
 				 VM_BIND_OP(op) == XE_VM_BIND_OP_UNMAP_ALL) ||
 		    XE_IOCTL_DBG(xe, obj &&
 				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP_USERPTR) ||
+		    XE_IOCTL_DBG(xe, coh_mode == DRM_XE_GEM_COH_NONE &&
+				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP_USERPTR) ||
 		    XE_IOCTL_DBG(xe, obj &&
 				 VM_BIND_OP(op) == XE_VM_BIND_OP_PREFETCH) ||
 		    XE_IOCTL_DBG(xe, region &&
@@ -3425,6 +3450,8 @@ int xe_vm_bind_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
 		u64 addr = bind_ops[i].addr;
 		u32 obj = bind_ops[i].obj;
 		u64 obj_offset = bind_ops[i].obj_offset;
+		u16 pat_index = bind_ops[i].pat_index;
+		u16 coh_mode;
 
 		if (!obj)
 			continue;
@@ -3452,6 +3479,23 @@ int xe_vm_bind_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
 				goto put_obj;
 			}
 		}
+
+		coh_mode = xe_pat_index_get_coh_mode(xe, pat_index);
+		if (bos[i]->coh_mode) {
+			if (XE_IOCTL_DBG(xe, coh_mode < bos[i]->coh_mode)) {
+				err = -EINVAL;
+				goto put_obj;
+			}
+		} else if (XE_IOCTL_DBG(xe, coh_mode == DRM_XE_GEM_COH_NONE)) {
+			/*
+			 * Imported dma-buf from a different device should
+			 * require 1way or 2way coherency since we don't know
+			 * how it was mapped on the CPU. Just assume is it
+			 * potentially cached on CPU side.
+			 */
+			err = -EINVAL;
+			goto put_obj;
+		}
 	}
 
 	if (args->num_syncs) {
@@ -3489,10 +3533,11 @@ int xe_vm_bind_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
 		u64 obj_offset = bind_ops[i].obj_offset;
 		u8 tile_mask = bind_ops[i].tile_mask;
 		u32 region = bind_ops[i].region;
+		u16 pat_index = bind_ops[i].pat_index;
 
 		ops[i] = vm_bind_ioctl_ops_create(vm, bos[i], obj_offset,
 						  addr, range, op, tile_mask,
-						  region);
+						  region, pat_index);
 		if (IS_ERR(ops[i])) {
 			err = PTR_ERR(ops[i]);
 			ops[i] = NULL;
diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
index 1c5553b842d7..692e1cecb64f 100644
--- a/drivers/gpu/drm/xe/xe_vm_types.h
+++ b/drivers/gpu/drm/xe/xe_vm_types.h
@@ -111,6 +111,11 @@ struct xe_vma {
 	 */
 	u8 tile_present;
 
+	/**
+	 * @pat_index: The pat index to use when encoding the PTEs for this vma.
+	 */
+	u16 pat_index;
+
 	struct {
 		struct list_head rebind_link;
 	} notifier;
@@ -418,6 +423,8 @@ struct xe_vma_op {
 	struct async_op_fence *fence;
 	/** @tile_mask: gt mask for this operation */
 	u8 tile_mask;
+	/** @pat_index: The pat index to use for this operation. */
+	u16 pat_index;
 	/** @flags: operation flags */
 	enum xe_vma_op_flags flags;
 
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index ec4cdbc8d2bd..ef71007c244b 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -598,8 +598,49 @@ struct drm_xe_vm_bind_op {
 	 */
 	__u32 obj;
 
+	/**
+	 * @pat_index: The platform defined @pat_index to use for this mapping.
+	 * The index basically maps to some predefined memory attributes,
+	 * including things like caching, coherency, compression etc.  The exact
+	 * meaning of the pat_index is platform specific and defined in the
+	 * Bspec and PRMs.  When the KMD sets up the binding the index here is
+	 * encoded into the ppGTT PTE.
+	 *
+	 * For coherency the @pat_index needs to be least as coherent as
+	 * drm_xe_gem_create.coh_mode. i.e coh_mode(pat_index) >=
+	 * drm_xe_gem_create.coh_mode. The KMD will extract the coherency mode
+	 * from the @pat_index and reject if there is a mismatch (see note below
+	 * for pre-MTL platforms).
+	 *
+	 * Note: On pre-MTL platforms there is only a caching mode and no
+	 * explicit coherency mode, but on such hardware there is always a
+	 * shared-LLC (or is dgpu) so all GT memory accesses are coherent with
+	 * CPU caches even with the caching mode set as uncached.  It's only the
+	 * display engine that is incoherent (on dgpu it must be in VRAM which
+	 * is always mapped as WC on the CPU). However to keep the uapi somewhat
+	 * consistent with newer platforms the KMD groups the different cache
+	 * levels into the following coherency buckets on all pre-MTL platforms:
+	 *
+	 *	ppGTT UC -> DRM_XE_GEM_COH_NONE
+	 *	ppGTT WC -> DRM_XE_GEM_COH_NONE
+	 *	ppGTT WT -> DRM_XE_GEM_COH_NONE
+	 *	ppGTT WB -> DRM_XE_GEM_COH_AT_LEAST_1WAY
+	 *
+	 * In practice UC/WC/WT should only ever used for scanout surfaces on
+	 * such platforms (or perhaps in general for dma-buf if shared with
+	 * another device) since it is only the display engine that is actually
+	 * incoherent.  Everything else should typically use WB given that we
+	 * have a shared-LLC.  On MTL+ this completely changes and the HW
+	 * defines the coherency mode as part of the @pat_index, where
+	 * incoherent GT access is possible.
+	 *
+	 * Note: For userptr and externally imported dma-buf the kernel expects
+	 * either 1WAY or 2WAY for the @pat_index.
+	 */
+	__u16 pat_index;
+
 	/** @pad: MBZ */
-	__u32 pad;
+	__u16 pad;
 
 	union {
 		/**
-- 
2.41.0


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

* [Intel-xe] ✓ CI.Patch_applied: success for PAT and cache coherency support (rev7)
  2023-09-28 10:05 [Intel-xe] [PATCH v6 0/5] PAT and cache coherency support Matthew Auld
                   ` (4 preceding siblings ...)
  2023-09-28 10:05 ` [Intel-xe] [PATCH v6 5/5] drm/xe/uapi: support pat_index selection with vm_bind Matthew Auld
@ 2023-09-28 10:18 ` Patchwork
  2023-09-28 10:18 ` [Intel-xe] ✓ CI.checkpatch: " Patchwork
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2023-09-28 10:18 UTC (permalink / raw)
  To: Souza, Jose; +Cc: intel-xe

== Series Details ==

Series: PAT and cache coherency support (rev7)
URL   : https://patchwork.freedesktop.org/series/123027/
State : success

== Summary ==

=== Applying kernel patches on branch 'drm-xe-next' with base: ===
Base commit: 7c58b5852 fixup! drm/xe/display: Implement display support
=== git am output follows ===
Applying: drm/xe/pat: trim the xelp PAT table
Applying: drm/xe: directly use pat_index for pte_encode
Applying: drm/xe/uapi: Add support for cache and coherency mode
Applying: drm/xe/pat: annotate pat_index with coherency mode
Applying: drm/xe/uapi: support pat_index selection with vm_bind



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

* [Intel-xe] ✓ CI.checkpatch: success for PAT and cache coherency support (rev7)
  2023-09-28 10:05 [Intel-xe] [PATCH v6 0/5] PAT and cache coherency support Matthew Auld
                   ` (5 preceding siblings ...)
  2023-09-28 10:18 ` [Intel-xe] ✓ CI.Patch_applied: success for PAT and cache coherency support (rev7) Patchwork
@ 2023-09-28 10:18 ` Patchwork
  2023-09-28 10:19 ` [Intel-xe] ✓ CI.KUnit: " Patchwork
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2023-09-28 10:18 UTC (permalink / raw)
  To: Souza, Jose; +Cc: intel-xe

== Series Details ==

Series: PAT and cache coherency support (rev7)
URL   : https://patchwork.freedesktop.org/series/123027/
State : success

== 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 af55f15bc9bb795bbe7a55dc6a18924ec42c6582
Author: Matthew Auld <matthew.auld@intel.com>
Date:   Thu Sep 28 11:05:43 2023 +0100

    drm/xe/uapi: support pat_index selection with vm_bind
    
    Allow userspace to directly control the pat_index for a given vm
    binding. This should allow directly controlling the coherency, caching
    and potentially other stuff in the future for the ppGTT binding.
    
    The exact meaning behind the pat_index is very platform specific (see
    BSpec or PRMs) but effectively maps to some predefined memory
    attributes. From the KMD pov we only care about the coherency that is
    provided by the pat_index, which falls into either NONE, 1WAY or 2WAY.
    The vm_bind coherency mode for the given pat_index needs to be at least
    as coherent as the coh_mode that was set at object creation. For
    platforms that lack the explicit coherency mode, we treat UC/WT/WC as
    NONE and WB as AT_LEAST_1WAY.
    
    For userptr mappings we lack a corresponding gem object, so the expected
    coherency mode is instead implicit and must fall into either 1WAY or
    2WAY. Trying to use NONE will be rejected by the kernel. For imported
    dma-buf (from a different device) the coherency mode is also implicit
    and must also be either 1WAY or 2WAY i.e AT_LEAST_1WAY.
    
    v2:
      - Undefined coh_mode(pat_index) can now be treated as programmer
        error. (Matt Roper)
      - We now allow gem_create.coh_mode <= coh_mode(pat_index), rather than
        having to match exactly. This ensures imported dma-buf can always
        just use 1way (or even 2way), now that we also bundle 1way/2way into
        at_least_1way. We still require 1way/2way for external dma-buf, but
        the policy can now be the same for self-import, if desired.
      - Use u16 for pat_index in uapi. u32 is massive overkill. (José)
      - Move as much of the pat_index validation as we can into
        vm_bind_ioctl_check_args. (José)
    v3 (Matt Roper):
      - Split the pte_encode() refactoring into separate patch.
    v4:
      - Rebase
    
    Bspec: 45101, 44235 #xe
    Bspec: 70552, 71582, 59400 #xe2
    Signed-off-by: Matthew Auld <matthew.auld@intel.com>
    Cc: Pallavi Mishra <pallavi.mishra@intel.com>
    Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Cc: Lucas De Marchi <lucas.demarchi@intel.com>
    Cc: Matt Roper <matthew.d.roper@intel.com>
    Cc: José Roberto de Souza <jose.souza@intel.com>
    Cc: Filip Hazubski <filip.hazubski@intel.com>
    Cc: Carl Zhang <carl.zhang@intel.com>
    Cc: Effie Yu <effie.yu@intel.com>
+ /mt/dim checkpatch 7c58b58522cf124dd324fbf95d9dd838fac36bcb drm-intel
29b350c5f drm/xe/pat: trim the xelp PAT table
535470250 drm/xe: directly use pat_index for pte_encode
c45ed0c45 drm/xe/uapi: Add support for cache and coherency mode
26fbadf40 drm/xe/pat: annotate pat_index with coherency mode
af55f15bc drm/xe/uapi: support pat_index selection with vm_bind



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

* [Intel-xe] ✓ CI.KUnit: success for PAT and cache coherency support (rev7)
  2023-09-28 10:05 [Intel-xe] [PATCH v6 0/5] PAT and cache coherency support Matthew Auld
                   ` (6 preceding siblings ...)
  2023-09-28 10:18 ` [Intel-xe] ✓ CI.checkpatch: " Patchwork
@ 2023-09-28 10:19 ` Patchwork
  2023-09-28 10:26 ` [Intel-xe] ✓ CI.Build: " Patchwork
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2023-09-28 10:19 UTC (permalink / raw)
  To: Souza, Jose; +Cc: intel-xe

== Series Details ==

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

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

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



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

* [Intel-xe] ✓ CI.Build: success for PAT and cache coherency support (rev7)
  2023-09-28 10:05 [Intel-xe] [PATCH v6 0/5] PAT and cache coherency support Matthew Auld
                   ` (7 preceding siblings ...)
  2023-09-28 10:19 ` [Intel-xe] ✓ CI.KUnit: " Patchwork
@ 2023-09-28 10:26 ` Patchwork
  2023-09-28 10:27 ` [Intel-xe] ✓ CI.Hooks: " Patchwork
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2023-09-28 10:26 UTC (permalink / raw)
  To: Souza, Jose; +Cc: intel-xe

== Series Details ==

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



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

* [Intel-xe] ✓ CI.Hooks: success for PAT and cache coherency support (rev7)
  2023-09-28 10:05 [Intel-xe] [PATCH v6 0/5] PAT and cache coherency support Matthew Auld
                   ` (8 preceding siblings ...)
  2023-09-28 10:26 ` [Intel-xe] ✓ CI.Build: " Patchwork
@ 2023-09-28 10:27 ` Patchwork
  2023-09-28 10:28 ` [Intel-xe] ✓ CI.checksparse: " Patchwork
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2023-09-28 10:27 UTC (permalink / raw)
  To: Souza, Jose; +Cc: intel-xe

== Series Details ==

Series: PAT and cache coherency support (rev7)
URL   : https://patchwork.freedesktop.org/series/123027/
State : success

== Summary ==

run-parts: executing /workspace/ci/hooks/00-showenv
+ pwd
+ ls -la
/workspace
total 920
drwxrwxr-x 10 1003 1003   4096 Sep 28 10:26 .
drwxr-xr-x  1 root root   4096 Sep 28 10:26 ..
-rw-rw-r--  1 1003 1003 789644 Sep 28 10:26 build.log
-rw-rw-r--  1 1003 1003   3374 Sep 28 10:18 checkpatch.log
drwxrwxr-x  5 1003 1003   4096 Sep 28 10:16 ci
drwxrwxr-x  9 1003 1003   4096 Sep 28 10:16 docker
drwxrwxr-x  8 1003 1003   4096 Sep 28 10:16 .git
-rw-rw-r--  1 1003 1003    460 Sep 28 10:18 git_apply.log
drwxrwxr-x  4 1003 1003   4096 Sep 28 10:16 .github
-rw-rw-r--  1 1003 1003    233 Sep 28 10:16 .groovylintrc.json
-rw-rw-r--  1 1003 1003     78 Sep 28 10:26 hooks.log
drwxrwxr-x 31 1003 1003   4096 Sep 28 10:26 kernel
-rw-rw-r--  1 1003 1003  55185 Sep 28 10:18 kernel.mbox
-rw-rw-r--  1 1003 1003  26482 Sep 28 10:19 kunit.log
-rw-rw-r--  1 1003 1003     48 Sep 28 10:18 parent.tag
drwxrwxr-x 45 1003 1003   4096 Sep 28 10:16 pipelines
-rw-rw-r--  1 1003 1003    793 Sep 28 10:16 README.adoc
drwxrwxr-x  3 1003 1003   4096 Sep 28 10:16 scripts
drwxrwxr-x  2 1003 1003   4096 Sep 28 10:16 .vscode
+ uname -a
Linux 1ec338609c5c 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
af55f15bc drm/xe/uapi: support pat_index selection with vm_bind
26fbadf40 drm/xe/pat: annotate pat_index with coherency mode
c45ed0c45 drm/xe/uapi: Add support for cache and coherency mode
535470250 drm/xe: directly use pat_index for pte_encode
29b350c5f drm/xe/pat: trim the xelp PAT table
7c58b5852 fixup! drm/xe/display: Implement display support
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/generated/compile.h
  UPD     include/config/kernel.release
  UPD     include/generated/utsrelease.h
  DESCEND objtool
  HOSTCC  /workspace/kernel/build64-default/tools/objtool/fixdep.o
  CALL    ../scripts/checksyscalls.sh
  HOSTLD  /workspace/kernel/build64-default/tools/objtool/fixdep-in.o
  LINK    /workspace/kernel/build64-default/tools/objtool/fixdep
  INSTALL libsubcmd_headers
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/exec-cmd.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/help.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/pager.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/parse-options.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/run-command.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/sigchain.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/subcmd-config.o
  LD      /workspace/kernel/build64-default/tools/objtool/libsubcmd/libsubcmd-in.o
  AR      /workspace/kernel/build64-default/tools/objtool/libsubcmd/libsubcmd.a
  CC      /workspace/kernel/build64-default/tools/objtool/weak.o
  CC      /workspace/kernel/build64-default/tools/objtool/check.o
  CC      /workspace/kernel/build64-default/tools/objtool/special.o
  CC      /workspace/kernel/build64-default/tools/objtool/builtin-check.o
  CC      /workspace/kernel/build64-default/tools/objtool/elf.o
  CC      /workspace/kernel/build64-default/tools/objtool/objtool.o
  CC      /workspace/kernel/build64-default/tools/objtool/orc_gen.o
  CC      /workspace/kernel/build64-default/tools/objtool/orc_dump.o
  CC      /workspace/kernel/build64-default/tools/objtool/libstring.o
  CC      /workspace/kernel/build64-default/tools/objtool/libctype.o
  CC      /workspace/kernel/build64-default/tools/objtool/str_error_r.o
  CC      /workspace/kernel/build64-default/tools/objtool/librbtree.o
  CC      /workspace/kernel/build64-default/tools/objtool/arch/x86/special.o
  CC      /workspace/kernel/build64-default/tools/objtool/arch/x86/decode.o
  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_step.o
  CC [M]  drivers/gpu/drm/xe/xe_sched_job.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
  HDRTEST drivers/gpu/drm/xe/abi/guc_actions_abi.h
  CC [M]  drivers/gpu/drm/xe/tests/xe_dma_buf_test.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_migrate_test.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_pci_test.o
  HDRTEST drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_messages_abi.h
  HDRTEST drivers/gpu/drm/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
  CC [M]  drivers/gpu/drm/xe/tests/xe_rtp_test.o
  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_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_idle_sysfs.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_idle_sysfs_types.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_mcr.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_pagefault.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_printk.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_sysfs.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_sysfs_types.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_tlb_invalidation.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_tlb_invalidation_types.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_topology.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_ads.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_ads_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_ct.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_ct_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_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_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_huc_types.h
  HDRTEST drivers/gpu/drm/xe/xe_hw_engine.h
  HDRTEST drivers/gpu/drm/xe/xe_hw_engine_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_module.h
  HDRTEST drivers/gpu/drm/xe/xe_pat.h
  HDRTEST drivers/gpu/drm/xe/xe_pci.h
  HDRTEST drivers/gpu/drm/xe/xe_pcode.h
  HDRTEST drivers/gpu/drm/xe/xe_pci_types.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_wa.h
  HDRTEST drivers/gpu/drm/xe/xe_vm_types.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/xe.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_pci_test.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_bo_test.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_dma_buf_test.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_migrate_test.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_wa_test.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_rtp_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
All hooks done



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

* [Intel-xe] ✓ CI.checksparse: success for PAT and cache coherency support (rev7)
  2023-09-28 10:05 [Intel-xe] [PATCH v6 0/5] PAT and cache coherency support Matthew Auld
                   ` (9 preceding siblings ...)
  2023-09-28 10:27 ` [Intel-xe] ✓ CI.Hooks: " Patchwork
@ 2023-09-28 10:28 ` Patchwork
  2023-09-28 11:02 ` [Intel-xe] ✗ CI.BAT: failure " Patchwork
  2023-09-28 19:40 ` [Intel-xe] [PATCH v6 0/5] PAT and cache coherency support Souza, Jose
  12 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2023-09-28 10:28 UTC (permalink / raw)
  To: Souza, Jose; +Cc: intel-xe

== Series Details ==

Series: PAT and cache coherency support (rev7)
URL   : https://patchwork.freedesktop.org/series/123027/
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 7c58b58522cf124dd324fbf95d9dd838fac36bcb
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] 27+ messages in thread

* [Intel-xe] ✗ CI.BAT: failure for PAT and cache coherency support (rev7)
  2023-09-28 10:05 [Intel-xe] [PATCH v6 0/5] PAT and cache coherency support Matthew Auld
                   ` (10 preceding siblings ...)
  2023-09-28 10:28 ` [Intel-xe] ✓ CI.checksparse: " Patchwork
@ 2023-09-28 11:02 ` Patchwork
  2023-09-28 19:40 ` [Intel-xe] [PATCH v6 0/5] PAT and cache coherency support Souza, Jose
  12 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2023-09-28 11:02 UTC (permalink / raw)
  To: Souza, Jose; +Cc: intel-xe

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

== Series Details ==

Series: PAT and cache coherency support (rev7)
URL   : https://patchwork.freedesktop.org/series/123027/
State : failure

== Summary ==

CI Bug Log - changes from xe-399-7c58b58522cf124dd324fbf95d9dd838fac36bcb_BAT -> xe-pw-123027v7_BAT
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with xe-pw-123027v7_BAT absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in xe-pw-123027v7_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 -> 4)
------------------------------

  No changes in participating hosts

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

  Here are the unknown changes that may have been introduced in xe-pw-123027v7_BAT:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_addfb_basic@addfb25-yf-tiled-legacy:
    - bat-adlp-7:         [PASS][1] -> [WARN][2] +8 other tests warn
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-399-7c58b58522cf124dd324fbf95d9dd838fac36bcb/bat-adlp-7/igt@kms_addfb_basic@addfb25-yf-tiled-legacy.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-123027v7/bat-adlp-7/igt@kms_addfb_basic@addfb25-yf-tiled-legacy.html

  * igt@kms_addfb_basic@too-wide:
    - bat-dg2-oem2:       [PASS][3] -> [WARN][4] +7 other tests warn
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-399-7c58b58522cf124dd324fbf95d9dd838fac36bcb/bat-dg2-oem2/igt@kms_addfb_basic@too-wide.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-123027v7/bat-dg2-oem2/igt@kms_addfb_basic@too-wide.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-c-edp-1:
    - bat-adlp-7:         NOTRUN -> [FAIL][5] +37 other tests fail
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-123027v7/bat-adlp-7/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-c-edp-1.html

  * igt@xe_exec_fault_mode@twice-userptr-invalidate-prefetch:
    - bat-pvc-2:          [PASS][6] -> [FAIL][7] +115 other tests fail
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-399-7c58b58522cf124dd324fbf95d9dd838fac36bcb/bat-pvc-2/igt@xe_exec_fault_mode@twice-userptr-invalidate-prefetch.html
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-123027v7/bat-pvc-2/igt@xe_exec_fault_mode@twice-userptr-invalidate-prefetch.html

  * igt@xe_intel_bb@create-in-region:
    - bat-dg2-oem2:       [PASS][8] -> [FAIL][9] +147 other tests fail
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-399-7c58b58522cf124dd324fbf95d9dd838fac36bcb/bat-dg2-oem2/igt@xe_intel_bb@create-in-region.html
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-123027v7/bat-dg2-oem2/igt@xe_intel_bb@create-in-region.html
    - bat-adlp-7:         [PASS][10] -> [FAIL][11] +84 other tests fail
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-399-7c58b58522cf124dd324fbf95d9dd838fac36bcb/bat-adlp-7/igt@xe_intel_bb@create-in-region.html
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-123027v7/bat-adlp-7/igt@xe_intel_bb@create-in-region.html

  * igt@xe_live_ktest@migrate:
    - bat-adlp-7:         NOTRUN -> [INCOMPLETE][12]
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-123027v7/bat-adlp-7/igt@xe_live_ktest@migrate.html

  * igt@xe_prime_self_import@basic-with_one_bo:
    - bat-atsm-2:         [PASS][13] -> [FAIL][14] +88 other tests fail
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-399-7c58b58522cf124dd324fbf95d9dd838fac36bcb/bat-atsm-2/igt@xe_prime_self_import@basic-with_one_bo.html
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-123027v7/bat-atsm-2/igt@xe_prime_self_import@basic-with_one_bo.html

  
#### Warnings ####

  * igt@kms_addfb_basic@basic-y-tiled-legacy:
    - bat-dg2-oem2:       [SKIP][15] ([Intel XE#624]) -> [FAIL][16]
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-399-7c58b58522cf124dd324fbf95d9dd838fac36bcb/bat-dg2-oem2/igt@kms_addfb_basic@basic-y-tiled-legacy.html
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-123027v7/bat-dg2-oem2/igt@kms_addfb_basic@basic-y-tiled-legacy.html
    - bat-adlp-7:         [FAIL][17] ([Intel XE#609]) -> [FAIL][18] +1 other test fail
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-399-7c58b58522cf124dd324fbf95d9dd838fac36bcb/bat-adlp-7/igt@kms_addfb_basic@basic-y-tiled-legacy.html
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-123027v7/bat-adlp-7/igt@kms_addfb_basic@basic-y-tiled-legacy.html

  * igt@kms_addfb_basic@tile-pitch-mismatch:
    - bat-dg2-oem2:       [FAIL][19] ([Intel XE#609]) -> [FAIL][20]
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-399-7c58b58522cf124dd324fbf95d9dd838fac36bcb/bat-dg2-oem2/igt@kms_addfb_basic@tile-pitch-mismatch.html
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-123027v7/bat-dg2-oem2/igt@kms_addfb_basic@tile-pitch-mismatch.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@a-edp1:
    - bat-adlp-7:         [FAIL][21] ([Intel XE#480]) -> [FAIL][22] +2 other tests fail
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-399-7c58b58522cf124dd324fbf95d9dd838fac36bcb/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@a-edp1.html
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-123027v7/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@a-edp1.html

  * igt@kms_frontbuffer_tracking@basic:
    - bat-dg2-oem2:       [FAIL][23] ([Intel XE#608]) -> [FAIL][24]
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-399-7c58b58522cf124dd324fbf95d9dd838fac36bcb/bat-dg2-oem2/igt@kms_frontbuffer_tracking@basic.html
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-123027v7/bat-dg2-oem2/igt@kms_frontbuffer_tracking@basic.html
    - bat-adlp-7:         [INCOMPLETE][25] ([Intel XE#632]) -> [FAIL][26]
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-399-7c58b58522cf124dd324fbf95d9dd838fac36bcb/bat-adlp-7/igt@kms_frontbuffer_tracking@basic.html
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-123027v7/bat-adlp-7/igt@kms_frontbuffer_tracking@basic.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12:
    - bat-dg2-oem2:       [FAIL][27] ([Intel XE#400]) -> [FAIL][28] +2 other tests fail
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-399-7c58b58522cf124dd324fbf95d9dd838fac36bcb/bat-dg2-oem2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12.html
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-123027v7/bat-dg2-oem2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12.html

  * igt@xe_evict@evict-beng-small-external:
    - bat-pvc-2:          [FAIL][29] ([Intel XE#389]) -> [FAIL][30] +3 other tests fail
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-399-7c58b58522cf124dd324fbf95d9dd838fac36bcb/bat-pvc-2/igt@xe_evict@evict-beng-small-external.html
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-123027v7/bat-pvc-2/igt@xe_evict@evict-beng-small-external.html

  * igt@xe_evict@evict-small-cm:
    - bat-pvc-2:          [DMESG-FAIL][31] ([Intel XE#482]) -> [FAIL][32] +3 other tests fail
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-399-7c58b58522cf124dd324fbf95d9dd838fac36bcb/bat-pvc-2/igt@xe_evict@evict-small-cm.html
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-123027v7/bat-pvc-2/igt@xe_evict@evict-small-cm.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][33] -> [FAIL][34] +5 other tests fail
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-399-7c58b58522cf124dd324fbf95d9dd838fac36bcb/bat-dg2-oem2/igt@xe_exec_basic@no-exec-bindexecqueue.html
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-123027v7/bat-dg2-oem2/igt@xe_exec_basic@no-exec-bindexecqueue.html

  * {igt@xe_exec_compute_mode@twice-bindexecqueue}:
    - bat-atsm-2:         [PASS][35] -> [FAIL][36] +5 other tests fail
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-399-7c58b58522cf124dd324fbf95d9dd838fac36bcb/bat-atsm-2/igt@xe_exec_compute_mode@twice-bindexecqueue.html
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-123027v7/bat-atsm-2/igt@xe_exec_compute_mode@twice-bindexecqueue.html

  * {igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-invalidate}:
    - bat-pvc-2:          [PASS][37] -> [FAIL][38] +26 other tests fail
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-399-7c58b58522cf124dd324fbf95d9dd838fac36bcb/bat-pvc-2/igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-invalidate.html
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-123027v7/bat-pvc-2/igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-invalidate.html

  * {igt@xe_vm@bind-execqueues-independent}:
    - bat-adlp-7:         [PASS][39] -> [FAIL][40] +5 other tests fail
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-399-7c58b58522cf124dd324fbf95d9dd838fac36bcb/bat-adlp-7/igt@xe_vm@bind-execqueues-independent.html
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-123027v7/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#389]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/389
  [Intel XE#400]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/400
  [Intel XE#480]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/480
  [Intel XE#482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/482
  [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#624]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/624
  [Intel XE#632]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/632


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

  * Linux: xe-399-7c58b58522cf124dd324fbf95d9dd838fac36bcb -> xe-pw-123027v7

  IGT_7506: 4fdf544bd0a38c5a100ef43c30171827e1c8c442 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-399-7c58b58522cf124dd324fbf95d9dd838fac36bcb: 7c58b58522cf124dd324fbf95d9dd838fac36bcb
  xe-pw-123027v7: 123027v7

== Logs ==

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

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

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

* Re: [Intel-xe] [PATCH v6 1/5] drm/xe/pat: trim the xelp PAT table
  2023-09-28 10:05 ` [Intel-xe] [PATCH v6 1/5] drm/xe/pat: trim the xelp PAT table Matthew Auld
@ 2023-09-28 13:04   ` Lucas De Marchi
  2023-09-28 16:38     ` Matt Roper
  0 siblings, 1 reply; 27+ messages in thread
From: Lucas De Marchi @ 2023-09-28 13:04 UTC (permalink / raw)
  To: Matthew Auld; +Cc: Matt Roper, intel-xe

On Thu, Sep 28, 2023 at 11:05:39AM +0100, Matthew Auld wrote:
>We don't seem to use the 4-7 pat indexes, even though they are defined
>by the HW. In the next patch userspace will be able to directly set the
>pat_index as part of vm_bind and we don't want to allow setting 4-7.
>Simplest is to just ignore them here.

But why do we want to leave them in un-programmed state? Wouldn't it be
more future-proof we we program them to something like UC?

Lucas De Marchi

>
>Suggested-by: Matt Roper <matthew.d.roper@intel.com>
>Signed-off-by: Matthew Auld <matthew.auld@intel.com>
>Cc: Pallavi Mishra <pallavi.mishra@intel.com>
>Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
>---
> drivers/gpu/drm/xe/xe_pat.c | 4 ----
> 1 file changed, 4 deletions(-)
>
>diff --git a/drivers/gpu/drm/xe/xe_pat.c b/drivers/gpu/drm/xe/xe_pat.c
>index 869aee64641f..36b79d675e54 100644
>--- a/drivers/gpu/drm/xe/xe_pat.c
>+++ b/drivers/gpu/drm/xe/xe_pat.c
>@@ -42,10 +42,6 @@ static const u32 xelp_pat_table[] = {
> 	[1] = XELP_PAT_WC,
> 	[2] = XELP_PAT_WT,
> 	[3] = XELP_PAT_UC,
>-	[4] = XELP_PAT_WB,
>-	[5] = XELP_PAT_WB,
>-	[6] = XELP_PAT_WB,
>-	[7] = XELP_PAT_WB,
> };
>
> static const u32 xehpc_pat_table[] = {
>-- 
>2.41.0
>

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

* Re: [Intel-xe] [PATCH v6 2/5] drm/xe: directly use pat_index for pte_encode
  2023-09-28 10:05 ` [Intel-xe] [PATCH v6 2/5] drm/xe: directly use pat_index for pte_encode Matthew Auld
@ 2023-09-28 13:15   ` Lucas De Marchi
  2023-09-29  7:41     ` Matthew Auld
  2023-09-28 19:13   ` Matt Roper
  2023-10-01 15:36   ` Mishra, Pallavi
  2 siblings, 1 reply; 27+ messages in thread
From: Lucas De Marchi @ 2023-09-28 13:15 UTC (permalink / raw)
  To: Matthew Auld; +Cc: Matt Roper, intel-xe

On Thu, Sep 28, 2023 at 11:05:40AM +0100, Matthew Auld wrote:
>diff --git a/drivers/gpu/drm/xe/xe_pt_types.h b/drivers/gpu/drm/xe/xe_pt_types.h
>index bd6645295fe6..355fa8f014e9 100644
>--- a/drivers/gpu/drm/xe/xe_pt_types.h
>+++ b/drivers/gpu/drm/xe/xe_pt_types.h
>@@ -38,14 +38,14 @@ struct xe_pt {
>
> struct xe_pt_ops {
> 	u64 (*pte_encode_bo)(struct xe_bo *bo, u64 bo_offset,
>-			     enum xe_cache_level cache, u32 pt_level);
>+			     u16 pat_index, u32 pt_level);
> 	u64 (*pte_encode_vma)(u64 pte, struct xe_vma *vma,
>-			      enum xe_cache_level cache, u32 pt_level);
>+			      u16 pat_index, u32 pt_level);
> 	u64 (*pte_encode_addr)(struct xe_device *xe, u64 addr,
>-			       enum xe_cache_level cache,
>+			       u16 pat_index,
> 			       u32 pt_level, bool devmem, u64 flags);
> 	u64 (*pde_encode_bo)(struct xe_bo *bo, u64 bo_offset,
>-			     const enum xe_cache_level cache);
>+			     const u16 pat_index);

I think the const enum was a copy-past mistake on my side. Might as well
just remove it here?

Other question is: why is pat_index a u16 instead of u8? I don't think
we have any plans to support more than 256, do we?

Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>

Lucas De Marchi

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

* Re: [Intel-xe] [PATCH v6 1/5] drm/xe/pat: trim the xelp PAT table
  2023-09-28 13:04   ` Lucas De Marchi
@ 2023-09-28 16:38     ` Matt Roper
  2023-09-28 16:41       ` Lucas De Marchi
  0 siblings, 1 reply; 27+ messages in thread
From: Matt Roper @ 2023-09-28 16:38 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: Matthew Auld, intel-xe

On Thu, Sep 28, 2023 at 08:04:18AM -0500, Lucas De Marchi wrote:
> On Thu, Sep 28, 2023 at 11:05:39AM +0100, Matthew Auld wrote:
> > We don't seem to use the 4-7 pat indexes, even though they are defined
> > by the HW. In the next patch userspace will be able to directly set the
> > pat_index as part of vm_bind and we don't want to allow setting 4-7.
> > Simplest is to just ignore them here.
> 
> But why do we want to leave them in un-programmed state? Wouldn't it be
> more future-proof we we program them to something like UC?

By reducing the table here, we prevent these indices from being used by
the uapi, so it's impossible for userspace to ask for them.  PAT only
gets used through the uapi and can't be specified inside instructions
like MOCS can. 

Also, even if we did think there was some way for userspace to get
around us and accidentally utilize these, the hardware defaults are
already set the way we want (maximal caching).  Maximal caching is also
the strategy we use for uninitialized MOCS entries because the
expectation is that userspace is a bit less likely to see a regression
if unused entries become used in the future and switch from more cached
to less cached than they are if they change in the other direction.


Matt

> 
> Lucas De Marchi
> 
> > 
> > Suggested-by: Matt Roper <matthew.d.roper@intel.com>
> > Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> > Cc: Pallavi Mishra <pallavi.mishra@intel.com>
> > Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> > Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
> > ---
> > drivers/gpu/drm/xe/xe_pat.c | 4 ----
> > 1 file changed, 4 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/xe/xe_pat.c b/drivers/gpu/drm/xe/xe_pat.c
> > index 869aee64641f..36b79d675e54 100644
> > --- a/drivers/gpu/drm/xe/xe_pat.c
> > +++ b/drivers/gpu/drm/xe/xe_pat.c
> > @@ -42,10 +42,6 @@ static const u32 xelp_pat_table[] = {
> > 	[1] = XELP_PAT_WC,
> > 	[2] = XELP_PAT_WT,
> > 	[3] = XELP_PAT_UC,
> > -	[4] = XELP_PAT_WB,
> > -	[5] = XELP_PAT_WB,
> > -	[6] = XELP_PAT_WB,
> > -	[7] = XELP_PAT_WB,
> > };
> > 
> > static const u32 xehpc_pat_table[] = {
> > -- 
> > 2.41.0
> > 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation

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

* Re: [Intel-xe] [PATCH v6 1/5] drm/xe/pat: trim the xelp PAT table
  2023-09-28 16:38     ` Matt Roper
@ 2023-09-28 16:41       ` Lucas De Marchi
  0 siblings, 0 replies; 27+ messages in thread
From: Lucas De Marchi @ 2023-09-28 16:41 UTC (permalink / raw)
  To: Matt Roper; +Cc: Matthew Auld, intel-xe

On Thu, Sep 28, 2023 at 09:38:39AM -0700, Matt Roper wrote:
>On Thu, Sep 28, 2023 at 08:04:18AM -0500, Lucas De Marchi wrote:
>> On Thu, Sep 28, 2023 at 11:05:39AM +0100, Matthew Auld wrote:
>> > We don't seem to use the 4-7 pat indexes, even though they are defined
>> > by the HW. In the next patch userspace will be able to directly set the
>> > pat_index as part of vm_bind and we don't want to allow setting 4-7.
>> > Simplest is to just ignore them here.
>>
>> But why do we want to leave them in un-programmed state? Wouldn't it be
>> more future-proof we we program them to something like UC?
>
>By reducing the table here, we prevent these indices from being used by
>the uapi, so it's impossible for userspace to ask for them.  PAT only
>gets used through the uapi and can't be specified inside instructions
>like MOCS can.
>
>Also, even if we did think there was some way for userspace to get
>around us and accidentally utilize these, the hardware defaults are
>already set the way we want (maximal caching).  Maximal caching is also
>the strategy we use for uninitialized MOCS entries because the
>expectation is that userspace is a bit less likely to see a regression
>if unused entries become used in the future and switch from more cached
>to less cached than they are if they change in the other direction.

ok, makes sense. Thanks for the explanation.

Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>


Lucas De Marchi

>
>
>Matt
>
>>
>> Lucas De Marchi
>>
>> >
>> > Suggested-by: Matt Roper <matthew.d.roper@intel.com>
>> > Signed-off-by: Matthew Auld <matthew.auld@intel.com>
>> > Cc: Pallavi Mishra <pallavi.mishra@intel.com>
>> > Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>> > Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
>> > ---
>> > drivers/gpu/drm/xe/xe_pat.c | 4 ----
>> > 1 file changed, 4 deletions(-)
>> >
>> > diff --git a/drivers/gpu/drm/xe/xe_pat.c b/drivers/gpu/drm/xe/xe_pat.c
>> > index 869aee64641f..36b79d675e54 100644
>> > --- a/drivers/gpu/drm/xe/xe_pat.c
>> > +++ b/drivers/gpu/drm/xe/xe_pat.c
>> > @@ -42,10 +42,6 @@ static const u32 xelp_pat_table[] = {
>> > 	[1] = XELP_PAT_WC,
>> > 	[2] = XELP_PAT_WT,
>> > 	[3] = XELP_PAT_UC,
>> > -	[4] = XELP_PAT_WB,
>> > -	[5] = XELP_PAT_WB,
>> > -	[6] = XELP_PAT_WB,
>> > -	[7] = XELP_PAT_WB,
>> > };
>> >
>> > static const u32 xehpc_pat_table[] = {
>> > --
>> > 2.41.0
>> >
>
>-- 
>Matt Roper
>Graphics Software Engineer
>Linux GPU Platform Enablement
>Intel Corporation

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

* Re: [Intel-xe] [PATCH v6 2/5] drm/xe: directly use pat_index for pte_encode
  2023-09-28 10:05 ` [Intel-xe] [PATCH v6 2/5] drm/xe: directly use pat_index for pte_encode Matthew Auld
  2023-09-28 13:15   ` Lucas De Marchi
@ 2023-09-28 19:13   ` Matt Roper
  2023-10-01 15:36   ` Mishra, Pallavi
  2 siblings, 0 replies; 27+ messages in thread
From: Matt Roper @ 2023-09-28 19:13 UTC (permalink / raw)
  To: Matthew Auld; +Cc: Lucas De Marchi, intel-xe

On Thu, Sep 28, 2023 at 11:05:40AM +0100, Matthew Auld wrote:
> In the next patch userspace will be able to directly set the pat_index
> as part of vm_bind. To support this we need to get away from using
> xe_cache_level in the low level routines and rather just use the
> pat_index directly.
> 
> v2: Rebase
> v3: Some missed conversions, also prefer tile_to_xe() (Niranjana)
> 
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> Cc: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
> Cc: Pallavi Mishra <pallavi.mishra@intel.com>
> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> Cc: Matt Roper <matthew.d.roper@intel.com>

Aside from the unnecessary 'const' in the parameter list of
pde_encode_bo that Lucas pointed out,

Reviewed-by: Matt Roper <matthew.d.roper@intel.com>

> ---
>  drivers/gpu/drm/xe/display/xe_fb_pin.c | 10 ++++++----
>  drivers/gpu/drm/xe/tests/xe_migrate.c  |  2 +-
>  drivers/gpu/drm/xe/xe_ggtt.c           | 16 +++++++++-------
>  drivers/gpu/drm/xe/xe_ggtt_types.h     |  3 +--
>  drivers/gpu/drm/xe/xe_migrate.c        | 19 +++++++++++--------
>  drivers/gpu/drm/xe/xe_pt.c             | 11 ++++++-----
>  drivers/gpu/drm/xe/xe_pt_types.h       |  8 ++++----
>  drivers/gpu/drm/xe/xe_vm.c             | 24 +++++++++++-------------
>  8 files changed, 49 insertions(+), 44 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
> index b7a04fba3585..2c36e5032433 100644
> --- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
> +++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
> @@ -30,7 +30,7 @@ write_dpt_rotated(struct xe_bo *bo, struct iosys_map *map, u32 *dpt_ofs, u32 bo_
>  
>  		for (row = 0; row < height; row++) {
>  			u64 pte = ggtt->pt_ops->pte_encode_bo(bo, src_idx * XE_PAGE_SIZE,
> -							      XE_CACHE_WB);
> +							      xe->pat.idx[XE_CACHE_WB]);
>  
>  			iosys_map_wr(map, *dpt_ofs, u64, pte);
>  			*dpt_ofs += 8;
> @@ -84,7 +84,7 @@ static int __xe_pin_fb_vma_dpt(struct intel_framebuffer *fb,
>  
>  		for (x = 0; x < size / XE_PAGE_SIZE; x++) {
>  			u64 pte = ggtt->pt_ops->pte_encode_bo(bo, x * XE_PAGE_SIZE,
> -							      XE_CACHE_WB);
> +							      xe->pat.idx[XE_CACHE_WB]);
>  
>  			iosys_map_wr(&dpt->vmap, x * 8, u64, pte);
>  		}
> @@ -110,6 +110,7 @@ static void
>  write_ggtt_rotated(struct xe_bo *bo, struct xe_ggtt *ggtt, u32 *ggtt_ofs, u32 bo_ofs,
>  		   u32 width, u32 height, u32 src_stride, u32 dst_stride)
>  {
> +	struct xe_device *xe = xe_bo_device(bo);
>  	u32 column, row;
>  
>  	for (column = 0; column < width; column++) {
> @@ -117,7 +118,7 @@ write_ggtt_rotated(struct xe_bo *bo, struct xe_ggtt *ggtt, u32 *ggtt_ofs, u32 bo
>  
>  		for (row = 0; row < height; row++) {
>  			u64 pte = ggtt->pt_ops->pte_encode_bo(bo, src_idx * XE_PAGE_SIZE,
> -							      XE_CACHE_WB);
> +							      xe->pat.idx[XE_CACHE_WB]);
>  
>  			xe_ggtt_set_pte(ggtt, *ggtt_ofs, pte);
>  			*ggtt_ofs += XE_PAGE_SIZE;
> @@ -162,7 +163,8 @@ static int __xe_pin_fb_vma_ggtt(struct intel_framebuffer *fb,
>  			goto out_unlock;
>  
>  		for (x = 0; x < size; x += XE_PAGE_SIZE) {
> -			u64 pte = ggtt->pt_ops->pte_encode_bo(bo, x, XE_CACHE_WB);
> +			u64 pte = ggtt->pt_ops->pte_encode_bo(bo, x,
> +							      xe->pat.idx[XE_CACHE_WB]);
>  
>  			xe_ggtt_set_pte(ggtt, vma->node.start + x, pte);
>  		}
> diff --git a/drivers/gpu/drm/xe/tests/xe_migrate.c b/drivers/gpu/drm/xe/tests/xe_migrate.c
> index 6906ff9d9c31..4c8526af06ce 100644
> --- a/drivers/gpu/drm/xe/tests/xe_migrate.c
> +++ b/drivers/gpu/drm/xe/tests/xe_migrate.c
> @@ -301,7 +301,7 @@ static void xe_migrate_sanity_test(struct xe_migrate *m, struct kunit *test)
>  	/* First part of the test, are we updating our pagetable bo with a new entry? */
>  	xe_map_wr(xe, &bo->vmap, XE_PAGE_SIZE * (NUM_KERNEL_PDE - 1), u64,
>  		  0xdeaddeadbeefbeef);
> -	expected = m->q->vm->pt_ops->pte_encode_bo(pt, 0, XE_CACHE_WB, 0);
> +	expected = m->q->vm->pt_ops->pte_encode_bo(pt, 0, xe->pat.idx[XE_CACHE_WB], 0);
>  	if (m->q->vm->flags & XE_VM_FLAG_64K)
>  		expected |= XE_PTE_PS64;
>  	if (xe_bo_is_vram(pt))
> diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
> index 99b54794917e..354871a6b371 100644
> --- a/drivers/gpu/drm/xe/xe_ggtt.c
> +++ b/drivers/gpu/drm/xe/xe_ggtt.c
> @@ -27,7 +27,7 @@
>  #define GUC_GGTT_TOP	0xFEE00000
>  
>  static u64 xelp_ggtt_pte_encode_bo(struct xe_bo *bo, u64 bo_offset,
> -				   enum xe_cache_level cache)
> +				   u16 pat_index)
>  {
>  	u64 pte;
>  
> @@ -41,13 +41,12 @@ static u64 xelp_ggtt_pte_encode_bo(struct xe_bo *bo, u64 bo_offset,
>  }
>  
>  static u64 xelpg_ggtt_pte_encode_bo(struct xe_bo *bo, u64 bo_offset,
> -				    enum xe_cache_level cache)
> +				    u16 pat_index)
>  {
>  	struct xe_device *xe = xe_bo_device(bo);
> -	u32 pat_index = xe->pat.idx[cache];
>  	u64 pte;
>  
> -	pte = xelp_ggtt_pte_encode_bo(bo, bo_offset, cache);
> +	pte = xelp_ggtt_pte_encode_bo(bo, bo_offset, pat_index);
>  
>  	xe_assert(xe, pat_index <= 3);
>  
> @@ -79,6 +78,7 @@ void xe_ggtt_set_pte(struct xe_ggtt *ggtt, u64 addr, u64 pte)
>  
>  static void xe_ggtt_clear(struct xe_ggtt *ggtt, u64 start, u64 size)
>  {
> +	u16 pat_index = tile_to_xe(ggtt->tile)->pat.idx[XE_CACHE_WB];
>  	u64 end = start + size - 1;
>  	u64 scratch_pte;
>  
> @@ -86,7 +86,7 @@ static void xe_ggtt_clear(struct xe_ggtt *ggtt, u64 start, u64 size)
>  
>  	if (ggtt->scratch)
>  		scratch_pte = ggtt->pt_ops->pte_encode_bo(ggtt->scratch, 0,
> -							  XE_CACHE_WB);
> +							  pat_index);
>  	else
>  		scratch_pte = 0;
>  
> @@ -285,9 +285,10 @@ void xe_ggtt_invalidate(struct xe_ggtt *ggtt)
>  
>  void xe_ggtt_printk(struct xe_ggtt *ggtt, const char *prefix)
>  {
> +	u16 pat_index = tile_to_xe(ggtt->tile)->pat.idx[XE_CACHE_WB];
>  	u64 addr, scratch_pte;
>  
> -	scratch_pte = ggtt->pt_ops->pte_encode_bo(ggtt->scratch, 0, XE_CACHE_WB);
> +	scratch_pte = ggtt->pt_ops->pte_encode_bo(ggtt->scratch, 0, pat_index);
>  
>  	printk("%sGlobal GTT:", prefix);
>  	for (addr = 0; addr < ggtt->size; addr += XE_PAGE_SIZE) {
> @@ -324,11 +325,12 @@ int xe_ggtt_insert_special_node(struct xe_ggtt *ggtt, struct drm_mm_node *node,
>  
>  void xe_ggtt_map_bo(struct xe_ggtt *ggtt, struct xe_bo *bo)
>  {
> +	u16 pat_index = tile_to_xe(ggtt->tile)->pat.idx[XE_CACHE_WB];
>  	u64 start = bo->ggtt_node.start;
>  	u64 offset, pte;
>  
>  	for (offset = 0; offset < bo->size; offset += XE_PAGE_SIZE) {
> -		pte = ggtt->pt_ops->pte_encode_bo(bo, offset, XE_CACHE_WB);
> +		pte = ggtt->pt_ops->pte_encode_bo(bo, offset, pat_index);
>  		xe_ggtt_set_pte(ggtt, start + offset, pte);
>  	}
>  
> diff --git a/drivers/gpu/drm/xe/xe_ggtt_types.h b/drivers/gpu/drm/xe/xe_ggtt_types.h
> index 486016ea5b67..d8c584d9a8c3 100644
> --- a/drivers/gpu/drm/xe/xe_ggtt_types.h
> +++ b/drivers/gpu/drm/xe/xe_ggtt_types.h
> @@ -14,8 +14,7 @@ struct xe_bo;
>  struct xe_gt;
>  
>  struct xe_ggtt_pt_ops {
> -	u64 (*pte_encode_bo)(struct xe_bo *bo, u64 bo_offset,
> -			     enum xe_cache_level cache);
> +	u64 (*pte_encode_bo)(struct xe_bo *bo, u64 bo_offset, u16 pat_index);
>  };
>  
>  struct xe_ggtt {
> diff --git a/drivers/gpu/drm/xe/xe_migrate.c b/drivers/gpu/drm/xe/xe_migrate.c
> index cd2e00008aab..b8b81a9ce2ca 100644
> --- a/drivers/gpu/drm/xe/xe_migrate.c
> +++ b/drivers/gpu/drm/xe/xe_migrate.c
> @@ -158,6 +158,7 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile, struct xe_migrate *m,
>  				 struct xe_vm *vm)
>  {
>  	struct xe_device *xe = tile_to_xe(tile);
> +	u16 pat_index = xe->pat.idx[XE_CACHE_WB];
>  	u8 id = tile->id;
>  	u32 num_entries = NUM_PT_SLOTS, num_level = vm->pt_root[id]->level;
>  	u32 map_ofs, level, i;
> @@ -189,7 +190,7 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile, struct xe_migrate *m,
>  		return ret;
>  	}
>  
> -	entry = vm->pt_ops->pde_encode_bo(bo, bo->size - XE_PAGE_SIZE, XE_CACHE_WB);
> +	entry = vm->pt_ops->pde_encode_bo(bo, bo->size - XE_PAGE_SIZE, pat_index);
>  	xe_pt_write(xe, &vm->pt_root[id]->bo->vmap, 0, entry);
>  
>  	map_ofs = (num_entries - num_level) * XE_PAGE_SIZE;
> @@ -197,7 +198,7 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile, struct xe_migrate *m,
>  	/* Map the entire BO in our level 0 pt */
>  	for (i = 0, level = 0; i < num_entries; level++) {
>  		entry = vm->pt_ops->pte_encode_bo(bo, i * XE_PAGE_SIZE,
> -						  XE_CACHE_WB, 0);
> +						  pat_index, 0);
>  
>  		xe_map_wr(xe, &bo->vmap, map_ofs + level * 8, u64, entry);
>  
> @@ -216,7 +217,7 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile, struct xe_migrate *m,
>  		     i += vm->flags & XE_VM_FLAG_64K ? XE_64K_PAGE_SIZE :
>  		     XE_PAGE_SIZE) {
>  			entry = vm->pt_ops->pte_encode_bo(batch, i,
> -							  XE_CACHE_WB, 0);
> +							  pat_index, 0);
>  
>  			xe_map_wr(xe, &bo->vmap, map_ofs + level * 8, u64,
>  				  entry);
> @@ -241,7 +242,7 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile, struct xe_migrate *m,
>  			flags = XE_PDE_64K;
>  
>  		entry = vm->pt_ops->pde_encode_bo(bo, map_ofs + (level - 1) *
> -						  XE_PAGE_SIZE, XE_CACHE_WB);
> +						  XE_PAGE_SIZE, pat_index);
>  		xe_map_wr(xe, &bo->vmap, map_ofs + XE_PAGE_SIZE * level, u64,
>  			  entry | flags);
>  	}
> @@ -249,7 +250,7 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile, struct xe_migrate *m,
>  	/* Write PDE's that point to our BO. */
>  	for (i = 0; i < num_entries - num_level; i++) {
>  		entry = vm->pt_ops->pde_encode_bo(bo, i * XE_PAGE_SIZE,
> -						  XE_CACHE_WB);
> +						  pat_index);
>  
>  		xe_map_wr(xe, &bo->vmap, map_ofs + XE_PAGE_SIZE +
>  			  (i + 1) * 8, u64, entry);
> @@ -261,7 +262,7 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile, struct xe_migrate *m,
>  
>  		level = 2;
>  		ofs = map_ofs + XE_PAGE_SIZE * level + 256 * 8;
> -		flags = vm->pt_ops->pte_encode_addr(xe, 0, XE_CACHE_WB, level,
> +		flags = vm->pt_ops->pte_encode_addr(xe, 0, pat_index, level,
>  						    true, 0);
>  
>  		/*
> @@ -457,6 +458,7 @@ static void emit_pte(struct xe_migrate *m,
>  		     struct xe_res_cursor *cur,
>  		     u32 size, struct xe_bo *bo)
>  {
> +	u16 pat_index = tile_to_xe(m->tile)->pat.idx[XE_CACHE_WB];
>  	u32 ptes;
>  	u64 ofs = at_pt * XE_PAGE_SIZE;
>  	u64 cur_ofs;
> @@ -500,7 +502,7 @@ static void emit_pte(struct xe_migrate *m,
>  			}
>  
>  			addr = m->q->vm->pt_ops->pte_encode_addr(m->tile->xe,
> -								 addr, XE_CACHE_WB,
> +								 addr, pat_index,
>  								 0, devmem, flags);
>  			bb->cs[bb->len++] = lower_32_bits(addr);
>  			bb->cs[bb->len++] = upper_32_bits(addr);
> @@ -1198,6 +1200,7 @@ xe_migrate_update_pgtables(struct xe_migrate *m,
>  	bool first_munmap_rebind = vma &&
>  		vma->gpuva.flags & XE_VMA_FIRST_REBIND;
>  	struct xe_exec_queue *q_override = !q ? m->q : q;
> +	u16 pat_index = xe->pat.idx[XE_CACHE_WB];
>  
>  	/* Use the CPU if no in syncs and engine is idle */
>  	if (no_in_syncs(syncs, num_syncs) && xe_exec_queue_is_idle(q_override)) {
> @@ -1269,7 +1272,7 @@ xe_migrate_update_pgtables(struct xe_migrate *m,
>  
>  			xe_tile_assert(tile, pt_bo->size == SZ_4K);
>  
> -			addr = vm->pt_ops->pte_encode_bo(pt_bo, 0, XE_CACHE_WB, 0);
> +			addr = vm->pt_ops->pte_encode_bo(pt_bo, 0, pat_index, 0);
>  			bb->cs[bb->len++] = lower_32_bits(addr);
>  			bb->cs[bb->len++] = upper_32_bits(addr);
>  		}
> diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
> index 4d4c6a4c305e..92b512641b4a 100644
> --- a/drivers/gpu/drm/xe/xe_pt.c
> +++ b/drivers/gpu/drm/xe/xe_pt.c
> @@ -50,6 +50,7 @@ static struct xe_pt *xe_pt_entry(struct xe_pt_dir *pt_dir, unsigned int index)
>  static u64 __xe_pt_empty_pte(struct xe_tile *tile, struct xe_vm *vm,
>  			     unsigned int level)
>  {
> +	u16 pat_index = tile_to_xe(tile)->pat.idx[XE_CACHE_WB];
>  	u8 id = tile->id;
>  
>  	if (!vm->scratch_bo[id])
> @@ -57,9 +58,9 @@ static u64 __xe_pt_empty_pte(struct xe_tile *tile, struct xe_vm *vm,
>  
>  	if (level > 0)
>  		return vm->pt_ops->pde_encode_bo(vm->scratch_pt[id][level - 1]->bo,
> -						 0, XE_CACHE_WB);
> +						 0, pat_index);
>  
> -	return vm->pt_ops->pte_encode_bo(vm->scratch_bo[id], 0, XE_CACHE_WB, 0);
> +	return vm->pt_ops->pte_encode_bo(vm->scratch_bo[id], 0, pat_index, 0);
>  }
>  
>  /**
> @@ -510,6 +511,7 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
>  {
>  	struct xe_pt_stage_bind_walk *xe_walk =
>  		container_of(walk, typeof(*xe_walk), base);
> +	u16 pat_index = tile_to_xe(xe_walk->tile)->pat.idx[xe_walk->cache];
>  	struct xe_pt *xe_parent = container_of(parent, typeof(*xe_parent), base);
>  	struct xe_vm *vm = xe_walk->vm;
>  	struct xe_pt *xe_child;
> @@ -526,7 +528,7 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
>  
>  		pte = vm->pt_ops->pte_encode_vma(is_null ? 0 :
>  						 xe_res_dma(curs) + xe_walk->dma_offset,
> -						 xe_walk->vma, xe_walk->cache, level);
> +						 xe_walk->vma, pat_index, level);
>  		pte |= xe_walk->default_pte;
>  
>  		/*
> @@ -591,8 +593,7 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
>  			xe_child->is_compact = true;
>  		}
>  
> -		pte = vm->pt_ops->pde_encode_bo(xe_child->bo, 0,
> -						xe_walk->cache) | flags;
> +		pte = vm->pt_ops->pde_encode_bo(xe_child->bo, 0, pat_index) | flags;
>  		ret = xe_pt_insert_entry(xe_walk, xe_parent, offset, xe_child,
>  					 pte);
>  	}
> diff --git a/drivers/gpu/drm/xe/xe_pt_types.h b/drivers/gpu/drm/xe/xe_pt_types.h
> index bd6645295fe6..355fa8f014e9 100644
> --- a/drivers/gpu/drm/xe/xe_pt_types.h
> +++ b/drivers/gpu/drm/xe/xe_pt_types.h
> @@ -38,14 +38,14 @@ struct xe_pt {
>  
>  struct xe_pt_ops {
>  	u64 (*pte_encode_bo)(struct xe_bo *bo, u64 bo_offset,
> -			     enum xe_cache_level cache, u32 pt_level);
> +			     u16 pat_index, u32 pt_level);
>  	u64 (*pte_encode_vma)(u64 pte, struct xe_vma *vma,
> -			      enum xe_cache_level cache, u32 pt_level);
> +			      u16 pat_index, u32 pt_level);
>  	u64 (*pte_encode_addr)(struct xe_device *xe, u64 addr,
> -			       enum xe_cache_level cache,
> +			       u16 pat_index,
>  			       u32 pt_level, bool devmem, u64 flags);
>  	u64 (*pde_encode_bo)(struct xe_bo *bo, u64 bo_offset,
> -			     const enum xe_cache_level cache);
> +			     const u16 pat_index);
>  };
>  
>  struct xe_pt_entry {
> diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> index beffbb1039d3..4804a0cd8a36 100644
> --- a/drivers/gpu/drm/xe/xe_vm.c
> +++ b/drivers/gpu/drm/xe/xe_vm.c
> @@ -1191,9 +1191,8 @@ static struct drm_gpuva_fn_ops gpuva_ops = {
>  	.op_alloc = xe_vm_op_alloc,
>  };
>  
> -static u64 pde_encode_cache(struct xe_device *xe, enum xe_cache_level cache)
> +static u64 pde_encode_pat_index(struct xe_device *xe, u16 pat_index)
>  {
> -	u32 pat_index = xe->pat.idx[cache];
>  	u64 pte = 0;
>  
>  	if (pat_index & BIT(0))
> @@ -1205,9 +1204,8 @@ static u64 pde_encode_cache(struct xe_device *xe, enum xe_cache_level cache)
>  	return pte;
>  }
>  
> -static u64 pte_encode_cache(struct xe_device *xe, enum xe_cache_level cache)
> +static u64 pte_encode_pat_index(struct xe_device *xe, u16 pat_index)
>  {
> -	u32 pat_index = xe->pat.idx[cache];
>  	u64 pte = 0;
>  
>  	if (pat_index & BIT(0))
> @@ -1238,27 +1236,27 @@ static u64 pte_encode_ps(u32 pt_level)
>  }
>  
>  static u64 xelp_pde_encode_bo(struct xe_bo *bo, u64 bo_offset,
> -			      const enum xe_cache_level cache)
> +			      const u16 pat_index)
>  {
>  	struct xe_device *xe = xe_bo_device(bo);
>  	u64 pde;
>  
>  	pde = xe_bo_addr(bo, bo_offset, XE_PAGE_SIZE);
>  	pde |= XE_PAGE_PRESENT | XE_PAGE_RW;
> -	pde |= pde_encode_cache(xe, cache);
> +	pde |= pde_encode_pat_index(xe, pat_index);
>  
>  	return pde;
>  }
>  
>  static u64 xelp_pte_encode_bo(struct xe_bo *bo, u64 bo_offset,
> -			      enum xe_cache_level cache, u32 pt_level)
> +			      u16 pat_index, u32 pt_level)
>  {
>  	struct xe_device *xe = xe_bo_device(bo);
>  	u64 pte;
>  
>  	pte = xe_bo_addr(bo, bo_offset, XE_PAGE_SIZE);
>  	pte |= XE_PAGE_PRESENT | XE_PAGE_RW;
> -	pte |= pte_encode_cache(xe, cache);
> +	pte |= pte_encode_pat_index(xe, pat_index);
>  	pte |= pte_encode_ps(pt_level);
>  
>  	if (xe_bo_is_vram(bo) || xe_bo_is_stolen_devmem(bo))
> @@ -1268,7 +1266,7 @@ static u64 xelp_pte_encode_bo(struct xe_bo *bo, u64 bo_offset,
>  }
>  
>  static u64 xelp_pte_encode_vma(u64 pte, struct xe_vma *vma,
> -			       enum xe_cache_level cache, u32 pt_level)
> +			       u16 pat_index, u32 pt_level)
>  {
>  	struct xe_device *xe = xe_vma_vm(vma)->xe;
>  
> @@ -1277,7 +1275,7 @@ static u64 xelp_pte_encode_vma(u64 pte, struct xe_vma *vma,
>  	if (likely(!xe_vma_read_only(vma)))
>  		pte |= XE_PAGE_RW;
>  
> -	pte |= pte_encode_cache(xe, cache);
> +	pte |= pte_encode_pat_index(xe, pat_index);
>  	pte |= pte_encode_ps(pt_level);
>  
>  	if (unlikely(xe_vma_is_null(vma)))
> @@ -1287,7 +1285,7 @@ static u64 xelp_pte_encode_vma(u64 pte, struct xe_vma *vma,
>  }
>  
>  static u64 xelp_pte_encode_addr(struct xe_device *xe, u64 addr,
> -				enum xe_cache_level cache,
> +				u16 pat_index,
>  				u32 pt_level, bool devmem, u64 flags)
>  {
>  	u64 pte;
> @@ -1297,7 +1295,7 @@ static u64 xelp_pte_encode_addr(struct xe_device *xe, u64 addr,
>  
>  	pte = addr;
>  	pte |= XE_PAGE_PRESENT | XE_PAGE_RW;
> -	pte |= pte_encode_cache(xe, cache);
> +	pte |= pte_encode_pat_index(xe, pat_index);
>  	pte |= pte_encode_ps(pt_level);
>  
>  	if (devmem)
> @@ -1701,7 +1699,7 @@ struct xe_vm *xe_vm_lookup(struct xe_file *xef, u32 id)
>  u64 xe_vm_pdp4_descriptor(struct xe_vm *vm, struct xe_tile *tile)
>  {
>  	return vm->pt_ops->pde_encode_bo(vm->pt_root[tile->id]->bo, 0,
> -					 XE_CACHE_WB);
> +					 tile_to_xe(tile)->pat.idx[XE_CACHE_WB]);
>  }
>  
>  static struct dma_fence *
> -- 
> 2.41.0
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation

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

* Re: [Intel-xe] [PATCH v6 3/5] drm/xe/uapi: Add support for cache and coherency mode
  2023-09-28 10:05 ` [Intel-xe] [PATCH v6 3/5] drm/xe/uapi: Add support for cache and coherency mode Matthew Auld
@ 2023-09-28 19:32   ` Souza, Jose
  2023-09-29  7:28     ` Matthew Auld
  0 siblings, 1 reply; 27+ messages in thread
From: Souza, Jose @ 2023-09-28 19:32 UTC (permalink / raw)
  To: intel-xe@lists.freedesktop.org, Auld,  Matthew

On Thu, 2023-09-28 at 11:05 +0100, Matthew Auld wrote:
> From: Pallavi Mishra <pallavi.mishra@intel.com>
> 
> Allow userspace to specify the CPU caching mode to use in addition to
> coherency modes during object creation. Modify gem create handler and
> introduce xe_bo_create_user to replace xe_bo_create. In a later patch we
> will support setting the pat_index as part of vm_bind, where expectation
> is that the coherency mode extracted from the pat_index must match the
> one set at object creation.
> 
> v2
>   - s/smem_caching/smem_cpu_caching/ and
>     s/XE_GEM_CACHING/XE_GEM_CPU_CACHING/. (Matt Roper)
>   - Drop COH_2WAY and just use COH_NONE + COH_AT_LEAST_1WAY; KMD mostly
>     just cares that zeroing/swap-in can't be bypassed with the given
>     smem_caching mode. (Matt Roper)
>   - Fix broken range check for coh_mode and smem_cpu_caching and also
>     don't use constant value, but the already defined macros. (José)
>   - Prefer switch statement for smem_cpu_caching -> ttm_caching. (José)
>   - Add note in kernel-doc for dgpu and coherency modes for system
>     memory. (José)
> v3 (José):
>   - Make sure to reject coh_mode == 0 for VRAM-only.
>   - Also make sure to actually pass along the (start, end) for
>     __xe_bo_create_locked.
> v4
>   - Drop UC caching mode. Can be added back if we need it. (Matt Roper)
>   - s/smem_cpu_caching/cpu_caching. Idea is that VRAM is always WC, but
>     that is currently implicit and KMD controlled. Make it explicit in
>     the uapi with the limitation that it currently must be WC. For VRAM
>     + SYS objects userspace must now select WC. (José)
>   - Make sure to initialize bo_flags. (José)
> v5
>   - Make to align with the other uapi and prefix uapi constants with
>     DRM_ (José)
> 
> Signed-off-by: Pallavi Mishra <pallavi.mishra@intel.com>
> Co-developed-by: Matthew Auld <matthew.auld@intel.com>
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> Cc: Matt Roper <matthew.d.roper@intel.com>
> Cc: José Roberto de Souza <jose.souza@intel.com>
> Cc: Filip Hazubski <filip.hazubski@intel.com>
> Cc: Carl Zhang <carl.zhang@intel.com>
> Cc: Effie Yu <effie.yu@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_bo.c       | 113 ++++++++++++++++++++++++-------
>  drivers/gpu/drm/xe/xe_bo.h       |   9 +--
>  drivers/gpu/drm/xe/xe_bo_types.h |  10 +++
>  drivers/gpu/drm/xe/xe_dma_buf.c  |   5 +-
>  include/uapi/drm/xe_drm.h        |  50 +++++++++++++-
>  5 files changed, 154 insertions(+), 33 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
> index 61789c0e88fb..db56f4dce5cb 100644
> --- a/drivers/gpu/drm/xe/xe_bo.c
> +++ b/drivers/gpu/drm/xe/xe_bo.c
> @@ -326,7 +326,7 @@ static struct ttm_tt *xe_ttm_tt_create(struct ttm_buffer_object *ttm_bo,
>  	struct xe_device *xe = xe_bo_device(bo);
>  	struct xe_ttm_tt *tt;
>  	unsigned long extra_pages;
> -	enum ttm_caching caching = ttm_cached;
> +	enum ttm_caching caching;
>  	int err;
>  
>  	tt = kzalloc(sizeof(*tt), GFP_KERNEL);
> @@ -340,13 +340,22 @@ static struct ttm_tt *xe_ttm_tt_create(struct ttm_buffer_object *ttm_bo,
>  		extra_pages = DIV_ROUND_UP(xe_device_ccs_bytes(xe, bo->size),
>  					   PAGE_SIZE);
>  
> +	switch (bo->cpu_caching) {
> +	case DRM_XE_GEM_CPU_CACHING_WC:
> +		caching = ttm_write_combined;
> +		break;
> +	default:
> +		caching = ttm_cached;
> +		break;
> +	}
> +
>  	/*
>  	 * Display scanout is always non-coherent with the CPU cache.
>  	 *
>  	 * For Xe_LPG and beyond, PPGTT PTE lookups are also non-coherent and
>  	 * require a CPU:WC mapping.
>  	 */
> -	if (bo->flags & XE_BO_SCANOUT_BIT ||
> +	if ((!bo->cpu_caching && bo->flags & XE_BO_SCANOUT_BIT) ||

bo->cpu_caching == 0 is not allowed so I don't see a point in check it here.

I believe we should also drop XE_BO_SCANOUT_BIT, keep XE_GEM_CREATE_FLAG_SCANOUT in uAPI, check if cpu_caching is WC when XE_GEM_CREATE_FLAG_SCANOUT
is set but drop the internal flag, this we could do as a follow up.

So with !bo->cpu_caching remove this patch is 

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


>  	    (xe->info.graphics_verx100 >= 1270 && bo->flags & XE_BO_PAGETABLE))
>  		caching = ttm_write_combined;
>  
> @@ -1190,10 +1199,11 @@ void xe_bo_free(struct xe_bo *bo)
>  	kfree(bo);
>  }
>  
> -struct xe_bo *__xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
> -				    struct xe_tile *tile, struct dma_resv *resv,
> -				    struct ttm_lru_bulk_move *bulk, size_t size,
> -				    enum ttm_bo_type type, u32 flags)
> +struct xe_bo *___xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
> +				     struct xe_tile *tile, struct dma_resv *resv,
> +				     struct ttm_lru_bulk_move *bulk, size_t size,
> +				     u16 cpu_caching, u16 coh_mode,
> +				     enum ttm_bo_type type, u32 flags)
>  {
>  	struct ttm_operation_ctx ctx = {
>  		.interruptible = true,
> @@ -1231,6 +1241,8 @@ struct xe_bo *__xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
>  	bo->tile = tile;
>  	bo->size = size;
>  	bo->flags = flags;
> +	bo->cpu_caching = cpu_caching;
> +	bo->coh_mode = coh_mode;
>  	bo->ttm.base.funcs = &xe_gem_object_funcs;
>  	bo->props.preferred_mem_class = XE_BO_PROPS_INVALID;
>  	bo->props.preferred_gt = XE_BO_PROPS_INVALID;
> @@ -1315,11 +1327,12 @@ static int __xe_bo_fixed_placement(struct xe_device *xe,
>  	return 0;
>  }
>  
> -struct xe_bo *
> -xe_bo_create_locked_range(struct xe_device *xe,
> -			  struct xe_tile *tile, struct xe_vm *vm,
> -			  size_t size, u64 start, u64 end,
> -			  enum ttm_bo_type type, u32 flags)
> +static struct xe_bo *
> +__xe_bo_create_locked(struct xe_device *xe,
> +		      struct xe_tile *tile, struct xe_vm *vm,
> +		      size_t size, u64 start, u64 end,
> +		      u16 cpu_caching, u16 coh_mode,
> +		      enum ttm_bo_type type, u32 flags)
>  {
>  	struct xe_bo *bo = NULL;
>  	int err;
> @@ -1340,11 +1353,12 @@ xe_bo_create_locked_range(struct xe_device *xe,
>  		}
>  	}
>  
> -	bo = __xe_bo_create_locked(xe, bo, tile, vm ? &vm->resv : NULL,
> -				   vm && !xe_vm_in_fault_mode(vm) &&
> -				   flags & XE_BO_CREATE_USER_BIT ?
> -				   &vm->lru_bulk_move : NULL, size,
> -				   type, flags);
> +	bo = ___xe_bo_create_locked(xe, bo, tile, vm ? &vm->resv : NULL,
> +				    vm && !xe_vm_in_fault_mode(vm) &&
> +				    flags & XE_BO_CREATE_USER_BIT ?
> +				    &vm->lru_bulk_move : NULL, size,
> +				    cpu_caching, coh_mode,
> +				    type, flags);
>  	if (IS_ERR(bo))
>  		return bo;
>  
> @@ -1377,11 +1391,35 @@ xe_bo_create_locked_range(struct xe_device *xe,
>  	return ERR_PTR(err);
>  }
>  
> +struct xe_bo *
> +xe_bo_create_locked_range(struct xe_device *xe,
> +			  struct xe_tile *tile, struct xe_vm *vm,
> +			  size_t size, u64 start, u64 end,
> +			  enum ttm_bo_type type, u32 flags)
> +{
> +	return __xe_bo_create_locked(xe, tile, vm, size, start, end, 0, 0, type, flags);
> +}
> +
>  struct xe_bo *xe_bo_create_locked(struct xe_device *xe, struct xe_tile *tile,
>  				  struct xe_vm *vm, size_t size,
>  				  enum ttm_bo_type type, u32 flags)
>  {
> -	return xe_bo_create_locked_range(xe, tile, vm, size, 0, ~0ULL, type, flags);
> +	return __xe_bo_create_locked(xe, tile, vm, size, 0, ~0ULL, 0, 0, type, flags);
> +}
> +
> +static struct xe_bo *xe_bo_create_user(struct xe_device *xe, struct xe_tile *tile,
> +				       struct xe_vm *vm, size_t size,
> +				       u16 cpu_caching, u16 coh_mode,
> +				       enum ttm_bo_type type,
> +				       u32 flags)
> +{
> +	struct xe_bo *bo = __xe_bo_create_locked(xe, tile, vm, size, 0, ~0ULL,
> +						 cpu_caching, coh_mode, type,
> +						 flags | XE_BO_CREATE_USER_BIT);
> +	if (!IS_ERR(bo))
> +		xe_bo_unlock_vm_held(bo);
> +
> +	return bo;
>  }
>  
>  struct xe_bo *xe_bo_create(struct xe_device *xe, struct xe_tile *tile,
> @@ -1764,11 +1802,11 @@ int xe_gem_create_ioctl(struct drm_device *dev, void *data,
>  	struct drm_xe_gem_create *args = data;
>  	struct xe_vm *vm = NULL;
>  	struct xe_bo *bo;
> -	unsigned int bo_flags = XE_BO_CREATE_USER_BIT;
> +	unsigned int bo_flags;
>  	u32 handle;
>  	int err;
>  
> -	if (XE_IOCTL_DBG(xe, args->extensions) || XE_IOCTL_DBG(xe, args->pad) ||
> +	if (XE_IOCTL_DBG(xe, args->extensions) ||
>  	    XE_IOCTL_DBG(xe, args->reserved[0] || args->reserved[1]))
>  		return -EINVAL;
>  
> @@ -1795,6 +1833,7 @@ int xe_gem_create_ioctl(struct drm_device *dev, void *data,
>  	if (XE_IOCTL_DBG(xe, args->size & ~PAGE_MASK))
>  		return -EINVAL;
>  
> +	bo_flags = 0;
>  	if (args->flags & XE_GEM_CREATE_FLAG_DEFER_BACKING)
>  		bo_flags |= XE_BO_DEFER_BACKING;
>  
> @@ -1810,6 +1849,26 @@ int xe_gem_create_ioctl(struct drm_device *dev, void *data,
>  		bo_flags |= XE_BO_NEEDS_CPU_ACCESS;
>  	}
>  
> +	if (XE_IOCTL_DBG(xe, !args->coh_mode ||
> +			 args->coh_mode > DRM_XE_GEM_COH_AT_LEAST_1WAY))
> +		return -EINVAL;
> +
> +	if (XE_IOCTL_DBG(xe, !args->cpu_caching ||
> +			 args->cpu_caching > DRM_XE_GEM_CPU_CACHING_WC))
> +		return -EINVAL;
> +
> +	if (XE_IOCTL_DBG(xe, bo_flags & XE_BO_CREATE_VRAM_MASK &&
> +			 args->cpu_caching != DRM_XE_GEM_CPU_CACHING_WC))
> +		return -EINVAL;
> +
> +	if (XE_IOCTL_DBG(xe, bo_flags & XE_BO_SCANOUT_BIT &&
> +			 args->cpu_caching == DRM_XE_GEM_CPU_CACHING_WB))
> +		return -EINVAL;
> +
> +	if (XE_IOCTL_DBG(xe, args->coh_mode == DRM_XE_GEM_COH_NONE &&
> +			 args->cpu_caching == DRM_XE_GEM_CPU_CACHING_WB))
> +		return -EINVAL;
> +
>  	if (args->vm_id) {
>  		vm = xe_vm_lookup(xef, args->vm_id);
>  		if (XE_IOCTL_DBG(xe, !vm))
> @@ -1821,8 +1880,10 @@ int xe_gem_create_ioctl(struct drm_device *dev, void *data,
>  		}
>  	}
>  
> -	bo = xe_bo_create(xe, NULL, vm, args->size, ttm_bo_type_device,
> -			  bo_flags);
> +	bo = xe_bo_create_user(xe, NULL, vm, args->size,
> +			       args->cpu_caching, args->coh_mode,
> +			       ttm_bo_type_device,
> +			       bo_flags);
>  	if (IS_ERR(bo)) {
>  		err = PTR_ERR(bo);
>  		goto out_vm;
> @@ -2114,10 +2175,12 @@ int xe_bo_dumb_create(struct drm_file *file_priv,
>  	args->size = ALIGN(mul_u32_u32(args->pitch, args->height),
>  			   page_size);
>  
> -	bo = xe_bo_create(xe, NULL, NULL, args->size, ttm_bo_type_device,
> -			  XE_BO_CREATE_VRAM_IF_DGFX(xe_device_get_root_tile(xe)) |
> -			  XE_BO_CREATE_USER_BIT | XE_BO_SCANOUT_BIT |
> -			  XE_BO_NEEDS_CPU_ACCESS);
> +	bo = xe_bo_create_user(xe, NULL, NULL, args->size,
> +			       DRM_XE_GEM_CPU_CACHING_WC, DRM_XE_GEM_COH_NONE,
> +			       ttm_bo_type_device,
> +			       XE_BO_CREATE_VRAM_IF_DGFX(xe_device_get_root_tile(xe)) |
> +			       XE_BO_CREATE_USER_BIT | XE_BO_SCANOUT_BIT |
> +			       XE_BO_NEEDS_CPU_ACCESS);
>  	if (IS_ERR(bo))
>  		return PTR_ERR(bo);
>  
> diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
> index 5090bdd1e462..e4f57a116de7 100644
> --- a/drivers/gpu/drm/xe/xe_bo.h
> +++ b/drivers/gpu/drm/xe/xe_bo.h
> @@ -83,10 +83,11 @@ struct sg_table;
>  struct xe_bo *xe_bo_alloc(void);
>  void xe_bo_free(struct xe_bo *bo);
>  
> -struct xe_bo *__xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
> -				    struct xe_tile *tile, struct dma_resv *resv,
> -				    struct ttm_lru_bulk_move *bulk, size_t size,
> -				    enum ttm_bo_type type, u32 flags);
> +struct xe_bo *___xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
> +				     struct xe_tile *tile, struct dma_resv *resv,
> +				     struct ttm_lru_bulk_move *bulk, size_t size,
> +				     u16 cpu_caching, u16 coh_mode,
> +				     enum ttm_bo_type type, u32 flags);
>  struct xe_bo *
>  xe_bo_create_locked_range(struct xe_device *xe,
>  			  struct xe_tile *tile, struct xe_vm *vm,
> diff --git a/drivers/gpu/drm/xe/xe_bo_types.h b/drivers/gpu/drm/xe/xe_bo_types.h
> index 051fe990c133..56f7f9a4975f 100644
> --- a/drivers/gpu/drm/xe/xe_bo_types.h
> +++ b/drivers/gpu/drm/xe/xe_bo_types.h
> @@ -76,6 +76,16 @@ struct xe_bo {
>  	struct llist_node freed;
>  	/** @created: Whether the bo has passed initial creation */
>  	bool created;
> +	/**
> +	 * @coh_mode: Coherency setting. Currently only used for userspace
> +	 * objects.
> +	 */
> +	u16 coh_mode;
> +	/**
> +	 * @cpu_caching: CPU caching mode. Currently only used for userspace
> +	 * objects.
> +	 */
> +	u16 cpu_caching;
>  };
>  
>  #define intel_bo_to_drm_bo(bo) (&(bo)->ttm.base)
> diff --git a/drivers/gpu/drm/xe/xe_dma_buf.c b/drivers/gpu/drm/xe/xe_dma_buf.c
> index cfde3be3b0dc..9da5cffeef13 100644
> --- a/drivers/gpu/drm/xe/xe_dma_buf.c
> +++ b/drivers/gpu/drm/xe/xe_dma_buf.c
> @@ -214,8 +214,9 @@ xe_dma_buf_init_obj(struct drm_device *dev, struct xe_bo *storage,
>  	int ret;
>  
>  	dma_resv_lock(resv, NULL);
> -	bo = __xe_bo_create_locked(xe, storage, NULL, resv, NULL, dma_buf->size,
> -				   ttm_bo_type_sg, XE_BO_CREATE_SYSTEM_BIT);
> +	bo = ___xe_bo_create_locked(xe, storage, NULL, resv, NULL, dma_buf->size,
> +				    0, 0, /* Will require 1way or 2way for vm_bind */
> +				    ttm_bo_type_sg, XE_BO_CREATE_SYSTEM_BIT);
>  	if (IS_ERR(bo)) {
>  		ret = PTR_ERR(bo);
>  		goto error;
> diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> index d48d8e3c898c..ec4cdbc8d2bd 100644
> --- a/include/uapi/drm/xe_drm.h
> +++ b/include/uapi/drm/xe_drm.h
> @@ -456,8 +456,54 @@ struct drm_xe_gem_create {
>  	 */
>  	__u32 handle;
>  
> -	/** @pad: MBZ */
> -	__u32 pad;
> +	/**
> +	 * @coh_mode: The coherency mode for this object. This will limit the
> +	 * possible @cpu_caching values.
> +	 *
> +	 * Supported values:
> +	 *
> +	 * DRM_XE_GEM_COH_NONE: GPU access is assumed to be not coherent with
> +	 * CPU. CPU caches are not snooped.
> +	 *
> +	 * DRM_XE_GEM_COH_AT_LEAST_1WAY:
> +	 *
> +	 * CPU-GPU coherency must be at least 1WAY.
> +	 *
> +	 * If 1WAY then GPU access is coherent with CPU (CPU caches are snooped)
> +	 * until GPU acquires. The acquire by the GPU is not tracked by CPU
> +	 * caches.
> +	 *
> +	 * If 2WAY then should be fully coherent between GPU and CPU.  Fully
> +	 * tracked by CPU caches. Both CPU and GPU caches are snooped.
> +	 *
> +	 * Note: On dgpu the GPU device never caches system memory. The device
> +	 * should be thought of as always 1WAY coherent, with the addition that
> +	 * the GPU never caches system memory. At least on current dgpu HW there
> +	 * is no way to turn off snooping so likely the different coherency
> +	 * modes of the pat_index make no difference for system memory.
> +	 */
> +#define DRM_XE_GEM_COH_NONE		1
> +#define DRM_XE_GEM_COH_AT_LEAST_1WAY	2
> +	__u16 coh_mode;
> +
> +	/**
> +	 * @cpu_caching: The CPU caching mode to select for this object. If
> +	 * mmaping the object the mode selected here will also be used.
> +	 *
> +	 * Supported values:
> +	 *
> +	 * DRM_XE_GEM_CPU_CACHING_WB: Allocate the pages with write-back caching.
> +	 * On iGPU this can't be used for scanout surfaces. The @coh_mode must
> +	 * be DRM_XE_GEM_COH_AT_LEAST_1WAY. Currently not allowed for objects placed
> +	 * in VRAM.
> +	 *
> +	 * DRM_XE_GEM_CPU_CACHING_WC: Allocate the pages as write-combined. This is
> +	 * uncached. Any @coh_mode is permitted. Scanout surfaces should likely
> +	 * use this. All objects that can be placed in VRAM must use this.
> +	 */
> +#define DRM_XE_GEM_CPU_CACHING_WB                      1
> +#define DRM_XE_GEM_CPU_CACHING_WC                      2
> +	__u16 cpu_caching;
>  
>  	/** @reserved: Reserved */
>  	__u64 reserved[2];


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

* Re: [Intel-xe] [PATCH v6 0/5] PAT and cache coherency support
  2023-09-28 10:05 [Intel-xe] [PATCH v6 0/5] PAT and cache coherency support Matthew Auld
                   ` (11 preceding siblings ...)
  2023-09-28 11:02 ` [Intel-xe] ✗ CI.BAT: failure " Patchwork
@ 2023-09-28 19:40 ` Souza, Jose
  2023-09-28 20:02   ` Souza, Jose
  12 siblings, 1 reply; 27+ messages in thread
From: Souza, Jose @ 2023-09-28 19:40 UTC (permalink / raw)
  To: intel-xe@lists.freedesktop.org, Auld,  Matthew

On Thu, 2023-09-28 at 11:05 +0100, Matthew Auld wrote:
> Branch available here:
> https://gitlab.freedesktop.org/mwa/kernel/-/tree/xe-pat-index?ref_type=heads
> 
> Goal here is to allow userspace to directly control the pat_index when mapping
> memory via the ppGTT, in addtion to the CPU caching mode. This is very much
> needed on newer igpu platforms which allow incoherent GT access, where the
> choice over the cache level and expected coherency is best left to userspace
> depending on their usecase.  In the future there may also be other stuff encoded
> in the pat_index, so giving userspace direct control will also be needed there.
> 
> To support this we added new gem_create uAPI for selecting the CPU cache
> mode to use for system memory, including the expected GPU coherency mode. There
> are various restrictions here for the selected coherency mode and compatible CPU
> cache modes.  With that in place the actual pat_index can now be provided as
> part of vm_bind. The only restriction is that the coherency mode of the
> pat_index must be at least as coherent as the gem_create coherency mode. There
> are also some special cases like with userptr and dma-buf.
> 
> v2:
>   - Loads of improvements/tweaks. Main changes are to now allow
>     gem_create.coh_mode <= coh_mode(pat_index), rather than it needing to match
>     exactly. This simplifies the dma-buf policy from userspace pov. Also we now
>     only consider COH_NONE and COH_AT_LEAST_1WAY.
> v3:
>   - Rebase. Split the pte_encode() refactoring, plus various smaller tweaks and
>     fixes.
> v4:
>   - Rebase on Lucas' new series.
>   - Drop UC cache mode.
>   - s/smem_cpu_caching/cpu_caching/. Idea is to make VRAM WC explicit in the
>     uapi, plus make it more future proof.
> v5:
>   - Rebase, plus some small tweaks and fixes.
> v6:
>   - CI hooks fixes + checkpatch.
> 

With comment in patch 3/6 fixed this series is:
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Tested-by: José Roberto de Souza <jose.souza@intel.com>

Thank you

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

* Re: [Intel-xe] [PATCH v6 0/5] PAT and cache coherency support
  2023-09-28 19:40 ` [Intel-xe] [PATCH v6 0/5] PAT and cache coherency support Souza, Jose
@ 2023-09-28 20:02   ` Souza, Jose
  2023-09-29  7:29     ` Matthew Auld
  0 siblings, 1 reply; 27+ messages in thread
From: Souza, Jose @ 2023-09-28 20:02 UTC (permalink / raw)
  To: intel-xe@lists.freedesktop.org, Auld,  Matthew

On Thu, 2023-09-28 at 12:40 -0700, José Roberto de Souza wrote:
> On Thu, 2023-09-28 at 11:05 +0100, Matthew Auld wrote:
> > Branch available here:
> > https://gitlab.freedesktop.org/mwa/kernel/-/tree/xe-pat-index?ref_type=heads
> > 
> > Goal here is to allow userspace to directly control the pat_index when mapping
> > memory via the ppGTT, in addtion to the CPU caching mode. This is very much
> > needed on newer igpu platforms which allow incoherent GT access, where the
> > choice over the cache level and expected coherency is best left to userspace
> > depending on their usecase.  In the future there may also be other stuff encoded
> > in the pat_index, so giving userspace direct control will also be needed there.
> > 
> > To support this we added new gem_create uAPI for selecting the CPU cache
> > mode to use for system memory, including the expected GPU coherency mode. There
> > are various restrictions here for the selected coherency mode and compatible CPU
> > cache modes.  With that in place the actual pat_index can now be provided as
> > part of vm_bind. The only restriction is that the coherency mode of the
> > pat_index must be at least as coherent as the gem_create coherency mode. There
> > are also some special cases like with userptr and dma-buf.
> > 
> > v2:
> >   - Loads of improvements/tweaks. Main changes are to now allow
> >     gem_create.coh_mode <= coh_mode(pat_index), rather than it needing to match
> >     exactly. This simplifies the dma-buf policy from userspace pov. Also we now
> >     only consider COH_NONE and COH_AT_LEAST_1WAY.
> > v3:
> >   - Rebase. Split the pte_encode() refactoring, plus various smaller tweaks and
> >     fixes.
> > v4:
> >   - Rebase on Lucas' new series.
> >   - Drop UC cache mode.
> >   - s/smem_cpu_caching/cpu_caching/. Idea is to make VRAM WC explicit in the
> >     uapi, plus make it more future proof.
> > v5:
> >   - Rebase, plus some small tweaks and fixes.
> > v6:
> >   - CI hooks fixes + checkpatch.
> > 
> 
> With comment in patch 3/6 fixed this series is:
> Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
> Tested-by: José Roberto de Souza <jose.souza@intel.com>

Here the Mesa implementation: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25462

> 
> Thank you


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

* Re: [Intel-xe] [PATCH v6 3/5] drm/xe/uapi: Add support for cache and coherency mode
  2023-09-28 19:32   ` Souza, Jose
@ 2023-09-29  7:28     ` Matthew Auld
  2023-09-29 14:00       ` Souza, Jose
  0 siblings, 1 reply; 27+ messages in thread
From: Matthew Auld @ 2023-09-29  7:28 UTC (permalink / raw)
  To: Souza, Jose, intel-xe@lists.freedesktop.org

On 28/09/2023 20:32, Souza, Jose wrote:
> On Thu, 2023-09-28 at 11:05 +0100, Matthew Auld wrote:
>> From: Pallavi Mishra <pallavi.mishra@intel.com>
>>
>> Allow userspace to specify the CPU caching mode to use in addition to
>> coherency modes during object creation. Modify gem create handler and
>> introduce xe_bo_create_user to replace xe_bo_create. In a later patch we
>> will support setting the pat_index as part of vm_bind, where expectation
>> is that the coherency mode extracted from the pat_index must match the
>> one set at object creation.
>>
>> v2
>>    - s/smem_caching/smem_cpu_caching/ and
>>      s/XE_GEM_CACHING/XE_GEM_CPU_CACHING/. (Matt Roper)
>>    - Drop COH_2WAY and just use COH_NONE + COH_AT_LEAST_1WAY; KMD mostly
>>      just cares that zeroing/swap-in can't be bypassed with the given
>>      smem_caching mode. (Matt Roper)
>>    - Fix broken range check for coh_mode and smem_cpu_caching and also
>>      don't use constant value, but the already defined macros. (José)
>>    - Prefer switch statement for smem_cpu_caching -> ttm_caching. (José)
>>    - Add note in kernel-doc for dgpu and coherency modes for system
>>      memory. (José)
>> v3 (José):
>>    - Make sure to reject coh_mode == 0 for VRAM-only.
>>    - Also make sure to actually pass along the (start, end) for
>>      __xe_bo_create_locked.
>> v4
>>    - Drop UC caching mode. Can be added back if we need it. (Matt Roper)
>>    - s/smem_cpu_caching/cpu_caching. Idea is that VRAM is always WC, but
>>      that is currently implicit and KMD controlled. Make it explicit in
>>      the uapi with the limitation that it currently must be WC. For VRAM
>>      + SYS objects userspace must now select WC. (José)
>>    - Make sure to initialize bo_flags. (José)
>> v5
>>    - Make to align with the other uapi and prefix uapi constants with
>>      DRM_ (José)
>>
>> Signed-off-by: Pallavi Mishra <pallavi.mishra@intel.com>
>> Co-developed-by: Matthew Auld <matthew.auld@intel.com>
>> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
>> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
>> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
>> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>> Cc: Matt Roper <matthew.d.roper@intel.com>
>> Cc: José Roberto de Souza <jose.souza@intel.com>
>> Cc: Filip Hazubski <filip.hazubski@intel.com>
>> Cc: Carl Zhang <carl.zhang@intel.com>
>> Cc: Effie Yu <effie.yu@intel.com>
>> ---
>>   drivers/gpu/drm/xe/xe_bo.c       | 113 ++++++++++++++++++++++++-------
>>   drivers/gpu/drm/xe/xe_bo.h       |   9 +--
>>   drivers/gpu/drm/xe/xe_bo_types.h |  10 +++
>>   drivers/gpu/drm/xe/xe_dma_buf.c  |   5 +-
>>   include/uapi/drm/xe_drm.h        |  50 +++++++++++++-
>>   5 files changed, 154 insertions(+), 33 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
>> index 61789c0e88fb..db56f4dce5cb 100644
>> --- a/drivers/gpu/drm/xe/xe_bo.c
>> +++ b/drivers/gpu/drm/xe/xe_bo.c
>> @@ -326,7 +326,7 @@ static struct ttm_tt *xe_ttm_tt_create(struct ttm_buffer_object *ttm_bo,
>>   	struct xe_device *xe = xe_bo_device(bo);
>>   	struct xe_ttm_tt *tt;
>>   	unsigned long extra_pages;
>> -	enum ttm_caching caching = ttm_cached;
>> +	enum ttm_caching caching;
>>   	int err;
>>   
>>   	tt = kzalloc(sizeof(*tt), GFP_KERNEL);
>> @@ -340,13 +340,22 @@ static struct ttm_tt *xe_ttm_tt_create(struct ttm_buffer_object *ttm_bo,
>>   		extra_pages = DIV_ROUND_UP(xe_device_ccs_bytes(xe, bo->size),
>>   					   PAGE_SIZE);
>>   
>> +	switch (bo->cpu_caching) {
>> +	case DRM_XE_GEM_CPU_CACHING_WC:
>> +		caching = ttm_write_combined;
>> +		break;
>> +	default:
>> +		caching = ttm_cached;
>> +		break;
>> +	}
>> +
>>   	/*
>>   	 * Display scanout is always non-coherent with the CPU cache.
>>   	 *
>>   	 * For Xe_LPG and beyond, PPGTT PTE lookups are also non-coherent and
>>   	 * require a CPU:WC mapping.
>>   	 */
>> -	if (bo->flags & XE_BO_SCANOUT_BIT ||
>> +	if ((!bo->cpu_caching && bo->flags & XE_BO_SCANOUT_BIT) ||
> 
> bo->cpu_caching == 0 is not allowed so I don't see a point in check it here.
> 
> I believe we should also drop XE_BO_SCANOUT_BIT, keep XE_GEM_CREATE_FLAG_SCANOUT in uAPI, check if cpu_caching is WC when XE_GEM_CREATE_FLAG_SCANOUT
> is set but drop the internal flag, this we could do as a follow up.
> 
> So with !bo->cpu_caching remove this patch is

The !bo->cpu_caching is currently needed for KMD created objects, and 
same with the XE_BO_SCANOUT_BIT check. We don't currently expose the 
coh_mode or cpu_caching for KMD internal users, so we just pick a sane 
default here instead.

Perhaps needs a XE_BO_CREATE_USER_BIT check to make this clearer?

i.e WARN_ON((bo->flags & XE_BO_CREATE_USER_BIT) && !bo->cpu_caching)

> 
> Reviewed-by: José Roberto de Souza <jose.souza@intel.com
> 
> 
>>   	    (xe->info.graphics_verx100 >= 1270 && bo->flags & XE_BO_PAGETABLE))
>>   		caching = ttm_write_combined;
>>   
>> @@ -1190,10 +1199,11 @@ void xe_bo_free(struct xe_bo *bo)
>>   	kfree(bo);
>>   }
>>   
>> -struct xe_bo *__xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
>> -				    struct xe_tile *tile, struct dma_resv *resv,
>> -				    struct ttm_lru_bulk_move *bulk, size_t size,
>> -				    enum ttm_bo_type type, u32 flags)
>> +struct xe_bo *___xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
>> +				     struct xe_tile *tile, struct dma_resv *resv,
>> +				     struct ttm_lru_bulk_move *bulk, size_t size,
>> +				     u16 cpu_caching, u16 coh_mode,
>> +				     enum ttm_bo_type type, u32 flags)
>>   {
>>   	struct ttm_operation_ctx ctx = {
>>   		.interruptible = true,
>> @@ -1231,6 +1241,8 @@ struct xe_bo *__xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
>>   	bo->tile = tile;
>>   	bo->size = size;
>>   	bo->flags = flags;
>> +	bo->cpu_caching = cpu_caching;
>> +	bo->coh_mode = coh_mode;
>>   	bo->ttm.base.funcs = &xe_gem_object_funcs;
>>   	bo->props.preferred_mem_class = XE_BO_PROPS_INVALID;
>>   	bo->props.preferred_gt = XE_BO_PROPS_INVALID;
>> @@ -1315,11 +1327,12 @@ static int __xe_bo_fixed_placement(struct xe_device *xe,
>>   	return 0;
>>   }
>>   
>> -struct xe_bo *
>> -xe_bo_create_locked_range(struct xe_device *xe,
>> -			  struct xe_tile *tile, struct xe_vm *vm,
>> -			  size_t size, u64 start, u64 end,
>> -			  enum ttm_bo_type type, u32 flags)
>> +static struct xe_bo *
>> +__xe_bo_create_locked(struct xe_device *xe,
>> +		      struct xe_tile *tile, struct xe_vm *vm,
>> +		      size_t size, u64 start, u64 end,
>> +		      u16 cpu_caching, u16 coh_mode,
>> +		      enum ttm_bo_type type, u32 flags)
>>   {
>>   	struct xe_bo *bo = NULL;
>>   	int err;
>> @@ -1340,11 +1353,12 @@ xe_bo_create_locked_range(struct xe_device *xe,
>>   		}
>>   	}
>>   
>> -	bo = __xe_bo_create_locked(xe, bo, tile, vm ? &vm->resv : NULL,
>> -				   vm && !xe_vm_in_fault_mode(vm) &&
>> -				   flags & XE_BO_CREATE_USER_BIT ?
>> -				   &vm->lru_bulk_move : NULL, size,
>> -				   type, flags);
>> +	bo = ___xe_bo_create_locked(xe, bo, tile, vm ? &vm->resv : NULL,
>> +				    vm && !xe_vm_in_fault_mode(vm) &&
>> +				    flags & XE_BO_CREATE_USER_BIT ?
>> +				    &vm->lru_bulk_move : NULL, size,
>> +				    cpu_caching, coh_mode,
>> +				    type, flags);
>>   	if (IS_ERR(bo))
>>   		return bo;
>>   
>> @@ -1377,11 +1391,35 @@ xe_bo_create_locked_range(struct xe_device *xe,
>>   	return ERR_PTR(err);
>>   }
>>   
>> +struct xe_bo *
>> +xe_bo_create_locked_range(struct xe_device *xe,
>> +			  struct xe_tile *tile, struct xe_vm *vm,
>> +			  size_t size, u64 start, u64 end,
>> +			  enum ttm_bo_type type, u32 flags)
>> +{
>> +	return __xe_bo_create_locked(xe, tile, vm, size, start, end, 0, 0, type, flags);
>> +}
>> +
>>   struct xe_bo *xe_bo_create_locked(struct xe_device *xe, struct xe_tile *tile,
>>   				  struct xe_vm *vm, size_t size,
>>   				  enum ttm_bo_type type, u32 flags)
>>   {
>> -	return xe_bo_create_locked_range(xe, tile, vm, size, 0, ~0ULL, type, flags);
>> +	return __xe_bo_create_locked(xe, tile, vm, size, 0, ~0ULL, 0, 0, type, flags);
>> +}
>> +
>> +static struct xe_bo *xe_bo_create_user(struct xe_device *xe, struct xe_tile *tile,
>> +				       struct xe_vm *vm, size_t size,
>> +				       u16 cpu_caching, u16 coh_mode,
>> +				       enum ttm_bo_type type,
>> +				       u32 flags)
>> +{
>> +	struct xe_bo *bo = __xe_bo_create_locked(xe, tile, vm, size, 0, ~0ULL,
>> +						 cpu_caching, coh_mode, type,
>> +						 flags | XE_BO_CREATE_USER_BIT);
>> +	if (!IS_ERR(bo))
>> +		xe_bo_unlock_vm_held(bo);
>> +
>> +	return bo;
>>   }
>>   
>>   struct xe_bo *xe_bo_create(struct xe_device *xe, struct xe_tile *tile,
>> @@ -1764,11 +1802,11 @@ int xe_gem_create_ioctl(struct drm_device *dev, void *data,
>>   	struct drm_xe_gem_create *args = data;
>>   	struct xe_vm *vm = NULL;
>>   	struct xe_bo *bo;
>> -	unsigned int bo_flags = XE_BO_CREATE_USER_BIT;
>> +	unsigned int bo_flags;
>>   	u32 handle;
>>   	int err;
>>   
>> -	if (XE_IOCTL_DBG(xe, args->extensions) || XE_IOCTL_DBG(xe, args->pad) ||
>> +	if (XE_IOCTL_DBG(xe, args->extensions) ||
>>   	    XE_IOCTL_DBG(xe, args->reserved[0] || args->reserved[1]))
>>   		return -EINVAL;
>>   
>> @@ -1795,6 +1833,7 @@ int xe_gem_create_ioctl(struct drm_device *dev, void *data,
>>   	if (XE_IOCTL_DBG(xe, args->size & ~PAGE_MASK))
>>   		return -EINVAL;
>>   
>> +	bo_flags = 0;
>>   	if (args->flags & XE_GEM_CREATE_FLAG_DEFER_BACKING)
>>   		bo_flags |= XE_BO_DEFER_BACKING;
>>   
>> @@ -1810,6 +1849,26 @@ int xe_gem_create_ioctl(struct drm_device *dev, void *data,
>>   		bo_flags |= XE_BO_NEEDS_CPU_ACCESS;
>>   	}
>>   
>> +	if (XE_IOCTL_DBG(xe, !args->coh_mode ||
>> +			 args->coh_mode > DRM_XE_GEM_COH_AT_LEAST_1WAY))
>> +		return -EINVAL;
>> +
>> +	if (XE_IOCTL_DBG(xe, !args->cpu_caching ||
>> +			 args->cpu_caching > DRM_XE_GEM_CPU_CACHING_WC))
>> +		return -EINVAL;
>> +
>> +	if (XE_IOCTL_DBG(xe, bo_flags & XE_BO_CREATE_VRAM_MASK &&
>> +			 args->cpu_caching != DRM_XE_GEM_CPU_CACHING_WC))
>> +		return -EINVAL;
>> +
>> +	if (XE_IOCTL_DBG(xe, bo_flags & XE_BO_SCANOUT_BIT &&
>> +			 args->cpu_caching == DRM_XE_GEM_CPU_CACHING_WB))
>> +		return -EINVAL;
>> +
>> +	if (XE_IOCTL_DBG(xe, args->coh_mode == DRM_XE_GEM_COH_NONE &&
>> +			 args->cpu_caching == DRM_XE_GEM_CPU_CACHING_WB))
>> +		return -EINVAL;
>> +
>>   	if (args->vm_id) {
>>   		vm = xe_vm_lookup(xef, args->vm_id);
>>   		if (XE_IOCTL_DBG(xe, !vm))
>> @@ -1821,8 +1880,10 @@ int xe_gem_create_ioctl(struct drm_device *dev, void *data,
>>   		}
>>   	}
>>   
>> -	bo = xe_bo_create(xe, NULL, vm, args->size, ttm_bo_type_device,
>> -			  bo_flags);
>> +	bo = xe_bo_create_user(xe, NULL, vm, args->size,
>> +			       args->cpu_caching, args->coh_mode,
>> +			       ttm_bo_type_device,
>> +			       bo_flags);
>>   	if (IS_ERR(bo)) {
>>   		err = PTR_ERR(bo);
>>   		goto out_vm;
>> @@ -2114,10 +2175,12 @@ int xe_bo_dumb_create(struct drm_file *file_priv,
>>   	args->size = ALIGN(mul_u32_u32(args->pitch, args->height),
>>   			   page_size);
>>   
>> -	bo = xe_bo_create(xe, NULL, NULL, args->size, ttm_bo_type_device,
>> -			  XE_BO_CREATE_VRAM_IF_DGFX(xe_device_get_root_tile(xe)) |
>> -			  XE_BO_CREATE_USER_BIT | XE_BO_SCANOUT_BIT |
>> -			  XE_BO_NEEDS_CPU_ACCESS);
>> +	bo = xe_bo_create_user(xe, NULL, NULL, args->size,
>> +			       DRM_XE_GEM_CPU_CACHING_WC, DRM_XE_GEM_COH_NONE,
>> +			       ttm_bo_type_device,
>> +			       XE_BO_CREATE_VRAM_IF_DGFX(xe_device_get_root_tile(xe)) |
>> +			       XE_BO_CREATE_USER_BIT | XE_BO_SCANOUT_BIT |
>> +			       XE_BO_NEEDS_CPU_ACCESS);
>>   	if (IS_ERR(bo))
>>   		return PTR_ERR(bo);
>>   
>> diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
>> index 5090bdd1e462..e4f57a116de7 100644
>> --- a/drivers/gpu/drm/xe/xe_bo.h
>> +++ b/drivers/gpu/drm/xe/xe_bo.h
>> @@ -83,10 +83,11 @@ struct sg_table;
>>   struct xe_bo *xe_bo_alloc(void);
>>   void xe_bo_free(struct xe_bo *bo);
>>   
>> -struct xe_bo *__xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
>> -				    struct xe_tile *tile, struct dma_resv *resv,
>> -				    struct ttm_lru_bulk_move *bulk, size_t size,
>> -				    enum ttm_bo_type type, u32 flags);
>> +struct xe_bo *___xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
>> +				     struct xe_tile *tile, struct dma_resv *resv,
>> +				     struct ttm_lru_bulk_move *bulk, size_t size,
>> +				     u16 cpu_caching, u16 coh_mode,
>> +				     enum ttm_bo_type type, u32 flags);
>>   struct xe_bo *
>>   xe_bo_create_locked_range(struct xe_device *xe,
>>   			  struct xe_tile *tile, struct xe_vm *vm,
>> diff --git a/drivers/gpu/drm/xe/xe_bo_types.h b/drivers/gpu/drm/xe/xe_bo_types.h
>> index 051fe990c133..56f7f9a4975f 100644
>> --- a/drivers/gpu/drm/xe/xe_bo_types.h
>> +++ b/drivers/gpu/drm/xe/xe_bo_types.h
>> @@ -76,6 +76,16 @@ struct xe_bo {
>>   	struct llist_node freed;
>>   	/** @created: Whether the bo has passed initial creation */
>>   	bool created;
>> +	/**
>> +	 * @coh_mode: Coherency setting. Currently only used for userspace
>> +	 * objects.
>> +	 */
>> +	u16 coh_mode;
>> +	/**
>> +	 * @cpu_caching: CPU caching mode. Currently only used for userspace
>> +	 * objects.
>> +	 */
>> +	u16 cpu_caching;
>>   };
>>   
>>   #define intel_bo_to_drm_bo(bo) (&(bo)->ttm.base)
>> diff --git a/drivers/gpu/drm/xe/xe_dma_buf.c b/drivers/gpu/drm/xe/xe_dma_buf.c
>> index cfde3be3b0dc..9da5cffeef13 100644
>> --- a/drivers/gpu/drm/xe/xe_dma_buf.c
>> +++ b/drivers/gpu/drm/xe/xe_dma_buf.c
>> @@ -214,8 +214,9 @@ xe_dma_buf_init_obj(struct drm_device *dev, struct xe_bo *storage,
>>   	int ret;
>>   
>>   	dma_resv_lock(resv, NULL);
>> -	bo = __xe_bo_create_locked(xe, storage, NULL, resv, NULL, dma_buf->size,
>> -				   ttm_bo_type_sg, XE_BO_CREATE_SYSTEM_BIT);
>> +	bo = ___xe_bo_create_locked(xe, storage, NULL, resv, NULL, dma_buf->size,
>> +				    0, 0, /* Will require 1way or 2way for vm_bind */
>> +				    ttm_bo_type_sg, XE_BO_CREATE_SYSTEM_BIT);
>>   	if (IS_ERR(bo)) {
>>   		ret = PTR_ERR(bo);
>>   		goto error;
>> diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
>> index d48d8e3c898c..ec4cdbc8d2bd 100644
>> --- a/include/uapi/drm/xe_drm.h
>> +++ b/include/uapi/drm/xe_drm.h
>> @@ -456,8 +456,54 @@ struct drm_xe_gem_create {
>>   	 */
>>   	__u32 handle;
>>   
>> -	/** @pad: MBZ */
>> -	__u32 pad;
>> +	/**
>> +	 * @coh_mode: The coherency mode for this object. This will limit the
>> +	 * possible @cpu_caching values.
>> +	 *
>> +	 * Supported values:
>> +	 *
>> +	 * DRM_XE_GEM_COH_NONE: GPU access is assumed to be not coherent with
>> +	 * CPU. CPU caches are not snooped.
>> +	 *
>> +	 * DRM_XE_GEM_COH_AT_LEAST_1WAY:
>> +	 *
>> +	 * CPU-GPU coherency must be at least 1WAY.
>> +	 *
>> +	 * If 1WAY then GPU access is coherent with CPU (CPU caches are snooped)
>> +	 * until GPU acquires. The acquire by the GPU is not tracked by CPU
>> +	 * caches.
>> +	 *
>> +	 * If 2WAY then should be fully coherent between GPU and CPU.  Fully
>> +	 * tracked by CPU caches. Both CPU and GPU caches are snooped.
>> +	 *
>> +	 * Note: On dgpu the GPU device never caches system memory. The device
>> +	 * should be thought of as always 1WAY coherent, with the addition that
>> +	 * the GPU never caches system memory. At least on current dgpu HW there
>> +	 * is no way to turn off snooping so likely the different coherency
>> +	 * modes of the pat_index make no difference for system memory.
>> +	 */
>> +#define DRM_XE_GEM_COH_NONE		1
>> +#define DRM_XE_GEM_COH_AT_LEAST_1WAY	2
>> +	__u16 coh_mode;
>> +
>> +	/**
>> +	 * @cpu_caching: The CPU caching mode to select for this object. If
>> +	 * mmaping the object the mode selected here will also be used.
>> +	 *
>> +	 * Supported values:
>> +	 *
>> +	 * DRM_XE_GEM_CPU_CACHING_WB: Allocate the pages with write-back caching.
>> +	 * On iGPU this can't be used for scanout surfaces. The @coh_mode must
>> +	 * be DRM_XE_GEM_COH_AT_LEAST_1WAY. Currently not allowed for objects placed
>> +	 * in VRAM.
>> +	 *
>> +	 * DRM_XE_GEM_CPU_CACHING_WC: Allocate the pages as write-combined. This is
>> +	 * uncached. Any @coh_mode is permitted. Scanout surfaces should likely
>> +	 * use this. All objects that can be placed in VRAM must use this.
>> +	 */
>> +#define DRM_XE_GEM_CPU_CACHING_WB                      1
>> +#define DRM_XE_GEM_CPU_CACHING_WC                      2
>> +	__u16 cpu_caching;
>>   
>>   	/** @reserved: Reserved */
>>   	__u64 reserved[2];
> 

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

* Re: [Intel-xe] [PATCH v6 0/5] PAT and cache coherency support
  2023-09-28 20:02   ` Souza, Jose
@ 2023-09-29  7:29     ` Matthew Auld
  0 siblings, 0 replies; 27+ messages in thread
From: Matthew Auld @ 2023-09-29  7:29 UTC (permalink / raw)
  To: Souza, Jose, intel-xe@lists.freedesktop.org

On 28/09/2023 21:02, Souza, Jose wrote:
> On Thu, 2023-09-28 at 12:40 -0700, José Roberto de Souza wrote:
>> On Thu, 2023-09-28 at 11:05 +0100, Matthew Auld wrote:
>>> Branch available here:
>>> https://gitlab.freedesktop.org/mwa/kernel/-/tree/xe-pat-index?ref_type=heads
>>>
>>> Goal here is to allow userspace to directly control the pat_index when mapping
>>> memory via the ppGTT, in addtion to the CPU caching mode. This is very much
>>> needed on newer igpu platforms which allow incoherent GT access, where the
>>> choice over the cache level and expected coherency is best left to userspace
>>> depending on their usecase.  In the future there may also be other stuff encoded
>>> in the pat_index, so giving userspace direct control will also be needed there.
>>>
>>> To support this we added new gem_create uAPI for selecting the CPU cache
>>> mode to use for system memory, including the expected GPU coherency mode. There
>>> are various restrictions here for the selected coherency mode and compatible CPU
>>> cache modes.  With that in place the actual pat_index can now be provided as
>>> part of vm_bind. The only restriction is that the coherency mode of the
>>> pat_index must be at least as coherent as the gem_create coherency mode. There
>>> are also some special cases like with userptr and dma-buf.
>>>
>>> v2:
>>>    - Loads of improvements/tweaks. Main changes are to now allow
>>>      gem_create.coh_mode <= coh_mode(pat_index), rather than it needing to match
>>>      exactly. This simplifies the dma-buf policy from userspace pov. Also we now
>>>      only consider COH_NONE and COH_AT_LEAST_1WAY.
>>> v3:
>>>    - Rebase. Split the pte_encode() refactoring, plus various smaller tweaks and
>>>      fixes.
>>> v4:
>>>    - Rebase on Lucas' new series.
>>>    - Drop UC cache mode.
>>>    - s/smem_cpu_caching/cpu_caching/. Idea is to make VRAM WC explicit in the
>>>      uapi, plus make it more future proof.
>>> v5:
>>>    - Rebase, plus some small tweaks and fixes.
>>> v6:
>>>    - CI hooks fixes + checkpatch.
>>>
>>
>> With comment in patch 3/6 fixed this series is:
>> Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
>> Tested-by: José Roberto de Souza <jose.souza@intel.com>
> 
> Here the Mesa implementation: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25462

Thanks.

> 
>>
>> Thank you
> 

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

* Re: [Intel-xe] [PATCH v6 2/5] drm/xe: directly use pat_index for pte_encode
  2023-09-28 13:15   ` Lucas De Marchi
@ 2023-09-29  7:41     ` Matthew Auld
  0 siblings, 0 replies; 27+ messages in thread
From: Matthew Auld @ 2023-09-29  7:41 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: Matt Roper, intel-xe

On 28/09/2023 14:15, Lucas De Marchi wrote:
> On Thu, Sep 28, 2023 at 11:05:40AM +0100, Matthew Auld wrote:
>> diff --git a/drivers/gpu/drm/xe/xe_pt_types.h 
>> b/drivers/gpu/drm/xe/xe_pt_types.h
>> index bd6645295fe6..355fa8f014e9 100644
>> --- a/drivers/gpu/drm/xe/xe_pt_types.h
>> +++ b/drivers/gpu/drm/xe/xe_pt_types.h
>> @@ -38,14 +38,14 @@ struct xe_pt {
>>
>> struct xe_pt_ops {
>>     u64 (*pte_encode_bo)(struct xe_bo *bo, u64 bo_offset,
>> -                 enum xe_cache_level cache, u32 pt_level);
>> +                 u16 pat_index, u32 pt_level);
>>     u64 (*pte_encode_vma)(u64 pte, struct xe_vma *vma,
>> -                  enum xe_cache_level cache, u32 pt_level);
>> +                  u16 pat_index, u32 pt_level);
>>     u64 (*pte_encode_addr)(struct xe_device *xe, u64 addr,
>> -                   enum xe_cache_level cache,
>> +                   u16 pat_index,
>>                    u32 pt_level, bool devmem, u64 flags);
>>     u64 (*pde_encode_bo)(struct xe_bo *bo, u64 bo_offset,
>> -                 const enum xe_cache_level cache);
>> +                 const u16 pat_index);
> 
> I think the const enum was a copy-past mistake on my side. Might as well
> just remove it here?
> 
> Other question is: why is pat_index a u16 instead of u8? I don't think
> we have any plans to support more than 256, do we?

It's likely overkill. I was just worried since we are already at ~32 on 
xe2 and every time you add a new bit/memory attribute you might get a 
combinatorial explosion.

I can make it u8 if you prefer.

> 
> Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
> 
> Lucas De Marchi

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

* Re: [Intel-xe] [PATCH v6 3/5] drm/xe/uapi: Add support for cache and coherency mode
  2023-09-29  7:28     ` Matthew Auld
@ 2023-09-29 14:00       ` Souza, Jose
  0 siblings, 0 replies; 27+ messages in thread
From: Souza, Jose @ 2023-09-29 14:00 UTC (permalink / raw)
  To: intel-xe@lists.freedesktop.org, Auld,  Matthew

On Fri, 2023-09-29 at 08:28 +0100, Matthew Auld wrote:
> On 28/09/2023 20:32, Souza, Jose wrote:
> > On Thu, 2023-09-28 at 11:05 +0100, Matthew Auld wrote:
> > > From: Pallavi Mishra <pallavi.mishra@intel.com>
> > > 
> > > Allow userspace to specify the CPU caching mode to use in addition to
> > > coherency modes during object creation. Modify gem create handler and
> > > introduce xe_bo_create_user to replace xe_bo_create. In a later patch we
> > > will support setting the pat_index as part of vm_bind, where expectation
> > > is that the coherency mode extracted from the pat_index must match the
> > > one set at object creation.
> > > 
> > > v2
> > >    - s/smem_caching/smem_cpu_caching/ and
> > >      s/XE_GEM_CACHING/XE_GEM_CPU_CACHING/. (Matt Roper)
> > >    - Drop COH_2WAY and just use COH_NONE + COH_AT_LEAST_1WAY; KMD mostly
> > >      just cares that zeroing/swap-in can't be bypassed with the given
> > >      smem_caching mode. (Matt Roper)
> > >    - Fix broken range check for coh_mode and smem_cpu_caching and also
> > >      don't use constant value, but the already defined macros. (José)
> > >    - Prefer switch statement for smem_cpu_caching -> ttm_caching. (José)
> > >    - Add note in kernel-doc for dgpu and coherency modes for system
> > >      memory. (José)
> > > v3 (José):
> > >    - Make sure to reject coh_mode == 0 for VRAM-only.
> > >    - Also make sure to actually pass along the (start, end) for
> > >      __xe_bo_create_locked.
> > > v4
> > >    - Drop UC caching mode. Can be added back if we need it. (Matt Roper)
> > >    - s/smem_cpu_caching/cpu_caching. Idea is that VRAM is always WC, but
> > >      that is currently implicit and KMD controlled. Make it explicit in
> > >      the uapi with the limitation that it currently must be WC. For VRAM
> > >      + SYS objects userspace must now select WC. (José)
> > >    - Make sure to initialize bo_flags. (José)
> > > v5
> > >    - Make to align with the other uapi and prefix uapi constants with
> > >      DRM_ (José)
> > > 
> > > Signed-off-by: Pallavi Mishra <pallavi.mishra@intel.com>
> > > Co-developed-by: Matthew Auld <matthew.auld@intel.com>
> > > Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> > > Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> > > Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> > > Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> > > Cc: Matt Roper <matthew.d.roper@intel.com>
> > > Cc: José Roberto de Souza <jose.souza@intel.com>
> > > Cc: Filip Hazubski <filip.hazubski@intel.com>
> > > Cc: Carl Zhang <carl.zhang@intel.com>
> > > Cc: Effie Yu <effie.yu@intel.com>
> > > ---
> > >   drivers/gpu/drm/xe/xe_bo.c       | 113 ++++++++++++++++++++++++-------
> > >   drivers/gpu/drm/xe/xe_bo.h       |   9 +--
> > >   drivers/gpu/drm/xe/xe_bo_types.h |  10 +++
> > >   drivers/gpu/drm/xe/xe_dma_buf.c  |   5 +-
> > >   include/uapi/drm/xe_drm.h        |  50 +++++++++++++-
> > >   5 files changed, 154 insertions(+), 33 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
> > > index 61789c0e88fb..db56f4dce5cb 100644
> > > --- a/drivers/gpu/drm/xe/xe_bo.c
> > > +++ b/drivers/gpu/drm/xe/xe_bo.c
> > > @@ -326,7 +326,7 @@ static struct ttm_tt *xe_ttm_tt_create(struct ttm_buffer_object *ttm_bo,
> > >   	struct xe_device *xe = xe_bo_device(bo);
> > >   	struct xe_ttm_tt *tt;
> > >   	unsigned long extra_pages;
> > > -	enum ttm_caching caching = ttm_cached;
> > > +	enum ttm_caching caching;
> > >   	int err;
> > >   
> > >   	tt = kzalloc(sizeof(*tt), GFP_KERNEL);
> > > @@ -340,13 +340,22 @@ static struct ttm_tt *xe_ttm_tt_create(struct ttm_buffer_object *ttm_bo,
> > >   		extra_pages = DIV_ROUND_UP(xe_device_ccs_bytes(xe, bo->size),
> > >   					   PAGE_SIZE);
> > >   
> > > +	switch (bo->cpu_caching) {
> > > +	case DRM_XE_GEM_CPU_CACHING_WC:
> > > +		caching = ttm_write_combined;
> > > +		break;
> > > +	default:
> > > +		caching = ttm_cached;
> > > +		break;
> > > +	}
> > > +
> > >   	/*
> > >   	 * Display scanout is always non-coherent with the CPU cache.
> > >   	 *
> > >   	 * For Xe_LPG and beyond, PPGTT PTE lookups are also non-coherent and
> > >   	 * require a CPU:WC mapping.
> > >   	 */
> > > -	if (bo->flags & XE_BO_SCANOUT_BIT ||
> > > +	if ((!bo->cpu_caching && bo->flags & XE_BO_SCANOUT_BIT) ||
> > 
> > bo->cpu_caching == 0 is not allowed so I don't see a point in check it here.
> > 
> > I believe we should also drop XE_BO_SCANOUT_BIT, keep XE_GEM_CREATE_FLAG_SCANOUT in uAPI, check if cpu_caching is WC when XE_GEM_CREATE_FLAG_SCANOUT
> > is set but drop the internal flag, this we could do as a follow up.
> > 
> > So with !bo->cpu_caching remove this patch is
> 
> The !bo->cpu_caching is currently needed for KMD created objects, and 
> same with the XE_BO_SCANOUT_BIT check. We don't currently expose the 
> coh_mode or cpu_caching for KMD internal users, so we just pick a sane 
> default here instead.
> 
> Perhaps needs a XE_BO_CREATE_USER_BIT check to make this clearer?
> 
> i.e WARN_ON((bo->flags & XE_BO_CREATE_USER_BIT) && !bo->cpu_caching)

Okay, sounds better with this warn_on

> 
> > 
> > Reviewed-by: José Roberto de Souza <jose.souza@intel.com
> > 
> > 
> > >   	    (xe->info.graphics_verx100 >= 1270 && bo->flags & XE_BO_PAGETABLE))
> > >   		caching = ttm_write_combined;
> > >   
> > > @@ -1190,10 +1199,11 @@ void xe_bo_free(struct xe_bo *bo)
> > >   	kfree(bo);
> > >   }
> > >   
> > > -struct xe_bo *__xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
> > > -				    struct xe_tile *tile, struct dma_resv *resv,
> > > -				    struct ttm_lru_bulk_move *bulk, size_t size,
> > > -				    enum ttm_bo_type type, u32 flags)
> > > +struct xe_bo *___xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
> > > +				     struct xe_tile *tile, struct dma_resv *resv,
> > > +				     struct ttm_lru_bulk_move *bulk, size_t size,
> > > +				     u16 cpu_caching, u16 coh_mode,
> > > +				     enum ttm_bo_type type, u32 flags)
> > >   {
> > >   	struct ttm_operation_ctx ctx = {
> > >   		.interruptible = true,
> > > @@ -1231,6 +1241,8 @@ struct xe_bo *__xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
> > >   	bo->tile = tile;
> > >   	bo->size = size;
> > >   	bo->flags = flags;
> > > +	bo->cpu_caching = cpu_caching;
> > > +	bo->coh_mode = coh_mode;
> > >   	bo->ttm.base.funcs = &xe_gem_object_funcs;
> > >   	bo->props.preferred_mem_class = XE_BO_PROPS_INVALID;
> > >   	bo->props.preferred_gt = XE_BO_PROPS_INVALID;
> > > @@ -1315,11 +1327,12 @@ static int __xe_bo_fixed_placement(struct xe_device *xe,
> > >   	return 0;
> > >   }
> > >   
> > > -struct xe_bo *
> > > -xe_bo_create_locked_range(struct xe_device *xe,
> > > -			  struct xe_tile *tile, struct xe_vm *vm,
> > > -			  size_t size, u64 start, u64 end,
> > > -			  enum ttm_bo_type type, u32 flags)
> > > +static struct xe_bo *
> > > +__xe_bo_create_locked(struct xe_device *xe,
> > > +		      struct xe_tile *tile, struct xe_vm *vm,
> > > +		      size_t size, u64 start, u64 end,
> > > +		      u16 cpu_caching, u16 coh_mode,
> > > +		      enum ttm_bo_type type, u32 flags)
> > >   {
> > >   	struct xe_bo *bo = NULL;
> > >   	int err;
> > > @@ -1340,11 +1353,12 @@ xe_bo_create_locked_range(struct xe_device *xe,
> > >   		}
> > >   	}
> > >   
> > > -	bo = __xe_bo_create_locked(xe, bo, tile, vm ? &vm->resv : NULL,
> > > -				   vm && !xe_vm_in_fault_mode(vm) &&
> > > -				   flags & XE_BO_CREATE_USER_BIT ?
> > > -				   &vm->lru_bulk_move : NULL, size,
> > > -				   type, flags);
> > > +	bo = ___xe_bo_create_locked(xe, bo, tile, vm ? &vm->resv : NULL,
> > > +				    vm && !xe_vm_in_fault_mode(vm) &&
> > > +				    flags & XE_BO_CREATE_USER_BIT ?
> > > +				    &vm->lru_bulk_move : NULL, size,
> > > +				    cpu_caching, coh_mode,
> > > +				    type, flags);
> > >   	if (IS_ERR(bo))
> > >   		return bo;
> > >   
> > > @@ -1377,11 +1391,35 @@ xe_bo_create_locked_range(struct xe_device *xe,
> > >   	return ERR_PTR(err);
> > >   }
> > >   
> > > +struct xe_bo *
> > > +xe_bo_create_locked_range(struct xe_device *xe,
> > > +			  struct xe_tile *tile, struct xe_vm *vm,
> > > +			  size_t size, u64 start, u64 end,
> > > +			  enum ttm_bo_type type, u32 flags)
> > > +{
> > > +	return __xe_bo_create_locked(xe, tile, vm, size, start, end, 0, 0, type, flags);
> > > +}
> > > +
> > >   struct xe_bo *xe_bo_create_locked(struct xe_device *xe, struct xe_tile *tile,
> > >   				  struct xe_vm *vm, size_t size,
> > >   				  enum ttm_bo_type type, u32 flags)
> > >   {
> > > -	return xe_bo_create_locked_range(xe, tile, vm, size, 0, ~0ULL, type, flags);
> > > +	return __xe_bo_create_locked(xe, tile, vm, size, 0, ~0ULL, 0, 0, type, flags);
> > > +}
> > > +
> > > +static struct xe_bo *xe_bo_create_user(struct xe_device *xe, struct xe_tile *tile,
> > > +				       struct xe_vm *vm, size_t size,
> > > +				       u16 cpu_caching, u16 coh_mode,
> > > +				       enum ttm_bo_type type,
> > > +				       u32 flags)
> > > +{
> > > +	struct xe_bo *bo = __xe_bo_create_locked(xe, tile, vm, size, 0, ~0ULL,
> > > +						 cpu_caching, coh_mode, type,
> > > +						 flags | XE_BO_CREATE_USER_BIT);
> > > +	if (!IS_ERR(bo))
> > > +		xe_bo_unlock_vm_held(bo);
> > > +
> > > +	return bo;
> > >   }
> > >   
> > >   struct xe_bo *xe_bo_create(struct xe_device *xe, struct xe_tile *tile,
> > > @@ -1764,11 +1802,11 @@ int xe_gem_create_ioctl(struct drm_device *dev, void *data,
> > >   	struct drm_xe_gem_create *args = data;
> > >   	struct xe_vm *vm = NULL;
> > >   	struct xe_bo *bo;
> > > -	unsigned int bo_flags = XE_BO_CREATE_USER_BIT;
> > > +	unsigned int bo_flags;
> > >   	u32 handle;
> > >   	int err;
> > >   
> > > -	if (XE_IOCTL_DBG(xe, args->extensions) || XE_IOCTL_DBG(xe, args->pad) ||
> > > +	if (XE_IOCTL_DBG(xe, args->extensions) ||
> > >   	    XE_IOCTL_DBG(xe, args->reserved[0] || args->reserved[1]))
> > >   		return -EINVAL;
> > >   
> > > @@ -1795,6 +1833,7 @@ int xe_gem_create_ioctl(struct drm_device *dev, void *data,
> > >   	if (XE_IOCTL_DBG(xe, args->size & ~PAGE_MASK))
> > >   		return -EINVAL;
> > >   
> > > +	bo_flags = 0;
> > >   	if (args->flags & XE_GEM_CREATE_FLAG_DEFER_BACKING)
> > >   		bo_flags |= XE_BO_DEFER_BACKING;
> > >   
> > > @@ -1810,6 +1849,26 @@ int xe_gem_create_ioctl(struct drm_device *dev, void *data,
> > >   		bo_flags |= XE_BO_NEEDS_CPU_ACCESS;
> > >   	}
> > >   
> > > +	if (XE_IOCTL_DBG(xe, !args->coh_mode ||
> > > +			 args->coh_mode > DRM_XE_GEM_COH_AT_LEAST_1WAY))
> > > +		return -EINVAL;
> > > +
> > > +	if (XE_IOCTL_DBG(xe, !args->cpu_caching ||
> > > +			 args->cpu_caching > DRM_XE_GEM_CPU_CACHING_WC))
> > > +		return -EINVAL;
> > > +
> > > +	if (XE_IOCTL_DBG(xe, bo_flags & XE_BO_CREATE_VRAM_MASK &&
> > > +			 args->cpu_caching != DRM_XE_GEM_CPU_CACHING_WC))
> > > +		return -EINVAL;
> > > +
> > > +	if (XE_IOCTL_DBG(xe, bo_flags & XE_BO_SCANOUT_BIT &&
> > > +			 args->cpu_caching == DRM_XE_GEM_CPU_CACHING_WB))
> > > +		return -EINVAL;
> > > +
> > > +	if (XE_IOCTL_DBG(xe, args->coh_mode == DRM_XE_GEM_COH_NONE &&
> > > +			 args->cpu_caching == DRM_XE_GEM_CPU_CACHING_WB))
> > > +		return -EINVAL;
> > > +
> > >   	if (args->vm_id) {
> > >   		vm = xe_vm_lookup(xef, args->vm_id);
> > >   		if (XE_IOCTL_DBG(xe, !vm))
> > > @@ -1821,8 +1880,10 @@ int xe_gem_create_ioctl(struct drm_device *dev, void *data,
> > >   		}
> > >   	}
> > >   
> > > -	bo = xe_bo_create(xe, NULL, vm, args->size, ttm_bo_type_device,
> > > -			  bo_flags);
> > > +	bo = xe_bo_create_user(xe, NULL, vm, args->size,
> > > +			       args->cpu_caching, args->coh_mode,
> > > +			       ttm_bo_type_device,
> > > +			       bo_flags);
> > >   	if (IS_ERR(bo)) {
> > >   		err = PTR_ERR(bo);
> > >   		goto out_vm;
> > > @@ -2114,10 +2175,12 @@ int xe_bo_dumb_create(struct drm_file *file_priv,
> > >   	args->size = ALIGN(mul_u32_u32(args->pitch, args->height),
> > >   			   page_size);
> > >   
> > > -	bo = xe_bo_create(xe, NULL, NULL, args->size, ttm_bo_type_device,
> > > -			  XE_BO_CREATE_VRAM_IF_DGFX(xe_device_get_root_tile(xe)) |
> > > -			  XE_BO_CREATE_USER_BIT | XE_BO_SCANOUT_BIT |
> > > -			  XE_BO_NEEDS_CPU_ACCESS);
> > > +	bo = xe_bo_create_user(xe, NULL, NULL, args->size,
> > > +			       DRM_XE_GEM_CPU_CACHING_WC, DRM_XE_GEM_COH_NONE,
> > > +			       ttm_bo_type_device,
> > > +			       XE_BO_CREATE_VRAM_IF_DGFX(xe_device_get_root_tile(xe)) |
> > > +			       XE_BO_CREATE_USER_BIT | XE_BO_SCANOUT_BIT |
> > > +			       XE_BO_NEEDS_CPU_ACCESS);
> > >   	if (IS_ERR(bo))
> > >   		return PTR_ERR(bo);
> > >   
> > > diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
> > > index 5090bdd1e462..e4f57a116de7 100644
> > > --- a/drivers/gpu/drm/xe/xe_bo.h
> > > +++ b/drivers/gpu/drm/xe/xe_bo.h
> > > @@ -83,10 +83,11 @@ struct sg_table;
> > >   struct xe_bo *xe_bo_alloc(void);
> > >   void xe_bo_free(struct xe_bo *bo);
> > >   
> > > -struct xe_bo *__xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
> > > -				    struct xe_tile *tile, struct dma_resv *resv,
> > > -				    struct ttm_lru_bulk_move *bulk, size_t size,
> > > -				    enum ttm_bo_type type, u32 flags);
> > > +struct xe_bo *___xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
> > > +				     struct xe_tile *tile, struct dma_resv *resv,
> > > +				     struct ttm_lru_bulk_move *bulk, size_t size,
> > > +				     u16 cpu_caching, u16 coh_mode,
> > > +				     enum ttm_bo_type type, u32 flags);
> > >   struct xe_bo *
> > >   xe_bo_create_locked_range(struct xe_device *xe,
> > >   			  struct xe_tile *tile, struct xe_vm *vm,
> > > diff --git a/drivers/gpu/drm/xe/xe_bo_types.h b/drivers/gpu/drm/xe/xe_bo_types.h
> > > index 051fe990c133..56f7f9a4975f 100644
> > > --- a/drivers/gpu/drm/xe/xe_bo_types.h
> > > +++ b/drivers/gpu/drm/xe/xe_bo_types.h
> > > @@ -76,6 +76,16 @@ struct xe_bo {
> > >   	struct llist_node freed;
> > >   	/** @created: Whether the bo has passed initial creation */
> > >   	bool created;
> > > +	/**
> > > +	 * @coh_mode: Coherency setting. Currently only used for userspace
> > > +	 * objects.
> > > +	 */
> > > +	u16 coh_mode;
> > > +	/**
> > > +	 * @cpu_caching: CPU caching mode. Currently only used for userspace
> > > +	 * objects.
> > > +	 */
> > > +	u16 cpu_caching;
> > >   };
> > >   
> > >   #define intel_bo_to_drm_bo(bo) (&(bo)->ttm.base)
> > > diff --git a/drivers/gpu/drm/xe/xe_dma_buf.c b/drivers/gpu/drm/xe/xe_dma_buf.c
> > > index cfde3be3b0dc..9da5cffeef13 100644
> > > --- a/drivers/gpu/drm/xe/xe_dma_buf.c
> > > +++ b/drivers/gpu/drm/xe/xe_dma_buf.c
> > > @@ -214,8 +214,9 @@ xe_dma_buf_init_obj(struct drm_device *dev, struct xe_bo *storage,
> > >   	int ret;
> > >   
> > >   	dma_resv_lock(resv, NULL);
> > > -	bo = __xe_bo_create_locked(xe, storage, NULL, resv, NULL, dma_buf->size,
> > > -				   ttm_bo_type_sg, XE_BO_CREATE_SYSTEM_BIT);
> > > +	bo = ___xe_bo_create_locked(xe, storage, NULL, resv, NULL, dma_buf->size,
> > > +				    0, 0, /* Will require 1way or 2way for vm_bind */
> > > +				    ttm_bo_type_sg, XE_BO_CREATE_SYSTEM_BIT);
> > >   	if (IS_ERR(bo)) {
> > >   		ret = PTR_ERR(bo);
> > >   		goto error;
> > > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> > > index d48d8e3c898c..ec4cdbc8d2bd 100644
> > > --- a/include/uapi/drm/xe_drm.h
> > > +++ b/include/uapi/drm/xe_drm.h
> > > @@ -456,8 +456,54 @@ struct drm_xe_gem_create {
> > >   	 */
> > >   	__u32 handle;
> > >   
> > > -	/** @pad: MBZ */
> > > -	__u32 pad;
> > > +	/**
> > > +	 * @coh_mode: The coherency mode for this object. This will limit the
> > > +	 * possible @cpu_caching values.
> > > +	 *
> > > +	 * Supported values:
> > > +	 *
> > > +	 * DRM_XE_GEM_COH_NONE: GPU access is assumed to be not coherent with
> > > +	 * CPU. CPU caches are not snooped.
> > > +	 *
> > > +	 * DRM_XE_GEM_COH_AT_LEAST_1WAY:
> > > +	 *
> > > +	 * CPU-GPU coherency must be at least 1WAY.
> > > +	 *
> > > +	 * If 1WAY then GPU access is coherent with CPU (CPU caches are snooped)
> > > +	 * until GPU acquires. The acquire by the GPU is not tracked by CPU
> > > +	 * caches.
> > > +	 *
> > > +	 * If 2WAY then should be fully coherent between GPU and CPU.  Fully
> > > +	 * tracked by CPU caches. Both CPU and GPU caches are snooped.
> > > +	 *
> > > +	 * Note: On dgpu the GPU device never caches system memory. The device
> > > +	 * should be thought of as always 1WAY coherent, with the addition that
> > > +	 * the GPU never caches system memory. At least on current dgpu HW there
> > > +	 * is no way to turn off snooping so likely the different coherency
> > > +	 * modes of the pat_index make no difference for system memory.
> > > +	 */
> > > +#define DRM_XE_GEM_COH_NONE		1
> > > +#define DRM_XE_GEM_COH_AT_LEAST_1WAY	2
> > > +	__u16 coh_mode;
> > > +
> > > +	/**
> > > +	 * @cpu_caching: The CPU caching mode to select for this object. If
> > > +	 * mmaping the object the mode selected here will also be used.
> > > +	 *
> > > +	 * Supported values:
> > > +	 *
> > > +	 * DRM_XE_GEM_CPU_CACHING_WB: Allocate the pages with write-back caching.
> > > +	 * On iGPU this can't be used for scanout surfaces. The @coh_mode must
> > > +	 * be DRM_XE_GEM_COH_AT_LEAST_1WAY. Currently not allowed for objects placed
> > > +	 * in VRAM.
> > > +	 *
> > > +	 * DRM_XE_GEM_CPU_CACHING_WC: Allocate the pages as write-combined. This is
> > > +	 * uncached. Any @coh_mode is permitted. Scanout surfaces should likely
> > > +	 * use this. All objects that can be placed in VRAM must use this.
> > > +	 */
> > > +#define DRM_XE_GEM_CPU_CACHING_WB                      1
> > > +#define DRM_XE_GEM_CPU_CACHING_WC                      2
> > > +	__u16 cpu_caching;
> > >   
> > >   	/** @reserved: Reserved */
> > >   	__u64 reserved[2];
> > 


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

* Re: [Intel-xe] [PATCH v6 4/5] drm/xe/pat: annotate pat_index with coherency mode
  2023-09-28 10:05 ` [Intel-xe] [PATCH v6 4/5] drm/xe/pat: annotate pat_index with " Matthew Auld
@ 2023-10-01 15:33   ` Mishra, Pallavi
  0 siblings, 0 replies; 27+ messages in thread
From: Mishra, Pallavi @ 2023-10-01 15:33 UTC (permalink / raw)
  To: Auld, Matthew, intel-xe@lists.freedesktop.org
  Cc: Hazubski, Filip, De Marchi, Lucas, Zhang, Carl, Yu, Effie,
	Roper, Matthew D



> -----Original Message-----
> From: Auld, Matthew <matthew.auld@intel.com>
> Sent: Thursday, September 28, 2023 3:06 AM
> To: intel-xe@lists.freedesktop.org
> Cc: Mishra, Pallavi <pallavi.mishra@intel.com>; Thomas Hellström
> <thomas.hellstrom@linux.intel.com>; Joonas Lahtinen
> <joonas.lahtinen@linux.intel.com>; De Marchi, Lucas
> <lucas.demarchi@intel.com>; Roper, Matthew D
> <matthew.d.roper@intel.com>; Souza, Jose <jose.souza@intel.com>;
> Hazubski, Filip <filip.hazubski@intel.com>; Zhang, Carl
> <carl.zhang@intel.com>; Yu, Effie <effie.yu@intel.com>
> Subject: [PATCH v6 4/5] drm/xe/pat: annotate pat_index with coherency
> mode
> 
> Future uapi needs to give userspace the ability to select the pat_index for a
> given vm_bind. However we need to be able to extract the coherency mode
> from the provided pat_index to ensure it matches the coherency mode set at
> object creation. There are various security reasons for why this matters.
> However the pat_index itself is very platform specific, so seems reasonable to
> annotate each platform definition of the pat table.
> On some older platforms there is no explicit coherency mode, so we just pick
> whatever makes sense.
> 
> v2:
>   - Simplify with COH_AT_LEAST_1_WAY
>   - Add some kernel-doc
> v3 (Matt Roper):
>   - Some small tweaks
> v4:
>   - Rebase
> 
> Bspec: 45101, 44235 #xe
> Bspec: 70552, 71582, 59400 #xe2
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> Cc: Pallavi Mishra <pallavi.mishra@intel.com>
> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> Cc: Matt Roper <matthew.d.roper@intel.com>
> Cc: José Roberto de Souza <jose.souza@intel.com>
> Cc: Filip Hazubski <filip.hazubski@intel.com>
> Cc: Carl Zhang <carl.zhang@intel.com>
> Cc: Effie Yu <effie.yu@intel.com>
> Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
> ---

Reviewed-by: Pallavi Mishra <pallavi.mishra@intel.com>

>  drivers/gpu/drm/xe/xe_device_types.h |  2 +-
>  drivers/gpu/drm/xe/xe_pat.c          | 64 +++++++++++++++++-----------
>  drivers/gpu/drm/xe/xe_pat.h          | 28 ++++++++++++
>  3 files changed, 67 insertions(+), 27 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_device_types.h
> b/drivers/gpu/drm/xe/xe_device_types.h
> index 0717839ae964..8b0ac0cf43ac 100644
> --- a/drivers/gpu/drm/xe/xe_device_types.h
> +++ b/drivers/gpu/drm/xe/xe_device_types.h
> @@ -338,7 +338,7 @@ struct xe_device {
>  		/** Internal operations to abstract platforms */
>  		const struct xe_pat_ops *ops;
>  		/** PAT table to program in the HW */
> -		const u32 *table;
> +		const struct xe_pat_table_entry *table;
>  		/** Number of PAT entries */
>  		int n_entries;
>  		u32 idx[__XE_CACHE_LEVEL_COUNT];
> diff --git a/drivers/gpu/drm/xe/xe_pat.c b/drivers/gpu/drm/xe/xe_pat.c index
> 36b79d675e54..3e9d253ac1ff 100644
> --- a/drivers/gpu/drm/xe/xe_pat.c
> +++ b/drivers/gpu/drm/xe/xe_pat.c
> @@ -5,6 +5,8 @@
> 
>  #include "xe_pat.h"
> 
> +#include <drm/xe_drm.h>
> +
>  #include "regs/xe_reg_defs.h"
>  #include "xe_gt.h"
>  #include "xe_gt_mcr.h"
> @@ -33,51 +35,60 @@
>  #define XELP_PAT_UC
> 	REG_FIELD_PREP(XELP_MEM_TYPE_MASK, 0)
> 
>  struct xe_pat_ops {
> -	void (*program_graphics)(struct xe_gt *gt, const u32 table[], int
> n_entries);
> -	void (*program_media)(struct xe_gt *gt, const u32 table[], int
> n_entries);
> +	void (*program_graphics)(struct xe_gt *gt, const struct
> xe_pat_table_entry table[],
> +				 int n_entries);
> +	void (*program_media)(struct xe_gt *gt, const struct
> xe_pat_table_entry table[],
> +			      int n_entries);
>  };
> 
> -static const u32 xelp_pat_table[] = {
> -	[0] = XELP_PAT_WB,
> -	[1] = XELP_PAT_WC,
> -	[2] = XELP_PAT_WT,
> -	[3] = XELP_PAT_UC,
> +static const struct xe_pat_table_entry xelp_pat_table[] = {
> +	[0] = { XELP_PAT_WB, DRM_XE_GEM_COH_AT_LEAST_1WAY },
> +	[1] = { XELP_PAT_WC, DRM_XE_GEM_COH_NONE },
> +	[2] = { XELP_PAT_WT, DRM_XE_GEM_COH_NONE },
> +	[3] = { XELP_PAT_UC, DRM_XE_GEM_COH_NONE },
>  };
> 
> -static const u32 xehpc_pat_table[] = {
> -	[0] = XELP_PAT_UC,
> -	[1] = XELP_PAT_WC,
> -	[2] = XELP_PAT_WT,
> -	[3] = XELP_PAT_WB,
> -	[4] = XEHPC_PAT_CLOS(1) | XELP_PAT_WT,
> -	[5] = XEHPC_PAT_CLOS(1) | XELP_PAT_WB,
> -	[6] = XEHPC_PAT_CLOS(2) | XELP_PAT_WT,
> -	[7] = XEHPC_PAT_CLOS(2) | XELP_PAT_WB,
> +static const struct xe_pat_table_entry xehpc_pat_table[] = {
> +	[0] = { XELP_PAT_UC, DRM_XE_GEM_COH_NONE },
> +	[1] = { XELP_PAT_WC, DRM_XE_GEM_COH_NONE },
> +	[2] = { XELP_PAT_WT, DRM_XE_GEM_COH_NONE },
> +	[3] = { XELP_PAT_WB, DRM_XE_GEM_COH_AT_LEAST_1WAY },
> +	[4] = { XEHPC_PAT_CLOS(1) | XELP_PAT_WT,
> DRM_XE_GEM_COH_NONE },
> +	[5] = { XEHPC_PAT_CLOS(1) | XELP_PAT_WB,
> DRM_XE_GEM_COH_AT_LEAST_1WAY },
> +	[6] = { XEHPC_PAT_CLOS(2) | XELP_PAT_WT,
> DRM_XE_GEM_COH_NONE },
> +	[7] = { XEHPC_PAT_CLOS(2) | XELP_PAT_WB,
> DRM_XE_GEM_COH_AT_LEAST_1WAY
> +},
>  };
> 
> -static const u32 xelpg_pat_table[] = {
> -	[0] = XELPG_PAT_0_WB,
> -	[1] = XELPG_PAT_1_WT,
> -	[2] = XELPG_PAT_3_UC,
> -	[3] = XELPG_PAT_0_WB | XELPG_2_COH_1W,
> -	[4] = XELPG_PAT_0_WB | XELPG_3_COH_2W,
> +static const struct xe_pat_table_entry xelpg_pat_table[] = {
> +	[0] = { XELPG_PAT_0_WB, DRM_XE_GEM_COH_NONE },
> +	[1] = { XELPG_PAT_1_WT, DRM_XE_GEM_COH_NONE },
> +	[2] = { XELPG_PAT_3_UC, DRM_XE_GEM_COH_NONE },
> +	[3] = { XELPG_PAT_0_WB | XELPG_2_COH_1W,
> DRM_XE_GEM_COH_AT_LEAST_1WAY },
> +	[4] = { XELPG_PAT_0_WB | XELPG_3_COH_2W,
> DRM_XE_GEM_COH_AT_LEAST_1WAY
> +},
>  };
> 
> -static void program_pat(struct xe_gt *gt, const u32 table[], int n_entries)
> +u16 xe_pat_index_get_coh_mode(struct xe_device *xe, u16 pat_index) {
> +	WARN_ON(pat_index >= xe->pat.n_entries);
> +	return xe->pat.table[pat_index].coh_mode;
> +}
> +
> +static void program_pat(struct xe_gt *gt, const struct
> +xe_pat_table_entry table[], int n_entries)
>  {
>  	for (int i = 0; i < n_entries; i++) {
>  		struct xe_reg reg = XE_REG(_PAT_INDEX(i));
> 
> -		xe_mmio_write32(gt, reg, table[i]);
> +		xe_mmio_write32(gt, reg, table[i].value);
>  	}
>  }
> 
> -static void program_pat_mcr(struct xe_gt *gt, const u32 table[], int n_entries)
> +static void program_pat_mcr(struct xe_gt *gt, const struct
> xe_pat_table_entry table[],
> +			    int n_entries)
>  {
>  	for (int i = 0; i < n_entries; i++) {
>  		struct xe_reg_mcr reg_mcr = XE_REG_MCR(_PAT_INDEX(i));
> 
> -		xe_gt_mcr_multicast_write(gt, reg_mcr, table[i]);
> +		xe_gt_mcr_multicast_write(gt, reg_mcr, table[i].value);
>  	}
>  }
> 
> @@ -126,6 +137,7 @@ void xe_pat_init_early(struct xe_device *xe)
>  		xe->pat.idx[XE_CACHE_WT] = 2;
>  		xe->pat.idx[XE_CACHE_WB] = 0;
>  	} else if (GRAPHICS_VERx100(xe) <= 1210) {
> +		WARN_ON_ONCE(!IS_DGFX(xe) && !xe->info.has_llc);
>  		xe->pat.ops = &xelp_pat_ops;
>  		xe->pat.table = xelp_pat_table;
>  		xe->pat.n_entries = ARRAY_SIZE(xelp_pat_table); diff --git
> a/drivers/gpu/drm/xe/xe_pat.h b/drivers/gpu/drm/xe/xe_pat.h index
> 168e80e63809..a4fe9d5466bc 100644
> --- a/drivers/gpu/drm/xe/xe_pat.h
> +++ b/drivers/gpu/drm/xe/xe_pat.h
> @@ -6,9 +6,29 @@
>  #ifndef _XE_PAT_H_
>  #define _XE_PAT_H_
> 
> +#include <linux/types.h>
> +
>  struct xe_gt;
>  struct xe_device;
> 
> +/**
> + * struct xe_pat_table_entry - The pat_index encoding and other meta
> information.
> + */
> +struct xe_pat_table_entry {
> +	/**
> +	 * @value: The platform specific value encoding the various memory
> +	 * attributes (this maps to some fixed pat_index). So things like
> +	 * caching, coherency, compression etc can be encoded here.
> +	 */
> +	u32 value;
> +
> +	/**
> +	 * @coh_mode: The GPU coherency mode that @value maps to.
> Either
> +	 * DRM_XE_GEM_COH_NONE or
> DRM_XE_GEM_COH_AT_LEAST_1WAY.
> +	 */
> +	u16 coh_mode;
> +};
> +
>  /**
>   * xe_pat_init_early - SW initialization, setting up data based on device
>   * @xe: xe device
> @@ -21,4 +41,12 @@ void xe_pat_init_early(struct xe_device *xe);
>   */
>  void xe_pat_init(struct xe_gt *gt);
> 
> +/**
> + * xe_pat_index_get_coh_mode - Extract the coherency mode for the given
> + * pat_index.
> + * @xe: xe device
> + * @pat_index: The pat_index to query
> + */
> +u16 xe_pat_index_get_coh_mode(struct xe_device *xe, u16 pat_index);
> +
>  #endif
> --
> 2.41.0


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

* Re: [Intel-xe] [PATCH v6 2/5] drm/xe: directly use pat_index for pte_encode
  2023-09-28 10:05 ` [Intel-xe] [PATCH v6 2/5] drm/xe: directly use pat_index for pte_encode Matthew Auld
  2023-09-28 13:15   ` Lucas De Marchi
  2023-09-28 19:13   ` Matt Roper
@ 2023-10-01 15:36   ` Mishra, Pallavi
  2 siblings, 0 replies; 27+ messages in thread
From: Mishra, Pallavi @ 2023-10-01 15:36 UTC (permalink / raw)
  To: Auld, Matthew, intel-xe@lists.freedesktop.org
  Cc: Roper, Matthew D, De Marchi, Lucas



> -----Original Message-----
> From: Auld, Matthew <matthew.auld@intel.com>
> Sent: Thursday, September 28, 2023 3:06 AM
> To: intel-xe@lists.freedesktop.org
> Cc: Vishwanathapura, Niranjana <niranjana.vishwanathapura@intel.com>;
> Mishra, Pallavi <pallavi.mishra@intel.com>; De Marchi, Lucas
> <lucas.demarchi@intel.com>; Roper, Matthew D
> <matthew.d.roper@intel.com>
> Subject: [PATCH v6 2/5] drm/xe: directly use pat_index for pte_encode
> 
> In the next patch userspace will be able to directly set the pat_index as part
> of vm_bind. To support this we need to get away from using xe_cache_level
> in the low level routines and rather just use the pat_index directly.
> 
> v2: Rebase
> v3: Some missed conversions, also prefer tile_to_xe() (Niranjana)
> 
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> Cc: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
> Cc: Pallavi Mishra <pallavi.mishra@intel.com>
> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> Cc: Matt Roper <matthew.d.roper@intel.com>
> ---

Reviewed-by: Pallavi Mishra <pallavi.mishra@intel.com>

>  drivers/gpu/drm/xe/display/xe_fb_pin.c | 10 ++++++----
> drivers/gpu/drm/xe/tests/xe_migrate.c  |  2 +-
>  drivers/gpu/drm/xe/xe_ggtt.c           | 16 +++++++++-------
>  drivers/gpu/drm/xe/xe_ggtt_types.h     |  3 +--
>  drivers/gpu/drm/xe/xe_migrate.c        | 19 +++++++++++--------
>  drivers/gpu/drm/xe/xe_pt.c             | 11 ++++++-----
>  drivers/gpu/drm/xe/xe_pt_types.h       |  8 ++++----
>  drivers/gpu/drm/xe/xe_vm.c             | 24 +++++++++++-------------
>  8 files changed, 49 insertions(+), 44 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c
> b/drivers/gpu/drm/xe/display/xe_fb_pin.c
> index b7a04fba3585..2c36e5032433 100644
> --- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
> +++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
> @@ -30,7 +30,7 @@ write_dpt_rotated(struct xe_bo *bo, struct iosys_map
> *map, u32 *dpt_ofs, u32 bo_
> 
>  		for (row = 0; row < height; row++) {
>  			u64 pte = ggtt->pt_ops->pte_encode_bo(bo, src_idx *
> XE_PAGE_SIZE,
> -							      XE_CACHE_WB);
> +							      xe-
> >pat.idx[XE_CACHE_WB]);
> 
>  			iosys_map_wr(map, *dpt_ofs, u64, pte);
>  			*dpt_ofs += 8;
> @@ -84,7 +84,7 @@ static int __xe_pin_fb_vma_dpt(struct intel_framebuffer
> *fb,
> 
>  		for (x = 0; x < size / XE_PAGE_SIZE; x++) {
>  			u64 pte = ggtt->pt_ops->pte_encode_bo(bo, x *
> XE_PAGE_SIZE,
> -							      XE_CACHE_WB);
> +							      xe-
> >pat.idx[XE_CACHE_WB]);
> 
>  			iosys_map_wr(&dpt->vmap, x * 8, u64, pte);
>  		}
> @@ -110,6 +110,7 @@ static void
>  write_ggtt_rotated(struct xe_bo *bo, struct xe_ggtt *ggtt, u32 *ggtt_ofs, u32
> bo_ofs,
>  		   u32 width, u32 height, u32 src_stride, u32 dst_stride)  {
> +	struct xe_device *xe = xe_bo_device(bo);
>  	u32 column, row;
> 
>  	for (column = 0; column < width; column++) { @@ -117,7 +118,7 @@
> write_ggtt_rotated(struct xe_bo *bo, struct xe_ggtt *ggtt, u32 *ggtt_ofs, u32
> bo
> 
>  		for (row = 0; row < height; row++) {
>  			u64 pte = ggtt->pt_ops->pte_encode_bo(bo, src_idx *
> XE_PAGE_SIZE,
> -							      XE_CACHE_WB);
> +							      xe-
> >pat.idx[XE_CACHE_WB]);
> 
>  			xe_ggtt_set_pte(ggtt, *ggtt_ofs, pte);
>  			*ggtt_ofs += XE_PAGE_SIZE;
> @@ -162,7 +163,8 @@ static int __xe_pin_fb_vma_ggtt(struct
> intel_framebuffer *fb,
>  			goto out_unlock;
> 
>  		for (x = 0; x < size; x += XE_PAGE_SIZE) {
> -			u64 pte = ggtt->pt_ops->pte_encode_bo(bo, x,
> XE_CACHE_WB);
> +			u64 pte = ggtt->pt_ops->pte_encode_bo(bo, x,
> +							      xe-
> >pat.idx[XE_CACHE_WB]);
> 
>  			xe_ggtt_set_pte(ggtt, vma->node.start + x, pte);
>  		}
> diff --git a/drivers/gpu/drm/xe/tests/xe_migrate.c
> b/drivers/gpu/drm/xe/tests/xe_migrate.c
> index 6906ff9d9c31..4c8526af06ce 100644
> --- a/drivers/gpu/drm/xe/tests/xe_migrate.c
> +++ b/drivers/gpu/drm/xe/tests/xe_migrate.c
> @@ -301,7 +301,7 @@ static void xe_migrate_sanity_test(struct xe_migrate
> *m, struct kunit *test)
>  	/* First part of the test, are we updating our pagetable bo with a new
> entry? */
>  	xe_map_wr(xe, &bo->vmap, XE_PAGE_SIZE * (NUM_KERNEL_PDE - 1),
> u64,
>  		  0xdeaddeadbeefbeef);
> -	expected = m->q->vm->pt_ops->pte_encode_bo(pt, 0,
> XE_CACHE_WB, 0);
> +	expected = m->q->vm->pt_ops->pte_encode_bo(pt, 0,
> +xe->pat.idx[XE_CACHE_WB], 0);
>  	if (m->q->vm->flags & XE_VM_FLAG_64K)
>  		expected |= XE_PTE_PS64;
>  	if (xe_bo_is_vram(pt))
> diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
> index 99b54794917e..354871a6b371 100644
> --- a/drivers/gpu/drm/xe/xe_ggtt.c
> +++ b/drivers/gpu/drm/xe/xe_ggtt.c
> @@ -27,7 +27,7 @@
>  #define GUC_GGTT_TOP	0xFEE00000
> 
>  static u64 xelp_ggtt_pte_encode_bo(struct xe_bo *bo, u64 bo_offset,
> -				   enum xe_cache_level cache)
> +				   u16 pat_index)
>  {
>  	u64 pte;
> 
> @@ -41,13 +41,12 @@ static u64 xelp_ggtt_pte_encode_bo(struct xe_bo *bo,
> u64 bo_offset,  }
> 
>  static u64 xelpg_ggtt_pte_encode_bo(struct xe_bo *bo, u64 bo_offset,
> -				    enum xe_cache_level cache)
> +				    u16 pat_index)
>  {
>  	struct xe_device *xe = xe_bo_device(bo);
> -	u32 pat_index = xe->pat.idx[cache];
>  	u64 pte;
> 
> -	pte = xelp_ggtt_pte_encode_bo(bo, bo_offset, cache);
> +	pte = xelp_ggtt_pte_encode_bo(bo, bo_offset, pat_index);
> 
>  	xe_assert(xe, pat_index <= 3);
> 
> @@ -79,6 +78,7 @@ void xe_ggtt_set_pte(struct xe_ggtt *ggtt, u64 addr, u64
> pte)
> 
>  static void xe_ggtt_clear(struct xe_ggtt *ggtt, u64 start, u64 size)  {
> +	u16 pat_index = tile_to_xe(ggtt->tile)->pat.idx[XE_CACHE_WB];
>  	u64 end = start + size - 1;
>  	u64 scratch_pte;
> 
> @@ -86,7 +86,7 @@ static void xe_ggtt_clear(struct xe_ggtt *ggtt, u64 start,
> u64 size)
> 
>  	if (ggtt->scratch)
>  		scratch_pte = ggtt->pt_ops->pte_encode_bo(ggtt->scratch, 0,
> -							  XE_CACHE_WB);
> +							  pat_index);
>  	else
>  		scratch_pte = 0;
> 
> @@ -285,9 +285,10 @@ void xe_ggtt_invalidate(struct xe_ggtt *ggtt)
> 
>  void xe_ggtt_printk(struct xe_ggtt *ggtt, const char *prefix)  {
> +	u16 pat_index = tile_to_xe(ggtt->tile)->pat.idx[XE_CACHE_WB];
>  	u64 addr, scratch_pte;
> 
> -	scratch_pte = ggtt->pt_ops->pte_encode_bo(ggtt->scratch, 0,
> XE_CACHE_WB);
> +	scratch_pte = ggtt->pt_ops->pte_encode_bo(ggtt->scratch, 0,
> +pat_index);
> 
>  	printk("%sGlobal GTT:", prefix);
>  	for (addr = 0; addr < ggtt->size; addr += XE_PAGE_SIZE) { @@ -324,11
> +325,12 @@ int xe_ggtt_insert_special_node(struct xe_ggtt *ggtt, struct
> drm_mm_node *node,
> 
>  void xe_ggtt_map_bo(struct xe_ggtt *ggtt, struct xe_bo *bo)  {
> +	u16 pat_index = tile_to_xe(ggtt->tile)->pat.idx[XE_CACHE_WB];
>  	u64 start = bo->ggtt_node.start;
>  	u64 offset, pte;
> 
>  	for (offset = 0; offset < bo->size; offset += XE_PAGE_SIZE) {
> -		pte = ggtt->pt_ops->pte_encode_bo(bo, offset,
> XE_CACHE_WB);
> +		pte = ggtt->pt_ops->pte_encode_bo(bo, offset, pat_index);
>  		xe_ggtt_set_pte(ggtt, start + offset, pte);
>  	}
> 
> diff --git a/drivers/gpu/drm/xe/xe_ggtt_types.h
> b/drivers/gpu/drm/xe/xe_ggtt_types.h
> index 486016ea5b67..d8c584d9a8c3 100644
> --- a/drivers/gpu/drm/xe/xe_ggtt_types.h
> +++ b/drivers/gpu/drm/xe/xe_ggtt_types.h
> @@ -14,8 +14,7 @@ struct xe_bo;
>  struct xe_gt;
> 
>  struct xe_ggtt_pt_ops {
> -	u64 (*pte_encode_bo)(struct xe_bo *bo, u64 bo_offset,
> -			     enum xe_cache_level cache);
> +	u64 (*pte_encode_bo)(struct xe_bo *bo, u64 bo_offset, u16
> pat_index);
>  };
> 
>  struct xe_ggtt {
> diff --git a/drivers/gpu/drm/xe/xe_migrate.c
> b/drivers/gpu/drm/xe/xe_migrate.c index cd2e00008aab..b8b81a9ce2ca
> 100644
> --- a/drivers/gpu/drm/xe/xe_migrate.c
> +++ b/drivers/gpu/drm/xe/xe_migrate.c
> @@ -158,6 +158,7 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile,
> struct xe_migrate *m,
>  				 struct xe_vm *vm)
>  {
>  	struct xe_device *xe = tile_to_xe(tile);
> +	u16 pat_index = xe->pat.idx[XE_CACHE_WB];
>  	u8 id = tile->id;
>  	u32 num_entries = NUM_PT_SLOTS, num_level = vm->pt_root[id]-
> >level;
>  	u32 map_ofs, level, i;
> @@ -189,7 +190,7 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile,
> struct xe_migrate *m,
>  		return ret;
>  	}
> 
> -	entry = vm->pt_ops->pde_encode_bo(bo, bo->size - XE_PAGE_SIZE,
> XE_CACHE_WB);
> +	entry = vm->pt_ops->pde_encode_bo(bo, bo->size - XE_PAGE_SIZE,
> +pat_index);
>  	xe_pt_write(xe, &vm->pt_root[id]->bo->vmap, 0, entry);
> 
>  	map_ofs = (num_entries - num_level) * XE_PAGE_SIZE; @@ -197,7
> +198,7 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile, struct
> xe_migrate *m,
>  	/* Map the entire BO in our level 0 pt */
>  	for (i = 0, level = 0; i < num_entries; level++) {
>  		entry = vm->pt_ops->pte_encode_bo(bo, i * XE_PAGE_SIZE,
> -						  XE_CACHE_WB, 0);
> +						  pat_index, 0);
> 
>  		xe_map_wr(xe, &bo->vmap, map_ofs + level * 8, u64, entry);
> 
> @@ -216,7 +217,7 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile,
> struct xe_migrate *m,
>  		     i += vm->flags & XE_VM_FLAG_64K ? XE_64K_PAGE_SIZE :
>  		     XE_PAGE_SIZE) {
>  			entry = vm->pt_ops->pte_encode_bo(batch, i,
> -							  XE_CACHE_WB, 0);
> +							  pat_index, 0);
> 
>  			xe_map_wr(xe, &bo->vmap, map_ofs + level * 8, u64,
>  				  entry);
> @@ -241,7 +242,7 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile,
> struct xe_migrate *m,
>  			flags = XE_PDE_64K;
> 
>  		entry = vm->pt_ops->pde_encode_bo(bo, map_ofs + (level -
> 1) *
> -						  XE_PAGE_SIZE,
> XE_CACHE_WB);
> +						  XE_PAGE_SIZE, pat_index);
>  		xe_map_wr(xe, &bo->vmap, map_ofs + XE_PAGE_SIZE * level,
> u64,
>  			  entry | flags);
>  	}
> @@ -249,7 +250,7 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile,
> struct xe_migrate *m,
>  	/* Write PDE's that point to our BO. */
>  	for (i = 0; i < num_entries - num_level; i++) {
>  		entry = vm->pt_ops->pde_encode_bo(bo, i * XE_PAGE_SIZE,
> -						  XE_CACHE_WB);
> +						  pat_index);
> 
>  		xe_map_wr(xe, &bo->vmap, map_ofs + XE_PAGE_SIZE +
>  			  (i + 1) * 8, u64, entry);
> @@ -261,7 +262,7 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile,
> struct xe_migrate *m,
> 
>  		level = 2;
>  		ofs = map_ofs + XE_PAGE_SIZE * level + 256 * 8;
> -		flags = vm->pt_ops->pte_encode_addr(xe, 0, XE_CACHE_WB,
> level,
> +		flags = vm->pt_ops->pte_encode_addr(xe, 0, pat_index, level,
>  						    true, 0);
> 
>  		/*
> @@ -457,6 +458,7 @@ static void emit_pte(struct xe_migrate *m,
>  		     struct xe_res_cursor *cur,
>  		     u32 size, struct xe_bo *bo)
>  {
> +	u16 pat_index = tile_to_xe(m->tile)->pat.idx[XE_CACHE_WB];
>  	u32 ptes;
>  	u64 ofs = at_pt * XE_PAGE_SIZE;
>  	u64 cur_ofs;
> @@ -500,7 +502,7 @@ static void emit_pte(struct xe_migrate *m,
>  			}
> 
>  			addr = m->q->vm->pt_ops->pte_encode_addr(m-
> >tile->xe,
> -								 addr,
> XE_CACHE_WB,
> +								 addr,
> pat_index,
>  								 0, devmem,
> flags);
>  			bb->cs[bb->len++] = lower_32_bits(addr);
>  			bb->cs[bb->len++] = upper_32_bits(addr); @@ -
> 1198,6 +1200,7 @@ xe_migrate_update_pgtables(struct xe_migrate *m,
>  	bool first_munmap_rebind = vma &&
>  		vma->gpuva.flags & XE_VMA_FIRST_REBIND;
>  	struct xe_exec_queue *q_override = !q ? m->q : q;
> +	u16 pat_index = xe->pat.idx[XE_CACHE_WB];
> 
>  	/* Use the CPU if no in syncs and engine is idle */
>  	if (no_in_syncs(syncs, num_syncs) &&
> xe_exec_queue_is_idle(q_override)) { @@ -1269,7 +1272,7 @@
> xe_migrate_update_pgtables(struct xe_migrate *m,
> 
>  			xe_tile_assert(tile, pt_bo->size == SZ_4K);
> 
> -			addr = vm->pt_ops->pte_encode_bo(pt_bo, 0,
> XE_CACHE_WB, 0);
> +			addr = vm->pt_ops->pte_encode_bo(pt_bo, 0,
> pat_index, 0);
>  			bb->cs[bb->len++] = lower_32_bits(addr);
>  			bb->cs[bb->len++] = upper_32_bits(addr);
>  		}
> diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c index
> 4d4c6a4c305e..92b512641b4a 100644
> --- a/drivers/gpu/drm/xe/xe_pt.c
> +++ b/drivers/gpu/drm/xe/xe_pt.c
> @@ -50,6 +50,7 @@ static struct xe_pt *xe_pt_entry(struct xe_pt_dir *pt_dir,
> unsigned int index)  static u64 __xe_pt_empty_pte(struct xe_tile *tile, struct
> xe_vm *vm,
>  			     unsigned int level)
>  {
> +	u16 pat_index = tile_to_xe(tile)->pat.idx[XE_CACHE_WB];
>  	u8 id = tile->id;
> 
>  	if (!vm->scratch_bo[id])
> @@ -57,9 +58,9 @@ static u64 __xe_pt_empty_pte(struct xe_tile *tile, struct
> xe_vm *vm,
> 
>  	if (level > 0)
>  		return vm->pt_ops->pde_encode_bo(vm->scratch_pt[id][level
> - 1]->bo,
> -						 0, XE_CACHE_WB);
> +						 0, pat_index);
> 
> -	return vm->pt_ops->pte_encode_bo(vm->scratch_bo[id], 0,
> XE_CACHE_WB, 0);
> +	return vm->pt_ops->pte_encode_bo(vm->scratch_bo[id], 0,
> pat_index, 0);
>  }
> 
>  /**
> @@ -510,6 +511,7 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent,
> pgoff_t offset,  {
>  	struct xe_pt_stage_bind_walk *xe_walk =
>  		container_of(walk, typeof(*xe_walk), base);
> +	u16 pat_index = tile_to_xe(xe_walk->tile)->pat.idx[xe_walk->cache];
>  	struct xe_pt *xe_parent = container_of(parent, typeof(*xe_parent),
> base);
>  	struct xe_vm *vm = xe_walk->vm;
>  	struct xe_pt *xe_child;
> @@ -526,7 +528,7 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent,
> pgoff_t offset,
> 
>  		pte = vm->pt_ops->pte_encode_vma(is_null ? 0 :
>  						 xe_res_dma(curs) + xe_walk-
> >dma_offset,
> -						 xe_walk->vma, xe_walk-
> >cache, level);
> +						 xe_walk->vma, pat_index,
> level);
>  		pte |= xe_walk->default_pte;
> 
>  		/*
> @@ -591,8 +593,7 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent,
> pgoff_t offset,
>  			xe_child->is_compact = true;
>  		}
> 
> -		pte = vm->pt_ops->pde_encode_bo(xe_child->bo, 0,
> -						xe_walk->cache) | flags;
> +		pte = vm->pt_ops->pde_encode_bo(xe_child->bo, 0,
> pat_index) | flags;
>  		ret = xe_pt_insert_entry(xe_walk, xe_parent, offset, xe_child,
>  					 pte);
>  	}
> diff --git a/drivers/gpu/drm/xe/xe_pt_types.h
> b/drivers/gpu/drm/xe/xe_pt_types.h
> index bd6645295fe6..355fa8f014e9 100644
> --- a/drivers/gpu/drm/xe/xe_pt_types.h
> +++ b/drivers/gpu/drm/xe/xe_pt_types.h
> @@ -38,14 +38,14 @@ struct xe_pt {
> 
>  struct xe_pt_ops {
>  	u64 (*pte_encode_bo)(struct xe_bo *bo, u64 bo_offset,
> -			     enum xe_cache_level cache, u32 pt_level);
> +			     u16 pat_index, u32 pt_level);
>  	u64 (*pte_encode_vma)(u64 pte, struct xe_vma *vma,
> -			      enum xe_cache_level cache, u32 pt_level);
> +			      u16 pat_index, u32 pt_level);
>  	u64 (*pte_encode_addr)(struct xe_device *xe, u64 addr,
> -			       enum xe_cache_level cache,
> +			       u16 pat_index,
>  			       u32 pt_level, bool devmem, u64 flags);
>  	u64 (*pde_encode_bo)(struct xe_bo *bo, u64 bo_offset,
> -			     const enum xe_cache_level cache);
> +			     const u16 pat_index);
>  };
> 
>  struct xe_pt_entry {
> diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c index
> beffbb1039d3..4804a0cd8a36 100644
> --- a/drivers/gpu/drm/xe/xe_vm.c
> +++ b/drivers/gpu/drm/xe/xe_vm.c
> @@ -1191,9 +1191,8 @@ static struct drm_gpuva_fn_ops gpuva_ops = {
>  	.op_alloc = xe_vm_op_alloc,
>  };
> 
> -static u64 pde_encode_cache(struct xe_device *xe, enum xe_cache_level
> cache)
> +static u64 pde_encode_pat_index(struct xe_device *xe, u16 pat_index)
>  {
> -	u32 pat_index = xe->pat.idx[cache];
>  	u64 pte = 0;
> 
>  	if (pat_index & BIT(0))
> @@ -1205,9 +1204,8 @@ static u64 pde_encode_cache(struct xe_device *xe,
> enum xe_cache_level cache)
>  	return pte;
>  }
> 
> -static u64 pte_encode_cache(struct xe_device *xe, enum xe_cache_level
> cache)
> +static u64 pte_encode_pat_index(struct xe_device *xe, u16 pat_index)
>  {
> -	u32 pat_index = xe->pat.idx[cache];
>  	u64 pte = 0;
> 
>  	if (pat_index & BIT(0))
> @@ -1238,27 +1236,27 @@ static u64 pte_encode_ps(u32 pt_level)  }
> 
>  static u64 xelp_pde_encode_bo(struct xe_bo *bo, u64 bo_offset,
> -			      const enum xe_cache_level cache)
> +			      const u16 pat_index)
>  {
>  	struct xe_device *xe = xe_bo_device(bo);
>  	u64 pde;
> 
>  	pde = xe_bo_addr(bo, bo_offset, XE_PAGE_SIZE);
>  	pde |= XE_PAGE_PRESENT | XE_PAGE_RW;
> -	pde |= pde_encode_cache(xe, cache);
> +	pde |= pde_encode_pat_index(xe, pat_index);
> 
>  	return pde;
>  }
> 
>  static u64 xelp_pte_encode_bo(struct xe_bo *bo, u64 bo_offset,
> -			      enum xe_cache_level cache, u32 pt_level)
> +			      u16 pat_index, u32 pt_level)
>  {
>  	struct xe_device *xe = xe_bo_device(bo);
>  	u64 pte;
> 
>  	pte = xe_bo_addr(bo, bo_offset, XE_PAGE_SIZE);
>  	pte |= XE_PAGE_PRESENT | XE_PAGE_RW;
> -	pte |= pte_encode_cache(xe, cache);
> +	pte |= pte_encode_pat_index(xe, pat_index);
>  	pte |= pte_encode_ps(pt_level);
> 
>  	if (xe_bo_is_vram(bo) || xe_bo_is_stolen_devmem(bo)) @@ -1268,7
> +1266,7 @@ static u64 xelp_pte_encode_bo(struct xe_bo *bo, u64 bo_offset,
> }
> 
>  static u64 xelp_pte_encode_vma(u64 pte, struct xe_vma *vma,
> -			       enum xe_cache_level cache, u32 pt_level)
> +			       u16 pat_index, u32 pt_level)
>  {
>  	struct xe_device *xe = xe_vma_vm(vma)->xe;
> 
> @@ -1277,7 +1275,7 @@ static u64 xelp_pte_encode_vma(u64 pte, struct
> xe_vma *vma,
>  	if (likely(!xe_vma_read_only(vma)))
>  		pte |= XE_PAGE_RW;
> 
> -	pte |= pte_encode_cache(xe, cache);
> +	pte |= pte_encode_pat_index(xe, pat_index);
>  	pte |= pte_encode_ps(pt_level);
> 
>  	if (unlikely(xe_vma_is_null(vma)))
> @@ -1287,7 +1285,7 @@ static u64 xelp_pte_encode_vma(u64 pte, struct
> xe_vma *vma,  }
> 
>  static u64 xelp_pte_encode_addr(struct xe_device *xe, u64 addr,
> -				enum xe_cache_level cache,
> +				u16 pat_index,
>  				u32 pt_level, bool devmem, u64 flags)  {
>  	u64 pte;
> @@ -1297,7 +1295,7 @@ static u64 xelp_pte_encode_addr(struct xe_device
> *xe, u64 addr,
> 
>  	pte = addr;
>  	pte |= XE_PAGE_PRESENT | XE_PAGE_RW;
> -	pte |= pte_encode_cache(xe, cache);
> +	pte |= pte_encode_pat_index(xe, pat_index);
>  	pte |= pte_encode_ps(pt_level);
> 
>  	if (devmem)
> @@ -1701,7 +1699,7 @@ struct xe_vm *xe_vm_lookup(struct xe_file *xef,
> u32 id)
>  u64 xe_vm_pdp4_descriptor(struct xe_vm *vm, struct xe_tile *tile)  {
>  	return vm->pt_ops->pde_encode_bo(vm->pt_root[tile->id]->bo, 0,
> -					 XE_CACHE_WB);
> +					 tile_to_xe(tile)-
> >pat.idx[XE_CACHE_WB]);
>  }
> 
>  static struct dma_fence *
> --
> 2.41.0


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

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

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-28 10:05 [Intel-xe] [PATCH v6 0/5] PAT and cache coherency support Matthew Auld
2023-09-28 10:05 ` [Intel-xe] [PATCH v6 1/5] drm/xe/pat: trim the xelp PAT table Matthew Auld
2023-09-28 13:04   ` Lucas De Marchi
2023-09-28 16:38     ` Matt Roper
2023-09-28 16:41       ` Lucas De Marchi
2023-09-28 10:05 ` [Intel-xe] [PATCH v6 2/5] drm/xe: directly use pat_index for pte_encode Matthew Auld
2023-09-28 13:15   ` Lucas De Marchi
2023-09-29  7:41     ` Matthew Auld
2023-09-28 19:13   ` Matt Roper
2023-10-01 15:36   ` Mishra, Pallavi
2023-09-28 10:05 ` [Intel-xe] [PATCH v6 3/5] drm/xe/uapi: Add support for cache and coherency mode Matthew Auld
2023-09-28 19:32   ` Souza, Jose
2023-09-29  7:28     ` Matthew Auld
2023-09-29 14:00       ` Souza, Jose
2023-09-28 10:05 ` [Intel-xe] [PATCH v6 4/5] drm/xe/pat: annotate pat_index with " Matthew Auld
2023-10-01 15:33   ` Mishra, Pallavi
2023-09-28 10:05 ` [Intel-xe] [PATCH v6 5/5] drm/xe/uapi: support pat_index selection with vm_bind Matthew Auld
2023-09-28 10:18 ` [Intel-xe] ✓ CI.Patch_applied: success for PAT and cache coherency support (rev7) Patchwork
2023-09-28 10:18 ` [Intel-xe] ✓ CI.checkpatch: " Patchwork
2023-09-28 10:19 ` [Intel-xe] ✓ CI.KUnit: " Patchwork
2023-09-28 10:26 ` [Intel-xe] ✓ CI.Build: " Patchwork
2023-09-28 10:27 ` [Intel-xe] ✓ CI.Hooks: " Patchwork
2023-09-28 10:28 ` [Intel-xe] ✓ CI.checksparse: " Patchwork
2023-09-28 11:02 ` [Intel-xe] ✗ CI.BAT: failure " Patchwork
2023-09-28 19:40 ` [Intel-xe] [PATCH v6 0/5] PAT and cache coherency support Souza, Jose
2023-09-28 20:02   ` Souza, Jose
2023-09-29  7:29     ` Matthew Auld

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