* [PATCH v3 0/7] drm/xe/mmio_gem: fix fault handler and destroy path
@ 2026-07-23 16:18 Ilia Levi
2026-07-23 16:18 ` [PATCH v3 1/7] drm/xe/mmio_gem: forbid VMA split Ilia Levi
` (9 more replies)
0 siblings, 10 replies; 18+ messages in thread
From: Ilia Levi @ 2026-07-23 16:18 UTC (permalink / raw)
To: intel-xe
Cc: ilia.levi, koby.elbaz, meny.yossefi, shuicheng.lin,
thomas.hellstrom, matthew.auld, matthew.brost
This series fixes several issues in xe_mmio_gem, introduced by
1ffcf8b8ae8a ("drm/xe: Support for mmap-ing mmio regions"):
split VMA handling, WB/UC aliasing of the dummy page, a rb-tree
leak on destroy, dummy page accumulation, and use-after-free / MMIO
access after destroy. It also converts the existing PCI barrier mmap
to build on xe_mmio_gem now that the infrastructure is in place.
v3: (Matt Auld)
- New patch using the xe_mmio_gem infra for PCI barrier mmap
- New patch for rejecting VMA split
- Using dma_resv lock for synchronization
- SIGBUS instead of dummy page on access after destroy
- Some changes in patch splitting (e.g. the vm_pgoff handling now lives
in the destroy-flow patch alongside the zap that needs it)
v2:
- New patch 1/5: fix dummy page WB/UC aliasing (Sashiko)
- Patch 2/5: no longer modifies xe_mmio_gem_vm_fault_dummy_page() (handled by 1/5)
- Patch 3/5: unchanged
- Patch 4/5: compute pfn inside scoped_guard
- Patch 5/5: adapt to xe_mmio_gem_vm_fault_dummy_page() signature change, fix "objecthas" typo
Ilia Levi (5):
drm/xe/mmio_gem: forbid VMA split
drm/xe/mmio_gem: use write-back mapping for dummy page
drm/xe/mmio_gem: simplify fault handler loop
drm/xe/mmio_gem: cache the dummy page per object
drm/xe/mmio_gem: fix destroy flow
Matthew Auld (1):
drm/xe: convert PCI barrier mmap to use xe_mmio_gem
Shuicheng Lin (1):
drm/xe/mmio_gem: Revoke drm_vma_node on xe_mmio_gem destroy
drivers/gpu/drm/xe/xe_bo.c | 24 ++++--
drivers/gpu/drm/xe/xe_bo.h | 1 -
drivers/gpu/drm/xe/xe_device.c | 102 ++-----------------------
drivers/gpu/drm/xe/xe_device_types.h | 12 +++
drivers/gpu/drm/xe/xe_mmio_gem.c | 108 ++++++++++++++++++---------
drivers/gpu/drm/xe/xe_mmio_gem.h | 2 +-
6 files changed, 112 insertions(+), 137 deletions(-)
--
2.49.1
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH v3 1/7] drm/xe/mmio_gem: forbid VMA split
2026-07-23 16:18 [PATCH v3 0/7] drm/xe/mmio_gem: fix fault handler and destroy path Ilia Levi
@ 2026-07-23 16:18 ` Ilia Levi
2026-07-23 16:25 ` Matthew Auld
2026-07-23 16:18 ` [PATCH v3 2/7] drm/xe/mmio_gem: use write-back mapping for dummy page Ilia Levi
` (8 subsequent siblings)
9 siblings, 1 reply; 18+ messages in thread
From: Ilia Levi @ 2026-07-23 16:18 UTC (permalink / raw)
To: intel-xe
Cc: ilia.levi, koby.elbaz, meny.yossefi, shuicheng.lin,
thomas.hellstrom, matthew.auld, matthew.brost
The fault handler assumes it always operates on a VMA spanning the entire
GEM object. This does not hold when the VMA has been split, e.g. by a
partial munmap or mprotect. In that case the handler may map wrong
physical pages or cause SIGBUS.
Handle this by forbidding VMA split, as partial unmaps are not deemed
useful for MMIO GEMs.
Suggested-by: Matthew Auld <matthew.auld@intel.com>
Signed-off-by: Ilia Levi <ilia.levi@intel.com>
Fixes: 1ffcf8b8ae8a ("drm/xe: Support for mmap-ing mmio regions")
---
drivers/gpu/drm/xe/xe_mmio_gem.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_mmio_gem.c b/drivers/gpu/drm/xe/xe_mmio_gem.c
index 8c803ef233cc..f15a6a84af15 100644
--- a/drivers/gpu/drm/xe/xe_mmio_gem.c
+++ b/drivers/gpu/drm/xe/xe_mmio_gem.c
@@ -39,10 +39,20 @@ struct xe_mmio_gem {
phys_addr_t phys_addr;
};
+static int xe_mmio_gem_vm_may_split(struct vm_area_struct *area, unsigned long addr)
+{
+ /*
+ * Forbid splitting. Together with VM_DONTEXPAND, this keeps the VMA
+ * matching the GEM object exactly.
+ */
+ return -EINVAL;
+}
+
static const struct vm_operations_struct vm_ops = {
.open = drm_gem_vm_open,
.close = drm_gem_vm_close,
.fault = xe_mmio_gem_vm_fault,
+ .may_split = xe_mmio_gem_vm_may_split,
};
static const struct drm_gem_object_funcs xe_mmio_gem_funcs = {
--
2.49.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v3 2/7] drm/xe/mmio_gem: use write-back mapping for dummy page
2026-07-23 16:18 [PATCH v3 0/7] drm/xe/mmio_gem: fix fault handler and destroy path Ilia Levi
2026-07-23 16:18 ` [PATCH v3 1/7] drm/xe/mmio_gem: forbid VMA split Ilia Levi
@ 2026-07-23 16:18 ` Ilia Levi
2026-07-23 17:16 ` Matthew Auld
2026-07-23 16:18 ` [PATCH v3 3/7] drm/xe/mmio_gem: simplify fault handler loop Ilia Levi
` (7 subsequent siblings)
9 siblings, 1 reply; 18+ messages in thread
From: Ilia Levi @ 2026-07-23 16:18 UTC (permalink / raw)
To: intel-xe
Cc: ilia.levi, koby.elbaz, meny.yossefi, shuicheng.lin,
thomas.hellstrom, matthew.auld, matthew.brost, Sashiko
Currently vmf_insert_pfn() maps the dummy page as UC, inheriting the
VMA's page protection which was set for the real MMIO region. This
conflicts with the direct map's WB mapping of the same page, creating a
cache type alias which is architecturally undefined on x86.
Use vmf_insert_pfn_prot() with a WB pgprot instead. Also simplify to
fault in the requested page instead of the whole VMA.
Fixes: 1ffcf8b8ae8a ("drm/xe: Support for mmap-ing mmio regions")
Reported-by: Sashiko <sashiko-bot@kernel.org>
Closes: https://sashiko.dev/#/patchset/20260525125801.975038-6-ilia.levi%40intel.com
Assisted-by: GitHub-Copilot:claude-opus-4.6
Signed-off-by: Ilia Levi <ilia.levi@intel.com>
---
drivers/gpu/drm/xe/xe_mmio_gem.c | 19 +++++--------------
1 file changed, 5 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_mmio_gem.c b/drivers/gpu/drm/xe/xe_mmio_gem.c
index f15a6a84af15..418a24bdfa4e 100644
--- a/drivers/gpu/drm/xe/xe_mmio_gem.c
+++ b/drivers/gpu/drm/xe/xe_mmio_gem.c
@@ -172,14 +172,13 @@ static void xe_mmio_gem_release_dummy_page(struct drm_device *dev, void *res)
__free_page((struct page *)res);
}
-static vm_fault_t xe_mmio_gem_vm_fault_dummy_page(struct vm_area_struct *vma)
+static vm_fault_t xe_mmio_gem_vm_fault_dummy_page(struct vm_fault *vmf)
{
+ struct vm_area_struct *vma = vmf->vma;
struct drm_gem_object *base = vma->vm_private_data;
struct drm_device *dev = base->dev;
- vm_fault_t ret = VM_FAULT_NOPAGE;
struct page *page;
unsigned long pfn;
- unsigned long i;
page = alloc_page(GFP_KERNEL | __GFP_ZERO);
if (!page)
@@ -190,16 +189,8 @@ static vm_fault_t xe_mmio_gem_vm_fault_dummy_page(struct vm_area_struct *vma)
pfn = page_to_pfn(page);
- /* Map the entire VMA to the same dummy page */
- for (i = 0; i < base->size; i += PAGE_SIZE) {
- unsigned long addr = vma->vm_start + i;
-
- ret = vmf_insert_pfn(vma, addr, pfn);
- if (ret & VM_FAULT_ERROR)
- break;
- }
-
- return ret;
+ return vmf_insert_pfn_prot(vma, vmf->address, pfn,
+ vm_get_page_prot(vma->vm_flags));
}
static vm_fault_t xe_mmio_gem_vm_fault(struct vm_fault *vmf)
@@ -219,7 +210,7 @@ static vm_fault_t xe_mmio_gem_vm_fault(struct vm_fault *vmf)
* It is assumed the userspace will receive the notification via some
* other channel (e.g. drm uevent).
*/
- return xe_mmio_gem_vm_fault_dummy_page(vma);
+ return xe_mmio_gem_vm_fault_dummy_page(vmf);
}
for (i = 0; i < base->size; i += PAGE_SIZE) {
--
2.49.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v3 3/7] drm/xe/mmio_gem: simplify fault handler loop
2026-07-23 16:18 [PATCH v3 0/7] drm/xe/mmio_gem: fix fault handler and destroy path Ilia Levi
2026-07-23 16:18 ` [PATCH v3 1/7] drm/xe/mmio_gem: forbid VMA split Ilia Levi
2026-07-23 16:18 ` [PATCH v3 2/7] drm/xe/mmio_gem: use write-back mapping for dummy page Ilia Levi
@ 2026-07-23 16:18 ` Ilia Levi
2026-07-23 17:22 ` Matthew Auld
2026-07-23 16:18 ` [PATCH v3 4/7] drm/xe/mmio_gem: Revoke drm_vma_node on xe_mmio_gem destroy Ilia Levi
` (6 subsequent siblings)
9 siblings, 1 reply; 18+ messages in thread
From: Ilia Levi @ 2026-07-23 16:18 UTC (permalink / raw)
To: intel-xe
Cc: ilia.levi, koby.elbaz, meny.yossefi, shuicheng.lin,
thomas.hellstrom, matthew.auld, matthew.brost
Make the iteration over the addresses in the VMA more explicit.
No functional change, as the VMA matches the GEM object exactly.
Signed-off-by: Ilia Levi <ilia.levi@intel.com>
---
drivers/gpu/drm/xe/xe_mmio_gem.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_mmio_gem.c b/drivers/gpu/drm/xe/xe_mmio_gem.c
index 418a24bdfa4e..dd41a62cb63c 100644
--- a/drivers/gpu/drm/xe/xe_mmio_gem.c
+++ b/drivers/gpu/drm/xe/xe_mmio_gem.c
@@ -200,7 +200,7 @@ static vm_fault_t xe_mmio_gem_vm_fault(struct vm_fault *vmf)
struct xe_mmio_gem *obj = to_xe_mmio_gem(base);
struct drm_device *dev = base->dev;
vm_fault_t ret = VM_FAULT_NOPAGE;
- unsigned long i;
+ unsigned long addr, pfn;
int idx;
if (!drm_dev_enter(dev, &idx)) {
@@ -213,13 +213,13 @@ static vm_fault_t xe_mmio_gem_vm_fault(struct vm_fault *vmf)
return xe_mmio_gem_vm_fault_dummy_page(vmf);
}
- for (i = 0; i < base->size; i += PAGE_SIZE) {
- unsigned long addr = vma->vm_start + i;
- unsigned long phys_addr = obj->phys_addr + i;
-
- ret = vmf_insert_pfn(vma, addr, PHYS_PFN(phys_addr));
+ pfn = PHYS_PFN(obj->phys_addr);
+ for (addr = vma->vm_start; addr < vma->vm_end; addr += PAGE_SIZE) {
+ ret = vmf_insert_pfn(vma, addr, pfn);
if (ret & VM_FAULT_ERROR)
break;
+
+ pfn++;
}
drm_dev_exit(idx);
--
2.49.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v3 4/7] drm/xe/mmio_gem: Revoke drm_vma_node on xe_mmio_gem destroy
2026-07-23 16:18 [PATCH v3 0/7] drm/xe/mmio_gem: fix fault handler and destroy path Ilia Levi
` (2 preceding siblings ...)
2026-07-23 16:18 ` [PATCH v3 3/7] drm/xe/mmio_gem: simplify fault handler loop Ilia Levi
@ 2026-07-23 16:18 ` Ilia Levi
2026-07-23 16:18 ` [PATCH v3 5/7] drm/xe/mmio_gem: cache the dummy page per object Ilia Levi
` (5 subsequent siblings)
9 siblings, 0 replies; 18+ messages in thread
From: Ilia Levi @ 2026-07-23 16:18 UTC (permalink / raw)
To: intel-xe
Cc: ilia.levi, koby.elbaz, meny.yossefi, shuicheng.lin,
thomas.hellstrom, matthew.auld, matthew.brost
From: Shuicheng Lin <shuicheng.lin@intel.com>
xe_mmio_gem_create() calls drm_vma_node_allow() but nothing ever calls
drm_vma_node_revoke(). The drm_vma_offset_file rb-tree entry allocated
by drm_vma_node_allow() is not freed by drm_gem_object_release(), so
it is leaked on every create/destroy cycle.
Add a struct drm_file * parameter to xe_mmio_gem_destroy() and call
drm_vma_node_revoke() from there, mirroring the drm_vma_node_allow()
call in xe_mmio_gem_create().
Fixes: 1ffcf8b8ae8a ("drm/xe: Support for mmap-ing mmio regions")
Suggested-by: Ilia Levi <ilia.levi@intel.com>
Assisted-by: Claude:claude-opus-4.6
Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
Reviewed-by: Ilia Levi <ilia.levi@intel.com>
---
drivers/gpu/drm/xe/xe_mmio_gem.c | 4 +++-
drivers/gpu/drm/xe/xe_mmio_gem.h | 2 +-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_mmio_gem.c b/drivers/gpu/drm/xe/xe_mmio_gem.c
index dd41a62cb63c..2838fcb4ff9f 100644
--- a/drivers/gpu/drm/xe/xe_mmio_gem.c
+++ b/drivers/gpu/drm/xe/xe_mmio_gem.c
@@ -138,14 +138,16 @@ static void xe_mmio_gem_free(struct drm_gem_object *base)
/**
* xe_mmio_gem_destroy - Destroy the GEM object that exposes an MMIO region
* @gem: the GEM object to destroy
+ * @file: DRM file descriptor previously passed to xe_mmio_gem_create()
*
* This function releases resources associated with the GEM object created by
* xe_mmio_gem_create().
*
* See: "Exposing MMIO regions to userspace"
*/
-void xe_mmio_gem_destroy(struct xe_mmio_gem *gem)
+void xe_mmio_gem_destroy(struct xe_mmio_gem *gem, struct drm_file *file)
{
+ drm_vma_node_revoke(&gem->base.vma_node, file);
xe_mmio_gem_free(&gem->base);
}
diff --git a/drivers/gpu/drm/xe/xe_mmio_gem.h b/drivers/gpu/drm/xe/xe_mmio_gem.h
index 4b76d5586ebb..80d7795f07c8 100644
--- a/drivers/gpu/drm/xe/xe_mmio_gem.h
+++ b/drivers/gpu/drm/xe/xe_mmio_gem.h
@@ -15,6 +15,6 @@ struct xe_mmio_gem;
struct xe_mmio_gem *xe_mmio_gem_create(struct xe_device *xe, struct drm_file *file,
phys_addr_t phys_addr, size_t size);
u64 xe_mmio_gem_mmap_offset(struct xe_mmio_gem *gem);
-void xe_mmio_gem_destroy(struct xe_mmio_gem *gem);
+void xe_mmio_gem_destroy(struct xe_mmio_gem *gem, struct drm_file *file);
#endif /* _XE_MMIO_GEM_H_ */
--
2.49.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v3 5/7] drm/xe/mmio_gem: cache the dummy page per object
2026-07-23 16:18 [PATCH v3 0/7] drm/xe/mmio_gem: fix fault handler and destroy path Ilia Levi
` (3 preceding siblings ...)
2026-07-23 16:18 ` [PATCH v3 4/7] drm/xe/mmio_gem: Revoke drm_vma_node on xe_mmio_gem destroy Ilia Levi
@ 2026-07-23 16:18 ` Ilia Levi
2026-07-28 16:33 ` Matthew Auld
2026-07-23 16:18 ` [PATCH v3 6/7] drm/xe/mmio_gem: fix destroy flow Ilia Levi
` (4 subsequent siblings)
9 siblings, 1 reply; 18+ messages in thread
From: Ilia Levi @ 2026-07-23 16:18 UTC (permalink / raw)
To: intel-xe
Cc: ilia.levi, koby.elbaz, meny.yossefi, shuicheng.lin,
thomas.hellstrom, matthew.auld, matthew.brost
Currently, when the fault handler provides a dummy page, it
allocates a new one on every invocation and ties its lifetime to
the drm_device via drmm_add_action_or_reset(). Concurrent faults
after hot-unplug therefore accumulate pages that persist until
device teardown.
Cache a single dummy page in the xe_mmio_gem object and use dma_resv
lock to protect its allocation. Free it with the object.
v2: use dma_resv lock to protect the allocation (Matt Auld)
Assisted-by: GitHub-Copilot:claude-opus-4.6
Signed-off-by: Ilia Levi <ilia.levi@intel.com>
---
drivers/gpu/drm/xe/xe_mmio_gem.c | 27 ++++++++++++++++-----------
1 file changed, 16 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_mmio_gem.c b/drivers/gpu/drm/xe/xe_mmio_gem.c
index 2838fcb4ff9f..5bd2759fc876 100644
--- a/drivers/gpu/drm/xe/xe_mmio_gem.c
+++ b/drivers/gpu/drm/xe/xe_mmio_gem.c
@@ -5,9 +5,9 @@
#include "xe_mmio_gem.h"
+#include <linux/dma-resv.h>
#include <drm/drm_drv.h>
#include <drm/drm_gem.h>
-#include <drm/drm_managed.h>
#include "xe_device_types.h"
@@ -37,6 +37,7 @@ static vm_fault_t xe_mmio_gem_vm_fault(struct vm_fault *);
struct xe_mmio_gem {
struct drm_gem_object base;
phys_addr_t phys_addr;
+ struct page *dummy_page; /* protected by the GEM's dma_resv */
};
static int xe_mmio_gem_vm_may_split(struct vm_area_struct *area, unsigned long addr)
@@ -131,6 +132,8 @@ static void xe_mmio_gem_free(struct drm_gem_object *base)
{
struct xe_mmio_gem *obj = to_xe_mmio_gem(base);
+ if (obj->dummy_page)
+ __free_page(obj->dummy_page);
drm_gem_object_release(base);
kfree(obj);
}
@@ -169,27 +172,29 @@ static int xe_mmio_gem_mmap(struct drm_gem_object *base, struct vm_area_struct *
return 0;
}
-static void xe_mmio_gem_release_dummy_page(struct drm_device *dev, void *res)
+static int alloc_dummy_page_if_needed(struct drm_gem_object *base)
{
- __free_page((struct page *)res);
+ struct xe_mmio_gem *obj = to_xe_mmio_gem(base);
+
+ dma_resv_lock(base->resv, NULL);
+ if (!obj->dummy_page)
+ obj->dummy_page = alloc_page(GFP_KERNEL | __GFP_ZERO);
+ dma_resv_unlock(base->resv);
+
+ return obj->dummy_page ? 0 : -ENOMEM;
}
static vm_fault_t xe_mmio_gem_vm_fault_dummy_page(struct vm_fault *vmf)
{
struct vm_area_struct *vma = vmf->vma;
struct drm_gem_object *base = vma->vm_private_data;
- struct drm_device *dev = base->dev;
- struct page *page;
+ struct xe_mmio_gem *obj = to_xe_mmio_gem(base);
unsigned long pfn;
- page = alloc_page(GFP_KERNEL | __GFP_ZERO);
- if (!page)
- return VM_FAULT_OOM;
-
- if (drmm_add_action_or_reset(dev, xe_mmio_gem_release_dummy_page, page))
+ if (alloc_dummy_page_if_needed(base))
return VM_FAULT_OOM;
- pfn = page_to_pfn(page);
+ pfn = page_to_pfn(obj->dummy_page);
return vmf_insert_pfn_prot(vma, vmf->address, pfn,
vm_get_page_prot(vma->vm_flags));
--
2.49.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v3 6/7] drm/xe/mmio_gem: fix destroy flow
2026-07-23 16:18 [PATCH v3 0/7] drm/xe/mmio_gem: fix fault handler and destroy path Ilia Levi
` (4 preceding siblings ...)
2026-07-23 16:18 ` [PATCH v3 5/7] drm/xe/mmio_gem: cache the dummy page per object Ilia Levi
@ 2026-07-23 16:18 ` Ilia Levi
2026-07-24 12:50 ` Matthew Auld
2026-07-23 16:18 ` [PATCH v3 7/7] drm/xe: convert PCI barrier mmap to use xe_mmio_gem Ilia Levi
` (3 subsequent siblings)
9 siblings, 1 reply; 18+ messages in thread
From: Ilia Levi @ 2026-07-23 16:18 UTC (permalink / raw)
To: intel-xe
Cc: ilia.levi, koby.elbaz, meny.yossefi, shuicheng.lin,
thomas.hellstrom, matthew.auld, matthew.brost
xe_mmio_gem_destroy() currently frees the GEM object directly, bypassing
reference counting. Since existing VMAs hold a reference and the fault
handler accesses the object through vma->vm_private_data, this is
use-after-free. Additionally, nothing prevents the fault handler from
installing PTEs to the real MMIO after destroy.
Fix this with proper synchronization and refcounting. Also, do not set
vm_pgoff to zero. Many DRM drivers do this because helpers like
dma_mmap_pages() interpret vm_pgoff as an intra-buffer page offset;
leaving the DRM fake offset there would break these helpers.
Those drivers can get away with zeroing it because they map eagerly -
all PTEs are established before mmap returns, so vm_pgoff is never
consulted again. Our driver does not use such helpers and the newly
introduced call to drm_vma_node_unmap() relies on vm_pgoff being untouched.
v2: (Matt Auld)
- use dma_resv lock to serialize fault handler with destroy
- SIGBUS on access after destroy
Fixes: 1ffcf8b8ae8a ("drm/xe: Support for mmap-ing mmio regions")
Assisted-by: GitHub-Copilot:claude-opus-4.6
Signed-off-by: Ilia Levi <ilia.levi@intel.com>
---
drivers/gpu/drm/xe/xe_mmio_gem.c | 42 ++++++++++++++++++++++++++------
1 file changed, 35 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_mmio_gem.c b/drivers/gpu/drm/xe/xe_mmio_gem.c
index 5bd2759fc876..ef48642a0733 100644
--- a/drivers/gpu/drm/xe/xe_mmio_gem.c
+++ b/drivers/gpu/drm/xe/xe_mmio_gem.c
@@ -38,6 +38,7 @@ struct xe_mmio_gem {
struct drm_gem_object base;
phys_addr_t phys_addr;
struct page *dummy_page; /* protected by the GEM's dma_resv */
+ bool destroyed; /* protected by the GEM's dma_resv */
};
static int xe_mmio_gem_vm_may_split(struct vm_area_struct *area, unsigned long addr)
@@ -150,8 +151,22 @@ static void xe_mmio_gem_free(struct drm_gem_object *base)
*/
void xe_mmio_gem_destroy(struct xe_mmio_gem *gem, struct drm_file *file)
{
- drm_vma_node_revoke(&gem->base.vma_node, file);
- xe_mmio_gem_free(&gem->base);
+ struct drm_gem_object *base = &gem->base;
+ struct drm_device *dev = base->dev;
+
+ drm_vma_node_revoke(&base->vma_node, file);
+
+ dma_resv_lock(base->resv, NULL);
+ gem->destroyed = true;
+ dma_resv_unlock(base->resv);
+ /*
+ * Setting 'destroyed' under lock takes care of the subsequent faults.
+ * Zap the existing PTEs to cut off access to the real MMIO through
+ * currently mapped pages.
+ */
+ drm_vma_node_unmap(&base->vma_node, dev->anon_inode->i_mapping);
+
+ drm_gem_object_put(base);
}
static int xe_mmio_gem_mmap(struct drm_gem_object *base, struct vm_area_struct *vma)
@@ -162,8 +177,6 @@ static int xe_mmio_gem_mmap(struct drm_gem_object *base, struct vm_area_struct *
if ((vma->vm_flags & VM_SHARED) == 0)
return -EINVAL;
- /* Set vm_pgoff (used as a fake buffer offset by DRM) to 0 */
- vma->vm_pgoff = 0;
vma->vm_page_prot = pgprot_noncached(vm_get_page_prot(vma->vm_flags));
vm_flags_set(vma, VM_IO | VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP |
VM_DONTCOPY | VM_NORESERVE);
@@ -176,10 +189,9 @@ static int alloc_dummy_page_if_needed(struct drm_gem_object *base)
{
struct xe_mmio_gem *obj = to_xe_mmio_gem(base);
- dma_resv_lock(base->resv, NULL);
+ dma_resv_assert_held(base->resv);
if (!obj->dummy_page)
obj->dummy_page = alloc_page(GFP_KERNEL | __GFP_ZERO);
- dma_resv_unlock(base->resv);
return obj->dummy_page ? 0 : -ENOMEM;
}
@@ -200,7 +212,7 @@ static vm_fault_t xe_mmio_gem_vm_fault_dummy_page(struct vm_fault *vmf)
vm_get_page_prot(vma->vm_flags));
}
-static vm_fault_t xe_mmio_gem_vm_fault(struct vm_fault *vmf)
+static vm_fault_t xe_mmio_gem_vm_fault_locked(struct vm_fault *vmf)
{
struct vm_area_struct *vma = vmf->vma;
struct drm_gem_object *base = vma->vm_private_data;
@@ -210,6 +222,10 @@ static vm_fault_t xe_mmio_gem_vm_fault(struct vm_fault *vmf)
unsigned long addr, pfn;
int idx;
+ dma_resv_assert_held(base->resv);
+ if (obj->destroyed)
+ return VM_FAULT_SIGBUS;
+
if (!drm_dev_enter(dev, &idx)) {
/*
* Provide a dummy page to avoid SIGBUS for events such as hot-unplug.
@@ -232,3 +248,15 @@ static vm_fault_t xe_mmio_gem_vm_fault(struct vm_fault *vmf)
drm_dev_exit(idx);
return ret;
}
+
+static vm_fault_t xe_mmio_gem_vm_fault(struct vm_fault *vmf)
+{
+ struct vm_area_struct *vma = vmf->vma;
+ struct drm_gem_object *base = vma->vm_private_data;
+ vm_fault_t ret;
+
+ dma_resv_lock(base->resv, NULL);
+ ret = xe_mmio_gem_vm_fault_locked(vmf);
+ dma_resv_unlock(base->resv);
+ return ret;
+}
--
2.49.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v3 7/7] drm/xe: convert PCI barrier mmap to use xe_mmio_gem
2026-07-23 16:18 [PATCH v3 0/7] drm/xe/mmio_gem: fix fault handler and destroy path Ilia Levi
` (5 preceding siblings ...)
2026-07-23 16:18 ` [PATCH v3 6/7] drm/xe/mmio_gem: fix destroy flow Ilia Levi
@ 2026-07-23 16:18 ` Ilia Levi
2026-07-23 16:59 ` ✓ CI.KUnit: success for drm/xe/mmio_gem: fix fault handler and destroy path (rev3) Patchwork
` (2 subsequent siblings)
9 siblings, 0 replies; 18+ messages in thread
From: Ilia Levi @ 2026-07-23 16:18 UTC (permalink / raw)
To: intel-xe
Cc: ilia.levi, koby.elbaz, meny.yossefi, shuicheng.lin,
thomas.hellstrom, matthew.auld, matthew.brost,
Thomas Hellström
From: Matthew Auld <matthew.auld@intel.com>
Convert the PCI barrier mmap over to use xe_mmio_gem, which is a good
match for this functionality. This has the following advantages:
1) Removes a bunch of code.
2) Replaces the fragile hard coded fake offset design.
3) Adds the first user for xe_mmio_gem, which is preferred over nuking
it.
There shouldn't be any big functional change here. From userspace pov,
they still query the fake offset like before, just that now it is no
longer hard coded in the KMD.
Assisted-by: Gemini:gemini-3.1-pro-preview
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Ilia Levi <ilia.levi@intel.com>
---
drivers/gpu/drm/xe/xe_bo.c | 24 +++++--
drivers/gpu/drm/xe/xe_bo.h | 1 -
drivers/gpu/drm/xe/xe_device.c | 102 +++------------------------
drivers/gpu/drm/xe/xe_device_types.h | 12 ++++
4 files changed, 39 insertions(+), 100 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
index c266fa6bade1..16ddbdf7628f 100644
--- a/drivers/gpu/drm/xe/xe_bo.c
+++ b/drivers/gpu/drm/xe/xe_bo.c
@@ -28,6 +28,7 @@
#include "xe_ggtt.h"
#include "xe_map.h"
#include "xe_migrate.h"
+#include "xe_mmio_gem.h"
#include "xe_pat.h"
#include "xe_pm.h"
#include "xe_preempt_fence.h"
@@ -3503,18 +3504,31 @@ int xe_gem_mmap_offset_ioctl(struct drm_device *dev, void *data,
return -EINVAL;
if (args->flags & DRM_XE_MMAP_OFFSET_FLAG_PCI_BARRIER) {
+ struct xe_file *xef = file->driver_priv;
+
if (XE_IOCTL_DBG(xe, !IS_DGFX(xe)))
return -EINVAL;
if (XE_IOCTL_DBG(xe, args->handle))
return -EINVAL;
- if (XE_IOCTL_DBG(xe, PAGE_SIZE > SZ_4K))
- return -EINVAL;
+ guard(mutex)(&xef->mmio_gem.lock);
+ if (!xef->mmio_gem.pci_barrier) {
+ phys_addr_t phys_addr;
+ int err;
+
+#define LAST_DB_PAGE_OFFSET 0x7ff000
+ phys_addr = pci_resource_start(to_pci_dev(dev->dev), 0) +
+ LAST_DB_PAGE_OFFSET;
+ xef->mmio_gem.pci_barrier = xe_mmio_gem_create(xe, file, phys_addr, SZ_4K);
+ if (IS_ERR(xef->mmio_gem.pci_barrier)) {
+ err = PTR_ERR(xef->mmio_gem.pci_barrier);
+ xef->mmio_gem.pci_barrier = NULL;
+ return err;
+ }
+ }
- BUILD_BUG_ON(((XE_PCI_BARRIER_MMAP_OFFSET >> XE_PTE_SHIFT) +
- SZ_4K) >= DRM_FILE_PAGE_OFFSET_START);
- args->offset = XE_PCI_BARRIER_MMAP_OFFSET;
+ args->offset = xe_mmio_gem_mmap_offset(xef->mmio_gem.pci_barrier);
return 0;
}
diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
index 7ae1d9ac0574..82a4666ca51e 100644
--- a/drivers/gpu/drm/xe/xe_bo.h
+++ b/drivers/gpu/drm/xe/xe_bo.h
@@ -85,7 +85,6 @@
#define XE_BO_PROPS_INVALID (-1)
-#define XE_PCI_BARRIER_MMAP_OFFSET (0x50 << XE_PTE_SHIFT)
/**
* enum xe_madv_purgeable_state - Buffer object purgeable state enumeration
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 4eed9a251e65..3c59fe347858 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -49,6 +49,7 @@
#include "xe_irq.h"
#include "xe_late_bind_fw.h"
#include "xe_mmio.h"
+#include "xe_mmio_gem.h"
#include "xe_module.h"
#include "xe_nvm.h"
#include "xe_oa.h"
@@ -110,6 +111,8 @@ static int xe_file_open(struct drm_device *dev, struct drm_file *file)
mutex_init(&xef->exec_queue.lock);
xa_init_flags(&xef->exec_queue.xa, XA_FLAGS_ALLOC1);
+ mutex_init(&xef->mmio_gem.lock);
+
file->driver_priv = xef;
kref_init(&xef->refcount);
@@ -132,6 +135,8 @@ static void xe_file_destroy(struct kref *ref)
xa_destroy(&xef->vm.xa);
mutex_destroy(&xef->vm.lock);
+ mutex_destroy(&xef->mmio_gem.lock);
+
xe_drm_client_put(xef->client);
kfree(xef->process_name);
kfree(xef);
@@ -188,6 +193,9 @@ static void xe_file_close(struct drm_device *dev, struct drm_file *file)
xa_for_each(&xef->vm.xa, idx, vm)
xe_vm_close_and_put(vm);
+ if (xef->mmio_gem.pci_barrier)
+ xe_mmio_gem_destroy(xef->mmio_gem.pci_barrier, file);
+
xe_file_put(xef);
}
@@ -257,95 +265,6 @@ static long xe_drm_compat_ioctl(struct file *file, unsigned int cmd, unsigned lo
#define xe_drm_compat_ioctl NULL
#endif
-static void barrier_open(struct vm_area_struct *vma)
-{
- drm_dev_get(vma->vm_private_data);
-}
-
-static void barrier_close(struct vm_area_struct *vma)
-{
- drm_dev_put(vma->vm_private_data);
-}
-
-static void barrier_release_dummy_page(struct drm_device *dev, void *res)
-{
- struct page *dummy_page = (struct page *)res;
-
- __free_page(dummy_page);
-}
-
-static vm_fault_t barrier_fault(struct vm_fault *vmf)
-{
- struct drm_device *dev = vmf->vma->vm_private_data;
- struct vm_area_struct *vma = vmf->vma;
- vm_fault_t ret = VM_FAULT_NOPAGE;
- pgprot_t prot;
- int idx;
-
- prot = vm_get_page_prot(vma->vm_flags);
-
- if (drm_dev_enter(dev, &idx)) {
- unsigned long pfn;
-
-#define LAST_DB_PAGE_OFFSET 0x7ff001
- pfn = PHYS_PFN(pci_resource_start(to_pci_dev(dev->dev), 0) +
- LAST_DB_PAGE_OFFSET);
- ret = vmf_insert_pfn_prot(vma, vma->vm_start, pfn,
- pgprot_noncached(prot));
- drm_dev_exit(idx);
- } else {
- struct page *page;
-
- /* Allocate new dummy page to map all the VA range in this VMA to it*/
- page = alloc_page(GFP_KERNEL | __GFP_ZERO);
- if (!page)
- return VM_FAULT_OOM;
-
- /* Set the page to be freed using drmm release action */
- if (drmm_add_action_or_reset(dev, barrier_release_dummy_page, page))
- return VM_FAULT_OOM;
-
- ret = vmf_insert_pfn_prot(vma, vma->vm_start, page_to_pfn(page),
- prot);
- }
-
- return ret;
-}
-
-static const struct vm_operations_struct vm_ops_barrier = {
- .open = barrier_open,
- .close = barrier_close,
- .fault = barrier_fault,
-};
-
-static int xe_pci_barrier_mmap(struct file *filp,
- struct vm_area_struct *vma)
-{
- struct drm_file *priv = filp->private_data;
- struct drm_device *dev = priv->minor->dev;
- struct xe_device *xe = to_xe_device(dev);
-
- if (!IS_DGFX(xe))
- return -EINVAL;
-
- if (vma->vm_end - vma->vm_start > SZ_4K)
- return -EINVAL;
-
- if (is_cow_mapping(vma->vm_flags))
- return -EINVAL;
-
- if (vma->vm_flags & (VM_READ | VM_EXEC))
- return -EINVAL;
-
- vm_flags_clear(vma, VM_MAYREAD | VM_MAYEXEC);
- vm_flags_set(vma, VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP | VM_IO);
- vma->vm_ops = &vm_ops_barrier;
- vma->vm_private_data = dev;
- drm_dev_get(vma->vm_private_data);
-
- return 0;
-}
-
static int xe_mmap(struct file *filp, struct vm_area_struct *vma)
{
struct drm_file *priv = filp->private_data;
@@ -354,11 +273,6 @@ static int xe_mmap(struct file *filp, struct vm_area_struct *vma)
if (drm_dev_is_unplugged(dev))
return -ENODEV;
- switch (vma->vm_pgoff) {
- case XE_PCI_BARRIER_MMAP_OFFSET >> XE_PTE_SHIFT:
- return xe_pci_barrier_mmap(filp, vma);
- }
-
return drm_gem_mmap(filp, vma);
}
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index 860ad322237f..8da3ff47be83 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -38,6 +38,7 @@
struct drm_pagemap_shrinker;
struct intel_display;
struct intel_dg_nvm_dev;
+struct xe_mmio_gem;
struct xe_ggtt;
struct xe_i2c;
struct xe_pat_ops;
@@ -642,6 +643,17 @@ struct xe_file {
/** @refcount: ref count of this xe file */
struct kref refcount;
+
+ /** @mmio_gem: MMIO GEM objects for this xe file */
+ struct {
+ /**
+ * @mmio_gem.lock: Protects allocation and attach of MMIO GEM
+ * objects (singleton).
+ */
+ struct mutex lock;
+ /** @mmio_gem.pci_barrier: MMIO GEM object for PCI barrier mmap. */
+ struct xe_mmio_gem *pci_barrier;
+ } mmio_gem;
};
#endif
--
2.49.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH v3 1/7] drm/xe/mmio_gem: forbid VMA split
2026-07-23 16:18 ` [PATCH v3 1/7] drm/xe/mmio_gem: forbid VMA split Ilia Levi
@ 2026-07-23 16:25 ` Matthew Auld
0 siblings, 0 replies; 18+ messages in thread
From: Matthew Auld @ 2026-07-23 16:25 UTC (permalink / raw)
To: Ilia Levi, intel-xe
Cc: koby.elbaz, meny.yossefi, shuicheng.lin, thomas.hellstrom,
matthew.brost
On 23/07/2026 17:18, Ilia Levi wrote:
> The fault handler assumes it always operates on a VMA spanning the entire
> GEM object. This does not hold when the VMA has been split, e.g. by a
> partial munmap or mprotect. In that case the handler may map wrong
> physical pages or cause SIGBUS.
>
> Handle this by forbidding VMA split, as partial unmaps are not deemed
> useful for MMIO GEMs.
>
> Suggested-by: Matthew Auld <matthew.auld@intel.com>
> Signed-off-by: Ilia Levi <ilia.levi@intel.com>
> Fixes: 1ffcf8b8ae8a ("drm/xe: Support for mmap-ing mmio regions")
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
> ---
> drivers/gpu/drm/xe/xe_mmio_gem.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_mmio_gem.c b/drivers/gpu/drm/xe/xe_mmio_gem.c
> index 8c803ef233cc..f15a6a84af15 100644
> --- a/drivers/gpu/drm/xe/xe_mmio_gem.c
> +++ b/drivers/gpu/drm/xe/xe_mmio_gem.c
> @@ -39,10 +39,20 @@ struct xe_mmio_gem {
> phys_addr_t phys_addr;
> };
>
> +static int xe_mmio_gem_vm_may_split(struct vm_area_struct *area, unsigned long addr)
> +{
> + /*
> + * Forbid splitting. Together with VM_DONTEXPAND, this keeps the VMA
> + * matching the GEM object exactly.
> + */
> + return -EINVAL;
> +}
> +
> static const struct vm_operations_struct vm_ops = {
> .open = drm_gem_vm_open,
> .close = drm_gem_vm_close,
> .fault = xe_mmio_gem_vm_fault,
> + .may_split = xe_mmio_gem_vm_may_split,
> };
>
> static const struct drm_gem_object_funcs xe_mmio_gem_funcs = {
^ permalink raw reply [flat|nested] 18+ messages in thread
* ✓ CI.KUnit: success for drm/xe/mmio_gem: fix fault handler and destroy path (rev3)
2026-07-23 16:18 [PATCH v3 0/7] drm/xe/mmio_gem: fix fault handler and destroy path Ilia Levi
` (6 preceding siblings ...)
2026-07-23 16:18 ` [PATCH v3 7/7] drm/xe: convert PCI barrier mmap to use xe_mmio_gem Ilia Levi
@ 2026-07-23 16:59 ` Patchwork
2026-07-23 17:34 ` ✓ Xe.CI.BAT: " Patchwork
2026-07-24 17:14 ` ✓ Xe.CI.FULL: " Patchwork
9 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2026-07-23 16:59 UTC (permalink / raw)
To: Ilia Levi; +Cc: intel-xe
== Series Details ==
Series: drm/xe/mmio_gem: fix fault handler and destroy path (rev3)
URL : https://patchwork.freedesktop.org/series/167217/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[16:58:39] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[16:58:44] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[16:59:16] Starting KUnit Kernel (1/1)...
[16:59:16] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[16:59:16] ================== guc_buf (11 subtests) ===================
[16:59:16] [PASSED] test_smallest
[16:59:16] [PASSED] test_largest
[16:59:16] [PASSED] test_granular
[16:59:16] [PASSED] test_unique
[16:59:16] [PASSED] test_overlap
[16:59:16] [PASSED] test_reusable
[16:59:16] [PASSED] test_too_big
[16:59:16] [PASSED] test_flush
[16:59:16] [PASSED] test_lookup
[16:59:16] [PASSED] test_data
[16:59:16] [PASSED] test_class
[16:59:16] ===================== [PASSED] guc_buf =====================
[16:59:16] =================== guc_dbm (7 subtests) ===================
[16:59:16] [PASSED] test_empty
[16:59:16] [PASSED] test_default
[16:59:16] ======================== test_size ========================
[16:59:16] [PASSED] 4
[16:59:16] [PASSED] 8
[16:59:16] [PASSED] 32
[16:59:16] [PASSED] 256
[16:59:16] ==================== [PASSED] test_size ====================
[16:59:16] ======================= test_reuse ========================
[16:59:16] [PASSED] 4
[16:59:16] [PASSED] 8
[16:59:16] [PASSED] 32
[16:59:16] [PASSED] 256
[16:59:16] =================== [PASSED] test_reuse ====================
[16:59:16] =================== test_range_overlap ====================
[16:59:16] [PASSED] 4
[16:59:16] [PASSED] 8
[16:59:16] [PASSED] 32
[16:59:16] [PASSED] 256
[16:59:16] =============== [PASSED] test_range_overlap ================
[16:59:16] =================== test_range_compact ====================
[16:59:16] [PASSED] 4
[16:59:16] [PASSED] 8
[16:59:16] [PASSED] 32
[16:59:16] [PASSED] 256
[16:59:16] =============== [PASSED] test_range_compact ================
[16:59:16] ==================== test_range_spare =====================
[16:59:16] [PASSED] 4
[16:59:16] [PASSED] 8
[16:59:16] [PASSED] 32
[16:59:16] [PASSED] 256
[16:59:16] ================ [PASSED] test_range_spare =================
[16:59:16] ===================== [PASSED] guc_dbm =====================
[16:59:16] =================== guc_idm (6 subtests) ===================
[16:59:16] [PASSED] bad_init
[16:59:16] [PASSED] no_init
[16:59:16] [PASSED] init_fini
[16:59:16] [PASSED] check_used
[16:59:16] [PASSED] check_quota
[16:59:16] [PASSED] check_all
[16:59:16] ===================== [PASSED] guc_idm =====================
[16:59:16] =============== guc_klv_helpers (9 subtests) ===============
[16:59:16] [PASSED] test_count
[16:59:16] [PASSED] test_encode_u32
[16:59:16] [PASSED] test_encode_u64
[16:59:16] [PASSED] test_encode_string
[16:59:16] [PASSED] test_encode_object_raw
[16:59:16] [PASSED] test_encode_object_klv
[16:59:16] [PASSED] test_encode_object_nested
[16:59:16] [PASSED] test_encode_object_basic
[16:59:16] [PASSED] test_print
[16:59:16] ================= [PASSED] guc_klv_helpers =================
[16:59:16] ================== no_relay (3 subtests) ===================
[16:59:16] [PASSED] xe_drops_guc2pf_if_not_ready
[16:59:16] [PASSED] xe_drops_guc2vf_if_not_ready
[16:59:16] [PASSED] xe_rejects_send_if_not_ready
[16:59:16] ==================== [PASSED] no_relay =====================
[16:59:16] ================== pf_relay (14 subtests) ==================
[16:59:16] [PASSED] pf_rejects_guc2pf_too_short
[16:59:16] [PASSED] pf_rejects_guc2pf_too_long
[16:59:16] [PASSED] pf_rejects_guc2pf_no_payload
[16:59:16] [PASSED] pf_fails_no_payload
[16:59:16] [PASSED] pf_fails_bad_origin
[16:59:16] [PASSED] pf_fails_bad_type
[16:59:16] [PASSED] pf_txn_reports_error
[16:59:16] [PASSED] pf_txn_sends_pf2guc
[16:59:16] [PASSED] pf_sends_pf2guc
[16:59:16] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[16:59:16] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[16:59:16] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[16:59:16] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[16:59:16] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[16:59:16] ==================== [PASSED] pf_relay =====================
[16:59:16] ================== vf_relay (3 subtests) ===================
[16:59:16] [PASSED] vf_rejects_guc2vf_too_short
[16:59:16] [PASSED] vf_rejects_guc2vf_too_long
[16:59:16] [PASSED] vf_rejects_guc2vf_no_payload
[16:59:16] ==================== [PASSED] vf_relay =====================
[16:59:16] ================ pf_gt_config (9 subtests) =================
[16:59:16] [PASSED] fair_contexts_1vf
[16:59:16] [PASSED] fair_doorbells_1vf
[16:59:16] [PASSED] fair_ggtt_1vf
[16:59:16] ====================== fair_vram_1vf ======================
[16:59:16] [PASSED] 3.50 GiB
[16:59:16] [PASSED] 11.5 GiB
[16:59:16] [PASSED] 15.5 GiB
[16:59:16] [PASSED] 31.5 GiB
[16:59:16] [PASSED] 63.5 GiB
[16:59:16] [PASSED] 1.91 GiB
[16:59:16] ================== [PASSED] fair_vram_1vf ==================
[16:59:16] ================ fair_vram_1vf_admin_only =================
[16:59:16] [PASSED] 3.50 GiB
[16:59:16] [PASSED] 11.5 GiB
[16:59:16] [PASSED] 15.5 GiB
[16:59:16] [PASSED] 31.5 GiB
[16:59:16] [PASSED] 63.5 GiB
[16:59:16] [PASSED] 1.91 GiB
[16:59:16] ============ [PASSED] fair_vram_1vf_admin_only =============
[16:59:16] ====================== fair_contexts ======================
[16:59:16] [PASSED] 1 VF
[16:59:16] [PASSED] 2 VFs
[16:59:16] [PASSED] 3 VFs
[16:59:16] [PASSED] 4 VFs
[16:59:16] [PASSED] 5 VFs
[16:59:16] [PASSED] 6 VFs
[16:59:16] [PASSED] 7 VFs
[16:59:16] [PASSED] 8 VFs
[16:59:16] [PASSED] 9 VFs
[16:59:16] [PASSED] 10 VFs
[16:59:16] [PASSED] 11 VFs
[16:59:16] [PASSED] 12 VFs
[16:59:16] [PASSED] 13 VFs
[16:59:16] [PASSED] 14 VFs
[16:59:16] [PASSED] 15 VFs
[16:59:16] [PASSED] 16 VFs
[16:59:16] [PASSED] 17 VFs
[16:59:16] [PASSED] 18 VFs
[16:59:16] [PASSED] 19 VFs
[16:59:16] [PASSED] 20 VFs
[16:59:16] [PASSED] 21 VFs
[16:59:16] [PASSED] 22 VFs
[16:59:16] [PASSED] 23 VFs
[16:59:16] [PASSED] 24 VFs
[16:59:16] [PASSED] 25 VFs
[16:59:16] [PASSED] 26 VFs
[16:59:16] [PASSED] 27 VFs
[16:59:16] [PASSED] 28 VFs
[16:59:16] [PASSED] 29 VFs
[16:59:16] [PASSED] 30 VFs
[16:59:16] [PASSED] 31 VFs
[16:59:16] [PASSED] 32 VFs
[16:59:16] [PASSED] 33 VFs
[16:59:16] [PASSED] 34 VFs
[16:59:16] [PASSED] 35 VFs
[16:59:16] [PASSED] 36 VFs
[16:59:16] [PASSED] 37 VFs
[16:59:16] [PASSED] 38 VFs
[16:59:16] [PASSED] 39 VFs
[16:59:16] [PASSED] 40 VFs
[16:59:16] [PASSED] 41 VFs
[16:59:16] [PASSED] 42 VFs
[16:59:16] [PASSED] 43 VFs
[16:59:16] [PASSED] 44 VFs
[16:59:16] [PASSED] 45 VFs
[16:59:16] [PASSED] 46 VFs
[16:59:16] [PASSED] 47 VFs
[16:59:16] [PASSED] 48 VFs
[16:59:16] [PASSED] 49 VFs
[16:59:16] [PASSED] 50 VFs
[16:59:16] [PASSED] 51 VFs
[16:59:16] [PASSED] 52 VFs
[16:59:16] [PASSED] 53 VFs
[16:59:16] [PASSED] 54 VFs
[16:59:16] [PASSED] 55 VFs
[16:59:16] [PASSED] 56 VFs
[16:59:16] [PASSED] 57 VFs
[16:59:16] [PASSED] 58 VFs
[16:59:16] [PASSED] 59 VFs
[16:59:16] [PASSED] 60 VFs
[16:59:16] [PASSED] 61 VFs
[16:59:16] [PASSED] 62 VFs
[16:59:16] [PASSED] 63 VFs
[16:59:16] ================== [PASSED] fair_contexts ==================
[16:59:16] ===================== fair_doorbells ======================
[16:59:16] [PASSED] 1 VF
[16:59:16] [PASSED] 2 VFs
[16:59:16] [PASSED] 3 VFs
[16:59:16] [PASSED] 4 VFs
[16:59:16] [PASSED] 5 VFs
[16:59:16] [PASSED] 6 VFs
[16:59:16] [PASSED] 7 VFs
[16:59:16] [PASSED] 8 VFs
[16:59:16] [PASSED] 9 VFs
[16:59:16] [PASSED] 10 VFs
[16:59:16] [PASSED] 11 VFs
[16:59:16] [PASSED] 12 VFs
[16:59:16] [PASSED] 13 VFs
[16:59:16] [PASSED] 14 VFs
[16:59:16] [PASSED] 15 VFs
[16:59:16] [PASSED] 16 VFs
[16:59:16] [PASSED] 17 VFs
[16:59:16] [PASSED] 18 VFs
[16:59:16] [PASSED] 19 VFs
[16:59:16] [PASSED] 20 VFs
[16:59:16] [PASSED] 21 VFs
[16:59:16] [PASSED] 22 VFs
[16:59:16] [PASSED] 23 VFs
[16:59:16] [PASSED] 24 VFs
[16:59:16] [PASSED] 25 VFs
[16:59:16] [PASSED] 26 VFs
[16:59:16] [PASSED] 27 VFs
[16:59:16] [PASSED] 28 VFs
[16:59:16] [PASSED] 29 VFs
[16:59:16] [PASSED] 30 VFs
[16:59:16] [PASSED] 31 VFs
[16:59:16] [PASSED] 32 VFs
[16:59:16] [PASSED] 33 VFs
[16:59:16] [PASSED] 34 VFs
[16:59:16] [PASSED] 35 VFs
[16:59:16] [PASSED] 36 VFs
[16:59:16] [PASSED] 37 VFs
[16:59:16] [PASSED] 38 VFs
[16:59:16] [PASSED] 39 VFs
[16:59:16] [PASSED] 40 VFs
[16:59:16] [PASSED] 41 VFs
[16:59:16] [PASSED] 42 VFs
[16:59:16] [PASSED] 43 VFs
[16:59:16] [PASSED] 44 VFs
[16:59:16] [PASSED] 45 VFs
[16:59:16] [PASSED] 46 VFs
[16:59:16] [PASSED] 47 VFs
[16:59:16] [PASSED] 48 VFs
[16:59:16] [PASSED] 49 VFs
[16:59:16] [PASSED] 50 VFs
[16:59:16] [PASSED] 51 VFs
[16:59:16] [PASSED] 52 VFs
[16:59:16] [PASSED] 53 VFs
[16:59:16] [PASSED] 54 VFs
[16:59:16] [PASSED] 55 VFs
[16:59:16] [PASSED] 56 VFs
[16:59:16] [PASSED] 57 VFs
[16:59:16] [PASSED] 58 VFs
[16:59:16] [PASSED] 59 VFs
[16:59:16] [PASSED] 60 VFs
[16:59:16] [PASSED] 61 VFs
[16:59:16] [PASSED] 62 VFs
[16:59:16] [PASSED] 63 VFs
[16:59:16] ================= [PASSED] fair_doorbells ==================
[16:59:16] ======================== fair_ggtt ========================
[16:59:16] [PASSED] 1 VF
[16:59:16] [PASSED] 2 VFs
[16:59:16] [PASSED] 3 VFs
[16:59:16] [PASSED] 4 VFs
[16:59:16] [PASSED] 5 VFs
[16:59:16] [PASSED] 6 VFs
[16:59:16] [PASSED] 7 VFs
[16:59:16] [PASSED] 8 VFs
[16:59:16] [PASSED] 9 VFs
[16:59:16] [PASSED] 10 VFs
[16:59:16] [PASSED] 11 VFs
[16:59:16] [PASSED] 12 VFs
[16:59:16] [PASSED] 13 VFs
[16:59:16] [PASSED] 14 VFs
[16:59:16] [PASSED] 15 VFs
[16:59:16] [PASSED] 16 VFs
[16:59:16] [PASSED] 17 VFs
[16:59:16] [PASSED] 18 VFs
[16:59:16] [PASSED] 19 VFs
[16:59:16] [PASSED] 20 VFs
[16:59:16] [PASSED] 21 VFs
[16:59:16] [PASSED] 22 VFs
[16:59:16] [PASSED] 23 VFs
[16:59:16] [PASSED] 24 VFs
[16:59:16] [PASSED] 25 VFs
[16:59:16] [PASSED] 26 VFs
[16:59:16] [PASSED] 27 VFs
[16:59:16] [PASSED] 28 VFs
[16:59:16] [PASSED] 29 VFs
[16:59:16] [PASSED] 30 VFs
[16:59:16] [PASSED] 31 VFs
[16:59:16] [PASSED] 32 VFs
[16:59:16] [PASSED] 33 VFs
[16:59:16] [PASSED] 34 VFs
[16:59:16] [PASSED] 35 VFs
[16:59:16] [PASSED] 36 VFs
[16:59:16] [PASSED] 37 VFs
[16:59:16] [PASSED] 38 VFs
[16:59:16] [PASSED] 39 VFs
[16:59:16] [PASSED] 40 VFs
[16:59:16] [PASSED] 41 VFs
[16:59:16] [PASSED] 42 VFs
[16:59:16] [PASSED] 43 VFs
[16:59:16] [PASSED] 44 VFs
[16:59:16] [PASSED] 45 VFs
[16:59:16] [PASSED] 46 VFs
[16:59:16] [PASSED] 47 VFs
[16:59:16] [PASSED] 48 VFs
[16:59:16] [PASSED] 49 VFs
[16:59:16] [PASSED] 50 VFs
[16:59:16] [PASSED] 51 VFs
[16:59:16] [PASSED] 52 VFs
[16:59:16] [PASSED] 53 VFs
[16:59:16] [PASSED] 54 VFs
[16:59:16] [PASSED] 55 VFs
[16:59:16] [PASSED] 56 VFs
[16:59:16] [PASSED] 57 VFs
[16:59:16] [PASSED] 58 VFs
[16:59:16] [PASSED] 59 VFs
[16:59:16] [PASSED] 60 VFs
[16:59:16] [PASSED] 61 VFs
[16:59:16] [PASSED] 62 VFs
[16:59:16] [PASSED] 63 VFs
[16:59:16] ==================== [PASSED] fair_ggtt ====================
[16:59:16] ======================== fair_vram ========================
[16:59:16] [PASSED] 1 VF
[16:59:16] [PASSED] 2 VFs
[16:59:16] [PASSED] 3 VFs
[16:59:16] [PASSED] 4 VFs
[16:59:16] [PASSED] 5 VFs
[16:59:16] [PASSED] 6 VFs
[16:59:16] [PASSED] 7 VFs
[16:59:16] [PASSED] 8 VFs
[16:59:16] [PASSED] 9 VFs
[16:59:16] [PASSED] 10 VFs
[16:59:16] [PASSED] 11 VFs
[16:59:16] [PASSED] 12 VFs
[16:59:16] [PASSED] 13 VFs
[16:59:16] [PASSED] 14 VFs
[16:59:16] [PASSED] 15 VFs
[16:59:16] [PASSED] 16 VFs
[16:59:16] [PASSED] 17 VFs
[16:59:16] [PASSED] 18 VFs
[16:59:16] [PASSED] 19 VFs
[16:59:16] [PASSED] 20 VFs
[16:59:16] [PASSED] 21 VFs
[16:59:16] [PASSED] 22 VFs
[16:59:16] [PASSED] 23 VFs
[16:59:16] [PASSED] 24 VFs
[16:59:16] [PASSED] 25 VFs
[16:59:16] [PASSED] 26 VFs
[16:59:16] [PASSED] 27 VFs
[16:59:16] [PASSED] 28 VFs
[16:59:16] [PASSED] 29 VFs
[16:59:16] [PASSED] 30 VFs
[16:59:16] [PASSED] 31 VFs
[16:59:16] [PASSED] 32 VFs
[16:59:16] [PASSED] 33 VFs
[16:59:16] [PASSED] 34 VFs
[16:59:16] [PASSED] 35 VFs
[16:59:16] [PASSED] 36 VFs
[16:59:16] [PASSED] 37 VFs
[16:59:16] [PASSED] 38 VFs
[16:59:16] [PASSED] 39 VFs
[16:59:16] [PASSED] 40 VFs
[16:59:16] [PASSED] 41 VFs
[16:59:16] [PASSED] 42 VFs
[16:59:16] [PASSED] 43 VFs
[16:59:16] [PASSED] 44 VFs
[16:59:16] [PASSED] 45 VFs
[16:59:16] [PASSED] 46 VFs
[16:59:16] [PASSED] 47 VFs
[16:59:16] [PASSED] 48 VFs
[16:59:16] [PASSED] 49 VFs
[16:59:16] [PASSED] 50 VFs
[16:59:16] [PASSED] 51 VFs
[16:59:16] [PASSED] 52 VFs
[16:59:16] [PASSED] 53 VFs
[16:59:16] [PASSED] 54 VFs
[16:59:16] [PASSED] 55 VFs
[16:59:16] [PASSED] 56 VFs
[16:59:16] [PASSED] 57 VFs
[16:59:16] [PASSED] 58 VFs
[16:59:16] [PASSED] 59 VFs
[16:59:16] [PASSED] 60 VFs
[16:59:16] [PASSED] 61 VFs
[16:59:16] [PASSED] 62 VFs
[16:59:16] [PASSED] 63 VFs
[16:59:16] ==================== [PASSED] fair_vram ====================
[16:59:16] ================== [PASSED] pf_gt_config ===================
[16:59:16] ===================== lmtt (1 subtest) =====================
[16:59:16] ======================== test_ops =========================
[16:59:16] [PASSED] 2-level
[16:59:16] [PASSED] multi-level
[16:59:16] ==================== [PASSED] test_ops =====================
[16:59:16] ====================== [PASSED] lmtt =======================
[16:59:16] ================= sriov_packet (1 subtest) =================
[16:59:16] [PASSED] test_descriptor_init
[16:59:16] ================== [PASSED] sriov_packet ===================
[16:59:16] ================= pf_service (11 subtests) =================
[16:59:16] [PASSED] pf_negotiate_any
[16:59:16] [PASSED] pf_negotiate_base_match
[16:59:16] [PASSED] pf_negotiate_base_newer
[16:59:16] [PASSED] pf_negotiate_base_next
[16:59:16] [SKIPPED] pf_negotiate_base_older (no older minor)
[16:59:16] [PASSED] pf_negotiate_base_prev
[16:59:16] [PASSED] pf_negotiate_latest_match
[16:59:16] [PASSED] pf_negotiate_latest_newer
[16:59:16] [PASSED] pf_negotiate_latest_next
[16:59:16] [SKIPPED] pf_negotiate_latest_older (no older minor)
[16:59:16] [SKIPPED] pf_negotiate_latest_prev (no prev major)
[16:59:16] =================== [PASSED] pf_service ====================
[16:59:16] ================= xe_guc_g2g (2 subtests) ==================
[16:59:16] ============== xe_live_guc_g2g_kunit_default ==============
[16:59:16] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[16:59:16] ============== xe_live_guc_g2g_kunit_allmem ===============
[16:59:16] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[16:59:16] =================== [SKIPPED] xe_guc_g2g ===================
[16:59:16] =================== xe_mocs (2 subtests) ===================
[16:59:16] ================ xe_live_mocs_kernel_kunit ================
[16:59:16] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[16:59:16] ================ xe_live_mocs_reset_kunit =================
[16:59:16] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[16:59:16] ==================== [SKIPPED] xe_mocs =====================
[16:59:16] ================= xe_migrate (2 subtests) ==================
[16:59:16] ================= xe_migrate_sanity_kunit =================
[16:59:16] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[16:59:16] ================== xe_validate_ccs_kunit ==================
[16:59:16] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[16:59:16] =================== [SKIPPED] xe_migrate ===================
[16:59:16] ================== xe_dma_buf (1 subtest) ==================
[16:59:16] ==================== xe_dma_buf_kunit =====================
[16:59:16] ================ [SKIPPED] xe_dma_buf_kunit ================
[16:59:16] =================== [SKIPPED] xe_dma_buf ===================
[16:59:16] ================= xe_bo_shrink (1 subtest) =================
[16:59:16] =================== xe_bo_shrink_kunit ====================
[16:59:16] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[16:59:16] ================== [SKIPPED] xe_bo_shrink ==================
[16:59:16] ==================== xe_bo (2 subtests) ====================
[16:59:16] ================== xe_ccs_migrate_kunit ===================
[16:59:16] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[16:59:16] ==================== xe_bo_evict_kunit ====================
[16:59:16] =============== [SKIPPED] xe_bo_evict_kunit ================
[16:59:16] ===================== [SKIPPED] xe_bo ======================
[16:59:16] ==================== args (13 subtests) ====================
[16:59:16] [PASSED] count_args_test
[16:59:16] [PASSED] call_args_example
[16:59:16] [PASSED] call_args_test
[16:59:16] [PASSED] drop_first_arg_example
[16:59:16] [PASSED] drop_first_arg_test
[16:59:16] [PASSED] first_arg_example
[16:59:16] [PASSED] first_arg_test
[16:59:16] [PASSED] last_arg_example
[16:59:16] [PASSED] last_arg_test
[16:59:16] [PASSED] pick_arg_example
[16:59:16] [PASSED] if_args_example
[16:59:16] [PASSED] if_args_test
[16:59:16] [PASSED] sep_comma_example
[16:59:16] ====================== [PASSED] args =======================
[16:59:16] =================== xe_pci (3 subtests) ====================
[16:59:16] ==================== check_graphics_ip ====================
[16:59:16] [PASSED] 12.00 Xe_LP
[16:59:16] [PASSED] 12.10 Xe_LP+
[16:59:16] [PASSED] 12.55 Xe_HPG
[16:59:16] [PASSED] 12.60 Xe_HPC
[16:59:16] [PASSED] 12.70 Xe_LPG
[16:59:16] [PASSED] 12.71 Xe_LPG
[16:59:16] [PASSED] 12.74 Xe_LPG+
[16:59:16] [PASSED] 20.01 Xe2_HPG
[16:59:16] [PASSED] 20.02 Xe2_HPG
[16:59:16] [PASSED] 20.04 Xe2_LPG
[16:59:16] [PASSED] 30.00 Xe3_LPG
[16:59:16] [PASSED] 30.01 Xe3_LPG
[16:59:16] [PASSED] 30.03 Xe3_LPG
[16:59:16] [PASSED] 30.04 Xe3_LPG
[16:59:16] [PASSED] 30.05 Xe3_LPG
[16:59:16] [PASSED] 35.10 Xe3p_LPG
[16:59:16] [PASSED] 35.11 Xe3p_XPC
[16:59:16] ================ [PASSED] check_graphics_ip ================
[16:59:16] ===================== check_media_ip ======================
[16:59:16] [PASSED] 12.00 Xe_M
[16:59:16] [PASSED] 12.55 Xe_HPM
[16:59:16] [PASSED] 13.00 Xe_LPM+
[16:59:16] [PASSED] 13.01 Xe2_HPM
[16:59:16] [PASSED] 20.00 Xe2_LPM
[16:59:16] [PASSED] 30.00 Xe3_LPM
[16:59:16] [PASSED] 30.02 Xe3_LPM
[16:59:16] [PASSED] 35.00 Xe3p_LPM
[16:59:16] [PASSED] 35.03 Xe3p_HPM
[16:59:16] ================= [PASSED] check_media_ip ==================
[16:59:16] =================== check_platform_desc ===================
[16:59:16] [PASSED] 0x9A60 (TIGERLAKE)
[16:59:16] [PASSED] 0x9A68 (TIGERLAKE)
[16:59:16] [PASSED] 0x9A70 (TIGERLAKE)
[16:59:16] [PASSED] 0x9A40 (TIGERLAKE)
[16:59:16] [PASSED] 0x9A49 (TIGERLAKE)
[16:59:16] [PASSED] 0x9A59 (TIGERLAKE)
[16:59:16] [PASSED] 0x9A78 (TIGERLAKE)
[16:59:16] [PASSED] 0x9AC0 (TIGERLAKE)
[16:59:16] [PASSED] 0x9AC9 (TIGERLAKE)
[16:59:16] [PASSED] 0x9AD9 (TIGERLAKE)
[16:59:16] [PASSED] 0x9AF8 (TIGERLAKE)
[16:59:16] [PASSED] 0x4C80 (ROCKETLAKE)
[16:59:16] [PASSED] 0x4C8A (ROCKETLAKE)
[16:59:16] [PASSED] 0x4C8B (ROCKETLAKE)
[16:59:16] [PASSED] 0x4C8C (ROCKETLAKE)
[16:59:16] [PASSED] 0x4C90 (ROCKETLAKE)
[16:59:16] [PASSED] 0x4C9A (ROCKETLAKE)
[16:59:16] [PASSED] 0x4680 (ALDERLAKE_S)
[16:59:16] [PASSED] 0x4682 (ALDERLAKE_S)
[16:59:16] [PASSED] 0x4688 (ALDERLAKE_S)
[16:59:16] [PASSED] 0x468A (ALDERLAKE_S)
[16:59:16] [PASSED] 0x468B (ALDERLAKE_S)
[16:59:16] [PASSED] 0x4690 (ALDERLAKE_S)
[16:59:16] [PASSED] 0x4692 (ALDERLAKE_S)
[16:59:16] [PASSED] 0x4693 (ALDERLAKE_S)
[16:59:16] [PASSED] 0x46A0 (ALDERLAKE_P)
[16:59:16] [PASSED] 0x46A1 (ALDERLAKE_P)
[16:59:16] [PASSED] 0x46A2 (ALDERLAKE_P)
[16:59:16] [PASSED] 0x46A3 (ALDERLAKE_P)
[16:59:16] [PASSED] 0x46A6 (ALDERLAKE_P)
[16:59:16] [PASSED] 0x46A8 (ALDERLAKE_P)
[16:59:16] [PASSED] 0x46AA (ALDERLAKE_P)
[16:59:16] [PASSED] 0x462A (ALDERLAKE_P)
[16:59:16] [PASSED] 0x4626 (ALDERLAKE_P)
[16:59:16] [PASSED] 0x4628 (ALDERLAKE_P)
[16:59:16] [PASSED] 0x46B0 (ALDERLAKE_P)
[16:59:16] [PASSED] 0x46B1 (ALDERLAKE_P)
[16:59:16] [PASSED] 0x46B2 (ALDERLAKE_P)
[16:59:16] [PASSED] 0x46B3 (ALDERLAKE_P)
[16:59:16] [PASSED] 0x46C0 (ALDERLAKE_P)
[16:59:16] [PASSED] 0x46C1 (ALDERLAKE_P)
[16:59:16] [PASSED] 0x46C2 (ALDERLAKE_P)
[16:59:16] [PASSED] 0x46C3 (ALDERLAKE_P)
[16:59:16] [PASSED] 0x46D0 (ALDERLAKE_N)
[16:59:16] [PASSED] 0x46D1 (ALDERLAKE_N)
[16:59:16] [PASSED] 0x46D2 (ALDERLAKE_N)
[16:59:16] [PASSED] 0x46D3 (ALDERLAKE_N)
[16:59:16] [PASSED] 0x46D4 (ALDERLAKE_N)
[16:59:16] [PASSED] 0xA721 (ALDERLAKE_P)
[16:59:16] [PASSED] 0xA7A1 (ALDERLAKE_P)
[16:59:16] [PASSED] 0xA7A9 (ALDERLAKE_P)
[16:59:16] [PASSED] 0xA7AC (ALDERLAKE_P)
[16:59:16] [PASSED] 0xA7AD (ALDERLAKE_P)
[16:59:16] [PASSED] 0xA720 (ALDERLAKE_P)
[16:59:16] [PASSED] 0xA7A0 (ALDERLAKE_P)
[16:59:16] [PASSED] 0xA7A8 (ALDERLAKE_P)
[16:59:16] [PASSED] 0xA7AA (ALDERLAKE_P)
[16:59:16] [PASSED] 0xA7AB (ALDERLAKE_P)
[16:59:16] [PASSED] 0xA780 (ALDERLAKE_S)
[16:59:16] [PASSED] 0xA781 (ALDERLAKE_S)
[16:59:16] [PASSED] 0xA782 (ALDERLAKE_S)
[16:59:16] [PASSED] 0xA783 (ALDERLAKE_S)
[16:59:16] [PASSED] 0xA788 (ALDERLAKE_S)
[16:59:16] [PASSED] 0xA789 (ALDERLAKE_S)
[16:59:16] [PASSED] 0xA78A (ALDERLAKE_S)
[16:59:16] [PASSED] 0xA78B (ALDERLAKE_S)
[16:59:16] [PASSED] 0x4905 (DG1)
[16:59:16] [PASSED] 0x4906 (DG1)
[16:59:16] [PASSED] 0x4907 (DG1)
[16:59:16] [PASSED] 0x4908 (DG1)
[16:59:16] [PASSED] 0x4909 (DG1)
[16:59:16] [PASSED] 0x56C0 (DG2)
[16:59:16] [PASSED] 0x56C2 (DG2)
[16:59:16] [PASSED] 0x56C1 (DG2)
[16:59:16] [PASSED] 0x7D51 (METEORLAKE)
[16:59:16] [PASSED] 0x7DD1 (METEORLAKE)
[16:59:16] [PASSED] 0x7D41 (METEORLAKE)
[16:59:16] [PASSED] 0x7D67 (METEORLAKE)
[16:59:16] [PASSED] 0xB640 (METEORLAKE)
[16:59:16] [PASSED] 0x56A0 (DG2)
[16:59:16] [PASSED] 0x56A1 (DG2)
[16:59:16] [PASSED] 0x56A2 (DG2)
[16:59:16] [PASSED] 0x56BE (DG2)
[16:59:16] [PASSED] 0x56BF (DG2)
[16:59:16] [PASSED] 0x5690 (DG2)
[16:59:16] [PASSED] 0x5691 (DG2)
[16:59:16] [PASSED] 0x5692 (DG2)
[16:59:16] [PASSED] 0x56A5 (DG2)
[16:59:16] [PASSED] 0x56A6 (DG2)
[16:59:16] [PASSED] 0x56B0 (DG2)
[16:59:16] [PASSED] 0x56B1 (DG2)
[16:59:16] [PASSED] 0x56BA (DG2)
[16:59:16] [PASSED] 0x56BB (DG2)
[16:59:16] [PASSED] 0x56BC (DG2)
[16:59:16] [PASSED] 0x56BD (DG2)
[16:59:16] [PASSED] 0x5693 (DG2)
[16:59:16] [PASSED] 0x5694 (DG2)
[16:59:16] [PASSED] 0x5695 (DG2)
[16:59:16] [PASSED] 0x56A3 (DG2)
[16:59:16] [PASSED] 0x56A4 (DG2)
[16:59:16] [PASSED] 0x56B2 (DG2)
[16:59:16] [PASSED] 0x56B3 (DG2)
[16:59:16] [PASSED] 0x5696 (DG2)
[16:59:16] [PASSED] 0x5697 (DG2)
[16:59:16] [PASSED] 0xB69 (PVC)
[16:59:16] [PASSED] 0xB6E (PVC)
[16:59:16] [PASSED] 0xBD4 (PVC)
[16:59:16] [PASSED] 0xBD5 (PVC)
[16:59:16] [PASSED] 0xBD6 (PVC)
[16:59:16] [PASSED] 0xBD7 (PVC)
[16:59:16] [PASSED] 0xBD8 (PVC)
[16:59:16] [PASSED] 0xBD9 (PVC)
[16:59:16] [PASSED] 0xBDA (PVC)
[16:59:16] [PASSED] 0xBDB (PVC)
[16:59:16] [PASSED] 0xBE0 (PVC)
[16:59:16] [PASSED] 0xBE1 (PVC)
[16:59:16] [PASSED] 0xBE5 (PVC)
[16:59:16] [PASSED] 0x7D40 (METEORLAKE)
[16:59:16] [PASSED] 0x7D45 (METEORLAKE)
[16:59:16] [PASSED] 0x7D55 (METEORLAKE)
[16:59:16] [PASSED] 0x7D60 (METEORLAKE)
[16:59:16] [PASSED] 0x7DD5 (METEORLAKE)
[16:59:16] [PASSED] 0x6420 (LUNARLAKE)
[16:59:16] [PASSED] 0x64A0 (LUNARLAKE)
[16:59:16] [PASSED] 0x64B0 (LUNARLAKE)
[16:59:16] [PASSED] 0xE202 (BATTLEMAGE)
[16:59:16] [PASSED] 0xE209 (BATTLEMAGE)
[16:59:16] [PASSED] 0xE20B (BATTLEMAGE)
[16:59:16] [PASSED] 0xE20C (BATTLEMAGE)
[16:59:16] [PASSED] 0xE20D (BATTLEMAGE)
[16:59:16] [PASSED] 0xE210 (BATTLEMAGE)
[16:59:16] [PASSED] 0xE211 (BATTLEMAGE)
[16:59:16] [PASSED] 0xE212 (BATTLEMAGE)
[16:59:16] [PASSED] 0xE216 (BATTLEMAGE)
[16:59:16] [PASSED] 0xE220 (BATTLEMAGE)
[16:59:16] [PASSED] 0xE221 (BATTLEMAGE)
[16:59:16] [PASSED] 0xE222 (BATTLEMAGE)
[16:59:16] [PASSED] 0xE223 (BATTLEMAGE)
[16:59:16] [PASSED] 0xB080 (PANTHERLAKE)
[16:59:16] [PASSED] 0xB081 (PANTHERLAKE)
[16:59:16] [PASSED] 0xB082 (PANTHERLAKE)
[16:59:16] [PASSED] 0xB083 (PANTHERLAKE)
[16:59:16] [PASSED] 0xB084 (PANTHERLAKE)
[16:59:16] [PASSED] 0xB085 (PANTHERLAKE)
[16:59:16] [PASSED] 0xB086 (PANTHERLAKE)
[16:59:16] [PASSED] 0xB087 (PANTHERLAKE)
[16:59:16] [PASSED] 0xB08F (PANTHERLAKE)
[16:59:16] [PASSED] 0xB090 (PANTHERLAKE)
[16:59:16] [PASSED] 0xB0A0 (PANTHERLAKE)
[16:59:16] [PASSED] 0xB0B0 (PANTHERLAKE)
[16:59:16] [PASSED] 0xFD80 (PANTHERLAKE)
[16:59:16] [PASSED] 0xFD81 (PANTHERLAKE)
[16:59:16] [PASSED] 0xD740 (NOVALAKE_S)
[16:59:16] [PASSED] 0xD741 (NOVALAKE_S)
[16:59:16] [PASSED] 0xD742 (NOVALAKE_S)
[16:59:16] [PASSED] 0xD743 (NOVALAKE_S)
[16:59:16] [PASSED] 0xD745 (NOVALAKE_S)
[16:59:16] [PASSED] 0xD74A (NOVALAKE_S)
[16:59:16] [PASSED] 0xD74B (NOVALAKE_S)
[16:59:16] [PASSED] 0x674C (CRESCENTISLAND)
[16:59:16] [PASSED] 0x674D (CRESCENTISLAND)
[16:59:16] [PASSED] 0x674E (CRESCENTISLAND)
[16:59:16] [PASSED] 0x674F (CRESCENTISLAND)
[16:59:16] [PASSED] 0x6750 (CRESCENTISLAND)
[16:59:16] [PASSED] 0xD750 (NOVALAKE_P)
[16:59:16] [PASSED] 0xD751 (NOVALAKE_P)
[16:59:16] [PASSED] 0xD752 (NOVALAKE_P)
[16:59:16] [PASSED] 0xD753 (NOVALAKE_P)
[16:59:16] [PASSED] 0xD754 (NOVALAKE_P)
[16:59:16] [PASSED] 0xD755 (NOVALAKE_P)
[16:59:16] [PASSED] 0xD756 (NOVALAKE_P)
[16:59:16] [PASSED] 0xD757 (NOVALAKE_P)
[16:59:16] [PASSED] 0xD75F (NOVALAKE_P)
[16:59:16] =============== [PASSED] check_platform_desc ===============
[16:59:16] ===================== [PASSED] xe_pci ======================
[16:59:16] ============= xe_rtp_tables_test (5 subtests) ==============
[16:59:16] ================== xe_rtp_table_gt_test ===================
[16:59:16] [PASSED] gt_was/14011060649
[16:59:16] [PASSED] gt_was/14011059788
[16:59:16] [PASSED] gt_was/14015795083
[16:59:16] [PASSED] gt_was/16021867713
[16:59:16] [PASSED] gt_was/14019449301
[16:59:16] [PASSED] gt_was/16028005424
[16:59:16] [PASSED] gt_was/14026578760
[16:59:16] [PASSED] gt_was/1409420604
[16:59:16] [PASSED] gt_was/1408615072
[16:59:16] [PASSED] gt_was/22010523718
[16:59:16] [PASSED] gt_was/14011006942
[16:59:16] [PASSED] gt_was/14014830051
[16:59:16] [PASSED] gt_was/18018781329
[16:59:16] [PASSED] gt_was/1509235366
[16:59:16] [PASSED] gt_was/18018781329
[16:59:16] [PASSED] gt_was/16016694945
[16:59:16] [PASSED] gt_was/14018575942
[16:59:16] [PASSED] gt_was/22016670082
[16:59:16] [PASSED] gt_was/22016670082
[16:59:16] [PASSED] gt_was/14017421178
[16:59:16] [PASSED] gt_was/16025250150
[16:59:16] [PASSED] gt_was/14021871409
[16:59:16] [PASSED] gt_was/16021865536
[16:59:16] [PASSED] gt_was/14021486841
[16:59:16] [PASSED] gt_was/14025160223
[16:59:16] [PASSED] gt_was/14026144927, 16029437861, 14026127056
[16:59:16] [PASSED] gt_was/14025635424
[16:59:16] [PASSED] gt_was/16028005424
[16:59:16] ============== [PASSED] xe_rtp_table_gt_test ===============
[16:59:16] ================== xe_rtp_table_gt_test ===================
[16:59:16] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable
[16:59:16] [PASSED] gt_tunings/Tuning: 32B Access Enable
[16:59:16] [PASSED] gt_tunings/Tuning: L3 cache
[16:59:16] [PASSED] gt_tunings/Tuning: L3 cache - media
[16:59:16] [PASSED] gt_tunings/Tuning: Compression Overfetch
[16:59:16] [PASSED] gt_tunings/Tuning: Compression Overfetch - media
[16:59:16] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3
[16:59:16] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media
[16:59:16] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only
[16:59:16] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media
[16:59:16] [PASSED] gt_tunings/Tuning: Stateless compression control
[16:59:16] [PASSED] gt_tunings/Tuning: Stateless compression control - media
[16:59:16] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache
[16:59:16] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media
[16:59:16] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB
[16:59:16] ============== [PASSED] xe_rtp_table_gt_test ===============
[16:59:16] ================== xe_rtp_table_oob_test ==================
[16:59:16] [PASSED] oob_was/1607983814
[16:59:16] [PASSED] oob_was/16010904313
[16:59:16] [PASSED] oob_was/18022495364
[16:59:16] [PASSED] oob_was/22012773006
[16:59:16] [PASSED] oob_was/14014475959
[16:59:16] [PASSED] oob_was/22011391025
[16:59:16] [PASSED] oob_was/22012727170
[16:59:16] [PASSED] oob_was/22012727685
[16:59:16] [PASSED] oob_was/22016596838
[16:59:16] [PASSED] oob_was/18020744125
[16:59:16] [PASSED] oob_was/1409600907
[16:59:16] [PASSED] oob_was/22014953428
[16:59:16] [PASSED] oob_was/16017236439
[16:59:16] [PASSED] oob_was/14019821291
[16:59:16] [PASSED] oob_was/14015076503
[16:59:16] [PASSED] oob_was/14018913170
[16:59:16] [PASSED] oob_was/14018094691
[16:59:16] [PASSED] oob_was/18024947630
[16:59:16] [PASSED] oob_was/16022287689
[16:59:16] [PASSED] oob_was/13011645652
[16:59:16] [PASSED] oob_was/14022293748
[16:59:16] [PASSED] oob_was/22019794406
[16:59:16] [PASSED] oob_was/22019338487
[16:59:16] [PASSED] oob_was/16023588340
[16:59:16] [PASSED] oob_was/14019789679
[16:59:16] [PASSED] oob_was/14022866841
[16:59:16] [PASSED] oob_was/16021333562
[16:59:16] [PASSED] oob_was/14016712196
[16:59:16] [PASSED] oob_was/14015568240
[16:59:16] [PASSED] oob_was/18013179988
[16:59:16] [PASSED] oob_was/1508761755
[16:59:16] [PASSED] oob_was/16023105232
[16:59:16] [PASSED] oob_was/16026508708
[16:59:16] [PASSED] oob_was/14020001231
[16:59:16] [PASSED] oob_was/16023683509
[16:59:16] [PASSED] oob_was/14025515070
[16:59:16] [PASSED] oob_was/15015404425_disable
[16:59:16] [PASSED] oob_was/16026007364
[16:59:16] [PASSED] oob_was/14020316580
[16:59:16] [PASSED] oob_was/14025883347
[16:59:16] [PASSED] oob_was/16029380221
[16:59:16] [PASSED] oob_was/22022079272
[16:59:16] [PASSED] oob_was/16029897822
[16:59:16] ============== [PASSED] xe_rtp_table_oob_test ==============
[16:59:16] ================ xe_rtp_table_dev_oob_test ================
[16:59:16] [PASSED] device_oob_was/22010954014
[16:59:16] [PASSED] device_oob_was/15015404425
[16:59:16] [PASSED] device_oob_was/22019338487_display
[16:59:16] [PASSED] device_oob_was/14022085890
[16:59:16] [PASSED] device_oob_was/14026539277
[16:59:16] [PASSED] device_oob_was/14026633728
[16:59:16] [PASSED] device_oob_was/14026746987
[16:59:16] [PASSED] device_oob_was/14026779378
[16:59:16] ============ [PASSED] xe_rtp_table_dev_oob_test ============
[16:59:16] ========== xe_rtp_table_missing_upper_bound_test ==========
[16:59:16] [PASSED] register_whitelist/WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865
[16:59:16] [PASSED] register_whitelist/1508744258, 14012131227, 1808121037
[16:59:16] [PASSED] register_whitelist/1806527549
[16:59:16] [PASSED] register_whitelist/allow_read_ctx_timestamp
[16:59:16] [PASSED] register_whitelist/allow_read_queue_timestamp
[16:59:16] [PASSED] register_whitelist/16014440446
[16:59:16] [PASSED] register_whitelist/16017236439
[16:59:16] [PASSED] register_whitelist/16020183090
[16:59:16] [PASSED] register_whitelist/14024997852
[16:59:16] [PASSED] register_whitelist/14024997852
[16:59:16] ====== [PASSED] xe_rtp_table_missing_upper_bound_test ======
[16:59:16] =============== [PASSED] xe_rtp_tables_test ================
[16:59:16] =================== xe_rtp (3 subtests) ====================
[16:59:16] =================== xe_rtp_rules_tests ====================
[16:59:16] [PASSED] no
[16:59:16] [PASSED] yes
[16:59:16] [PASSED] no-and-no
[16:59:16] [PASSED] no-and-yes
[16:59:16] [PASSED] yes-and-no
[16:59:16] [PASSED] yes-and-yes
[16:59:16] [PASSED] no-or-no
[16:59:16] [PASSED] no-or-yes
[16:59:16] [PASSED] yes-or-no
[16:59:16] [PASSED] yes-or-yes
[16:59:16] [PASSED] no-yes-or-yes-no
[16:59:16] [PASSED] no-yes-or-yes-yes
[16:59:16] [PASSED] yes-yes-or-no-yes
[16:59:16] [PASSED] yes-yes-or-yes-yes
[16:59:16] [PASSED] no-no-or-yes-or-no
[16:59:16] [PASSED] or
[16:59:16] [PASSED] or-yes
[16:59:16] [PASSED] or-no
[16:59:16] [PASSED] yes-or
[16:59:16] [PASSED] no-or
[16:59:17] [PASSED] no-or-or-yes
[16:59:17] [PASSED] yes-or-or-no
[16:59:17] [PASSED] no-or-or-no
[16:59:17] [PASSED] missing-context-engine-class
[16:59:17] [PASSED] missing-context-engine-class-or-yes
[16:59:17] [PASSED] missing-context-engine-class-or-or-yes
[16:59:17] =============== [PASSED] xe_rtp_rules_tests ================
[16:59:17] =============== xe_rtp_process_to_sr_tests ================
[16:59:17] [PASSED] coalesce-same-reg
[16:59:17] [PASSED] coalesce-same-reg-literal-and-func
[16:59:17] [PASSED] no-match-no-add
[16:59:17] [PASSED] two-regs-two-entries
[16:59:17] [PASSED] clr-one-set-other
[16:59:17] [PASSED] set-field
[16:59:17] [PASSED] conflict-duplicate
[16:59:17] [PASSED] conflict-not-disjoint
[16:59:17] [PASSED] conflict-not-disjoint-literal-and-func
[16:59:17] [PASSED] conflict-reg-type
[16:59:17] [PASSED] bad-mcr-reg-forced-to-regular
[16:59:17] [PASSED] bad-regular-reg-forced-to-mcr
[16:59:17] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[16:59:17] ================== xe_rtp_process_tests ===================
[16:59:17] [PASSED] active1
[16:59:17] [PASSED] active2
[16:59:17] [PASSED] active-inactive
[16:59:17] [PASSED] inactive-active
[16:59:17] [PASSED] inactive-active-inactive
[16:59:17] [PASSED] inactive-inactive-inactive
[16:59:17] ============== [PASSED] xe_rtp_process_tests ===============
[16:59:17] ===================== [PASSED] xe_rtp ======================
[16:59:17] ==================== xe_wa (1 subtest) =====================
[16:59:17] ======================== xe_wa_gt =========================
[16:59:17] [PASSED] TIGERLAKE B0
[16:59:17] [PASSED] DG1 A0
[16:59:17] [PASSED] DG1 B0
[16:59:17] [PASSED] ALDERLAKE_S A0
[16:59:17] [PASSED] ALDERLAKE_S B0
[16:59:17] [PASSED] ALDERLAKE_S C0
[16:59:17] [PASSED] ALDERLAKE_S D0
[16:59:17] [PASSED] ALDERLAKE_P A0
[16:59:17] [PASSED] ALDERLAKE_P B0
[16:59:17] [PASSED] ALDERLAKE_P C0
[16:59:17] [PASSED] ALDERLAKE_S RPLS D0
[16:59:17] [PASSED] ALDERLAKE_P RPLU E0
[16:59:17] [PASSED] DG2 G10 C0
[16:59:17] [PASSED] DG2 G11 B1
[16:59:17] [PASSED] DG2 G12 A1
[16:59:17] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[16:59:17] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[16:59:17] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[16:59:17] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[16:59:17] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[16:59:17] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[16:59:17] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[16:59:17] ==================== [PASSED] xe_wa_gt =====================
[16:59:17] ====================== [PASSED] xe_wa ======================
[16:59:17] ============================================================
[16:59:17] Testing complete. Ran 741 tests: passed: 723, skipped: 18
[16:59:17] Elapsed time: 37.293s total, 4.332s configuring, 32.295s building, 0.643s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[16:59:17] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[16:59:18] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[16:59:44] Starting KUnit Kernel (1/1)...
[16:59:44] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[16:59:44] ============ drm_test_pick_cmdline (2 subtests) ============
[16:59:44] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[16:59:44] =============== drm_test_pick_cmdline_named ===============
[16:59:44] [PASSED] NTSC
[16:59:44] [PASSED] NTSC-J
[16:59:44] [PASSED] PAL
[16:59:44] [PASSED] PAL-M
[16:59:44] =========== [PASSED] drm_test_pick_cmdline_named ===========
[16:59:44] ============== [PASSED] drm_test_pick_cmdline ==============
[16:59:44] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[16:59:44] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[16:59:44] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[16:59:44] =========== drm_validate_clone_mode (2 subtests) ===========
[16:59:44] ============== drm_test_check_in_clone_mode ===============
[16:59:44] [PASSED] in_clone_mode
[16:59:44] [PASSED] not_in_clone_mode
[16:59:44] ========== [PASSED] drm_test_check_in_clone_mode ===========
[16:59:44] =============== drm_test_check_valid_clones ===============
[16:59:44] [PASSED] not_in_clone_mode
[16:59:44] [PASSED] valid_clone
[16:59:44] [PASSED] invalid_clone
[16:59:44] =========== [PASSED] drm_test_check_valid_clones ===========
[16:59:44] ============= [PASSED] drm_validate_clone_mode =============
[16:59:44] ============= drm_validate_modeset (1 subtest) =============
[16:59:44] [PASSED] drm_test_check_connector_changed_modeset
[16:59:44] ============== [PASSED] drm_validate_modeset ===============
[16:59:44] ====== drm_test_bridge_get_current_state (1 subtest) =======
[16:59:44] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[16:59:44] ======== [PASSED] drm_test_bridge_get_current_state ========
[16:59:44] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[16:59:44] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[16:59:44] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[16:59:44] [PASSED] drm_test_drm_bridge_helper_hdmi_output_bus_fmts
[16:59:44] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[16:59:44] ============== drm_bridge_alloc (2 subtests) ===============
[16:59:44] [PASSED] drm_test_drm_bridge_alloc_basic
[16:59:44] [PASSED] drm_test_drm_bridge_alloc_get_put
[16:59:44] ================ [PASSED] drm_bridge_alloc =================
[16:59:44] ============= drm_bridge_bus_fmt (5 subtests) ==============
[16:59:44] [PASSED] drm_test_bridge_rgb_yuv_rgb
[16:59:44] [PASSED] drm_test_bridge_must_convert_to_yuv444
[16:59:44] [PASSED] drm_test_bridge_hdmi_auto_rgb
[16:59:44] [PASSED] drm_test_bridge_auto_first
[16:59:44] [PASSED] drm_test_bridge_rgb_yuv_no_path
[16:59:44] =============== [PASSED] drm_bridge_bus_fmt ================
[16:59:44] ============= drm_cmdline_parser (40 subtests) =============
[16:59:44] [PASSED] drm_test_cmdline_force_d_only
[16:59:44] [PASSED] drm_test_cmdline_force_D_only_dvi
[16:59:44] [PASSED] drm_test_cmdline_force_D_only_hdmi
[16:59:44] [PASSED] drm_test_cmdline_force_D_only_not_digital
[16:59:44] [PASSED] drm_test_cmdline_force_e_only
[16:59:44] [PASSED] drm_test_cmdline_res
[16:59:44] [PASSED] drm_test_cmdline_res_vesa
[16:59:44] [PASSED] drm_test_cmdline_res_vesa_rblank
[16:59:44] [PASSED] drm_test_cmdline_res_rblank
[16:59:44] [PASSED] drm_test_cmdline_res_bpp
[16:59:44] [PASSED] drm_test_cmdline_res_refresh
[16:59:44] [PASSED] drm_test_cmdline_res_bpp_refresh
[16:59:44] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[16:59:44] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[16:59:44] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[16:59:44] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[16:59:44] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[16:59:44] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[16:59:44] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[16:59:44] [PASSED] drm_test_cmdline_res_margins_force_on
[16:59:44] [PASSED] drm_test_cmdline_res_vesa_margins
[16:59:44] [PASSED] drm_test_cmdline_name
[16:59:44] [PASSED] drm_test_cmdline_name_bpp
[16:59:44] [PASSED] drm_test_cmdline_name_option
[16:59:44] [PASSED] drm_test_cmdline_name_bpp_option
[16:59:44] [PASSED] drm_test_cmdline_rotate_0
[16:59:44] [PASSED] drm_test_cmdline_rotate_90
[16:59:44] [PASSED] drm_test_cmdline_rotate_180
[16:59:44] [PASSED] drm_test_cmdline_rotate_270
[16:59:44] [PASSED] drm_test_cmdline_hmirror
[16:59:44] [PASSED] drm_test_cmdline_vmirror
[16:59:44] [PASSED] drm_test_cmdline_margin_options
[16:59:44] [PASSED] drm_test_cmdline_multiple_options
[16:59:44] [PASSED] drm_test_cmdline_bpp_extra_and_option
[16:59:44] [PASSED] drm_test_cmdline_extra_and_option
[16:59:44] [PASSED] drm_test_cmdline_freestanding_options
[16:59:44] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[16:59:44] [PASSED] drm_test_cmdline_panel_orientation
[16:59:44] ================ drm_test_cmdline_invalid =================
[16:59:44] [PASSED] margin_only
[16:59:44] [PASSED] interlace_only
[16:59:44] [PASSED] res_missing_x
[16:59:44] [PASSED] res_missing_y
[16:59:44] [PASSED] res_bad_y
[16:59:44] [PASSED] res_missing_y_bpp
[16:59:44] [PASSED] res_bad_bpp
[16:59:44] [PASSED] res_bad_refresh
[16:59:44] [PASSED] res_bpp_refresh_force_on_off
[16:59:44] [PASSED] res_invalid_mode
[16:59:44] [PASSED] res_bpp_wrong_place_mode
[16:59:44] [PASSED] name_bpp_refresh
[16:59:44] [PASSED] name_refresh
[16:59:44] [PASSED] name_refresh_wrong_mode
[16:59:44] [PASSED] name_refresh_invalid_mode
[16:59:44] [PASSED] rotate_multiple
[16:59:44] [PASSED] rotate_invalid_val
[16:59:44] [PASSED] rotate_truncated
[16:59:44] [PASSED] invalid_option
[16:59:44] [PASSED] invalid_tv_option
[16:59:44] [PASSED] truncated_tv_option
[16:59:44] ============ [PASSED] drm_test_cmdline_invalid =============
[16:59:44] =============== drm_test_cmdline_tv_options ===============
[16:59:44] [PASSED] NTSC
[16:59:44] [PASSED] NTSC_443
[16:59:44] [PASSED] NTSC_J
[16:59:44] [PASSED] PAL
[16:59:44] [PASSED] PAL_M
[16:59:44] [PASSED] PAL_N
[16:59:44] [PASSED] SECAM
[16:59:44] [PASSED] MONO_525
[16:59:44] [PASSED] MONO_625
[16:59:44] =========== [PASSED] drm_test_cmdline_tv_options ===========
[16:59:44] =============== [PASSED] drm_cmdline_parser ================
[16:59:44] ========== drmm_connector_hdmi_init (20 subtests) ==========
[16:59:44] [PASSED] drm_test_connector_hdmi_init_valid
[16:59:44] [PASSED] drm_test_connector_hdmi_init_bpc_8
[16:59:44] [PASSED] drm_test_connector_hdmi_init_bpc_10
[16:59:44] [PASSED] drm_test_connector_hdmi_init_bpc_12
[16:59:44] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[16:59:44] [PASSED] drm_test_connector_hdmi_init_bpc_null
[16:59:44] [PASSED] drm_test_connector_hdmi_init_formats_empty
[16:59:44] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[16:59:44] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[16:59:44] [PASSED] supported_formats=0x9 yuv420_allowed=1
[16:59:44] [PASSED] supported_formats=0x9 yuv420_allowed=0
[16:59:44] [PASSED] supported_formats=0x5 yuv420_allowed=1
[16:59:44] [PASSED] supported_formats=0x5 yuv420_allowed=0
[16:59:44] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[16:59:44] [PASSED] drm_test_connector_hdmi_init_null_ddc
[16:59:44] [PASSED] drm_test_connector_hdmi_init_null_product
[16:59:44] [PASSED] drm_test_connector_hdmi_init_null_vendor
[16:59:44] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[16:59:44] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[16:59:44] [PASSED] drm_test_connector_hdmi_init_product_valid
[16:59:44] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[16:59:44] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[16:59:44] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[16:59:44] ========= drm_test_connector_hdmi_init_type_valid =========
[16:59:44] [PASSED] HDMI-A
[16:59:44] [PASSED] HDMI-B
[16:59:44] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[16:59:44] ======== drm_test_connector_hdmi_init_type_invalid ========
[16:59:44] [PASSED] Unknown
[16:59:44] [PASSED] VGA
[16:59:44] [PASSED] DVI-I
[16:59:44] [PASSED] DVI-D
[16:59:44] [PASSED] DVI-A
[16:59:44] [PASSED] Composite
[16:59:44] [PASSED] SVIDEO
[16:59:44] [PASSED] LVDS
[16:59:44] [PASSED] Component
[16:59:44] [PASSED] DIN
[16:59:44] [PASSED] DP
[16:59:44] [PASSED] TV
[16:59:44] [PASSED] eDP
[16:59:44] [PASSED] Virtual
[16:59:44] [PASSED] DSI
[16:59:44] [PASSED] DPI
[16:59:44] [PASSED] Writeback
[16:59:44] [PASSED] SPI
[16:59:44] [PASSED] USB
[16:59:44] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[16:59:44] ============ [PASSED] drmm_connector_hdmi_init =============
[16:59:44] ============= drmm_connector_init (3 subtests) =============
[16:59:44] [PASSED] drm_test_drmm_connector_init
[16:59:44] [PASSED] drm_test_drmm_connector_init_null_ddc
[16:59:44] ========= drm_test_drmm_connector_init_type_valid =========
[16:59:44] [PASSED] Unknown
[16:59:44] [PASSED] VGA
[16:59:44] [PASSED] DVI-I
[16:59:44] [PASSED] DVI-D
[16:59:44] [PASSED] DVI-A
[16:59:44] [PASSED] Composite
[16:59:44] [PASSED] SVIDEO
[16:59:44] [PASSED] LVDS
[16:59:44] [PASSED] Component
[16:59:44] [PASSED] DIN
[16:59:44] [PASSED] DP
[16:59:44] [PASSED] HDMI-A
[16:59:44] [PASSED] HDMI-B
[16:59:44] [PASSED] TV
[16:59:44] [PASSED] eDP
[16:59:44] [PASSED] Virtual
[16:59:44] [PASSED] DSI
[16:59:44] [PASSED] DPI
[16:59:44] [PASSED] Writeback
[16:59:44] [PASSED] SPI
[16:59:44] [PASSED] USB
[16:59:44] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[16:59:44] =============== [PASSED] drmm_connector_init ===============
[16:59:44] ========= drm_connector_dynamic_init (6 subtests) ==========
[16:59:44] [PASSED] drm_test_drm_connector_dynamic_init
[16:59:44] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[16:59:44] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[16:59:44] [PASSED] drm_test_drm_connector_dynamic_init_properties
[16:59:44] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[16:59:44] [PASSED] Unknown
[16:59:44] [PASSED] VGA
[16:59:44] [PASSED] DVI-I
[16:59:44] [PASSED] DVI-D
[16:59:44] [PASSED] DVI-A
[16:59:44] [PASSED] Composite
[16:59:44] [PASSED] SVIDEO
[16:59:44] [PASSED] LVDS
[16:59:44] [PASSED] Component
[16:59:44] [PASSED] DIN
[16:59:44] [PASSED] DP
[16:59:44] [PASSED] HDMI-A
[16:59:44] [PASSED] HDMI-B
[16:59:44] [PASSED] TV
[16:59:44] [PASSED] eDP
[16:59:44] [PASSED] Virtual
[16:59:44] [PASSED] DSI
[16:59:44] [PASSED] DPI
[16:59:44] [PASSED] Writeback
[16:59:44] [PASSED] SPI
[16:59:44] [PASSED] USB
[16:59:44] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[16:59:44] ======== drm_test_drm_connector_dynamic_init_name =========
[16:59:44] [PASSED] Unknown
[16:59:44] [PASSED] VGA
[16:59:44] [PASSED] DVI-I
[16:59:44] [PASSED] DVI-D
[16:59:44] [PASSED] DVI-A
[16:59:44] [PASSED] Composite
[16:59:44] [PASSED] SVIDEO
[16:59:44] [PASSED] LVDS
[16:59:44] [PASSED] Component
[16:59:44] [PASSED] DIN
[16:59:44] [PASSED] DP
[16:59:44] [PASSED] HDMI-A
[16:59:44] [PASSED] HDMI-B
[16:59:44] [PASSED] TV
[16:59:44] [PASSED] eDP
[16:59:44] [PASSED] Virtual
[16:59:44] [PASSED] DSI
[16:59:44] [PASSED] DPI
[16:59:44] [PASSED] Writeback
[16:59:44] [PASSED] SPI
[16:59:44] [PASSED] USB
[16:59:44] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[16:59:44] =========== [PASSED] drm_connector_dynamic_init ============
[16:59:44] ==== drm_connector_dynamic_register_early (4 subtests) =====
[16:59:44] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[16:59:44] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[16:59:44] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[16:59:44] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[16:59:44] ====== [PASSED] drm_connector_dynamic_register_early =======
[16:59:44] ======= drm_connector_dynamic_register (7 subtests) ========
[16:59:44] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[16:59:44] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[16:59:44] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[16:59:44] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[16:59:44] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[16:59:44] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[16:59:44] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[16:59:44] ========= [PASSED] drm_connector_dynamic_register ==========
[16:59:44] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[16:59:44] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[16:59:44] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[16:59:44] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[16:59:44] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[16:59:44] ========== drm_test_get_tv_mode_from_name_valid ===========
[16:59:44] [PASSED] NTSC
[16:59:44] [PASSED] NTSC-443
[16:59:44] [PASSED] NTSC-J
[16:59:44] [PASSED] PAL
[16:59:44] [PASSED] PAL-M
[16:59:44] [PASSED] PAL-N
[16:59:44] [PASSED] SECAM
[16:59:44] [PASSED] Mono
[16:59:44] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[16:59:44] [PASSED] drm_test_get_tv_mode_from_name_truncated
[16:59:44] ============ [PASSED] drm_get_tv_mode_from_name ============
[16:59:44] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[16:59:44] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[16:59:44] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[16:59:44] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[16:59:44] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[16:59:44] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[16:59:44] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[16:59:44] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[16:59:44] [PASSED] VIC 96
[16:59:44] [PASSED] VIC 97
[16:59:44] [PASSED] VIC 101
[16:59:44] [PASSED] VIC 102
[16:59:44] [PASSED] VIC 106
[16:59:44] [PASSED] VIC 107
[16:59:44] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[16:59:44] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[16:59:44] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[16:59:44] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[16:59:44] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[16:59:44] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[16:59:44] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[16:59:44] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[16:59:44] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[16:59:44] [PASSED] Automatic
[16:59:44] [PASSED] Full
[16:59:44] [PASSED] Limited 16:235
[16:59:44] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[16:59:44] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[16:59:44] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[16:59:44] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[16:59:44] === drm_test_drm_hdmi_connector_get_output_format_name ====
[16:59:44] [PASSED] RGB
[16:59:44] [PASSED] YUV 4:2:0
[16:59:44] [PASSED] YUV 4:2:2
[16:59:44] [PASSED] YUV 4:4:4
[16:59:44] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[16:59:44] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[16:59:44] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[16:59:44] ============= drm_damage_helper (21 subtests) ==============
[16:59:44] [PASSED] drm_test_damage_iter_no_damage
[16:59:44] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[16:59:44] [PASSED] drm_test_damage_iter_no_damage_src_moved
[16:59:44] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[16:59:44] [PASSED] drm_test_damage_iter_no_damage_not_visible
[16:59:44] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[16:59:44] [PASSED] drm_test_damage_iter_no_damage_no_fb
[16:59:44] [PASSED] drm_test_damage_iter_simple_damage
[16:59:44] [PASSED] drm_test_damage_iter_single_damage
[16:59:44] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[16:59:44] [PASSED] drm_test_damage_iter_single_damage_outside_src
[16:59:44] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[16:59:44] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[16:59:44] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[16:59:44] [PASSED] drm_test_damage_iter_single_damage_src_moved
[16:59:44] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[16:59:44] [PASSED] drm_test_damage_iter_damage
[16:59:44] [PASSED] drm_test_damage_iter_damage_one_intersect
[16:59:44] [PASSED] drm_test_damage_iter_damage_one_outside
[16:59:44] [PASSED] drm_test_damage_iter_damage_src_moved
[16:59:44] [PASSED] drm_test_damage_iter_damage_not_visible
[16:59:44] ================ [PASSED] drm_damage_helper ================
[16:59:44] ============== drm_dp_mst_helper (3 subtests) ==============
[16:59:44] ============== drm_test_dp_mst_calc_pbn_mode ==============
[16:59:44] [PASSED] Clock 154000 BPP 30 DSC disabled
[16:59:44] [PASSED] Clock 234000 BPP 30 DSC disabled
[16:59:44] [PASSED] Clock 297000 BPP 24 DSC disabled
[16:59:44] [PASSED] Clock 332880 BPP 24 DSC enabled
[16:59:44] [PASSED] Clock 324540 BPP 24 DSC enabled
[16:59:44] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[16:59:44] ============== drm_test_dp_mst_calc_pbn_div ===============
[16:59:44] [PASSED] Link rate 2000000 lane count 4
[16:59:44] [PASSED] Link rate 2000000 lane count 2
[16:59:44] [PASSED] Link rate 2000000 lane count 1
[16:59:44] [PASSED] Link rate 1350000 lane count 4
[16:59:44] [PASSED] Link rate 1350000 lane count 2
[16:59:44] [PASSED] Link rate 1350000 lane count 1
[16:59:44] [PASSED] Link rate 1000000 lane count 4
[16:59:44] [PASSED] Link rate 1000000 lane count 2
[16:59:44] [PASSED] Link rate 1000000 lane count 1
[16:59:44] [PASSED] Link rate 810000 lane count 4
[16:59:44] [PASSED] Link rate 810000 lane count 2
[16:59:44] [PASSED] Link rate 810000 lane count 1
[16:59:44] [PASSED] Link rate 540000 lane count 4
[16:59:44] [PASSED] Link rate 540000 lane count 2
[16:59:44] [PASSED] Link rate 540000 lane count 1
[16:59:44] [PASSED] Link rate 270000 lane count 4
[16:59:44] [PASSED] Link rate 270000 lane count 2
[16:59:44] [PASSED] Link rate 270000 lane count 1
[16:59:44] [PASSED] Link rate 162000 lane count 4
[16:59:44] [PASSED] Link rate 162000 lane count 2
[16:59:44] [PASSED] Link rate 162000 lane count 1
[16:59:44] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[16:59:44] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[16:59:44] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[16:59:44] [PASSED] DP_POWER_UP_PHY with port number
[16:59:44] [PASSED] DP_POWER_DOWN_PHY with port number
[16:59:44] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[16:59:44] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[16:59:44] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[16:59:44] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[16:59:44] [PASSED] DP_QUERY_PAYLOAD with port number
[16:59:44] [PASSED] DP_QUERY_PAYLOAD with VCPI
[16:59:44] [PASSED] DP_REMOTE_DPCD_READ with port number
[16:59:44] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[16:59:44] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[16:59:44] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[16:59:44] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[16:59:44] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[16:59:44] [PASSED] DP_REMOTE_I2C_READ with port number
[16:59:44] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[16:59:44] [PASSED] DP_REMOTE_I2C_READ with transactions array
[16:59:44] [PASSED] DP_REMOTE_I2C_WRITE with port number
[16:59:44] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[16:59:44] [PASSED] DP_REMOTE_I2C_WRITE with data array
[16:59:44] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[16:59:44] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[16:59:44] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[16:59:44] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[16:59:44] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[16:59:44] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[16:59:44] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[16:59:44] ================ [PASSED] drm_dp_mst_helper ================
[16:59:44] ================== drm_exec (7 subtests) ===================
[16:59:44] [PASSED] sanitycheck
[16:59:44] [PASSED] test_lock
[16:59:44] [PASSED] test_lock_unlock
[16:59:44] [PASSED] test_duplicates
[16:59:44] [PASSED] test_prepare
[16:59:44] [PASSED] test_prepare_array
[16:59:44] [PASSED] test_multiple_loops
[16:59:44] ==================== [PASSED] drm_exec =====================
[16:59:44] =========== drm_format_helper_test (17 subtests) ===========
[16:59:44] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[16:59:44] [PASSED] single_pixel_source_buffer
[16:59:44] [PASSED] single_pixel_clip_rectangle
[16:59:44] [PASSED] well_known_colors
[16:59:44] [PASSED] destination_pitch
[16:59:44] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[16:59:44] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[16:59:44] [PASSED] single_pixel_source_buffer
[16:59:44] [PASSED] single_pixel_clip_rectangle
[16:59:44] [PASSED] well_known_colors
[16:59:44] [PASSED] destination_pitch
[16:59:44] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[16:59:44] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[16:59:44] [PASSED] single_pixel_source_buffer
[16:59:44] [PASSED] single_pixel_clip_rectangle
[16:59:44] [PASSED] well_known_colors
[16:59:44] [PASSED] destination_pitch
[16:59:44] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[16:59:44] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[16:59:44] [PASSED] single_pixel_source_buffer
[16:59:44] [PASSED] single_pixel_clip_rectangle
[16:59:44] [PASSED] well_known_colors
[16:59:44] [PASSED] destination_pitch
[16:59:44] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[16:59:44] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[16:59:44] [PASSED] single_pixel_source_buffer
[16:59:44] [PASSED] single_pixel_clip_rectangle
[16:59:44] [PASSED] well_known_colors
[16:59:44] [PASSED] destination_pitch
[16:59:44] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[16:59:44] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[16:59:44] [PASSED] single_pixel_source_buffer
[16:59:44] [PASSED] single_pixel_clip_rectangle
[16:59:44] [PASSED] well_known_colors
[16:59:44] [PASSED] destination_pitch
[16:59:44] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[16:59:44] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[16:59:44] [PASSED] single_pixel_source_buffer
[16:59:44] [PASSED] single_pixel_clip_rectangle
[16:59:44] [PASSED] well_known_colors
[16:59:44] [PASSED] destination_pitch
[16:59:44] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[16:59:44] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[16:59:44] [PASSED] single_pixel_source_buffer
[16:59:44] [PASSED] single_pixel_clip_rectangle
[16:59:44] [PASSED] well_known_colors
[16:59:44] [PASSED] destination_pitch
[16:59:44] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[16:59:44] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[16:59:44] [PASSED] single_pixel_source_buffer
[16:59:44] [PASSED] single_pixel_clip_rectangle
[16:59:44] [PASSED] well_known_colors
[16:59:44] [PASSED] destination_pitch
[16:59:44] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[16:59:44] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[16:59:44] [PASSED] single_pixel_source_buffer
[16:59:44] [PASSED] single_pixel_clip_rectangle
[16:59:44] [PASSED] well_known_colors
[16:59:44] [PASSED] destination_pitch
[16:59:44] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[16:59:44] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[16:59:44] [PASSED] single_pixel_source_buffer
[16:59:44] [PASSED] single_pixel_clip_rectangle
[16:59:44] [PASSED] well_known_colors
[16:59:44] [PASSED] destination_pitch
[16:59:44] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[16:59:44] ============== drm_test_fb_xrgb8888_to_mono ===============
[16:59:44] [PASSED] single_pixel_source_buffer
[16:59:44] [PASSED] single_pixel_clip_rectangle
[16:59:44] [PASSED] well_known_colors
[16:59:44] [PASSED] destination_pitch
[16:59:44] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[16:59:44] ==================== drm_test_fb_swab =====================
[16:59:44] [PASSED] single_pixel_source_buffer
[16:59:44] [PASSED] single_pixel_clip_rectangle
[16:59:44] [PASSED] well_known_colors
[16:59:44] [PASSED] destination_pitch
[16:59:44] ================ [PASSED] drm_test_fb_swab =================
[16:59:44] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[16:59:44] [PASSED] single_pixel_source_buffer
[16:59:44] [PASSED] single_pixel_clip_rectangle
[16:59:44] [PASSED] well_known_colors
[16:59:44] [PASSED] destination_pitch
[16:59:44] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[16:59:44] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[16:59:44] [PASSED] single_pixel_source_buffer
[16:59:44] [PASSED] single_pixel_clip_rectangle
[16:59:44] [PASSED] well_known_colors
[16:59:44] [PASSED] destination_pitch
[16:59:44] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[16:59:44] ================= drm_test_fb_clip_offset =================
[16:59:44] [PASSED] pass through
[16:59:44] [PASSED] horizontal offset
[16:59:44] [PASSED] vertical offset
[16:59:44] [PASSED] horizontal and vertical offset
[16:59:44] [PASSED] horizontal offset (custom pitch)
[16:59:44] [PASSED] vertical offset (custom pitch)
[16:59:44] [PASSED] horizontal and vertical offset (custom pitch)
[16:59:44] ============= [PASSED] drm_test_fb_clip_offset =============
[16:59:44] =================== drm_test_fb_memcpy ====================
[16:59:44] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[16:59:44] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[16:59:44] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[16:59:44] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[16:59:44] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[16:59:44] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[16:59:44] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[16:59:44] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[16:59:44] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[16:59:44] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[16:59:44] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[16:59:44] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[16:59:44] =============== [PASSED] drm_test_fb_memcpy ================
[16:59:44] ============= [PASSED] drm_format_helper_test ==============
[16:59:44] ================= drm_format (18 subtests) =================
[16:59:44] [PASSED] drm_test_format_block_width_invalid
[16:59:44] [PASSED] drm_test_format_block_width_one_plane
[16:59:44] [PASSED] drm_test_format_block_width_two_plane
[16:59:44] [PASSED] drm_test_format_block_width_three_plane
[16:59:44] [PASSED] drm_test_format_block_width_tiled
[16:59:44] [PASSED] drm_test_format_block_height_invalid
[16:59:44] [PASSED] drm_test_format_block_height_one_plane
[16:59:44] [PASSED] drm_test_format_block_height_two_plane
[16:59:44] [PASSED] drm_test_format_block_height_three_plane
[16:59:44] [PASSED] drm_test_format_block_height_tiled
[16:59:44] [PASSED] drm_test_format_min_pitch_invalid
[16:59:44] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[16:59:44] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[16:59:44] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[16:59:44] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[16:59:44] [PASSED] drm_test_format_min_pitch_two_plane
[16:59:44] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[16:59:44] [PASSED] drm_test_format_min_pitch_tiled
[16:59:44] =================== [PASSED] drm_format ====================
[16:59:44] ============== drm_framebuffer (10 subtests) ===============
[16:59:44] ========== drm_test_framebuffer_check_src_coords ==========
[16:59:44] [PASSED] Success: source fits into fb
[16:59:44] [PASSED] Fail: overflowing fb with x-axis coordinate
[16:59:44] [PASSED] Fail: overflowing fb with y-axis coordinate
[16:59:44] [PASSED] Fail: overflowing fb with source width
[16:59:44] [PASSED] Fail: overflowing fb with source height
[16:59:44] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[16:59:44] [PASSED] drm_test_framebuffer_cleanup
[16:59:44] =============== drm_test_framebuffer_create ===============
[16:59:44] [PASSED] ABGR8888 normal sizes
[16:59:44] [PASSED] ABGR8888 max sizes
[16:59:44] [PASSED] ABGR8888 pitch greater than min required
[16:59:44] [PASSED] ABGR8888 pitch less than min required
[16:59:44] [PASSED] ABGR8888 Invalid width
[16:59:44] [PASSED] ABGR8888 Invalid buffer handle
[16:59:44] [PASSED] No pixel format
[16:59:44] [PASSED] ABGR8888 Width 0
[16:59:44] [PASSED] ABGR8888 Height 0
[16:59:44] [PASSED] ABGR8888 Out of bound height * pitch combination
[16:59:44] [PASSED] ABGR8888 Large buffer offset
[16:59:44] [PASSED] ABGR8888 Buffer offset for inexistent plane
[16:59:44] [PASSED] ABGR8888 Invalid flag
[16:59:44] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[16:59:44] [PASSED] ABGR8888 Valid buffer modifier
[16:59:44] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[16:59:44] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[16:59:44] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[16:59:44] [PASSED] NV12 Normal sizes
[16:59:44] [PASSED] NV12 Max sizes
[16:59:44] [PASSED] NV12 Invalid pitch
[16:59:44] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[16:59:44] [PASSED] NV12 different modifier per-plane
[16:59:44] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[16:59:44] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[16:59:44] [PASSED] NV12 Modifier for inexistent plane
[16:59:44] [PASSED] NV12 Handle for inexistent plane
[16:59:44] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[16:59:44] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[16:59:44] [PASSED] YVU420 Normal sizes
[16:59:44] [PASSED] YVU420 Max sizes
[16:59:44] [PASSED] YVU420 Invalid pitch
[16:59:44] [PASSED] YVU420 Different pitches
[16:59:44] [PASSED] YVU420 Different buffer offsets/pitches
[16:59:44] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[16:59:44] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[16:59:44] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[16:59:44] [PASSED] YVU420 Valid modifier
[16:59:44] [PASSED] YVU420 Different modifiers per plane
[16:59:44] [PASSED] YVU420 Modifier for inexistent plane
[16:59:44] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[16:59:44] [PASSED] X0L2 Normal sizes
[16:59:44] [PASSED] X0L2 Max sizes
[16:59:44] [PASSED] X0L2 Invalid pitch
[16:59:44] [PASSED] X0L2 Pitch greater than minimum required
[16:59:44] [PASSED] X0L2 Handle for inexistent plane
[16:59:44] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[16:59:44] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[16:59:44] [PASSED] X0L2 Valid modifier
[16:59:44] [PASSED] X0L2 Modifier for inexistent plane
[16:59:44] =========== [PASSED] drm_test_framebuffer_create ===========
[16:59:44] [PASSED] drm_test_framebuffer_free
[16:59:44] [PASSED] drm_test_framebuffer_init
[16:59:44] [PASSED] drm_test_framebuffer_init_bad_format
[16:59:44] [PASSED] drm_test_framebuffer_init_dev_mismatch
[16:59:44] [PASSED] drm_test_framebuffer_lookup
[16:59:44] [PASSED] drm_test_framebuffer_lookup_inexistent
[16:59:44] [PASSED] drm_test_framebuffer_modifiers_not_supported
[16:59:44] ================= [PASSED] drm_framebuffer =================
[16:59:44] ================ drm_gem_shmem (8 subtests) ================
[16:59:44] [PASSED] drm_gem_shmem_test_obj_create
[16:59:44] [PASSED] drm_gem_shmem_test_obj_create_private
[16:59:44] [PASSED] drm_gem_shmem_test_pin_pages
[16:59:44] [PASSED] drm_gem_shmem_test_vmap
[16:59:44] [PASSED] drm_gem_shmem_test_get_sg_table
[16:59:44] [PASSED] drm_gem_shmem_test_get_pages_sgt
[16:59:44] [PASSED] drm_gem_shmem_test_madvise
[16:59:44] [PASSED] drm_gem_shmem_test_purge
[16:59:44] ================== [PASSED] drm_gem_shmem ==================
[16:59:44] === drm_atomic_helper_connector_hdmi_check (29 subtests) ===
[16:59:44] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[16:59:44] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[16:59:44] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[16:59:44] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[16:59:44] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[16:59:44] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[16:59:44] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[16:59:44] [PASSED] Automatic
[16:59:44] [PASSED] Full
[16:59:44] [PASSED] Limited 16:235
[16:59:44] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[16:59:44] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[16:59:44] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[16:59:44] [PASSED] drm_test_check_disable_connector
[16:59:44] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[16:59:44] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[16:59:44] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[16:59:44] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[16:59:44] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[16:59:44] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[16:59:44] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[16:59:44] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[16:59:44] [PASSED] drm_test_check_output_bpc_dvi
[16:59:44] [PASSED] drm_test_check_output_bpc_format_vic_1
[16:59:44] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[16:59:44] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[16:59:44] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[16:59:44] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[16:59:44] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[16:59:44] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[16:59:44] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[16:59:44] ============ drm_test_check_hdmi_color_format =============
[16:59:44] [PASSED] AUTO -> RGB
[16:59:44] [PASSED] YCBCR422 -> YUV422
[16:59:44] [PASSED] YCBCR420 -> YUV420
[16:59:44] [PASSED] YCBCR444 -> YUV444
[16:59:44] [PASSED] RGB -> RGB
[16:59:44] ======== [PASSED] drm_test_check_hdmi_color_format =========
[16:59:44] ======== drm_test_check_hdmi_color_format_420_only ========
[16:59:44] [PASSED] RGB should fail
[16:59:44] [PASSED] YUV444 should fail
[16:59:44] [PASSED] YUV422 should fail
[16:59:44] [PASSED] YUV420 should work
[16:59:44] ==== [PASSED] drm_test_check_hdmi_color_format_420_only ====
[16:59:44] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[16:59:44] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[16:59:44] [PASSED] drm_test_check_broadcast_rgb_value
[16:59:44] [PASSED] drm_test_check_bpc_8_value
[16:59:44] [PASSED] drm_test_check_bpc_10_value
[16:59:44] [PASSED] drm_test_check_bpc_12_value
[16:59:44] [PASSED] drm_test_check_format_value
[16:59:44] [PASSED] drm_test_check_tmds_char_value
[16:59:44] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[16:59:44] = drm_atomic_helper_connector_hdmi_mode_valid (7 subtests) =
[16:59:44] [PASSED] drm_test_check_mode_valid
[16:59:44] [PASSED] drm_test_check_mode_valid_reject
[16:59:44] [PASSED] drm_test_check_mode_valid_reject_rate
[16:59:44] [PASSED] drm_test_check_mode_valid_reject_max_clock
[16:59:44] [PASSED] drm_test_check_mode_valid_yuv420_only_max_clock
[16:59:44] [PASSED] drm_test_check_mode_valid_reject_yuv420_only_connector
[16:59:44] [PASSED] drm_test_check_mode_valid_accept_yuv420_also_connector_rgb
[16:59:44] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[16:59:44] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[16:59:44] [PASSED] drm_test_check_infoframes
[16:59:44] [PASSED] drm_test_check_reject_avi_infoframe
[16:59:44] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[16:59:44] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[16:59:44] [PASSED] drm_test_check_reject_audio_infoframe
[16:59:44] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[16:59:44] ================= drm_managed (2 subtests) =================
[16:59:44] [PASSED] drm_test_managed_release_action
[16:59:44] [PASSED] drm_test_managed_run_action
[16:59:44] =================== [PASSED] drm_managed ===================
[16:59:44] =================== drm_mm (6 subtests) ====================
[16:59:44] [PASSED] drm_test_mm_init
[16:59:44] [PASSED] drm_test_mm_debug
[16:59:44] [PASSED] drm_test_mm_align32
[16:59:44] [PASSED] drm_test_mm_align64
[16:59:44] [PASSED] drm_test_mm_lowest
[16:59:44] [PASSED] drm_test_mm_highest
[16:59:44] ===================== [PASSED] drm_mm ======================
[16:59:44] ============= drm_modes_analog_tv (5 subtests) =============
[16:59:44] [PASSED] drm_test_modes_analog_tv_mono_576i
[16:59:44] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[16:59:44] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[16:59:44] [PASSED] drm_test_modes_analog_tv_pal_576i
[16:59:44] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[16:59:44] =============== [PASSED] drm_modes_analog_tv ===============
[16:59:44] ============== drm_plane_helper (2 subtests) ===============
[16:59:44] =============== drm_test_check_plane_state ================
[16:59:44] [PASSED] clipping_simple
[16:59:44] [PASSED] clipping_rotate_reflect
[16:59:44] [PASSED] positioning_simple
[16:59:44] [PASSED] upscaling
[16:59:44] [PASSED] downscaling
[16:59:44] [PASSED] rounding1
[16:59:44] [PASSED] rounding2
[16:59:44] [PASSED] rounding3
[16:59:44] [PASSED] rounding4
[16:59:44] =========== [PASSED] drm_test_check_plane_state ============
[16:59:44] =========== drm_test_check_invalid_plane_state ============
[16:59:44] [PASSED] positioning_invalid
[16:59:44] [PASSED] upscaling_invalid
[16:59:44] [PASSED] downscaling_invalid
[16:59:44] ======= [PASSED] drm_test_check_invalid_plane_state ========
[16:59:44] ================ [PASSED] drm_plane_helper =================
[16:59:44] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[16:59:44] ====== drm_test_connector_helper_tv_get_modes_check =======
[16:59:44] [PASSED] None
[16:59:44] [PASSED] PAL
[16:59:44] [PASSED] NTSC
[16:59:44] [PASSED] Both, NTSC Default
[16:59:44] [PASSED] Both, PAL Default
[16:59:44] [PASSED] Both, NTSC Default, with PAL on command-line
[16:59:44] [PASSED] Both, PAL Default, with NTSC on command-line
[16:59:44] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[16:59:44] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[16:59:44] ================== drm_rect (9 subtests) ===================
[16:59:44] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[16:59:44] [PASSED] drm_test_rect_clip_scaled_not_clipped
[16:59:44] [PASSED] drm_test_rect_clip_scaled_clipped
[16:59:44] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[16:59:44] ================= drm_test_rect_intersect =================
[16:59:44] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[16:59:44] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[16:59:44] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[16:59:44] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[16:59:44] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[16:59:44] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[16:59:44] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[16:59:44] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[16:59:44] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[16:59:44] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[16:59:44] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[16:59:44] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[16:59:44] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[16:59:44] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[16:59:44] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[16:59:44] ============= [PASSED] drm_test_rect_intersect =============
[16:59:44] ================ drm_test_rect_calc_hscale ================
[16:59:44] [PASSED] normal use
[16:59:44] [PASSED] out of max range
[16:59:44] [PASSED] out of min range
[16:59:44] [PASSED] zero dst
[16:59:44] [PASSED] negative src
[16:59:44] [PASSED] negative dst
[16:59:44] ============ [PASSED] drm_test_rect_calc_hscale ============
[16:59:44] ================ drm_test_rect_calc_vscale ================
[16:59:44] [PASSED] normal use
[16:59:44] [PASSED] out of max range
[16:59:44] [PASSED] out of min range
[16:59:44] [PASSED] zero dst
[16:59:44] [PASSED] negative src
[16:59:44] [PASSED] negative dst
[16:59:44] ============ [PASSED] drm_test_rect_calc_vscale ============
[16:59:44] ================== drm_test_rect_rotate ===================
[16:59:44] [PASSED] reflect-x
[16:59:44] [PASSED] reflect-y
[16:59:44] [PASSED] rotate-0
[16:59:44] [PASSED] rotate-90
[16:59:44] [PASSED] rotate-180
[16:59:44] [PASSED] rotate-270
[16:59:44] ============== [PASSED] drm_test_rect_rotate ===============
[16:59:44] ================ drm_test_rect_rotate_inv =================
[16:59:44] [PASSED] reflect-x
[16:59:44] [PASSED] reflect-y
[16:59:44] [PASSED] rotate-0
[16:59:44] [PASSED] rotate-90
[16:59:44] [PASSED] rotate-180
[16:59:44] [PASSED] rotate-270
[16:59:44] ============ [PASSED] drm_test_rect_rotate_inv =============
[16:59:44] ==================== [PASSED] drm_rect =====================
[16:59:44] ============ drm_sysfb_modeset_test (1 subtest) ============
[16:59:44] ============ drm_test_sysfb_build_fourcc_list =============
[16:59:44] [PASSED] no native formats
[16:59:44] [PASSED] XRGB8888 as native format
[16:59:44] [PASSED] remove duplicates
[16:59:44] [PASSED] convert alpha formats
[16:59:44] [PASSED] random formats
[16:59:44] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[16:59:44] ============= [PASSED] drm_sysfb_modeset_test ==============
[16:59:44] ================== drm_fixp (2 subtests) ===================
[16:59:44] [PASSED] drm_test_int2fixp
[16:59:44] [PASSED] drm_test_sm2fixp
[16:59:44] ==================== [PASSED] drm_fixp =====================
[16:59:44] ============================================================
[16:59:44] Testing complete. Ran 637 tests: passed: 637
[16:59:44] Elapsed time: 27.177s total, 1.780s configuring, 25.232s building, 0.133s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[16:59:44] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[16:59:46] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[16:59:56] Starting KUnit Kernel (1/1)...
[16:59:56] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[16:59:56] ================= ttm_device (5 subtests) ==================
[16:59:56] [PASSED] ttm_device_init_basic
[16:59:56] [PASSED] ttm_device_init_multiple
[16:59:56] [PASSED] ttm_device_fini_basic
[16:59:56] [PASSED] ttm_device_init_no_vma_man
[16:59:56] ================== ttm_device_init_pools ==================
[16:59:56] [PASSED] No DMA allocations, no DMA32 required
[16:59:56] [PASSED] DMA allocations, DMA32 required
[16:59:56] [PASSED] No DMA allocations, DMA32 required
[16:59:56] [PASSED] DMA allocations, no DMA32 required
[16:59:56] ============== [PASSED] ttm_device_init_pools ==============
[16:59:56] =================== [PASSED] ttm_device ====================
[16:59:56] ================== ttm_pool (8 subtests) ===================
[16:59:56] ================== ttm_pool_alloc_basic ===================
[16:59:56] [PASSED] One page
[16:59:56] [PASSED] More than one page
[16:59:56] [PASSED] Above the allocation limit
[16:59:56] [PASSED] One page, with coherent DMA mappings enabled
[16:59:56] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[16:59:56] ============== [PASSED] ttm_pool_alloc_basic ===============
[16:59:56] ============== ttm_pool_alloc_basic_dma_addr ==============
[16:59:56] [PASSED] One page
[16:59:56] [PASSED] More than one page
[16:59:56] [PASSED] Above the allocation limit
[16:59:56] [PASSED] One page, with coherent DMA mappings enabled
[16:59:56] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[16:59:56] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[16:59:56] [PASSED] ttm_pool_alloc_order_caching_match
[16:59:56] [PASSED] ttm_pool_alloc_caching_mismatch
[16:59:56] [PASSED] ttm_pool_alloc_order_mismatch
[16:59:56] [PASSED] ttm_pool_free_dma_alloc
[16:59:56] [PASSED] ttm_pool_free_no_dma_alloc
[16:59:56] [PASSED] ttm_pool_fini_basic
[16:59:56] ==================== [PASSED] ttm_pool =====================
[16:59:56] ================ ttm_resource (8 subtests) =================
[16:59:56] ================= ttm_resource_init_basic =================
[16:59:56] [PASSED] Init resource in TTM_PL_SYSTEM
[16:59:56] [PASSED] Init resource in TTM_PL_VRAM
[16:59:56] [PASSED] Init resource in a private placement
[16:59:56] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[16:59:56] ============= [PASSED] ttm_resource_init_basic =============
[16:59:56] [PASSED] ttm_resource_init_pinned
[16:59:56] [PASSED] ttm_resource_fini_basic
[16:59:56] [PASSED] ttm_resource_manager_init_basic
[16:59:56] [PASSED] ttm_resource_manager_usage_basic
[16:59:56] [PASSED] ttm_resource_manager_set_used_basic
[16:59:56] [PASSED] ttm_sys_man_alloc_basic
[16:59:56] [PASSED] ttm_sys_man_free_basic
[16:59:56] ================== [PASSED] ttm_resource ===================
[16:59:56] =================== ttm_tt (15 subtests) ===================
[16:59:56] ==================== ttm_tt_init_basic ====================
[16:59:56] [PASSED] Page-aligned size
[16:59:56] [PASSED] Extra pages requested
[16:59:56] ================ [PASSED] ttm_tt_init_basic ================
[16:59:56] [PASSED] ttm_tt_init_misaligned
[16:59:56] [PASSED] ttm_tt_fini_basic
[16:59:56] [PASSED] ttm_tt_fini_sg
[16:59:56] [PASSED] ttm_tt_fini_shmem
[16:59:56] [PASSED] ttm_tt_create_basic
[16:59:56] [PASSED] ttm_tt_create_invalid_bo_type
[16:59:56] [PASSED] ttm_tt_create_ttm_exists
[16:59:56] [PASSED] ttm_tt_create_failed
[16:59:56] [PASSED] ttm_tt_destroy_basic
[16:59:56] [PASSED] ttm_tt_populate_null_ttm
[16:59:56] [PASSED] ttm_tt_populate_populated_ttm
[16:59:56] [PASSED] ttm_tt_unpopulate_basic
[16:59:56] [PASSED] ttm_tt_unpopulate_empty_ttm
[16:59:56] [PASSED] ttm_tt_swapin_basic
[16:59:56] ===================== [PASSED] ttm_tt ======================
[16:59:56] =================== ttm_bo (14 subtests) ===================
[16:59:56] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[16:59:56] [PASSED] Cannot be interrupted and sleeps
[16:59:56] [PASSED] Cannot be interrupted, locks straight away
[16:59:56] [PASSED] Can be interrupted, sleeps
[16:59:56] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[16:59:56] [PASSED] ttm_bo_reserve_locked_no_sleep
[16:59:56] [PASSED] ttm_bo_reserve_no_wait_ticket
[16:59:56] [PASSED] ttm_bo_reserve_double_resv
[16:59:56] [PASSED] ttm_bo_reserve_interrupted
[16:59:56] [PASSED] ttm_bo_reserve_deadlock
[16:59:56] [PASSED] ttm_bo_unreserve_basic
[16:59:56] [PASSED] ttm_bo_unreserve_pinned
[16:59:56] [PASSED] ttm_bo_unreserve_bulk
[16:59:56] [PASSED] ttm_bo_fini_basic
[16:59:56] [PASSED] ttm_bo_fini_shared_resv
[16:59:56] [PASSED] ttm_bo_pin_basic
[16:59:56] [PASSED] ttm_bo_pin_unpin_resource
[16:59:56] [PASSED] ttm_bo_multiple_pin_one_unpin
[16:59:56] ===================== [PASSED] ttm_bo ======================
[16:59:56] ============== ttm_bo_validate (22 subtests) ===============
[16:59:56] ============== ttm_bo_init_reserved_sys_man ===============
[16:59:56] [PASSED] Buffer object for userspace
[16:59:56] [PASSED] Kernel buffer object
[16:59:56] [PASSED] Shared buffer object
[16:59:56] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[16:59:56] ============== ttm_bo_init_reserved_mock_man ==============
[16:59:56] [PASSED] Buffer object for userspace
[16:59:56] [PASSED] Kernel buffer object
[16:59:56] [PASSED] Shared buffer object
[16:59:56] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[16:59:56] [PASSED] ttm_bo_init_reserved_resv
[16:59:56] ================== ttm_bo_validate_basic ==================
[16:59:56] [PASSED] Buffer object for userspace
[16:59:56] [PASSED] Kernel buffer object
[16:59:56] [PASSED] Shared buffer object
[16:59:56] ============== [PASSED] ttm_bo_validate_basic ==============
[16:59:56] [PASSED] ttm_bo_validate_invalid_placement
[16:59:56] ============= ttm_bo_validate_same_placement ==============
[16:59:56] [PASSED] System manager
[16:59:56] [PASSED] VRAM manager
[16:59:56] ========= [PASSED] ttm_bo_validate_same_placement ==========
[16:59:56] [PASSED] ttm_bo_validate_failed_alloc
[16:59:56] [PASSED] ttm_bo_validate_pinned
[16:59:56] [PASSED] ttm_bo_validate_busy_placement
[16:59:56] ================ ttm_bo_validate_multihop =================
[16:59:56] [PASSED] Buffer object for userspace
[16:59:56] [PASSED] Kernel buffer object
[16:59:56] [PASSED] Shared buffer object
[16:59:56] ============ [PASSED] ttm_bo_validate_multihop =============
[16:59:56] ========== ttm_bo_validate_no_placement_signaled ==========
[16:59:56] [PASSED] Buffer object in system domain, no page vector
[16:59:56] [PASSED] Buffer object in system domain with an existing page vector
[16:59:56] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[16:59:56] ======== ttm_bo_validate_no_placement_not_signaled ========
[16:59:56] [PASSED] Buffer object for userspace
[16:59:56] [PASSED] Kernel buffer object
[16:59:56] [PASSED] Shared buffer object
[16:59:56] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[16:59:56] [PASSED] ttm_bo_validate_move_fence_signaled
[16:59:56] ========= ttm_bo_validate_move_fence_not_signaled =========
[16:59:56] [PASSED] Waits for GPU
[16:59:56] [PASSED] Tries to lock straight away
[16:59:56] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[16:59:56] [PASSED] ttm_bo_validate_swapout
[16:59:56] [PASSED] ttm_bo_validate_happy_evict
[16:59:56] [PASSED] ttm_bo_validate_all_pinned_evict
[16:59:56] [PASSED] ttm_bo_validate_allowed_only_evict
[16:59:56] [PASSED] ttm_bo_validate_deleted_evict
[16:59:56] [PASSED] ttm_bo_validate_busy_domain_evict
[16:59:56] [PASSED] ttm_bo_validate_evict_gutting
[16:59:56] [PASSED] ttm_bo_validate_recrusive_evict
[16:59:56] ================= [PASSED] ttm_bo_validate =================
[16:59:56] ============================================================
[16:59:56] Testing complete. Ran 102 tests: passed: 102
[16:59:56] Elapsed time: 12.202s total, 1.758s configuring, 10.229s building, 0.178s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v3 2/7] drm/xe/mmio_gem: use write-back mapping for dummy page
2026-07-23 16:18 ` [PATCH v3 2/7] drm/xe/mmio_gem: use write-back mapping for dummy page Ilia Levi
@ 2026-07-23 17:16 ` Matthew Auld
2026-07-24 9:49 ` Levi, Ilia
0 siblings, 1 reply; 18+ messages in thread
From: Matthew Auld @ 2026-07-23 17:16 UTC (permalink / raw)
To: Ilia Levi, intel-xe
Cc: koby.elbaz, meny.yossefi, shuicheng.lin, thomas.hellstrom,
matthew.brost, Sashiko
On 23/07/2026 17:18, Ilia Levi wrote:
> Currently vmf_insert_pfn() maps the dummy page as UC, inheriting the
> VMA's page protection which was set for the real MMIO region. This
> conflicts with the direct map's WB mapping of the same page, creating a
> cache type alias which is architecturally undefined on x86.
Is this claim correct? AFAICT on x86 it pulls the caching type from the
pfn, so if the page is allocated as WB, it should just use WB, no? I'm
looking at pfnmap_setup_cachemode() on x86.
Perhaps this is instead needed for non-x86?
>
> Use vmf_insert_pfn_prot() with a WB pgprot instead. Also simplify to
> fault in the requested page instead of the whole VMA.
>
> Fixes: 1ffcf8b8ae8a ("drm/xe: Support for mmap-ing mmio regions")
> Reported-by: Sashiko <sashiko-bot@kernel.org>
> Closes: https://sashiko.dev/#/patchset/20260525125801.975038-6-ilia.levi%40intel.com
> Assisted-by: GitHub-Copilot:claude-opus-4.6
> Signed-off-by: Ilia Levi <ilia.levi@intel.com>
> ---
> drivers/gpu/drm/xe/xe_mmio_gem.c | 19 +++++--------------
> 1 file changed, 5 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_mmio_gem.c b/drivers/gpu/drm/xe/xe_mmio_gem.c
> index f15a6a84af15..418a24bdfa4e 100644
> --- a/drivers/gpu/drm/xe/xe_mmio_gem.c
> +++ b/drivers/gpu/drm/xe/xe_mmio_gem.c
> @@ -172,14 +172,13 @@ static void xe_mmio_gem_release_dummy_page(struct drm_device *dev, void *res)
> __free_page((struct page *)res);
> }
>
> -static vm_fault_t xe_mmio_gem_vm_fault_dummy_page(struct vm_area_struct *vma)
> +static vm_fault_t xe_mmio_gem_vm_fault_dummy_page(struct vm_fault *vmf)
> {
> + struct vm_area_struct *vma = vmf->vma;
> struct drm_gem_object *base = vma->vm_private_data;
> struct drm_device *dev = base->dev;
> - vm_fault_t ret = VM_FAULT_NOPAGE;
> struct page *page;
> unsigned long pfn;
> - unsigned long i;
>
> page = alloc_page(GFP_KERNEL | __GFP_ZERO);
> if (!page)
> @@ -190,16 +189,8 @@ static vm_fault_t xe_mmio_gem_vm_fault_dummy_page(struct vm_area_struct *vma)
>
> pfn = page_to_pfn(page);
>
> - /* Map the entire VMA to the same dummy page */
> - for (i = 0; i < base->size; i += PAGE_SIZE) {
> - unsigned long addr = vma->vm_start + i;
> -
> - ret = vmf_insert_pfn(vma, addr, pfn);
> - if (ret & VM_FAULT_ERROR)
> - break;
> - }
> -
> - return ret;
> + return vmf_insert_pfn_prot(vma, vmf->address, pfn,
> + vm_get_page_prot(vma->vm_flags));
> }
>
> static vm_fault_t xe_mmio_gem_vm_fault(struct vm_fault *vmf)
> @@ -219,7 +210,7 @@ static vm_fault_t xe_mmio_gem_vm_fault(struct vm_fault *vmf)
> * It is assumed the userspace will receive the notification via some
> * other channel (e.g. drm uevent).
> */
> - return xe_mmio_gem_vm_fault_dummy_page(vma);
> + return xe_mmio_gem_vm_fault_dummy_page(vmf);
> }
>
> for (i = 0; i < base->size; i += PAGE_SIZE) {
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v3 3/7] drm/xe/mmio_gem: simplify fault handler loop
2026-07-23 16:18 ` [PATCH v3 3/7] drm/xe/mmio_gem: simplify fault handler loop Ilia Levi
@ 2026-07-23 17:22 ` Matthew Auld
0 siblings, 0 replies; 18+ messages in thread
From: Matthew Auld @ 2026-07-23 17:22 UTC (permalink / raw)
To: Ilia Levi, intel-xe
Cc: koby.elbaz, meny.yossefi, shuicheng.lin, thomas.hellstrom,
matthew.brost
On 23/07/2026 17:18, Ilia Levi wrote:
> Make the iteration over the addresses in the VMA more explicit.
> No functional change, as the VMA matches the GEM object exactly.
>
> Signed-off-by: Ilia Levi <ilia.levi@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
^ permalink raw reply [flat|nested] 18+ messages in thread
* ✓ Xe.CI.BAT: success for drm/xe/mmio_gem: fix fault handler and destroy path (rev3)
2026-07-23 16:18 [PATCH v3 0/7] drm/xe/mmio_gem: fix fault handler and destroy path Ilia Levi
` (7 preceding siblings ...)
2026-07-23 16:59 ` ✓ CI.KUnit: success for drm/xe/mmio_gem: fix fault handler and destroy path (rev3) Patchwork
@ 2026-07-23 17:34 ` Patchwork
2026-07-24 17:14 ` ✓ Xe.CI.FULL: " Patchwork
9 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2026-07-23 17:34 UTC (permalink / raw)
To: Ilia Levi; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 4898 bytes --]
== Series Details ==
Series: drm/xe/mmio_gem: fix fault handler and destroy path (rev3)
URL : https://patchwork.freedesktop.org/series/167217/
State : success
== Summary ==
CI Bug Log - changes from xe-5467-2c64192f1ad194a53800f6dd8c779d5b4bbc1831_BAT -> xe-pw-167217v3_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (12 -> 13)
------------------------------
Additional (1): bat-bmg-2
Known issues
------------
Here are the changes found in xe-pw-167217v3_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@fbdev@write:
- bat-bmg-2: NOTRUN -> [SKIP][1] ([Intel XE#2134]) +4 other tests skip
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/bat-bmg-2/igt@fbdev@write.html
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- bat-bmg-2: NOTRUN -> [SKIP][2] ([Intel XE#2233])
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/bat-bmg-2/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
* igt@kms_cursor_legacy@basic-flip-after-cursor-legacy:
- bat-bmg-2: NOTRUN -> [SKIP][3] ([Intel XE#2489] / [Intel XE#3419]) +13 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/bat-bmg-2/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
* igt@kms_flip@basic-flip-vs-modeset:
- bat-bmg-2: NOTRUN -> [SKIP][4] ([Intel XE#2482]) +3 other tests skip
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/bat-bmg-2/igt@kms_flip@basic-flip-vs-modeset.html
* igt@kms_frontbuffer_tracking@basic:
- bat-bmg-2: NOTRUN -> [SKIP][5] ([Intel XE#2434] / [Intel XE#2548] / [Intel XE#6314])
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/bat-bmg-2/igt@kms_frontbuffer_tracking@basic.html
* igt@kms_psr@psr-sprite-plane-onoff:
- bat-bmg-2: NOTRUN -> [SKIP][6] ([Intel XE#2234] / [Intel XE#2850]) +2 other tests skip
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/bat-bmg-2/igt@kms_psr@psr-sprite-plane-onoff.html
* igt@xe_exec_multi_queue@priority:
- bat-bmg-2: NOTRUN -> [SKIP][7] ([Intel XE#8364]) +13 other tests skip
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/bat-bmg-2/igt@xe_exec_multi_queue@priority.html
* igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit:
- bat-bmg-2: NOTRUN -> [SKIP][8] ([Intel XE#2229])
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/bat-bmg-2/igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit.html
* igt@xe_pat@pat-index-xehpc:
- bat-bmg-2: NOTRUN -> [SKIP][9] ([Intel XE#1420] / [Intel XE#7590])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/bat-bmg-2/igt@xe_pat@pat-index-xehpc.html
* igt@xe_pat@pat-index-xelp:
- bat-bmg-2: NOTRUN -> [SKIP][10] ([Intel XE#2245] / [Intel XE#7590])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/bat-bmg-2/igt@xe_pat@pat-index-xelp.html
* igt@xe_pat@pat-index-xelpg:
- bat-bmg-2: NOTRUN -> [SKIP][11] ([Intel XE#2236] / [Intel XE#7590])
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/bat-bmg-2/igt@xe_pat@pat-index-xelpg.html
[Intel XE#1420]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1420
[Intel XE#2134]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2134
[Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
[Intel XE#2233]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2233
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2236]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2236
[Intel XE#2245]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2245
[Intel XE#2434]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2434
[Intel XE#2482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2482
[Intel XE#2489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2489
[Intel XE#2548]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2548
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#3419]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3419
[Intel XE#6314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6314
[Intel XE#7590]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7590
[Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364
Build changes
-------------
* IGT: IGT_9020 -> IGT_9022
* Linux: xe-5467-2c64192f1ad194a53800f6dd8c779d5b4bbc1831 -> xe-pw-167217v3
IGT_9020: 9020
IGT_9022: 9022
xe-5467-2c64192f1ad194a53800f6dd8c779d5b4bbc1831: 2c64192f1ad194a53800f6dd8c779d5b4bbc1831
xe-pw-167217v3: 167217v3
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/index.html
[-- Attachment #2: Type: text/html, Size: 5824 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v3 2/7] drm/xe/mmio_gem: use write-back mapping for dummy page
2026-07-23 17:16 ` Matthew Auld
@ 2026-07-24 9:49 ` Levi, Ilia
2026-07-28 16:37 ` Matthew Auld
0 siblings, 1 reply; 18+ messages in thread
From: Levi, Ilia @ 2026-07-24 9:49 UTC (permalink / raw)
To: Matthew Auld, intel-xe
Cc: koby.elbaz, meny.yossefi, shuicheng.lin, thomas.hellstrom,
matthew.brost, Sashiko
On 23-Jul-26 20:16, Matthew Auld wrote:
> On 23/07/2026 17:18, Ilia Levi wrote:
>> Currently vmf_insert_pfn() maps the dummy page as UC, inheriting the
>> VMA's page protection which was set for the real MMIO region. This
>> conflicts with the direct map's WB mapping of the same page, creating a
>> cache type alias which is architecturally undefined on x86.
>
> Is this claim correct? AFAICT on x86 it pulls the caching type from the pfn, so if the page is allocated as WB, it should just use WB, no? I'm looking at pfnmap_setup_cachemode() on x86.
>
> Perhaps this is instead needed for non-x86?
Right, or on x86 if PAT is disabled. Good catch!
>
>>
>> Use vmf_insert_pfn_prot() with a WB pgprot instead. Also simplify to
>> fault in the requested page instead of the whole VMA.
>>
>> Fixes: 1ffcf8b8ae8a ("drm/xe: Support for mmap-ing mmio regions")
>> Reported-by: Sashiko <sashiko-bot@kernel.org>
>> Closes: https://sashiko.dev/#/patchset/20260525125801.975038-6-ilia.levi%40intel.com
>> Assisted-by: GitHub-Copilot:claude-opus-4.6
>> Signed-off-by: Ilia Levi <ilia.levi@intel.com>
>> ---
>> drivers/gpu/drm/xe/xe_mmio_gem.c | 19 +++++--------------
>> 1 file changed, 5 insertions(+), 14 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_mmio_gem.c b/drivers/gpu/drm/xe/xe_mmio_gem.c
>> index f15a6a84af15..418a24bdfa4e 100644
>> --- a/drivers/gpu/drm/xe/xe_mmio_gem.c
>> +++ b/drivers/gpu/drm/xe/xe_mmio_gem.c
>> @@ -172,14 +172,13 @@ static void xe_mmio_gem_release_dummy_page(struct drm_device *dev, void *res)
>> __free_page((struct page *)res);
>> }
>> -static vm_fault_t xe_mmio_gem_vm_fault_dummy_page(struct vm_area_struct *vma)
>> +static vm_fault_t xe_mmio_gem_vm_fault_dummy_page(struct vm_fault *vmf)
>> {
>> + struct vm_area_struct *vma = vmf->vma;
>> struct drm_gem_object *base = vma->vm_private_data;
>> struct drm_device *dev = base->dev;
>> - vm_fault_t ret = VM_FAULT_NOPAGE;
>> struct page *page;
>> unsigned long pfn;
>> - unsigned long i;
>> page = alloc_page(GFP_KERNEL | __GFP_ZERO);
>> if (!page)
>> @@ -190,16 +189,8 @@ static vm_fault_t xe_mmio_gem_vm_fault_dummy_page(struct vm_area_struct *vma)
>> pfn = page_to_pfn(page);
>> - /* Map the entire VMA to the same dummy page */
>> - for (i = 0; i < base->size; i += PAGE_SIZE) {
>> - unsigned long addr = vma->vm_start + i;
>> -
>> - ret = vmf_insert_pfn(vma, addr, pfn);
>> - if (ret & VM_FAULT_ERROR)
>> - break;
>> - }
>> -
>> - return ret;
>> + return vmf_insert_pfn_prot(vma, vmf->address, pfn,
>> + vm_get_page_prot(vma->vm_flags));
>> }
>> static vm_fault_t xe_mmio_gem_vm_fault(struct vm_fault *vmf)
>> @@ -219,7 +210,7 @@ static vm_fault_t xe_mmio_gem_vm_fault(struct vm_fault *vmf)
>> * It is assumed the userspace will receive the notification via some
>> * other channel (e.g. drm uevent).
>> */
>> - return xe_mmio_gem_vm_fault_dummy_page(vma);
>> + return xe_mmio_gem_vm_fault_dummy_page(vmf);
>> }
>> for (i = 0; i < base->size; i += PAGE_SIZE) {
>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v3 6/7] drm/xe/mmio_gem: fix destroy flow
2026-07-23 16:18 ` [PATCH v3 6/7] drm/xe/mmio_gem: fix destroy flow Ilia Levi
@ 2026-07-24 12:50 ` Matthew Auld
0 siblings, 0 replies; 18+ messages in thread
From: Matthew Auld @ 2026-07-24 12:50 UTC (permalink / raw)
To: Ilia Levi, intel-xe
Cc: koby.elbaz, meny.yossefi, shuicheng.lin, thomas.hellstrom,
matthew.brost
On 23/07/2026 17:18, Ilia Levi wrote:
> xe_mmio_gem_destroy() currently frees the GEM object directly, bypassing
> reference counting. Since existing VMAs hold a reference and the fault
> handler accesses the object through vma->vm_private_data, this is
> use-after-free. Additionally, nothing prevents the fault handler from
> installing PTEs to the real MMIO after destroy.
>
> Fix this with proper synchronization and refcounting. Also, do not set
> vm_pgoff to zero. Many DRM drivers do this because helpers like
> dma_mmap_pages() interpret vm_pgoff as an intra-buffer page offset;
> leaving the DRM fake offset there would break these helpers.
> Those drivers can get away with zeroing it because they map eagerly -
> all PTEs are established before mmap returns, so vm_pgoff is never
> consulted again. Our driver does not use such helpers and the newly
> introduced call to drm_vma_node_unmap() relies on vm_pgoff being untouched.
>
> v2: (Matt Auld)
> - use dma_resv lock to serialize fault handler with destroy
> - SIGBUS on access after destroy
>
> Fixes: 1ffcf8b8ae8a ("drm/xe: Support for mmap-ing mmio regions")
> Assisted-by: GitHub-Copilot:claude-opus-4.6
> Signed-off-by: Ilia Levi <ilia.levi@intel.com>
> ---
> drivers/gpu/drm/xe/xe_mmio_gem.c | 42 ++++++++++++++++++++++++++------
> 1 file changed, 35 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_mmio_gem.c b/drivers/gpu/drm/xe/xe_mmio_gem.c
> index 5bd2759fc876..ef48642a0733 100644
> --- a/drivers/gpu/drm/xe/xe_mmio_gem.c
> +++ b/drivers/gpu/drm/xe/xe_mmio_gem.c
> @@ -38,6 +38,7 @@ struct xe_mmio_gem {
> struct drm_gem_object base;
> phys_addr_t phys_addr;
> struct page *dummy_page; /* protected by the GEM's dma_resv */
> + bool destroyed; /* protected by the GEM's dma_resv */
> };
>
> static int xe_mmio_gem_vm_may_split(struct vm_area_struct *area, unsigned long addr)
> @@ -150,8 +151,22 @@ static void xe_mmio_gem_free(struct drm_gem_object *base)
> */
> void xe_mmio_gem_destroy(struct xe_mmio_gem *gem, struct drm_file *file)
> {
> - drm_vma_node_revoke(&gem->base.vma_node, file);
> - xe_mmio_gem_free(&gem->base);
> + struct drm_gem_object *base = &gem->base;
> + struct drm_device *dev = base->dev;
> +
> + drm_vma_node_revoke(&base->vma_node, file);
> +
> + dma_resv_lock(base->resv, NULL);
> + gem->destroyed = true;
> + dma_resv_unlock(base->resv);
> + /*
> + * Setting 'destroyed' under lock takes care of the subsequent faults.
> + * Zap the existing PTEs to cut off access to the real MMIO through
> + * currently mapped pages.
> + */
> + drm_vma_node_unmap(&base->vma_node, dev->anon_inode->i_mapping);
> +
> + drm_gem_object_put(base);
> }
>
> static int xe_mmio_gem_mmap(struct drm_gem_object *base, struct vm_area_struct *vma)
> @@ -162,8 +177,6 @@ static int xe_mmio_gem_mmap(struct drm_gem_object *base, struct vm_area_struct *
> if ((vma->vm_flags & VM_SHARED) == 0)
> return -EINVAL;
>
> - /* Set vm_pgoff (used as a fake buffer offset by DRM) to 0 */
> - vma->vm_pgoff = 0;
> vma->vm_page_prot = pgprot_noncached(vm_get_page_prot(vma->vm_flags));
> vm_flags_set(vma, VM_IO | VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP |
> VM_DONTCOPY | VM_NORESERVE);
> @@ -176,10 +189,9 @@ static int alloc_dummy_page_if_needed(struct drm_gem_object *base)
> {
> struct xe_mmio_gem *obj = to_xe_mmio_gem(base);
>
> - dma_resv_lock(base->resv, NULL);
> + dma_resv_assert_held(base->resv);
> if (!obj->dummy_page)
> obj->dummy_page = alloc_page(GFP_KERNEL | __GFP_ZERO);
> - dma_resv_unlock(base->resv);
>
> return obj->dummy_page ? 0 : -ENOMEM;
> }
> @@ -200,7 +212,7 @@ static vm_fault_t xe_mmio_gem_vm_fault_dummy_page(struct vm_fault *vmf)
> vm_get_page_prot(vma->vm_flags));
> }
>
> -static vm_fault_t xe_mmio_gem_vm_fault(struct vm_fault *vmf)
> +static vm_fault_t xe_mmio_gem_vm_fault_locked(struct vm_fault *vmf)
> {
> struct vm_area_struct *vma = vmf->vma;
> struct drm_gem_object *base = vma->vm_private_data;
> @@ -210,6 +222,10 @@ static vm_fault_t xe_mmio_gem_vm_fault(struct vm_fault *vmf)
> unsigned long addr, pfn;
> int idx;
>
> + dma_resv_assert_held(base->resv);
> + if (obj->destroyed)
> + return VM_FAULT_SIGBUS;
> +
> if (!drm_dev_enter(dev, &idx)) {
> /*
> * Provide a dummy page to avoid SIGBUS for events such as hot-unplug.
> @@ -232,3 +248,15 @@ static vm_fault_t xe_mmio_gem_vm_fault(struct vm_fault *vmf)
> drm_dev_exit(idx);
> return ret;
> }
> +
> +static vm_fault_t xe_mmio_gem_vm_fault(struct vm_fault *vmf)
> +{
> + struct vm_area_struct *vma = vmf->vma;
> + struct drm_gem_object *base = vma->vm_private_data;
> + vm_fault_t ret;
> +
> + dma_resv_lock(base->resv, NULL);
Not completely sure if locking order matters here with dma-resv ->
drm_unplug_srcu, or if that should be inverted.
Also, wondering if this patch should go earlier in the series. The
Sashiko report is hard to read since it complains about existing issues
earlier in the series which are fixed later in the same series (this patch).
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
> + ret = xe_mmio_gem_vm_fault_locked(vmf);
> + dma_resv_unlock(base->resv);
> + return ret;
> +}
^ permalink raw reply [flat|nested] 18+ messages in thread
* ✓ Xe.CI.FULL: success for drm/xe/mmio_gem: fix fault handler and destroy path (rev3)
2026-07-23 16:18 [PATCH v3 0/7] drm/xe/mmio_gem: fix fault handler and destroy path Ilia Levi
` (8 preceding siblings ...)
2026-07-23 17:34 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-07-24 17:14 ` Patchwork
9 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2026-07-24 17:14 UTC (permalink / raw)
To: Levi, Ilia; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 53701 bytes --]
== Series Details ==
Series: drm/xe/mmio_gem: fix fault handler and destroy path (rev3)
URL : https://patchwork.freedesktop.org/series/167217/
State : success
== Summary ==
CI Bug Log - changes from xe-5467-2c64192f1ad194a53800f6dd8c779d5b4bbc1831_FULL -> xe-pw-167217v3_FULL
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (2 -> 2)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-167217v3_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@core_hotunplug@hotunbind-rebind:
- shard-bmg: NOTRUN -> [ABORT][1] ([Intel XE#8007])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-3/igt@core_hotunplug@hotunbind-rebind.html
* igt@kms_big_fb@4-tiled-64bpp-rotate-270:
- shard-lnl: NOTRUN -> [SKIP][2] ([Intel XE#1407])
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-8/igt@kms_big_fb@4-tiled-64bpp-rotate-270.html
* igt@kms_big_fb@linear-32bpp-rotate-270:
- shard-bmg: NOTRUN -> [SKIP][3] ([Intel XE#2327]) +2 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-7/igt@kms_big_fb@linear-32bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-16bpp-rotate-180:
- shard-bmg: NOTRUN -> [SKIP][4] ([Intel XE#1124]) +10 other tests skip
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-8/igt@kms_big_fb@y-tiled-16bpp-rotate-180.html
* igt@kms_big_fb@y-tiled-addfb-size-overflow:
- shard-lnl: NOTRUN -> [SKIP][5] ([Intel XE#1428] / [Intel XE#7387]) +1 other test skip
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-1/igt@kms_big_fb@y-tiled-addfb-size-overflow.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
- shard-lnl: NOTRUN -> [SKIP][6] ([Intel XE#1124]) +6 other tests skip
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-3/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
* igt@kms_bw@connected-linear-tiling-2-displays-target-3840x2160p:
- shard-lnl: NOTRUN -> [SKIP][7] ([Intel XE#7679])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-3/igt@kms_bw@connected-linear-tiling-2-displays-target-3840x2160p.html
* igt@kms_bw@connected-linear-tiling-3-displays-target-1920x1080p:
- shard-bmg: NOTRUN -> [SKIP][8] ([Intel XE#7679]) +1 other test skip
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-4/igt@kms_bw@connected-linear-tiling-3-displays-target-1920x1080p.html
* igt@kms_bw@connected-linear-tiling-4-displays-target-2160x1440p:
- shard-lnl: NOTRUN -> [SKIP][9] ([Intel XE#8365])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-7/igt@kms_bw@connected-linear-tiling-4-displays-target-2160x1440p.html
* igt@kms_bw@linear-tiling-4-displays-target-2560x1440p:
- shard-bmg: NOTRUN -> [SKIP][10] ([Intel XE#367]) +2 other tests skip
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-7/igt@kms_bw@linear-tiling-4-displays-target-2560x1440p.html
* igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs@pipe-c-edp-1:
- shard-lnl: NOTRUN -> [SKIP][11] ([Intel XE#2669] / [Intel XE#7389]) +3 other tests skip
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-3/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs@pipe-c-edp-1.html
* igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs:
- shard-bmg: NOTRUN -> [SKIP][12] ([Intel XE#2887]) +14 other tests skip
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-2/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-a-edp-1:
- shard-lnl: NOTRUN -> [SKIP][13] ([Intel XE#2669] / [Intel XE#3433] / [Intel XE#7389]) +3 other tests skip
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-1/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-a-edp-1.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc:
- shard-lnl: NOTRUN -> [SKIP][14] ([Intel XE#3432])
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-6/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-ccs:
- shard-bmg: NOTRUN -> [SKIP][15] ([Intel XE#3432])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-10/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc:
- shard-lnl: NOTRUN -> [SKIP][16] ([Intel XE#2887]) +6 other tests skip
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-8/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_cdclk@mode-transition-all-outputs:
- shard-bmg: NOTRUN -> [SKIP][17] ([Intel XE#2724] / [Intel XE#7449])
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-2/igt@kms_cdclk@mode-transition-all-outputs.html
* igt@kms_chamelium_audio@dp-audio-after-suspend:
- shard-lnl: NOTRUN -> [SKIP][18] ([Intel XE#2252]) +1 other test skip
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-3/igt@kms_chamelium_audio@dp-audio-after-suspend.html
* igt@kms_chamelium_color@ctm-limited-range:
- shard-lnl: NOTRUN -> [SKIP][19] ([Intel XE#306] / [Intel XE#7358])
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-6/igt@kms_chamelium_color@ctm-limited-range.html
* igt@kms_chamelium_color@ctm-red-to-blue:
- shard-bmg: NOTRUN -> [SKIP][20] ([Intel XE#2325] / [Intel XE#7358])
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-9/igt@kms_chamelium_color@ctm-red-to-blue.html
* igt@kms_chamelium_color_pipeline@plane-ctm3x4:
- shard-lnl: NOTRUN -> [SKIP][21] ([Intel XE#7358])
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-5/igt@kms_chamelium_color_pipeline@plane-ctm3x4.html
* igt@kms_chamelium_color_pipeline@plane-lut1d-ctm3x4:
- shard-bmg: NOTRUN -> [SKIP][22] ([Intel XE#7358])
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-5/igt@kms_chamelium_color_pipeline@plane-lut1d-ctm3x4.html
* igt@kms_chamelium_hpd@common-hpd-after-suspend:
- shard-bmg: NOTRUN -> [SKIP][23] ([Intel XE#2252]) +2 other tests skip
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-8/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
* igt@kms_chamelium_hpd@hdmi-hpd-storm-disable:
- shard-lnl: NOTRUN -> [SKIP][24] ([Intel XE#373]) +2 other tests skip
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-8/igt@kms_chamelium_hpd@hdmi-hpd-storm-disable.html
* igt@kms_chamelium_sharpness_filter@filter-basic:
- shard-bmg: NOTRUN -> [SKIP][25] ([Intel XE#6507])
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-2/igt@kms_chamelium_sharpness_filter@filter-basic.html
* igt@kms_content_protection@lic-type-0@pipe-a-dp-2:
- shard-bmg: NOTRUN -> [FAIL][26] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) +3 other tests fail
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-10/igt@kms_content_protection@lic-type-0@pipe-a-dp-2.html
* igt@kms_content_protection@suspend-resume:
- shard-lnl: NOTRUN -> [SKIP][27] ([Intel XE#7642])
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-2/igt@kms_content_protection@suspend-resume.html
* igt@kms_cursor_crc@cursor-offscreen-512x512:
- shard-lnl: NOTRUN -> [SKIP][28] ([Intel XE#2321] / [Intel XE#7355]) +2 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-4/igt@kms_cursor_crc@cursor-offscreen-512x512.html
* igt@kms_cursor_crc@cursor-random-32x32:
- shard-bmg: NOTRUN -> [SKIP][29] ([Intel XE#2320]) +4 other tests skip
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-6/igt@kms_cursor_crc@cursor-random-32x32.html
* igt@kms_cursor_crc@cursor-rapid-movement-128x42:
- shard-lnl: NOTRUN -> [SKIP][30] ([Intel XE#1424]) +1 other test skip
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-5/igt@kms_cursor_crc@cursor-rapid-movement-128x42.html
* igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy:
- shard-lnl: NOTRUN -> [SKIP][31] ([Intel XE#309] / [Intel XE#7343]) +4 other tests skip
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-2/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic:
- shard-bmg: [PASS][32] -> [FAIL][33] ([Intel XE#7571]) +1 other test fail
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5467-2c64192f1ad194a53800f6dd8c779d5b4bbc1831/shard-bmg-3/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-9/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
* igt@kms_dp_link_training@non-uhbr-mst:
- shard-lnl: NOTRUN -> [SKIP][34] ([Intel XE#4354] / [Intel XE#5882])
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-8/igt@kms_dp_link_training@non-uhbr-mst.html
* igt@kms_dp_link_training@uhbr-mst:
- shard-bmg: NOTRUN -> [SKIP][35] ([Intel XE#4354] / [Intel XE#7386])
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-8/igt@kms_dp_link_training@uhbr-mst.html
* igt@kms_dsc@dsc-basic-bigjoiner:
- shard-bmg: NOTRUN -> [SKIP][36] ([Intel XE#8265]) +3 other tests skip
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-9/igt@kms_dsc@dsc-basic-bigjoiner.html
* igt@kms_dsc@dsc-with-bpc-formats:
- shard-lnl: NOTRUN -> [SKIP][37] ([Intel XE#8265]) +2 other tests skip
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-2/igt@kms_dsc@dsc-with-bpc-formats.html
* igt@kms_feature_discovery@chamelium:
- shard-lnl: NOTRUN -> [SKIP][38] ([Intel XE#701] / [Intel XE#7359])
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-6/igt@kms_feature_discovery@chamelium.html
* igt@kms_feature_discovery@dp-mst:
- shard-bmg: NOTRUN -> [SKIP][39] ([Intel XE#2375])
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-6/igt@kms_feature_discovery@dp-mst.html
* igt@kms_feature_discovery@dsc:
- shard-lnl: NOTRUN -> [SKIP][40] ([Intel XE#8586])
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-5/igt@kms_feature_discovery@dsc.html
* igt@kms_flip@2x-nonexisting-fb:
- shard-lnl: NOTRUN -> [SKIP][41] ([Intel XE#1421]) +2 other tests skip
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-7/igt@kms_flip@2x-nonexisting-fb.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling:
- shard-lnl: NOTRUN -> [SKIP][42] ([Intel XE#7178] / [Intel XE#7351]) +1 other test skip
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-6/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling:
- shard-bmg: NOTRUN -> [SKIP][43] ([Intel XE#7178] / [Intel XE#7351]) +4 other tests skip
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling:
- shard-lnl: NOTRUN -> [SKIP][44] ([Intel XE#7178] / [Intel XE#7349])
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-3/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling:
- shard-bmg: NOTRUN -> [SKIP][45] ([Intel XE#7178] / [Intel XE#7349])
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-1/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling:
- shard-lnl: NOTRUN -> [SKIP][46] ([Intel XE#1397] / [Intel XE#1745] / [Intel XE#7385])
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-7/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling@pipe-a-default-mode:
- shard-lnl: NOTRUN -> [SKIP][47] ([Intel XE#1397] / [Intel XE#7385])
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-7/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-p016-linear-to-p016-linear-reflect-x:
- shard-bmg: NOTRUN -> [SKIP][48] ([Intel XE#7179]) +1 other test skip
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-4/igt@kms_flip_scaled_crc@flip-p016-linear-to-p016-linear-reflect-x.html
* igt@kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-msflip-blt:
- shard-lnl: NOTRUN -> [SKIP][49] ([Intel XE#6312] / [Intel XE#651]) +6 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-7/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-blt:
- shard-lnl: NOTRUN -> [SKIP][50] ([Intel XE#656] / [Intel XE#7905]) +24 other tests skip
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-6/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@drrshdr-2p-primscrn-cur-indfb-draw-render:
- shard-bmg: NOTRUN -> [SKIP][51] ([Intel XE#2311]) +63 other tests skip
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-8/igt@kms_frontbuffer_tracking@drrshdr-2p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-indfb-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][52] ([Intel XE#4141]) +11 other tests skip
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-9/igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y:
- shard-lnl: NOTRUN -> [SKIP][53] ([Intel XE#1469] / [Intel XE#7399]) +1 other test skip
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-7/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y.html
* igt@kms_frontbuffer_tracking@fbcdrrshdr-argb161616f-draw-blt:
- shard-lnl: NOTRUN -> [SKIP][54] ([Intel XE#7061]) +3 other tests skip
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-2/igt@kms_frontbuffer_tracking@fbcdrrshdr-argb161616f-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrshdr-rgb565-draw-mmap-wc:
- shard-lnl: NOTRUN -> [SKIP][55] ([Intel XE#6312]) +10 other tests skip
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcdrrshdr-rgb565-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-draw-blt:
- shard-lnl: NOTRUN -> [SKIP][56] ([Intel XE#7865]) +14 other tests skip
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-3/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbchdr-tiling-y:
- shard-bmg: NOTRUN -> [SKIP][57] ([Intel XE#7399])
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-1/igt@kms_frontbuffer_tracking@fbchdr-tiling-y.html
* igt@kms_frontbuffer_tracking@fbcpsr-abgr161616f-draw-mmap-wc:
- shard-lnl: NOTRUN -> [SKIP][58] ([Intel XE#7061] / [Intel XE#7356]) +2 other tests skip
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-1/igt@kms_frontbuffer_tracking@fbcpsr-abgr161616f-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-abgr161616f-draw-render:
- shard-bmg: NOTRUN -> [SKIP][59] ([Intel XE#7061] / [Intel XE#7356]) +4 other tests skip
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcpsr-abgr161616f-draw-render.html
* igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-pri-shrfb-draw-mmap-wc:
- shard-lnl: NOTRUN -> [SKIP][60] ([Intel XE#7905]) +28 other tests skip
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-4/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-pri-shrfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-pri-shrfb-draw-render:
- shard-bmg: NOTRUN -> [SKIP][61] ([Intel XE#2313]) +61 other tests skip
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-10/igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-pri-shrfb-draw-render.html
* igt@kms_frontbuffer_tracking@psrhdr-abgr161616f-draw-render:
- shard-bmg: NOTRUN -> [SKIP][62] ([Intel XE#7061]) +1 other test skip
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-8/igt@kms_frontbuffer_tracking@psrhdr-abgr161616f-draw-render.html
* igt@kms_hdr@static-toggle:
- shard-lnl: NOTRUN -> [SKIP][63] ([Intel XE#1503]) +1 other test skip
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-4/igt@kms_hdr@static-toggle.html
* igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
- shard-lnl: NOTRUN -> [SKIP][64] ([Intel XE#7173] / [Intel XE#7294])
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-7/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
* igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-cc-modifier-source-clamping:
- shard-lnl: NOTRUN -> [SKIP][65] ([Intel XE#7283]) +2 other tests skip
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-1/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-cc-modifier-source-clamping.html
* igt@kms_plane@pixel-format-x-tiled-modifier@pipe-b-plane-5:
- shard-bmg: NOTRUN -> [SKIP][66] ([Intel XE#8303]) +1 other test skip
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-3/igt@kms_plane@pixel-format-x-tiled-modifier@pipe-b-plane-5.html
* igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier-source-clamping:
- shard-bmg: NOTRUN -> [SKIP][67] ([Intel XE#7283]) +3 other tests skip
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-6/igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier-source-clamping.html
* igt@kms_plane_lowres@tiling-y:
- shard-lnl: NOTRUN -> [SKIP][68] ([Intel XE#599])
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-4/igt@kms_plane_lowres@tiling-y.html
* igt@kms_plane_scaling@intel-max-src-size:
- shard-bmg: [PASS][69] -> [SKIP][70] ([Intel XE#2685] / [Intel XE#3307])
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5467-2c64192f1ad194a53800f6dd8c779d5b4bbc1831/shard-bmg-1/igt@kms_plane_scaling@intel-max-src-size.html
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-2/igt@kms_plane_scaling@intel-max-src-size.html
* igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20@pipe-b:
- shard-lnl: NOTRUN -> [SKIP][71] ([Intel XE#2763] / [Intel XE#6886]) +7 other tests skip
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-8/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20@pipe-b.html
* igt@kms_pm_backlight@fade:
- shard-bmg: NOTRUN -> [SKIP][72] ([Intel XE#7376] / [Intel XE#7760] / [Intel XE#870]) +1 other test skip
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-9/igt@kms_pm_backlight@fade.html
* igt@kms_pm_dc@dc3co-vpb-framegap:
- shard-bmg: NOTRUN -> [SKIP][73] ([Intel XE#8395] / [Intel XE#8396]) +2 other tests skip
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-1/igt@kms_pm_dc@dc3co-vpb-framegap.html
* igt@kms_pm_dc@dc3co-vpb-simulation:
- shard-lnl: NOTRUN -> [SKIP][74] ([Intel XE#8395] / [Intel XE#8396]) +1 other test skip
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-3/igt@kms_pm_dc@dc3co-vpb-simulation.html
* igt@kms_pm_dc@dc3co-vpb-simulation@psr2-xrgb8888:
- shard-bmg: NOTRUN -> [SKIP][75] ([Intel XE#8396]) +1 other test skip
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-2/igt@kms_pm_dc@dc3co-vpb-simulation@psr2-xrgb8888.html
* igt@kms_pm_dc@dc3co-vpb-simulation@psr2-yuv420:
- shard-lnl: NOTRUN -> [SKIP][76] ([Intel XE#8396]) +1 other test skip
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-3/igt@kms_pm_dc@dc3co-vpb-simulation@psr2-yuv420.html
* igt@kms_pm_dc@dc6-dpms:
- shard-lnl: [PASS][77] -> [FAIL][78] ([Intel XE#8399])
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5467-2c64192f1ad194a53800f6dd8c779d5b4bbc1831/shard-lnl-4/igt@kms_pm_dc@dc6-dpms.html
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-7/igt@kms_pm_dc@dc6-dpms.html
* igt@kms_pm_dc@deep-pkgc:
- shard-bmg: NOTRUN -> [SKIP][79] ([Intel XE#2505] / [Intel XE#7447])
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-7/igt@kms_pm_dc@deep-pkgc.html
* igt@kms_pm_rpm@modeset-lpsp:
- shard-bmg: NOTRUN -> [SKIP][80] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#7383] / [Intel XE#836])
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-5/igt@kms_pm_rpm@modeset-lpsp.html
* igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf:
- shard-lnl: NOTRUN -> [SKIP][81] ([Intel XE#2893] / [Intel XE#4608] / [Intel XE#7304])
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-7/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf@pipe-a-edp-1:
- shard-lnl: NOTRUN -> [SKIP][82] ([Intel XE#4608])
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-7/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf@pipe-a-edp-1.html
* igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf@pipe-b-edp-1:
- shard-lnl: NOTRUN -> [SKIP][83] ([Intel XE#4608] / [Intel XE#7304])
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-7/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf@pipe-b-edp-1.html
* igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area:
- shard-bmg: NOTRUN -> [SKIP][84] ([Intel XE#1489]) +4 other tests skip
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-9/igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area.html
* igt@kms_psr2_sf@pr-plane-move-sf-dmg-area:
- shard-lnl: NOTRUN -> [SKIP][85] ([Intel XE#2893] / [Intel XE#7304]) +2 other tests skip
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-3/igt@kms_psr2_sf@pr-plane-move-sf-dmg-area.html
* igt@kms_psr@fbc-psr2-dpms:
- shard-lnl: NOTRUN -> [SKIP][86] ([Intel XE#1406] / [Intel XE#7345]) +1 other test skip
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-3/igt@kms_psr@fbc-psr2-dpms.html
* igt@kms_psr@fbc-psr2-sprite-blt@edp-1:
- shard-lnl: NOTRUN -> [SKIP][87] ([Intel XE#1406] / [Intel XE#4609]) +1 other test skip
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-2/igt@kms_psr@fbc-psr2-sprite-blt@edp-1.html
* igt@kms_psr@pr-sprite-render:
- shard-bmg: NOTRUN -> [SKIP][88] ([Intel XE#2234] / [Intel XE#2850]) +11 other tests skip
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-8/igt@kms_psr@pr-sprite-render.html
* igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
- shard-bmg: NOTRUN -> [SKIP][89] ([Intel XE#7795])
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-7/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
* igt@kms_rotation_crc@bad-pixel-format:
- shard-bmg: NOTRUN -> [SKIP][90] ([Intel XE#3904] / [Intel XE#7342]) +2 other tests skip
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-8/igt@kms_rotation_crc@bad-pixel-format.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
- shard-lnl: NOTRUN -> [SKIP][91] ([Intel XE#1127] / [Intel XE#5813])
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-5/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
* igt@kms_rotation_crc@sprite-rotation-270:
- shard-lnl: NOTRUN -> [SKIP][92] ([Intel XE#3414] / [Intel XE#3904] / [Intel XE#7342])
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-2/igt@kms_rotation_crc@sprite-rotation-270.html
* igt@kms_sharpness_filter@filter-basic:
- shard-bmg: NOTRUN -> [SKIP][93] ([Intel XE#6503]) +1 other test skip
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-10/igt@kms_sharpness_filter@filter-basic.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-bmg: NOTRUN -> [SKIP][94] ([Intel XE#2426] / [Intel XE#5848])
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-8/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
- shard-lnl: NOTRUN -> [SKIP][95] ([Intel XE#362] / [Intel XE#5848])
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-6/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
* igt@kms_vrr@flip-suspend:
- shard-bmg: NOTRUN -> [SKIP][96] ([Intel XE#1499])
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-9/igt@kms_vrr@flip-suspend.html
* igt@kms_vrr@lobf-dc3co:
- shard-bmg: NOTRUN -> [SKIP][97] ([Intel XE#8397])
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-1/igt@kms_vrr@lobf-dc3co.html
* igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1:
- shard-lnl: [PASS][98] -> [FAIL][99] ([Intel XE#7397]) +1 other test fail
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5467-2c64192f1ad194a53800f6dd8c779d5b4bbc1831/shard-lnl-1/igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1.html
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-2/igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1.html
* igt@xe_compute@ccs-mode-basic:
- shard-lnl: NOTRUN -> [SKIP][100] ([Intel XE#1447] / [Intel XE#7471])
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-2/igt@xe_compute@ccs-mode-basic.html
* igt@xe_evict@evict-mixed-many-threads-small:
- shard-bmg: NOTRUN -> [INCOMPLETE][101] ([Intel XE#6321] / [Intel XE#8355])
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-9/igt@xe_evict@evict-mixed-many-threads-small.html
* igt@xe_evict@evict-small-multi-queue-priority-cm:
- shard-bmg: NOTRUN -> [SKIP][102] ([Intel XE#8370]) +1 other test skip
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-7/igt@xe_evict@evict-small-multi-queue-priority-cm.html
* igt@xe_evict_ccs@evict-overcommit-standalone-nofree-samefd:
- shard-lnl: NOTRUN -> [SKIP][103] ([Intel XE#6540] / [Intel XE#688]) +7 other tests skip
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-1/igt@xe_evict_ccs@evict-overcommit-standalone-nofree-samefd.html
* igt@xe_exec_balancer@no-exec-parallel-userptr-invalidate-race:
- shard-lnl: NOTRUN -> [SKIP][104] ([Intel XE#7482]) +11 other tests skip
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-4/igt@xe_exec_balancer@no-exec-parallel-userptr-invalidate-race.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-defer-bind:
- shard-bmg: NOTRUN -> [SKIP][105] ([Intel XE#2322] / [Intel XE#7372]) +9 other tests skip
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-6/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-defer-bind.html
* igt@xe_exec_basic@multigpu-no-exec-null-defer-mmap:
- shard-lnl: NOTRUN -> [SKIP][106] ([Intel XE#1392]) +5 other tests skip
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-6/igt@xe_exec_basic@multigpu-no-exec-null-defer-mmap.html
* igt@xe_exec_fault_mode@atomic-many:
- shard-bmg: [PASS][107] -> [FAIL][108] ([Intel XE#8578])
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5467-2c64192f1ad194a53800f6dd8c779d5b4bbc1831/shard-bmg-4/igt@xe_exec_fault_mode@atomic-many.html
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-6/igt@xe_exec_fault_mode@atomic-many.html
* igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-invalidate-imm:
- shard-bmg: NOTRUN -> [SKIP][109] ([Intel XE#8374]) +14 other tests skip
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-6/igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-invalidate-imm.html
* igt@xe_exec_fault_mode@twice-multi-queue-invalid-fault:
- shard-lnl: NOTRUN -> [SKIP][110] ([Intel XE#8374]) +9 other tests skip
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-8/igt@xe_exec_fault_mode@twice-multi-queue-invalid-fault.html
* igt@xe_exec_multi_queue@few-execs-basic-smem:
- shard-lnl: NOTRUN -> [SKIP][111] ([Intel XE#8364]) +17 other tests skip
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-2/igt@xe_exec_multi_queue@few-execs-basic-smem.html
* igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-dyn-priority-smem:
- shard-bmg: NOTRUN -> [SKIP][112] ([Intel XE#8364]) +29 other tests skip
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-5/igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-dyn-priority-smem.html
* igt@xe_exec_reset@cm-multi-queue-cat-error-on-secondary:
- shard-bmg: NOTRUN -> [SKIP][113] ([Intel XE#8369]) +1 other test skip
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-6/igt@xe_exec_reset@cm-multi-queue-cat-error-on-secondary.html
* igt@xe_exec_reset@multi-queue-gt-reset:
- shard-lnl: NOTRUN -> [SKIP][114] ([Intel XE#8369])
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-4/igt@xe_exec_reset@multi-queue-gt-reset.html
* igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-comp-multi-vma:
- shard-lnl: NOTRUN -> [SKIP][115] ([Intel XE#6196])
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-2/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-comp-multi-vma.html
* igt@xe_exec_threads@threads-multi-queue-fd-userptr-rebind:
- shard-lnl: NOTRUN -> [SKIP][116] ([Intel XE#8378]) +7 other tests skip
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-3/igt@xe_exec_threads@threads-multi-queue-fd-userptr-rebind.html
* igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate-race:
- shard-bmg: NOTRUN -> [SKIP][117] ([Intel XE#8378]) +7 other tests skip
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-1/igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate-race.html
* igt@xe_mmap@pci-membarrier-parallel:
- shard-lnl: NOTRUN -> [SKIP][118] ([Intel XE#5100] / [Intel XE#7322] / [Intel XE#7408])
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-1/igt@xe_mmap@pci-membarrier-parallel.html
* igt@xe_mmap@vram:
- shard-lnl: NOTRUN -> [SKIP][119] ([Intel XE#1416])
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-6/igt@xe_mmap@vram.html
* igt@xe_multigpu_svm@mgpu-atomic-op-basic:
- shard-bmg: NOTRUN -> [SKIP][120] ([Intel XE#6964]) +2 other tests skip
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-6/igt@xe_multigpu_svm@mgpu-atomic-op-basic.html
* igt@xe_multigpu_svm@mgpu-pagefault-basic:
- shard-lnl: NOTRUN -> [SKIP][121] ([Intel XE#6964])
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-8/igt@xe_multigpu_svm@mgpu-pagefault-basic.html
* igt@xe_page_reclaim@pde-vs-pd:
- shard-bmg: NOTRUN -> [SKIP][122] ([Intel XE#7793]) +1 other test skip
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-1/igt@xe_page_reclaim@pde-vs-pd.html
* igt@xe_page_reclaim@prl-invalidate-full:
- shard-lnl: NOTRUN -> [SKIP][123] ([Intel XE#7793]) +1 other test skip
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-3/igt@xe_page_reclaim@prl-invalidate-full.html
* igt@xe_pat@pat-index-xelpg:
- shard-bmg: NOTRUN -> [SKIP][124] ([Intel XE#2236] / [Intel XE#7590])
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-7/igt@xe_pat@pat-index-xelpg.html
* igt@xe_pat@pat-sw-hw-reset-compare:
- shard-bmg: NOTRUN -> [FAIL][125] ([Intel XE#7695])
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-6/igt@xe_pat@pat-sw-hw-reset-compare.html
* igt@xe_pm@d3cold-mmap-vram:
- shard-lnl: NOTRUN -> [SKIP][126] ([Intel XE#2284] / [Intel XE#366] / [Intel XE#7370])
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-1/igt@xe_pm@d3cold-mmap-vram.html
* igt@xe_pm@d3cold-mocs:
- shard-bmg: NOTRUN -> [SKIP][127] ([Intel XE#2284] / [Intel XE#7370]) +1 other test skip
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-2/igt@xe_pm@d3cold-mocs.html
* igt@xe_pm@s3-mocs:
- shard-lnl: NOTRUN -> [SKIP][128] ([Intel XE#584] / [Intel XE#7369]) +1 other test skip
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-1/igt@xe_pm@s3-mocs.html
* igt@xe_prefetch_fault@prefetch-fault-svm:
- shard-bmg: NOTRUN -> [SKIP][129] ([Intel XE#7599])
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-9/igt@xe_prefetch_fault@prefetch-fault-svm.html
* igt@xe_pxp@pxp-stale-queue-post-termination-irq:
- shard-bmg: NOTRUN -> [SKIP][130] ([Intel XE#4733] / [Intel XE#7417])
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-8/igt@xe_pxp@pxp-stale-queue-post-termination-irq.html
* igt@xe_query@multigpu-query-gt-list:
- shard-lnl: NOTRUN -> [SKIP][131] ([Intel XE#944]) +1 other test skip
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-3/igt@xe_query@multigpu-query-gt-list.html
* igt@xe_query@multigpu-query-invalid-cs-cycles:
- shard-bmg: NOTRUN -> [SKIP][132] ([Intel XE#944]) +2 other tests skip
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-8/igt@xe_query@multigpu-query-invalid-cs-cycles.html
* igt@xe_sriov_auto_provisioning@resources-released-on-vfs-disabling:
- shard-lnl: NOTRUN -> [SKIP][133] ([Intel XE#4130] / [Intel XE#7366]) +1 other test skip
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-3/igt@xe_sriov_auto_provisioning@resources-released-on-vfs-disabling.html
* igt@xe_sriov_flr@flr-vf1-clear:
- shard-lnl: NOTRUN -> [SKIP][134] ([Intel XE#3342])
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-8/igt@xe_sriov_flr@flr-vf1-clear.html
* igt@xe_sriov_scheduling@equal-throughput-low-priority:
- shard-bmg: [PASS][135] -> [FAIL][136] ([Intel XE#7992]) +1 other test fail
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5467-2c64192f1ad194a53800f6dd8c779d5b4bbc1831/shard-bmg-6/igt@xe_sriov_scheduling@equal-throughput-low-priority.html
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-8/igt@xe_sriov_scheduling@equal-throughput-low-priority.html
* igt@xe_sriov_scheduling@equal-throughput-low-priority@numvfs-random-gt1-vcs0:
- shard-bmg: [PASS][137] -> [FAIL][138] ([Intel XE#8526])
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5467-2c64192f1ad194a53800f6dd8c779d5b4bbc1831/shard-bmg-6/igt@xe_sriov_scheduling@equal-throughput-low-priority@numvfs-random-gt1-vcs0.html
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-8/igt@xe_sriov_scheduling@equal-throughput-low-priority@numvfs-random-gt1-vcs0.html
* igt@xe_sriov_scheduling@equal-throughput-normal-priority:
- shard-lnl: NOTRUN -> [SKIP][139] ([Intel XE#8339]) +1 other test skip
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-1/igt@xe_sriov_scheduling@equal-throughput-normal-priority.html
* igt@xe_sriov_vram@vf-access-after-resize-up:
- shard-lnl: NOTRUN -> [SKIP][140] ([Intel XE#6376] / [Intel XE#7330] / [Intel XE#7422])
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-3/igt@xe_sriov_vram@vf-access-after-resize-up.html
#### Possible fixes ####
* igt@kms_async_flips@alternate-sync-async-flip:
- shard-bmg: [FAIL][141] ([Intel XE#3718] / [Intel XE#6078]) -> [PASS][142] +1 other test pass
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5467-2c64192f1ad194a53800f6dd8c779d5b4bbc1831/shard-bmg-10/igt@kms_async_flips@alternate-sync-async-flip.html
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-6/igt@kms_async_flips@alternate-sync-async-flip.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
- shard-bmg: [INCOMPLETE][143] ([Intel XE#7084] / [Intel XE#8150]) -> [PASS][144] +1 other test pass
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5467-2c64192f1ad194a53800f6dd8c779d5b4bbc1831/shard-bmg-4/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-5/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1:
- shard-lnl: [FAIL][145] ([Intel XE#301]) -> [PASS][146] +4 other tests pass
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5467-2c64192f1ad194a53800f6dd8c779d5b4bbc1831/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-lnl-7/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
* igt@xe_fault_injection@inject-fault-probe-function-xe_guc_relay_init:
- shard-bmg: [ABORT][147] ([Intel XE#8007]) -> [PASS][148] +4 other tests pass
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5467-2c64192f1ad194a53800f6dd8c779d5b4bbc1831/shard-bmg-6/igt@xe_fault_injection@inject-fault-probe-function-xe_guc_relay_init.html
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-7/igt@xe_fault_injection@inject-fault-probe-function-xe_guc_relay_init.html
* igt@xe_sriov_flr@flr-each-isolation:
- shard-bmg: [FAIL][149] ([Intel XE#6569]) -> [PASS][150]
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5467-2c64192f1ad194a53800f6dd8c779d5b4bbc1831/shard-bmg-1/igt@xe_sriov_flr@flr-each-isolation.html
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-9/igt@xe_sriov_flr@flr-each-isolation.html
* igt@xe_wedged@basic-wedged:
- shard-bmg: [ABORT][151] ([Intel XE#8591]) -> [PASS][152]
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5467-2c64192f1ad194a53800f6dd8c779d5b4bbc1831/shard-bmg-7/igt@xe_wedged@basic-wedged.html
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-9/igt@xe_wedged@basic-wedged.html
#### Warnings ####
* igt@kms_hdr@brightness-with-hdr:
- shard-bmg: [SKIP][153] ([Intel XE#3544]) -> [SKIP][154] ([Intel XE#3374] / [Intel XE#3544])
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5467-2c64192f1ad194a53800f6dd8c779d5b4bbc1831/shard-bmg-4/igt@kms_hdr@brightness-with-hdr.html
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/shard-bmg-8/igt@kms_hdr@brightness-with-hdr.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
[Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1397
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
[Intel XE#1416]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1416
[Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
[Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
[Intel XE#1428]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1428
[Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
[Intel XE#1447]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1447
[Intel XE#1469]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1469
[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#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2236]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2236
[Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
[Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
[Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
[Intel XE#2375]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2375
[Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2505]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2505
[Intel XE#2669]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2669
[Intel XE#2685]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2685
[Intel XE#2724]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2724
[Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#2893]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2893
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#3141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3141
[Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
[Intel XE#3307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3307
[Intel XE#3342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3342
[Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
[Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
[Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
[Intel XE#3433]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3433
[Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
[Intel XE#362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/362
[Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#3718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3718
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
[Intel XE#4130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4130
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
[Intel XE#4608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4608
[Intel XE#4609]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4609
[Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
[Intel XE#5100]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5100
[Intel XE#5813]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5813
[Intel XE#584]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/584
[Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
[Intel XE#5882]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5882
[Intel XE#599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/599
[Intel XE#6078]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6078
[Intel XE#6196]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6196
[Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312
[Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321
[Intel XE#6376]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6376
[Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
[Intel XE#6507]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6507
[Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
[Intel XE#6540]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6540
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#6569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6569
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886
[Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
[Intel XE#701]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/701
[Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
[Intel XE#7084]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7084
[Intel XE#7173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7173
[Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
[Intel XE#7179]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7179
[Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
[Intel XE#7294]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7294
[Intel XE#7304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7304
[Intel XE#7322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7322
[Intel XE#7330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7330
[Intel XE#7342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7342
[Intel XE#7343]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7343
[Intel XE#7345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7345
[Intel XE#7349]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7349
[Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351
[Intel XE#7355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7355
[Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356
[Intel XE#7358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7358
[Intel XE#7359]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7359
[Intel XE#7366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7366
[Intel XE#7369]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7369
[Intel XE#7370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7370
[Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
[Intel XE#7374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7374
[Intel XE#7376]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7376
[Intel XE#7383]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7383
[Intel XE#7385]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7385
[Intel XE#7386]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7386
[Intel XE#7387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7387
[Intel XE#7389]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7389
[Intel XE#7397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7397
[Intel XE#7399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7399
[Intel XE#7408]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7408
[Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417
[Intel XE#7422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7422
[Intel XE#7447]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7447
[Intel XE#7449]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7449
[Intel XE#7471]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7471
[Intel XE#7482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7482
[Intel XE#7571]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7571
[Intel XE#7590]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7590
[Intel XE#7599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7599
[Intel XE#7642]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7642
[Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679
[Intel XE#7695]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7695
[Intel XE#7760]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7760
[Intel XE#7793]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7793
[Intel XE#7795]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7795
[Intel XE#7865]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7865
[Intel XE#7905]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7905
[Intel XE#7992]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7992
[Intel XE#8007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8007
[Intel XE#8150]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8150
[Intel XE#8265]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8265
[Intel XE#8303]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8303
[Intel XE#8339]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8339
[Intel XE#8355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8355
[Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
[Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364
[Intel XE#8365]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8365
[Intel XE#8369]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8369
[Intel XE#8370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8370
[Intel XE#8374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8374
[Intel XE#8378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8378
[Intel XE#8395]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8395
[Intel XE#8396]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8396
[Intel XE#8397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8397
[Intel XE#8399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8399
[Intel XE#8526]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8526
[Intel XE#8578]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8578
[Intel XE#8586]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8586
[Intel XE#8591]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8591
[Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
Build changes
-------------
* IGT: IGT_9020 -> IGT_9022
* Linux: xe-5467-2c64192f1ad194a53800f6dd8c779d5b4bbc1831 -> xe-pw-167217v3
IGT_9020: 9020
IGT_9022: 9022
xe-5467-2c64192f1ad194a53800f6dd8c779d5b4bbc1831: 2c64192f1ad194a53800f6dd8c779d5b4bbc1831
xe-pw-167217v3: 167217v3
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167217v3/index.html
[-- Attachment #2: Type: text/html, Size: 60635 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v3 5/7] drm/xe/mmio_gem: cache the dummy page per object
2026-07-23 16:18 ` [PATCH v3 5/7] drm/xe/mmio_gem: cache the dummy page per object Ilia Levi
@ 2026-07-28 16:33 ` Matthew Auld
0 siblings, 0 replies; 18+ messages in thread
From: Matthew Auld @ 2026-07-28 16:33 UTC (permalink / raw)
To: Ilia Levi, intel-xe
Cc: koby.elbaz, meny.yossefi, shuicheng.lin, thomas.hellstrom,
matthew.brost
On 23/07/2026 17:18, Ilia Levi wrote:
> Currently, when the fault handler provides a dummy page, it
> allocates a new one on every invocation and ties its lifetime to
> the drm_device via drmm_add_action_or_reset(). Concurrent faults
> after hot-unplug therefore accumulate pages that persist until
> device teardown.
>
> Cache a single dummy page in the xe_mmio_gem object and use dma_resv
> lock to protect its allocation. Free it with the object.
>
> v2: use dma_resv lock to protect the allocation (Matt Auld)
>
> Assisted-by: GitHub-Copilot:claude-opus-4.6
> Signed-off-by: Ilia Levi <ilia.levi@intel.com>
Do we anticipate this be a real issue in practice? I think normal BO
mmap path just allocates a new page without caching? Is that also a concern?
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
> ---
> drivers/gpu/drm/xe/xe_mmio_gem.c | 27 ++++++++++++++++-----------
> 1 file changed, 16 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_mmio_gem.c b/drivers/gpu/drm/xe/xe_mmio_gem.c
> index 2838fcb4ff9f..5bd2759fc876 100644
> --- a/drivers/gpu/drm/xe/xe_mmio_gem.c
> +++ b/drivers/gpu/drm/xe/xe_mmio_gem.c
> @@ -5,9 +5,9 @@
>
> #include "xe_mmio_gem.h"
>
> +#include <linux/dma-resv.h>
> #include <drm/drm_drv.h>
> #include <drm/drm_gem.h>
> -#include <drm/drm_managed.h>
>
> #include "xe_device_types.h"
>
> @@ -37,6 +37,7 @@ static vm_fault_t xe_mmio_gem_vm_fault(struct vm_fault *);
> struct xe_mmio_gem {
> struct drm_gem_object base;
> phys_addr_t phys_addr;
> + struct page *dummy_page; /* protected by the GEM's dma_resv */
> };
>
> static int xe_mmio_gem_vm_may_split(struct vm_area_struct *area, unsigned long addr)
> @@ -131,6 +132,8 @@ static void xe_mmio_gem_free(struct drm_gem_object *base)
> {
> struct xe_mmio_gem *obj = to_xe_mmio_gem(base);
>
> + if (obj->dummy_page)
> + __free_page(obj->dummy_page);
> drm_gem_object_release(base);
> kfree(obj);
> }
> @@ -169,27 +172,29 @@ static int xe_mmio_gem_mmap(struct drm_gem_object *base, struct vm_area_struct *
> return 0;
> }
>
> -static void xe_mmio_gem_release_dummy_page(struct drm_device *dev, void *res)
> +static int alloc_dummy_page_if_needed(struct drm_gem_object *base)
> {
> - __free_page((struct page *)res);
> + struct xe_mmio_gem *obj = to_xe_mmio_gem(base);
> +
> + dma_resv_lock(base->resv, NULL);
> + if (!obj->dummy_page)
> + obj->dummy_page = alloc_page(GFP_KERNEL | __GFP_ZERO);
> + dma_resv_unlock(base->resv);
> +
> + return obj->dummy_page ? 0 : -ENOMEM;
> }
>
> static vm_fault_t xe_mmio_gem_vm_fault_dummy_page(struct vm_fault *vmf)
> {
> struct vm_area_struct *vma = vmf->vma;
> struct drm_gem_object *base = vma->vm_private_data;
> - struct drm_device *dev = base->dev;
> - struct page *page;
> + struct xe_mmio_gem *obj = to_xe_mmio_gem(base);
> unsigned long pfn;
>
> - page = alloc_page(GFP_KERNEL | __GFP_ZERO);
> - if (!page)
> - return VM_FAULT_OOM;
> -
> - if (drmm_add_action_or_reset(dev, xe_mmio_gem_release_dummy_page, page))
> + if (alloc_dummy_page_if_needed(base))
> return VM_FAULT_OOM;
>
> - pfn = page_to_pfn(page);
> + pfn = page_to_pfn(obj->dummy_page);
>
> return vmf_insert_pfn_prot(vma, vmf->address, pfn,
> vm_get_page_prot(vma->vm_flags));
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v3 2/7] drm/xe/mmio_gem: use write-back mapping for dummy page
2026-07-24 9:49 ` Levi, Ilia
@ 2026-07-28 16:37 ` Matthew Auld
0 siblings, 0 replies; 18+ messages in thread
From: Matthew Auld @ 2026-07-28 16:37 UTC (permalink / raw)
To: Levi, Ilia, intel-xe
Cc: koby.elbaz, meny.yossefi, shuicheng.lin, thomas.hellstrom,
matthew.brost, Sashiko
On 24/07/2026 10:49, Levi, Ilia wrote:
>
> On 23-Jul-26 20:16, Matthew Auld wrote:
>> On 23/07/2026 17:18, Ilia Levi wrote:
>>> Currently vmf_insert_pfn() maps the dummy page as UC, inheriting the
>>> VMA's page protection which was set for the real MMIO region. This
>>> conflicts with the direct map's WB mapping of the same page, creating a
>>> cache type alias which is architecturally undefined on x86.
>>
>> Is this claim correct? AFAICT on x86 it pulls the caching type from the pfn, so if the page is allocated as WB, it should just use WB, no? I'm looking at pfnmap_setup_cachemode() on x86.
>>
>> Perhaps this is instead needed for non-x86?
>
> Right, or on x86 if PAT is disabled. Good catch!
With that perhaps tweaked to make it clearer,
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
>
>>
>>>
>>> Use vmf_insert_pfn_prot() with a WB pgprot instead. Also simplify to
>>> fault in the requested page instead of the whole VMA.
>>>
>>> Fixes: 1ffcf8b8ae8a ("drm/xe: Support for mmap-ing mmio regions")
>>> Reported-by: Sashiko <sashiko-bot@kernel.org>
>>> Closes: https://sashiko.dev/#/patchset/20260525125801.975038-6-ilia.levi%40intel.com
>>> Assisted-by: GitHub-Copilot:claude-opus-4.6
>>> Signed-off-by: Ilia Levi <ilia.levi@intel.com>
>>> ---
>>> drivers/gpu/drm/xe/xe_mmio_gem.c | 19 +++++--------------
>>> 1 file changed, 5 insertions(+), 14 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/xe/xe_mmio_gem.c b/drivers/gpu/drm/xe/xe_mmio_gem.c
>>> index f15a6a84af15..418a24bdfa4e 100644
>>> --- a/drivers/gpu/drm/xe/xe_mmio_gem.c
>>> +++ b/drivers/gpu/drm/xe/xe_mmio_gem.c
>>> @@ -172,14 +172,13 @@ static void xe_mmio_gem_release_dummy_page(struct drm_device *dev, void *res)
>>> __free_page((struct page *)res);
>>> }
>>> -static vm_fault_t xe_mmio_gem_vm_fault_dummy_page(struct vm_area_struct *vma)
>>> +static vm_fault_t xe_mmio_gem_vm_fault_dummy_page(struct vm_fault *vmf)
>>> {
>>> + struct vm_area_struct *vma = vmf->vma;
>>> struct drm_gem_object *base = vma->vm_private_data;
>>> struct drm_device *dev = base->dev;
>>> - vm_fault_t ret = VM_FAULT_NOPAGE;
>>> struct page *page;
>>> unsigned long pfn;
>>> - unsigned long i;
>>> page = alloc_page(GFP_KERNEL | __GFP_ZERO);
>>> if (!page)
>>> @@ -190,16 +189,8 @@ static vm_fault_t xe_mmio_gem_vm_fault_dummy_page(struct vm_area_struct *vma)
>>> pfn = page_to_pfn(page);
>>> - /* Map the entire VMA to the same dummy page */
>>> - for (i = 0; i < base->size; i += PAGE_SIZE) {
>>> - unsigned long addr = vma->vm_start + i;
>>> -
>>> - ret = vmf_insert_pfn(vma, addr, pfn);
>>> - if (ret & VM_FAULT_ERROR)
>>> - break;
>>> - }
>>> -
>>> - return ret;
>>> + return vmf_insert_pfn_prot(vma, vmf->address, pfn,
>>> + vm_get_page_prot(vma->vm_flags));
>>> }
>>> static vm_fault_t xe_mmio_gem_vm_fault(struct vm_fault *vmf)
>>> @@ -219,7 +210,7 @@ static vm_fault_t xe_mmio_gem_vm_fault(struct vm_fault *vmf)
>>> * It is assumed the userspace will receive the notification via some
>>> * other channel (e.g. drm uevent).
>>> */
>>> - return xe_mmio_gem_vm_fault_dummy_page(vma);
>>> + return xe_mmio_gem_vm_fault_dummy_page(vmf);
>>> }
>>> for (i = 0; i < base->size; i += PAGE_SIZE) {
>>
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2026-07-28 16:38 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-23 16:18 [PATCH v3 0/7] drm/xe/mmio_gem: fix fault handler and destroy path Ilia Levi
2026-07-23 16:18 ` [PATCH v3 1/7] drm/xe/mmio_gem: forbid VMA split Ilia Levi
2026-07-23 16:25 ` Matthew Auld
2026-07-23 16:18 ` [PATCH v3 2/7] drm/xe/mmio_gem: use write-back mapping for dummy page Ilia Levi
2026-07-23 17:16 ` Matthew Auld
2026-07-24 9:49 ` Levi, Ilia
2026-07-28 16:37 ` Matthew Auld
2026-07-23 16:18 ` [PATCH v3 3/7] drm/xe/mmio_gem: simplify fault handler loop Ilia Levi
2026-07-23 17:22 ` Matthew Auld
2026-07-23 16:18 ` [PATCH v3 4/7] drm/xe/mmio_gem: Revoke drm_vma_node on xe_mmio_gem destroy Ilia Levi
2026-07-23 16:18 ` [PATCH v3 5/7] drm/xe/mmio_gem: cache the dummy page per object Ilia Levi
2026-07-28 16:33 ` Matthew Auld
2026-07-23 16:18 ` [PATCH v3 6/7] drm/xe/mmio_gem: fix destroy flow Ilia Levi
2026-07-24 12:50 ` Matthew Auld
2026-07-23 16:18 ` [PATCH v3 7/7] drm/xe: convert PCI barrier mmap to use xe_mmio_gem Ilia Levi
2026-07-23 16:59 ` ✓ CI.KUnit: success for drm/xe/mmio_gem: fix fault handler and destroy path (rev3) Patchwork
2026-07-23 17:34 ` ✓ Xe.CI.BAT: " Patchwork
2026-07-24 17:14 ` ✓ Xe.CI.FULL: " Patchwork
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.