* [PATCH 00/12] Context based TLB invalidations
@ 2025-11-01 1:02 Matthew Brost
2025-11-01 1:02 ` [PATCH 01/12] drm/xe: Add normalize_invalidation_range Matthew Brost
` (15 more replies)
0 siblings, 16 replies; 17+ messages in thread
From: Matthew Brost @ 2025-11-01 1:02 UTC (permalink / raw)
To: intel-xe; +Cc: stuart.summers, lucas.demarchi, matthew.d.roper
Add support for context based TLB invalidations.
Matt
Matthew Brost (12):
drm/xe: Add normalize_invalidation_range
drm/xe: Make usm.asid_to_vm allocation use GFP_NOWAIT
drm/xe: Add xe_device_asid_to_vm helper
drm/xe: Add vm to exec queues association
drm/xe: Taint TLB invalidation seqno lock with GFP_KERNEL
drm/xe: Do not forward invalid TLB invalidation seqnos to upper layers
drm/xe: Rename send_tlb_inval_ppgtt to send_tlb_inval_asid_ppgtt
drm/xe: Add send_tlb_inval_ppgtt helper
drm/xe: Add xe_tlb_inval_idle helper
drm/xe: Add exec queue active vfunc
drm/xe: Add context-based invalidation to GuC TLB invalidation backend
drm/xe: Enable context TLB invalidations for CI
drivers/gpu/drm/xe/xe_device.c | 25 +++
drivers/gpu/drm/xe/xe_device.h | 11 +-
drivers/gpu/drm/xe/xe_device_types.h | 9 +
drivers/gpu/drm/xe/xe_exec_queue.c | 7 +-
drivers/gpu/drm/xe/xe_exec_queue_types.h | 5 +
drivers/gpu/drm/xe/xe_execlist.c | 7 +
drivers/gpu/drm/xe/xe_guc_submit.c | 6 +
drivers/gpu/drm/xe/xe_guc_tlb_inval.c | 215 ++++++++++++++++++-----
drivers/gpu/drm/xe/xe_pci.c | 2 +
drivers/gpu/drm/xe/xe_pci_types.h | 1 +
drivers/gpu/drm/xe/xe_tlb_inval.c | 38 ++++
drivers/gpu/drm/xe/xe_tlb_inval.h | 2 +
drivers/gpu/drm/xe/xe_tlb_inval_types.h | 1 +
drivers/gpu/drm/xe/xe_vm.c | 49 +++++-
drivers/gpu/drm/xe/xe_vm.h | 3 +
drivers/gpu/drm/xe/xe_vm_types.h | 13 ++
16 files changed, 342 insertions(+), 52 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 01/12] drm/xe: Add normalize_invalidation_range
2025-11-01 1:02 [PATCH 00/12] Context based TLB invalidations Matthew Brost
@ 2025-11-01 1:02 ` Matthew Brost
2025-11-01 1:02 ` [PATCH 02/12] drm/xe: Make usm.asid_to_vm allocation use GFP_NOWAIT Matthew Brost
` (14 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Matthew Brost @ 2025-11-01 1:02 UTC (permalink / raw)
To: intel-xe; +Cc: stuart.summers, lucas.demarchi, matthew.d.roper
Extract the code that determines the alignment of TLB invalidation into
a helper function — normalize_invalidation_range. This will be useful
when adding context-based invalidations to the GuC TLB invalidation
backend.
Sigend-off-by: Nirmoy Das <nirmoy.das@intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
---
drivers/gpu/drm/xe/xe_guc_tlb_inval.c | 71 +++++++++++++--------------
1 file changed, 35 insertions(+), 36 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_guc_tlb_inval.c b/drivers/gpu/drm/xe/xe_guc_tlb_inval.c
index a80175c7c478..61bfa0d485f6 100644
--- a/drivers/gpu/drm/xe/xe_guc_tlb_inval.c
+++ b/drivers/gpu/drm/xe/xe_guc_tlb_inval.c
@@ -92,6 +92,38 @@ static int send_tlb_inval_ggtt(struct xe_tlb_inval *tlb_inval, u32 seqno)
return -ECANCELED;
}
+static u64 normalize_invalidation_range(struct xe_gt *gt, u64 *start, u64 *end)
+{
+ u64 orig_start = *start;
+ u64 length = *end - *start;
+ u64 align;
+
+ if (length < SZ_4K)
+ length = SZ_4K;
+
+ align = roundup_pow_of_two(length);
+ *start = ALIGN_DOWN(*start, align);
+ *end = ALIGN(*end, align);
+ length = align;
+ while (*start + length < *end) {
+ length <<= 1;
+ *start = ALIGN_DOWN(orig_start, length);
+ }
+
+ if (length >= SZ_2M) {
+ length = max_t(u64, SZ_16M, length);
+ *start = ALIGN_DOWN(orig_start, length);
+ }
+
+ xe_gt_assert(gt, length >= SZ_4K);
+ xe_gt_assert(gt, is_power_of_2(length));
+ xe_gt_assert(gt, !(length & GENMASK(ilog2(SZ_16M) - 1,
+ ilog2(SZ_2M) + 1)));
+ xe_gt_assert(gt, IS_ALIGNED(*start, length));
+
+ return length;
+}
+
/*
* Ensure that roundup_pow_of_two(length) doesn't overflow.
* Note that roundup_pow_of_two() operates on unsigned long,
@@ -118,47 +150,14 @@ static int send_tlb_inval_ppgtt(struct xe_tlb_inval *tlb_inval, u32 seqno,
length > MAX_RANGE_TLB_INVALIDATION_LENGTH) {
action[len++] = MAKE_INVAL_OP(XE_GUC_TLB_INVAL_FULL);
} else {
- u64 orig_start = start;
- u64 align;
-
- if (length < SZ_4K)
- length = SZ_4K;
-
- /*
- * We need to invalidate a higher granularity if start address
- * is not aligned to length. When start is not aligned with
- * length we need to find the length large enough to create an
- * address mask covering the required range.
- */
- align = roundup_pow_of_two(length);
- start = ALIGN_DOWN(start, align);
- end = ALIGN(end, align);
- length = align;
- while (start + length < end) {
- length <<= 1;
- start = ALIGN_DOWN(orig_start, length);
- }
-
- /*
- * Minimum invalidation size for a 2MB page that the hardware
- * expects is 16MB
- */
- if (length >= SZ_2M) {
- length = max_t(u64, SZ_16M, length);
- start = ALIGN_DOWN(orig_start, length);
- }
-
- xe_gt_assert(gt, length >= SZ_4K);
- xe_gt_assert(gt, is_power_of_2(length));
- xe_gt_assert(gt, !(length & GENMASK(ilog2(SZ_16M) - 1,
- ilog2(SZ_2M) + 1)));
- xe_gt_assert(gt, IS_ALIGNED(start, length));
+ u64 normalize_len = normalize_invalidation_range(gt, &start,
+ &end);
action[len++] = MAKE_INVAL_OP(XE_GUC_TLB_INVAL_PAGE_SELECTIVE);
action[len++] = asid;
action[len++] = lower_32_bits(start);
action[len++] = upper_32_bits(start);
- action[len++] = ilog2(length) - ilog2(SZ_4K);
+ action[len++] = ilog2(normalize_len) - ilog2(SZ_4K);
}
xe_gt_assert(gt, len <= MAX_TLB_INVALIDATION_LEN);
--
2.34.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 02/12] drm/xe: Make usm.asid_to_vm allocation use GFP_NOWAIT
2025-11-01 1:02 [PATCH 00/12] Context based TLB invalidations Matthew Brost
2025-11-01 1:02 ` [PATCH 01/12] drm/xe: Add normalize_invalidation_range Matthew Brost
@ 2025-11-01 1:02 ` Matthew Brost
2025-11-01 1:02 ` [PATCH 03/12] drm/xe: Add xe_device_asid_to_vm helper Matthew Brost
` (13 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Matthew Brost @ 2025-11-01 1:02 UTC (permalink / raw)
To: intel-xe; +Cc: stuart.summers, lucas.demarchi, matthew.d.roper
Ensure the asid_to_vm lookup is reclaim-safe so it can be performed
during TLB invalidations, which is necessary for context-based TLB
invalidation support.
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
---
drivers/gpu/drm/xe/xe_vm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index 00f3520dec38..84f4c8f1be33 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -1632,7 +1632,7 @@ struct xe_vm *xe_vm_create(struct xe_device *xe, u32 flags, struct xe_file *xef)
down_write(&xe->usm.lock);
err = xa_alloc_cyclic(&xe->usm.asid_to_vm, &asid, vm,
XA_LIMIT(1, XE_MAX_ASID - 1),
- &xe->usm.next_asid, GFP_KERNEL);
+ &xe->usm.next_asid, GFP_NOWAIT);
up_write(&xe->usm.lock);
if (err < 0)
goto err_close;
--
2.34.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 03/12] drm/xe: Add xe_device_asid_to_vm helper
2025-11-01 1:02 [PATCH 00/12] Context based TLB invalidations Matthew Brost
2025-11-01 1:02 ` [PATCH 01/12] drm/xe: Add normalize_invalidation_range Matthew Brost
2025-11-01 1:02 ` [PATCH 02/12] drm/xe: Make usm.asid_to_vm allocation use GFP_NOWAIT Matthew Brost
@ 2025-11-01 1:02 ` Matthew Brost
2025-11-01 1:02 ` [PATCH 04/12] drm/xe: Add vm to exec queues association Matthew Brost
` (12 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Matthew Brost @ 2025-11-01 1:02 UTC (permalink / raw)
To: intel-xe; +Cc: stuart.summers, lucas.demarchi, matthew.d.roper
Introduce the xe_device_asid_to_vm helper, which can be used throughout
the driver to resolve the VM from a given ASID.
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
---
drivers/gpu/drm/xe/xe_device.c | 25 +++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_device.h | 4 ++++
2 files changed, 29 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 86d5960476af..57907904c49d 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -1290,3 +1290,28 @@ void xe_device_declare_wedged(struct xe_device *xe)
drm_dev_wedged_event(&xe->drm, xe->wedged.method, NULL);
}
}
+
+/**
+ * xe_device_asid_to_vm() - Find VM from ASID
+ * @xe: the &xe_device
+ * @asid: Address space ID
+ *
+ * Find a VM from ASID and take a reference to VM which caller must drop.
+ * Reclaim safe.
+ *
+ * Return: VM on success, ERR_PTR on failure
+ */
+struct xe_vm *xe_device_asid_to_vm(struct xe_device *xe, u32 asid)
+{
+ struct xe_vm *vm;
+
+ down_read(&xe->usm.lock);
+ vm = xa_load(&xe->usm.asid_to_vm, asid);
+ if (vm)
+ xe_vm_get(vm);
+ else
+ vm = ERR_PTR(-EINVAL);
+ up_read(&xe->usm.lock);
+
+ return vm;
+}
diff --git a/drivers/gpu/drm/xe/xe_device.h b/drivers/gpu/drm/xe/xe_device.h
index 32cc6323b7f6..538202eebc16 100644
--- a/drivers/gpu/drm/xe/xe_device.h
+++ b/drivers/gpu/drm/xe/xe_device.h
@@ -6,6 +6,8 @@
#ifndef _XE_DEVICE_H_
#define _XE_DEVICE_H_
+struct xe_vm;
+
#include <drm/drm_util.h>
#include "xe_device_types.h"
@@ -195,6 +197,8 @@ void xe_file_put(struct xe_file *xef);
int xe_is_injection_active(void);
+struct xe_vm *xe_device_asid_to_vm(struct xe_device *xe, u32 asid);
+
/*
* Occasionally it is seen that the G2H worker starts running after a delay of more than
* a second even after being queued and activated by the Linux workqueue subsystem. This
--
2.34.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 04/12] drm/xe: Add vm to exec queues association
2025-11-01 1:02 [PATCH 00/12] Context based TLB invalidations Matthew Brost
` (2 preceding siblings ...)
2025-11-01 1:02 ` [PATCH 03/12] drm/xe: Add xe_device_asid_to_vm helper Matthew Brost
@ 2025-11-01 1:02 ` Matthew Brost
2025-11-01 1:02 ` [PATCH 05/12] drm/xe: Taint TLB invalidation seqno lock with GFP_KERNEL Matthew Brost
` (11 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Matthew Brost @ 2025-11-01 1:02 UTC (permalink / raw)
To: intel-xe; +Cc: stuart.summers, lucas.demarchi, matthew.d.roper
Maintain a list of exec queues per vm which will be used by TLB
invalidation code to do context-ID based tlb invalidations.
Signed-off-by: Nirmoy Das <nirmoy.das@intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
---
drivers/gpu/drm/xe/xe_device.h | 7 ----
drivers/gpu/drm/xe/xe_device_types.h | 7 ++++
drivers/gpu/drm/xe/xe_exec_queue.c | 7 +++-
drivers/gpu/drm/xe/xe_exec_queue_types.h | 3 ++
drivers/gpu/drm/xe/xe_vm.c | 47 ++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_vm.h | 3 ++
drivers/gpu/drm/xe/xe_vm_types.h | 13 +++++++
7 files changed, 79 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_device.h b/drivers/gpu/drm/xe/xe_device.h
index 538202eebc16..764f24f4adfc 100644
--- a/drivers/gpu/drm/xe/xe_device.h
+++ b/drivers/gpu/drm/xe/xe_device.h
@@ -62,13 +62,6 @@ static inline struct xe_tile *xe_device_get_root_tile(struct xe_device *xe)
return &xe->tiles[0];
}
-/*
- * Highest GT/tile count for any platform. Used only for memory allocation
- * sizing. Any logic looping over GTs or mapping userspace GT IDs into GT
- * structures should use the per-platform xe->info.max_gt_per_tile instead.
- */
-#define XE_MAX_GT_PER_TILE 2
-
static inline struct xe_gt *xe_device_get_gt(struct xe_device *xe, u8 gt_id)
{
struct xe_tile *tile;
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index af0ce275b032..145951dd95c9 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -57,6 +57,13 @@ struct xe_vram_region;
#define XE_GT1 1
#define XE_MAX_TILES_PER_DEVICE (XE_GT1 + 1)
+/*
+ * Highest GT/tile count for any platform. Used only for memory allocation
+ * sizing. Any logic looping over GTs or mapping userspace GT IDs into GT
+ * structures should use the per-platform xe->info.max_gt_per_tile instead.
+ */
+#define XE_MAX_GT_PER_TILE 2
+
#define XE_MAX_ASID (BIT(20))
#define IS_PLATFORM_STEP(_xe, _platform, min_step, max_step) \
diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c
index 1b57d7c2cc94..49822baf5967 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue.c
+++ b/drivers/gpu/drm/xe/xe_exec_queue.c
@@ -72,8 +72,10 @@ static void __xe_exec_queue_free(struct xe_exec_queue *q)
if (xe_exec_queue_uses_pxp(q))
xe_pxp_exec_queue_remove(gt_to_xe(q->gt)->pxp, q);
- if (q->vm)
+ if (q->vm) {
+ xe_vm_remove_exec_queue(q->vm, q);
xe_vm_put(q->vm);
+ }
if (q->xef)
xe_file_put(q->xef);
@@ -143,6 +145,7 @@ static struct xe_exec_queue *__xe_exec_queue_alloc(struct xe_device *xe,
q->ring_ops = gt->ring_ops[hwe->class];
q->ops = gt->exec_queue_ops;
INIT_LIST_HEAD(&q->lr.link);
+ INIT_LIST_HEAD(&q->vm_exec_queue_link);
INIT_LIST_HEAD(&q->multi_gt_link);
INIT_LIST_HEAD(&q->hw_engine_group_link);
INIT_LIST_HEAD(&q->pxp.link);
@@ -796,6 +799,8 @@ int xe_exec_queue_create_ioctl(struct drm_device *dev, void *data,
}
q->xef = xe_file_get(xef);
+ if (eci[0].engine_class != DRM_XE_ENGINE_CLASS_VM_BIND)
+ xe_vm_add_exec_queue(vm, q);
/* user id alloc must always be last in ioctl to prevent UAF */
err = xa_alloc(&xef->exec_queue.xa, &id, q, xa_limit_32b, GFP_KERNEL);
diff --git a/drivers/gpu/drm/xe/xe_exec_queue_types.h b/drivers/gpu/drm/xe/xe_exec_queue_types.h
index c8807268ec6c..a2281fcb55b1 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue_types.h
+++ b/drivers/gpu/drm/xe/xe_exec_queue_types.h
@@ -147,6 +147,9 @@ struct xe_exec_queue {
struct xe_dep_scheduler *dep_scheduler;
} tlb_inval[XE_EXEC_QUEUE_TLB_INVAL_COUNT];
+ /** @vm_exec_queue_link: Link to track exec queue within a VM's list of exec queues. */
+ struct list_head vm_exec_queue_link;
+
/** @pxp: PXP info tracking */
struct {
/** @pxp.type: PXP session type used by this queue */
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index 84f4c8f1be33..cccdd931dd5e 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -1507,8 +1507,20 @@ struct xe_vm *xe_vm_create(struct xe_device *xe, u32 flags, struct xe_file *xef)
INIT_WORK(&vm->destroy_work, vm_destroy_work_func);
INIT_LIST_HEAD(&vm->preempt.exec_queues);
+ INIT_LIST_HEAD(&vm->exec_queues.list);
vm->preempt.min_run_period_ms = 10; /* FIXME: Wire up to uAPI */
+ init_rwsem(&vm->exec_queues.lock);
+ if (IS_ENABLED(CONFIG_PROVE_LOCKING)) {
+ fs_reclaim_acquire(GFP_KERNEL);
+ might_lock(&vm->exec_queues.lock);
+ fs_reclaim_release(GFP_KERNEL);
+
+ down_read(&vm->exec_queues.lock);
+ might_lock(&xe_root_mmio_gt(xe)->uc.guc.ct.lock);
+ up_read(&vm->exec_queues.lock);
+ }
+
for_each_tile(tile, xe, id)
xe_range_fence_tree_init(&vm->rftree[id]);
@@ -4387,3 +4399,38 @@ int xe_vm_alloc_cpu_addr_mirror_vma(struct xe_vm *vm, uint64_t start, uint64_t r
return xe_vm_alloc_vma(vm, &map_req, false);
}
+
+/**
+ * xe_vm_add_exec_queue() - Add exec queue to VM
+ * @vm: The VM.
+ * @q: The exec_queue
+ */
+void xe_vm_add_exec_queue(struct xe_vm *vm, struct xe_exec_queue *q)
+{
+ /* User VMs and queues only */
+ xe_assert(vm->xe, !(q->flags & EXEC_QUEUE_FLAG_KERNEL));
+ xe_assert(vm->xe, !(q->flags & EXEC_QUEUE_FLAG_PERMANENT));
+ xe_assert(vm->xe, !(q->flags & EXEC_QUEUE_FLAG_VM));
+ xe_assert(vm->xe, !(q->flags & EXEC_QUEUE_FLAG_MIGRATE));
+ xe_assert(vm->xe, vm->xef);
+
+ down_write(&vm->exec_queues.lock);
+ list_add(&q->vm_exec_queue_link, &vm->exec_queues.list);
+ ++vm->exec_queues.count[q->gt->info.id];
+ up_write(&vm->exec_queues.lock);
+}
+
+/**
+ * xe_vm_remove_exec_queue() - Remove exec queue from VM
+ * @vm: The VM.
+ * @q: The exec_queue
+ */
+void xe_vm_remove_exec_queue(struct xe_vm *vm, struct xe_exec_queue *q)
+{
+ down_write(&vm->exec_queues.lock);
+ if (!list_empty(&q->vm_exec_queue_link)) {
+ list_del(&q->vm_exec_queue_link);
+ --vm->exec_queues.count[q->gt->info.id];
+ }
+ up_write(&vm->exec_queues.lock);
+}
diff --git a/drivers/gpu/drm/xe/xe_vm.h b/drivers/gpu/drm/xe/xe_vm.h
index ef8a5019574e..5f3341ef99d2 100644
--- a/drivers/gpu/drm/xe/xe_vm.h
+++ b/drivers/gpu/drm/xe/xe_vm.h
@@ -284,6 +284,9 @@ static inline struct dma_resv *xe_vm_resv(struct xe_vm *vm)
void xe_vm_kill(struct xe_vm *vm, bool unlocked);
+void xe_vm_add_exec_queue(struct xe_vm *vm, struct xe_exec_queue *q);
+void xe_vm_remove_exec_queue(struct xe_vm *vm, struct xe_exec_queue *q);
+
/**
* xe_vm_assert_held(vm) - Assert that the vm's reservation object is held.
* @vm: The vm
diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
index 830ed7b05c27..180b48d62480 100644
--- a/drivers/gpu/drm/xe/xe_vm_types.h
+++ b/drivers/gpu/drm/xe/xe_vm_types.h
@@ -290,6 +290,19 @@ struct xe_vm {
struct list_head pm_activate_link;
} preempt;
+ /** @exec_queues: Manages list of exec queues attached to this VM, protected by lock. */
+ struct {
+ /** @exec_queues.list: list of exec queues attached to this VM */
+ struct list_head list;
+ /**
+ * @exec_queues.count: count of exec queues attached to this VM,
+ * per GT
+ */
+ int count[XE_MAX_TILES_PER_DEVICE * XE_MAX_GT_PER_TILE];
+ /** @exec_queues.lock: lock to protect exec_queues list */
+ struct rw_semaphore lock;
+ } exec_queues;
+
/** @um: unified memory state */
struct {
/** @asid: address space ID, unique to each VM */
--
2.34.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 05/12] drm/xe: Taint TLB invalidation seqno lock with GFP_KERNEL
2025-11-01 1:02 [PATCH 00/12] Context based TLB invalidations Matthew Brost
` (3 preceding siblings ...)
2025-11-01 1:02 ` [PATCH 04/12] drm/xe: Add vm to exec queues association Matthew Brost
@ 2025-11-01 1:02 ` Matthew Brost
2025-11-01 1:02 ` [PATCH 06/12] drm/xe: Do not forward invalid TLB invalidation seqnos to upper layers Matthew Brost
` (10 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Matthew Brost @ 2025-11-01 1:02 UTC (permalink / raw)
To: intel-xe; +Cc: stuart.summers, lucas.demarchi, matthew.d.roper
Taint TLB invalidation seqno lock with GFP_KERNEL as TLB invalidations
can be in the path of reclaim (e.g., MMU notifiers).
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
---
drivers/gpu/drm/xe/xe_tlb_inval.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_tlb_inval.c b/drivers/gpu/drm/xe/xe_tlb_inval.c
index 918a59e686ea..7ee081b94f90 100644
--- a/drivers/gpu/drm/xe/xe_tlb_inval.c
+++ b/drivers/gpu/drm/xe/xe_tlb_inval.c
@@ -114,6 +114,16 @@ static void tlb_inval_fini(struct drm_device *drm, void *arg)
xe_tlb_inval_reset(tlb_inval);
}
+static void primelockdep(struct xe_tlb_inval *tlb_inval)
+{
+ if (!IS_ENABLED(CONFIG_LOCKDEP))
+ return;
+
+ fs_reclaim_acquire(GFP_KERNEL);
+ might_lock(&tlb_inval->seqno_lock);
+ fs_reclaim_release(GFP_KERNEL);
+}
+
/**
* xe_gt_tlb_inval_init - Initialize TLB invalidation state
* @gt: GT structure
@@ -140,6 +150,8 @@ int xe_gt_tlb_inval_init_early(struct xe_gt *gt)
if (err)
return err;
+ primelockdep(tlb_inval);
+
tlb_inval->job_wq = drmm_alloc_ordered_workqueue(&xe->drm,
"gt-tbl-inval-job-wq",
WQ_MEM_RECLAIM);
--
2.34.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 06/12] drm/xe: Do not forward invalid TLB invalidation seqnos to upper layers
2025-11-01 1:02 [PATCH 00/12] Context based TLB invalidations Matthew Brost
` (4 preceding siblings ...)
2025-11-01 1:02 ` [PATCH 05/12] drm/xe: Taint TLB invalidation seqno lock with GFP_KERNEL Matthew Brost
@ 2025-11-01 1:02 ` Matthew Brost
2025-11-01 1:02 ` [PATCH 07/12] drm/xe: Rename send_tlb_inval_ppgtt to send_tlb_inval_asid_ppgtt Matthew Brost
` (9 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Matthew Brost @ 2025-11-01 1:02 UTC (permalink / raw)
To: intel-xe; +Cc: stuart.summers, lucas.demarchi, matthew.d.roper
Context-based TLB invalidations send multiple H2G messages per seqno,
with only the final H2G containing a valid seqno — the others carry an
invalid seqno. The G2H handler drops these invalid seqnos to avoid
prematurely signaling a TLB invalidation fence.
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
---
drivers/gpu/drm/xe/xe_guc_tlb_inval.c | 3 ++-
drivers/gpu/drm/xe/xe_tlb_inval_types.h | 1 +
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/xe/xe_guc_tlb_inval.c b/drivers/gpu/drm/xe/xe_guc_tlb_inval.c
index 61bfa0d485f6..995789f0d31f 100644
--- a/drivers/gpu/drm/xe/xe_guc_tlb_inval.c
+++ b/drivers/gpu/drm/xe/xe_guc_tlb_inval.c
@@ -235,7 +235,8 @@ int xe_guc_tlb_inval_done_handler(struct xe_guc *guc, u32 *msg, u32 len)
if (unlikely(len != 1))
return -EPROTO;
- xe_tlb_inval_done_handler(>->tlb_inval, msg[0]);
+ if (msg[0] != TLB_INVALIDATION_SEQNO_INVALID)
+ xe_tlb_inval_done_handler(>->tlb_inval, msg[0]);
return 0;
}
diff --git a/drivers/gpu/drm/xe/xe_tlb_inval_types.h b/drivers/gpu/drm/xe/xe_tlb_inval_types.h
index 8f8b060e9005..7a6967ce3b76 100644
--- a/drivers/gpu/drm/xe/xe_tlb_inval_types.h
+++ b/drivers/gpu/drm/xe/xe_tlb_inval_types.h
@@ -80,6 +80,7 @@ struct xe_tlb_inval {
const struct xe_tlb_inval_ops *ops;
/** @tlb_inval.seqno: TLB invalidation seqno, protected by CT lock */
#define TLB_INVALIDATION_SEQNO_MAX 0x100000
+#define TLB_INVALIDATION_SEQNO_INVALID TLB_INVALIDATION_SEQNO_MAX
int seqno;
/** @tlb_invalidation.seqno_lock: protects @tlb_invalidation.seqno */
struct mutex seqno_lock;
--
2.34.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 07/12] drm/xe: Rename send_tlb_inval_ppgtt to send_tlb_inval_asid_ppgtt
2025-11-01 1:02 [PATCH 00/12] Context based TLB invalidations Matthew Brost
` (5 preceding siblings ...)
2025-11-01 1:02 ` [PATCH 06/12] drm/xe: Do not forward invalid TLB invalidation seqnos to upper layers Matthew Brost
@ 2025-11-01 1:02 ` Matthew Brost
2025-11-01 1:02 ` [PATCH 08/12] drm/xe: Add send_tlb_inval_ppgtt helper Matthew Brost
` (8 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Matthew Brost @ 2025-11-01 1:02 UTC (permalink / raw)
To: intel-xe; +Cc: stuart.summers, lucas.demarchi, matthew.d.roper
Context-based TLB invalidations have their own set of GuC TLB
invalidation operations. Rename the current PPGTT invalidation function,
which operates on ASIDs, to a more descriptive name that reflects its
purpose.
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
---
drivers/gpu/drm/xe/xe_guc_tlb_inval.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_guc_tlb_inval.c b/drivers/gpu/drm/xe/xe_guc_tlb_inval.c
index 995789f0d31f..42e9fbd062ba 100644
--- a/drivers/gpu/drm/xe/xe_guc_tlb_inval.c
+++ b/drivers/gpu/drm/xe/xe_guc_tlb_inval.c
@@ -131,8 +131,8 @@ static u64 normalize_invalidation_range(struct xe_gt *gt, u64 *start, u64 *end)
*/
#define MAX_RANGE_TLB_INVALIDATION_LENGTH (rounddown_pow_of_two(ULONG_MAX))
-static int send_tlb_inval_ppgtt(struct xe_tlb_inval *tlb_inval, u32 seqno,
- u64 start, u64 end, u32 asid)
+static int send_tlb_inval_asid_ppgtt(struct xe_tlb_inval *tlb_inval, u32 seqno,
+ u64 start, u64 end, u32 asid)
{
#define MAX_TLB_INVALIDATION_LEN 7
struct xe_guc *guc = tlb_inval->private;
@@ -195,7 +195,7 @@ static long tlb_inval_timeout_delay(struct xe_tlb_inval *tlb_inval)
static const struct xe_tlb_inval_ops guc_tlb_inval_ops = {
.all = send_tlb_inval_all,
.ggtt = send_tlb_inval_ggtt,
- .ppgtt = send_tlb_inval_ppgtt,
+ .ppgtt = send_tlb_inval_asid_ppgtt,
.initialized = tlb_inval_initialized,
.flush = tlb_inval_flush,
.timeout_delay = tlb_inval_timeout_delay,
--
2.34.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 08/12] drm/xe: Add send_tlb_inval_ppgtt helper
2025-11-01 1:02 [PATCH 00/12] Context based TLB invalidations Matthew Brost
` (6 preceding siblings ...)
2025-11-01 1:02 ` [PATCH 07/12] drm/xe: Rename send_tlb_inval_ppgtt to send_tlb_inval_asid_ppgtt Matthew Brost
@ 2025-11-01 1:02 ` Matthew Brost
2025-11-01 1:02 ` [PATCH 09/12] drm/xe: Add xe_tlb_inval_idle helper Matthew Brost
` (7 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Matthew Brost @ 2025-11-01 1:02 UTC (permalink / raw)
To: intel-xe; +Cc: stuart.summers, lucas.demarchi, matthew.d.roper
Extract the common code that issues a TLB invalidation H2G for PPGTTs
into a helper function. This helper can be reused for both ASID-based
and context-based TLB invalidations.
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
---
drivers/gpu/drm/xe/xe_guc_tlb_inval.c | 27 +++++++++++++++++++--------
1 file changed, 19 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_guc_tlb_inval.c b/drivers/gpu/drm/xe/xe_guc_tlb_inval.c
index 42e9fbd062ba..6978ee8edf2e 100644
--- a/drivers/gpu/drm/xe/xe_guc_tlb_inval.c
+++ b/drivers/gpu/drm/xe/xe_guc_tlb_inval.c
@@ -131,19 +131,15 @@ static u64 normalize_invalidation_range(struct xe_gt *gt, u64 *start, u64 *end)
*/
#define MAX_RANGE_TLB_INVALIDATION_LENGTH (rounddown_pow_of_two(ULONG_MAX))
-static int send_tlb_inval_asid_ppgtt(struct xe_tlb_inval *tlb_inval, u32 seqno,
- u64 start, u64 end, u32 asid)
+static int send_tlb_inval_ppgtt(struct xe_guc *guc, u32 seqno, u64 start,
+ u64 end, u32 id, u32 type)
{
#define MAX_TLB_INVALIDATION_LEN 7
- struct xe_guc *guc = tlb_inval->private;
struct xe_gt *gt = guc_to_gt(guc);
u32 action[MAX_TLB_INVALIDATION_LEN];
u64 length = end - start;
int len = 0;
- if (guc_to_xe(guc)->info.force_execlist)
- return -ECANCELED;
-
action[len++] = XE_GUC_ACTION_TLB_INVALIDATION;
action[len++] = seqno;
if (!gt_to_xe(gt)->info.has_range_tlb_inval ||
@@ -153,18 +149,33 @@ static int send_tlb_inval_asid_ppgtt(struct xe_tlb_inval *tlb_inval, u32 seqno,
u64 normalize_len = normalize_invalidation_range(gt, &start,
&end);
- action[len++] = MAKE_INVAL_OP(XE_GUC_TLB_INVAL_PAGE_SELECTIVE);
- action[len++] = asid;
+ action[len++] = MAKE_INVAL_OP(type);
+ action[len++] = id;
action[len++] = lower_32_bits(start);
action[len++] = upper_32_bits(start);
action[len++] = ilog2(normalize_len) - ilog2(SZ_4K);
}
xe_gt_assert(gt, len <= MAX_TLB_INVALIDATION_LEN);
+#undef MAX_TLB_INVALIDATION_LEN
return send_tlb_inval(guc, action, len);
}
+static int send_tlb_inval_asid_ppgtt(struct xe_tlb_inval *tlb_inval, u32 seqno,
+ u64 start, u64 end, u32 asid)
+{
+ struct xe_guc *guc = tlb_inval->private;
+
+ lockdep_assert_held(&tlb_inval->seqno_lock);
+
+ if (guc_to_xe(guc)->info.force_execlist)
+ return -ECANCELED;
+
+ return send_tlb_inval_ppgtt(guc, seqno, start, end, asid,
+ XE_GUC_TLB_INVAL_PAGE_SELECTIVE);
+}
+
static bool tlb_inval_initialized(struct xe_tlb_inval *tlb_inval)
{
struct xe_guc *guc = tlb_inval->private;
--
2.34.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 09/12] drm/xe: Add xe_tlb_inval_idle helper
2025-11-01 1:02 [PATCH 00/12] Context based TLB invalidations Matthew Brost
` (7 preceding siblings ...)
2025-11-01 1:02 ` [PATCH 08/12] drm/xe: Add send_tlb_inval_ppgtt helper Matthew Brost
@ 2025-11-01 1:02 ` Matthew Brost
2025-11-01 1:02 ` [PATCH 10/12] drm/xe: Add exec queue active vfunc Matthew Brost
` (6 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Matthew Brost @ 2025-11-01 1:02 UTC (permalink / raw)
To: intel-xe; +Cc: stuart.summers, lucas.demarchi, matthew.d.roper
Introduce the xe_tlb_inval_idle helper to detect whether any TLB
invalidations are currently in flight. This is used in context-based TLB
invalidations to determine whether dummy TLB invalidations need to be
sent to maintain proper TLB invalidation fence ordering..
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
---
drivers/gpu/drm/xe/xe_tlb_inval.c | 26 ++++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_tlb_inval.h | 2 ++
2 files changed, 28 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_tlb_inval.c b/drivers/gpu/drm/xe/xe_tlb_inval.c
index 7ee081b94f90..32a0a882343b 100644
--- a/drivers/gpu/drm/xe/xe_tlb_inval.c
+++ b/drivers/gpu/drm/xe/xe_tlb_inval.c
@@ -141,6 +141,7 @@ int xe_gt_tlb_inval_init_early(struct xe_gt *gt)
tlb_inval->xe = xe;
tlb_inval->seqno = 1;
+ tlb_inval->seqno_recv = TLB_INVALIDATION_SEQNO_MAX - 1;
INIT_LIST_HEAD(&tlb_inval->pending_fences);
spin_lock_init(&tlb_inval->pending_lock);
spin_lock_init(&tlb_inval->lock);
@@ -443,3 +444,28 @@ void xe_tlb_inval_fence_init(struct xe_tlb_inval *tlb_inval,
dma_fence_get(&fence->base);
fence->tlb_inval = tlb_inval;
}
+
+/**
+ * xe_tlb_inval_idle() - Initialize TLB invalidation is idle
+ * @tlb_inval: TLB invalidation client
+ *
+ * Check the TLB invalidation seqno to determine if it is idle (i.e., no TLB
+ * invalidations are in flight). Expected to be called in the backend after the
+ * seqno has been bumped, and takes this into account.
+ *
+ * Return: True if TLB invalidation client is idle, False otherwise
+ */
+bool xe_tlb_inval_idle(struct xe_tlb_inval *tlb_inval)
+{
+ int next_recv;
+
+ lockdep_assert_held(&tlb_inval->seqno_lock);
+
+ guard(spinlock_irq)(&tlb_inval->pending_lock);
+
+ next_recv = (tlb_inval->seqno_recv + 2) % TLB_INVALIDATION_SEQNO_MAX;
+ if (!next_recv)
+ next_recv = 1;
+
+ return next_recv == tlb_inval->seqno;
+}
diff --git a/drivers/gpu/drm/xe/xe_tlb_inval.h b/drivers/gpu/drm/xe/xe_tlb_inval.h
index 05614915463a..44a6d9177489 100644
--- a/drivers/gpu/drm/xe/xe_tlb_inval.h
+++ b/drivers/gpu/drm/xe/xe_tlb_inval.h
@@ -43,4 +43,6 @@ xe_tlb_inval_fence_wait(struct xe_tlb_inval_fence *fence)
void xe_tlb_inval_done_handler(struct xe_tlb_inval *tlb_inval, int seqno);
+bool xe_tlb_inval_idle(struct xe_tlb_inval *tlb_inval);
+
#endif /* _XE_TLB_INVAL_ */
--
2.34.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 10/12] drm/xe: Add exec queue active vfunc
2025-11-01 1:02 [PATCH 00/12] Context based TLB invalidations Matthew Brost
` (8 preceding siblings ...)
2025-11-01 1:02 ` [PATCH 09/12] drm/xe: Add xe_tlb_inval_idle helper Matthew Brost
@ 2025-11-01 1:02 ` Matthew Brost
2025-11-01 1:02 ` [PATCH 11/12] drm/xe: Add context-based invalidation to GuC TLB invalidation backend Matthew Brost
` (5 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Matthew Brost @ 2025-11-01 1:02 UTC (permalink / raw)
To: intel-xe; +Cc: stuart.summers, lucas.demarchi, matthew.d.roper
If an exec queue is inactive (e.g., not registered or scheduling is
disabled), TLB invalidations are not issued for that queue. Add a
virtual function to determine the active state, which TLB invalidation
logic can hook into.
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
---
drivers/gpu/drm/xe/xe_exec_queue_types.h | 2 ++
drivers/gpu/drm/xe/xe_execlist.c | 7 +++++++
drivers/gpu/drm/xe/xe_guc_submit.c | 6 ++++++
3 files changed, 15 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_exec_queue_types.h b/drivers/gpu/drm/xe/xe_exec_queue_types.h
index a2281fcb55b1..4ffd55e39e6b 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue_types.h
+++ b/drivers/gpu/drm/xe/xe_exec_queue_types.h
@@ -228,6 +228,8 @@ struct xe_exec_queue_ops {
void (*resume)(struct xe_exec_queue *q);
/** @reset_status: check exec queue reset status */
bool (*reset_status)(struct xe_exec_queue *q);
+ /** @active: check exec queue is active */
+ bool (*active)(struct xe_exec_queue *q);
};
#endif
diff --git a/drivers/gpu/drm/xe/xe_execlist.c b/drivers/gpu/drm/xe/xe_execlist.c
index 769d05517f93..07574ff6d53f 100644
--- a/drivers/gpu/drm/xe/xe_execlist.c
+++ b/drivers/gpu/drm/xe/xe_execlist.c
@@ -469,6 +469,12 @@ static bool execlist_exec_queue_reset_status(struct xe_exec_queue *q)
return false;
}
+static bool execlist_exec_queue_active(struct xe_exec_queue *q)
+{
+ /* NIY */
+ return false;
+}
+
static const struct xe_exec_queue_ops execlist_exec_queue_ops = {
.init = execlist_exec_queue_init,
.kill = execlist_exec_queue_kill,
@@ -481,6 +487,7 @@ static const struct xe_exec_queue_ops execlist_exec_queue_ops = {
.suspend_wait = execlist_exec_queue_suspend_wait,
.resume = execlist_exec_queue_resume,
.reset_status = execlist_exec_queue_reset_status,
+ .active = execlist_exec_queue_active,
};
int xe_execlist_init(struct xe_gt *gt)
diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
index d4ffdb71ef3d..e0126ab12ac2 100644
--- a/drivers/gpu/drm/xe/xe_guc_submit.c
+++ b/drivers/gpu/drm/xe/xe_guc_submit.c
@@ -1919,6 +1919,11 @@ static bool guc_exec_queue_reset_status(struct xe_exec_queue *q)
return exec_queue_reset(q) || exec_queue_killed_or_banned_or_wedged(q);
}
+static bool guc_exec_queue_active(struct xe_exec_queue *q)
+{
+ return exec_queue_enabled(q) && !exec_queue_pending_disable(q);
+}
+
/*
* All of these functions are an abstraction layer which other parts of Xe can
* use to trap into the GuC backend. All of these functions, aside from init,
@@ -1937,6 +1942,7 @@ static const struct xe_exec_queue_ops guc_exec_queue_ops = {
.suspend_wait = guc_exec_queue_suspend_wait,
.resume = guc_exec_queue_resume,
.reset_status = guc_exec_queue_reset_status,
+ .active = guc_exec_queue_active,
};
static void guc_exec_queue_stop(struct xe_guc *guc, struct xe_exec_queue *q)
--
2.34.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 11/12] drm/xe: Add context-based invalidation to GuC TLB invalidation backend
2025-11-01 1:02 [PATCH 00/12] Context based TLB invalidations Matthew Brost
` (9 preceding siblings ...)
2025-11-01 1:02 ` [PATCH 10/12] drm/xe: Add exec queue active vfunc Matthew Brost
@ 2025-11-01 1:02 ` Matthew Brost
2025-11-01 1:02 ` [PATCH 12/12] drm/xe: Enable context TLB invalidations for CI Matthew Brost
` (4 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Matthew Brost @ 2025-11-01 1:02 UTC (permalink / raw)
To: intel-xe; +Cc: stuart.summers, lucas.demarchi, matthew.d.roper
Introduce context-based invalidation support to the GuC TLB invalidation
backend. This is implemented by iterating over each exec queue per GT
within a VM, skipping inactive queues, and issuing a context-based (GuC
ID) H2G TLB invalidation. All H2G messages, except the final one, are
sent with an invalid seqno, which the G2H handler drops to ensure the
TLB invalidation fence is only signaled once all H2G messages are
completed.
A watermark mechanism is also added to switch between context-based TLB
invalidations and full device-wide invalidations, as the return on
investment for context-based invalidation diminishes when many exec
queues are mapped.
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
---
drivers/gpu/drm/xe/xe_device_types.h | 2 +
drivers/gpu/drm/xe/xe_guc_tlb_inval.c | 122 +++++++++++++++++++++++++-
drivers/gpu/drm/xe/xe_pci.c | 1 +
drivers/gpu/drm/xe/xe_pci_types.h | 1 +
4 files changed, 124 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index 145951dd95c9..ca285f4bce11 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -316,6 +316,8 @@ struct xe_device {
u8 has_mem_copy_instr:1;
/** @info.has_pxp: Device has PXP support */
u8 has_pxp:1;
+ /** @info.has_ctx_tlb_inval: Has context based TLB invalidations */
+ u8 has_ctx_tlb_inval:1;
/** @info.has_range_tlb_inval: Has range based TLB invalidations */
u8 has_range_tlb_inval:1;
/** @info.has_sriov: Supports SR-IOV */
diff --git a/drivers/gpu/drm/xe/xe_guc_tlb_inval.c b/drivers/gpu/drm/xe/xe_guc_tlb_inval.c
index 6978ee8edf2e..00251dcd1e7c 100644
--- a/drivers/gpu/drm/xe/xe_guc_tlb_inval.c
+++ b/drivers/gpu/drm/xe/xe_guc_tlb_inval.c
@@ -6,14 +6,17 @@
#include "abi/guc_actions_abi.h"
#include "xe_device.h"
+#include "xe_exec_queue_types.h"
#include "xe_gt_stats.h"
#include "xe_gt_types.h"
#include "xe_guc.h"
#include "xe_guc_ct.h"
+#include "xe_guc_exec_queue_types.h"
#include "xe_guc_tlb_inval.h"
#include "xe_force_wake.h"
#include "xe_mmio.h"
#include "xe_tlb_inval.h"
+#include "xe_vm.h"
#include "regs/xe_guc_regs.h"
@@ -136,10 +139,16 @@ static int send_tlb_inval_ppgtt(struct xe_guc *guc, u32 seqno, u64 start,
{
#define MAX_TLB_INVALIDATION_LEN 7
struct xe_gt *gt = guc_to_gt(guc);
+ struct xe_device *xe = guc_to_xe(guc);
u32 action[MAX_TLB_INVALIDATION_LEN];
u64 length = end - start;
int len = 0;
+ xe_gt_assert(gt, (type == XE_GUC_TLB_INVAL_PAGE_SELECTIVE &&
+ !xe->info.has_ctx_tlb_inval) ||
+ (type == XE_GUC_TLB_INVAL_PAGE_SELECTIVE_CTX &&
+ xe->info.has_ctx_tlb_inval));
+
action[len++] = XE_GUC_ACTION_TLB_INVALIDATION;
action[len++] = seqno;
if (!gt_to_xe(gt)->info.has_range_tlb_inval ||
@@ -176,6 +185,100 @@ static int send_tlb_inval_asid_ppgtt(struct xe_tlb_inval *tlb_inval, u32 seqno,
XE_GUC_TLB_INVAL_PAGE_SELECTIVE);
}
+static bool queue_mapped_in_guc(struct xe_guc *guc, struct xe_exec_queue *q)
+{
+ return q->gt == guc_to_gt(guc);
+}
+
+static int send_tlb_inval_ctx_ppgtt(struct xe_tlb_inval *tlb_inval, u32 seqno,
+ u64 start, u64 end, u32 asid)
+{
+ struct xe_guc *guc = tlb_inval->private;
+ struct xe_device *xe = guc_to_xe(guc);
+ struct xe_exec_queue *q, *last_q = NULL;
+ struct xe_vm *vm;
+ int err = 0;
+
+ lockdep_assert_held(&tlb_inval->seqno_lock);
+
+ if (xe->info.force_execlist)
+ return -ECANCELED;
+
+ vm = xe_device_asid_to_vm(xe, asid);
+ if (IS_ERR(vm))
+ return PTR_ERR(vm);;
+
+ down_read(&vm->exec_queues.lock);
+
+ /*
+ * XXX: Randomly picking a threshold for now. This will need to be
+ * tuned based on expected UMD queue counts and performance profiling.
+ */
+#define EXEC_QUEUE_COUNT_FULL_THRESHOLD 8
+ if (vm->exec_queues.count[guc_to_gt(guc)->info.id] >=
+ EXEC_QUEUE_COUNT_FULL_THRESHOLD) {
+ u32 action[] = {
+ XE_GUC_ACTION_TLB_INVALIDATION,
+ seqno,
+ MAKE_INVAL_OP(XE_GUC_TLB_INVAL_FULL),
+ };
+
+ err = send_tlb_inval(guc, action, ARRAY_SIZE(action));
+ goto err_unlock;
+ }
+#undef EXEC_QUEUE_COUNT_FULL_THRESHOLD
+
+ list_for_each_entry_reverse(q, &vm->exec_queues.list,
+ vm_exec_queue_link)
+ if (queue_mapped_in_guc(guc, q) && q->ops->active(q)) {
+ last_q = q;
+ break;
+ }
+
+ if (!last_q) {
+ /*
+ * We can't break fence ordering for TLB invalidation jobs, if
+ * TLB invalidations are inflight issue a dummy invalidation to
+ * maintain ordering. Nor can we move safely the seqno_recv when
+ * returning -ECANCELED if TLB invalidations are in flight. Use
+ * GGTT invalidation as dummy invalidation given ASID
+ * invalidations are unsupported here.
+ */
+ if (xe_tlb_inval_idle(tlb_inval))
+ err = -ECANCELED;
+ else
+ err = send_tlb_inval_ggtt(tlb_inval, seqno);
+ goto err_unlock;
+ }
+
+ list_for_each_entry(q, &vm->exec_queues.list, vm_exec_queue_link) {
+ int __seqno = last_q == q ? seqno :
+ TLB_INVALIDATION_SEQNO_INVALID;
+ u32 type = XE_GUC_TLB_INVAL_PAGE_SELECTIVE_CTX;
+
+ /*
+ * XXX: Techincally we can race here and queue can become
+ * inactive, not ideal. The TLB invalidation will timeout in
+ * this case unless we get GuC support to convert to NOP...
+ */
+ if (!queue_mapped_in_guc(guc, q) || !q->ops->active(q))
+ continue;
+
+ xe_assert(xe, q->vm == vm);
+
+ err = send_tlb_inval_ppgtt(guc, __seqno, start, end,
+ q->guc->id, type);
+ if (err)
+ goto err_unlock;
+ }
+
+err_unlock:
+ up_read(&vm->exec_queues.lock);
+ xe_vm_put(vm);
+
+ return err;
+}
+
static bool tlb_inval_initialized(struct xe_tlb_inval *tlb_inval)
{
struct xe_guc *guc = tlb_inval->private;
@@ -203,7 +306,7 @@ static long tlb_inval_timeout_delay(struct xe_tlb_inval *tlb_inval)
return hw_tlb_timeout + 2 * delay;
}
-static const struct xe_tlb_inval_ops guc_tlb_inval_ops = {
+static const struct xe_tlb_inval_ops guc_tlb_inval_asid_ops = {
.all = send_tlb_inval_all,
.ggtt = send_tlb_inval_ggtt,
.ppgtt = send_tlb_inval_asid_ppgtt,
@@ -212,6 +315,15 @@ static const struct xe_tlb_inval_ops guc_tlb_inval_ops = {
.timeout_delay = tlb_inval_timeout_delay,
};
+static const struct xe_tlb_inval_ops guc_tlb_inval_ctx_ops = {
+ .ggtt = send_tlb_inval_ggtt,
+ .all = send_tlb_inval_all,
+ .ppgtt = send_tlb_inval_ctx_ppgtt,
+ .initialized = tlb_inval_initialized,
+ .flush = tlb_inval_flush,
+ .timeout_delay = tlb_inval_timeout_delay,
+};
+
/**
* xe_guc_tlb_inval_init_early() - Init GuC TLB invalidation early
* @guc: GuC object
@@ -223,8 +335,14 @@ static const struct xe_tlb_inval_ops guc_tlb_inval_ops = {
void xe_guc_tlb_inval_init_early(struct xe_guc *guc,
struct xe_tlb_inval *tlb_inval)
{
+ struct xe_device *xe = guc_to_xe(guc);
+
tlb_inval->private = guc;
- tlb_inval->ops = &guc_tlb_inval_ops;
+
+ if (xe->info.has_ctx_tlb_inval)
+ tlb_inval->ops = &guc_tlb_inval_ctx_ops;
+ else
+ tlb_inval->ops = &guc_tlb_inval_asid_ops;
}
/**
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index 1959de3f7a27..9a11066c7d4a 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -863,6 +863,7 @@ static int xe_info_init(struct xe_device *xe,
xe->info.has_device_atomics_on_smem = 1;
xe->info.has_range_tlb_inval = graphics_desc->has_range_tlb_inval;
+ xe->info.has_ctx_tlb_inval = graphics_desc->has_ctx_tlb_inval;
xe->info.has_usm = graphics_desc->has_usm;
xe->info.has_64bit_timestamp = graphics_desc->has_64bit_timestamp;
diff --git a/drivers/gpu/drm/xe/xe_pci_types.h b/drivers/gpu/drm/xe/xe_pci_types.h
index 9892c063a9c5..c08857c06c7e 100644
--- a/drivers/gpu/drm/xe/xe_pci_types.h
+++ b/drivers/gpu/drm/xe/xe_pci_types.h
@@ -63,6 +63,7 @@ struct xe_graphics_desc {
u8 has_atomic_enable_pte_bit:1;
u8 has_indirect_ring_state:1;
u8 has_range_tlb_inval:1;
+ u8 has_ctx_tlb_inval:1;
u8 has_usm:1;
u8 has_64bit_timestamp:1;
};
--
2.34.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 12/12] drm/xe: Enable context TLB invalidations for CI
2025-11-01 1:02 [PATCH 00/12] Context based TLB invalidations Matthew Brost
` (10 preceding siblings ...)
2025-11-01 1:02 ` [PATCH 11/12] drm/xe: Add context-based invalidation to GuC TLB invalidation backend Matthew Brost
@ 2025-11-01 1:02 ` Matthew Brost
2025-11-01 3:43 ` ✗ CI.checkpatch: warning for Context based TLB invalidations Patchwork
` (3 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Matthew Brost @ 2025-11-01 1:02 UTC (permalink / raw)
To: intel-xe; +Cc: stuart.summers, lucas.demarchi, matthew.d.roper
Do not review, CI only.
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
---
drivers/gpu/drm/xe/xe_pci.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index 9a11066c7d4a..7d643233a6fa 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -95,6 +95,7 @@ static const struct xe_graphics_desc graphics_xelpg = {
.has_asid = 1, \
.has_atomic_enable_pte_bit = 1, \
.has_range_tlb_inval = 1, \
+ .has_ctx_tlb_inval = 1, \
.has_usm = 1, \
.has_64bit_timestamp = 1, \
.hw_engine_mask = \
--
2.34.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* ✗ CI.checkpatch: warning for Context based TLB invalidations
2025-11-01 1:02 [PATCH 00/12] Context based TLB invalidations Matthew Brost
` (11 preceding siblings ...)
2025-11-01 1:02 ` [PATCH 12/12] drm/xe: Enable context TLB invalidations for CI Matthew Brost
@ 2025-11-01 3:43 ` Patchwork
2025-11-01 3:44 ` ✓ CI.KUnit: success " Patchwork
` (2 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2025-11-01 3:43 UTC (permalink / raw)
To: Matthew Brost; +Cc: intel-xe
== Series Details ==
Series: Context based TLB invalidations
URL : https://patchwork.freedesktop.org/series/156874/
State : warning
== Summary ==
+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
f867e605613af1770f90c4b0afd4a8f06424d1f0
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 32b8fe31dbd0fb412c3e2b71cb16dc4089623b82
Author: Matthew Brost <matthew.brost@intel.com>
Date: Fri Oct 31 18:02:25 2025 -0700
drm/xe: Enable context TLB invalidations for CI
Do not review, CI only.
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
+ /mt/dim checkpatch 089e83683d58db86cc4c69d34fba3a96904e40e1 drm-intel
63fdaa83fd43 drm/xe: Add normalize_invalidation_range
-:14: WARNING:BAD_SIGN_OFF: Non-standard signature: 'Sigend-off-by:' - perhaps 'Signed-off-by:'?
#14:
Sigend-off-by: Nirmoy Das <nirmoy.das@intel.com>
total: 0 errors, 1 warnings, 0 checks, 88 lines checked
ad2b824c2f8f drm/xe: Make usm.asid_to_vm allocation use GFP_NOWAIT
86f1aa804e5f drm/xe: Add xe_device_asid_to_vm helper
acf19c56f324 drm/xe: Add vm to exec queues association
1b4213d47ef9 drm/xe: Taint TLB invalidation seqno lock with GFP_KERNEL
56457d21515a drm/xe: Do not forward invalid TLB invalidation seqnos to upper layers
5080760fffb5 drm/xe: Rename send_tlb_inval_ppgtt to send_tlb_inval_asid_ppgtt
9f87f012af5c drm/xe: Add send_tlb_inval_ppgtt helper
d10f10ae2c31 drm/xe: Add xe_tlb_inval_idle helper
93092f25f400 drm/xe: Add exec queue active vfunc
8278f5ee18d5 drm/xe: Add context-based invalidation to GuC TLB invalidation backend
-:67: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#67: FILE: drivers/gpu/drm/xe/xe_guc_tlb_inval.c:148:
+ xe_gt_assert(gt, (type == XE_GUC_TLB_INVAL_PAGE_SELECTIVE &&
+ !xe->info.has_ctx_tlb_inval) ||
-:99: WARNING:ONE_SEMICOLON: Statements terminations use 1 semicolon
#99: FILE: drivers/gpu/drm/xe/xe_guc_tlb_inval.c:209:
+ return PTR_ERR(vm);;
total: 0 errors, 1 warnings, 1 checks, 193 lines checked
32b8fe31dbd0 drm/xe: Enable context TLB invalidations for CI
^ permalink raw reply [flat|nested] 17+ messages in thread
* ✓ CI.KUnit: success for Context based TLB invalidations
2025-11-01 1:02 [PATCH 00/12] Context based TLB invalidations Matthew Brost
` (12 preceding siblings ...)
2025-11-01 3:43 ` ✗ CI.checkpatch: warning for Context based TLB invalidations Patchwork
@ 2025-11-01 3:44 ` Patchwork
2025-11-01 4:48 ` ✓ Xe.CI.BAT: " Patchwork
2025-11-01 23:44 ` ✓ Xe.CI.Full: " Patchwork
15 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2025-11-01 3:44 UTC (permalink / raw)
To: Matthew Brost; +Cc: intel-xe
== Series Details ==
Series: Context based TLB invalidations
URL : https://patchwork.freedesktop.org/series/156874/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[03:43:10] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[03:43:14] 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
[03:43:45] Starting KUnit Kernel (1/1)...
[03:43:45] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[03:43:45] ================== guc_buf (11 subtests) ===================
[03:43:45] [PASSED] test_smallest
[03:43:45] [PASSED] test_largest
[03:43:45] [PASSED] test_granular
[03:43:45] [PASSED] test_unique
[03:43:45] [PASSED] test_overlap
[03:43:45] [PASSED] test_reusable
[03:43:45] [PASSED] test_too_big
[03:43:45] [PASSED] test_flush
[03:43:45] [PASSED] test_lookup
[03:43:45] [PASSED] test_data
[03:43:45] [PASSED] test_class
[03:43:45] ===================== [PASSED] guc_buf =====================
[03:43:45] =================== guc_dbm (7 subtests) ===================
[03:43:45] [PASSED] test_empty
[03:43:45] [PASSED] test_default
[03:43:45] ======================== test_size ========================
[03:43:45] [PASSED] 4
[03:43:45] [PASSED] 8
[03:43:45] [PASSED] 32
[03:43:45] [PASSED] 256
[03:43:45] ==================== [PASSED] test_size ====================
[03:43:45] ======================= test_reuse ========================
[03:43:45] [PASSED] 4
[03:43:45] [PASSED] 8
[03:43:45] [PASSED] 32
[03:43:45] [PASSED] 256
[03:43:45] =================== [PASSED] test_reuse ====================
[03:43:45] =================== test_range_overlap ====================
[03:43:45] [PASSED] 4
[03:43:45] [PASSED] 8
[03:43:45] [PASSED] 32
[03:43:45] [PASSED] 256
[03:43:45] =============== [PASSED] test_range_overlap ================
[03:43:45] =================== test_range_compact ====================
[03:43:45] [PASSED] 4
[03:43:45] [PASSED] 8
[03:43:45] [PASSED] 32
[03:43:45] [PASSED] 256
[03:43:45] =============== [PASSED] test_range_compact ================
[03:43:45] ==================== test_range_spare =====================
[03:43:45] [PASSED] 4
[03:43:45] [PASSED] 8
[03:43:45] [PASSED] 32
[03:43:45] [PASSED] 256
[03:43:45] ================ [PASSED] test_range_spare =================
[03:43:45] ===================== [PASSED] guc_dbm =====================
[03:43:45] =================== guc_idm (6 subtests) ===================
[03:43:45] [PASSED] bad_init
[03:43:45] [PASSED] no_init
[03:43:45] [PASSED] init_fini
[03:43:45] [PASSED] check_used
[03:43:45] [PASSED] check_quota
[03:43:45] [PASSED] check_all
[03:43:45] ===================== [PASSED] guc_idm =====================
[03:43:45] ================== no_relay (3 subtests) ===================
[03:43:45] [PASSED] xe_drops_guc2pf_if_not_ready
[03:43:45] [PASSED] xe_drops_guc2vf_if_not_ready
[03:43:45] [PASSED] xe_rejects_send_if_not_ready
[03:43:45] ==================== [PASSED] no_relay =====================
[03:43:45] ================== pf_relay (14 subtests) ==================
[03:43:45] [PASSED] pf_rejects_guc2pf_too_short
[03:43:45] [PASSED] pf_rejects_guc2pf_too_long
[03:43:45] [PASSED] pf_rejects_guc2pf_no_payload
[03:43:45] [PASSED] pf_fails_no_payload
[03:43:45] [PASSED] pf_fails_bad_origin
[03:43:45] [PASSED] pf_fails_bad_type
[03:43:45] [PASSED] pf_txn_reports_error
[03:43:45] [PASSED] pf_txn_sends_pf2guc
[03:43:45] [PASSED] pf_sends_pf2guc
[03:43:45] [SKIPPED] pf_loopback_nop
[03:43:45] [SKIPPED] pf_loopback_echo
[03:43:45] [SKIPPED] pf_loopback_fail
[03:43:45] [SKIPPED] pf_loopback_busy
[03:43:45] [SKIPPED] pf_loopback_retry
[03:43:45] ==================== [PASSED] pf_relay =====================
[03:43:45] ================== vf_relay (3 subtests) ===================
[03:43:45] [PASSED] vf_rejects_guc2vf_too_short
[03:43:45] [PASSED] vf_rejects_guc2vf_too_long
[03:43:45] [PASSED] vf_rejects_guc2vf_no_payload
[03:43:45] ==================== [PASSED] vf_relay =====================
[03:43:45] ===================== lmtt (1 subtest) =====================
[03:43:45] ======================== test_ops =========================
[03:43:45] [PASSED] 2-level
[03:43:45] [PASSED] multi-level
[03:43:45] ==================== [PASSED] test_ops =====================
[03:43:45] ====================== [PASSED] lmtt =======================
[03:43:45] ================= pf_service (11 subtests) =================
[03:43:45] [PASSED] pf_negotiate_any
[03:43:45] [PASSED] pf_negotiate_base_match
[03:43:45] [PASSED] pf_negotiate_base_newer
[03:43:45] [PASSED] pf_negotiate_base_next
[03:43:45] [SKIPPED] pf_negotiate_base_older
[03:43:45] [PASSED] pf_negotiate_base_prev
[03:43:45] [PASSED] pf_negotiate_latest_match
[03:43:45] [PASSED] pf_negotiate_latest_newer
[03:43:45] [PASSED] pf_negotiate_latest_next
[03:43:45] [SKIPPED] pf_negotiate_latest_older
[03:43:45] [SKIPPED] pf_negotiate_latest_prev
[03:43:45] =================== [PASSED] pf_service ====================
[03:43:45] ================= xe_guc_g2g (2 subtests) ==================
[03:43:45] ============== xe_live_guc_g2g_kunit_default ==============
[03:43:45] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[03:43:45] ============== xe_live_guc_g2g_kunit_allmem ===============
[03:43:45] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[03:43:45] =================== [SKIPPED] xe_guc_g2g ===================
[03:43:45] =================== xe_mocs (2 subtests) ===================
[03:43:45] ================ xe_live_mocs_kernel_kunit ================
[03:43:45] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[03:43:45] ================ xe_live_mocs_reset_kunit =================
[03:43:45] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[03:43:45] ==================== [SKIPPED] xe_mocs =====================
[03:43:45] ================= xe_migrate (2 subtests) ==================
[03:43:45] ================= xe_migrate_sanity_kunit =================
[03:43:45] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[03:43:45] ================== xe_validate_ccs_kunit ==================
[03:43:45] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[03:43:45] =================== [SKIPPED] xe_migrate ===================
[03:43:45] ================== xe_dma_buf (1 subtest) ==================
[03:43:45] ==================== xe_dma_buf_kunit =====================
[03:43:45] ================ [SKIPPED] xe_dma_buf_kunit ================
[03:43:45] =================== [SKIPPED] xe_dma_buf ===================
[03:43:45] ================= xe_bo_shrink (1 subtest) =================
[03:43:45] =================== xe_bo_shrink_kunit ====================
[03:43:45] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[03:43:45] ================== [SKIPPED] xe_bo_shrink ==================
[03:43:45] ==================== xe_bo (2 subtests) ====================
[03:43:45] ================== xe_ccs_migrate_kunit ===================
[03:43:45] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[03:43:45] ==================== xe_bo_evict_kunit ====================
[03:43:45] =============== [SKIPPED] xe_bo_evict_kunit ================
[03:43:45] ===================== [SKIPPED] xe_bo ======================
[03:43:45] ==================== args (11 subtests) ====================
[03:43:45] [PASSED] count_args_test
[03:43:45] [PASSED] call_args_example
[03:43:45] [PASSED] call_args_test
[03:43:45] [PASSED] drop_first_arg_example
[03:43:45] [PASSED] drop_first_arg_test
[03:43:45] [PASSED] first_arg_example
[03:43:45] [PASSED] first_arg_test
[03:43:45] [PASSED] last_arg_example
[03:43:45] [PASSED] last_arg_test
[03:43:45] [PASSED] pick_arg_example
[03:43:45] [PASSED] sep_comma_example
[03:43:45] ====================== [PASSED] args =======================
[03:43:45] =================== xe_pci (3 subtests) ====================
[03:43:45] ==================== check_graphics_ip ====================
[03:43:45] [PASSED] 12.00 Xe_LP
[03:43:45] [PASSED] 12.10 Xe_LP+
[03:43:45] [PASSED] 12.55 Xe_HPG
[03:43:45] [PASSED] 12.60 Xe_HPC
[03:43:45] [PASSED] 12.70 Xe_LPG
[03:43:45] [PASSED] 12.71 Xe_LPG
[03:43:45] [PASSED] 12.74 Xe_LPG+
[03:43:45] [PASSED] 20.01 Xe2_HPG
[03:43:45] [PASSED] 20.02 Xe2_HPG
[03:43:45] [PASSED] 20.04 Xe2_LPG
[03:43:45] [PASSED] 30.00 Xe3_LPG
[03:43:45] [PASSED] 30.01 Xe3_LPG
[03:43:45] [PASSED] 30.03 Xe3_LPG
[03:43:45] [PASSED] 30.04 Xe3_LPG
[03:43:45] [PASSED] 30.05 Xe3_LPG
[03:43:45] [PASSED] 35.11 Xe3p_XPC
[03:43:45] ================ [PASSED] check_graphics_ip ================
[03:43:45] ===================== check_media_ip ======================
[03:43:45] [PASSED] 12.00 Xe_M
[03:43:45] [PASSED] 12.55 Xe_HPM
[03:43:45] [PASSED] 13.00 Xe_LPM+
[03:43:45] [PASSED] 13.01 Xe2_HPM
[03:43:45] [PASSED] 20.00 Xe2_LPM
[03:43:45] [PASSED] 30.00 Xe3_LPM
[03:43:45] [PASSED] 30.02 Xe3_LPM
[03:43:45] [PASSED] 35.00 Xe3p_LPM
[03:43:45] [PASSED] 35.03 Xe3p_HPM
[03:43:45] ================= [PASSED] check_media_ip ==================
[03:43:45] =================== check_platform_desc ===================
[03:43:45] [PASSED] 0x9A60 (TIGERLAKE)
[03:43:45] [PASSED] 0x9A68 (TIGERLAKE)
[03:43:45] [PASSED] 0x9A70 (TIGERLAKE)
[03:43:45] [PASSED] 0x9A40 (TIGERLAKE)
[03:43:45] [PASSED] 0x9A49 (TIGERLAKE)
[03:43:45] [PASSED] 0x9A59 (TIGERLAKE)
[03:43:45] [PASSED] 0x9A78 (TIGERLAKE)
[03:43:45] [PASSED] 0x9AC0 (TIGERLAKE)
[03:43:45] [PASSED] 0x9AC9 (TIGERLAKE)
[03:43:45] [PASSED] 0x9AD9 (TIGERLAKE)
[03:43:45] [PASSED] 0x9AF8 (TIGERLAKE)
[03:43:45] [PASSED] 0x4C80 (ROCKETLAKE)
[03:43:45] [PASSED] 0x4C8A (ROCKETLAKE)
[03:43:45] [PASSED] 0x4C8B (ROCKETLAKE)
[03:43:45] [PASSED] 0x4C8C (ROCKETLAKE)
[03:43:45] [PASSED] 0x4C90 (ROCKETLAKE)
[03:43:45] [PASSED] 0x4C9A (ROCKETLAKE)
[03:43:45] [PASSED] 0x4680 (ALDERLAKE_S)
[03:43:45] [PASSED] 0x4682 (ALDERLAKE_S)
[03:43:45] [PASSED] 0x4688 (ALDERLAKE_S)
[03:43:45] [PASSED] 0x468A (ALDERLAKE_S)
[03:43:45] [PASSED] 0x468B (ALDERLAKE_S)
[03:43:45] [PASSED] 0x4690 (ALDERLAKE_S)
[03:43:45] [PASSED] 0x4692 (ALDERLAKE_S)
[03:43:45] [PASSED] 0x4693 (ALDERLAKE_S)
[03:43:45] [PASSED] 0x46A0 (ALDERLAKE_P)
[03:43:45] [PASSED] 0x46A1 (ALDERLAKE_P)
[03:43:45] [PASSED] 0x46A2 (ALDERLAKE_P)
[03:43:45] [PASSED] 0x46A3 (ALDERLAKE_P)
[03:43:45] [PASSED] 0x46A6 (ALDERLAKE_P)
[03:43:45] [PASSED] 0x46A8 (ALDERLAKE_P)
[03:43:45] [PASSED] 0x46AA (ALDERLAKE_P)
[03:43:45] [PASSED] 0x462A (ALDERLAKE_P)
[03:43:45] [PASSED] 0x4626 (ALDERLAKE_P)
[03:43:45] [PASSED] 0x4628 (ALDERLAKE_P)
[03:43:45] [PASSED] 0x46B0 (ALDERLAKE_P)
[03:43:45] [PASSED] 0x46B1 (ALDERLAKE_P)
[03:43:45] [PASSED] 0x46B2 (ALDERLAKE_P)
[03:43:45] [PASSED] 0x46B3 (ALDERLAKE_P)
[03:43:45] [PASSED] 0x46C0 (ALDERLAKE_P)
[03:43:45] [PASSED] 0x46C1 (ALDERLAKE_P)
[03:43:45] [PASSED] 0x46C2 (ALDERLAKE_P)
[03:43:45] [PASSED] 0x46C3 (ALDERLAKE_P)
[03:43:45] [PASSED] 0x46D0 (ALDERLAKE_N)
[03:43:45] [PASSED] 0x46D1 (ALDERLAKE_N)
[03:43:45] [PASSED] 0x46D2 (ALDERLAKE_N)
[03:43:45] [PASSED] 0x46D3 (ALDERLAKE_N)
[03:43:45] [PASSED] 0x46D4 (ALDERLAKE_N)
[03:43:45] [PASSED] 0xA721 (ALDERLAKE_P)
[03:43:45] [PASSED] 0xA7A1 (ALDERLAKE_P)
[03:43:45] [PASSED] 0xA7A9 (ALDERLAKE_P)
[03:43:45] [PASSED] 0xA7AC (ALDERLAKE_P)
[03:43:45] [PASSED] 0xA7AD (ALDERLAKE_P)
[03:43:45] [PASSED] 0xA720 (ALDERLAKE_P)
[03:43:45] [PASSED] 0xA7A0 (ALDERLAKE_P)
[03:43:45] [PASSED] 0xA7A8 (ALDERLAKE_P)
[03:43:45] [PASSED] 0xA7AA (ALDERLAKE_P)
[03:43:45] [PASSED] 0xA7AB (ALDERLAKE_P)
[03:43:45] [PASSED] 0xA780 (ALDERLAKE_S)
[03:43:45] [PASSED] 0xA781 (ALDERLAKE_S)
[03:43:45] [PASSED] 0xA782 (ALDERLAKE_S)
[03:43:45] [PASSED] 0xA783 (ALDERLAKE_S)
[03:43:45] [PASSED] 0xA788 (ALDERLAKE_S)
[03:43:45] [PASSED] 0xA789 (ALDERLAKE_S)
[03:43:45] [PASSED] 0xA78A (ALDERLAKE_S)
[03:43:45] [PASSED] 0xA78B (ALDERLAKE_S)
[03:43:45] [PASSED] 0x4905 (DG1)
[03:43:45] [PASSED] 0x4906 (DG1)
[03:43:45] [PASSED] 0x4907 (DG1)
[03:43:45] [PASSED] 0x4908 (DG1)
[03:43:45] [PASSED] 0x4909 (DG1)
[03:43:45] [PASSED] 0x56C0 (DG2)
[03:43:45] [PASSED] 0x56C2 (DG2)
[03:43:45] [PASSED] 0x56C1 (DG2)
[03:43:45] [PASSED] 0x7D51 (METEORLAKE)
[03:43:45] [PASSED] 0x7DD1 (METEORLAKE)
[03:43:45] [PASSED] 0x7D41 (METEORLAKE)
[03:43:45] [PASSED] 0x7D67 (METEORLAKE)
[03:43:45] [PASSED] 0xB640 (METEORLAKE)
[03:43:45] [PASSED] 0x56A0 (DG2)
[03:43:45] [PASSED] 0x56A1 (DG2)
[03:43:45] [PASSED] 0x56A2 (DG2)
[03:43:45] [PASSED] 0x56BE (DG2)
[03:43:45] [PASSED] 0x56BF (DG2)
[03:43:45] [PASSED] 0x5690 (DG2)
[03:43:45] [PASSED] 0x5691 (DG2)
[03:43:45] [PASSED] 0x5692 (DG2)
[03:43:45] [PASSED] 0x56A5 (DG2)
[03:43:45] [PASSED] 0x56A6 (DG2)
[03:43:45] [PASSED] 0x56B0 (DG2)
[03:43:45] [PASSED] 0x56B1 (DG2)
[03:43:45] [PASSED] 0x56BA (DG2)
[03:43:45] [PASSED] 0x56BB (DG2)
[03:43:45] [PASSED] 0x56BC (DG2)
[03:43:45] [PASSED] 0x56BD (DG2)
[03:43:45] [PASSED] 0x5693 (DG2)
[03:43:45] [PASSED] 0x5694 (DG2)
[03:43:45] [PASSED] 0x5695 (DG2)
[03:43:45] [PASSED] 0x56A3 (DG2)
[03:43:45] [PASSED] 0x56A4 (DG2)
[03:43:45] [PASSED] 0x56B2 (DG2)
[03:43:45] [PASSED] 0x56B3 (DG2)
[03:43:45] [PASSED] 0x5696 (DG2)
[03:43:45] [PASSED] 0x5697 (DG2)
[03:43:45] [PASSED] 0xB69 (PVC)
[03:43:45] [PASSED] 0xB6E (PVC)
[03:43:45] [PASSED] 0xBD4 (PVC)
[03:43:45] [PASSED] 0xBD5 (PVC)
[03:43:45] [PASSED] 0xBD6 (PVC)
[03:43:45] [PASSED] 0xBD7 (PVC)
[03:43:45] [PASSED] 0xBD8 (PVC)
[03:43:45] [PASSED] 0xBD9 (PVC)
[03:43:45] [PASSED] 0xBDA (PVC)
[03:43:45] [PASSED] 0xBDB (PVC)
[03:43:45] [PASSED] 0xBE0 (PVC)
[03:43:45] [PASSED] 0xBE1 (PVC)
[03:43:45] [PASSED] 0xBE5 (PVC)
[03:43:45] [PASSED] 0x7D40 (METEORLAKE)
[03:43:45] [PASSED] 0x7D45 (METEORLAKE)
[03:43:45] [PASSED] 0x7D55 (METEORLAKE)
[03:43:45] [PASSED] 0x7D60 (METEORLAKE)
[03:43:45] [PASSED] 0x7DD5 (METEORLAKE)
[03:43:45] [PASSED] 0x6420 (LUNARLAKE)
[03:43:45] [PASSED] 0x64A0 (LUNARLAKE)
[03:43:45] [PASSED] 0x64B0 (LUNARLAKE)
[03:43:45] [PASSED] 0xE202 (BATTLEMAGE)
[03:43:45] [PASSED] 0xE209 (BATTLEMAGE)
[03:43:45] [PASSED] 0xE20B (BATTLEMAGE)
[03:43:45] [PASSED] 0xE20C (BATTLEMAGE)
[03:43:45] [PASSED] 0xE20D (BATTLEMAGE)
[03:43:45] [PASSED] 0xE210 (BATTLEMAGE)
[03:43:45] [PASSED] 0xE211 (BATTLEMAGE)
[03:43:45] [PASSED] 0xE212 (BATTLEMAGE)
[03:43:45] [PASSED] 0xE216 (BATTLEMAGE)
[03:43:45] [PASSED] 0xE220 (BATTLEMAGE)
[03:43:45] [PASSED] 0xE221 (BATTLEMAGE)
[03:43:45] [PASSED] 0xE222 (BATTLEMAGE)
[03:43:45] [PASSED] 0xE223 (BATTLEMAGE)
[03:43:45] [PASSED] 0xB080 (PANTHERLAKE)
[03:43:45] [PASSED] 0xB081 (PANTHERLAKE)
[03:43:45] [PASSED] 0xB082 (PANTHERLAKE)
[03:43:45] [PASSED] 0xB083 (PANTHERLAKE)
[03:43:45] [PASSED] 0xB084 (PANTHERLAKE)
[03:43:45] [PASSED] 0xB085 (PANTHERLAKE)
[03:43:45] [PASSED] 0xB086 (PANTHERLAKE)
[03:43:45] [PASSED] 0xB087 (PANTHERLAKE)
[03:43:45] [PASSED] 0xB08F (PANTHERLAKE)
[03:43:45] [PASSED] 0xB090 (PANTHERLAKE)
[03:43:45] [PASSED] 0xB0A0 (PANTHERLAKE)
[03:43:45] [PASSED] 0xB0B0 (PANTHERLAKE)
[03:43:45] [PASSED] 0xD740 (NOVALAKE_S)
[03:43:45] [PASSED] 0xD741 (NOVALAKE_S)
[03:43:45] [PASSED] 0xD742 (NOVALAKE_S)
[03:43:45] [PASSED] 0xD743 (NOVALAKE_S)
[03:43:45] [PASSED] 0xD744 (NOVALAKE_S)
[03:43:45] [PASSED] 0xD745 (NOVALAKE_S)
[03:43:45] [PASSED] 0x674C (CRESCENTISLAND)
[03:43:45] [PASSED] 0xFD80 (PANTHERLAKE)
[03:43:45] [PASSED] 0xFD81 (PANTHERLAKE)
[03:43:45] =============== [PASSED] check_platform_desc ===============
[03:43:45] ===================== [PASSED] xe_pci ======================
[03:43:45] =================== xe_rtp (2 subtests) ====================
[03:43:45] =============== xe_rtp_process_to_sr_tests ================
[03:43:45] [PASSED] coalesce-same-reg
[03:43:45] [PASSED] no-match-no-add
[03:43:45] [PASSED] match-or
[03:43:45] [PASSED] match-or-xfail
[03:43:45] [PASSED] no-match-no-add-multiple-rules
[03:43:45] [PASSED] two-regs-two-entries
[03:43:45] [PASSED] clr-one-set-other
[03:43:45] [PASSED] set-field
[03:43:45] [PASSED] conflict-duplicate
[03:43:45] [PASSED] conflict-not-disjoint
[03:43:45] [PASSED] conflict-reg-type
[03:43:45] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[03:43:45] ================== xe_rtp_process_tests ===================
[03:43:45] [PASSED] active1
[03:43:45] [PASSED] active2
[03:43:45] [PASSED] active-inactive
[03:43:45] [PASSED] inactive-active
[03:43:45] [PASSED] inactive-1st_or_active-inactive
[03:43:45] [PASSED] inactive-2nd_or_active-inactive
[03:43:45] [PASSED] inactive-last_or_active-inactive
stty: 'standard input': Inappropriate ioctl for device
[03:43:45] [PASSED] inactive-no_or_active-inactive
[03:43:45] ============== [PASSED] xe_rtp_process_tests ===============
[03:43:45] ===================== [PASSED] xe_rtp ======================
[03:43:45] ==================== xe_wa (1 subtest) =====================
[03:43:45] ======================== xe_wa_gt =========================
[03:43:45] [PASSED] TIGERLAKE B0
[03:43:45] [PASSED] DG1 A0
[03:43:45] [PASSED] DG1 B0
[03:43:45] [PASSED] ALDERLAKE_S A0
[03:43:45] [PASSED] ALDERLAKE_S B0
[03:43:45] [PASSED] ALDERLAKE_S C0
[03:43:45] [PASSED] ALDERLAKE_S D0
[03:43:45] [PASSED] ALDERLAKE_P A0
[03:43:45] [PASSED] ALDERLAKE_P B0
[03:43:45] [PASSED] ALDERLAKE_P C0
[03:43:45] [PASSED] ALDERLAKE_S RPLS D0
[03:43:45] [PASSED] ALDERLAKE_P RPLU E0
[03:43:45] [PASSED] DG2 G10 C0
[03:43:45] [PASSED] DG2 G11 B1
[03:43:45] [PASSED] DG2 G12 A1
[03:43:45] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[03:43:45] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[03:43:45] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[03:43:45] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[03:43:45] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[03:43:45] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[03:43:45] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[03:43:45] ==================== [PASSED] xe_wa_gt =====================
[03:43:45] ====================== [PASSED] xe_wa ======================
[03:43:45] ============================================================
[03:43:45] Testing complete. Ran 318 tests: passed: 300, skipped: 18
[03:43:45] Elapsed time: 34.825s total, 4.186s configuring, 30.273s building, 0.344s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[03:43:45] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[03:43:47] 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
[03:44:11] Starting KUnit Kernel (1/1)...
[03:44:11] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[03:44:11] ============ drm_test_pick_cmdline (2 subtests) ============
[03:44:11] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[03:44:11] =============== drm_test_pick_cmdline_named ===============
[03:44:11] [PASSED] NTSC
[03:44:11] [PASSED] NTSC-J
[03:44:11] [PASSED] PAL
[03:44:11] [PASSED] PAL-M
[03:44:11] =========== [PASSED] drm_test_pick_cmdline_named ===========
[03:44:11] ============== [PASSED] drm_test_pick_cmdline ==============
[03:44:11] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[03:44:11] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[03:44:11] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[03:44:11] =========== drm_validate_clone_mode (2 subtests) ===========
[03:44:11] ============== drm_test_check_in_clone_mode ===============
[03:44:11] [PASSED] in_clone_mode
[03:44:11] [PASSED] not_in_clone_mode
[03:44:11] ========== [PASSED] drm_test_check_in_clone_mode ===========
[03:44:11] =============== drm_test_check_valid_clones ===============
[03:44:11] [PASSED] not_in_clone_mode
[03:44:11] [PASSED] valid_clone
[03:44:11] [PASSED] invalid_clone
[03:44:11] =========== [PASSED] drm_test_check_valid_clones ===========
[03:44:11] ============= [PASSED] drm_validate_clone_mode =============
[03:44:11] ============= drm_validate_modeset (1 subtest) =============
[03:44:11] [PASSED] drm_test_check_connector_changed_modeset
[03:44:11] ============== [PASSED] drm_validate_modeset ===============
[03:44:11] ====== drm_test_bridge_get_current_state (2 subtests) ======
[03:44:11] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[03:44:11] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[03:44:11] ======== [PASSED] drm_test_bridge_get_current_state ========
[03:44:11] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[03:44:11] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[03:44:11] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[03:44:11] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[03:44:11] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[03:44:11] ============== drm_bridge_alloc (2 subtests) ===============
[03:44:11] [PASSED] drm_test_drm_bridge_alloc_basic
[03:44:11] [PASSED] drm_test_drm_bridge_alloc_get_put
[03:44:11] ================ [PASSED] drm_bridge_alloc =================
[03:44:11] ================== drm_buddy (8 subtests) ==================
[03:44:11] [PASSED] drm_test_buddy_alloc_limit
[03:44:11] [PASSED] drm_test_buddy_alloc_optimistic
[03:44:11] [PASSED] drm_test_buddy_alloc_pessimistic
[03:44:11] [PASSED] drm_test_buddy_alloc_pathological
[03:44:11] [PASSED] drm_test_buddy_alloc_contiguous
[03:44:11] [PASSED] drm_test_buddy_alloc_clear
[03:44:11] [PASSED] drm_test_buddy_alloc_range_bias
[03:44:12] [PASSED] drm_test_buddy_fragmentation_performance
[03:44:12] ==================== [PASSED] drm_buddy ====================
[03:44:12] ============= drm_cmdline_parser (40 subtests) =============
[03:44:12] [PASSED] drm_test_cmdline_force_d_only
[03:44:12] [PASSED] drm_test_cmdline_force_D_only_dvi
[03:44:12] [PASSED] drm_test_cmdline_force_D_only_hdmi
[03:44:12] [PASSED] drm_test_cmdline_force_D_only_not_digital
[03:44:12] [PASSED] drm_test_cmdline_force_e_only
[03:44:12] [PASSED] drm_test_cmdline_res
[03:44:12] [PASSED] drm_test_cmdline_res_vesa
[03:44:12] [PASSED] drm_test_cmdline_res_vesa_rblank
[03:44:12] [PASSED] drm_test_cmdline_res_rblank
[03:44:12] [PASSED] drm_test_cmdline_res_bpp
[03:44:12] [PASSED] drm_test_cmdline_res_refresh
[03:44:12] [PASSED] drm_test_cmdline_res_bpp_refresh
[03:44:12] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[03:44:12] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[03:44:12] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[03:44:12] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[03:44:12] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[03:44:12] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[03:44:12] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[03:44:12] [PASSED] drm_test_cmdline_res_margins_force_on
[03:44:12] [PASSED] drm_test_cmdline_res_vesa_margins
[03:44:12] [PASSED] drm_test_cmdline_name
[03:44:12] [PASSED] drm_test_cmdline_name_bpp
[03:44:12] [PASSED] drm_test_cmdline_name_option
[03:44:12] [PASSED] drm_test_cmdline_name_bpp_option
[03:44:12] [PASSED] drm_test_cmdline_rotate_0
[03:44:12] [PASSED] drm_test_cmdline_rotate_90
[03:44:12] [PASSED] drm_test_cmdline_rotate_180
[03:44:12] [PASSED] drm_test_cmdline_rotate_270
[03:44:12] [PASSED] drm_test_cmdline_hmirror
[03:44:12] [PASSED] drm_test_cmdline_vmirror
[03:44:12] [PASSED] drm_test_cmdline_margin_options
[03:44:12] [PASSED] drm_test_cmdline_multiple_options
[03:44:12] [PASSED] drm_test_cmdline_bpp_extra_and_option
[03:44:12] [PASSED] drm_test_cmdline_extra_and_option
[03:44:12] [PASSED] drm_test_cmdline_freestanding_options
[03:44:12] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[03:44:12] [PASSED] drm_test_cmdline_panel_orientation
[03:44:12] ================ drm_test_cmdline_invalid =================
[03:44:12] [PASSED] margin_only
[03:44:12] [PASSED] interlace_only
[03:44:12] [PASSED] res_missing_x
[03:44:12] [PASSED] res_missing_y
[03:44:12] [PASSED] res_bad_y
[03:44:12] [PASSED] res_missing_y_bpp
[03:44:12] [PASSED] res_bad_bpp
[03:44:12] [PASSED] res_bad_refresh
[03:44:12] [PASSED] res_bpp_refresh_force_on_off
[03:44:12] [PASSED] res_invalid_mode
[03:44:12] [PASSED] res_bpp_wrong_place_mode
[03:44:12] [PASSED] name_bpp_refresh
[03:44:12] [PASSED] name_refresh
[03:44:12] [PASSED] name_refresh_wrong_mode
[03:44:12] [PASSED] name_refresh_invalid_mode
[03:44:12] [PASSED] rotate_multiple
[03:44:12] [PASSED] rotate_invalid_val
[03:44:12] [PASSED] rotate_truncated
[03:44:12] [PASSED] invalid_option
[03:44:12] [PASSED] invalid_tv_option
[03:44:12] [PASSED] truncated_tv_option
[03:44:12] ============ [PASSED] drm_test_cmdline_invalid =============
[03:44:12] =============== drm_test_cmdline_tv_options ===============
[03:44:12] [PASSED] NTSC
[03:44:12] [PASSED] NTSC_443
[03:44:12] [PASSED] NTSC_J
[03:44:12] [PASSED] PAL
[03:44:12] [PASSED] PAL_M
[03:44:12] [PASSED] PAL_N
[03:44:12] [PASSED] SECAM
[03:44:12] [PASSED] MONO_525
[03:44:12] [PASSED] MONO_625
[03:44:12] =========== [PASSED] drm_test_cmdline_tv_options ===========
[03:44:12] =============== [PASSED] drm_cmdline_parser ================
[03:44:12] ========== drmm_connector_hdmi_init (20 subtests) ==========
[03:44:12] [PASSED] drm_test_connector_hdmi_init_valid
[03:44:12] [PASSED] drm_test_connector_hdmi_init_bpc_8
[03:44:12] [PASSED] drm_test_connector_hdmi_init_bpc_10
[03:44:12] [PASSED] drm_test_connector_hdmi_init_bpc_12
[03:44:12] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[03:44:12] [PASSED] drm_test_connector_hdmi_init_bpc_null
[03:44:12] [PASSED] drm_test_connector_hdmi_init_formats_empty
[03:44:12] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[03:44:12] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[03:44:12] [PASSED] supported_formats=0x9 yuv420_allowed=1
[03:44:12] [PASSED] supported_formats=0x9 yuv420_allowed=0
[03:44:12] [PASSED] supported_formats=0x3 yuv420_allowed=1
[03:44:12] [PASSED] supported_formats=0x3 yuv420_allowed=0
[03:44:12] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[03:44:12] [PASSED] drm_test_connector_hdmi_init_null_ddc
[03:44:12] [PASSED] drm_test_connector_hdmi_init_null_product
[03:44:12] [PASSED] drm_test_connector_hdmi_init_null_vendor
[03:44:12] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[03:44:12] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[03:44:12] [PASSED] drm_test_connector_hdmi_init_product_valid
[03:44:12] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[03:44:12] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[03:44:12] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[03:44:12] ========= drm_test_connector_hdmi_init_type_valid =========
[03:44:12] [PASSED] HDMI-A
[03:44:12] [PASSED] HDMI-B
[03:44:12] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[03:44:12] ======== drm_test_connector_hdmi_init_type_invalid ========
[03:44:12] [PASSED] Unknown
[03:44:12] [PASSED] VGA
[03:44:12] [PASSED] DVI-I
[03:44:12] [PASSED] DVI-D
[03:44:12] [PASSED] DVI-A
[03:44:12] [PASSED] Composite
[03:44:12] [PASSED] SVIDEO
[03:44:12] [PASSED] LVDS
[03:44:12] [PASSED] Component
[03:44:12] [PASSED] DIN
[03:44:12] [PASSED] DP
[03:44:12] [PASSED] TV
[03:44:12] [PASSED] eDP
[03:44:12] [PASSED] Virtual
[03:44:12] [PASSED] DSI
[03:44:12] [PASSED] DPI
[03:44:12] [PASSED] Writeback
[03:44:12] [PASSED] SPI
[03:44:12] [PASSED] USB
[03:44:12] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[03:44:12] ============ [PASSED] drmm_connector_hdmi_init =============
[03:44:12] ============= drmm_connector_init (3 subtests) =============
[03:44:12] [PASSED] drm_test_drmm_connector_init
[03:44:12] [PASSED] drm_test_drmm_connector_init_null_ddc
[03:44:12] ========= drm_test_drmm_connector_init_type_valid =========
[03:44:12] [PASSED] Unknown
[03:44:12] [PASSED] VGA
[03:44:12] [PASSED] DVI-I
[03:44:12] [PASSED] DVI-D
[03:44:12] [PASSED] DVI-A
[03:44:12] [PASSED] Composite
[03:44:12] [PASSED] SVIDEO
[03:44:12] [PASSED] LVDS
[03:44:12] [PASSED] Component
[03:44:12] [PASSED] DIN
[03:44:12] [PASSED] DP
[03:44:12] [PASSED] HDMI-A
[03:44:12] [PASSED] HDMI-B
[03:44:12] [PASSED] TV
[03:44:12] [PASSED] eDP
[03:44:12] [PASSED] Virtual
[03:44:12] [PASSED] DSI
[03:44:12] [PASSED] DPI
[03:44:12] [PASSED] Writeback
[03:44:12] [PASSED] SPI
[03:44:12] [PASSED] USB
[03:44:12] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[03:44:12] =============== [PASSED] drmm_connector_init ===============
[03:44:12] ========= drm_connector_dynamic_init (6 subtests) ==========
[03:44:12] [PASSED] drm_test_drm_connector_dynamic_init
[03:44:12] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[03:44:12] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[03:44:12] [PASSED] drm_test_drm_connector_dynamic_init_properties
[03:44:12] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[03:44:12] [PASSED] Unknown
[03:44:12] [PASSED] VGA
[03:44:12] [PASSED] DVI-I
[03:44:12] [PASSED] DVI-D
[03:44:12] [PASSED] DVI-A
[03:44:12] [PASSED] Composite
[03:44:12] [PASSED] SVIDEO
[03:44:12] [PASSED] LVDS
[03:44:12] [PASSED] Component
[03:44:12] [PASSED] DIN
[03:44:12] [PASSED] DP
[03:44:12] [PASSED] HDMI-A
[03:44:12] [PASSED] HDMI-B
[03:44:12] [PASSED] TV
[03:44:12] [PASSED] eDP
[03:44:12] [PASSED] Virtual
[03:44:12] [PASSED] DSI
[03:44:12] [PASSED] DPI
[03:44:12] [PASSED] Writeback
[03:44:12] [PASSED] SPI
[03:44:12] [PASSED] USB
[03:44:12] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[03:44:12] ======== drm_test_drm_connector_dynamic_init_name =========
[03:44:12] [PASSED] Unknown
[03:44:12] [PASSED] VGA
[03:44:12] [PASSED] DVI-I
[03:44:12] [PASSED] DVI-D
[03:44:12] [PASSED] DVI-A
[03:44:12] [PASSED] Composite
[03:44:12] [PASSED] SVIDEO
[03:44:12] [PASSED] LVDS
[03:44:12] [PASSED] Component
[03:44:12] [PASSED] DIN
[03:44:12] [PASSED] DP
[03:44:12] [PASSED] HDMI-A
[03:44:12] [PASSED] HDMI-B
[03:44:12] [PASSED] TV
[03:44:12] [PASSED] eDP
[03:44:12] [PASSED] Virtual
[03:44:12] [PASSED] DSI
[03:44:12] [PASSED] DPI
[03:44:12] [PASSED] Writeback
[03:44:12] [PASSED] SPI
[03:44:12] [PASSED] USB
[03:44:12] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[03:44:12] =========== [PASSED] drm_connector_dynamic_init ============
[03:44:12] ==== drm_connector_dynamic_register_early (4 subtests) =====
[03:44:12] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[03:44:12] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[03:44:12] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[03:44:12] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[03:44:12] ====== [PASSED] drm_connector_dynamic_register_early =======
[03:44:12] ======= drm_connector_dynamic_register (7 subtests) ========
[03:44:12] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[03:44:12] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[03:44:12] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[03:44:12] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[03:44:12] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[03:44:12] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[03:44:12] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[03:44:12] ========= [PASSED] drm_connector_dynamic_register ==========
[03:44:12] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[03:44:12] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[03:44:12] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[03:44:12] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[03:44:12] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[03:44:12] ========== drm_test_get_tv_mode_from_name_valid ===========
[03:44:12] [PASSED] NTSC
[03:44:12] [PASSED] NTSC-443
[03:44:12] [PASSED] NTSC-J
[03:44:12] [PASSED] PAL
[03:44:12] [PASSED] PAL-M
[03:44:12] [PASSED] PAL-N
[03:44:12] [PASSED] SECAM
[03:44:12] [PASSED] Mono
[03:44:12] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[03:44:12] [PASSED] drm_test_get_tv_mode_from_name_truncated
[03:44:12] ============ [PASSED] drm_get_tv_mode_from_name ============
[03:44:12] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[03:44:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[03:44:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[03:44:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[03:44:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[03:44:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[03:44:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[03:44:12] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[03:44:12] [PASSED] VIC 96
[03:44:12] [PASSED] VIC 97
[03:44:12] [PASSED] VIC 101
[03:44:12] [PASSED] VIC 102
[03:44:12] [PASSED] VIC 106
[03:44:12] [PASSED] VIC 107
[03:44:12] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[03:44:12] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[03:44:12] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[03:44:12] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[03:44:12] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[03:44:12] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[03:44:12] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[03:44:12] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[03:44:12] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[03:44:12] [PASSED] Automatic
[03:44:12] [PASSED] Full
[03:44:12] [PASSED] Limited 16:235
[03:44:12] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[03:44:12] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[03:44:12] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[03:44:12] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[03:44:12] === drm_test_drm_hdmi_connector_get_output_format_name ====
[03:44:12] [PASSED] RGB
[03:44:12] [PASSED] YUV 4:2:0
[03:44:12] [PASSED] YUV 4:2:2
[03:44:12] [PASSED] YUV 4:4:4
[03:44:12] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[03:44:12] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[03:44:12] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[03:44:12] ============= drm_damage_helper (21 subtests) ==============
[03:44:12] [PASSED] drm_test_damage_iter_no_damage
[03:44:12] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[03:44:12] [PASSED] drm_test_damage_iter_no_damage_src_moved
[03:44:12] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[03:44:12] [PASSED] drm_test_damage_iter_no_damage_not_visible
[03:44:12] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[03:44:12] [PASSED] drm_test_damage_iter_no_damage_no_fb
[03:44:12] [PASSED] drm_test_damage_iter_simple_damage
[03:44:12] [PASSED] drm_test_damage_iter_single_damage
[03:44:12] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[03:44:12] [PASSED] drm_test_damage_iter_single_damage_outside_src
[03:44:12] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[03:44:12] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[03:44:12] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[03:44:12] [PASSED] drm_test_damage_iter_single_damage_src_moved
[03:44:12] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[03:44:12] [PASSED] drm_test_damage_iter_damage
[03:44:12] [PASSED] drm_test_damage_iter_damage_one_intersect
[03:44:12] [PASSED] drm_test_damage_iter_damage_one_outside
[03:44:12] [PASSED] drm_test_damage_iter_damage_src_moved
[03:44:12] [PASSED] drm_test_damage_iter_damage_not_visible
[03:44:12] ================ [PASSED] drm_damage_helper ================
[03:44:12] ============== drm_dp_mst_helper (3 subtests) ==============
[03:44:12] ============== drm_test_dp_mst_calc_pbn_mode ==============
[03:44:12] [PASSED] Clock 154000 BPP 30 DSC disabled
[03:44:12] [PASSED] Clock 234000 BPP 30 DSC disabled
[03:44:12] [PASSED] Clock 297000 BPP 24 DSC disabled
[03:44:12] [PASSED] Clock 332880 BPP 24 DSC enabled
[03:44:12] [PASSED] Clock 324540 BPP 24 DSC enabled
[03:44:12] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[03:44:12] ============== drm_test_dp_mst_calc_pbn_div ===============
[03:44:12] [PASSED] Link rate 2000000 lane count 4
[03:44:12] [PASSED] Link rate 2000000 lane count 2
[03:44:12] [PASSED] Link rate 2000000 lane count 1
[03:44:12] [PASSED] Link rate 1350000 lane count 4
[03:44:12] [PASSED] Link rate 1350000 lane count 2
[03:44:12] [PASSED] Link rate 1350000 lane count 1
[03:44:12] [PASSED] Link rate 1000000 lane count 4
[03:44:12] [PASSED] Link rate 1000000 lane count 2
[03:44:12] [PASSED] Link rate 1000000 lane count 1
[03:44:12] [PASSED] Link rate 810000 lane count 4
[03:44:12] [PASSED] Link rate 810000 lane count 2
[03:44:12] [PASSED] Link rate 810000 lane count 1
[03:44:12] [PASSED] Link rate 540000 lane count 4
[03:44:12] [PASSED] Link rate 540000 lane count 2
[03:44:12] [PASSED] Link rate 540000 lane count 1
[03:44:12] [PASSED] Link rate 270000 lane count 4
[03:44:12] [PASSED] Link rate 270000 lane count 2
[03:44:12] [PASSED] Link rate 270000 lane count 1
[03:44:12] [PASSED] Link rate 162000 lane count 4
[03:44:12] [PASSED] Link rate 162000 lane count 2
[03:44:12] [PASSED] Link rate 162000 lane count 1
[03:44:12] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[03:44:12] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[03:44:12] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[03:44:12] [PASSED] DP_POWER_UP_PHY with port number
[03:44:12] [PASSED] DP_POWER_DOWN_PHY with port number
[03:44:12] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[03:44:12] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[03:44:12] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[03:44:12] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[03:44:12] [PASSED] DP_QUERY_PAYLOAD with port number
[03:44:12] [PASSED] DP_QUERY_PAYLOAD with VCPI
[03:44:12] [PASSED] DP_REMOTE_DPCD_READ with port number
[03:44:12] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[03:44:12] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[03:44:12] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[03:44:12] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[03:44:12] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[03:44:12] [PASSED] DP_REMOTE_I2C_READ with port number
[03:44:12] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[03:44:12] [PASSED] DP_REMOTE_I2C_READ with transactions array
[03:44:12] [PASSED] DP_REMOTE_I2C_WRITE with port number
[03:44:12] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[03:44:12] [PASSED] DP_REMOTE_I2C_WRITE with data array
[03:44:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[03:44:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[03:44:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[03:44:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[03:44:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[03:44:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[03:44:12] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[03:44:12] ================ [PASSED] drm_dp_mst_helper ================
[03:44:12] ================== drm_exec (7 subtests) ===================
[03:44:12] [PASSED] sanitycheck
[03:44:12] [PASSED] test_lock
[03:44:12] [PASSED] test_lock_unlock
[03:44:12] [PASSED] test_duplicates
[03:44:12] [PASSED] test_prepare
[03:44:12] [PASSED] test_prepare_array
[03:44:12] [PASSED] test_multiple_loops
[03:44:12] ==================== [PASSED] drm_exec =====================
[03:44:12] =========== drm_format_helper_test (17 subtests) ===========
[03:44:12] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[03:44:12] [PASSED] single_pixel_source_buffer
[03:44:12] [PASSED] single_pixel_clip_rectangle
[03:44:12] [PASSED] well_known_colors
[03:44:12] [PASSED] destination_pitch
[03:44:12] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[03:44:12] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[03:44:12] [PASSED] single_pixel_source_buffer
[03:44:12] [PASSED] single_pixel_clip_rectangle
[03:44:12] [PASSED] well_known_colors
[03:44:12] [PASSED] destination_pitch
[03:44:12] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[03:44:12] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[03:44:12] [PASSED] single_pixel_source_buffer
[03:44:12] [PASSED] single_pixel_clip_rectangle
[03:44:12] [PASSED] well_known_colors
[03:44:12] [PASSED] destination_pitch
[03:44:12] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[03:44:12] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[03:44:12] [PASSED] single_pixel_source_buffer
[03:44:12] [PASSED] single_pixel_clip_rectangle
[03:44:12] [PASSED] well_known_colors
[03:44:12] [PASSED] destination_pitch
[03:44:12] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[03:44:12] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[03:44:12] [PASSED] single_pixel_source_buffer
[03:44:12] [PASSED] single_pixel_clip_rectangle
[03:44:12] [PASSED] well_known_colors
[03:44:12] [PASSED] destination_pitch
[03:44:12] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[03:44:12] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[03:44:12] [PASSED] single_pixel_source_buffer
[03:44:12] [PASSED] single_pixel_clip_rectangle
[03:44:12] [PASSED] well_known_colors
[03:44:12] [PASSED] destination_pitch
[03:44:12] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[03:44:12] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[03:44:12] [PASSED] single_pixel_source_buffer
[03:44:12] [PASSED] single_pixel_clip_rectangle
[03:44:12] [PASSED] well_known_colors
[03:44:12] [PASSED] destination_pitch
[03:44:12] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[03:44:12] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[03:44:12] [PASSED] single_pixel_source_buffer
[03:44:12] [PASSED] single_pixel_clip_rectangle
[03:44:12] [PASSED] well_known_colors
[03:44:12] [PASSED] destination_pitch
[03:44:12] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[03:44:12] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[03:44:12] [PASSED] single_pixel_source_buffer
[03:44:12] [PASSED] single_pixel_clip_rectangle
[03:44:12] [PASSED] well_known_colors
[03:44:12] [PASSED] destination_pitch
[03:44:12] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[03:44:12] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[03:44:12] [PASSED] single_pixel_source_buffer
[03:44:12] [PASSED] single_pixel_clip_rectangle
[03:44:12] [PASSED] well_known_colors
[03:44:12] [PASSED] destination_pitch
[03:44:12] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[03:44:12] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[03:44:12] [PASSED] single_pixel_source_buffer
[03:44:12] [PASSED] single_pixel_clip_rectangle
[03:44:12] [PASSED] well_known_colors
[03:44:12] [PASSED] destination_pitch
[03:44:12] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[03:44:12] ============== drm_test_fb_xrgb8888_to_mono ===============
[03:44:12] [PASSED] single_pixel_source_buffer
[03:44:12] [PASSED] single_pixel_clip_rectangle
[03:44:12] [PASSED] well_known_colors
[03:44:12] [PASSED] destination_pitch
[03:44:12] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[03:44:12] ==================== drm_test_fb_swab =====================
[03:44:12] [PASSED] single_pixel_source_buffer
[03:44:12] [PASSED] single_pixel_clip_rectangle
[03:44:12] [PASSED] well_known_colors
[03:44:12] [PASSED] destination_pitch
[03:44:12] ================ [PASSED] drm_test_fb_swab =================
[03:44:12] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[03:44:12] [PASSED] single_pixel_source_buffer
[03:44:12] [PASSED] single_pixel_clip_rectangle
[03:44:12] [PASSED] well_known_colors
[03:44:12] [PASSED] destination_pitch
[03:44:12] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[03:44:12] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[03:44:12] [PASSED] single_pixel_source_buffer
[03:44:12] [PASSED] single_pixel_clip_rectangle
[03:44:12] [PASSED] well_known_colors
[03:44:12] [PASSED] destination_pitch
[03:44:12] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[03:44:12] ================= drm_test_fb_clip_offset =================
[03:44:12] [PASSED] pass through
[03:44:12] [PASSED] horizontal offset
[03:44:12] [PASSED] vertical offset
[03:44:12] [PASSED] horizontal and vertical offset
[03:44:12] [PASSED] horizontal offset (custom pitch)
[03:44:12] [PASSED] vertical offset (custom pitch)
[03:44:12] [PASSED] horizontal and vertical offset (custom pitch)
[03:44:12] ============= [PASSED] drm_test_fb_clip_offset =============
[03:44:12] =================== drm_test_fb_memcpy ====================
[03:44:12] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[03:44:12] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[03:44:12] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[03:44:12] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[03:44:12] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[03:44:12] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[03:44:12] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[03:44:12] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[03:44:12] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[03:44:12] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[03:44:12] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[03:44:12] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[03:44:12] =============== [PASSED] drm_test_fb_memcpy ================
[03:44:12] ============= [PASSED] drm_format_helper_test ==============
[03:44:12] ================= drm_format (18 subtests) =================
[03:44:12] [PASSED] drm_test_format_block_width_invalid
[03:44:12] [PASSED] drm_test_format_block_width_one_plane
[03:44:12] [PASSED] drm_test_format_block_width_two_plane
[03:44:12] [PASSED] drm_test_format_block_width_three_plane
[03:44:12] [PASSED] drm_test_format_block_width_tiled
[03:44:12] [PASSED] drm_test_format_block_height_invalid
[03:44:12] [PASSED] drm_test_format_block_height_one_plane
[03:44:12] [PASSED] drm_test_format_block_height_two_plane
[03:44:12] [PASSED] drm_test_format_block_height_three_plane
[03:44:12] [PASSED] drm_test_format_block_height_tiled
[03:44:12] [PASSED] drm_test_format_min_pitch_invalid
[03:44:12] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[03:44:12] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[03:44:12] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[03:44:12] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[03:44:12] [PASSED] drm_test_format_min_pitch_two_plane
[03:44:12] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[03:44:12] [PASSED] drm_test_format_min_pitch_tiled
[03:44:12] =================== [PASSED] drm_format ====================
[03:44:12] ============== drm_framebuffer (10 subtests) ===============
[03:44:12] ========== drm_test_framebuffer_check_src_coords ==========
[03:44:12] [PASSED] Success: source fits into fb
[03:44:12] [PASSED] Fail: overflowing fb with x-axis coordinate
[03:44:12] [PASSED] Fail: overflowing fb with y-axis coordinate
[03:44:12] [PASSED] Fail: overflowing fb with source width
[03:44:12] [PASSED] Fail: overflowing fb with source height
[03:44:12] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[03:44:12] [PASSED] drm_test_framebuffer_cleanup
[03:44:12] =============== drm_test_framebuffer_create ===============
[03:44:12] [PASSED] ABGR8888 normal sizes
[03:44:12] [PASSED] ABGR8888 max sizes
[03:44:12] [PASSED] ABGR8888 pitch greater than min required
[03:44:12] [PASSED] ABGR8888 pitch less than min required
[03:44:12] [PASSED] ABGR8888 Invalid width
[03:44:12] [PASSED] ABGR8888 Invalid buffer handle
[03:44:12] [PASSED] No pixel format
[03:44:12] [PASSED] ABGR8888 Width 0
[03:44:12] [PASSED] ABGR8888 Height 0
[03:44:12] [PASSED] ABGR8888 Out of bound height * pitch combination
[03:44:12] [PASSED] ABGR8888 Large buffer offset
[03:44:12] [PASSED] ABGR8888 Buffer offset for inexistent plane
[03:44:12] [PASSED] ABGR8888 Invalid flag
[03:44:12] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[03:44:12] [PASSED] ABGR8888 Valid buffer modifier
[03:44:12] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[03:44:12] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[03:44:12] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[03:44:12] [PASSED] NV12 Normal sizes
[03:44:12] [PASSED] NV12 Max sizes
[03:44:12] [PASSED] NV12 Invalid pitch
[03:44:12] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[03:44:12] [PASSED] NV12 different modifier per-plane
[03:44:12] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[03:44:12] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[03:44:12] [PASSED] NV12 Modifier for inexistent plane
[03:44:12] [PASSED] NV12 Handle for inexistent plane
[03:44:12] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[03:44:12] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[03:44:12] [PASSED] YVU420 Normal sizes
[03:44:12] [PASSED] YVU420 Max sizes
[03:44:12] [PASSED] YVU420 Invalid pitch
[03:44:12] [PASSED] YVU420 Different pitches
[03:44:12] [PASSED] YVU420 Different buffer offsets/pitches
[03:44:12] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[03:44:12] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[03:44:12] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[03:44:12] [PASSED] YVU420 Valid modifier
[03:44:12] [PASSED] YVU420 Different modifiers per plane
[03:44:12] [PASSED] YVU420 Modifier for inexistent plane
[03:44:12] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[03:44:12] [PASSED] X0L2 Normal sizes
[03:44:12] [PASSED] X0L2 Max sizes
[03:44:12] [PASSED] X0L2 Invalid pitch
[03:44:12] [PASSED] X0L2 Pitch greater than minimum required
[03:44:12] [PASSED] X0L2 Handle for inexistent plane
[03:44:12] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[03:44:12] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[03:44:12] [PASSED] X0L2 Valid modifier
[03:44:12] [PASSED] X0L2 Modifier for inexistent plane
[03:44:12] =========== [PASSED] drm_test_framebuffer_create ===========
[03:44:12] [PASSED] drm_test_framebuffer_free
[03:44:12] [PASSED] drm_test_framebuffer_init
[03:44:12] [PASSED] drm_test_framebuffer_init_bad_format
[03:44:12] [PASSED] drm_test_framebuffer_init_dev_mismatch
[03:44:12] [PASSED] drm_test_framebuffer_lookup
[03:44:12] [PASSED] drm_test_framebuffer_lookup_inexistent
[03:44:12] [PASSED] drm_test_framebuffer_modifiers_not_supported
[03:44:12] ================= [PASSED] drm_framebuffer =================
[03:44:12] ================ drm_gem_shmem (8 subtests) ================
[03:44:12] [PASSED] drm_gem_shmem_test_obj_create
[03:44:12] [PASSED] drm_gem_shmem_test_obj_create_private
[03:44:12] [PASSED] drm_gem_shmem_test_pin_pages
[03:44:12] [PASSED] drm_gem_shmem_test_vmap
[03:44:12] [PASSED] drm_gem_shmem_test_get_pages_sgt
[03:44:12] [PASSED] drm_gem_shmem_test_get_sg_table
[03:44:12] [PASSED] drm_gem_shmem_test_madvise
[03:44:12] [PASSED] drm_gem_shmem_test_purge
[03:44:12] ================== [PASSED] drm_gem_shmem ==================
[03:44:12] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[03:44:12] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[03:44:12] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[03:44:12] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[03:44:12] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[03:44:12] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[03:44:12] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[03:44:12] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[03:44:12] [PASSED] Automatic
[03:44:12] [PASSED] Full
[03:44:12] [PASSED] Limited 16:235
[03:44:12] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[03:44:12] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[03:44:12] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[03:44:12] [PASSED] drm_test_check_disable_connector
[03:44:12] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[03:44:12] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[03:44:12] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[03:44:12] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[03:44:12] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[03:44:12] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[03:44:12] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[03:44:12] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[03:44:12] [PASSED] drm_test_check_output_bpc_dvi
[03:44:12] [PASSED] drm_test_check_output_bpc_format_vic_1
[03:44:12] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[03:44:12] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[03:44:12] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[03:44:12] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[03:44:12] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[03:44:12] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[03:44:12] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[03:44:12] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[03:44:12] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[03:44:12] [PASSED] drm_test_check_broadcast_rgb_value
[03:44:12] [PASSED] drm_test_check_bpc_8_value
[03:44:12] [PASSED] drm_test_check_bpc_10_value
[03:44:12] [PASSED] drm_test_check_bpc_12_value
[03:44:12] [PASSED] drm_test_check_format_value
[03:44:12] [PASSED] drm_test_check_tmds_char_value
[03:44:12] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[03:44:12] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[03:44:12] [PASSED] drm_test_check_mode_valid
[03:44:12] [PASSED] drm_test_check_mode_valid_reject
[03:44:12] [PASSED] drm_test_check_mode_valid_reject_rate
[03:44:12] [PASSED] drm_test_check_mode_valid_reject_max_clock
[03:44:12] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[03:44:12] ================= drm_managed (2 subtests) =================
[03:44:12] [PASSED] drm_test_managed_release_action
[03:44:12] [PASSED] drm_test_managed_run_action
[03:44:12] =================== [PASSED] drm_managed ===================
[03:44:12] =================== drm_mm (6 subtests) ====================
[03:44:12] [PASSED] drm_test_mm_init
[03:44:12] [PASSED] drm_test_mm_debug
[03:44:12] [PASSED] drm_test_mm_align32
[03:44:12] [PASSED] drm_test_mm_align64
[03:44:12] [PASSED] drm_test_mm_lowest
[03:44:12] [PASSED] drm_test_mm_highest
[03:44:12] ===================== [PASSED] drm_mm ======================
[03:44:12] ============= drm_modes_analog_tv (5 subtests) =============
[03:44:12] [PASSED] drm_test_modes_analog_tv_mono_576i
[03:44:12] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[03:44:12] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[03:44:12] [PASSED] drm_test_modes_analog_tv_pal_576i
[03:44:12] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[03:44:12] =============== [PASSED] drm_modes_analog_tv ===============
[03:44:12] ============== drm_plane_helper (2 subtests) ===============
[03:44:12] =============== drm_test_check_plane_state ================
[03:44:12] [PASSED] clipping_simple
[03:44:12] [PASSED] clipping_rotate_reflect
[03:44:12] [PASSED] positioning_simple
[03:44:12] [PASSED] upscaling
[03:44:12] [PASSED] downscaling
[03:44:12] [PASSED] rounding1
[03:44:12] [PASSED] rounding2
[03:44:12] [PASSED] rounding3
[03:44:12] [PASSED] rounding4
[03:44:12] =========== [PASSED] drm_test_check_plane_state ============
[03:44:12] =========== drm_test_check_invalid_plane_state ============
[03:44:12] [PASSED] positioning_invalid
[03:44:12] [PASSED] upscaling_invalid
[03:44:12] [PASSED] downscaling_invalid
[03:44:12] ======= [PASSED] drm_test_check_invalid_plane_state ========
[03:44:12] ================ [PASSED] drm_plane_helper =================
[03:44:12] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[03:44:12] ====== drm_test_connector_helper_tv_get_modes_check =======
[03:44:12] [PASSED] None
[03:44:12] [PASSED] PAL
[03:44:12] [PASSED] NTSC
[03:44:12] [PASSED] Both, NTSC Default
[03:44:12] [PASSED] Both, PAL Default
[03:44:12] [PASSED] Both, NTSC Default, with PAL on command-line
[03:44:12] [PASSED] Both, PAL Default, with NTSC on command-line
[03:44:12] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[03:44:12] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[03:44:12] ================== drm_rect (9 subtests) ===================
[03:44:12] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[03:44:12] [PASSED] drm_test_rect_clip_scaled_not_clipped
[03:44:12] [PASSED] drm_test_rect_clip_scaled_clipped
[03:44:12] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[03:44:12] ================= drm_test_rect_intersect =================
[03:44:12] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[03:44:12] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[03:44:12] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[03:44:12] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[03:44:12] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[03:44:12] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[03:44:12] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[03:44:12] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[03:44:12] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[03:44:12] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[03:44:12] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[03:44:12] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[03:44:12] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[03:44:12] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[03:44:12] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[03:44:12] ============= [PASSED] drm_test_rect_intersect =============
[03:44:12] ================ drm_test_rect_calc_hscale ================
[03:44:12] [PASSED] normal use
[03:44:12] [PASSED] out of max range
[03:44:12] [PASSED] out of min range
[03:44:12] [PASSED] zero dst
[03:44:12] [PASSED] negative src
[03:44:12] [PASSED] negative dst
[03:44:12] ============ [PASSED] drm_test_rect_calc_hscale ============
[03:44:12] ================ drm_test_rect_calc_vscale ================
[03:44:12] [PASSED] normal use
stty: 'standard input': Inappropriate ioctl for device
[03:44:12] [PASSED] out of max range
[03:44:12] [PASSED] out of min range
[03:44:12] [PASSED] zero dst
[03:44:12] [PASSED] negative src
[03:44:12] [PASSED] negative dst
[03:44:12] ============ [PASSED] drm_test_rect_calc_vscale ============
[03:44:12] ================== drm_test_rect_rotate ===================
[03:44:12] [PASSED] reflect-x
[03:44:12] [PASSED] reflect-y
[03:44:12] [PASSED] rotate-0
[03:44:12] [PASSED] rotate-90
[03:44:12] [PASSED] rotate-180
[03:44:12] [PASSED] rotate-270
[03:44:12] ============== [PASSED] drm_test_rect_rotate ===============
[03:44:12] ================ drm_test_rect_rotate_inv =================
[03:44:12] [PASSED] reflect-x
[03:44:12] [PASSED] reflect-y
[03:44:12] [PASSED] rotate-0
[03:44:12] [PASSED] rotate-90
[03:44:12] [PASSED] rotate-180
[03:44:12] [PASSED] rotate-270
[03:44:12] ============ [PASSED] drm_test_rect_rotate_inv =============
[03:44:12] ==================== [PASSED] drm_rect =====================
[03:44:12] ============ drm_sysfb_modeset_test (1 subtest) ============
[03:44:12] ============ drm_test_sysfb_build_fourcc_list =============
[03:44:12] [PASSED] no native formats
[03:44:12] [PASSED] XRGB8888 as native format
[03:44:12] [PASSED] remove duplicates
[03:44:12] [PASSED] convert alpha formats
[03:44:12] [PASSED] random formats
[03:44:12] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[03:44:12] ============= [PASSED] drm_sysfb_modeset_test ==============
[03:44:12] ============================================================
[03:44:12] Testing complete. Ran 622 tests: passed: 622
[03:44:12] Elapsed time: 26.675s total, 1.693s configuring, 24.566s building, 0.370s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[03:44:12] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[03:44: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
[03:44:23] Starting KUnit Kernel (1/1)...
[03:44:23] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[03:44:23] ================= ttm_device (5 subtests) ==================
[03:44:23] [PASSED] ttm_device_init_basic
[03:44:23] [PASSED] ttm_device_init_multiple
[03:44:23] [PASSED] ttm_device_fini_basic
[03:44:23] [PASSED] ttm_device_init_no_vma_man
[03:44:23] ================== ttm_device_init_pools ==================
[03:44:23] [PASSED] No DMA allocations, no DMA32 required
[03:44:23] [PASSED] DMA allocations, DMA32 required
[03:44:23] [PASSED] No DMA allocations, DMA32 required
[03:44:23] [PASSED] DMA allocations, no DMA32 required
[03:44:23] ============== [PASSED] ttm_device_init_pools ==============
[03:44:23] =================== [PASSED] ttm_device ====================
[03:44:23] ================== ttm_pool (8 subtests) ===================
[03:44:23] ================== ttm_pool_alloc_basic ===================
[03:44:23] [PASSED] One page
[03:44:23] [PASSED] More than one page
[03:44:23] [PASSED] Above the allocation limit
[03:44:23] [PASSED] One page, with coherent DMA mappings enabled
[03:44:23] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[03:44:23] ============== [PASSED] ttm_pool_alloc_basic ===============
[03:44:23] ============== ttm_pool_alloc_basic_dma_addr ==============
[03:44:23] [PASSED] One page
[03:44:23] [PASSED] More than one page
[03:44:23] [PASSED] Above the allocation limit
[03:44:23] [PASSED] One page, with coherent DMA mappings enabled
[03:44:23] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[03:44:23] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[03:44:23] [PASSED] ttm_pool_alloc_order_caching_match
[03:44:23] [PASSED] ttm_pool_alloc_caching_mismatch
[03:44:23] [PASSED] ttm_pool_alloc_order_mismatch
[03:44:23] [PASSED] ttm_pool_free_dma_alloc
[03:44:23] [PASSED] ttm_pool_free_no_dma_alloc
[03:44:23] [PASSED] ttm_pool_fini_basic
[03:44:23] ==================== [PASSED] ttm_pool =====================
[03:44:23] ================ ttm_resource (8 subtests) =================
[03:44:23] ================= ttm_resource_init_basic =================
[03:44:23] [PASSED] Init resource in TTM_PL_SYSTEM
[03:44:23] [PASSED] Init resource in TTM_PL_VRAM
[03:44:23] [PASSED] Init resource in a private placement
[03:44:23] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[03:44:23] ============= [PASSED] ttm_resource_init_basic =============
[03:44:23] [PASSED] ttm_resource_init_pinned
[03:44:23] [PASSED] ttm_resource_fini_basic
[03:44:23] [PASSED] ttm_resource_manager_init_basic
[03:44:23] [PASSED] ttm_resource_manager_usage_basic
[03:44:23] [PASSED] ttm_resource_manager_set_used_basic
[03:44:23] [PASSED] ttm_sys_man_alloc_basic
[03:44:23] [PASSED] ttm_sys_man_free_basic
[03:44:23] ================== [PASSED] ttm_resource ===================
[03:44:23] =================== ttm_tt (15 subtests) ===================
[03:44:23] ==================== ttm_tt_init_basic ====================
[03:44:23] [PASSED] Page-aligned size
[03:44:23] [PASSED] Extra pages requested
[03:44:23] ================ [PASSED] ttm_tt_init_basic ================
[03:44:23] [PASSED] ttm_tt_init_misaligned
[03:44:23] [PASSED] ttm_tt_fini_basic
[03:44:23] [PASSED] ttm_tt_fini_sg
[03:44:23] [PASSED] ttm_tt_fini_shmem
[03:44:23] [PASSED] ttm_tt_create_basic
[03:44:23] [PASSED] ttm_tt_create_invalid_bo_type
[03:44:23] [PASSED] ttm_tt_create_ttm_exists
[03:44:23] [PASSED] ttm_tt_create_failed
[03:44:23] [PASSED] ttm_tt_destroy_basic
[03:44:23] [PASSED] ttm_tt_populate_null_ttm
[03:44:23] [PASSED] ttm_tt_populate_populated_ttm
[03:44:23] [PASSED] ttm_tt_unpopulate_basic
[03:44:23] [PASSED] ttm_tt_unpopulate_empty_ttm
[03:44:23] [PASSED] ttm_tt_swapin_basic
[03:44:23] ===================== [PASSED] ttm_tt ======================
[03:44:23] =================== ttm_bo (14 subtests) ===================
[03:44:23] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[03:44:23] [PASSED] Cannot be interrupted and sleeps
[03:44:23] [PASSED] Cannot be interrupted, locks straight away
[03:44:23] [PASSED] Can be interrupted, sleeps
[03:44:23] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[03:44:23] [PASSED] ttm_bo_reserve_locked_no_sleep
[03:44:23] [PASSED] ttm_bo_reserve_no_wait_ticket
[03:44:23] [PASSED] ttm_bo_reserve_double_resv
[03:44:23] [PASSED] ttm_bo_reserve_interrupted
[03:44:23] [PASSED] ttm_bo_reserve_deadlock
[03:44:23] [PASSED] ttm_bo_unreserve_basic
[03:44:23] [PASSED] ttm_bo_unreserve_pinned
[03:44:23] [PASSED] ttm_bo_unreserve_bulk
[03:44:23] [PASSED] ttm_bo_fini_basic
[03:44:23] [PASSED] ttm_bo_fini_shared_resv
[03:44:23] [PASSED] ttm_bo_pin_basic
[03:44:23] [PASSED] ttm_bo_pin_unpin_resource
[03:44:23] [PASSED] ttm_bo_multiple_pin_one_unpin
[03:44:23] ===================== [PASSED] ttm_bo ======================
[03:44:23] ============== ttm_bo_validate (21 subtests) ===============
[03:44:23] ============== ttm_bo_init_reserved_sys_man ===============
[03:44:23] [PASSED] Buffer object for userspace
[03:44:23] [PASSED] Kernel buffer object
[03:44:23] [PASSED] Shared buffer object
[03:44:23] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[03:44:23] ============== ttm_bo_init_reserved_mock_man ==============
[03:44:23] [PASSED] Buffer object for userspace
[03:44:23] [PASSED] Kernel buffer object
[03:44:23] [PASSED] Shared buffer object
[03:44:23] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[03:44:23] [PASSED] ttm_bo_init_reserved_resv
[03:44:23] ================== ttm_bo_validate_basic ==================
[03:44:23] [PASSED] Buffer object for userspace
[03:44:23] [PASSED] Kernel buffer object
[03:44:23] [PASSED] Shared buffer object
[03:44:23] ============== [PASSED] ttm_bo_validate_basic ==============
[03:44:23] [PASSED] ttm_bo_validate_invalid_placement
[03:44:23] ============= ttm_bo_validate_same_placement ==============
[03:44:23] [PASSED] System manager
[03:44:23] [PASSED] VRAM manager
[03:44:23] ========= [PASSED] ttm_bo_validate_same_placement ==========
[03:44:23] [PASSED] ttm_bo_validate_failed_alloc
[03:44:23] [PASSED] ttm_bo_validate_pinned
[03:44:23] [PASSED] ttm_bo_validate_busy_placement
[03:44:23] ================ ttm_bo_validate_multihop =================
[03:44:23] [PASSED] Buffer object for userspace
[03:44:23] [PASSED] Kernel buffer object
[03:44:23] [PASSED] Shared buffer object
[03:44:23] ============ [PASSED] ttm_bo_validate_multihop =============
[03:44:23] ========== ttm_bo_validate_no_placement_signaled ==========
[03:44:23] [PASSED] Buffer object in system domain, no page vector
[03:44:23] [PASSED] Buffer object in system domain with an existing page vector
[03:44:23] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[03:44:23] ======== ttm_bo_validate_no_placement_not_signaled ========
[03:44:23] [PASSED] Buffer object for userspace
[03:44:23] [PASSED] Kernel buffer object
[03:44:23] [PASSED] Shared buffer object
[03:44:23] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[03:44:23] [PASSED] ttm_bo_validate_move_fence_signaled
[03:44:23] ========= ttm_bo_validate_move_fence_not_signaled =========
[03:44:23] [PASSED] Waits for GPU
[03:44:23] [PASSED] Tries to lock straight away
[03:44:23] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[03:44:23] [PASSED] ttm_bo_validate_happy_evict
[03:44:23] [PASSED] ttm_bo_validate_all_pinned_evict
[03:44:23] [PASSED] ttm_bo_validate_allowed_only_evict
[03:44:23] [PASSED] ttm_bo_validate_deleted_evict
[03:44:23] [PASSED] ttm_bo_validate_busy_domain_evict
[03:44:23] [PASSED] ttm_bo_validate_evict_gutting
[03:44:23] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[03:44:23] ================= [PASSED] ttm_bo_validate =================
[03:44:23] ============================================================
[03:44:23] Testing complete. Ran 101 tests: passed: 101
[03:44:23] Elapsed time: 11.185s total, 1.705s configuring, 9.264s building, 0.182s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 17+ messages in thread
* ✓ Xe.CI.BAT: success for Context based TLB invalidations
2025-11-01 1:02 [PATCH 00/12] Context based TLB invalidations Matthew Brost
` (13 preceding siblings ...)
2025-11-01 3:44 ` ✓ CI.KUnit: success " Patchwork
@ 2025-11-01 4:48 ` Patchwork
2025-11-01 23:44 ` ✓ Xe.CI.Full: " Patchwork
15 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2025-11-01 4:48 UTC (permalink / raw)
To: Matthew Brost; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 1456 bytes --]
== Series Details ==
Series: Context based TLB invalidations
URL : https://patchwork.freedesktop.org/series/156874/
State : success
== Summary ==
CI Bug Log - changes from xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1_BAT -> xe-pw-156874v1_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (12 -> 12)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-156874v1_BAT that come from known issues:
### IGT changes ###
#### Possible fixes ####
* igt@kms_flip@basic-plain-flip@d-edp1:
- bat-adlp-7: [DMESG-WARN][1] ([Intel XE#4543]) -> [PASS][2] +1 other test pass
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/bat-adlp-7/igt@kms_flip@basic-plain-flip@d-edp1.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/bat-adlp-7/igt@kms_flip@basic-plain-flip@d-edp1.html
[Intel XE#4543]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4543
Build changes
-------------
* Linux: xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1 -> xe-pw-156874v1
IGT_8605: 8605
xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1: 089e83683d58db86cc4c69d34fba3a96904e40e1
xe-pw-156874v1: 156874v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/index.html
[-- Attachment #2: Type: text/html, Size: 2021 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
* ✓ Xe.CI.Full: success for Context based TLB invalidations
2025-11-01 1:02 [PATCH 00/12] Context based TLB invalidations Matthew Brost
` (14 preceding siblings ...)
2025-11-01 4:48 ` ✓ Xe.CI.BAT: " Patchwork
@ 2025-11-01 23:44 ` Patchwork
15 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2025-11-01 23:44 UTC (permalink / raw)
To: Matthew Brost; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 37886 bytes --]
== Series Details ==
Series: Context based TLB invalidations
URL : https://patchwork.freedesktop.org/series/156874/
State : success
== Summary ==
CI Bug Log - changes from xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1_FULL -> xe-pw-156874v1_FULL
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (4 -> 4)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-156874v1_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_async_flips@alternate-sync-async-flip-atomic:
- shard-bmg: [PASS][1] -> [FAIL][2] ([Intel XE#3718] / [Intel XE#6078])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-6/igt@kms_async_flips@alternate-sync-async-flip-atomic.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-4/igt@kms_async_flips@alternate-sync-async-flip-atomic.html
* igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-c-dp-2:
- shard-bmg: NOTRUN -> [FAIL][3] ([Intel XE#6078])
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-4/igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-c-dp-2.html
* igt@kms_big_fb@x-tiled-64bpp-rotate-180:
- shard-bmg: [PASS][4] -> [INCOMPLETE][5] ([Intel XE#5643])
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-6/igt@kms_big_fb@x-tiled-64bpp-rotate-180.html
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_big_fb@x-tiled-64bpp-rotate-180.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
- shard-adlp: [PASS][6] -> [DMESG-FAIL][7] ([Intel XE#4543]) +1 other test dmesg-fail
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-adlp-2/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-adlp-6/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
* igt@kms_big_fb@yf-tiled-16bpp-rotate-180:
- shard-bmg: NOTRUN -> [SKIP][8] ([Intel XE#1124]) +1 other test skip
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_big_fb@yf-tiled-16bpp-rotate-180.html
* igt@kms_big_fb@yf-tiled-8bpp-rotate-0:
- shard-dg2-set2: NOTRUN -> [SKIP][9] ([Intel XE#1124])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-463/igt@kms_big_fb@yf-tiled-8bpp-rotate-0.html
* igt@kms_bw@linear-tiling-3-displays-1920x1080p:
- shard-bmg: NOTRUN -> [SKIP][10] ([Intel XE#367])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_bw@linear-tiling-3-displays-1920x1080p.html
* igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs:
- shard-bmg: NOTRUN -> [SKIP][11] ([Intel XE#2887]) +2 other tests skip
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
- shard-bmg: NOTRUN -> [INCOMPLETE][12] ([Intel XE#3862]) +1 other test incomplete
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-y-tiled-ccs@pipe-c-dp-4:
- shard-dg2-set2: NOTRUN -> [SKIP][13] ([Intel XE#787]) +6 other tests skip
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-463/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-ccs@pipe-c-dp-4.html
* igt@kms_ccs@crc-sprite-planes-basic-y-tiled-ccs@pipe-d-dp-4:
- shard-dg2-set2: NOTRUN -> [SKIP][14] ([Intel XE#455] / [Intel XE#787]) +1 other test skip
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-463/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-ccs@pipe-d-dp-4.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-dp-4:
- shard-dg2-set2: [PASS][15] -> [INCOMPLETE][16] ([Intel XE#6014] / [Intel XE#6168] / [i915#14968])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-dp-4.html
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-dp-4.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-6:
- shard-dg2-set2: [PASS][17] -> [DMESG-WARN][18] ([Intel XE#1727] / [Intel XE#3113])
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-6.html
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-6.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc:
- shard-dg2-set2: [PASS][19] -> [INCOMPLETE][20] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4345] / [Intel XE#4522])
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-d-dp-4:
- shard-dg2-set2: [PASS][21] -> [INCOMPLETE][22] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4522])
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-d-dp-4.html
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-d-dp-4.html
* igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs@pipe-c-dp-2:
- shard-bmg: NOTRUN -> [SKIP][23] ([Intel XE#2652] / [Intel XE#787]) +16 other tests skip
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs@pipe-c-dp-2.html
* igt@kms_chamelium_hpd@dp-hpd:
- shard-bmg: NOTRUN -> [SKIP][24] ([Intel XE#2252]) +1 other test skip
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_chamelium_hpd@dp-hpd.html
* igt@kms_chamelium_hpd@dp-hpd-enable-disable-mode:
- shard-dg2-set2: NOTRUN -> [SKIP][25] ([Intel XE#373]) +1 other test skip
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-463/igt@kms_chamelium_hpd@dp-hpd-enable-disable-mode.html
* igt@kms_content_protection@legacy:
- shard-dg2-set2: NOTRUN -> [FAIL][26] ([Intel XE#1178]) +1 other test fail
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-463/igt@kms_content_protection@legacy.html
* igt@kms_cursor_crc@cursor-onscreen-64x21:
- shard-bmg: NOTRUN -> [SKIP][27] ([Intel XE#2320]) +2 other tests skip
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_cursor_crc@cursor-onscreen-64x21.html
* igt@kms_cursor_crc@cursor-random-64x64:
- shard-adlp: [PASS][28] -> [DMESG-WARN][29] ([Intel XE#2953] / [Intel XE#4173]) +5 other tests dmesg-warn
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-adlp-2/igt@kms_cursor_crc@cursor-random-64x64.html
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-adlp-6/igt@kms_cursor_crc@cursor-random-64x64.html
* igt@kms_cursor_legacy@cursorb-vs-flipa-legacy:
- shard-bmg: [PASS][30] -> [SKIP][31] ([Intel XE#2291]) +2 other tests skip
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-8/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-6/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html
* igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-3:
- shard-bmg: NOTRUN -> [SKIP][32] ([Intel XE#1340])
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-3.html
* igt@kms_dsc@dsc-with-output-formats-with-bpc:
- shard-dg2-set2: NOTRUN -> [SKIP][33] ([Intel XE#455])
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-463/igt@kms_dsc@dsc-with-output-formats-with-bpc.html
* igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests:
- shard-bmg: NOTRUN -> [SKIP][34] ([Intel XE#4422])
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests.html
* igt@kms_flip@2x-plain-flip-fb-recreate:
- shard-bmg: [PASS][35] -> [SKIP][36] ([Intel XE#2316]) +9 other tests skip
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-2/igt@kms_flip@2x-plain-flip-fb-recreate.html
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-6/igt@kms_flip@2x-plain-flip-fb-recreate.html
* igt@kms_flip@plain-flip-ts-check@c-hdmi-a1:
- shard-adlp: [PASS][37] -> [DMESG-WARN][38] ([Intel XE#4543])
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-adlp-8/igt@kms_flip@plain-flip-ts-check@c-hdmi-a1.html
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-adlp-2/igt@kms_flip@plain-flip-ts-check@c-hdmi-a1.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling:
- shard-bmg: NOTRUN -> [SKIP][39] ([Intel XE#2293] / [Intel XE#2380]) +1 other test skip
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling@pipe-a-valid-mode:
- shard-bmg: NOTRUN -> [SKIP][40] ([Intel XE#2293]) +1 other test skip
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling@pipe-a-valid-mode.html
* igt@kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-msflip-blt:
- shard-dg2-set2: NOTRUN -> [SKIP][41] ([Intel XE#651])
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-463/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][42] ([Intel XE#5390]) +1 other test skip
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-move:
- shard-bmg: NOTRUN -> [SKIP][43] ([Intel XE#2311]) +4 other tests skip
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-move.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][44] ([Intel XE#2313]) +6 other tests skip
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-mmap-wc:
- shard-dg2-set2: NOTRUN -> [SKIP][45] ([Intel XE#6312])
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-463/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-shrfb-scaledprimary:
- shard-dg2-set2: NOTRUN -> [SKIP][46] ([Intel XE#653]) +1 other test skip
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-463/igt@kms_frontbuffer_tracking@psr-shrfb-scaledprimary.html
* igt@kms_hdr@static-toggle-suspend:
- shard-bmg: [PASS][47] -> [SKIP][48] ([Intel XE#1503])
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-2/igt@kms_hdr@static-toggle-suspend.html
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-6/igt@kms_hdr@static-toggle-suspend.html
* igt@kms_joiner@invalid-modeset-force-big-joiner:
- shard-bmg: [PASS][49] -> [SKIP][50] ([Intel XE#3012])
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-4/igt@kms_joiner@invalid-modeset-force-big-joiner.html
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-6/igt@kms_joiner@invalid-modeset-force-big-joiner.html
* igt@kms_joiner@invalid-modeset-force-ultra-joiner:
- shard-bmg: NOTRUN -> [SKIP][51] ([Intel XE#2934])
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
* igt@kms_plane_multiple@2x-tiling-yf:
- shard-dg2-set2: NOTRUN -> [SKIP][52] ([Intel XE#5021])
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-463/igt@kms_plane_multiple@2x-tiling-yf.html
* igt@kms_plane_scaling@2x-scaler-multi-pipe:
- shard-bmg: [PASS][53] -> [SKIP][54] ([Intel XE#2571])
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-4/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-6/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
* igt@kms_pm_rpm@universal-planes:
- shard-adlp: [PASS][55] -> [DMESG-WARN][56] ([Intel XE#2953] / [Intel XE#4173] / [Intel XE#5750])
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-adlp-2/igt@kms_pm_rpm@universal-planes.html
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-adlp-6/igt@kms_pm_rpm@universal-planes.html
* igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf:
- shard-dg2-set2: NOTRUN -> [SKIP][57] ([Intel XE#1406] / [Intel XE#1489])
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-463/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-sf:
- shard-bmg: NOTRUN -> [SKIP][58] ([Intel XE#1406] / [Intel XE#1489]) +1 other test skip
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-sf.html
* igt@kms_psr@psr2-suspend:
- shard-bmg: NOTRUN -> [SKIP][59] ([Intel XE#1406] / [Intel XE#2234] / [Intel XE#2850]) +3 other tests skip
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_psr@psr2-suspend.html
* igt@kms_rotation_crc@primary-rotation-90:
- shard-dg2-set2: NOTRUN -> [SKIP][60] ([Intel XE#3414])
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-463/igt@kms_rotation_crc@primary-rotation-90.html
* igt@kms_setmode@invalid-clone-single-crtc:
- shard-bmg: [PASS][61] -> [SKIP][62] ([Intel XE#1435])
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-2/igt@kms_setmode@invalid-clone-single-crtc.html
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-6/igt@kms_setmode@invalid-clone-single-crtc.html
* igt@kms_vrr@cmrr:
- shard-bmg: NOTRUN -> [SKIP][63] ([Intel XE#2168])
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_vrr@cmrr.html
* igt@kms_vrr@negative-basic:
- shard-bmg: [PASS][64] -> [SKIP][65] ([Intel XE#1499])
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-4/igt@kms_vrr@negative-basic.html
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-6/igt@kms_vrr@negative-basic.html
* igt@xe_copy_basic@mem-page-copy-17:
- shard-dg2-set2: NOTRUN -> [SKIP][66] ([Intel XE#5300])
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-463/igt@xe_copy_basic@mem-page-copy-17.html
* igt@xe_eudebug_online@stopped-thread:
- shard-bmg: NOTRUN -> [SKIP][67] ([Intel XE#4837]) +1 other test skip
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@xe_eudebug_online@stopped-thread.html
* igt@xe_exec_fault_mode@many-bindexecqueue-userptr-imm:
- shard-dg2-set2: NOTRUN -> [SKIP][68] ([Intel XE#288]) +1 other test skip
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-463/igt@xe_exec_fault_mode@many-bindexecqueue-userptr-imm.html
* igt@xe_exec_system_allocator@many-64k-mmap-huge:
- shard-bmg: NOTRUN -> [SKIP][69] ([Intel XE#5007])
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@xe_exec_system_allocator@many-64k-mmap-huge.html
* igt@xe_exec_system_allocator@many-execqueues-mmap-huge-nomemset:
- shard-bmg: NOTRUN -> [SKIP][70] ([Intel XE#4943]) +2 other tests skip
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@xe_exec_system_allocator@many-execqueues-mmap-huge-nomemset.html
* igt@xe_exec_system_allocator@threads-many-mmap-prefetch:
- shard-dg2-set2: NOTRUN -> [SKIP][71] ([Intel XE#4915]) +14 other tests skip
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-463/igt@xe_exec_system_allocator@threads-many-mmap-prefetch.html
* igt@xe_live_ktest@xe_eudebug:
- shard-bmg: NOTRUN -> [SKIP][72] ([Intel XE#2833])
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@xe_live_ktest@xe_eudebug.html
* igt@xe_module_load@many-reload:
- shard-adlp: [PASS][73] -> [DMESG-WARN][74] ([Intel XE#2953] / [Intel XE#4173] / [Intel XE#5244])
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-adlp-2/igt@xe_module_load@many-reload.html
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-adlp-6/igt@xe_module_load@many-reload.html
* igt@xe_pm@s2idle-vm-bind-prefetch:
- shard-adlp: [PASS][75] -> [DMESG-WARN][76] ([Intel XE#2953] / [Intel XE#4173] / [Intel XE#4504])
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-adlp-3/igt@xe_pm@s2idle-vm-bind-prefetch.html
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-adlp-4/igt@xe_pm@s2idle-vm-bind-prefetch.html
* igt@xe_pmu@fn-engine-activity-load:
- shard-dg2-set2: NOTRUN -> [SKIP][77] ([Intel XE#4650])
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-463/igt@xe_pmu@fn-engine-activity-load.html
* igt@xe_pxp@pxp-termination-key-update-post-rpm:
- shard-bmg: NOTRUN -> [SKIP][78] ([Intel XE#4733]) +1 other test skip
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@xe_pxp@pxp-termination-key-update-post-rpm.html
* igt@xe_query@multigpu-query-gt-list:
- shard-dg2-set2: NOTRUN -> [SKIP][79] ([Intel XE#944])
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-463/igt@xe_query@multigpu-query-gt-list.html
* igt@xe_sriov_flr@flr-twice:
- shard-dg2-set2: NOTRUN -> [SKIP][80] ([Intel XE#4273])
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-463/igt@xe_sriov_flr@flr-twice.html
#### Possible fixes ####
* igt@kms_atomic@crtc-invalid-params-fence:
- shard-adlp: [DMESG-WARN][81] ([Intel XE#2953] / [Intel XE#4173]) -> [PASS][82] +2 other tests pass
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-adlp-1/igt@kms_atomic@crtc-invalid-params-fence.html
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-adlp-8/igt@kms_atomic@crtc-invalid-params-fence.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
- shard-adlp: [DMESG-FAIL][83] ([Intel XE#4543]) -> [PASS][84] +2 other tests pass
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-adlp-6/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-adlp-1/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs:
- shard-dg2-set2: [INCOMPLETE][85] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4345] / [Intel XE#6168]) -> [PASS][86]
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-6:
- shard-dg2-set2: [INCOMPLETE][87] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#6168]) -> [PASS][88]
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-6.html
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-6.html
* igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic:
- shard-bmg: [SKIP][89] ([Intel XE#2291]) -> [PASS][90] +4 other tests pass
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-6/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-4/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
- shard-bmg: [FAIL][91] ([Intel XE#1475]) -> [PASS][92]
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-8/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
* igt@kms_display_modes@extended-mode-basic:
- shard-bmg: [SKIP][93] ([Intel XE#4302]) -> [PASS][94]
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-6/igt@kms_display_modes@extended-mode-basic.html
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-8/igt@kms_display_modes@extended-mode-basic.html
* igt@kms_dp_link_training@non-uhbr-sst:
- shard-bmg: [SKIP][95] ([Intel XE#4354]) -> [PASS][96]
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-6/igt@kms_dp_link_training@non-uhbr-sst.html
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-4/igt@kms_dp_link_training@non-uhbr-sst.html
* igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible:
- shard-bmg: [SKIP][97] ([Intel XE#2316]) -> [PASS][98] +3 other tests pass
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-6/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible.html
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible.html
* igt@kms_flip@dpms-vs-vblank-race-interruptible:
- shard-adlp: [DMESG-WARN][99] ([Intel XE#2953] / [Intel XE#4173] / [Intel XE#5208]) -> [PASS][100]
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-adlp-1/igt@kms_flip@dpms-vs-vblank-race-interruptible.html
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-adlp-8/igt@kms_flip@dpms-vs-vblank-race-interruptible.html
* igt@kms_flip@flip-vs-suspend@b-hdmi-a1:
- shard-adlp: [DMESG-WARN][101] ([Intel XE#4543]) -> [PASS][102] +4 other tests pass
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-adlp-6/igt@kms_flip@flip-vs-suspend@b-hdmi-a1.html
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-adlp-1/igt@kms_flip@flip-vs-suspend@b-hdmi-a1.html
* igt@kms_flip_tiling@flip-change-tiling@pipe-d-hdmi-a-1-y-to-y:
- shard-adlp: [FAIL][103] ([Intel XE#1874]) -> [PASS][104] +1 other test pass
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-adlp-3/igt@kms_flip_tiling@flip-change-tiling@pipe-d-hdmi-a-1-y-to-y.html
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-adlp-4/igt@kms_flip_tiling@flip-change-tiling@pipe-d-hdmi-a-1-y-to-y.html
* igt@kms_hdr@static-toggle:
- shard-bmg: [SKIP][105] ([Intel XE#1503]) -> [PASS][106]
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-6/igt@kms_hdr@static-toggle.html
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_hdr@static-toggle.html
* igt@kms_plane_multiple@2x-tiling-4:
- shard-bmg: [SKIP][107] ([Intel XE#4596]) -> [PASS][108]
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-6/igt@kms_plane_multiple@2x-tiling-4.html
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_plane_multiple@2x-tiling-4.html
#### Warnings ####
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs:
- shard-dg2-set2: [INCOMPLETE][109] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4345] / [Intel XE#4522]) -> [INCOMPLETE][110] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4345] / [Intel XE#6168])
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
* igt@kms_content_protection@atomic:
- shard-bmg: [FAIL][111] ([Intel XE#1178]) -> [SKIP][112] ([Intel XE#2341]) +1 other test skip
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-2/igt@kms_content_protection@atomic.html
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-6/igt@kms_content_protection@atomic.html
* igt@kms_content_protection@uevent:
- shard-bmg: [FAIL][113] ([Intel XE#1188]) -> [SKIP][114] ([Intel XE#2341])
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-4/igt@kms_content_protection@uevent.html
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-6/igt@kms_content_protection@uevent.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-blt:
- shard-bmg: [SKIP][115] ([Intel XE#2312]) -> [SKIP][116] ([Intel XE#2311]) +12 other tests skip
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-blt.html
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-4/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-pgflip-blt:
- shard-bmg: [SKIP][117] ([Intel XE#2311]) -> [SKIP][118] ([Intel XE#2312]) +14 other tests skip
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-8/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-pgflip-blt.html
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-render:
- shard-bmg: [SKIP][119] ([Intel XE#2312]) -> [SKIP][120] ([Intel XE#5390]) +7 other tests skip
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-render.html
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc:
- shard-bmg: [SKIP][121] ([Intel XE#5390]) -> [SKIP][122] ([Intel XE#2312]) +4 other tests skip
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc.html
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt:
- shard-bmg: [SKIP][123] ([Intel XE#2312]) -> [SKIP][124] ([Intel XE#2313]) +14 other tests skip
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt.html
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-plflip-blt:
- shard-bmg: [SKIP][125] ([Intel XE#2313]) -> [SKIP][126] ([Intel XE#2312]) +15 other tests skip
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-plflip-blt.html
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-plflip-blt.html
* igt@kms_plane_multiple@2x-tiling-y:
- shard-bmg: [SKIP][127] ([Intel XE#5021]) -> [SKIP][128] ([Intel XE#4596])
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-8/igt@kms_plane_multiple@2x-tiling-y.html
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-6/igt@kms_plane_multiple@2x-tiling-y.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-bmg: [SKIP][129] ([Intel XE#2509]) -> [SKIP][130] ([Intel XE#2426])
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1/shard-bmg-5/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/shard-bmg-4/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[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#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
[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#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499
[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#1874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1874
[Intel XE#2168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2168
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[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#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
[Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
[Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
[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#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
[Intel XE#2571]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2571
[Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
[Intel XE#2705]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2705
[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#2934]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2934
[Intel XE#2953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2953
[Intel XE#3012]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3012
[Intel XE#3113]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3113
[Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#3718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3718
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#3862]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3862
[Intel XE#4173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4173
[Intel XE#4212]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4212
[Intel XE#4273]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4273
[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#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
[Intel XE#4422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4422
[Intel XE#4504]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4504
[Intel XE#4522]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4522
[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#4650]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4650
[Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
[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#4943]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4943
[Intel XE#5007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5007
[Intel XE#5021]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5021
[Intel XE#5208]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5208
[Intel XE#5244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5244
[Intel XE#5300]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5300
[Intel XE#5390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5390
[Intel XE#5643]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5643
[Intel XE#5750]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5750
[Intel XE#6014]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6014
[Intel XE#6078]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6078
[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#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
[Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
[Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
[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-4027-089e83683d58db86cc4c69d34fba3a96904e40e1 -> xe-pw-156874v1
IGT_8605: 8605
xe-4027-089e83683d58db86cc4c69d34fba3a96904e40e1: 089e83683d58db86cc4c69d34fba3a96904e40e1
xe-pw-156874v1: 156874v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156874v1/index.html
[-- Attachment #2: Type: text/html, Size: 45244 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2025-11-01 23:44 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-01 1:02 [PATCH 00/12] Context based TLB invalidations Matthew Brost
2025-11-01 1:02 ` [PATCH 01/12] drm/xe: Add normalize_invalidation_range Matthew Brost
2025-11-01 1:02 ` [PATCH 02/12] drm/xe: Make usm.asid_to_vm allocation use GFP_NOWAIT Matthew Brost
2025-11-01 1:02 ` [PATCH 03/12] drm/xe: Add xe_device_asid_to_vm helper Matthew Brost
2025-11-01 1:02 ` [PATCH 04/12] drm/xe: Add vm to exec queues association Matthew Brost
2025-11-01 1:02 ` [PATCH 05/12] drm/xe: Taint TLB invalidation seqno lock with GFP_KERNEL Matthew Brost
2025-11-01 1:02 ` [PATCH 06/12] drm/xe: Do not forward invalid TLB invalidation seqnos to upper layers Matthew Brost
2025-11-01 1:02 ` [PATCH 07/12] drm/xe: Rename send_tlb_inval_ppgtt to send_tlb_inval_asid_ppgtt Matthew Brost
2025-11-01 1:02 ` [PATCH 08/12] drm/xe: Add send_tlb_inval_ppgtt helper Matthew Brost
2025-11-01 1:02 ` [PATCH 09/12] drm/xe: Add xe_tlb_inval_idle helper Matthew Brost
2025-11-01 1:02 ` [PATCH 10/12] drm/xe: Add exec queue active vfunc Matthew Brost
2025-11-01 1:02 ` [PATCH 11/12] drm/xe: Add context-based invalidation to GuC TLB invalidation backend Matthew Brost
2025-11-01 1:02 ` [PATCH 12/12] drm/xe: Enable context TLB invalidations for CI Matthew Brost
2025-11-01 3:43 ` ✗ CI.checkpatch: warning for Context based TLB invalidations Patchwork
2025-11-01 3:44 ` ✓ CI.KUnit: success " Patchwork
2025-11-01 4:48 ` ✓ Xe.CI.BAT: " Patchwork
2025-11-01 23:44 ` ✓ Xe.CI.Full: " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox