Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/3] drm/xe: add VM_BIND DECOMPRESS support and on‑demand decompression
@ 2025-10-15 10:47 Nitin Gote
  2025-10-15 10:47 ` [PATCH v3 1/3] drm/xe: add VM_BIND DECOMPRESS uapi flag Nitin Gote
                   ` (6 more replies)
  0 siblings, 7 replies; 11+ messages in thread
From: Nitin Gote @ 2025-10-15 10:47 UTC (permalink / raw)
  To: intel-xe; +Cc: matthew.brost, matthew.auld, Nitin Gote

This series implements VM_BIND decompression support in the XE driver
for both non-fault mode and fault mode.

Tested with https://patchwork.freedesktop.org/series/154711/
which validates basic VM_BIND DECOMPRESS behavior for both
regular and FAULT_MODE VMs.

v3: (Matt)
   - s/xe_bo_schedule_decompress/xe_bo_decompress
   - skip the decrompress step if the BO isn't in VRAM
   - start/size not required in xe_bo_schedule_decompress
   - Use xe_bo_move_notify instead of xe_vm_invalidate_vma
     with respect to invalidation.
   - Nits
 
v2:
   - Add kernel doc (Matt)
   - Move decompression work out of vm_bind ioctl. (Matt)
   - Put that work in a small helper at the BO/migrate layer invoke it
     from vma_lock_and_validate which already runs under drm_exec.
   - Move lightweight checks to vm_bind_ioctl_check_args (Matthew Auld)


Nitin Gote (3):
  drm/xe: add VM_BIND DECOMPRESS uapi flag
  drm/xe: add xe_migrate_resolve wrapper and is_vram_resolve support
  drm/xe: implement VM_BIND decompression in vm_bind_ioctl

 drivers/gpu/drm/xe/xe_bo.c       | 50 ++++++++++++++++++
 drivers/gpu/drm/xe/xe_bo.h       |  2 +
 drivers/gpu/drm/xe/xe_migrate.c  | 90 ++++++++++++++++++++++----------
 drivers/gpu/drm/xe/xe_migrate.h  |  7 +++
 drivers/gpu/drm/xe/xe_vm.c       | 40 ++++++++++----
 drivers/gpu/drm/xe/xe_vm_types.h |  2 +
 include/uapi/drm/xe_drm.h        |  8 +++
 7 files changed, 161 insertions(+), 38 deletions(-)

-- 
2.25.1


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

* [PATCH v3 1/3] drm/xe: add VM_BIND DECOMPRESS uapi flag
  2025-10-15 10:47 [PATCH v3 0/3] drm/xe: add VM_BIND DECOMPRESS support and on‑demand decompression Nitin Gote
@ 2025-10-15 10:47 ` Nitin Gote
  2025-10-17 21:54   ` Matthew Brost
  2025-10-15 10:47 ` [PATCH v3 2/3] drm/xe: add xe_migrate_resolve wrapper and is_vram_resolve support Nitin Gote
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 11+ messages in thread
From: Nitin Gote @ 2025-10-15 10:47 UTC (permalink / raw)
  To: intel-xe; +Cc: matthew.brost, matthew.auld, Nitin Gote

Add a new VM_BIND flag, DRM_XE_VM_BIND_FLAG_DECOMPRESS, that lets userspace
express intent for the driver to perform on-device in-place decompression
for the GPU mapping created by a MAP bind operation.

This flag is used by subsequent driver changes to trigger scheduling of
GPU work that resolves compressed VRAM pages into an uncompressed PAT
VM mapping.

Behavior and semantics:
- Valid only for DRM_XE_VM_BIND_OP_MAP. IOCTLs using this flag on other ops
  are rejected (-EINVAL).
- The bind's pat_index must select the device "no-compression" PAT entry;
  otherwise the ioctl is rejected (-EINVAL).
- Only meaningful for VRAM-backed BOs on devices that support Flat CCS and
  the required hardware generation (driver will return -EOPNOTSUPP if not).
- On success the driver schedules a migrate/resolve and installs the
  returned dma_fence into the BO's kernel reservation
  (DMA_RESV_USAGE_KERNEL).

v2: Add kernel doc (Matt)

Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Signed-off-by: Nitin Gote <nitin.r.gote@intel.com>
---
 include/uapi/drm/xe_drm.h | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index 40ff19f52a8d..07bd63651a7e 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -1013,6 +1013,13 @@ struct drm_xe_vm_destroy {
  *    valid on VMs with DRM_XE_VM_CREATE_FLAG_FAULT_MODE set. The CPU address
  *    mirror flag are only valid for DRM_XE_VM_BIND_OP_MAP operations, the BO
  *    handle MBZ, and the BO offset MBZ.
+ *  - DRM_XE_VM_BIND_FLAG_DECOMPRESS - Request on-device decompression for a MAP.
+ *    When set on a MAP bind operation, request the driver schedule an on-device
+ *    in-place decompression (via the migrate/resolve path) for the GPU mapping
+ *    created by this bind. Only valid for DRM_XE_VM_BIND_OP_MAP; usage on
+ *    other ops is rejected. The bind's pat_index must select the device's
+ *    "no-compression" PAT. Only meaningful for VRAM-backed BOs on devices that
+ *    support Flat CCS and the required HW generation XE2+.
  *
  * The @prefetch_mem_region_instance for %DRM_XE_VM_BIND_OP_PREFETCH can also be:
  *  - %DRM_XE_CONSULT_MEM_ADVISE_PREF_LOC, which ensures prefetching occurs in
@@ -1119,6 +1126,7 @@ struct drm_xe_vm_bind_op {
 #define DRM_XE_VM_BIND_FLAG_DUMPABLE	(1 << 3)
 #define DRM_XE_VM_BIND_FLAG_CHECK_PXP	(1 << 4)
 #define DRM_XE_VM_BIND_FLAG_CPU_ADDR_MIRROR	(1 << 5)
+#define DRM_XE_VM_BIND_FLAG_DECOMPRESS	(1 << 6)
 	/** @flags: Bind flags */
 	__u32 flags;
 
-- 
2.25.1


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

* [PATCH v3 2/3] drm/xe: add xe_migrate_resolve wrapper and is_vram_resolve support
  2025-10-15 10:47 [PATCH v3 0/3] drm/xe: add VM_BIND DECOMPRESS support and on‑demand decompression Nitin Gote
  2025-10-15 10:47 ` [PATCH v3 1/3] drm/xe: add VM_BIND DECOMPRESS uapi flag Nitin Gote
@ 2025-10-15 10:47 ` Nitin Gote
  2025-10-17 21:52   ` Matthew Brost
  2025-10-15 10:47 ` [PATCH v3 3/3] drm/xe: implement VM_BIND decompression in vm_bind_ioctl Nitin Gote
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 11+ messages in thread
From: Nitin Gote @ 2025-10-15 10:47 UTC (permalink / raw)
  To: intel-xe; +Cc: matthew.brost, matthew.auld, Nitin Gote

Introduce an internal __xe_migrate_copy(..., is_vram_resolve) path and
expose a small wrapper xe_migrate_resolve() that calls it with
is_vram_resolve=true.

For resolve/decompression operations we must ensure the copy code uses
the compression PAT index when appropriate; this change centralizes that
behavior and allows callers to schedule a resolve (decompress) operation
via the migrate API.

Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Signed-off-by: Nitin Gote <nitin.r.gote@intel.com>
---
 drivers/gpu/drm/xe/xe_migrate.c | 90 +++++++++++++++++++++++----------
 drivers/gpu/drm/xe/xe_migrate.h |  7 +++
 2 files changed, 70 insertions(+), 27 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_migrate.c b/drivers/gpu/drm/xe/xe_migrate.c
index 4ca48dd1cfd8..1ab649c1e4e0 100644
--- a/drivers/gpu/drm/xe/xe_migrate.c
+++ b/drivers/gpu/drm/xe/xe_migrate.c
@@ -777,31 +777,13 @@ static u32 xe_migrate_ccs_copy(struct xe_migrate *m,
 	return flush_flags;
 }
 
-/**
- * xe_migrate_copy() - Copy content of TTM resources.
- * @m: The migration context.
- * @src_bo: The buffer object @src is currently bound to.
- * @dst_bo: If copying between resources created for the same bo, set this to
- * the same value as @src_bo. If copying between buffer objects, set it to
- * the buffer object @dst is currently bound to.
- * @src: The source TTM resource.
- * @dst: The dst TTM resource.
- * @copy_only_ccs: If true copy only CCS metadata
- *
- * Copies the contents of @src to @dst: On flat CCS devices,
- * the CCS metadata is copied as well if needed, or if not present,
- * the CCS metadata of @dst is cleared for security reasons.
- *
- * Return: Pointer to a dma_fence representing the last copy batch, or
- * an error pointer on failure. If there is a failure, any copy operation
- * started by the function call has been synced.
- */
-struct dma_fence *xe_migrate_copy(struct xe_migrate *m,
-				  struct xe_bo *src_bo,
-				  struct xe_bo *dst_bo,
-				  struct ttm_resource *src,
-				  struct ttm_resource *dst,
-				  bool copy_only_ccs)
+static struct dma_fence *__xe_migrate_copy(struct xe_migrate *m,
+					   struct xe_bo *src_bo,
+					   struct xe_bo *dst_bo,
+					   struct ttm_resource *src,
+					   struct ttm_resource *dst,
+					   bool copy_only_ccs,
+					   bool is_vram_resolve)
 {
 	struct xe_gt *gt = m->tile->primary_gt;
 	struct xe_device *xe = gt_to_xe(gt);
@@ -822,8 +804,19 @@ struct dma_fence *xe_migrate_copy(struct xe_migrate *m,
 	bool copy_ccs = xe_device_has_flat_ccs(xe) &&
 		xe_bo_needs_ccs_pages(src_bo) && xe_bo_needs_ccs_pages(dst_bo);
 	bool copy_system_ccs = copy_ccs && (!src_is_vram || !dst_is_vram);
-	bool use_comp_pat = type_device && xe_device_has_flat_ccs(xe) &&
-		GRAPHICS_VER(xe) >= 20 && src_is_vram && !dst_is_vram;
+	bool use_comp_pat;
+
+	/*
+	 * For decompression operation, always use the compression PAT index.
+	 * Otherwise, only use the compression PAT index for device memory
+	 * when copying from VRAM to system memory.
+	 */
+	if (is_vram_resolve) {
+		use_comp_pat = true;
+	} else {
+		use_comp_pat = type_device && xe_device_has_flat_ccs(xe) &&
+			GRAPHICS_VER(xe) >= 20 && src_is_vram && !dst_is_vram;
+	}
 
 	/* Copying CCS between two different BOs is not supported yet. */
 	if (XE_WARN_ON(copy_ccs && src_bo != dst_bo))
@@ -982,6 +975,49 @@ struct dma_fence *xe_migrate_copy(struct xe_migrate *m,
 	return fence;
 }
 
+/**
+ * xe_migrate_copy() - Copy content of TTM resources.
+ * @m: The migration context.
+ * @src_bo: The buffer object @src is currently bound to.
+ * @dst_bo: If copying between resources created for the same bo, set this to
+ * the same value as @src_bo. If copying between buffer objects, set it to
+ * the buffer object @dst is currently bound to.
+ * @src: The source TTM resource.
+ * @dst: The dst TTM resource.
+ * @copy_only_ccs: If true copy only CCS metadata
+ *
+ * Copies the contents of @src to @dst: On flat CCS devices,
+ * the CCS metadata is copied as well if needed, or if not present,
+ * the CCS metadata of @dst is cleared for security reasons.
+ *
+ * Return: Pointer to a dma_fence representing the last copy batch, or
+ * an error pointer on failure. If there is a failure, any copy operation
+ * started by the function call has been synced.
+ */
+struct dma_fence *xe_migrate_copy(struct xe_migrate *m,
+				  struct xe_bo *src_bo,
+				  struct xe_bo *dst_bo,
+				  struct ttm_resource *src,
+				  struct ttm_resource *dst,
+				  bool copy_only_ccs)
+{
+	return __xe_migrate_copy(m, src_bo, dst_bo, src, dst, copy_only_ccs, false);
+}
+
+/**
+ * xe_migrate_resolve() - Resolve and decompress a buffer object if required.
+ * This wrapper forwards to __xe_migrate_copy() with is_vram_resolve=true.
+ */
+struct dma_fence *xe_migrate_resolve(struct xe_migrate *m,
+				     struct xe_bo *src_bo,
+				     struct xe_bo *dst_bo,
+				     struct ttm_resource *src,
+				     struct ttm_resource *dst,
+				     bool copy_only_ccs)
+{
+	return __xe_migrate_copy(m, src_bo, dst_bo, src, dst, copy_only_ccs, true);
+}
+
 /**
  * xe_migrate_lrc() - Get the LRC from migrate context.
  * @migrate: Migrate context.
diff --git a/drivers/gpu/drm/xe/xe_migrate.h b/drivers/gpu/drm/xe/xe_migrate.h
index 4fad324b6253..ade68ab32a71 100644
--- a/drivers/gpu/drm/xe/xe_migrate.h
+++ b/drivers/gpu/drm/xe/xe_migrate.h
@@ -125,6 +125,13 @@ struct dma_fence *xe_migrate_copy(struct xe_migrate *m,
 				  struct ttm_resource *dst,
 				  bool copy_only_ccs);
 
+struct dma_fence *xe_migrate_resolve(struct xe_migrate *m,
+				     struct xe_bo *src_bo,
+				     struct xe_bo *dst_bo,
+				     struct ttm_resource *src,
+				     struct ttm_resource *dst,
+				     bool copy_only_ccs);
+
 int xe_migrate_ccs_rw_copy(struct xe_tile *tile, struct xe_exec_queue *q,
 			   struct xe_bo *src_bo,
 			   enum xe_sriov_vf_ccs_rw_ctxs read_write);
-- 
2.25.1


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

* [PATCH v3 3/3] drm/xe: implement VM_BIND decompression in vm_bind_ioctl
  2025-10-15 10:47 [PATCH v3 0/3] drm/xe: add VM_BIND DECOMPRESS support and on‑demand decompression Nitin Gote
  2025-10-15 10:47 ` [PATCH v3 1/3] drm/xe: add VM_BIND DECOMPRESS uapi flag Nitin Gote
  2025-10-15 10:47 ` [PATCH v3 2/3] drm/xe: add xe_migrate_resolve wrapper and is_vram_resolve support Nitin Gote
@ 2025-10-15 10:47 ` Nitin Gote
  2025-10-17 22:19   ` Matthew Brost
  2025-10-15 16:15 ` ✓ CI.KUnit: success for drm/xe: add VM_BIND DECOMPRESS support and on‑demand decompression (rev3) Patchwork
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 11+ messages in thread
From: Nitin Gote @ 2025-10-15 10:47 UTC (permalink / raw)
  To: intel-xe; +Cc: matthew.brost, matthew.auld, Nitin Gote

Implement handling of VM_BIND(..., DECOMPRESS) in xe_vm_bind_ioctl.

Key changes:
- Parse and record per-op intent (op->map.request_decompress) when the
  DECOMPRESS flag is present.
- Validate DECOMPRESS preconditions in the ioctl path:
  - Only valid for MAP ops.
  - The provided pat_index must select the device's "no-compression" PAT.
  - Only meaningful on devices with flat CCS and the required XE2+
    otherwise return -EOPNOTSUPP.
  - Use XE_IOCTL_DBG for uAPI sanity checks.
- Implement xe_bo_schedule_decompress():
  For VRAM BOs run xe_bo_move_notify(), reserve one fence slot,
  schedule xe_migrate_resolve(), and attach the returned fence
  with DMA_RESV_USAGE_KERNEL. Non-VRAM cases are silent no-ops.
- Wire scheduling into vma_lock_and_validate() so VM_BIND will schedule
  decompression when request_decompress is set.
- Handle fault-mode VMs by performing decompression synchronously during
  the bind process, ensuring that the resolve is completed before the bind
  finishes.

This schedules an in-place GPU resolve (xe_migrate_resolve) for
decompression.

v3: (Matt)
   - s/xe_bo_schedule_decompress/xe_bo_decompress
   - skip the decrompress step if the BO isn't in VRAM
   - start/size not required in xe_bo_schedule_decompress
   - Use xe_bo_move_notify instead of xe_vm_invalidate_vma
     with respect to invalidation.
   - Nits

v2:
   - Move decompression work out of vm_bind ioctl. (Matt)
   - Put that work in a small helper at the BO/migrate layer invoke it
     from vma_lock_and_validate which already runs under drm_exec.
   - Move lightweight checks to vm_bind_ioctl_check_args (Matthew Auld)

Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Signed-off-by: Nitin Gote <nitin.r.gote@intel.com>
---
Hi Matt,
Thank you for the review.
Regarding multiple bool params in vma_lock_and_validate(),
I will clean it in new patch.

-Nitin

 drivers/gpu/drm/xe/xe_bo.c       | 50 ++++++++++++++++++++++++++++++++
 drivers/gpu/drm/xe/xe_bo.h       |  2 ++
 drivers/gpu/drm/xe/xe_vm.c       | 40 ++++++++++++++++++-------
 drivers/gpu/drm/xe/xe_vm_types.h |  2 ++
 4 files changed, 83 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
index 7b6502081873..7438c01c1895 100644
--- a/drivers/gpu/drm/xe/xe_bo.c
+++ b/drivers/gpu/drm/xe/xe_bo.c
@@ -3307,6 +3307,56 @@ int xe_gem_mmap_offset_ioctl(struct drm_device *dev, void *data,
 	return 0;
 }
 
