All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-xe] [PATCH 0/3] NULL bindings aka sparse bindings
@ 2023-06-08  5:03 Matthew Brost
  2023-06-08  5:03 ` [Intel-xe] [PATCH 1/3] drm/xe: s/XE_PTE_READ_ONLY/XE_PTE_FLAG_READ_ONLY Matthew Brost
                   ` (11 more replies)
  0 siblings, 12 replies; 30+ messages in thread
From: Matthew Brost @ 2023-06-08  5:03 UTC (permalink / raw)
  To: intel-xe

This feature has been request by Paulo ahead of the GPUVA series [1]. It
doesn't strickly require GPUVA so here it is.

All of the comments in [2] should be addressed.

Havea local version of IGT [3] up and running, expect that on the IGT
list shortly.

Matt

[1] https://patchwork.freedesktop.org/series/117156/
[2] https://patchwork.freedesktop.org/patch/534922/?series=117156&rev=2
[3] https://patchwork.freedesktop.org/patch/534957/?series=117177&rev=2

Matthew Brost (3):
  drm/xe: s/XE_PTE_READ_ONLY/XE_PTE_FLAG_READ_ONLY
  drm/xe: Move XE_PTE_FLAG_READ_ONLY to xe_vm_types.h
  drm/xe: NULL binding implementation

 drivers/gpu/drm/xe/xe_bo.h           |   3 +-
 drivers/gpu/drm/xe/xe_exec.c         |   2 +
 drivers/gpu/drm/xe/xe_gt_pagefault.c |   4 +-
 drivers/gpu/drm/xe/xe_pt.c           |  73 ++++++++++++++-----
 drivers/gpu/drm/xe/xe_vm.c           | 105 +++++++++++++++++----------
 drivers/gpu/drm/xe/xe_vm.h           |  12 ++-
 drivers/gpu/drm/xe/xe_vm_types.h     |   2 +
 include/uapi/drm/xe_drm.h            |   8 ++
 8 files changed, 146 insertions(+), 63 deletions(-)

-- 
2.34.1


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

* [Intel-xe] [PATCH 1/3] drm/xe: s/XE_PTE_READ_ONLY/XE_PTE_FLAG_READ_ONLY
  2023-06-08  5:03 [Intel-xe] [PATCH 0/3] NULL bindings aka sparse bindings Matthew Brost
@ 2023-06-08  5:03 ` Matthew Brost
  2023-06-08  8:26   ` Francois Dugast
  2023-06-14  7:59   ` Thomas Hellström
  2023-06-08  5:03 ` [Intel-xe] [PATCH 2/3] drm/xe: Move XE_PTE_FLAG_READ_ONLY to xe_vm_types.h Matthew Brost
                   ` (10 subsequent siblings)
  11 siblings, 2 replies; 30+ messages in thread
From: Matthew Brost @ 2023-06-08  5:03 UTC (permalink / raw)
  To: intel-xe

This define is for internal PTE flags rather than fields in the hardware
PTEs, rename as such. This will help in an upcoming patch to avoid
further confusion.

Signed-off-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_bo.h |  2 +-
 drivers/gpu/drm/xe/xe_pt.c |  2 +-
 drivers/gpu/drm/xe/xe_vm.c | 12 +++++++-----
 3 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
index 29eb7474f018..552fe073e9c5 100644
--- a/drivers/gpu/drm/xe/xe_bo.h
+++ b/drivers/gpu/drm/xe/xe_bo.h
@@ -65,7 +65,7 @@
 #define XE_PAGE_PRESENT			BIT_ULL(0)
 #define XE_PAGE_RW			BIT_ULL(1)
 
-#define XE_PTE_READ_ONLY		BIT(0)
+#define XE_PTE_FLAG_READ_ONLY		BIT(0)
 
 #define XE_PL_SYSTEM		TTM_PL_SYSTEM
 #define XE_PL_TT		TTM_PL_TT
diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
index bef265715000..39ec94549439 100644
--- a/drivers/gpu/drm/xe/xe_pt.c
+++ b/drivers/gpu/drm/xe/xe_pt.c
@@ -102,7 +102,7 @@ static u64 __gen8_pte_encode(u64 pte, enum xe_cache_level cache, u32 flags,
 {
 	pte |= XE_PAGE_PRESENT | XE_PAGE_RW;
 
-	if (unlikely(flags & XE_PTE_READ_ONLY))
+	if (unlikely(flags & XE_PTE_FLAG_READ_ONLY))
 		pte &= ~XE_PAGE_RW;
 
 	/* FIXME: I don't think the PPAT handling is correct for MTL */
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index d1c380ad7f6b..94fc9c330235 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -61,7 +61,7 @@ int xe_vma_userptr_pin_pages(struct xe_vma *vma)
 	bool in_kthread = !current->mm;
 	unsigned long notifier_seq;
 	int pinned, ret, i;
-	bool read_only = vma->pte_flags & XE_PTE_READ_ONLY;
+	bool read_only = vma->pte_flags & XE_PTE_FLAG_READ_ONLY;
 
 	lockdep_assert_held(&vm->lock);
 	XE_BUG_ON(!xe_vma_is_userptr(vma));
@@ -869,7 +869,7 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
 	vma->start = start;
 	vma->end = end;
 	if (read_only)
-		vma->pte_flags = XE_PTE_READ_ONLY;
+		vma->pte_flags = XE_PTE_FLAG_READ_ONLY;
 
 	if (tile_mask) {
 		vma->tile_mask = tile_mask;
@@ -923,7 +923,7 @@ static void xe_vma_destroy_late(struct xe_vma *vma)
 {
 	struct xe_vm *vm = vma->vm;
 	struct xe_device *xe = vm->xe;
-	bool read_only = vma->pte_flags & XE_PTE_READ_ONLY;
+	bool read_only = vma->pte_flags & XE_PTE_FLAG_READ_ONLY;
 
 	if (xe_vma_is_userptr(vma)) {
 		if (vma->userptr.sg) {
@@ -2641,7 +2641,8 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
 					  first->userptr.ptr,
 					  first->start,
 					  lookup->start - 1,
-					  (first->pte_flags & XE_PTE_READ_ONLY),
+					  (first->pte_flags &
+					   XE_PTE_FLAG_READ_ONLY),
 					  first->tile_mask);
 		if (first->bo)
 			xe_bo_unlock(first->bo, &ww);
@@ -2672,7 +2673,8 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
 					 last->userptr.ptr + chunk,
 					 last->start + chunk,
 					 last->end,
-					 (last->pte_flags & XE_PTE_READ_ONLY),
+					 (last->pte_flags &
+					  XE_PTE_FLAG_READ_ONLY),
 					 last->tile_mask);
 		if (last->bo)
 			xe_bo_unlock(last->bo, &ww);
-- 
2.34.1


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

* [Intel-xe] [PATCH 2/3] drm/xe: Move XE_PTE_FLAG_READ_ONLY to xe_vm_types.h
  2023-06-08  5:03 [Intel-xe] [PATCH 0/3] NULL bindings aka sparse bindings Matthew Brost
  2023-06-08  5:03 ` [Intel-xe] [PATCH 1/3] drm/xe: s/XE_PTE_READ_ONLY/XE_PTE_FLAG_READ_ONLY Matthew Brost
@ 2023-06-08  5:03 ` Matthew Brost
  2023-06-08  8:28   ` Francois Dugast
  2023-06-14  8:02   ` Thomas Hellström
  2023-06-08  5:03 ` [Intel-xe] [PATCH 3/3] drm/xe: NULL binding implementation Matthew Brost
                   ` (9 subsequent siblings)
  11 siblings, 2 replies; 30+ messages in thread
From: Matthew Brost @ 2023-06-08  5:03 UTC (permalink / raw)
  To: intel-xe

XE_PTE_FLAG_READ_ONLY is specific to struct xe_vma, move it from xe_bo.h
to xe_vm_types.h to reflect that.

Signed-off-vy: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_bo.h       | 2 --
 drivers/gpu/drm/xe/xe_vm_types.h | 1 +
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
index 552fe073e9c5..dd3d448fee0b 100644
--- a/drivers/gpu/drm/xe/xe_bo.h
+++ b/drivers/gpu/drm/xe/xe_bo.h
@@ -65,8 +65,6 @@
 #define XE_PAGE_PRESENT			BIT_ULL(0)
 #define XE_PAGE_RW			BIT_ULL(1)
 
-#define XE_PTE_FLAG_READ_ONLY		BIT(0)
-
 #define XE_PL_SYSTEM		TTM_PL_SYSTEM
 #define XE_PL_TT		TTM_PL_TT
 #define XE_PL_VRAM0		TTM_PL_VRAM
diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
index 76af6ac0fa84..6daddd29d416 100644
--- a/drivers/gpu/drm/xe/xe_vm_types.h
+++ b/drivers/gpu/drm/xe/xe_vm_types.h
@@ -30,6 +30,7 @@ struct xe_vma {
 	/** @end: end address of this VMA within its address domain */
 	u64 end;
 	/** @pte_flags: pte flags for this VMA */
+#define XE_PTE_FLAG_READ_ONLY		BIT(0)
 	u32 pte_flags;
 
 	/** @bo: BO if not a userptr, must be NULL is userptr */
-- 
2.34.1


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

* [Intel-xe] [PATCH 3/3] drm/xe: NULL binding implementation
  2023-06-08  5:03 [Intel-xe] [PATCH 0/3] NULL bindings aka sparse bindings Matthew Brost
  2023-06-08  5:03 ` [Intel-xe] [PATCH 1/3] drm/xe: s/XE_PTE_READ_ONLY/XE_PTE_FLAG_READ_ONLY Matthew Brost
  2023-06-08  5:03 ` [Intel-xe] [PATCH 2/3] drm/xe: Move XE_PTE_FLAG_READ_ONLY to xe_vm_types.h Matthew Brost
@ 2023-06-08  5:03 ` Matthew Brost
  2023-06-08 20:59   ` Welty, Brian
                     ` (4 more replies)
  2023-06-08  5:05 ` [Intel-xe] ✓ CI.Patch_applied: success for NULL bindings aka sparse bindings Patchwork
                   ` (8 subsequent siblings)
  11 siblings, 5 replies; 30+ messages in thread
From: Matthew Brost @ 2023-06-08  5:03 UTC (permalink / raw)
  To: intel-xe; +Cc: Paulo Zanoni

Add uAPI and implementation for NULL bindings. A NULL binding is defined
as writes dropped and read zero. A single bit in the uAPI has been added
which results in a single bit in the PTEs being set.

NULL bindings are indended to be used to implement VK sparse bindings,
in particular residencyNonResidentStrict property.

Suggested-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_bo.h           |  1 +
 drivers/gpu/drm/xe/xe_exec.c         |  2 +
 drivers/gpu/drm/xe/xe_gt_pagefault.c |  4 +-
 drivers/gpu/drm/xe/xe_pt.c           | 71 +++++++++++++++------
 drivers/gpu/drm/xe/xe_vm.c           | 95 ++++++++++++++++++----------
 drivers/gpu/drm/xe/xe_vm.h           | 12 +++-
 drivers/gpu/drm/xe/xe_vm_types.h     |  1 +
 include/uapi/drm/xe_drm.h            |  8 +++
 8 files changed, 138 insertions(+), 56 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
index dd3d448fee0b..3a148cc6e811 100644
--- a/drivers/gpu/drm/xe/xe_bo.h
+++ b/drivers/gpu/drm/xe/xe_bo.h
@@ -61,6 +61,7 @@
 #define XE_PPGTT_PTE_LM			BIT_ULL(11)
 #define XE_PDE_64K			BIT_ULL(6)
 #define XE_PTE_PS64			BIT_ULL(8)
+#define XE_PTE_NULL			BIT_ULL(9)
 
 #define XE_PAGE_PRESENT			BIT_ULL(0)
 #define XE_PAGE_RW			BIT_ULL(1)
diff --git a/drivers/gpu/drm/xe/xe_exec.c b/drivers/gpu/drm/xe/xe_exec.c
index e44076ee2e11..4f7694a29348 100644
--- a/drivers/gpu/drm/xe/xe_exec.c
+++ b/drivers/gpu/drm/xe/xe_exec.c
@@ -120,6 +120,8 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
 	 * to a location where the GPU can access it).
 	 */
 	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
+		XE_WARN_ON(xe_vma_is_null(vma));
+
 		if (xe_vma_is_userptr(vma))
 			continue;
 
diff --git a/drivers/gpu/drm/xe/xe_gt_pagefault.c b/drivers/gpu/drm/xe/xe_gt_pagefault.c
index 73db7f7c0381..6faebd02f3fb 100644
--- a/drivers/gpu/drm/xe/xe_gt_pagefault.c
+++ b/drivers/gpu/drm/xe/xe_gt_pagefault.c
@@ -533,8 +533,8 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
 
 	trace_xe_vma_acc(vma);
 
-	/* Userptr can't be migrated, nothing to do */
-	if (xe_vma_is_userptr(vma))
+	/* Userptr or null can't be migrated, nothing to do */
+	if (xe_vma_has_no_bo(vma))
 		goto unlock_vm;
 
 	/* Lock VM and BOs dma-resv */
diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
index 39ec94549439..265ee45bee5c 100644
--- a/drivers/gpu/drm/xe/xe_pt.c
+++ b/drivers/gpu/drm/xe/xe_pt.c
@@ -81,7 +81,9 @@ u64 gen8_pde_encode(struct xe_bo *bo, u64 bo_offset,
 static dma_addr_t vma_addr(struct xe_vma *vma, u64 offset,
 			   size_t page_size, bool *is_vram)
 {
-	if (xe_vma_is_userptr(vma)) {
+	if (xe_vma_is_null(vma)) {
+		return 0;
+	} else if (xe_vma_is_userptr(vma)) {
 		struct xe_res_cursor cur;
 		u64 page;
 
@@ -559,6 +561,10 @@ static bool xe_pt_hugepte_possible(u64 addr, u64 next, unsigned int level,
 	if (next - xe_walk->va_curs_start > xe_walk->curs->size)
 		return false;
 
+	/* null VMA's do not have dma adresses */
+	if (xe_walk->pte_flags & XE_PTE_FLAG_NULL)
+		return true;
+
 	/* Is the DMA address huge PTE size aligned? */
 	size = next - addr;
 	dma = addr - xe_walk->va_curs_start + xe_res_dma(xe_walk->curs);
@@ -575,6 +581,10 @@ xe_pt_scan_64K(u64 addr, u64 next, struct xe_pt_stage_bind_walk *xe_walk)
 {
 	struct xe_res_cursor curs = *xe_walk->curs;
 
+	/* null VMA's do not have dma adresses */
+	if (xe_walk->pte_flags & XE_PTE_FLAG_NULL)
+		return true;
+
 	if (!IS_ALIGNED(addr, SZ_64K))
 		return false;
 
@@ -631,12 +641,29 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
 	/* Is this a leaf entry ?*/
 	if (level == 0 || xe_pt_hugepte_possible(addr, next, level, xe_walk)) {
 		struct xe_res_cursor *curs = xe_walk->curs;
+		u64 pte = 0;
+		bool is_null = xe_walk->pte_flags & XE_PTE_FLAG_NULL;
 
 		XE_WARN_ON(xe_walk->va_curs_start != addr);
 
-		pte = __gen8_pte_encode(xe_res_dma(curs) + xe_walk->dma_offset,
-					xe_walk->cache, xe_walk->pte_flags,
-					level);
+		if (is_null) {
+			pte |= XE_PAGE_PRESENT | XE_PAGE_RW;
+			if (xe_walk->pte_flags & XE_PTE_FLAG_READ_ONLY)
+				pte &= ~XE_PAGE_RW;
+
+			if (level == 1)
+				pte |= XE_PDE_PS_2M;
+			else if (level == 2)
+				pte |= XE_PDPE_PS_1G;
+
+			pte |= XE_PTE_NULL;
+		} else {
+			pte = __gen8_pte_encode(xe_res_dma(curs) +
+						xe_walk->dma_offset,
+						xe_walk->cache,
+						xe_walk->pte_flags,
+						level);
+		}
 		pte |= xe_walk->default_pte;
 
 		/*
@@ -654,7 +681,8 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
 		if (unlikely(ret))
 			return ret;
 
-		xe_res_next(curs, next - addr);
+		if (!is_null)
+			xe_res_next(curs, next - addr);
 		xe_walk->va_curs_start = next;
 		*action = ACTION_CONTINUE;
 
@@ -761,24 +789,29 @@ xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
 		xe_walk.dma_offset = vram_region_gpu_offset(bo->ttm.resource);
 		xe_walk.cache = XE_CACHE_WB;
 	} else {
-		if (!xe_vma_is_userptr(vma) && bo->flags & XE_BO_SCANOUT_BIT)
+		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_is_userptr(vma) && xe_bo_is_stolen(bo))
+	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));
 
 	xe_bo_assert_held(bo);
-	if (xe_vma_is_userptr(vma))
-		xe_res_first_sg(vma->userptr.sg, 0, vma->end - vma->start + 1,
-				&curs);
-	else if (xe_bo_is_vram(bo) || xe_bo_is_stolen(bo))
-		xe_res_first(bo->ttm.resource, vma->bo_offset,
-			     vma->end - vma->start + 1, &curs);
-	else
-		xe_res_first_sg(xe_bo_get_sg(bo), vma->bo_offset,
-				vma->end - vma->start + 1, &curs);
+
+	if (!xe_vma_is_null(vma)) {
+		if (xe_vma_is_userptr(vma))
+			xe_res_first_sg(vma->userptr.sg, 0,
+					vma->end - vma->start + 1, &curs);
+		else if (xe_bo_is_vram(bo) || xe_bo_is_stolen(bo))
+			xe_res_first(bo->ttm.resource, vma->bo_offset,
+				     vma->end - vma->start + 1, &curs);
+		else
+			xe_res_first_sg(xe_bo_get_sg(bo), vma->bo_offset,
+					vma->end - vma->start + 1, &curs);
+	} else {
+		curs.size = vma->end - vma->start + 1;
+	}
 
 	ret = xe_pt_walk_range(&pt->base, pt->level, vma->start, vma->end + 1,
 				&xe_walk.base);
@@ -967,7 +1000,7 @@ static void xe_pt_commit_locks_assert(struct xe_vma *vma)
 
 	if (xe_vma_is_userptr(vma))
 		lockdep_assert_held_read(&vm->userptr.notifier_lock);
-	else
+	else if (!xe_vma_is_null(vma))
 		dma_resv_assert_held(vma->bo->ttm.base.resv);
 
 	dma_resv_assert_held(&vm->resv);
@@ -1330,7 +1363,7 @@ __xe_pt_bind_vma(struct xe_tile *tile, struct xe_vma *vma, struct xe_engine *e,
 				   DMA_RESV_USAGE_KERNEL :
 				   DMA_RESV_USAGE_BOOKKEEP);
 
-		if (!xe_vma_is_userptr(vma) && !vma->bo->vm)
+		if (!xe_vma_has_no_bo(vma) && !vma->bo->vm)
 			dma_resv_add_fence(vma->bo->ttm.base.resv, fence,
 					   DMA_RESV_USAGE_BOOKKEEP);
 		xe_pt_commit_bind(vma, entries, num_entries, rebind,
@@ -1647,7 +1680,7 @@ __xe_pt_unbind_vma(struct xe_tile *tile, struct xe_vma *vma, struct xe_engine *e
 				   DMA_RESV_USAGE_BOOKKEEP);
 
 		/* This fence will be installed by caller when doing eviction */
-		if (!xe_vma_is_userptr(vma) && !vma->bo->vm)
+		if (!xe_vma_has_no_bo(vma) && !vma->bo->vm)
 			dma_resv_add_fence(vma->bo->ttm.base.resv, fence,
 					   DMA_RESV_USAGE_BOOKKEEP);
 		xe_pt_commit_unbind(vma, entries, num_entries,
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index 94fc9c330235..f7629db275f9 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -590,7 +590,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
 		goto out_unlock;
 
 	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
-		if (xe_vma_is_userptr(vma) || vma->destroyed)
+		if (xe_vma_has_no_bo(vma) || vma->destroyed)
 			continue;
 
 		err = xe_bo_validate(vma->bo, vm, false);
@@ -843,6 +843,7 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
 				    u64 bo_offset_or_userptr,
 				    u64 start, u64 end,
 				    bool read_only,
+				    bool is_null,
 				    u64 tile_mask)
 {
 	struct xe_vma *vma;
@@ -868,8 +869,11 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
 	vma->vm = vm;
 	vma->start = start;
 	vma->end = end;
+	vma->pte_flags = 0;
 	if (read_only)
-		vma->pte_flags = XE_PTE_FLAG_READ_ONLY;
+		vma->pte_flags |= XE_PTE_FLAG_READ_ONLY;
+	if (is_null)
+		vma->pte_flags |= XE_PTE_FLAG_NULL;
 
 	if (tile_mask) {
 		vma->tile_mask = tile_mask;
@@ -886,23 +890,26 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
 		vma->bo_offset = bo_offset_or_userptr;
 		vma->bo = xe_bo_get(bo);
 		list_add_tail(&vma->bo_link, &bo->vmas);
-	} else /* userptr */ {
-		u64 size = end - start + 1;
-		int err;
+	} else /* userptr or null */ {
+		if (!is_null) {
+			u64 size = end - start + 1;
+			int err;
 
-		vma->userptr.ptr = bo_offset_or_userptr;
+			vma->userptr.ptr = bo_offset_or_userptr;
 
-		err = mmu_interval_notifier_insert(&vma->userptr.notifier,
-						   current->mm,
-						   vma->userptr.ptr, size,
-						   &vma_userptr_notifier_ops);
-		if (err) {
-			kfree(vma);
-			vma = ERR_PTR(err);
-			return vma;
+			err = mmu_interval_notifier_insert(&vma->userptr.notifier,
+							   current->mm,
+							   vma->userptr.ptr, size,
+							   &vma_userptr_notifier_ops);
+			if (err) {
+				kfree(vma);
+				vma = ERR_PTR(err);
+				return vma;
+			}
+
+			vma->userptr.notifier_seq = LONG_MAX;
 		}
 
-		vma->userptr.notifier_seq = LONG_MAX;
 		xe_vm_get(vm);
 	}
 
@@ -942,6 +949,8 @@ static void xe_vma_destroy_late(struct xe_vma *vma)
 		 */
 		mmu_interval_notifier_remove(&vma->userptr.notifier);
 		xe_vm_put(vm);
+	} else if (xe_vma_is_null(vma)) {
+		xe_vm_put(vm);
 	} else {
 		xe_bo_put(vma->bo);
 	}
@@ -1024,7 +1033,7 @@ static void xe_vma_destroy(struct xe_vma *vma, struct dma_fence *fence)
 		list_del_init(&vma->userptr.invalidate_link);
 		spin_unlock(&vm->userptr.invalidated_lock);
 		list_del(&vma->userptr_link);
-	} else {
+	} else if (!xe_vma_is_null(vma)) {
 		xe_bo_assert_held(vma->bo);
 		list_del(&vma->bo_link);
 
@@ -1391,7 +1400,7 @@ void xe_vm_close_and_put(struct xe_vm *vm)
 	while (vm->vmas.rb_node) {
 		struct xe_vma *vma = to_xe_vma(vm->vmas.rb_node);
 
-		if (xe_vma_is_userptr(vma)) {
+		if (xe_vma_has_no_bo(vma)) {
 			down_read(&vm->userptr.notifier_lock);
 			vma->destroyed = true;
 			up_read(&vm->userptr.notifier_lock);
@@ -1400,7 +1409,7 @@ void xe_vm_close_and_put(struct xe_vm *vm)
 		rb_erase(&vma->vm_node, &vm->vmas);
 
 		/* easy case, remove from VMA? */
-		if (xe_vma_is_userptr(vma) || vma->bo->vm) {
+		if (xe_vma_has_no_bo(vma) || vma->bo->vm) {
 			xe_vma_destroy(vma, NULL);
 			continue;
 		}
@@ -2034,7 +2043,7 @@ static int xe_vm_prefetch(struct xe_vm *vm, struct xe_vma *vma,
 
 	XE_BUG_ON(region > ARRAY_SIZE(region_to_mem_type));
 
-	if (!xe_vma_is_userptr(vma)) {
+	if (!xe_vma_has_no_bo(vma)) {
 		err = xe_bo_migrate(vma->bo, region_to_mem_type[region]);
 		if (err)
 			return err;
@@ -2643,6 +2652,8 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
 					  lookup->start - 1,
 					  (first->pte_flags &
 					   XE_PTE_FLAG_READ_ONLY),
+					  (first->pte_flags &
+					   XE_PTE_FLAG_NULL),
 					  first->tile_mask);
 		if (first->bo)
 			xe_bo_unlock(first->bo, &ww);
@@ -2675,6 +2686,7 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
 					 last->end,
 					 (last->pte_flags &
 					  XE_PTE_FLAG_READ_ONLY),
+					 (last->pte_flags & XE_PTE_FLAG_NULL),
 					 last->tile_mask);
 		if (last->bo)
 			xe_bo_unlock(last->bo, &ww);
@@ -2742,7 +2754,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
 		      *next;
 	struct rb_node *node;
 
-	if (!xe_vma_is_userptr(vma)) {
+	if (!xe_vma_has_no_bo(vma)) {
 		if (!xe_bo_can_migrate(vma->bo, region_to_mem_type[region]))
 			return ERR_PTR(-EINVAL);
 	}
@@ -2751,7 +2763,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
 	while ((node = rb_next(node))) {
 		if (!xe_vma_cmp_vma_cb(lookup, node)) {
 			__vma = to_xe_vma(node);
-			if (!xe_vma_is_userptr(__vma)) {
+			if (!xe_vma_has_no_bo(__vma)) {
 				if (!xe_bo_can_migrate(__vma->bo, region_to_mem_type[region]))
 					goto flush_list;
 			}
@@ -2765,7 +2777,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
 	while ((node = rb_prev(node))) {
 		if (!xe_vma_cmp_vma_cb(lookup, node)) {
 			__vma = to_xe_vma(node);
-			if (!xe_vma_is_userptr(__vma)) {
+			if (!xe_vma_has_no_bo(__vma)) {
 				if (!xe_bo_can_migrate(__vma->bo, region_to_mem_type[region]))
 					goto flush_list;
 			}
@@ -2824,21 +2836,23 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
 
 	switch (VM_BIND_OP(op)) {
 	case XE_VM_BIND_OP_MAP:
-		XE_BUG_ON(!bo);
-
-		err = xe_bo_lock(bo, &ww, 0, true);
-		if (err)
-			return ERR_PTR(err);
+		if (bo) {
+			err = xe_bo_lock(bo, &ww, 0, true);
+			if (err)
+				return ERR_PTR(err);
+		}
 		vma = xe_vma_create(vm, bo, bo_offset_or_userptr, addr,
 				    addr + range - 1,
 				    op & XE_VM_BIND_FLAG_READONLY,
+				    op & XE_VM_BIND_FLAG_NULL,
 				    tile_mask);
-		xe_bo_unlock(bo, &ww);
+		if (bo)
+			xe_bo_unlock(bo, &ww);
 		if (!vma)
 			return ERR_PTR(-ENOMEM);
 
 		xe_vm_insert_vma(vm, vma);
-		if (!bo->vm) {
+		if (bo && !bo->vm) {
 			vm_insert_extobj(vm, vma);
 			err = add_preempt_fences(vm, bo);
 			if (err) {
@@ -2872,6 +2886,7 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
 		vma = xe_vma_create(vm, NULL, bo_offset_or_userptr, addr,
 				    addr + range - 1,
 				    op & XE_VM_BIND_FLAG_READONLY,
+				    op & XE_VM_BIND_FLAG_NULL,
 				    tile_mask);
 		if (!vma)
 			return ERR_PTR(-ENOMEM);
@@ -2897,11 +2912,12 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
 #ifdef TEST_VM_ASYNC_OPS_ERROR
 #define SUPPORTED_FLAGS	\
 	(FORCE_ASYNC_OP_ERROR | XE_VM_BIND_FLAG_ASYNC | \
-	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | 0xffff)
+	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | \
+	 XE_VM_BIND_FLAG_NULL | 0xffff)
 #else
 #define SUPPORTED_FLAGS	\
 	(XE_VM_BIND_FLAG_ASYNC | XE_VM_BIND_FLAG_READONLY | \
-	 XE_VM_BIND_FLAG_IMMEDIATE | 0xffff)
+	 XE_VM_BIND_FLAG_IMMEDIATE | XE_VM_BIND_FLAG_NULL | 0xffff)
 #endif
 #define XE_64K_PAGE_MASK 0xffffull
 
@@ -2949,6 +2965,7 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
 		u32 obj = (*bind_ops)[i].obj;
 		u64 obj_offset = (*bind_ops)[i].obj_offset;
 		u32 region = (*bind_ops)[i].region;
+		bool is_null = op &  XE_VM_BIND_FLAG_NULL;
 
 		if (XE_IOCTL_ERR(xe, (*bind_ops)[i].pad) ||
 		    XE_IOCTL_ERR(xe, (*bind_ops)[i].reserved[0] ||
@@ -2982,8 +2999,13 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
 		if (XE_IOCTL_ERR(xe, VM_BIND_OP(op) >
 				 XE_VM_BIND_OP_PREFETCH) ||
 		    XE_IOCTL_ERR(xe, op & ~SUPPORTED_FLAGS) ||
+		    XE_IOCTL_ERR(xe, obj && is_null) ||
+		    XE_IOCTL_ERR(xe, obj_offset && is_null) ||
+		    XE_IOCTL_ERR(xe, VM_BIND_OP(op) != XE_VM_BIND_OP_MAP &&
+				 is_null) ||
 		    XE_IOCTL_ERR(xe, !obj &&
-				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP) ||
+				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP &&
+				 !is_null) ||
 		    XE_IOCTL_ERR(xe, !obj &&
 				 VM_BIND_OP(op) == XE_VM_BIND_OP_UNMAP_ALL) ||
 		    XE_IOCTL_ERR(xe, addr &&
@@ -3389,6 +3411,7 @@ int xe_vm_invalidate_vma(struct xe_vma *vma)
 	int ret;
 
 	XE_BUG_ON(!xe_vm_in_fault_mode(vma->vm));
+	XE_WARN_ON(xe_vma_is_null(vma));
 	trace_xe_vma_usm_invalidate(vma);
 
 	/* Check that we don't race with page-table updates */
@@ -3451,8 +3474,11 @@ int xe_analyze_vm(struct drm_printer *p, struct xe_vm *vm, int gt_id)
 	for (node = rb_first(&vm->vmas); node; node = rb_next(node)) {
 		struct xe_vma *vma = to_xe_vma(node);
 		bool is_userptr = xe_vma_is_userptr(vma);
+		bool is_null = xe_vma_is_null(vma);
 
-		if (is_userptr) {
+		if (is_null) {
+			addr = 0;
+		} else if (is_userptr) {
 			struct xe_res_cursor cur;
 
 			xe_res_first_sg(vma->userptr.sg, 0, XE_PAGE_SIZE,
@@ -3463,7 +3489,8 @@ int xe_analyze_vm(struct drm_printer *p, struct xe_vm *vm, int gt_id)
 		}
 		drm_printf(p, " [%016llx-%016llx] S:0x%016llx A:%016llx %s\n",
 			   vma->start, vma->end, vma->end - vma->start + 1ull,
-			   addr, is_userptr ? "USR" : is_vram ? "VRAM" : "SYS");
+			   addr, is_null ? "NULL" : is_userptr ? "USR" :
+			   is_vram ? "VRAM" : "SYS");
 	}
 	up_read(&vm->lock);
 
diff --git a/drivers/gpu/drm/xe/xe_vm.h b/drivers/gpu/drm/xe/xe_vm.h
index 372f26153209..38731e200813 100644
--- a/drivers/gpu/drm/xe/xe_vm.h
+++ b/drivers/gpu/drm/xe/xe_vm.h
@@ -115,11 +115,21 @@ static inline void xe_vm_reactivate_rebind(struct xe_vm *vm)
 	}
 }
 
-static inline bool xe_vma_is_userptr(struct xe_vma *vma)
+static inline bool xe_vma_is_null(struct xe_vma *vma)
+{
+	return vma->pte_flags & XE_PTE_FLAG_NULL;
+}
+
+static inline bool xe_vma_has_no_bo(struct xe_vma *vma)
 {
 	return !vma->bo;
 }
 
+static inline bool xe_vma_is_userptr(struct xe_vma *vma)
+{
+	return xe_vma_has_no_bo(vma) && !xe_vma_is_null(vma);
+}
+
 int xe_vma_userptr_pin_pages(struct xe_vma *vma);
 
 int xe_vma_userptr_check_repin(struct xe_vma *vma);
diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
index 6daddd29d416..f775bafe4619 100644
--- a/drivers/gpu/drm/xe/xe_vm_types.h
+++ b/drivers/gpu/drm/xe/xe_vm_types.h
@@ -31,6 +31,7 @@ struct xe_vma {
 	u64 end;
 	/** @pte_flags: pte flags for this VMA */
 #define XE_PTE_FLAG_READ_ONLY		BIT(0)
+#define XE_PTE_FLAG_NULL		BIT(1)
 	u32 pte_flags;
 
 	/** @bo: BO if not a userptr, must be NULL is userptr */
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index 0ebc50beb5e5..39a1ce89732f 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -456,6 +456,14 @@ struct drm_xe_vm_bind_op {
 	 * than differing the MAP to the page fault handler.
 	 */
 #define XE_VM_BIND_FLAG_IMMEDIATE	(0x1 << 18)
+	/*
+	 * When the NULL flag is set, the page tables are setup with a special
+	 * bit which indicates writes are dropped and all reads return zero.  In
+	 * the future, the NULL flags will only be valid for XE_VM_BIND_OP_MAP
+	 * operations, the BO handle MBZ, and the BO offset MBZ. This flag is
+	 * intended to implement VK sparse bindings.
+	 */
+#define XE_VM_BIND_FLAG_NULL		(0x1 << 19)
 
 	/** @reserved: Reserved */
 	__u64 reserved[2];
-- 
2.34.1


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

* [Intel-xe] ✓ CI.Patch_applied: success for NULL bindings aka sparse bindings
  2023-06-08  5:03 [Intel-xe] [PATCH 0/3] NULL bindings aka sparse bindings Matthew Brost
                   ` (2 preceding siblings ...)
  2023-06-08  5:03 ` [Intel-xe] [PATCH 3/3] drm/xe: NULL binding implementation Matthew Brost
@ 2023-06-08  5:05 ` Patchwork
  2023-06-08  5:06 ` [Intel-xe] ✗ CI.checkpatch: warning " Patchwork
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2023-06-08  5:05 UTC (permalink / raw)
  To: Matthew Brost; +Cc: intel-xe

== Series Details ==

Series: NULL bindings aka sparse bindings
URL   : https://patchwork.freedesktop.org/series/119048/
State : success

== Summary ==

=== Applying kernel patches on branch 'drm-xe-next' with base: ===
Base commit: f093641a9 fixup! drm/xe/display: Implement display support
=== git am output follows ===
Applying: drm/xe: s/XE_PTE_READ_ONLY/XE_PTE_FLAG_READ_ONLY
Applying: drm/xe: Move XE_PTE_FLAG_READ_ONLY to xe_vm_types.h
Applying: drm/xe: NULL binding implementation



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

* [Intel-xe] ✗ CI.checkpatch: warning for NULL bindings aka sparse bindings
  2023-06-08  5:03 [Intel-xe] [PATCH 0/3] NULL bindings aka sparse bindings Matthew Brost
                   ` (3 preceding siblings ...)
  2023-06-08  5:05 ` [Intel-xe] ✓ CI.Patch_applied: success for NULL bindings aka sparse bindings Patchwork
@ 2023-06-08  5:06 ` Patchwork
  2023-06-08  5:07 ` [Intel-xe] ✓ CI.KUnit: success " Patchwork
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2023-06-08  5:06 UTC (permalink / raw)
  To: Matthew Brost; +Cc: intel-xe

== Series Details ==

Series: NULL bindings aka sparse bindings
URL   : https://patchwork.freedesktop.org/series/119048/
State : warning

== Summary ==

+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
c7d32770e3cd31d9fc134ce41f329b10aa33ee15
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 0822e4e1bcfc4c2f212e900fa6e0cf12bc2f3a5c
Author: Matthew Brost <matthew.brost@intel.com>
Date:   Wed Jun 7 22:03:33 2023 -0700

    drm/xe: NULL binding implementation
    
    Add uAPI and implementation for NULL bindings. A NULL binding is defined
    as writes dropped and read zero. A single bit in the uAPI has been added
    which results in a single bit in the PTEs being set.
    
    NULL bindings are indended to be used to implement VK sparse bindings,
    in particular residencyNonResidentStrict property.
    
    Suggested-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
    Signed-off-by: Matthew Brost <matthew.brost@intel.com>
+ /mt/dim checkpatch f093641a9cd6fa9a5a8dd6577746904fb9ac9e12 drm-intel
b5b2038ee drm/xe: s/XE_PTE_READ_ONLY/XE_PTE_FLAG_READ_ONLY
4fc275977 drm/xe: Move XE_PTE_FLAG_READ_ONLY to xe_vm_types.h
-:35: ERROR:MISSING_SIGN_OFF: Missing Signed-off-by: line(s)

total: 1 errors, 0 warnings, 0 checks, 15 lines checked
0822e4e1b drm/xe: NULL binding implementation
-:10: WARNING:TYPO_SPELLING: 'indended' may be misspelled - perhaps 'intended'?
#10: 
NULL bindings are indended to be used to implement VK sparse bindings,
                  ^^^^^^^^

-:75: WARNING:TYPO_SPELLING: 'adresses' may be misspelled - perhaps 'addresses'?
#75: FILE: drivers/gpu/drm/xe/xe_pt.c:564:
+	/* null VMA's do not have dma adresses */
 	                              ^^^^^^^^

-:86: WARNING:TYPO_SPELLING: 'adresses' may be misspelled - perhaps 'addresses'?
#86: FILE: drivers/gpu/drm/xe/xe_pt.c:584:
+	/* null VMA's do not have dma adresses */
 	                              ^^^^^^^^

total: 0 errors, 3 warnings, 0 checks, 448 lines checked



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

* [Intel-xe] ✓ CI.KUnit: success for NULL bindings aka sparse bindings
  2023-06-08  5:03 [Intel-xe] [PATCH 0/3] NULL bindings aka sparse bindings Matthew Brost
                   ` (4 preceding siblings ...)
  2023-06-08  5:06 ` [Intel-xe] ✗ CI.checkpatch: warning " Patchwork
@ 2023-06-08  5:07 ` Patchwork
  2023-06-08  5:11 ` [Intel-xe] ✓ CI.Build: " Patchwork
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2023-06-08  5:07 UTC (permalink / raw)
  To: Matthew Brost; +Cc: intel-xe

== Series Details ==

Series: NULL bindings aka sparse bindings
URL   : https://patchwork.freedesktop.org/series/119048/
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
[05:06:05] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[05:06:09] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make ARCH=um O=.kunit --jobs=48
[05:06:31] Starting KUnit Kernel (1/1)...
[05:06:31] ============================================================
[05:06:32] ==================== xe_bo (2 subtests) ====================
[05:06:32] [SKIPPED] xe_ccs_migrate_kunit
[05:06:32] [SKIPPED] xe_bo_evict_kunit
[05:06:32] ===================== [SKIPPED] xe_bo ======================
[05:06:32] ================== xe_dma_buf (1 subtest) ==================
[05:06:32] [SKIPPED] xe_dma_buf_kunit
[05:06:32] =================== [SKIPPED] xe_dma_buf ===================
[05:06:32] ================== xe_migrate (1 subtest) ==================
[05:06:32] [SKIPPED] xe_migrate_sanity_kunit
[05:06:32] =================== [SKIPPED] xe_migrate ===================
[05:06:32] =================== xe_pci (2 subtests) ====================
[05:06:32] [PASSED] xe_gmdid_graphics_ip
[05:06:32] [PASSED] xe_gmdid_media_ip
[05:06:32] ===================== [PASSED] xe_pci ======================
[05:06:32] ==================== xe_rtp (1 subtest) ====================
[05:06:32] ================== xe_rtp_process_tests  ===================
[05:06:32] [PASSED] coalesce-same-reg
[05:06:32] [PASSED] no-match-no-add
[05:06:32] [PASSED] no-match-no-add-multiple-rules
[05:06:32] [PASSED] two-regs-two-entries
[05:06:32] [PASSED] clr-one-set-other
[05:06:32] [PASSED] set-field
[05:06:32] [PASSED] conflict-duplicate
[05:06:32] [PASSED] conflict-not-disjoint
[05:06:32] [PASSED] conflict-reg-type
[05:06:32] ============== [PASSED] xe_rtp_process_tests ===============
[05:06:32] ===================== [PASSED] xe_rtp ======================
[05:06:32] ==================== xe_wa (1 subtest) =====================
[05:06:32] ======================== xe_wa_gt  =========================
[05:06:32] [PASSED] TIGERLAKE (B0)
[05:06:32] [PASSED] DG1 (A0)
[05:06:32] [PASSED] DG1 (B0)
[05:06:32] [PASSED] ALDERLAKE_S (A0)
[05:06:32] [PASSED] ALDERLAKE_S (B0)
[05:06:32] [PASSED] ALDERLAKE_S (C0)
[05:06:32] [PASSED] ALDERLAKE_S (D0)
[05:06:32] [PASSED] DG2_G10 (A0)
[05:06:32] [PASSED] DG2_G10 (A1)
[05:06:32] [PASSED] DG2_G10 (B0)
[05:06:32] [PASSED] DG2_G10 (C0)
[05:06:32] [PASSED] DG2_G11 (A0)
[05:06:32] [PASSED] DG2_G11 (B0)
[05:06:32] [PASSED] DG2_G11 (B1)
[05:06:32] [PASSED] DG2_G12 (A0)
[05:06:32] [PASSED] DG2_G12 (A1)
[05:06:32] [PASSED] PVC (B0)
[05:06:32] [PASSED] PVC (B1)
[05:06:32] [PASSED] PVC (C0)
[05:06:32] ==================== [PASSED] xe_wa_gt =====================
[05:06:32] ====================== [PASSED] xe_wa ======================
[05:06:32] ============================================================
[05:06:32] Testing complete. Ran 34 tests: passed: 30, skipped: 4
[05:06:32] Elapsed time: 26.466s total, 4.252s configuring, 22.045s building, 0.153s running

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

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



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

* [Intel-xe] ✓ CI.Build: success for NULL bindings aka sparse bindings
  2023-06-08  5:03 [Intel-xe] [PATCH 0/3] NULL bindings aka sparse bindings Matthew Brost
                   ` (5 preceding siblings ...)
  2023-06-08  5:07 ` [Intel-xe] ✓ CI.KUnit: success " Patchwork
@ 2023-06-08  5:11 ` Patchwork
  2023-06-08  5:11 ` [Intel-xe] ✓ CI.Hooks: " Patchwork
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2023-06-08  5:11 UTC (permalink / raw)
  To: Matthew Brost; +Cc: intel-xe

== Series Details ==

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



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

* [Intel-xe] ✓ CI.Hooks: success for NULL bindings aka sparse bindings
  2023-06-08  5:03 [Intel-xe] [PATCH 0/3] NULL bindings aka sparse bindings Matthew Brost
                   ` (6 preceding siblings ...)
  2023-06-08  5:11 ` [Intel-xe] ✓ CI.Build: " Patchwork
@ 2023-06-08  5:11 ` Patchwork
  2023-06-08  5:12 ` [Intel-xe] ✓ CI.checksparse: " Patchwork
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2023-06-08  5:11 UTC (permalink / raw)
  To: Matthew Brost; +Cc: intel-xe

== Series Details ==

Series: NULL bindings aka sparse bindings
URL   : https://patchwork.freedesktop.org/series/119048/
State : success

== Summary ==

run-parts: executing /workspace/ci/hooks/00-showenv
+ pwd
+ ls -la
/workspace
total 500
drwxrwxr-x 10 1003 1003   4096 Jun  8 05:11 .
drwxr-xr-x  1 root root   4096 Jun  8 05:11 ..
-rw-rw-r--  1 1003 1003 397078 Jun  8 05:11 build.log
-rw-rw-r--  1 1003 1003   2011 Jun  8 05:06 checkpatch.log
drwxrwxr-x  5 1003 1003   4096 Jun  8 05:04 ci
drwxrwxr-x 10 1003 1003   4096 Jun  8 05:04 docker
drwxrwxr-x  8 1003 1003   4096 Jun  8 05:04 .git
-rw-rw-r--  1 1003 1003    336 Jun  8 05:05 git_apply.log
drwxrwxr-x  3 1003 1003   4096 Jun  8 05:04 .github
-rw-rw-r--  1 1003 1003    233 Jun  8 05:04 .groovylintrc.json
-rw-rw-r--  1 1003 1003     78 Jun  8 05:11 hooks.log
drwxrwxr-x 31 1003 1003   4096 Jun  8 05:10 kernel
-rw-rw-r--  1 1003 1003  23869 Jun  8 05:05 kernel.mbox
-rw-rw-r--  1 1003 1003  25980 Jun  8 05:07 kunit.log
drwxrwxr-x 39 1003 1003   4096 Jun  8 05:04 pipelines
-rw-rw-r--  1 1003 1003    793 Jun  8 05:04 README.adoc
drwxrwxr-x  3 1003 1003   4096 Jun  8 05:04 scripts
drwxrwxr-x  2 1003 1003   4096 Jun  8 05:04 .vscode
+ uname -a
Linux 576cb873d0b6 5.4.0-149-generic #166-Ubuntu SMP Tue Apr 18 16:51:45 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
+ export
+ grep -Ei '(^|\W)CI_'
declare -x CI_KERNEL_BUILD_DIR="/workspace/kernel/build64"
declare -x CI_KERNEL_IMAGES_DIR="/workspace/kernel/archive/boot"
declare -x CI_KERNEL_MODULES_DIR="/workspace/kernel/archive"
declare -x CI_KERNEL_SRC_DIR="/workspace/kernel"
declare -x CI_SRC_DIR="/workspace/kernel"
declare -x CI_TOOLS_SRC_DIR="/workspace/ci"
declare -x CI_WORKSPACE_DIR="/workspace"
+ '[' -n /workspace ']'
+ git_args='-C /workspace/kernel'
+ git_log_args=
+ git --no-pager -C /workspace/kernel log --format=oneline --abbrev-commit
0822e4e1b drm/xe: NULL binding implementation
4fc275977 drm/xe: Move XE_PTE_FLAG_READ_ONLY to xe_vm_types.h
b5b2038ee drm/xe: s/XE_PTE_READ_ONLY/XE_PTE_FLAG_READ_ONLY
f093641a9 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 ']'
+ BUILD_DIR=/workspace/kernel/build64
+ cd /workspace/kernel
+ grep -q -e '^CONFIG_DRM_XE_DISPLAY=[yY]' /workspace/kernel/build64/.config
+ RESTORE_DISPLAY_CONFIG=1
+ trap cleanup EXIT
+ ./scripts/config --file /workspace/kernel/build64/.config --disable CONFIG_DRM_XE_DISPLAY
++ nproc
+ make -j48 O=/workspace/kernel/build64 modules_prepare
make[1]: Entering directory '/workspace/kernel/build64'
  SYNC    include/config/auto.conf.cmd
  GEN     Makefile
  GEN     Makefile
  UPD     include/generated/compile.h
  UPD     include/config/kernel.release
  UPD     include/generated/utsrelease.h
  DESCEND objtool
  CALL    ../scripts/checksyscalls.sh
  HOSTCC  /workspace/kernel/build64/tools/objtool/fixdep.o
  HOSTLD  /workspace/kernel/build64/tools/objtool/fixdep-in.o
  LINK    /workspace/kernel/build64/tools/objtool/fixdep
  INSTALL libsubcmd_headers
  CC      /workspace/kernel/build64/tools/objtool/libsubcmd/exec-cmd.o
  CC      /workspace/kernel/build64/tools/objtool/libsubcmd/help.o
  CC      /workspace/kernel/build64/tools/objtool/libsubcmd/pager.o
  CC      /workspace/kernel/build64/tools/objtool/libsubcmd/parse-options.o
  CC      /workspace/kernel/build64/tools/objtool/libsubcmd/run-command.o
  CC      /workspace/kernel/build64/tools/objtool/libsubcmd/sigchain.o
  CC      /workspace/kernel/build64/tools/objtool/libsubcmd/subcmd-config.o
  LD      /workspace/kernel/build64/tools/objtool/libsubcmd/libsubcmd-in.o
  AR      /workspace/kernel/build64/tools/objtool/libsubcmd/libsubcmd.a
  CC      /workspace/kernel/build64/tools/objtool/weak.o
  CC      /workspace/kernel/build64/tools/objtool/check.o
  CC      /workspace/kernel/build64/tools/objtool/special.o
  CC      /workspace/kernel/build64/tools/objtool/builtin-check.o
  CC      /workspace/kernel/build64/tools/objtool/elf.o
  CC      /workspace/kernel/build64/tools/objtool/objtool.o
  CC      /workspace/kernel/build64/tools/objtool/orc_gen.o
  CC      /workspace/kernel/build64/tools/objtool/orc_dump.o
  CC      /workspace/kernel/build64/tools/objtool/libstring.o
  CC      /workspace/kernel/build64/tools/objtool/libctype.o
  CC      /workspace/kernel/build64/tools/objtool/str_error_r.o
  CC      /workspace/kernel/build64/tools/objtool/librbtree.o
  CC      /workspace/kernel/build64/tools/objtool/arch/x86/special.o
  CC      /workspace/kernel/build64/tools/objtool/arch/x86/decode.o
  LD      /workspace/kernel/build64/tools/objtool/arch/x86/objtool-in.o
  LD      /workspace/kernel/build64/tools/objtool/objtool-in.o
  LINK    /workspace/kernel/build64/tools/objtool/objtool
make[1]: Leaving directory '/workspace/kernel/build64'
++ nproc
+ make -j48 O=/workspace/kernel/build64 M=drivers/gpu/drm/xe W=1
make[1]: Entering directory '/workspace/kernel/build64'
  CC [M]  drivers/gpu/drm/xe/xe_bb.o
  CC [M]  drivers/gpu/drm/xe/xe_bo.o
  CC [M]  drivers/gpu/drm/xe/xe_bo_evict.o
  CC [M]  drivers/gpu/drm/xe/xe_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_devcoredump.o
  CC [M]  drivers/gpu/drm/xe/xe_device.o
  CC [M]  drivers/gpu/drm/xe/xe_dma_buf.o
  CC [M]  drivers/gpu/drm/xe/xe_engine.o
  CC [M]  drivers/gpu/drm/xe/xe_exec.o
  CC [M]  drivers/gpu/drm/xe/xe_execlist.o
  CC [M]  drivers/gpu/drm/xe/xe_force_wake.o
  CC [M]  drivers/gpu/drm/xe/xe_ggtt.o
  CC [M]  drivers/gpu/drm/xe/xe_gt.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_clock.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_mcr.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_pagefault.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_sysfs.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_tlb_invalidation.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_topology.o
  HOSTCC  drivers/gpu/drm/xe/xe_gen_wa_oob
  CC [M]  drivers/gpu/drm/xe/xe_guc_ads.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_ct.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_hwconfig.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_log.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_pc.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_submit.o
  CC [M]  drivers/gpu/drm/xe/xe_hw_engine.o
  CC [M]  drivers/gpu/drm/xe/xe_hw_fence.o
  CC [M]  drivers/gpu/drm/xe/xe_huc.o
  CC [M]  drivers/gpu/drm/xe/xe_huc_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_irq.o
  CC [M]  drivers/gpu/drm/xe/xe_lrc.o
  CC [M]  drivers/gpu/drm/xe/xe_migrate.o
  CC [M]  drivers/gpu/drm/xe/xe_mmio.o
  CC [M]  drivers/gpu/drm/xe/xe_mocs.o
  CC [M]  drivers/gpu/drm/xe/xe_module.o
  CC [M]  drivers/gpu/drm/xe/xe_pat.o
  CC [M]  drivers/gpu/drm/xe/xe_pci.o
  CC [M]  drivers/gpu/drm/xe/xe_pcode.o
  CC [M]  drivers/gpu/drm/xe/xe_pm.o
  CC [M]  drivers/gpu/drm/xe/xe_preempt_fence.o
  CC [M]  drivers/gpu/drm/xe/xe_pt.o
  CC [M]  drivers/gpu/drm/xe/xe_pt_walk.o
  CC [M]  drivers/gpu/drm/xe/xe_query.o
  CC [M]  drivers/gpu/drm/xe/xe_reg_sr.o
  CC [M]  drivers/gpu/drm/xe/xe_reg_whitelist.o
  CC [M]  drivers/gpu/drm/xe/xe_rtp.o
  CC [M]  drivers/gpu/drm/xe/xe_ring_ops.o
  CC [M]  drivers/gpu/drm/xe/xe_sa.o
  CC [M]  drivers/gpu/drm/xe/xe_sched_job.o
  CC [M]  drivers/gpu/drm/xe/xe_step.o
  CC [M]  drivers/gpu/drm/xe/xe_sync.o
  CC [M]  drivers/gpu/drm/xe/xe_tile.o
  CC [M]  drivers/gpu/drm/xe/xe_trace.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_sys_mgr.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_stolen_mgr.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_vram_mgr.o
  CC [M]  drivers/gpu/drm/xe/xe_tuning.o
  CC [M]  drivers/gpu/drm/xe/xe_uc.o
  CC [M]  drivers/gpu/drm/xe/xe_uc_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_uc_fw.o
  CC [M]  drivers/gpu/drm/xe/xe_vm.o
  CC [M]  drivers/gpu/drm/xe/xe_vm_madvise.o
  CC [M]  drivers/gpu/drm/xe/xe_wait_user_fence.o
  CC [M]  drivers/gpu/drm/xe/xe_wopcm.o
  HDRTEST drivers/gpu/drm/xe/abi/guc_klvs_abi.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_errors_abi.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_actions_slpc_abi.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_communication_mmio_abi.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_actions_abi.h
  CC [M]  drivers/gpu/drm/xe/tests/xe_bo_test.o
  HDRTEST drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h
  CC [M]  drivers/gpu/drm/xe/tests/xe_dma_buf_test.o
  HDRTEST drivers/gpu/drm/xe/regs/xe_reg_defs.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_messages_abi.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_guc_regs.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_gt_regs.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_regs.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_gpu_commands.h
  CC [M]  drivers/gpu/drm/xe/tests/xe_migrate_test.o
  HDRTEST drivers/gpu/drm/xe/regs/xe_lrc_layout.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_engine_regs.h
  CC [M]  drivers/gpu/drm/xe/tests/xe_rtp_test.o
  HDRTEST drivers/gpu/drm/xe/tests/xe_test.h
  CC [M]  drivers/gpu/drm/xe/tests/xe_pci_test.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_wa_test.o
  HDRTEST drivers/gpu/drm/xe/tests/xe_pci_test.h
  HDRTEST drivers/gpu/drm/xe/tests/xe_migrate_test.h
  HDRTEST drivers/gpu/drm/xe/tests/xe_dma_buf_test.h
  HDRTEST drivers/gpu/drm/xe/tests/xe_bo_test.h
  HDRTEST drivers/gpu/drm/xe/xe_bb.h
  HDRTEST drivers/gpu/drm/xe/xe_bb_types.h
  HDRTEST drivers/gpu/drm/xe/xe_bo.h
  HDRTEST drivers/gpu/drm/xe/xe_bo_doc.h
  HDRTEST drivers/gpu/drm/xe/xe_bo_evict.h
  HDRTEST drivers/gpu/drm/xe/xe_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_bo_types.h
  HDRTEST drivers/gpu/drm/xe/xe_devcoredump.h
  HDRTEST drivers/gpu/drm/xe/xe_devcoredump_types.h
  HDRTEST drivers/gpu/drm/xe/xe_device.h
  HDRTEST drivers/gpu/drm/xe/xe_device_types.h
  HDRTEST drivers/gpu/drm/xe/xe_dma_buf.h
  HDRTEST drivers/gpu/drm/xe/xe_drv.h
  HDRTEST drivers/gpu/drm/xe/xe_engine.h
  HDRTEST drivers/gpu/drm/xe/xe_engine_types.h
  HDRTEST drivers/gpu/drm/xe/xe_exec.h
  HDRTEST drivers/gpu/drm/xe/xe_execlist.h
  HDRTEST drivers/gpu/drm/xe/xe_execlist_types.h
  HDRTEST drivers/gpu/drm/xe/xe_force_wake.h
  HDRTEST drivers/gpu/drm/xe/xe_force_wake_types.h
  HDRTEST drivers/gpu/drm/xe/xe_ggtt.h
  HDRTEST drivers/gpu/drm/xe/xe_ggtt_types.h
  HDRTEST drivers/gpu/drm/xe/xe_gt.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_clock.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_mcr.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_pagefault.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_printk.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_sysfs.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_sysfs_types.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_tlb_invalidation.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_tlb_invalidation_types.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_topology.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_ads.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_ads_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_ct.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_ct_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_engine_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_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_hw_engine.h
  HDRTEST drivers/gpu/drm/xe/xe_huc_types.h
  HDRTEST drivers/gpu/drm/xe/xe_hw_engine_types.h
  HDRTEST drivers/gpu/drm/xe/xe_hw_fence.h
  HDRTEST drivers/gpu/drm/xe/xe_hw_fence_types.h
  HDRTEST drivers/gpu/drm/xe/xe_irq.h
  HDRTEST drivers/gpu/drm/xe/xe_lrc.h
  HDRTEST drivers/gpu/drm/xe/xe_lrc_types.h
  HDRTEST drivers/gpu/drm/xe/xe_macros.h
  HDRTEST drivers/gpu/drm/xe/xe_map.h
  HDRTEST drivers/gpu/drm/xe/xe_migrate.h
  HDRTEST drivers/gpu/drm/xe/xe_migrate_doc.h
  HDRTEST drivers/gpu/drm/xe/xe_mmio.h
  HDRTEST drivers/gpu/drm/xe/xe_mocs.h
  HDRTEST drivers/gpu/drm/xe/xe_module.h
  HDRTEST drivers/gpu/drm/xe/xe_pat.h
  HDRTEST drivers/gpu/drm/xe/xe_pci.h
  HDRTEST drivers/gpu/drm/xe/xe_pci_types.h
  HDRTEST drivers/gpu/drm/xe/xe_pcode.h
  HDRTEST drivers/gpu/drm/xe/xe_pcode_api.h
  HDRTEST drivers/gpu/drm/xe/xe_platform_types.h
  HDRTEST drivers/gpu/drm/xe/xe_pm.h
  HDRTEST drivers/gpu/drm/xe/xe_preempt_fence.h
  HDRTEST drivers/gpu/drm/xe/xe_preempt_fence_types.h
  HDRTEST drivers/gpu/drm/xe/xe_pt.h
  HDRTEST drivers/gpu/drm/xe/xe_pt_types.h
  HDRTEST drivers/gpu/drm/xe/xe_pt_walk.h
  HDRTEST drivers/gpu/drm/xe/xe_query.h
  HDRTEST drivers/gpu/drm/xe/xe_reg_sr.h
  HDRTEST drivers/gpu/drm/xe/xe_reg_sr_types.h
  HDRTEST drivers/gpu/drm/xe/xe_reg_whitelist.h
  HDRTEST drivers/gpu/drm/xe/xe_res_cursor.h
  HDRTEST drivers/gpu/drm/xe/xe_ring_ops.h
  HDRTEST drivers/gpu/drm/xe/xe_ring_ops_types.h
  HDRTEST drivers/gpu/drm/xe/xe_rtp.h
  HDRTEST drivers/gpu/drm/xe/xe_rtp_types.h
  HDRTEST drivers/gpu/drm/xe/xe_sa.h
  HDRTEST drivers/gpu/drm/xe/xe_sa_types.h
  HDRTEST drivers/gpu/drm/xe/xe_sched_job.h
  HDRTEST drivers/gpu/drm/xe/xe_sched_job_types.h
  HDRTEST drivers/gpu/drm/xe/xe_step.h
  HDRTEST drivers/gpu/drm/xe/xe_step_types.h
  HDRTEST drivers/gpu/drm/xe/xe_sync.h
  HDRTEST drivers/gpu/drm/xe/xe_sync_types.h
  HDRTEST drivers/gpu/drm/xe/xe_tile.h
  HDRTEST drivers/gpu/drm/xe/xe_trace.h
  HDRTEST drivers/gpu/drm/xe/xe_ttm_stolen_mgr.h
  HDRTEST drivers/gpu/drm/xe/xe_ttm_sys_mgr.h
  HDRTEST drivers/gpu/drm/xe/xe_ttm_vram_mgr.h
  HDRTEST drivers/gpu/drm/xe/xe_ttm_vram_mgr_types.h
  HDRTEST drivers/gpu/drm/xe/xe_tuning.h
  HDRTEST drivers/gpu/drm/xe/xe_uc.h
  HDRTEST drivers/gpu/drm/xe/xe_uc_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_uc_fw.h
  HDRTEST drivers/gpu/drm/xe/xe_uc_fw_abi.h
  HDRTEST drivers/gpu/drm/xe/xe_uc_fw_types.h
  HDRTEST drivers/gpu/drm/xe/xe_uc_types.h
  HDRTEST drivers/gpu/drm/xe/xe_vm.h
  HDRTEST drivers/gpu/drm/xe/xe_vm_doc.h
  HDRTEST drivers/gpu/drm/xe/xe_vm_madvise.h
  HDRTEST drivers/gpu/drm/xe/xe_vm_types.h
  HDRTEST drivers/gpu/drm/xe/xe_wa.h
  HDRTEST drivers/gpu/drm/xe/xe_wait_user_fence.h
  HDRTEST drivers/gpu/drm/xe/xe_wopcm.h
  HDRTEST drivers/gpu/drm/xe/xe_wopcm_types.h
  GEN     xe_wa_oob.c xe_wa_oob.h
  GEN     xe_wa_oob.c xe_wa_oob.h
  CC [M]  drivers/gpu/drm/xe/xe_guc.o
  CC [M]  drivers/gpu/drm/xe/xe_wa.o
  LD [M]  drivers/gpu/drm/xe/xe.o
  MODPOST drivers/gpu/drm/xe/Module.symvers
  CC [M]  drivers/gpu/drm/xe/xe.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_bo_test.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_dma_buf_test.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_migrate_test.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_pci_test.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_rtp_test.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_wa_test.mod.o
  LD [M]  drivers/gpu/drm/xe/tests/xe_bo_test.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_pci_test.ko
  LD [M]  drivers/gpu/drm/xe/xe.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_wa_test.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_dma_buf_test.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_migrate_test.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_rtp_test.ko
make[1]: Leaving directory '/workspace/kernel/build64'
+ cleanup
+ '[' 1 -eq 1 ']'
+ ./scripts/config --file /workspace/kernel/build64/.config --enable CONFIG_DRM_XE_DISPLAY
run-parts: executing /workspace/ci/hooks/20-kernel-doc
+ SRC_DIR=/workspace/kernel
+ cd /workspace/kernel
+ find drivers/gpu/drm/xe/ -name '*.[ch]' -not -path 'drivers/gpu/drm/xe/display/*'
+ xargs ./scripts/kernel-doc -Werror -none
All hooks done



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

* [Intel-xe] ✓ CI.checksparse: success for NULL bindings aka sparse bindings
  2023-06-08  5:03 [Intel-xe] [PATCH 0/3] NULL bindings aka sparse bindings Matthew Brost
                   ` (7 preceding siblings ...)
  2023-06-08  5:11 ` [Intel-xe] ✓ CI.Hooks: " Patchwork
@ 2023-06-08  5:12 ` Patchwork
  2023-06-08  5:45 ` [Intel-xe] ○ CI.BAT: info " Patchwork
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2023-06-08  5:12 UTC (permalink / raw)
  To: Matthew Brost; +Cc: intel-xe

== Series Details ==

Series: NULL bindings aka sparse bindings
URL   : https://patchwork.freedesktop.org/series/119048/
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 f093641a9cd6fa9a5a8dd6577746904fb9ac9e12
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] 30+ messages in thread

* [Intel-xe] ○ CI.BAT: info for NULL bindings aka sparse bindings
  2023-06-08  5:03 [Intel-xe] [PATCH 0/3] NULL bindings aka sparse bindings Matthew Brost
                   ` (8 preceding siblings ...)
  2023-06-08  5:12 ` [Intel-xe] ✓ CI.checksparse: " Patchwork
@ 2023-06-08  5:45 ` Patchwork
  2023-06-14 18:50 ` [Intel-xe] ✗ CI.Patch_applied: failure for NULL bindings aka sparse bindings (rev2) Patchwork
  2023-06-15  1:19 ` [Intel-xe] ✗ CI.Patch_applied: failure for NULL bindings aka sparse bindings (rev3) Patchwork
  11 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2023-06-08  5:45 UTC (permalink / raw)
  To: Matthew Brost; +Cc: intel-xe

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

== Series Details ==

Series: NULL bindings aka sparse bindings
URL   : https://patchwork.freedesktop.org/series/119048/
State : info

== Summary ==

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



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

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

* Re: [Intel-xe] [PATCH 1/3] drm/xe: s/XE_PTE_READ_ONLY/XE_PTE_FLAG_READ_ONLY
  2023-06-08  5:03 ` [Intel-xe] [PATCH 1/3] drm/xe: s/XE_PTE_READ_ONLY/XE_PTE_FLAG_READ_ONLY Matthew Brost
@ 2023-06-08  8:26   ` Francois Dugast
  2023-06-14  7:59   ` Thomas Hellström
  1 sibling, 0 replies; 30+ messages in thread
From: Francois Dugast @ 2023-06-08  8:26 UTC (permalink / raw)
  To: Matthew Brost; +Cc: intel-xe

On Wed, Jun 07, 2023 at 10:03:31PM -0700, Matthew Brost wrote:
> This define is for internal PTE flags rather than fields in the hardware
> PTEs, rename as such. This will help in an upcoming patch to avoid
> further confusion.
> 
> Signed-off-by: Matthew Brost <matthew.brost@intel.com>

Reviewed-by: Francois Dugast <francois.dugast@intel.com>

> ---
>  drivers/gpu/drm/xe/xe_bo.h |  2 +-
>  drivers/gpu/drm/xe/xe_pt.c |  2 +-
>  drivers/gpu/drm/xe/xe_vm.c | 12 +++++++-----
>  3 files changed, 9 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
> index 29eb7474f018..552fe073e9c5 100644
> --- a/drivers/gpu/drm/xe/xe_bo.h
> +++ b/drivers/gpu/drm/xe/xe_bo.h
> @@ -65,7 +65,7 @@
>  #define XE_PAGE_PRESENT			BIT_ULL(0)
>  #define XE_PAGE_RW			BIT_ULL(1)
>  
> -#define XE_PTE_READ_ONLY		BIT(0)
> +#define XE_PTE_FLAG_READ_ONLY		BIT(0)
>  
>  #define XE_PL_SYSTEM		TTM_PL_SYSTEM
>  #define XE_PL_TT		TTM_PL_TT
> diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
> index bef265715000..39ec94549439 100644
> --- a/drivers/gpu/drm/xe/xe_pt.c
> +++ b/drivers/gpu/drm/xe/xe_pt.c
> @@ -102,7 +102,7 @@ static u64 __gen8_pte_encode(u64 pte, enum xe_cache_level cache, u32 flags,
>  {
>  	pte |= XE_PAGE_PRESENT | XE_PAGE_RW;
>  
> -	if (unlikely(flags & XE_PTE_READ_ONLY))
> +	if (unlikely(flags & XE_PTE_FLAG_READ_ONLY))
>  		pte &= ~XE_PAGE_RW;
>  
>  	/* FIXME: I don't think the PPAT handling is correct for MTL */
> diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> index d1c380ad7f6b..94fc9c330235 100644
> --- a/drivers/gpu/drm/xe/xe_vm.c
> +++ b/drivers/gpu/drm/xe/xe_vm.c
> @@ -61,7 +61,7 @@ int xe_vma_userptr_pin_pages(struct xe_vma *vma)
>  	bool in_kthread = !current->mm;
>  	unsigned long notifier_seq;
>  	int pinned, ret, i;
> -	bool read_only = vma->pte_flags & XE_PTE_READ_ONLY;
> +	bool read_only = vma->pte_flags & XE_PTE_FLAG_READ_ONLY;
>  
>  	lockdep_assert_held(&vm->lock);
>  	XE_BUG_ON(!xe_vma_is_userptr(vma));
> @@ -869,7 +869,7 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
>  	vma->start = start;
>  	vma->end = end;
>  	if (read_only)
> -		vma->pte_flags = XE_PTE_READ_ONLY;
> +		vma->pte_flags = XE_PTE_FLAG_READ_ONLY;
>  
>  	if (tile_mask) {
>  		vma->tile_mask = tile_mask;
> @@ -923,7 +923,7 @@ static void xe_vma_destroy_late(struct xe_vma *vma)
>  {
>  	struct xe_vm *vm = vma->vm;
>  	struct xe_device *xe = vm->xe;
> -	bool read_only = vma->pte_flags & XE_PTE_READ_ONLY;
> +	bool read_only = vma->pte_flags & XE_PTE_FLAG_READ_ONLY;
>  
>  	if (xe_vma_is_userptr(vma)) {
>  		if (vma->userptr.sg) {
> @@ -2641,7 +2641,8 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
>  					  first->userptr.ptr,
>  					  first->start,
>  					  lookup->start - 1,
> -					  (first->pte_flags & XE_PTE_READ_ONLY),
> +					  (first->pte_flags &
> +					   XE_PTE_FLAG_READ_ONLY),
>  					  first->tile_mask);
>  		if (first->bo)
>  			xe_bo_unlock(first->bo, &ww);
> @@ -2672,7 +2673,8 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
>  					 last->userptr.ptr + chunk,
>  					 last->start + chunk,
>  					 last->end,
> -					 (last->pte_flags & XE_PTE_READ_ONLY),
> +					 (last->pte_flags &
> +					  XE_PTE_FLAG_READ_ONLY),
>  					 last->tile_mask);
>  		if (last->bo)
>  			xe_bo_unlock(last->bo, &ww);
> -- 
> 2.34.1
> 

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

* Re: [Intel-xe] [PATCH 2/3] drm/xe: Move XE_PTE_FLAG_READ_ONLY to xe_vm_types.h
  2023-06-08  5:03 ` [Intel-xe] [PATCH 2/3] drm/xe: Move XE_PTE_FLAG_READ_ONLY to xe_vm_types.h Matthew Brost
@ 2023-06-08  8:28   ` Francois Dugast
  2023-06-14  8:02   ` Thomas Hellström
  1 sibling, 0 replies; 30+ messages in thread
From: Francois Dugast @ 2023-06-08  8:28 UTC (permalink / raw)
  To: Matthew Brost; +Cc: intel-xe

On Wed, Jun 07, 2023 at 10:03:32PM -0700, Matthew Brost wrote:
> XE_PTE_FLAG_READ_ONLY is specific to struct xe_vma, move it from xe_bo.h
> to xe_vm_types.h to reflect that.
> 
> Signed-off-vy: Matthew Brost <matthew.brost@intel.com>

Reviewed-by: Francois Dugast <francois.dugast@intel.com>

> ---
>  drivers/gpu/drm/xe/xe_bo.h       | 2 --
>  drivers/gpu/drm/xe/xe_vm_types.h | 1 +
>  2 files changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
> index 552fe073e9c5..dd3d448fee0b 100644
> --- a/drivers/gpu/drm/xe/xe_bo.h
> +++ b/drivers/gpu/drm/xe/xe_bo.h
> @@ -65,8 +65,6 @@
>  #define XE_PAGE_PRESENT			BIT_ULL(0)
>  #define XE_PAGE_RW			BIT_ULL(1)
>  
> -#define XE_PTE_FLAG_READ_ONLY		BIT(0)
> -
>  #define XE_PL_SYSTEM		TTM_PL_SYSTEM
>  #define XE_PL_TT		TTM_PL_TT
>  #define XE_PL_VRAM0		TTM_PL_VRAM
> diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
> index 76af6ac0fa84..6daddd29d416 100644
> --- a/drivers/gpu/drm/xe/xe_vm_types.h
> +++ b/drivers/gpu/drm/xe/xe_vm_types.h
> @@ -30,6 +30,7 @@ struct xe_vma {
>  	/** @end: end address of this VMA within its address domain */
>  	u64 end;
>  	/** @pte_flags: pte flags for this VMA */
> +#define XE_PTE_FLAG_READ_ONLY		BIT(0)
>  	u32 pte_flags;
>  
>  	/** @bo: BO if not a userptr, must be NULL is userptr */
> -- 
> 2.34.1
> 

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

* Re: [Intel-xe] [PATCH 3/3] drm/xe: NULL binding implementation
  2023-06-08  5:03 ` [Intel-xe] [PATCH 3/3] drm/xe: NULL binding implementation Matthew Brost
@ 2023-06-08 20:59   ` Welty, Brian
  2023-06-09  3:28     ` Matthew Brost
  2023-06-14  2:49   ` Niranjana Vishwanathapura
                     ` (3 subsequent siblings)
  4 siblings, 1 reply; 30+ messages in thread
From: Welty, Brian @ 2023-06-08 20:59 UTC (permalink / raw)
  To: Matthew Brost, intel-xe; +Cc: Paulo Zanoni



On 6/7/2023 10:03 PM, Matthew Brost wrote:
> Add uAPI and implementation for NULL bindings. A NULL binding is defined
> as writes dropped and read zero. A single bit in the uAPI has been added
> which results in a single bit in the PTEs being set.


Since there won't ever be any backing store for these entries, we don't 
really need a xe_vma created....
If lots of sparse bindings, nice if can avoid the almost useless xe_vma
structure. Is an efficient implementation possible that updates PT 
without needing and keeping the xe_vma structures here?  And mark the 
address as in use with some other type of bookkeeping?
Maybe you still create temporary xe_vma only for calling
__xe_pt_bind_vma() but then can free it after that?

Maybe that means you can't support UNBIND of sparse entries, or would
certainly complicate it.

> 
> NULL bindings are indended to be used to implement VK sparse bindings,

typo above with 'intended'


-Brian


> in particular residencyNonResidentStrict property.
> 
> Suggested-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
> Signed-off-by: Matthew Brost <matthew.brost@intel.com>
> ---
>   drivers/gpu/drm/xe/xe_bo.h           |  1 +
>   drivers/gpu/drm/xe/xe_exec.c         |  2 +
>   drivers/gpu/drm/xe/xe_gt_pagefault.c |  4 +-
>   drivers/gpu/drm/xe/xe_pt.c           | 71 +++++++++++++++------
>   drivers/gpu/drm/xe/xe_vm.c           | 95 ++++++++++++++++++----------
>   drivers/gpu/drm/xe/xe_vm.h           | 12 +++-
>   drivers/gpu/drm/xe/xe_vm_types.h     |  1 +
>   include/uapi/drm/xe_drm.h            |  8 +++
>   8 files changed, 138 insertions(+), 56 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
> index dd3d448fee0b..3a148cc6e811 100644
> --- a/drivers/gpu/drm/xe/xe_bo.h
> +++ b/drivers/gpu/drm/xe/xe_bo.h
> @@ -61,6 +61,7 @@
>   #define XE_PPGTT_PTE_LM			BIT_ULL(11)
>   #define XE_PDE_64K			BIT_ULL(6)
>   #define XE_PTE_PS64			BIT_ULL(8)
> +#define XE_PTE_NULL			BIT_ULL(9)
>   
>   #define XE_PAGE_PRESENT			BIT_ULL(0)
>   #define XE_PAGE_RW			BIT_ULL(1)
> diff --git a/drivers/gpu/drm/xe/xe_exec.c b/drivers/gpu/drm/xe/xe_exec.c
> index e44076ee2e11..4f7694a29348 100644
> --- a/drivers/gpu/drm/xe/xe_exec.c
> +++ b/drivers/gpu/drm/xe/xe_exec.c
> @@ -120,6 +120,8 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
>   	 * to a location where the GPU can access it).
>   	 */
>   	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
> +		XE_WARN_ON(xe_vma_is_null(vma));
> +
>   		if (xe_vma_is_userptr(vma))
>   			continue;
>   
> diff --git a/drivers/gpu/drm/xe/xe_gt_pagefault.c b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> index 73db7f7c0381..6faebd02f3fb 100644
> --- a/drivers/gpu/drm/xe/xe_gt_pagefault.c
> +++ b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> @@ -533,8 +533,8 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
>   
>   	trace_xe_vma_acc(vma);
>   
> -	/* Userptr can't be migrated, nothing to do */
> -	if (xe_vma_is_userptr(vma))
> +	/* Userptr or null can't be migrated, nothing to do */
> +	if (xe_vma_has_no_bo(vma))
>   		goto unlock_vm;
>   
>   	/* Lock VM and BOs dma-resv */
> diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
> index 39ec94549439..265ee45bee5c 100644
> --- a/drivers/gpu/drm/xe/xe_pt.c
> +++ b/drivers/gpu/drm/xe/xe_pt.c
> @@ -81,7 +81,9 @@ u64 gen8_pde_encode(struct xe_bo *bo, u64 bo_offset,
>   static dma_addr_t vma_addr(struct xe_vma *vma, u64 offset,
>   			   size_t page_size, bool *is_vram)
>   {
> -	if (xe_vma_is_userptr(vma)) {
> +	if (xe_vma_is_null(vma)) {
> +		return 0;
> +	} else if (xe_vma_is_userptr(vma)) {
>   		struct xe_res_cursor cur;
>   		u64 page;
>   
> @@ -559,6 +561,10 @@ static bool xe_pt_hugepte_possible(u64 addr, u64 next, unsigned int level,
>   	if (next - xe_walk->va_curs_start > xe_walk->curs->size)
>   		return false;
>   
> +	/* null VMA's do not have dma adresses */
> +	if (xe_walk->pte_flags & XE_PTE_FLAG_NULL)
> +		return true;
> +
>   	/* Is the DMA address huge PTE size aligned? */
>   	size = next - addr;
>   	dma = addr - xe_walk->va_curs_start + xe_res_dma(xe_walk->curs);
> @@ -575,6 +581,10 @@ xe_pt_scan_64K(u64 addr, u64 next, struct xe_pt_stage_bind_walk *xe_walk)
>   {
>   	struct xe_res_cursor curs = *xe_walk->curs;
>   
> +	/* null VMA's do not have dma adresses */
> +	if (xe_walk->pte_flags & XE_PTE_FLAG_NULL)
> +		return true;
> +
>   	if (!IS_ALIGNED(addr, SZ_64K))
>   		return false;
>   
> @@ -631,12 +641,29 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
>   	/* Is this a leaf entry ?*/
>   	if (level == 0 || xe_pt_hugepte_possible(addr, next, level, xe_walk)) {
>   		struct xe_res_cursor *curs = xe_walk->curs;
> +		u64 pte = 0;
> +		bool is_null = xe_walk->pte_flags & XE_PTE_FLAG_NULL;
>   
>   		XE_WARN_ON(xe_walk->va_curs_start != addr);
>   
> -		pte = __gen8_pte_encode(xe_res_dma(curs) + xe_walk->dma_offset,
> -					xe_walk->cache, xe_walk->pte_flags,
> -					level);
> +		if (is_null) {
> +			pte |= XE_PAGE_PRESENT | XE_PAGE_RW;
> +			if (xe_walk->pte_flags & XE_PTE_FLAG_READ_ONLY)
> +				pte &= ~XE_PAGE_RW;
> +
> +			if (level == 1)
> +				pte |= XE_PDE_PS_2M;
> +			else if (level == 2)
> +				pte |= XE_PDPE_PS_1G;
> +
> +			pte |= XE_PTE_NULL;
> +		} else {
> +			pte = __gen8_pte_encode(xe_res_dma(curs) +
> +						xe_walk->dma_offset,
> +						xe_walk->cache,
> +						xe_walk->pte_flags,
> +						level);
> +		}
>   		pte |= xe_walk->default_pte;
>   
>   		/*
> @@ -654,7 +681,8 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
>   		if (unlikely(ret))
>   			return ret;
>   
> -		xe_res_next(curs, next - addr);
> +		if (!is_null)
> +			xe_res_next(curs, next - addr);
>   		xe_walk->va_curs_start = next;
>   		*action = ACTION_CONTINUE;
>   
> @@ -761,24 +789,29 @@ xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
>   		xe_walk.dma_offset = vram_region_gpu_offset(bo->ttm.resource);
>   		xe_walk.cache = XE_CACHE_WB;
>   	} else {
> -		if (!xe_vma_is_userptr(vma) && bo->flags & XE_BO_SCANOUT_BIT)
> +		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_is_userptr(vma) && xe_bo_is_stolen(bo))
> +	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));
>   
>   	xe_bo_assert_held(bo);
> -	if (xe_vma_is_userptr(vma))
> -		xe_res_first_sg(vma->userptr.sg, 0, vma->end - vma->start + 1,
> -				&curs);
> -	else if (xe_bo_is_vram(bo) || xe_bo_is_stolen(bo))
> -		xe_res_first(bo->ttm.resource, vma->bo_offset,
> -			     vma->end - vma->start + 1, &curs);
> -	else
> -		xe_res_first_sg(xe_bo_get_sg(bo), vma->bo_offset,
> -				vma->end - vma->start + 1, &curs);
> +
> +	if (!xe_vma_is_null(vma)) {
> +		if (xe_vma_is_userptr(vma))
> +			xe_res_first_sg(vma->userptr.sg, 0,
> +					vma->end - vma->start + 1, &curs);
> +		else if (xe_bo_is_vram(bo) || xe_bo_is_stolen(bo))
> +			xe_res_first(bo->ttm.resource, vma->bo_offset,
> +				     vma->end - vma->start + 1, &curs);
> +		else
> +			xe_res_first_sg(xe_bo_get_sg(bo), vma->bo_offset,
> +					vma->end - vma->start + 1, &curs);
> +	} else {
> +		curs.size = vma->end - vma->start + 1;
> +	}
>   
>   	ret = xe_pt_walk_range(&pt->base, pt->level, vma->start, vma->end + 1,
>   				&xe_walk.base);
> @@ -967,7 +1000,7 @@ static void xe_pt_commit_locks_assert(struct xe_vma *vma)
>   
>   	if (xe_vma_is_userptr(vma))
>   		lockdep_assert_held_read(&vm->userptr.notifier_lock);
> -	else
> +	else if (!xe_vma_is_null(vma))
>   		dma_resv_assert_held(vma->bo->ttm.base.resv);
>   
>   	dma_resv_assert_held(&vm->resv);
> @@ -1330,7 +1363,7 @@ __xe_pt_bind_vma(struct xe_tile *tile, struct xe_vma *vma, struct xe_engine *e,
>   				   DMA_RESV_USAGE_KERNEL :
>   				   DMA_RESV_USAGE_BOOKKEEP);
>   
> -		if (!xe_vma_is_userptr(vma) && !vma->bo->vm)
> +		if (!xe_vma_has_no_bo(vma) && !vma->bo->vm)
>   			dma_resv_add_fence(vma->bo->ttm.base.resv, fence,
>   					   DMA_RESV_USAGE_BOOKKEEP);
>   		xe_pt_commit_bind(vma, entries, num_entries, rebind,
> @@ -1647,7 +1680,7 @@ __xe_pt_unbind_vma(struct xe_tile *tile, struct xe_vma *vma, struct xe_engine *e
>   				   DMA_RESV_USAGE_BOOKKEEP);
>   
>   		/* This fence will be installed by caller when doing eviction */
> -		if (!xe_vma_is_userptr(vma) && !vma->bo->vm)
> +		if (!xe_vma_has_no_bo(vma) && !vma->bo->vm)
>   			dma_resv_add_fence(vma->bo->ttm.base.resv, fence,
>   					   DMA_RESV_USAGE_BOOKKEEP);
>   		xe_pt_commit_unbind(vma, entries, num_entries,
> diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> index 94fc9c330235..f7629db275f9 100644
> --- a/drivers/gpu/drm/xe/xe_vm.c
> +++ b/drivers/gpu/drm/xe/xe_vm.c
> @@ -590,7 +590,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
>   		goto out_unlock;
>   
>   	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
> -		if (xe_vma_is_userptr(vma) || vma->destroyed)
> +		if (xe_vma_has_no_bo(vma) || vma->destroyed)
>   			continue;
>   
>   		err = xe_bo_validate(vma->bo, vm, false);
> @@ -843,6 +843,7 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
>   				    u64 bo_offset_or_userptr,
>   				    u64 start, u64 end,
>   				    bool read_only,
> +				    bool is_null,
>   				    u64 tile_mask)
>   {
>   	struct xe_vma *vma;
> @@ -868,8 +869,11 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
>   	vma->vm = vm;
>   	vma->start = start;
>   	vma->end = end;
> +	vma->pte_flags = 0;
>   	if (read_only)
> -		vma->pte_flags = XE_PTE_FLAG_READ_ONLY;
> +		vma->pte_flags |= XE_PTE_FLAG_READ_ONLY;
> +	if (is_null)
> +		vma->pte_flags |= XE_PTE_FLAG_NULL;
>   
>   	if (tile_mask) {
>   		vma->tile_mask = tile_mask;
> @@ -886,23 +890,26 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
>   		vma->bo_offset = bo_offset_or_userptr;
>   		vma->bo = xe_bo_get(bo);
>   		list_add_tail(&vma->bo_link, &bo->vmas);
> -	} else /* userptr */ {
> -		u64 size = end - start + 1;
> -		int err;
> +	} else /* userptr or null */ {
> +		if (!is_null) {
> +			u64 size = end - start + 1;
> +			int err;
>   
> -		vma->userptr.ptr = bo_offset_or_userptr;
> +			vma->userptr.ptr = bo_offset_or_userptr;
>   
> -		err = mmu_interval_notifier_insert(&vma->userptr.notifier,
> -						   current->mm,
> -						   vma->userptr.ptr, size,
> -						   &vma_userptr_notifier_ops);
> -		if (err) {
> -			kfree(vma);
> -			vma = ERR_PTR(err);
> -			return vma;
> +			err = mmu_interval_notifier_insert(&vma->userptr.notifier,
> +							   current->mm,
> +							   vma->userptr.ptr, size,
> +							   &vma_userptr_notifier_ops);
> +			if (err) {
> +				kfree(vma);
> +				vma = ERR_PTR(err);
> +				return vma;
> +			}
> +
> +			vma->userptr.notifier_seq = LONG_MAX;
>   		}
>   
> -		vma->userptr.notifier_seq = LONG_MAX;
>   		xe_vm_get(vm);
>   	}
>   
> @@ -942,6 +949,8 @@ static void xe_vma_destroy_late(struct xe_vma *vma)
>   		 */
>   		mmu_interval_notifier_remove(&vma->userptr.notifier);
>   		xe_vm_put(vm);
> +	} else if (xe_vma_is_null(vma)) {
> +		xe_vm_put(vm);
>   	} else {
>   		xe_bo_put(vma->bo);
>   	}
> @@ -1024,7 +1033,7 @@ static void xe_vma_destroy(struct xe_vma *vma, struct dma_fence *fence)
>   		list_del_init(&vma->userptr.invalidate_link);
>   		spin_unlock(&vm->userptr.invalidated_lock);
>   		list_del(&vma->userptr_link);
> -	} else {
> +	} else if (!xe_vma_is_null(vma)) {
>   		xe_bo_assert_held(vma->bo);
>   		list_del(&vma->bo_link);
>   
> @@ -1391,7 +1400,7 @@ void xe_vm_close_and_put(struct xe_vm *vm)
>   	while (vm->vmas.rb_node) {
>   		struct xe_vma *vma = to_xe_vma(vm->vmas.rb_node);
>   
> -		if (xe_vma_is_userptr(vma)) {
> +		if (xe_vma_has_no_bo(vma)) {
>   			down_read(&vm->userptr.notifier_lock);
>   			vma->destroyed = true;
>   			up_read(&vm->userptr.notifier_lock);
> @@ -1400,7 +1409,7 @@ void xe_vm_close_and_put(struct xe_vm *vm)
>   		rb_erase(&vma->vm_node, &vm->vmas);
>   
>   		/* easy case, remove from VMA? */
> -		if (xe_vma_is_userptr(vma) || vma->bo->vm) {
> +		if (xe_vma_has_no_bo(vma) || vma->bo->vm) {
>   			xe_vma_destroy(vma, NULL);
>   			continue;
>   		}
> @@ -2034,7 +2043,7 @@ static int xe_vm_prefetch(struct xe_vm *vm, struct xe_vma *vma,
>   
>   	XE_BUG_ON(region > ARRAY_SIZE(region_to_mem_type));
>   
> -	if (!xe_vma_is_userptr(vma)) {
> +	if (!xe_vma_has_no_bo(vma)) {
>   		err = xe_bo_migrate(vma->bo, region_to_mem_type[region]);
>   		if (err)
>   			return err;
> @@ -2643,6 +2652,8 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
>   					  lookup->start - 1,
>   					  (first->pte_flags &
>   					   XE_PTE_FLAG_READ_ONLY),
> +					  (first->pte_flags &
> +					   XE_PTE_FLAG_NULL),
>   					  first->tile_mask);
>   		if (first->bo)
>   			xe_bo_unlock(first->bo, &ww);
> @@ -2675,6 +2686,7 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
>   					 last->end,
>   					 (last->pte_flags &
>   					  XE_PTE_FLAG_READ_ONLY),
> +					 (last->pte_flags & XE_PTE_FLAG_NULL),
>   					 last->tile_mask);
>   		if (last->bo)
>   			xe_bo_unlock(last->bo, &ww);
> @@ -2742,7 +2754,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
>   		      *next;
>   	struct rb_node *node;
>   
> -	if (!xe_vma_is_userptr(vma)) {
> +	if (!xe_vma_has_no_bo(vma)) {
>   		if (!xe_bo_can_migrate(vma->bo, region_to_mem_type[region]))
>   			return ERR_PTR(-EINVAL);
>   	}
> @@ -2751,7 +2763,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
>   	while ((node = rb_next(node))) {
>   		if (!xe_vma_cmp_vma_cb(lookup, node)) {
>   			__vma = to_xe_vma(node);
> -			if (!xe_vma_is_userptr(__vma)) {
> +			if (!xe_vma_has_no_bo(__vma)) {
>   				if (!xe_bo_can_migrate(__vma->bo, region_to_mem_type[region]))
>   					goto flush_list;
>   			}
> @@ -2765,7 +2777,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
>   	while ((node = rb_prev(node))) {
>   		if (!xe_vma_cmp_vma_cb(lookup, node)) {
>   			__vma = to_xe_vma(node);
> -			if (!xe_vma_is_userptr(__vma)) {
> +			if (!xe_vma_has_no_bo(__vma)) {
>   				if (!xe_bo_can_migrate(__vma->bo, region_to_mem_type[region]))
>   					goto flush_list;
>   			}
> @@ -2824,21 +2836,23 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
>   
>   	switch (VM_BIND_OP(op)) {
>   	case XE_VM_BIND_OP_MAP:
> -		XE_BUG_ON(!bo);
> -
> -		err = xe_bo_lock(bo, &ww, 0, true);
> -		if (err)
> -			return ERR_PTR(err);
> +		if (bo) {
> +			err = xe_bo_lock(bo, &ww, 0, true);
> +			if (err)
> +				return ERR_PTR(err);
> +		}
>   		vma = xe_vma_create(vm, bo, bo_offset_or_userptr, addr,
>   				    addr + range - 1,
>   				    op & XE_VM_BIND_FLAG_READONLY,
> +				    op & XE_VM_BIND_FLAG_NULL,
>   				    tile_mask);
> -		xe_bo_unlock(bo, &ww);
> +		if (bo)
> +			xe_bo_unlock(bo, &ww);
>   		if (!vma)
>   			return ERR_PTR(-ENOMEM);
>   
>   		xe_vm_insert_vma(vm, vma);
> -		if (!bo->vm) {
> +		if (bo && !bo->vm) {
>   			vm_insert_extobj(vm, vma);
>   			err = add_preempt_fences(vm, bo);
>   			if (err) {
> @@ -2872,6 +2886,7 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
>   		vma = xe_vma_create(vm, NULL, bo_offset_or_userptr, addr,
>   				    addr + range - 1,
>   				    op & XE_VM_BIND_FLAG_READONLY,
> +				    op & XE_VM_BIND_FLAG_NULL,
>   				    tile_mask);
>   		if (!vma)
>   			return ERR_PTR(-ENOMEM);
> @@ -2897,11 +2912,12 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
>   #ifdef TEST_VM_ASYNC_OPS_ERROR
>   #define SUPPORTED_FLAGS	\
>   	(FORCE_ASYNC_OP_ERROR | XE_VM_BIND_FLAG_ASYNC | \
> -	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | 0xffff)
> +	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | \
> +	 XE_VM_BIND_FLAG_NULL | 0xffff)
>   #else
>   #define SUPPORTED_FLAGS	\
>   	(XE_VM_BIND_FLAG_ASYNC | XE_VM_BIND_FLAG_READONLY | \
> -	 XE_VM_BIND_FLAG_IMMEDIATE | 0xffff)
> +	 XE_VM_BIND_FLAG_IMMEDIATE | XE_VM_BIND_FLAG_NULL | 0xffff)
>   #endif
>   #define XE_64K_PAGE_MASK 0xffffull
>   
> @@ -2949,6 +2965,7 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
>   		u32 obj = (*bind_ops)[i].obj;
>   		u64 obj_offset = (*bind_ops)[i].obj_offset;
>   		u32 region = (*bind_ops)[i].region;
> +		bool is_null = op &  XE_VM_BIND_FLAG_NULL;
>   
>   		if (XE_IOCTL_ERR(xe, (*bind_ops)[i].pad) ||
>   		    XE_IOCTL_ERR(xe, (*bind_ops)[i].reserved[0] ||
> @@ -2982,8 +2999,13 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
>   		if (XE_IOCTL_ERR(xe, VM_BIND_OP(op) >
>   				 XE_VM_BIND_OP_PREFETCH) ||
>   		    XE_IOCTL_ERR(xe, op & ~SUPPORTED_FLAGS) ||
> +		    XE_IOCTL_ERR(xe, obj && is_null) ||
> +		    XE_IOCTL_ERR(xe, obj_offset && is_null) ||
> +		    XE_IOCTL_ERR(xe, VM_BIND_OP(op) != XE_VM_BIND_OP_MAP &&
> +				 is_null) ||
>   		    XE_IOCTL_ERR(xe, !obj &&
> -				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP) ||
> +				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP &&
> +				 !is_null) ||
>   		    XE_IOCTL_ERR(xe, !obj &&
>   				 VM_BIND_OP(op) == XE_VM_BIND_OP_UNMAP_ALL) ||
>   		    XE_IOCTL_ERR(xe, addr &&
> @@ -3389,6 +3411,7 @@ int xe_vm_invalidate_vma(struct xe_vma *vma)
>   	int ret;
>   
>   	XE_BUG_ON(!xe_vm_in_fault_mode(vma->vm));
> +	XE_WARN_ON(xe_vma_is_null(vma));
>   	trace_xe_vma_usm_invalidate(vma);
>   
>   	/* Check that we don't race with page-table updates */
> @@ -3451,8 +3474,11 @@ int xe_analyze_vm(struct drm_printer *p, struct xe_vm *vm, int gt_id)
>   	for (node = rb_first(&vm->vmas); node; node = rb_next(node)) {
>   		struct xe_vma *vma = to_xe_vma(node);
>   		bool is_userptr = xe_vma_is_userptr(vma);
> +		bool is_null = xe_vma_is_null(vma);
>   
> -		if (is_userptr) {
> +		if (is_null) {
> +			addr = 0;
> +		} else if (is_userptr) {
>   			struct xe_res_cursor cur;
>   
>   			xe_res_first_sg(vma->userptr.sg, 0, XE_PAGE_SIZE,
> @@ -3463,7 +3489,8 @@ int xe_analyze_vm(struct drm_printer *p, struct xe_vm *vm, int gt_id)
>   		}
>   		drm_printf(p, " [%016llx-%016llx] S:0x%016llx A:%016llx %s\n",
>   			   vma->start, vma->end, vma->end - vma->start + 1ull,
> -			   addr, is_userptr ? "USR" : is_vram ? "VRAM" : "SYS");
> +			   addr, is_null ? "NULL" : is_userptr ? "USR" :
> +			   is_vram ? "VRAM" : "SYS");
>   	}
>   	up_read(&vm->lock);
>   
> diff --git a/drivers/gpu/drm/xe/xe_vm.h b/drivers/gpu/drm/xe/xe_vm.h
> index 372f26153209..38731e200813 100644
> --- a/drivers/gpu/drm/xe/xe_vm.h
> +++ b/drivers/gpu/drm/xe/xe_vm.h
> @@ -115,11 +115,21 @@ static inline void xe_vm_reactivate_rebind(struct xe_vm *vm)
>   	}
>   }
>   
> -static inline bool xe_vma_is_userptr(struct xe_vma *vma)
> +static inline bool xe_vma_is_null(struct xe_vma *vma)
> +{
> +	return vma->pte_flags & XE_PTE_FLAG_NULL;
> +}
> +
> +static inline bool xe_vma_has_no_bo(struct xe_vma *vma)
>   {
>   	return !vma->bo;
>   }
>   
> +static inline bool xe_vma_is_userptr(struct xe_vma *vma)
> +{
> +	return xe_vma_has_no_bo(vma) && !xe_vma_is_null(vma);
> +}
> +
>   int xe_vma_userptr_pin_pages(struct xe_vma *vma);
>   
>   int xe_vma_userptr_check_repin(struct xe_vma *vma);
> diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
> index 6daddd29d416..f775bafe4619 100644
> --- a/drivers/gpu/drm/xe/xe_vm_types.h
> +++ b/drivers/gpu/drm/xe/xe_vm_types.h
> @@ -31,6 +31,7 @@ struct xe_vma {
>   	u64 end;
>   	/** @pte_flags: pte flags for this VMA */
>   #define XE_PTE_FLAG_READ_ONLY		BIT(0)
> +#define XE_PTE_FLAG_NULL		BIT(1)
>   	u32 pte_flags;
>   
>   	/** @bo: BO if not a userptr, must be NULL is userptr */
> diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> index 0ebc50beb5e5..39a1ce89732f 100644
> --- a/include/uapi/drm/xe_drm.h
> +++ b/include/uapi/drm/xe_drm.h
> @@ -456,6 +456,14 @@ struct drm_xe_vm_bind_op {
>   	 * than differing the MAP to the page fault handler.
>   	 */
>   #define XE_VM_BIND_FLAG_IMMEDIATE	(0x1 << 18)
> +	/*
> +	 * When the NULL flag is set, the page tables are setup with a special
> +	 * bit which indicates writes are dropped and all reads return zero.  In
> +	 * the future, the NULL flags will only be valid for XE_VM_BIND_OP_MAP
> +	 * operations, the BO handle MBZ, and the BO offset MBZ. This flag is
> +	 * intended to implement VK sparse bindings.
> +	 */
> +#define XE_VM_BIND_FLAG_NULL		(0x1 << 19)
>   
>   	/** @reserved: Reserved */
>   	__u64 reserved[2];

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

* Re: [Intel-xe] [PATCH 3/3] drm/xe: NULL binding implementation
  2023-06-08 20:59   ` Welty, Brian
@ 2023-06-09  3:28     ` Matthew Brost
  0 siblings, 0 replies; 30+ messages in thread
From: Matthew Brost @ 2023-06-09  3:28 UTC (permalink / raw)
  To: Welty, Brian; +Cc: intel-xe, Paulo Zanoni

On Thu, Jun 08, 2023 at 01:59:18PM -0700, Welty, Brian wrote:
> 
> 
> On 6/7/2023 10:03 PM, Matthew Brost wrote:
> > Add uAPI and implementation for NULL bindings. A NULL binding is defined
> > as writes dropped and read zero. A single bit in the uAPI has been added
> > which results in a single bit in the PTEs being set.
> 
> 
> Since there won't ever be any backing store for these entries, we don't
> really need a xe_vma created....
> If lots of sparse bindings, nice if can avoid the almost useless xe_vma
> structure. Is an efficient implementation possible that updates PT without
> needing and keeping the xe_vma structures here?  And mark the address as in
> use with some other type of bookkeeping?
> Maybe you still create temporary xe_vma only for calling
> __xe_pt_bind_vma() but then can free it after that?
> 
> Maybe that means you can't support UNBIND of sparse entries, or would
> certainly complicate it.
> 

This doesn't really work with partial binds / unbinds (mmap / munmap
semantics) or GPUVA. We need a VMA / GPUVA in the tracking structure.

FWIW, the GPUVA series does a lot of work to reduce the VMA size.
 
> > 
> > NULL bindings are indended to be used to implement VK sparse bindings,
> 
> typo above with 'intended'
>

Yea checkpatch caught this too, fixed locally.

Matt
 
> 
> -Brian
> 
> 
> > in particular residencyNonResidentStrict property.
> > 
> > Suggested-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
> > Signed-off-by: Matthew Brost <matthew.brost@intel.com>
> > ---
> >   drivers/gpu/drm/xe/xe_bo.h           |  1 +
> >   drivers/gpu/drm/xe/xe_exec.c         |  2 +
> >   drivers/gpu/drm/xe/xe_gt_pagefault.c |  4 +-
> >   drivers/gpu/drm/xe/xe_pt.c           | 71 +++++++++++++++------
> >   drivers/gpu/drm/xe/xe_vm.c           | 95 ++++++++++++++++++----------
> >   drivers/gpu/drm/xe/xe_vm.h           | 12 +++-
> >   drivers/gpu/drm/xe/xe_vm_types.h     |  1 +
> >   include/uapi/drm/xe_drm.h            |  8 +++
> >   8 files changed, 138 insertions(+), 56 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
> > index dd3d448fee0b..3a148cc6e811 100644
> > --- a/drivers/gpu/drm/xe/xe_bo.h
> > +++ b/drivers/gpu/drm/xe/xe_bo.h
> > @@ -61,6 +61,7 @@
> >   #define XE_PPGTT_PTE_LM			BIT_ULL(11)
> >   #define XE_PDE_64K			BIT_ULL(6)
> >   #define XE_PTE_PS64			BIT_ULL(8)
> > +#define XE_PTE_NULL			BIT_ULL(9)
> >   #define XE_PAGE_PRESENT			BIT_ULL(0)
> >   #define XE_PAGE_RW			BIT_ULL(1)
> > diff --git a/drivers/gpu/drm/xe/xe_exec.c b/drivers/gpu/drm/xe/xe_exec.c
> > index e44076ee2e11..4f7694a29348 100644
> > --- a/drivers/gpu/drm/xe/xe_exec.c
> > +++ b/drivers/gpu/drm/xe/xe_exec.c
> > @@ -120,6 +120,8 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
> >   	 * to a location where the GPU can access it).
> >   	 */
> >   	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
> > +		XE_WARN_ON(xe_vma_is_null(vma));
> > +
> >   		if (xe_vma_is_userptr(vma))
> >   			continue;
> > diff --git a/drivers/gpu/drm/xe/xe_gt_pagefault.c b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> > index 73db7f7c0381..6faebd02f3fb 100644
> > --- a/drivers/gpu/drm/xe/xe_gt_pagefault.c
> > +++ b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> > @@ -533,8 +533,8 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
> >   	trace_xe_vma_acc(vma);
> > -	/* Userptr can't be migrated, nothing to do */
> > -	if (xe_vma_is_userptr(vma))
> > +	/* Userptr or null can't be migrated, nothing to do */
> > +	if (xe_vma_has_no_bo(vma))
> >   		goto unlock_vm;
> >   	/* Lock VM and BOs dma-resv */
> > diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
> > index 39ec94549439..265ee45bee5c 100644
> > --- a/drivers/gpu/drm/xe/xe_pt.c
> > +++ b/drivers/gpu/drm/xe/xe_pt.c
> > @@ -81,7 +81,9 @@ u64 gen8_pde_encode(struct xe_bo *bo, u64 bo_offset,
> >   static dma_addr_t vma_addr(struct xe_vma *vma, u64 offset,
> >   			   size_t page_size, bool *is_vram)
> >   {
> > -	if (xe_vma_is_userptr(vma)) {
> > +	if (xe_vma_is_null(vma)) {
> > +		return 0;
> > +	} else if (xe_vma_is_userptr(vma)) {
> >   		struct xe_res_cursor cur;
> >   		u64 page;
> > @@ -559,6 +561,10 @@ static bool xe_pt_hugepte_possible(u64 addr, u64 next, unsigned int level,
> >   	if (next - xe_walk->va_curs_start > xe_walk->curs->size)
> >   		return false;
> > +	/* null VMA's do not have dma adresses */
> > +	if (xe_walk->pte_flags & XE_PTE_FLAG_NULL)
> > +		return true;
> > +
> >   	/* Is the DMA address huge PTE size aligned? */
> >   	size = next - addr;
> >   	dma = addr - xe_walk->va_curs_start + xe_res_dma(xe_walk->curs);
> > @@ -575,6 +581,10 @@ xe_pt_scan_64K(u64 addr, u64 next, struct xe_pt_stage_bind_walk *xe_walk)
> >   {
> >   	struct xe_res_cursor curs = *xe_walk->curs;
> > +	/* null VMA's do not have dma adresses */
> > +	if (xe_walk->pte_flags & XE_PTE_FLAG_NULL)
> > +		return true;
> > +
> >   	if (!IS_ALIGNED(addr, SZ_64K))
> >   		return false;
> > @@ -631,12 +641,29 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
> >   	/* Is this a leaf entry ?*/
> >   	if (level == 0 || xe_pt_hugepte_possible(addr, next, level, xe_walk)) {
> >   		struct xe_res_cursor *curs = xe_walk->curs;
> > +		u64 pte = 0;
> > +		bool is_null = xe_walk->pte_flags & XE_PTE_FLAG_NULL;
> >   		XE_WARN_ON(xe_walk->va_curs_start != addr);
> > -		pte = __gen8_pte_encode(xe_res_dma(curs) + xe_walk->dma_offset,
> > -					xe_walk->cache, xe_walk->pte_flags,
> > -					level);
> > +		if (is_null) {
> > +			pte |= XE_PAGE_PRESENT | XE_PAGE_RW;
> > +			if (xe_walk->pte_flags & XE_PTE_FLAG_READ_ONLY)
> > +				pte &= ~XE_PAGE_RW;
> > +
> > +			if (level == 1)
> > +				pte |= XE_PDE_PS_2M;
> > +			else if (level == 2)
> > +				pte |= XE_PDPE_PS_1G;
> > +
> > +			pte |= XE_PTE_NULL;
> > +		} else {
> > +			pte = __gen8_pte_encode(xe_res_dma(curs) +
> > +						xe_walk->dma_offset,
> > +						xe_walk->cache,
> > +						xe_walk->pte_flags,
> > +						level);
> > +		}
> >   		pte |= xe_walk->default_pte;
> >   		/*
> > @@ -654,7 +681,8 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
> >   		if (unlikely(ret))
> >   			return ret;
> > -		xe_res_next(curs, next - addr);
> > +		if (!is_null)
> > +			xe_res_next(curs, next - addr);
> >   		xe_walk->va_curs_start = next;
> >   		*action = ACTION_CONTINUE;
> > @@ -761,24 +789,29 @@ xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
> >   		xe_walk.dma_offset = vram_region_gpu_offset(bo->ttm.resource);
> >   		xe_walk.cache = XE_CACHE_WB;
> >   	} else {
> > -		if (!xe_vma_is_userptr(vma) && bo->flags & XE_BO_SCANOUT_BIT)
> > +		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_is_userptr(vma) && xe_bo_is_stolen(bo))
> > +	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));
> >   	xe_bo_assert_held(bo);
> > -	if (xe_vma_is_userptr(vma))
> > -		xe_res_first_sg(vma->userptr.sg, 0, vma->end - vma->start + 1,
> > -				&curs);
> > -	else if (xe_bo_is_vram(bo) || xe_bo_is_stolen(bo))
> > -		xe_res_first(bo->ttm.resource, vma->bo_offset,
> > -			     vma->end - vma->start + 1, &curs);
> > -	else
> > -		xe_res_first_sg(xe_bo_get_sg(bo), vma->bo_offset,
> > -				vma->end - vma->start + 1, &curs);
> > +
> > +	if (!xe_vma_is_null(vma)) {
> > +		if (xe_vma_is_userptr(vma))
> > +			xe_res_first_sg(vma->userptr.sg, 0,
> > +					vma->end - vma->start + 1, &curs);
> > +		else if (xe_bo_is_vram(bo) || xe_bo_is_stolen(bo))
> > +			xe_res_first(bo->ttm.resource, vma->bo_offset,
> > +				     vma->end - vma->start + 1, &curs);
> > +		else
> > +			xe_res_first_sg(xe_bo_get_sg(bo), vma->bo_offset,
> > +					vma->end - vma->start + 1, &curs);
> > +	} else {
> > +		curs.size = vma->end - vma->start + 1;
> > +	}
> >   	ret = xe_pt_walk_range(&pt->base, pt->level, vma->start, vma->end + 1,
> >   				&xe_walk.base);
> > @@ -967,7 +1000,7 @@ static void xe_pt_commit_locks_assert(struct xe_vma *vma)
> >   	if (xe_vma_is_userptr(vma))
> >   		lockdep_assert_held_read(&vm->userptr.notifier_lock);
> > -	else
> > +	else if (!xe_vma_is_null(vma))
> >   		dma_resv_assert_held(vma->bo->ttm.base.resv);
> >   	dma_resv_assert_held(&vm->resv);
> > @@ -1330,7 +1363,7 @@ __xe_pt_bind_vma(struct xe_tile *tile, struct xe_vma *vma, struct xe_engine *e,
> >   				   DMA_RESV_USAGE_KERNEL :
> >   				   DMA_RESV_USAGE_BOOKKEEP);
> > -		if (!xe_vma_is_userptr(vma) && !vma->bo->vm)
> > +		if (!xe_vma_has_no_bo(vma) && !vma->bo->vm)
> >   			dma_resv_add_fence(vma->bo->ttm.base.resv, fence,
> >   					   DMA_RESV_USAGE_BOOKKEEP);
> >   		xe_pt_commit_bind(vma, entries, num_entries, rebind,
> > @@ -1647,7 +1680,7 @@ __xe_pt_unbind_vma(struct xe_tile *tile, struct xe_vma *vma, struct xe_engine *e
> >   				   DMA_RESV_USAGE_BOOKKEEP);
> >   		/* This fence will be installed by caller when doing eviction */
> > -		if (!xe_vma_is_userptr(vma) && !vma->bo->vm)
> > +		if (!xe_vma_has_no_bo(vma) && !vma->bo->vm)
> >   			dma_resv_add_fence(vma->bo->ttm.base.resv, fence,
> >   					   DMA_RESV_USAGE_BOOKKEEP);
> >   		xe_pt_commit_unbind(vma, entries, num_entries,
> > diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> > index 94fc9c330235..f7629db275f9 100644
> > --- a/drivers/gpu/drm/xe/xe_vm.c
> > +++ b/drivers/gpu/drm/xe/xe_vm.c
> > @@ -590,7 +590,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
> >   		goto out_unlock;
> >   	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
> > -		if (xe_vma_is_userptr(vma) || vma->destroyed)
> > +		if (xe_vma_has_no_bo(vma) || vma->destroyed)
> >   			continue;
> >   		err = xe_bo_validate(vma->bo, vm, false);
> > @@ -843,6 +843,7 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
> >   				    u64 bo_offset_or_userptr,
> >   				    u64 start, u64 end,
> >   				    bool read_only,
> > +				    bool is_null,
> >   				    u64 tile_mask)
> >   {
> >   	struct xe_vma *vma;
> > @@ -868,8 +869,11 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
> >   	vma->vm = vm;
> >   	vma->start = start;
> >   	vma->end = end;
> > +	vma->pte_flags = 0;
> >   	if (read_only)
> > -		vma->pte_flags = XE_PTE_FLAG_READ_ONLY;
> > +		vma->pte_flags |= XE_PTE_FLAG_READ_ONLY;
> > +	if (is_null)
> > +		vma->pte_flags |= XE_PTE_FLAG_NULL;
> >   	if (tile_mask) {
> >   		vma->tile_mask = tile_mask;
> > @@ -886,23 +890,26 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
> >   		vma->bo_offset = bo_offset_or_userptr;
> >   		vma->bo = xe_bo_get(bo);
> >   		list_add_tail(&vma->bo_link, &bo->vmas);
> > -	} else /* userptr */ {
> > -		u64 size = end - start + 1;
> > -		int err;
> > +	} else /* userptr or null */ {
> > +		if (!is_null) {
> > +			u64 size = end - start + 1;
> > +			int err;
> > -		vma->userptr.ptr = bo_offset_or_userptr;
> > +			vma->userptr.ptr = bo_offset_or_userptr;
> > -		err = mmu_interval_notifier_insert(&vma->userptr.notifier,
> > -						   current->mm,
> > -						   vma->userptr.ptr, size,
> > -						   &vma_userptr_notifier_ops);
> > -		if (err) {
> > -			kfree(vma);
> > -			vma = ERR_PTR(err);
> > -			return vma;
> > +			err = mmu_interval_notifier_insert(&vma->userptr.notifier,
> > +							   current->mm,
> > +							   vma->userptr.ptr, size,
> > +							   &vma_userptr_notifier_ops);
> > +			if (err) {
> > +				kfree(vma);
> > +				vma = ERR_PTR(err);
> > +				return vma;
> > +			}
> > +
> > +			vma->userptr.notifier_seq = LONG_MAX;
> >   		}
> > -		vma->userptr.notifier_seq = LONG_MAX;
> >   		xe_vm_get(vm);
> >   	}
> > @@ -942,6 +949,8 @@ static void xe_vma_destroy_late(struct xe_vma *vma)
> >   		 */
> >   		mmu_interval_notifier_remove(&vma->userptr.notifier);
> >   		xe_vm_put(vm);
> > +	} else if (xe_vma_is_null(vma)) {
> > +		xe_vm_put(vm);
> >   	} else {
> >   		xe_bo_put(vma->bo);
> >   	}
> > @@ -1024,7 +1033,7 @@ static void xe_vma_destroy(struct xe_vma *vma, struct dma_fence *fence)
> >   		list_del_init(&vma->userptr.invalidate_link);
> >   		spin_unlock(&vm->userptr.invalidated_lock);
> >   		list_del(&vma->userptr_link);
> > -	} else {
> > +	} else if (!xe_vma_is_null(vma)) {
> >   		xe_bo_assert_held(vma->bo);
> >   		list_del(&vma->bo_link);
> > @@ -1391,7 +1400,7 @@ void xe_vm_close_and_put(struct xe_vm *vm)
> >   	while (vm->vmas.rb_node) {
> >   		struct xe_vma *vma = to_xe_vma(vm->vmas.rb_node);
> > -		if (xe_vma_is_userptr(vma)) {
> > +		if (xe_vma_has_no_bo(vma)) {
> >   			down_read(&vm->userptr.notifier_lock);
> >   			vma->destroyed = true;
> >   			up_read(&vm->userptr.notifier_lock);
> > @@ -1400,7 +1409,7 @@ void xe_vm_close_and_put(struct xe_vm *vm)
> >   		rb_erase(&vma->vm_node, &vm->vmas);
> >   		/* easy case, remove from VMA? */
> > -		if (xe_vma_is_userptr(vma) || vma->bo->vm) {
> > +		if (xe_vma_has_no_bo(vma) || vma->bo->vm) {
> >   			xe_vma_destroy(vma, NULL);
> >   			continue;
> >   		}
> > @@ -2034,7 +2043,7 @@ static int xe_vm_prefetch(struct xe_vm *vm, struct xe_vma *vma,
> >   	XE_BUG_ON(region > ARRAY_SIZE(region_to_mem_type));
> > -	if (!xe_vma_is_userptr(vma)) {
> > +	if (!xe_vma_has_no_bo(vma)) {
> >   		err = xe_bo_migrate(vma->bo, region_to_mem_type[region]);
> >   		if (err)
> >   			return err;
> > @@ -2643,6 +2652,8 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
> >   					  lookup->start - 1,
> >   					  (first->pte_flags &
> >   					   XE_PTE_FLAG_READ_ONLY),
> > +					  (first->pte_flags &
> > +					   XE_PTE_FLAG_NULL),
> >   					  first->tile_mask);
> >   		if (first->bo)
> >   			xe_bo_unlock(first->bo, &ww);
> > @@ -2675,6 +2686,7 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
> >   					 last->end,
> >   					 (last->pte_flags &
> >   					  XE_PTE_FLAG_READ_ONLY),
> > +					 (last->pte_flags & XE_PTE_FLAG_NULL),
> >   					 last->tile_mask);
> >   		if (last->bo)
> >   			xe_bo_unlock(last->bo, &ww);
> > @@ -2742,7 +2754,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
> >   		      *next;
> >   	struct rb_node *node;
> > -	if (!xe_vma_is_userptr(vma)) {
> > +	if (!xe_vma_has_no_bo(vma)) {
> >   		if (!xe_bo_can_migrate(vma->bo, region_to_mem_type[region]))
> >   			return ERR_PTR(-EINVAL);
> >   	}
> > @@ -2751,7 +2763,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
> >   	while ((node = rb_next(node))) {
> >   		if (!xe_vma_cmp_vma_cb(lookup, node)) {
> >   			__vma = to_xe_vma(node);
> > -			if (!xe_vma_is_userptr(__vma)) {
> > +			if (!xe_vma_has_no_bo(__vma)) {
> >   				if (!xe_bo_can_migrate(__vma->bo, region_to_mem_type[region]))
> >   					goto flush_list;
> >   			}
> > @@ -2765,7 +2777,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
> >   	while ((node = rb_prev(node))) {
> >   		if (!xe_vma_cmp_vma_cb(lookup, node)) {
> >   			__vma = to_xe_vma(node);
> > -			if (!xe_vma_is_userptr(__vma)) {
> > +			if (!xe_vma_has_no_bo(__vma)) {
> >   				if (!xe_bo_can_migrate(__vma->bo, region_to_mem_type[region]))
> >   					goto flush_list;
> >   			}
> > @@ -2824,21 +2836,23 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
> >   	switch (VM_BIND_OP(op)) {
> >   	case XE_VM_BIND_OP_MAP:
> > -		XE_BUG_ON(!bo);
> > -
> > -		err = xe_bo_lock(bo, &ww, 0, true);
> > -		if (err)
> > -			return ERR_PTR(err);
> > +		if (bo) {
> > +			err = xe_bo_lock(bo, &ww, 0, true);
> > +			if (err)
> > +				return ERR_PTR(err);
> > +		}
> >   		vma = xe_vma_create(vm, bo, bo_offset_or_userptr, addr,
> >   				    addr + range - 1,
> >   				    op & XE_VM_BIND_FLAG_READONLY,
> > +				    op & XE_VM_BIND_FLAG_NULL,
> >   				    tile_mask);
> > -		xe_bo_unlock(bo, &ww);
> > +		if (bo)
> > +			xe_bo_unlock(bo, &ww);
> >   		if (!vma)
> >   			return ERR_PTR(-ENOMEM);
> >   		xe_vm_insert_vma(vm, vma);
> > -		if (!bo->vm) {
> > +		if (bo && !bo->vm) {
> >   			vm_insert_extobj(vm, vma);
> >   			err = add_preempt_fences(vm, bo);
> >   			if (err) {
> > @@ -2872,6 +2886,7 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
> >   		vma = xe_vma_create(vm, NULL, bo_offset_or_userptr, addr,
> >   				    addr + range - 1,
> >   				    op & XE_VM_BIND_FLAG_READONLY,
> > +				    op & XE_VM_BIND_FLAG_NULL,
> >   				    tile_mask);
> >   		if (!vma)
> >   			return ERR_PTR(-ENOMEM);
> > @@ -2897,11 +2912,12 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
> >   #ifdef TEST_VM_ASYNC_OPS_ERROR
> >   #define SUPPORTED_FLAGS	\
> >   	(FORCE_ASYNC_OP_ERROR | XE_VM_BIND_FLAG_ASYNC | \
> > -	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | 0xffff)
> > +	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | \
> > +	 XE_VM_BIND_FLAG_NULL | 0xffff)
> >   #else
> >   #define SUPPORTED_FLAGS	\
> >   	(XE_VM_BIND_FLAG_ASYNC | XE_VM_BIND_FLAG_READONLY | \
> > -	 XE_VM_BIND_FLAG_IMMEDIATE | 0xffff)
> > +	 XE_VM_BIND_FLAG_IMMEDIATE | XE_VM_BIND_FLAG_NULL | 0xffff)
> >   #endif
> >   #define XE_64K_PAGE_MASK 0xffffull
> > @@ -2949,6 +2965,7 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
> >   		u32 obj = (*bind_ops)[i].obj;
> >   		u64 obj_offset = (*bind_ops)[i].obj_offset;
> >   		u32 region = (*bind_ops)[i].region;
> > +		bool is_null = op &  XE_VM_BIND_FLAG_NULL;
> >   		if (XE_IOCTL_ERR(xe, (*bind_ops)[i].pad) ||
> >   		    XE_IOCTL_ERR(xe, (*bind_ops)[i].reserved[0] ||
> > @@ -2982,8 +2999,13 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
> >   		if (XE_IOCTL_ERR(xe, VM_BIND_OP(op) >
> >   				 XE_VM_BIND_OP_PREFETCH) ||
> >   		    XE_IOCTL_ERR(xe, op & ~SUPPORTED_FLAGS) ||
> > +		    XE_IOCTL_ERR(xe, obj && is_null) ||
> > +		    XE_IOCTL_ERR(xe, obj_offset && is_null) ||
> > +		    XE_IOCTL_ERR(xe, VM_BIND_OP(op) != XE_VM_BIND_OP_MAP &&
> > +				 is_null) ||
> >   		    XE_IOCTL_ERR(xe, !obj &&
> > -				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP) ||
> > +				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP &&
> > +				 !is_null) ||
> >   		    XE_IOCTL_ERR(xe, !obj &&
> >   				 VM_BIND_OP(op) == XE_VM_BIND_OP_UNMAP_ALL) ||
> >   		    XE_IOCTL_ERR(xe, addr &&
> > @@ -3389,6 +3411,7 @@ int xe_vm_invalidate_vma(struct xe_vma *vma)
> >   	int ret;
> >   	XE_BUG_ON(!xe_vm_in_fault_mode(vma->vm));
> > +	XE_WARN_ON(xe_vma_is_null(vma));
> >   	trace_xe_vma_usm_invalidate(vma);
> >   	/* Check that we don't race with page-table updates */
> > @@ -3451,8 +3474,11 @@ int xe_analyze_vm(struct drm_printer *p, struct xe_vm *vm, int gt_id)
> >   	for (node = rb_first(&vm->vmas); node; node = rb_next(node)) {
> >   		struct xe_vma *vma = to_xe_vma(node);
> >   		bool is_userptr = xe_vma_is_userptr(vma);
> > +		bool is_null = xe_vma_is_null(vma);
> > -		if (is_userptr) {
> > +		if (is_null) {
> > +			addr = 0;
> > +		} else if (is_userptr) {
> >   			struct xe_res_cursor cur;
> >   			xe_res_first_sg(vma->userptr.sg, 0, XE_PAGE_SIZE,
> > @@ -3463,7 +3489,8 @@ int xe_analyze_vm(struct drm_printer *p, struct xe_vm *vm, int gt_id)
> >   		}
> >   		drm_printf(p, " [%016llx-%016llx] S:0x%016llx A:%016llx %s\n",
> >   			   vma->start, vma->end, vma->end - vma->start + 1ull,
> > -			   addr, is_userptr ? "USR" : is_vram ? "VRAM" : "SYS");
> > +			   addr, is_null ? "NULL" : is_userptr ? "USR" :
> > +			   is_vram ? "VRAM" : "SYS");
> >   	}
> >   	up_read(&vm->lock);
> > diff --git a/drivers/gpu/drm/xe/xe_vm.h b/drivers/gpu/drm/xe/xe_vm.h
> > index 372f26153209..38731e200813 100644
> > --- a/drivers/gpu/drm/xe/xe_vm.h
> > +++ b/drivers/gpu/drm/xe/xe_vm.h
> > @@ -115,11 +115,21 @@ static inline void xe_vm_reactivate_rebind(struct xe_vm *vm)
> >   	}
> >   }
> > -static inline bool xe_vma_is_userptr(struct xe_vma *vma)
> > +static inline bool xe_vma_is_null(struct xe_vma *vma)
> > +{
> > +	return vma->pte_flags & XE_PTE_FLAG_NULL;
> > +}
> > +
> > +static inline bool xe_vma_has_no_bo(struct xe_vma *vma)
> >   {
> >   	return !vma->bo;
> >   }
> > +static inline bool xe_vma_is_userptr(struct xe_vma *vma)
> > +{
> > +	return xe_vma_has_no_bo(vma) && !xe_vma_is_null(vma);
> > +}
> > +
> >   int xe_vma_userptr_pin_pages(struct xe_vma *vma);
> >   int xe_vma_userptr_check_repin(struct xe_vma *vma);
> > diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
> > index 6daddd29d416..f775bafe4619 100644
> > --- a/drivers/gpu/drm/xe/xe_vm_types.h
> > +++ b/drivers/gpu/drm/xe/xe_vm_types.h
> > @@ -31,6 +31,7 @@ struct xe_vma {
> >   	u64 end;
> >   	/** @pte_flags: pte flags for this VMA */
> >   #define XE_PTE_FLAG_READ_ONLY		BIT(0)
> > +#define XE_PTE_FLAG_NULL		BIT(1)
> >   	u32 pte_flags;
> >   	/** @bo: BO if not a userptr, must be NULL is userptr */
> > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> > index 0ebc50beb5e5..39a1ce89732f 100644
> > --- a/include/uapi/drm/xe_drm.h
> > +++ b/include/uapi/drm/xe_drm.h
> > @@ -456,6 +456,14 @@ struct drm_xe_vm_bind_op {
> >   	 * than differing the MAP to the page fault handler.
> >   	 */
> >   #define XE_VM_BIND_FLAG_IMMEDIATE	(0x1 << 18)
> > +	/*
> > +	 * When the NULL flag is set, the page tables are setup with a special
> > +	 * bit which indicates writes are dropped and all reads return zero.  In
> > +	 * the future, the NULL flags will only be valid for XE_VM_BIND_OP_MAP
> > +	 * operations, the BO handle MBZ, and the BO offset MBZ. This flag is
> > +	 * intended to implement VK sparse bindings.
> > +	 */
> > +#define XE_VM_BIND_FLAG_NULL		(0x1 << 19)
> >   	/** @reserved: Reserved */
> >   	__u64 reserved[2];

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

* Re: [Intel-xe] [PATCH 3/3] drm/xe: NULL binding implementation
  2023-06-08  5:03 ` [Intel-xe] [PATCH 3/3] drm/xe: NULL binding implementation Matthew Brost
  2023-06-08 20:59   ` Welty, Brian
@ 2023-06-14  2:49   ` Niranjana Vishwanathapura
  2023-06-15 18:01     ` Matthew Brost
  2023-06-14  8:17   ` Thomas Hellström
                     ` (2 subsequent siblings)
  4 siblings, 1 reply; 30+ messages in thread
From: Niranjana Vishwanathapura @ 2023-06-14  2:49 UTC (permalink / raw)
  To: Matthew Brost; +Cc: intel-xe

On Wed, Jun 07, 2023 at 10:03:33PM -0700, Matthew Brost wrote:
>Add uAPI and implementation for NULL bindings. A NULL binding is defined
>as writes dropped and read zero. A single bit in the uAPI has been added
>which results in a single bit in the PTEs being set.
>
>NULL bindings are indended to be used to implement VK sparse bindings,
>in particular residencyNonResidentStrict property.
>
>Suggested-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
>Signed-off-by: Matthew Brost <matthew.brost@intel.com>
>---
> drivers/gpu/drm/xe/xe_bo.h           |  1 +
> drivers/gpu/drm/xe/xe_exec.c         |  2 +
> drivers/gpu/drm/xe/xe_gt_pagefault.c |  4 +-
> drivers/gpu/drm/xe/xe_pt.c           | 71 +++++++++++++++------
> drivers/gpu/drm/xe/xe_vm.c           | 95 ++++++++++++++++++----------
> drivers/gpu/drm/xe/xe_vm.h           | 12 +++-
> drivers/gpu/drm/xe/xe_vm_types.h     |  1 +
> include/uapi/drm/xe_drm.h            |  8 +++
> 8 files changed, 138 insertions(+), 56 deletions(-)
>
>diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
>index dd3d448fee0b..3a148cc6e811 100644
>--- a/drivers/gpu/drm/xe/xe_bo.h
>+++ b/drivers/gpu/drm/xe/xe_bo.h
>@@ -61,6 +61,7 @@
> #define XE_PPGTT_PTE_LM			BIT_ULL(11)
> #define XE_PDE_64K			BIT_ULL(6)
> #define XE_PTE_PS64			BIT_ULL(8)
>+#define XE_PTE_NULL			BIT_ULL(9)
>
> #define XE_PAGE_PRESENT			BIT_ULL(0)
> #define XE_PAGE_RW			BIT_ULL(1)
>diff --git a/drivers/gpu/drm/xe/xe_exec.c b/drivers/gpu/drm/xe/xe_exec.c
>index e44076ee2e11..4f7694a29348 100644
>--- a/drivers/gpu/drm/xe/xe_exec.c
>+++ b/drivers/gpu/drm/xe/xe_exec.c
>@@ -120,6 +120,8 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
> 	 * to a location where the GPU can access it).
> 	 */
> 	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
>+		XE_WARN_ON(xe_vma_is_null(vma));
>+

Also return error here?

> 		if (xe_vma_is_userptr(vma))
> 			continue;
>
>diff --git a/drivers/gpu/drm/xe/xe_gt_pagefault.c b/drivers/gpu/drm/xe/xe_gt_pagefault.c
>index 73db7f7c0381..6faebd02f3fb 100644
>--- a/drivers/gpu/drm/xe/xe_gt_pagefault.c
>+++ b/drivers/gpu/drm/xe/xe_gt_pagefault.c
>@@ -533,8 +533,8 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
>
> 	trace_xe_vma_acc(vma);
>
>-	/* Userptr can't be migrated, nothing to do */
>-	if (xe_vma_is_userptr(vma))
>+	/* Userptr or null can't be migrated, nothing to do */
>+	if (xe_vma_has_no_bo(vma))
> 		goto unlock_vm;
>
> 	/* Lock VM and BOs dma-resv */
>diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
>index 39ec94549439..265ee45bee5c 100644
>--- a/drivers/gpu/drm/xe/xe_pt.c
>+++ b/drivers/gpu/drm/xe/xe_pt.c
>@@ -81,7 +81,9 @@ u64 gen8_pde_encode(struct xe_bo *bo, u64 bo_offset,
> static dma_addr_t vma_addr(struct xe_vma *vma, u64 offset,
> 			   size_t page_size, bool *is_vram)
> {
>-	if (xe_vma_is_userptr(vma)) {
>+	if (xe_vma_is_null(vma)) {
>+		return 0;

NIT....no need of if-else.
if (xe_vma_is_null(vma))
      return 0;

if (xe_vma_is_userptr(vma)) {
...

>+	} else if (xe_vma_is_userptr(vma)) {
> 		struct xe_res_cursor cur;
> 		u64 page;
>
>@@ -559,6 +561,10 @@ static bool xe_pt_hugepte_possible(u64 addr, u64 next, unsigned int level,
> 	if (next - xe_walk->va_curs_start > xe_walk->curs->size)
> 		return false;
>
>+	/* null VMA's do not have dma adresses */
>+	if (xe_walk->pte_flags & XE_PTE_FLAG_NULL)
>+		return true;
>+
> 	/* Is the DMA address huge PTE size aligned? */
> 	size = next - addr;
> 	dma = addr - xe_walk->va_curs_start + xe_res_dma(xe_walk->curs);
>@@ -575,6 +581,10 @@ xe_pt_scan_64K(u64 addr, u64 next, struct xe_pt_stage_bind_walk *xe_walk)
> {
> 	struct xe_res_cursor curs = *xe_walk->curs;
>
>+	/* null VMA's do not have dma adresses */
>+	if (xe_walk->pte_flags & XE_PTE_FLAG_NULL)
>+		return true;
>+

But the addr (vma->start) and size still need to align with SZ_64K right?

> 	if (!IS_ALIGNED(addr, SZ_64K))
> 		return false;
>
>@@ -631,12 +641,29 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
> 	/* Is this a leaf entry ?*/
> 	if (level == 0 || xe_pt_hugepte_possible(addr, next, level, xe_walk)) {
> 		struct xe_res_cursor *curs = xe_walk->curs;
>+		u64 pte = 0;
>+		bool is_null = xe_walk->pte_flags & XE_PTE_FLAG_NULL;
>
> 		XE_WARN_ON(xe_walk->va_curs_start != addr);
>
>-		pte = __gen8_pte_encode(xe_res_dma(curs) + xe_walk->dma_offset,
>-					xe_walk->cache, xe_walk->pte_flags,
>-					level);
>+		if (is_null) {
>+			pte |= XE_PAGE_PRESENT | XE_PAGE_RW;
>+			if (xe_walk->pte_flags & XE_PTE_FLAG_READ_ONLY)
>+				pte &= ~XE_PAGE_RW;
>+
>+			if (level == 1)
>+				pte |= XE_PDE_PS_2M;
>+			else if (level == 2)
>+				pte |= XE_PDPE_PS_1G;
>+
>+			pte |= XE_PTE_NULL;

This somehow can be combined in __gen8_pte_encode without duplicating
code here?

>+		} else {
>+			pte = __gen8_pte_encode(xe_res_dma(curs) +
>+						xe_walk->dma_offset,
>+						xe_walk->cache,
>+						xe_walk->pte_flags,
>+						level);
>+		}
> 		pte |= xe_walk->default_pte;
>
> 		/*
>@@ -654,7 +681,8 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
> 		if (unlikely(ret))
> 			return ret;
>
>-		xe_res_next(curs, next - addr);
>+		if (!is_null)
>+			xe_res_next(curs, next - addr);
> 		xe_walk->va_curs_start = next;
> 		*action = ACTION_CONTINUE;
>
>@@ -761,24 +789,29 @@ xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
> 		xe_walk.dma_offset = vram_region_gpu_offset(bo->ttm.resource);
> 		xe_walk.cache = XE_CACHE_WB;
> 	} else {
>-		if (!xe_vma_is_userptr(vma) && bo->flags & XE_BO_SCANOUT_BIT)
>+		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_is_userptr(vma) && xe_bo_is_stolen(bo))
>+	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));
>
> 	xe_bo_assert_held(bo);
>-	if (xe_vma_is_userptr(vma))
>-		xe_res_first_sg(vma->userptr.sg, 0, vma->end - vma->start + 1,
>-				&curs);
>-	else if (xe_bo_is_vram(bo) || xe_bo_is_stolen(bo))
>-		xe_res_first(bo->ttm.resource, vma->bo_offset,
>-			     vma->end - vma->start + 1, &curs);
>-	else
>-		xe_res_first_sg(xe_bo_get_sg(bo), vma->bo_offset,
>-				vma->end - vma->start + 1, &curs);
>+
>+	if (!xe_vma_is_null(vma)) {
>+		if (xe_vma_is_userptr(vma))
>+			xe_res_first_sg(vma->userptr.sg, 0,
>+					vma->end - vma->start + 1, &curs);
>+		else if (xe_bo_is_vram(bo) || xe_bo_is_stolen(bo))
>+			xe_res_first(bo->ttm.resource, vma->bo_offset,
>+				     vma->end - vma->start + 1, &curs);
>+		else
>+			xe_res_first_sg(xe_bo_get_sg(bo), vma->bo_offset,
>+					vma->end - vma->start + 1, &curs);
>+	} else {
>+		curs.size = vma->end - vma->start + 1;
>+	}
>
> 	ret = xe_pt_walk_range(&pt->base, pt->level, vma->start, vma->end + 1,
> 				&xe_walk.base);
>@@ -967,7 +1000,7 @@ static void xe_pt_commit_locks_assert(struct xe_vma *vma)
>
> 	if (xe_vma_is_userptr(vma))
> 		lockdep_assert_held_read(&vm->userptr.notifier_lock);
>-	else
>+	else if (!xe_vma_is_null(vma))
> 		dma_resv_assert_held(vma->bo->ttm.base.resv);
>
> 	dma_resv_assert_held(&vm->resv);
>@@ -1330,7 +1363,7 @@ __xe_pt_bind_vma(struct xe_tile *tile, struct xe_vma *vma, struct xe_engine *e,
> 				   DMA_RESV_USAGE_KERNEL :
> 				   DMA_RESV_USAGE_BOOKKEEP);
>
>-		if (!xe_vma_is_userptr(vma) && !vma->bo->vm)
>+		if (!xe_vma_has_no_bo(vma) && !vma->bo->vm)
> 			dma_resv_add_fence(vma->bo->ttm.base.resv, fence,
> 					   DMA_RESV_USAGE_BOOKKEEP);
> 		xe_pt_commit_bind(vma, entries, num_entries, rebind,
>@@ -1647,7 +1680,7 @@ __xe_pt_unbind_vma(struct xe_tile *tile, struct xe_vma *vma, struct xe_engine *e
> 				   DMA_RESV_USAGE_BOOKKEEP);
>
> 		/* This fence will be installed by caller when doing eviction */
>-		if (!xe_vma_is_userptr(vma) && !vma->bo->vm)
>+		if (!xe_vma_has_no_bo(vma) && !vma->bo->vm)
> 			dma_resv_add_fence(vma->bo->ttm.base.resv, fence,
> 					   DMA_RESV_USAGE_BOOKKEEP);
> 		xe_pt_commit_unbind(vma, entries, num_entries,
>diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
>index 94fc9c330235..f7629db275f9 100644
>--- a/drivers/gpu/drm/xe/xe_vm.c
>+++ b/drivers/gpu/drm/xe/xe_vm.c
>@@ -590,7 +590,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
> 		goto out_unlock;
>
> 	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
>-		if (xe_vma_is_userptr(vma) || vma->destroyed)
>+		if (xe_vma_has_no_bo(vma) || vma->destroyed)
> 			continue;
>
> 		err = xe_bo_validate(vma->bo, vm, false);
>@@ -843,6 +843,7 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
> 				    u64 bo_offset_or_userptr,
> 				    u64 start, u64 end,
> 				    bool read_only,
>+				    bool is_null,
> 				    u64 tile_mask)
> {
> 	struct xe_vma *vma;
>@@ -868,8 +869,11 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
> 	vma->vm = vm;
> 	vma->start = start;
> 	vma->end = end;
>+	vma->pte_flags = 0;
> 	if (read_only)
>-		vma->pte_flags = XE_PTE_FLAG_READ_ONLY;
>+		vma->pte_flags |= XE_PTE_FLAG_READ_ONLY;
>+	if (is_null)
>+		vma->pte_flags |= XE_PTE_FLAG_NULL;
>
> 	if (tile_mask) {
> 		vma->tile_mask = tile_mask;
>@@ -886,23 +890,26 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
> 		vma->bo_offset = bo_offset_or_userptr;
> 		vma->bo = xe_bo_get(bo);
> 		list_add_tail(&vma->bo_link, &bo->vmas);
>-	} else /* userptr */ {
>-		u64 size = end - start + 1;
>-		int err;
>+	} else /* userptr or null */ {

NIT, may be 'else if (!is_null)' saves one identation level below.

>+		if (!is_null) {
>+			u64 size = end - start + 1;
>+			int err;
>
>-		vma->userptr.ptr = bo_offset_or_userptr;
>+			vma->userptr.ptr = bo_offset_or_userptr;
>
>-		err = mmu_interval_notifier_insert(&vma->userptr.notifier,
>-						   current->mm,
>-						   vma->userptr.ptr, size,
>-						   &vma_userptr_notifier_ops);
>-		if (err) {
>-			kfree(vma);
>-			vma = ERR_PTR(err);
>-			return vma;
>+			err = mmu_interval_notifier_insert(&vma->userptr.notifier,
>+							   current->mm,
>+							   vma->userptr.ptr, size,
>+							   &vma_userptr_notifier_ops);
>+			if (err) {
>+				kfree(vma);
>+				vma = ERR_PTR(err);
>+				return vma;
>+			}
>+
>+			vma->userptr.notifier_seq = LONG_MAX;
> 		}
>
>-		vma->userptr.notifier_seq = LONG_MAX;
> 		xe_vm_get(vm);
> 	}
>
>@@ -942,6 +949,8 @@ static void xe_vma_destroy_late(struct xe_vma *vma)
> 		 */
> 		mmu_interval_notifier_remove(&vma->userptr.notifier);
> 		xe_vm_put(vm);
>+	} else if (xe_vma_is_null(vma)) {
>+		xe_vm_put(vm);
> 	} else {
> 		xe_bo_put(vma->bo);
> 	}
>@@ -1024,7 +1033,7 @@ static void xe_vma_destroy(struct xe_vma *vma, struct dma_fence *fence)
> 		list_del_init(&vma->userptr.invalidate_link);
> 		spin_unlock(&vm->userptr.invalidated_lock);
> 		list_del(&vma->userptr_link);
>-	} else {
>+	} else if (!xe_vma_is_null(vma)) {
> 		xe_bo_assert_held(vma->bo);
> 		list_del(&vma->bo_link);
>
>@@ -1391,7 +1400,7 @@ void xe_vm_close_and_put(struct xe_vm *vm)
> 	while (vm->vmas.rb_node) {
> 		struct xe_vma *vma = to_xe_vma(vm->vmas.rb_node);
>
>-		if (xe_vma_is_userptr(vma)) {
>+		if (xe_vma_has_no_bo(vma)) {
> 			down_read(&vm->userptr.notifier_lock);
> 			vma->destroyed = true;
> 			up_read(&vm->userptr.notifier_lock);
>@@ -1400,7 +1409,7 @@ void xe_vm_close_and_put(struct xe_vm *vm)
> 		rb_erase(&vma->vm_node, &vm->vmas);
>
> 		/* easy case, remove from VMA? */
>-		if (xe_vma_is_userptr(vma) || vma->bo->vm) {
>+		if (xe_vma_has_no_bo(vma) || vma->bo->vm) {
> 			xe_vma_destroy(vma, NULL);
> 			continue;
> 		}
>@@ -2034,7 +2043,7 @@ static int xe_vm_prefetch(struct xe_vm *vm, struct xe_vma *vma,
>
> 	XE_BUG_ON(region > ARRAY_SIZE(region_to_mem_type));
>
>-	if (!xe_vma_is_userptr(vma)) {
>+	if (!xe_vma_has_no_bo(vma)) {
> 		err = xe_bo_migrate(vma->bo, region_to_mem_type[region]);
> 		if (err)
> 			return err;
>@@ -2643,6 +2652,8 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
> 					  lookup->start - 1,
> 					  (first->pte_flags &
> 					   XE_PTE_FLAG_READ_ONLY),
>+					  (first->pte_flags &
>+					   XE_PTE_FLAG_NULL),
> 					  first->tile_mask);
> 		if (first->bo)
> 			xe_bo_unlock(first->bo, &ww);
>@@ -2675,6 +2686,7 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
> 					 last->end,
> 					 (last->pte_flags &
> 					  XE_PTE_FLAG_READ_ONLY),
>+					 (last->pte_flags & XE_PTE_FLAG_NULL),
> 					 last->tile_mask);
> 		if (last->bo)
> 			xe_bo_unlock(last->bo, &ww);
>@@ -2742,7 +2754,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
> 		      *next;
> 	struct rb_node *node;
>
>-	if (!xe_vma_is_userptr(vma)) {
>+	if (!xe_vma_has_no_bo(vma)) {
> 		if (!xe_bo_can_migrate(vma->bo, region_to_mem_type[region]))
> 			return ERR_PTR(-EINVAL);
> 	}
>@@ -2751,7 +2763,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
> 	while ((node = rb_next(node))) {
> 		if (!xe_vma_cmp_vma_cb(lookup, node)) {
> 			__vma = to_xe_vma(node);
>-			if (!xe_vma_is_userptr(__vma)) {
>+			if (!xe_vma_has_no_bo(__vma)) {
> 				if (!xe_bo_can_migrate(__vma->bo, region_to_mem_type[region]))
> 					goto flush_list;
> 			}
>@@ -2765,7 +2777,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
> 	while ((node = rb_prev(node))) {
> 		if (!xe_vma_cmp_vma_cb(lookup, node)) {
> 			__vma = to_xe_vma(node);
>-			if (!xe_vma_is_userptr(__vma)) {
>+			if (!xe_vma_has_no_bo(__vma)) {
> 				if (!xe_bo_can_migrate(__vma->bo, region_to_mem_type[region]))
> 					goto flush_list;
> 			}
>@@ -2824,21 +2836,23 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
>
> 	switch (VM_BIND_OP(op)) {
> 	case XE_VM_BIND_OP_MAP:
>-		XE_BUG_ON(!bo);
>-
>-		err = xe_bo_lock(bo, &ww, 0, true);
>-		if (err)
>-			return ERR_PTR(err);
>+		if (bo) {
>+			err = xe_bo_lock(bo, &ww, 0, true);
>+			if (err)
>+				return ERR_PTR(err);
>+		}
> 		vma = xe_vma_create(vm, bo, bo_offset_or_userptr, addr,
> 				    addr + range - 1,
> 				    op & XE_VM_BIND_FLAG_READONLY,
>+				    op & XE_VM_BIND_FLAG_NULL,
> 				    tile_mask);
>-		xe_bo_unlock(bo, &ww);
>+		if (bo)
>+			xe_bo_unlock(bo, &ww);
> 		if (!vma)
> 			return ERR_PTR(-ENOMEM);
>
> 		xe_vm_insert_vma(vm, vma);
>-		if (!bo->vm) {
>+		if (bo && !bo->vm) {
> 			vm_insert_extobj(vm, vma);
> 			err = add_preempt_fences(vm, bo);
> 			if (err) {
>@@ -2872,6 +2886,7 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
> 		vma = xe_vma_create(vm, NULL, bo_offset_or_userptr, addr,
> 				    addr + range - 1,
> 				    op & XE_VM_BIND_FLAG_READONLY,
>+				    op & XE_VM_BIND_FLAG_NULL,
> 				    tile_mask);
> 		if (!vma)
> 			return ERR_PTR(-ENOMEM);
>@@ -2897,11 +2912,12 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
> #ifdef TEST_VM_ASYNC_OPS_ERROR
> #define SUPPORTED_FLAGS	\
> 	(FORCE_ASYNC_OP_ERROR | XE_VM_BIND_FLAG_ASYNC | \
>-	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | 0xffff)
>+	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | \
>+	 XE_VM_BIND_FLAG_NULL | 0xffff)
> #else
> #define SUPPORTED_FLAGS	\
> 	(XE_VM_BIND_FLAG_ASYNC | XE_VM_BIND_FLAG_READONLY | \
>-	 XE_VM_BIND_FLAG_IMMEDIATE | 0xffff)
>+	 XE_VM_BIND_FLAG_IMMEDIATE | XE_VM_BIND_FLAG_NULL | 0xffff)
> #endif
> #define XE_64K_PAGE_MASK 0xffffull
>
>@@ -2949,6 +2965,7 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
> 		u32 obj = (*bind_ops)[i].obj;
> 		u64 obj_offset = (*bind_ops)[i].obj_offset;
> 		u32 region = (*bind_ops)[i].region;
>+		bool is_null = op &  XE_VM_BIND_FLAG_NULL;
>
> 		if (XE_IOCTL_ERR(xe, (*bind_ops)[i].pad) ||
> 		    XE_IOCTL_ERR(xe, (*bind_ops)[i].reserved[0] ||
>@@ -2982,8 +2999,13 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
> 		if (XE_IOCTL_ERR(xe, VM_BIND_OP(op) >
> 				 XE_VM_BIND_OP_PREFETCH) ||
> 		    XE_IOCTL_ERR(xe, op & ~SUPPORTED_FLAGS) ||
>+		    XE_IOCTL_ERR(xe, obj && is_null) ||
>+		    XE_IOCTL_ERR(xe, obj_offset && is_null) ||
>+		    XE_IOCTL_ERR(xe, VM_BIND_OP(op) != XE_VM_BIND_OP_MAP &&
>+				 is_null) ||
> 		    XE_IOCTL_ERR(xe, !obj &&
>-				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP) ||
>+				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP &&
>+				 !is_null) ||
> 		    XE_IOCTL_ERR(xe, !obj &&
> 				 VM_BIND_OP(op) == XE_VM_BIND_OP_UNMAP_ALL) ||
> 		    XE_IOCTL_ERR(xe, addr &&
>@@ -3389,6 +3411,7 @@ int xe_vm_invalidate_vma(struct xe_vma *vma)
> 	int ret;
>
> 	XE_BUG_ON(!xe_vm_in_fault_mode(vma->vm));
>+	XE_WARN_ON(xe_vma_is_null(vma));

return error?

> 	trace_xe_vma_usm_invalidate(vma);
>
> 	/* Check that we don't race with page-table updates */
>@@ -3451,8 +3474,11 @@ int xe_analyze_vm(struct drm_printer *p, struct xe_vm *vm, int gt_id)
> 	for (node = rb_first(&vm->vmas); node; node = rb_next(node)) {
> 		struct xe_vma *vma = to_xe_vma(node);
> 		bool is_userptr = xe_vma_is_userptr(vma);
>+		bool is_null = xe_vma_is_null(vma);
>
>-		if (is_userptr) {
>+		if (is_null) {
>+			addr = 0;
>+		} else if (is_userptr) {
> 			struct xe_res_cursor cur;
>
> 			xe_res_first_sg(vma->userptr.sg, 0, XE_PAGE_SIZE,
>@@ -3463,7 +3489,8 @@ int xe_analyze_vm(struct drm_printer *p, struct xe_vm *vm, int gt_id)
> 		}
> 		drm_printf(p, " [%016llx-%016llx] S:0x%016llx A:%016llx %s\n",
> 			   vma->start, vma->end, vma->end - vma->start + 1ull,
>-			   addr, is_userptr ? "USR" : is_vram ? "VRAM" : "SYS");
>+			   addr, is_null ? "NULL" : is_userptr ? "USR" :
>+			   is_vram ? "VRAM" : "SYS");
> 	}
> 	up_read(&vm->lock);
>
>diff --git a/drivers/gpu/drm/xe/xe_vm.h b/drivers/gpu/drm/xe/xe_vm.h
>index 372f26153209..38731e200813 100644
>--- a/drivers/gpu/drm/xe/xe_vm.h
>+++ b/drivers/gpu/drm/xe/xe_vm.h
>@@ -115,11 +115,21 @@ static inline void xe_vm_reactivate_rebind(struct xe_vm *vm)
> 	}
> }
>
>-static inline bool xe_vma_is_userptr(struct xe_vma *vma)
>+static inline bool xe_vma_is_null(struct xe_vma *vma)
>+{
>+	return vma->pte_flags & XE_PTE_FLAG_NULL;
>+}
>+
>+static inline bool xe_vma_has_no_bo(struct xe_vma *vma)
> {
> 	return !vma->bo;
> }
>
>+static inline bool xe_vma_is_userptr(struct xe_vma *vma)
>+{
>+	return xe_vma_has_no_bo(vma) && !xe_vma_is_null(vma);
>+}
>+
> int xe_vma_userptr_pin_pages(struct xe_vma *vma);
>
> int xe_vma_userptr_check_repin(struct xe_vma *vma);
>diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
>index 6daddd29d416..f775bafe4619 100644
>--- a/drivers/gpu/drm/xe/xe_vm_types.h
>+++ b/drivers/gpu/drm/xe/xe_vm_types.h
>@@ -31,6 +31,7 @@ struct xe_vma {
> 	u64 end;
> 	/** @pte_flags: pte flags for this VMA */
> #define XE_PTE_FLAG_READ_ONLY		BIT(0)
>+#define XE_PTE_FLAG_NULL		BIT(1)
> 	u32 pte_flags;
>
> 	/** @bo: BO if not a userptr, must be NULL is userptr */
>diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
>index 0ebc50beb5e5..39a1ce89732f 100644
>--- a/include/uapi/drm/xe_drm.h
>+++ b/include/uapi/drm/xe_drm.h
>@@ -456,6 +456,14 @@ struct drm_xe_vm_bind_op {
> 	 * than differing the MAP to the page fault handler.
> 	 */
> #define XE_VM_BIND_FLAG_IMMEDIATE	(0x1 << 18)
>+	/*
>+	 * When the NULL flag is set, the page tables are setup with a special
>+	 * bit which indicates writes are dropped and all reads return zero.  In
>+	 * the future, the NULL flags will only be valid for XE_VM_BIND_OP_MAP
>+	 * operations, the BO handle MBZ, and the BO offset MBZ. This flag is
>+	 * intended to implement VK sparse bindings.
>+	 */
>+#define XE_VM_BIND_FLAG_NULL		(0x1 << 19)
>

Are we aligned with GPUVA manager uapi here? I haven't paid attention recently,
but they had a GPUVA region abstraction for this sparse binding.
That allowed user to mark a VA region as sparse and vma/s can be allocated
there, but once unbound, it automatically goes back to being sparse
(read 0, write discard) which user having to explicitly manage it.
This probably will also remove vma_is_null() checks sprinkled at many places here.
Any thoughts?

Niranjana

> 	/** @reserved: Reserved */
> 	__u64 reserved[2];
>-- 
>2.34.1
>

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

* Re: [Intel-xe] [PATCH 1/3] drm/xe: s/XE_PTE_READ_ONLY/XE_PTE_FLAG_READ_ONLY
  2023-06-08  5:03 ` [Intel-xe] [PATCH 1/3] drm/xe: s/XE_PTE_READ_ONLY/XE_PTE_FLAG_READ_ONLY Matthew Brost
  2023-06-08  8:26   ` Francois Dugast
@ 2023-06-14  7:59   ` Thomas Hellström
  1 sibling, 0 replies; 30+ messages in thread
From: Thomas Hellström @ 2023-06-14  7:59 UTC (permalink / raw)
  To: Matthew Brost, intel-xe


On 6/8/23 07:03, Matthew Brost wrote:
> This define is for internal PTE flags rather than fields in the hardware
> PTEs, rename as such. This will help in an upcoming patch to avoid
> further confusion.
>
> Signed-off-by: Matthew Brost <matthew.brost@intel.com>

Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>


> ---
>   drivers/gpu/drm/xe/xe_bo.h |  2 +-
>   drivers/gpu/drm/xe/xe_pt.c |  2 +-
>   drivers/gpu/drm/xe/xe_vm.c | 12 +++++++-----
>   3 files changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
> index 29eb7474f018..552fe073e9c5 100644
> --- a/drivers/gpu/drm/xe/xe_bo.h
> +++ b/drivers/gpu/drm/xe/xe_bo.h
> @@ -65,7 +65,7 @@
>   #define XE_PAGE_PRESENT			BIT_ULL(0)
>   #define XE_PAGE_RW			BIT_ULL(1)
>   
> -#define XE_PTE_READ_ONLY		BIT(0)
> +#define XE_PTE_FLAG_READ_ONLY		BIT(0)
>   
>   #define XE_PL_SYSTEM		TTM_PL_SYSTEM
>   #define XE_PL_TT		TTM_PL_TT
> diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
> index bef265715000..39ec94549439 100644
> --- a/drivers/gpu/drm/xe/xe_pt.c
> +++ b/drivers/gpu/drm/xe/xe_pt.c
> @@ -102,7 +102,7 @@ static u64 __gen8_pte_encode(u64 pte, enum xe_cache_level cache, u32 flags,
>   {
>   	pte |= XE_PAGE_PRESENT | XE_PAGE_RW;
>   
> -	if (unlikely(flags & XE_PTE_READ_ONLY))
> +	if (unlikely(flags & XE_PTE_FLAG_READ_ONLY))
>   		pte &= ~XE_PAGE_RW;
>   
>   	/* FIXME: I don't think the PPAT handling is correct for MTL */
> diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> index d1c380ad7f6b..94fc9c330235 100644
> --- a/drivers/gpu/drm/xe/xe_vm.c
> +++ b/drivers/gpu/drm/xe/xe_vm.c
> @@ -61,7 +61,7 @@ int xe_vma_userptr_pin_pages(struct xe_vma *vma)
>   	bool in_kthread = !current->mm;
>   	unsigned long notifier_seq;
>   	int pinned, ret, i;
> -	bool read_only = vma->pte_flags & XE_PTE_READ_ONLY;
> +	bool read_only = vma->pte_flags & XE_PTE_FLAG_READ_ONLY;
>   
>   	lockdep_assert_held(&vm->lock);
>   	XE_BUG_ON(!xe_vma_is_userptr(vma));
> @@ -869,7 +869,7 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
>   	vma->start = start;
>   	vma->end = end;
>   	if (read_only)
> -		vma->pte_flags = XE_PTE_READ_ONLY;
> +		vma->pte_flags = XE_PTE_FLAG_READ_ONLY;
>   
>   	if (tile_mask) {
>   		vma->tile_mask = tile_mask;
> @@ -923,7 +923,7 @@ static void xe_vma_destroy_late(struct xe_vma *vma)
>   {
>   	struct xe_vm *vm = vma->vm;
>   	struct xe_device *xe = vm->xe;
> -	bool read_only = vma->pte_flags & XE_PTE_READ_ONLY;
> +	bool read_only = vma->pte_flags & XE_PTE_FLAG_READ_ONLY;
>   
>   	if (xe_vma_is_userptr(vma)) {
>   		if (vma->userptr.sg) {
> @@ -2641,7 +2641,8 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
>   					  first->userptr.ptr,
>   					  first->start,
>   					  lookup->start - 1,
> -					  (first->pte_flags & XE_PTE_READ_ONLY),
> +					  (first->pte_flags &
> +					   XE_PTE_FLAG_READ_ONLY),
>   					  first->tile_mask);
>   		if (first->bo)
>   			xe_bo_unlock(first->bo, &ww);
> @@ -2672,7 +2673,8 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
>   					 last->userptr.ptr + chunk,
>   					 last->start + chunk,
>   					 last->end,
> -					 (last->pte_flags & XE_PTE_READ_ONLY),
> +					 (last->pte_flags &
> +					  XE_PTE_FLAG_READ_ONLY),
>   					 last->tile_mask);
>   		if (last->bo)
>   			xe_bo_unlock(last->bo, &ww);

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

* Re: [Intel-xe] [PATCH 2/3] drm/xe: Move XE_PTE_FLAG_READ_ONLY to xe_vm_types.h
  2023-06-08  5:03 ` [Intel-xe] [PATCH 2/3] drm/xe: Move XE_PTE_FLAG_READ_ONLY to xe_vm_types.h Matthew Brost
  2023-06-08  8:28   ` Francois Dugast
@ 2023-06-14  8:02   ` Thomas Hellström
  1 sibling, 0 replies; 30+ messages in thread
From: Thomas Hellström @ 2023-06-14  8:02 UTC (permalink / raw)
  To: Matthew Brost, intel-xe


On 6/8/23 07:03, Matthew Brost wrote:
> XE_PTE_FLAG_READ_ONLY is specific to struct xe_vma, move it from xe_bo.h
> to xe_vm_types.h to reflect that.
>
> Signed-off-vy: Matthew Brost <matthew.brost@intel.com>

Typo: s/vy/by

Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>


> ---
>   drivers/gpu/drm/xe/xe_bo.h       | 2 --
>   drivers/gpu/drm/xe/xe_vm_types.h | 1 +
>   2 files changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
> index 552fe073e9c5..dd3d448fee0b 100644
> --- a/drivers/gpu/drm/xe/xe_bo.h
> +++ b/drivers/gpu/drm/xe/xe_bo.h
> @@ -65,8 +65,6 @@
>   #define XE_PAGE_PRESENT			BIT_ULL(0)
>   #define XE_PAGE_RW			BIT_ULL(1)
>   
> -#define XE_PTE_FLAG_READ_ONLY		BIT(0)
> -
>   #define XE_PL_SYSTEM		TTM_PL_SYSTEM
>   #define XE_PL_TT		TTM_PL_TT
>   #define XE_PL_VRAM0		TTM_PL_VRAM
> diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
> index 76af6ac0fa84..6daddd29d416 100644
> --- a/drivers/gpu/drm/xe/xe_vm_types.h
> +++ b/drivers/gpu/drm/xe/xe_vm_types.h
> @@ -30,6 +30,7 @@ struct xe_vma {
>   	/** @end: end address of this VMA within its address domain */
>   	u64 end;
>   	/** @pte_flags: pte flags for this VMA */
> +#define XE_PTE_FLAG_READ_ONLY		BIT(0)
>   	u32 pte_flags;
>   
>   	/** @bo: BO if not a userptr, must be NULL is userptr */

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

* Re: [Intel-xe] [PATCH 3/3] drm/xe: NULL binding implementation
  2023-06-08  5:03 ` [Intel-xe] [PATCH 3/3] drm/xe: NULL binding implementation Matthew Brost
  2023-06-08 20:59   ` Welty, Brian
  2023-06-14  2:49   ` Niranjana Vishwanathapura
@ 2023-06-14  8:17   ` Thomas Hellström
  2023-06-15 17:52     ` Matthew Brost
  2023-06-14 17:07   ` Niranjana Vishwanathapura
  2023-06-14 18:48   ` Zanoni, Paulo R
  4 siblings, 1 reply; 30+ messages in thread
From: Thomas Hellström @ 2023-06-14  8:17 UTC (permalink / raw)
  To: Matthew Brost, intel-xe


On 6/8/23 07:03, Matthew Brost wrote:
> Add uAPI and implementation for NULL bindings. A NULL binding is defined
> as writes dropped and read zero. A single bit in the uAPI has been added
> which results in a single bit in the PTEs being set.
>
> NULL bindings are indended to be used to implement VK sparse bindings,
> in particular residencyNonResidentStrict property.
>
> Suggested-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
> Signed-off-by: Matthew Brost <matthew.brost@intel.com>
> ---
>   drivers/gpu/drm/xe/xe_bo.h           |  1 +
>   drivers/gpu/drm/xe/xe_exec.c         |  2 +
>   drivers/gpu/drm/xe/xe_gt_pagefault.c |  4 +-
>   drivers/gpu/drm/xe/xe_pt.c           | 71 +++++++++++++++------
>   drivers/gpu/drm/xe/xe_vm.c           | 95 ++++++++++++++++++----------
>   drivers/gpu/drm/xe/xe_vm.h           | 12 +++-
>   drivers/gpu/drm/xe/xe_vm_types.h     |  1 +
>   include/uapi/drm/xe_drm.h            |  8 +++
>   8 files changed, 138 insertions(+), 56 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
> index dd3d448fee0b..3a148cc6e811 100644
> --- a/drivers/gpu/drm/xe/xe_bo.h
> +++ b/drivers/gpu/drm/xe/xe_bo.h
> @@ -61,6 +61,7 @@
>   #define XE_PPGTT_PTE_LM			BIT_ULL(11)
>   #define XE_PDE_64K			BIT_ULL(6)
>   #define XE_PTE_PS64			BIT_ULL(8)
> +#define XE_PTE_NULL			BIT_ULL(9)
>   
>   #define XE_PAGE_PRESENT			BIT_ULL(0)
>   #define XE_PAGE_RW			BIT_ULL(1)
> diff --git a/drivers/gpu/drm/xe/xe_exec.c b/drivers/gpu/drm/xe/xe_exec.c
> index e44076ee2e11..4f7694a29348 100644
> --- a/drivers/gpu/drm/xe/xe_exec.c
> +++ b/drivers/gpu/drm/xe/xe_exec.c
> @@ -120,6 +120,8 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
>   	 * to a location where the GPU can access it).
>   	 */
>   	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
> +		XE_WARN_ON(xe_vma_is_null(vma));
> +
>   		if (xe_vma_is_userptr(vma))
>   			continue;
>   
> diff --git a/drivers/gpu/drm/xe/xe_gt_pagefault.c b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> index 73db7f7c0381..6faebd02f3fb 100644
> --- a/drivers/gpu/drm/xe/xe_gt_pagefault.c
> +++ b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> @@ -533,8 +533,8 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
>   
>   	trace_xe_vma_acc(vma);
>   
> -	/* Userptr can't be migrated, nothing to do */
> -	if (xe_vma_is_userptr(vma))
> +	/* Userptr or null can't be migrated, nothing to do */
> +	if (xe_vma_has_no_bo(vma))
>   		goto unlock_vm;
>   
>   	/* Lock VM and BOs dma-resv */
> diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
> index 39ec94549439..265ee45bee5c 100644
> --- a/drivers/gpu/drm/xe/xe_pt.c
> +++ b/drivers/gpu/drm/xe/xe_pt.c
> @@ -81,7 +81,9 @@ u64 gen8_pde_encode(struct xe_bo *bo, u64 bo_offset,
>   static dma_addr_t vma_addr(struct xe_vma *vma, u64 offset,
>   			   size_t page_size, bool *is_vram)
>   {
> -	if (xe_vma_is_userptr(vma)) {
> +	if (xe_vma_is_null(vma)) {
> +		return 0;
> +	} else if (xe_vma_is_userptr(vma)) {
>   		struct xe_res_cursor cur;
>   		u64 page;
>   
> @@ -559,6 +561,10 @@ static bool xe_pt_hugepte_possible(u64 addr, u64 next, unsigned int level,
>   	if (next - xe_walk->va_curs_start > xe_walk->curs->size)
>   		return false;
>   
> +	/* null VMA's do not have dma adresses */
> +	if (xe_walk->pte_flags & XE_PTE_FLAG_NULL)
> +		return true;
> +
>   	/* Is the DMA address huge PTE size aligned? */
>   	size = next - addr;
>   	dma = addr - xe_walk->va_curs_start + xe_res_dma(xe_walk->curs);
> @@ -575,6 +581,10 @@ xe_pt_scan_64K(u64 addr, u64 next, struct xe_pt_stage_bind_walk *xe_walk)
>   {
>   	struct xe_res_cursor curs = *xe_walk->curs;
>   
> +	/* null VMA's do not have dma adresses */
> +	if (xe_walk->pte_flags & XE_PTE_FLAG_NULL)
> +		return true;
> +
>   	if (!IS_ALIGNED(addr, SZ_64K))
>   		return false;
>   
> @@ -631,12 +641,29 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
>   	/* Is this a leaf entry ?*/
>   	if (level == 0 || xe_pt_hugepte_possible(addr, next, level, xe_walk)) {
>   		struct xe_res_cursor *curs = xe_walk->curs;
> +		u64 pte = 0;
> +		bool is_null = xe_walk->pte_flags & XE_PTE_FLAG_NULL;
>   
>   		XE_WARN_ON(xe_walk->va_curs_start != addr);
>   
> -		pte = __gen8_pte_encode(xe_res_dma(curs) + xe_walk->dma_offset,
> -					xe_walk->cache, xe_walk->pte_flags,
> -					level);
> +		if (is_null) {
> +			pte |= XE_PAGE_PRESENT | XE_PAGE_RW;
> +			if (xe_walk->pte_flags & XE_PTE_FLAG_READ_ONLY)
> +				pte &= ~XE_PAGE_RW;
> +
> +			if (level == 1)
> +				pte |= XE_PDE_PS_2M;
> +			else if (level == 2)
> +				pte |= XE_PDPE_PS_1G;
> +
> +			pte |= XE_PTE_NULL;
Why can't this block be incorporated into __gen8_pte_encode() and the 
test for null binding done in that function?
> +		} else {
> +			pte = __gen8_pte_encode(xe_res_dma(curs) +
> +						xe_walk->dma_offset,
> +						xe_walk->cache,
> +						xe_walk->pte_flags,
> +						level);
> +		}
>   		pte |= xe_walk->default_pte;
>   
>   		/*
> @@ -654,7 +681,8 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
>   		if (unlikely(ret))
>   			return ret;
>   
> -		xe_res_next(curs, next - addr);
> +		if (!is_null)
> +			xe_res_next(curs, next - addr);
>   		xe_walk->va_curs_start = next;
>   		*action = ACTION_CONTINUE;
>   
> @@ -761,24 +789,29 @@ xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
>   		xe_walk.dma_offset = vram_region_gpu_offset(bo->ttm.resource);
>   		xe_walk.cache = XE_CACHE_WB;
>   	} else {
> -		if (!xe_vma_is_userptr(vma) && bo->flags & XE_BO_SCANOUT_BIT)
> +		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_is_userptr(vma) && xe_bo_is_stolen(bo))
> +	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));
>   
>   	xe_bo_assert_held(bo);
> -	if (xe_vma_is_userptr(vma))
> -		xe_res_first_sg(vma->userptr.sg, 0, vma->end - vma->start + 1,
> -				&curs);
> -	else if (xe_bo_is_vram(bo) || xe_bo_is_stolen(bo))
> -		xe_res_first(bo->ttm.resource, vma->bo_offset,
> -			     vma->end - vma->start + 1, &curs);
> -	else
> -		xe_res_first_sg(xe_bo_get_sg(bo), vma->bo_offset,
> -				vma->end - vma->start + 1, &curs);
> +
> +	if (!xe_vma_is_null(vma)) {
> +		if (xe_vma_is_userptr(vma))
> +			xe_res_first_sg(vma->userptr.sg, 0,
> +					vma->end - vma->start + 1, &curs);
> +		else if (xe_bo_is_vram(bo) || xe_bo_is_stolen(bo))
> +			xe_res_first(bo->ttm.resource, vma->bo_offset,
> +				     vma->end - vma->start + 1, &curs);
> +		else
> +			xe_res_first_sg(xe_bo_get_sg(bo), vma->bo_offset,
> +					vma->end - vma->start + 1, &curs);
> +	} else {
> +		curs.size = vma->end - vma->start + 1;
> +	}
>   
>   	ret = xe_pt_walk_range(&pt->base, pt->level, vma->start, vma->end + 1,
>   				&xe_walk.base);
> @@ -967,7 +1000,7 @@ static void xe_pt_commit_locks_assert(struct xe_vma *vma)
>   
>   	if (xe_vma_is_userptr(vma))
>   		lockdep_assert_held_read(&vm->userptr.notifier_lock);
> -	else
> +	else if (!xe_vma_is_null(vma))
>   		dma_resv_assert_held(vma->bo->ttm.base.resv);
>   
>   	dma_resv_assert_held(&vm->resv);
> @@ -1330,7 +1363,7 @@ __xe_pt_bind_vma(struct xe_tile *tile, struct xe_vma *vma, struct xe_engine *e,
>   				   DMA_RESV_USAGE_KERNEL :
>   				   DMA_RESV_USAGE_BOOKKEEP);
>   
> -		if (!xe_vma_is_userptr(vma) && !vma->bo->vm)
> +		if (!xe_vma_has_no_bo(vma) && !vma->bo->vm)
>   			dma_resv_add_fence(vma->bo->ttm.base.resv, fence,
>   					   DMA_RESV_USAGE_BOOKKEEP);
>   		xe_pt_commit_bind(vma, entries, num_entries, rebind,
> @@ -1647,7 +1680,7 @@ __xe_pt_unbind_vma(struct xe_tile *tile, struct xe_vma *vma, struct xe_engine *e
>   				   DMA_RESV_USAGE_BOOKKEEP);
>   
>   		/* This fence will be installed by caller when doing eviction */
> -		if (!xe_vma_is_userptr(vma) && !vma->bo->vm)
> +		if (!xe_vma_has_no_bo(vma) && !vma->bo->vm)
>   			dma_resv_add_fence(vma->bo->ttm.base.resv, fence,
>   					   DMA_RESV_USAGE_BOOKKEEP);
>   		xe_pt_commit_unbind(vma, entries, num_entries,
> diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> index 94fc9c330235..f7629db275f9 100644
> --- a/drivers/gpu/drm/xe/xe_vm.c
> +++ b/drivers/gpu/drm/xe/xe_vm.c
> @@ -590,7 +590,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
>   		goto out_unlock;
>   
>   	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
> -		if (xe_vma_is_userptr(vma) || vma->destroyed)
> +		if (xe_vma_has_no_bo(vma) || vma->destroyed)
>   			continue;
>   
>   		err = xe_bo_validate(vma->bo, vm, false);
> @@ -843,6 +843,7 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
>   				    u64 bo_offset_or_userptr,
>   				    u64 start, u64 end,
>   				    bool read_only,
> +				    bool is_null,
>   				    u64 tile_mask)
>   {
>   	struct xe_vma *vma;
> @@ -868,8 +869,11 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
>   	vma->vm = vm;
>   	vma->start = start;
>   	vma->end = end;
> +	vma->pte_flags = 0;
>   	if (read_only)
> -		vma->pte_flags = XE_PTE_FLAG_READ_ONLY;
> +		vma->pte_flags |= XE_PTE_FLAG_READ_ONLY;
> +	if (is_null)
> +		vma->pte_flags |= XE_PTE_FLAG_NULL;
>   
>   	if (tile_mask) {
>   		vma->tile_mask = tile_mask;
> @@ -886,23 +890,26 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
>   		vma->bo_offset = bo_offset_or_userptr;
>   		vma->bo = xe_bo_get(bo);
>   		list_add_tail(&vma->bo_link, &bo->vmas);
> -	} else /* userptr */ {
> -		u64 size = end - start + 1;
> -		int err;
> +	} else /* userptr or null */ {
> +		if (!is_null) {
> +			u64 size = end - start + 1;
> +			int err;
>   
> -		vma->userptr.ptr = bo_offset_or_userptr;
> +			vma->userptr.ptr = bo_offset_or_userptr;
>   
> -		err = mmu_interval_notifier_insert(&vma->userptr.notifier,
> -						   current->mm,
> -						   vma->userptr.ptr, size,
> -						   &vma_userptr_notifier_ops);
> -		if (err) {
> -			kfree(vma);
> -			vma = ERR_PTR(err);
> -			return vma;
> +			err = mmu_interval_notifier_insert(&vma->userptr.notifier,
> +							   current->mm,
> +							   vma->userptr.ptr, size,
> +							   &vma_userptr_notifier_ops);
> +			if (err) {
> +				kfree(vma);
> +				vma = ERR_PTR(err);
> +				return vma;
> +			}
> +
> +			vma->userptr.notifier_seq = LONG_MAX;
>   		}
>   
> -		vma->userptr.notifier_seq = LONG_MAX;
>   		xe_vm_get(vm);
>   	}
>   
> @@ -942,6 +949,8 @@ static void xe_vma_destroy_late(struct xe_vma *vma)
>   		 */
>   		mmu_interval_notifier_remove(&vma->userptr.notifier);
>   		xe_vm_put(vm);
> +	} else if (xe_vma_is_null(vma)) {
> +		xe_vm_put(vm);
>   	} else {
>   		xe_bo_put(vma->bo);
>   	}
> @@ -1024,7 +1033,7 @@ static void xe_vma_destroy(struct xe_vma *vma, struct dma_fence *fence)
>   		list_del_init(&vma->userptr.invalidate_link);
>   		spin_unlock(&vm->userptr.invalidated_lock);
>   		list_del(&vma->userptr_link);
> -	} else {
> +	} else if (!xe_vma_is_null(vma)) {
>   		xe_bo_assert_held(vma->bo);
>   		list_del(&vma->bo_link);
>   
> @@ -1391,7 +1400,7 @@ void xe_vm_close_and_put(struct xe_vm *vm)
>   	while (vm->vmas.rb_node) {
>   		struct xe_vma *vma = to_xe_vma(vm->vmas.rb_node);
>   
> -		if (xe_vma_is_userptr(vma)) {
> +		if (xe_vma_has_no_bo(vma)) {
>   			down_read(&vm->userptr.notifier_lock);
>   			vma->destroyed = true;
>   			up_read(&vm->userptr.notifier_lock);
> @@ -1400,7 +1409,7 @@ void xe_vm_close_and_put(struct xe_vm *vm)
>   		rb_erase(&vma->vm_node, &vm->vmas);
>   
>   		/* easy case, remove from VMA? */
> -		if (xe_vma_is_userptr(vma) || vma->bo->vm) {
> +		if (xe_vma_has_no_bo(vma) || vma->bo->vm) {
>   			xe_vma_destroy(vma, NULL);
>   			continue;
>   		}
> @@ -2034,7 +2043,7 @@ static int xe_vm_prefetch(struct xe_vm *vm, struct xe_vma *vma,
>   
>   	XE_BUG_ON(region > ARRAY_SIZE(region_to_mem_type));
>   
> -	if (!xe_vma_is_userptr(vma)) {
> +	if (!xe_vma_has_no_bo(vma)) {
>   		err = xe_bo_migrate(vma->bo, region_to_mem_type[region]);
>   		if (err)
>   			return err;
> @@ -2643,6 +2652,8 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
>   					  lookup->start - 1,
>   					  (first->pte_flags &
>   					   XE_PTE_FLAG_READ_ONLY),
> +					  (first->pte_flags &
> +					   XE_PTE_FLAG_NULL),
>   					  first->tile_mask);
>   		if (first->bo)
>   			xe_bo_unlock(first->bo, &ww);
> @@ -2675,6 +2686,7 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
>   					 last->end,
>   					 (last->pte_flags &
>   					  XE_PTE_FLAG_READ_ONLY),
> +					 (last->pte_flags & XE_PTE_FLAG_NULL),
>   					 last->tile_mask);
>   		if (last->bo)
>   			xe_bo_unlock(last->bo, &ww);
> @@ -2742,7 +2754,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
>   		      *next;
>   	struct rb_node *node;
>   
> -	if (!xe_vma_is_userptr(vma)) {
> +	if (!xe_vma_has_no_bo(vma)) {
>   		if (!xe_bo_can_migrate(vma->bo, region_to_mem_type[region]))
>   			return ERR_PTR(-EINVAL);
>   	}
> @@ -2751,7 +2763,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
>   	while ((node = rb_next(node))) {
>   		if (!xe_vma_cmp_vma_cb(lookup, node)) {
>   			__vma = to_xe_vma(node);
> -			if (!xe_vma_is_userptr(__vma)) {
> +			if (!xe_vma_has_no_bo(__vma)) {
>   				if (!xe_bo_can_migrate(__vma->bo, region_to_mem_type[region]))
>   					goto flush_list;
>   			}
> @@ -2765,7 +2777,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
>   	while ((node = rb_prev(node))) {
>   		if (!xe_vma_cmp_vma_cb(lookup, node)) {
>   			__vma = to_xe_vma(node);
> -			if (!xe_vma_is_userptr(__vma)) {
> +			if (!xe_vma_has_no_bo(__vma)) {
>   				if (!xe_bo_can_migrate(__vma->bo, region_to_mem_type[region]))
>   					goto flush_list;
>   			}
> @@ -2824,21 +2836,23 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
>   
>   	switch (VM_BIND_OP(op)) {
>   	case XE_VM_BIND_OP_MAP:
> -		XE_BUG_ON(!bo);
> -
> -		err = xe_bo_lock(bo, &ww, 0, true);
> -		if (err)
> -			return ERR_PTR(err);
> +		if (bo) {
> +			err = xe_bo_lock(bo, &ww, 0, true);
> +			if (err)
> +				return ERR_PTR(err);
> +		}
>   		vma = xe_vma_create(vm, bo, bo_offset_or_userptr, addr,
>   				    addr + range - 1,
>   				    op & XE_VM_BIND_FLAG_READONLY,
> +				    op & XE_VM_BIND_FLAG_NULL,
>   				    tile_mask);
> -		xe_bo_unlock(bo, &ww);
> +		if (bo)
> +			xe_bo_unlock(bo, &ww);
>   		if (!vma)
>   			return ERR_PTR(-ENOMEM);
>   
>   		xe_vm_insert_vma(vm, vma);
> -		if (!bo->vm) {
> +		if (bo && !bo->vm) {
Suspicious-looking indent.
>   			vm_insert_extobj(vm, vma);
>   			err = add_preempt_fences(vm, bo);
>   			if (err) {
> @@ -2872,6 +2886,7 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
>   		vma = xe_vma_create(vm, NULL, bo_offset_or_userptr, addr,
>   				    addr + range - 1,
>   				    op & XE_VM_BIND_FLAG_READONLY,
> +				    op & XE_VM_BIND_FLAG_NULL,
>   				    tile_mask);
>   		if (!vma)
>   			return ERR_PTR(-ENOMEM);
> @@ -2897,11 +2912,12 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
>   #ifdef TEST_VM_ASYNC_OPS_ERROR
>   #define SUPPORTED_FLAGS	\
>   	(FORCE_ASYNC_OP_ERROR | XE_VM_BIND_FLAG_ASYNC | \
> -	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | 0xffff)
> +	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | \
> +	 XE_VM_BIND_FLAG_NULL | 0xffff)
>   #else
>   #define SUPPORTED_FLAGS	\
>   	(XE_VM_BIND_FLAG_ASYNC | XE_VM_BIND_FLAG_READONLY | \
> -	 XE_VM_BIND_FLAG_IMMEDIATE | 0xffff)
> +	 XE_VM_BIND_FLAG_IMMEDIATE | XE_VM_BIND_FLAG_NULL | 0xffff)
>   #endif
>   #define XE_64K_PAGE_MASK 0xffffull
>   
> @@ -2949,6 +2965,7 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
>   		u32 obj = (*bind_ops)[i].obj;
>   		u64 obj_offset = (*bind_ops)[i].obj_offset;
>   		u32 region = (*bind_ops)[i].region;
> +		bool is_null = op &  XE_VM_BIND_FLAG_NULL;
>   
>   		if (XE_IOCTL_ERR(xe, (*bind_ops)[i].pad) ||
>   		    XE_IOCTL_ERR(xe, (*bind_ops)[i].reserved[0] ||
> @@ -2982,8 +2999,13 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
>   		if (XE_IOCTL_ERR(xe, VM_BIND_OP(op) >
>   				 XE_VM_BIND_OP_PREFETCH) ||
>   		    XE_IOCTL_ERR(xe, op & ~SUPPORTED_FLAGS) ||
> +		    XE_IOCTL_ERR(xe, obj && is_null) ||
> +		    XE_IOCTL_ERR(xe, obj_offset && is_null) ||
> +		    XE_IOCTL_ERR(xe, VM_BIND_OP(op) != XE_VM_BIND_OP_MAP &&
> +				 is_null) ||
>   		    XE_IOCTL_ERR(xe, !obj &&
> -				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP) ||
> +				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP &&
> +				 !is_null) ||
>   		    XE_IOCTL_ERR(xe, !obj &&
>   				 VM_BIND_OP(op) == XE_VM_BIND_OP_UNMAP_ALL) ||
>   		    XE_IOCTL_ERR(xe, addr &&
> @@ -3389,6 +3411,7 @@ int xe_vm_invalidate_vma(struct xe_vma *vma)
>   	int ret;
>   
>   	XE_BUG_ON(!xe_vm_in_fault_mode(vma->vm));
> +	XE_WARN_ON(xe_vma_is_null(vma));
>   	trace_xe_vma_usm_invalidate(vma);
>   
>   	/* Check that we don't race with page-table updates */
> @@ -3451,8 +3474,11 @@ int xe_analyze_vm(struct drm_printer *p, struct xe_vm *vm, int gt_id)
>   	for (node = rb_first(&vm->vmas); node; node = rb_next(node)) {
>   		struct xe_vma *vma = to_xe_vma(node);
>   		bool is_userptr = xe_vma_is_userptr(vma);
> +		bool is_null = xe_vma_is_null(vma);
>   
> -		if (is_userptr) {
> +		if (is_null) {
> +			addr = 0;
> +		} else if (is_userptr) {
>   			struct xe_res_cursor cur;
>   
>   			xe_res_first_sg(vma->userptr.sg, 0, XE_PAGE_SIZE,
> @@ -3463,7 +3489,8 @@ int xe_analyze_vm(struct drm_printer *p, struct xe_vm *vm, int gt_id)
>   		}
>   		drm_printf(p, " [%016llx-%016llx] S:0x%016llx A:%016llx %s\n",
>   			   vma->start, vma->end, vma->end - vma->start + 1ull,
> -			   addr, is_userptr ? "USR" : is_vram ? "VRAM" : "SYS");
> +			   addr, is_null ? "NULL" : is_userptr ? "USR" :
> +			   is_vram ? "VRAM" : "SYS");
>   	}
>   	up_read(&vm->lock);
>   
> diff --git a/drivers/gpu/drm/xe/xe_vm.h b/drivers/gpu/drm/xe/xe_vm.h
> index 372f26153209..38731e200813 100644
> --- a/drivers/gpu/drm/xe/xe_vm.h
> +++ b/drivers/gpu/drm/xe/xe_vm.h
> @@ -115,11 +115,21 @@ static inline void xe_vm_reactivate_rebind(struct xe_vm *vm)
>   	}
>   }
>   
> -static inline bool xe_vma_is_userptr(struct xe_vma *vma)
> +static inline bool xe_vma_is_null(struct xe_vma *vma)
> +{
> +	return vma->pte_flags & XE_PTE_FLAG_NULL;
> +}
> +
> +static inline bool xe_vma_has_no_bo(struct xe_vma *vma)
>   {
>   	return !vma->bo;
>   }
>   
> +static inline bool xe_vma_is_userptr(struct xe_vma *vma)
> +{
> +	return xe_vma_has_no_bo(vma) && !xe_vma_is_null(vma);
> +}
> +
>   int xe_vma_userptr_pin_pages(struct xe_vma *vma);
>   
>   int xe_vma_userptr_check_repin(struct xe_vma *vma);
> diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
> index 6daddd29d416..f775bafe4619 100644
> --- a/drivers/gpu/drm/xe/xe_vm_types.h
> +++ b/drivers/gpu/drm/xe/xe_vm_types.h
> @@ -31,6 +31,7 @@ struct xe_vma {
>   	u64 end;
>   	/** @pte_flags: pte flags for this VMA */
>   #define XE_PTE_FLAG_READ_ONLY		BIT(0)
> +#define XE_PTE_FLAG_NULL		BIT(1)
>   	u32 pte_flags;
>   
>   	/** @bo: BO if not a userptr, must be NULL is userptr */
> diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> index 0ebc50beb5e5..39a1ce89732f 100644
> --- a/include/uapi/drm/xe_drm.h
> +++ b/include/uapi/drm/xe_drm.h
> @@ -456,6 +456,14 @@ struct drm_xe_vm_bind_op {
>   	 * than differing the MAP to the page fault handler.
>   	 */
>   #define XE_VM_BIND_FLAG_IMMEDIATE	(0x1 << 18)
> +	/*
> +	 * When the NULL flag is set, the page tables are setup with a special
> +	 * bit which indicates writes are dropped and all reads return zero.  In
> +	 * the future, the NULL flags will only be valid for XE_VM_BIND_OP_MAP
> +	 * operations, the BO handle MBZ, and the BO offset MBZ. This flag is
> +	 * intended to implement VK sparse bindings.
> +	 */
> +#define XE_VM_BIND_FLAG_NULL		(0x1 << 19)
>   
>   	/** @reserved: Reserved */
>   	__u64 reserved[2];

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

* Re: [Intel-xe] [PATCH 3/3] drm/xe: NULL binding implementation
  2023-06-08  5:03 ` [Intel-xe] [PATCH 3/3] drm/xe: NULL binding implementation Matthew Brost
                     ` (2 preceding siblings ...)
  2023-06-14  8:17   ` Thomas Hellström
@ 2023-06-14 17:07   ` Niranjana Vishwanathapura
  2023-06-15 17:50     ` Matthew Brost
  2023-06-14 18:48   ` Zanoni, Paulo R
  4 siblings, 1 reply; 30+ messages in thread
From: Niranjana Vishwanathapura @ 2023-06-14 17:07 UTC (permalink / raw)
  To: Matthew Brost; +Cc: intel-xe

On Wed, Jun 07, 2023 at 10:03:33PM -0700, Matthew Brost wrote:
>Add uAPI and implementation for NULL bindings. A NULL binding is defined
>as writes dropped and read zero. A single bit in the uAPI has been added
>which results in a single bit in the PTEs being set.
>
>NULL bindings are indended to be used to implement VK sparse bindings,
>in particular residencyNonResidentStrict property.
>
>Suggested-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
>Signed-off-by: Matthew Brost <matthew.brost@intel.com>

Also, do we have IGT tests for this?

Niranjana



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

* Re: [Intel-xe] [PATCH 3/3] drm/xe: NULL binding implementation
  2023-06-08  5:03 ` [Intel-xe] [PATCH 3/3] drm/xe: NULL binding implementation Matthew Brost
                     ` (3 preceding siblings ...)
  2023-06-14 17:07   ` Niranjana Vishwanathapura
@ 2023-06-14 18:48   ` Zanoni, Paulo R
  2023-06-14 20:24     ` Zanoni, Paulo R
  2023-06-15  3:43     ` Matthew Brost
  4 siblings, 2 replies; 30+ messages in thread
From: Zanoni, Paulo R @ 2023-06-14 18:48 UTC (permalink / raw)
  To: intel-xe, Brost,  Matthew

On Wed, 2023-06-07 at 22:03 -0700, Matthew Brost wrote:
> Add uAPI and implementation for NULL bindings. A NULL binding is defined
> as writes dropped and read zero. A single bit in the uAPI has been added
> which results in a single bit in the PTEs being set.
> 
> NULL bindings are indended to be used to implement VK sparse bindings,
> in particular residencyNonResidentStrict property.

I tried to test this on my Mesa Sparse branch, and I'm getting BUG()s.
The interesting thing about this is that multiple BUG()s are competing
to appear on dmesg at the same time. Perhaps there's some kind of race
condition here? I'd happily try experimental patches for this.

[  582.816170] ------------[ cut here ]------------
[  582.816170] ------------[ cut here ]------------
[  582.816172] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
[  582.816173] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
[  582.816180] invalid opcode: 0000 [#1] PREEMPT SMP NOPTI
[  582.816183] CPU: 0 PID: 18152 Comm: deqp-vk Tainted: G        W          6.3.0pz+ #90
[  582.816185] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
[  582.816186] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
[  582.816245] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
[  582.816246] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
[  582.816248] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
[  582.816249] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
[  582.816250] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
[  582.816251] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
[  582.816252] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
[  582.816253] FS:  00007f9088034740(0000) GS:ffff8a4060400000(0000) knlGS:0000000000000000
[  582.816254] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  582.816256] CR2: 000055c1f75fc1a4 CR3: 000000013c396002 CR4: 0000000000770ef0
[  582.816257] PKRU: 55555554
[  582.816258] Call Trace:
[  582.816260]  <TASK>
[  582.816262]  ? xe_vma_create+0x59/0x2d0 [xe]
[  582.816304]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
[  582.816345]  ? update_load_avg+0x7e/0x780
[  582.816348]  ? __cgroup_account_cputime+0x4c/0x70
[  582.816351]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
[  582.816391]  ? psi_group_change+0x152/0x3d0
[  582.816394]  ? select_task_rq_fair+0x174/0x1720
[  582.816396]  ? _raw_spin_lock_irqsave+0x23/0x50
[  582.816399]  ? lock_timer_base+0x61/0x80
[  582.816401]  ? preempt_count_add+0x6a/0xa0
[  582.816404]  ? _raw_spin_unlock+0x15/0x30
[  582.816406]  ? drm_syncobj_find+0x49/0x80 [drm]
[  582.816434]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
[  582.816473]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
[  582.816514]  ? tomoyo_init_request_info+0x95/0xc0
[  582.816516]  ? tomoyo_path_number_perm+0x68/0x1d0
[  582.816519]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
[  582.816540]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
[  582.816581]  drm_ioctl_kernel+0xbe/0x160 [drm]
[  582.816606]  drm_ioctl+0x24c/0x490 [drm]
[  582.816628]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
[  582.816669]  __x64_sys_ioctl+0x8d/0xd0
[  582.816672]  do_syscall_64+0x37/0x90
[  582.816674]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
[  582.816678] RIP: 0033:0x7f9087d1cafb
[  582.816679] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
[  582.816681] RSP: 002b:00007ffd011743e0 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
[  582.816682] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f9087d1cafb
[  582.816683] RDX: 00007ffd011744c0 RSI: 0000000040786445 RDI: 000000000000000e
[  582.816684] RBP: 00007ffd01174470 R08: 0000000000000000 R09: 0000000000000078
[  582.816685] R10: 00007ffd011721e3 R11: 0000000000000246 R12: 0000000000000000
[  582.816686] R13: 00007ffd011763a8 R14: 0000000000000000 R15: 00007f908847c020
[  582.816687]  </TASK>
[  582.816687] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
[  582.816717]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
[  582.816749]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
[  582.816754] ---[ end trace 0000000000000000 ]---
[  582.816755] invalid opcode: 0000 [#2] PREEMPT SMP NOPTI
[  582.816757] CPU: 1 PID: 18149 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
[  582.816759] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
[  582.816760] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
[  582.816809] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
[  582.816811] RSP: 0018:ffffa6170f327a40 EFLAGS: 00010202
[  582.816812] RAX: ffff8a3cc48d5f40 RBX: ffff8a3dfe41d200 RCX: 0000000000000002
[  582.816813] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3dfe6c9200
[  582.816814] RBP: ffff8a3f0c6c6400 R08: ffff8a3dfe6c9260 R09: 0000000000000001
[  582.816815] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
[  582.816816] R13: 0000000000020000 R14: ffff8a3dfe6c9200 R15: ffff8a3dfe6c9200
[  582.816817] FS:  00007f0c7e81f740(0000) GS:ffff8a4060440000(0000) knlGS:0000000000000000
[  582.816818] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  582.816819] CR2: 000055e47877c1a4 CR3: 000000013c2a2005 CR4: 0000000000770ee0
[  582.816820] PKRU: 55555554
[  582.816821] Call Trace:
[  582.816822]  <TASK>
[  582.816824]  ? xe_vma_create+0x59/0x2d0 [xe]
[  582.816865]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
[  582.816906]  ? update_load_avg+0x7e/0x780
[  582.816908]  ? __cgroup_account_cputime+0x4c/0x70
[  582.816910]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
[  582.816950]  ? psi_group_change+0x152/0x3d0
[  582.816952]  ? select_task_rq_fair+0x174/0x1720
[  582.816954]  ? _raw_spin_lock_irqsave+0x23/0x50
[  582.816957]  ? _raw_spin_lock_irqsave+0x23/0x50
[  582.816959]  ? preempt_count_add+0x6a/0xa0
[  582.816961]  ? _raw_spin_unlock+0x15/0x30
[  582.816963]  ? drm_syncobj_find+0x49/0x80 [drm]
[  582.816986]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
[  582.817027]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
[  582.817068]  ? tomoyo_init_request_info+0x95/0xc0
[  582.817070]  ? tomoyo_path_number_perm+0x68/0x1d0
[  582.817072]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
[  582.817094]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
[  582.817135]  drm_ioctl_kernel+0xbe/0x160 [drm]
[  582.817160]  drm_ioctl+0x24c/0x490 [drm]
[  582.817183]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
[  582.817234]  __x64_sys_ioctl+0x8d/0xd0
[  582.817237]  do_syscall_64+0x37/0x90
[  582.817240]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
[  582.817243] RIP: 0033:0x7f0c7e43dafb
[  582.817245] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
[  582.817246] RSP: 002b:00007ffcbf6e36e0 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
[  582.817248] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f0c7e43dafb
[  582.817249] RDX: 00007ffcbf6e37c0 RSI: 0000000040786445 RDI: 000000000000000e
[  582.817250] RBP: 00007ffcbf6e3770 R08: 0000000000000000 R09: 0000000000000078
[  582.817251] R10: 00007ffcbf6e14e3 R11: 0000000000000246 R12: 0000000000000000
[  582.817252] R13: 00007ffcbf6e56a8 R14: 0000000000000000 R15: 00007f0c7eb13020
[  582.817253]  </TASK>
[  582.817254] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
[  582.817288]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
[  582.817324]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
[  582.817341] ---[ end trace 0000000000000000 ]---
[  583.825648] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
[  583.825739] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
[  583.825741] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
[  583.825744] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
[  583.825746] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
[  583.825748] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
[  583.825749] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
[  583.825750] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
[  583.825752] FS:  00007f9088034740(0000) GS:ffff8a4060400000(0000) knlGS:0000000000000000
[  583.825754] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  583.825756] CR2: 000055c1f75fc1a4 CR3: 000000013c396002 CR4: 0000000000770ef0
[  583.825757] PKRU: 55555554
[  584.824359] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
[  584.824440] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
[  584.824442] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
[  584.824445] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
[  584.824446] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
[  584.824448] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
[  584.824449] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
[  584.824450] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
[  584.824451] FS:  00007f0c7e81f740(0000) GS:ffff8a4060440000(0000) knlGS:0000000000000000
[  584.824453] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  584.824454] CR2: 000055e47877c1a4 CR3: 000000013c2a2005 CR4: 0000000000770ee0
[  584.824456] PKRU: 55555554
[  584.923394] ------------[ cut here ]------------
[  584.923398] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
[  584.923413] invalid opcode: 0000 [#3] PREEMPT SMP NOPTI
[  584.923416] CPU: 5 PID: 18148 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
[  584.923418] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
[  584.923420] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
[  584.923492] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
[  584.923494] RSP: 0018:ffffa6170f3afa40 EFLAGS: 00010202
[  584.923497] RAX: ffff8a3cc8455f40 RBX: ffff8a3dfe6ad200 RCX: 0000000000000002
[  584.923499] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3dfe6af800
[  584.923500] RBP: ffff8a3f0c74e000 R08: ffff8a3dfe6af860 R09: 0000000000000001
[  584.923501] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
[  584.923502] R13: 0000000000020000 R14: ffff8a3dfe6af800 R15: ffff8a3dfe6af800
[  584.923503] FS:  00007f6e7e01c740(0000) GS:ffff8a4060540000(0000) knlGS:0000000000000000
[  584.923504] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  584.923505] CR2: 00005639e8e701a4 CR3: 000000018b27c003 CR4: 0000000000770ee0
[  584.923507] PKRU: 55555554
[  584.923508] Call Trace:
[  584.923511]  <TASK>
[  584.923513]  ? xe_vma_create+0x59/0x2d0 [xe]
[  584.923569]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
[  584.923610]  ? update_load_avg+0x7e/0x780
[  584.923613]  ? __cgroup_account_cputime+0x4c/0x70
[  584.923616]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
[  584.923655]  ? psi_group_change+0x152/0x3d0
[  584.923658]  ? select_task_rq_fair+0x174/0x1720
[  584.923660]  ? _raw_spin_lock_irqsave+0x23/0x50
[  584.923663]  ? lock_timer_base+0x61/0x80
[  584.923665]  ? preempt_count_add+0x6a/0xa0
[  584.923667]  ? _raw_spin_unlock+0x15/0x30
[  584.923670]  ? drm_syncobj_find+0x49/0x80 [drm]
[  584.923697]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
[  584.923737]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
[  584.923776]  ? tomoyo_init_request_info+0x95/0xc0
[  584.923780]  ? tomoyo_path_number_perm+0x68/0x1d0
[  584.923782]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
[  584.923803]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
[  584.923842]  drm_ioctl_kernel+0xbe/0x160 [drm]
[  584.923870]  drm_ioctl+0x24c/0x490 [drm]
[  584.923893]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
[  584.923938]  __x64_sys_ioctl+0x8d/0xd0
[  584.923942]  do_syscall_64+0x37/0x90
[  584.923944]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
[  584.923948] RIP: 0033:0x7f6e7dc3dafb
[  584.923949] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
[  584.923951] RSP: 002b:00007ffcc1247030 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
[  584.923952] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f6e7dc3dafb
[  584.923953] RDX: 00007ffcc1247110 RSI: 0000000040786445 RDI: 000000000000000e
[  584.923954] RBP: 00007ffcc12470c0 R08: 0000000000000000 R09: 0000000000000078
[  584.923955] R10: 00007ffcc1244e33 R11: 0000000000000246 R12: 0000000000000000
[  584.923956] R13: 00007ffcc1248ff8 R14: 0000000000000000 R15: 00007f6e7e378020
[  584.923957]  </TASK>
[  584.923958] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
[  584.923991]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
[  584.924025]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
[  584.924031] ---[ end trace 0000000000000000 ]---
[  586.008597] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
[  586.008679] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
[  586.008681] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
[  586.008684] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
[  586.008685] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
[  586.008687] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
[  586.008688] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
[  586.008689] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
[  586.008691] FS:  00007f6e7e01c740(0000) GS:ffff8a4060540000(0000) knlGS:0000000000000000
[  586.008692] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  586.008694] CR2: 00005639e8e701a4 CR3: 000000018b27c003 CR4: 0000000000770ee0
[  586.008695] PKRU: 55555554
[  586.010521] ------------[ cut here ]------------
[  586.010524] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
[  586.010531] invalid opcode: 0000 [#4] PREEMPT SMP NOPTI
[  586.010534] CPU: 6 PID: 18150 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
[  586.010537] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
[  586.010538] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
[  586.010616] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
[  586.010618] RSP: 0018:ffffa6170f3b7a40 EFLAGS: 00010202
[  586.010621] RAX: ffff8a3d273b5f40 RBX: ffff8a3f0c45d000 RCX: 0000000000000002
[  586.010622] RDX: 0000000000000013 RSI: ffff8a3cc1f14000 RDI: ffff8a3f0c483000
[  586.010623] RBP: ffff8a3d20083800 R08: ffff8a3f0c483060 R09: 0000000000000001
[  586.010625] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
[  586.010626] R13: 0000000000020000 R14: ffff8a3f0c483000 R15: ffff8a3f0c483000
[  586.010627] FS:  00007ff676bb2740(0000) GS:ffff8a4060580000(0000) knlGS:0000000000000000
[  586.010628] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  586.010630] CR2: 000056437f23d1a4 CR3: 00000002c5f46002 CR4: 0000000000770ee0
[  586.010632] PKRU: 55555554
[  586.010632] Call Trace:
[  586.010635]  <TASK>
[  586.010638]  ? xe_vma_create+0x59/0x2d0 [xe]
[  586.010702]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
[  586.010764]  ? update_load_avg+0x7e/0x780
[  586.010768]  ? __cgroup_account_cputime+0x4c/0x70
[  586.010772]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
[  586.010833]  ? psi_group_change+0x152/0x3d0
[  586.010837]  ? select_task_rq_fair+0x174/0x1720
[  586.010840]  ? _raw_spin_lock_irqsave+0x23/0x50
[  586.010844]  ? lock_timer_base+0x61/0x80
[  586.010846]  ? preempt_count_add+0x6a/0xa0
[  586.010849]  ? _raw_spin_unlock+0x15/0x30
[  586.010852]  ? drm_syncobj_find+0x49/0x80 [drm]
[  586.010889]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
[  586.010955]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
[  586.011018]  ? tomoyo_init_request_info+0x95/0xc0
[  586.011022]  ? tomoyo_path_number_perm+0x68/0x1d0
[  586.011024]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
[  586.011064]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
[  586.011124]  drm_ioctl_kernel+0xbe/0x160 [drm]
[  586.011161]  drm_ioctl+0x24c/0x490 [drm]
[  586.011193]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
[  586.011261]  __x64_sys_ioctl+0x8d/0xd0
[  586.011265]  do_syscall_64+0x37/0x90
[  586.011268]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
[  586.011272] RIP: 0033:0x7ff676d1cafb
[  586.011275] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
[  586.011276] RSP: 002b:00007ffeacdccf10 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
[  586.011279] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007ff676d1cafb
[  586.011280] RDX: 00007ffeacdccff0 RSI: 0000000040786445 RDI: 000000000000000e
[  586.011281] RBP: 00007ffeacdccfa0 R08: 0000000000000000 R09: 0000000000000078
[  586.011283] R10: 00007ffeacdcad13 R11: 0000000000000246 R12: 0000000000000000
[  586.011284] R13: 00007ffeacdceed8 R14: 0000000000000000 R15: 00007ff6774af020
[  586.011286]  </TASK>
[  586.011287] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
[  586.011337]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
[  586.011390]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
[  586.011398] ---[ end trace 0000000000000000 ]---
[  586.137384] ------------[ cut here ]------------
[  586.137390] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
[  586.137397] invalid opcode: 0000 [#5] PREEMPT SMP NOPTI
[  586.137401] CPU: 7 PID: 18153 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
[  586.137404] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
[  586.137406] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
[  586.137488] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
[  586.137490] RSP: 0018:ffffa6170f3cfa40 EFLAGS: 00010202
[  586.137493] RAX: ffff8a3d41f75f40 RBX: ffff8a3f0c24de00 RCX: 0000000000000002
[  586.137495] RDX: 0000000000000013 RSI: ffff8a3cc1f14000 RDI: ffff8a3f0c24c000
[  586.137496] RBP: ffff8a3cc6177c00 R08: ffff8a3f0c24c060 R09: 0000000000000001
[  586.137498] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
[  586.137499] R13: 0000000000020000 R14: ffff8a3f0c24c000 R15: ffff8a3f0c24c000
[  586.137501] FS:  00007fc966258740(0000) GS:ffff8a40605c0000(0000) knlGS:0000000000000000
[  586.137503] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  586.137504] CR2: 00007fc963c90a9a CR3: 00000002c5ca6001 CR4: 0000000000770ee0
[  586.137506] PKRU: 55555554
[  586.137507] Call Trace:
[  586.137510]  <TASK>
[  586.137513]  ? xe_vma_create+0x59/0x2d0 [xe]
[  586.137576]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
[  586.137638]  ? update_load_avg+0x7e/0x780
[  586.137642]  ? __cgroup_account_cputime+0x4c/0x70
[  586.137646]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
[  586.137705]  ? psi_group_change+0x152/0x3d0
[  586.137710]  ? select_task_rq_fair+0x174/0x1720
[  586.137713]  ? _raw_spin_lock_irqsave+0x23/0x50
[  586.137717]  ? lock_timer_base+0x61/0x80
[  586.137720]  ? preempt_count_add+0x6a/0xa0
[  586.137723]  ? _raw_spin_unlock+0x15/0x30
[  586.137726]  ? drm_syncobj_find+0x49/0x80 [drm]
[  586.137765]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
[  586.137826]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
[  586.137887]  ? tomoyo_init_request_info+0x95/0xc0
[  586.137891]  ? tomoyo_path_number_perm+0x68/0x1d0
[  586.137894]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
[  586.137925]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
[  586.137985]  drm_ioctl_kernel+0xbe/0x160 [drm]
[  586.138017]  drm_ioctl+0x24c/0x490 [drm]
[  586.138047]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
[  586.138107]  __x64_sys_ioctl+0x8d/0xd0
[  586.138112]  do_syscall_64+0x37/0x90
[  586.138115]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
[  586.138119] RIP: 0033:0x7fc96643dafb
[  586.138122] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
[  586.138124] RSP: 002b:00007ffc7383a720 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
[  586.138127] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fc96643dafb
[  586.138128] RDX: 00007ffc7383a800 RSI: 0000000040786445 RDI: 000000000000000e
[  586.138130] RBP: 00007ffc7383a7b0 R08: 0000000000000000 R09: 0000000000000078
[  586.138131] R10: 00007ffc73838523 R11: 0000000000000246 R12: 0000000000000000
[  586.138132] R13: 00007ffc7383c6e8 R14: 0000000000000000 R15: 00007fc966b56020
[  586.138135]  </TASK>
[  586.138136] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
[  586.138183]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
[  586.138236]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
[  586.138245] ---[ end trace 0000000000000000 ]---
[  586.203830] ------------[ cut here ]------------
[  586.203834] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
[  586.203841] invalid opcode: 0000 [#6] PREEMPT SMP NOPTI
[  586.203844] CPU: 3 PID: 18151 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
[  586.203846] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
[  586.203848] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
[  586.203920] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
[  586.203921] RSP: 0018:ffffa6170f3bfa40 EFLAGS: 00010202
[  586.203924] RAX: ffff8a3cc6cedf40 RBX: ffff8a3e36f7be00 RCX: 0000000000000002
[  586.203925] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3e36f7a400
[  586.203926] RBP: ffff8a3eed3e9000 R08: ffff8a3e36f7a460 R09: 0000000000000001
[  586.203927] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
[  586.203928] R13: 0000000000020000 R14: ffff8a3e36f7a400 R15: ffff8a3e36f7a400
[  586.203929] FS:  00007ff5022c2740(0000) GS:ffff8a40604c0000(0000) knlGS:0000000000000000
[  586.203930] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  586.203931] CR2: 00005637548a21a4 CR3: 0000000487fe8003 CR4: 0000000000770ee0
[  586.203933] PKRU: 55555554
[  586.203933] Call Trace:
[  586.203936]  <TASK>
[  586.203938]  ? xe_vma_create+0x59/0x2d0 [xe]
[  586.203985]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
[  586.204031]  ? update_load_avg+0x7e/0x780
[  586.204035]  ? __cgroup_account_cputime+0x4c/0x70
[  586.204038]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
[  586.204081]  ? psi_group_change+0x152/0x3d0
[  586.204084]  ? select_task_rq_fair+0x174/0x1720
[  586.204087]  ? _raw_spin_lock_irqsave+0x23/0x50
[  586.204090]  ? lock_timer_base+0x61/0x80
[  586.204092]  ? preempt_count_add+0x6a/0xa0
[  586.204095]  ? _raw_spin_unlock+0x15/0x30
[  586.204098]  ? drm_syncobj_find+0x49/0x80 [drm]
[  586.204131]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
[  586.204176]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
[  586.204220]  ? tomoyo_init_request_info+0x95/0xc0
[  586.204224]  ? tomoyo_path_number_perm+0x68/0x1d0
[  586.204226]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
[  586.204249]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
[  586.266200]  drm_ioctl_kernel+0xbe/0x160 [drm]
[  586.266241]  drm_ioctl+0x24c/0x490 [drm]
[  586.266273]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
[  586.266332]  __x64_sys_ioctl+0x8d/0xd0
[  586.266336]  do_syscall_64+0x37/0x90
[  586.266340]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
[  586.266345] RIP: 0033:0x7ff5024fcafb
[  586.266348] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
[  586.266350] RSP: 002b:00007ffdca7cde00 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
[  586.266353] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007ff5024fcafb
[  586.266354] RDX: 00007ffdca7cdee0 RSI: 0000000040786445 RDI: 000000000000000e
[  586.266355] RBP: 00007ffdca7cde90 R08: 0000000000000000 R09: 0000000000000078
[  586.266357] R10: 00007ffdca7cbc03 R11: 0000000000000246 R12: 0000000000000000
[  586.266358] R13: 00007ffdca7cfdc8 R14: 0000000000000000 R15: 00007ff502bc0020
[  586.266361]  </TASK>
[  586.266362] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
[  586.266414]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
[  586.266469]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
[  586.266495] ---[ end trace 0000000000000000 ]---
[  586.961460] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
[  586.961541] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
[  586.961542] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
[  586.961545] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
[  586.961546] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
[  586.961548] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
[  586.961549] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
[  586.961550] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
[  586.961551] FS:  00007ff676bb2740(0000) GS:ffff8a4060580000(0000) knlGS:0000000000000000
[  586.961552] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  586.961553] CR2: 000056437f23d1a4 CR3: 00000002c5f46002 CR4: 0000000000770ee0
[  586.961555] PKRU: 55555554
[  587.916215] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
[  587.916313] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
[  587.916316] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
[  587.916318] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
[  587.916321] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
[  587.916322] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
[  587.916323] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
[  587.916325] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
[  587.916326] FS:  00007fc966258740(0000) GS:ffff8a40605c0000(0000) knlGS:0000000000000000
[  587.916328] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  587.916330] CR2: 00007fc963c90a9a CR3: 00000002c5ca6001 CR4: 0000000000770ee0
[  587.916331] PKRU: 55555554
[  588.857849] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
[  588.857933] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
[  588.857935] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
[  588.857937] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
[  588.857938] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
[  588.857939] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
[  588.857940] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
[  588.857941] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
[  588.857942] FS:  00007ff5022c2740(0000) GS:ffff8a40604c0000(0000) knlGS:0000000000000000
[  588.857943] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  588.857944] CR2: 00005637548a21a4 CR3: 0000000487fe8003 CR4: 0000000000770ee0
[  588.857960] PKRU: 55555554
[  702.893558] ------------[ cut here ]------------
[  702.893562] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
[  702.893568] invalid opcode: 0000 [#7] PREEMPT SMP NOPTI
[  702.893571] CPU: 1 PID: 18205 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
[  702.893572] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
[  702.893573] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
[  702.893631] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
[  702.893632] RSP: 0018:ffffa6170f5d3a40 EFLAGS: 00010202
[  702.893634] RAX: ffff8a3cdb7d3f80 RBX: ffff8a3e36fc2e00 RCX: 0000000000000002
[  702.893635] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3e36fc0e00
[  702.893636] RBP: ffff8a4047e6d800 R08: ffff8a3e36fc0e60 R09: 0000000000000001
[  702.893637] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
[  702.893638] R13: 0000000000020000 R14: ffff8a3e36fc0e00 R15: ffff8a3e36fc0e00
[  702.893639] FS:  00007f5c1292f740(0000) GS:ffff8a4060440000(0000) knlGS:0000000000000000
[  702.893640] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  702.893641] CR2: 00007f5c0f107000 CR3: 000000015c374005 CR4: 0000000000770ee0
[  702.893642] PKRU: 55555554
[  702.893643] Call Trace:
[  702.893645]  <TASK>
[  702.893647]  ? xe_vma_create+0x59/0x2d0 [xe]
[  702.893689]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
[  702.893730]  ? update_load_avg+0x7e/0x780
[  702.893733]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
[  702.893771]  ? ___slab_alloc+0x4d5/0x9a0
[  702.893774]  ? xe_vm_bind_ioctl+0xf96/0x2430 [xe]
[  702.893812]  ? xe_vm_bind_ioctl+0xf96/0x2430 [xe]
[  702.893849]  ? preempt_count_add+0x6a/0xa0
[  702.893852]  ? _raw_spin_unlock+0x15/0x30
[  702.893855]  ? drm_syncobj_find+0x49/0x80 [drm]
[  702.893883]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
[  702.893922]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
[  702.893961]  ? tomoyo_init_request_info+0x95/0xc0
[  702.893963]  ? tomoyo_path_number_perm+0x68/0x1d0
[  702.893965]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
[  702.893986]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
[  702.894024]  drm_ioctl_kernel+0xbe/0x160 [drm]
[  702.894049]  drm_ioctl+0x24c/0x490 [drm]
[  702.894070]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
[  702.894109]  __x64_sys_ioctl+0x8d/0xd0
[  702.894112]  do_syscall_64+0x37/0x90
[  702.894114]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
[  702.894118] RIP: 0033:0x7f5c12b1cafb
[  702.894119] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
[  702.894121] RSP: 002b:00007ffe4ff4caf0 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
[  702.894122] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f5c12b1cafb
[  702.894123] RDX: 00007ffe4ff4cbd0 RSI: 0000000040786445 RDI: 000000000000000e
[  702.894124] RBP: 00007ffe4ff4cb80 R08: 0000000000000000 R09: 0000000000000078
[  702.894125] R10: 00007ffe4ff4a8f3 R11: 0000000000000246 R12: 0000000000000000
[  702.894125] R13: 00007ffe4ff4eab8 R14: 0000000000000000 R15: 00007f5c1322b020
[  702.894127]  </TASK>
[  702.894127] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
[  702.894157]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
[  702.894189]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
[  702.894194] ---[ end trace 0000000000000000 ]---
[  703.331800] ------------[ cut here ]------------
[  703.331804] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
[  703.331810] invalid opcode: 0000 [#8] PREEMPT SMP NOPTI
[  703.331813] CPU: 7 PID: 18207 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
[  703.331815] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
[  703.331816] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
[  703.331874] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
[  703.331876] RSP: 0018:ffffa6170f5e3a40 EFLAGS: 00010202
[  703.331878] RAX: ffff8a3d20bd9fc0 RBX: ffff8a3e36f88400 RCX: 0000000000000002
[  703.331879] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3ecd756200
[  703.331880] RBP: ffff8a3eb86d6400 R08: ffff8a3ecd756260 R09: 0000000000000001
[  703.331881] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
[  703.331881] R13: 0000000000020000 R14: ffff8a3ecd756200 R15: ffff8a3ecd756200
[  703.331882] FS:  00007f924fc1d740(0000) GS:ffff8a40605c0000(0000) knlGS:0000000000000000
[  703.331884] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  703.331885] CR2: 00007f9240000020 CR3: 00000002c5ee6001 CR4: 0000000000770ee0
[  703.331886] PKRU: 55555554
[  703.331887] Call Trace:
[  703.331889]  <TASK>
[  703.331891]  ? xe_vma_create+0x59/0x2d0 [xe]
[  703.331933]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
[  703.331974]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
[  703.332010]  ? _raw_spin_lock+0x13/0x40
[  703.332014]  ? psi_group_change+0x152/0x3d0
[  703.332018]  ? select_task_rq_fair+0x174/0x1720
[  703.332021]  ? _raw_spin_lock_irqsave+0x23/0x50
[  703.332023]  ? preempt_count_add+0x6a/0xa0
[  703.332025]  ? _raw_spin_unlock+0x15/0x30
[  703.332028]  ? drm_syncobj_find+0x49/0x80 [drm]
[  703.332055]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
[  703.332095]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
[  703.332134]  ? tomoyo_init_request_info+0x95/0xc0
[  703.332137]  ? tomoyo_path_number_perm+0x68/0x1d0
[  703.332139]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
[  703.332160]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
[  703.332198]  drm_ioctl_kernel+0xbe/0x160 [drm]
[  703.332222]  drm_ioctl+0x24c/0x490 [drm]
[  703.332244]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
[  703.332283]  __x64_sys_ioctl+0x8d/0xd0
[  703.332286]  do_syscall_64+0x37/0x90
[  703.332288]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
[  703.332291] RIP: 0033:0x7f924f83dafb
[  703.332293] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
[  703.332294] RSP: 002b:00007ffce8a0d910 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
[  703.332295] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f924f83dafb
[  703.332296] RDX: 00007ffce8a0d9f0 RSI: 0000000040786445 RDI: 000000000000000e
[  703.332297] RBP: 00007ffce8a0d9a0 R08: 0000000000000000 R09: 0000000000000078
[  703.332298] R10: 00007ffce8a0b713 R11: 0000000000000246 R12: 0000000000000000
[  703.332299] R13: 00007ffce8a0f8d8 R14: 0000000000000000 R15: 00007f924ff11020
[  703.332300]  </TASK>
[  703.332301] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
[  703.332330]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
[  703.332362]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
[  703.332367] ---[ end trace 0000000000000000 ]---
[  703.934202] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
[  703.934284] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
[  703.934287] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
[  703.934290] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
[  703.934292] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
[  703.934293] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
[  703.934295] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
[  703.934296] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
[  703.934298] FS:  00007f5c1292f740(0000) GS:ffff8a4060440000(0000) knlGS:0000000000000000
[  703.934300] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  703.934301] CR2: 00007f5c0f107000 CR3: 000000015c374005 CR4: 0000000000770ee0
[  703.934314] PKRU: 55555554
[  704.939954] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
[  704.940023] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
[  704.940025] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
[  704.940027] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
[  704.940028] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
[  704.940029] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
[  704.940030] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
[  704.940030] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
[  704.940031] FS:  00007f924fc1d740(0000) GS:ffff8a40605c0000(0000) knlGS:0000000000000000
[  704.940032] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  704.940033] CR2: 00007f9240000020 CR3: 00000002c5ee6001 CR4: 0000000000770ee0
[  704.940035] PKRU: 55555554
[  705.036071] ------------[ cut here ]------------



Suggested-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_bo.h           |  1 +
 drivers/gpu/drm/xe/xe_exec.c         |  2 +
 drivers/gpu/drm/xe/xe_gt_pagefault.c |  4 +-
 drivers/gpu/drm/xe/xe_pt.c           | 71 +++++++++++++++------
 drivers/gpu/drm/xe/xe_vm.c           | 95 ++++++++++++++++++----------
 drivers/gpu/drm/xe/xe_vm.h           | 12 +++-
 drivers/gpu/drm/xe/xe_vm_types.h     |  1 +
 include/uapi/drm/xe_drm.h            |  8 +++
 8 files changed, 138 insertions(+), 56 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
index dd3d448fee0b..3a148cc6e811 100644
--- a/drivers/gpu/drm/xe/xe_bo.h
+++ b/drivers/gpu/drm/xe/xe_bo.h
@@ -61,6 +61,7 @@
 #define XE_PPGTT_PTE_LM			BIT_ULL(11)
 #define XE_PDE_64K			BIT_ULL(6)
 #define XE_PTE_PS64			BIT_ULL(8)
+#define XE_PTE_NULL			BIT_ULL(9)
 



 #define XE_PAGE_PRESENT			BIT_ULL(0)
 #define XE_PAGE_RW			BIT_ULL(1)
diff --git a/drivers/gpu/drm/xe/xe_exec.c b/drivers/gpu/drm/xe/xe_exec.c
index e44076ee2e11..4f7694a29348 100644
--- a/drivers/gpu/drm/xe/xe_exec.c
+++ b/drivers/gpu/drm/xe/xe_exec.c
@@ -120,6 +120,8 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
 	 * to a location where the GPU can access it).
 	 */
 	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
+		XE_WARN_ON(xe_vma_is_null(vma));
+
 		if (xe_vma_is_userptr(vma))
 			continue;
 



diff --git a/drivers/gpu/drm/xe/xe_gt_pagefault.c b/drivers/gpu/drm/xe/xe_gt_pagefault.c
index 73db7f7c0381..6faebd02f3fb 100644
--- a/drivers/gpu/drm/xe/xe_gt_pagefault.c
+++ b/drivers/gpu/drm/xe/xe_gt_pagefault.c
@@ -533,8 +533,8 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
 



 	trace_xe_vma_acc(vma);
 



-	/* Userptr can't be migrated, nothing to do */
-	if (xe_vma_is_userptr(vma))
+	/* Userptr or null can't be migrated, nothing to do */
+	if (xe_vma_has_no_bo(vma))
 		goto unlock_vm;
 



 	/* Lock VM and BOs dma-resv */
diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
index 39ec94549439..265ee45bee5c 100644
--- a/drivers/gpu/drm/xe/xe_pt.c
+++ b/drivers/gpu/drm/xe/xe_pt.c
@@ -81,7 +81,9 @@ u64 gen8_pde_encode(struct xe_bo *bo, u64 bo_offset,
 static dma_addr_t vma_addr(struct xe_vma *vma, u64 offset,
 			   size_t page_size, bool *is_vram)
 {
-	if (xe_vma_is_userptr(vma)) {
+	if (xe_vma_is_null(vma)) {
+		return 0;
+	} else if (xe_vma_is_userptr(vma)) {
 		struct xe_res_cursor cur;
 		u64 page;
 



@@ -559,6 +561,10 @@ static bool xe_pt_hugepte_possible(u64 addr, u64 next, unsigned int level,
 	if (next - xe_walk->va_curs_start > xe_walk->curs->size)
 		return false;
 



+	/* null VMA's do not have dma adresses */
+	if (xe_walk->pte_flags & XE_PTE_FLAG_NULL)
+		return true;
+
 	/* Is the DMA address huge PTE size aligned? */
 	size = next - addr;
 	dma = addr - xe_walk->va_curs_start + xe_res_dma(xe_walk->curs);
@@ -575,6 +581,10 @@ xe_pt_scan_64K(u64 addr, u64 next, struct xe_pt_stage_bind_walk *xe_walk)
 {
 	struct xe_res_cursor curs = *xe_walk->curs;
 



+	/* null VMA's do not have dma adresses */
+	if (xe_walk->pte_flags & XE_PTE_FLAG_NULL)
+		return true;
+
 	if (!IS_ALIGNED(addr, SZ_64K))
 		return false;
 



@@ -631,12 +641,29 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
 	/* Is this a leaf entry ?*/
 	if (level == 0 || xe_pt_hugepte_possible(addr, next, level, xe_walk)) {
 		struct xe_res_cursor *curs = xe_walk->curs;
+		u64 pte = 0;
+		bool is_null = xe_walk->pte_flags & XE_PTE_FLAG_NULL;
 



 		XE_WARN_ON(xe_walk->va_curs_start != addr);
 



-		pte = __gen8_pte_encode(xe_res_dma(curs) + xe_walk->dma_offset,
-					xe_walk->cache, xe_walk->pte_flags,
-					level);
+		if (is_null) {
+			pte |= XE_PAGE_PRESENT | XE_PAGE_RW;
+			if (xe_walk->pte_flags & XE_PTE_FLAG_READ_ONLY)
+				pte &= ~XE_PAGE_RW;
+
+			if (level == 1)
+				pte |= XE_PDE_PS_2M;
+			else if (level == 2)
+				pte |= XE_PDPE_PS_1G;
+
+			pte |= XE_PTE_NULL;
+		} else {
+			pte = __gen8_pte_encode(xe_res_dma(curs) +
+						xe_walk->dma_offset,
+						xe_walk->cache,
+						xe_walk->pte_flags,
+						level);
+		}
 		pte |= xe_walk->default_pte;
 



 		/*
@@ -654,7 +681,8 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
 		if (unlikely(ret))
 			return ret;
 



-		xe_res_next(curs, next - addr);
+		if (!is_null)
+			xe_res_next(curs, next - addr);
 		xe_walk->va_curs_start = next;
 		*action = ACTION_CONTINUE;
 



@@ -761,24 +789,29 @@ xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
 		xe_walk.dma_offset = vram_region_gpu_offset(bo->ttm.resource);
 		xe_walk.cache = XE_CACHE_WB;
 	} else {
-		if (!xe_vma_is_userptr(vma) && bo->flags & XE_BO_SCANOUT_BIT)
+		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_is_userptr(vma) && xe_bo_is_stolen(bo))
+	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));
 



 	xe_bo_assert_held(bo);
-	if (xe_vma_is_userptr(vma))
-		xe_res_first_sg(vma->userptr.sg, 0, vma->end - vma->start + 1,
-				&curs);
-	else if (xe_bo_is_vram(bo) || xe_bo_is_stolen(bo))
-		xe_res_first(bo->ttm.resource, vma->bo_offset,
-			     vma->end - vma->start + 1, &curs);
-	else
-		xe_res_first_sg(xe_bo_get_sg(bo), vma->bo_offset,
-				vma->end - vma->start + 1, &curs);
+
+	if (!xe_vma_is_null(vma)) {
+		if (xe_vma_is_userptr(vma))
+			xe_res_first_sg(vma->userptr.sg, 0,
+					vma->end - vma->start + 1, &curs);
+		else if (xe_bo_is_vram(bo) || xe_bo_is_stolen(bo))
+			xe_res_first(bo->ttm.resource, vma->bo_offset,
+				     vma->end - vma->start + 1, &curs);
+		else
+			xe_res_first_sg(xe_bo_get_sg(bo), vma->bo_offset,
+					vma->end - vma->start + 1, &curs);
+	} else {
+		curs.size = vma->end - vma->start + 1;
+	}
 



 	ret = xe_pt_walk_range(&pt->base, pt->level, vma->start, vma->end + 1,
 				&xe_walk.base);
@@ -967,7 +1000,7 @@ static void xe_pt_commit_locks_assert(struct xe_vma *vma)
 



 	if (xe_vma_is_userptr(vma))
 		lockdep_assert_held_read(&vm->userptr.notifier_lock);
-	else
+	else if (!xe_vma_is_null(vma))
 		dma_resv_assert_held(vma->bo->ttm.base.resv);
 



 	dma_resv_assert_held(&vm->resv);
@@ -1330,7 +1363,7 @@ __xe_pt_bind_vma(struct xe_tile *tile, struct xe_vma *vma, struct xe_engine *e,
 				   DMA_RESV_USAGE_KERNEL :
 				   DMA_RESV_USAGE_BOOKKEEP);
 



-		if (!xe_vma_is_userptr(vma) && !vma->bo->vm)
+		if (!xe_vma_has_no_bo(vma) && !vma->bo->vm)
 			dma_resv_add_fence(vma->bo->ttm.base.resv, fence,
 					   DMA_RESV_USAGE_BOOKKEEP);
 		xe_pt_commit_bind(vma, entries, num_entries, rebind,
@@ -1647,7 +1680,7 @@ __xe_pt_unbind_vma(struct xe_tile *tile, struct xe_vma *vma, struct xe_engine *e
 				   DMA_RESV_USAGE_BOOKKEEP);
 



 		/* This fence will be installed by caller when doing eviction */
-		if (!xe_vma_is_userptr(vma) && !vma->bo->vm)
+		if (!xe_vma_has_no_bo(vma) && !vma->bo->vm)
 			dma_resv_add_fence(vma->bo->ttm.base.resv, fence,
 					   DMA_RESV_USAGE_BOOKKEEP);
 		xe_pt_commit_unbind(vma, entries, num_entries,
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index 94fc9c330235..f7629db275f9 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -590,7 +590,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
 		goto out_unlock;
 



 	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
-		if (xe_vma_is_userptr(vma) || vma->destroyed)
+		if (xe_vma_has_no_bo(vma) || vma->destroyed)
 			continue;
 



 		err = xe_bo_validate(vma->bo, vm, false);
@@ -843,6 +843,7 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
 				    u64 bo_offset_or_userptr,
 				    u64 start, u64 end,
 				    bool read_only,
+				    bool is_null,
 				    u64 tile_mask)
 {
 	struct xe_vma *vma;
@@ -868,8 +869,11 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
 	vma->vm = vm;
 	vma->start = start;
 	vma->end = end;
+	vma->pte_flags = 0;
 	if (read_only)
-		vma->pte_flags = XE_PTE_FLAG_READ_ONLY;
+		vma->pte_flags |= XE_PTE_FLAG_READ_ONLY;
+	if (is_null)
+		vma->pte_flags |= XE_PTE_FLAG_NULL;
 



 	if (tile_mask) {
 		vma->tile_mask = tile_mask;
@@ -886,23 +890,26 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
 		vma->bo_offset = bo_offset_or_userptr;
 		vma->bo = xe_bo_get(bo);
 		list_add_tail(&vma->bo_link, &bo->vmas);
-	} else /* userptr */ {
-		u64 size = end - start + 1;
-		int err;
+	} else /* userptr or null */ {
+		if (!is_null) {
+			u64 size = end - start + 1;
+			int err;
 



-		vma->userptr.ptr = bo_offset_or_userptr;
+			vma->userptr.ptr = bo_offset_or_userptr;
 



-		err = mmu_interval_notifier_insert(&vma->userptr.notifier,
-						   current->mm,
-						   vma->userptr.ptr, size,
-						   &vma_userptr_notifier_ops);
-		if (err) {
-			kfree(vma);
-			vma = ERR_PTR(err);
-			return vma;
+			err = mmu_interval_notifier_insert(&vma->userptr.notifier,
+							   current->mm,
+							   vma->userptr.ptr, size,
+							   &vma_userptr_notifier_ops);
+			if (err) {
+				kfree(vma);
+				vma = ERR_PTR(err);
+				return vma;
+			}
+
+			vma->userptr.notifier_seq = LONG_MAX;
 		}
 



-		vma->userptr.notifier_seq = LONG_MAX;
 		xe_vm_get(vm);
 	}
 



@@ -942,6 +949,8 @@ static void xe_vma_destroy_late(struct xe_vma *vma)
 		 */
 		mmu_interval_notifier_remove(&vma->userptr.notifier);
 		xe_vm_put(vm);
+	} else if (xe_vma_is_null(vma)) {
+		xe_vm_put(vm);
 	} else {
 		xe_bo_put(vma->bo);
 	}
@@ -1024,7 +1033,7 @@ static void xe_vma_destroy(struct xe_vma *vma, struct dma_fence *fence)
 		list_del_init(&vma->userptr.invalidate_link);
 		spin_unlock(&vm->userptr.invalidated_lock);
 		list_del(&vma->userptr_link);
-	} else {
+	} else if (!xe_vma_is_null(vma)) {
 		xe_bo_assert_held(vma->bo);
 		list_del(&vma->bo_link);
 



@@ -1391,7 +1400,7 @@ void xe_vm_close_and_put(struct xe_vm *vm)
 	while (vm->vmas.rb_node) {
 		struct xe_vma *vma = to_xe_vma(vm->vmas.rb_node);
 



-		if (xe_vma_is_userptr(vma)) {
+		if (xe_vma_has_no_bo(vma)) {
 			down_read(&vm->userptr.notifier_lock);
 			vma->destroyed = true;
 			up_read(&vm->userptr.notifier_lock);
@@ -1400,7 +1409,7 @@ void xe_vm_close_and_put(struct xe_vm *vm)
 		rb_erase(&vma->vm_node, &vm->vmas);
 



 		/* easy case, remove from VMA? */
-		if (xe_vma_is_userptr(vma) || vma->bo->vm) {
+		if (xe_vma_has_no_bo(vma) || vma->bo->vm) {
 			xe_vma_destroy(vma, NULL);
 			continue;
 		}
@@ -2034,7 +2043,7 @@ static int xe_vm_prefetch(struct xe_vm *vm, struct xe_vma *vma,
 



 	XE_BUG_ON(region > ARRAY_SIZE(region_to_mem_type));
 



-	if (!xe_vma_is_userptr(vma)) {
+	if (!xe_vma_has_no_bo(vma)) {
 		err = xe_bo_migrate(vma->bo, region_to_mem_type[region]);
 		if (err)
 			return err;
@@ -2643,6 +2652,8 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
 					  lookup->start - 1,
 					  (first->pte_flags &
 					   XE_PTE_FLAG_READ_ONLY),
+					  (first->pte_flags &
+					   XE_PTE_FLAG_NULL),
 					  first->tile_mask);
 		if (first->bo)
 			xe_bo_unlock(first->bo, &ww);
@@ -2675,6 +2686,7 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
 					 last->end,
 					 (last->pte_flags &
 					  XE_PTE_FLAG_READ_ONLY),
+					 (last->pte_flags & XE_PTE_FLAG_NULL),
 					 last->tile_mask);
 		if (last->bo)
 			xe_bo_unlock(last->bo, &ww);
@@ -2742,7 +2754,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
 		      *next;
 	struct rb_node *node;
 



-	if (!xe_vma_is_userptr(vma)) {
+	if (!xe_vma_has_no_bo(vma)) {
 		if (!xe_bo_can_migrate(vma->bo, region_to_mem_type[region]))
 			return ERR_PTR(-EINVAL);
 	}
@@ -2751,7 +2763,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
 	while ((node = rb_next(node))) {
 		if (!xe_vma_cmp_vma_cb(lookup, node)) {
 			__vma = to_xe_vma(node);
-			if (!xe_vma_is_userptr(__vma)) {
+			if (!xe_vma_has_no_bo(__vma)) {
 				if (!xe_bo_can_migrate(__vma->bo, region_to_mem_type[region]))
 					goto flush_list;
 			}
@@ -2765,7 +2777,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
 	while ((node = rb_prev(node))) {
 		if (!xe_vma_cmp_vma_cb(lookup, node)) {
 			__vma = to_xe_vma(node);
-			if (!xe_vma_is_userptr(__vma)) {
+			if (!xe_vma_has_no_bo(__vma)) {
 				if (!xe_bo_can_migrate(__vma->bo, region_to_mem_type[region]))
 					goto flush_list;
 			}
@@ -2824,21 +2836,23 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
 



 	switch (VM_BIND_OP(op)) {
 	case XE_VM_BIND_OP_MAP:
-		XE_BUG_ON(!bo);
-
-		err = xe_bo_lock(bo, &ww, 0, true);
-		if (err)
-			return ERR_PTR(err);
+		if (bo) {
+			err = xe_bo_lock(bo, &ww, 0, true);
+			if (err)
+				return ERR_PTR(err);
+		}
 		vma = xe_vma_create(vm, bo, bo_offset_or_userptr, addr,
 				    addr + range - 1,
 				    op & XE_VM_BIND_FLAG_READONLY,
+				    op & XE_VM_BIND_FLAG_NULL,
 				    tile_mask);
-		xe_bo_unlock(bo, &ww);
+		if (bo)
+			xe_bo_unlock(bo, &ww);
 		if (!vma)
 			return ERR_PTR(-ENOMEM);
 



 		xe_vm_insert_vma(vm, vma);
-		if (!bo->vm) {
+		if (bo && !bo->vm) {
 			vm_insert_extobj(vm, vma);
 			err = add_preempt_fences(vm, bo);
 			if (err) {
@@ -2872,6 +2886,7 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
 		vma = xe_vma_create(vm, NULL, bo_offset_or_userptr, addr,
 				    addr + range - 1,
 				    op & XE_VM_BIND_FLAG_READONLY,
+				    op & XE_VM_BIND_FLAG_NULL,
 				    tile_mask);
 		if (!vma)
 			return ERR_PTR(-ENOMEM);
@@ -2897,11 +2912,12 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
 #ifdef TEST_VM_ASYNC_OPS_ERROR
 #define SUPPORTED_FLAGS	\
 	(FORCE_ASYNC_OP_ERROR | XE_VM_BIND_FLAG_ASYNC | \
-	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | 0xffff)
+	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | \
+	 XE_VM_BIND_FLAG_NULL | 0xffff)
 #else
 #define SUPPORTED_FLAGS	\
 	(XE_VM_BIND_FLAG_ASYNC | XE_VM_BIND_FLAG_READONLY | \
-	 XE_VM_BIND_FLAG_IMMEDIATE | 0xffff)
+	 XE_VM_BIND_FLAG_IMMEDIATE | XE_VM_BIND_FLAG_NULL | 0xffff)
 #endif
 #define XE_64K_PAGE_MASK 0xffffull
 



@@ -2949,6 +2965,7 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
 		u32 obj = (*bind_ops)[i].obj;
 		u64 obj_offset = (*bind_ops)[i].obj_offset;
 		u32 region = (*bind_ops)[i].region;
+		bool is_null = op &  XE_VM_BIND_FLAG_NULL;
 



 		if (XE_IOCTL_ERR(xe, (*bind_ops)[i].pad) ||
 		    XE_IOCTL_ERR(xe, (*bind_ops)[i].reserved[0] ||
@@ -2982,8 +2999,13 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
 		if (XE_IOCTL_ERR(xe, VM_BIND_OP(op) >
 				 XE_VM_BIND_OP_PREFETCH) ||
 		    XE_IOCTL_ERR(xe, op & ~SUPPORTED_FLAGS) ||
+		    XE_IOCTL_ERR(xe, obj && is_null) ||
+		    XE_IOCTL_ERR(xe, obj_offset && is_null) ||
+		    XE_IOCTL_ERR(xe, VM_BIND_OP(op) != XE_VM_BIND_OP_MAP &&
+				 is_null) ||
 		    XE_IOCTL_ERR(xe, !obj &&
-				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP) ||
+				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP &&
+				 !is_null) ||
 		    XE_IOCTL_ERR(xe, !obj &&
 				 VM_BIND_OP(op) == XE_VM_BIND_OP_UNMAP_ALL) ||
 		    XE_IOCTL_ERR(xe, addr &&
@@ -3389,6 +3411,7 @@ int xe_vm_invalidate_vma(struct xe_vma *vma)
 	int ret;
 



 	XE_BUG_ON(!xe_vm_in_fault_mode(vma->vm));
+	XE_WARN_ON(xe_vma_is_null(vma));
 	trace_xe_vma_usm_invalidate(vma);
 



 	/* Check that we don't race with page-table updates */
@@ -3451,8 +3474,11 @@ int xe_analyze_vm(struct drm_printer *p, struct xe_vm *vm, int gt_id)
 	for (node = rb_first(&vm->vmas); node; node = rb_next(node)) {
 		struct xe_vma *vma = to_xe_vma(node);
 		bool is_userptr = xe_vma_is_userptr(vma);
+		bool is_null = xe_vma_is_null(vma);
 



-		if (is_userptr) {
+		if (is_null) {
+			addr = 0;
+		} else if (is_userptr) {
 			struct xe_res_cursor cur;
 



 			xe_res_first_sg(vma->userptr.sg, 0, XE_PAGE_SIZE,
@@ -3463,7 +3489,8 @@ int xe_analyze_vm(struct drm_printer *p, struct xe_vm *vm, int gt_id)
 		}
 		drm_printf(p, " [%016llx-%016llx] S:0x%016llx A:%016llx %s\n",
 			   vma->start, vma->end, vma->end - vma->start + 1ull,
-			   addr, is_userptr ? "USR" : is_vram ? "VRAM" : "SYS");
+			   addr, is_null ? "NULL" : is_userptr ? "USR" :
+			   is_vram ? "VRAM" : "SYS");
 	}
 	up_read(&vm->lock);
 



diff --git a/drivers/gpu/drm/xe/xe_vm.h b/drivers/gpu/drm/xe/xe_vm.h
index 372f26153209..38731e200813 100644
--- a/drivers/gpu/drm/xe/xe_vm.h
+++ b/drivers/gpu/drm/xe/xe_vm.h
@@ -115,11 +115,21 @@ static inline void xe_vm_reactivate_rebind(struct xe_vm *vm)
 	}
 }
 



-static inline bool xe_vma_is_userptr(struct xe_vma *vma)
+static inline bool xe_vma_is_null(struct xe_vma *vma)
+{
+	return vma->pte_flags & XE_PTE_FLAG_NULL;
+}
+
+static inline bool xe_vma_has_no_bo(struct xe_vma *vma)
 {
 	return !vma->bo;
 }
 



+static inline bool xe_vma_is_userptr(struct xe_vma *vma)
+{
+	return xe_vma_has_no_bo(vma) && !xe_vma_is_null(vma);
+}
+
 int xe_vma_userptr_pin_pages(struct xe_vma *vma);
 



 int xe_vma_userptr_check_repin(struct xe_vma *vma);
diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
index 6daddd29d416..f775bafe4619 100644
--- a/drivers/gpu/drm/xe/xe_vm_types.h
+++ b/drivers/gpu/drm/xe/xe_vm_types.h
@@ -31,6 +31,7 @@ struct xe_vma {
 	u64 end;
 	/** @pte_flags: pte flags for this VMA */
 #define XE_PTE_FLAG_READ_ONLY		BIT(0)
+#define XE_PTE_FLAG_NULL		BIT(1)
 	u32 pte_flags;
 



 	/** @bo: BO if not a userptr, must be NULL is userptr */
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index 0ebc50beb5e5..39a1ce89732f 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -456,6 +456,14 @@ struct drm_xe_vm_bind_op {
 	 * than differing the MAP to the page fault handler.
 	 */
 #define XE_VM_BIND_FLAG_IMMEDIATE	(0x1 << 18)
+	/*
+	 * When the NULL flag is set, the page tables are setup with a special
+	 * bit which indicates writes are dropped and all reads return zero.  In
+	 * the future, the NULL flags will only be valid for XE_VM_BIND_OP_MAP
+	 * operations, the BO handle MBZ, and the BO offset MBZ. This flag is
+	 * intended to implement VK sparse bindings.
+	 */
+#define XE_VM_BIND_FLAG_NULL		(0x1 << 19)
 



 	/** @reserved: Reserved */
 	__u64 reserved[2];


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

* [Intel-xe] ✗ CI.Patch_applied: failure for NULL bindings aka sparse bindings (rev2)
  2023-06-08  5:03 [Intel-xe] [PATCH 0/3] NULL bindings aka sparse bindings Matthew Brost
                   ` (9 preceding siblings ...)
  2023-06-08  5:45 ` [Intel-xe] ○ CI.BAT: info " Patchwork
@ 2023-06-14 18:50 ` Patchwork
  2023-06-15  1:19 ` [Intel-xe] ✗ CI.Patch_applied: failure for NULL bindings aka sparse bindings (rev3) Patchwork
  11 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2023-06-14 18:50 UTC (permalink / raw)
  To: Zanoni, Paulo R; +Cc: intel-xe

== Series Details ==

Series: NULL bindings aka sparse bindings (rev2)
URL   : https://patchwork.freedesktop.org/series/119048/
State : failure

== Summary ==

=== Applying kernel patches on branch 'drm-xe-next' with base: ===
Base commit: 6deb23a61 drm/xe : Fix GT looping for standalone media
=== git am output follows ===
error: patch failed: drivers/gpu/drm/xe/xe_bo.h:65
error: drivers/gpu/drm/xe/xe_bo.h: patch does not apply
error: patch failed: drivers/gpu/drm/xe/xe_pt.c:102
error: drivers/gpu/drm/xe/xe_pt.c: patch does not apply
error: patch failed: drivers/gpu/drm/xe/xe_vm.c:61
error: drivers/gpu/drm/xe/xe_vm.c: patch does not apply
hint: Use 'git am --show-current-patch' to see the failed patch
Applying: drm/xe: s/XE_PTE_READ_ONLY/XE_PTE_FLAG_READ_ONLY
Patch failed at 0001 drm/xe: s/XE_PTE_READ_ONLY/XE_PTE_FLAG_READ_ONLY
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".



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

* Re: [Intel-xe] [PATCH 3/3] drm/xe: NULL binding implementation
  2023-06-14 18:48   ` Zanoni, Paulo R
@ 2023-06-14 20:24     ` Zanoni, Paulo R
  2023-06-15  0:44       ` Zanoni, Paulo R
  2023-06-15  3:43     ` Matthew Brost
  1 sibling, 1 reply; 30+ messages in thread
From: Zanoni, Paulo R @ 2023-06-14 20:24 UTC (permalink / raw)
  To: intel-xe, Brost,  Matthew

On Wed, 2023-06-14 at 18:48 +0000, Zanoni, Paulo R wrote:
> On Wed, 2023-06-07 at 22:03 -0700, Matthew Brost wrote:
> > Add uAPI and implementation for NULL bindings. A NULL binding is defined
> > as writes dropped and read zero. A single bit in the uAPI has been added
> > which results in a single bit in the PTEs being set.
> > 
> > NULL bindings are indended to be used to implement VK sparse bindings,
> > in particular residencyNonResidentStrict property.
> 
> I tried to test this on my Mesa Sparse branch, and I'm getting BUG()s.
> The interesting thing about this is that multiple BUG()s are competing
> to appear on dmesg at the same time. Perhaps there's some kind of race
> condition here? I'd happily try experimental patches for this.

One thing I forgot to mention is that I got this by running dEQP with
multiple instances in parallel. The problem happened very quickly soon
after I started running the tests.

So now I left dEQP running single-threaded and it took way longer for
the problem to happen, but it still did. After running more than 3500
tests, I have 10 of these BUG() messages on my dmesg. It may still be a
race condition (I'm not sure how much parallelism is done within the
tests), but it may not be.

> 
> [  582.816170] ------------[ cut here ]------------
> [  582.816170] ------------[ cut here ]------------
> [  582.816172] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  582.816173] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  582.816180] invalid opcode: 0000 [#1] PREEMPT SMP NOPTI
> [  582.816183] CPU: 0 PID: 18152 Comm: deqp-vk Tainted: G        W          6.3.0pz+ #90
> [  582.816185] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  582.816186] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  582.816245] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  582.816246] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  582.816248] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  582.816249] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  582.816250] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  582.816251] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  582.816252] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  582.816253] FS:  00007f9088034740(0000) GS:ffff8a4060400000(0000) knlGS:0000000000000000
> [  582.816254] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  582.816256] CR2: 000055c1f75fc1a4 CR3: 000000013c396002 CR4: 0000000000770ef0
> [  582.816257] PKRU: 55555554
> [  582.816258] Call Trace:
> [  582.816260]  <TASK>
> [  582.816262]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  582.816304]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  582.816345]  ? update_load_avg+0x7e/0x780
> [  582.816348]  ? __cgroup_account_cputime+0x4c/0x70
> [  582.816351]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  582.816391]  ? psi_group_change+0x152/0x3d0
> [  582.816394]  ? select_task_rq_fair+0x174/0x1720
> [  582.816396]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  582.816399]  ? lock_timer_base+0x61/0x80
> [  582.816401]  ? preempt_count_add+0x6a/0xa0
> [  582.816404]  ? _raw_spin_unlock+0x15/0x30
> [  582.816406]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  582.816434]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  582.816473]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  582.816514]  ? tomoyo_init_request_info+0x95/0xc0
> [  582.816516]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  582.816519]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  582.816540]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  582.816581]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  582.816606]  drm_ioctl+0x24c/0x490 [drm]
> [  582.816628]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  582.816669]  __x64_sys_ioctl+0x8d/0xd0
> [  582.816672]  do_syscall_64+0x37/0x90
> [  582.816674]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  582.816678] RIP: 0033:0x7f9087d1cafb
> [  582.816679] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  582.816681] RSP: 002b:00007ffd011743e0 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  582.816682] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f9087d1cafb
> [  582.816683] RDX: 00007ffd011744c0 RSI: 0000000040786445 RDI: 000000000000000e
> [  582.816684] RBP: 00007ffd01174470 R08: 0000000000000000 R09: 0000000000000078
> [  582.816685] R10: 00007ffd011721e3 R11: 0000000000000246 R12: 0000000000000000
> [  582.816686] R13: 00007ffd011763a8 R14: 0000000000000000 R15: 00007f908847c020
> [  582.816687]  </TASK>
> [  582.816687] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  582.816717]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  582.816749]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  582.816754] ---[ end trace 0000000000000000 ]---
> [  582.816755] invalid opcode: 0000 [#2] PREEMPT SMP NOPTI
> [  582.816757] CPU: 1 PID: 18149 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
> [  582.816759] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  582.816760] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  582.816809] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  582.816811] RSP: 0018:ffffa6170f327a40 EFLAGS: 00010202
> [  582.816812] RAX: ffff8a3cc48d5f40 RBX: ffff8a3dfe41d200 RCX: 0000000000000002
> [  582.816813] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3dfe6c9200
> [  582.816814] RBP: ffff8a3f0c6c6400 R08: ffff8a3dfe6c9260 R09: 0000000000000001
> [  582.816815] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  582.816816] R13: 0000000000020000 R14: ffff8a3dfe6c9200 R15: ffff8a3dfe6c9200
> [  582.816817] FS:  00007f0c7e81f740(0000) GS:ffff8a4060440000(0000) knlGS:0000000000000000
> [  582.816818] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  582.816819] CR2: 000055e47877c1a4 CR3: 000000013c2a2005 CR4: 0000000000770ee0
> [  582.816820] PKRU: 55555554
> [  582.816821] Call Trace:
> [  582.816822]  <TASK>
> [  582.816824]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  582.816865]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  582.816906]  ? update_load_avg+0x7e/0x780
> [  582.816908]  ? __cgroup_account_cputime+0x4c/0x70
> [  582.816910]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  582.816950]  ? psi_group_change+0x152/0x3d0
> [  582.816952]  ? select_task_rq_fair+0x174/0x1720
> [  582.816954]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  582.816957]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  582.816959]  ? preempt_count_add+0x6a/0xa0
> [  582.816961]  ? _raw_spin_unlock+0x15/0x30
> [  582.816963]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  582.816986]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  582.817027]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  582.817068]  ? tomoyo_init_request_info+0x95/0xc0
> [  582.817070]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  582.817072]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  582.817094]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  582.817135]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  582.817160]  drm_ioctl+0x24c/0x490 [drm]
> [  582.817183]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  582.817234]  __x64_sys_ioctl+0x8d/0xd0
> [  582.817237]  do_syscall_64+0x37/0x90
> [  582.817240]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  582.817243] RIP: 0033:0x7f0c7e43dafb
> [  582.817245] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  582.817246] RSP: 002b:00007ffcbf6e36e0 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  582.817248] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f0c7e43dafb
> [  582.817249] RDX: 00007ffcbf6e37c0 RSI: 0000000040786445 RDI: 000000000000000e
> [  582.817250] RBP: 00007ffcbf6e3770 R08: 0000000000000000 R09: 0000000000000078
> [  582.817251] R10: 00007ffcbf6e14e3 R11: 0000000000000246 R12: 0000000000000000
> [  582.817252] R13: 00007ffcbf6e56a8 R14: 0000000000000000 R15: 00007f0c7eb13020
> [  582.817253]  </TASK>
> [  582.817254] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  582.817288]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  582.817324]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  582.817341] ---[ end trace 0000000000000000 ]---
> [  583.825648] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  583.825739] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  583.825741] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  583.825744] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  583.825746] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  583.825748] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  583.825749] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  583.825750] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  583.825752] FS:  00007f9088034740(0000) GS:ffff8a4060400000(0000) knlGS:0000000000000000
> [  583.825754] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  583.825756] CR2: 000055c1f75fc1a4 CR3: 000000013c396002 CR4: 0000000000770ef0
> [  583.825757] PKRU: 55555554
> [  584.824359] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  584.824440] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  584.824442] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  584.824445] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  584.824446] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  584.824448] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  584.824449] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  584.824450] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  584.824451] FS:  00007f0c7e81f740(0000) GS:ffff8a4060440000(0000) knlGS:0000000000000000
> [  584.824453] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  584.824454] CR2: 000055e47877c1a4 CR3: 000000013c2a2005 CR4: 0000000000770ee0
> [  584.824456] PKRU: 55555554
> [  584.923394] ------------[ cut here ]------------
> [  584.923398] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  584.923413] invalid opcode: 0000 [#3] PREEMPT SMP NOPTI
> [  584.923416] CPU: 5 PID: 18148 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
> [  584.923418] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  584.923420] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  584.923492] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  584.923494] RSP: 0018:ffffa6170f3afa40 EFLAGS: 00010202
> [  584.923497] RAX: ffff8a3cc8455f40 RBX: ffff8a3dfe6ad200 RCX: 0000000000000002
> [  584.923499] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3dfe6af800
> [  584.923500] RBP: ffff8a3f0c74e000 R08: ffff8a3dfe6af860 R09: 0000000000000001
> [  584.923501] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  584.923502] R13: 0000000000020000 R14: ffff8a3dfe6af800 R15: ffff8a3dfe6af800
> [  584.923503] FS:  00007f6e7e01c740(0000) GS:ffff8a4060540000(0000) knlGS:0000000000000000
> [  584.923504] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  584.923505] CR2: 00005639e8e701a4 CR3: 000000018b27c003 CR4: 0000000000770ee0
> [  584.923507] PKRU: 55555554
> [  584.923508] Call Trace:
> [  584.923511]  <TASK>
> [  584.923513]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  584.923569]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  584.923610]  ? update_load_avg+0x7e/0x780
> [  584.923613]  ? __cgroup_account_cputime+0x4c/0x70
> [  584.923616]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  584.923655]  ? psi_group_change+0x152/0x3d0
> [  584.923658]  ? select_task_rq_fair+0x174/0x1720
> [  584.923660]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  584.923663]  ? lock_timer_base+0x61/0x80
> [  584.923665]  ? preempt_count_add+0x6a/0xa0
> [  584.923667]  ? _raw_spin_unlock+0x15/0x30
> [  584.923670]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  584.923697]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  584.923737]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  584.923776]  ? tomoyo_init_request_info+0x95/0xc0
> [  584.923780]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  584.923782]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  584.923803]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  584.923842]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  584.923870]  drm_ioctl+0x24c/0x490 [drm]
> [  584.923893]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  584.923938]  __x64_sys_ioctl+0x8d/0xd0
> [  584.923942]  do_syscall_64+0x37/0x90
> [  584.923944]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  584.923948] RIP: 0033:0x7f6e7dc3dafb
> [  584.923949] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  584.923951] RSP: 002b:00007ffcc1247030 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  584.923952] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f6e7dc3dafb
> [  584.923953] RDX: 00007ffcc1247110 RSI: 0000000040786445 RDI: 000000000000000e
> [  584.923954] RBP: 00007ffcc12470c0 R08: 0000000000000000 R09: 0000000000000078
> [  584.923955] R10: 00007ffcc1244e33 R11: 0000000000000246 R12: 0000000000000000
> [  584.923956] R13: 00007ffcc1248ff8 R14: 0000000000000000 R15: 00007f6e7e378020
> [  584.923957]  </TASK>
> [  584.923958] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  584.923991]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  584.924025]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  584.924031] ---[ end trace 0000000000000000 ]---
> [  586.008597] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  586.008679] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  586.008681] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  586.008684] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  586.008685] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  586.008687] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  586.008688] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  586.008689] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  586.008691] FS:  00007f6e7e01c740(0000) GS:ffff8a4060540000(0000) knlGS:0000000000000000
> [  586.008692] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  586.008694] CR2: 00005639e8e701a4 CR3: 000000018b27c003 CR4: 0000000000770ee0
> [  586.008695] PKRU: 55555554
> [  586.010521] ------------[ cut here ]------------
> [  586.010524] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  586.010531] invalid opcode: 0000 [#4] PREEMPT SMP NOPTI
> [  586.010534] CPU: 6 PID: 18150 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
> [  586.010537] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  586.010538] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  586.010616] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  586.010618] RSP: 0018:ffffa6170f3b7a40 EFLAGS: 00010202
> [  586.010621] RAX: ffff8a3d273b5f40 RBX: ffff8a3f0c45d000 RCX: 0000000000000002
> [  586.010622] RDX: 0000000000000013 RSI: ffff8a3cc1f14000 RDI: ffff8a3f0c483000
> [  586.010623] RBP: ffff8a3d20083800 R08: ffff8a3f0c483060 R09: 0000000000000001
> [  586.010625] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  586.010626] R13: 0000000000020000 R14: ffff8a3f0c483000 R15: ffff8a3f0c483000
> [  586.010627] FS:  00007ff676bb2740(0000) GS:ffff8a4060580000(0000) knlGS:0000000000000000
> [  586.010628] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  586.010630] CR2: 000056437f23d1a4 CR3: 00000002c5f46002 CR4: 0000000000770ee0
> [  586.010632] PKRU: 55555554
> [  586.010632] Call Trace:
> [  586.010635]  <TASK>
> [  586.010638]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  586.010702]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  586.010764]  ? update_load_avg+0x7e/0x780
> [  586.010768]  ? __cgroup_account_cputime+0x4c/0x70
> [  586.010772]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  586.010833]  ? psi_group_change+0x152/0x3d0
> [  586.010837]  ? select_task_rq_fair+0x174/0x1720
> [  586.010840]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  586.010844]  ? lock_timer_base+0x61/0x80
> [  586.010846]  ? preempt_count_add+0x6a/0xa0
> [  586.010849]  ? _raw_spin_unlock+0x15/0x30
> [  586.010852]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  586.010889]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  586.010955]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  586.011018]  ? tomoyo_init_request_info+0x95/0xc0
> [  586.011022]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  586.011024]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  586.011064]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  586.011124]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  586.011161]  drm_ioctl+0x24c/0x490 [drm]
> [  586.011193]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  586.011261]  __x64_sys_ioctl+0x8d/0xd0
> [  586.011265]  do_syscall_64+0x37/0x90
> [  586.011268]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  586.011272] RIP: 0033:0x7ff676d1cafb
> [  586.011275] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  586.011276] RSP: 002b:00007ffeacdccf10 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  586.011279] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007ff676d1cafb
> [  586.011280] RDX: 00007ffeacdccff0 RSI: 0000000040786445 RDI: 000000000000000e
> [  586.011281] RBP: 00007ffeacdccfa0 R08: 0000000000000000 R09: 0000000000000078
> [  586.011283] R10: 00007ffeacdcad13 R11: 0000000000000246 R12: 0000000000000000
> [  586.011284] R13: 00007ffeacdceed8 R14: 0000000000000000 R15: 00007ff6774af020
> [  586.011286]  </TASK>
> [  586.011287] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  586.011337]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  586.011390]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  586.011398] ---[ end trace 0000000000000000 ]---
> [  586.137384] ------------[ cut here ]------------
> [  586.137390] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  586.137397] invalid opcode: 0000 [#5] PREEMPT SMP NOPTI
> [  586.137401] CPU: 7 PID: 18153 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
> [  586.137404] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  586.137406] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  586.137488] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  586.137490] RSP: 0018:ffffa6170f3cfa40 EFLAGS: 00010202
> [  586.137493] RAX: ffff8a3d41f75f40 RBX: ffff8a3f0c24de00 RCX: 0000000000000002
> [  586.137495] RDX: 0000000000000013 RSI: ffff8a3cc1f14000 RDI: ffff8a3f0c24c000
> [  586.137496] RBP: ffff8a3cc6177c00 R08: ffff8a3f0c24c060 R09: 0000000000000001
> [  586.137498] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  586.137499] R13: 0000000000020000 R14: ffff8a3f0c24c000 R15: ffff8a3f0c24c000
> [  586.137501] FS:  00007fc966258740(0000) GS:ffff8a40605c0000(0000) knlGS:0000000000000000
> [  586.137503] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  586.137504] CR2: 00007fc963c90a9a CR3: 00000002c5ca6001 CR4: 0000000000770ee0
> [  586.137506] PKRU: 55555554
> [  586.137507] Call Trace:
> [  586.137510]  <TASK>
> [  586.137513]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  586.137576]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  586.137638]  ? update_load_avg+0x7e/0x780
> [  586.137642]  ? __cgroup_account_cputime+0x4c/0x70
> [  586.137646]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  586.137705]  ? psi_group_change+0x152/0x3d0
> [  586.137710]  ? select_task_rq_fair+0x174/0x1720
> [  586.137713]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  586.137717]  ? lock_timer_base+0x61/0x80
> [  586.137720]  ? preempt_count_add+0x6a/0xa0
> [  586.137723]  ? _raw_spin_unlock+0x15/0x30
> [  586.137726]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  586.137765]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  586.137826]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  586.137887]  ? tomoyo_init_request_info+0x95/0xc0
> [  586.137891]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  586.137894]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  586.137925]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  586.137985]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  586.138017]  drm_ioctl+0x24c/0x490 [drm]
> [  586.138047]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  586.138107]  __x64_sys_ioctl+0x8d/0xd0
> [  586.138112]  do_syscall_64+0x37/0x90
> [  586.138115]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  586.138119] RIP: 0033:0x7fc96643dafb
> [  586.138122] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  586.138124] RSP: 002b:00007ffc7383a720 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  586.138127] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fc96643dafb
> [  586.138128] RDX: 00007ffc7383a800 RSI: 0000000040786445 RDI: 000000000000000e
> [  586.138130] RBP: 00007ffc7383a7b0 R08: 0000000000000000 R09: 0000000000000078
> [  586.138131] R10: 00007ffc73838523 R11: 0000000000000246 R12: 0000000000000000
> [  586.138132] R13: 00007ffc7383c6e8 R14: 0000000000000000 R15: 00007fc966b56020
> [  586.138135]  </TASK>
> [  586.138136] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  586.138183]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  586.138236]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  586.138245] ---[ end trace 0000000000000000 ]---
> [  586.203830] ------------[ cut here ]------------
> [  586.203834] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  586.203841] invalid opcode: 0000 [#6] PREEMPT SMP NOPTI
> [  586.203844] CPU: 3 PID: 18151 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
> [  586.203846] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  586.203848] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  586.203920] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  586.203921] RSP: 0018:ffffa6170f3bfa40 EFLAGS: 00010202
> [  586.203924] RAX: ffff8a3cc6cedf40 RBX: ffff8a3e36f7be00 RCX: 0000000000000002
> [  586.203925] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3e36f7a400
> [  586.203926] RBP: ffff8a3eed3e9000 R08: ffff8a3e36f7a460 R09: 0000000000000001
> [  586.203927] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  586.203928] R13: 0000000000020000 R14: ffff8a3e36f7a400 R15: ffff8a3e36f7a400
> [  586.203929] FS:  00007ff5022c2740(0000) GS:ffff8a40604c0000(0000) knlGS:0000000000000000
> [  586.203930] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  586.203931] CR2: 00005637548a21a4 CR3: 0000000487fe8003 CR4: 0000000000770ee0
> [  586.203933] PKRU: 55555554
> [  586.203933] Call Trace:
> [  586.203936]  <TASK>
> [  586.203938]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  586.203985]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  586.204031]  ? update_load_avg+0x7e/0x780
> [  586.204035]  ? __cgroup_account_cputime+0x4c/0x70
> [  586.204038]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  586.204081]  ? psi_group_change+0x152/0x3d0
> [  586.204084]  ? select_task_rq_fair+0x174/0x1720
> [  586.204087]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  586.204090]  ? lock_timer_base+0x61/0x80
> [  586.204092]  ? preempt_count_add+0x6a/0xa0
> [  586.204095]  ? _raw_spin_unlock+0x15/0x30
> [  586.204098]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  586.204131]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  586.204176]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  586.204220]  ? tomoyo_init_request_info+0x95/0xc0
> [  586.204224]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  586.204226]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  586.204249]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  586.266200]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  586.266241]  drm_ioctl+0x24c/0x490 [drm]
> [  586.266273]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  586.266332]  __x64_sys_ioctl+0x8d/0xd0
> [  586.266336]  do_syscall_64+0x37/0x90
> [  586.266340]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  586.266345] RIP: 0033:0x7ff5024fcafb
> [  586.266348] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  586.266350] RSP: 002b:00007ffdca7cde00 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  586.266353] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007ff5024fcafb
> [  586.266354] RDX: 00007ffdca7cdee0 RSI: 0000000040786445 RDI: 000000000000000e
> [  586.266355] RBP: 00007ffdca7cde90 R08: 0000000000000000 R09: 0000000000000078
> [  586.266357] R10: 00007ffdca7cbc03 R11: 0000000000000246 R12: 0000000000000000
> [  586.266358] R13: 00007ffdca7cfdc8 R14: 0000000000000000 R15: 00007ff502bc0020
> [  586.266361]  </TASK>
> [  586.266362] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  586.266414]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  586.266469]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  586.266495] ---[ end trace 0000000000000000 ]---
> [  586.961460] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  586.961541] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  586.961542] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  586.961545] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  586.961546] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  586.961548] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  586.961549] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  586.961550] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  586.961551] FS:  00007ff676bb2740(0000) GS:ffff8a4060580000(0000) knlGS:0000000000000000
> [  586.961552] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  586.961553] CR2: 000056437f23d1a4 CR3: 00000002c5f46002 CR4: 0000000000770ee0
> [  586.961555] PKRU: 55555554
> [  587.916215] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  587.916313] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  587.916316] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  587.916318] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  587.916321] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  587.916322] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  587.916323] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  587.916325] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  587.916326] FS:  00007fc966258740(0000) GS:ffff8a40605c0000(0000) knlGS:0000000000000000
> [  587.916328] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  587.916330] CR2: 00007fc963c90a9a CR3: 00000002c5ca6001 CR4: 0000000000770ee0
> [  587.916331] PKRU: 55555554
> [  588.857849] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  588.857933] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  588.857935] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  588.857937] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  588.857938] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  588.857939] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  588.857940] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  588.857941] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  588.857942] FS:  00007ff5022c2740(0000) GS:ffff8a40604c0000(0000) knlGS:0000000000000000
> [  588.857943] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  588.857944] CR2: 00005637548a21a4 CR3: 0000000487fe8003 CR4: 0000000000770ee0
> [  588.857960] PKRU: 55555554
> [  702.893558] ------------[ cut here ]------------
> [  702.893562] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  702.893568] invalid opcode: 0000 [#7] PREEMPT SMP NOPTI
> [  702.893571] CPU: 1 PID: 18205 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
> [  702.893572] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  702.893573] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  702.893631] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  702.893632] RSP: 0018:ffffa6170f5d3a40 EFLAGS: 00010202
> [  702.893634] RAX: ffff8a3cdb7d3f80 RBX: ffff8a3e36fc2e00 RCX: 0000000000000002
> [  702.893635] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3e36fc0e00
> [  702.893636] RBP: ffff8a4047e6d800 R08: ffff8a3e36fc0e60 R09: 0000000000000001
> [  702.893637] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  702.893638] R13: 0000000000020000 R14: ffff8a3e36fc0e00 R15: ffff8a3e36fc0e00
> [  702.893639] FS:  00007f5c1292f740(0000) GS:ffff8a4060440000(0000) knlGS:0000000000000000
> [  702.893640] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  702.893641] CR2: 00007f5c0f107000 CR3: 000000015c374005 CR4: 0000000000770ee0
> [  702.893642] PKRU: 55555554
> [  702.893643] Call Trace:
> [  702.893645]  <TASK>
> [  702.893647]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  702.893689]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  702.893730]  ? update_load_avg+0x7e/0x780
> [  702.893733]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  702.893771]  ? ___slab_alloc+0x4d5/0x9a0
> [  702.893774]  ? xe_vm_bind_ioctl+0xf96/0x2430 [xe]
> [  702.893812]  ? xe_vm_bind_ioctl+0xf96/0x2430 [xe]
> [  702.893849]  ? preempt_count_add+0x6a/0xa0
> [  702.893852]  ? _raw_spin_unlock+0x15/0x30
> [  702.893855]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  702.893883]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  702.893922]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  702.893961]  ? tomoyo_init_request_info+0x95/0xc0
> [  702.893963]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  702.893965]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  702.893986]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  702.894024]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  702.894049]  drm_ioctl+0x24c/0x490 [drm]
> [  702.894070]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  702.894109]  __x64_sys_ioctl+0x8d/0xd0
> [  702.894112]  do_syscall_64+0x37/0x90
> [  702.894114]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  702.894118] RIP: 0033:0x7f5c12b1cafb
> [  702.894119] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  702.894121] RSP: 002b:00007ffe4ff4caf0 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  702.894122] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f5c12b1cafb
> [  702.894123] RDX: 00007ffe4ff4cbd0 RSI: 0000000040786445 RDI: 000000000000000e
> [  702.894124] RBP: 00007ffe4ff4cb80 R08: 0000000000000000 R09: 0000000000000078
> [  702.894125] R10: 00007ffe4ff4a8f3 R11: 0000000000000246 R12: 0000000000000000
> [  702.894125] R13: 00007ffe4ff4eab8 R14: 0000000000000000 R15: 00007f5c1322b020
> [  702.894127]  </TASK>
> [  702.894127] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  702.894157]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  702.894189]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  702.894194] ---[ end trace 0000000000000000 ]---
> [  703.331800] ------------[ cut here ]------------
> [  703.331804] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  703.331810] invalid opcode: 0000 [#8] PREEMPT SMP NOPTI
> [  703.331813] CPU: 7 PID: 18207 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
> [  703.331815] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  703.331816] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  703.331874] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  703.331876] RSP: 0018:ffffa6170f5e3a40 EFLAGS: 00010202
> [  703.331878] RAX: ffff8a3d20bd9fc0 RBX: ffff8a3e36f88400 RCX: 0000000000000002
> [  703.331879] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3ecd756200
> [  703.331880] RBP: ffff8a3eb86d6400 R08: ffff8a3ecd756260 R09: 0000000000000001
> [  703.331881] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  703.331881] R13: 0000000000020000 R14: ffff8a3ecd756200 R15: ffff8a3ecd756200
> [  703.331882] FS:  00007f924fc1d740(0000) GS:ffff8a40605c0000(0000) knlGS:0000000000000000
> [  703.331884] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  703.331885] CR2: 00007f9240000020 CR3: 00000002c5ee6001 CR4: 0000000000770ee0
> [  703.331886] PKRU: 55555554
> [  703.331887] Call Trace:
> [  703.331889]  <TASK>
> [  703.331891]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  703.331933]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  703.331974]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  703.332010]  ? _raw_spin_lock+0x13/0x40
> [  703.332014]  ? psi_group_change+0x152/0x3d0
> [  703.332018]  ? select_task_rq_fair+0x174/0x1720
> [  703.332021]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  703.332023]  ? preempt_count_add+0x6a/0xa0
> [  703.332025]  ? _raw_spin_unlock+0x15/0x30
> [  703.332028]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  703.332055]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  703.332095]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  703.332134]  ? tomoyo_init_request_info+0x95/0xc0
> [  703.332137]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  703.332139]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  703.332160]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  703.332198]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  703.332222]  drm_ioctl+0x24c/0x490 [drm]
> [  703.332244]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  703.332283]  __x64_sys_ioctl+0x8d/0xd0
> [  703.332286]  do_syscall_64+0x37/0x90
> [  703.332288]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  703.332291] RIP: 0033:0x7f924f83dafb
> [  703.332293] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  703.332294] RSP: 002b:00007ffce8a0d910 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  703.332295] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f924f83dafb
> [  703.332296] RDX: 00007ffce8a0d9f0 RSI: 0000000040786445 RDI: 000000000000000e
> [  703.332297] RBP: 00007ffce8a0d9a0 R08: 0000000000000000 R09: 0000000000000078
> [  703.332298] R10: 00007ffce8a0b713 R11: 0000000000000246 R12: 0000000000000000
> [  703.332299] R13: 00007ffce8a0f8d8 R14: 0000000000000000 R15: 00007f924ff11020
> [  703.332300]  </TASK>
> [  703.332301] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  703.332330]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  703.332362]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  703.332367] ---[ end trace 0000000000000000 ]---
> [  703.934202] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  703.934284] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  703.934287] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  703.934290] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  703.934292] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  703.934293] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  703.934295] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  703.934296] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  703.934298] FS:  00007f5c1292f740(0000) GS:ffff8a4060440000(0000) knlGS:0000000000000000
> [  703.934300] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  703.934301] CR2: 00007f5c0f107000 CR3: 000000015c374005 CR4: 0000000000770ee0
> [  703.934314] PKRU: 55555554
> [  704.939954] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  704.940023] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  704.940025] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  704.940027] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  704.940028] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  704.940029] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  704.940030] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  704.940030] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  704.940031] FS:  00007f924fc1d740(0000) GS:ffff8a40605c0000(0000) knlGS:0000000000000000
> [  704.940032] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  704.940033] CR2: 00007f9240000020 CR3: 00000002c5ee6001 CR4: 0000000000770ee0
> [  704.940035] PKRU: 55555554
> [  705.036071] ------------[ cut here ]------------
> 
> 
> 
> Suggested-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
> Signed-off-by: Matthew Brost <matthew.brost@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_bo.h           |  1 +
>  drivers/gpu/drm/xe/xe_exec.c         |  2 +
>  drivers/gpu/drm/xe/xe_gt_pagefault.c |  4 +-
>  drivers/gpu/drm/xe/xe_pt.c           | 71 +++++++++++++++------
>  drivers/gpu/drm/xe/xe_vm.c           | 95 ++++++++++++++++++----------
>  drivers/gpu/drm/xe/xe_vm.h           | 12 +++-
>  drivers/gpu/drm/xe/xe_vm_types.h     |  1 +
>  include/uapi/drm/xe_drm.h            |  8 +++
>  8 files changed, 138 insertions(+), 56 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
> index dd3d448fee0b..3a148cc6e811 100644
> --- a/drivers/gpu/drm/xe/xe_bo.h
> +++ b/drivers/gpu/drm/xe/xe_bo.h
> @@ -61,6 +61,7 @@
>  #define XE_PPGTT_PTE_LM			BIT_ULL(11)
>  #define XE_PDE_64K			BIT_ULL(6)
>  #define XE_PTE_PS64			BIT_ULL(8)
> +#define XE_PTE_NULL			BIT_ULL(9)
>  
> 
> 
> 
>  #define XE_PAGE_PRESENT			BIT_ULL(0)
>  #define XE_PAGE_RW			BIT_ULL(1)
> diff --git a/drivers/gpu/drm/xe/xe_exec.c b/drivers/gpu/drm/xe/xe_exec.c
> index e44076ee2e11..4f7694a29348 100644
> --- a/drivers/gpu/drm/xe/xe_exec.c
> +++ b/drivers/gpu/drm/xe/xe_exec.c
> @@ -120,6 +120,8 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
>  	 * to a location where the GPU can access it).
>  	 */
>  	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
> +		XE_WARN_ON(xe_vma_is_null(vma));
> +
>  		if (xe_vma_is_userptr(vma))
>  			continue;
>  
> 
> 
> 
> diff --git a/drivers/gpu/drm/xe/xe_gt_pagefault.c b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> index 73db7f7c0381..6faebd02f3fb 100644
> --- a/drivers/gpu/drm/xe/xe_gt_pagefault.c
> +++ b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> @@ -533,8 +533,8 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
>  
> 
> 
> 
>  	trace_xe_vma_acc(vma);
>  
> 
> 
> 
> -	/* Userptr can't be migrated, nothing to do */
> -	if (xe_vma_is_userptr(vma))
> +	/* Userptr or null can't be migrated, nothing to do */
> +	if (xe_vma_has_no_bo(vma))
>  		goto unlock_vm;
>  
> 
> 
> 
>  	/* Lock VM and BOs dma-resv */
> diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
> index 39ec94549439..265ee45bee5c 100644
> --- a/drivers/gpu/drm/xe/xe_pt.c
> +++ b/drivers/gpu/drm/xe/xe_pt.c
> @@ -81,7 +81,9 @@ u64 gen8_pde_encode(struct xe_bo *bo, u64 bo_offset,
>  static dma_addr_t vma_addr(struct xe_vma *vma, u64 offset,
>  			   size_t page_size, bool *is_vram)
>  {
> -	if (xe_vma_is_userptr(vma)) {
> +	if (xe_vma_is_null(vma)) {
> +		return 0;
> +	} else if (xe_vma_is_userptr(vma)) {
>  		struct xe_res_cursor cur;
>  		u64 page;
>  
> 
> 
> 
> @@ -559,6 +561,10 @@ static bool xe_pt_hugepte_possible(u64 addr, u64 next, unsigned int level,
>  	if (next - xe_walk->va_curs_start > xe_walk->curs->size)
>  		return false;
>  
> 
> 
> 
> +	/* null VMA's do not have dma adresses */
> +	if (xe_walk->pte_flags & XE_PTE_FLAG_NULL)
> +		return true;
> +
>  	/* Is the DMA address huge PTE size aligned? */
>  	size = next - addr;
>  	dma = addr - xe_walk->va_curs_start + xe_res_dma(xe_walk->curs);
> @@ -575,6 +581,10 @@ xe_pt_scan_64K(u64 addr, u64 next, struct xe_pt_stage_bind_walk *xe_walk)
>  {
>  	struct xe_res_cursor curs = *xe_walk->curs;
>  
> 
> 
> 
> +	/* null VMA's do not have dma adresses */
> +	if (xe_walk->pte_flags & XE_PTE_FLAG_NULL)
> +		return true;
> +
>  	if (!IS_ALIGNED(addr, SZ_64K))
>  		return false;
>  
> 
> 
> 
> @@ -631,12 +641,29 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
>  	/* Is this a leaf entry ?*/
>  	if (level == 0 || xe_pt_hugepte_possible(addr, next, level, xe_walk)) {
>  		struct xe_res_cursor *curs = xe_walk->curs;
> +		u64 pte = 0;
> +		bool is_null = xe_walk->pte_flags & XE_PTE_FLAG_NULL;
>  
> 
> 
> 
>  		XE_WARN_ON(xe_walk->va_curs_start != addr);
>  
> 
> 
> 
> -		pte = __gen8_pte_encode(xe_res_dma(curs) + xe_walk->dma_offset,
> -					xe_walk->cache, xe_walk->pte_flags,
> -					level);
> +		if (is_null) {
> +			pte |= XE_PAGE_PRESENT | XE_PAGE_RW;
> +			if (xe_walk->pte_flags & XE_PTE_FLAG_READ_ONLY)
> +				pte &= ~XE_PAGE_RW;
> +
> +			if (level == 1)
> +				pte |= XE_PDE_PS_2M;
> +			else if (level == 2)
> +				pte |= XE_PDPE_PS_1G;
> +
> +			pte |= XE_PTE_NULL;
> +		} else {
> +			pte = __gen8_pte_encode(xe_res_dma(curs) +
> +						xe_walk->dma_offset,
> +						xe_walk->cache,
> +						xe_walk->pte_flags,
> +						level);
> +		}
>  		pte |= xe_walk->default_pte;
>  
> 
> 
> 
>  		/*
> @@ -654,7 +681,8 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
>  		if (unlikely(ret))
>  			return ret;
>  
> 
> 
> 
> -		xe_res_next(curs, next - addr);
> +		if (!is_null)
> +			xe_res_next(curs, next - addr);
>  		xe_walk->va_curs_start = next;
>  		*action = ACTION_CONTINUE;
>  
> 
> 
> 
> @@ -761,24 +789,29 @@ xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
>  		xe_walk.dma_offset = vram_region_gpu_offset(bo->ttm.resource);
>  		xe_walk.cache = XE_CACHE_WB;
>  	} else {
> -		if (!xe_vma_is_userptr(vma) && bo->flags & XE_BO_SCANOUT_BIT)
> +		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_is_userptr(vma) && xe_bo_is_stolen(bo))
> +	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));
>  
> 
> 
> 
>  	xe_bo_assert_held(bo);
> -	if (xe_vma_is_userptr(vma))
> -		xe_res_first_sg(vma->userptr.sg, 0, vma->end - vma->start + 1,
> -				&curs);
> -	else if (xe_bo_is_vram(bo) || xe_bo_is_stolen(bo))
> -		xe_res_first(bo->ttm.resource, vma->bo_offset,
> -			     vma->end - vma->start + 1, &curs);
> -	else
> -		xe_res_first_sg(xe_bo_get_sg(bo), vma->bo_offset,
> -				vma->end - vma->start + 1, &curs);
> +
> +	if (!xe_vma_is_null(vma)) {
> +		if (xe_vma_is_userptr(vma))
> +			xe_res_first_sg(vma->userptr.sg, 0,
> +					vma->end - vma->start + 1, &curs);
> +		else if (xe_bo_is_vram(bo) || xe_bo_is_stolen(bo))
> +			xe_res_first(bo->ttm.resource, vma->bo_offset,
> +				     vma->end - vma->start + 1, &curs);
> +		else
> +			xe_res_first_sg(xe_bo_get_sg(bo), vma->bo_offset,
> +					vma->end - vma->start + 1, &curs);
> +	} else {
> +		curs.size = vma->end - vma->start + 1;
> +	}
>  
> 
> 
> 
>  	ret = xe_pt_walk_range(&pt->base, pt->level, vma->start, vma->end + 1,
>  				&xe_walk.base);
> @@ -967,7 +1000,7 @@ static void xe_pt_commit_locks_assert(struct xe_vma *vma)
>  
> 
> 
> 
>  	if (xe_vma_is_userptr(vma))
>  		lockdep_assert_held_read(&vm->userptr.notifier_lock);
> -	else
> +	else if (!xe_vma_is_null(vma))
>  		dma_resv_assert_held(vma->bo->ttm.base.resv);
>  
> 
> 
> 
>  	dma_resv_assert_held(&vm->resv);
> @@ -1330,7 +1363,7 @@ __xe_pt_bind_vma(struct xe_tile *tile, struct xe_vma *vma, struct xe_engine *e,
>  				   DMA_RESV_USAGE_KERNEL :
>  				   DMA_RESV_USAGE_BOOKKEEP);
>  
> 
> 
> 
> -		if (!xe_vma_is_userptr(vma) && !vma->bo->vm)
> +		if (!xe_vma_has_no_bo(vma) && !vma->bo->vm)
>  			dma_resv_add_fence(vma->bo->ttm.base.resv, fence,
>  					   DMA_RESV_USAGE_BOOKKEEP);
>  		xe_pt_commit_bind(vma, entries, num_entries, rebind,
> @@ -1647,7 +1680,7 @@ __xe_pt_unbind_vma(struct xe_tile *tile, struct xe_vma *vma, struct xe_engine *e
>  				   DMA_RESV_USAGE_BOOKKEEP);
>  
> 
> 
> 
>  		/* This fence will be installed by caller when doing eviction */
> -		if (!xe_vma_is_userptr(vma) && !vma->bo->vm)
> +		if (!xe_vma_has_no_bo(vma) && !vma->bo->vm)
>  			dma_resv_add_fence(vma->bo->ttm.base.resv, fence,
>  					   DMA_RESV_USAGE_BOOKKEEP);
>  		xe_pt_commit_unbind(vma, entries, num_entries,
> diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> index 94fc9c330235..f7629db275f9 100644
> --- a/drivers/gpu/drm/xe/xe_vm.c
> +++ b/drivers/gpu/drm/xe/xe_vm.c
> @@ -590,7 +590,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
>  		goto out_unlock;
>  
> 
> 
> 
>  	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
> -		if (xe_vma_is_userptr(vma) || vma->destroyed)
> +		if (xe_vma_has_no_bo(vma) || vma->destroyed)
>  			continue;
>  
> 
> 
> 
>  		err = xe_bo_validate(vma->bo, vm, false);
> @@ -843,6 +843,7 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
>  				    u64 bo_offset_or_userptr,
>  				    u64 start, u64 end,
>  				    bool read_only,
> +				    bool is_null,
>  				    u64 tile_mask)
>  {
>  	struct xe_vma *vma;
> @@ -868,8 +869,11 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
>  	vma->vm = vm;
>  	vma->start = start;
>  	vma->end = end;
> +	vma->pte_flags = 0;
>  	if (read_only)
> -		vma->pte_flags = XE_PTE_FLAG_READ_ONLY;
> +		vma->pte_flags |= XE_PTE_FLAG_READ_ONLY;
> +	if (is_null)
> +		vma->pte_flags |= XE_PTE_FLAG_NULL;
>  
> 
> 
> 
>  	if (tile_mask) {
>  		vma->tile_mask = tile_mask;
> @@ -886,23 +890,26 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
>  		vma->bo_offset = bo_offset_or_userptr;
>  		vma->bo = xe_bo_get(bo);
>  		list_add_tail(&vma->bo_link, &bo->vmas);
> -	} else /* userptr */ {
> -		u64 size = end - start + 1;
> -		int err;
> +	} else /* userptr or null */ {
> +		if (!is_null) {
> +			u64 size = end - start + 1;
> +			int err;
>  
> 
> 
> 
> -		vma->userptr.ptr = bo_offset_or_userptr;
> +			vma->userptr.ptr = bo_offset_or_userptr;
>  
> 
> 
> 
> -		err = mmu_interval_notifier_insert(&vma->userptr.notifier,
> -						   current->mm,
> -						   vma->userptr.ptr, size,
> -						   &vma_userptr_notifier_ops);
> -		if (err) {
> -			kfree(vma);
> -			vma = ERR_PTR(err);
> -			return vma;
> +			err = mmu_interval_notifier_insert(&vma->userptr.notifier,
> +							   current->mm,
> +							   vma->userptr.ptr, size,
> +							   &vma_userptr_notifier_ops);
> +			if (err) {
> +				kfree(vma);
> +				vma = ERR_PTR(err);
> +				return vma;
> +			}
> +
> +			vma->userptr.notifier_seq = LONG_MAX;
>  		}
>  
> 
> 
> 
> -		vma->userptr.notifier_seq = LONG_MAX;
>  		xe_vm_get(vm);
>  	}
>  
> 
> 
> 
> @@ -942,6 +949,8 @@ static void xe_vma_destroy_late(struct xe_vma *vma)
>  		 */
>  		mmu_interval_notifier_remove(&vma->userptr.notifier);
>  		xe_vm_put(vm);
> +	} else if (xe_vma_is_null(vma)) {
> +		xe_vm_put(vm);
>  	} else {
>  		xe_bo_put(vma->bo);
>  	}
> @@ -1024,7 +1033,7 @@ static void xe_vma_destroy(struct xe_vma *vma, struct dma_fence *fence)
>  		list_del_init(&vma->userptr.invalidate_link);
>  		spin_unlock(&vm->userptr.invalidated_lock);
>  		list_del(&vma->userptr_link);
> -	} else {
> +	} else if (!xe_vma_is_null(vma)) {
>  		xe_bo_assert_held(vma->bo);
>  		list_del(&vma->bo_link);
>  
> 
> 
> 
> @@ -1391,7 +1400,7 @@ void xe_vm_close_and_put(struct xe_vm *vm)
>  	while (vm->vmas.rb_node) {
>  		struct xe_vma *vma = to_xe_vma(vm->vmas.rb_node);
>  
> 
> 
> 
> -		if (xe_vma_is_userptr(vma)) {
> +		if (xe_vma_has_no_bo(vma)) {
>  			down_read(&vm->userptr.notifier_lock);
>  			vma->destroyed = true;
>  			up_read(&vm->userptr.notifier_lock);
> @@ -1400,7 +1409,7 @@ void xe_vm_close_and_put(struct xe_vm *vm)
>  		rb_erase(&vma->vm_node, &vm->vmas);
>  
> 
> 
> 
>  		/* easy case, remove from VMA? */
> -		if (xe_vma_is_userptr(vma) || vma->bo->vm) {
> +		if (xe_vma_has_no_bo(vma) || vma->bo->vm) {
>  			xe_vma_destroy(vma, NULL);
>  			continue;
>  		}
> @@ -2034,7 +2043,7 @@ static int xe_vm_prefetch(struct xe_vm *vm, struct xe_vma *vma,
>  
> 
> 
> 
>  	XE_BUG_ON(region > ARRAY_SIZE(region_to_mem_type));
>  
> 
> 
> 
> -	if (!xe_vma_is_userptr(vma)) {
> +	if (!xe_vma_has_no_bo(vma)) {
>  		err = xe_bo_migrate(vma->bo, region_to_mem_type[region]);
>  		if (err)
>  			return err;
> @@ -2643,6 +2652,8 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
>  					  lookup->start - 1,
>  					  (first->pte_flags &
>  					   XE_PTE_FLAG_READ_ONLY),
> +					  (first->pte_flags &
> +					   XE_PTE_FLAG_NULL),
>  					  first->tile_mask);
>  		if (first->bo)
>  			xe_bo_unlock(first->bo, &ww);
> @@ -2675,6 +2686,7 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
>  					 last->end,
>  					 (last->pte_flags &
>  					  XE_PTE_FLAG_READ_ONLY),
> +					 (last->pte_flags & XE_PTE_FLAG_NULL),
>  					 last->tile_mask);
>  		if (last->bo)
>  			xe_bo_unlock(last->bo, &ww);
> @@ -2742,7 +2754,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
>  		      *next;
>  	struct rb_node *node;
>  
> 
> 
> 
> -	if (!xe_vma_is_userptr(vma)) {
> +	if (!xe_vma_has_no_bo(vma)) {
>  		if (!xe_bo_can_migrate(vma->bo, region_to_mem_type[region]))
>  			return ERR_PTR(-EINVAL);
>  	}
> @@ -2751,7 +2763,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
>  	while ((node = rb_next(node))) {
>  		if (!xe_vma_cmp_vma_cb(lookup, node)) {
>  			__vma = to_xe_vma(node);
> -			if (!xe_vma_is_userptr(__vma)) {
> +			if (!xe_vma_has_no_bo(__vma)) {
>  				if (!xe_bo_can_migrate(__vma->bo, region_to_mem_type[region]))
>  					goto flush_list;
>  			}
> @@ -2765,7 +2777,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
>  	while ((node = rb_prev(node))) {
>  		if (!xe_vma_cmp_vma_cb(lookup, node)) {
>  			__vma = to_xe_vma(node);
> -			if (!xe_vma_is_userptr(__vma)) {
> +			if (!xe_vma_has_no_bo(__vma)) {
>  				if (!xe_bo_can_migrate(__vma->bo, region_to_mem_type[region]))
>  					goto flush_list;
>  			}
> @@ -2824,21 +2836,23 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
>  
> 
> 
> 
>  	switch (VM_BIND_OP(op)) {
>  	case XE_VM_BIND_OP_MAP:
> -		XE_BUG_ON(!bo);
> -
> -		err = xe_bo_lock(bo, &ww, 0, true);
> -		if (err)
> -			return ERR_PTR(err);
> +		if (bo) {
> +			err = xe_bo_lock(bo, &ww, 0, true);
> +			if (err)
> +				return ERR_PTR(err);
> +		}
>  		vma = xe_vma_create(vm, bo, bo_offset_or_userptr, addr,
>  				    addr + range - 1,
>  				    op & XE_VM_BIND_FLAG_READONLY,
> +				    op & XE_VM_BIND_FLAG_NULL,
>  				    tile_mask);
> -		xe_bo_unlock(bo, &ww);
> +		if (bo)
> +			xe_bo_unlock(bo, &ww);
>  		if (!vma)
>  			return ERR_PTR(-ENOMEM);
>  
> 
> 
> 
>  		xe_vm_insert_vma(vm, vma);
> -		if (!bo->vm) {
> +		if (bo && !bo->vm) {
>  			vm_insert_extobj(vm, vma);
>  			err = add_preempt_fences(vm, bo);
>  			if (err) {
> @@ -2872,6 +2886,7 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
>  		vma = xe_vma_create(vm, NULL, bo_offset_or_userptr, addr,
>  				    addr + range - 1,
>  				    op & XE_VM_BIND_FLAG_READONLY,
> +				    op & XE_VM_BIND_FLAG_NULL,
>  				    tile_mask);
>  		if (!vma)
>  			return ERR_PTR(-ENOMEM);
> @@ -2897,11 +2912,12 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
>  #ifdef TEST_VM_ASYNC_OPS_ERROR
>  #define SUPPORTED_FLAGS	\
>  	(FORCE_ASYNC_OP_ERROR | XE_VM_BIND_FLAG_ASYNC | \
> -	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | 0xffff)
> +	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | \
> +	 XE_VM_BIND_FLAG_NULL | 0xffff)
>  #else
>  #define SUPPORTED_FLAGS	\
>  	(XE_VM_BIND_FLAG_ASYNC | XE_VM_BIND_FLAG_READONLY | \
> -	 XE_VM_BIND_FLAG_IMMEDIATE | 0xffff)
> +	 XE_VM_BIND_FLAG_IMMEDIATE | XE_VM_BIND_FLAG_NULL | 0xffff)
>  #endif
>  #define XE_64K_PAGE_MASK 0xffffull
>  
> 
> 
> 
> @@ -2949,6 +2965,7 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
>  		u32 obj = (*bind_ops)[i].obj;
>  		u64 obj_offset = (*bind_ops)[i].obj_offset;
>  		u32 region = (*bind_ops)[i].region;
> +		bool is_null = op &  XE_VM_BIND_FLAG_NULL;
>  
> 
> 
> 
>  		if (XE_IOCTL_ERR(xe, (*bind_ops)[i].pad) ||
>  		    XE_IOCTL_ERR(xe, (*bind_ops)[i].reserved[0] ||
> @@ -2982,8 +2999,13 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
>  		if (XE_IOCTL_ERR(xe, VM_BIND_OP(op) >
>  				 XE_VM_BIND_OP_PREFETCH) ||
>  		    XE_IOCTL_ERR(xe, op & ~SUPPORTED_FLAGS) ||
> +		    XE_IOCTL_ERR(xe, obj && is_null) ||
> +		    XE_IOCTL_ERR(xe, obj_offset && is_null) ||
> +		    XE_IOCTL_ERR(xe, VM_BIND_OP(op) != XE_VM_BIND_OP_MAP &&
> +				 is_null) ||
>  		    XE_IOCTL_ERR(xe, !obj &&
> -				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP) ||
> +				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP &&
> +				 !is_null) ||
>  		    XE_IOCTL_ERR(xe, !obj &&
>  				 VM_BIND_OP(op) == XE_VM_BIND_OP_UNMAP_ALL) ||
>  		    XE_IOCTL_ERR(xe, addr &&
> @@ -3389,6 +3411,7 @@ int xe_vm_invalidate_vma(struct xe_vma *vma)
>  	int ret;
>  
> 
> 
> 
>  	XE_BUG_ON(!xe_vm_in_fault_mode(vma->vm));
> +	XE_WARN_ON(xe_vma_is_null(vma));
>  	trace_xe_vma_usm_invalidate(vma);
>  
> 
> 
> 
>  	/* Check that we don't race with page-table updates */
> @@ -3451,8 +3474,11 @@ int xe_analyze_vm(struct drm_printer *p, struct xe_vm *vm, int gt_id)
>  	for (node = rb_first(&vm->vmas); node; node = rb_next(node)) {
>  		struct xe_vma *vma = to_xe_vma(node);
>  		bool is_userptr = xe_vma_is_userptr(vma);
> +		bool is_null = xe_vma_is_null(vma);
>  
> 
> 
> 
> -		if (is_userptr) {
> +		if (is_null) {
> +			addr = 0;
> +		} else if (is_userptr) {
>  			struct xe_res_cursor cur;
>  
> 
> 
> 
>  			xe_res_first_sg(vma->userptr.sg, 0, XE_PAGE_SIZE,
> @@ -3463,7 +3489,8 @@ int xe_analyze_vm(struct drm_printer *p, struct xe_vm *vm, int gt_id)
>  		}
>  		drm_printf(p, " [%016llx-%016llx] S:0x%016llx A:%016llx %s\n",
>  			   vma->start, vma->end, vma->end - vma->start + 1ull,
> -			   addr, is_userptr ? "USR" : is_vram ? "VRAM" : "SYS");
> +			   addr, is_null ? "NULL" : is_userptr ? "USR" :
> +			   is_vram ? "VRAM" : "SYS");
>  	}
>  	up_read(&vm->lock);
>  
> 
> 
> 
> diff --git a/drivers/gpu/drm/xe/xe_vm.h b/drivers/gpu/drm/xe/xe_vm.h
> index 372f26153209..38731e200813 100644
> --- a/drivers/gpu/drm/xe/xe_vm.h
> +++ b/drivers/gpu/drm/xe/xe_vm.h
> @@ -115,11 +115,21 @@ static inline void xe_vm_reactivate_rebind(struct xe_vm *vm)
>  	}
>  }
>  
> 
> 
> 
> -static inline bool xe_vma_is_userptr(struct xe_vma *vma)
> +static inline bool xe_vma_is_null(struct xe_vma *vma)
> +{
> +	return vma->pte_flags & XE_PTE_FLAG_NULL;
> +}
> +
> +static inline bool xe_vma_has_no_bo(struct xe_vma *vma)
>  {
>  	return !vma->bo;
>  }
>  
> 
> 
> 
> +static inline bool xe_vma_is_userptr(struct xe_vma *vma)
> +{
> +	return xe_vma_has_no_bo(vma) && !xe_vma_is_null(vma);
> +}
> +
>  int xe_vma_userptr_pin_pages(struct xe_vma *vma);
>  
> 
> 
> 
>  int xe_vma_userptr_check_repin(struct xe_vma *vma);
> diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
> index 6daddd29d416..f775bafe4619 100644
> --- a/drivers/gpu/drm/xe/xe_vm_types.h
> +++ b/drivers/gpu/drm/xe/xe_vm_types.h
> @@ -31,6 +31,7 @@ struct xe_vma {
>  	u64 end;
>  	/** @pte_flags: pte flags for this VMA */
>  #define XE_PTE_FLAG_READ_ONLY		BIT(0)
> +#define XE_PTE_FLAG_NULL		BIT(1)
>  	u32 pte_flags;
>  
> 
> 
> 
>  	/** @bo: BO if not a userptr, must be NULL is userptr */
> diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> index 0ebc50beb5e5..39a1ce89732f 100644
> --- a/include/uapi/drm/xe_drm.h
> +++ b/include/uapi/drm/xe_drm.h
> @@ -456,6 +456,14 @@ struct drm_xe_vm_bind_op {
>  	 * than differing the MAP to the page fault handler.
>  	 */
>  #define XE_VM_BIND_FLAG_IMMEDIATE	(0x1 << 18)
> +	/*
> +	 * When the NULL flag is set, the page tables are setup with a special
> +	 * bit which indicates writes are dropped and all reads return zero.  In
> +	 * the future, the NULL flags will only be valid for XE_VM_BIND_OP_MAP
> +	 * operations, the BO handle MBZ, and the BO offset MBZ. This flag is
> +	 * intended to implement VK sparse bindings.
> +	 */
> +#define XE_VM_BIND_FLAG_NULL		(0x1 << 19)
>  
> 
> 
> 
>  	/** @reserved: Reserved */
>  	__u64 reserved[2];
> 


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

* Re: [Intel-xe] [PATCH 3/3] drm/xe: NULL binding implementation
  2023-06-14 20:24     ` Zanoni, Paulo R
@ 2023-06-15  0:44       ` Zanoni, Paulo R
  0 siblings, 0 replies; 30+ messages in thread
From: Zanoni, Paulo R @ 2023-06-15  0:44 UTC (permalink / raw)
  To: intel-xe, Brost,  Matthew

On Wed, 2023-06-14 at 20:24 +0000, Zanoni, Paulo R wrote:
> On Wed, 2023-06-14 at 18:48 +0000, Zanoni, Paulo R wrote:
> > On Wed, 2023-06-07 at 22:03 -0700, Matthew Brost wrote:
> > > Add uAPI and implementation for NULL bindings. A NULL binding is defined
> > > as writes dropped and read zero. A single bit in the uAPI has been added
> > > which results in a single bit in the PTEs being set.
> > > 
> > > NULL bindings are indended to be used to implement VK sparse bindings,
> > > in particular residencyNonResidentStrict property.
> > 
> > I tried to test this on my Mesa Sparse branch, and I'm getting BUG()s.
> > The interesting thing about this is that multiple BUG()s are competing
> > to appear on dmesg at the same time. Perhaps there's some kind of race
> > condition here? I'd happily try experimental patches for this.
> 
> One thing I forgot to mention is that I got this by running dEQP with
> multiple instances in parallel. The problem happened very quickly soon
> after I started running the tests.
> 
> So now I left dEQP running single-threaded and it took way longer for
> the problem to happen, but it still did. After running more than 3500
> tests, I have 10 of these BUG() messages on my dmesg. It may still be a
> race condition (I'm not sure how much parallelism is done within the
> tests), but it may not be.

I kept debugging. Here's what I came up with:

diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index 9d6babb847eb..05bb2e55db71 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -2663,7 +2663,7 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
                        err = -ENOMEM;
                        goto unwind;
                }
-               if (!first->bo) {
+               if (xe_vma_is_userptr(first)) {
                        err = xe_vma_userptr_pin_pages(new_first);
                        if (err)
                                goto unwind;
@@ -2696,7 +2696,7 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
                        err = -ENOMEM;
                        goto unwind;
                }
-               if (!last->bo) {
+               if (xe_vma_is_userptr(last)) {
                        err = xe_vma_userptr_pin_pages(new_last);
                        if (err)
                                goto unwind;

I see these functions have other checks for first->bo and last->bo (to
see if things need to be locked), and I'm not sure if those are
correct. You may want to check the whole thing.

(TGL is still plagued by GuC timeouts, TLB errors and seqno warnings,
but I don't think they're caused by this patch)


> 
> [  582.816170] ------------[ cut here ]------------
> [  582.816170] ------------[ cut here ]------------
> [  582.816172] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  582.816173] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  582.816180] invalid opcode: 0000 [#1] PREEMPT SMP NOPTI
> [  582.816183] CPU: 0 PID: 18152 Comm: deqp-vk Tainted: G        W          6.3.0pz+ #90
> [  582.816185] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  582.816186] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  582.816245] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  582.816246] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  582.816248] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  582.816249] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  582.816250] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  582.816251] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  582.816252] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  582.816253] FS:  00007f9088034740(0000) GS:ffff8a4060400000(0000) knlGS:0000000000000000
> [  582.816254] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  582.816256] CR2: 000055c1f75fc1a4 CR3: 000000013c396002 CR4: 0000000000770ef0
> [  582.816257] PKRU: 55555554
> [  582.816258] Call Trace:
> [  582.816260]  <TASK>
> [  582.816262]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  582.816304]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  582.816345]  ? update_load_avg+0x7e/0x780
> [  582.816348]  ? __cgroup_account_cputime+0x4c/0x70
> [  582.816351]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  582.816391]  ? psi_group_change+0x152/0x3d0
> [  582.816394]  ? select_task_rq_fair+0x174/0x1720
> [  582.816396]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  582.816399]  ? lock_timer_base+0x61/0x80
> [  582.816401]  ? preempt_count_add+0x6a/0xa0
> [  582.816404]  ? _raw_spin_unlock+0x15/0x30
> [  582.816406]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  582.816434]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  582.816473]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  582.816514]  ? tomoyo_init_request_info+0x95/0xc0
> [  582.816516]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  582.816519]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  582.816540]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  582.816581]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  582.816606]  drm_ioctl+0x24c/0x490 [drm]
> [  582.816628]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  582.816669]  __x64_sys_ioctl+0x8d/0xd0
> [  582.816672]  do_syscall_64+0x37/0x90
> [  582.816674]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  582.816678] RIP: 0033:0x7f9087d1cafb
> [  582.816679] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  582.816681] RSP: 002b:00007ffd011743e0 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  582.816682] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f9087d1cafb
> [  582.816683] RDX: 00007ffd011744c0 RSI: 0000000040786445 RDI: 000000000000000e
> [  582.816684] RBP: 00007ffd01174470 R08: 0000000000000000 R09: 0000000000000078
> [  582.816685] R10: 00007ffd011721e3 R11: 0000000000000246 R12: 0000000000000000
> [  582.816686] R13: 00007ffd011763a8 R14: 0000000000000000 R15: 00007f908847c020
> [  582.816687]  </TASK>
> [  582.816687] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  582.816717]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  582.816749]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  582.816754] ---[ end trace 0000000000000000 ]---
> [  582.816755] invalid opcode: 0000 [#2] PREEMPT SMP NOPTI
> [  582.816757] CPU: 1 PID: 18149 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
> [  582.816759] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  582.816760] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  582.816809] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  582.816811] RSP: 0018:ffffa6170f327a40 EFLAGS: 00010202
> [  582.816812] RAX: ffff8a3cc48d5f40 RBX: ffff8a3dfe41d200 RCX: 0000000000000002
> [  582.816813] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3dfe6c9200
> [  582.816814] RBP: ffff8a3f0c6c6400 R08: ffff8a3dfe6c9260 R09: 0000000000000001
> [  582.816815] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  582.816816] R13: 0000000000020000 R14: ffff8a3dfe6c9200 R15: ffff8a3dfe6c9200
> [  582.816817] FS:  00007f0c7e81f740(0000) GS:ffff8a4060440000(0000) knlGS:0000000000000000
> [  582.816818] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  582.816819] CR2: 000055e47877c1a4 CR3: 000000013c2a2005 CR4: 0000000000770ee0
> [  582.816820] PKRU: 55555554
> [  582.816821] Call Trace:
> [  582.816822]  <TASK>
> [  582.816824]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  582.816865]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  582.816906]  ? update_load_avg+0x7e/0x780
> [  582.816908]  ? __cgroup_account_cputime+0x4c/0x70
> [  582.816910]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  582.816950]  ? psi_group_change+0x152/0x3d0
> [  582.816952]  ? select_task_rq_fair+0x174/0x1720
> [  582.816954]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  582.816957]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  582.816959]  ? preempt_count_add+0x6a/0xa0
> [  582.816961]  ? _raw_spin_unlock+0x15/0x30
> [  582.816963]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  582.816986]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  582.817027]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  582.817068]  ? tomoyo_init_request_info+0x95/0xc0
> [  582.817070]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  582.817072]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  582.817094]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  582.817135]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  582.817160]  drm_ioctl+0x24c/0x490 [drm]
> [  582.817183]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  582.817234]  __x64_sys_ioctl+0x8d/0xd0
> [  582.817237]  do_syscall_64+0x37/0x90
> [  582.817240]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  582.817243] RIP: 0033:0x7f0c7e43dafb
> [  582.817245] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  582.817246] RSP: 002b:00007ffcbf6e36e0 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  582.817248] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f0c7e43dafb
> [  582.817249] RDX: 00007ffcbf6e37c0 RSI: 0000000040786445 RDI: 000000000000000e
> [  582.817250] RBP: 00007ffcbf6e3770 R08: 0000000000000000 R09: 0000000000000078
> [  582.817251] R10: 00007ffcbf6e14e3 R11: 0000000000000246 R12: 0000000000000000
> [  582.817252] R13: 00007ffcbf6e56a8 R14: 0000000000000000 R15: 00007f0c7eb13020
> [  582.817253]  </TASK>
> [  582.817254] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  582.817288]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  582.817324]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  582.817341] ---[ end trace 0000000000000000 ]---
> [  583.825648] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  583.825739] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  583.825741] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  583.825744] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  583.825746] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  583.825748] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  583.825749] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  583.825750] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  583.825752] FS:  00007f9088034740(0000) GS:ffff8a4060400000(0000) knlGS:0000000000000000
> [  583.825754] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  583.825756] CR2: 000055c1f75fc1a4 CR3: 000000013c396002 CR4: 0000000000770ef0
> [  583.825757] PKRU: 55555554
> [  584.824359] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  584.824440] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  584.824442] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  584.824445] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  584.824446] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  584.824448] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  584.824449] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  584.824450] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  584.824451] FS:  00007f0c7e81f740(0000) GS:ffff8a4060440000(0000) knlGS:0000000000000000
> [  584.824453] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  584.824454] CR2: 000055e47877c1a4 CR3: 000000013c2a2005 CR4: 0000000000770ee0
> [  584.824456] PKRU: 55555554
> [  584.923394] ------------[ cut here ]------------
> [  584.923398] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  584.923413] invalid opcode: 0000 [#3] PREEMPT SMP NOPTI
> [  584.923416] CPU: 5 PID: 18148 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
> [  584.923418] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  584.923420] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  584.923492] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  584.923494] RSP: 0018:ffffa6170f3afa40 EFLAGS: 00010202
> [  584.923497] RAX: ffff8a3cc8455f40 RBX: ffff8a3dfe6ad200 RCX: 0000000000000002
> [  584.923499] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3dfe6af800
> [  584.923500] RBP: ffff8a3f0c74e000 R08: ffff8a3dfe6af860 R09: 0000000000000001
> [  584.923501] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  584.923502] R13: 0000000000020000 R14: ffff8a3dfe6af800 R15: ffff8a3dfe6af800
> [  584.923503] FS:  00007f6e7e01c740(0000) GS:ffff8a4060540000(0000) knlGS:0000000000000000
> [  584.923504] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  584.923505] CR2: 00005639e8e701a4 CR3: 000000018b27c003 CR4: 0000000000770ee0
> [  584.923507] PKRU: 55555554
> [  584.923508] Call Trace:
> [  584.923511]  <TASK>
> [  584.923513]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  584.923569]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  584.923610]  ? update_load_avg+0x7e/0x780
> [  584.923613]  ? __cgroup_account_cputime+0x4c/0x70
> [  584.923616]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  584.923655]  ? psi_group_change+0x152/0x3d0
> [  584.923658]  ? select_task_rq_fair+0x174/0x1720
> [  584.923660]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  584.923663]  ? lock_timer_base+0x61/0x80
> [  584.923665]  ? preempt_count_add+0x6a/0xa0
> [  584.923667]  ? _raw_spin_unlock+0x15/0x30
> [  584.923670]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  584.923697]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  584.923737]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  584.923776]  ? tomoyo_init_request_info+0x95/0xc0
> [  584.923780]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  584.923782]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  584.923803]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  584.923842]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  584.923870]  drm_ioctl+0x24c/0x490 [drm]
> [  584.923893]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  584.923938]  __x64_sys_ioctl+0x8d/0xd0
> [  584.923942]  do_syscall_64+0x37/0x90
> [  584.923944]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  584.923948] RIP: 0033:0x7f6e7dc3dafb
> [  584.923949] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  584.923951] RSP: 002b:00007ffcc1247030 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  584.923952] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f6e7dc3dafb
> [  584.923953] RDX: 00007ffcc1247110 RSI: 0000000040786445 RDI: 000000000000000e
> [  584.923954] RBP: 00007ffcc12470c0 R08: 0000000000000000 R09: 0000000000000078
> [  584.923955] R10: 00007ffcc1244e33 R11: 0000000000000246 R12: 0000000000000000
> [  584.923956] R13: 00007ffcc1248ff8 R14: 0000000000000000 R15: 00007f6e7e378020
> [  584.923957]  </TASK>
> [  584.923958] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  584.923991]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  584.924025]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  584.924031] ---[ end trace 0000000000000000 ]---
> [  586.008597] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  586.008679] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  586.008681] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  586.008684] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  586.008685] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  586.008687] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  586.008688] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  586.008689] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  586.008691] FS:  00007f6e7e01c740(0000) GS:ffff8a4060540000(0000) knlGS:0000000000000000
> [  586.008692] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  586.008694] CR2: 00005639e8e701a4 CR3: 000000018b27c003 CR4: 0000000000770ee0
> [  586.008695] PKRU: 55555554
> [  586.010521] ------------[ cut here ]------------
> [  586.010524] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  586.010531] invalid opcode: 0000 [#4] PREEMPT SMP NOPTI
> [  586.010534] CPU: 6 PID: 18150 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
> [  586.010537] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  586.010538] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  586.010616] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  586.010618] RSP: 0018:ffffa6170f3b7a40 EFLAGS: 00010202
> [  586.010621] RAX: ffff8a3d273b5f40 RBX: ffff8a3f0c45d000 RCX: 0000000000000002
> [  586.010622] RDX: 0000000000000013 RSI: ffff8a3cc1f14000 RDI: ffff8a3f0c483000
> [  586.010623] RBP: ffff8a3d20083800 R08: ffff8a3f0c483060 R09: 0000000000000001
> [  586.010625] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  586.010626] R13: 0000000000020000 R14: ffff8a3f0c483000 R15: ffff8a3f0c483000
> [  586.010627] FS:  00007ff676bb2740(0000) GS:ffff8a4060580000(0000) knlGS:0000000000000000
> [  586.010628] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  586.010630] CR2: 000056437f23d1a4 CR3: 00000002c5f46002 CR4: 0000000000770ee0
> [  586.010632] PKRU: 55555554
> [  586.010632] Call Trace:
> [  586.010635]  <TASK>
> [  586.010638]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  586.010702]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  586.010764]  ? update_load_avg+0x7e/0x780
> [  586.010768]  ? __cgroup_account_cputime+0x4c/0x70
> [  586.010772]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  586.010833]  ? psi_group_change+0x152/0x3d0
> [  586.010837]  ? select_task_rq_fair+0x174/0x1720
> [  586.010840]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  586.010844]  ? lock_timer_base+0x61/0x80
> [  586.010846]  ? preempt_count_add+0x6a/0xa0
> [  586.010849]  ? _raw_spin_unlock+0x15/0x30
> [  586.010852]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  586.010889]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  586.010955]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  586.011018]  ? tomoyo_init_request_info+0x95/0xc0
> [  586.011022]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  586.011024]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  586.011064]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  586.011124]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  586.011161]  drm_ioctl+0x24c/0x490 [drm]
> [  586.011193]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  586.011261]  __x64_sys_ioctl+0x8d/0xd0
> [  586.011265]  do_syscall_64+0x37/0x90
> [  586.011268]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  586.011272] RIP: 0033:0x7ff676d1cafb
> [  586.011275] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  586.011276] RSP: 002b:00007ffeacdccf10 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  586.011279] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007ff676d1cafb
> [  586.011280] RDX: 00007ffeacdccff0 RSI: 0000000040786445 RDI: 000000000000000e
> [  586.011281] RBP: 00007ffeacdccfa0 R08: 0000000000000000 R09: 0000000000000078
> [  586.011283] R10: 00007ffeacdcad13 R11: 0000000000000246 R12: 0000000000000000
> [  586.011284] R13: 00007ffeacdceed8 R14: 0000000000000000 R15: 00007ff6774af020
> [  586.011286]  </TASK>
> [  586.011287] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  586.011337]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  586.011390]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  586.011398] ---[ end trace 0000000000000000 ]---
> [  586.137384] ------------[ cut here ]------------
> [  586.137390] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  586.137397] invalid opcode: 0000 [#5] PREEMPT SMP NOPTI
> [  586.137401] CPU: 7 PID: 18153 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
> [  586.137404] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  586.137406] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  586.137488] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  586.137490] RSP: 0018:ffffa6170f3cfa40 EFLAGS: 00010202
> [  586.137493] RAX: ffff8a3d41f75f40 RBX: ffff8a3f0c24de00 RCX: 0000000000000002
> [  586.137495] RDX: 0000000000000013 RSI: ffff8a3cc1f14000 RDI: ffff8a3f0c24c000
> [  586.137496] RBP: ffff8a3cc6177c00 R08: ffff8a3f0c24c060 R09: 0000000000000001
> [  586.137498] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  586.137499] R13: 0000000000020000 R14: ffff8a3f0c24c000 R15: ffff8a3f0c24c000
> [  586.137501] FS:  00007fc966258740(0000) GS:ffff8a40605c0000(0000) knlGS:0000000000000000
> [  586.137503] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  586.137504] CR2: 00007fc963c90a9a CR3: 00000002c5ca6001 CR4: 0000000000770ee0
> [  586.137506] PKRU: 55555554
> [  586.137507] Call Trace:
> [  586.137510]  <TASK>
> [  586.137513]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  586.137576]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  586.137638]  ? update_load_avg+0x7e/0x780
> [  586.137642]  ? __cgroup_account_cputime+0x4c/0x70
> [  586.137646]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  586.137705]  ? psi_group_change+0x152/0x3d0
> [  586.137710]  ? select_task_rq_fair+0x174/0x1720
> [  586.137713]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  586.137717]  ? lock_timer_base+0x61/0x80
> [  586.137720]  ? preempt_count_add+0x6a/0xa0
> [  586.137723]  ? _raw_spin_unlock+0x15/0x30
> [  586.137726]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  586.137765]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  586.137826]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  586.137887]  ? tomoyo_init_request_info+0x95/0xc0
> [  586.137891]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  586.137894]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  586.137925]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  586.137985]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  586.138017]  drm_ioctl+0x24c/0x490 [drm]
> [  586.138047]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  586.138107]  __x64_sys_ioctl+0x8d/0xd0
> [  586.138112]  do_syscall_64+0x37/0x90
> [  586.138115]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  586.138119] RIP: 0033:0x7fc96643dafb
> [  586.138122] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  586.138124] RSP: 002b:00007ffc7383a720 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  586.138127] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fc96643dafb
> [  586.138128] RDX: 00007ffc7383a800 RSI: 0000000040786445 RDI: 000000000000000e
> [  586.138130] RBP: 00007ffc7383a7b0 R08: 0000000000000000 R09: 0000000000000078
> [  586.138131] R10: 00007ffc73838523 R11: 0000000000000246 R12: 0000000000000000
> [  586.138132] R13: 00007ffc7383c6e8 R14: 0000000000000000 R15: 00007fc966b56020
> [  586.138135]  </TASK>
> [  586.138136] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  586.138183]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  586.138236]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  586.138245] ---[ end trace 0000000000000000 ]---
> [  586.203830] ------------[ cut here ]------------
> [  586.203834] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  586.203841] invalid opcode: 0000 [#6] PREEMPT SMP NOPTI
> [  586.203844] CPU: 3 PID: 18151 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
> [  586.203846] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  586.203848] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  586.203920] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  586.203921] RSP: 0018:ffffa6170f3bfa40 EFLAGS: 00010202
> [  586.203924] RAX: ffff8a3cc6cedf40 RBX: ffff8a3e36f7be00 RCX: 0000000000000002
> [  586.203925] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3e36f7a400
> [  586.203926] RBP: ffff8a3eed3e9000 R08: ffff8a3e36f7a460 R09: 0000000000000001
> [  586.203927] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  586.203928] R13: 0000000000020000 R14: ffff8a3e36f7a400 R15: ffff8a3e36f7a400
> [  586.203929] FS:  00007ff5022c2740(0000) GS:ffff8a40604c0000(0000) knlGS:0000000000000000
> [  586.203930] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  586.203931] CR2: 00005637548a21a4 CR3: 0000000487fe8003 CR4: 0000000000770ee0
> [  586.203933] PKRU: 55555554
> [  586.203933] Call Trace:
> [  586.203936]  <TASK>
> [  586.203938]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  586.203985]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  586.204031]  ? update_load_avg+0x7e/0x780
> [  586.204035]  ? __cgroup_account_cputime+0x4c/0x70
> [  586.204038]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  586.204081]  ? psi_group_change+0x152/0x3d0
> [  586.204084]  ? select_task_rq_fair+0x174/0x1720
> [  586.204087]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  586.204090]  ? lock_timer_base+0x61/0x80
> [  586.204092]  ? preempt_count_add+0x6a/0xa0
> [  586.204095]  ? _raw_spin_unlock+0x15/0x30
> [  586.204098]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  586.204131]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  586.204176]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  586.204220]  ? tomoyo_init_request_info+0x95/0xc0
> [  586.204224]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  586.204226]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  586.204249]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  586.266200]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  586.266241]  drm_ioctl+0x24c/0x490 [drm]
> [  586.266273]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  586.266332]  __x64_sys_ioctl+0x8d/0xd0
> [  586.266336]  do_syscall_64+0x37/0x90
> [  586.266340]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  586.266345] RIP: 0033:0x7ff5024fcafb
> [  586.266348] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  586.266350] RSP: 002b:00007ffdca7cde00 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  586.266353] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007ff5024fcafb
> [  586.266354] RDX: 00007ffdca7cdee0 RSI: 0000000040786445 RDI: 000000000000000e
> [  586.266355] RBP: 00007ffdca7cde90 R08: 0000000000000000 R09: 0000000000000078
> [  586.266357] R10: 00007ffdca7cbc03 R11: 0000000000000246 R12: 0000000000000000
> [  586.266358] R13: 00007ffdca7cfdc8 R14: 0000000000000000 R15: 00007ff502bc0020
> [  586.266361]  </TASK>
> [  586.266362] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  586.266414]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  586.266469]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  586.266495] ---[ end trace 0000000000000000 ]---
> [  586.961460] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  586.961541] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  586.961542] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  586.961545] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  586.961546] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  586.961548] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  586.961549] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  586.961550] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  586.961551] FS:  00007ff676bb2740(0000) GS:ffff8a4060580000(0000) knlGS:0000000000000000
> [  586.961552] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  586.961553] CR2: 000056437f23d1a4 CR3: 00000002c5f46002 CR4: 0000000000770ee0
> [  586.961555] PKRU: 55555554
> [  587.916215] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  587.916313] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  587.916316] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  587.916318] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  587.916321] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  587.916322] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  587.916323] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  587.916325] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  587.916326] FS:  00007fc966258740(0000) GS:ffff8a40605c0000(0000) knlGS:0000000000000000
> [  587.916328] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  587.916330] CR2: 00007fc963c90a9a CR3: 00000002c5ca6001 CR4: 0000000000770ee0
> [  587.916331] PKRU: 55555554
> [  588.857849] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  588.857933] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  588.857935] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  588.857937] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  588.857938] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  588.857939] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  588.857940] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  588.857941] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  588.857942] FS:  00007ff5022c2740(0000) GS:ffff8a40604c0000(0000) knlGS:0000000000000000
> [  588.857943] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  588.857944] CR2: 00005637548a21a4 CR3: 0000000487fe8003 CR4: 0000000000770ee0
> [  588.857960] PKRU: 55555554
> [  702.893558] ------------[ cut here ]------------
> [  702.893562] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  702.893568] invalid opcode: 0000 [#7] PREEMPT SMP NOPTI
> [  702.893571] CPU: 1 PID: 18205 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
> [  702.893572] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  702.893573] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  702.893631] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  702.893632] RSP: 0018:ffffa6170f5d3a40 EFLAGS: 00010202
> [  702.893634] RAX: ffff8a3cdb7d3f80 RBX: ffff8a3e36fc2e00 RCX: 0000000000000002
> [  702.893635] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3e36fc0e00
> [  702.893636] RBP: ffff8a4047e6d800 R08: ffff8a3e36fc0e60 R09: 0000000000000001
> [  702.893637] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  702.893638] R13: 0000000000020000 R14: ffff8a3e36fc0e00 R15: ffff8a3e36fc0e00
> [  702.893639] FS:  00007f5c1292f740(0000) GS:ffff8a4060440000(0000) knlGS:0000000000000000
> [  702.893640] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  702.893641] CR2: 00007f5c0f107000 CR3: 000000015c374005 CR4: 0000000000770ee0
> [  702.893642] PKRU: 55555554
> [  702.893643] Call Trace:
> [  702.893645]  <TASK>
> [  702.893647]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  702.893689]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  702.893730]  ? update_load_avg+0x7e/0x780
> [  702.893733]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  702.893771]  ? ___slab_alloc+0x4d5/0x9a0
> [  702.893774]  ? xe_vm_bind_ioctl+0xf96/0x2430 [xe]
> [  702.893812]  ? xe_vm_bind_ioctl+0xf96/0x2430 [xe]
> [  702.893849]  ? preempt_count_add+0x6a/0xa0
> [  702.893852]  ? _raw_spin_unlock+0x15/0x30
> [  702.893855]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  702.893883]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  702.893922]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  702.893961]  ? tomoyo_init_request_info+0x95/0xc0
> [  702.893963]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  702.893965]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  702.893986]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  702.894024]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  702.894049]  drm_ioctl+0x24c/0x490 [drm]
> [  702.894070]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  702.894109]  __x64_sys_ioctl+0x8d/0xd0
> [  702.894112]  do_syscall_64+0x37/0x90
> [  702.894114]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  702.894118] RIP: 0033:0x7f5c12b1cafb
> [  702.894119] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  702.894121] RSP: 002b:00007ffe4ff4caf0 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  702.894122] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f5c12b1cafb
> [  702.894123] RDX: 00007ffe4ff4cbd0 RSI: 0000000040786445 RDI: 000000000000000e
> [  702.894124] RBP: 00007ffe4ff4cb80 R08: 0000000000000000 R09: 0000000000000078
> [  702.894125] R10: 00007ffe4ff4a8f3 R11: 0000000000000246 R12: 0000000000000000
> [  702.894125] R13: 00007ffe4ff4eab8 R14: 0000000000000000 R15: 00007f5c1322b020
> [  702.894127]  </TASK>
> [  702.894127] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  702.894157]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  702.894189]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  702.894194] ---[ end trace 0000000000000000 ]---
> [  703.331800] ------------[ cut here ]------------
> [  703.331804] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  703.331810] invalid opcode: 0000 [#8] PREEMPT SMP NOPTI
> [  703.331813] CPU: 7 PID: 18207 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
> [  703.331815] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  703.331816] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  703.331874] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  703.331876] RSP: 0018:ffffa6170f5e3a40 EFLAGS: 00010202
> [  703.331878] RAX: ffff8a3d20bd9fc0 RBX: ffff8a3e36f88400 RCX: 0000000000000002
> [  703.331879] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3ecd756200
> [  703.331880] RBP: ffff8a3eb86d6400 R08: ffff8a3ecd756260 R09: 0000000000000001
> [  703.331881] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  703.331881] R13: 0000000000020000 R14: ffff8a3ecd756200 R15: ffff8a3ecd756200
> [  703.331882] FS:  00007f924fc1d740(0000) GS:ffff8a40605c0000(0000) knlGS:0000000000000000
> [  703.331884] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  703.331885] CR2: 00007f9240000020 CR3: 00000002c5ee6001 CR4: 0000000000770ee0
> [  703.331886] PKRU: 55555554
> [  703.331887] Call Trace:
> [  703.331889]  <TASK>
> [  703.331891]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  703.331933]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  703.331974]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  703.332010]  ? _raw_spin_lock+0x13/0x40
> [  703.332014]  ? psi_group_change+0x152/0x3d0
> [  703.332018]  ? select_task_rq_fair+0x174/0x1720
> [  703.332021]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  703.332023]  ? preempt_count_add+0x6a/0xa0
> [  703.332025]  ? _raw_spin_unlock+0x15/0x30
> [  703.332028]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  703.332055]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  703.332095]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  703.332134]  ? tomoyo_init_request_info+0x95/0xc0
> [  703.332137]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  703.332139]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  703.332160]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  703.332198]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  703.332222]  drm_ioctl+0x24c/0x490 [drm]
> [  703.332244]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  703.332283]  __x64_sys_ioctl+0x8d/0xd0
> [  703.332286]  do_syscall_64+0x37/0x90
> [  703.332288]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  703.332291] RIP: 0033:0x7f924f83dafb
> [  703.332293] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  703.332294] RSP: 002b:00007ffce8a0d910 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  703.332295] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f924f83dafb
> [  703.332296] RDX: 00007ffce8a0d9f0 RSI: 0000000040786445 RDI: 000000000000000e
> [  703.332297] RBP: 00007ffce8a0d9a0 R08: 0000000000000000 R09: 0000000000000078
> [  703.332298] R10: 00007ffce8a0b713 R11: 0000000000000246 R12: 0000000000000000
> [  703.332299] R13: 00007ffce8a0f8d8 R14: 0000000000000000 R15: 00007f924ff11020
> [  703.332300]  </TASK>
> [  703.332301] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  703.332330]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  703.332362]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  703.332367] ---[ end trace 0000000000000000 ]---
> [  703.934202] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  703.934284] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  703.934287] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  703.934290] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  703.934292] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  703.934293] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  703.934295] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  703.934296] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  703.934298] FS:  00007f5c1292f740(0000) GS:ffff8a4060440000(0000) knlGS:0000000000000000
> [  703.934300] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  703.934301] CR2: 00007f5c0f107000 CR3: 000000015c374005 CR4: 0000000000770ee0
> [  703.934314] PKRU: 55555554
> [  704.939954] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  704.940023] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  704.940025] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  704.940027] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  704.940028] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  704.940029] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  704.940030] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  704.940030] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  704.940031] FS:  00007f924fc1d740(0000) GS:ffff8a40605c0000(0000) knlGS:0000000000000000
> [  704.940032] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  704.940033] CR2: 00007f9240000020 CR3: 00000002c5ee6001 CR4: 0000000000770ee0
> [  704.940035] PKRU: 55555554
> [  705.036071] ------------[ cut here ]------------
> 
> 
> 
> Suggested-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
> Signed-off-by: Matthew Brost <matthew.brost@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_bo.h           |  1 +
>  drivers/gpu/drm/xe/xe_exec.c         |  2 +
>  drivers/gpu/drm/xe/xe_gt_pagefault.c |  4 +-
>  drivers/gpu/drm/xe/xe_pt.c           | 71 +++++++++++++++------
>  drivers/gpu/drm/xe/xe_vm.c           | 95 ++++++++++++++++++----------
>  drivers/gpu/drm/xe/xe_vm.h           | 12 +++-
>  drivers/gpu/drm/xe/xe_vm_types.h     |  1 +
>  include/uapi/drm/xe_drm.h            |  8 +++
>  8 files changed, 138 insertions(+), 56 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
> index dd3d448fee0b..3a148cc6e811 100644
> --- a/drivers/gpu/drm/xe/xe_bo.h
> +++ b/drivers/gpu/drm/xe/xe_bo.h
> @@ -61,6 +61,7 @@
>  #define XE_PPGTT_PTE_LM			BIT_ULL(11)
>  #define XE_PDE_64K			BIT_ULL(6)
>  #define XE_PTE_PS64			BIT_ULL(8)
> +#define XE_PTE_NULL			BIT_ULL(9)
>  
> 
> 
> 
>  #define XE_PAGE_PRESENT			BIT_ULL(0)
>  #define XE_PAGE_RW			BIT_ULL(1)
> diff --git a/drivers/gpu/drm/xe/xe_exec.c b/drivers/gpu/drm/xe/xe_exec.c
> index e44076ee2e11..4f7694a29348 100644
> --- a/drivers/gpu/drm/xe/xe_exec.c
> +++ b/drivers/gpu/drm/xe/xe_exec.c
> @@ -120,6 +120,8 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
>  	 * to a location where the GPU can access it).
>  	 */
>  	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
> +		XE_WARN_ON(xe_vma_is_null(vma));
> +
>  		if (xe_vma_is_userptr(vma))
>  			continue;
>  
> 
> 
> 
> diff --git a/drivers/gpu/drm/xe/xe_gt_pagefault.c b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> index 73db7f7c0381..6faebd02f3fb 100644
> --- a/drivers/gpu/drm/xe/xe_gt_pagefault.c
> +++ b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> @@ -533,8 +533,8 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
>  
> 
> 
> 
>  	trace_xe_vma_acc(vma);
>  
> 
> 
> 
> -	/* Userptr can't be migrated, nothing to do */
> -	if (xe_vma_is_userptr(vma))
> +	/* Userptr or null can't be migrated, nothing to do */
> +	if (xe_vma_has_no_bo(vma))
>  		goto unlock_vm;
>  
> 
> 
> 
>  	/* Lock VM and BOs dma-resv */
> diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
> index 39ec94549439..265ee45bee5c 100644
> --- a/drivers/gpu/drm/xe/xe_pt.c
> +++ b/drivers/gpu/drm/xe/xe_pt.c
> @@ -81,7 +81,9 @@ u64 gen8_pde_encode(struct xe_bo *bo, u64 bo_offset,
>  static dma_addr_t vma_addr(struct xe_vma *vma, u64 offset,
>  			   size_t page_size, bool *is_vram)
>  {
> -	if (xe_vma_is_userptr(vma)) {
> +	if (xe_vma_is_null(vma)) {
> +		return 0;
> +	} else if (xe_vma_is_userptr(vma)) {
>  		struct xe_res_cursor cur;
>  		u64 page;
>  
> 
> 
> 
> @@ -559,6 +561,10 @@ static bool xe_pt_hugepte_possible(u64 addr, u64 next, unsigned int level,
>  	if (next - xe_walk->va_curs_start > xe_walk->curs->size)
>  		return false;
>  
> 
> 
> 
> +	/* null VMA's do not have dma adresses */
> +	if (xe_walk->pte_flags & XE_PTE_FLAG_NULL)
> +		return true;
> +
>  	/* Is the DMA address huge PTE size aligned? */
>  	size = next - addr;
>  	dma = addr - xe_walk->va_curs_start + xe_res_dma(xe_walk->curs);
> @@ -575,6 +581,10 @@ xe_pt_scan_64K(u64 addr, u64 next, struct xe_pt_stage_bind_walk *xe_walk)
>  {
>  	struct xe_res_cursor curs = *xe_walk->curs;
>  
> 
> 
> 
> +	/* null VMA's do not have dma adresses */
> +	if (xe_walk->pte_flags & XE_PTE_FLAG_NULL)
> +		return true;
> +
>  	if (!IS_ALIGNED(addr, SZ_64K))
>  		return false;
>  
> 
> 
> 
> @@ -631,12 +641,29 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
>  	/* Is this a leaf entry ?*/
>  	if (level == 0 || xe_pt_hugepte_possible(addr, next, level, xe_walk)) {
>  		struct xe_res_cursor *curs = xe_walk->curs;
> +		u64 pte = 0;
> +		bool is_null = xe_walk->pte_flags & XE_PTE_FLAG_NULL;
>  
> 
> 
> 
>  		XE_WARN_ON(xe_walk->va_curs_start != addr);
>  
> 
> 
> 
> -		pte = __gen8_pte_encode(xe_res_dma(curs) + xe_walk->dma_offset,
> -					xe_walk->cache, xe_walk->pte_flags,
> -					level);
> +		if (is_null) {
> +			pte |= XE_PAGE_PRESENT | XE_PAGE_RW;
> +			if (xe_walk->pte_flags & XE_PTE_FLAG_READ_ONLY)
> +				pte &= ~XE_PAGE_RW;
> +
> +			if (level == 1)
> +				pte |= XE_PDE_PS_2M;
> +			else if (level == 2)
> +				pte |= XE_PDPE_PS_1G;
> +
> +			pte |= XE_PTE_NULL;
> +		} else {
> +			pte = __gen8_pte_encode(xe_res_dma(curs) +
> +						xe_walk->dma_offset,
> +						xe_walk->cache,
> +						xe_walk->pte_flags,
> +						level);
> +		}
>  		pte |= xe_walk->default_pte;
>  
> 
> 
> 
>  		/*
> @@ -654,7 +681,8 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
>  		if (unlikely(ret))
>  			return ret;
>  
> 
> 
> 
> -		xe_res_next(curs, next - addr);
> +		if (!is_null)
> +			xe_res_next(curs, next - addr);
>  		xe_walk->va_curs_start = next;
>  		*action = ACTION_CONTINUE;
>  
> 
> 
> 
> @@ -761,24 +789,29 @@ xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
>  		xe_walk.dma_offset = vram_region_gpu_offset(bo->ttm.resource);
>  		xe_walk.cache = XE_CACHE_WB;
>  	} else {
> -		if (!xe_vma_is_userptr(vma) && bo->flags & XE_BO_SCANOUT_BIT)
> +		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_is_userptr(vma) && xe_bo_is_stolen(bo))
> +	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));
>  
> 
> 
> 
>  	xe_bo_assert_held(bo);
> -	if (xe_vma_is_userptr(vma))
> -		xe_res_first_sg(vma->userptr.sg, 0, vma->end - vma->start + 1,
> -				&curs);
> -	else if (xe_bo_is_vram(bo) || xe_bo_is_stolen(bo))
> -		xe_res_first(bo->ttm.resource, vma->bo_offset,
> -			     vma->end - vma->start + 1, &curs);
> -	else
> -		xe_res_first_sg(xe_bo_get_sg(bo), vma->bo_offset,
> -				vma->end - vma->start + 1, &curs);
> +
> +	if (!xe_vma_is_null(vma)) {
> +		if (xe_vma_is_userptr(vma))
> +			xe_res_first_sg(vma->userptr.sg, 0,
> +					vma->end - vma->start + 1, &curs);
> +		else if (xe_bo_is_vram(bo) || xe_bo_is_stolen(bo))
> +			xe_res_first(bo->ttm.resource, vma->bo_offset,
> +				     vma->end - vma->start + 1, &curs);
> +		else
> +			xe_res_first_sg(xe_bo_get_sg(bo), vma->bo_offset,
> +					vma->end - vma->start + 1, &curs);
> +	} else {
> +		curs.size = vma->end - vma->start + 1;
> +	}
>  
> 
> 
> 
>  	ret = xe_pt_walk_range(&pt->base, pt->level, vma->start, vma->end + 1,
>  				&xe_walk.base);
> @@ -967,7 +1000,7 @@ static void xe_pt_commit_locks_assert(struct xe_vma *vma)
>  
> 
> 
> 
>  	if (xe_vma_is_userptr(vma))
>  		lockdep_assert_held_read(&vm->userptr.notifier_lock);
> -	else
> +	else if (!xe_vma_is_null(vma))
>  		dma_resv_assert_held(vma->bo->ttm.base.resv);
>  
> 
> 
> 
>  	dma_resv_assert_held(&vm->resv);
> @@ -1330,7 +1363,7 @@ __xe_pt_bind_vma(struct xe_tile *tile, struct xe_vma *vma, struct xe_engine *e,
>  				   DMA_RESV_USAGE_KERNEL :
>  				   DMA_RESV_USAGE_BOOKKEEP);
>  
> 
> 
> 
> -		if (!xe_vma_is_userptr(vma) && !vma->bo->vm)
> +		if (!xe_vma_has_no_bo(vma) && !vma->bo->vm)
>  			dma_resv_add_fence(vma->bo->ttm.base.resv, fence,
>  					   DMA_RESV_USAGE_BOOKKEEP);
>  		xe_pt_commit_bind(vma, entries, num_entries, rebind,
> @@ -1647,7 +1680,7 @@ __xe_pt_unbind_vma(struct xe_tile *tile, struct xe_vma *vma, struct xe_engine *e
>  				   DMA_RESV_USAGE_BOOKKEEP);
>  
> 
> 
> 
>  		/* This fence will be installed by caller when doing eviction */
> -		if (!xe_vma_is_userptr(vma) && !vma->bo->vm)
> +		if (!xe_vma_has_no_bo(vma) && !vma->bo->vm)
>  			dma_resv_add_fence(vma->bo->ttm.base.resv, fence,
>  					   DMA_RESV_USAGE_BOOKKEEP);
>  		xe_pt_commit_unbind(vma, entries, num_entries,
> diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> index 94fc9c330235..f7629db275f9 100644
> --- a/drivers/gpu/drm/xe/xe_vm.c
> +++ b/drivers/gpu/drm/xe/xe_vm.c
> @@ -590,7 +590,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
>  		goto out_unlock;
>  
> 
> 
> 
>  	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
> -		if (xe_vma_is_userptr(vma) || vma->destroyed)
> +		if (xe_vma_has_no_bo(vma) || vma->destroyed)
>  			continue;
>  
> 
> 
> 
>  		err = xe_bo_validate(vma->bo, vm, false);
> @@ -843,6 +843,7 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
>  				    u64 bo_offset_or_userptr,
>  				    u64 start, u64 end,
>  				    bool read_only,
> +				    bool is_null,
>  				    u64 tile_mask)
>  {
>  	struct xe_vma *vma;
> @@ -868,8 +869,11 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
>  	vma->vm = vm;
>  	vma->start = start;
>  	vma->end = end;
> +	vma->pte_flags = 0;
>  	if (read_only)
> -		vma->pte_flags = XE_PTE_FLAG_READ_ONLY;
> +		vma->pte_flags |= XE_PTE_FLAG_READ_ONLY;
> +	if (is_null)
> +		vma->pte_flags |= XE_PTE_FLAG_NULL;
>  
> 
> 
> 
>  	if (tile_mask) {
>  		vma->tile_mask = tile_mask;
> @@ -886,23 +890,26 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
>  		vma->bo_offset = bo_offset_or_userptr;
>  		vma->bo = xe_bo_get(bo);
>  		list_add_tail(&vma->bo_link, &bo->vmas);
> -	} else /* userptr */ {
> -		u64 size = end - start + 1;
> -		int err;
> +	} else /* userptr or null */ {
> +		if (!is_null) {
> +			u64 size = end - start + 1;
> +			int err;
>  
> 
> 
> 
> -		vma->userptr.ptr = bo_offset_or_userptr;
> +			vma->userptr.ptr = bo_offset_or_userptr;
>  
> 
> 
> 
> -		err = mmu_interval_notifier_insert(&vma->userptr.notifier,
> -						   current->mm,
> -						   vma->userptr.ptr, size,
> -						   &vma_userptr_notifier_ops);
> -		if (err) {
> -			kfree(vma);
> -			vma = ERR_PTR(err);
> -			return vma;
> +			err = mmu_interval_notifier_insert(&vma->userptr.notifier,
> +							   current->mm,
> +							   vma->userptr.ptr, size,
> +							   &vma_userptr_notifier_ops);
> +			if (err) {
> +				kfree(vma);
> +				vma = ERR_PTR(err);
> +				return vma;
> +			}
> +
> +			vma->userptr.notifier_seq = LONG_MAX;
>  		}
>  
> 
> 
> 
> -		vma->userptr.notifier_seq = LONG_MAX;
>  		xe_vm_get(vm);
>  	}
>  
> 
> 
> 
> @@ -942,6 +949,8 @@ static void xe_vma_destroy_late(struct xe_vma *vma)
>  		 */
>  		mmu_interval_notifier_remove(&vma->userptr.notifier);
>  		xe_vm_put(vm);
> +	} else if (xe_vma_is_null(vma)) {
> +		xe_vm_put(vm);
>  	} else {
>  		xe_bo_put(vma->bo);
>  	}
> @@ -1024,7 +1033,7 @@ static void xe_vma_destroy(struct xe_vma *vma, struct dma_fence *fence)
>  		list_del_init(&vma->userptr.invalidate_link);
>  		spin_unlock(&vm->userptr.invalidated_lock);
>  		list_del(&vma->userptr_link);
> -	} else {
> +	} else if (!xe_vma_is_null(vma)) {
>  		xe_bo_assert_held(vma->bo);
>  		list_del(&vma->bo_link);
>  
> 
> 
> 
> @@ -1391,7 +1400,7 @@ void xe_vm_close_and_put(struct xe_vm *vm)
>  	while (vm->vmas.rb_node) {
>  		struct xe_vma *vma = to_xe_vma(vm->vmas.rb_node);
>  
> 
> 
> 
> -		if (xe_vma_is_userptr(vma)) {
> +		if (xe_vma_has_no_bo(vma)) {
>  			down_read(&vm->userptr.notifier_lock);
>  			vma->destroyed = true;
>  			up_read(&vm->userptr.notifier_lock);
> @@ -1400,7 +1409,7 @@ void xe_vm_close_and_put(struct xe_vm *vm)
>  		rb_erase(&vma->vm_node, &vm->vmas);
>  
> 
> 
> 
>  		/* easy case, remove from VMA? */
> -		if (xe_vma_is_userptr(vma) || vma->bo->vm) {
> +		if (xe_vma_has_no_bo(vma) || vma->bo->vm) {
>  			xe_vma_destroy(vma, NULL);
>  			continue;
>  		}
> @@ -2034,7 +2043,7 @@ static int xe_vm_prefetch(struct xe_vm *vm, struct xe_vma *vma,
>  
> 
> 
> 
>  	XE_BUG_ON(region > ARRAY_SIZE(region_to_mem_type));
>  
> 
> 
> 
> -	if (!xe_vma_is_userptr(vma)) {
> +	if (!xe_vma_has_no_bo(vma)) {
>  		err = xe_bo_migrate(vma->bo, region_to_mem_type[region]);
>  		if (err)
>  			return err;
> @@ -2643,6 +2652,8 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
>  					  lookup->start - 1,
>  					  (first->pte_flags &
>  					   XE_PTE_FLAG_READ_ONLY),
> +					  (first->pte_flags &
> +					   XE_PTE_FLAG_NULL),
>  					  first->tile_mask);
>  		if (first->bo)
>  			xe_bo_unlock(first->bo, &ww);
> @@ -2675,6 +2686,7 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
>  					 last->end,
>  					 (last->pte_flags &
>  					  XE_PTE_FLAG_READ_ONLY),
> +					 (last->pte_flags & XE_PTE_FLAG_NULL),
>  					 last->tile_mask);
>  		if (last->bo)
>  			xe_bo_unlock(last->bo, &ww);
> @@ -2742,7 +2754,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
>  		      *next;
>  	struct rb_node *node;
>  
> 
> 
> 
> -	if (!xe_vma_is_userptr(vma)) {
> +	if (!xe_vma_has_no_bo(vma)) {
>  		if (!xe_bo_can_migrate(vma->bo, region_to_mem_type[region]))
>  			return ERR_PTR(-EINVAL);
>  	}
> @@ -2751,7 +2763,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
>  	while ((node = rb_next(node))) {
>  		if (!xe_vma_cmp_vma_cb(lookup, node)) {
>  			__vma = to_xe_vma(node);
> -			if (!xe_vma_is_userptr(__vma)) {
> +			if (!xe_vma_has_no_bo(__vma)) {
>  				if (!xe_bo_can_migrate(__vma->bo, region_to_mem_type[region]))
>  					goto flush_list;
>  			}
> @@ -2765,7 +2777,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
>  	while ((node = rb_prev(node))) {
>  		if (!xe_vma_cmp_vma_cb(lookup, node)) {
>  			__vma = to_xe_vma(node);
> -			if (!xe_vma_is_userptr(__vma)) {
> +			if (!xe_vma_has_no_bo(__vma)) {
>  				if (!xe_bo_can_migrate(__vma->bo, region_to_mem_type[region]))
>  					goto flush_list;
>  			}
> @@ -2824,21 +2836,23 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
>  
> 
> 
> 
>  	switch (VM_BIND_OP(op)) {
>  	case XE_VM_BIND_OP_MAP:
> -		XE_BUG_ON(!bo);
> -
> -		err = xe_bo_lock(bo, &ww, 0, true);
> -		if (err)
> -			return ERR_PTR(err);
> +		if (bo) {
> +			err = xe_bo_lock(bo, &ww, 0, true);
> +			if (err)
> +				return ERR_PTR(err);
> +		}
>  		vma = xe_vma_create(vm, bo, bo_offset_or_userptr, addr,
>  				    addr + range - 1,
>  				    op & XE_VM_BIND_FLAG_READONLY,
> +				    op & XE_VM_BIND_FLAG_NULL,
>  				    tile_mask);
> -		xe_bo_unlock(bo, &ww);
> +		if (bo)
> +			xe_bo_unlock(bo, &ww);
>  		if (!vma)
>  			return ERR_PTR(-ENOMEM);
>  
> 
> 
> 
>  		xe_vm_insert_vma(vm, vma);
> -		if (!bo->vm) {
> +		if (bo && !bo->vm) {
>  			vm_insert_extobj(vm, vma);
>  			err = add_preempt_fences(vm, bo);
>  			if (err) {
> @@ -2872,6 +2886,7 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
>  		vma = xe_vma_create(vm, NULL, bo_offset_or_userptr, addr,
>  				    addr + range - 1,
>  				    op & XE_VM_BIND_FLAG_READONLY,
> +				    op & XE_VM_BIND_FLAG_NULL,
>  				    tile_mask);
>  		if (!vma)
>  			return ERR_PTR(-ENOMEM);
> @@ -2897,11 +2912,12 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
>  #ifdef TEST_VM_ASYNC_OPS_ERROR
>  #define SUPPORTED_FLAGS	\
>  	(FORCE_ASYNC_OP_ERROR | XE_VM_BIND_FLAG_ASYNC | \
> -	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | 0xffff)
> +	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | \
> +	 XE_VM_BIND_FLAG_NULL | 0xffff)
>  #else
>  #define SUPPORTED_FLAGS	\
>  	(XE_VM_BIND_FLAG_ASYNC | XE_VM_BIND_FLAG_READONLY | \
> -	 XE_VM_BIND_FLAG_IMMEDIATE | 0xffff)
> +	 XE_VM_BIND_FLAG_IMMEDIATE | XE_VM_BIND_FLAG_NULL | 0xffff)
>  #endif
>  #define XE_64K_PAGE_MASK 0xffffull
>  
> 
> 
> 
> @@ -2949,6 +2965,7 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
>  		u32 obj = (*bind_ops)[i].obj;
>  		u64 obj_offset = (*bind_ops)[i].obj_offset;
>  		u32 region = (*bind_ops)[i].region;
> +		bool is_null = op &  XE_VM_BIND_FLAG_NULL;
>  
> 
> 
> 
>  		if (XE_IOCTL_ERR(xe, (*bind_ops)[i].pad) ||
>  		    XE_IOCTL_ERR(xe, (*bind_ops)[i].reserved[0] ||
> @@ -2982,8 +2999,13 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
>  		if (XE_IOCTL_ERR(xe, VM_BIND_OP(op) >
>  				 XE_VM_BIND_OP_PREFETCH) ||
>  		    XE_IOCTL_ERR(xe, op & ~SUPPORTED_FLAGS) ||
> +		    XE_IOCTL_ERR(xe, obj && is_null) ||
> +		    XE_IOCTL_ERR(xe, obj_offset && is_null) ||
> +		    XE_IOCTL_ERR(xe, VM_BIND_OP(op) != XE_VM_BIND_OP_MAP &&
> +				 is_null) ||
>  		    XE_IOCTL_ERR(xe, !obj &&
> -				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP) ||
> +				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP &&
> +				 !is_null) ||
>  		    XE_IOCTL_ERR(xe, !obj &&
>  				 VM_BIND_OP(op) == XE_VM_BIND_OP_UNMAP_ALL) ||
>  		    XE_IOCTL_ERR(xe, addr &&
> @@ -3389,6 +3411,7 @@ int xe_vm_invalidate_vma(struct xe_vma *vma)
>  	int ret;
>  
> 
> 
> 
>  	XE_BUG_ON(!xe_vm_in_fault_mode(vma->vm));
> +	XE_WARN_ON(xe_vma_is_null(vma));
>  	trace_xe_vma_usm_invalidate(vma);
>  
> 
> 
> 
>  	/* Check that we don't race with page-table updates */
> @@ -3451,8 +3474,11 @@ int xe_analyze_vm(struct drm_printer *p, struct xe_vm *vm, int gt_id)
>  	for (node = rb_first(&vm->vmas); node; node = rb_next(node)) {
>  		struct xe_vma *vma = to_xe_vma(node);
>  		bool is_userptr = xe_vma_is_userptr(vma);
> +		bool is_null = xe_vma_is_null(vma);
>  
> 
> 
> 
> -		if (is_userptr) {
> +		if (is_null) {
> +			addr = 0;
> +		} else if (is_userptr) {
>  			struct xe_res_cursor cur;
>  
> 
> 
> 
>  			xe_res_first_sg(vma->userptr.sg, 0, XE_PAGE_SIZE,
> @@ -3463,7 +3489,8 @@ int xe_analyze_vm(struct drm_printer *p, struct xe_vm *vm, int gt_id)
>  		}
>  		drm_printf(p, " [%016llx-%016llx] S:0x%016llx A:%016llx %s\n",
>  			   vma->start, vma->end, vma->end - vma->start + 1ull,
> -			   addr, is_userptr ? "USR" : is_vram ? "VRAM" : "SYS");
> +			   addr, is_null ? "NULL" : is_userptr ? "USR" :
> +			   is_vram ? "VRAM" : "SYS");
>  	}
>  	up_read(&vm->lock);
>  
> 
> 
> 
> diff --git a/drivers/gpu/drm/xe/xe_vm.h b/drivers/gpu/drm/xe/xe_vm.h
> index 372f26153209..38731e200813 100644
> --- a/drivers/gpu/drm/xe/xe_vm.h
> +++ b/drivers/gpu/drm/xe/xe_vm.h
> @@ -115,11 +115,21 @@ static inline void xe_vm_reactivate_rebind(struct xe_vm *vm)
>  	}
>  }
>  
> 
> 
> 
> -static inline bool xe_vma_is_userptr(struct xe_vma *vma)
> +static inline bool xe_vma_is_null(struct xe_vma *vma)
> +{
> +	return vma->pte_flags & XE_PTE_FLAG_NULL;
> +}
> +
> +static inline bool xe_vma_has_no_bo(struct xe_vma *vma)
>  {
>  	return !vma->bo;
>  }
>  
> 
> 
> 
> +static inline bool xe_vma_is_userptr(struct xe_vma *vma)
> +{
> +	return xe_vma_has_no_bo(vma) && !xe_vma_is_null(vma);
> +}
> +
>  int xe_vma_userptr_pin_pages(struct xe_vma *vma);
>  
> 
> 
> 
>  int xe_vma_userptr_check_repin(struct xe_vma *vma);
> diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
> index 6daddd29d416..f775bafe4619 100644
> --- a/drivers/gpu/drm/xe/xe_vm_types.h
> +++ b/drivers/gpu/drm/xe/xe_vm_types.h
> @@ -31,6 +31,7 @@ struct xe_vma {
>  	u64 end;
>  	/** @pte_flags: pte flags for this VMA */
>  #define XE_PTE_FLAG_READ_ONLY		BIT(0)
> +#define XE_PTE_FLAG_NULL		BIT(1)
>  	u32 pte_flags;
>  
> 
> 
> 
>  	/** @bo: BO if not a userptr, must be NULL is userptr */
> diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> index 0ebc50beb5e5..39a1ce89732f 100644
> --- a/include/uapi/drm/xe_drm.h
> +++ b/include/uapi/drm/xe_drm.h
> @@ -456,6 +456,14 @@ struct drm_xe_vm_bind_op {
>  	 * than differing the MAP to the page fault handler.
>  	 */
>  #define XE_VM_BIND_FLAG_IMMEDIATE	(0x1 << 18)
> +	/*
> +	 * When the NULL flag is set, the page tables are setup with a special
> +	 * bit which indicates writes are dropped and all reads return zero.  In
> +	 * the future, the NULL flags will only be valid for XE_VM_BIND_OP_MAP
> +	 * operations, the BO handle MBZ, and the BO offset MBZ. This flag is
> +	 * intended to implement VK sparse bindings.
> +	 */
> +#define XE_VM_BIND_FLAG_NULL		(0x1 << 19)
>  
> 
> 
> 
>  	/** @reserved: Reserved */
>  	__u64 reserved[2];
> 



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

* [Intel-xe] ✗ CI.Patch_applied: failure for NULL bindings aka sparse bindings (rev3)
  2023-06-08  5:03 [Intel-xe] [PATCH 0/3] NULL bindings aka sparse bindings Matthew Brost
                   ` (10 preceding siblings ...)
  2023-06-14 18:50 ` [Intel-xe] ✗ CI.Patch_applied: failure for NULL bindings aka sparse bindings (rev2) Patchwork
@ 2023-06-15  1:19 ` Patchwork
  11 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2023-06-15  1:19 UTC (permalink / raw)
  To: Zanoni, Paulo R; +Cc: intel-xe

== Series Details ==

Series: NULL bindings aka sparse bindings (rev3)
URL   : https://patchwork.freedesktop.org/series/119048/
State : failure

== Summary ==

=== Applying kernel patches on branch 'drm-xe-next' with base: ===
Base commit: 6d2981d42 drm/xe/mtl: Add some initial MTL workarounds
=== git am output follows ===
error: patch failed: drivers/gpu/drm/xe/xe_bo.h:65
error: drivers/gpu/drm/xe/xe_bo.h: patch does not apply
error: patch failed: drivers/gpu/drm/xe/xe_pt.c:102
error: drivers/gpu/drm/xe/xe_pt.c: patch does not apply
error: patch failed: drivers/gpu/drm/xe/xe_vm.c:61
error: drivers/gpu/drm/xe/xe_vm.c: patch does not apply
hint: Use 'git am --show-current-patch' to see the failed patch
Applying: drm/xe: s/XE_PTE_READ_ONLY/XE_PTE_FLAG_READ_ONLY
Patch failed at 0001 drm/xe: s/XE_PTE_READ_ONLY/XE_PTE_FLAG_READ_ONLY
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".



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

* Re: [Intel-xe] [PATCH 3/3] drm/xe: NULL binding implementation
  2023-06-14 18:48   ` Zanoni, Paulo R
  2023-06-14 20:24     ` Zanoni, Paulo R
@ 2023-06-15  3:43     ` Matthew Brost
  1 sibling, 0 replies; 30+ messages in thread
From: Matthew Brost @ 2023-06-15  3:43 UTC (permalink / raw)
  To: Zanoni, Paulo R; +Cc: intel-xe

On Wed, Jun 14, 2023 at 12:48:38PM -0600, Zanoni, Paulo R wrote:
> On Wed, 2023-06-07 at 22:03 -0700, Matthew Brost wrote:
> > Add uAPI and implementation for NULL bindings. A NULL binding is defined
> > as writes dropped and read zero. A single bit in the uAPI has been added
> > which results in a single bit in the PTEs being set.
> > 
> > NULL bindings are indended to be used to implement VK sparse bindings,
> > in particular residencyNonResidentStrict property.
> 
> I tried to test this on my Mesa Sparse branch, and I'm getting BUG()s.
> The interesting thing about this is that multiple BUG()s are competing
> to appear on dmesg at the same time. Perhaps there's some kind of race
> condition here? I'd happily try experimental patches for this.
> 

I see the problem, will fix. Thanks.

Matt

> [  582.816170] ------------[ cut here ]------------
> [  582.816170] ------------[ cut here ]------------
> [  582.816172] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  582.816173] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  582.816180] invalid opcode: 0000 [#1] PREEMPT SMP NOPTI
> [  582.816183] CPU: 0 PID: 18152 Comm: deqp-vk Tainted: G        W          6.3.0pz+ #90
> [  582.816185] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  582.816186] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  582.816245] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  582.816246] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  582.816248] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  582.816249] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  582.816250] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  582.816251] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  582.816252] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  582.816253] FS:  00007f9088034740(0000) GS:ffff8a4060400000(0000) knlGS:0000000000000000
> [  582.816254] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  582.816256] CR2: 000055c1f75fc1a4 CR3: 000000013c396002 CR4: 0000000000770ef0
> [  582.816257] PKRU: 55555554
> [  582.816258] Call Trace:
> [  582.816260]  <TASK>
> [  582.816262]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  582.816304]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  582.816345]  ? update_load_avg+0x7e/0x780
> [  582.816348]  ? __cgroup_account_cputime+0x4c/0x70
> [  582.816351]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  582.816391]  ? psi_group_change+0x152/0x3d0
> [  582.816394]  ? select_task_rq_fair+0x174/0x1720
> [  582.816396]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  582.816399]  ? lock_timer_base+0x61/0x80
> [  582.816401]  ? preempt_count_add+0x6a/0xa0
> [  582.816404]  ? _raw_spin_unlock+0x15/0x30
> [  582.816406]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  582.816434]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  582.816473]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  582.816514]  ? tomoyo_init_request_info+0x95/0xc0
> [  582.816516]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  582.816519]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  582.816540]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  582.816581]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  582.816606]  drm_ioctl+0x24c/0x490 [drm]
> [  582.816628]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  582.816669]  __x64_sys_ioctl+0x8d/0xd0
> [  582.816672]  do_syscall_64+0x37/0x90
> [  582.816674]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  582.816678] RIP: 0033:0x7f9087d1cafb
> [  582.816679] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  582.816681] RSP: 002b:00007ffd011743e0 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  582.816682] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f9087d1cafb
> [  582.816683] RDX: 00007ffd011744c0 RSI: 0000000040786445 RDI: 000000000000000e
> [  582.816684] RBP: 00007ffd01174470 R08: 0000000000000000 R09: 0000000000000078
> [  582.816685] R10: 00007ffd011721e3 R11: 0000000000000246 R12: 0000000000000000
> [  582.816686] R13: 00007ffd011763a8 R14: 0000000000000000 R15: 00007f908847c020
> [  582.816687]  </TASK>
> [  582.816687] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  582.816717]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  582.816749]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  582.816754] ---[ end trace 0000000000000000 ]---
> [  582.816755] invalid opcode: 0000 [#2] PREEMPT SMP NOPTI
> [  582.816757] CPU: 1 PID: 18149 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
> [  582.816759] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  582.816760] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  582.816809] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  582.816811] RSP: 0018:ffffa6170f327a40 EFLAGS: 00010202
> [  582.816812] RAX: ffff8a3cc48d5f40 RBX: ffff8a3dfe41d200 RCX: 0000000000000002
> [  582.816813] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3dfe6c9200
> [  582.816814] RBP: ffff8a3f0c6c6400 R08: ffff8a3dfe6c9260 R09: 0000000000000001
> [  582.816815] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  582.816816] R13: 0000000000020000 R14: ffff8a3dfe6c9200 R15: ffff8a3dfe6c9200
> [  582.816817] FS:  00007f0c7e81f740(0000) GS:ffff8a4060440000(0000) knlGS:0000000000000000
> [  582.816818] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  582.816819] CR2: 000055e47877c1a4 CR3: 000000013c2a2005 CR4: 0000000000770ee0
> [  582.816820] PKRU: 55555554
> [  582.816821] Call Trace:
> [  582.816822]  <TASK>
> [  582.816824]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  582.816865]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  582.816906]  ? update_load_avg+0x7e/0x780
> [  582.816908]  ? __cgroup_account_cputime+0x4c/0x70
> [  582.816910]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  582.816950]  ? psi_group_change+0x152/0x3d0
> [  582.816952]  ? select_task_rq_fair+0x174/0x1720
> [  582.816954]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  582.816957]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  582.816959]  ? preempt_count_add+0x6a/0xa0
> [  582.816961]  ? _raw_spin_unlock+0x15/0x30
> [  582.816963]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  582.816986]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  582.817027]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  582.817068]  ? tomoyo_init_request_info+0x95/0xc0
> [  582.817070]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  582.817072]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  582.817094]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  582.817135]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  582.817160]  drm_ioctl+0x24c/0x490 [drm]
> [  582.817183]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  582.817234]  __x64_sys_ioctl+0x8d/0xd0
> [  582.817237]  do_syscall_64+0x37/0x90
> [  582.817240]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  582.817243] RIP: 0033:0x7f0c7e43dafb
> [  582.817245] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  582.817246] RSP: 002b:00007ffcbf6e36e0 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  582.817248] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f0c7e43dafb
> [  582.817249] RDX: 00007ffcbf6e37c0 RSI: 0000000040786445 RDI: 000000000000000e
> [  582.817250] RBP: 00007ffcbf6e3770 R08: 0000000000000000 R09: 0000000000000078
> [  582.817251] R10: 00007ffcbf6e14e3 R11: 0000000000000246 R12: 0000000000000000
> [  582.817252] R13: 00007ffcbf6e56a8 R14: 0000000000000000 R15: 00007f0c7eb13020
> [  582.817253]  </TASK>
> [  582.817254] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  582.817288]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  582.817324]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  582.817341] ---[ end trace 0000000000000000 ]---
> [  583.825648] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  583.825739] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  583.825741] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  583.825744] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  583.825746] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  583.825748] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  583.825749] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  583.825750] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  583.825752] FS:  00007f9088034740(0000) GS:ffff8a4060400000(0000) knlGS:0000000000000000
> [  583.825754] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  583.825756] CR2: 000055c1f75fc1a4 CR3: 000000013c396002 CR4: 0000000000770ef0
> [  583.825757] PKRU: 55555554
> [  584.824359] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  584.824440] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  584.824442] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  584.824445] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  584.824446] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  584.824448] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  584.824449] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  584.824450] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  584.824451] FS:  00007f0c7e81f740(0000) GS:ffff8a4060440000(0000) knlGS:0000000000000000
> [  584.824453] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  584.824454] CR2: 000055e47877c1a4 CR3: 000000013c2a2005 CR4: 0000000000770ee0
> [  584.824456] PKRU: 55555554
> [  584.923394] ------------[ cut here ]------------
> [  584.923398] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  584.923413] invalid opcode: 0000 [#3] PREEMPT SMP NOPTI
> [  584.923416] CPU: 5 PID: 18148 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
> [  584.923418] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  584.923420] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  584.923492] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  584.923494] RSP: 0018:ffffa6170f3afa40 EFLAGS: 00010202
> [  584.923497] RAX: ffff8a3cc8455f40 RBX: ffff8a3dfe6ad200 RCX: 0000000000000002
> [  584.923499] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3dfe6af800
> [  584.923500] RBP: ffff8a3f0c74e000 R08: ffff8a3dfe6af860 R09: 0000000000000001
> [  584.923501] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  584.923502] R13: 0000000000020000 R14: ffff8a3dfe6af800 R15: ffff8a3dfe6af800
> [  584.923503] FS:  00007f6e7e01c740(0000) GS:ffff8a4060540000(0000) knlGS:0000000000000000
> [  584.923504] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  584.923505] CR2: 00005639e8e701a4 CR3: 000000018b27c003 CR4: 0000000000770ee0
> [  584.923507] PKRU: 55555554
> [  584.923508] Call Trace:
> [  584.923511]  <TASK>
> [  584.923513]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  584.923569]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  584.923610]  ? update_load_avg+0x7e/0x780
> [  584.923613]  ? __cgroup_account_cputime+0x4c/0x70
> [  584.923616]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  584.923655]  ? psi_group_change+0x152/0x3d0
> [  584.923658]  ? select_task_rq_fair+0x174/0x1720
> [  584.923660]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  584.923663]  ? lock_timer_base+0x61/0x80
> [  584.923665]  ? preempt_count_add+0x6a/0xa0
> [  584.923667]  ? _raw_spin_unlock+0x15/0x30
> [  584.923670]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  584.923697]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  584.923737]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  584.923776]  ? tomoyo_init_request_info+0x95/0xc0
> [  584.923780]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  584.923782]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  584.923803]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  584.923842]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  584.923870]  drm_ioctl+0x24c/0x490 [drm]
> [  584.923893]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  584.923938]  __x64_sys_ioctl+0x8d/0xd0
> [  584.923942]  do_syscall_64+0x37/0x90
> [  584.923944]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  584.923948] RIP: 0033:0x7f6e7dc3dafb
> [  584.923949] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  584.923951] RSP: 002b:00007ffcc1247030 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  584.923952] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f6e7dc3dafb
> [  584.923953] RDX: 00007ffcc1247110 RSI: 0000000040786445 RDI: 000000000000000e
> [  584.923954] RBP: 00007ffcc12470c0 R08: 0000000000000000 R09: 0000000000000078
> [  584.923955] R10: 00007ffcc1244e33 R11: 0000000000000246 R12: 0000000000000000
> [  584.923956] R13: 00007ffcc1248ff8 R14: 0000000000000000 R15: 00007f6e7e378020
> [  584.923957]  </TASK>
> [  584.923958] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  584.923991]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  584.924025]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  584.924031] ---[ end trace 0000000000000000 ]---
> [  586.008597] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  586.008679] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  586.008681] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  586.008684] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  586.008685] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  586.008687] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  586.008688] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  586.008689] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  586.008691] FS:  00007f6e7e01c740(0000) GS:ffff8a4060540000(0000) knlGS:0000000000000000
> [  586.008692] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  586.008694] CR2: 00005639e8e701a4 CR3: 000000018b27c003 CR4: 0000000000770ee0
> [  586.008695] PKRU: 55555554
> [  586.010521] ------------[ cut here ]------------
> [  586.010524] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  586.010531] invalid opcode: 0000 [#4] PREEMPT SMP NOPTI
> [  586.010534] CPU: 6 PID: 18150 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
> [  586.010537] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  586.010538] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  586.010616] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  586.010618] RSP: 0018:ffffa6170f3b7a40 EFLAGS: 00010202
> [  586.010621] RAX: ffff8a3d273b5f40 RBX: ffff8a3f0c45d000 RCX: 0000000000000002
> [  586.010622] RDX: 0000000000000013 RSI: ffff8a3cc1f14000 RDI: ffff8a3f0c483000
> [  586.010623] RBP: ffff8a3d20083800 R08: ffff8a3f0c483060 R09: 0000000000000001
> [  586.010625] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  586.010626] R13: 0000000000020000 R14: ffff8a3f0c483000 R15: ffff8a3f0c483000
> [  586.010627] FS:  00007ff676bb2740(0000) GS:ffff8a4060580000(0000) knlGS:0000000000000000
> [  586.010628] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  586.010630] CR2: 000056437f23d1a4 CR3: 00000002c5f46002 CR4: 0000000000770ee0
> [  586.010632] PKRU: 55555554
> [  586.010632] Call Trace:
> [  586.010635]  <TASK>
> [  586.010638]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  586.010702]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  586.010764]  ? update_load_avg+0x7e/0x780
> [  586.010768]  ? __cgroup_account_cputime+0x4c/0x70
> [  586.010772]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  586.010833]  ? psi_group_change+0x152/0x3d0
> [  586.010837]  ? select_task_rq_fair+0x174/0x1720
> [  586.010840]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  586.010844]  ? lock_timer_base+0x61/0x80
> [  586.010846]  ? preempt_count_add+0x6a/0xa0
> [  586.010849]  ? _raw_spin_unlock+0x15/0x30
> [  586.010852]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  586.010889]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  586.010955]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  586.011018]  ? tomoyo_init_request_info+0x95/0xc0
> [  586.011022]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  586.011024]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  586.011064]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  586.011124]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  586.011161]  drm_ioctl+0x24c/0x490 [drm]
> [  586.011193]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  586.011261]  __x64_sys_ioctl+0x8d/0xd0
> [  586.011265]  do_syscall_64+0x37/0x90
> [  586.011268]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  586.011272] RIP: 0033:0x7ff676d1cafb
> [  586.011275] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  586.011276] RSP: 002b:00007ffeacdccf10 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  586.011279] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007ff676d1cafb
> [  586.011280] RDX: 00007ffeacdccff0 RSI: 0000000040786445 RDI: 000000000000000e
> [  586.011281] RBP: 00007ffeacdccfa0 R08: 0000000000000000 R09: 0000000000000078
> [  586.011283] R10: 00007ffeacdcad13 R11: 0000000000000246 R12: 0000000000000000
> [  586.011284] R13: 00007ffeacdceed8 R14: 0000000000000000 R15: 00007ff6774af020
> [  586.011286]  </TASK>
> [  586.011287] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  586.011337]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  586.011390]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  586.011398] ---[ end trace 0000000000000000 ]---
> [  586.137384] ------------[ cut here ]------------
> [  586.137390] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  586.137397] invalid opcode: 0000 [#5] PREEMPT SMP NOPTI
> [  586.137401] CPU: 7 PID: 18153 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
> [  586.137404] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  586.137406] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  586.137488] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  586.137490] RSP: 0018:ffffa6170f3cfa40 EFLAGS: 00010202
> [  586.137493] RAX: ffff8a3d41f75f40 RBX: ffff8a3f0c24de00 RCX: 0000000000000002
> [  586.137495] RDX: 0000000000000013 RSI: ffff8a3cc1f14000 RDI: ffff8a3f0c24c000
> [  586.137496] RBP: ffff8a3cc6177c00 R08: ffff8a3f0c24c060 R09: 0000000000000001
> [  586.137498] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  586.137499] R13: 0000000000020000 R14: ffff8a3f0c24c000 R15: ffff8a3f0c24c000
> [  586.137501] FS:  00007fc966258740(0000) GS:ffff8a40605c0000(0000) knlGS:0000000000000000
> [  586.137503] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  586.137504] CR2: 00007fc963c90a9a CR3: 00000002c5ca6001 CR4: 0000000000770ee0
> [  586.137506] PKRU: 55555554
> [  586.137507] Call Trace:
> [  586.137510]  <TASK>
> [  586.137513]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  586.137576]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  586.137638]  ? update_load_avg+0x7e/0x780
> [  586.137642]  ? __cgroup_account_cputime+0x4c/0x70
> [  586.137646]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  586.137705]  ? psi_group_change+0x152/0x3d0
> [  586.137710]  ? select_task_rq_fair+0x174/0x1720
> [  586.137713]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  586.137717]  ? lock_timer_base+0x61/0x80
> [  586.137720]  ? preempt_count_add+0x6a/0xa0
> [  586.137723]  ? _raw_spin_unlock+0x15/0x30
> [  586.137726]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  586.137765]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  586.137826]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  586.137887]  ? tomoyo_init_request_info+0x95/0xc0
> [  586.137891]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  586.137894]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  586.137925]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  586.137985]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  586.138017]  drm_ioctl+0x24c/0x490 [drm]
> [  586.138047]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  586.138107]  __x64_sys_ioctl+0x8d/0xd0
> [  586.138112]  do_syscall_64+0x37/0x90
> [  586.138115]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  586.138119] RIP: 0033:0x7fc96643dafb
> [  586.138122] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  586.138124] RSP: 002b:00007ffc7383a720 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  586.138127] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fc96643dafb
> [  586.138128] RDX: 00007ffc7383a800 RSI: 0000000040786445 RDI: 000000000000000e
> [  586.138130] RBP: 00007ffc7383a7b0 R08: 0000000000000000 R09: 0000000000000078
> [  586.138131] R10: 00007ffc73838523 R11: 0000000000000246 R12: 0000000000000000
> [  586.138132] R13: 00007ffc7383c6e8 R14: 0000000000000000 R15: 00007fc966b56020
> [  586.138135]  </TASK>
> [  586.138136] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  586.138183]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  586.138236]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  586.138245] ---[ end trace 0000000000000000 ]---
> [  586.203830] ------------[ cut here ]------------
> [  586.203834] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  586.203841] invalid opcode: 0000 [#6] PREEMPT SMP NOPTI
> [  586.203844] CPU: 3 PID: 18151 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
> [  586.203846] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  586.203848] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  586.203920] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  586.203921] RSP: 0018:ffffa6170f3bfa40 EFLAGS: 00010202
> [  586.203924] RAX: ffff8a3cc6cedf40 RBX: ffff8a3e36f7be00 RCX: 0000000000000002
> [  586.203925] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3e36f7a400
> [  586.203926] RBP: ffff8a3eed3e9000 R08: ffff8a3e36f7a460 R09: 0000000000000001
> [  586.203927] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  586.203928] R13: 0000000000020000 R14: ffff8a3e36f7a400 R15: ffff8a3e36f7a400
> [  586.203929] FS:  00007ff5022c2740(0000) GS:ffff8a40604c0000(0000) knlGS:0000000000000000
> [  586.203930] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  586.203931] CR2: 00005637548a21a4 CR3: 0000000487fe8003 CR4: 0000000000770ee0
> [  586.203933] PKRU: 55555554
> [  586.203933] Call Trace:
> [  586.203936]  <TASK>
> [  586.203938]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  586.203985]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  586.204031]  ? update_load_avg+0x7e/0x780
> [  586.204035]  ? __cgroup_account_cputime+0x4c/0x70
> [  586.204038]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  586.204081]  ? psi_group_change+0x152/0x3d0
> [  586.204084]  ? select_task_rq_fair+0x174/0x1720
> [  586.204087]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  586.204090]  ? lock_timer_base+0x61/0x80
> [  586.204092]  ? preempt_count_add+0x6a/0xa0
> [  586.204095]  ? _raw_spin_unlock+0x15/0x30
> [  586.204098]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  586.204131]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  586.204176]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  586.204220]  ? tomoyo_init_request_info+0x95/0xc0
> [  586.204224]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  586.204226]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  586.204249]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  586.266200]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  586.266241]  drm_ioctl+0x24c/0x490 [drm]
> [  586.266273]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  586.266332]  __x64_sys_ioctl+0x8d/0xd0
> [  586.266336]  do_syscall_64+0x37/0x90
> [  586.266340]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  586.266345] RIP: 0033:0x7ff5024fcafb
> [  586.266348] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  586.266350] RSP: 002b:00007ffdca7cde00 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  586.266353] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007ff5024fcafb
> [  586.266354] RDX: 00007ffdca7cdee0 RSI: 0000000040786445 RDI: 000000000000000e
> [  586.266355] RBP: 00007ffdca7cde90 R08: 0000000000000000 R09: 0000000000000078
> [  586.266357] R10: 00007ffdca7cbc03 R11: 0000000000000246 R12: 0000000000000000
> [  586.266358] R13: 00007ffdca7cfdc8 R14: 0000000000000000 R15: 00007ff502bc0020
> [  586.266361]  </TASK>
> [  586.266362] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  586.266414]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  586.266469]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  586.266495] ---[ end trace 0000000000000000 ]---
> [  586.961460] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  586.961541] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  586.961542] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  586.961545] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  586.961546] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  586.961548] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  586.961549] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  586.961550] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  586.961551] FS:  00007ff676bb2740(0000) GS:ffff8a4060580000(0000) knlGS:0000000000000000
> [  586.961552] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  586.961553] CR2: 000056437f23d1a4 CR3: 00000002c5f46002 CR4: 0000000000770ee0
> [  586.961555] PKRU: 55555554
> [  587.916215] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  587.916313] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  587.916316] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  587.916318] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  587.916321] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  587.916322] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  587.916323] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  587.916325] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  587.916326] FS:  00007fc966258740(0000) GS:ffff8a40605c0000(0000) knlGS:0000000000000000
> [  587.916328] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  587.916330] CR2: 00007fc963c90a9a CR3: 00000002c5ca6001 CR4: 0000000000770ee0
> [  587.916331] PKRU: 55555554
> [  588.857849] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  588.857933] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  588.857935] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  588.857937] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  588.857938] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  588.857939] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  588.857940] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  588.857941] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  588.857942] FS:  00007ff5022c2740(0000) GS:ffff8a40604c0000(0000) knlGS:0000000000000000
> [  588.857943] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  588.857944] CR2: 00005637548a21a4 CR3: 0000000487fe8003 CR4: 0000000000770ee0
> [  588.857960] PKRU: 55555554
> [  702.893558] ------------[ cut here ]------------
> [  702.893562] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  702.893568] invalid opcode: 0000 [#7] PREEMPT SMP NOPTI
> [  702.893571] CPU: 1 PID: 18205 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
> [  702.893572] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  702.893573] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  702.893631] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  702.893632] RSP: 0018:ffffa6170f5d3a40 EFLAGS: 00010202
> [  702.893634] RAX: ffff8a3cdb7d3f80 RBX: ffff8a3e36fc2e00 RCX: 0000000000000002
> [  702.893635] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3e36fc0e00
> [  702.893636] RBP: ffff8a4047e6d800 R08: ffff8a3e36fc0e60 R09: 0000000000000001
> [  702.893637] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  702.893638] R13: 0000000000020000 R14: ffff8a3e36fc0e00 R15: ffff8a3e36fc0e00
> [  702.893639] FS:  00007f5c1292f740(0000) GS:ffff8a4060440000(0000) knlGS:0000000000000000
> [  702.893640] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  702.893641] CR2: 00007f5c0f107000 CR3: 000000015c374005 CR4: 0000000000770ee0
> [  702.893642] PKRU: 55555554
> [  702.893643] Call Trace:
> [  702.893645]  <TASK>
> [  702.893647]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  702.893689]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  702.893730]  ? update_load_avg+0x7e/0x780
> [  702.893733]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  702.893771]  ? ___slab_alloc+0x4d5/0x9a0
> [  702.893774]  ? xe_vm_bind_ioctl+0xf96/0x2430 [xe]
> [  702.893812]  ? xe_vm_bind_ioctl+0xf96/0x2430 [xe]
> [  702.893849]  ? preempt_count_add+0x6a/0xa0
> [  702.893852]  ? _raw_spin_unlock+0x15/0x30
> [  702.893855]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  702.893883]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  702.893922]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  702.893961]  ? tomoyo_init_request_info+0x95/0xc0
> [  702.893963]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  702.893965]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  702.893986]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  702.894024]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  702.894049]  drm_ioctl+0x24c/0x490 [drm]
> [  702.894070]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  702.894109]  __x64_sys_ioctl+0x8d/0xd0
> [  702.894112]  do_syscall_64+0x37/0x90
> [  702.894114]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  702.894118] RIP: 0033:0x7f5c12b1cafb
> [  702.894119] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  702.894121] RSP: 002b:00007ffe4ff4caf0 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  702.894122] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f5c12b1cafb
> [  702.894123] RDX: 00007ffe4ff4cbd0 RSI: 0000000040786445 RDI: 000000000000000e
> [  702.894124] RBP: 00007ffe4ff4cb80 R08: 0000000000000000 R09: 0000000000000078
> [  702.894125] R10: 00007ffe4ff4a8f3 R11: 0000000000000246 R12: 0000000000000000
> [  702.894125] R13: 00007ffe4ff4eab8 R14: 0000000000000000 R15: 00007f5c1322b020
> [  702.894127]  </TASK>
> [  702.894127] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  702.894157]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  702.894189]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  702.894194] ---[ end trace 0000000000000000 ]---
> [  703.331800] ------------[ cut here ]------------
> [  703.331804] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:67!
> [  703.331810] invalid opcode: 0000 [#8] PREEMPT SMP NOPTI
> [  703.331813] CPU: 7 PID: 18207 Comm: deqp-vk Tainted: G      D W          6.3.0pz+ #90
> [  703.331815] Hardware name: ASUSTeK COMPUTER INC. ZenBook UX325EA_UX325EA/UX325EA, BIOS UX325EA.316 06/10/2022
> [  703.331816] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  703.331874] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  703.331876] RSP: 0018:ffffa6170f5e3a40 EFLAGS: 00010202
> [  703.331878] RAX: ffff8a3d20bd9fc0 RBX: ffff8a3e36f88400 RCX: 0000000000000002
> [  703.331879] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3ecd756200
> [  703.331880] RBP: ffff8a3eb86d6400 R08: ffff8a3ecd756260 R09: 0000000000000001
> [  703.331881] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  703.331881] R13: 0000000000020000 R14: ffff8a3ecd756200 R15: ffff8a3ecd756200
> [  703.331882] FS:  00007f924fc1d740(0000) GS:ffff8a40605c0000(0000) knlGS:0000000000000000
> [  703.331884] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  703.331885] CR2: 00007f9240000020 CR3: 00000002c5ee6001 CR4: 0000000000770ee0
> [  703.331886] PKRU: 55555554
> [  703.331887] Call Trace:
> [  703.331889]  <TASK>
> [  703.331891]  ? xe_vma_create+0x59/0x2d0 [xe]
> [  703.331933]  vm_bind_ioctl_lookup_vma+0xc21/0xef0 [xe]
> [  703.331974]  ? __vm_bind_ioctl_lookup_vma.constprop.0+0x8f/0x150 [xe]
> [  703.332010]  ? _raw_spin_lock+0x13/0x40
> [  703.332014]  ? psi_group_change+0x152/0x3d0
> [  703.332018]  ? select_task_rq_fair+0x174/0x1720
> [  703.332021]  ? _raw_spin_lock_irqsave+0x23/0x50
> [  703.332023]  ? preempt_count_add+0x6a/0xa0
> [  703.332025]  ? _raw_spin_unlock+0x15/0x30
> [  703.332028]  ? drm_syncobj_find+0x49/0x80 [drm]
> [  703.332055]  ? xe_sync_entry_parse+0xcd/0x640 [xe]
> [  703.332095]  xe_vm_bind_ioctl+0x122a/0x2430 [xe]
> [  703.332134]  ? tomoyo_init_request_info+0x95/0xc0
> [  703.332137]  ? tomoyo_path_number_perm+0x68/0x1d0
> [  703.332139]  ? drm_syncobj_get_handle+0x74/0x100 [drm]
> [  703.332160]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  703.332198]  drm_ioctl_kernel+0xbe/0x160 [drm]
> [  703.332222]  drm_ioctl+0x24c/0x490 [drm]
> [  703.332244]  ? __pfx_xe_vm_bind_ioctl+0x10/0x10 [xe]
> [  703.332283]  __x64_sys_ioctl+0x8d/0xd0
> [  703.332286]  do_syscall_64+0x37/0x90
> [  703.332288]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [  703.332291] RIP: 0033:0x7f924f83dafb
> [  703.332293] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> [  703.332294] RSP: 002b:00007ffce8a0d910 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [  703.332295] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f924f83dafb
> [  703.332296] RDX: 00007ffce8a0d9f0 RSI: 0000000040786445 RDI: 000000000000000e
> [  703.332297] RBP: 00007ffce8a0d9a0 R08: 0000000000000000 R09: 0000000000000078
> [  703.332298] R10: 00007ffce8a0b713 R11: 0000000000000246 R12: 0000000000000000
> [  703.332299] R13: 00007ffce8a0f8d8 R14: 0000000000000000 R15: 00007f924ff11020
> [  703.332300]  </TASK>
> [  703.332301] Modules linked in: ccm rfcomm cmac algif_hash algif_skcipher af_alg qrtr bnep nls_ascii nls_cp437 vfat fat snd_ctl_led snd_soc_skl_hda_dsp snd_soc_intel_hda_dsp_common snd_soc_hdac_hdmi snd_sof_probes snd_soc_dmic joydev snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel btmtk snd_sof_pci_intel_tgl snd_sof_intel_hda_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_acpi_intel_match snd_soc_hdac_hda snd_sof_pci kvm_intel snd_sof_xtensa_dsp iwlmvm bluetooth snd_sof_intel_hda kvm mac80211 snd_sof snd_sof_utils snd_hda_ext_core snd_soc_acpi libarc4 irqbypass crc32_pclmul snd_soc_core jitterentropy_rng ghash_clmulni_intel snd_compress iwlwifi sha512_ssse3 snd_hda_intel sha512_generic snd_intel_dspcfg mei_hdcp intel_rapl_msr ctr snd_hda_codec uvcvideo cfg80211 asus_nb_wmi drbg aesni_intel videobuf2_vmalloc videobuf2_memops asus_wmi snd_hwdep uvc ansi_cprng videobuf2_v4l2 crypto_simd ledtrig_audio cryptd ecdh_generic sparse_keymap snd_hda_core ecc platform_profile
> [  703.332330]  iTCO_wdt videodev snd_pcm intel_pmc_bxt intel_cstate iTCO_vendor_support intel_uncore videobuf2_common mc pcspkr watchdog processor_thermal_device_pci_legacy snd_timer mei_me wmi_bmof intel_soc_dts_iosf snd processor_thermal_device ucsi_acpi mei soundcore processor_thermal_rfim typec_ucsi processor_thermal_mbox rfkill processor_thermal_rapl roles typec intel_rapl_common int3403_thermal battery int340x_thermal_zone int3400_thermal intel_pmc_core button acpi_thermal_rel acpi_tad acpi_pad evdev hid_multitouch serio_raw msr parport_pc ppdev lp parport fuse efi_pstore configfs efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 mbcache jbd2 r8152 mii nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif crct10dif_generic xe hid_generic drm_ttm_helper ttm i2c_algo_bit gpu_sched drm_buddy drm_suballoc_helper drm_display_helper drm_kms_helper rtsx_pci_sdmmc xhci_pci mmc_core xhci_hcd crct10dif_pclmul drm crct10dif_common crc32c_intel usbcore rtsx_pci i2c_i801 intel_lpss_pci cec i2c_smbus i2c_hid_acpi
> [  703.332362]  intel_lpss rc_core i2c_hid idma64 vmd usb_common hid video wmi
> [  703.332367] ---[ end trace 0000000000000000 ]---
> [  703.934202] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  703.934284] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  703.934287] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  703.934290] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  703.934292] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  703.934293] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  703.934295] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  703.934296] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  703.934298] FS:  00007f5c1292f740(0000) GS:ffff8a4060440000(0000) knlGS:0000000000000000
> [  703.934300] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  703.934301] CR2: 00007f5c0f107000 CR3: 000000015c374005 CR4: 0000000000770ee0
> [  703.934314] PKRU: 55555554
> [  704.939954] RIP: 0010:xe_vma_userptr_pin_pages+0x23/0x400 [xe]
> [  704.940023] Code: 90 90 90 90 90 90 90 0f 1f 44 00 00 41 57 41 56 41 55 41 54 55 53 65 48 8b 04 25 c0 13 03 00 48 83 ec 40 48 83 7f 38 00 74 02 <0f> 0b 8b 4f 30 49 89 fe f6 c1 02 75 f3 48 8b 57 18 48 8b 80 e0 08
> [  704.940025] RSP: 0018:ffffa6170f3c7a40 EFLAGS: 00010202
> [  704.940027] RAX: ffff8a3d28398000 RBX: ffff8a3da44cce00 RCX: 0000000000000002
> [  704.940028] RDX: 0000000000000017 RSI: ffff8a3cc1f14000 RDI: ffff8a3da44cee00
> [  704.940029] RBP: ffff8a3cd4e5f400 R08: ffff8a3da44cee60 R09: 0000000000000001
> [  704.940030] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
> [  704.940030] R13: 0000000000020000 R14: ffff8a3da44cee00 R15: ffff8a3da44cee00
> [  704.940031] FS:  00007f924fc1d740(0000) GS:ffff8a40605c0000(0000) knlGS:0000000000000000
> [  704.940032] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  704.940033] CR2: 00007f9240000020 CR3: 00000002c5ee6001 CR4: 0000000000770ee0
> [  704.940035] PKRU: 55555554
> [  705.036071] ------------[ cut here ]------------
> 
> 
> 
> Suggested-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
> Signed-off-by: Matthew Brost <matthew.brost@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_bo.h           |  1 +
>  drivers/gpu/drm/xe/xe_exec.c         |  2 +
>  drivers/gpu/drm/xe/xe_gt_pagefault.c |  4 +-
>  drivers/gpu/drm/xe/xe_pt.c           | 71 +++++++++++++++------
>  drivers/gpu/drm/xe/xe_vm.c           | 95 ++++++++++++++++++----------
>  drivers/gpu/drm/xe/xe_vm.h           | 12 +++-
>  drivers/gpu/drm/xe/xe_vm_types.h     |  1 +
>  include/uapi/drm/xe_drm.h            |  8 +++
>  8 files changed, 138 insertions(+), 56 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
> index dd3d448fee0b..3a148cc6e811 100644
> --- a/drivers/gpu/drm/xe/xe_bo.h
> +++ b/drivers/gpu/drm/xe/xe_bo.h
> @@ -61,6 +61,7 @@
>  #define XE_PPGTT_PTE_LM			BIT_ULL(11)
>  #define XE_PDE_64K			BIT_ULL(6)
>  #define XE_PTE_PS64			BIT_ULL(8)
> +#define XE_PTE_NULL			BIT_ULL(9)
>  
> 
> 
> 
>  #define XE_PAGE_PRESENT			BIT_ULL(0)
>  #define XE_PAGE_RW			BIT_ULL(1)
> diff --git a/drivers/gpu/drm/xe/xe_exec.c b/drivers/gpu/drm/xe/xe_exec.c
> index e44076ee2e11..4f7694a29348 100644
> --- a/drivers/gpu/drm/xe/xe_exec.c
> +++ b/drivers/gpu/drm/xe/xe_exec.c
> @@ -120,6 +120,8 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
>  	 * to a location where the GPU can access it).
>  	 */
>  	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
> +		XE_WARN_ON(xe_vma_is_null(vma));
> +
>  		if (xe_vma_is_userptr(vma))
>  			continue;
>  
> 
> 
> 
> diff --git a/drivers/gpu/drm/xe/xe_gt_pagefault.c b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> index 73db7f7c0381..6faebd02f3fb 100644
> --- a/drivers/gpu/drm/xe/xe_gt_pagefault.c
> +++ b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> @@ -533,8 +533,8 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
>  
> 
> 
> 
>  	trace_xe_vma_acc(vma);
>  
> 
> 
> 
> -	/* Userptr can't be migrated, nothing to do */
> -	if (xe_vma_is_userptr(vma))
> +	/* Userptr or null can't be migrated, nothing to do */
> +	if (xe_vma_has_no_bo(vma))
>  		goto unlock_vm;
>  
> 
> 
> 
>  	/* Lock VM and BOs dma-resv */
> diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
> index 39ec94549439..265ee45bee5c 100644
> --- a/drivers/gpu/drm/xe/xe_pt.c
> +++ b/drivers/gpu/drm/xe/xe_pt.c
> @@ -81,7 +81,9 @@ u64 gen8_pde_encode(struct xe_bo *bo, u64 bo_offset,
>  static dma_addr_t vma_addr(struct xe_vma *vma, u64 offset,
>  			   size_t page_size, bool *is_vram)
>  {
> -	if (xe_vma_is_userptr(vma)) {
> +	if (xe_vma_is_null(vma)) {
> +		return 0;
> +	} else if (xe_vma_is_userptr(vma)) {
>  		struct xe_res_cursor cur;
>  		u64 page;
>  
> 
> 
> 
> @@ -559,6 +561,10 @@ static bool xe_pt_hugepte_possible(u64 addr, u64 next, unsigned int level,
>  	if (next - xe_walk->va_curs_start > xe_walk->curs->size)
>  		return false;
>  
> 
> 
> 
> +	/* null VMA's do not have dma adresses */
> +	if (xe_walk->pte_flags & XE_PTE_FLAG_NULL)
> +		return true;
> +
>  	/* Is the DMA address huge PTE size aligned? */
>  	size = next - addr;
>  	dma = addr - xe_walk->va_curs_start + xe_res_dma(xe_walk->curs);
> @@ -575,6 +581,10 @@ xe_pt_scan_64K(u64 addr, u64 next, struct xe_pt_stage_bind_walk *xe_walk)
>  {
>  	struct xe_res_cursor curs = *xe_walk->curs;
>  
> 
> 
> 
> +	/* null VMA's do not have dma adresses */
> +	if (xe_walk->pte_flags & XE_PTE_FLAG_NULL)
> +		return true;
> +
>  	if (!IS_ALIGNED(addr, SZ_64K))
>  		return false;
>  
> 
> 
> 
> @@ -631,12 +641,29 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
>  	/* Is this a leaf entry ?*/
>  	if (level == 0 || xe_pt_hugepte_possible(addr, next, level, xe_walk)) {
>  		struct xe_res_cursor *curs = xe_walk->curs;
> +		u64 pte = 0;
> +		bool is_null = xe_walk->pte_flags & XE_PTE_FLAG_NULL;
>  
> 
> 
> 
>  		XE_WARN_ON(xe_walk->va_curs_start != addr);
>  
> 
> 
> 
> -		pte = __gen8_pte_encode(xe_res_dma(curs) + xe_walk->dma_offset,
> -					xe_walk->cache, xe_walk->pte_flags,
> -					level);
> +		if (is_null) {
> +			pte |= XE_PAGE_PRESENT | XE_PAGE_RW;
> +			if (xe_walk->pte_flags & XE_PTE_FLAG_READ_ONLY)
> +				pte &= ~XE_PAGE_RW;
> +
> +			if (level == 1)
> +				pte |= XE_PDE_PS_2M;
> +			else if (level == 2)
> +				pte |= XE_PDPE_PS_1G;
> +
> +			pte |= XE_PTE_NULL;
> +		} else {
> +			pte = __gen8_pte_encode(xe_res_dma(curs) +
> +						xe_walk->dma_offset,
> +						xe_walk->cache,
> +						xe_walk->pte_flags,
> +						level);
> +		}
>  		pte |= xe_walk->default_pte;
>  
> 
> 
> 
>  		/*
> @@ -654,7 +681,8 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
>  		if (unlikely(ret))
>  			return ret;
>  
> 
> 
> 
> -		xe_res_next(curs, next - addr);
> +		if (!is_null)
> +			xe_res_next(curs, next - addr);
>  		xe_walk->va_curs_start = next;
>  		*action = ACTION_CONTINUE;
>  
> 
> 
> 
> @@ -761,24 +789,29 @@ xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
>  		xe_walk.dma_offset = vram_region_gpu_offset(bo->ttm.resource);
>  		xe_walk.cache = XE_CACHE_WB;
>  	} else {
> -		if (!xe_vma_is_userptr(vma) && bo->flags & XE_BO_SCANOUT_BIT)
> +		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_is_userptr(vma) && xe_bo_is_stolen(bo))
> +	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));
>  
> 
> 
> 
>  	xe_bo_assert_held(bo);
> -	if (xe_vma_is_userptr(vma))
> -		xe_res_first_sg(vma->userptr.sg, 0, vma->end - vma->start + 1,
> -				&curs);
> -	else if (xe_bo_is_vram(bo) || xe_bo_is_stolen(bo))
> -		xe_res_first(bo->ttm.resource, vma->bo_offset,
> -			     vma->end - vma->start + 1, &curs);
> -	else
> -		xe_res_first_sg(xe_bo_get_sg(bo), vma->bo_offset,
> -				vma->end - vma->start + 1, &curs);
> +
> +	if (!xe_vma_is_null(vma)) {
> +		if (xe_vma_is_userptr(vma))
> +			xe_res_first_sg(vma->userptr.sg, 0,
> +					vma->end - vma->start + 1, &curs);
> +		else if (xe_bo_is_vram(bo) || xe_bo_is_stolen(bo))
> +			xe_res_first(bo->ttm.resource, vma->bo_offset,
> +				     vma->end - vma->start + 1, &curs);
> +		else
> +			xe_res_first_sg(xe_bo_get_sg(bo), vma->bo_offset,
> +					vma->end - vma->start + 1, &curs);
> +	} else {
> +		curs.size = vma->end - vma->start + 1;
> +	}
>  
> 
> 
> 
>  	ret = xe_pt_walk_range(&pt->base, pt->level, vma->start, vma->end + 1,
>  				&xe_walk.base);
> @@ -967,7 +1000,7 @@ static void xe_pt_commit_locks_assert(struct xe_vma *vma)
>  
> 
> 
> 
>  	if (xe_vma_is_userptr(vma))
>  		lockdep_assert_held_read(&vm->userptr.notifier_lock);
> -	else
> +	else if (!xe_vma_is_null(vma))
>  		dma_resv_assert_held(vma->bo->ttm.base.resv);
>  
> 
> 
> 
>  	dma_resv_assert_held(&vm->resv);
> @@ -1330,7 +1363,7 @@ __xe_pt_bind_vma(struct xe_tile *tile, struct xe_vma *vma, struct xe_engine *e,
>  				   DMA_RESV_USAGE_KERNEL :
>  				   DMA_RESV_USAGE_BOOKKEEP);
>  
> 
> 
> 
> -		if (!xe_vma_is_userptr(vma) && !vma->bo->vm)
> +		if (!xe_vma_has_no_bo(vma) && !vma->bo->vm)
>  			dma_resv_add_fence(vma->bo->ttm.base.resv, fence,
>  					   DMA_RESV_USAGE_BOOKKEEP);
>  		xe_pt_commit_bind(vma, entries, num_entries, rebind,
> @@ -1647,7 +1680,7 @@ __xe_pt_unbind_vma(struct xe_tile *tile, struct xe_vma *vma, struct xe_engine *e
>  				   DMA_RESV_USAGE_BOOKKEEP);
>  
> 
> 
> 
>  		/* This fence will be installed by caller when doing eviction */
> -		if (!xe_vma_is_userptr(vma) && !vma->bo->vm)
> +		if (!xe_vma_has_no_bo(vma) && !vma->bo->vm)
>  			dma_resv_add_fence(vma->bo->ttm.base.resv, fence,
>  					   DMA_RESV_USAGE_BOOKKEEP);
>  		xe_pt_commit_unbind(vma, entries, num_entries,
> diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> index 94fc9c330235..f7629db275f9 100644
> --- a/drivers/gpu/drm/xe/xe_vm.c
> +++ b/drivers/gpu/drm/xe/xe_vm.c
> @@ -590,7 +590,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
>  		goto out_unlock;
>  
> 
> 
> 
>  	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
> -		if (xe_vma_is_userptr(vma) || vma->destroyed)
> +		if (xe_vma_has_no_bo(vma) || vma->destroyed)
>  			continue;
>  
> 
> 
> 
>  		err = xe_bo_validate(vma->bo, vm, false);
> @@ -843,6 +843,7 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
>  				    u64 bo_offset_or_userptr,
>  				    u64 start, u64 end,
>  				    bool read_only,
> +				    bool is_null,
>  				    u64 tile_mask)
>  {
>  	struct xe_vma *vma;
> @@ -868,8 +869,11 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
>  	vma->vm = vm;
>  	vma->start = start;
>  	vma->end = end;
> +	vma->pte_flags = 0;
>  	if (read_only)
> -		vma->pte_flags = XE_PTE_FLAG_READ_ONLY;
> +		vma->pte_flags |= XE_PTE_FLAG_READ_ONLY;
> +	if (is_null)
> +		vma->pte_flags |= XE_PTE_FLAG_NULL;
>  
> 
> 
> 
>  	if (tile_mask) {
>  		vma->tile_mask = tile_mask;
> @@ -886,23 +890,26 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
>  		vma->bo_offset = bo_offset_or_userptr;
>  		vma->bo = xe_bo_get(bo);
>  		list_add_tail(&vma->bo_link, &bo->vmas);
> -	} else /* userptr */ {
> -		u64 size = end - start + 1;
> -		int err;
> +	} else /* userptr or null */ {
> +		if (!is_null) {
> +			u64 size = end - start + 1;
> +			int err;
>  
> 
> 
> 
> -		vma->userptr.ptr = bo_offset_or_userptr;
> +			vma->userptr.ptr = bo_offset_or_userptr;
>  
> 
> 
> 
> -		err = mmu_interval_notifier_insert(&vma->userptr.notifier,
> -						   current->mm,
> -						   vma->userptr.ptr, size,
> -						   &vma_userptr_notifier_ops);
> -		if (err) {
> -			kfree(vma);
> -			vma = ERR_PTR(err);
> -			return vma;
> +			err = mmu_interval_notifier_insert(&vma->userptr.notifier,
> +							   current->mm,
> +							   vma->userptr.ptr, size,
> +							   &vma_userptr_notifier_ops);
> +			if (err) {
> +				kfree(vma);
> +				vma = ERR_PTR(err);
> +				return vma;
> +			}
> +
> +			vma->userptr.notifier_seq = LONG_MAX;
>  		}
>  
> 
> 
> 
> -		vma->userptr.notifier_seq = LONG_MAX;
>  		xe_vm_get(vm);
>  	}
>  
> 
> 
> 
> @@ -942,6 +949,8 @@ static void xe_vma_destroy_late(struct xe_vma *vma)
>  		 */
>  		mmu_interval_notifier_remove(&vma->userptr.notifier);
>  		xe_vm_put(vm);
> +	} else if (xe_vma_is_null(vma)) {
> +		xe_vm_put(vm);
>  	} else {
>  		xe_bo_put(vma->bo);
>  	}
> @@ -1024,7 +1033,7 @@ static void xe_vma_destroy(struct xe_vma *vma, struct dma_fence *fence)
>  		list_del_init(&vma->userptr.invalidate_link);
>  		spin_unlock(&vm->userptr.invalidated_lock);
>  		list_del(&vma->userptr_link);
> -	} else {
> +	} else if (!xe_vma_is_null(vma)) {
>  		xe_bo_assert_held(vma->bo);
>  		list_del(&vma->bo_link);
>  
> 
> 
> 
> @@ -1391,7 +1400,7 @@ void xe_vm_close_and_put(struct xe_vm *vm)
>  	while (vm->vmas.rb_node) {
>  		struct xe_vma *vma = to_xe_vma(vm->vmas.rb_node);
>  
> 
> 
> 
> -		if (xe_vma_is_userptr(vma)) {
> +		if (xe_vma_has_no_bo(vma)) {
>  			down_read(&vm->userptr.notifier_lock);
>  			vma->destroyed = true;
>  			up_read(&vm->userptr.notifier_lock);
> @@ -1400,7 +1409,7 @@ void xe_vm_close_and_put(struct xe_vm *vm)
>  		rb_erase(&vma->vm_node, &vm->vmas);
>  
> 
> 
> 
>  		/* easy case, remove from VMA? */
> -		if (xe_vma_is_userptr(vma) || vma->bo->vm) {
> +		if (xe_vma_has_no_bo(vma) || vma->bo->vm) {
>  			xe_vma_destroy(vma, NULL);
>  			continue;
>  		}
> @@ -2034,7 +2043,7 @@ static int xe_vm_prefetch(struct xe_vm *vm, struct xe_vma *vma,
>  
> 
> 
> 
>  	XE_BUG_ON(region > ARRAY_SIZE(region_to_mem_type));
>  
> 
> 
> 
> -	if (!xe_vma_is_userptr(vma)) {
> +	if (!xe_vma_has_no_bo(vma)) {
>  		err = xe_bo_migrate(vma->bo, region_to_mem_type[region]);
>  		if (err)
>  			return err;
> @@ -2643,6 +2652,8 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
>  					  lookup->start - 1,
>  					  (first->pte_flags &
>  					   XE_PTE_FLAG_READ_ONLY),
> +					  (first->pte_flags &
> +					   XE_PTE_FLAG_NULL),
>  					  first->tile_mask);
>  		if (first->bo)
>  			xe_bo_unlock(first->bo, &ww);
> @@ -2675,6 +2686,7 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
>  					 last->end,
>  					 (last->pte_flags &
>  					  XE_PTE_FLAG_READ_ONLY),
> +					 (last->pte_flags & XE_PTE_FLAG_NULL),
>  					 last->tile_mask);
>  		if (last->bo)
>  			xe_bo_unlock(last->bo, &ww);
> @@ -2742,7 +2754,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
>  		      *next;
>  	struct rb_node *node;
>  
> 
> 
> 
> -	if (!xe_vma_is_userptr(vma)) {
> +	if (!xe_vma_has_no_bo(vma)) {
>  		if (!xe_bo_can_migrate(vma->bo, region_to_mem_type[region]))
>  			return ERR_PTR(-EINVAL);
>  	}
> @@ -2751,7 +2763,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
>  	while ((node = rb_next(node))) {
>  		if (!xe_vma_cmp_vma_cb(lookup, node)) {
>  			__vma = to_xe_vma(node);
> -			if (!xe_vma_is_userptr(__vma)) {
> +			if (!xe_vma_has_no_bo(__vma)) {
>  				if (!xe_bo_can_migrate(__vma->bo, region_to_mem_type[region]))
>  					goto flush_list;
>  			}
> @@ -2765,7 +2777,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
>  	while ((node = rb_prev(node))) {
>  		if (!xe_vma_cmp_vma_cb(lookup, node)) {
>  			__vma = to_xe_vma(node);
> -			if (!xe_vma_is_userptr(__vma)) {
> +			if (!xe_vma_has_no_bo(__vma)) {
>  				if (!xe_bo_can_migrate(__vma->bo, region_to_mem_type[region]))
>  					goto flush_list;
>  			}
> @@ -2824,21 +2836,23 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
>  
> 
> 
> 
>  	switch (VM_BIND_OP(op)) {
>  	case XE_VM_BIND_OP_MAP:
> -		XE_BUG_ON(!bo);
> -
> -		err = xe_bo_lock(bo, &ww, 0, true);
> -		if (err)
> -			return ERR_PTR(err);
> +		if (bo) {
> +			err = xe_bo_lock(bo, &ww, 0, true);
> +			if (err)
> +				return ERR_PTR(err);
> +		}
>  		vma = xe_vma_create(vm, bo, bo_offset_or_userptr, addr,
>  				    addr + range - 1,
>  				    op & XE_VM_BIND_FLAG_READONLY,
> +				    op & XE_VM_BIND_FLAG_NULL,
>  				    tile_mask);
> -		xe_bo_unlock(bo, &ww);
> +		if (bo)
> +			xe_bo_unlock(bo, &ww);
>  		if (!vma)
>  			return ERR_PTR(-ENOMEM);
>  
> 
> 
> 
>  		xe_vm_insert_vma(vm, vma);
> -		if (!bo->vm) {
> +		if (bo && !bo->vm) {
>  			vm_insert_extobj(vm, vma);
>  			err = add_preempt_fences(vm, bo);
>  			if (err) {
> @@ -2872,6 +2886,7 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
>  		vma = xe_vma_create(vm, NULL, bo_offset_or_userptr, addr,
>  				    addr + range - 1,
>  				    op & XE_VM_BIND_FLAG_READONLY,
> +				    op & XE_VM_BIND_FLAG_NULL,
>  				    tile_mask);
>  		if (!vma)
>  			return ERR_PTR(-ENOMEM);
> @@ -2897,11 +2912,12 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
>  #ifdef TEST_VM_ASYNC_OPS_ERROR
>  #define SUPPORTED_FLAGS	\
>  	(FORCE_ASYNC_OP_ERROR | XE_VM_BIND_FLAG_ASYNC | \
> -	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | 0xffff)
> +	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | \
> +	 XE_VM_BIND_FLAG_NULL | 0xffff)
>  #else
>  #define SUPPORTED_FLAGS	\
>  	(XE_VM_BIND_FLAG_ASYNC | XE_VM_BIND_FLAG_READONLY | \
> -	 XE_VM_BIND_FLAG_IMMEDIATE | 0xffff)
> +	 XE_VM_BIND_FLAG_IMMEDIATE | XE_VM_BIND_FLAG_NULL | 0xffff)
>  #endif
>  #define XE_64K_PAGE_MASK 0xffffull
>  
> 
> 
> 
> @@ -2949,6 +2965,7 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
>  		u32 obj = (*bind_ops)[i].obj;
>  		u64 obj_offset = (*bind_ops)[i].obj_offset;
>  		u32 region = (*bind_ops)[i].region;
> +		bool is_null = op &  XE_VM_BIND_FLAG_NULL;
>  
> 
> 
> 
>  		if (XE_IOCTL_ERR(xe, (*bind_ops)[i].pad) ||
>  		    XE_IOCTL_ERR(xe, (*bind_ops)[i].reserved[0] ||
> @@ -2982,8 +2999,13 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
>  		if (XE_IOCTL_ERR(xe, VM_BIND_OP(op) >
>  				 XE_VM_BIND_OP_PREFETCH) ||
>  		    XE_IOCTL_ERR(xe, op & ~SUPPORTED_FLAGS) ||
> +		    XE_IOCTL_ERR(xe, obj && is_null) ||
> +		    XE_IOCTL_ERR(xe, obj_offset && is_null) ||
> +		    XE_IOCTL_ERR(xe, VM_BIND_OP(op) != XE_VM_BIND_OP_MAP &&
> +				 is_null) ||
>  		    XE_IOCTL_ERR(xe, !obj &&
> -				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP) ||
> +				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP &&
> +				 !is_null) ||
>  		    XE_IOCTL_ERR(xe, !obj &&
>  				 VM_BIND_OP(op) == XE_VM_BIND_OP_UNMAP_ALL) ||
>  		    XE_IOCTL_ERR(xe, addr &&
> @@ -3389,6 +3411,7 @@ int xe_vm_invalidate_vma(struct xe_vma *vma)
>  	int ret;
>  
> 
> 
> 
>  	XE_BUG_ON(!xe_vm_in_fault_mode(vma->vm));
> +	XE_WARN_ON(xe_vma_is_null(vma));
>  	trace_xe_vma_usm_invalidate(vma);
>  
> 
> 
> 
>  	/* Check that we don't race with page-table updates */
> @@ -3451,8 +3474,11 @@ int xe_analyze_vm(struct drm_printer *p, struct xe_vm *vm, int gt_id)
>  	for (node = rb_first(&vm->vmas); node; node = rb_next(node)) {
>  		struct xe_vma *vma = to_xe_vma(node);
>  		bool is_userptr = xe_vma_is_userptr(vma);
> +		bool is_null = xe_vma_is_null(vma);
>  
> 
> 
> 
> -		if (is_userptr) {
> +		if (is_null) {
> +			addr = 0;
> +		} else if (is_userptr) {
>  			struct xe_res_cursor cur;
>  
> 
> 
> 
>  			xe_res_first_sg(vma->userptr.sg, 0, XE_PAGE_SIZE,
> @@ -3463,7 +3489,8 @@ int xe_analyze_vm(struct drm_printer *p, struct xe_vm *vm, int gt_id)
>  		}
>  		drm_printf(p, " [%016llx-%016llx] S:0x%016llx A:%016llx %s\n",
>  			   vma->start, vma->end, vma->end - vma->start + 1ull,
> -			   addr, is_userptr ? "USR" : is_vram ? "VRAM" : "SYS");
> +			   addr, is_null ? "NULL" : is_userptr ? "USR" :
> +			   is_vram ? "VRAM" : "SYS");
>  	}
>  	up_read(&vm->lock);
>  
> 
> 
> 
> diff --git a/drivers/gpu/drm/xe/xe_vm.h b/drivers/gpu/drm/xe/xe_vm.h
> index 372f26153209..38731e200813 100644
> --- a/drivers/gpu/drm/xe/xe_vm.h
> +++ b/drivers/gpu/drm/xe/xe_vm.h
> @@ -115,11 +115,21 @@ static inline void xe_vm_reactivate_rebind(struct xe_vm *vm)
>  	}
>  }
>  
> 
> 
> 
> -static inline bool xe_vma_is_userptr(struct xe_vma *vma)
> +static inline bool xe_vma_is_null(struct xe_vma *vma)
> +{
> +	return vma->pte_flags & XE_PTE_FLAG_NULL;
> +}
> +
> +static inline bool xe_vma_has_no_bo(struct xe_vma *vma)
>  {
>  	return !vma->bo;
>  }
>  
> 
> 
> 
> +static inline bool xe_vma_is_userptr(struct xe_vma *vma)
> +{
> +	return xe_vma_has_no_bo(vma) && !xe_vma_is_null(vma);
> +}
> +
>  int xe_vma_userptr_pin_pages(struct xe_vma *vma);
>  
> 
> 
> 
>  int xe_vma_userptr_check_repin(struct xe_vma *vma);
> diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
> index 6daddd29d416..f775bafe4619 100644
> --- a/drivers/gpu/drm/xe/xe_vm_types.h
> +++ b/drivers/gpu/drm/xe/xe_vm_types.h
> @@ -31,6 +31,7 @@ struct xe_vma {
>  	u64 end;
>  	/** @pte_flags: pte flags for this VMA */
>  #define XE_PTE_FLAG_READ_ONLY		BIT(0)
> +#define XE_PTE_FLAG_NULL		BIT(1)
>  	u32 pte_flags;
>  
> 
> 
> 
>  	/** @bo: BO if not a userptr, must be NULL is userptr */
> diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> index 0ebc50beb5e5..39a1ce89732f 100644
> --- a/include/uapi/drm/xe_drm.h
> +++ b/include/uapi/drm/xe_drm.h
> @@ -456,6 +456,14 @@ struct drm_xe_vm_bind_op {
>  	 * than differing the MAP to the page fault handler.
>  	 */
>  #define XE_VM_BIND_FLAG_IMMEDIATE	(0x1 << 18)
> +	/*
> +	 * When the NULL flag is set, the page tables are setup with a special
> +	 * bit which indicates writes are dropped and all reads return zero.  In
> +	 * the future, the NULL flags will only be valid for XE_VM_BIND_OP_MAP
> +	 * operations, the BO handle MBZ, and the BO offset MBZ. This flag is
> +	 * intended to implement VK sparse bindings.
> +	 */
> +#define XE_VM_BIND_FLAG_NULL		(0x1 << 19)
>  
> 
> 
> 
>  	/** @reserved: Reserved */
>  	__u64 reserved[2];
> 

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

* Re: [Intel-xe] [PATCH 3/3] drm/xe: NULL binding implementation
  2023-06-14 17:07   ` Niranjana Vishwanathapura
@ 2023-06-15 17:50     ` Matthew Brost
  0 siblings, 0 replies; 30+ messages in thread
From: Matthew Brost @ 2023-06-15 17:50 UTC (permalink / raw)
  To: Niranjana Vishwanathapura; +Cc: intel-xe

On Wed, Jun 14, 2023 at 10:07:24AM -0700, Niranjana Vishwanathapura wrote:
> On Wed, Jun 07, 2023 at 10:03:33PM -0700, Matthew Brost wrote:
> > Add uAPI and implementation for NULL bindings. A NULL binding is defined
> > as writes dropped and read zero. A single bit in the uAPI has been added
> > which results in a single bit in the PTEs being set.
> > 
> > NULL bindings are indended to be used to implement VK sparse bindings,
> > in particular residencyNonResidentStrict property.
> > 
> > Suggested-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
> > Signed-off-by: Matthew Brost <matthew.brost@intel.com>
> 
> Also, do we have IGT tests for this?
> 
> Niranjana

Yes, https://patchwork.freedesktop.org/series/119080/

Matt

> 
> 

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

* Re: [Intel-xe] [PATCH 3/3] drm/xe: NULL binding implementation
  2023-06-14  8:17   ` Thomas Hellström
@ 2023-06-15 17:52     ` Matthew Brost
  0 siblings, 0 replies; 30+ messages in thread
From: Matthew Brost @ 2023-06-15 17:52 UTC (permalink / raw)
  To: Thomas Hellström; +Cc: intel-xe

On Wed, Jun 14, 2023 at 10:17:13AM +0200, Thomas Hellström wrote:
> 
> On 6/8/23 07:03, Matthew Brost wrote:
> > Add uAPI and implementation for NULL bindings. A NULL binding is defined
> > as writes dropped and read zero. A single bit in the uAPI has been added
> > which results in a single bit in the PTEs being set.
> > 
> > NULL bindings are indended to be used to implement VK sparse bindings,
> > in particular residencyNonResidentStrict property.
> > 
> > Suggested-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
> > Signed-off-by: Matthew Brost <matthew.brost@intel.com>
> > ---
> >   drivers/gpu/drm/xe/xe_bo.h           |  1 +
> >   drivers/gpu/drm/xe/xe_exec.c         |  2 +
> >   drivers/gpu/drm/xe/xe_gt_pagefault.c |  4 +-
> >   drivers/gpu/drm/xe/xe_pt.c           | 71 +++++++++++++++------
> >   drivers/gpu/drm/xe/xe_vm.c           | 95 ++++++++++++++++++----------
> >   drivers/gpu/drm/xe/xe_vm.h           | 12 +++-
> >   drivers/gpu/drm/xe/xe_vm_types.h     |  1 +
> >   include/uapi/drm/xe_drm.h            |  8 +++
> >   8 files changed, 138 insertions(+), 56 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
> > index dd3d448fee0b..3a148cc6e811 100644
> > --- a/drivers/gpu/drm/xe/xe_bo.h
> > +++ b/drivers/gpu/drm/xe/xe_bo.h
> > @@ -61,6 +61,7 @@
> >   #define XE_PPGTT_PTE_LM			BIT_ULL(11)
> >   #define XE_PDE_64K			BIT_ULL(6)
> >   #define XE_PTE_PS64			BIT_ULL(8)
> > +#define XE_PTE_NULL			BIT_ULL(9)
> >   #define XE_PAGE_PRESENT			BIT_ULL(0)
> >   #define XE_PAGE_RW			BIT_ULL(1)
> > diff --git a/drivers/gpu/drm/xe/xe_exec.c b/drivers/gpu/drm/xe/xe_exec.c
> > index e44076ee2e11..4f7694a29348 100644
> > --- a/drivers/gpu/drm/xe/xe_exec.c
> > +++ b/drivers/gpu/drm/xe/xe_exec.c
> > @@ -120,6 +120,8 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
> >   	 * to a location where the GPU can access it).
> >   	 */
> >   	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
> > +		XE_WARN_ON(xe_vma_is_null(vma));
> > +
> >   		if (xe_vma_is_userptr(vma))
> >   			continue;
> > diff --git a/drivers/gpu/drm/xe/xe_gt_pagefault.c b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> > index 73db7f7c0381..6faebd02f3fb 100644
> > --- a/drivers/gpu/drm/xe/xe_gt_pagefault.c
> > +++ b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> > @@ -533,8 +533,8 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
> >   	trace_xe_vma_acc(vma);
> > -	/* Userptr can't be migrated, nothing to do */
> > -	if (xe_vma_is_userptr(vma))
> > +	/* Userptr or null can't be migrated, nothing to do */
> > +	if (xe_vma_has_no_bo(vma))
> >   		goto unlock_vm;
> >   	/* Lock VM and BOs dma-resv */
> > diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
> > index 39ec94549439..265ee45bee5c 100644
> > --- a/drivers/gpu/drm/xe/xe_pt.c
> > +++ b/drivers/gpu/drm/xe/xe_pt.c
> > @@ -81,7 +81,9 @@ u64 gen8_pde_encode(struct xe_bo *bo, u64 bo_offset,
> >   static dma_addr_t vma_addr(struct xe_vma *vma, u64 offset,
> >   			   size_t page_size, bool *is_vram)
> >   {
> > -	if (xe_vma_is_userptr(vma)) {
> > +	if (xe_vma_is_null(vma)) {
> > +		return 0;
> > +	} else if (xe_vma_is_userptr(vma)) {
> >   		struct xe_res_cursor cur;
> >   		u64 page;
> > @@ -559,6 +561,10 @@ static bool xe_pt_hugepte_possible(u64 addr, u64 next, unsigned int level,
> >   	if (next - xe_walk->va_curs_start > xe_walk->curs->size)
> >   		return false;
> > +	/* null VMA's do not have dma adresses */
> > +	if (xe_walk->pte_flags & XE_PTE_FLAG_NULL)
> > +		return true;
> > +
> >   	/* Is the DMA address huge PTE size aligned? */
> >   	size = next - addr;
> >   	dma = addr - xe_walk->va_curs_start + xe_res_dma(xe_walk->curs);
> > @@ -575,6 +581,10 @@ xe_pt_scan_64K(u64 addr, u64 next, struct xe_pt_stage_bind_walk *xe_walk)
> >   {
> >   	struct xe_res_cursor curs = *xe_walk->curs;
> > +	/* null VMA's do not have dma adresses */
> > +	if (xe_walk->pte_flags & XE_PTE_FLAG_NULL)
> > +		return true;
> > +
> >   	if (!IS_ALIGNED(addr, SZ_64K))
> >   		return false;
> > @@ -631,12 +641,29 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
> >   	/* Is this a leaf entry ?*/
> >   	if (level == 0 || xe_pt_hugepte_possible(addr, next, level, xe_walk)) {
> >   		struct xe_res_cursor *curs = xe_walk->curs;
> > +		u64 pte = 0;
> > +		bool is_null = xe_walk->pte_flags & XE_PTE_FLAG_NULL;
> >   		XE_WARN_ON(xe_walk->va_curs_start != addr);
> > -		pte = __gen8_pte_encode(xe_res_dma(curs) + xe_walk->dma_offset,
> > -					xe_walk->cache, xe_walk->pte_flags,
> > -					level);
> > +		if (is_null) {
> > +			pte |= XE_PAGE_PRESENT | XE_PAGE_RW;
> > +			if (xe_walk->pte_flags & XE_PTE_FLAG_READ_ONLY)
> > +				pte &= ~XE_PAGE_RW;
> > +
> > +			if (level == 1)
> > +				pte |= XE_PDE_PS_2M;
> > +			else if (level == 2)
> > +				pte |= XE_PDPE_PS_1G;
> > +
> > +			pte |= XE_PTE_NULL;
> Why can't this block be incorporated into __gen8_pte_encode() and the test
> for null binding done in that function?

Will fix.

> > +		} else {
> > +			pte = __gen8_pte_encode(xe_res_dma(curs) +
> > +						xe_walk->dma_offset,
> > +						xe_walk->cache,
> > +						xe_walk->pte_flags,
> > +						level);
> > +		}
> >   		pte |= xe_walk->default_pte;
> >   		/*
> > @@ -654,7 +681,8 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
> >   		if (unlikely(ret))
> >   			return ret;
> > -		xe_res_next(curs, next - addr);
> > +		if (!is_null)
> > +			xe_res_next(curs, next - addr);
> >   		xe_walk->va_curs_start = next;
> >   		*action = ACTION_CONTINUE;
> > @@ -761,24 +789,29 @@ xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
> >   		xe_walk.dma_offset = vram_region_gpu_offset(bo->ttm.resource);
> >   		xe_walk.cache = XE_CACHE_WB;
> >   	} else {
> > -		if (!xe_vma_is_userptr(vma) && bo->flags & XE_BO_SCANOUT_BIT)
> > +		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_is_userptr(vma) && xe_bo_is_stolen(bo))
> > +	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));
> >   	xe_bo_assert_held(bo);
> > -	if (xe_vma_is_userptr(vma))
> > -		xe_res_first_sg(vma->userptr.sg, 0, vma->end - vma->start + 1,
> > -				&curs);
> > -	else if (xe_bo_is_vram(bo) || xe_bo_is_stolen(bo))
> > -		xe_res_first(bo->ttm.resource, vma->bo_offset,
> > -			     vma->end - vma->start + 1, &curs);
> > -	else
> > -		xe_res_first_sg(xe_bo_get_sg(bo), vma->bo_offset,
> > -				vma->end - vma->start + 1, &curs);
> > +
> > +	if (!xe_vma_is_null(vma)) {
> > +		if (xe_vma_is_userptr(vma))
> > +			xe_res_first_sg(vma->userptr.sg, 0,
> > +					vma->end - vma->start + 1, &curs);
> > +		else if (xe_bo_is_vram(bo) || xe_bo_is_stolen(bo))
> > +			xe_res_first(bo->ttm.resource, vma->bo_offset,
> > +				     vma->end - vma->start + 1, &curs);
> > +		else
> > +			xe_res_first_sg(xe_bo_get_sg(bo), vma->bo_offset,
> > +					vma->end - vma->start + 1, &curs);
> > +	} else {
> > +		curs.size = vma->end - vma->start + 1;
> > +	}
> >   	ret = xe_pt_walk_range(&pt->base, pt->level, vma->start, vma->end + 1,
> >   				&xe_walk.base);
> > @@ -967,7 +1000,7 @@ static void xe_pt_commit_locks_assert(struct xe_vma *vma)
> >   	if (xe_vma_is_userptr(vma))
> >   		lockdep_assert_held_read(&vm->userptr.notifier_lock);
> > -	else
> > +	else if (!xe_vma_is_null(vma))
> >   		dma_resv_assert_held(vma->bo->ttm.base.resv);
> >   	dma_resv_assert_held(&vm->resv);
> > @@ -1330,7 +1363,7 @@ __xe_pt_bind_vma(struct xe_tile *tile, struct xe_vma *vma, struct xe_engine *e,
> >   				   DMA_RESV_USAGE_KERNEL :
> >   				   DMA_RESV_USAGE_BOOKKEEP);
> > -		if (!xe_vma_is_userptr(vma) && !vma->bo->vm)
> > +		if (!xe_vma_has_no_bo(vma) && !vma->bo->vm)
> >   			dma_resv_add_fence(vma->bo->ttm.base.resv, fence,
> >   					   DMA_RESV_USAGE_BOOKKEEP);
> >   		xe_pt_commit_bind(vma, entries, num_entries, rebind,
> > @@ -1647,7 +1680,7 @@ __xe_pt_unbind_vma(struct xe_tile *tile, struct xe_vma *vma, struct xe_engine *e
> >   				   DMA_RESV_USAGE_BOOKKEEP);
> >   		/* This fence will be installed by caller when doing eviction */
> > -		if (!xe_vma_is_userptr(vma) && !vma->bo->vm)
> > +		if (!xe_vma_has_no_bo(vma) && !vma->bo->vm)
> >   			dma_resv_add_fence(vma->bo->ttm.base.resv, fence,
> >   					   DMA_RESV_USAGE_BOOKKEEP);
> >   		xe_pt_commit_unbind(vma, entries, num_entries,
> > diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> > index 94fc9c330235..f7629db275f9 100644
> > --- a/drivers/gpu/drm/xe/xe_vm.c
> > +++ b/drivers/gpu/drm/xe/xe_vm.c
> > @@ -590,7 +590,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
> >   		goto out_unlock;
> >   	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
> > -		if (xe_vma_is_userptr(vma) || vma->destroyed)
> > +		if (xe_vma_has_no_bo(vma) || vma->destroyed)
> >   			continue;
> >   		err = xe_bo_validate(vma->bo, vm, false);
> > @@ -843,6 +843,7 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
> >   				    u64 bo_offset_or_userptr,
> >   				    u64 start, u64 end,
> >   				    bool read_only,
> > +				    bool is_null,
> >   				    u64 tile_mask)
> >   {
> >   	struct xe_vma *vma;
> > @@ -868,8 +869,11 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
> >   	vma->vm = vm;
> >   	vma->start = start;
> >   	vma->end = end;
> > +	vma->pte_flags = 0;
> >   	if (read_only)
> > -		vma->pte_flags = XE_PTE_FLAG_READ_ONLY;
> > +		vma->pte_flags |= XE_PTE_FLAG_READ_ONLY;
> > +	if (is_null)
> > +		vma->pte_flags |= XE_PTE_FLAG_NULL;
> >   	if (tile_mask) {
> >   		vma->tile_mask = tile_mask;
> > @@ -886,23 +890,26 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
> >   		vma->bo_offset = bo_offset_or_userptr;
> >   		vma->bo = xe_bo_get(bo);
> >   		list_add_tail(&vma->bo_link, &bo->vmas);
> > -	} else /* userptr */ {
> > -		u64 size = end - start + 1;
> > -		int err;
> > +	} else /* userptr or null */ {
> > +		if (!is_null) {
> > +			u64 size = end - start + 1;
> > +			int err;
> > -		vma->userptr.ptr = bo_offset_or_userptr;
> > +			vma->userptr.ptr = bo_offset_or_userptr;
> > -		err = mmu_interval_notifier_insert(&vma->userptr.notifier,
> > -						   current->mm,
> > -						   vma->userptr.ptr, size,
> > -						   &vma_userptr_notifier_ops);
> > -		if (err) {
> > -			kfree(vma);
> > -			vma = ERR_PTR(err);
> > -			return vma;
> > +			err = mmu_interval_notifier_insert(&vma->userptr.notifier,
> > +							   current->mm,
> > +							   vma->userptr.ptr, size,
> > +							   &vma_userptr_notifier_ops);
> > +			if (err) {
> > +				kfree(vma);
> > +				vma = ERR_PTR(err);
> > +				return vma;
> > +			}
> > +
> > +			vma->userptr.notifier_seq = LONG_MAX;
> >   		}
> > -		vma->userptr.notifier_seq = LONG_MAX;
> >   		xe_vm_get(vm);
> >   	}
> > @@ -942,6 +949,8 @@ static void xe_vma_destroy_late(struct xe_vma *vma)
> >   		 */
> >   		mmu_interval_notifier_remove(&vma->userptr.notifier);
> >   		xe_vm_put(vm);
> > +	} else if (xe_vma_is_null(vma)) {
> > +		xe_vm_put(vm);
> >   	} else {
> >   		xe_bo_put(vma->bo);
> >   	}
> > @@ -1024,7 +1033,7 @@ static void xe_vma_destroy(struct xe_vma *vma, struct dma_fence *fence)
> >   		list_del_init(&vma->userptr.invalidate_link);
> >   		spin_unlock(&vm->userptr.invalidated_lock);
> >   		list_del(&vma->userptr_link);
> > -	} else {
> > +	} else if (!xe_vma_is_null(vma)) {
> >   		xe_bo_assert_held(vma->bo);
> >   		list_del(&vma->bo_link);
> > @@ -1391,7 +1400,7 @@ void xe_vm_close_and_put(struct xe_vm *vm)
> >   	while (vm->vmas.rb_node) {
> >   		struct xe_vma *vma = to_xe_vma(vm->vmas.rb_node);
> > -		if (xe_vma_is_userptr(vma)) {
> > +		if (xe_vma_has_no_bo(vma)) {
> >   			down_read(&vm->userptr.notifier_lock);
> >   			vma->destroyed = true;
> >   			up_read(&vm->userptr.notifier_lock);
> > @@ -1400,7 +1409,7 @@ void xe_vm_close_and_put(struct xe_vm *vm)
> >   		rb_erase(&vma->vm_node, &vm->vmas);
> >   		/* easy case, remove from VMA? */
> > -		if (xe_vma_is_userptr(vma) || vma->bo->vm) {
> > +		if (xe_vma_has_no_bo(vma) || vma->bo->vm) {
> >   			xe_vma_destroy(vma, NULL);
> >   			continue;
> >   		}
> > @@ -2034,7 +2043,7 @@ static int xe_vm_prefetch(struct xe_vm *vm, struct xe_vma *vma,
> >   	XE_BUG_ON(region > ARRAY_SIZE(region_to_mem_type));
> > -	if (!xe_vma_is_userptr(vma)) {
> > +	if (!xe_vma_has_no_bo(vma)) {
> >   		err = xe_bo_migrate(vma->bo, region_to_mem_type[region]);
> >   		if (err)
> >   			return err;
> > @@ -2643,6 +2652,8 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
> >   					  lookup->start - 1,
> >   					  (first->pte_flags &
> >   					   XE_PTE_FLAG_READ_ONLY),
> > +					  (first->pte_flags &
> > +					   XE_PTE_FLAG_NULL),
> >   					  first->tile_mask);
> >   		if (first->bo)
> >   			xe_bo_unlock(first->bo, &ww);
> > @@ -2675,6 +2686,7 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
> >   					 last->end,
> >   					 (last->pte_flags &
> >   					  XE_PTE_FLAG_READ_ONLY),
> > +					 (last->pte_flags & XE_PTE_FLAG_NULL),
> >   					 last->tile_mask);
> >   		if (last->bo)
> >   			xe_bo_unlock(last->bo, &ww);
> > @@ -2742,7 +2754,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
> >   		      *next;
> >   	struct rb_node *node;
> > -	if (!xe_vma_is_userptr(vma)) {
> > +	if (!xe_vma_has_no_bo(vma)) {
> >   		if (!xe_bo_can_migrate(vma->bo, region_to_mem_type[region]))
> >   			return ERR_PTR(-EINVAL);
> >   	}
> > @@ -2751,7 +2763,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
> >   	while ((node = rb_next(node))) {
> >   		if (!xe_vma_cmp_vma_cb(lookup, node)) {
> >   			__vma = to_xe_vma(node);
> > -			if (!xe_vma_is_userptr(__vma)) {
> > +			if (!xe_vma_has_no_bo(__vma)) {
> >   				if (!xe_bo_can_migrate(__vma->bo, region_to_mem_type[region]))
> >   					goto flush_list;
> >   			}
> > @@ -2765,7 +2777,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
> >   	while ((node = rb_prev(node))) {
> >   		if (!xe_vma_cmp_vma_cb(lookup, node)) {
> >   			__vma = to_xe_vma(node);
> > -			if (!xe_vma_is_userptr(__vma)) {
> > +			if (!xe_vma_has_no_bo(__vma)) {
> >   				if (!xe_bo_can_migrate(__vma->bo, region_to_mem_type[region]))
> >   					goto flush_list;
> >   			}
> > @@ -2824,21 +2836,23 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
> >   	switch (VM_BIND_OP(op)) {
> >   	case XE_VM_BIND_OP_MAP:
> > -		XE_BUG_ON(!bo);
> > -
> > -		err = xe_bo_lock(bo, &ww, 0, true);
> > -		if (err)
> > -			return ERR_PTR(err);
> > +		if (bo) {
> > +			err = xe_bo_lock(bo, &ww, 0, true);
> > +			if (err)
> > +				return ERR_PTR(err);
> > +		}
> >   		vma = xe_vma_create(vm, bo, bo_offset_or_userptr, addr,
> >   				    addr + range - 1,
> >   				    op & XE_VM_BIND_FLAG_READONLY,
> > +				    op & XE_VM_BIND_FLAG_NULL,
> >   				    tile_mask);
> > -		xe_bo_unlock(bo, &ww);
> > +		if (bo)
> > +			xe_bo_unlock(bo, &ww);
> >   		if (!vma)
> >   			return ERR_PTR(-ENOMEM);
> >   		xe_vm_insert_vma(vm, vma);
> > -		if (!bo->vm) {
> > +		if (bo && !bo->vm) {
> Suspicious-looking indent.

How? Not seeing an issue nor is checkpatch.

Matt

> >   			vm_insert_extobj(vm, vma);
> >   			err = add_preempt_fences(vm, bo);
> >   			if (err) {
> > @@ -2872,6 +2886,7 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
> >   		vma = xe_vma_create(vm, NULL, bo_offset_or_userptr, addr,
> >   				    addr + range - 1,
> >   				    op & XE_VM_BIND_FLAG_READONLY,
> > +				    op & XE_VM_BIND_FLAG_NULL,
> >   				    tile_mask);
> >   		if (!vma)
> >   			return ERR_PTR(-ENOMEM);
> > @@ -2897,11 +2912,12 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
> >   #ifdef TEST_VM_ASYNC_OPS_ERROR
> >   #define SUPPORTED_FLAGS	\
> >   	(FORCE_ASYNC_OP_ERROR | XE_VM_BIND_FLAG_ASYNC | \
> > -	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | 0xffff)
> > +	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | \
> > +	 XE_VM_BIND_FLAG_NULL | 0xffff)
> >   #else
> >   #define SUPPORTED_FLAGS	\
> >   	(XE_VM_BIND_FLAG_ASYNC | XE_VM_BIND_FLAG_READONLY | \
> > -	 XE_VM_BIND_FLAG_IMMEDIATE | 0xffff)
> > +	 XE_VM_BIND_FLAG_IMMEDIATE | XE_VM_BIND_FLAG_NULL | 0xffff)
> >   #endif
> >   #define XE_64K_PAGE_MASK 0xffffull
> > @@ -2949,6 +2965,7 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
> >   		u32 obj = (*bind_ops)[i].obj;
> >   		u64 obj_offset = (*bind_ops)[i].obj_offset;
> >   		u32 region = (*bind_ops)[i].region;
> > +		bool is_null = op &  XE_VM_BIND_FLAG_NULL;
> >   		if (XE_IOCTL_ERR(xe, (*bind_ops)[i].pad) ||
> >   		    XE_IOCTL_ERR(xe, (*bind_ops)[i].reserved[0] ||
> > @@ -2982,8 +2999,13 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
> >   		if (XE_IOCTL_ERR(xe, VM_BIND_OP(op) >
> >   				 XE_VM_BIND_OP_PREFETCH) ||
> >   		    XE_IOCTL_ERR(xe, op & ~SUPPORTED_FLAGS) ||
> > +		    XE_IOCTL_ERR(xe, obj && is_null) ||
> > +		    XE_IOCTL_ERR(xe, obj_offset && is_null) ||
> > +		    XE_IOCTL_ERR(xe, VM_BIND_OP(op) != XE_VM_BIND_OP_MAP &&
> > +				 is_null) ||
> >   		    XE_IOCTL_ERR(xe, !obj &&
> > -				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP) ||
> > +				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP &&
> > +				 !is_null) ||
> >   		    XE_IOCTL_ERR(xe, !obj &&
> >   				 VM_BIND_OP(op) == XE_VM_BIND_OP_UNMAP_ALL) ||
> >   		    XE_IOCTL_ERR(xe, addr &&
> > @@ -3389,6 +3411,7 @@ int xe_vm_invalidate_vma(struct xe_vma *vma)
> >   	int ret;
> >   	XE_BUG_ON(!xe_vm_in_fault_mode(vma->vm));
> > +	XE_WARN_ON(xe_vma_is_null(vma));
> >   	trace_xe_vma_usm_invalidate(vma);
> >   	/* Check that we don't race with page-table updates */
> > @@ -3451,8 +3474,11 @@ int xe_analyze_vm(struct drm_printer *p, struct xe_vm *vm, int gt_id)
> >   	for (node = rb_first(&vm->vmas); node; node = rb_next(node)) {
> >   		struct xe_vma *vma = to_xe_vma(node);
> >   		bool is_userptr = xe_vma_is_userptr(vma);
> > +		bool is_null = xe_vma_is_null(vma);
> > -		if (is_userptr) {
> > +		if (is_null) {
> > +			addr = 0;
> > +		} else if (is_userptr) {
> >   			struct xe_res_cursor cur;
> >   			xe_res_first_sg(vma->userptr.sg, 0, XE_PAGE_SIZE,
> > @@ -3463,7 +3489,8 @@ int xe_analyze_vm(struct drm_printer *p, struct xe_vm *vm, int gt_id)
> >   		}
> >   		drm_printf(p, " [%016llx-%016llx] S:0x%016llx A:%016llx %s\n",
> >   			   vma->start, vma->end, vma->end - vma->start + 1ull,
> > -			   addr, is_userptr ? "USR" : is_vram ? "VRAM" : "SYS");
> > +			   addr, is_null ? "NULL" : is_userptr ? "USR" :
> > +			   is_vram ? "VRAM" : "SYS");
> >   	}
> >   	up_read(&vm->lock);
> > diff --git a/drivers/gpu/drm/xe/xe_vm.h b/drivers/gpu/drm/xe/xe_vm.h
> > index 372f26153209..38731e200813 100644
> > --- a/drivers/gpu/drm/xe/xe_vm.h
> > +++ b/drivers/gpu/drm/xe/xe_vm.h
> > @@ -115,11 +115,21 @@ static inline void xe_vm_reactivate_rebind(struct xe_vm *vm)
> >   	}
> >   }
> > -static inline bool xe_vma_is_userptr(struct xe_vma *vma)
> > +static inline bool xe_vma_is_null(struct xe_vma *vma)
> > +{
> > +	return vma->pte_flags & XE_PTE_FLAG_NULL;
> > +}
> > +
> > +static inline bool xe_vma_has_no_bo(struct xe_vma *vma)
> >   {
> >   	return !vma->bo;
> >   }
> > +static inline bool xe_vma_is_userptr(struct xe_vma *vma)
> > +{
> > +	return xe_vma_has_no_bo(vma) && !xe_vma_is_null(vma);
> > +}
> > +
> >   int xe_vma_userptr_pin_pages(struct xe_vma *vma);
> >   int xe_vma_userptr_check_repin(struct xe_vma *vma);
> > diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
> > index 6daddd29d416..f775bafe4619 100644
> > --- a/drivers/gpu/drm/xe/xe_vm_types.h
> > +++ b/drivers/gpu/drm/xe/xe_vm_types.h
> > @@ -31,6 +31,7 @@ struct xe_vma {
> >   	u64 end;
> >   	/** @pte_flags: pte flags for this VMA */
> >   #define XE_PTE_FLAG_READ_ONLY		BIT(0)
> > +#define XE_PTE_FLAG_NULL		BIT(1)
> >   	u32 pte_flags;
> >   	/** @bo: BO if not a userptr, must be NULL is userptr */
> > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> > index 0ebc50beb5e5..39a1ce89732f 100644
> > --- a/include/uapi/drm/xe_drm.h
> > +++ b/include/uapi/drm/xe_drm.h
> > @@ -456,6 +456,14 @@ struct drm_xe_vm_bind_op {
> >   	 * than differing the MAP to the page fault handler.
> >   	 */
> >   #define XE_VM_BIND_FLAG_IMMEDIATE	(0x1 << 18)
> > +	/*
> > +	 * When the NULL flag is set, the page tables are setup with a special
> > +	 * bit which indicates writes are dropped and all reads return zero.  In
> > +	 * the future, the NULL flags will only be valid for XE_VM_BIND_OP_MAP
> > +	 * operations, the BO handle MBZ, and the BO offset MBZ. This flag is
> > +	 * intended to implement VK sparse bindings.
> > +	 */
> > +#define XE_VM_BIND_FLAG_NULL		(0x1 << 19)
> >   	/** @reserved: Reserved */
> >   	__u64 reserved[2];

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

* Re: [Intel-xe] [PATCH 3/3] drm/xe: NULL binding implementation
  2023-06-14  2:49   ` Niranjana Vishwanathapura
@ 2023-06-15 18:01     ` Matthew Brost
  2023-06-16 23:32       ` Niranjana Vishwanathapura
  0 siblings, 1 reply; 30+ messages in thread
From: Matthew Brost @ 2023-06-15 18:01 UTC (permalink / raw)
  To: Niranjana Vishwanathapura; +Cc: intel-xe

On Tue, Jun 13, 2023 at 07:49:07PM -0700, Niranjana Vishwanathapura wrote:
> On Wed, Jun 07, 2023 at 10:03:33PM -0700, Matthew Brost wrote:
> > Add uAPI and implementation for NULL bindings. A NULL binding is defined
> > as writes dropped and read zero. A single bit in the uAPI has been added
> > which results in a single bit in the PTEs being set.
> > 
> > NULL bindings are indended to be used to implement VK sparse bindings,
> > in particular residencyNonResidentStrict property.
> > 
> > Suggested-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
> > Signed-off-by: Matthew Brost <matthew.brost@intel.com>
> > ---
> > drivers/gpu/drm/xe/xe_bo.h           |  1 +
> > drivers/gpu/drm/xe/xe_exec.c         |  2 +
> > drivers/gpu/drm/xe/xe_gt_pagefault.c |  4 +-
> > drivers/gpu/drm/xe/xe_pt.c           | 71 +++++++++++++++------
> > drivers/gpu/drm/xe/xe_vm.c           | 95 ++++++++++++++++++----------
> > drivers/gpu/drm/xe/xe_vm.h           | 12 +++-
> > drivers/gpu/drm/xe/xe_vm_types.h     |  1 +
> > include/uapi/drm/xe_drm.h            |  8 +++
> > 8 files changed, 138 insertions(+), 56 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
> > index dd3d448fee0b..3a148cc6e811 100644
> > --- a/drivers/gpu/drm/xe/xe_bo.h
> > +++ b/drivers/gpu/drm/xe/xe_bo.h
> > @@ -61,6 +61,7 @@
> > #define XE_PPGTT_PTE_LM			BIT_ULL(11)
> > #define XE_PDE_64K			BIT_ULL(6)
> > #define XE_PTE_PS64			BIT_ULL(8)
> > +#define XE_PTE_NULL			BIT_ULL(9)
> > 
> > #define XE_PAGE_PRESENT			BIT_ULL(0)
> > #define XE_PAGE_RW			BIT_ULL(1)
> > diff --git a/drivers/gpu/drm/xe/xe_exec.c b/drivers/gpu/drm/xe/xe_exec.c
> > index e44076ee2e11..4f7694a29348 100644
> > --- a/drivers/gpu/drm/xe/xe_exec.c
> > +++ b/drivers/gpu/drm/xe/xe_exec.c
> > @@ -120,6 +120,8 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
> > 	 * to a location where the GPU can access it).
> > 	 */
> > 	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
> > +		XE_WARN_ON(xe_vma_is_null(vma));
> > +
> 
> Also return error here?
> 

No, just make clear NULL bindings should never be rebound.

> > 		if (xe_vma_is_userptr(vma))
> > 			continue;
> > 
> > diff --git a/drivers/gpu/drm/xe/xe_gt_pagefault.c b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> > index 73db7f7c0381..6faebd02f3fb 100644
> > --- a/drivers/gpu/drm/xe/xe_gt_pagefault.c
> > +++ b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> > @@ -533,8 +533,8 @@ static int handle_acc(struct xe_gt *gt, struct acc *acc)
> > 
> > 	trace_xe_vma_acc(vma);
> > 
> > -	/* Userptr can't be migrated, nothing to do */
> > -	if (xe_vma_is_userptr(vma))
> > +	/* Userptr or null can't be migrated, nothing to do */
> > +	if (xe_vma_has_no_bo(vma))
> > 		goto unlock_vm;
> > 
> > 	/* Lock VM and BOs dma-resv */
> > diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
> > index 39ec94549439..265ee45bee5c 100644
> > --- a/drivers/gpu/drm/xe/xe_pt.c
> > +++ b/drivers/gpu/drm/xe/xe_pt.c
> > @@ -81,7 +81,9 @@ u64 gen8_pde_encode(struct xe_bo *bo, u64 bo_offset,
> > static dma_addr_t vma_addr(struct xe_vma *vma, u64 offset,
> > 			   size_t page_size, bool *is_vram)
> > {
> > -	if (xe_vma_is_userptr(vma)) {
> > +	if (xe_vma_is_null(vma)) {
> > +		return 0;
> 
> NIT....no need of if-else.
> if (xe_vma_is_null(vma))
>      return 0;
> 
> if (xe_vma_is_userptr(vma)) {
> ...
>

Sure.

> > +	} else if (xe_vma_is_userptr(vma)) {
> > 		struct xe_res_cursor cur;
> > 		u64 page;
> > 
> > @@ -559,6 +561,10 @@ static bool xe_pt_hugepte_possible(u64 addr, u64 next, unsigned int level,
> > 	if (next - xe_walk->va_curs_start > xe_walk->curs->size)
> > 		return false;
> > 
> > +	/* null VMA's do not have dma adresses */
> > +	if (xe_walk->pte_flags & XE_PTE_FLAG_NULL)
> > +		return true;
> > +
> > 	/* Is the DMA address huge PTE size aligned? */
> > 	size = next - addr;
> > 	dma = addr - xe_walk->va_curs_start + xe_res_dma(xe_walk->curs);
> > @@ -575,6 +581,10 @@ xe_pt_scan_64K(u64 addr, u64 next, struct xe_pt_stage_bind_walk *xe_walk)
> > {
> > 	struct xe_res_cursor curs = *xe_walk->curs;
> > 
> > +	/* null VMA's do not have dma adresses */
> > +	if (xe_walk->pte_flags & XE_PTE_FLAG_NULL)
> > +		return true;
> > +
> 
> But the addr (vma->start) and size still need to align with SZ_64K right?
>

Yea this is in the wrong place, will move.
 
> > 	if (!IS_ALIGNED(addr, SZ_64K))
> > 		return false;
> > 
> > @@ -631,12 +641,29 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
> > 	/* Is this a leaf entry ?*/
> > 	if (level == 0 || xe_pt_hugepte_possible(addr, next, level, xe_walk)) {
> > 		struct xe_res_cursor *curs = xe_walk->curs;
> > +		u64 pte = 0;
> > +		bool is_null = xe_walk->pte_flags & XE_PTE_FLAG_NULL;
> > 
> > 		XE_WARN_ON(xe_walk->va_curs_start != addr);
> > 
> > -		pte = __gen8_pte_encode(xe_res_dma(curs) + xe_walk->dma_offset,
> > -					xe_walk->cache, xe_walk->pte_flags,
> > -					level);
> > +		if (is_null) {
> > +			pte |= XE_PAGE_PRESENT | XE_PAGE_RW;
> > +			if (xe_walk->pte_flags & XE_PTE_FLAG_READ_ONLY)
> > +				pte &= ~XE_PAGE_RW;
> > +
> > +			if (level == 1)
> > +				pte |= XE_PDE_PS_2M;
> > +			else if (level == 2)
> > +				pte |= XE_PDPE_PS_1G;
> > +
> > +			pte |= XE_PTE_NULL;
> 
> This somehow can be combined in __gen8_pte_encode without duplicating
> code here?
>

Yea, will fix.

> > +		} else {
> > +			pte = __gen8_pte_encode(xe_res_dma(curs) +
> > +						xe_walk->dma_offset,
> > +						xe_walk->cache,
> > +						xe_walk->pte_flags,
> > +						level);
> > +		}
> > 		pte |= xe_walk->default_pte;
> > 
> > 		/*
> > @@ -654,7 +681,8 @@ xe_pt_stage_bind_entry(struct xe_ptw *parent, pgoff_t offset,
> > 		if (unlikely(ret))
> > 			return ret;
> > 
> > -		xe_res_next(curs, next - addr);
> > +		if (!is_null)
> > +			xe_res_next(curs, next - addr);
> > 		xe_walk->va_curs_start = next;
> > 		*action = ACTION_CONTINUE;
> > 
> > @@ -761,24 +789,29 @@ xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
> > 		xe_walk.dma_offset = vram_region_gpu_offset(bo->ttm.resource);
> > 		xe_walk.cache = XE_CACHE_WB;
> > 	} else {
> > -		if (!xe_vma_is_userptr(vma) && bo->flags & XE_BO_SCANOUT_BIT)
> > +		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_is_userptr(vma) && xe_bo_is_stolen(bo))
> > +	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));
> > 
> > 	xe_bo_assert_held(bo);
> > -	if (xe_vma_is_userptr(vma))
> > -		xe_res_first_sg(vma->userptr.sg, 0, vma->end - vma->start + 1,
> > -				&curs);
> > -	else if (xe_bo_is_vram(bo) || xe_bo_is_stolen(bo))
> > -		xe_res_first(bo->ttm.resource, vma->bo_offset,
> > -			     vma->end - vma->start + 1, &curs);
> > -	else
> > -		xe_res_first_sg(xe_bo_get_sg(bo), vma->bo_offset,
> > -				vma->end - vma->start + 1, &curs);
> > +
> > +	if (!xe_vma_is_null(vma)) {
> > +		if (xe_vma_is_userptr(vma))
> > +			xe_res_first_sg(vma->userptr.sg, 0,
> > +					vma->end - vma->start + 1, &curs);
> > +		else if (xe_bo_is_vram(bo) || xe_bo_is_stolen(bo))
> > +			xe_res_first(bo->ttm.resource, vma->bo_offset,
> > +				     vma->end - vma->start + 1, &curs);
> > +		else
> > +			xe_res_first_sg(xe_bo_get_sg(bo), vma->bo_offset,
> > +					vma->end - vma->start + 1, &curs);
> > +	} else {
> > +		curs.size = vma->end - vma->start + 1;
> > +	}
> > 
> > 	ret = xe_pt_walk_range(&pt->base, pt->level, vma->start, vma->end + 1,
> > 				&xe_walk.base);
> > @@ -967,7 +1000,7 @@ static void xe_pt_commit_locks_assert(struct xe_vma *vma)
> > 
> > 	if (xe_vma_is_userptr(vma))
> > 		lockdep_assert_held_read(&vm->userptr.notifier_lock);
> > -	else
> > +	else if (!xe_vma_is_null(vma))
> > 		dma_resv_assert_held(vma->bo->ttm.base.resv);
> > 
> > 	dma_resv_assert_held(&vm->resv);
> > @@ -1330,7 +1363,7 @@ __xe_pt_bind_vma(struct xe_tile *tile, struct xe_vma *vma, struct xe_engine *e,
> > 				   DMA_RESV_USAGE_KERNEL :
> > 				   DMA_RESV_USAGE_BOOKKEEP);
> > 
> > -		if (!xe_vma_is_userptr(vma) && !vma->bo->vm)
> > +		if (!xe_vma_has_no_bo(vma) && !vma->bo->vm)
> > 			dma_resv_add_fence(vma->bo->ttm.base.resv, fence,
> > 					   DMA_RESV_USAGE_BOOKKEEP);
> > 		xe_pt_commit_bind(vma, entries, num_entries, rebind,
> > @@ -1647,7 +1680,7 @@ __xe_pt_unbind_vma(struct xe_tile *tile, struct xe_vma *vma, struct xe_engine *e
> > 				   DMA_RESV_USAGE_BOOKKEEP);
> > 
> > 		/* This fence will be installed by caller when doing eviction */
> > -		if (!xe_vma_is_userptr(vma) && !vma->bo->vm)
> > +		if (!xe_vma_has_no_bo(vma) && !vma->bo->vm)
> > 			dma_resv_add_fence(vma->bo->ttm.base.resv, fence,
> > 					   DMA_RESV_USAGE_BOOKKEEP);
> > 		xe_pt_commit_unbind(vma, entries, num_entries,
> > diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> > index 94fc9c330235..f7629db275f9 100644
> > --- a/drivers/gpu/drm/xe/xe_vm.c
> > +++ b/drivers/gpu/drm/xe/xe_vm.c
> > @@ -590,7 +590,7 @@ static void preempt_rebind_work_func(struct work_struct *w)
> > 		goto out_unlock;
> > 
> > 	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
> > -		if (xe_vma_is_userptr(vma) || vma->destroyed)
> > +		if (xe_vma_has_no_bo(vma) || vma->destroyed)
> > 			continue;
> > 
> > 		err = xe_bo_validate(vma->bo, vm, false);
> > @@ -843,6 +843,7 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
> > 				    u64 bo_offset_or_userptr,
> > 				    u64 start, u64 end,
> > 				    bool read_only,
> > +				    bool is_null,
> > 				    u64 tile_mask)
> > {
> > 	struct xe_vma *vma;
> > @@ -868,8 +869,11 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
> > 	vma->vm = vm;
> > 	vma->start = start;
> > 	vma->end = end;
> > +	vma->pte_flags = 0;
> > 	if (read_only)
> > -		vma->pte_flags = XE_PTE_FLAG_READ_ONLY;
> > +		vma->pte_flags |= XE_PTE_FLAG_READ_ONLY;
> > +	if (is_null)
> > +		vma->pte_flags |= XE_PTE_FLAG_NULL;
> > 
> > 	if (tile_mask) {
> > 		vma->tile_mask = tile_mask;
> > @@ -886,23 +890,26 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
> > 		vma->bo_offset = bo_offset_or_userptr;
> > 		vma->bo = xe_bo_get(bo);
> > 		list_add_tail(&vma->bo_link, &bo->vmas);
> > -	} else /* userptr */ {
> > -		u64 size = end - start + 1;
> > -		int err;
> > +	} else /* userptr or null */ {
> 
> NIT, may be 'else if (!is_null)' saves one identation level below.
>

I prefer as it as get is common to userptr & NULL bindings.
 
> > +		if (!is_null) {
> > +			u64 size = end - start + 1;
> > +			int err;
> > 
> > -		vma->userptr.ptr = bo_offset_or_userptr;
> > +			vma->userptr.ptr = bo_offset_or_userptr;
> > 
> > -		err = mmu_interval_notifier_insert(&vma->userptr.notifier,
> > -						   current->mm,
> > -						   vma->userptr.ptr, size,
> > -						   &vma_userptr_notifier_ops);
> > -		if (err) {
> > -			kfree(vma);
> > -			vma = ERR_PTR(err);
> > -			return vma;
> > +			err = mmu_interval_notifier_insert(&vma->userptr.notifier,
> > +							   current->mm,
> > +							   vma->userptr.ptr, size,
> > +							   &vma_userptr_notifier_ops);
> > +			if (err) {
> > +				kfree(vma);
> > +				vma = ERR_PTR(err);
> > +				return vma;
> > +			}
> > +
> > +			vma->userptr.notifier_seq = LONG_MAX;
> > 		}
> > 
> > -		vma->userptr.notifier_seq = LONG_MAX;
> > 		xe_vm_get(vm);
> > 	}
> > 
> > @@ -942,6 +949,8 @@ static void xe_vma_destroy_late(struct xe_vma *vma)
> > 		 */
> > 		mmu_interval_notifier_remove(&vma->userptr.notifier);
> > 		xe_vm_put(vm);
> > +	} else if (xe_vma_is_null(vma)) {
> > +		xe_vm_put(vm);
> > 	} else {
> > 		xe_bo_put(vma->bo);
> > 	}
> > @@ -1024,7 +1033,7 @@ static void xe_vma_destroy(struct xe_vma *vma, struct dma_fence *fence)
> > 		list_del_init(&vma->userptr.invalidate_link);
> > 		spin_unlock(&vm->userptr.invalidated_lock);
> > 		list_del(&vma->userptr_link);
> > -	} else {
> > +	} else if (!xe_vma_is_null(vma)) {
> > 		xe_bo_assert_held(vma->bo);
> > 		list_del(&vma->bo_link);
> > 
> > @@ -1391,7 +1400,7 @@ void xe_vm_close_and_put(struct xe_vm *vm)
> > 	while (vm->vmas.rb_node) {
> > 		struct xe_vma *vma = to_xe_vma(vm->vmas.rb_node);
> > 
> > -		if (xe_vma_is_userptr(vma)) {
> > +		if (xe_vma_has_no_bo(vma)) {
> > 			down_read(&vm->userptr.notifier_lock);
> > 			vma->destroyed = true;
> > 			up_read(&vm->userptr.notifier_lock);
> > @@ -1400,7 +1409,7 @@ void xe_vm_close_and_put(struct xe_vm *vm)
> > 		rb_erase(&vma->vm_node, &vm->vmas);
> > 
> > 		/* easy case, remove from VMA? */
> > -		if (xe_vma_is_userptr(vma) || vma->bo->vm) {
> > +		if (xe_vma_has_no_bo(vma) || vma->bo->vm) {
> > 			xe_vma_destroy(vma, NULL);
> > 			continue;
> > 		}
> > @@ -2034,7 +2043,7 @@ static int xe_vm_prefetch(struct xe_vm *vm, struct xe_vma *vma,
> > 
> > 	XE_BUG_ON(region > ARRAY_SIZE(region_to_mem_type));
> > 
> > -	if (!xe_vma_is_userptr(vma)) {
> > +	if (!xe_vma_has_no_bo(vma)) {
> > 		err = xe_bo_migrate(vma->bo, region_to_mem_type[region]);
> > 		if (err)
> > 			return err;
> > @@ -2643,6 +2652,8 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
> > 					  lookup->start - 1,
> > 					  (first->pte_flags &
> > 					   XE_PTE_FLAG_READ_ONLY),
> > +					  (first->pte_flags &
> > +					   XE_PTE_FLAG_NULL),
> > 					  first->tile_mask);
> > 		if (first->bo)
> > 			xe_bo_unlock(first->bo, &ww);
> > @@ -2675,6 +2686,7 @@ static struct xe_vma *vm_unbind_lookup_vmas(struct xe_vm *vm,
> > 					 last->end,
> > 					 (last->pte_flags &
> > 					  XE_PTE_FLAG_READ_ONLY),
> > +					 (last->pte_flags & XE_PTE_FLAG_NULL),
> > 					 last->tile_mask);
> > 		if (last->bo)
> > 			xe_bo_unlock(last->bo, &ww);
> > @@ -2742,7 +2754,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
> > 		      *next;
> > 	struct rb_node *node;
> > 
> > -	if (!xe_vma_is_userptr(vma)) {
> > +	if (!xe_vma_has_no_bo(vma)) {
> > 		if (!xe_bo_can_migrate(vma->bo, region_to_mem_type[region]))
> > 			return ERR_PTR(-EINVAL);
> > 	}
> > @@ -2751,7 +2763,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
> > 	while ((node = rb_next(node))) {
> > 		if (!xe_vma_cmp_vma_cb(lookup, node)) {
> > 			__vma = to_xe_vma(node);
> > -			if (!xe_vma_is_userptr(__vma)) {
> > +			if (!xe_vma_has_no_bo(__vma)) {
> > 				if (!xe_bo_can_migrate(__vma->bo, region_to_mem_type[region]))
> > 					goto flush_list;
> > 			}
> > @@ -2765,7 +2777,7 @@ static struct xe_vma *vm_prefetch_lookup_vmas(struct xe_vm *vm,
> > 	while ((node = rb_prev(node))) {
> > 		if (!xe_vma_cmp_vma_cb(lookup, node)) {
> > 			__vma = to_xe_vma(node);
> > -			if (!xe_vma_is_userptr(__vma)) {
> > +			if (!xe_vma_has_no_bo(__vma)) {
> > 				if (!xe_bo_can_migrate(__vma->bo, region_to_mem_type[region]))
> > 					goto flush_list;
> > 			}
> > @@ -2824,21 +2836,23 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
> > 
> > 	switch (VM_BIND_OP(op)) {
> > 	case XE_VM_BIND_OP_MAP:
> > -		XE_BUG_ON(!bo);
> > -
> > -		err = xe_bo_lock(bo, &ww, 0, true);
> > -		if (err)
> > -			return ERR_PTR(err);
> > +		if (bo) {
> > +			err = xe_bo_lock(bo, &ww, 0, true);
> > +			if (err)
> > +				return ERR_PTR(err);
> > +		}
> > 		vma = xe_vma_create(vm, bo, bo_offset_or_userptr, addr,
> > 				    addr + range - 1,
> > 				    op & XE_VM_BIND_FLAG_READONLY,
> > +				    op & XE_VM_BIND_FLAG_NULL,
> > 				    tile_mask);
> > -		xe_bo_unlock(bo, &ww);
> > +		if (bo)
> > +			xe_bo_unlock(bo, &ww);
> > 		if (!vma)
> > 			return ERR_PTR(-ENOMEM);
> > 
> > 		xe_vm_insert_vma(vm, vma);
> > -		if (!bo->vm) {
> > +		if (bo && !bo->vm) {
> > 			vm_insert_extobj(vm, vma);
> > 			err = add_preempt_fences(vm, bo);
> > 			if (err) {
> > @@ -2872,6 +2886,7 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
> > 		vma = xe_vma_create(vm, NULL, bo_offset_or_userptr, addr,
> > 				    addr + range - 1,
> > 				    op & XE_VM_BIND_FLAG_READONLY,
> > +				    op & XE_VM_BIND_FLAG_NULL,
> > 				    tile_mask);
> > 		if (!vma)
> > 			return ERR_PTR(-ENOMEM);
> > @@ -2897,11 +2912,12 @@ static struct xe_vma *vm_bind_ioctl_lookup_vma(struct xe_vm *vm,
> > #ifdef TEST_VM_ASYNC_OPS_ERROR
> > #define SUPPORTED_FLAGS	\
> > 	(FORCE_ASYNC_OP_ERROR | XE_VM_BIND_FLAG_ASYNC | \
> > -	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | 0xffff)
> > +	 XE_VM_BIND_FLAG_READONLY | XE_VM_BIND_FLAG_IMMEDIATE | \
> > +	 XE_VM_BIND_FLAG_NULL | 0xffff)
> > #else
> > #define SUPPORTED_FLAGS	\
> > 	(XE_VM_BIND_FLAG_ASYNC | XE_VM_BIND_FLAG_READONLY | \
> > -	 XE_VM_BIND_FLAG_IMMEDIATE | 0xffff)
> > +	 XE_VM_BIND_FLAG_IMMEDIATE | XE_VM_BIND_FLAG_NULL | 0xffff)
> > #endif
> > #define XE_64K_PAGE_MASK 0xffffull
> > 
> > @@ -2949,6 +2965,7 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
> > 		u32 obj = (*bind_ops)[i].obj;
> > 		u64 obj_offset = (*bind_ops)[i].obj_offset;
> > 		u32 region = (*bind_ops)[i].region;
> > +		bool is_null = op &  XE_VM_BIND_FLAG_NULL;
> > 
> > 		if (XE_IOCTL_ERR(xe, (*bind_ops)[i].pad) ||
> > 		    XE_IOCTL_ERR(xe, (*bind_ops)[i].reserved[0] ||
> > @@ -2982,8 +2999,13 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe,
> > 		if (XE_IOCTL_ERR(xe, VM_BIND_OP(op) >
> > 				 XE_VM_BIND_OP_PREFETCH) ||
> > 		    XE_IOCTL_ERR(xe, op & ~SUPPORTED_FLAGS) ||
> > +		    XE_IOCTL_ERR(xe, obj && is_null) ||
> > +		    XE_IOCTL_ERR(xe, obj_offset && is_null) ||
> > +		    XE_IOCTL_ERR(xe, VM_BIND_OP(op) != XE_VM_BIND_OP_MAP &&
> > +				 is_null) ||
> > 		    XE_IOCTL_ERR(xe, !obj &&
> > -				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP) ||
> > +				 VM_BIND_OP(op) == XE_VM_BIND_OP_MAP &&
> > +				 !is_null) ||
> > 		    XE_IOCTL_ERR(xe, !obj &&
> > 				 VM_BIND_OP(op) == XE_VM_BIND_OP_UNMAP_ALL) ||
> > 		    XE_IOCTL_ERR(xe, addr &&
> > @@ -3389,6 +3411,7 @@ int xe_vm_invalidate_vma(struct xe_vma *vma)
> > 	int ret;
> > 
> > 	XE_BUG_ON(!xe_vm_in_fault_mode(vma->vm));
> > +	XE_WARN_ON(xe_vma_is_null(vma));
> 
> return error?
>

No, again just make it clear you can't invalidate a NULL binding.
 
> > 	trace_xe_vma_usm_invalidate(vma);
> > 
> > 	/* Check that we don't race with page-table updates */
> > @@ -3451,8 +3474,11 @@ int xe_analyze_vm(struct drm_printer *p, struct xe_vm *vm, int gt_id)
> > 	for (node = rb_first(&vm->vmas); node; node = rb_next(node)) {
> > 		struct xe_vma *vma = to_xe_vma(node);
> > 		bool is_userptr = xe_vma_is_userptr(vma);
> > +		bool is_null = xe_vma_is_null(vma);
> > 
> > -		if (is_userptr) {
> > +		if (is_null) {
> > +			addr = 0;
> > +		} else if (is_userptr) {
> > 			struct xe_res_cursor cur;
> > 
> > 			xe_res_first_sg(vma->userptr.sg, 0, XE_PAGE_SIZE,
> > @@ -3463,7 +3489,8 @@ int xe_analyze_vm(struct drm_printer *p, struct xe_vm *vm, int gt_id)
> > 		}
> > 		drm_printf(p, " [%016llx-%016llx] S:0x%016llx A:%016llx %s\n",
> > 			   vma->start, vma->end, vma->end - vma->start + 1ull,
> > -			   addr, is_userptr ? "USR" : is_vram ? "VRAM" : "SYS");
> > +			   addr, is_null ? "NULL" : is_userptr ? "USR" :
> > +			   is_vram ? "VRAM" : "SYS");
> > 	}
> > 	up_read(&vm->lock);
> > 
> > diff --git a/drivers/gpu/drm/xe/xe_vm.h b/drivers/gpu/drm/xe/xe_vm.h
> > index 372f26153209..38731e200813 100644
> > --- a/drivers/gpu/drm/xe/xe_vm.h
> > +++ b/drivers/gpu/drm/xe/xe_vm.h
> > @@ -115,11 +115,21 @@ static inline void xe_vm_reactivate_rebind(struct xe_vm *vm)
> > 	}
> > }
> > 
> > -static inline bool xe_vma_is_userptr(struct xe_vma *vma)
> > +static inline bool xe_vma_is_null(struct xe_vma *vma)
> > +{
> > +	return vma->pte_flags & XE_PTE_FLAG_NULL;
> > +}
> > +
> > +static inline bool xe_vma_has_no_bo(struct xe_vma *vma)
> > {
> > 	return !vma->bo;
> > }
> > 
> > +static inline bool xe_vma_is_userptr(struct xe_vma *vma)
> > +{
> > +	return xe_vma_has_no_bo(vma) && !xe_vma_is_null(vma);
> > +}
> > +
> > int xe_vma_userptr_pin_pages(struct xe_vma *vma);
> > 
> > int xe_vma_userptr_check_repin(struct xe_vma *vma);
> > diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
> > index 6daddd29d416..f775bafe4619 100644
> > --- a/drivers/gpu/drm/xe/xe_vm_types.h
> > +++ b/drivers/gpu/drm/xe/xe_vm_types.h
> > @@ -31,6 +31,7 @@ struct xe_vma {
> > 	u64 end;
> > 	/** @pte_flags: pte flags for this VMA */
> > #define XE_PTE_FLAG_READ_ONLY		BIT(0)
> > +#define XE_PTE_FLAG_NULL		BIT(1)
> > 	u32 pte_flags;
> > 
> > 	/** @bo: BO if not a userptr, must be NULL is userptr */
> > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> > index 0ebc50beb5e5..39a1ce89732f 100644
> > --- a/include/uapi/drm/xe_drm.h
> > +++ b/include/uapi/drm/xe_drm.h
> > @@ -456,6 +456,14 @@ struct drm_xe_vm_bind_op {
> > 	 * than differing the MAP to the page fault handler.
> > 	 */
> > #define XE_VM_BIND_FLAG_IMMEDIATE	(0x1 << 18)
> > +	/*
> > +	 * When the NULL flag is set, the page tables are setup with a special
> > +	 * bit which indicates writes are dropped and all reads return zero.  In
> > +	 * the future, the NULL flags will only be valid for XE_VM_BIND_OP_MAP
> > +	 * operations, the BO handle MBZ, and the BO offset MBZ. This flag is
> > +	 * intended to implement VK sparse bindings.
> > +	 */
> > +#define XE_VM_BIND_FLAG_NULL		(0x1 << 19)
> > 
> 
> Are we aligned with GPUVA manager uapi here? I haven't paid attention recently,

GPUVA manager is internal, not a uAPI.

> but they had a GPUVA region abstraction for this sparse binding.
> That allowed user to mark a VA region as sparse and vma/s can be allocated

Regions are gone from GPUVA, a null binding is just a GPUVA.

> there, but once unbound, it automatically goes back to being sparse
> (read 0, write discard) which user having to explicitly manage it.
> This probably will also remove vma_is_null() checks sprinkled at many places here.
> Any thoughts?

The vma_is_null check just changes to a GPUVA check.

Matt

> 
> Niranjana
> 
> > 	/** @reserved: Reserved */
> > 	__u64 reserved[2];
> > -- 
> > 2.34.1
> > 

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

* Re: [Intel-xe] [PATCH 3/3] drm/xe: NULL binding implementation
  2023-06-15 18:01     ` Matthew Brost
@ 2023-06-16 23:32       ` Niranjana Vishwanathapura
  0 siblings, 0 replies; 30+ messages in thread
From: Niranjana Vishwanathapura @ 2023-06-16 23:32 UTC (permalink / raw)
  To: Matthew Brost; +Cc: intel-xe

On Thu, Jun 15, 2023 at 06:01:15PM +0000, Matthew Brost wrote:
>On Tue, Jun 13, 2023 at 07:49:07PM -0700, Niranjana Vishwanathapura wrote:
>> On Wed, Jun 07, 2023 at 10:03:33PM -0700, Matthew Brost wrote:
>> > Add uAPI and implementation for NULL bindings. A NULL binding is defined
>> > as writes dropped and read zero. A single bit in the uAPI has been added
>> > which results in a single bit in the PTEs being set.
>> >
>> > NULL bindings are indended to be used to implement VK sparse bindings,
>> > in particular residencyNonResidentStrict property.
>> >
>> > Suggested-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
>> > Signed-off-by: Matthew Brost <matthew.brost@intel.com>
>> > ---
>> > drivers/gpu/drm/xe/xe_bo.h           |  1 +
>> > drivers/gpu/drm/xe/xe_exec.c         |  2 +
>> > drivers/gpu/drm/xe/xe_gt_pagefault.c |  4 +-
>> > drivers/gpu/drm/xe/xe_pt.c           | 71 +++++++++++++++------
>> > drivers/gpu/drm/xe/xe_vm.c           | 95 ++++++++++++++++++----------
>> > drivers/gpu/drm/xe/xe_vm.h           | 12 +++-
>> > drivers/gpu/drm/xe/xe_vm_types.h     |  1 +
>> > include/uapi/drm/xe_drm.h            |  8 +++
>> > 8 files changed, 138 insertions(+), 56 deletions(-)
>> >
>> > diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
>> > index dd3d448fee0b..3a148cc6e811 100644
>> > --- a/drivers/gpu/drm/xe/xe_bo.h
>> > +++ b/drivers/gpu/drm/xe/xe_bo.h
>> > @@ -61,6 +61,7 @@
>> > #define XE_PPGTT_PTE_LM			BIT_ULL(11)
>> > #define XE_PDE_64K			BIT_ULL(6)
>> > #define XE_PTE_PS64			BIT_ULL(8)
>> > +#define XE_PTE_NULL			BIT_ULL(9)
>> >
>> > #define XE_PAGE_PRESENT			BIT_ULL(0)
>> > #define XE_PAGE_RW			BIT_ULL(1)
>> > diff --git a/drivers/gpu/drm/xe/xe_exec.c b/drivers/gpu/drm/xe/xe_exec.c
>> > index e44076ee2e11..4f7694a29348 100644
>> > --- a/drivers/gpu/drm/xe/xe_exec.c
>> > +++ b/drivers/gpu/drm/xe/xe_exec.c
>> > @@ -120,6 +120,8 @@ static int xe_exec_begin(struct xe_engine *e, struct ww_acquire_ctx *ww,
>> > 	 * to a location where the GPU can access it).
>> > 	 */
>> > 	list_for_each_entry(vma, &vm->rebind_list, rebind_link) {
>> > +		XE_WARN_ON(xe_vma_is_null(vma));
>> > +
>>
>> Also return error here?
>>
>
>No, just make clear NULL bindings should never be rebound.
>

But in such case, this function further down will reference vma->bo which
will be NULL and hence runs into NULL pointer exception?

>> > 		if (xe_vma_is_userptr(vma))
>> > 			continue;
>> >

<snip>

>> > @@ -3389,6 +3411,7 @@ int xe_vm_invalidate_vma(struct xe_vma *vma)
>> > 	int ret;
>> >
>> > 	XE_BUG_ON(!xe_vm_in_fault_mode(vma->vm));
>> > +	XE_WARN_ON(xe_vma_is_null(vma));
>>
>> return error?
>>
>
>No, again just make it clear you can't invalidate a NULL binding.
>

Same here.

Niranjana

>> > 	trace_xe_vma_usm_invalidate(vma);
>> >
>> > 	/* Check that we don't race with page-table updates */

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

end of thread, other threads:[~2023-06-16 23:32 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-08  5:03 [Intel-xe] [PATCH 0/3] NULL bindings aka sparse bindings Matthew Brost
2023-06-08  5:03 ` [Intel-xe] [PATCH 1/3] drm/xe: s/XE_PTE_READ_ONLY/XE_PTE_FLAG_READ_ONLY Matthew Brost
2023-06-08  8:26   ` Francois Dugast
2023-06-14  7:59   ` Thomas Hellström
2023-06-08  5:03 ` [Intel-xe] [PATCH 2/3] drm/xe: Move XE_PTE_FLAG_READ_ONLY to xe_vm_types.h Matthew Brost
2023-06-08  8:28   ` Francois Dugast
2023-06-14  8:02   ` Thomas Hellström
2023-06-08  5:03 ` [Intel-xe] [PATCH 3/3] drm/xe: NULL binding implementation Matthew Brost
2023-06-08 20:59   ` Welty, Brian
2023-06-09  3:28     ` Matthew Brost
2023-06-14  2:49   ` Niranjana Vishwanathapura
2023-06-15 18:01     ` Matthew Brost
2023-06-16 23:32       ` Niranjana Vishwanathapura
2023-06-14  8:17   ` Thomas Hellström
2023-06-15 17:52     ` Matthew Brost
2023-06-14 17:07   ` Niranjana Vishwanathapura
2023-06-15 17:50     ` Matthew Brost
2023-06-14 18:48   ` Zanoni, Paulo R
2023-06-14 20:24     ` Zanoni, Paulo R
2023-06-15  0:44       ` Zanoni, Paulo R
2023-06-15  3:43     ` Matthew Brost
2023-06-08  5:05 ` [Intel-xe] ✓ CI.Patch_applied: success for NULL bindings aka sparse bindings Patchwork
2023-06-08  5:06 ` [Intel-xe] ✗ CI.checkpatch: warning " Patchwork
2023-06-08  5:07 ` [Intel-xe] ✓ CI.KUnit: success " Patchwork
2023-06-08  5:11 ` [Intel-xe] ✓ CI.Build: " Patchwork
2023-06-08  5:11 ` [Intel-xe] ✓ CI.Hooks: " Patchwork
2023-06-08  5:12 ` [Intel-xe] ✓ CI.checksparse: " Patchwork
2023-06-08  5:45 ` [Intel-xe] ○ CI.BAT: info " Patchwork
2023-06-14 18:50 ` [Intel-xe] ✗ CI.Patch_applied: failure for NULL bindings aka sparse bindings (rev2) Patchwork
2023-06-15  1:19 ` [Intel-xe] ✗ CI.Patch_applied: failure for NULL bindings aka sparse bindings (rev3) Patchwork

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