+/**
+ * xe_bo_decompress - schedule in-place decompress and install fence
+ * @bo:   buffer object (caller should hold drm_exec reservations for VM+BO)
+ * @vm:   VM containing the VMA range
+ *
+ * Schedules an in-place resolve via the migrate layer and installs the
+ * returned dma_fence into the BO kernel reservation slot (DMA_RESV_USAGE_KERNEL).
+ * Returns 0 on success, negative errno on error.
+ */
+int xe_bo_decompress(struct xe_bo *bo, struct xe_vm *vm)
+{
+	struct xe_tile *tile = xe_device_get_root_tile(vm->xe);
+	struct dma_fence *decomp_fence = NULL;
+	int err = 0;
+	struct ttm_operation_ctx op_ctx = {
+		.interruptible = false,
+		.no_wait_gpu = false,
+		.gfp_retry_mayfail = true,
+	};
+
+	/* Silently skip decompression for non-VRAM buffers */
+	if (!bo->ttm.resource || !mem_type_is_vram(bo->ttm.resource->mem_type))
+		return 0;
+
+	/* Notify before scheduling resolve */
+	err = xe_bo_move_notify(bo, &op_ctx);
+	if (err)
+		return err;
+
+	/* Reserve fence slot before scheduling */
+	err = dma_resv_reserve_fences(bo->ttm.base.resv, 1);
+	if (err)
+		return err;
+
+	/* Schedule the in-place decompression */
+	decomp_fence = xe_migrate_resolve(tile->migrate,
+					  bo, bo,
+					  bo->ttm.resource, bo->ttm.resource,
+					  false);
+
+	if (IS_ERR(decomp_fence))
+		return PTR_ERR(decomp_fence);
+
+	/* Install kernel-usage fence */
+	dma_resv_add_fence(bo->ttm.base.resv, decomp_fence, DMA_RESV_USAGE_KERNEL);
+	dma_fence_put(decomp_fence);
+
+	return 0;
+}
+
 /**
  * xe_bo_lock() - Lock the buffer object's dma_resv object
  * @bo: The struct xe_bo whose lock is to be taken
diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
index 353d607d301d..472c9de889c9 100644
--- a/drivers/gpu/drm/xe/xe_bo.h
+++ b/drivers/gpu/drm/xe/xe_bo.h
@@ -308,6 +308,8 @@ int xe_bo_dumb_create(struct drm_file *file_priv,
 
 bool xe_bo_needs_ccs_pages(struct xe_bo *bo);
 
+int xe_bo_decompress(struct xe_bo *bo, struct xe_vm *vm);
+
 static inline size_t xe_bo_ccs_pages_start(struct xe_bo *bo)
 {
 	return PAGE_ALIGN(xe_bo_size(bo));
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index 08bc55bd91d7..8bb2a3259d56 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -2305,6 +2305,7 @@ vm_bind_ioctl_ops_create(struct xe_vm *vm, struct xe_vma_ops *vops,
 			op->map.is_cpu_addr_mirror = flags &
 				DRM_XE_VM_BIND_FLAG_CPU_ADDR_MIRROR;
 			op->map.dumpable = flags & DRM_XE_VM_BIND_FLAG_DUMPABLE;
+			op->map.request_decompress = flags & DRM_XE_VM_BIND_FLAG_DECOMPRESS;
 			op->map.pat_index = pat_index;
 			op->map.invalidate_on_bind =
 				__xe_vm_needs_clear_scratch_pages(vm, flags);
@@ -2859,7 +2860,7 @@ static void vm_bind_ioctl_ops_unwind(struct xe_vm *vm,
 }
 
 static int vma_lock_and_validate(struct drm_exec *exec, struct xe_vma *vma,
-				 bool res_evict, bool validate)
+				 bool res_evict, bool validate, bool request_decompress)
 {
 	struct xe_bo *bo = xe_vma_bo(vma);
 	struct xe_vm *vm = xe_vma_vm(vma);
@@ -2872,6 +2873,12 @@ static int vma_lock_and_validate(struct drm_exec *exec, struct xe_vma *vma,
 			err = xe_bo_validate(bo, vm,
 					     !xe_vm_in_preempt_fence_mode(vm) &&
 					     res_evict, exec);
+
+		if (err)
+			return err;
+
+		if (request_decompress)
+			err = xe_bo_decompress(bo, vm);
 	}
 
 	return err;
@@ -2959,7 +2966,8 @@ static int op_lock_and_prep(struct drm_exec *exec, struct xe_vm *vm,
 			err = vma_lock_and_validate(exec, op->map.vma,
 						    res_evict,
 						    !xe_vm_in_fault_mode(vm) ||
-						    op->map.immediate);
+						    op->map.immediate,
+						    op->map.request_decompress);
 		break;
 	case DRM_GPUVA_OP_REMAP:
 		err = check_ufence(gpuva_to_vma(op->base.remap.unmap->va));
@@ -2968,13 +2976,13 @@ static int op_lock_and_prep(struct drm_exec *exec, struct xe_vm *vm,
 
 		err = vma_lock_and_validate(exec,
 					    gpuva_to_vma(op->base.remap.unmap->va),
-					    res_evict, false);
+					    res_evict, false, false);
 		if (!err && op->remap.prev)
 			err = vma_lock_and_validate(exec, op->remap.prev,
-						    res_evict, true);
+						    res_evict, true, false);
 		if (!err && op->remap.next)
 			err = vma_lock_and_validate(exec, op->remap.next,
-						    res_evict, true);
+						    res_evict, true, false);
 		break;
 	case DRM_GPUVA_OP_UNMAP:
 		err = check_ufence(gpuva_to_vma(op->base.unmap.va));
@@ -2983,7 +2991,7 @@ static int op_lock_and_prep(struct drm_exec *exec, struct xe_vm *vm,
 
 		err = vma_lock_and_validate(exec,
 					    gpuva_to_vma(op->base.unmap.va),
-					    res_evict, false);
+					    res_evict, false, false);
 		break;
 	case DRM_GPUVA_OP_PREFETCH:
 	{
@@ -2998,7 +3006,7 @@ static int op_lock_and_prep(struct drm_exec *exec, struct xe_vm *vm,
 
 		err = vma_lock_and_validate(exec,
 					    gpuva_to_vma(op->base.prefetch.va),
-					    res_evict, false);
+					    res_evict, false, false);
 		if (!err && !xe_vma_has_no_bo(vma))
 			err = xe_bo_migrate(xe_vma_bo(vma),
 					    region_to_mem_type[region],
@@ -3306,7 +3314,8 @@ ALLOW_ERROR_INJECTION(vm_bind_ioctl_ops_execute, ERRNO);
 	 DRM_XE_VM_BIND_FLAG_NULL | \
 	 DRM_XE_VM_BIND_FLAG_DUMPABLE | \
 	 DRM_XE_VM_BIND_FLAG_CHECK_PXP | \
-	 DRM_XE_VM_BIND_FLAG_CPU_ADDR_MIRROR)
+	 DRM_XE_VM_BIND_FLAG_CPU_ADDR_MIRROR | \
+	 DRM_XE_VM_BIND_FLAG_DECOMPRESS)
 
 #ifdef TEST_VM_OPS_ERROR
 #define SUPPORTED_FLAGS	(SUPPORTED_FLAGS_STUB | FORCE_OP_ERROR)
@@ -3364,6 +3373,7 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe, struct xe_vm *vm,
 		bool is_null = flags & DRM_XE_VM_BIND_FLAG_NULL;
 		bool is_cpu_addr_mirror = flags &
 			DRM_XE_VM_BIND_FLAG_CPU_ADDR_MIRROR;
+		bool is_decompress = flags & DRM_XE_VM_BIND_FLAG_DECOMPRESS;
 		u16 pat_index = (*bind_ops)[i].pat_index;
 		u16 coh_mode;
 
@@ -3398,7 +3408,9 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe, struct xe_vm *vm,
 		    XE_IOCTL_DBG(xe, obj_offset && (is_null ||
 						    is_cpu_addr_mirror)) ||
 		    XE_IOCTL_DBG(xe, op != DRM_XE_VM_BIND_OP_MAP &&
-				 (is_null || is_cpu_addr_mirror)) ||
+				 (is_decompress || is_null || is_cpu_addr_mirror)) ||
+		    XE_IOCTL_DBG(xe, is_decompress &&
+				 pat_index != xe->pat.idx[XE_CACHE_NONE_COMPRESSION]) ||
 		    XE_IOCTL_DBG(xe, !obj &&
 				 op == DRM_XE_VM_BIND_OP_MAP &&
 				 !is_null && !is_cpu_addr_mirror) ||
@@ -3418,8 +3430,8 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe, struct xe_vm *vm,
 				 op == DRM_XE_VM_BIND_OP_PREFETCH) ||
 		    XE_IOCTL_DBG(xe, prefetch_region &&
 				 op != DRM_XE_VM_BIND_OP_PREFETCH) ||
-		    XE_IOCTL_DBG(xe,  (prefetch_region != DRM_XE_CONSULT_MEM_ADVISE_PREF_LOC &&
-				       !(BIT(prefetch_region) & xe->info.mem_region_mask))) ||
+		    XE_IOCTL_DBG(xe, (prefetch_region != DRM_XE_CONSULT_MEM_ADVISE_PREF_LOC &&
+				      !(BIT(prefetch_region) & xe->info.mem_region_mask))) ||
 		    XE_IOCTL_DBG(xe, obj &&
 				 op == DRM_XE_VM_BIND_OP_UNMAP)) {
 			err = -EINVAL;
@@ -3434,6 +3446,12 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe, struct xe_vm *vm,
 			err = -EINVAL;
 			goto free_bind_ops;
 		}
+
+		if (is_decompress && (XE_IOCTL_DBG(xe, !xe_device_has_flat_ccs(xe)) ||
+				      XE_IOCTL_DBG(xe, GRAPHICS_VER(xe) < 20))) {
+			err = -EOPNOTSUPP;
+			goto free_bind_ops;
+		}
 	}
 
 	return 0;
diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
index 413353e1c225..7d652d17b0dc 100644
--- a/drivers/gpu/drm/xe/xe_vm_types.h
+++ b/drivers/gpu/drm/xe/xe_vm_types.h
@@ -357,6 +357,8 @@ struct xe_vma_op_map {
 	bool dumpable;
 	/** @invalidate: invalidate the VMA before bind */
 	bool invalidate_on_bind;
+	/** @request_decompress: schedule decompression for GPU map */
+	bool request_decompress;
 	/** @pat_index: The pat index to use for this operation. */
 	u16 pat_index;
 };
-- 
2.25.1


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

* ✓ CI.KUnit: success for drm/xe: add VM_BIND DECOMPRESS support and on‑demand decompression (rev3)
  2025-10-15 10:47 [PATCH v3 0/3] drm/xe: add VM_BIND DECOMPRESS support and on‑demand decompression Nitin Gote
                   ` (2 preceding siblings ...)
  2025-10-15 10:47 ` [PATCH v3 3/3] drm/xe: implement VM_BIND decompression in vm_bind_ioctl Nitin Gote
@ 2025-10-15 16:15 ` Patchwork
  2025-10-15 16:55 ` ✓ Xe.CI.BAT: " Patchwork
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2025-10-15 16:15 UTC (permalink / raw)
  To: Nitin Gote; +Cc: intel-xe

== Series Details ==

Series: drm/xe: add VM_BIND DECOMPRESS support and on‑demand decompression (rev3)
URL   : https://patchwork.freedesktop.org/series/154714/
State : success

== Summary ==

+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[16:14:09] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[16:14:13] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[16:14:43] Starting KUnit Kernel (1/1)...
[16:14:43] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[16:14:43] ================== guc_buf (11 subtests) ===================
[16:14:43] [PASSED] test_smallest
[16:14:43] [PASSED] test_largest
[16:14:43] [PASSED] test_granular
[16:14:43] [PASSED] test_unique
[16:14:43] [PASSED] test_overlap
[16:14:43] [PASSED] test_reusable
[16:14:43] [PASSED] test_too_big
[16:14:43] [PASSED] test_flush
[16:14:43] [PASSED] test_lookup
[16:14:43] [PASSED] test_data
[16:14:43] [PASSED] test_class
[16:14:43] ===================== [PASSED] guc_buf =====================
[16:14:43] =================== guc_dbm (7 subtests) ===================
[16:14:43] [PASSED] test_empty
[16:14:43] [PASSED] test_default
[16:14:43] ======================== test_size  ========================
[16:14:43] [PASSED] 4
[16:14:43] [PASSED] 8
[16:14:43] [PASSED] 32
[16:14:43] [PASSED] 256
[16:14:43] ==================== [PASSED] test_size ====================
[16:14:43] ======================= test_reuse  ========================
[16:14:43] [PASSED] 4
[16:14:43] [PASSED] 8
[16:14:43] [PASSED] 32
[16:14:43] [PASSED] 256
[16:14:43] =================== [PASSED] test_reuse ====================
[16:14:43] =================== test_range_overlap  ====================
[16:14:43] [PASSED] 4
[16:14:43] [PASSED] 8
[16:14:43] [PASSED] 32
[16:14:43] [PASSED] 256
[16:14:43] =============== [PASSED] test_range_overlap ================
[16:14:43] =================== test_range_compact  ====================
[16:14:43] [PASSED] 4
[16:14:43] [PASSED] 8
[16:14:43] [PASSED] 32
[16:14:43] [PASSED] 256
[16:14:43] =============== [PASSED] test_range_compact ================
[16:14:43] ==================== test_range_spare  =====================
[16:14:43] [PASSED] 4
[16:14:43] [PASSED] 8
[16:14:43] [PASSED] 32
[16:14:43] [PASSED] 256
[16:14:43] ================ [PASSED] test_range_spare =================
[16:14:43] ===================== [PASSED] guc_dbm =====================
[16:14:43] =================== guc_idm (6 subtests) ===================
[16:14:43] [PASSED] bad_init
[16:14:43] [PASSED] no_init
[16:14:43] [PASSED] init_fini
[16:14:43] [PASSED] check_used
[16:14:43] [PASSED] check_quota
[16:14:43] [PASSED] check_all
[16:14:43] ===================== [PASSED] guc_idm =====================
[16:14:43] ================== no_relay (3 subtests) ===================
[16:14:43] [PASSED] xe_drops_guc2pf_if_not_ready
[16:14:43] [PASSED] xe_drops_guc2vf_if_not_ready
[16:14:43] [PASSED] xe_rejects_send_if_not_ready
[16:14:43] ==================== [PASSED] no_relay =====================
[16:14:43] ================== pf_relay (14 subtests) ==================
[16:14:43] [PASSED] pf_rejects_guc2pf_too_short
[16:14:43] [PASSED] pf_rejects_guc2pf_too_long
[16:14:43] [PASSED] pf_rejects_guc2pf_no_payload
[16:14:43] [PASSED] pf_fails_no_payload
[16:14:43] [PASSED] pf_fails_bad_origin
[16:14:43] [PASSED] pf_fails_bad_type
[16:14:43] [PASSED] pf_txn_reports_error
[16:14:43] [PASSED] pf_txn_sends_pf2guc
[16:14:43] [PASSED] pf_sends_pf2guc
[16:14:43] [SKIPPED] pf_loopback_nop
[16:14:43] [SKIPPED] pf_loopback_echo
[16:14:43] [SKIPPED] pf_loopback_fail
[16:14:43] [SKIPPED] pf_loopback_busy
[16:14:43] [SKIPPED] pf_loopback_retry
[16:14:43] ==================== [PASSED] pf_relay =====================
[16:14:43] ================== vf_relay (3 subtests) ===================
[16:14:43] [PASSED] vf_rejects_guc2vf_too_short
[16:14:43] [PASSED] vf_rejects_guc2vf_too_long
[16:14:43] [PASSED] vf_rejects_guc2vf_no_payload
[16:14:43] ==================== [PASSED] vf_relay =====================
[16:14:43] ===================== lmtt (1 subtest) =====================
[16:14:43] ======================== test_ops  =========================
[16:14:43] [PASSED] 2-level
[16:14:43] [PASSED] multi-level
[16:14:43] ==================== [PASSED] test_ops =====================
[16:14:43] ====================== [PASSED] lmtt =======================
[16:14:43] ================= pf_service (11 subtests) =================
[16:14:43] [PASSED] pf_negotiate_any
[16:14:43] [PASSED] pf_negotiate_base_match
[16:14:43] [PASSED] pf_negotiate_base_newer
[16:14:43] [PASSED] pf_negotiate_base_next
[16:14:43] [SKIPPED] pf_negotiate_base_older
[16:14:43] [PASSED] pf_negotiate_base_prev
[16:14:43] [PASSED] pf_negotiate_latest_match
[16:14:43] [PASSED] pf_negotiate_latest_newer
[16:14:43] [PASSED] pf_negotiate_latest_next
[16:14:43] [SKIPPED] pf_negotiate_latest_older
[16:14:43] [SKIPPED] pf_negotiate_latest_prev
[16:14:43] =================== [PASSED] pf_service ====================
[16:14:43] ================= xe_guc_g2g (2 subtests) ==================
[16:14:43] ============== xe_live_guc_g2g_kunit_default  ==============
[16:14:43] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[16:14:43] ============== xe_live_guc_g2g_kunit_allmem  ===============
[16:14:43] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[16:14:43] =================== [SKIPPED] xe_guc_g2g ===================
[16:14:43] =================== xe_mocs (2 subtests) ===================
[16:14:43] ================ xe_live_mocs_kernel_kunit  ================
[16:14:43] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[16:14:43] ================ xe_live_mocs_reset_kunit  =================
[16:14:43] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[16:14:43] ==================== [SKIPPED] xe_mocs =====================
[16:14:43] ================= xe_migrate (2 subtests) ==================
[16:14:43] ================= xe_migrate_sanity_kunit  =================
[16:14:43] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[16:14:43] ================== xe_validate_ccs_kunit  ==================
[16:14:43] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[16:14:43] =================== [SKIPPED] xe_migrate ===================
[16:14:43] ================== xe_dma_buf (1 subtest) ==================
[16:14:43] ==================== xe_dma_buf_kunit  =====================
[16:14:43] ================ [SKIPPED] xe_dma_buf_kunit ================
[16:14:43] =================== [SKIPPED] xe_dma_buf ===================
[16:14:43] ================= xe_bo_shrink (1 subtest) =================
[16:14:43] =================== xe_bo_shrink_kunit  ====================
[16:14:43] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[16:14:43] ================== [SKIPPED] xe_bo_shrink ==================
[16:14:43] ==================== xe_bo (2 subtests) ====================
[16:14:43] ================== xe_ccs_migrate_kunit  ===================
[16:14:43] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[16:14:43] ==================== xe_bo_evict_kunit  ====================
[16:14:43] =============== [SKIPPED] xe_bo_evict_kunit ================
[16:14:43] ===================== [SKIPPED] xe_bo ======================
[16:14:43] ==================== args (11 subtests) ====================
[16:14:43] [PASSED] count_args_test
[16:14:43] [PASSED] call_args_example
[16:14:43] [PASSED] call_args_test
[16:14:43] [PASSED] drop_first_arg_example
[16:14:43] [PASSED] drop_first_arg_test
[16:14:43] [PASSED] first_arg_example
[16:14:43] [PASSED] first_arg_test
[16:14:43] [PASSED] last_arg_example
[16:14:43] [PASSED] last_arg_test
[16:14:43] [PASSED] pick_arg_example
[16:14:43] [PASSED] sep_comma_example
[16:14:43] ====================== [PASSED] args =======================
[16:14:43] =================== xe_pci (3 subtests) ====================
[16:14:43] ==================== check_graphics_ip  ====================
[16:14:43] [PASSED] 12.00 Xe_LP
[16:14:43] [PASSED] 12.10 Xe_LP+
[16:14:43] [PASSED] 12.55 Xe_HPG
[16:14:43] [PASSED] 12.60 Xe_HPC
[16:14:43] [PASSED] 12.70 Xe_LPG
[16:14:43] [PASSED] 12.71 Xe_LPG
[16:14:43] [PASSED] 12.74 Xe_LPG+
[16:14:43] [PASSED] 20.01 Xe2_HPG
[16:14:43] [PASSED] 20.02 Xe2_HPG
[16:14:43] [PASSED] 20.04 Xe2_LPG
[16:14:43] [PASSED] 30.00 Xe3_LPG
[16:14:43] [PASSED] 30.01 Xe3_LPG
[16:14:43] [PASSED] 30.03 Xe3_LPG
[16:14:43] ================ [PASSED] check_graphics_ip ================
[16:14:43] ===================== check_media_ip  ======================
[16:14:43] [PASSED] 12.00 Xe_M
[16:14:43] [PASSED] 12.55 Xe_HPM
[16:14:43] [PASSED] 13.00 Xe_LPM+
[16:14:43] [PASSED] 13.01 Xe2_HPM
[16:14:43] [PASSED] 20.00 Xe2_LPM
[16:14:43] [PASSED] 30.00 Xe3_LPM
[16:14:43] [PASSED] 30.02 Xe3_LPM
[16:14:43] ================= [PASSED] check_media_ip ==================
[16:14:43] ================= check_platform_gt_count  =================
[16:14:43] [PASSED] 0x9A60 (TIGERLAKE)
[16:14:43] [PASSED] 0x9A68 (TIGERLAKE)
[16:14:43] [PASSED] 0x9A70 (TIGERLAKE)
[16:14:43] [PASSED] 0x9A40 (TIGERLAKE)
[16:14:43] [PASSED] 0x9A49 (TIGERLAKE)
[16:14:43] [PASSED] 0x9A59 (TIGERLAKE)
[16:14:43] [PASSED] 0x9A78 (TIGERLAKE)
[16:14:43] [PASSED] 0x9AC0 (TIGERLAKE)
[16:14:43] [PASSED] 0x9AC9 (TIGERLAKE)
[16:14:43] [PASSED] 0x9AD9 (TIGERLAKE)
[16:14:43] [PASSED] 0x9AF8 (TIGERLAKE)
[16:14:43] [PASSED] 0x4C80 (ROCKETLAKE)
[16:14:43] [PASSED] 0x4C8A (ROCKETLAKE)
[16:14:43] [PASSED] 0x4C8B (ROCKETLAKE)
[16:14:43] [PASSED] 0x4C8C (ROCKETLAKE)
[16:14:43] [PASSED] 0x4C90 (ROCKETLAKE)
[16:14:43] [PASSED] 0x4C9A (ROCKETLAKE)
[16:14:43] [PASSED] 0x4680 (ALDERLAKE_S)
[16:14:43] [PASSED] 0x4682 (ALDERLAKE_S)
[16:14:43] [PASSED] 0x4688 (ALDERLAKE_S)
[16:14:43] [PASSED] 0x468A (ALDERLAKE_S)
[16:14:43] [PASSED] 0x468B (ALDERLAKE_S)
[16:14:43] [PASSED] 0x4690 (ALDERLAKE_S)
[16:14:43] [PASSED] 0x4692 (ALDERLAKE_S)
[16:14:43] [PASSED] 0x4693 (ALDERLAKE_S)
[16:14:43] [PASSED] 0x46A0 (ALDERLAKE_P)
[16:14:43] [PASSED] 0x46A1 (ALDERLAKE_P)
[16:14:43] [PASSED] 0x46A2 (ALDERLAKE_P)
[16:14:43] [PASSED] 0x46A3 (ALDERLAKE_P)
[16:14:43] [PASSED] 0x46A6 (ALDERLAKE_P)
[16:14:43] [PASSED] 0x46A8 (ALDERLAKE_P)
[16:14:43] [PASSED] 0x46AA (ALDERLAKE_P)
[16:14:43] [PASSED] 0x462A (ALDERLAKE_P)
[16:14:43] [PASSED] 0x4626 (ALDERLAKE_P)
[16:14:43] [PASSED] 0x4628 (ALDERLAKE_P)
[16:14:43] [PASSED] 0x46B0 (ALDERLAKE_P)
[16:14:43] [PASSED] 0x46B1 (ALDERLAKE_P)
[16:14:43] [PASSED] 0x46B2 (ALDERLAKE_P)
[16:14:43] [PASSED] 0x46B3 (ALDERLAKE_P)
[16:14:43] [PASSED] 0x46C0 (ALDERLAKE_P)
[16:14:43] [PASSED] 0x46C1 (ALDERLAKE_P)
[16:14:43] [PASSED] 0x46C2 (ALDERLAKE_P)
[16:14:43] [PASSED] 0x46C3 (ALDERLAKE_P)
[16:14:43] [PASSED] 0x46D0 (ALDERLAKE_N)
[16:14:43] [PASSED] 0x46D1 (ALDERLAKE_N)
[16:14:43] [PASSED] 0x46D2 (ALDERLAKE_N)
[16:14:43] [PASSED] 0x46D3 (ALDERLAKE_N)
[16:14:43] [PASSED] 0x46D4 (ALDERLAKE_N)
[16:14:43] [PASSED] 0xA721 (ALDERLAKE_P)
[16:14:43] [PASSED] 0xA7A1 (ALDERLAKE_P)
[16:14:43] [PASSED] 0xA7A9 (ALDERLAKE_P)
[16:14:43] [PASSED] 0xA7AC (ALDERLAKE_P)
[16:14:43] [PASSED] 0xA7AD (ALDERLAKE_P)
[16:14:43] [PASSED] 0xA720 (ALDERLAKE_P)
[16:14:43] [PASSED] 0xA7A0 (ALDERLAKE_P)
[16:14:43] [PASSED] 0xA7A8 (ALDERLAKE_P)
[16:14:43] [PASSED] 0xA7AA (ALDERLAKE_P)
[16:14:43] [PASSED] 0xA7AB (ALDERLAKE_P)
[16:14:43] [PASSED] 0xA780 (ALDERLAKE_S)
[16:14:43] [PASSED] 0xA781 (ALDERLAKE_S)
[16:14:43] [PASSED] 0xA782 (ALDERLAKE_S)
[16:14:43] [PASSED] 0xA783 (ALDERLAKE_S)
[16:14:43] [PASSED] 0xA788 (ALDERLAKE_S)
[16:14:43] [PASSED] 0xA789 (ALDERLAKE_S)
[16:14:43] [PASSED] 0xA78A (ALDERLAKE_S)
[16:14:43] [PASSED] 0xA78B (ALDERLAKE_S)
[16:14:43] [PASSED] 0x4905 (DG1)
[16:14:43] [PASSED] 0x4906 (DG1)
[16:14:43] [PASSED] 0x4907 (DG1)
[16:14:43] [PASSED] 0x4908 (DG1)
[16:14:43] [PASSED] 0x4909 (DG1)
[16:14:43] [PASSED] 0x56C0 (DG2)
[16:14:43] [PASSED] 0x56C2 (DG2)
[16:14:43] [PASSED] 0x56C1 (DG2)
[16:14:43] [PASSED] 0x7D51 (METEORLAKE)
[16:14:43] [PASSED] 0x7DD1 (METEORLAKE)
[16:14:43] [PASSED] 0x7D41 (METEORLAKE)
[16:14:43] [PASSED] 0x7D67 (METEORLAKE)
[16:14:43] [PASSED] 0xB640 (METEORLAKE)
[16:14:43] [PASSED] 0x56A0 (DG2)
[16:14:43] [PASSED] 0x56A1 (DG2)
[16:14:43] [PASSED] 0x56A2 (DG2)
[16:14:43] [PASSED] 0x56BE (DG2)
[16:14:43] [PASSED] 0x56BF (DG2)
[16:14:43] [PASSED] 0x5690 (DG2)
[16:14:43] [PASSED] 0x5691 (DG2)
[16:14:43] [PASSED] 0x5692 (DG2)
[16:14:43] [PASSED] 0x56A5 (DG2)
[16:14:43] [PASSED] 0x56A6 (DG2)
[16:14:43] [PASSED] 0x56B0 (DG2)
[16:14:43] [PASSED] 0x56B1 (DG2)
[16:14:43] [PASSED] 0x56BA (DG2)
[16:14:43] [PASSED] 0x56BB (DG2)
[16:14:43] [PASSED] 0x56BC (DG2)
[16:14:43] [PASSED] 0x56BD (DG2)
[16:14:43] [PASSED] 0x5693 (DG2)
[16:14:43] [PASSED] 0x5694 (DG2)
[16:14:43] [PASSED] 0x5695 (DG2)
[16:14:43] [PASSED] 0x56A3 (DG2)
[16:14:43] [PASSED] 0x56A4 (DG2)
[16:14:43] [PASSED] 0x56B2 (DG2)
[16:14:43] [PASSED] 0x56B3 (DG2)
[16:14:43] [PASSED] 0x5696 (DG2)
[16:14:43] [PASSED] 0x5697 (DG2)
[16:14:43] [PASSED] 0xB69 (PVC)
[16:14:43] [PASSED] 0xB6E (PVC)
[16:14:43] [PASSED] 0xBD4 (PVC)
[16:14:43] [PASSED] 0xBD5 (PVC)
[16:14:43] [PASSED] 0xBD6 (PVC)
[16:14:43] [PASSED] 0xBD7 (PVC)
[16:14:43] [PASSED] 0xBD8 (PVC)
[16:14:43] [PASSED] 0xBD9 (PVC)
[16:14:43] [PASSED] 0xBDA (PVC)
[16:14:43] [PASSED] 0xBDB (PVC)
[16:14:43] [PASSED] 0xBE0 (PVC)
[16:14:43] [PASSED] 0xBE1 (PVC)
[16:14:43] [PASSED] 0xBE5 (PVC)
[16:14:43] [PASSED] 0x7D40 (METEORLAKE)
[16:14:43] [PASSED] 0x7D45 (METEORLAKE)
[16:14:43] [PASSED] 0x7D55 (METEORLAKE)
[16:14:43] [PASSED] 0x7D60 (METEORLAKE)
[16:14:43] [PASSED] 0x7DD5 (METEORLAKE)
[16:14:43] [PASSED] 0x6420 (LUNARLAKE)
[16:14:43] [PASSED] 0x64A0 (LUNARLAKE)
[16:14:43] [PASSED] 0x64B0 (LUNARLAKE)
[16:14:43] [PASSED] 0xE202 (BATTLEMAGE)
[16:14:43] [PASSED] 0xE209 (BATTLEMAGE)
[16:14:43] [PASSED] 0xE20B (BATTLEMAGE)
[16:14:43] [PASSED] 0xE20C (BATTLEMAGE)
[16:14:43] [PASSED] 0xE20D (BATTLEMAGE)
[16:14:43] [PASSED] 0xE210 (BATTLEMAGE)
[16:14:43] [PASSED] 0xE211 (BATTLEMAGE)
[16:14:43] [PASSED] 0xE212 (BATTLEMAGE)
[16:14:43] [PASSED] 0xE216 (BATTLEMAGE)
[16:14:43] [PASSED] 0xE220 (BATTLEMAGE)
[16:14:43] [PASSED] 0xE221 (BATTLEMAGE)
[16:14:43] [PASSED] 0xE222 (BATTLEMAGE)
[16:14:43] [PASSED] 0xE223 (BATTLEMAGE)
[16:14:43] [PASSED] 0xB080 (PANTHERLAKE)
[16:14:43] [PASSED] 0xB081 (PANTHERLAKE)
[16:14:43] [PASSED] 0xB082 (PANTHERLAKE)
[16:14:43] [PASSED] 0xB083 (PANTHERLAKE)
[16:14:43] [PASSED] 0xB084 (PANTHERLAKE)
[16:14:43] [PASSED] 0xB085 (PANTHERLAKE)
[16:14:43] [PASSED] 0xB086 (PANTHERLAKE)
[16:14:43] [PASSED] 0xB087 (PANTHERLAKE)
[16:14:43] [PASSED] 0xB08F (PANTHERLAKE)
[16:14:43] [PASSED] 0xB090 (PANTHERLAKE)
[16:14:43] [PASSED] 0xB0A0 (PANTHERLAKE)
[16:14:43] [PASSED] 0xB0B0 (PANTHERLAKE)
[16:14:43] [PASSED] 0xFD80 (PANTHERLAKE)
[16:14:43] [PASSED] 0xFD81 (PANTHERLAKE)
[16:14:43] ============= [PASSED] check_platform_gt_count =============
[16:14:43] ===================== [PASSED] xe_pci ======================
[16:14:43] =================== xe_rtp (2 subtests) ====================
[16:14:43] =============== xe_rtp_process_to_sr_tests  ================
[16:14:43] [PASSED] coalesce-same-reg
[16:14:43] [PASSED] no-match-no-add
[16:14:43] [PASSED] match-or
[16:14:43] [PASSED] match-or-xfail
[16:14:43] [PASSED] no-match-no-add-multiple-rules
[16:14:43] [PASSED] two-regs-two-entries
[16:14:43] [PASSED] clr-one-set-other
[16:14:43] [PASSED] set-field
[16:14:43] [PASSED] conflict-duplicate
[16:14:43] [PASSED] conflict-not-disjoint
[16:14:43] [PASSED] conflict-reg-type
[16:14:43] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[16:14:43] ================== xe_rtp_process_tests  ===================
[16:14:43] [PASSED] active1
[16:14:43] [PASSED] active2
[16:14:43] [PASSED] active-inactive
[16:14:43] [PASSED] inactive-active
[16:14:43] [PASSED] inactive-1st_or_active-inactive
[16:14:43] [PASSED] inactive-2nd_or_active-inactive
[16:14:43] [PASSED] inactive-last_or_active-inactive
[16:14:43] [PASSED] inactive-no_or_active-inactive
[16:14:43] ============== [PASSED] xe_rtp_process_tests ===============
[16:14:43] ===================== [PASSED] xe_rtp ======================
[16:14:43] ==================== xe_wa (1 subtest) =====================
[16:14:43] ======================== xe_wa_gt  =========================
[16:14:43] [PASSED] TIGERLAKE B0
[16:14:43] [PASSED] DG1 A0
[16:14:43] [PASSED] DG1 B0
[16:14:43] [PASSED] ALDERLAKE_S A0
[16:14:43] [PASSED] ALDERLAKE_S B0
stty: 'standard input': Inappropriate ioctl for device
[16:14:43] [PASSED] ALDERLAKE_S C0
[16:14:43] [PASSED] ALDERLAKE_S D0
[16:14:43] [PASSED] ALDERLAKE_P A0
[16:14:43] [PASSED] ALDERLAKE_P B0
[16:14:43] [PASSED] ALDERLAKE_P C0
[16:14:43] [PASSED] ALDERLAKE_S RPLS D0
[16:14:43] [PASSED] ALDERLAKE_P RPLU E0
[16:14:43] [PASSED] DG2 G10 C0
[16:14:43] [PASSED] DG2 G11 B1
[16:14:43] [PASSED] DG2 G12 A1
[16:14:43] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[16:14:43] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[16:14:43] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[16:14:43] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[16:14:43] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[16:14:43] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[16:14:43] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[16:14:43] ==================== [PASSED] xe_wa_gt =====================
[16:14:43] ====================== [PASSED] xe_wa ======================
[16:14:43] ============================================================
[16:14:43] Testing complete. Ran 306 tests: passed: 288, skipped: 18
[16:14:43] Elapsed time: 34.660s total, 4.200s configuring, 30.144s building, 0.276s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[16:14:43] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[16:14:45] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[16:15:10] Starting KUnit Kernel (1/1)...
[16:15:10] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[16:15:10] ============ drm_test_pick_cmdline (2 subtests) ============
[16:15:10] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[16:15:10] =============== drm_test_pick_cmdline_named  ===============
[16:15:10] [PASSED] NTSC
[16:15:10] [PASSED] NTSC-J
[16:15:10] [PASSED] PAL
[16:15:10] [PASSED] PAL-M
[16:15:10] =========== [PASSED] drm_test_pick_cmdline_named ===========
[16:15:10] ============== [PASSED] drm_test_pick_cmdline ==============
[16:15:10] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[16:15:10] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[16:15:10] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[16:15:10] =========== drm_validate_clone_mode (2 subtests) ===========
[16:15:10] ============== drm_test_check_in_clone_mode  ===============
[16:15:10] [PASSED] in_clone_mode
[16:15:10] [PASSED] not_in_clone_mode
[16:15:10] ========== [PASSED] drm_test_check_in_clone_mode ===========
[16:15:10] =============== drm_test_check_valid_clones  ===============
[16:15:10] [PASSED] not_in_clone_mode
[16:15:10] [PASSED] valid_clone
[16:15:10] [PASSED] invalid_clone
[16:15:10] =========== [PASSED] drm_test_check_valid_clones ===========
[16:15:10] ============= [PASSED] drm_validate_clone_mode =============
[16:15:10] ============= drm_validate_modeset (1 subtest) =============
[16:15:10] [PASSED] drm_test_check_connector_changed_modeset
[16:15:10] ============== [PASSED] drm_validate_modeset ===============
[16:15:10] ====== drm_test_bridge_get_current_state (2 subtests) ======
[16:15:10] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[16:15:10] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[16:15:10] ======== [PASSED] drm_test_bridge_get_current_state ========
[16:15:10] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[16:15:10] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[16:15:10] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[16:15:10] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[16:15:10] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[16:15:10] ============== drm_bridge_alloc (2 subtests) ===============
[16:15:10] [PASSED] drm_test_drm_bridge_alloc_basic
[16:15:10] [PASSED] drm_test_drm_bridge_alloc_get_put
[16:15:10] ================ [PASSED] drm_bridge_alloc =================
[16:15:10] ================== drm_buddy (8 subtests) ==================
[16:15:10] [PASSED] drm_test_buddy_alloc_limit
[16:15:10] [PASSED] drm_test_buddy_alloc_optimistic
[16:15:10] [PASSED] drm_test_buddy_alloc_pessimistic
[16:15:10] [PASSED] drm_test_buddy_alloc_pathological
[16:15:10] [PASSED] drm_test_buddy_alloc_contiguous
[16:15:10] [PASSED] drm_test_buddy_alloc_clear
[16:15:10] [PASSED] drm_test_buddy_alloc_range_bias
[16:15:10] [PASSED] drm_test_buddy_fragmentation_performance
[16:15:10] ==================== [PASSED] drm_buddy ====================
[16:15:10] ============= drm_cmdline_parser (40 subtests) =============
[16:15:10] [PASSED] drm_test_cmdline_force_d_only
[16:15:10] [PASSED] drm_test_cmdline_force_D_only_dvi
[16:15:10] [PASSED] drm_test_cmdline_force_D_only_hdmi
[16:15:10] [PASSED] drm_test_cmdline_force_D_only_not_digital
[16:15:10] [PASSED] drm_test_cmdline_force_e_only
[16:15:10] [PASSED] drm_test_cmdline_res
[16:15:10] [PASSED] drm_test_cmdline_res_vesa
[16:15:10] [PASSED] drm_test_cmdline_res_vesa_rblank
[16:15:10] [PASSED] drm_test_cmdline_res_rblank
[16:15:10] [PASSED] drm_test_cmdline_res_bpp
[16:15:10] [PASSED] drm_test_cmdline_res_refresh
[16:15:10] [PASSED] drm_test_cmdline_res_bpp_refresh
[16:15:10] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[16:15:10] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[16:15:10] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[16:15:10] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[16:15:10] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[16:15:10] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[16:15:10] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[16:15:10] [PASSED] drm_test_cmdline_res_margins_force_on
[16:15:10] [PASSED] drm_test_cmdline_res_vesa_margins
[16:15:10] [PASSED] drm_test_cmdline_name
[16:15:10] [PASSED] drm_test_cmdline_name_bpp
[16:15:10] [PASSED] drm_test_cmdline_name_option
[16:15:10] [PASSED] drm_test_cmdline_name_bpp_option
[16:15:10] [PASSED] drm_test_cmdline_rotate_0
[16:15:10] [PASSED] drm_test_cmdline_rotate_90
[16:15:10] [PASSED] drm_test_cmdline_rotate_180
[16:15:10] [PASSED] drm_test_cmdline_rotate_270
[16:15:10] [PASSED] drm_test_cmdline_hmirror
[16:15:10] [PASSED] drm_test_cmdline_vmirror
[16:15:10] [PASSED] drm_test_cmdline_margin_options
[16:15:10] [PASSED] drm_test_cmdline_multiple_options
[16:15:10] [PASSED] drm_test_cmdline_bpp_extra_and_option
[16:15:10] [PASSED] drm_test_cmdline_extra_and_option
[16:15:10] [PASSED] drm_test_cmdline_freestanding_options
[16:15:10] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[16:15:10] [PASSED] drm_test_cmdline_panel_orientation
[16:15:10] ================ drm_test_cmdline_invalid  =================
[16:15:10] [PASSED] margin_only
[16:15:10] [PASSED] interlace_only
[16:15:10] [PASSED] res_missing_x
[16:15:10] [PASSED] res_missing_y
[16:15:10] [PASSED] res_bad_y
[16:15:10] [PASSED] res_missing_y_bpp
[16:15:10] [PASSED] res_bad_bpp
[16:15:10] [PASSED] res_bad_refresh
[16:15:10] [PASSED] res_bpp_refresh_force_on_off
[16:15:10] [PASSED] res_invalid_mode
[16:15:10] [PASSED] res_bpp_wrong_place_mode
[16:15:10] [PASSED] name_bpp_refresh
[16:15:10] [PASSED] name_refresh
[16:15:10] [PASSED] name_refresh_wrong_mode
[16:15:10] [PASSED] name_refresh_invalid_mode
[16:15:10] [PASSED] rotate_multiple
[16:15:10] [PASSED] rotate_invalid_val
[16:15:10] [PASSED] rotate_truncated
[16:15:10] [PASSED] invalid_option
[16:15:10] [PASSED] invalid_tv_option
[16:15:10] [PASSED] truncated_tv_option
[16:15:10] ============ [PASSED] drm_test_cmdline_invalid =============
[16:15:10] =============== drm_test_cmdline_tv_options  ===============
[16:15:10] [PASSED] NTSC
[16:15:10] [PASSED] NTSC_443
[16:15:10] [PASSED] NTSC_J
[16:15:10] [PASSED] PAL
[16:15:10] [PASSED] PAL_M
[16:15:10] [PASSED] PAL_N
[16:15:10] [PASSED] SECAM
[16:15:10] [PASSED] MONO_525
[16:15:10] [PASSED] MONO_625
[16:15:10] =========== [PASSED] drm_test_cmdline_tv_options ===========
[16:15:10] =============== [PASSED] drm_cmdline_parser ================
[16:15:10] ========== drmm_connector_hdmi_init (20 subtests) ==========
[16:15:10] [PASSED] drm_test_connector_hdmi_init_valid
[16:15:10] [PASSED] drm_test_connector_hdmi_init_bpc_8
[16:15:10] [PASSED] drm_test_connector_hdmi_init_bpc_10
[16:15:10] [PASSED] drm_test_connector_hdmi_init_bpc_12
[16:15:10] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[16:15:10] [PASSED] drm_test_connector_hdmi_init_bpc_null
[16:15:10] [PASSED] drm_test_connector_hdmi_init_formats_empty
[16:15:10] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[16:15:10] === drm_test_connector_hdmi_init_formats_yuv420_allowed  ===
[16:15:10] [PASSED] supported_formats=0x9 yuv420_allowed=1
[16:15:10] [PASSED] supported_formats=0x9 yuv420_allowed=0
[16:15:10] [PASSED] supported_formats=0x3 yuv420_allowed=1
[16:15:10] [PASSED] supported_formats=0x3 yuv420_allowed=0
[16:15:10] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[16:15:10] [PASSED] drm_test_connector_hdmi_init_null_ddc
[16:15:10] [PASSED] drm_test_connector_hdmi_init_null_product
[16:15:10] [PASSED] drm_test_connector_hdmi_init_null_vendor
[16:15:10] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[16:15:10] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[16:15:10] [PASSED] drm_test_connector_hdmi_init_product_valid
[16:15:10] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[16:15:10] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[16:15:10] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[16:15:10] ========= drm_test_connector_hdmi_init_type_valid  =========
[16:15:10] [PASSED] HDMI-A
[16:15:10] [PASSED] HDMI-B
[16:15:10] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[16:15:10] ======== drm_test_connector_hdmi_init_type_invalid  ========
[16:15:10] [PASSED] Unknown
[16:15:10] [PASSED] VGA
[16:15:10] [PASSED] DVI-I
[16:15:10] [PASSED] DVI-D
[16:15:10] [PASSED] DVI-A
[16:15:10] [PASSED] Composite
[16:15:10] [PASSED] SVIDEO
[16:15:10] [PASSED] LVDS
[16:15:10] [PASSED] Component
[16:15:10] [PASSED] DIN
[16:15:10] [PASSED] DP
[16:15:10] [PASSED] TV
[16:15:10] [PASSED] eDP
[16:15:10] [PASSED] Virtual
[16:15:10] [PASSED] DSI
[16:15:10] [PASSED] DPI
[16:15:10] [PASSED] Writeback
[16:15:10] [PASSED] SPI
[16:15:10] [PASSED] USB
[16:15:10] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[16:15:10] ============ [PASSED] drmm_connector_hdmi_init =============
[16:15:10] ============= drmm_connector_init (3 subtests) =============
[16:15:10] [PASSED] drm_test_drmm_connector_init
[16:15:10] [PASSED] drm_test_drmm_connector_init_null_ddc
[16:15:10] ========= drm_test_drmm_connector_init_type_valid  =========
[16:15:10] [PASSED] Unknown
[16:15:10] [PASSED] VGA
[16:15:10] [PASSED] DVI-I
[16:15:10] [PASSED] DVI-D
[16:15:10] [PASSED] DVI-A
[16:15:10] [PASSED] Composite
[16:15:10] [PASSED] SVIDEO
[16:15:10] [PASSED] LVDS
[16:15:10] [PASSED] Component
[16:15:10] [PASSED] DIN
[16:15:10] [PASSED] DP
[16:15:10] [PASSED] HDMI-A
[16:15:10] [PASSED] HDMI-B
[16:15:10] [PASSED] TV
[16:15:10] [PASSED] eDP
[16:15:10] [PASSED] Virtual
[16:15:10] [PASSED] DSI
[16:15:10] [PASSED] DPI
[16:15:10] [PASSED] Writeback
[16:15:10] [PASSED] SPI
[16:15:10] [PASSED] USB
[16:15:10] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[16:15:10] =============== [PASSED] drmm_connector_init ===============
[16:15:10] ========= drm_connector_dynamic_init (6 subtests) ==========
[16:15:10] [PASSED] drm_test_drm_connector_dynamic_init
[16:15:10] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[16:15:10] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[16:15:10] [PASSED] drm_test_drm_connector_dynamic_init_properties
[16:15:10] ===== drm_test_drm_connector_dynamic_init_type_valid  ======
[16:15:10] [PASSED] Unknown
[16:15:10] [PASSED] VGA
[16:15:10] [PASSED] DVI-I
[16:15:10] [PASSED] DVI-D
[16:15:10] [PASSED] DVI-A
[16:15:10] [PASSED] Composite
[16:15:10] [PASSED] SVIDEO
[16:15:10] [PASSED] LVDS
[16:15:10] [PASSED] Component
[16:15:10] [PASSED] DIN
[16:15:10] [PASSED] DP
[16:15:10] [PASSED] HDMI-A
[16:15:10] [PASSED] HDMI-B
[16:15:10] [PASSED] TV
[16:15:10] [PASSED] eDP
[16:15:10] [PASSED] Virtual
[16:15:10] [PASSED] DSI
[16:15:10] [PASSED] DPI
[16:15:10] [PASSED] Writeback
[16:15:10] [PASSED] SPI
[16:15:10] [PASSED] USB
[16:15:10] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[16:15:10] ======== drm_test_drm_connector_dynamic_init_name  =========
[16:15:10] [PASSED] Unknown
[16:15:10] [PASSED] VGA
[16:15:10] [PASSED] DVI-I
[16:15:10] [PASSED] DVI-D
[16:15:10] [PASSED] DVI-A
[16:15:10] [PASSED] Composite
[16:15:10] [PASSED] SVIDEO
[16:15:10] [PASSED] LVDS
[16:15:10] [PASSED] Component
[16:15:10] [PASSED] DIN
[16:15:10] [PASSED] DP
[16:15:10] [PASSED] HDMI-A
[16:15:10] [PASSED] HDMI-B
[16:15:10] [PASSED] TV
[16:15:10] [PASSED] eDP
[16:15:10] [PASSED] Virtual
[16:15:10] [PASSED] DSI
[16:15:10] [PASSED] DPI
[16:15:10] [PASSED] Writeback
[16:15:10] [PASSED] SPI
[16:15:10] [PASSED] USB
[16:15:10] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[16:15:10] =========== [PASSED] drm_connector_dynamic_init ============
[16:15:10] ==== drm_connector_dynamic_register_early (4 subtests) =====
[16:15:10] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[16:15:10] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[16:15:10] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[16:15:10] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[16:15:10] ====== [PASSED] drm_connector_dynamic_register_early =======
[16:15:10] ======= drm_connector_dynamic_register (7 subtests) ========
[16:15:10] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[16:15:10] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[16:15:10] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[16:15:10] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[16:15:10] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[16:15:10] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[16:15:10] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[16:15:10] ========= [PASSED] drm_connector_dynamic_register ==========
[16:15:10] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[16:15:10] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[16:15:10] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[16:15:10] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[16:15:10] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[16:15:10] ========== drm_test_get_tv_mode_from_name_valid  ===========
[16:15:10] [PASSED] NTSC
[16:15:10] [PASSED] NTSC-443
[16:15:10] [PASSED] NTSC-J
[16:15:10] [PASSED] PAL
[16:15:10] [PASSED] PAL-M
[16:15:10] [PASSED] PAL-N
[16:15:10] [PASSED] SECAM
[16:15:10] [PASSED] Mono
[16:15:10] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[16:15:10] [PASSED] drm_test_get_tv_mode_from_name_truncated
[16:15:10] ============ [PASSED] drm_get_tv_mode_from_name ============
[16:15:10] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[16:15:10] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[16:15:10] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[16:15:10] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[16:15:10] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[16:15:10] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[16:15:10] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[16:15:10] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid  =
[16:15:10] [PASSED] VIC 96
[16:15:10] [PASSED] VIC 97
[16:15:10] [PASSED] VIC 101
[16:15:10] [PASSED] VIC 102
[16:15:10] [PASSED] VIC 106
[16:15:10] [PASSED] VIC 107
[16:15:10] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[16:15:10] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[16:15:10] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[16:15:10] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[16:15:10] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[16:15:10] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[16:15:10] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[16:15:10] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[16:15:10] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name  ====
[16:15:10] [PASSED] Automatic
[16:15:10] [PASSED] Full
[16:15:10] [PASSED] Limited 16:235
[16:15:10] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[16:15:10] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[16:15:10] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[16:15:10] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[16:15:10] === drm_test_drm_hdmi_connector_get_output_format_name  ====
[16:15:10] [PASSED] RGB
[16:15:10] [PASSED] YUV 4:2:0
[16:15:10] [PASSED] YUV 4:2:2
[16:15:10] [PASSED] YUV 4:4:4
[16:15:10] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[16:15:10] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[16:15:10] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[16:15:10] ============= drm_damage_helper (21 subtests) ==============
[16:15:10] [PASSED] drm_test_damage_iter_no_damage
[16:15:10] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[16:15:10] [PASSED] drm_test_damage_iter_no_damage_src_moved
[16:15:10] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[16:15:10] [PASSED] drm_test_damage_iter_no_damage_not_visible
[16:15:10] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[16:15:10] [PASSED] drm_test_damage_iter_no_damage_no_fb
[16:15:10] [PASSED] drm_test_damage_iter_simple_damage
[16:15:10] [PASSED] drm_test_damage_iter_single_damage
[16:15:10] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[16:15:10] [PASSED] drm_test_damage_iter_single_damage_outside_src
[16:15:10] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[16:15:10] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[16:15:10] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[16:15:10] [PASSED] drm_test_damage_iter_single_damage_src_moved
[16:15:10] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[16:15:10] [PASSED] drm_test_damage_iter_damage
[16:15:10] [PASSED] drm_test_damage_iter_damage_one_intersect
[16:15:10] [PASSED] drm_test_damage_iter_damage_one_outside
[16:15:10] [PASSED] drm_test_damage_iter_damage_src_moved
[16:15:10] [PASSED] drm_test_damage_iter_damage_not_visible
[16:15:10] ================ [PASSED] drm_damage_helper ================
[16:15:10] ============== drm_dp_mst_helper (3 subtests) ==============
[16:15:10] ============== drm_test_dp_mst_calc_pbn_mode  ==============
[16:15:10] [PASSED] Clock 154000 BPP 30 DSC disabled
[16:15:10] [PASSED] Clock 234000 BPP 30 DSC disabled
[16:15:10] [PASSED] Clock 297000 BPP 24 DSC disabled
[16:15:10] [PASSED] Clock 332880 BPP 24 DSC enabled
[16:15:10] [PASSED] Clock 324540 BPP 24 DSC enabled
[16:15:10] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[16:15:10] ============== drm_test_dp_mst_calc_pbn_div  ===============
[16:15:10] [PASSED] Link rate 2000000 lane count 4
[16:15:10] [PASSED] Link rate 2000000 lane count 2
[16:15:10] [PASSED] Link rate 2000000 lane count 1
[16:15:10] [PASSED] Link rate 1350000 lane count 4
[16:15:10] [PASSED] Link rate 1350000 lane count 2
[16:15:10] [PASSED] Link rate 1350000 lane count 1
[16:15:10] [PASSED] Link rate 1000000 lane count 4
[16:15:10] [PASSED] Link rate 1000000 lane count 2
[16:15:10] [PASSED] Link rate 1000000 lane count 1
[16:15:10] [PASSED] Link rate 810000 lane count 4
[16:15:10] [PASSED] Link rate 810000 lane count 2
[16:15:10] [PASSED] Link rate 810000 lane count 1
[16:15:10] [PASSED] Link rate 540000 lane count 4
[16:15:10] [PASSED] Link rate 540000 lane count 2
[16:15:10] [PASSED] Link rate 540000 lane count 1
[16:15:10] [PASSED] Link rate 270000 lane count 4
[16:15:10] [PASSED] Link rate 270000 lane count 2
[16:15:10] [PASSED] Link rate 270000 lane count 1
[16:15:10] [PASSED] Link rate 162000 lane count 4
[16:15:10] [PASSED] Link rate 162000 lane count 2
[16:15:10] [PASSED] Link rate 162000 lane count 1
[16:15:10] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[16:15:10] ========= drm_test_dp_mst_sideband_msg_req_decode  =========
[16:15:10] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[16:15:10] [PASSED] DP_POWER_UP_PHY with port number
[16:15:10] [PASSED] DP_POWER_DOWN_PHY with port number
[16:15:10] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[16:15:10] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[16:15:10] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[16:15:10] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[16:15:10] [PASSED] DP_QUERY_PAYLOAD with port number
[16:15:10] [PASSED] DP_QUERY_PAYLOAD with VCPI
[16:15:10] [PASSED] DP_REMOTE_DPCD_READ with port number
[16:15:10] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[16:15:10] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[16:15:10] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[16:15:10] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[16:15:10] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[16:15:10] [PASSED] DP_REMOTE_I2C_READ with port number
[16:15:10] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[16:15:10] [PASSED] DP_REMOTE_I2C_READ with transactions array
[16:15:10] [PASSED] DP_REMOTE_I2C_WRITE with port number
[16:15:10] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[16:15:10] [PASSED] DP_REMOTE_I2C_WRITE with data array
[16:15:10] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[16:15:10] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[16:15:10] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[16:15:10] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[16:15:10] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[16:15:10] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[16:15:10] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[16:15:10] ================ [PASSED] drm_dp_mst_helper ================
[16:15:10] ================== drm_exec (7 subtests) ===================
[16:15:10] [PASSED] sanitycheck
[16:15:10] [PASSED] test_lock
[16:15:10] [PASSED] test_lock_unlock
[16:15:10] [PASSED] test_duplicates
[16:15:10] [PASSED] test_prepare
[16:15:10] [PASSED] test_prepare_array
[16:15:10] [PASSED] test_multiple_loops
[16:15:10] ==================== [PASSED] drm_exec =====================
[16:15:10] =========== drm_format_helper_test (17 subtests) ===========
[16:15:10] ============== drm_test_fb_xrgb8888_to_gray8  ==============
[16:15:10] [PASSED] single_pixel_source_buffer
[16:15:10] [PASSED] single_pixel_clip_rectangle
[16:15:10] [PASSED] well_known_colors
[16:15:10] [PASSED] destination_pitch
[16:15:10] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[16:15:10] ============= drm_test_fb_xrgb8888_to_rgb332  ==============
[16:15:10] [PASSED] single_pixel_source_buffer
[16:15:10] [PASSED] single_pixel_clip_rectangle
[16:15:10] [PASSED] well_known_colors
[16:15:10] [PASSED] destination_pitch
[16:15:10] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[16:15:10] ============= drm_test_fb_xrgb8888_to_rgb565  ==============
[16:15:10] [PASSED] single_pixel_source_buffer
[16:15:10] [PASSED] single_pixel_clip_rectangle
[16:15:10] [PASSED] well_known_colors
[16:15:10] [PASSED] destination_pitch
[16:15:10] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[16:15:10] ============ drm_test_fb_xrgb8888_to_xrgb1555  =============
[16:15:10] [PASSED] single_pixel_source_buffer
[16:15:10] [PASSED] single_pixel_clip_rectangle
[16:15:10] [PASSED] well_known_colors
[16:15:10] [PASSED] destination_pitch
[16:15:10] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[16:15:10] ============ drm_test_fb_xrgb8888_to_argb1555  =============
[16:15:10] [PASSED] single_pixel_source_buffer
[16:15:10] [PASSED] single_pixel_clip_rectangle
[16:15:10] [PASSED] well_known_colors
[16:15:10] [PASSED] destination_pitch
[16:15:10] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[16:15:10] ============ drm_test_fb_xrgb8888_to_rgba5551  =============
[16:15:10] [PASSED] single_pixel_source_buffer
[16:15:10] [PASSED] single_pixel_clip_rectangle
[16:15:10] [PASSED] well_known_colors
[16:15:10] [PASSED] destination_pitch
[16:15:10] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[16:15:10] ============= drm_test_fb_xrgb8888_to_rgb888  ==============
[16:15:10] [PASSED] single_pixel_source_buffer
[16:15:10] [PASSED] single_pixel_clip_rectangle
[16:15:10] [PASSED] well_known_colors
[16:15:10] [PASSED] destination_pitch
[16:15:10] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[16:15:10] ============= drm_test_fb_xrgb8888_to_bgr888  ==============
[16:15:10] [PASSED] single_pixel_source_buffer
[16:15:10] [PASSED] single_pixel_clip_rectangle
[16:15:10] [PASSED] well_known_colors
[16:15:10] [PASSED] destination_pitch
[16:15:10] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[16:15:10] ============ drm_test_fb_xrgb8888_to_argb8888  =============
[16:15:10] [PASSED] single_pixel_source_buffer
[16:15:10] [PASSED] single_pixel_clip_rectangle
[16:15:10] [PASSED] well_known_colors
[16:15:10] [PASSED] destination_pitch
[16:15:10] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[16:15:10] =========== drm_test_fb_xrgb8888_to_xrgb2101010  ===========
[16:15:10] [PASSED] single_pixel_source_buffer
[16:15:10] [PASSED] single_pixel_clip_rectangle
[16:15:10] [PASSED] well_known_colors
[16:15:10] [PASSED] destination_pitch
[16:15:10] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[16:15:10] =========== drm_test_fb_xrgb8888_to_argb2101010  ===========
[16:15:10] [PASSED] single_pixel_source_buffer
[16:15:10] [PASSED] single_pixel_clip_rectangle
[16:15:10] [PASSED] well_known_colors
[16:15:10] [PASSED] destination_pitch
[16:15:10] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[16:15:10] ============== drm_test_fb_xrgb8888_to_mono  ===============
[16:15:10] [PASSED] single_pixel_source_buffer
[16:15:10] [PASSED] single_pixel_clip_rectangle
[16:15:10] [PASSED] well_known_colors
[16:15:10] [PASSED] destination_pitch
[16:15:10] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[16:15:10] ==================== drm_test_fb_swab  =====================
[16:15:10] [PASSED] single_pixel_source_buffer
[16:15:10] [PASSED] single_pixel_clip_rectangle
[16:15:10] [PASSED] well_known_colors
[16:15:10] [PASSED] destination_pitch
[16:15:10] ================ [PASSED] drm_test_fb_swab =================
[16:15:10] ============ drm_test_fb_xrgb8888_to_xbgr8888  =============
[16:15:10] [PASSED] single_pixel_source_buffer
[16:15:10] [PASSED] single_pixel_clip_rectangle
[16:15:10] [PASSED] well_known_colors
[16:15:10] [PASSED] destination_pitch
[16:15:10] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[16:15:10] ============ drm_test_fb_xrgb8888_to_abgr8888  =============
[16:15:10] [PASSED] single_pixel_source_buffer
[16:15:10] [PASSED] single_pixel_clip_rectangle
[16:15:10] [PASSED] well_known_colors
[16:15:10] [PASSED] destination_pitch
[16:15:10] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[16:15:10] ================= drm_test_fb_clip_offset  =================
[16:15:10] [PASSED] pass through
[16:15:10] [PASSED] horizontal offset
[16:15:10] [PASSED] vertical offset
[16:15:10] [PASSED] horizontal and vertical offset
[16:15:10] [PASSED] horizontal offset (custom pitch)
[16:15:10] [PASSED] vertical offset (custom pitch)
[16:15:10] [PASSED] horizontal and vertical offset (custom pitch)
[16:15:10] ============= [PASSED] drm_test_fb_clip_offset =============
[16:15:10] =================== drm_test_fb_memcpy  ====================
[16:15:10] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[16:15:10] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[16:15:10] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[16:15:10] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[16:15:10] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[16:15:10] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[16:15:10] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[16:15:10] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[16:15:10] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[16:15:10] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[16:15:10] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[16:15:10] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[16:15:10] =============== [PASSED] drm_test_fb_memcpy ================
[16:15:10] ============= [PASSED] drm_format_helper_test ==============
[16:15:10] ================= drm_format (18 subtests) =================
[16:15:10] [PASSED] drm_test_format_block_width_invalid
[16:15:10] [PASSED] drm_test_format_block_width_one_plane
[16:15:10] [PASSED] drm_test_format_block_width_two_plane
[16:15:10] [PASSED] drm_test_format_block_width_three_plane
[16:15:10] [PASSED] drm_test_format_block_width_tiled
[16:15:10] [PASSED] drm_test_format_block_height_invalid
[16:15:10] [PASSED] drm_test_format_block_height_one_plane
[16:15:10] [PASSED] drm_test_format_block_height_two_plane
[16:15:10] [PASSED] drm_test_format_block_height_three_plane
[16:15:10] [PASSED] drm_test_format_block_height_tiled
[16:15:10] [PASSED] drm_test_format_min_pitch_invalid
[16:15:10] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[16:15:10] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[16:15:10] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[16:15:10] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[16:15:10] [PASSED] drm_test_format_min_pitch_two_plane
[16:15:10] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[16:15:10] [PASSED] drm_test_format_min_pitch_tiled
[16:15:10] =================== [PASSED] drm_format ====================
[16:15:10] ============== drm_framebuffer (10 subtests) ===============
[16:15:10] ========== drm_test_framebuffer_check_src_coords  ==========
[16:15:10] [PASSED] Success: source fits into fb
[16:15:10] [PASSED] Fail: overflowing fb with x-axis coordinate
[16:15:10] [PASSED] Fail: overflowing fb with y-axis coordinate
[16:15:10] [PASSED] Fail: overflowing fb with source width
[16:15:10] [PASSED] Fail: overflowing fb with source height
[16:15:10] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[16:15:10] [PASSED] drm_test_framebuffer_cleanup
[16:15:10] =============== drm_test_framebuffer_create  ===============
[16:15:10] [PASSED] ABGR8888 normal sizes
[16:15:10] [PASSED] ABGR8888 max sizes
[16:15:10] [PASSED] ABGR8888 pitch greater than min required
[16:15:10] [PASSED] ABGR8888 pitch less than min required
[16:15:10] [PASSED] ABGR8888 Invalid width
[16:15:10] [PASSED] ABGR8888 Invalid buffer handle
[16:15:10] [PASSED] No pixel format
[16:15:10] [PASSED] ABGR8888 Width 0
[16:15:10] [PASSED] ABGR8888 Height 0
[16:15:10] [PASSED] ABGR8888 Out of bound height * pitch combination
[16:15:10] [PASSED] ABGR8888 Large buffer offset
[16:15:10] [PASSED] ABGR8888 Buffer offset for inexistent plane
[16:15:10] [PASSED] ABGR8888 Invalid flag
[16:15:10] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[16:15:10] [PASSED] ABGR8888 Valid buffer modifier
[16:15:10] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[16:15:10] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[16:15:10] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[16:15:10] [PASSED] NV12 Normal sizes
[16:15:10] [PASSED] NV12 Max sizes
[16:15:10] [PASSED] NV12 Invalid pitch
[16:15:10] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[16:15:10] [PASSED] NV12 different  modifier per-plane
[16:15:10] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[16:15:10] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[16:15:10] [PASSED] NV12 Modifier for inexistent plane
[16:15:10] [PASSED] NV12 Handle for inexistent plane
[16:15:10] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[16:15:10] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[16:15:10] [PASSED] YVU420 Normal sizes
[16:15:10] [PASSED] YVU420 Max sizes
[16:15:10] [PASSED] YVU420 Invalid pitch
[16:15:10] [PASSED] YVU420 Different pitches
[16:15:10] [PASSED] YVU420 Different buffer offsets/pitches
[16:15:10] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[16:15:10] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[16:15:10] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[16:15:10] [PASSED] YVU420 Valid modifier
[16:15:10] [PASSED] YVU420 Different modifiers per plane
[16:15:10] [PASSED] YVU420 Modifier for inexistent plane
[16:15:10] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[16:15:10] [PASSED] X0L2 Normal sizes
[16:15:10] [PASSED] X0L2 Max sizes
[16:15:10] [PASSED] X0L2 Invalid pitch
[16:15:10] [PASSED] X0L2 Pitch greater than minimum required
[16:15:10] [PASSED] X0L2 Handle for inexistent plane
[16:15:10] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[16:15:10] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[16:15:10] [PASSED] X0L2 Valid modifier
[16:15:10] [PASSED] X0L2 Modifier for inexistent plane
[16:15:10] =========== [PASSED] drm_test_framebuffer_create ===========
[16:15:10] [PASSED] drm_test_framebuffer_free
[16:15:10] [PASSED] drm_test_framebuffer_init
[16:15:10] [PASSED] drm_test_framebuffer_init_bad_format
[16:15:10] [PASSED] drm_test_framebuffer_init_dev_mismatch
[16:15:10] [PASSED] drm_test_framebuffer_lookup
[16:15:10] [PASSED] drm_test_framebuffer_lookup_inexistent
[16:15:10] [PASSED] drm_test_framebuffer_modifiers_not_supported
[16:15:10] ================= [PASSED] drm_framebuffer =================
[16:15:10] ================ drm_gem_shmem (8 subtests) ================
[16:15:10] [PASSED] drm_gem_shmem_test_obj_create
[16:15:10] [PASSED] drm_gem_shmem_test_obj_create_private
[16:15:10] [PASSED] drm_gem_shmem_test_pin_pages
[16:15:10] [PASSED] drm_gem_shmem_test_vmap
[16:15:10] [PASSED] drm_gem_shmem_test_get_pages_sgt
[16:15:10] [PASSED] drm_gem_shmem_test_get_sg_table
[16:15:10] [PASSED] drm_gem_shmem_test_madvise
[16:15:10] [PASSED] drm_gem_shmem_test_purge
[16:15:10] ================== [PASSED] drm_gem_shmem ==================
[16:15:10] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[16:15:10] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[16:15:10] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[16:15:10] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[16:15:10] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[16:15:10] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[16:15:10] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[16:15:10] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420  =======
[16:15:10] [PASSED] Automatic
[16:15:10] [PASSED] Full
[16:15:10] [PASSED] Limited 16:235
[16:15:10] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[16:15:10] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[16:15:10] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[16:15:10] [PASSED] drm_test_check_disable_connector
[16:15:10] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[16:15:10] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[16:15:10] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[16:15:10] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[16:15:10] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[16:15:10] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[16:15:10] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[16:15:10] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[16:15:10] [PASSED] drm_test_check_output_bpc_dvi
[16:15:10] [PASSED] drm_test_check_output_bpc_format_vic_1
[16:15:10] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[16:15:10] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[16:15:10] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[16:15:10] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[16:15:10] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[16:15:10] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[16:15:10] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[16:15:10] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[16:15:10] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[16:15:10] [PASSED] drm_test_check_broadcast_rgb_value
[16:15:10] [PASSED] drm_test_check_bpc_8_value
[16:15:10] [PASSED] drm_test_check_bpc_10_value
[16:15:10] [PASSED] drm_test_check_bpc_12_value
[16:15:10] [PASSED] drm_test_check_format_value
[16:15:10] [PASSED] drm_test_check_tmds_char_value
[16:15:10] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[16:15:10] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[16:15:10] [PASSED] drm_test_check_mode_valid
[16:15:10] [PASSED] drm_test_check_mode_valid_reject
[16:15:10] [PASSED] drm_test_check_mode_valid_reject_rate
[16:15:10] [PASSED] drm_test_check_mode_valid_reject_max_clock
[16:15:10] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[16:15:10] ================= drm_managed (2 subtests) =================
[16:15:10] [PASSED] drm_test_managed_release_action
[16:15:10] [PASSED] drm_test_managed_run_action
[16:15:10] =================== [PASSED] drm_managed ===================
[16:15:10] =================== drm_mm (6 subtests) ====================
[16:15:10] [PASSED] drm_test_mm_init
[16:15:10] [PASSED] drm_test_mm_debug
[16:15:10] [PASSED] drm_test_mm_align32
[16:15:10] [PASSED] drm_test_mm_align64
[16:15:10] [PASSED] drm_test_mm_lowest
[16:15:10] [PASSED] drm_test_mm_highest
[16:15:10] ===================== [PASSED] drm_mm ======================
[16:15:10] ============= drm_modes_analog_tv (5 subtests) =============
[16:15:10] [PASSED] drm_test_modes_analog_tv_mono_576i
[16:15:10] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[16:15:10] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[16:15:10] [PASSED] drm_test_modes_analog_tv_pal_576i
[16:15:10] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[16:15:10] =============== [PASSED] drm_modes_analog_tv ===============
[16:15:10] ============== drm_plane_helper (2 subtests) ===============
[16:15:10] =============== drm_test_check_plane_state  ================
[16:15:10] [PASSED] clipping_simple
[16:15:10] [PASSED] clipping_rotate_reflect
[16:15:10] [PASSED] positioning_simple
[16:15:10] [PASSED] upscaling
[16:15:10] [PASSED] downscaling
[16:15:10] [PASSED] rounding1
[16:15:10] [PASSED] rounding2
[16:15:10] [PASSED] rounding3
[16:15:10] [PASSED] rounding4
[16:15:10] =========== [PASSED] drm_test_check_plane_state ============
[16:15:10] =========== drm_test_check_invalid_plane_state  ============
[16:15:10] [PASSED] positioning_invalid
[16:15:10] [PASSED] upscaling_invalid
[16:15:10] [PASSED] downscaling_invalid
[16:15:10] ======= [PASSED] drm_test_check_invalid_plane_state ========
[16:15:10] ================ [PASSED] drm_plane_helper =================
[16:15:10] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[16:15:10] ====== drm_test_connector_helper_tv_get_modes_check  =======
[16:15:10] [PASSED] None
[16:15:10] [PASSED] PAL
[16:15:10] [PASSED] NTSC
[16:15:10] [PASSED] Both, NTSC Default
[16:15:10] [PASSED] Both, PAL Default
[16:15:10] [PASSED] Both, NTSC Default, with PAL on command-line
[16:15:10] [PASSED] Both, PAL Default, with NTSC on command-line
[16:15:10] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[16:15:10] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[16:15:10] ================== drm_rect (9 subtests) ===================
[16:15:10] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[16:15:10] [PASSED] drm_test_rect_clip_scaled_not_clipped
[16:15:10] [PASSED] drm_test_rect_clip_scaled_clipped
[16:15:10] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[16:15:10] ================= drm_test_rect_intersect  =================
[16:15:10] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[16:15:10] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[16:15:10] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[16:15:10] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[16:15:10] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[16:15:10] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[16:15:10] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[16:15:10] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[16:15:10] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[16:15:10] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[16:15:10] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[16:15:10] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[16:15:10] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[16:15:10] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[16:15:10] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[16:15:10] ============= [PASSED] drm_test_rect_intersect =============
[16:15:10] ================ drm_test_rect_calc_hscale  ================
[16:15:10] [PASSED] normal use
[16:15:10] [PASSED] out of max range
[16:15:10] [PASSED] out of min range
[16:15:10] [PASSED] zero dst
[16:15:10] [PASSED] negative src
[16:15:10] [PASSED] negative dst
[16:15:10] ============ [PASSED] drm_test_rect_calc_hscale ============
[16:15:10] ================ drm_test_rect_calc_vscale  ================
[16:15:10] [PASSED] normal use
stty: 'standard input': Inappropriate ioctl for device
[16:15:10] [PASSED] out of max range
[16:15:10] [PASSED] out of min range
[16:15:10] [PASSED] zero dst
[16:15:10] [PASSED] negative src
[16:15:10] [PASSED] negative dst
[16:15:10] ============ [PASSED] drm_test_rect_calc_vscale ============
[16:15:10] ================== drm_test_rect_rotate  ===================
[16:15:10] [PASSED] reflect-x
[16:15:10] [PASSED] reflect-y
[16:15:10] [PASSED] rotate-0
[16:15:10] [PASSED] rotate-90
[16:15:10] [PASSED] rotate-180
[16:15:10] [PASSED] rotate-270
[16:15:10] ============== [PASSED] drm_test_rect_rotate ===============
[16:15:10] ================ drm_test_rect_rotate_inv  =================
[16:15:10] [PASSED] reflect-x
[16:15:10] [PASSED] reflect-y
[16:15:10] [PASSED] rotate-0
[16:15:10] [PASSED] rotate-90
[16:15:10] [PASSED] rotate-180
[16:15:10] [PASSED] rotate-270
[16:15:10] ============ [PASSED] drm_test_rect_rotate_inv =============
[16:15:10] ==================== [PASSED] drm_rect =====================
[16:15:10] ============ drm_sysfb_modeset_test (1 subtest) ============
[16:15:10] ============ drm_test_sysfb_build_fourcc_list  =============
[16:15:10] [PASSED] no native formats
[16:15:10] [PASSED] XRGB8888 as native format
[16:15:10] [PASSED] remove duplicates
[16:15:10] [PASSED] convert alpha formats
[16:15:10] [PASSED] random formats
[16:15:10] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[16:15:10] ============= [PASSED] drm_sysfb_modeset_test ==============
[16:15:10] ============================================================
[16:15:10] Testing complete. Ran 622 tests: passed: 622
[16:15:10] Elapsed time: 26.648s total, 1.703s configuring, 24.529s building, 0.389s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[16:15:10] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[16:15:12] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[16:15:21] Starting KUnit Kernel (1/1)...
[16:15:21] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[16:15:21] ================= ttm_device (5 subtests) ==================
[16:15:21] [PASSED] ttm_device_init_basic
[16:15:21] [PASSED] ttm_device_init_multiple
[16:15:21] [PASSED] ttm_device_fini_basic
[16:15:21] [PASSED] ttm_device_init_no_vma_man
[16:15:21] ================== ttm_device_init_pools  ==================
[16:15:21] [PASSED] No DMA allocations, no DMA32 required
[16:15:21] [PASSED] DMA allocations, DMA32 required
[16:15:21] [PASSED] No DMA allocations, DMA32 required
[16:15:21] [PASSED] DMA allocations, no DMA32 required
[16:15:21] ============== [PASSED] ttm_device_init_pools ==============
[16:15:21] =================== [PASSED] ttm_device ====================
[16:15:21] ================== ttm_pool (8 subtests) ===================
[16:15:21] ================== ttm_pool_alloc_basic  ===================
[16:15:21] [PASSED] One page
[16:15:21] [PASSED] More than one page
[16:15:21] [PASSED] Above the allocation limit
[16:15:21] [PASSED] One page, with coherent DMA mappings enabled
[16:15:21] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[16:15:21] ============== [PASSED] ttm_pool_alloc_basic ===============
[16:15:21] ============== ttm_pool_alloc_basic_dma_addr  ==============
[16:15:21] [PASSED] One page
[16:15:21] [PASSED] More than one page
[16:15:21] [PASSED] Above the allocation limit
[16:15:21] [PASSED] One page, with coherent DMA mappings enabled
[16:15:21] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[16:15:21] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[16:15:21] [PASSED] ttm_pool_alloc_order_caching_match
[16:15:21] [PASSED] ttm_pool_alloc_caching_mismatch
[16:15:21] [PASSED] ttm_pool_alloc_order_mismatch
[16:15:21] [PASSED] ttm_pool_free_dma_alloc
[16:15:21] [PASSED] ttm_pool_free_no_dma_alloc
[16:15:21] [PASSED] ttm_pool_fini_basic
[16:15:21] ==================== [PASSED] ttm_pool =====================
[16:15:21] ================ ttm_resource (8 subtests) =================
[16:15:21] ================= ttm_resource_init_basic  =================
[16:15:21] [PASSED] Init resource in TTM_PL_SYSTEM
[16:15:21] [PASSED] Init resource in TTM_PL_VRAM
[16:15:21] [PASSED] Init resource in a private placement
[16:15:21] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[16:15:21] ============= [PASSED] ttm_resource_init_basic =============
[16:15:21] [PASSED] ttm_resource_init_pinned
[16:15:21] [PASSED] ttm_resource_fini_basic
[16:15:21] [PASSED] ttm_resource_manager_init_basic
[16:15:21] [PASSED] ttm_resource_manager_usage_basic
[16:15:21] [PASSED] ttm_resource_manager_set_used_basic
[16:15:21] [PASSED] ttm_sys_man_alloc_basic
[16:15:21] [PASSED] ttm_sys_man_free_basic
[16:15:21] ================== [PASSED] ttm_resource ===================
[16:15:21] =================== ttm_tt (15 subtests) ===================
[16:15:21] ==================== ttm_tt_init_basic  ====================
[16:15:21] [PASSED] Page-aligned size
[16:15:21] [PASSED] Extra pages requested
[16:15:21] ================ [PASSED] ttm_tt_init_basic ================
[16:15:21] [PASSED] ttm_tt_init_misaligned
[16:15:21] [PASSED] ttm_tt_fini_basic
[16:15:21] [PASSED] ttm_tt_fini_sg
[16:15:21] [PASSED] ttm_tt_fini_shmem
[16:15:21] [PASSED] ttm_tt_create_basic
[16:15:21] [PASSED] ttm_tt_create_invalid_bo_type
[16:15:21] [PASSED] ttm_tt_create_ttm_exists
[16:15:21] [PASSED] ttm_tt_create_failed
[16:15:21] [PASSED] ttm_tt_destroy_basic
[16:15:21] [PASSED] ttm_tt_populate_null_ttm
[16:15:21] [PASSED] ttm_tt_populate_populated_ttm
[16:15:21] [PASSED] ttm_tt_unpopulate_basic
[16:15:21] [PASSED] ttm_tt_unpopulate_empty_ttm
[16:15:21] [PASSED] ttm_tt_swapin_basic
[16:15:21] ===================== [PASSED] ttm_tt ======================
[16:15:21] =================== ttm_bo (14 subtests) ===================
[16:15:21] =========== ttm_bo_reserve_optimistic_no_ticket  ===========
[16:15:21] [PASSED] Cannot be interrupted and sleeps
[16:15:21] [PASSED] Cannot be interrupted, locks straight away
[16:15:21] [PASSED] Can be interrupted, sleeps
[16:15:21] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[16:15:21] [PASSED] ttm_bo_reserve_locked_no_sleep
[16:15:21] [PASSED] ttm_bo_reserve_no_wait_ticket
[16:15:21] [PASSED] ttm_bo_reserve_double_resv
[16:15:21] [PASSED] ttm_bo_reserve_interrupted
[16:15:21] [PASSED] ttm_bo_reserve_deadlock
[16:15:21] [PASSED] ttm_bo_unreserve_basic
[16:15:21] [PASSED] ttm_bo_unreserve_pinned
[16:15:21] [PASSED] ttm_bo_unreserve_bulk
[16:15:21] [PASSED] ttm_bo_fini_basic
[16:15:21] [PASSED] ttm_bo_fini_shared_resv
[16:15:21] [PASSED] ttm_bo_pin_basic
[16:15:21] [PASSED] ttm_bo_pin_unpin_resource
[16:15:21] [PASSED] ttm_bo_multiple_pin_one_unpin
[16:15:21] ===================== [PASSED] ttm_bo ======================
[16:15:21] ============== ttm_bo_validate (21 subtests) ===============
[16:15:21] ============== ttm_bo_init_reserved_sys_man  ===============
[16:15:21] [PASSED] Buffer object for userspace
[16:15:21] [PASSED] Kernel buffer object
[16:15:21] [PASSED] Shared buffer object
[16:15:21] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[16:15:21] ============== ttm_bo_init_reserved_mock_man  ==============
[16:15:21] [PASSED] Buffer object for userspace
[16:15:21] [PASSED] Kernel buffer object
[16:15:21] [PASSED] Shared buffer object
[16:15:21] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[16:15:21] [PASSED] ttm_bo_init_reserved_resv
[16:15:21] ================== ttm_bo_validate_basic  ==================
[16:15:21] [PASSED] Buffer object for userspace
[16:15:21] [PASSED] Kernel buffer object
[16:15:21] [PASSED] Shared buffer object
[16:15:21] ============== [PASSED] ttm_bo_validate_basic ==============
[16:15:21] [PASSED] ttm_bo_validate_invalid_placement
[16:15:21] ============= ttm_bo_validate_same_placement  ==============
[16:15:21] [PASSED] System manager
[16:15:21] [PASSED] VRAM manager
[16:15:21] ========= [PASSED] ttm_bo_validate_same_placement ==========
[16:15:21] [PASSED] ttm_bo_validate_failed_alloc
[16:15:21] [PASSED] ttm_bo_validate_pinned
[16:15:21] [PASSED] ttm_bo_validate_busy_placement
[16:15:21] ================ ttm_bo_validate_multihop  =================
[16:15:21] [PASSED] Buffer object for userspace
[16:15:21] [PASSED] Kernel buffer object
[16:15:21] [PASSED] Shared buffer object
[16:15:21] ============ [PASSED] ttm_bo_validate_multihop =============
[16:15:21] ========== ttm_bo_validate_no_placement_signaled  ==========
[16:15:21] [PASSED] Buffer object in system domain, no page vector
[16:15:21] [PASSED] Buffer object in system domain with an existing page vector
[16:15:21] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[16:15:21] ======== ttm_bo_validate_no_placement_not_signaled  ========
[16:15:21] [PASSED] Buffer object for userspace
[16:15:21] [PASSED] Kernel buffer object
[16:15:21] [PASSED] Shared buffer object
[16:15:21] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[16:15:21] [PASSED] ttm_bo_validate_move_fence_signaled
[16:15:21] ========= ttm_bo_validate_move_fence_not_signaled  =========
[16:15:21] [PASSED] Waits for GPU
[16:15:21] [PASSED] Tries to lock straight away
[16:15:21] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[16:15:21] [PASSED] ttm_bo_validate_happy_evict
[16:15:21] [PASSED] ttm_bo_validate_all_pinned_evict
[16:15:21] [PASSED] ttm_bo_validate_allowed_only_evict
[16:15:21] [PASSED] ttm_bo_validate_deleted_evict
[16:15:21] [PASSED] ttm_bo_validate_busy_domain_evict
[16:15:21] [PASSED] ttm_bo_validate_evict_gutting
[16:15:21] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[16:15:21] ================= [PASSED] ttm_bo_validate =================
[16:15:21] ============================================================
[16:15:21] Testing complete. Ran 101 tests: passed: 101
[16:15:21] Elapsed time: 10.977s total, 1.637s configuring, 9.124s building, 0.180s running

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



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

* ✓ Xe.CI.BAT: success for drm/xe: add VM_BIND DECOMPRESS support and on‑demand decompression (rev3)
  2025-10-15 10:47 [PATCH v3 0/3] drm/xe: add VM_BIND DECOMPRESS support and on‑demand decompression Nitin Gote
                   ` (3 preceding siblings ...)
  2025-10-15 16:15 ` ✓ CI.KUnit: success for drm/xe: add VM_BIND DECOMPRESS support and on‑demand decompression (rev3) Patchwork
@ 2025-10-15 16:55 ` Patchwork
  2025-10-16  2:10 ` ✓ Xe.CI.Full: " Patchwork
  2025-10-17 17:38 ` [PATCH v3 0/3] drm/xe: add VM_BIND DECOMPRESS support and on‑demand decompression Matthew Brost
  6 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2025-10-15 16:55 UTC (permalink / raw)
  To: Nitin Gote; +Cc: intel-xe

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

== Series Details ==

Series: drm/xe: add VM_BIND DECOMPRESS support and on‑demand decompression (rev3)
URL   : https://patchwork.freedesktop.org/series/154714/
State : success

== Summary ==

CI Bug Log - changes from xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554_BAT -> xe-pw-154714v3_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (11 -> 11)
------------------------------

  No changes in participating hosts

Known issues
------------

  Here are the changes found in xe-pw-154714v3_BAT that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_flip@basic-plain-flip@a-edp1:
    - bat-adlp-7:         [PASS][1] -> [DMESG-WARN][2] ([Intel XE#4543]) +1 other test dmesg-warn
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/bat-adlp-7/igt@kms_flip@basic-plain-flip@a-edp1.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/bat-adlp-7/igt@kms_flip@basic-plain-flip@a-edp1.html

  
  [Intel XE#4543]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4543


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

  * Linux: xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554 -> xe-pw-154714v3

  IGT_8585: 8585
  xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554: ed00bdb0008276b3497a4c811e160f18d1218554
  xe-pw-154714v3: 154714v3

== Logs ==

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

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

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

* ✓ Xe.CI.Full: success for drm/xe: add VM_BIND DECOMPRESS support and on‑demand decompression (rev3)
  2025-10-15 10:47 [PATCH v3 0/3] drm/xe: add VM_BIND DECOMPRESS support and on‑demand decompression Nitin Gote
                   ` (4 preceding siblings ...)
  2025-10-15 16:55 ` ✓ Xe.CI.BAT: " Patchwork
@ 2025-10-16  2:10 ` Patchwork
  2025-10-17 17:38 ` [PATCH v3 0/3] drm/xe: add VM_BIND DECOMPRESS support and on‑demand decompression Matthew Brost
  6 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2025-10-16  2:10 UTC (permalink / raw)
  To: Nitin Gote; +Cc: intel-xe

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

== Series Details ==

Series: drm/xe: add VM_BIND DECOMPRESS support and on‑demand decompression (rev3)
URL   : https://patchwork.freedesktop.org/series/154714/
State : success

== Summary ==

CI Bug Log - changes from xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554_FULL -> xe-pw-154714v3_FULL
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

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

  No changes in participating hosts

New tests
---------

  New tests have been introduced between xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554_FULL and xe-pw-154714v3_FULL:

### New IGT tests (1) ###

  * igt@xe_oa@buffer-size@oag-0-128k:
    - Statuses : 1 pass(s)
    - Exec time: [0.04] s

  

Known issues
------------

  Here are the changes found in xe-pw-154714v3_FULL that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_async_flips@async-flip-suspend-resume@pipe-c-hdmi-a-1:
    - shard-adlp:         [PASS][1] -> [DMESG-WARN][2] ([Intel XE#4543]) +6 other tests dmesg-warn
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-adlp-2/igt@kms_async_flips@async-flip-suspend-resume@pipe-c-hdmi-a-1.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-6/igt@kms_async_flips@async-flip-suspend-resume@pipe-c-hdmi-a-1.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-async-flip:
    - shard-adlp:         NOTRUN -> [SKIP][3] ([Intel XE#1124]) +5 other tests skip
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html

  * igt@kms_big_fb@x-tiled-16bpp-rotate-270:
    - shard-dg2-set2:     NOTRUN -> [SKIP][4] ([Intel XE#316]) +3 other tests skip
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-434/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html

  * igt@kms_big_fb@x-tiled-16bpp-rotate-90:
    - shard-bmg:          NOTRUN -> [SKIP][5] ([Intel XE#2327])
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html

  * igt@kms_big_fb@x-tiled-8bpp-rotate-0:
    - shard-adlp:         NOTRUN -> [DMESG-FAIL][6] ([Intel XE#4543]) +1 other test dmesg-fail
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-1/igt@kms_big_fb@x-tiled-8bpp-rotate-0.html

  * igt@kms_big_fb@y-tiled-8bpp-rotate-270:
    - shard-adlp:         NOTRUN -> [SKIP][7] ([Intel XE#316]) +1 other test skip
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-1/igt@kms_big_fb@y-tiled-8bpp-rotate-270.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
    - shard-bmg:          NOTRUN -> [SKIP][8] ([Intel XE#1124]) +3 other tests skip
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip:
    - shard-dg2-set2:     NOTRUN -> [SKIP][9] ([Intel XE#1124]) +5 other tests skip
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-433/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip.html

  * igt@kms_bw@connected-linear-tiling-3-displays-2160x1440p:
    - shard-adlp:         NOTRUN -> [SKIP][10] ([Intel XE#2191])
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@kms_bw@connected-linear-tiling-3-displays-2160x1440p.html

  * igt@kms_bw@linear-tiling-3-displays-3840x2160p:
    - shard-dg2-set2:     NOTRUN -> [SKIP][11] ([Intel XE#367]) +1 other test skip
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-434/igt@kms_bw@linear-tiling-3-displays-3840x2160p.html

  * igt@kms_bw@linear-tiling-4-displays-2160x1440p:
    - shard-bmg:          NOTRUN -> [SKIP][12] ([Intel XE#367]) +1 other test skip
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@kms_bw@linear-tiling-4-displays-2160x1440p.html
    - shard-adlp:         NOTRUN -> [SKIP][13] ([Intel XE#367])
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-1/igt@kms_bw@linear-tiling-4-displays-2160x1440p.html

  * igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-6:
    - shard-dg2-set2:     NOTRUN -> [SKIP][14] ([Intel XE#787]) +69 other tests skip
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-434/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-6.html

  * igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs-cc:
    - shard-adlp:         NOTRUN -> [SKIP][15] ([Intel XE#455] / [Intel XE#787]) +17 other tests skip
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs-cc.html

  * igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs-cc@pipe-a-hdmi-a-1:
    - shard-adlp:         NOTRUN -> [SKIP][16] ([Intel XE#787]) +26 other tests skip
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs-cc@pipe-a-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][17] ([Intel XE#2887]) +6 other tests skip
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-a-dp-2:
    - shard-bmg:          NOTRUN -> [SKIP][18] ([Intel XE#2652] / [Intel XE#787]) +7 other tests skip
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-7/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-a-dp-2.html

  * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][19] ([Intel XE#3432])
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs:
    - shard-dg2-set2:     NOTRUN -> [SKIP][20] ([Intel XE#2907])
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-434/igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-6:
    - shard-dg2-set2:     [PASS][21] -> [INCOMPLETE][22] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4345] / [Intel XE#6168]) +2 other tests incomplete
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-6.html
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-6.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-a-dp-4:
    - shard-dg2-set2:     [PASS][23] -> [INCOMPLETE][24] ([Intel XE#6168] / [i915#14968])
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-a-dp-4.html
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-a-dp-4.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-a-hdmi-a-6:
    - shard-dg2-set2:     [PASS][25] -> [DMESG-WARN][26] ([Intel XE#1727] / [Intel XE#3113])
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-a-hdmi-a-6.html
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-a-hdmi-a-6.html

  * igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-d-dp-4:
    - shard-dg2-set2:     NOTRUN -> [SKIP][27] ([Intel XE#455] / [Intel XE#787]) +19 other tests skip
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-432/igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-d-dp-4.html

  * igt@kms_chamelium_color@ctm-blue-to-red:
    - shard-adlp:         NOTRUN -> [SKIP][28] ([Intel XE#306])
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@kms_chamelium_color@ctm-blue-to-red.html

  * igt@kms_chamelium_hpd@dp-hpd-after-hibernate:
    - shard-bmg:          NOTRUN -> [SKIP][29] ([Intel XE#2252]) +3 other tests skip
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@kms_chamelium_hpd@dp-hpd-after-hibernate.html

  * igt@kms_chamelium_hpd@hdmi-hpd-after-hibernate:
    - shard-adlp:         NOTRUN -> [SKIP][30] ([Intel XE#373]) +4 other tests skip
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@kms_chamelium_hpd@hdmi-hpd-after-hibernate.html

  * igt@kms_chamelium_hpd@vga-hpd-without-ddc:
    - shard-dg2-set2:     NOTRUN -> [SKIP][31] ([Intel XE#373]) +3 other tests skip
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-433/igt@kms_chamelium_hpd@vga-hpd-without-ddc.html

  * igt@kms_content_protection@dp-mst-type-0:
    - shard-adlp:         NOTRUN -> [SKIP][32] ([Intel XE#307])
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@kms_content_protection@dp-mst-type-0.html

  * igt@kms_content_protection@srm@pipe-a-dp-4:
    - shard-dg2-set2:     NOTRUN -> [FAIL][33] ([Intel XE#1178]) +1 other test fail
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-433/igt@kms_content_protection@srm@pipe-a-dp-4.html

  * igt@kms_content_protection@uevent@pipe-a-dp-2:
    - shard-bmg:          NOTRUN -> [FAIL][34] ([Intel XE#1188])
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-7/igt@kms_content_protection@uevent@pipe-a-dp-2.html

  * igt@kms_cursor_crc@cursor-offscreen-512x512:
    - shard-dg2-set2:     NOTRUN -> [SKIP][35] ([Intel XE#308])
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-434/igt@kms_cursor_crc@cursor-offscreen-512x512.html

  * igt@kms_cursor_crc@cursor-onscreen-512x512:
    - shard-adlp:         NOTRUN -> [SKIP][36] ([Intel XE#308])
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-1/igt@kms_cursor_crc@cursor-onscreen-512x512.html
    - shard-bmg:          NOTRUN -> [SKIP][37] ([Intel XE#2321])
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@kms_cursor_crc@cursor-onscreen-512x512.html

  * igt@kms_cursor_crc@cursor-rapid-movement-128x42:
    - shard-bmg:          NOTRUN -> [SKIP][38] ([Intel XE#2320]) +2 other tests skip
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@kms_cursor_crc@cursor-rapid-movement-128x42.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-varying-size:
    - shard-bmg:          NOTRUN -> [SKIP][39] ([Intel XE#2291])
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size:
    - shard-adlp:         NOTRUN -> [SKIP][40] ([Intel XE#309]) +4 other tests skip
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html

  * igt@kms_display_modes@extended-mode-basic:
    - shard-adlp:         NOTRUN -> [SKIP][41] ([Intel XE#4302])
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-1/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc:
    - shard-bmg:          [PASS][42] -> [SKIP][43] ([Intel XE#1340])
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-7/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html

  * igt@kms_dp_link_training@uhbr-sst:
    - shard-adlp:         NOTRUN -> [SKIP][44] ([Intel XE#4356])
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@kms_dp_link_training@uhbr-sst.html

  * igt@kms_dsc@dsc-with-bpc-formats:
    - shard-dg2-set2:     NOTRUN -> [SKIP][45] ([Intel XE#455]) +13 other tests skip
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-434/igt@kms_dsc@dsc-with-bpc-formats.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-dg2-set2:     NOTRUN -> [SKIP][46] ([Intel XE#776])
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-433/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_feature_discovery@chamelium:
    - shard-bmg:          NOTRUN -> [SKIP][47] ([Intel XE#2372])
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@kms_feature_discovery@chamelium.html
    - shard-adlp:         NOTRUN -> [SKIP][48] ([Intel XE#701])
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-1/igt@kms_feature_discovery@chamelium.html

  * igt@kms_feature_discovery@display-2x:
    - shard-bmg:          [PASS][49] -> [SKIP][50] ([Intel XE#2373])
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-7/igt@kms_feature_discovery@display-2x.html
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@kms_feature_discovery@display-2x.html

  * igt@kms_flip@2x-flip-vs-dpms-on-nop:
    - shard-adlp:         NOTRUN -> [SKIP][51] ([Intel XE#310]) +5 other tests skip
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@kms_flip@2x-flip-vs-dpms-on-nop.html

  * igt@kms_flip@2x-flip-vs-suspend:
    - shard-bmg:          NOTRUN -> [SKIP][52] ([Intel XE#2316]) +1 other test skip
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@kms_flip@2x-flip-vs-suspend.html

  * igt@kms_flip@2x-plain-flip-ts-check-interruptible:
    - shard-bmg:          [PASS][53] -> [SKIP][54] ([Intel XE#2316]) +3 other tests skip
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-4/igt@kms_flip@2x-plain-flip-ts-check-interruptible.html
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@kms_flip@2x-plain-flip-ts-check-interruptible.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-bmg:          [PASS][55] -> [INCOMPLETE][56] ([Intel XE#2049] / [Intel XE#2597]) +1 other test incomplete
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-2/igt@kms_flip@flip-vs-suspend-interruptible.html
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-1/igt@kms_flip@flip-vs-suspend-interruptible.html
    - shard-dg2-set2:     [PASS][57] -> [INCOMPLETE][58] ([Intel XE#2049] / [Intel XE#2597]) +1 other test incomplete
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-dg2-435/igt@kms_flip@flip-vs-suspend-interruptible.html
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-463/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling:
    - shard-bmg:          NOTRUN -> [SKIP][59] ([Intel XE#2293] / [Intel XE#2380]) +1 other test skip
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-valid-mode:
    - shard-bmg:          NOTRUN -> [SKIP][60] ([Intel XE#2293]) +1 other test skip
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-x-to-y:
    - shard-adlp:         [PASS][61] -> [DMESG-FAIL][62] ([Intel XE#4543])
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-adlp-6/igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-x-to-y.html
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-8/igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-x-to-y.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][63] ([Intel XE#2311]) +8 other tests skip
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen:
    - shard-dg2-set2:     NOTRUN -> [SKIP][64] ([Intel XE#651]) +12 other tests skip
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-434/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-onoff:
    - shard-bmg:          NOTRUN -> [SKIP][65] ([Intel XE#5390]) +2 other tests skip
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-move:
    - shard-bmg:          NOTRUN -> [SKIP][66] ([Intel XE#2312]) +3 other tests skip
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-move.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-tiling-linear:
    - shard-adlp:         NOTRUN -> [SKIP][67] ([Intel XE#651]) +4 other tests skip
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-1/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-linear.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-msflip-blt:
    - shard-dg2-set2:     NOTRUN -> [SKIP][68] ([Intel XE#653]) +13 other tests skip
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-434/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc:
    - shard-adlp:         NOTRUN -> [SKIP][69] ([Intel XE#653]) +6 other tests skip
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][70] ([Intel XE#2313]) +5 other tests skip
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html
    - shard-adlp:         NOTRUN -> [SKIP][71] ([Intel XE#656]) +15 other tests skip
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@plane-fbc-rte:
    - shard-dg2-set2:     NOTRUN -> [SKIP][72] ([Intel XE#1158])
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-433/igt@kms_frontbuffer_tracking@plane-fbc-rte.html

  * igt@kms_hdr@static-toggle:
    - shard-bmg:          [PASS][73] -> [SKIP][74] ([Intel XE#1503])
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-4/igt@kms_hdr@static-toggle.html
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@kms_hdr@static-toggle.html

  * igt@kms_hdr@static-toggle-suspend:
    - shard-bmg:          NOTRUN -> [SKIP][75] ([Intel XE#1503])
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@kms_hdr@static-toggle-suspend.html

  * igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
    - shard-bmg:          NOTRUN -> [SKIP][76] ([Intel XE#2501])
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html

  * igt@kms_plane_multiple@2x-tiling-4:
    - shard-bmg:          [PASS][77] -> [SKIP][78] ([Intel XE#4596])
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-7/igt@kms_plane_multiple@2x-tiling-4.html
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@kms_plane_multiple@2x-tiling-4.html

  * igt@kms_plane_multiple@2x-tiling-yf:
    - shard-dg2-set2:     NOTRUN -> [SKIP][79] ([Intel XE#5021])
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-433/igt@kms_plane_multiple@2x-tiling-yf.html

  * igt@kms_plane_multiple@tiling-y:
    - shard-dg2-set2:     NOTRUN -> [SKIP][80] ([Intel XE#5020])
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-432/igt@kms_plane_multiple@tiling-y.html

  * igt@kms_plane_scaling@invalid-num-scalers:
    - shard-adlp:         [PASS][81] -> [DMESG-WARN][82] ([Intel XE#2953] / [Intel XE#4173]) +15 other tests dmesg-warn
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-adlp-8/igt@kms_plane_scaling@invalid-num-scalers.html
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-2/igt@kms_plane_scaling@invalid-num-scalers.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75:
    - shard-bmg:          NOTRUN -> [SKIP][83] ([Intel XE#2763]) +4 other tests skip
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75.html

  * igt@kms_pm_dc@dc6-psr:
    - shard-dg2-set2:     NOTRUN -> [SKIP][84] ([Intel XE#1129])
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-432/igt@kms_pm_dc@dc6-psr.html

  * igt@kms_pm_dc@dc9-dpms:
    - shard-adlp:         NOTRUN -> [SKIP][85] ([Intel XE#734])
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@kms_pm_dc@dc9-dpms.html

  * igt@kms_pm_rpm@dpms-mode-unset-lpsp:
    - shard-bmg:          NOTRUN -> [SKIP][86] ([Intel XE#1439] / [Intel XE#836])
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html

  * igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area:
    - shard-adlp:         NOTRUN -> [SKIP][87] ([Intel XE#1406] / [Intel XE#1489]) +3 other tests skip
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-1/igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area.html
    - shard-bmg:          NOTRUN -> [SKIP][88] ([Intel XE#1406] / [Intel XE#1489]) +3 other tests skip
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area.html

  * igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area:
    - shard-dg2-set2:     NOTRUN -> [SKIP][89] ([Intel XE#1406] / [Intel XE#1489]) +3 other tests skip
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-434/igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr@fbc-pr-cursor-plane-onoff:
    - shard-adlp:         NOTRUN -> [SKIP][90] ([Intel XE#1406] / [Intel XE#2850] / [Intel XE#929]) +7 other tests skip
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@kms_psr@fbc-pr-cursor-plane-onoff.html

  * igt@kms_psr@fbc-psr-sprite-render:
    - shard-dg2-set2:     NOTRUN -> [SKIP][91] ([Intel XE#1406] / [Intel XE#2850] / [Intel XE#929]) +6 other tests skip
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-434/igt@kms_psr@fbc-psr-sprite-render.html

  * igt@kms_psr@fbc-psr-suspend:
    - shard-bmg:          NOTRUN -> [SKIP][92] ([Intel XE#1406] / [Intel XE#2234] / [Intel XE#2850]) +4 other tests skip
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@kms_psr@fbc-psr-suspend.html

  * igt@kms_rotation_crc@primary-rotation-90:
    - shard-dg2-set2:     NOTRUN -> [SKIP][93] ([Intel XE#3414])
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-433/igt@kms_rotation_crc@primary-rotation-90.html

  * igt@kms_rotation_crc@primary-y-tiled-reflect-x-0:
    - shard-dg2-set2:     NOTRUN -> [SKIP][94] ([Intel XE#1127])
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-433/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
    - shard-adlp:         NOTRUN -> [SKIP][95] ([Intel XE#1127])
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-1/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html
    - shard-bmg:          NOTRUN -> [SKIP][96] ([Intel XE#2330])
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html

  * igt@kms_setmode@invalid-clone-single-crtc-stealing:
    - shard-bmg:          [PASS][97] -> [SKIP][98] ([Intel XE#1435])
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-7/igt@kms_setmode@invalid-clone-single-crtc-stealing.html
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@kms_setmode@invalid-clone-single-crtc-stealing.html

  * igt@kms_vrr@seamless-rr-switch-vrr:
    - shard-adlp:         NOTRUN -> [SKIP][99] ([Intel XE#455]) +5 other tests skip
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@kms_vrr@seamless-rr-switch-vrr.html

  * igt@xe_configfs@survivability-mode:
    - shard-adlp:         NOTRUN -> [SKIP][100] ([Intel XE#6010])
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@xe_configfs@survivability-mode.html

  * igt@xe_create@multigpu-create-massive-size:
    - shard-dg2-set2:     NOTRUN -> [SKIP][101] ([Intel XE#944]) +1 other test skip
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-434/igt@xe_create@multigpu-create-massive-size.html

  * igt@xe_eu_stall@blocking-read:
    - shard-dg2-set2:     NOTRUN -> [SKIP][102] ([Intel XE#5626])
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-433/igt@xe_eu_stall@blocking-read.html

  * igt@xe_eu_stall@unprivileged-access:
    - shard-adlp:         NOTRUN -> [SKIP][103] ([Intel XE#5626])
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@xe_eu_stall@unprivileged-access.html

  * igt@xe_eudebug@basic-vm-access-parameters:
    - shard-dg2-set2:     NOTRUN -> [SKIP][104] ([Intel XE#4837]) +6 other tests skip
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-432/igt@xe_eudebug@basic-vm-access-parameters.html

  * igt@xe_eudebug_online@interrupt-other:
    - shard-bmg:          NOTRUN -> [SKIP][105] ([Intel XE#4837]) +4 other tests skip
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@xe_eudebug_online@interrupt-other.html

  * igt@xe_eudebug_online@single-step-one:
    - shard-adlp:         NOTRUN -> [SKIP][106] ([Intel XE#4837] / [Intel XE#5565]) +5 other tests skip
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@xe_eudebug_online@single-step-one.html

  * igt@xe_eudebug_sriov@deny-sriov:
    - shard-dg2-set2:     NOTRUN -> [SKIP][107] ([Intel XE#4518])
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-432/igt@xe_eudebug_sriov@deny-sriov.html

  * igt@xe_evict@evict-beng-large:
    - shard-adlp:         NOTRUN -> [SKIP][108] ([Intel XE#261] / [Intel XE#5564])
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-1/igt@xe_evict@evict-beng-large.html

  * igt@xe_evict@evict-beng-threads-large:
    - shard-adlp:         NOTRUN -> [SKIP][109] ([Intel XE#261]) +2 other tests skip
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-1/igt@xe_evict@evict-beng-threads-large.html

  * igt@xe_evict@evict-small-multi-vm-cm:
    - shard-adlp:         NOTRUN -> [SKIP][110] ([Intel XE#261] / [Intel XE#688])
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-1/igt@xe_evict@evict-small-multi-vm-cm.html

  * igt@xe_exec_balancer@many-parallel-rebind:
    - shard-bmg:          [PASS][111] -> [INCOMPLETE][112] ([Intel XE#2594])
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-3/igt@xe_exec_balancer@many-parallel-rebind.html
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-4/igt@xe_exec_balancer@many-parallel-rebind.html

  * igt@xe_exec_basic@many-execqueues-bindexecqueue-userptr-rebind:
    - shard-adlp:         [PASS][113] -> [INCOMPLETE][114] ([Intel XE#3876])
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-adlp-9/igt@xe_exec_basic@many-execqueues-bindexecqueue-userptr-rebind.html
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@xe_exec_basic@many-execqueues-bindexecqueue-userptr-rebind.html

  * igt@xe_exec_basic@multigpu-once-basic-defer-bind:
    - shard-adlp:         NOTRUN -> [SKIP][115] ([Intel XE#1392] / [Intel XE#5575]) +2 other tests skip
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-1/igt@xe_exec_basic@multigpu-once-basic-defer-bind.html
    - shard-bmg:          NOTRUN -> [SKIP][116] ([Intel XE#2322]) +3 other tests skip
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@xe_exec_basic@multigpu-once-basic-defer-bind.html

  * igt@xe_exec_compute_mode@twice-bindexecqueue-userptr:
    - shard-adlp:         [PASS][117] -> [FAIL][118] ([Intel XE#5625])
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-adlp-9/igt@xe_exec_compute_mode@twice-bindexecqueue-userptr.html
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@xe_exec_compute_mode@twice-bindexecqueue-userptr.html

  * igt@xe_exec_fault_mode@once-invalid-userptr-fault:
    - shard-dg2-set2:     NOTRUN -> [SKIP][119] ([Intel XE#288]) +15 other tests skip
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-434/igt@xe_exec_fault_mode@once-invalid-userptr-fault.html

  * igt@xe_exec_fault_mode@once-userptr-invalidate:
    - shard-adlp:         NOTRUN -> [SKIP][120] ([Intel XE#288] / [Intel XE#5561]) +13 other tests skip
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@xe_exec_fault_mode@once-userptr-invalidate.html

  * igt@xe_exec_reset@parallel-gt-reset:
    - shard-adlp:         [PASS][121] -> [DMESG-WARN][122] ([Intel XE#3876])
   [121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-adlp-9/igt@xe_exec_reset@parallel-gt-reset.html
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@xe_exec_reset@parallel-gt-reset.html

  * igt@xe_exec_system_allocator@many-large-malloc-nomemset:
    - shard-dg2-set2:     NOTRUN -> [SKIP][123] ([Intel XE#4915]) +141 other tests skip
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-433/igt@xe_exec_system_allocator@many-large-malloc-nomemset.html

  * igt@xe_exec_system_allocator@threads-shared-vm-many-large-execqueues-mmap-free-huge:
    - shard-bmg:          NOTRUN -> [SKIP][124] ([Intel XE#4943]) +9 other tests skip
   [124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@xe_exec_system_allocator@threads-shared-vm-many-large-execqueues-mmap-free-huge.html

  * igt@xe_exec_system_allocator@threads-shared-vm-many-mmap-shared-remap:
    - shard-adlp:         NOTRUN -> [SKIP][125] ([Intel XE#4915]) +125 other tests skip
   [125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@xe_exec_system_allocator@threads-shared-vm-many-mmap-shared-remap.html

  * igt@xe_exec_threads@threads-hang-shared-vm-userptr-rebind:
    - shard-adlp:         [PASS][126] -> [DMESG-FAIL][127] ([Intel XE#3876]) +1 other test dmesg-fail
   [126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-adlp-9/igt@xe_exec_threads@threads-hang-shared-vm-userptr-rebind.html
   [127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@xe_exec_threads@threads-hang-shared-vm-userptr-rebind.html

  * igt@xe_live_ktest@xe_eudebug:
    - shard-bmg:          NOTRUN -> [SKIP][128] ([Intel XE#2833])
   [128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@xe_live_ktest@xe_eudebug.html
    - shard-adlp:         NOTRUN -> [SKIP][129] ([Intel XE#455] / [Intel XE#5712])
   [129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-1/igt@xe_live_ktest@xe_eudebug.html

  * igt@xe_live_ktest@xe_migrate:
    - shard-dg2-set2:     NOTRUN -> [FAIL][130] ([Intel XE#3099]) +2 other tests fail
   [130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-434/igt@xe_live_ktest@xe_migrate.html

  * igt@xe_media_fill@media-fill:
    - shard-dg2-set2:     NOTRUN -> [SKIP][131] ([Intel XE#560])
   [131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-433/igt@xe_media_fill@media-fill.html

  * igt@xe_mmap@pci-membarrier-bad-pagesize:
    - shard-adlp:         NOTRUN -> [SKIP][132] ([Intel XE#5100])
   [132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-1/igt@xe_mmap@pci-membarrier-bad-pagesize.html

  * igt@xe_oa@mmio-triggered-reports:
    - shard-adlp:         NOTRUN -> [SKIP][133] ([Intel XE#3573]) +2 other tests skip
   [133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-1/igt@xe_oa@mmio-triggered-reports.html

  * igt@xe_oa@syncs-syncobj-cfg:
    - shard-dg2-set2:     NOTRUN -> [SKIP][134] ([Intel XE#3573]) +3 other tests skip
   [134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-434/igt@xe_oa@syncs-syncobj-cfg.html

  * igt@xe_pat@pat-index-xelp:
    - shard-bmg:          NOTRUN -> [SKIP][135] ([Intel XE#2245])
   [135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@xe_pat@pat-index-xelp.html

  * igt@xe_peer2peer@read@read-gpua-vram01-gpub-system-p2p:
    - shard-dg2-set2:     NOTRUN -> [FAIL][136] ([Intel XE#1173]) +1 other test fail
   [136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-433/igt@xe_peer2peer@read@read-gpua-vram01-gpub-system-p2p.html

  * igt@xe_pm@d3cold-basic:
    - shard-dg2-set2:     NOTRUN -> [SKIP][137] ([Intel XE#2284] / [Intel XE#366])
   [137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-434/igt@xe_pm@d3cold-basic.html

  * igt@xe_pm@d3cold-mmap-system:
    - shard-adlp:         NOTRUN -> [SKIP][138] ([Intel XE#2284] / [Intel XE#366])
   [138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@xe_pm@d3cold-mmap-system.html

  * igt@xe_pm@d3hot-i2c:
    - shard-dg2-set2:     NOTRUN -> [SKIP][139] ([Intel XE#5742])
   [139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-433/igt@xe_pm@d3hot-i2c.html

  * igt@xe_pm@s2idle-basic:
    - shard-adlp:         [PASS][140] -> [DMESG-WARN][141] ([Intel XE#2953] / [Intel XE#4173] / [Intel XE#4504])
   [140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-adlp-1/igt@xe_pm@s2idle-basic.html
   [141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-1/igt@xe_pm@s2idle-basic.html

  * igt@xe_pxp@pxp-src-to-pxp-dest-rendercopy:
    - shard-adlp:         NOTRUN -> [SKIP][142] ([Intel XE#4733] / [Intel XE#5594])
   [142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@xe_pxp@pxp-src-to-pxp-dest-rendercopy.html

  * igt@xe_pxp@pxp-termination-key-update-post-suspend:
    - shard-dg2-set2:     NOTRUN -> [SKIP][143] ([Intel XE#4733]) +1 other test skip
   [143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-433/igt@xe_pxp@pxp-termination-key-update-post-suspend.html

  * igt@xe_query@multigpu-query-invalid-size:
    - shard-adlp:         NOTRUN -> [SKIP][144] ([Intel XE#944]) +1 other test skip
   [144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-1/igt@xe_query@multigpu-query-invalid-size.html
    - shard-bmg:          NOTRUN -> [SKIP][145] ([Intel XE#944]) +1 other test skip
   [145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@xe_query@multigpu-query-invalid-size.html

  * igt@xe_render_copy@render-stress-1-copies:
    - shard-adlp:         NOTRUN -> [SKIP][146] ([Intel XE#4814] / [Intel XE#5614])
   [146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-9/igt@xe_render_copy@render-stress-1-copies.html

  * igt@xe_sriov_auto_provisioning@exclusive-ranges:
    - shard-dg2-set2:     NOTRUN -> [SKIP][147] ([Intel XE#4130])
   [147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-434/igt@xe_sriov_auto_provisioning@exclusive-ranges.html

  * igt@xe_sriov_scheduling@equal-throughput:
    - shard-dg2-set2:     NOTRUN -> [SKIP][148] ([Intel XE#4351])
   [148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-433/igt@xe_sriov_scheduling@equal-throughput.html

  
#### Possible fixes ####

  * igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p:
    - shard-bmg:          [SKIP][149] ([Intel XE#2314] / [Intel XE#2894]) -> [PASS][150]
   [149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-6/igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p.html
   [150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-7/igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-legacy:
    - shard-bmg:          [SKIP][151] ([Intel XE#2291]) -> [PASS][152]
   [151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-6/igt@kms_cursor_legacy@cursora-vs-flipb-legacy.html
   [152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@kms_cursor_legacy@cursora-vs-flipb-legacy.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
    - shard-bmg:          [FAIL][153] ([Intel XE#1475]) -> [PASS][154]
   [153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
   [154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-8/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html

  * igt@kms_dp_linktrain_fallback@dp-fallback:
    - shard-bmg:          [SKIP][155] ([Intel XE#4294]) -> [PASS][156]
   [155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-6/igt@kms_dp_linktrain_fallback@dp-fallback.html
   [156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-7/igt@kms_dp_linktrain_fallback@dp-fallback.html

  * igt@kms_flip@2x-flip-vs-wf_vblank-interruptible:
    - shard-bmg:          [SKIP][157] ([Intel XE#2316]) -> [PASS][158] +1 other test pass
   [157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-6/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html
   [158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html

  * igt@kms_flip@flip-vs-expired-vblank:
    - shard-dg2-set2:     [FAIL][159] ([Intel XE#301]) -> [PASS][160]
   [159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-dg2-434/igt@kms_flip@flip-vs-expired-vblank.html
   [160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-433/igt@kms_flip@flip-vs-expired-vblank.html

  * igt@kms_flip@flip-vs-expired-vblank@b-dp4:
    - shard-dg2-set2:     [FAIL][161] ([Intel XE#301] / [Intel XE#3321]) -> [PASS][162]
   [161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-dg2-434/igt@kms_flip@flip-vs-expired-vblank@b-dp4.html
   [162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-433/igt@kms_flip@flip-vs-expired-vblank@b-dp4.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-lnl:          [DMESG-WARN][163] -> [PASS][164] +3 other tests pass
   [163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-lnl-2/igt@kms_flip@flip-vs-suspend-interruptible.html
   [164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-lnl-3/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_flip@flip-vs-suspend-interruptible@d-hdmi-a1:
    - shard-adlp:         [DMESG-WARN][165] ([Intel XE#2953] / [Intel XE#4173]) -> [PASS][166] +1 other test pass
   [165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-adlp-2/igt@kms_flip@flip-vs-suspend-interruptible@d-hdmi-a1.html
   [166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-2/igt@kms_flip@flip-vs-suspend-interruptible@d-hdmi-a1.html

  * igt@kms_flip@flip-vs-suspend@d-hdmi-a1:
    - shard-adlp:         [DMESG-WARN][167] ([Intel XE#4543]) -> [PASS][168] +5 other tests pass
   [167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-adlp-1/igt@kms_flip@flip-vs-suspend@d-hdmi-a1.html
   [168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-1/igt@kms_flip@flip-vs-suspend@d-hdmi-a1.html

  * igt@kms_flip_tiling@flip-change-tiling@pipe-b-hdmi-a-1-x-to-x:
    - shard-adlp:         [DMESG-FAIL][169] ([Intel XE#4543]) -> [PASS][170]
   [169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-adlp-6/igt@kms_flip_tiling@flip-change-tiling@pipe-b-hdmi-a-1-x-to-x.html
   [170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-8/igt@kms_flip_tiling@flip-change-tiling@pipe-b-hdmi-a-1-x-to-x.html

  * igt@kms_joiner@basic-force-big-joiner:
    - shard-bmg:          [SKIP][171] ([Intel XE#3012]) -> [PASS][172]
   [171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-6/igt@kms_joiner@basic-force-big-joiner.html
   [172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-7/igt@kms_joiner@basic-force-big-joiner.html

  * {igt@xe_compute_preempt@compute-preempt-many-vram-evict@engine-drm_xe_engine_class_compute}:
    - shard-bmg:          [ABORT][173] ([Intel XE#3970]) -> [PASS][174] +1 other test pass
   [173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-7/igt@xe_compute_preempt@compute-preempt-many-vram-evict@engine-drm_xe_engine_class_compute.html
   [174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@xe_compute_preempt@compute-preempt-many-vram-evict@engine-drm_xe_engine_class_compute.html

  * igt@xe_evict@evict-beng-mixed-many-threads-small:
    - shard-bmg:          [INCOMPLETE][175] ([Intel XE#6321]) -> [PASS][176]
   [175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-4/igt@xe_evict@evict-beng-mixed-many-threads-small.html
   [176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@xe_evict@evict-beng-mixed-many-threads-small.html

  * igt@xe_exec_reset@cm-gt-reset:
    - shard-bmg:          [ABORT][177] -> [PASS][178]
   [177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-6/igt@xe_exec_reset@cm-gt-reset.html
   [178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@xe_exec_reset@cm-gt-reset.html

  
#### Warnings ####

  * igt@kms_content_protection@atomic:
    - shard-bmg:          [FAIL][179] ([Intel XE#1178]) -> [SKIP][180] ([Intel XE#2341])
   [179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-7/igt@kms_content_protection@atomic.html
   [180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@kms_content_protection@atomic.html

  * igt@kms_content_protection@uevent:
    - shard-bmg:          [SKIP][181] ([Intel XE#2341]) -> [FAIL][182] ([Intel XE#1188])
   [181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-6/igt@kms_content_protection@uevent.html
   [182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-7/igt@kms_content_protection@uevent.html

  * igt@kms_flip@2x-flip-vs-suspend-interruptible@ab-hdmi-a6-dp4:
    - shard-dg2-set2:     [TIMEOUT][183] ([Intel XE#5737]) -> [INCOMPLETE][184] ([Intel XE#2049] / [Intel XE#2597]) +1 other test incomplete
   [183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-dg2-466/igt@kms_flip@2x-flip-vs-suspend-interruptible@ab-hdmi-a6-dp4.html
   [184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-434/igt@kms_flip@2x-flip-vs-suspend-interruptible@ab-hdmi-a6-dp4.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-adlp:         [DMESG-WARN][185] ([Intel XE#2953] / [Intel XE#4173] / [Intel XE#4543]) -> [DMESG-WARN][186] ([Intel XE#4543])
   [185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-adlp-2/igt@kms_flip@flip-vs-suspend-interruptible.html
   [186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-2/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-blt:
    - shard-bmg:          [SKIP][187] ([Intel XE#2312]) -> [SKIP][188] ([Intel XE#2311]) +6 other tests skip
   [187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-blt.html
   [188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc:
    - shard-bmg:          [SKIP][189] ([Intel XE#2311]) -> [SKIP][190] ([Intel XE#2312]) +8 other tests skip
   [189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-7/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc.html
   [190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-render:
    - shard-bmg:          [SKIP][191] ([Intel XE#2312]) -> [SKIP][192] ([Intel XE#5390]) +6 other tests skip
   [191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-render.html
   [192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-fullscreen:
    - shard-bmg:          [SKIP][193] ([Intel XE#5390]) -> [SKIP][194] ([Intel XE#2312]) +3 other tests skip
   [193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-fullscreen.html
   [194]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-fullscreen.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-plflip-blt:
    - shard-bmg:          [SKIP][195] ([Intel XE#2312]) -> [SKIP][196] ([Intel XE#2313]) +7 other tests skip
   [195]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-plflip-blt.html
   [196]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt:
    - shard-bmg:          [SKIP][197] ([Intel XE#2313]) -> [SKIP][198] ([Intel XE#2312]) +7 other tests skip
   [197]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-4/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt.html
   [198]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-bmg:          [SKIP][199] ([Intel XE#3544]) -> [SKIP][200] ([Intel XE#3374] / [Intel XE#3544])
   [199]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-5/igt@kms_hdr@brightness-with-hdr.html
   [200]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-3/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_pm_dc@dc6-dpms:
    - shard-adlp:         [FAIL][201] ([Intel XE#718]) -> [DMESG-FAIL][202] ([Intel XE#2953] / [Intel XE#4173])
   [201]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-adlp-1/igt@kms_pm_dc@dc6-dpms.html
   [202]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-1/igt@kms_pm_dc@dc6-dpms.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-bmg:          [FAIL][203] ([Intel XE#1729]) -> [SKIP][204] ([Intel XE#2426])
   [203]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-bmg-1/igt@kms_tiled_display@basic-test-pattern.html
   [204]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-bmg-3/igt@kms_tiled_display@basic-test-pattern.html
    - shard-dg2-set2:     [SKIP][205] ([Intel XE#362]) -> [FAIL][206] ([Intel XE#1729])
   [205]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-dg2-463/igt@kms_tiled_display@basic-test-pattern.html
   [206]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-dg2-466/igt@kms_tiled_display@basic-test-pattern.html

  * igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv:
    - shard-adlp:         [ABORT][207] ([Intel XE#5530]) -> [ABORT][208] ([Intel XE#4917] / [Intel XE#5530])
   [207]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554/shard-adlp-6/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
   [208]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154714v3/shard-adlp-6/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html

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

  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
  [Intel XE#1129]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1129
  [Intel XE#1158]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1158
  [Intel XE#1173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1173
  [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
  [Intel XE#1188]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1188
  [Intel XE#1340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1340
  [Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
  [Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
  [Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
  [Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
  [Intel XE#1475]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1475
  [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
  [Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
  [Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
  [Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
  [Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
  [Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2245]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2245
  [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
  [Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
  [Intel XE#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291
  [Intel XE#2293]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2293
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
  [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
  [Intel XE#2314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2314
  [Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
  [Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
  [Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
  [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
  [Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
  [Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
  [Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
  [Intel XE#2372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2372
  [Intel XE#2373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2373
  [Intel XE#2380]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2380
  [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
  [Intel XE#2501]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2501
  [Intel XE#2594]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2594
  [Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
  [Intel XE#261]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/261
  [Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
  [Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
  [Intel XE#2833]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2833
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
  [Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
  [Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
  [Intel XE#2907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2907
  [Intel XE#2953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2953
  [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
  [Intel XE#3012]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3012
  [Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
  [Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
  [Intel XE#308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/308
  [Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
  [Intel XE#3099]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3099
  [Intel XE#310]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/310
  [Intel XE#3113]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3113
  [Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316
  [Intel XE#3321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3321
  [Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
  [Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
  [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
  [Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
  [Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573
  [Intel XE#362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/362
  [Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
  [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
  [Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
  [Intel XE#3876]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3876
  [Intel XE#3970]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3970
  [Intel XE#4130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4130
  [Intel XE#4173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4173
  [Intel XE#4294]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4294
  [Intel XE#4302]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4302
  [Intel XE#4345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4345
  [Intel XE#4351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4351
  [Intel XE#4356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4356
  [Intel XE#4504]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4504
  [Intel XE#4518]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4518
  [Intel XE#4543]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4543
  [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
  [Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596
  [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
  [Intel XE#4814]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4814
  [Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
  [Intel XE#4915]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4915
  [Intel XE#4917]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4917
  [Intel XE#4943]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4943
  [Intel XE#5020]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5020
  [Intel XE#5021]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5021
  [Intel XE#5100]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5100
  [Intel XE#5191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5191
  [Intel XE#5390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5390
  [Intel XE#5530]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5530
  [Intel XE#5561]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5561
  [Intel XE#5564]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5564
  [Intel XE#5565]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5565
  [Intel XE#5575]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5575
  [Intel XE#5594]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5594
  [Intel XE#560]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/560
  [Intel XE#5614]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5614
  [Intel XE#5624]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5624
  [Intel XE#5625]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5625
  [Intel XE#5626]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5626
  [Intel XE#5712]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5712
  [Intel XE#5737]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5737
  [Intel XE#5742]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5742
  [Intel XE#6010]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6010
  [Intel XE#6168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6168
  [Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312
  [Intel XE#6313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6313
  [Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321
  [Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
  [Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
  [Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
  [Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
  [Intel XE#701]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/701
  [Intel XE#718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/718
  [Intel XE#734]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/734
  [Intel XE#776]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/776
  [Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
  [Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
  [Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
  [i915#14968]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14968


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

  * Linux: xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554 -> xe-pw-154714v3

  IGT_8585: 8585
  xe-3925-ed00bdb0008276b3497a4c811e160f18d1218554: ed00bdb0008276b3497a4c811e160f18d1218554
  xe-pw-154714v3: 154714v3

== Logs ==

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

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

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

* Re: [PATCH v3 0/3] drm/xe: add VM_BIND DECOMPRESS support and on‑demand decompression
  2025-10-15 10:47 [PATCH v3 0/3] drm/xe: add VM_BIND DECOMPRESS support and on‑demand decompression Nitin Gote
                   ` (5 preceding siblings ...)
  2025-10-16  2:10 ` ✓ Xe.CI.Full: " Patchwork
@ 2025-10-17 17:38 ` Matthew Brost
  6 siblings, 0 replies; 11+ messages in thread
From: Matthew Brost @ 2025-10-17 17:38 UTC (permalink / raw)
  To: Nitin Gote; +Cc: intel-xe, matthew.auld

On Wed, Oct 15, 2025 at 04:17:06PM +0530, Nitin Gote wrote:
> This series implements VM_BIND decompression support in the XE driver
> for both non-fault mode and fault mode.
> 
> Tested with https://patchwork.freedesktop.org/series/154711/
> which validates basic VM_BIND DECOMPRESS behavior for both
> regular and FAULT_MODE VMs.
> 

This series is getting close to being ready to merged - I'll do another
review shortly. But to merge this we will need a UMD PR which uses this
new uAPI. Has the compute UMD tested this code yet? Can you see if they
can post a PR which can be referenced in the cover letter?

Matt 

> v3: (Matt)
>    - s/xe_bo_schedule_decompress/xe_bo_decompress
>    - skip the decrompress step if the BO isn't in VRAM
>    - start/size not required in xe_bo_schedule_decompress
>    - Use xe_bo_move_notify instead of xe_vm_invalidate_vma
>      with respect to invalidation.
>    - Nits
>  
> v2:
>    - Add kernel doc (Matt)
>    - Move decompression work out of vm_bind ioctl. (Matt)
>    - Put that work in a small helper at the BO/migrate layer invoke it
>      from vma_lock_and_validate which already runs under drm_exec.
>    - Move lightweight checks to vm_bind_ioctl_check_args (Matthew Auld)
> 
> 
> Nitin Gote (3):
>   drm/xe: add VM_BIND DECOMPRESS uapi flag
>   drm/xe: add xe_migrate_resolve wrapper and is_vram_resolve support
>   drm/xe: implement VM_BIND decompression in vm_bind_ioctl
> 
>  drivers/gpu/drm/xe/xe_bo.c       | 50 ++++++++++++++++++
>  drivers/gpu/drm/xe/xe_bo.h       |  2 +
>  drivers/gpu/drm/xe/xe_migrate.c  | 90 ++++++++++++++++++++++----------
>  drivers/gpu/drm/xe/xe_migrate.h  |  7 +++
>  drivers/gpu/drm/xe/xe_vm.c       | 40 ++++++++++----
>  drivers/gpu/drm/xe/xe_vm_types.h |  2 +
>  include/uapi/drm/xe_drm.h        |  8 +++
>  7 files changed, 161 insertions(+), 38 deletions(-)
> 
> -- 
> 2.25.1
> 

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

* Re: [PATCH v3 2/3] drm/xe: add xe_migrate_resolve wrapper and is_vram_resolve support
  2025-10-15 10:47 ` [PATCH v3 2/3] drm/xe: add xe_migrate_resolve wrapper and is_vram_resolve support Nitin Gote
@ 2025-10-17 21:52   ` Matthew Brost
  0 siblings, 0 replies; 11+ messages in thread
From: Matthew Brost @ 2025-10-17 21:52 UTC (permalink / raw)
  To: Nitin Gote; +Cc: intel-xe, matthew.auld

On Wed, Oct 15, 2025 at 04:17:08PM +0530, Nitin Gote wrote:
> Introduce an internal __xe_migrate_copy(..., is_vram_resolve) path and
> expose a small wrapper xe_migrate_resolve() that calls it with
> is_vram_resolve=true.
> 
> For resolve/decompression operations we must ensure the copy code uses
> the compression PAT index when appropriate; this change centralizes that
> behavior and allows callers to schedule a resolve (decompress) operation
> via the migrate API.
> 
> Cc: Matthew Brost <matthew.brost@intel.com>
> Cc: Matthew Auld <matthew.auld@intel.com>
> Signed-off-by: Nitin Gote <nitin.r.gote@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_migrate.c | 90 +++++++++++++++++++++++----------
>  drivers/gpu/drm/xe/xe_migrate.h |  7 +++
>  2 files changed, 70 insertions(+), 27 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_migrate.c b/drivers/gpu/drm/xe/xe_migrate.c
> index 4ca48dd1cfd8..1ab649c1e4e0 100644
> --- a/drivers/gpu/drm/xe/xe_migrate.c
> +++ b/drivers/gpu/drm/xe/xe_migrate.c
> @@ -777,31 +777,13 @@ static u32 xe_migrate_ccs_copy(struct xe_migrate *m,
>  	return flush_flags;
>  }
>  
> -/**
> - * xe_migrate_copy() - Copy content of TTM resources.
> - * @m: The migration context.
> - * @src_bo: The buffer object @src is currently bound to.
> - * @dst_bo: If copying between resources created for the same bo, set this to
> - * the same value as @src_bo. If copying between buffer objects, set it to
> - * the buffer object @dst is currently bound to.
> - * @src: The source TTM resource.
> - * @dst: The dst TTM resource.
> - * @copy_only_ccs: If true copy only CCS metadata
> - *
> - * Copies the contents of @src to @dst: On flat CCS devices,
> - * the CCS metadata is copied as well if needed, or if not present,
> - * the CCS metadata of @dst is cleared for security reasons.
> - *
> - * Return: Pointer to a dma_fence representing the last copy batch, or
> - * an error pointer on failure. If there is a failure, any copy operation
> - * started by the function call has been synced.
> - */
> -struct dma_fence *xe_migrate_copy(struct xe_migrate *m,
> -				  struct xe_bo *src_bo,
> -				  struct xe_bo *dst_bo,
> -				  struct ttm_resource *src,
> -				  struct ttm_resource *dst,
> -				  bool copy_only_ccs)
> +static struct dma_fence *__xe_migrate_copy(struct xe_migrate *m,
> +					   struct xe_bo *src_bo,
> +					   struct xe_bo *dst_bo,
> +					   struct ttm_resource *src,
> +					   struct ttm_resource *dst,
> +					   bool copy_only_ccs,
> +					   bool is_vram_resolve)
>  {
>  	struct xe_gt *gt = m->tile->primary_gt;
>  	struct xe_device *xe = gt_to_xe(gt);
> @@ -822,8 +804,19 @@ struct dma_fence *xe_migrate_copy(struct xe_migrate *m,
>  	bool copy_ccs = xe_device_has_flat_ccs(xe) &&
>  		xe_bo_needs_ccs_pages(src_bo) && xe_bo_needs_ccs_pages(dst_bo);
>  	bool copy_system_ccs = copy_ccs && (!src_is_vram || !dst_is_vram);
> -	bool use_comp_pat = type_device && xe_device_has_flat_ccs(xe) &&
> -		GRAPHICS_VER(xe) >= 20 && src_is_vram && !dst_is_vram;
> +	bool use_comp_pat;

I'd write this like:

	bool use_comp_pat = is_vram_resolve || (type_device &&
		xe_device_has_flat_ccs(xe) && GRAPHICS_VER(xe) >= 20 &&
		src_is_vram && !dst_is_vram);


> +
> +	/*
> +	 * For decompression operation, always use the compression PAT index.
> +	 * Otherwise, only use the compression PAT index for device memory
> +	 * when copying from VRAM to system memory.
> +	 */

Feel free leave this comment in as it is helpful.

> +	if (is_vram_resolve) {
> +		use_comp_pat = true;
> +	} else {
> +		use_comp_pat = type_device && xe_device_has_flat_ccs(xe) &&
> +			GRAPHICS_VER(xe) >= 20 && src_is_vram && !dst_is_vram;
> +	}
>  
>  	/* Copying CCS between two different BOs is not supported yet. */
>  	if (XE_WARN_ON(copy_ccs && src_bo != dst_bo))
> @@ -982,6 +975,49 @@ struct dma_fence *xe_migrate_copy(struct xe_migrate *m,
>  	return fence;
>  }
>  
> +/**
> + * xe_migrate_copy() - Copy content of TTM resources.
> + * @m: The migration context.
> + * @src_bo: The buffer object @src is currently bound to.
> + * @dst_bo: If copying between resources created for the same bo, set this to
> + * the same value as @src_bo. If copying between buffer objects, set it to
> + * the buffer object @dst is currently bound to.
> + * @src: The source TTM resource.
> + * @dst: The dst TTM resource.
> + * @copy_only_ccs: If true copy only CCS metadata
> + *
> + * Copies the contents of @src to @dst: On flat CCS devices,
> + * the CCS metadata is copied as well if needed, or if not present,
> + * the CCS metadata of @dst is cleared for security reasons.
> + *
> + * Return: Pointer to a dma_fence representing the last copy batch, or
> + * an error pointer on failure. If there is a failure, any copy operation
> + * started by the function call has been synced.
> + */
> +struct dma_fence *xe_migrate_copy(struct xe_migrate *m,
> +				  struct xe_bo *src_bo,
> +				  struct xe_bo *dst_bo,
> +				  struct ttm_resource *src,
> +				  struct ttm_resource *dst,
> +				  bool copy_only_ccs)
> +{
> +	return __xe_migrate_copy(m, src_bo, dst_bo, src, dst, copy_only_ccs, false);
> +}
> +
> +/**
> + * xe_migrate_resolve() - Resolve and decompress a buffer object if required.
> + * This wrapper forwards to __xe_migrate_copy() with is_vram_resolve=true.
> + */
> +struct dma_fence *xe_migrate_resolve(struct xe_migrate *m,
> +				     struct xe_bo *src_bo,
> +				     struct xe_bo *dst_bo,
> +				     struct ttm_resource *src,
> +				     struct ttm_resource *dst,
> +				     bool copy_only_ccs)
> +{
> +	return __xe_migrate_copy(m, src_bo, dst_bo, src, dst, copy_only_ccs, true);
> +}
> +
>  /**
>   * xe_migrate_lrc() - Get the LRC from migrate context.
>   * @migrate: Migrate context.
> diff --git a/drivers/gpu/drm/xe/xe_migrate.h b/drivers/gpu/drm/xe/xe_migrate.h
> index 4fad324b6253..ade68ab32a71 100644
> --- a/drivers/gpu/drm/xe/xe_migrate.h
> +++ b/drivers/gpu/drm/xe/xe_migrate.h
> @@ -125,6 +125,13 @@ struct dma_fence *xe_migrate_copy(struct xe_migrate *m,
>  				  struct ttm_resource *dst,
>  				  bool copy_only_ccs);
>  
> +struct dma_fence *xe_migrate_resolve(struct xe_migrate *m,
> +				     struct xe_bo *src_bo,
> +				     struct xe_bo *dst_bo,
> +				     struct ttm_resource *src,
> +				     struct ttm_resource *dst,
> +				     bool copy_only_ccs);

I think you can have single BO / resource argument as resolves are always the
same src / dst.

Likewise for resolve copy_only_ccs is always false, right? So can likely drop
that argument too.

Matt

> +
>  int xe_migrate_ccs_rw_copy(struct xe_tile *tile, struct xe_exec_queue *q,
>  			   struct xe_bo *src_bo,
>  			   enum xe_sriov_vf_ccs_rw_ctxs read_write);
> -- 
> 2.25.1
> 

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

* Re: [PATCH v3 1/3] drm/xe: add VM_BIND DECOMPRESS uapi flag
  2025-10-15 10:47 ` [PATCH v3 1/3] drm/xe: add VM_BIND DECOMPRESS uapi flag Nitin Gote
@ 2025-10-17 21:54   ` Matthew Brost
  0 siblings, 0 replies; 11+ messages in thread
From: Matthew Brost @ 2025-10-17 21:54 UTC (permalink / raw)
  To: Nitin Gote; +Cc: intel-xe, matthew.auld

On Wed, Oct 15, 2025 at 04:17:07PM +0530, Nitin Gote wrote:
> Add a new VM_BIND flag, DRM_XE_VM_BIND_FLAG_DECOMPRESS, that lets userspace
> express intent for the driver to perform on-device in-place decompression
> for the GPU mapping created by a MAP bind operation.
> 
> This flag is used by subsequent driver changes to trigger scheduling of
> GPU work that resolves compressed VRAM pages into an uncompressed PAT
> VM mapping.
> 
> Behavior and semantics:
> - Valid only for DRM_XE_VM_BIND_OP_MAP. IOCTLs using this flag on other ops
>   are rejected (-EINVAL).
> - The bind's pat_index must select the device "no-compression" PAT entry;
>   otherwise the ioctl is rejected (-EINVAL).
> - Only meaningful for VRAM-backed BOs on devices that support Flat CCS and
>   the required hardware generation (driver will return -EOPNOTSUPP if not).
> - On success the driver schedules a migrate/resolve and installs the
>   returned dma_fence into the BO's kernel reservation
>   (DMA_RESV_USAGE_KERNEL).
> 
> v2: Add kernel doc (Matt)
> 
> Cc: Matthew Brost <matthew.brost@intel.com>
> Cc: Matthew Auld <matthew.auld@intel.com>
> Signed-off-by: Nitin Gote <nitin.r.gote@intel.com>
> ---
>  include/uapi/drm/xe_drm.h | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> index 40ff19f52a8d..07bd63651a7e 100644
> --- a/include/uapi/drm/xe_drm.h
> +++ b/include/uapi/drm/xe_drm.h
> @@ -1013,6 +1013,13 @@ struct drm_xe_vm_destroy {
>   *    valid on VMs with DRM_XE_VM_CREATE_FLAG_FAULT_MODE set. The CPU address
>   *    mirror flag are only valid for DRM_XE_VM_BIND_OP_MAP operations, the BO
>   *    handle MBZ, and the BO offset MBZ.
> + *  - DRM_XE_VM_BIND_FLAG_DECOMPRESS - Request on-device decompression for a MAP.
> + *    When set on a MAP bind operation, request the driver schedule an on-device
> + *    in-place decompression (via the migrate/resolve path) for the GPU mapping
> + *    created by this bind. Only valid for DRM_XE_VM_BIND_OP_MAP; usage on
> + *    other ops is rejected. The bind's pat_index must select the device's
> + *    "no-compression" PAT. Only meaningful for VRAM-backed BOs on devices that
> + *    support Flat CCS and the required HW generation XE2+.

Reviewed-by: Matthew Brost <matthew.brost@intel.com>

Since this uAPI, I believe we should get a UMD ack here too ahead or merging.

Matt

>   *
>   * The @prefetch_mem_region_instance for %DRM_XE_VM_BIND_OP_PREFETCH can also be:
>   *  - %DRM_XE_CONSULT_MEM_ADVISE_PREF_LOC, which ensures prefetching occurs in
> @@ -1119,6 +1126,7 @@ struct drm_xe_vm_bind_op {
>  #define DRM_XE_VM_BIND_FLAG_DUMPABLE	(1 << 3)
>  #define DRM_XE_VM_BIND_FLAG_CHECK_PXP	(1 << 4)
>  #define DRM_XE_VM_BIND_FLAG_CPU_ADDR_MIRROR	(1 << 5)
> +#define DRM_XE_VM_BIND_FLAG_DECOMPRESS	(1 << 6)
>  	/** @flags: Bind flags */
>  	__u32 flags;
>  
> -- 
> 2.25.1
> 

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

* Re: [PATCH v3 3/3] drm/xe: implement VM_BIND decompression in vm_bind_ioctl
  2025-10-15 10:47 ` [PATCH v3 3/3] drm/xe: implement VM_BIND decompression in vm_bind_ioctl Nitin Gote
@ 2025-10-17 22:19   ` Matthew Brost
  0 siblings, 0 replies; 11+ messages in thread
From: Matthew Brost @ 2025-10-17 22:19 UTC (permalink / raw)
  To: Nitin Gote; +Cc: intel-xe, matthew.auld

On Wed, Oct 15, 2025 at 04:17:09PM +0530, Nitin Gote wrote:
> Implement handling of VM_BIND(..., DECOMPRESS) in xe_vm_bind_ioctl.
> 
> Key changes:
> - Parse and record per-op intent (op->map.request_decompress) when the
>   DECOMPRESS flag is present.
> - Validate DECOMPRESS preconditions in the ioctl path:
>   - Only valid for MAP ops.
>   - The provided pat_index must select the device's "no-compression" PAT.
>   - Only meaningful on devices with flat CCS and the required XE2+
>     otherwise return -EOPNOTSUPP.
>   - Use XE_IOCTL_DBG for uAPI sanity checks.
> - Implement xe_bo_schedule_decompress():
>   For VRAM BOs run xe_bo_move_notify(), reserve one fence slot,
>   schedule xe_migrate_resolve(), and attach the returned fence
>   with DMA_RESV_USAGE_KERNEL. Non-VRAM cases are silent no-ops.
> - Wire scheduling into vma_lock_and_validate() so VM_BIND will schedule
>   decompression when request_decompress is set.
> - Handle fault-mode VMs by performing decompression synchronously during
>   the bind process, ensuring that the resolve is completed before the bind
>   finishes.
> 
> This schedules an in-place GPU resolve (xe_migrate_resolve) for
> decompression.
> 
> v3: (Matt)
>    - s/xe_bo_schedule_decompress/xe_bo_decompress
>    - skip the decrompress step if the BO isn't in VRAM
>    - start/size not required in xe_bo_schedule_decompress
>    - Use xe_bo_move_notify instead of xe_vm_invalidate_vma
>      with respect to invalidation.
>    - Nits
> 
> v2:
>    - Move decompression work out of vm_bind ioctl. (Matt)
>    - Put that work in a small helper at the BO/migrate layer invoke it
>      from vma_lock_and_validate which already runs under drm_exec.
>    - Move lightweight checks to vm_bind_ioctl_check_args (Matthew Auld)
> 
> Cc: Matthew Brost <matthew.brost@intel.com>
> Cc: Matthew Auld <matthew.auld@intel.com>
> Signed-off-by: Nitin Gote <nitin.r.gote@intel.com>
> ---
> Hi Matt,
> Thank you for the review.
> Regarding multiple bool params in vma_lock_and_validate(),
> I will clean it in new patch.
> 
> -Nitin
> 
>  drivers/gpu/drm/xe/xe_bo.c       | 50 ++++++++++++++++++++++++++++++++
>  drivers/gpu/drm/xe/xe_bo.h       |  2 ++
>  drivers/gpu/drm/xe/xe_vm.c       | 40 ++++++++++++++++++-------
>  drivers/gpu/drm/xe/xe_vm_types.h |  2 ++
>  4 files changed, 83 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
> index 7b6502081873..7438c01c1895 100644
> --- a/drivers/gpu/drm/xe/xe_bo.c
> +++ b/drivers/gpu/drm/xe/xe_bo.c
> @@ -3307,6 +3307,56 @@ int xe_gem_mmap_offset_ioctl(struct drm_device *dev, void *data,
>  	return 0;
>  }
>  
> +/**
> + * xe_bo_decompress - schedule in-place decompress and install fence
> + * @bo:   buffer object (caller should hold drm_exec reservations for VM+BO)
> + * @vm:   VM containing the VMA range
> + *
> + * Schedules an in-place resolve via the migrate layer and installs the
> + * returned dma_fence into the BO kernel reservation slot (DMA_RESV_USAGE_KERNEL).
> + * Returns 0 on success, negative errno on error.
> + */
> +int xe_bo_decompress(struct xe_bo *bo, struct xe_vm *vm)
> +{
> +	struct xe_tile *tile = xe_device_get_root_tile(vm->xe);
> +	struct dma_fence *decomp_fence = NULL;
> +	int err = 0;
> +	struct ttm_operation_ctx op_ctx = {
> +		.interruptible = false,
> +		.no_wait_gpu = false,
> +		.gfp_retry_mayfail = true,

I think you want .interruptible = true, everything else false.

> +	};
> +
> +	/* Silently skip decompression for non-VRAM buffers */
> +	if (!bo->ttm.resource || !mem_type_is_vram(bo->ttm.resource->mem_type))
> +		return 0;
> +
> +	/* Notify before scheduling resolve */
> +	err = xe_bo_move_notify(bo, &op_ctx);

The downside of the resolve operation in preempt fence mode is we need
to interrupt hardware execution which is pretty expensive. We should
stress to the UMD teams if they want to use this feature it is highly
recommended to use page faults. 

> +	if (err)
> +		return err;
> +
> +	/* Reserve fence slot before scheduling */
> +	err = dma_resv_reserve_fences(bo->ttm.base.resv, 1);
> +	if (err)
> +		return err;
> +
> +	/* Schedule the in-place decompression */
> +	decomp_fence = xe_migrate_resolve(tile->migrate,
> +					  bo, bo,
> +					  bo->ttm.resource, bo->ttm.resource,
> +					  false);

See my comments in previous patch about triming the argument list.

> +
> +	if (IS_ERR(decomp_fence))
> +		return PTR_ERR(decomp_fence);
> +
> +	/* Install kernel-usage fence */
> +	dma_resv_add_fence(bo->ttm.base.resv, decomp_fence, DMA_RESV_USAGE_KERNEL);
> +	dma_fence_put(decomp_fence);
> +
> +	return 0;
> +}
> +
>  /**
>   * xe_bo_lock() - Lock the buffer object's dma_resv object
>   * @bo: The struct xe_bo whose lock is to be taken
> diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
> index 353d607d301d..472c9de889c9 100644
> --- a/drivers/gpu/drm/xe/xe_bo.h
> +++ b/drivers/gpu/drm/xe/xe_bo.h
> @@ -308,6 +308,8 @@ int xe_bo_dumb_create(struct drm_file *file_priv,
>  
>  bool xe_bo_needs_ccs_pages(struct xe_bo *bo);
>  
> +int xe_bo_decompress(struct xe_bo *bo, struct xe_vm *vm);
> +
>  static inline size_t xe_bo_ccs_pages_start(struct xe_bo *bo)
>  {
>  	return PAGE_ALIGN(xe_bo_size(bo));
> diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> index 08bc55bd91d7..8bb2a3259d56 100644
> --- a/drivers/gpu/drm/xe/xe_vm.c
> +++ b/drivers/gpu/drm/xe/xe_vm.c
> @@ -2305,6 +2305,7 @@ vm_bind_ioctl_ops_create(struct xe_vm *vm, struct xe_vma_ops *vops,
>  			op->map.is_cpu_addr_mirror = flags &
>  				DRM_XE_VM_BIND_FLAG_CPU_ADDR_MIRROR;
>  			op->map.dumpable = flags & DRM_XE_VM_BIND_FLAG_DUMPABLE;
> +			op->map.request_decompress = flags & DRM_XE_VM_BIND_FLAG_DECOMPRESS;
>  			op->map.pat_index = pat_index;
>  			op->map.invalidate_on_bind =
>  				__xe_vm_needs_clear_scratch_pages(vm, flags);
> @@ -2859,7 +2860,7 @@ static void vm_bind_ioctl_ops_unwind(struct xe_vm *vm,
>  }
>  
>  static int vma_lock_and_validate(struct drm_exec *exec, struct xe_vma *vma,
> -				 bool res_evict, bool validate)
> +				 bool res_evict, bool validate, bool request_decompress)
>  {
>  	struct xe_bo *bo = xe_vma_bo(vma);
>  	struct xe_vm *vm = xe_vma_vm(vma);
> @@ -2872,6 +2873,12 @@ static int vma_lock_and_validate(struct drm_exec *exec, struct xe_vma *vma,
>  			err = xe_bo_validate(bo, vm,
>  					     !xe_vm_in_preempt_fence_mode(vm) &&
>  					     res_evict, exec);
> +
> +		if (err)
> +			return err;
> +
> +		if (request_decompress)
> +			err = xe_bo_decompress(bo, vm);
>  	}
>  
>  	return err;
> @@ -2959,7 +2966,8 @@ static int op_lock_and_prep(struct drm_exec *exec, struct xe_vm *vm,
>  			err = vma_lock_and_validate(exec, op->map.vma,
>  						    res_evict,
>  						    !xe_vm_in_fault_mode(vm) ||
> -						    op->map.immediate);
> +						    op->map.immediate,
> +						    op->map.request_decompress);
>  		break;
>  	case DRM_GPUVA_OP_REMAP:
>  		err = check_ufence(gpuva_to_vma(op->base.remap.unmap->va));
> @@ -2968,13 +2976,13 @@ static int op_lock_and_prep(struct drm_exec *exec, struct xe_vm *vm,
>  
>  		err = vma_lock_and_validate(exec,
>  					    gpuva_to_vma(op->base.remap.unmap->va),
> -					    res_evict, false);
> +					    res_evict, false, false);
>  		if (!err && op->remap.prev)
>  			err = vma_lock_and_validate(exec, op->remap.prev,
> -						    res_evict, true);
> +						    res_evict, true, false);
>  		if (!err && op->remap.next)
>  			err = vma_lock_and_validate(exec, op->remap.next,
> -						    res_evict, true);
> +						    res_evict, true, false);
>  		break;
>  	case DRM_GPUVA_OP_UNMAP:
>  		err = check_ufence(gpuva_to_vma(op->base.unmap.va));
> @@ -2983,7 +2991,7 @@ static int op_lock_and_prep(struct drm_exec *exec, struct xe_vm *vm,
>  
>  		err = vma_lock_and_validate(exec,
>  					    gpuva_to_vma(op->base.unmap.va),
> -					    res_evict, false);
> +					    res_evict, false, false);
>  		break;
>  	case DRM_GPUVA_OP_PREFETCH:
>  	{
> @@ -2998,7 +3006,7 @@ static int op_lock_and_prep(struct drm_exec *exec, struct xe_vm *vm,
>  
>  		err = vma_lock_and_validate(exec,
>  					    gpuva_to_vma(op->base.prefetch.va),
> -					    res_evict, false);
> +					    res_evict, false, false);
>  		if (!err && !xe_vma_has_no_bo(vma))
>  			err = xe_bo_migrate(xe_vma_bo(vma),
>  					    region_to_mem_type[region],
> @@ -3306,7 +3314,8 @@ ALLOW_ERROR_INJECTION(vm_bind_ioctl_ops_execute, ERRNO);
>  	 DRM_XE_VM_BIND_FLAG_NULL | \
>  	 DRM_XE_VM_BIND_FLAG_DUMPABLE | \
>  	 DRM_XE_VM_BIND_FLAG_CHECK_PXP | \
> -	 DRM_XE_VM_BIND_FLAG_CPU_ADDR_MIRROR)
> +	 DRM_XE_VM_BIND_FLAG_CPU_ADDR_MIRROR | \
> +	 DRM_XE_VM_BIND_FLAG_DECOMPRESS)
>  
>  #ifdef TEST_VM_OPS_ERROR
>  #define SUPPORTED_FLAGS	(SUPPORTED_FLAGS_STUB | FORCE_OP_ERROR)
> @@ -3364,6 +3373,7 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe, struct xe_vm *vm,
>  		bool is_null = flags & DRM_XE_VM_BIND_FLAG_NULL;
>  		bool is_cpu_addr_mirror = flags &
>  			DRM_XE_VM_BIND_FLAG_CPU_ADDR_MIRROR;
> +		bool is_decompress = flags & DRM_XE_VM_BIND_FLAG_DECOMPRESS;
>  		u16 pat_index = (*bind_ops)[i].pat_index;
>  		u16 coh_mode;
>  
> @@ -3398,7 +3408,9 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe, struct xe_vm *vm,
>  		    XE_IOCTL_DBG(xe, obj_offset && (is_null ||
>  						    is_cpu_addr_mirror)) ||
>  		    XE_IOCTL_DBG(xe, op != DRM_XE_VM_BIND_OP_MAP &&
> -				 (is_null || is_cpu_addr_mirror)) ||
> +				 (is_decompress || is_null || is_cpu_addr_mirror)) ||
> +		    XE_IOCTL_DBG(xe, is_decompress &&
> +				 pat_index != xe->pat.idx[XE_CACHE_NONE_COMPRESSION]) ||

There are several pat_idx entries that are not compressed—see
xe2_pat_table. I think what you’re aiming for is to call a helper
similar to xe_pat_index_get_coh_mode (perhaps
xe_pat_index_get_comp_en?), which checks XE2_COMP_EN for the pat_index.
If that function returns false, the IOCTL should be nacked.

Matt

>  		    XE_IOCTL_DBG(xe, !obj &&
>  				 op == DRM_XE_VM_BIND_OP_MAP &&
>  				 !is_null && !is_cpu_addr_mirror) ||
> @@ -3418,8 +3430,8 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe, struct xe_vm *vm,
>  				 op == DRM_XE_VM_BIND_OP_PREFETCH) ||
>  		    XE_IOCTL_DBG(xe, prefetch_region &&
>  				 op != DRM_XE_VM_BIND_OP_PREFETCH) ||
> -		    XE_IOCTL_DBG(xe,  (prefetch_region != DRM_XE_CONSULT_MEM_ADVISE_PREF_LOC &&
> -				       !(BIT(prefetch_region) & xe->info.mem_region_mask))) ||
> +		    XE_IOCTL_DBG(xe, (prefetch_region != DRM_XE_CONSULT_MEM_ADVISE_PREF_LOC &&
> +				      !(BIT(prefetch_region) & xe->info.mem_region_mask))) ||
>  		    XE_IOCTL_DBG(xe, obj &&
>  				 op == DRM_XE_VM_BIND_OP_UNMAP)) {
>  			err = -EINVAL;
> @@ -3434,6 +3446,12 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe, struct xe_vm *vm,
>  			err = -EINVAL;
>  			goto free_bind_ops;
>  		}
> +
> +		if (is_decompress && (XE_IOCTL_DBG(xe, !xe_device_has_flat_ccs(xe)) ||
> +				      XE_IOCTL_DBG(xe, GRAPHICS_VER(xe) < 20))) {
> +			err = -EOPNOTSUPP;
> +			goto free_bind_ops;
> +		}
>  	}
>  
>  	return 0;
> diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
> index 413353e1c225..7d652d17b0dc 100644
> --- a/drivers/gpu/drm/xe/xe_vm_types.h
> +++ b/drivers/gpu/drm/xe/xe_vm_types.h
> @@ -357,6 +357,8 @@ struct xe_vma_op_map {
>  	bool dumpable;
>  	/** @invalidate: invalidate the VMA before bind */
>  	bool invalidate_on_bind;
> +	/** @request_decompress: schedule decompression for GPU map */
> +	bool request_decompress;
>  	/** @pat_index: The pat index to use for this operation. */
>  	u16 pat_index;
>  };
> -- 
> 2.25.1
> 

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

end of thread, other threads:[~2025-10-18  2:50 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-15 10:47 [PATCH v3 0/3] drm/xe: add VM_BIND DECOMPRESS support and on‑demand decompression Nitin Gote
2025-10-15 10:47 ` [PATCH v3 1/3] drm/xe: add VM_BIND DECOMPRESS uapi flag Nitin Gote
2025-10-17 21:54   ` Matthew Brost
2025-10-15 10:47 ` [PATCH v3 2/3] drm/xe: add xe_migrate_resolve wrapper and is_vram_resolve support Nitin Gote
2025-10-17 21:52   ` Matthew Brost
2025-10-15 10:47 ` [PATCH v3 3/3] drm/xe: implement VM_BIND decompression in vm_bind_ioctl Nitin Gote
2025-10-17 22:19   ` Matthew Brost
2025-10-15 16:15 ` ✓ CI.KUnit: success for drm/xe: add VM_BIND DECOMPRESS support and on‑demand decompression (rev3) Patchwork
2025-10-15 16:55 ` ✓ Xe.CI.BAT: " Patchwork
2025-10-16  2:10 ` ✓ Xe.CI.Full: " Patchwork
2025-10-17 17:38 ` [PATCH v3 0/3] drm/xe: add VM_BIND DECOMPRESS support and on‑demand decompression Matthew Brost

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