PCI/IOV: Fix SR-IOV locking races and AB-BA deadlocks
Subsystems (4)
v15 cover PCI/IOV: Fix SR-IOV locking races and AB-BA deadlocks
Hello Bjorn,
This is the continuation and combination of two patchsets from earlier
this year that try to fix races and various deadlocks involving the
global mutex pci_rescan_remove_owner:
https://lore.kernel.org/linux-pci/cover.1776839248.git.ionut.nechita%40windriver.com/ [v14]
https://lore.kernel.org/linux-pci/cover.1776868550.git.bblock%40linux.ibm.com/ [v4]
Since we couldn't make any progress since then I decided to rebase and combine them, hoping this would "revitalize" the topic.
v14 -> v15:
* Rebased the patchset on v7.3-rc4
* Patch 1/5: changed type of pci_rescan_remove_depth to size_t
* Patch 1/5: changed accesses of pci_rescan_remove_owner to use READ_ONCE() and/or WRITE_ONCE() since they might happen outside of the lock, and so might be subject to tearing or some such
* Patch 1/5: added comments clarifying that access to pci_rescan_remove_depth is always protected by pci_rescan_remove_lock
* Patch 1/5: since the only Reviewed-by was by myself on the last iteration I removed it
* Patch 5/5: fixed a bug with the use of scoped_guard() in switch statements -> break doesn't work as it seems it should, because scoped_guard() is implemented as for statement
* Patch 5/5: fixed a bug in recover_store() where it wouldn't reverse the call to sysfs_break_active_protection() in case of an early error-return
* Patch 5/5: since I had to make these bug-fixes I removed Niklas' Reviewed-by
Overview:
Patch 1/5: Fixes a regression introduced by
05703271c3cd ("PCI/IOV: Add PCI rescan-remove locking when enabling/disabling SR-IOV") that moves the locking of pci_rescan_remove_lock to a higher
level in the call-chain when enabling/disabling SR-IOV, but by
doing so removed it entirely from the driver's .remove() call-back call-chain.
To add the lock back into that call-chain and also prevent
resulting recursive deadlocks make the lock reentrant via the
existing functions pci_lock_rescan_remove()/pci_unlock_rescan_remove().
Patch 2/5: With the locking back in the .remove() call-back call-chain
it is now possible to trigger an AB-BA deadlock between device
driver unbinds and concurrent PCI device removes. Fix this by unbinding the device driver before starting PCI device
removal (and locking pci_rescan_remove_lock).
Patch 3/5: In order to use annotations like __must_hold() or assertions
like lockdep_assert_held() on pci_rescan_remove_lock in
code outside the PCI core (such as PCI architecture
implementations) move its declaration to the global linux/pci.h.
This doesn't increase the "surface" from where it is possible
to use the lock, since it is already possible today to grab
the lock from said code with the functions pci_lock_rescan_remove()/pci_unlock_rescan_remove().
Patch 4/5: Provide a lock guard for pci_rescan_remove_lock so it is
possible to be used in the linux/cleanup.h macros.
Patch 5/5: Fix several AB-BA deadlocks in the s390 PCI implementation
involving pci_rescan_remove_lock by moving the lock to
higher levels in the respective call-chains.
The race that is fixed in Patch 1/5 has been independently observed by multiple organizations:
* IBM (s390 platform-generated hot-unplug events racing with sriov_del_vfs during PF driver unload)
* NVIDIA (tested by Dragos Tatulea in earlier versions)
* Intel (xe driver hitting lockdep warnings and deadlocks when calling pci_disable_sriov from .remove)
* Wind River (original reporter and patch author)
We have been running this patch series for several months internally during our development on s390 since otherwise we would routinely "kill" our development machines due to deadlocks. I'm not aware of issues with it that were observed.
I've run a lot of tests with affected PCI adapters (some of which are specific to the IBM Z platform):
* enable/disable SR-IOV on the PF;
* run FLR reset on PF and VF;
* run Bus reset on PF and VF;
* run s390's recover SysFS attribute on PF and VF;
* remove/re-add PCI devices via the remove SysFS attribute;
* unbind/re-bind PCI devices to the vfio-pci device driver;
* disable/enable power with the hotplug SysFS attribute on PF and VF;
* run zpcictl with --reset/--reset-fw on PF and VF (s390);
* remove/re-add vfio modules with bound PCI devices;
* run Configure Off and Configure On on both the PF and VF from a Service Element (s390).
There is no more deadlocks and no other lockdep warnings I've witnessed.
History:
PCI/IOV: Fix SR-IOV locking races and AB-BA deadlock:
PCI: s390/pci: Fix deadlocks on s390 when releasing zPCI-bus or -device objects:
Benjamin Block (3):
PCI: Move declaration of pci_rescan_remove_lock into public pci.h
PCI: Provide lock guard for pci_rescan_remove_lock s390/pci: Fix circular/recursive deadlocks in PCI-bus and -device
release
Ionut Nechita (2):
PCI/IOV: Make pci_lock_rescan_remove() reentrant and protect
sriov_add_vfs/sriov_del_vfs
PCI: Fix AB-BA deadlock between device_lock and pci_rescan_remove_lock
in remove_store
arch/s390/pci/pci.c | 11 ++++++++--- arch/s390/pci/pci_bus.c | 15 ++++++++------- arch/s390/pci/pci_event.c | 28 ++++++++++++++++++---------- arch/s390/pci/pci_iov.c | 3 +-- arch/s390/pci/pci_sysfs.c | 25 ++++++++++++------------- drivers/pci/iov.c | 9 +++++---- drivers/pci/pci-sysfs.c | 30 +++++++++++++++++++++++++++++- drivers/pci/pci.h | 2 -- drivers/pci/probe.c | 28 ++++++++++++++++++++++++++-- include/linux/pci.h | 5 +++++ 10 files changed, 112 insertions(+), 44 deletions(-)
base-commit: 93f51579e7df248780214094418f205253383cc5
Signature · 1 line
2.55.0
PATCH v15 1/5 PCI/IOV: Make pci_lock_rescan_remove() reentrant and protect sriov_add_vfs/sriov_del_vfs
From: Ionut Nechita <[email protected]>
After reverting commit 05703271c3cd ("PCI/IOV: Add PCI rescan-remove locking when enabling/disabling SR-IOV") and moving the lock to sriov_numvfs_store(), the path through driver .remove() (e.g. rmmod, or manual unbind) that calls pci_disable_sriov() directly remains unprotected against concurrent hotplug events. This affects any SR-IOV capable driver that calls pci_disable_sriov() from its .remove() callback (i40e, ice, mlx5, bnxt, etc.).
On s390, platform-generated hot-unplug events for VFs can race with sriov_del_vfs() when a PF driver is being unloaded. The platform event handler takes pci_rescan_remove_lock, but sriov_del_vfs() does not, leading to double removal and list corruption.
We cannot use a plain mutex_lock() here because sriov_del_vfs() may also be called from paths that already hold pci_rescan_remove_lock (e.g. remove_store -> pci_stop_and_remove_bus_device_locked, or sriov_numvfs_store with the lock taken by the previous patch). Using mutex_lock() in those cases would deadlock.
Make pci_lock_rescan_remove() itself reentrant by tracking the current owner task and a recursion depth counter, as suggested by Lukas Wunner and Benjamin Block, since these recursive locking scenarios exist elsewhere in the PCI subsystem:
- If the lock is already held by the current task (owner == current):
increments the depth counter and returns without re-acquiring, avoiding deadlock.
- If the lock is held by another task: blocks until the lock is released, then records the owner and sets depth to 1.
- If the lock is not held: acquires the mutex normally.
pci_unlock_rescan_remove() decrements the depth counter and releases the mutex (clearing the owner) only when the depth reaches zero. A WARN_ON catches mismatched unlock calls from tasks that do not own the lock.
This avoids relying on mutex_get_owner(), which is not exported to modules and caused link failures for builds that inline this code outside of the core kernel image.
This approach keeps the API unchanged: callers simply pair lock/unlock calls without needing to track any return value or use separate reentrant variants.
Add pci_lock_rescan_remove()/pci_unlock_rescan_remove() calls to sriov_add_vfs() and sriov_del_vfs() to protect VF addition and removal against concurrent hotplug events.
Remove the rescan/remove locking from sriov_numvfs_store() that was introduced by commit a5338e365c45 ("PCI/IOV: Fix race between SR-IOV enable/disable and hotplug"), since the locking is now handled directly in sriov_add_vfs() and sriov_del_vfs() where it is actually needed, reducing the lock scope.
--- drivers/pci/iov.c | 9 +++++---- drivers/pci/probe.c | 27 +++++++++++++++++++++++++-- 2 files changed, 30 insertions(+), 6 deletions(-)
drivers/pci/iov.c +5 -4
@@ -495,9 +495,7 @@ static ssize_t sriov_numvfs_store(struct device *dev,if (num_vfs ==0 ) {/* disable VFs */ -pci_lock_rescan_remove (); ret = pdev->driver->sriov_configure (pdev,0 ); -pci_unlock_rescan_remove (); goto exit; }
@@ -509,9 +507,7 @@ static ssize_t sriov_numvfs_store(struct device *dev, goto exit; } -pci_lock_rescan_remove (); ret = pdev->driver->sriov_configure (pdev, num_vfs); -pci_unlock_rescan_remove ();if (ret <0 ) goto exit;
@@ -633,15 +629,18 @@ static int sriov_add_vfs(struct pci_dev *dev, u16 num_vfs)if (dev->no_vf_scan)return 0 ; +pci_lock_rescan_remove ();for (i =0 ; i < num_vfs; i++) { rc =pci_iov_add_virtfn (dev, i);if (rc) goto failed; } +pci_unlock_rescan_remove ();return 0 ; failed:while (i--)pci_iov_remove_virtfn (dev, i); +pci_unlock_rescan_remove ();return rc; }
@@ -766,8 +765,10 @@ static void sriov_del_vfs(struct pci_dev *dev)struct pci_sriov *iov = dev->sriov;int i; +pci_lock_rescan_remove ();for (i =0 ; i < iov->num_VFs; i++)pci_iov_remove_virtfn (dev, i); +pci_unlock_rescan_remove (); }static void sriov_disable (struct pci_dev *dev)
drivers/pci/probe.c +25 -2
@@ -3510,16 +3510,39 @@ EXPORT_SYMBOL_GPL(pci_rescan_bus);* routines should always be executed under this mutex. */ DEFINE_MUTEX (pci_rescan_remove_lock); +static const struct task_struct *pci_rescan_remove_owner; +static size_t pci_rescan_remove_depth;void pci_lock_rescan_remove (void ) { -mutex_lock (&pci_rescan_remove_lock); +if (READ_ONCE (pci_rescan_remove_owner) == current) { +/* +* read and modify while &pci_rescan_remove_lock is held by +* current thread +*/ + pci_rescan_remove_depth++; + }else { +mutex_lock (&pci_rescan_remove_lock); +WRITE_ONCE (pci_rescan_remove_owner, current); + pci_rescan_remove_depth =1 ; + } }EXPORT_SYMBOL_GPL (pci_lock_rescan_remove);void pci_unlock_rescan_remove (void ) { -mutex_unlock (&pci_rescan_remove_lock); +if (WARN_ON (READ_ONCE (pci_rescan_remove_owner) != current)) +return ; + +/* +* read and modify while &pci_rescan_remove_lock is held by current +* thread +*/ + pci_rescan_remove_depth--; +if (pci_rescan_remove_depth ==0 ) { +WRITE_ONCE (pci_rescan_remove_owner,NULL ); +mutex_unlock (&pci_rescan_remove_lock); + } }EXPORT_SYMBOL_GPL (pci_unlock_rescan_remove);
Signature · 1 line
2.55.0
[email protected]
AI reviewRe: [PATCH v15 1/5] PCI/IOV: Make pci_lock_rescan_remove() reentrant and protect sriov_add_vfs/sriov_del_vfs
Sashiko has reviewed this patch and found no issues. It looks great!
Quoted 15 lines
From: Ionut Nechita <[email protected]>
After reverting commit
05703271c3cd("PCI/IOV: Add PCI rescan-remove locking when enabling/disabling SR-IOV") and moving the lock tosriov_numvfs_store(), the path through driver .remove() (e.g. rmmod, or manual unbind) that callspci_disable_sriov()directly remains unprotected against concurrent hotplug events. This affects any SR-IOV capable driver that callspci_disable_sriov()from its .remove() callback (i40e, ice, mlx5, bnxt, etc.).On s390, platform-generated hot-unplug events for VFs can race with
sriov_del_vfs()when a PF driver is being unloaded. The platform event handler takespci_rescan_remove_lock, butsriov_del_vfs()does not, leading to double removal and list corruption.
Quoted 6 lines
[ ... ]Suggested-by Lukas Wunner <[email protected]>Suggested-by Benjamin Block <[email protected]>Signed-off-by Ionut Nechita <[email protected]>[[email protected]: rebase on v7.3, READ_/WRITE_ONCE changes, comments]Signed-off-by Benjamin Block <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great!
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1
PATCH v15 2/5 PCI: Fix AB-BA deadlock between device_lock and pci_rescan_remove_lock in remove_store
In reply to Benjamin BlockFrom: Ionut Nechita <[email protected]>
remove_store() calls pci_stop_and_remove_bus_device_locked() which takes pci_rescan_remove_lock first, then device_lock during driver release. Meanwhile, unbind_store() takes device_lock first (via device_driver_detach), and the driver's .remove() callback may call pci_disable_sriov() -> sriov_del_vfs() -> pci_lock_rescan_remove().
This creates an AB-BA deadlock:
CPU0 (remove_store) CPU1 (unbind_store)
-------------------- --------------------
pci_lock_rescan_remove()
device_lock()
driver .remove()
sriov_del_vfs()
pci_lock_rescan_remove() <-- WAITS
pci_stop_bus_device()
device_release_driver()
device_lock() <-- WAITS
Fix this by first marking the device as dead using kill_device() to prevent any new driver from binding, then calling device_release_driver() before pci_stop_and_remove_bus_device_locked().
Marking the device dead closes the race window between unbinding and removal where a new driver could theoretically bind: once the dead flag is set, the device core will refuse any new driver probe.
After device_release_driver() returns, the driver is already unbound, so the subsequent device_release_driver() call inside pci_stop_and_remove_bus_device_locked() becomes a no-op.
--- drivers/pci/pci-sysfs.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-)
drivers/pci/pci-sysfs.c +29 -1
@@ -520,8 +520,36 @@ static ssize_t remove_store(struct device *dev, struct device_attribute *attr,if (kstrtoul (buf,0 , &val) <0 )return -EINVAL ; -if (val &&device_remove_file_self (dev, attr)) +if (val &&device_remove_file_self (dev, attr)) { +/* +* Mark the device as dead so that no new driver can bind +* between the unbind and the removal below. Once the +* dead flag is set, the device core will refuse any new +* driver probe. +*/ +device_lock (dev); +kill_device (dev); +device_unlock (dev); + +/* +* Unbind the driver before removing the device to avoid +* an AB-BA deadlock between device_lock and +* pci_rescan_remove_lock. Without this, remove_store +* takes pci_rescan_remove_lock first (via +* pci_stop_and_remove_bus_device_locked) and then +* device_lock during driver release, while a concurrent +* unbind_store (or sriov_numvfs_store) takes device_lock +* first and then pci_rescan_remove_lock (via +* sriov_del_vfs), creating a circular dependency. +* +* By unbinding first, the driver's .remove() callback +* (including any SR-IOV VF cleanup) completes before +* pci_rescan_remove_lock is acquired, ensuring both +* paths take locks in the same order. +*/ +device_release_driver (dev);pci_stop_and_remove_bus_device_locked (to_pci_dev (dev)); + }return count; } static DEVICE_ATTR_IGNORE_LOCKDEP(remove, 0220, NULL,
Signature · 1 line
2.55.0
[email protected]
AI reviewRe: [PATCH v15 2/5] PCI: Fix AB-BA deadlock between device_lock and pci_rescan_remove_lock in remove_store
Sashiko has reviewed this patch and found no issues. It looks great!
Quoted 15 lines
From: Ionut Nechita <[email protected]>
remove_store()callspci_stop_and_remove_bus_device_locked()which takespci_rescan_remove_lockfirst, thendevice_lockduring driver release. Meanwhile,unbind_store()takesdevice_lockfirst (viadevice_driver_detach), and the driver's .remove() callback may callpci_disable_sriov()->sriov_del_vfs()->pci_lock_rescan_remove().This creates an AB-BA deadlock:
CPU0 (
remove_store) CPU1 (unbind_store)
-------------------- --------------------
pci_lock_rescan_remove()
device_lock()driver .remove()
Quoted 6 lines
[ ... ]Reviewed-by Niklas Schnelle <[email protected]>Reviewed-by Benjamin Block <[email protected]>Tested-by Benjamin Block <[email protected]>Signed-off-by Ionut Nechita <[email protected]>Signed-off-by Benjamin Block <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great!
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=2
PATCH v15 3/5 PCI: Move declaration of pci_rescan_remove_lock into public pci.h
In reply to Benjamin BlockSo far it is possible to use and call the functions pci_lock_rescan_remove() and pci_unlock_rescan_remove() from any PCI code, including modules and architecture code; but the lock variable pci_rescan_remove_lock itself is private to objects residing in drivers/pci/ via the header drivers/pci/pci.h.
This makes it possible to use the lock - lock it, unlock it - from anywhere, but it is not possible to use lockdep annotations such as lockdep_assert_held(), or sparse annotations such as __must_hold() in modules or architecture code for PCI to make the usage more safe.
Since it is useful for pci_rescan_remove_lock to have such annotations, move the variable declaration into include/linux/pci.h.
--- drivers/pci/pci.h | 2 -- drivers/pci/probe.c | 1 + include/linux/pci.h | 2 ++ 3 files changed, 3 insertions(+), 2 deletions(-)
drivers/pci/pci.h +0 -2
@@ -114,8 +114,6 @@ unsigned char pcie_get_link_speed(unsigned int speed);extern bool pci_early_dump; -extern struct mutex pci_rescan_remove_lock; -bool pcie_cap_has_lnkctl (const struct pci_dev *dev);bool pcie_cap_has_lnkctl2 (const struct pci_dev *dev);bool pcie_cap_has_rtctl (const struct pci_dev *dev);
drivers/pci/probe.c +1 -0
@@ -3510,6 +3510,7 @@ EXPORT_SYMBOL_GPL(pci_rescan_bus);* routines should always be executed under this mutex. */ DEFINE_MUTEX (pci_rescan_remove_lock); +EXPORT_SYMBOL_GPL (pci_rescan_remove_lock);static const struct task_struct *pci_rescan_remove_owner;static size_t pci_rescan_remove_depth;
include/linux/pci.h +2 -0
@@ -40,6 +40,7 @@#include <linux/io.h> #include <linux/resource_ext.h> #include <linux/msi_api.h> +#include <linux/mutex.h> #include <uapi/linux/pci.h> #include <linux/pci_ids.h>
@@ -1551,6 +1552,7 @@ void set_pcie_hotplug_bridge(struct pci_dev *pdev);/* Functions for PCI Hotplug drivers to use */ unsigned int pci_rescan_bus (struct pci_bus *bus); +extern struct mutex pci_rescan_remove_lock;void pci_lock_rescan_remove (void );void pci_unlock_rescan_remove (void );
Signature · 1 line
2.55.0
[email protected]
AI reviewRe: [PATCH v15 3/5] PCI: Move declaration of pci_rescan_remove_lock into public pci.h
Sashiko has reviewed this patch and found no issues. It looks great!
Quoted 11 lines
So far it is possible to use and call the functions
pci_lock_rescan_remove()andpci_unlock_rescan_remove()from any PCI code, including modules and architecture code; but the lock variablepci_rescan_remove_lockitself is private to objects residing indrivers/pci/via the headerdrivers/pci/pci.h.This makes it possible to use the lock - lock it, unlock it - from anywhere, but it is not possible to use lockdep annotations such as
lockdep_assert_held(), or sparse annotations such as__must_hold()in modules or architecture code for PCI to make the usage more safe.
Quoted 5 lines
Since it is useful for
pci_rescan_remove_lockto have such annotations, move the variable declaration intoinclude/linux/pci.h.Reviewed-by Niklas Schnelle <[email protected]>Signed-off-by Benjamin Block <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great!
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=3
PATCH v15 4/5 PCI: Provide lock guard for pci_rescan_remove_lock
In reply to Benjamin BlockMake it possible to use guard() or scoped_guard() to lock, and automatically unlock pci_rescan_remove_lock.
Since the actual mutex pci_rescan_remove_lock is always supposed to be taken and released using the functions pci_lock_rescan_remove() and pci_unlock_rescan_remove() it is not possible to simply use the already existing guards for struct mutex. Instead define a new guard pci_rescan_remove that will also call the functions in question, but is usable via guard() or scoped_guard().
--- include/linux/pci.h | 3 +++ 1 file changed, 3 insertions(+)
include/linux/pci.h +3 -0
@@ -42,6 +42,7 @@#include <linux/msi_api.h> #include <linux/mutex.h> #include <uapi/linux/pci.h> +#include <linux/cleanup.h> #include <linux/pci_ids.h>
@@ -1555,6 +1556,8 @@ unsigned int pci_rescan_bus(struct pci_bus *bus);extern struct mutex pci_rescan_remove_lock;void pci_lock_rescan_remove (void );void pci_unlock_rescan_remove (void ); +DEFINE_LOCK_GUARD_0 (pci_rescan_remove,pci_lock_rescan_remove (), +pci_unlock_rescan_remove ());/* Vital Product Data routines */ ssize_t pci_read_vpd (struct pci_dev *dev,loff_t pos,size_t count,void *buf);
Signature · 1 line
2.55.0
[email protected]
AI reviewRe: [PATCH v15 4/5] PCI: Provide lock guard for pci_rescan_remove_lock
Sashiko has reviewed this patch and found no issues. It looks great!
Quoted 10 lines
Make it possible to use
guard()orscoped_guard()to lock, and automatically unlockpci_rescan_remove_lock.Since the actual mutex
pci_rescan_remove_lockis always supposed to be taken and released using the functionspci_lock_rescan_remove()andpci_unlock_rescan_remove()it is not possible to simply use the already existing guards forstruct mutex. Instead define a new guardpci_rescan_removethat will also call the functions in question, but is usable viaguard()orscoped_guard().
Quoted 2 lines
Reviewed-by Niklas Schnelle <[email protected]>Signed-off-by Benjamin Block <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great!
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=4
PATCH v15 5/5 s390/pci: Fix circular/recursive deadlocks in PCI-bus and -device release
In reply to Benjamin BlockWhen removing PCI device or PCI bus objects there are a couple of call-chains where it is possible that the kernel runs into a circular deadlock involving the central pci_rescan_remove_lock.
Two examples:
(A) Thread α receives a PCI event notifying the kernel that a PCI virtual function has been moved into Reserved state, and so the PCI subsystem will try to remove that PCI function. The call-chain for that looks like this:
__zpci_event_availability()
-> zpci_zdev_put() # will lock(zpci_add_remove_lock),
# and lock(zpci_list_lock)
-> zpci_release_device() # will unlock(zpci_list_lock)
-> zpci_cleanup_bus_resources() # will lock(pci_rescan_remove_lock)Thread β is triggered by userspace writing 0 into the SysFS attribute sriov_numvfs of the parent PCI physical function of the same function we just try to remove. This will also try to release the PCI virtual function; but this time the call-chain looks like this:
sriov_numvfs_store()
-> ... (device driver dependent)
-> sriov_disable()
-> sriov_del_vfs() # will lock(pci_rescan_remove_lock)
-> ... (deep chain)
-> pci_release_dev()
-> pcibios_release_device()
-> zpci_zdev_put() # will lock(zpci_add_remove_lock)If thread α and β coincide, this will result in a cyclic deadlock.
(B) Thread γ receives a PCI event notifying the kernel that one or more PCI functions got hot plugged, and need to be configured. A possible call-chain that might happen while the PCI subsystem is trying to add those new function looks like this:
__zpci_event_availability()
-> ... (multiple ways in which a device gets added)
-> zpci_add_device() # will lock(zpci_add_remove_lock)
-> zpci_bus_device_register()
-> zpci_bus_put() # will lock(zbus_list_lock)
-> zpci_bus_release() # will unlock(zbus_list_lock)
# will lock(pci_rescan_remove_lock)Now the same thread β as above in (A) might coincide, and again could result in a cyclic deadlock.
pci_rescan_remove_lock has to be and is taken at a "high level" in most call-chains since it is intended to protect/mutual exclude all rescan and/or removal actions taken in the PCI subsystem. So to prevent the outlined deadlock scenarios above remove it instead from the "low level" release functions for both the PCI device and PCI bus objects.
Instead, lock pci_rescan_remove_lock in all call-chains leading to those release functions:
* initialization of the PCI subsystem;
* processing of availability events (CRWs) for PCI functions;
* processing of error events (CRWs) for PCI functions;
* architecture specific release PCI device implementation.
Additionally, remove pci_rescan_remove_lock from zpci_bus_scan_bus() since its only caller zpci_scan_devices() is now always called with pci_rescan_remove_lock already held.
Lastly, document the new locking expectations after these changes. Add sparse and lockdep annotations to functions that previously locked pci_rescan_remove_lock explicitly, making sure the lock is now already held when called. Additionally also add the annotations to zpci_zdev_put() and zpci_bus_put() to make sure that every function that potentially drops the last reference already holds the lock to prevent surprises.
--- arch/s390/pci/pci.c | 11 ++++++++--- arch/s390/pci/pci_bus.c | 15 ++++++++------- arch/s390/pci/pci_event.c | 28 ++++++++++++++++++---------- arch/s390/pci/pci_iov.c | 3 +-- arch/s390/pci/pci_sysfs.c | 25 ++++++++++++------------- 5 files changed, 47 insertions(+), 35 deletions(-)
arch/s390/pci/pci.c +8 -3
@@ -71,9 +71,11 @@ struct airq_iv *zpci_aif_sbv;EXPORT_SYMBOL_GPL (zpci_aif_sbv);void zpci_zdev_put (struct zpci_dev *zdev) + __must_hold(&pci_rescan_remove_lock) {if (!zdev)return ; +lockdep_assert_held (&pci_rescan_remove_lock);mutex_lock (&zpci_add_remove_lock);kref_put_lock (&zdev->kref, zpci_release_device, &zpci_list_lock);mutex_unlock (&zpci_add_remove_lock);
@@ -583,11 +585,13 @@ int zpci_setup_bus_resources(struct zpci_dev *zdev) }static void zpci_cleanup_bus_resources (struct zpci_dev *zdev) + __must_hold(&pci_rescan_remove_lock) {struct resource *res;int i; -pci_lock_rescan_remove (); +lockdep_assert_held (&pci_rescan_remove_lock); +for (i =0 ; i <PCI_STD_NUM_BARS ; i++) { res = zdev->bars[i].res;if (!res)
@@ -600,7 +604,6 @@ static void zpci_cleanup_bus_resources(struct zpci_dev *zdev)kfree (res); } zdev->has_resources =0 ; -pci_unlock_rescan_remove (); }int pcibios_device_add (struct pci_dev *pdev)
@@ -630,6 +633,7 @@ void pcibios_release_device(struct pci_dev *pdev) {struct zpci_dev *zdev =to_zpci (pdev); +guard (pci_rescan_remove)();zpci_unmap_resources (pdev);zpci_zdev_put (zdev); }
@@ -1208,7 +1212,8 @@ static int __init pci_base_init(void)if (rc) goto out_irq; - rc =zpci_scan_devices (); +scoped_guard (pci_rescan_remove) + rc =zpci_scan_devices ();if (rc) goto out_find;
arch/s390/pci/pci_bus.c +8 -7
@@ -82,9 +82,8 @@ int zpci_bus_scan_device(struct zpci_dev *zdev)if (!pdev)return -ENODEV ; -pci_lock_rescan_remove (); +guard (pci_rescan_remove)();pci_bus_add_device (pdev); -pci_unlock_rescan_remove ();return 0 ; }
@@ -132,10 +131,13 @@ void zpci_bus_remove_device(struct zpci_dev *zdev, bool set_error)* Return: 0 on success, an error value otherwise */ int zpci_bus_scan_bus (struct zpci_bus *zbus) + __must_hold(&pci_rescan_remove_lock) {struct zpci_dev *zdev;int devfn, rc, ret =0 ; +lockdep_assert_held (&pci_rescan_remove_lock); +for (devfn =0 ; devfn <ZPCI_FUNCTIONS_PER_BUS ; devfn++) { zdev = zbus->function[devfn];if (zdev && zdev->state ==ZPCI_FN_STATE_CONFIGURED ) {
@@ -145,10 +147,8 @@ int zpci_bus_scan_bus(struct zpci_bus *zbus) } } -pci_lock_rescan_remove ();pci_scan_child_bus (zbus->bus);pci_bus_add_devices (zbus->bus); -pci_unlock_rescan_remove ();return ret; }
@@ -214,11 +214,12 @@ static int zpci_bus_create_pci_bus(struct zpci_bus *zbus, struct zpci_dev *fr, s* run of the function. */ static inline void zpci_bus_release (struct kref *kref) - __releases(&zbus_list_lock) + __releases(&zbus_list_lock) __must_hold(&pci_rescan_remove_lock) { struct zpci_bus *zbus = container_of(kref, struct zpci_bus, kref);lockdep_assert_held (&zbus_list_lock); +lockdep_assert_held (&pci_rescan_remove_lock);list_del (&zbus->bus_next);mutex_unlock (&zbus_list_lock);
@@ -229,14 +230,12 @@ static inline void zpci_bus_release(struct kref *kref)*/ if (zbus->bus) { -pci_lock_rescan_remove ();pci_stop_root_bus (zbus->bus);zpci_free_domain (zbus->domain_nr);pci_free_resource_list (&zbus->resources);pci_remove_root_bus (zbus->bus); -pci_unlock_rescan_remove (); }zpci_remove_parent_msi_domain (zbus);
@@ -250,7 +249,9 @@ static inline void __zpci_bus_get(struct zpci_bus *zbus) }static inline void zpci_bus_put (struct zpci_bus *zbus) + __must_hold(&pci_rescan_remove_lock) { +lockdep_assert_held (&pci_rescan_remove_lock);kref_put_mutex (&zbus->kref, zpci_bus_release, &zbus_list_lock); }
arch/s390/pci/pci_event.c +18 -10
@@ -382,6 +382,7 @@ static void __zpci_event_error(struct zpci_ccdf_err *ccdf)pci_dev_put (pdev); no_pdev:mutex_unlock (&zdev->state_lock); +guard (pci_rescan_remove)();zpci_zdev_put (zdev); }
@@ -428,6 +429,7 @@ static bool zpci_event_avail_any_device(struct zpci_ccdf_avail *ccdf)if (ccdf->pec !=0x0306 )return false;/* 0x308 or 0x302 for multiple devices */ +guard (pci_rescan_remove)();zpci_remove_reserved_devices ();zpci_scan_devices ();return true;
@@ -436,26 +438,29 @@ static bool zpci_event_avail_any_device(struct zpci_ccdf_avail *ccdf)static void zpci_event_avail_new_device (struct zpci_ccdf_avail *ccdf) {struct zpci_dev *zdev; +bool freed = false;switch (ccdf->pec) {case 0x0301 :/* Reserved|Standby -> Configured */ zdev =zpci_create_device (ccdf->fid, ccdf->fh,ZPCI_FN_STATE_CONFIGURED );if (IS_ERR (zdev))break ; -if (zpci_add_device (zdev)) { -kfree (zdev); -break ; - } -zpci_scan_configured_device (zdev, ccdf->fh); +scoped_guard (pci_rescan_remove) + if (zpci_add_device(zdev)) { +kfree (zdev); +/* break; is incompatible w/ scoped_guard() */ + freed = true; + } +if (!freed) +zpci_scan_configured_device (zdev, ccdf->fh);break ;case 0x0302 :/* Reserved -> Standby */ zdev =zpci_create_device (ccdf->fid, ccdf->fh,ZPCI_FN_STATE_STANDBY );if (IS_ERR (zdev))break ; -if (zpci_add_device (zdev)) { -kfree (zdev); -break ; - } + scoped_guard(pci_rescan_remove) + if (zpci_add_device(zdev)) + kfree(zdev);break ; } }
@@ -497,11 +502,13 @@ static void zpci_event_avail_existing_device(struct zpci_dev *zdev, struct zpci_/* The 0x0304 event may immediately reserve the device */ if (!clp_get_state (zdev->fid, &state) && state ==ZPCI_FN_STATE_RESERVED ) { +guard (pci_rescan_remove)();zpci_device_reserved (zdev); }break ;case 0x0308 :/* Standby -> Reserved */ -zpci_device_reserved (zdev); +scoped_guard (pci_rescan_remove) +zpci_device_reserved (zdev);break ; } }
@@ -523,5 +530,6 @@ void zpci_event_availability(void *data)mutex_lock (&zdev->state_lock);zpci_event_avail_existing_device (zdev, ccdf);mutex_unlock (&zdev->state_lock); +guard (pci_rescan_remove)();zpci_zdev_put (zdev); }
arch/s390/pci/pci_iov.c +1 -2
@@ -38,10 +38,9 @@ void zpci_iov_map_resources(struct pci_dev *pdev)void zpci_iov_remove_virtfn (struct pci_dev *pdev,int vfn) { -pci_lock_rescan_remove (); +guard (pci_rescan_remove)();/* Linux' vfid's start at 0 vfn at 1 */ pci_iov_remove_virtfn (pdev->physfn, vfn -1 ); -pci_unlock_rescan_remove (); }static int zpci_iov_link_virtfn (struct pci_dev *pdev,struct pci_dev *virtfn,int vfid)
arch/s390/pci/pci_sysfs.c +12 -13
@@ -76,10 +76,15 @@ static int _do_recover(struct pci_dev *pdev, struct zpci_dev *zdev)return ret; } +/* So we don't have to mix cleanup.h helpers and gotos in recover_store() */ +DEFINE_CLASS(sysfs_break_active_protection, struct kernfs_node *, + if (_T) sysfs_unbreak_active_protection(_T), +sysfs_break_active_protection (kobj, attr), + struct kobject *kobj, const struct attribute *attr); +static ssize_t recover_store (struct device *dev,struct device_attribute *attr,const char *buf,size_t count) { -struct kernfs_node *kn;struct pci_dev *pdev =to_pci_dev (dev);struct zpci_dev *zdev =to_zpci (pdev);int ret =0 ;
@@ -94,13 +99,13 @@ static ssize_t recover_store(struct device *dev, struct device_attribute *attr,* This is analogous to sdev_store_delete() in * drivers/scsi/scsi_sysfs.c */ - kn =sysfs_break_active_protection (&dev->kobj, &attr->attr); +CLASS (sysfs_break_active_protection, kn)(&dev->kobj, &attr->attr);WARN_ON_ONCE (!kn);/* Device needs to be configured and state must not change */ -mutex_lock (&zdev->state_lock); +guard (mutex)(&zdev->state_lock);if (zdev->state !=ZPCI_FN_STATE_CONFIGURED ) - goto out; +return count;/* device_remove_file() serializes concurrent calls ignoring all but * the first
@@ -109,20 +114,14 @@ static ssize_t recover_store(struct device *dev, struct device_attribute *attr,/* A concurrent call to recover_store() may slip between * sysfs_break_active_protection() and the sysfs file removal. -* Once it unblocks from pci_lock_rescan_remove() the original pdev +* Once it unblocks from guard(pci_rescan_remove)() the original pdev * will already be removed. */ -pci_lock_rescan_remove (); -if (pci_dev_is_added (pdev)) { +guard (pci_rescan_remove)(); +if (pci_dev_is_added (pdev)) ret =_do_recover (pdev, zdev); - }pci_rescan_bus (zdev->zbus->bus); -pci_unlock_rescan_remove (); -out: -mutex_unlock (&zdev->state_lock); -if (kn) -sysfs_unbreak_active_protection (kn);return ret ? ret : count; }static DEVICE_ATTR_WO (recover);
Signature · 1 line
2.55.0
[email protected]
AI reviewRe: [PATCH v15 5/5] s390/pci: Fix circular/recursive deadlocks in PCI-bus and -device release
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Medium] pci: mixing goto and cleanup helpers in __zpci_event_error and pci_base_init --
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] pci: mixing goto and cleanup helpers in __zpci_event_error and pci_base_init --
commit 703530c4b98b53581e1625ffc110fa9701e163ee
Author: Benjamin Block <[email protected]>
s390/pci: Fix circular/recursive deadlocks in PCI-bus and -device release
When removing PCI device or PCI bus objects there are a couple of call-chains where it is possible that the kernel runs into a circular deadlock involving the central pci_rescan_remove_lock.
Quoted 4 lines
arch/s390/pci/pci.c +0
-0
[ ... ]
arch/s390/pci/pci.c static int __init pci_base_init(void) · line 1219
Quoted 10 lines
arch/s390/pci/pci.c +2
-1@@ -1208,7 +1212,8 @@ static int __init pci_base_init(void)if (rc) goto out_irq; - rc =zpci_scan_devices (); +scoped_guard (pci_rescan_remove) + rc =zpci_scan_devices ();if (rc) goto out_find;
[Severity: Medium]
Is it intentional to mix goto-based error handling with scope-based cleanup helpers here?
The pci_base_init() function contains multiple goto statements for error handling, and this patch introduces a scoped_guard() into the same routine. The cleanup.h guidelines state that usage of goto and cleanup helpers should never be mixed in the same function.
[ ... ]
Quoted 4 lines
arch/s390/pci/pci_event.c +0
-0
[ ... ]
arch/s390/pci/pci_event.c static void __zpci_event_error(struct zpci_ccdf_err *ccdf) · line 388
Quoted 8 lines
arch/s390/pci/pci_event.c +1
-0@@ -382,6 +382,7 @@ static void __zpci_event_error(struct zpci_ccdf_err *ccdf)pci_dev_put (pdev); no_pdev:mutex_unlock (&zdev->state_lock); +guard (pci_rescan_remove)();zpci_zdev_put (zdev); }
[Severity: Medium]
Can this introduction of guard() into __zpci_event_error() also cause issues with mixed cleanup paradigms?
In __zpci_event_error(), there are goto statements used for error handling, and this patch introduces a guard() right at the cleanup label. Mixing goto with cleanup.h helpers in the same function goes against the subsystem guidelines.
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=5
Re: [PATCH v15 5/5] s390/pci: Fix circular/recursive deadlocks in PCI-bus and -device release
Quoted 8 lines · On Thu, Sep 24, 2026 at 04:44:06PM +0000, [email protected] wrote:
Quoted 8 lines
arch/s390/pci/pci.c +0
-0@@ -1208,7 +1212,8 @@ static int __init pci_base_init(void)if (rc) goto out_irq;
Quoted 10 lines
arch/s390/pci/pci.c static int __init pci_base_init(void) · line 1218
Quoted 5 lines
arch/s390/pci/pci.c +2
-1- rc =zpci_scan_devices (); +scoped_guard (pci_rescan_remove) + rc =zpci_scan_devices ();if (rc) goto out_find;The
pci_base_init()function contains multiple goto statements for error handling, and this patch introduces ascoped_guard()into the same routine. Thecleanup.hguidelines state that usage of goto and cleanup helpers should never be mixed in the same function.
--8<--
Quoted 8 lines
Quoted 8 lines
arch/s390/pci/pci_event.c +0
-0@@ -382,6 +382,7 @@ static void __zpci_event_error(struct zpci_ccdf_err *ccdf)pci_dev_put (pdev); no_pdev:mutex_unlock (&zdev->state_lock);
Quoted 8 lines
arch/s390/pci/pci_event.c static void __zpci_event_error(struct zpci_ccdf_err *ccdf) · line 387
Quoted 3 lines
arch/s390/pci/pci_event.c +1
-0+guard (pci_rescan_remove)();zpci_zdev_put (zdev); }In
__zpci_event_error(), there are goto statements used for error handling, and this patch introduces aguard()right at the cleanup label. Mixing goto withcleanup.hhelpers in the same function goes against the subsystem guidelines.
So as far as I know this rule from cleanup.h is motivated by cases where someone jumps *into* a cleanup-scope and thus skips the initialization, but executes the cleanup, which then breaks.
This shouldn't be a problem here, but if our s390 maintainers think this should be changed regardless, I can use ordinary calls in those two cases, since it's probably not worth converting the whole functions here.
Signature · 4 lines
Best Regards, Benjamin Block / Linux on IBM Z Kernel Development IBM Deutschland Research & Development GmbH / https://www.ibm.com/privacy Vors. Aufs.-R.: Wolfgang Wendt / Geschäftsführung: David Faller Sitz der Ges.: Ehningen / Registergericht: AmtsG Stuttgart, HRB 243294
PATCH v16 5/5 s390/pci: Fix circular/recursive deadlocks in PCI-bus and -device release
In reply to Benjamin BlockWhen removing PCI device or PCI bus objects there are a couple of call-chains where it is possible that the kernel runs into a circular deadlock involving the central pci_rescan_remove_lock.
Two examples:
(A) Thread α receives a PCI event notifying the kernel that a PCI virtual function has been moved into Reserved state, and so the PCI subsystem will try to remove that PCI function. The call-chain for that looks like this:
__zpci_event_availability()
-> zpci_zdev_put() # will lock(zpci_add_remove_lock),
# and lock(zpci_list_lock)
-> zpci_release_device() # will unlock(zpci_list_lock)
-> zpci_cleanup_bus_resources() # will lock(pci_rescan_remove_lock)Thread β is triggered by userspace writing 0 into the SysFS attribute sriov_numvfs of the parent PCI physical function of the same function we just try to remove. This will also try to release the PCI virtual function; but this time the call-chain looks like this:
sriov_numvfs_store()
-> ... (device driver dependent)
-> sriov_disable()
-> sriov_del_vfs() # will lock(pci_rescan_remove_lock)
-> ... (deep chain)
-> pci_release_dev()
-> pcibios_release_device()
-> zpci_zdev_put() # will lock(zpci_add_remove_lock)If thread α and β coincide, this will result in a cyclic deadlock.
(B) Thread γ receives a PCI event notifying the kernel that one or more PCI functions got hot plugged, and need to be configured. A possible call-chain that might happen while the PCI subsystem is trying to add those new function looks like this:
__zpci_event_availability()
-> ... (multiple ways in which a device gets added)
-> zpci_add_device() # will lock(zpci_add_remove_lock)
-> zpci_bus_device_register()
-> zpci_bus_put() # will lock(zbus_list_lock)
-> zpci_bus_release() # will unlock(zbus_list_lock)
# will lock(pci_rescan_remove_lock)Now the same thread β as above in (A) might coincide, and again could result in a cyclic deadlock.
pci_rescan_remove_lock has to be and is taken at a "high level" in most call-chains since it is intended to protect/mutual exclude all rescan and/or removal actions taken in the PCI subsystem. So to prevent the outlined deadlock scenarios above remove it instead from the "low level" release functions for both the PCI device and PCI bus objects.
Instead, lock pci_rescan_remove_lock in all call-chains leading to those release functions:
* initialization of the PCI subsystem;
* processing of availability events (CRWs) for PCI functions;
* processing of error events (CRWs) for PCI functions;
* architecture specific release PCI device implementation.
Additionally, remove pci_rescan_remove_lock from zpci_bus_scan_bus() since its only caller zpci_scan_devices() is now always called with pci_rescan_remove_lock already held.
Lastly, document the new locking expectations after these changes. Add sparse and lockdep annotations to functions that previously locked pci_rescan_remove_lock explicitly, making sure the lock is now already held when called. Additionally also add the annotations to zpci_zdev_put() and zpci_bus_put() to make sure that every function that potentially drops the last reference already holds the lock to prevent surprises.
--- arch/s390/pci/pci.c | 10 ++++++++-- arch/s390/pci/pci_bus.c | 15 ++++++++------- arch/s390/pci/pci_event.c | 29 +++++++++++++++++++---------- arch/s390/pci/pci_iov.c | 3 +-- arch/s390/pci/pci_sysfs.c | 25 ++++++++++++------------- 5 files changed, 48 insertions(+), 34 deletions(-)
Hello all,
Since I didn't get any response so far I just rerolled the last patch that had the medium complaints by Sashiko. Everything else is unchanged.
Change v15 -> v16:
* Patch 5/5: changed two findigs by Sashiko were cleanup helpers were mixed with gotos in the same function against recommendations
This is no functional change, "just" syntax.
arch/s390/pci/pci.c +8 -2
@@ -71,9 +71,11 @@ struct airq_iv *zpci_aif_sbv;EXPORT_SYMBOL_GPL (zpci_aif_sbv);void zpci_zdev_put (struct zpci_dev *zdev) + __must_hold(&pci_rescan_remove_lock) {if (!zdev)return ; +lockdep_assert_held (&pci_rescan_remove_lock);mutex_lock (&zpci_add_remove_lock);kref_put_lock (&zdev->kref, zpci_release_device, &zpci_list_lock);mutex_unlock (&zpci_add_remove_lock);
@@ -583,11 +585,13 @@ int zpci_setup_bus_resources(struct zpci_dev *zdev) }static void zpci_cleanup_bus_resources (struct zpci_dev *zdev) + __must_hold(&pci_rescan_remove_lock) {struct resource *res;int i; -pci_lock_rescan_remove (); +lockdep_assert_held (&pci_rescan_remove_lock); +for (i =0 ; i <PCI_STD_NUM_BARS ; i++) { res = zdev->bars[i].res;if (!res)
@@ -600,7 +604,6 @@ static void zpci_cleanup_bus_resources(struct zpci_dev *zdev)kfree (res); } zdev->has_resources =0 ; -pci_unlock_rescan_remove (); }int pcibios_device_add (struct pci_dev *pdev)
@@ -630,6 +633,7 @@ void pcibios_release_device(struct pci_dev *pdev) {struct zpci_dev *zdev =to_zpci (pdev); +guard (pci_rescan_remove)();zpci_unmap_resources (pdev);zpci_zdev_put (zdev); }
@@ -1208,7 +1212,9 @@ static int __init pci_base_init(void)if (rc) goto out_irq; +pci_lock_rescan_remove (); rc =zpci_scan_devices (); +pci_unlock_rescan_remove ();if (rc) goto out_find;
arch/s390/pci/pci_bus.c +8 -7
@@ -82,9 +82,8 @@ int zpci_bus_scan_device(struct zpci_dev *zdev)if (!pdev)return -ENODEV ; -pci_lock_rescan_remove (); +guard (pci_rescan_remove)();pci_bus_add_device (pdev); -pci_unlock_rescan_remove ();return 0 ; }
@@ -132,10 +131,13 @@ void zpci_bus_remove_device(struct zpci_dev *zdev, bool set_error)* Return: 0 on success, an error value otherwise */ int zpci_bus_scan_bus (struct zpci_bus *zbus) + __must_hold(&pci_rescan_remove_lock) {struct zpci_dev *zdev;int devfn, rc, ret =0 ; +lockdep_assert_held (&pci_rescan_remove_lock); +for (devfn =0 ; devfn <ZPCI_FUNCTIONS_PER_BUS ; devfn++) { zdev = zbus->function[devfn];if (zdev && zdev->state ==ZPCI_FN_STATE_CONFIGURED ) {
@@ -145,10 +147,8 @@ int zpci_bus_scan_bus(struct zpci_bus *zbus) } } -pci_lock_rescan_remove ();pci_scan_child_bus (zbus->bus);pci_bus_add_devices (zbus->bus); -pci_unlock_rescan_remove ();return ret; }
@@ -214,11 +214,12 @@ static int zpci_bus_create_pci_bus(struct zpci_bus *zbus, struct zpci_dev *fr, s* run of the function. */ static inline void zpci_bus_release (struct kref *kref) - __releases(&zbus_list_lock) + __releases(&zbus_list_lock) __must_hold(&pci_rescan_remove_lock) { struct zpci_bus *zbus = container_of(kref, struct zpci_bus, kref);lockdep_assert_held (&zbus_list_lock); +lockdep_assert_held (&pci_rescan_remove_lock);list_del (&zbus->bus_next);mutex_unlock (&zbus_list_lock);
@@ -229,14 +230,12 @@ static inline void zpci_bus_release(struct kref *kref)*/ if (zbus->bus) { -pci_lock_rescan_remove ();pci_stop_root_bus (zbus->bus);zpci_free_domain (zbus->domain_nr);pci_free_resource_list (&zbus->resources);pci_remove_root_bus (zbus->bus); -pci_unlock_rescan_remove (); }zpci_remove_parent_msi_domain (zbus);
@@ -250,7 +249,9 @@ static inline void __zpci_bus_get(struct zpci_bus *zbus) }static inline void zpci_bus_put (struct zpci_bus *zbus) + __must_hold(&pci_rescan_remove_lock) { +lockdep_assert_held (&pci_rescan_remove_lock);kref_put_mutex (&zbus->kref, zpci_bus_release, &zbus_list_lock); }
arch/s390/pci/pci_event.c +19 -10
@@ -385,7 +385,9 @@ static void __zpci_event_error(struct zpci_ccdf_err *ccdf)pci_dev_put (pdev); no_pdev:mutex_unlock (&zdev->state_lock); +pci_lock_rescan_remove ();zpci_zdev_put (zdev); +pci_unlock_rescan_remove (); }void zpci_event_error (void *data)
@@ -431,6 +433,7 @@ static bool zpci_event_avail_any_device(struct zpci_ccdf_avail *ccdf)if (ccdf->pec !=0x0306 )return false;/* 0x308 or 0x302 for multiple devices */ +guard (pci_rescan_remove)();zpci_remove_reserved_devices ();zpci_scan_devices ();return true;
@@ -439,26 +442,29 @@ static bool zpci_event_avail_any_device(struct zpci_ccdf_avail *ccdf)static void zpci_event_avail_new_device (struct zpci_ccdf_avail *ccdf) {struct zpci_dev *zdev; +bool freed = false;switch (ccdf->pec) {case 0x0301 :/* Reserved|Standby -> Configured */ zdev =zpci_create_device (ccdf->fid, ccdf->fh,ZPCI_FN_STATE_CONFIGURED );if (IS_ERR (zdev))break ; -if (zpci_add_device (zdev)) { -kfree (zdev); -break ; - } -zpci_scan_configured_device (zdev, ccdf->fh); +scoped_guard (pci_rescan_remove) + if (zpci_add_device(zdev)) { +kfree (zdev); +/* break; is incompatible w/ scoped_guard() */ + freed = true; + } +if (!freed) +zpci_scan_configured_device (zdev, ccdf->fh);break ;case 0x0302 :/* Reserved -> Standby */ zdev =zpci_create_device (ccdf->fid, ccdf->fh,ZPCI_FN_STATE_STANDBY );if (IS_ERR (zdev))break ; -if (zpci_add_device (zdev)) { -kfree (zdev); -break ; - } + scoped_guard(pci_rescan_remove) + if (zpci_add_device(zdev)) + kfree(zdev);break ; } }
@@ -500,11 +506,13 @@ static void zpci_event_avail_existing_device(struct zpci_dev *zdev, struct zpci_/* The 0x0304 event may immediately reserve the device */ if (!clp_get_state (zdev->fid, &state) && state ==ZPCI_FN_STATE_RESERVED ) { +guard (pci_rescan_remove)();zpci_device_reserved (zdev); }break ;case 0x0308 :/* Standby -> Reserved */ -zpci_device_reserved (zdev); +scoped_guard (pci_rescan_remove) +zpci_device_reserved (zdev);break ; } }
@@ -526,5 +534,6 @@ void zpci_event_availability(void *data)mutex_lock (&zdev->state_lock);zpci_event_avail_existing_device (zdev, ccdf);mutex_unlock (&zdev->state_lock); +guard (pci_rescan_remove)();zpci_zdev_put (zdev); }
arch/s390/pci/pci_iov.c +1 -2
@@ -38,10 +38,9 @@ void zpci_iov_map_resources(struct pci_dev *pdev)void zpci_iov_remove_virtfn (struct pci_dev *pdev,int vfn) { -pci_lock_rescan_remove (); +guard (pci_rescan_remove)();/* Linux' vfid's start at 0 vfn at 1 */ pci_iov_remove_virtfn (pdev->physfn, vfn -1 ); -pci_unlock_rescan_remove (); }static int zpci_iov_link_virtfn (struct pci_dev *pdev,struct pci_dev *virtfn,int vfid)
arch/s390/pci/pci_sysfs.c +12 -13
@@ -76,10 +76,15 @@ static int _do_recover(struct pci_dev *pdev, struct zpci_dev *zdev)return ret; } +/* So we don't have to mix cleanup.h helpers and gotos in recover_store() */ +DEFINE_CLASS(sysfs_break_active_protection, struct kernfs_node *, + if (_T) sysfs_unbreak_active_protection(_T), +sysfs_break_active_protection (kobj, attr), + struct kobject *kobj, const struct attribute *attr); +static ssize_t recover_store (struct device *dev,struct device_attribute *attr,const char *buf,size_t count) { -struct kernfs_node *kn;struct pci_dev *pdev =to_pci_dev (dev);struct zpci_dev *zdev =to_zpci (pdev);int ret =0 ;
@@ -94,13 +99,13 @@ static ssize_t recover_store(struct device *dev, struct device_attribute *attr,* This is analogous to sdev_store_delete() in * drivers/scsi/scsi_sysfs.c */ - kn =sysfs_break_active_protection (&dev->kobj, &attr->attr); +CLASS (sysfs_break_active_protection, kn)(&dev->kobj, &attr->attr);WARN_ON_ONCE (!kn);/* Device needs to be configured and state must not change */ -mutex_lock (&zdev->state_lock); +guard (mutex)(&zdev->state_lock);if (zdev->state !=ZPCI_FN_STATE_CONFIGURED ) - goto out; +return count;/* device_remove_file() serializes concurrent calls ignoring all but * the first
@@ -109,20 +114,14 @@ static ssize_t recover_store(struct device *dev, struct device_attribute *attr,/* A concurrent call to recover_store() may slip between * sysfs_break_active_protection() and the sysfs file removal. -* Once it unblocks from pci_lock_rescan_remove() the original pdev +* Once it unblocks from guard(pci_rescan_remove)() the original pdev * will already be removed. */ -pci_lock_rescan_remove (); -if (pci_dev_is_added (pdev)) { +guard (pci_rescan_remove)(); +if (pci_dev_is_added (pdev)) ret =_do_recover (pdev, zdev); - }pci_rescan_bus (zdev->zbus->bus); -pci_unlock_rescan_remove (); -out: -mutex_unlock (&zdev->state_lock); -if (kn) -sysfs_unbreak_active_protection (kn);return ret ? ret : count; }static DEVICE_ATTR_WO (recover);
Signature · 1 line
2.56.0
Patchwork
CI✗ CI.checkpatch: warning for PCI/IOV: Fix SR-IOV locking races and AB-BA deadlocks
In reply to Benjamin Block== Series Details ==
== Series Details ==
Series: PCI/IOV: Fix SR-IOV locking races and AB-BA deadlocks
URL : https://patchwork.freedesktop.org/series/174935/
State : warning
== Summary ==
+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master 6bef5ce5c74dc76b4ee69ab2832c0d1fd63c91c7
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit d265885e770258981ee9ddb75613d66449f0616f
Author: Benjamin Block <[email protected]> Date: Thu Sep 24 18:29:31 2026 +0200
s390/pci: Fix circular/recursive deadlocks in PCI-bus and -device release
When removing PCI device or PCI bus objects there are a couple of call-chains where it is possible that the kernel runs into a circular deadlock involving the central pci_rescan_remove_lock.
Two examples:
(A) Thread α receives a PCI event notifying the kernel that a PCI virtual function has been moved into Reserved state, and so the PCI subsystem will try to remove that PCI function. The call-chain for that looks like this:
__zpci_event_availability()
-> zpci_zdev_put() # will lock(zpci_add_remove_lock),
# and lock(zpci_list_lock)
-> zpci_release_device() # will unlock(zpci_list_lock)
-> zpci_cleanup_bus_resources() # will lock(pci_rescan_remove_lock)
Thread β is triggered by userspace writing 0 into the SysFS attribute sriov_numvfs of the parent PCI physical function of the same function we just try to remove. This will also try to release the PCI virtual function; but this time the call-chain looks like this:
sriov_numvfs_store()
-> ... (device driver dependent)
-> sriov_disable()
-> sriov_del_vfs() # will lock(pci_rescan_remove_lock)
-> ... (deep chain)
-> pci_release_dev()
-> pcibios_release_device()
-> zpci_zdev_put() # will lock(zpci_add_remove_lock)
If thread α and β coincide, this will result in a cyclic deadlock.
(B) Thread γ receives a PCI event notifying the kernel that one or more PCI functions got hot plugged, and need to be configured. A possible call-chain that might happen while the PCI subsystem is trying to add those new function looks like this:
__zpci_event_availability()
-> ... (multiple ways in which a device gets added)
-> zpci_add_device() # will lock(zpci_add_remove_lock)
-> zpci_bus_device_register()
-> zpci_bus_put() # will lock(zbus_list_lock)
-> zpci_bus_release() # will unlock(zbus_list_lock)
# will lock(pci_rescan_remove_lock)
Now the same thread β as above in (A) might coincide, and again could result in a cyclic deadlock.
pci_rescan_remove_lock has to be and is taken at a "high level" in most call-chains since it is intended to protect/mutual exclude all rescan and/or removal actions taken in the PCI subsystem. So to prevent the outlined deadlock scenarios above remove it instead from the "low level" release functions for both the PCI device and PCI bus objects.
Instead, lock pci_rescan_remove_lock in all call-chains leading to those release functions:
* initialization of the PCI subsystem;
* processing of availability events (CRWs) for PCI functions;
* processing of error events (CRWs) for PCI functions;
* architecture specific release PCI device implementation.
Additionally, remove pci_rescan_remove_lock from zpci_bus_scan_bus() since its only caller zpci_scan_devices() is now always called with pci_rescan_remove_lock already held.
Lastly, document the new locking expectations after these changes. Add sparse and lockdep annotations to functions that previously locked pci_rescan_remove_lock explicitly, making sure the lock is now already held when called. Additionally also add the annotations to zpci_zdev_put() and zpci_bus_put() to make sure that every function that potentially drops the last reference already holds the lock to prevent surprises.
+ /mt/dim checkpatch 2ac16c180109b3f1ed00e7a2c4459eaacfc80371 drm-intel6d47e9d18426 PCI/IOV: Make pci_lock_rescan_remove() reentrant and protect sriov_add_vfs/sriov_del_vfs abeeb3329037 PCI: Fix AB-BA deadlock between device_lock and pci_rescan_remove_lock in remove_store 30e2aa543b9d PCI: Move declaration of pci_rescan_remove_lock into public pci.h d6dd37ae15c8 PCI: Provide lock guard for pci_rescan_remove_lockd265885e7702 s390/pci: Fix circular/recursive deadlocks in PCI-bus and -device release -:329: WARNING:TABSTOP: Statements should start on a tabstop
#329: FILE: arch/s390/pci/pci_sysfs.c:81:
+ if (_T) sysfs_unbreak_active_protection(_T),
-:329: ERROR:TRAILING_STATEMENTS: trailing statements should be on next line #329: FILE: arch/s390/pci/pci_sysfs.c:81:
+ if (_T) sysfs_unbreak_active_protection(_T),
total: 1 errors, 1 warnings, 0 checks, 255 lines checked
Patchwork
CI✓ CI.KUnit: success for PCI/IOV: Fix SR-IOV locking races and AB-BA deadlocks
In reply to Benjamin Block== Series Details ==
== Series Details ==
Series: PCI/IOV: Fix SR-IOV locking races and AB-BA deadlocks
URL : https://patchwork.freedesktop.org/series/174935/
State : success
== Summary ==
+ trap cleanup EXIT
+ kunitconfigs=('/kernel/drivers/gpu/tests/.kunitconfig' '/kernel/drivers/gpu/drm/xe/.kunitconfig' '/kernel/drivers/gpu/drm/tests/.kunitconfig' '/kernel/drivers/gpu/drm/ttm/tests/.kunitconfig' '/kernel/drivers/dma-buf/.kunitconfig')
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/tests/.kunitconfig
[16:35:53] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig [16:35:57] 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:36:18] Starting KUnit Kernel (1/1)... [16:36:18] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [16:36:18] ============= refcount_interrupt (4 subtests) ============== [16:36:18] [PASSED] test_single_irq_change [16:36:18] [PASSED] test_nested_irq_change [16:36:18] [PASSED] test_multiple_irq_change [16:36:18] [PASSED] test_irq_save [16:36:18] =============== [PASSED] refcount_interrupt ================ [16:36:18] ================= gpu_buddy (14 subtests) ================== [16:36:18] [PASSED] gpu_test_buddy_alloc_limit [16:36:18] [PASSED] gpu_test_buddy_alloc_optimistic [16:36:18] [PASSED] gpu_test_buddy_alloc_pessimistic [16:36:18] [PASSED] gpu_test_buddy_alloc_pathological [16:36:18] [PASSED] gpu_test_buddy_alloc_contiguous [16:36:18] [PASSED] gpu_test_buddy_alloc_clear [16:36:18] [PASSED] gpu_test_buddy_alloc_range [16:36:18] [PASSED] gpu_test_buddy_alloc_range_bias [16:36:19] [PASSED] gpu_test_buddy_fragmentation_performance [16:36:20] [PASSED] gpu_test_buddy_dirty_tracker_performance [16:36:20] [PASSED] gpu_test_buddy_alloc_exceeds_max_order [16:36:20] [PASSED] gpu_test_buddy_offset_aligned_allocation [16:36:20] [PASSED] gpu_test_buddy_subtree_offset_alignment_stress [16:36:20] [PASSED] gpu_test_buddy_addr_to_block [16:36:20] ==================== [PASSED] gpu_buddy ==================== [16:36:20] ============================================================ [16:36:20] Testing complete. Ran 18 tests: passed: 18 [16:36:20] Elapsed time: 27.240s total, 4.375s configuring, 20.746s building, 2.054s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/xe/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig [16:36:20] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig [16:36:22] 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:36:56] Starting KUnit Kernel (1/1)... [16:36:56] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [16:36:56] ============= refcount_interrupt (4 subtests) ============== [16:36:56] [PASSED] test_single_irq_change [16:36:56] [PASSED] test_nested_irq_change [16:36:56] [PASSED] test_multiple_irq_change [16:36:56] [PASSED] test_irq_save [16:36:56] =============== [PASSED] refcount_interrupt ================ [16:36:56] ================== guc_buf (11 subtests) =================== [16:36:56] [PASSED] test_smallest [16:36:56] [PASSED] test_largest [16:36:56] [PASSED] test_granular [16:36:56] [PASSED] test_unique [16:36:56] [PASSED] test_overlap [16:36:56] [PASSED] test_reusable [16:36:56] [PASSED] test_too_big [16:36:56] [PASSED] test_flush [16:36:56] [PASSED] test_lookup [16:36:56] [PASSED] test_data [16:36:56] [PASSED] test_class [16:36:56] ===================== [PASSED] guc_buf ===================== [16:36:56] =================== guc_dbm (7 subtests) =================== [16:36:56] [PASSED] test_empty [16:36:56] [PASSED] test_default [16:36:56] ======================== test_size ======================== [16:36:56] [PASSED] 4 [16:36:56] [PASSED] 8 [16:36:56] [PASSED] 32 [16:36:56] [PASSED] 256 [16:36:56] ==================== [PASSED] test_size ==================== [16:36:56] ======================= test_reuse ======================== [16:36:56] [PASSED] 4 [16:36:56] [PASSED] 8 [16:36:56] [PASSED] 32 [16:36:56] [PASSED] 256 [16:36:56] =================== [PASSED] test_reuse ==================== [16:36:56] =================== test_range_overlap ==================== [16:36:56] [PASSED] 4 [16:36:56] [PASSED] 8 [16:36:56] [PASSED] 32 [16:36:56] [PASSED] 256 [16:36:56] =============== [PASSED] test_range_overlap ================ [16:36:56] =================== test_range_compact ==================== [16:36:56] [PASSED] 4 [16:36:56] [PASSED] 8 [16:36:56] [PASSED] 32 [16:36:56] [PASSED] 256 [16:36:56] =============== [PASSED] test_range_compact ================ [16:36:56] ==================== test_range_spare ===================== [16:36:56] [PASSED] 4 [16:36:56] [PASSED] 8 [16:36:56] [PASSED] 32 [16:36:56] [PASSED] 256 [16:36:56] ================ [PASSED] test_range_spare ================= [16:36:56] ===================== [PASSED] guc_dbm ===================== [16:36:56] =================== guc_idm (6 subtests) =================== [16:36:56] [PASSED] bad_init [16:36:56] [PASSED] no_init [16:36:56] [PASSED] init_fini [16:36:56] [PASSED] check_used [16:36:56] [PASSED] check_quota [16:36:56] [PASSED] check_all [16:36:56] ===================== [PASSED] guc_idm ===================== [16:36:56] ============== guc_klv_helpers (13 subtests) =============== [16:36:56] [PASSED] test_count [16:36:56] [PASSED] test_encode_u32 [16:36:56] [PASSED] test_encode_u64 [16:36:56] [PASSED] test_encode_string [16:36:56] [PASSED] test_encode_object_raw [16:36:56] [PASSED] test_encode_object_klv [16:36:56] [PASSED] test_encode_object_nested [16:36:56] [PASSED] test_encode_object_basic [16:36:56] ===================== test_decode_u16 ===================== [16:36:56] [PASSED] empty [16:36:56] [PASSED] valid [16:36:56] [PASSED] max [16:36:56] [PASSED] big [16:36:56] [PASSED] long [16:36:56] ================= [PASSED] test_decode_u16 ================= [16:36:56] ===================== test_decode_u32 ===================== [16:36:56] [PASSED] empty [16:36:56] [PASSED] valid [16:36:56] [PASSED] max [16:36:56] [PASSED] long [16:36:56] ================= [PASSED] test_decode_u32 ================= [16:36:56] ===================== test_decode_u64 ===================== [16:36:56] [PASSED] empty [16:36:56] [PASSED] short [16:36:56] [PASSED] valid [16:36:56] [PASSED] max [16:36:56] [PASSED] long [16:36:56] ================= [PASSED] test_decode_u64 ================= [16:36:56] ===================== test_decode_str ===================== [16:36:56] [PASSED] empty [16:36:56] [PASSED] one [16:36:56] [PASSED] one_trash [16:36:56] [PASSED] two [16:36:56] [PASSED] two_trash [16:36:56] [PASSED] three [16:36:56] [PASSED] dword [16:36:56] [PASSED] four [16:36:56] [PASSED] five [16:36:56] [PASSED] six [16:36:56] [PASSED] seven [16:36:56] [PASSED] qword [16:36:56] ================= [PASSED] test_decode_str ================= [16:36:56] [PASSED] test_print [16:36:56] ================= [PASSED] guc_klv_helpers ================= [16:36:56] =================== xe_log (4 subtests) ==================== [16:36:56] [PASSED] demo_cper [16:36:56] [PASSED] demo_dmesg [16:36:56] ======================= test_dmesg ======================== [16:36:56] [PASSED] test_fatal [16:36:56] [PASSED] test_fatal_tile [16:36:56] [PASSED] test_fatal_gt [16:36:56] [PASSED] test_fatal_comp [16:36:56] [PASSED] test_fatal_comp_tile [16:36:56] [PASSED] test_fatal_comp_gt [16:36:56] [PASSED] test_fatal_all [16:36:56] [PASSED] test_recoverable [16:36:56] [PASSED] test_recoverable_tile [16:36:56] [PASSED] test_recoverable_gt [16:36:56] [PASSED] test_recoverable_comp [16:36:56] [PASSED] test_recoverable_comp_tile [16:36:56] [PASSED] test_recoverable_comp_gt [16:36:56] [PASSED] test_recoverable_all [16:36:56] [PASSED] test_info [16:36:56] [PASSED] test_info_tile [16:36:56] [PASSED] test_info_gt [16:36:56] [PASSED] test_info_err [16:36:56] [PASSED] test_info_comp [16:36:56] [PASSED] test_info_comp_tile [16:36:56] [PASSED] test_info_comp_gt [16:36:56] [PASSED] test_info_all [16:36:56] [PASSED] test_hw_fatal [16:36:56] [PASSED] test_hw_recoverable [16:36:56] [PASSED] test_hw_corrected [16:36:56] [PASSED] test_hw_informational [16:36:56] =================== [PASSED] test_dmesg ==================== [16:36:56] ====================== test_invalid ======================= [16:36:56] [SKIPPED] no-component no-location no-warn (requires CONFIG_DRM_XE_DEBUG) [16:36:56] [SKIPPED] reserved location (requires CONFIG_DRM_XE_DEBUG) [16:36:56] [SKIPPED] unknown location (requires CONFIG_DRM_XE_DEBUG) [16:36:56] [SKIPPED] nonzero-device-id location (requires CONFIG_DRM_XE_DEBUG) [16:36:56] [SKIPPED] invalid-tile-id location (requires CONFIG_DRM_XE_DEBUG) [16:36:56] [SKIPPED] invalid-gt-id location (requires CONFIG_DRM_XE_DEBUG) [16:36:56] [SKIPPED] unknown component class (requires CONFIG_DRM_XE_DEBUG) [16:36:56] [SKIPPED] unknown system component (requires CONFIG_DRM_XE_DEBUG) [16:36:56] [SKIPPED] unknown hardware component (requires CONFIG_DRM_XE_DEBUG) [16:36:56] [SKIPPED] unknown component and location (requires CONFIG_DRM_XE_DEBUG) [16:36:56] ================== [SKIPPED] test_invalid ================== [16:36:56] ===================== [PASSED] xe_log ====================== [16:36:56] ================== no_relay (3 subtests) =================== [16:36:56] [PASSED] xe_drops_guc2pf_if_not_ready [16:36:56] [PASSED] xe_drops_guc2vf_if_not_ready [16:36:56] [PASSED] xe_rejects_send_if_not_ready [16:36:56] ==================== [PASSED] no_relay ===================== [16:36:56] ================== pf_relay (14 subtests) ================== [16:36:56] [PASSED] pf_rejects_guc2pf_too_short [16:36:56] [PASSED] pf_rejects_guc2pf_too_long [16:36:56] [PASSED] pf_rejects_guc2pf_no_payload [16:36:56] [PASSED] pf_fails_no_payload [16:36:56] [PASSED] pf_fails_bad_origin [16:36:56] [PASSED] pf_fails_bad_type [16:36:56] [PASSED] pf_txn_reports_error [16:36:56] [PASSED] pf_txn_sends_pf2guc [16:36:56] [PASSED] pf_sends_pf2guc [16:36:56] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV) [16:36:56] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV) [16:36:56] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV) [16:36:56] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV) [16:36:56] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV) [16:36:56] ==================== [PASSED] pf_relay ===================== [16:36:56] ================== vf_relay (3 subtests) =================== [16:36:57] [PASSED] vf_rejects_guc2vf_too_short [16:36:57] [PASSED] vf_rejects_guc2vf_too_long [16:36:57] [PASSED] vf_rejects_guc2vf_no_payload [16:36:57] ==================== [PASSED] vf_relay ===================== [16:36:57] ================ pf_gt_config (9 subtests) ================= [16:36:57] [PASSED] fair_contexts_1vf [16:36:57] [PASSED] fair_doorbells_1vf [16:36:57] [PASSED] fair_ggtt_1vf [16:36:57] ====================== fair_vram_1vf ====================== [16:36:57] [PASSED] 3.50 GiB [16:36:57] [PASSED] 11.5 GiB [16:36:57] [PASSED] 15.5 GiB [16:36:57] [PASSED] 31.5 GiB [16:36:57] [PASSED] 63.5 GiB [16:36:57] [PASSED] 1.91 GiB [16:36:57] ================== [PASSED] fair_vram_1vf ================== [16:36:57] ================ fair_vram_1vf_admin_only ================= [16:36:57] [PASSED] 3.50 GiB [16:36:57] [PASSED] 11.5 GiB [16:36:57] [PASSED] 15.5 GiB [16:36:57] [PASSED] 31.5 GiB [16:36:57] [PASSED] 63.5 GiB [16:36:57] [PASSED] 1.91 GiB [16:36:57] ============ [PASSED] fair_vram_1vf_admin_only ============= [16:36:57] ====================== fair_contexts ====================== [16:36:57] [PASSED] 1 VF [16:36:57] [PASSED] 2 VFs [16:36:57] [PASSED] 3 VFs [16:36:57] [PASSED] 4 VFs [16:36:57] [PASSED] 5 VFs [16:36:57] [PASSED] 6 VFs [16:36:57] [PASSED] 7 VFs [16:36:57] [PASSED] 8 VFs [16:36:57] [PASSED] 9 VFs [16:36:57] [PASSED] 10 VFs [16:36:57] [PASSED] 11 VFs [16:36:57] [PASSED] 12 VFs [16:36:57] [PASSED] 13 VFs [16:36:57] [PASSED] 14 VFs [16:36:57] [PASSED] 15 VFs [16:36:57] [PASSED] 16 VFs [16:36:57] [PASSED] 17 VFs [16:36:57] [PASSED] 18 VFs [16:36:57] [PASSED] 19 VFs [16:36:57] [PASSED] 20 VFs [16:36:57] [PASSED] 21 VFs [16:36:57] [PASSED] 22 VFs [16:36:57] [PASSED] 23 VFs [16:36:57] [PASSED] 24 VFs [16:36:57] [PASSED] 25 VFs [16:36:57] [PASSED] 26 VFs [16:36:57] [PASSED] 27 VFs [16:36:57] [PASSED] 28 VFs [16:36:57] [PASSED] 29 VFs [16:36:57] [PASSED] 30 VFs [16:36:57] [PASSED] 31 VFs [16:36:57] [PASSED] 32 VFs [16:36:57] [PASSED] 33 VFs [16:36:57] [PASSED] 34 VFs [16:36:57] [PASSED] 35 VFs [16:36:57] [PASSED] 36 VFs [16:36:57] [PASSED] 37 VFs [16:36:57] [PASSED] 38 VFs [16:36:57] [PASSED] 39 VFs [16:36:57] [PASSED] 40 VFs [16:36:57] [PASSED] 41 VFs [16:36:57] [PASSED] 42 VFs [16:36:57] [PASSED] 43 VFs [16:36:57] [PASSED] 44 VFs [16:36:57] [PASSED] 45 VFs [16:36:57] [PASSED] 46 VFs [16:36:57] [PASSED] 47 VFs [16:36:57] [PASSED] 48 VFs [16:36:57] [PASSED] 49 VFs [16:36:57] [PASSED] 50 VFs [16:36:57] [PASSED] 51 VFs [16:36:57] [PASSED] 52 VFs [16:36:57] [PASSED] 53 VFs [16:36:57] [PASSED] 54 VFs [16:36:57] [PASSED] 55 VFs [16:36:57] [PASSED] 56 VFs [16:36:57] [PASSED] 57 VFs [16:36:57] [PASSED] 58 VFs [16:36:57] [PASSED] 59 VFs [16:36:57] [PASSED] 60 VFs [16:36:57] [PASSED] 61 VFs [16:36:57] [PASSED] 62 VFs [16:36:57] [PASSED] 63 VFs [16:36:57] ================== [PASSED] fair_contexts ================== [16:36:57] ===================== fair_doorbells ====================== [16:36:57] [PASSED] 1 VF [16:36:57] [PASSED] 2 VFs [16:36:57] [PASSED] 3 VFs [16:36:57] [PASSED] 4 VFs [16:36:57] [PASSED] 5 VFs [16:36:57] [PASSED] 6 VFs [16:36:57] [PASSED] 7 VFs [16:36:57] [PASSED] 8 VFs [16:36:57] [PASSED] 9 VFs [16:36:57] [PASSED] 10 VFs [16:36:57] [PASSED] 11 VFs [16:36:57] [PASSED] 12 VFs [16:36:57] [PASSED] 13 VFs [16:36:57] [PASSED] 14 VFs [16:36:57] [PASSED] 15 VFs [16:36:57] [PASSED] 16 VFs [16:36:57] [PASSED] 17 VFs [16:36:57] [PASSED] 18 VFs [16:36:57] [PASSED] 19 VFs [16:36:57] [PASSED] 20 VFs [16:36:57] [PASSED] 21 VFs [16:36:57] [PASSED] 22 VFs [16:36:57] [PASSED] 23 VFs [16:36:57] [PASSED] 24 VFs [16:36:57] [PASSED] 25 VFs [16:36:57] [PASSED] 26 VFs [16:36:57] [PASSED] 27 VFs [16:36:57] [PASSED] 28 VFs [16:36:57] [PASSED] 29 VFs [16:36:57] [PASSED] 30 VFs [16:36:57] [PASSED] 31 VFs [16:36:57] [PASSED] 32 VFs [16:36:57] [PASSED] 33 VFs [16:36:57] [PASSED] 34 VFs [16:36:57] [PASSED] 35 VFs [16:36:57] [PASSED] 36 VFs [16:36:57] [PASSED] 37 VFs [16:36:57] [PASSED] 38 VFs [16:36:57] [PASSED] 39 VFs [16:36:57] [PASSED] 40 VFs [16:36:57] [PASSED] 41 VFs [16:36:57] [PASSED] 42 VFs [16:36:57] [PASSED] 43 VFs [16:36:57] [PASSED] 44 VFs [16:36:57] [PASSED] 45 VFs [16:36:57] [PASSED] 46 VFs [16:36:57] [PASSED] 47 VFs [16:36:57] [PASSED] 48 VFs [16:36:57] [PASSED] 49 VFs [16:36:57] [PASSED] 50 VFs [16:36:57] [PASSED] 51 VFs [16:36:57] [PASSED] 52 VFs [16:36:57] [PASSED] 53 VFs [16:36:57] [PASSED] 54 VFs [16:36:57] [PASSED] 55 VFs [16:36:57] [PASSED] 56 VFs [16:36:57] [PASSED] 57 VFs [16:36:57] [PASSED] 58 VFs [16:36:57] [PASSED] 59 VFs [16:36:57] [PASSED] 60 VFs [16:36:57] [PASSED] 61 VFs [16:36:57] [PASSED] 62 VFs [16:36:57] [PASSED] 63 VFs [16:36:57] ================= [PASSED] fair_doorbells ================== [16:36:57] ======================== fair_ggtt ======================== [16:36:57] [PASSED] 1 VF [16:36:57] [PASSED] 2 VFs [16:36:57] [PASSED] 3 VFs [16:36:57] [PASSED] 4 VFs [16:36:57] [PASSED] 5 VFs [16:36:57] [PASSED] 6 VFs [16:36:57] [PASSED] 7 VFs [16:36:57] [PASSED] 8 VFs [16:36:57] [PASSED] 9 VFs [16:36:57] [PASSED] 10 VFs [16:36:57] [PASSED] 11 VFs [16:36:57] [PASSED] 12 VFs [16:36:57] [PASSED] 13 VFs [16:36:57] [PASSED] 14 VFs [16:36:57] [PASSED] 15 VFs [16:36:57] [PASSED] 16 VFs [16:36:57] [PASSED] 17 VFs [16:36:57] [PASSED] 18 VFs [16:36:57] [PASSED] 19 VFs [16:36:57] [PASSED] 20 VFs [16:36:57] [PASSED] 21 VFs [16:36:57] [PASSED] 22 VFs [16:36:57] [PASSED] 23 VFs [16:36:57] [PASSED] 24 VFs [16:36:57] [PASSED] 25 VFs [16:36:57] [PASSED] 26 VFs [16:36:57] [PASSED] 27 VFs [16:36:57] [PASSED] 28 VFs [16:36:57] [PASSED] 29 VFs [16:36:57] [PASSED] 30 VFs [16:36:57] [PASSED] 31 VFs [16:36:57] [PASSED] 32 VFs [16:36:57] [PASSED] 33 VFs [16:36:57] [PASSED] 34 VFs [16:36:57] [PASSED] 35 VFs [16:36:57] [PASSED] 36 VFs [16:36:57] [PASSED] 37 VFs [16:36:57] [PASSED] 38 VFs [16:36:57] [PASSED] 39 VFs [16:36:57] [PASSED] 40 VFs [16:36:57] [PASSED] 41 VFs [16:36:57] [PASSED] 42 VFs [16:36:57] [PASSED] 43 VFs [16:36:57] [PASSED] 44 VFs [16:36:57] [PASSED] 45 VFs [16:36:57] [PASSED] 46 VFs [16:36:57] [PASSED] 47 VFs [16:36:57] [PASSED] 48 VFs [16:36:57] [PASSED] 49 VFs [16:36:57] [PASSED] 50 VFs [16:36:57] [PASSED] 51 VFs [16:36:57] [PASSED] 52 VFs [16:36:57] [PASSED] 53 VFs [16:36:57] [PASSED] 54 VFs [16:36:57] [PASSED] 55 VFs [16:36:57] [PASSED] 56 VFs [16:36:57] [PASSED] 57 VFs [16:36:57] [PASSED] 58 VFs [16:36:57] [PASSED] 59 VFs [16:36:57] [PASSED] 60 VFs [16:36:57] [PASSED] 61 VFs [16:36:57] [PASSED] 62 VFs [16:36:57] [PASSED] 63 VFs [16:36:57] ==================== [PASSED] fair_ggtt ==================== [16:36:57] ======================== fair_vram ======================== [16:36:57] [PASSED] 1 VF [16:36:57] [PASSED] 2 VFs [16:36:57] [PASSED] 3 VFs [16:36:57] [PASSED] 4 VFs [16:36:57] [PASSED] 5 VFs [16:36:57] [PASSED] 6 VFs [16:36:57] [PASSED] 7 VFs [16:36:57] [PASSED] 8 VFs [16:36:57] [PASSED] 9 VFs [16:36:57] [PASSED] 10 VFs [16:36:57] [PASSED] 11 VFs [16:36:57] [PASSED] 12 VFs [16:36:57] [PASSED] 13 VFs [16:36:57] [PASSED] 14 VFs [16:36:57] [PASSED] 15 VFs [16:36:57] [PASSED] 16 VFs [16:36:57] [PASSED] 17 VFs [16:36:57] [PASSED] 18 VFs [16:36:57] [PASSED] 19 VFs [16:36:57] [PASSED] 20 VFs [16:36:57] [PASSED] 21 VFs [16:36:57] [PASSED] 22 VFs [16:36:57] [PASSED] 23 VFs [16:36:57] [PASSED] 24 VFs [16:36:57] [PASSED] 25 VFs [16:36:57] [PASSED] 26 VFs [16:36:57] [PASSED] 27 VFs [16:36:57] [PASSED] 28 VFs [16:36:57] [PASSED] 29 VFs [16:36:57] [PASSED] 30 VFs [16:36:57] [PASSED] 31 VFs [16:36:57] [PASSED] 32 VFs [16:36:57] [PASSED] 33 VFs [16:36:57] [PASSED] 34 VFs [16:36:57] [PASSED] 35 VFs [16:36:57] [PASSED] 36 VFs [16:36:57] [PASSED] 37 VFs [16:36:57] [PASSED] 38 VFs [16:36:57] [PASSED] 39 VFs [16:36:57] [PASSED] 40 VFs [16:36:57] [PASSED] 41 VFs [16:36:57] [PASSED] 42 VFs [16:36:57] [PASSED] 43 VFs [16:36:57] [PASSED] 44 VFs [16:36:57] [PASSED] 45 VFs [16:36:57] [PASSED] 46 VFs [16:36:57] [PASSED] 47 VFs [16:36:57] [PASSED] 48 VFs [16:36:57] [PASSED] 49 VFs [16:36:57] [PASSED] 50 VFs [16:36:57] [PASSED] 51 VFs [16:36:57] [PASSED] 52 VFs [16:36:57] [PASSED] 53 VFs [16:36:57] [PASSED] 54 VFs [16:36:57] [PASSED] 55 VFs [16:36:57] [PASSED] 56 VFs [16:36:57] [PASSED] 57 VFs [16:36:57] [PASSED] 58 VFs [16:36:57] [PASSED] 59 VFs [16:36:57] [PASSED] 60 VFs [16:36:57] [PASSED] 61 VFs [16:36:57] [PASSED] 62 VFs [16:36:57] [PASSED] 63 VFs [16:36:57] ==================== [PASSED] fair_vram ==================== [16:36:57] ================== [PASSED] pf_gt_config =================== [16:36:57] ===================== lmtt (1 subtest) ===================== [16:36:57] ======================== test_ops ========================= [16:36:57] [PASSED] 2-level [16:36:57] [PASSED] multi-level [16:36:57] ==================== [PASSED] test_ops ===================== [16:36:57] ====================== [PASSED] lmtt ======================= [16:36:57] ================= sriov_packet (1 subtest) ================= [16:36:57] [PASSED] test_descriptor_init [16:36:57] ================== [PASSED] sriov_packet =================== [16:36:57] ================= pf_service (11 subtests) ================= [16:36:57] [PASSED] pf_negotiate_any [16:36:57] [PASSED] pf_negotiate_base_match [16:36:57] [PASSED] pf_negotiate_base_newer [16:36:57] [PASSED] pf_negotiate_base_next [16:36:57] [SKIPPED] pf_negotiate_base_older (no older minor) [16:36:57] [PASSED] pf_negotiate_base_prev [16:36:57] [PASSED] pf_negotiate_latest_match [16:36:57] [PASSED] pf_negotiate_latest_newer [16:36:57] [PASSED] pf_negotiate_latest_next [16:36:57] [SKIPPED] pf_negotiate_latest_older (no older minor) [16:36:57] [SKIPPED] pf_negotiate_latest_prev (no prev major) [16:36:57] =================== [PASSED] pf_service ==================== [16:36:57] ================= xe_guc_g2g (2 subtests) ================== [16:36:57] ============== xe_live_guc_g2g_kunit_default ============== [16:36:57] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ========== [16:36:57] ============== xe_live_guc_g2g_kunit_allmem =============== [16:36:57] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ========== [16:36:57] =================== [SKIPPED] xe_guc_g2g =================== [16:36:57] =================== xe_mocs (2 subtests) =================== [16:36:57] ================ xe_live_mocs_kernel_kunit ================ [16:36:57] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============ [16:36:57] ================ xe_live_mocs_reset_kunit ================= [16:36:57] ============ [SKIPPED] xe_live_mocs_reset_kunit ============ [16:36:57] ==================== [SKIPPED] xe_mocs ===================== [16:36:57] ================= xe_migrate (2 subtests) ================== [16:36:57] ================= xe_migrate_sanity_kunit ================= [16:36:57] ============ [SKIPPED] xe_migrate_sanity_kunit ============= [16:36:57] ================== xe_validate_ccs_kunit ================== [16:36:57] ============= [SKIPPED] xe_validate_ccs_kunit ============== [16:36:57] =================== [SKIPPED] xe_migrate =================== [16:36:57] ================== xe_dma_buf (1 subtest) ================== [16:36:57] ==================== xe_dma_buf_kunit ===================== [16:36:57] ================ [SKIPPED] xe_dma_buf_kunit ================ [16:36:57] =================== [SKIPPED] xe_dma_buf =================== [16:36:57] ================= xe_bo_shrink (1 subtest) ================= [16:36:57] =================== xe_bo_shrink_kunit ==================== [16:36:57] =============== [SKIPPED] xe_bo_shrink_kunit =============== [16:36:57] ================== [SKIPPED] xe_bo_shrink ================== [16:36:57] ==================== xe_bo (2 subtests) ==================== [16:36:57] ================== xe_ccs_migrate_kunit =================== [16:36:57] ============== [SKIPPED] xe_ccs_migrate_kunit ============== [16:36:57] ==================== xe_bo_evict_kunit ==================== [16:36:57] =============== [SKIPPED] xe_bo_evict_kunit ================ [16:36:57] ===================== [SKIPPED] xe_bo ====================== [16:36:57] =================== xe_any (9 subtests) ==================== [16:36:57] [PASSED] test_to_xe [16:36:57] [PASSED] test_to_dev [16:36:57] [PASSED] test_to_pdev [16:36:57] [PASSED] test_to_drm [16:36:57] [PASSED] test_if_pdev [16:36:57] [PASSED] test_if_xe [16:36:57] [PASSED] test_if_tile [16:36:57] [PASSED] test_if_gt [16:36:57] [PASSED] test_to_id [16:36:57] ===================== [PASSED] xe_any ====================== [16:36:57] ==================== args (13 subtests) ==================== [16:36:57] [PASSED] count_args_test [16:36:57] [PASSED] call_args_example [16:36:57] [PASSED] call_args_test [16:36:57] [PASSED] drop_first_arg_example [16:36:57] [PASSED] drop_first_arg_test [16:36:57] [PASSED] first_arg_example [16:36:57] [PASSED] first_arg_test [16:36:57] [PASSED] last_arg_example [16:36:57] [PASSED] last_arg_test [16:36:57] [PASSED] pick_arg_example [16:36:57] [PASSED] if_args_example [16:36:57] [PASSED] if_args_test [16:36:57] [PASSED] sep_comma_example [16:36:57] ====================== [PASSED] args ======================= [16:36:57] =================== xe_pci (3 subtests) ==================== [16:36:57] ==================== check_graphics_ip ==================== [16:36:57] [PASSED] 12.00 Xe_LP [16:36:57] [PASSED] 12.10 Xe_LP+ [16:36:57] [PASSED] 12.55 Xe_HPG [16:36:57] [PASSED] 12.60 Xe_HPC [16:36:57] [PASSED] 12.70 Xe_LPG [16:36:57] [PASSED] 12.71 Xe_LPG [16:36:57] [PASSED] 12.74 Xe_LPG+ [16:36:57] [PASSED] 20.01 Xe2_HPG [16:36:57] [PASSED] 20.02 Xe2_HPG [16:36:57] [PASSED] 20.04 Xe2_LPG [16:36:57] [PASSED] 30.00 Xe3_LPG [16:36:57] [PASSED] 30.01 Xe3_LPG [16:36:57] [PASSED] 30.03 Xe3_LPG [16:36:57] [PASSED] 30.04 Xe3_LPG [16:36:57] [PASSED] 30.05 Xe3_LPG [16:36:57] [PASSED] 35.10 Xe3p_LPG [16:36:57] [PASSED] 35.11 Xe3p_XPC [16:36:57] ================ [PASSED] check_graphics_ip ================ [16:36:57] ===================== check_media_ip ====================== [16:36:57] [PASSED] 12.00 Xe_M [16:36:57] [PASSED] 12.55 Xe_HPM [16:36:57] [PASSED] 13.00 Xe_LPM+ [16:36:57] [PASSED] 13.01 Xe2_HPM [16:36:57] [PASSED] 20.00 Xe2_LPM [16:36:57] [PASSED] 30.00 Xe3_LPM [16:36:57] [PASSED] 30.02 Xe3_LPM [16:36:57] [PASSED] 35.00 Xe3p_LPM [16:36:57] [PASSED] 35.03 Xe3p_HPM [16:36:57] ================= [PASSED] check_media_ip ================== [16:36:57] =================== check_platform_desc =================== [16:36:57] [PASSED] 0x9A60 (TIGERLAKE) [16:36:57] [PASSED] 0x9A68 (TIGERLAKE) [16:36:57] [PASSED] 0x9A70 (TIGERLAKE) [16:36:57] [PASSED] 0x9A40 (TIGERLAKE) [16:36:57] [PASSED] 0x9A49 (TIGERLAKE) [16:36:57] [PASSED] 0x9A59 (TIGERLAKE) [16:36:57] [PASSED] 0x9A78 (TIGERLAKE) [16:36:57] [PASSED] 0x9AC0 (TIGERLAKE) [16:36:57] [PASSED] 0x9AC9 (TIGERLAKE) [16:36:57] [PASSED] 0x9AD9 (TIGERLAKE) [16:36:57] [PASSED] 0x9AF8 (TIGERLAKE) [16:36:57] [PASSED] 0x4C80 (ROCKETLAKE) [16:36:57] [PASSED] 0x4C8A (ROCKETLAKE) [16:36:57] [PASSED] 0x4C8B (ROCKETLAKE) [16:36:57] [PASSED] 0x4C8C (ROCKETLAKE) [16:36:57] [PASSED] 0x4C90 (ROCKETLAKE) [16:36:57] [PASSED] 0x4C9A (ROCKETLAKE) [16:36:57] [PASSED] 0x4680 (ALDERLAKE_S) [16:36:57] [PASSED] 0x4682 (ALDERLAKE_S) [16:36:57] [PASSED] 0x4688 (ALDERLAKE_S) [16:36:57] [PASSED] 0x468A (ALDERLAKE_S) [16:36:57] [PASSED] 0x468B (ALDERLAKE_S) [16:36:57] [PASSED] 0x4690 (ALDERLAKE_S) [16:36:57] [PASSED] 0x4692 (ALDERLAKE_S) [16:36:57] [PASSED] 0x4693 (ALDERLAKE_S) [16:36:57] [PASSED] 0x46A0 (ALDERLAKE_P) [16:36:57] [PASSED] 0x46A1 (ALDERLAKE_P) [16:36:57] [PASSED] 0x46A2 (ALDERLAKE_P) [16:36:57] [PASSED] 0x46A3 (ALDERLAKE_P) [16:36:57] [PASSED] 0x46A6 (ALDERLAKE_P) [16:36:57] [PASSED] 0x46A8 (ALDERLAKE_P) [16:36:57] [PASSED] 0x46AA (ALDERLAKE_P) [16:36:57] [PASSED] 0x462A (ALDERLAKE_P) [16:36:57] [PASSED] 0x4626 (ALDERLAKE_P) [16:36:57] [PASSED] 0x4628 (ALDERLAKE_P) [16:36:57] [PASSED] 0x46B0 (ALDERLAKE_P) [16:36:57] [PASSED] 0x46B1 (ALDERLAKE_P) [16:36:57] [PASSED] 0x46B2 (ALDERLAKE_P) [16:36:57] [PASSED] 0x46B3 (ALDERLAKE_P) [16:36:57] [PASSED] 0x46C0 (ALDERLAKE_P) [16:36:57] [PASSED] 0x46C1 (ALDERLAKE_P) [16:36:57] [PASSED] 0x46C2 (ALDERLAKE_P) [16:36:57] [PASSED] 0x46C3 (ALDERLAKE_P) [16:36:57] [PASSED] 0x46D0 (ALDERLAKE_N) [16:36:57] [PASSED] 0x46D1 (ALDERLAKE_N) [16:36:57] [PASSED] 0x46D2 (ALDERLAKE_N) [16:36:57] [PASSED] 0x46D3 (ALDERLAKE_N) [16:36:57] [PASSED] 0x46D4 (ALDERLAKE_N) [16:36:57] [PASSED] 0xA721 (ALDERLAKE_P) [16:36:57] [PASSED] 0xA7A1 (ALDERLAKE_P) [16:36:57] [PASSED] 0xA7A9 (ALDERLAKE_P) [16:36:57] [PASSED] 0xA7AC (ALDERLAKE_P) [16:36:57] [PASSED] 0xA7AD (ALDERLAKE_P) [16:36:57] [PASSED] 0xA720 (ALDERLAKE_P) [16:36:57] [PASSED] 0xA7A0 (ALDERLAKE_P) [16:36:57] [PASSED] 0xA7A8 (ALDERLAKE_P) [16:36:57] [PASSED] 0xA7AA (ALDERLAKE_P) [16:36:57] [PASSED] 0xA7AB (ALDERLAKE_P) [16:36:57] [PASSED] 0xA780 (ALDERLAKE_S) [16:36:57] [PASSED] 0xA781 (ALDERLAKE_S) [16:36:57] [PASSED] 0xA782 (ALDERLAKE_S) [16:36:57] [PASSED] 0xA783 (ALDERLAKE_S) [16:36:57] [PASSED] 0xA788 (ALDERLAKE_S) [16:36:57] [PASSED] 0xA789 (ALDERLAKE_S) [16:36:57] [PASSED] 0xA78A (ALDERLAKE_S) [16:36:57] [PASSED] 0xA78B (ALDERLAKE_S) [16:36:57] [PASSED] 0x4905 (DG1) [16:36:57] [PASSED] 0x4906 (DG1) [16:36:57] [PASSED] 0x4907 (DG1) [16:36:57] [PASSED] 0x4908 (DG1) [16:36:57] [PASSED] 0x4909 (DG1) [16:36:57] [PASSED] 0x56C0 (DG2) [16:36:57] [PASSED] 0x56C2 (DG2) [16:36:57] [PASSED] 0x56C1 (DG2) [16:36:57] [PASSED] 0x7D51 (METEORLAKE) [16:36:57] [PASSED] 0x7DD1 (METEORLAKE) [16:36:57] [PASSED] 0x7D41 (METEORLAKE) [16:36:57] [PASSED] 0x7D67 (METEORLAKE) [16:36:57] [PASSED] 0xB640 (METEORLAKE) [16:36:57] [PASSED] 0x56A0 (DG2) [16:36:57] [PASSED] 0x56A1 (DG2) [16:36:57] [PASSED] 0x56A2 (DG2) [16:36:57] [PASSED] 0x56BE (DG2) [16:36:57] [PASSED] 0x56BF (DG2) [16:36:57] [PASSED] 0x5690 (DG2) [16:36:57] [PASSED] 0x5691 (DG2) [16:36:57] [PASSED] 0x5692 (DG2) [16:36:57] [PASSED] 0x56A5 (DG2) [16:36:57] [PASSED] 0x56A6 (DG2) [16:36:57] [PASSED] 0x56B0 (DG2) [16:36:57] [PASSED] 0x56B1 (DG2) [16:36:57] [PASSED] 0x56BA (DG2) [16:36:57] [PASSED] 0x56BB (DG2) [16:36:57] [PASSED] 0x56BC (DG2) [16:36:57] [PASSED] 0x56BD (DG2) [16:36:57] [PASSED] 0x5693 (DG2) [16:36:57] [PASSED] 0x5694 (DG2) [16:36:57] [PASSED] 0x5695 (DG2) [16:36:57] [PASSED] 0x56A3 (DG2) [16:36:57] [PASSED] 0x56A4 (DG2) [16:36:57] [PASSED] 0x56B2 (DG2) [16:36:57] [PASSED] 0x56B3 (DG2) [16:36:57] [PASSED] 0x5696 (DG2) [16:36:57] [PASSED] 0x5697 (DG2) [16:36:57] [PASSED] 0xB69 (PVC) [16:36:57] [PASSED] 0xB6E (PVC) [16:36:57] [PASSED] 0xBD4 (PVC) [16:36:57] [PASSED] 0xBD5 (PVC) [16:36:57] [PASSED] 0xBD6 (PVC) [16:36:57] [PASSED] 0xBD7 (PVC) [16:36:57] [PASSED] 0xBD8 (PVC) [16:36:57] [PASSED] 0xBD9 (PVC) [16:36:57] [PASSED] 0xBDA (PVC) [16:36:57] [PASSED] 0xBDB (PVC) [16:36:57] [PASSED] 0xBE0 (PVC) [16:36:57] [PASSED] 0xBE1 (PVC) [16:36:57] [PASSED] 0xBE5 (PVC) [16:36:57] [PASSED] 0x7D40 (METEORLAKE) [16:36:57] [PASSED] 0x7D45 (METEORLAKE) [16:36:57] [PASSED] 0x7D55 (METEORLAKE) [16:36:57] [PASSED] 0x7D60 (METEORLAKE) [16:36:57] [PASSED] 0x7DD5 (METEORLAKE) [16:36:57] [PASSED] 0x6420 (LUNARLAKE) [16:36:57] [PASSED] 0x64A0 (LUNARLAKE) [16:36:57] [PASSED] 0x64B0 (LUNARLAKE) [16:36:57] [PASSED] 0xE202 (BATTLEMAGE) [16:36:57] [PASSED] 0xE209 (BATTLEMAGE) [16:36:57] [PASSED] 0xE20B (BATTLEMAGE) [16:36:57] [PASSED] 0xE20C (BATTLEMAGE) [16:36:57] [PASSED] 0xE20D (BATTLEMAGE) [16:36:57] [PASSED] 0xE210 (BATTLEMAGE) [16:36:57] [PASSED] 0xE211 (BATTLEMAGE) [16:36:57] [PASSED] 0xE212 (BATTLEMAGE) [16:36:57] [PASSED] 0xE216 (BATTLEMAGE) [16:36:57] [PASSED] 0xE220 (BATTLEMAGE) [16:36:57] [PASSED] 0xE221 (BATTLEMAGE) [16:36:57] [PASSED] 0xE222 (BATTLEMAGE) [16:36:57] [PASSED] 0xE223 (BATTLEMAGE) [16:36:57] [PASSED] 0xB080 (PANTHERLAKE) [16:36:57] [PASSED] 0xB081 (PANTHERLAKE) [16:36:57] [PASSED] 0xB082 (PANTHERLAKE) [16:36:57] [PASSED] 0xB083 (PANTHERLAKE) [16:36:57] [PASSED] 0xB084 (PANTHERLAKE) [16:36:57] [PASSED] 0xB085 (PANTHERLAKE) [16:36:57] [PASSED] 0xB086 (PANTHERLAKE) [16:36:57] [PASSED] 0xB087 (PANTHERLAKE) [16:36:57] [PASSED] 0xB08F (PANTHERLAKE) [16:36:57] [PASSED] 0xB090 (PANTHERLAKE) [16:36:57] [PASSED] 0xB0A0 (PANTHERLAKE) [16:36:57] [PASSED] 0xB0B0 (PANTHERLAKE) [16:36:57] [PASSED] 0xFD80 (PANTHERLAKE) [16:36:57] [PASSED] 0xFD81 (PANTHERLAKE) [16:36:57] [PASSED] 0xD740 (NOVALAKE_S) [16:36:57] [PASSED] 0xD741 (NOVALAKE_S) [16:36:57] [PASSED] 0xD742 (NOVALAKE_S) [16:36:57] [PASSED] 0xD743 (NOVALAKE_S) [16:36:57] [PASSED] 0xD745 (NOVALAKE_S) [16:36:57] [PASSED] 0xD74A (NOVALAKE_S) [16:36:57] [PASSED] 0xD74B (NOVALAKE_S) [16:36:57] [PASSED] 0x674C (CRESCENTISLAND) [16:36:57] [PASSED] 0x674D (CRESCENTISLAND) [16:36:57] [PASSED] 0x674E (CRESCENTISLAND) [16:36:57] [PASSED] 0x674F (CRESCENTISLAND) [16:36:57] [PASSED] 0x6750 (CRESCENTISLAND) [16:36:57] [PASSED] 0xD750 (NOVALAKE_P) [16:36:57] [PASSED] 0xD751 (NOVALAKE_P) [16:36:57] [PASSED] 0xD752 (NOVALAKE_P) [16:36:57] [PASSED] 0xD753 (NOVALAKE_P) [16:36:57] [PASSED] 0xD754 (NOVALAKE_P) [16:36:57] [PASSED] 0xD755 (NOVALAKE_P) [16:36:57] [PASSED] 0xD756 (NOVALAKE_P) [16:36:57] [PASSED] 0xD757 (NOVALAKE_P) [16:36:57] [PASSED] 0xD75F (NOVALAKE_P) [16:36:57] =============== [PASSED] check_platform_desc =============== [16:36:57] ===================== [PASSED] xe_pci ====================== [16:36:57] ============= xe_rtp_tables_test (5 subtests) ============== [16:36:57] ================== xe_rtp_table_gt_test =================== [16:36:57] [PASSED] gt_was/14011060649 [16:36:57] [PASSED] gt_was/14011059788 [16:36:57] [PASSED] gt_was/14015795083 [16:36:57] [PASSED] gt_was/16021867713 [16:36:57] [PASSED] gt_was/14019449301 [16:36:57] [PASSED] gt_was/16028005424 [16:36:57] [PASSED] gt_was/14026578760 [16:36:57] [PASSED] gt_was/1409420604 [16:36:57] [PASSED] gt_was/1408615072 [16:36:57] [PASSED] gt_was/22010523718 [16:36:57] [PASSED] gt_was/14011006942 [16:36:57] [PASSED] gt_was/14014830051 [16:36:57] [PASSED] gt_was/18018781329 [16:36:57] [PASSED] gt_was/1509235366 [16:36:57] [PASSED] gt_was/18018781329 [16:36:57] [PASSED] gt_was/16016694945 [16:36:57] [PASSED] gt_was/14018575942 [16:36:57] [PASSED] gt_was/22016670082 [16:36:57] [PASSED] gt_was/22016670082 [16:36:57] [PASSED] gt_was/14017421178 [16:36:57] [PASSED] gt_was/16025250150 [16:36:57] [PASSED] gt_was/14021871409 [16:36:57] [PASSED] gt_was/16021865536 [16:36:57] [PASSED] gt_was/14021486841 [16:36:57] [PASSED] gt_was/14025160223 [16:36:57] [PASSED] gt_was/14026144927, 16029437861, 14026127056 [16:36:57] [PASSED] gt_was/14025635424 [16:36:57] [PASSED] gt_was/16028005424 [16:36:57] ============== [PASSED] xe_rtp_table_gt_test =============== [16:36:57] ================== xe_rtp_table_gt_test =================== [16:36:57] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable [16:36:57] [PASSED] gt_tunings/Tuning: 32B Access Enable [16:36:57] [PASSED] gt_tunings/Tuning: L3 cache [16:36:57] [PASSED] gt_tunings/Tuning: L3 cache - media [16:36:57] [PASSED] gt_tunings/Tuning: Compression Overfetch [16:36:57] [PASSED] gt_tunings/Tuning: Compression Overfetch - media [16:36:57] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 [16:36:57] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media [16:36:57] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only [16:36:57] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media [16:36:57] [PASSED] gt_tunings/Tuning: Stateless compression control [16:36:57] [PASSED] gt_tunings/Tuning: Stateless compression control - media [16:36:57] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache [16:36:57] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media [16:36:57] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB [16:36:57] ============== [PASSED] xe_rtp_table_gt_test =============== [16:36:57] ================== xe_rtp_table_oob_test ================== [16:36:57] [PASSED] oob_was/1607983814 [16:36:57] [PASSED] oob_was/16010904313 [16:36:57] [PASSED] oob_was/18022495364 [16:36:57] [PASSED] oob_was/22012773006 [16:36:57] [PASSED] oob_was/14014475959 [16:36:57] [PASSED] oob_was/22011391025 [16:36:57] [PASSED] oob_was/22012727170 [16:36:57] [PASSED] oob_was/22012727685 [16:36:57] [PASSED] oob_was/22016596838 [16:36:57] [PASSED] oob_was/18020744125 [16:36:57] [PASSED] oob_was/1409600907 [16:36:57] [PASSED] oob_was/22014953428 [16:36:57] [PASSED] oob_was/16017236439 [16:36:57] [PASSED] oob_was/14019821291 [16:36:57] [PASSED] oob_was/14015076503 [16:36:57] [PASSED] oob_was/14018913170 [16:36:57] [PASSED] oob_was/14018094691 [16:36:57] [PASSED] oob_was/18024947630 [16:36:57] [PASSED] oob_was/16022287689 [16:36:57] [PASSED] oob_was/13011645652 [16:36:57] [PASSED] oob_was/14022293748 [16:36:57] [PASSED] oob_was/22019794406 [16:36:57] [PASSED] oob_was/22019338487 [16:36:57] [PASSED] oob_was/16023588340 [16:36:57] [PASSED] oob_was/14019789679 [16:36:57] [PASSED] oob_was/14022866841 [16:36:57] [PASSED] oob_was/16021333562 [16:36:57] [PASSED] oob_was/14016712196 [16:36:57] [PASSED] oob_was/14015568240 [16:36:57] [PASSED] oob_was/18013179988 [16:36:57] [PASSED] oob_was/1508761755 [16:36:57] [PASSED] oob_was/16023105232 [16:36:57] [PASSED] oob_was/16026508708 [16:36:57] [PASSED] oob_was/14020001231 [16:36:57] [PASSED] oob_was/16023683509 [16:36:57] [PASSED] oob_was/14025515070 [16:36:57] [PASSED] oob_was/15015404425_disable [16:36:57] [PASSED] oob_was/16026007364 [16:36:57] [PASSED] oob_was/14020316580 [16:36:57] [PASSED] oob_was/14025883347 [16:36:57] [PASSED] oob_was/16029380221 [16:36:57] [PASSED] oob_was/22022079272 [16:36:57] [PASSED] oob_was/16029897822 [16:36:57] [PASSED] oob_was/14027054324 [16:36:57] [PASSED] oob_was/14025941587 [16:36:57] ============== [PASSED] xe_rtp_table_oob_test ============== [16:36:57] ================ xe_rtp_table_dev_oob_test ================ [16:36:57] [PASSED] device_oob_was/22010954014 [16:36:57] [PASSED] device_oob_was/15015404425 [16:36:57] [PASSED] device_oob_was/22019338487_display [16:36:57] [PASSED] device_oob_was/14022085890 [16:36:57] [PASSED] device_oob_was/14026539277 [16:36:57] [PASSED] device_oob_was/14026633728 [16:36:57] [PASSED] device_oob_was/14026746987 [16:36:57] [PASSED] device_oob_was/14026779378 [16:36:57] ============ [PASSED] xe_rtp_table_dev_oob_test ============ [16:36:57] ========== xe_rtp_table_missing_upper_bound_test ========== [16:36:57] [PASSED] register_whitelist/WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865 [16:36:57] [PASSED] register_whitelist/1508744258, 14012131227, 1808121037 [16:36:57] [PASSED] register_whitelist/1806527549 [16:36:57] [PASSED] register_whitelist/allow_read_ctx_timestamp [16:36:57] [PASSED] register_whitelist/allow_read_queue_timestamp [16:36:57] [PASSED] register_whitelist/16014440446 [16:36:57] [PASSED] register_whitelist/16017236439 [16:36:57] [PASSED] register_whitelist/16020183090 [16:36:57] [PASSED] register_whitelist/14024997852 [16:36:57] [PASSED] register_whitelist/14024997852 [16:36:57] ====== [PASSED] xe_rtp_table_missing_upper_bound_test ====== [16:36:57] =============== [PASSED] xe_rtp_tables_test ================ [16:36:57] =================== xe_rtp (3 subtests) ==================== [16:36:57] =================== xe_rtp_rules_tests ==================== [16:36:57] [PASSED] no [16:36:57] [PASSED] yes [16:36:57] [PASSED] no-and-no [16:36:57] [PASSED] no-and-yes [16:36:57] [PASSED] yes-and-no [16:36:57] [PASSED] yes-and-yes [16:36:57] [PASSED] no-or-no [16:36:57] [PASSED] no-or-yes [16:36:57] [PASSED] yes-or-no [16:36:57] [PASSED] yes-or-yes [16:36:57] [PASSED] no-yes-or-yes-no [16:36:57] [PASSED] no-yes-or-yes-yes [16:36:57] [PASSED] yes-yes-or-no-yes [16:36:57] [PASSED] yes-yes-or-yes-yes [16:36:57] [PASSED] no-no-or-yes-or-no [16:36:57] [PASSED] or [16:36:57] [PASSED] or-yes [16:36:57] [PASSED] or-no [16:36:57] [PASSED] yes-or [16:36:57] [PASSED] no-or [16:36:57] [PASSED] no-or-or-yes [16:36:57] [PASSED] yes-or-or-no [16:36:57] [PASSED] no-or-or-no [16:36:57] [PASSED] missing-context-engine-class [16:36:57] [PASSED] missing-context-engine-class-or-yes [16:36:57] [PASSED] missing-context-engine-class-or-or-yes [16:36:57] =============== [PASSED] xe_rtp_rules_tests ================ [16:36:57] =============== xe_rtp_process_to_sr_tests ================ [16:36:57] [PASSED] coalesce-same-reg [16:36:57] [PASSED] coalesce-same-reg-literal-and-func [16:36:57] [PASSED] no-match-no-add [16:36:57] [PASSED] two-regs-two-entries [16:36:57] [PASSED] clr-one-set-other [16:36:57] [PASSED] set-field [16:36:57] [PASSED] conflict-duplicate [16:36:57] [PASSED] conflict-not-disjoint [16:36:57] [PASSED] conflict-not-disjoint-literal-and-func [16:36:57] [PASSED] conflict-reg-type [16:36:57] [PASSED] bad-mcr-reg-forced-to-regular [16:36:57] [PASSED] bad-regular-reg-forced-to-mcr [16:36:57] =========== [PASSED] xe_rtp_process_to_sr_tests ============ [16:36:57] ================== xe_rtp_process_tests =================== [16:36:57] [PASSED] active1 [16:36:57] [PASSED] active2 [16:36:57] [PASSED] active-inactive [16:36:57] [PASSED] inactive-active [16:36:57] [PASSED] inactive-active-inactive [16:36:57] [PASSED] inactive-inactive-inactive [16:36:57] ============== [PASSED] xe_rtp_process_tests =============== [16:36:57] ===================== [PASSED] xe_rtp ====================== [16:36:57] ==================== xe_wa (1 subtest) ===================== [16:36:57] ======================== xe_wa_gt ========================= [16:36:57] [PASSED] TIGERLAKE B0 [16:36:57] [PASSED] DG1 A0 [16:36:57] [PASSED] DG1 B0 [16:36:57] [PASSED] ALDERLAKE_S A0 [16:36:57] [PASSED] ALDERLAKE_S B0 [16:36:57] [PASSED] ALDERLAKE_S C0 [16:36:57] [PASSED] ALDERLAKE_S D0 [16:36:57] [PASSED] ALDERLAKE_P A0 [16:36:57] [PASSED] ALDERLAKE_P B0 [16:36:57] [PASSED] ALDERLAKE_P C0 [16:36:57] [PASSED] ALDERLAKE_S RPLS D0 [16:36:57] [PASSED] ALDERLAKE_P RPLU E0 [16:36:57] [PASSED] DG2 G10 C0 [16:36:57] [PASSED] DG2 G11 B1 [16:36:57] [PASSED] DG2 G12 A1 [16:36:57] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0 [16:36:57] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0 [16:36:57] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0 [16:36:57] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0 [16:36:57] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0 [16:36:57] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1 [16:36:57] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0 [16:36:57] ==================== [PASSED] xe_wa_gt ===================== [16:36:57] ====================== [PASSED] xe_wa ====================== [16:36:57] ============================================================ [16:36:57] Testing complete. Ran 820 tests: passed: 792, skipped: 28 [16:36:57] Elapsed time: 36.913s total, 1.777s configuring, 34.420s building, 0.709s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig [16:36:57] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig [16:36:59] 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:37:24] Starting KUnit Kernel (1/1)... [16:37:24] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [16:37:24] ============= refcount_interrupt (4 subtests) ============== [16:37:24] [PASSED] test_single_irq_change [16:37:24] [PASSED] test_nested_irq_change [16:37:24] [PASSED] test_multiple_irq_change [16:37:24] [PASSED] test_irq_save [16:37:24] =============== [PASSED] refcount_interrupt ================ [16:37:24] ============ drm_test_pick_cmdline (2 subtests) ============ [16:37:24] [PASSED] drm_test_pick_cmdline_res_1920_1080_60 [16:37:24] =============== drm_test_pick_cmdline_named =============== [16:37:24] [PASSED] NTSC [16:37:24] [PASSED] NTSC-J [16:37:24] [PASSED] PAL [16:37:24] [PASSED] PAL-M [16:37:24] =========== [PASSED] drm_test_pick_cmdline_named =========== [16:37:24] ============== [PASSED] drm_test_pick_cmdline ============== [16:37:24] == drm_test_atomic_get_connector_for_encoder (1 subtest) === [16:37:24] [PASSED] drm_test_drm_atomic_get_connector_for_encoder [16:37:24] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ==== [16:37:24] =========== drm_validate_clone_mode (2 subtests) =========== [16:37:24] ============== drm_test_check_in_clone_mode =============== [16:37:24] [PASSED] in_clone_mode [16:37:24] [PASSED] not_in_clone_mode [16:37:24] ========== [PASSED] drm_test_check_in_clone_mode =========== [16:37:24] =============== drm_test_check_valid_clones =============== [16:37:24] [PASSED] not_in_clone_mode [16:37:24] [PASSED] valid_clone [16:37:24] [PASSED] invalid_clone [16:37:24] =========== [PASSED] drm_test_check_valid_clones =========== [16:37:24] ============= [PASSED] drm_validate_clone_mode ============= [16:37:24] ============= drm_validate_modeset (1 subtest) ============= [16:37:24] [PASSED] drm_test_check_connector_changed_modeset [16:37:24] ============== [PASSED] drm_validate_modeset =============== [16:37:24] ====== drm_test_bridge_get_current_state (1 subtest) ======= [16:37:24] [PASSED] drm_test_drm_bridge_get_current_state_atomic [16:37:24] ======== [PASSED] drm_test_bridge_get_current_state ======== [16:37:24] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ====== [16:37:24] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic [16:37:24] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled [16:37:24] [PASSED] drm_test_drm_bridge_helper_hdmi_output_bus_fmts [16:37:24] ======== [PASSED] drm_test_bridge_helper_reset_crtc ======== [16:37:24] ============== drm_bridge_alloc (2 subtests) =============== [16:37:24] [PASSED] drm_test_drm_bridge_alloc_basic [16:37:24] [PASSED] drm_test_drm_bridge_alloc_get_put [16:37:24] ================ [PASSED] drm_bridge_alloc ================= [16:37:24] ============= drm_bridge_bus_fmt (5 subtests) ============== [16:37:24] [PASSED] drm_test_bridge_rgb_yuv_rgb [16:37:24] [PASSED] drm_test_bridge_must_convert_to_yuv444 [16:37:24] [PASSED] drm_test_bridge_hdmi_auto_rgb [16:37:24] [PASSED] drm_test_bridge_auto_first [16:37:24] [PASSED] drm_test_bridge_rgb_yuv_no_path [16:37:24] =============== [PASSED] drm_bridge_bus_fmt ================ [16:37:24] ============= drm_cmdline_parser (40 subtests) ============= [16:37:24] [PASSED] drm_test_cmdline_force_d_only [16:37:24] [PASSED] drm_test_cmdline_force_D_only_dvi [16:37:24] [PASSED] drm_test_cmdline_force_D_only_hdmi [16:37:24] [PASSED] drm_test_cmdline_force_D_only_not_digital [16:37:24] [PASSED] drm_test_cmdline_force_e_only [16:37:24] [PASSED] drm_test_cmdline_res [16:37:24] [PASSED] drm_test_cmdline_res_vesa [16:37:24] [PASSED] drm_test_cmdline_res_vesa_rblank [16:37:24] [PASSED] drm_test_cmdline_res_rblank [16:37:24] [PASSED] drm_test_cmdline_res_bpp [16:37:24] [PASSED] drm_test_cmdline_res_refresh [16:37:24] [PASSED] drm_test_cmdline_res_bpp_refresh [16:37:24] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced [16:37:24] [PASSED] drm_test_cmdline_res_bpp_refresh_margins [16:37:24] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off [16:37:24] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on [16:37:24] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog [16:37:24] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital [16:37:24] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on [16:37:24] [PASSED] drm_test_cmdline_res_margins_force_on [16:37:24] [PASSED] drm_test_cmdline_res_vesa_margins [16:37:24] [PASSED] drm_test_cmdline_name [16:37:24] [PASSED] drm_test_cmdline_name_bpp [16:37:24] [PASSED] drm_test_cmdline_name_option [16:37:24] [PASSED] drm_test_cmdline_name_bpp_option [16:37:24] [PASSED] drm_test_cmdline_rotate_0 [16:37:24] [PASSED] drm_test_cmdline_rotate_90 [16:37:24] [PASSED] drm_test_cmdline_rotate_180 [16:37:24] [PASSED] drm_test_cmdline_rotate_270 [16:37:24] [PASSED] drm_test_cmdline_hmirror [16:37:24] [PASSED] drm_test_cmdline_vmirror [16:37:24] [PASSED] drm_test_cmdline_margin_options [16:37:24] [PASSED] drm_test_cmdline_multiple_options [16:37:24] [PASSED] drm_test_cmdline_bpp_extra_and_option [16:37:24] [PASSED] drm_test_cmdline_extra_and_option [16:37:24] [PASSED] drm_test_cmdline_freestanding_options [16:37:24] [PASSED] drm_test_cmdline_freestanding_force_e_and_options [16:37:24] [PASSED] drm_test_cmdline_panel_orientation [16:37:24] ================ drm_test_cmdline_invalid ================= [16:37:24] [PASSED] margin_only [16:37:24] [PASSED] interlace_only [16:37:24] [PASSED] res_missing_x [16:37:24] [PASSED] res_missing_y [16:37:24] [PASSED] res_bad_y [16:37:24] [PASSED] res_missing_y_bpp [16:37:24] [PASSED] res_bad_bpp [16:37:24] [PASSED] res_bad_refresh [16:37:24] [PASSED] res_bpp_refresh_force_on_off [16:37:24] [PASSED] res_invalid_mode [16:37:24] [PASSED] res_bpp_wrong_place_mode [16:37:24] [PASSED] name_bpp_refresh [16:37:24] [PASSED] name_refresh [16:37:24] [PASSED] name_refresh_wrong_mode [16:37:24] [PASSED] name_refresh_invalid_mode [16:37:24] [PASSED] rotate_multiple [16:37:24] [PASSED] rotate_invalid_val [16:37:24] [PASSED] rotate_truncated [16:37:24] [PASSED] invalid_option [16:37:24] [PASSED] invalid_tv_option [16:37:24] [PASSED] truncated_tv_option [16:37:24] ============ [PASSED] drm_test_cmdline_invalid ============= [16:37:24] =============== drm_test_cmdline_tv_options =============== [16:37:24] [PASSED] NTSC [16:37:24] [PASSED] NTSC_443 [16:37:24] [PASSED] NTSC_J [16:37:24] [PASSED] PAL [16:37:24] [PASSED] PAL_M [16:37:24] [PASSED] PAL_N [16:37:24] [PASSED] SECAM [16:37:24] [PASSED] MONO_525 [16:37:24] [PASSED] MONO_625 [16:37:24] =========== [PASSED] drm_test_cmdline_tv_options =========== [16:37:24] =============== [PASSED] drm_cmdline_parser ================ [16:37:24] ========== drmm_connector_hdmi_init (20 subtests) ========== [16:37:24] [PASSED] drm_test_connector_hdmi_init_valid [16:37:24] [PASSED] drm_test_connector_hdmi_init_bpc_8 [16:37:24] [PASSED] drm_test_connector_hdmi_init_bpc_10 [16:37:24] [PASSED] drm_test_connector_hdmi_init_bpc_12 [16:37:24] [PASSED] drm_test_connector_hdmi_init_bpc_invalid [16:37:24] [PASSED] drm_test_connector_hdmi_init_bpc_null [16:37:24] [PASSED] drm_test_connector_hdmi_init_formats_empty [16:37:24] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb [16:37:24] === drm_test_connector_hdmi_init_formats_yuv420_allowed === [16:37:24] [PASSED] supported_formats=0x9 yuv420_allowed=1 [16:37:24] [PASSED] supported_formats=0x9 yuv420_allowed=0 [16:37:24] [PASSED] supported_formats=0x5 yuv420_allowed=1 [16:37:24] [PASSED] supported_formats=0x5 yuv420_allowed=0 [16:37:24] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed === [16:37:24] [PASSED] drm_test_connector_hdmi_init_null_ddc [16:37:24] [PASSED] drm_test_connector_hdmi_init_null_product [16:37:24] [PASSED] drm_test_connector_hdmi_init_null_vendor [16:37:24] [PASSED] drm_test_connector_hdmi_init_product_length_exact [16:37:24] [PASSED] drm_test_connector_hdmi_init_product_length_too_long [16:37:24] [PASSED] drm_test_connector_hdmi_init_product_valid [16:37:24] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact [16:37:24] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long [16:37:24] [PASSED] drm_test_connector_hdmi_init_vendor_valid [16:37:24] ========= drm_test_connector_hdmi_init_type_valid ========= [16:37:24] [PASSED] HDMI-A [16:37:24] [PASSED] HDMI-B [16:37:24] ===== [PASSED] drm_test_connector_hdmi_init_type_valid ===== [16:37:24] ======== drm_test_connector_hdmi_init_type_invalid ======== [16:37:24] [PASSED] Unknown [16:37:24] [PASSED] VGA [16:37:24] [PASSED] DVI-I [16:37:24] [PASSED] DVI-D [16:37:24] [PASSED] DVI-A [16:37:24] [PASSED] Composite [16:37:24] [PASSED] SVIDEO [16:37:24] [PASSED] LVDS [16:37:24] [PASSED] Component [16:37:24] [PASSED] DIN [16:37:24] [PASSED] DP [16:37:24] [PASSED] TV [16:37:24] [PASSED] eDP [16:37:24] [PASSED] Virtual [16:37:24] [PASSED] DSI [16:37:24] [PASSED] DPI [16:37:24] [PASSED] Writeback [16:37:24] [PASSED] SPI [16:37:24] [PASSED] USB [16:37:24] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ==== [16:37:24] ============ [PASSED] drmm_connector_hdmi_init ============= [16:37:24] ============= drmm_connector_init (3 subtests) ============= [16:37:24] [PASSED] drm_test_drmm_connector_init [16:37:24] [PASSED] drm_test_drmm_connector_init_null_ddc [16:37:24] ========= drm_test_drmm_connector_init_type_valid ========= [16:37:24] [PASSED] Unknown [16:37:24] [PASSED] VGA [16:37:24] [PASSED] DVI-I [16:37:24] [PASSED] DVI-D [16:37:24] [PASSED] DVI-A [16:37:24] [PASSED] Composite [16:37:24] [PASSED] SVIDEO [16:37:24] [PASSED] LVDS [16:37:24] [PASSED] Component [16:37:24] [PASSED] DIN [16:37:24] [PASSED] DP [16:37:24] [PASSED] HDMI-A [16:37:24] [PASSED] HDMI-B [16:37:24] [PASSED] TV [16:37:24] [PASSED] eDP [16:37:24] [PASSED] Virtual [16:37:24] [PASSED] DSI [16:37:24] [PASSED] DPI [16:37:24] [PASSED] Writeback [16:37:24] [PASSED] SPI [16:37:24] [PASSED] USB [16:37:24] ===== [PASSED] drm_test_drmm_connector_init_type_valid ===== [16:37:24] =============== [PASSED] drmm_connector_init =============== [16:37:24] ========= drm_connector_dynamic_init (6 subtests) ========== [16:37:24] [PASSED] drm_test_drm_connector_dynamic_init [16:37:24] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc [16:37:24] [PASSED] drm_test_drm_connector_dynamic_init_not_added [16:37:24] [PASSED] drm_test_drm_connector_dynamic_init_properties [16:37:24] ===== drm_test_drm_connector_dynamic_init_type_valid ====== [16:37:24] [PASSED] Unknown [16:37:24] [PASSED] VGA [16:37:24] [PASSED] DVI-I [16:37:24] [PASSED] DVI-D [16:37:24] [PASSED] DVI-A [16:37:24] [PASSED] Composite [16:37:24] [PASSED] SVIDEO [16:37:24] [PASSED] LVDS [16:37:24] [PASSED] Component [16:37:24] [PASSED] DIN [16:37:24] [PASSED] DP [16:37:24] [PASSED] HDMI-A [16:37:24] [PASSED] HDMI-B [16:37:24] [PASSED] TV [16:37:24] [PASSED] eDP [16:37:24] [PASSED] Virtual [16:37:24] [PASSED] DSI [16:37:24] [PASSED] DPI [16:37:24] [PASSED] Writeback [16:37:24] [PASSED] SPI [16:37:24] [PASSED] USB [16:37:24] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid == [16:37:24] ======== drm_test_drm_connector_dynamic_init_name ========= [16:37:24] [PASSED] Unknown [16:37:24] [PASSED] VGA [16:37:24] [PASSED] DVI-I [16:37:24] [PASSED] DVI-D [16:37:24] [PASSED] DVI-A [16:37:24] [PASSED] Composite [16:37:24] [PASSED] SVIDEO [16:37:24] [PASSED] LVDS [16:37:24] [PASSED] Component [16:37:24] [PASSED] DIN [16:37:24] [PASSED] DP [16:37:24] [PASSED] HDMI-A [16:37:24] [PASSED] HDMI-B [16:37:24] [PASSED] TV [16:37:24] [PASSED] eDP [16:37:24] [PASSED] Virtual [16:37:24] [PASSED] DSI [16:37:24] [PASSED] DPI [16:37:24] [PASSED] Writeback [16:37:24] [PASSED] SPI [16:37:24] [PASSED] USB [16:37:24] ==== [PASSED] drm_test_drm_connector_dynamic_init_name ===== [16:37:24] =========== [PASSED] drm_connector_dynamic_init ============ [16:37:24] ==== drm_connector_dynamic_register_early (4 subtests) ===== [16:37:24] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list [16:37:24] [PASSED] drm_test_drm_connector_dynamic_register_early_defer [16:37:24] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init [16:37:24] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object [16:37:24] ====== [PASSED] drm_connector_dynamic_register_early ======= [16:37:24] ======= drm_connector_dynamic_register (7 subtests) ======== [16:37:24] [PASSED] drm_test_drm_connector_dynamic_register_on_list [16:37:24] [PASSED] drm_test_drm_connector_dynamic_register_no_defer [16:37:24] [PASSED] drm_test_drm_connector_dynamic_register_no_init [16:37:24] [PASSED] drm_test_drm_connector_dynamic_register_mode_object [16:37:24] [PASSED] drm_test_drm_connector_dynamic_register_sysfs [16:37:24] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name [16:37:24] [PASSED] drm_test_drm_connector_dynamic_register_debugfs [16:37:24] ========= [PASSED] drm_connector_dynamic_register ========== [16:37:24] = drm_connector_attach_broadcast_rgb_property (2 subtests) = [16:37:24] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property [16:37:24] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector [16:37:24] === [PASSED] drm_connector_attach_broadcast_rgb_property === [16:37:24] ========== drm_get_tv_mode_from_name (2 subtests) ========== [16:37:24] ========== drm_test_get_tv_mode_from_name_valid =========== [16:37:24] [PASSED] NTSC [16:37:24] [PASSED] NTSC-443 [16:37:24] [PASSED] NTSC-J [16:37:24] [PASSED] PAL [16:37:24] [PASSED] PAL-M [16:37:24] [PASSED] PAL-N [16:37:24] [PASSED] SECAM [16:37:24] [PASSED] Mono [16:37:24] ====== [PASSED] drm_test_get_tv_mode_from_name_valid ======= [16:37:24] [PASSED] drm_test_get_tv_mode_from_name_truncated [16:37:24] ============ [PASSED] drm_get_tv_mode_from_name ============ [16:37:24] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) = [16:37:24] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb [16:37:24] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc [16:37:24] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1 [16:37:24] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc [16:37:24] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1 [16:37:24] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double [16:37:24] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid = [16:37:24] [PASSED] VIC 96 [16:37:24] [PASSED] VIC 97 [16:37:24] [PASSED] VIC 101 [16:37:24] [PASSED] VIC 102 [16:37:24] [PASSED] VIC 106 [16:37:24] [PASSED] VIC 107 [16:37:24] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid === [16:37:24] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc [16:37:24] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc [16:37:24] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc [16:37:24] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc [16:37:24] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc [16:37:24] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ==== [16:37:24] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) == [16:37:24] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ==== [16:37:24] [PASSED] Automatic [16:37:24] [PASSED] Full [16:37:24] [PASSED] Limited 16:235 [16:37:24] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name === [16:37:24] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid [16:37:24] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ==== [16:37:24] == drm_hdmi_connector_get_output_format_name (2 subtests) == [16:37:24] === drm_test_drm_hdmi_connector_get_output_format_name ==== [16:37:24] [PASSED] RGB [16:37:24] [PASSED] YUV 4:2:0 [16:37:24] [PASSED] YUV 4:2:2 [16:37:24] [PASSED] YUV 4:4:4 [16:37:24] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name === [16:37:24] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid [16:37:24] ==== [PASSED] drm_hdmi_connector_get_output_format_name ==== [16:37:24] ============= drm_damage_helper (21 subtests) ============== [16:37:24] [PASSED] drm_test_damage_iter_no_damage [16:37:24] [PASSED] drm_test_damage_iter_no_damage_fractional_src [16:37:24] [PASSED] drm_test_damage_iter_no_damage_src_moved [16:37:24] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved [16:37:24] [PASSED] drm_test_damage_iter_no_damage_not_visible [16:37:24] [PASSED] drm_test_damage_iter_no_damage_no_crtc [16:37:24] [PASSED] drm_test_damage_iter_no_damage_no_fb [16:37:24] [PASSED] drm_test_damage_iter_simple_damage [16:37:24] [PASSED] drm_test_damage_iter_single_damage [16:37:24] [PASSED] drm_test_damage_iter_single_damage_intersect_src [16:37:24] [PASSED] drm_test_damage_iter_single_damage_outside_src [16:37:24] [PASSED] drm_test_damage_iter_single_damage_fractional_src [16:37:24] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src [16:37:24] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src [16:37:24] [PASSED] drm_test_damage_iter_single_damage_src_moved [16:37:24] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved [16:37:24] [PASSED] drm_test_damage_iter_damage [16:37:24] [PASSED] drm_test_damage_iter_damage_one_intersect [16:37:24] [PASSED] drm_test_damage_iter_damage_one_outside [16:37:24] [PASSED] drm_test_damage_iter_damage_src_moved [16:37:24] [PASSED] drm_test_damage_iter_damage_not_visible [16:37:24] ================ [PASSED] drm_damage_helper ================ [16:37:24] ============== drm_dp_mst_helper (3 subtests) ============== [16:37:24] ============== drm_test_dp_mst_calc_pbn_mode ============== [16:37:24] [PASSED] Clock 154000 BPP 30 DSC disabled [16:37:24] [PASSED] Clock 234000 BPP 30 DSC disabled [16:37:24] [PASSED] Clock 297000 BPP 24 DSC disabled [16:37:24] [PASSED] Clock 332880 BPP 24 DSC enabled [16:37:24] [PASSED] Clock 324540 BPP 24 DSC enabled [16:37:24] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ========== [16:37:24] ============== drm_test_dp_mst_calc_pbn_div =============== [16:37:24] [PASSED] Link rate 2000000 lane count 4 [16:37:24] [PASSED] Link rate 2000000 lane count 2 [16:37:24] [PASSED] Link rate 2000000 lane count 1 [16:37:24] [PASSED] Link rate 1350000 lane count 4 [16:37:24] [PASSED] Link rate 1350000 lane count 2 [16:37:24] [PASSED] Link rate 1350000 lane count 1 [16:37:24] [PASSED] Link rate 1000000 lane count 4 [16:37:24] [PASSED] Link rate 1000000 lane count 2 [16:37:24] [PASSED] Link rate 1000000 lane count 1 [16:37:24] [PASSED] Link rate 810000 lane count 4 [16:37:24] [PASSED] Link rate 810000 lane count 2 [16:37:24] [PASSED] Link rate 810000 lane count 1 [16:37:24] [PASSED] Link rate 540000 lane count 4 [16:37:24] [PASSED] Link rate 540000 lane count 2 [16:37:24] [PASSED] Link rate 540000 lane count 1 [16:37:24] [PASSED] Link rate 270000 lane count 4 [16:37:24] [PASSED] Link rate 270000 lane count 2 [16:37:24] [PASSED] Link rate 270000 lane count 1 [16:37:24] [PASSED] Link rate 162000 lane count 4 [16:37:24] [PASSED] Link rate 162000 lane count 2 [16:37:24] [PASSED] Link rate 162000 lane count 1 [16:37:24] ========== [PASSED] drm_test_dp_mst_calc_pbn_div =========== [16:37:24] ========= drm_test_dp_mst_sideband_msg_req_decode ========= [16:37:24] [PASSED] DP_ENUM_PATH_RESOURCES with port number [16:37:24] [PASSED] DP_POWER_UP_PHY with port number [16:37:24] [PASSED] DP_POWER_DOWN_PHY with port number [16:37:24] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks [16:37:24] [PASSED] DP_ALLOCATE_PAYLOAD with port number [16:37:24] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI [16:37:24] [PASSED] DP_ALLOCATE_PAYLOAD with PBN [16:37:24] [PASSED] DP_QUERY_PAYLOAD with port number [16:37:24] [PASSED] DP_QUERY_PAYLOAD with VCPI [16:37:24] [PASSED] DP_REMOTE_DPCD_READ with port number [16:37:24] [PASSED] DP_REMOTE_DPCD_READ with DPCD address [16:37:24] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes [16:37:24] [PASSED] DP_REMOTE_DPCD_WRITE with port number [16:37:24] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address [16:37:24] [PASSED] DP_REMOTE_DPCD_WRITE with data array [16:37:24] [PASSED] DP_REMOTE_I2C_READ with port number [16:37:24] [PASSED] DP_REMOTE_I2C_READ with I2C device ID [16:37:24] [PASSED] DP_REMOTE_I2C_READ with transactions array [16:37:24] [PASSED] DP_REMOTE_I2C_WRITE with port number [16:37:24] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID [16:37:24] [PASSED] DP_REMOTE_I2C_WRITE with data array [16:37:24] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID [16:37:24] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID [16:37:24] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event [16:37:24] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event [16:37:24] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior [16:37:24] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior [16:37:24] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode ===== [16:37:24] ================ [PASSED] drm_dp_mst_helper ================ [16:37:24] ================== drm_exec (7 subtests) =================== [16:37:24] [PASSED] sanitycheck [16:37:24] [PASSED] test_lock [16:37:24] [PASSED] test_lock_unlock [16:37:24] [PASSED] test_duplicates [16:37:24] [PASSED] test_prepare [16:37:24] [PASSED] test_prepare_array [16:37:24] [PASSED] test_multiple_loops [16:37:24] ==================== [PASSED] drm_exec ===================== [16:37:24] =========== drm_format_helper_test (17 subtests) =========== [16:37:24] ============== drm_test_fb_xrgb8888_to_gray8 ============== [16:37:24] [PASSED] single_pixel_source_buffer [16:37:24] [PASSED] single_pixel_clip_rectangle [16:37:24] [PASSED] well_known_colors [16:37:24] [PASSED] destination_pitch [16:37:24] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ========== [16:37:24] ============= drm_test_fb_xrgb8888_to_rgb332 ============== [16:37:24] [PASSED] single_pixel_source_buffer [16:37:24] [PASSED] single_pixel_clip_rectangle [16:37:24] [PASSED] well_known_colors [16:37:24] [PASSED] destination_pitch [16:37:24] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ========== [16:37:24] ============= drm_test_fb_xrgb8888_to_rgb565 ============== [16:37:24] [PASSED] single_pixel_source_buffer [16:37:24] [PASSED] single_pixel_clip_rectangle [16:37:24] [PASSED] well_known_colors [16:37:24] [PASSED] destination_pitch [16:37:24] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ========== [16:37:24] ============ drm_test_fb_xrgb8888_to_xrgb1555 ============= [16:37:24] [PASSED] single_pixel_source_buffer [16:37:24] [PASSED] single_pixel_clip_rectangle [16:37:24] [PASSED] well_known_colors [16:37:24] [PASSED] destination_pitch [16:37:24] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 ========= [16:37:24] ============ drm_test_fb_xrgb8888_to_argb1555 ============= [16:37:24] [PASSED] single_pixel_source_buffer [16:37:24] [PASSED] single_pixel_clip_rectangle [16:37:24] [PASSED] well_known_colors [16:37:24] [PASSED] destination_pitch [16:37:24] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 ========= [16:37:24] ============ drm_test_fb_xrgb8888_to_rgba5551 ============= [16:37:24] [PASSED] single_pixel_source_buffer [16:37:24] [PASSED] single_pixel_clip_rectangle [16:37:24] [PASSED] well_known_colors [16:37:24] [PASSED] destination_pitch [16:37:24] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 ========= [16:37:24] ============= drm_test_fb_xrgb8888_to_rgb888 ============== [16:37:24] [PASSED] single_pixel_source_buffer [16:37:24] [PASSED] single_pixel_clip_rectangle [16:37:24] [PASSED] well_known_colors [16:37:24] [PASSED] destination_pitch [16:37:24] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ========== [16:37:24] ============= drm_test_fb_xrgb8888_to_bgr888 ============== [16:37:24] [PASSED] single_pixel_source_buffer [16:37:24] [PASSED] single_pixel_clip_rectangle [16:37:24] [PASSED] well_known_colors [16:37:24] [PASSED] destination_pitch [16:37:24] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ========== [16:37:24] ============ drm_test_fb_xrgb8888_to_argb8888 ============= [16:37:24] [PASSED] single_pixel_source_buffer [16:37:24] [PASSED] single_pixel_clip_rectangle [16:37:24] [PASSED] well_known_colors [16:37:24] [PASSED] destination_pitch [16:37:24] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 ========= [16:37:24] =========== drm_test_fb_xrgb8888_to_xrgb2101010 =========== [16:37:24] [PASSED] single_pixel_source_buffer [16:37:24] [PASSED] single_pixel_clip_rectangle [16:37:24] [PASSED] well_known_colors [16:37:24] [PASSED] destination_pitch [16:37:24] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 ======= [16:37:24] =========== drm_test_fb_xrgb8888_to_argb2101010 =========== [16:37:24] [PASSED] single_pixel_source_buffer [16:37:24] [PASSED] single_pixel_clip_rectangle [16:37:24] [PASSED] well_known_colors [16:37:24] [PASSED] destination_pitch [16:37:24] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 ======= [16:37:24] ============== drm_test_fb_xrgb8888_to_mono =============== [16:37:24] [PASSED] single_pixel_source_buffer [16:37:24] [PASSED] single_pixel_clip_rectangle [16:37:24] [PASSED] well_known_colors [16:37:24] [PASSED] destination_pitch [16:37:24] ========== [PASSED] drm_test_fb_xrgb8888_to_mono =========== [16:37:24] ==================== drm_test_fb_swab ===================== [16:37:24] [PASSED] single_pixel_source_buffer [16:37:24] [PASSED] single_pixel_clip_rectangle [16:37:24] [PASSED] well_known_colors [16:37:24] [PASSED] destination_pitch [16:37:24] ================ [PASSED] drm_test_fb_swab ================= [16:37:24] ============ drm_test_fb_xrgb8888_to_xbgr8888 ============= [16:37:24] [PASSED] single_pixel_source_buffer [16:37:24] [PASSED] single_pixel_clip_rectangle [16:37:24] [PASSED] well_known_colors [16:37:24] [PASSED] destination_pitch [16:37:24] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 ========= [16:37:24] ============ drm_test_fb_xrgb8888_to_abgr8888 ============= [16:37:24] [PASSED] single_pixel_source_buffer [16:37:24] [PASSED] single_pixel_clip_rectangle [16:37:24] [PASSED] well_known_colors [16:37:24] [PASSED] destination_pitch [16:37:24] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 ========= [16:37:24] ================= drm_test_fb_clip_offset ================= [16:37:24] [PASSED] pass through [16:37:24] [PASSED] horizontal offset [16:37:24] [PASSED] vertical offset [16:37:24] [PASSED] horizontal and vertical offset [16:37:24] [PASSED] horizontal offset (custom pitch) [16:37:24] [PASSED] vertical offset (custom pitch) [16:37:24] [PASSED] horizontal and vertical offset (custom pitch) [16:37:24] ============= [PASSED] drm_test_fb_clip_offset ============= [16:37:24] =================== drm_test_fb_memcpy ==================== [16:37:24] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258) [16:37:24] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258) [16:37:24] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559) [16:37:24] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258) [16:37:24] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258) [16:37:24] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559) [16:37:24] [PASSED] well_known_colors: XB24 little-endian (0x34324258) [16:37:24] [PASSED] well_known_colors: XRA8 little-endian (0x38415258) [16:37:24] [PASSED] well_known_colors: YU24 little-endian (0x34325559) [16:37:24] [PASSED] destination_pitch: XB24 little-endian (0x34324258) [16:37:24] [PASSED] destination_pitch: XRA8 little-endian (0x38415258) [16:37:24] [PASSED] destination_pitch: YU24 little-endian (0x34325559) [16:37:24] =============== [PASSED] drm_test_fb_memcpy ================ [16:37:24] ============= [PASSED] drm_format_helper_test ============== [16:37:24] ================= drm_format (18 subtests) ================= [16:37:24] [PASSED] drm_test_format_block_width_invalid [16:37:24] [PASSED] drm_test_format_block_width_one_plane [16:37:24] [PASSED] drm_test_format_block_width_two_plane [16:37:24] [PASSED] drm_test_format_block_width_three_plane [16:37:24] [PASSED] drm_test_format_block_width_tiled [16:37:24] [PASSED] drm_test_format_block_height_invalid [16:37:24] [PASSED] drm_test_format_block_height_one_plane [16:37:24] [PASSED] drm_test_format_block_height_two_plane [16:37:24] [PASSED] drm_test_format_block_height_three_plane [16:37:24] [PASSED] drm_test_format_block_height_tiled [16:37:24] [PASSED] drm_test_format_min_pitch_invalid [16:37:24] [PASSED] drm_test_format_min_pitch_one_plane_8bpp [16:37:24] [PASSED] drm_test_format_min_pitch_one_plane_16bpp [16:37:24] [PASSED] drm_test_format_min_pitch_one_plane_24bpp [16:37:24] [PASSED] drm_test_format_min_pitch_one_plane_32bpp [16:37:24] [PASSED] drm_test_format_min_pitch_two_plane [16:37:24] [PASSED] drm_test_format_min_pitch_three_plane_8bpp [16:37:24] [PASSED] drm_test_format_min_pitch_tiled [16:37:24] =================== [PASSED] drm_format ==================== [16:37:24] ============== drm_framebuffer (10 subtests) =============== [16:37:24] ========== drm_test_framebuffer_check_src_coords ========== [16:37:24] [PASSED] Success: source fits into fb [16:37:24] [PASSED] Fail: overflowing fb with x-axis coordinate [16:37:24] [PASSED] Fail: overflowing fb with y-axis coordinate [16:37:24] [PASSED] Fail: overflowing fb with source width [16:37:24] [PASSED] Fail: overflowing fb with source height [16:37:24] ====== [PASSED] drm_test_framebuffer_check_src_coords ====== [16:37:24] [PASSED] drm_test_framebuffer_cleanup [16:37:24] =============== drm_test_framebuffer_create =============== [16:37:24] [PASSED] ABGR8888 normal sizes [16:37:24] [PASSED] ABGR8888 max sizes [16:37:24] [PASSED] ABGR8888 pitch greater than min required [16:37:24] [PASSED] ABGR8888 pitch less than min required [16:37:24] [PASSED] ABGR8888 Invalid width [16:37:24] [PASSED] ABGR8888 Invalid buffer handle [16:37:24] [PASSED] No pixel format [16:37:24] [PASSED] ABGR8888 Width 0 [16:37:24] [PASSED] ABGR8888 Height 0 [16:37:24] [PASSED] ABGR8888 Out of bound height * pitch combination [16:37:24] [PASSED] ABGR8888 Large buffer offset [16:37:24] [PASSED] ABGR8888 Buffer offset for inexistent plane [16:37:24] [PASSED] ABGR8888 Invalid flag [16:37:24] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers [16:37:24] [PASSED] ABGR8888 Valid buffer modifier [16:37:24] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE) [16:37:24] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS [16:37:24] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS [16:37:24] [PASSED] NV12 Normal sizes [16:37:24] [PASSED] NV12 Max sizes [16:37:24] [PASSED] NV12 Invalid pitch [16:37:24] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag [16:37:24] [PASSED] NV12 different modifier per-plane [16:37:24] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE [16:37:24] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS [16:37:24] [PASSED] NV12 Modifier for inexistent plane [16:37:24] [PASSED] NV12 Handle for inexistent plane [16:37:24] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS [16:37:24] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier [16:37:24] [PASSED] YVU420 Normal sizes [16:37:24] [PASSED] YVU420 Max sizes [16:37:24] [PASSED] YVU420 Invalid pitch [16:37:24] [PASSED] YVU420 Different pitches [16:37:24] [PASSED] YVU420 Different buffer offsets/pitches [16:37:24] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS [16:37:24] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS [16:37:24] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS [16:37:24] [PASSED] YVU420 Valid modifier [16:37:24] [PASSED] YVU420 Different modifiers per plane [16:37:24] [PASSED] YVU420 Modifier for inexistent plane [16:37:24] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR) [16:37:24] [PASSED] X0L2 Normal sizes [16:37:24] [PASSED] X0L2 Max sizes [16:37:24] [PASSED] X0L2 Invalid pitch [16:37:24] [PASSED] X0L2 Pitch greater than minimum required [16:37:24] [PASSED] X0L2 Handle for inexistent plane [16:37:24] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set [16:37:24] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set [16:37:24] [PASSED] X0L2 Valid modifier [16:37:24] [PASSED] X0L2 Modifier for inexistent plane [16:37:24] =========== [PASSED] drm_test_framebuffer_create =========== [16:37:24] [PASSED] drm_test_framebuffer_free [16:37:24] [PASSED] drm_test_framebuffer_init [16:37:24] [PASSED] drm_test_framebuffer_init_bad_format [16:37:24] [PASSED] drm_test_framebuffer_init_dev_mismatch [16:37:24] [PASSED] drm_test_framebuffer_lookup [16:37:24] [PASSED] drm_test_framebuffer_lookup_inexistent [16:37:24] [PASSED] drm_test_framebuffer_modifiers_not_supported [16:37:24] ================= [PASSED] drm_framebuffer ================= [16:37:24] ================ drm_gem_shmem (8 subtests) ================ [16:37:24] [PASSED] drm_gem_shmem_test_obj_create [16:37:24] [PASSED] drm_gem_shmem_test_obj_create_private [16:37:24] [PASSED] drm_gem_shmem_test_pin_pages [16:37:24] [PASSED] drm_gem_shmem_test_vmap [16:37:24] [PASSED] drm_gem_shmem_test_get_sg_table [16:37:24] [PASSED] drm_gem_shmem_test_get_pages_sgt [16:37:24] [PASSED] drm_gem_shmem_test_madvise [16:37:24] [PASSED] drm_gem_shmem_test_purge [16:37:24] ================== [PASSED] drm_gem_shmem ================== [16:37:24] === drm_atomic_helper_connector_hdmi_check (29 subtests) === [16:37:24] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode [16:37:24] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1 [16:37:24] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode [16:37:24] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1 [16:37:24] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode [16:37:24] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1 [16:37:24] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 ======= [16:37:24] [PASSED] Automatic [16:37:24] [PASSED] Full [16:37:24] [PASSED] Limited 16:235 [16:37:24] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 === [16:37:24] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed [16:37:24] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed [16:37:24] [PASSED] drm_test_check_disable_connector [16:37:24] [PASSED] drm_test_check_hdmi_funcs_reject_rate [16:37:24] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb [16:37:24] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420 [16:37:24] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422 [16:37:24] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420 [16:37:24] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420 [16:37:24] [PASSED] drm_test_check_output_bpc_crtc_mode_changed [16:37:24] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed [16:37:24] [PASSED] drm_test_check_output_bpc_dvi [16:37:24] [PASSED] drm_test_check_output_bpc_format_vic_1 [16:37:24] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only [16:37:24] [PASSED] drm_test_check_output_bpc_format_display_rgb_only [16:37:24] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only [16:37:24] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only [16:37:24] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc [16:37:24] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc [16:37:24] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc [16:37:24] ============ drm_test_check_hdmi_color_format ============= [16:37:24] [PASSED] AUTO -> RGB [16:37:24] [PASSED] YCBCR422 -> YUV422 [16:37:24] [PASSED] YCBCR420 -> YUV420 [16:37:24] [PASSED] YCBCR444 -> YUV444 [16:37:24] [PASSED] RGB -> RGB [16:37:24] ======== [PASSED] drm_test_check_hdmi_color_format ========= [16:37:24] ======== drm_test_check_hdmi_color_format_420_only ======== [16:37:24] [PASSED] RGB should fail [16:37:24] [PASSED] YUV444 should fail [16:37:24] [PASSED] YUV422 should fail [16:37:24] [PASSED] YUV420 should work [16:37:24] ==== [PASSED] drm_test_check_hdmi_color_format_420_only ==== [16:37:24] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ====== [16:37:24] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ==== [16:37:24] [PASSED] drm_test_check_broadcast_rgb_value [16:37:24] [PASSED] drm_test_check_bpc_8_value [16:37:24] [PASSED] drm_test_check_bpc_10_value [16:37:24] [PASSED] drm_test_check_bpc_12_value [16:37:24] [PASSED] drm_test_check_format_value [16:37:24] [PASSED] drm_test_check_tmds_char_value [16:37:24] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ====== [16:37:24] = drm_atomic_helper_connector_hdmi_mode_valid (7 subtests) = [16:37:24] [PASSED] drm_test_check_mode_valid [16:37:24] [PASSED] drm_test_check_mode_valid_reject [16:37:24] [PASSED] drm_test_check_mode_valid_reject_rate [16:37:24] [PASSED] drm_test_check_mode_valid_reject_max_clock [16:37:24] [PASSED] drm_test_check_mode_valid_yuv420_only_max_clock [16:37:24] [PASSED] drm_test_check_mode_valid_reject_yuv420_only_connector [16:37:24] [PASSED] drm_test_check_mode_valid_accept_yuv420_also_connector_rgb [16:37:24] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid === [16:37:24] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) = [16:37:24] [PASSED] drm_test_check_infoframes [16:37:24] [PASSED] drm_test_check_reject_avi_infoframe [16:37:24] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8 [16:37:24] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10 [16:37:24] [PASSED] drm_test_check_reject_audio_infoframe [16:37:24] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes === [16:37:24] ================= drm_managed (2 subtests) ================= [16:37:24] [PASSED] drm_test_managed_release_action [16:37:24] [PASSED] drm_test_managed_run_action [16:37:24] =================== [PASSED] drm_managed =================== [16:37:24] =================== drm_mm (6 subtests) ==================== [16:37:24] [PASSED] drm_test_mm_init [16:37:24] [PASSED] drm_test_mm_debug [16:37:24] [PASSED] drm_test_mm_align32 [16:37:24] [PASSED] drm_test_mm_align64 [16:37:24] [PASSED] drm_test_mm_lowest [16:37:24] [PASSED] drm_test_mm_highest [16:37:24] ===================== [PASSED] drm_mm ====================== [16:37:24] ============= drm_modes_analog_tv (5 subtests) ============= [16:37:24] [PASSED] drm_test_modes_analog_tv_mono_576i [16:37:24] [PASSED] drm_test_modes_analog_tv_ntsc_480i [16:37:24] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined [16:37:24] [PASSED] drm_test_modes_analog_tv_pal_576i [16:37:24] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined [16:37:24] =============== [PASSED] drm_modes_analog_tv =============== [16:37:24] ============== drm_panic_helper (3 subtests) =============== [16:37:24] ============= drm_test_panic_screen_user_map ============== [16:37:24] [PASSED] Panic screen user, mode: 1024 x 768 XR24 little-endian (0x34325258) [16:37:24] [PASSED] Panic screen user, mode: 494 x 494 XR24 little-endian (0x34325258) [16:37:24] [PASSED] Panic screen user, mode: 1920 x 1080 XR24 little-endian (0x34325258) [16:37:24] [PASSED] Panic screen user, mode: 1024 x 768 RG16 little-endian (0x36314752) [16:37:24] [PASSED] Panic screen user, mode: 1024 x 768 RG24 little-endian (0x34324752) [16:37:24] [PASSED] Panic screen kmsg, mode: 1024 x 768 XR24 little-endian (0x34325258) [16:37:24] [PASSED] Panic screen kmsg, mode: 494 x 494 XR24 little-endian (0x34325258) [16:37:24] [PASSED] Panic screen kmsg, mode: 1920 x 1080 XR24 little-endian (0x34325258) [16:37:24] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG16 little-endian (0x36314752) [16:37:24] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG24 little-endian (0x34324752) [16:37:24] ========= [PASSED] drm_test_panic_screen_user_map ========== [16:37:24] ============= drm_test_panic_screen_user_page ============= [16:37:24] [PASSED] Panic screen user, mode: 1024 x 768 XR24 little-endian (0x34325258) [16:37:24] [PASSED] Panic screen user, mode: 494 x 494 XR24 little-endian (0x34325258) [16:37:24] [PASSED] Panic screen user, mode: 1920 x 1080 XR24 little-endian (0x34325258) [16:37:24] [PASSED] Panic screen user, mode: 1024 x 768 RG16 little-endian (0x36314752) [16:37:24] [PASSED] Panic screen user, mode: 1024 x 768 RG24 little-endian (0x34324752) [16:37:24] [PASSED] Panic screen kmsg, mode: 1024 x 768 XR24 little-endian (0x34325258) [16:37:24] [PASSED] Panic screen kmsg, mode: 494 x 494 XR24 little-endian (0x34325258) [16:37:24] [PASSED] Panic screen kmsg, mode: 1920 x 1080 XR24 little-endian (0x34325258) [16:37:24] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG16 little-endian (0x36314752) [16:37:24] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG24 little-endian (0x34324752) [16:37:24] ========= [PASSED] drm_test_panic_screen_user_page ========= [16:37:24] ========== drm_test_panic_screen_user_set_pixel =========== [16:37:24] [PASSED] Panic screen user, mode: 1024 x 768 XR24 little-endian (0x34325258) [16:37:24] [PASSED] Panic screen user, mode: 494 x 494 XR24 little-endian (0x34325258) [16:37:24] [PASSED] Panic screen user, mode: 1920 x 1080 XR24 little-endian (0x34325258) [16:37:24] [PASSED] Panic screen user, mode: 1024 x 768 RG16 little-endian (0x36314752) [16:37:24] [PASSED] Panic screen user, mode: 1024 x 768 RG24 little-endian (0x34324752) [16:37:24] [PASSED] Panic screen kmsg, mode: 1024 x 768 XR24 little-endian (0x34325258) [16:37:24] [PASSED] Panic screen kmsg, mode: 494 x 494 XR24 little-endian (0x34325258) [16:37:24] [PASSED] Panic screen kmsg, mode: 1920 x 1080 XR24 little-endian (0x34325258) [16:37:25] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG16 little-endian (0x36314752) [16:37:25] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG24 little-endian (0x34324752) [16:37:25] ====== [PASSED] drm_test_panic_screen_user_set_pixel ======= [16:37:25] ================ [PASSED] drm_panic_helper ================= [16:37:25] ============== drm_plane_helper (2 subtests) =============== [16:37:25] =============== drm_test_check_plane_state ================ [16:37:25] [PASSED] clipping_simple [16:37:25] [PASSED] clipping_rotate_reflect [16:37:25] [PASSED] positioning_simple [16:37:25] [PASSED] upscaling [16:37:25] [PASSED] downscaling [16:37:25] [PASSED] rounding1 [16:37:25] [PASSED] rounding2 [16:37:25] [PASSED] rounding3 [16:37:25] [PASSED] rounding4 [16:37:25] =========== [PASSED] drm_test_check_plane_state ============ [16:37:25] =========== drm_test_check_invalid_plane_state ============ [16:37:25] [PASSED] positioning_invalid [16:37:25] [PASSED] upscaling_invalid [16:37:25] [PASSED] downscaling_invalid [16:37:25] ======= [PASSED] drm_test_check_invalid_plane_state ======== [16:37:25] ================ [PASSED] drm_plane_helper ================= [16:37:25] ====== drm_connector_helper_tv_get_modes (1 subtest) ======= [16:37:25] ====== drm_test_connector_helper_tv_get_modes_check ======= [16:37:25] [PASSED] None [16:37:25] [PASSED] PAL [16:37:25] [PASSED] NTSC [16:37:25] [PASSED] Both, NTSC Default [16:37:25] [PASSED] Both, PAL Default [16:37:25] [PASSED] Both, NTSC Default, with PAL on command-line [16:37:25] [PASSED] Both, PAL Default, with NTSC on command-line [16:37:25] == [PASSED] drm_test_connector_helper_tv_get_modes_check === [16:37:25] ======== [PASSED] drm_connector_helper_tv_get_modes ======== [16:37:25] ================== drm_rect (9 subtests) =================== [16:37:25] [PASSED] drm_test_rect_clip_scaled_div_by_zero [16:37:25] [PASSED] drm_test_rect_clip_scaled_not_clipped [16:37:25] [PASSED] drm_test_rect_clip_scaled_clipped [16:37:25] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned [16:37:25] ================= drm_test_rect_intersect ================= [16:37:25] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0 [16:37:25] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1 [16:37:25] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0 [16:37:25] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1 [16:37:25] [PASSED] right x left: 2x1+0+0 x 3x1+1+0 [16:37:25] [PASSED] left x right: 3x1+1+0 x 2x1+0+0 [16:37:25] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1 [16:37:25] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0 [16:37:25] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1 [16:37:25] [PASSED] touching side: 1x1+0+0 x 1x1+1+0 [16:37:25] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0 [16:37:25] [PASSED] inside another: 2x2+0+0 x 1x1+1+1 [16:37:25] [PASSED] far away: 1x1+0+0 x 1x1+3+6 [16:37:25] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10 [16:37:25] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10 [16:37:25] ============= [PASSED] drm_test_rect_intersect ============= [16:37:25] ================ drm_test_rect_calc_hscale ================ [16:37:25] [PASSED] normal use [16:37:25] [PASSED] out of max range [16:37:25] [PASSED] out of min range [16:37:25] [PASSED] zero dst [16:37:25] [PASSED] negative src [16:37:25] [PASSED] negative dst [16:37:25] ============ [PASSED] drm_test_rect_calc_hscale ============ [16:37:25] ================ drm_test_rect_calc_vscale ================ [16:37:25] [PASSED] normal use [16:37:25] [PASSED] out of max range [16:37:25] [PASSED] out of min range [16:37:25] [PASSED] zero dst [16:37:25] [PASSED] negative src [16:37:25] [PASSED] negative dst [16:37:25] ============ [PASSED] drm_test_rect_calc_vscale ============ [16:37:25] ================== drm_test_rect_rotate =================== [16:37:25] [PASSED] reflect-x [16:37:25] [PASSED] reflect-y [16:37:25] [PASSED] rotate-0 [16:37:25] [PASSED] rotate-90 [16:37:25] [PASSED] rotate-180 [16:37:25] [PASSED] rotate-270 [16:37:25] ============== [PASSED] drm_test_rect_rotate =============== [16:37:25] ================ drm_test_rect_rotate_inv ================= [16:37:25] [PASSED] reflect-x [16:37:25] [PASSED] reflect-y [16:37:25] [PASSED] rotate-0 [16:37:25] [PASSED] rotate-90 [16:37:25] [PASSED] rotate-180 [16:37:25] [PASSED] rotate-270 [16:37:25] ============ [PASSED] drm_test_rect_rotate_inv ============= [16:37:25] ==================== [PASSED] drm_rect ===================== [16:37:25] ============ drm_sysfb_modeset_test (1 subtest) ============ [16:37:25] ============ drm_test_sysfb_build_fourcc_list ============= [16:37:25] [PASSED] no native formats [16:37:25] [PASSED] XRGB8888 as native format [16:37:25] [PASSED] remove duplicates [16:37:25] [PASSED] convert alpha formats [16:37:25] [PASSED] random formats [16:37:25] ======== [PASSED] drm_test_sysfb_build_fourcc_list ========= [16:37:25] ============= [PASSED] drm_sysfb_modeset_test ============== [16:37:25] ================== drm_fixp (2 subtests) =================== [16:37:25] [PASSED] drm_test_int2fixp [16:37:25] [PASSED] drm_test_sm2fixp [16:37:25] ==================== [PASSED] drm_fixp ===================== [16:37:25] ============================================================ [16:37:25] Testing complete. Ran 671 tests: passed: 671 [16:37:25] Elapsed time: 27.557s total, 1.852s configuring, 25.239s building, 0.416s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig [16:37:25] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig [16:37:27] 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:37:37] Starting KUnit Kernel (1/1)... [16:37:37] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [16:37:37] ============= refcount_interrupt (4 subtests) ============== [16:37:37] [PASSED] test_single_irq_change [16:37:37] [PASSED] test_nested_irq_change [16:37:37] [PASSED] test_multiple_irq_change [16:37:37] [PASSED] test_irq_save [16:37:37] =============== [PASSED] refcount_interrupt ================ [16:37:37] ================= ttm_device (5 subtests) ================== [16:37:37] [PASSED] ttm_device_init_basic [16:37:37] [PASSED] ttm_device_init_multiple [16:37:37] [PASSED] ttm_device_fini_basic [16:37:37] [PASSED] ttm_device_init_no_vma_man [16:37:37] ================== ttm_device_init_pools ================== [16:37:37] [PASSED] No DMA allocations, no DMA32 required [16:37:37] [PASSED] DMA allocations, DMA32 required [16:37:37] [PASSED] No DMA allocations, DMA32 required [16:37:37] [PASSED] DMA allocations, no DMA32 required [16:37:37] ============== [PASSED] ttm_device_init_pools ============== [16:37:37] =================== [PASSED] ttm_device ==================== [16:37:37] ================== ttm_pool (8 subtests) =================== [16:37:37] ================== ttm_pool_alloc_basic =================== [16:37:37] [PASSED] One page [16:37:37] [PASSED] More than one page [16:37:37] [PASSED] Above the allocation limit [16:37:37] [PASSED] One page, with coherent DMA mappings enabled [16:37:37] [PASSED] Above the allocation limit, with coherent DMA mappings enabled [16:37:37] ============== [PASSED] ttm_pool_alloc_basic =============== [16:37:37] ============== ttm_pool_alloc_basic_dma_addr ============== [16:37:37] [PASSED] One page [16:37:37] [PASSED] More than one page [16:37:37] [PASSED] Above the allocation limit [16:37:37] [PASSED] One page, with coherent DMA mappings enabled [16:37:37] [PASSED] Above the allocation limit, with coherent DMA mappings enabled [16:37:37] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ========== [16:37:37] [PASSED] ttm_pool_alloc_order_caching_match [16:37:37] [PASSED] ttm_pool_alloc_caching_mismatch [16:37:37] [PASSED] ttm_pool_alloc_order_mismatch [16:37:37] [PASSED] ttm_pool_free_dma_alloc [16:37:37] [PASSED] ttm_pool_free_no_dma_alloc [16:37:37] [PASSED] ttm_pool_fini_basic [16:37:37] ==================== [PASSED] ttm_pool ===================== [16:37:37] ================ ttm_resource (8 subtests) ================= [16:37:37] ================= ttm_resource_init_basic ================= [16:37:37] [PASSED] Init resource in TTM_PL_SYSTEM [16:37:37] [PASSED] Init resource in TTM_PL_VRAM [16:37:37] [PASSED] Init resource in a private placement [16:37:37] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags [16:37:37] ============= [PASSED] ttm_resource_init_basic ============= [16:37:37] [PASSED] ttm_resource_init_pinned [16:37:37] [PASSED] ttm_resource_fini_basic [16:37:37] [PASSED] ttm_resource_manager_init_basic [16:37:37] [PASSED] ttm_resource_manager_usage_basic [16:37:37] [PASSED] ttm_resource_manager_set_used_basic [16:37:37] [PASSED] ttm_sys_man_alloc_basic [16:37:37] [PASSED] ttm_sys_man_free_basic [16:37:37] ================== [PASSED] ttm_resource =================== [16:37:37] =================== ttm_tt (15 subtests) =================== [16:37:37] ==================== ttm_tt_init_basic ==================== [16:37:37] [PASSED] Page-aligned size [16:37:37] [PASSED] Extra pages requested [16:37:37] ================ [PASSED] ttm_tt_init_basic ================ [16:37:37] [PASSED] ttm_tt_init_misaligned [16:37:37] [PASSED] ttm_tt_fini_basic [16:37:37] [PASSED] ttm_tt_fini_sg [16:37:37] [PASSED] ttm_tt_fini_shmem [16:37:37] [PASSED] ttm_tt_create_basic [16:37:37] [PASSED] ttm_tt_create_invalid_bo_type [16:37:37] [PASSED] ttm_tt_create_ttm_exists [16:37:37] [PASSED] ttm_tt_create_failed [16:37:37] [PASSED] ttm_tt_destroy_basic [16:37:37] [PASSED] ttm_tt_populate_null_ttm [16:37:37] [PASSED] ttm_tt_populate_populated_ttm [16:37:37] [PASSED] ttm_tt_unpopulate_basic [16:37:37] [PASSED] ttm_tt_unpopulate_empty_ttm [16:37:37] [PASSED] ttm_tt_swapin_basic [16:37:37] ===================== [PASSED] ttm_tt ====================== [16:37:37] =================== ttm_bo (14 subtests) =================== [16:37:37] =========== ttm_bo_reserve_optimistic_no_ticket =========== [16:37:37] [PASSED] Cannot be interrupted and sleeps [16:37:37] [PASSED] Cannot be interrupted, locks straight away [16:37:37] [PASSED] Can be interrupted, sleeps [16:37:37] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket ======= [16:37:37] [PASSED] ttm_bo_reserve_locked_no_sleep [16:37:37] [PASSED] ttm_bo_reserve_no_wait_ticket [16:37:37] [PASSED] ttm_bo_reserve_double_resv [16:37:37] [PASSED] ttm_bo_reserve_interrupted [16:37:37] [PASSED] ttm_bo_reserve_deadlock [16:37:37] [PASSED] ttm_bo_unreserve_basic [16:37:37] [PASSED] ttm_bo_unreserve_pinned [16:37:37] [PASSED] ttm_bo_unreserve_bulk [16:37:37] [PASSED] ttm_bo_fini_basic [16:37:37] [PASSED] ttm_bo_fini_shared_resv [16:37:37] [PASSED] ttm_bo_pin_basic [16:37:37] [PASSED] ttm_bo_pin_unpin_resource [16:37:37] [PASSED] ttm_bo_multiple_pin_one_unpin [16:37:37] ===================== [PASSED] ttm_bo ====================== [16:37:37] ============== ttm_bo_validate (22 subtests) =============== [16:37:37] ============== ttm_bo_init_reserved_sys_man =============== [16:37:37] [PASSED] Buffer object for userspace [16:37:37] [PASSED] Kernel buffer object [16:37:37] [PASSED] Shared buffer object [16:37:37] ========== [PASSED] ttm_bo_init_reserved_sys_man =========== [16:37:37] ============== ttm_bo_init_reserved_mock_man ============== [16:37:37] [PASSED] Buffer object for userspace [16:37:37] [PASSED] Kernel buffer object [16:37:37] [PASSED] Shared buffer object [16:37:37] ========== [PASSED] ttm_bo_init_reserved_mock_man ========== [16:37:37] [PASSED] ttm_bo_init_reserved_resv [16:37:37] ================== ttm_bo_validate_basic ================== [16:37:37] [PASSED] Buffer object for userspace [16:37:37] [PASSED] Kernel buffer object [16:37:37] [PASSED] Shared buffer object [16:37:37] ============== [PASSED] ttm_bo_validate_basic ============== [16:37:37] [PASSED] ttm_bo_validate_invalid_placement [16:37:37] ============= ttm_bo_validate_same_placement ============== [16:37:37] [PASSED] System manager [16:37:37] [PASSED] VRAM manager [16:37:37] ========= [PASSED] ttm_bo_validate_same_placement ========== [16:37:37] [PASSED] ttm_bo_validate_failed_alloc [16:37:37] [PASSED] ttm_bo_validate_pinned [16:37:37] [PASSED] ttm_bo_validate_busy_placement [16:37:37] ================ ttm_bo_validate_multihop ================= [16:37:37] [PASSED] Buffer object for userspace [16:37:37] [PASSED] Kernel buffer object [16:37:37] [PASSED] Shared buffer object [16:37:37] ============ [PASSED] ttm_bo_validate_multihop ============= [16:37:37] ========== ttm_bo_validate_no_placement_signaled ========== [16:37:37] [PASSED] Buffer object in system domain, no page vector [16:37:37] [PASSED] Buffer object in system domain with an existing page vector [16:37:37] ====== [PASSED] ttm_bo_validate_no_placement_signaled ====== [16:37:37] ======== ttm_bo_validate_no_placement_not_signaled ======== [16:37:37] [PASSED] Buffer object for userspace [16:37:37] [PASSED] Kernel buffer object [16:37:37] [PASSED] Shared buffer object [16:37:37] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ==== [16:37:37] [PASSED] ttm_bo_validate_move_fence_signaled [16:37:37] ========= ttm_bo_validate_move_fence_not_signaled ========= [16:37:37] [PASSED] Waits for GPU [16:37:37] [PASSED] Tries to lock straight away [16:37:37] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled ===== [16:37:37] [PASSED] ttm_bo_validate_swapout [16:37:37] [PASSED] ttm_bo_validate_happy_evict [16:37:37] [PASSED] ttm_bo_validate_all_pinned_evict [16:37:37] [PASSED] ttm_bo_validate_allowed_only_evict [16:37:37] [PASSED] ttm_bo_validate_deleted_evict [16:37:37] [PASSED] ttm_bo_validate_busy_domain_evict [16:37:37] [PASSED] ttm_bo_validate_evict_gutting [16:37:37] [PASSED] ttm_bo_validate_recrusive_evict [16:37:37] ================= [PASSED] ttm_bo_validate ================= [16:37:37] ============================================================ [16:37:37] Testing complete. Ran 106 tests: passed: 106 [16:37:37] Elapsed time: 12.036s total, 1.849s configuring, 9.973s building, 0.186s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/dma-buf/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/dma-buf/.kunitconfig [16:37:37] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig [16:37:39] 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:37:47] Starting KUnit Kernel (1/1)... [16:37:47] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [16:37:47] ============= refcount_interrupt (4 subtests) ============== [16:37:47] [PASSED] test_single_irq_change [16:37:47] [PASSED] test_nested_irq_change [16:37:47] [PASSED] test_multiple_irq_change [16:37:47] [PASSED] test_irq_save [16:37:47] =============== [PASSED] refcount_interrupt ================ [16:37:47] =============== dma-buf-fence (12 subtests) ================ [16:37:47] [PASSED] test_sanitycheck [16:37:47] [PASSED] test_signaling [16:37:47] [PASSED] test_add_callback [16:37:47] [PASSED] test_late_add_callback [16:37:47] [PASSED] test_rm_callback [16:37:47] [PASSED] test_late_rm_callback [16:37:47] [PASSED] test_status [16:37:47] [PASSED] test_error [16:37:47] [PASSED] test_wait [16:37:47] [PASSED] test_wait_timeout [16:37:47] [PASSED] test_stub [16:37:47] [SKIPPED] test_race_signal_callback (requires at least 2 CPUs) [16:37:47] ================== [PASSED] dma-buf-fence ================== [16:37:47] ============ dma-buf-fence-chain (11 subtests) ============= [16:37:47] [PASSED] test_sanitycheck [16:37:47] [PASSED] test_find_seqno [16:37:47] [PASSED] test_find_signaled [16:37:47] [PASSED] test_find_out_of_order [16:37:53] [PASSED] test_find_gap [16:37:53] [PASSED] test_find_race [16:37:53] [PASSED] test_signal_forward [16:37:53] [PASSED] test_signal_backward [16:37:53] [PASSED] test_wait_forward [16:37:53] [PASSED] test_wait_backward [16:37:53] [PASSED] test_wait_random [16:37:53] =============== [PASSED] dma-buf-fence-chain =============== [16:37:53] ============ dma-buf-fence-unwrap (10 subtests) ============ [16:37:53] [PASSED] test_sanitycheck [16:37:53] [PASSED] test_unwrap_array [16:37:53] [PASSED] test_unwrap_chain [16:37:53] [PASSED] test_unwrap_chain_array [16:37:53] [PASSED] test_unwrap_merge [16:37:53] [PASSED] test_unwrap_merge_duplicate [16:37:53] [PASSED] test_unwrap_merge_seqno [16:37:53] [PASSED] test_unwrap_merge_order [16:37:53] [PASSED] test_unwrap_merge_complex [16:37:53] [PASSED] test_unwrap_merge_complex_seqno [16:37:53] ============== [PASSED] dma-buf-fence-unwrap =============== [16:37:53] ================ dma-buf-resv (5 subtests) ================= [16:37:53] [PASSED] test_sanitycheck [16:37:53] ===================== test_signaling ====================== [16:37:53] [PASSED] kernel [16:37:53] [PASSED] write [16:37:53] [PASSED] read [16:37:53] [PASSED] bookkeep [16:37:53] ================= [PASSED] test_signaling ================== [16:37:53] ====================== test_for_each ====================== [16:37:53] [PASSED] kernel [16:37:53] [PASSED] write [16:37:53] [PASSED] read [16:37:53] [PASSED] bookkeep [16:37:53] ================== [PASSED] test_for_each ================== [16:37:53] ================= test_for_each_unlocked ================== [16:37:53] [PASSED] kernel [16:37:53] [PASSED] write [16:37:53] [PASSED] read [16:37:53] [PASSED] bookkeep [16:37:53] ============= [PASSED] test_for_each_unlocked ============== [16:37:53] ===================== test_get_fences ===================== [16:37:53] [PASSED] kernel [16:37:53] [PASSED] write [16:37:53] [PASSED] read [16:37:53] [PASSED] bookkeep [16:37:53] ================= [PASSED] test_get_fences ================= [16:37:53] ================== [PASSED] dma-buf-resv =================== [16:37:53] ============================================================ [16:37:53] Testing complete. Ran 54 tests: passed: 53, skipped: 1 [16:37:53] Elapsed time: 15.826s total, 1.842s configuring, 8.662s building, 5.278s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
Patchwork
CI✓ Xe.CI.BAT: success for PCI/IOV: Fix SR-IOV locking races and AB-BA deadlocks
In reply to Benjamin Block== Series Details ==
== Series Details ==
Series: PCI/IOV: Fix SR-IOV locking races and AB-BA deadlocks
URL : https://patchwork.freedesktop.org/series/174935/
State : success
== Summary ==
CI Bug Log - changes from xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a_BAT -> xe-pw-174935v1_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (15 -> 15)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-174935v1_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@xe_waitfence@reltime:
- bat-ptl-2: [PASS][1] -> [FAIL][2] ([Intel XE#9115])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/bat-ptl-2/igt@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/bat-ptl-2/igt@[email protected]
[Intel XE#9115]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9115
Build changes
-------------
* Linux: xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a -> xe-pw-174935v1
IGT_9112: 8d3284b5ae16ca1aef353dfaffb6c0896ceacc19 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a: c466c7338ac2447a34b4b00c45ac805a9e8ecf7a
xe-pw-174935v1: 174935v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/index.html
Patchwork
CI✓ Xe.CI.FULL: success for PCI/IOV: Fix SR-IOV locking races and AB-BA deadlocks
In reply to Benjamin Block== Series Details ==
== Series Details ==
Series: PCI/IOV: Fix SR-IOV locking races and AB-BA deadlocks
URL : https://patchwork.freedesktop.org/series/174935/
State : success
== Summary ==
CI Bug Log - changes from xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a_FULL -> xe-pw-174935v1_FULL
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (3 -> 3)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-174935v1_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip:
- shard-ptl: NOTRUN -> [SKIP][1] ([Intel XE#5901])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
- shard-ptl: NOTRUN -> [SKIP][2] ([Intel XE#6925])
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-3/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
* igt@kms_big_fb@linear-8bpp-rotate-270:
- shard-bmg: NOTRUN -> [SKIP][3] ([Intel XE#2327]) +1 other test skip
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-4/igt@[email protected]
- shard-lnl: NOTRUN -> [SKIP][4] ([Intel XE#1407])
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-0-hflip:
- shard-ptl: NOTRUN -> [SKIP][5] ([Intel XE#7085]) +1 other test skip
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip:
- shard-bmg: NOTRUN -> [SKIP][6] ([Intel XE#7059] / [Intel XE#7085])
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@[email protected]
* igt@kms_big_fb@x-tiled-16bpp-rotate-270:
- shard-ptl: NOTRUN -> [SKIP][7] ([Intel XE#5808]) +9 other tests skip
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-1/igt@[email protected]
* igt@kms_big_fb@yf-tiled-addfb-size-overflow:
- shard-bmg: NOTRUN -> [SKIP][8] ([Intel XE#610] / [Intel XE#7387])
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@[email protected]
- shard-ptl: NOTRUN -> [SKIP][9] ([Intel XE#5855])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-3/igt@[email protected]
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
- shard-bmg: NOTRUN -> [SKIP][10] ([Intel XE#1124]) +5 other tests skip
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-9/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip:
- shard-lnl: NOTRUN -> [SKIP][11] ([Intel XE#1124]) +1 other test skip
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@kms_bw@connected-linear-tiling-2-displays-target-2560x1440p:
- shard-ptl: NOTRUN -> [SKIP][12] ([Intel XE#7679])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@kms_bw@connected-linear-tiling-3-displays-target-3840x2160p:
- shard-bmg: NOTRUN -> [SKIP][13] ([Intel XE#7679])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@[email protected]
* igt@kms_bw@linear-tiling-2-displays-target-1920x1080p:
- shard-bmg: NOTRUN -> [SKIP][14] ([Intel XE#367])
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-4/igt@[email protected]
- shard-lnl: NOTRUN -> [SKIP][15] ([Intel XE#367])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc:
- shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#2887]) +8 other tests skip
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-4/igt@[email protected]
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs-cc:
- shard-ptl: NOTRUN -> [SKIP][17] ([Intel XE#5822]) +8 other tests skip
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-3/igt@[email protected]
* igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc:
- shard-lnl: NOTRUN -> [SKIP][18] ([Intel XE#3432])
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@kms_ccs@random-ccs-data-4-tiled-mtl-mc-ccs:
- shard-lnl: NOTRUN -> [SKIP][19] ([Intel XE#2887]) +2 other tests skip
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@kms_chamelium_color@ctm-blue-to-red:
- shard-ptl: NOTRUN -> [SKIP][20] ([Intel XE#5824]) +2 other tests skip
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-7/igt@[email protected]
* igt@kms_chamelium_color@degamma:
- shard-bmg: NOTRUN -> [SKIP][21] ([Intel XE#2325] / [Intel XE#7358]) +1 other test skip
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@[email protected]
* igt@kms_chamelium_color_pipeline@plane-fixed-matrix-yuv-rgb-bt709-lut1d:
- shard-ptl: NOTRUN -> [SKIP][22] ([Intel XE#8391])
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@kms_chamelium_color_pipeline@plane-fixed-matrix-yuv-rgb-bt709-lut1d.html
* igt@kms_chamelium_color_pipeline@plane-lut1d:
- shard-bmg: NOTRUN -> [SKIP][23] ([Intel XE#7358]) +1 other test skip
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-4/igt@[email protected]
- shard-lnl: NOTRUN -> [SKIP][24] ([Intel XE#7358])
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@kms_chamelium_edid@dp-edid-change-during-hibernate:
- shard-bmg: NOTRUN -> [SKIP][25] ([Intel XE#2252]) +2 other tests skip
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@[email protected]
* igt@kms_chamelium_hpd@dp-hpd-with-enabled-mode:
- shard-lnl: NOTRUN -> [SKIP][26] ([Intel XE#373])
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@kms_chamelium_hpd@hdmi-hpd-with-enabled-mode:
- shard-ptl: NOTRUN -> [SKIP][27] ([Intel XE#2252]) +2 other tests skip
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-3/igt@[email protected]
* igt@kms_color_pipeline@plane-ctm3x4-lut1d@pipe-b-plane-4:
- shard-bmg: NOTRUN -> [SKIP][28] ([Intel XE#6969]) +7 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@kms_color_pipeline@[email protected]
* igt@kms_color_pipeline@plane-ctm3x4-lut1d@pipe-d-plane-3:
- shard-ptl: NOTRUN -> [SKIP][29] ([Intel XE#6969]) +7 other tests skip
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-3/igt@kms_color_pipeline@[email protected]
* igt@kms_color_pipeline@plane-fixed-matrix-yuv-rgb-bt2020-lut1d@pipe-a-plane-2:
- shard-ptl: NOTRUN -> [FAIL][30] ([Intel XE#9333]) +12 other tests fail
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@kms_color_pipeline@[email protected]
* igt@kms_content_protection@atomic-hdcp14:
- shard-bmg: NOTRUN -> [FAIL][31] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) +1 other test fail
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-9/igt@[email protected]
* igt@kms_content_protection@lic-type-1:
- shard-ptl: NOTRUN -> [SKIP][32] ([Intel XE#7642]) +1 other test skip
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@kms_content_protection@type1:
- shard-bmg: NOTRUN -> [SKIP][33] ([Intel XE#7642])
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@[email protected]
* igt@kms_cursor_crc@cursor-offscreen-256x85:
- shard-bmg: NOTRUN -> [SKIP][34] ([Intel XE#2320]) +2 other tests skip
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@[email protected]
- shard-ptl: NOTRUN -> [SKIP][35] ([Intel XE#5900])
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-3/igt@[email protected]
* igt@kms_cursor_crc@cursor-onscreen-512x170:
- shard-lnl: NOTRUN -> [SKIP][36] ([Intel XE#2321] / [Intel XE#7355])
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@kms_cursor_crc@cursor-random-512x170:
- shard-bmg: NOTRUN -> [SKIP][37] ([Intel XE#2321] / [Intel XE#7355]) +1 other test skip
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@[email protected]
* igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy:
- shard-ptl: NOTRUN -> [SKIP][38] ([Intel XE#5962]) +1 other test skip
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions:
- shard-ptl: NOTRUN -> [SKIP][39] ([Intel XE#5962] / [Intel XE#7343])
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:
- shard-ptl: NOTRUN -> [SKIP][40] ([Intel XE#6035])
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
* igt@kms_dirtyfb@fbc-dirtyfb-ioctl:
- shard-bmg: NOTRUN -> [SKIP][41] ([Intel XE#4210] / [Intel XE#7467])
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@[email protected]
* igt@kms_dsc@dsc-fractional-bpp-with-bpc-ultrajoiner:
- shard-lnl: NOTRUN -> [SKIP][42] ([Intel XE#8265])
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@kms_dsc@dsc-with-formats-bigjoiner:
- shard-ptl: NOTRUN -> [SKIP][43] ([Intel XE#5907]) +2 other tests skip
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@kms_dsc@dsc-with-output-formats-bigjoiner:
- shard-bmg: NOTRUN -> [SKIP][44] ([Intel XE#8265]) +2 other tests skip
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-9/igt@[email protected]
* igt@kms_feature_discovery@hdr:
- shard-ptl: NOTRUN -> [SKIP][45] ([Intel XE#9287])
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@kms_flip@2x-flip-vs-modeset-vs-hang:
- shard-ptl: NOTRUN -> [SKIP][46] ([Intel XE#2316]) +1 other test skip
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@kms_flip@flip-vs-expired-vblank@b-edp1:
- shard-lnl: [PASS][47] -> [FAIL][48] ([Intel XE#301]) +1 other test fail
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-lnl-3/igt@kms_flip@[email protected]
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-7/igt@kms_flip@[email protected]
* igt@kms_flip_scaled_crc@flip-32bpp-yuv-linear-to-32bpp-yuv-linear-reflect-x:
- shard-ptl: NOTRUN -> [SKIP][49] ([Intel XE#7179])
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@kms_flip_scaled_crc@flip-32bpp-yuv-linear-to-32bpp-yuv-linear-reflect-x.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling:
- shard-ptl: NOTRUN -> [SKIP][50] ([Intel XE#7178]) +2 other tests skip
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/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][51] ([Intel XE#7178] / [Intel XE#7349])
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-4/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling:
- shard-lnl: NOTRUN -> [SKIP][52] ([Intel XE#7178] / [Intel XE#7351])
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling:
- shard-bmg: NOTRUN -> [SKIP][53] ([Intel XE#7178] / [Intel XE#7351]) +3 other tests skip
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling.html
* igt@kms_frontbuffer_tracking@drrshdr-1p-primscrn-spr-indfb-onoff:
- shard-lnl: NOTRUN -> [SKIP][54] ([Intel XE#6312]) +2 other tests skip
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@kms_frontbuffer_tracking@drrshdr-1p-primscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@drrshdr-rgb565-draw-render:
- shard-ptl: NOTRUN -> [SKIP][55] ([Intel XE#6312]) +5 other tests skip
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][56] ([Intel XE#4141]) +8 other tests skip
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-onoff:
- shard-lnl: NOTRUN -> [SKIP][57] ([Intel XE#656] / [Intel XE#7905]) +6 other tests skip
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-shrfb-msflip-blt:
- shard-lnl: NOTRUN -> [SKIP][58] ([Intel XE#6312] / [Intel XE#651]) +2 other tests skip
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-shrfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-abgr161616f-draw-blt:
- shard-ptl: NOTRUN -> [SKIP][59] ([Intel XE#7061] / [Intel XE#7356])
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-3/igt@[email protected]
- shard-bmg: NOTRUN -> [SKIP][60] ([Intel XE#7061] / [Intel XE#7356])
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbcdrrs-indfb-scaledprimary:
- shard-ptl: NOTRUN -> [SKIP][61] ([Intel XE#5800] / [Intel XE#6312]) +6 other tests skip
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbcdrrshdr-2p-primscrn-pri-indfb-draw-blt:
- shard-lnl: NOTRUN -> [SKIP][62] ([Intel XE#7905]) +6 other tests skip
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@kms_frontbuffer_tracking@fbcdrrshdr-2p-primscrn-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrshdr-rgb565-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][63] ([Intel XE#2311]) +32 other tests skip
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbchdr-rgb101010-draw-mmap-wc:
- shard-ptl: NOTRUN -> [SKIP][64] ([Intel XE#7865]) +8 other tests skip
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-7/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbcpsr-2p-pri-indfb-multidraw:
- shard-bmg: NOTRUN -> [SKIP][65] ([Intel XE#2313]) +27 other tests skip
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-blt:
- shard-ptl: NOTRUN -> [SKIP][66] ([Intel XE#5812]) +38 other tests skip
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-indfb-pgflip-blt:
- shard-lnl: NOTRUN -> [SKIP][67] ([Intel XE#7865]) +1 other test skip
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-indfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsrhdr-abgr161616f-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][68] ([Intel XE#7061]) +3 other tests skip
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@[email protected]
* igt@kms_frontbuffer_tracking@hdr-abgr161616f-draw-mmap-wc:
- shard-ptl: NOTRUN -> [SKIP][69] ([Intel XE#7061]) +3 other tests skip
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@kms_frontbuffer_tracking@psrhdr-argb161616f-draw-mmap-wc:
- shard-lnl: NOTRUN -> [SKIP][70] ([Intel XE#7061]) +1 other test skip
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@kms_hdmi_audio_bw@suspend-disk-audio-recovery:
- shard-bmg: NOTRUN -> [FAIL][71] ([Intel XE#9346])
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@[email protected]
- shard-ptl: NOTRUN -> [SKIP][72] ([Intel XE#9312])
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-3/igt@[email protected]
* igt@kms_hdr@static-toggle-dpms:
- shard-ptl: NOTRUN -> [SKIP][73] ([Intel XE#5917] / [Intel XE#6174])
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@kms_joiner@basic-ultra-joiner:
- shard-ptl: NOTRUN -> [SKIP][74] ([Intel XE#6900])
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@kms_joiner@invalid-modeset-big-joiner:
- shard-bmg: NOTRUN -> [SKIP][75] ([Intel XE#6901])
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-4/igt@[email protected]
- shard-lnl: NOTRUN -> [SKIP][76] ([Intel XE#6901])
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@kms_plane@pixel-format-4-tiled-dg2-mc-ccs-modifier-source-clamping:
- shard-lnl: NOTRUN -> [SKIP][77] ([Intel XE#7283]) +1 other test skip
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@kms_plane@pixel-format-4-tiled-dg2-mc-ccs-modifier-source-clamping.html
* igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier-source-clamping:
- shard-bmg: NOTRUN -> [SKIP][78] ([Intel XE#7283]) +3 other tests skip
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-4/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier-source-clamping.html
* igt@kms_plane@pixel-format-x-tiled-modifier:
- shard-ptl: NOTRUN -> [SKIP][79] ([Intel XE#7283])
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@kms_plane@plane-panning-bottom-right-suspend:
- shard-ptl: [PASS][80] -> [ABORT][81] ([Intel XE#9363]) +1 other test abort
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-ptl-3/igt@[email protected]
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-7/igt@[email protected]
* igt@kms_plane_scaling@intel-max-src-size:
- shard-ptl: NOTRUN -> [SKIP][82] ([Intel XE#5959])
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-3/igt@[email protected]
* igt@kms_plane_scaling@plane-downscale-factor-0-5-with-modifiers:
- shard-ptl: NOTRUN -> [SKIP][83] ([Intel XE#6886]) +9 other tests skip
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@kms_pm_backlight@basic-brightness:
- shard-bmg: NOTRUN -> [SKIP][84] ([Intel XE#7376] / [Intel XE#7760] / [Intel XE#870]) +1 other test skip
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@[email protected]
* igt@kms_pm_dc@dc3co-vpb-simulation:
- shard-ptl: NOTRUN -> [SKIP][85] ([Intel XE#8395] / [Intel XE#8396]) +1 other test skip
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@kms_pm_dc@dc3co-vpb-simulation@psr2-yuv420:
- shard-ptl: NOTRUN -> [SKIP][86] ([Intel XE#8396]) +1 other test skip
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@kms_pm_dc@[email protected]
* igt@kms_pm_rpm@modeset-lpsp-stress:
- shard-bmg: NOTRUN -> [SKIP][87] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#7383] / [Intel XE#836])
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-4/igt@[email protected]
* igt@kms_psr2_sf@fbc-pr-cursor-plane-update-sf:
- shard-ptl: NOTRUN -> [SKIP][88] ([Intel XE#7304])
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf:
- shard-bmg: NOTRUN -> [SKIP][89] ([Intel XE#1489])
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-4/igt@[email protected]
- shard-lnl: NOTRUN -> [SKIP][90] ([Intel XE#2893] / [Intel XE#4608] / [Intel XE#7304])
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf@pipe-a-edp-1:
- shard-lnl: NOTRUN -> [SKIP][91] ([Intel XE#4608])
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf@pipe-a-edp-1.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf@pipe-b-edp-1:
- shard-lnl: NOTRUN -> [SKIP][92] ([Intel XE#4608] / [Intel XE#7304])
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf@pipe-b-edp-1.html
* igt@kms_psr@fbc-psr2-sprite-plane-onoff:
- shard-lnl: NOTRUN -> [SKIP][93] ([Intel XE#1406] / [Intel XE#7345])
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@kms_psr@fbc-psr2-sprite-plane-onoff@edp-1:
- shard-lnl: NOTRUN -> [SKIP][94] ([Intel XE#1406] / [Intel XE#4609] / [Intel XE#7345])
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@kms_psr@[email protected]
* igt@kms_psr@pr-primary-page-flip:
- shard-ptl: NOTRUN -> [SKIP][95] ([Intel XE#1406]) +3 other tests skip
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-3/igt@[email protected]
* igt@kms_psr@psr2-suspend:
- shard-bmg: NOTRUN -> [SKIP][96] ([Intel XE#2234] / [Intel XE#2850]) +5 other tests skip
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@[email protected]
* igt@kms_rotation_crc@primary-4-tiled-reflect-x-0:
- shard-ptl: NOTRUN -> [SKIP][97] ([Intel XE#5821]) +1 other test skip
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-180:
- shard-bmg: NOTRUN -> [SKIP][98] ([Intel XE#2330] / [Intel XE#5813])
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@[email protected]
- shard-ptl: NOTRUN -> [SKIP][99] ([Intel XE#5813])
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-3/igt@[email protected]
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-90:
- shard-lnl: NOTRUN -> [SKIP][100] ([Intel XE#3414] / [Intel XE#3904] / [Intel XE#7342]) +1 other test skip
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
- shard-bmg: NOTRUN -> [SKIP][101] ([Intel XE#3904] / [Intel XE#7342]) +1 other test skip
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-4/igt@[email protected]
* igt@kms_setmode@invalid-clone-exclusive-crtc:
- shard-bmg: NOTRUN -> [SKIP][102] ([Intel XE#1435] / [Intel XE#8695])
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-3/igt@[email protected]
* igt@kms_sharpness_filter@filter-scaler-upscale:
- shard-bmg: NOTRUN -> [SKIP][103] ([Intel XE#6503])
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-4/igt@[email protected]
* igt@kms_vblank@ts-continuation-suspend:
- shard-bmg: [PASS][104] -> [ABORT][105] ([Intel XE#9375]) +1 other test abort
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-bmg-5/igt@[email protected]
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-3/igt@[email protected]
* igt@kms_vrr@cmrr-desktop-mode:
- shard-ptl: NOTRUN -> [SKIP][106] ([Intel XE#9277])
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@kms_vrr@cmrr-desktop-mode@pipe-a-edp-1:
- shard-ptl: NOTRUN -> [SKIP][107] ([Intel XE#9277] / [Intel XE#9278])
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@kms_vrr@[email protected]
* igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all:
- shard-lnl: NOTRUN -> [SKIP][108] ([Intel XE#1091] / [Intel XE#2849])
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@xe_ccs@vm-bind-fault-mode-decompress:
- shard-ptl: NOTRUN -> [SKIP][109] ([Intel XE#7644])
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-3/igt@[email protected]
* igt@xe_compute@ccs-mode-compute-kernel:
- shard-ptl: NOTRUN -> [SKIP][110] ([Intel XE#6599])
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@xe_compute_preempt@compute-preempt-many-vram-evict:
- shard-lnl: NOTRUN -> [SKIP][111] ([Intel XE#5191] / [Intel XE#7316] / [Intel XE#7346])
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@xe_create@multigpu-create-massive-size:
- shard-bmg: NOTRUN -> [SKIP][112] ([Intel XE#2504] / [Intel XE#7319] / [Intel XE#7350])
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-3/igt@[email protected]
* igt@xe_evict@evict-beng-mixed-many-threads-small:
- shard-bmg: [PASS][113] -> [INCOMPLETE][114] ([Intel XE#6321] / [Intel XE#8355])
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-bmg-10/igt@[email protected]
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-8/igt@[email protected]
* igt@xe_evict@evict-cm-threads-small-multi-vm:
- shard-lnl: NOTRUN -> [SKIP][115] ([Intel XE#6540] / [Intel XE#688]) +1 other test skip
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@xe_evict@evict-large-multi-vm-cm:
- shard-ptl: NOTRUN -> [SKIP][116] ([Intel XE#5764]) +2 other tests skip
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@xe_evict_ccs@evict-overcommit-parallel-nofree-reopen:
- shard-ptl: NOTRUN -> [SKIP][117] ([Intel XE#6144])
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-3/igt@[email protected]
* igt@xe_exec_balancer@once-cm-parallel-rebind:
- shard-ptl: NOTRUN -> [SKIP][118] ([Intel XE#7482]) +9 other tests skip
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@xe_exec_balancer@once-parallel-userptr-rebind:
- shard-lnl: NOTRUN -> [SKIP][119] ([Intel XE#7482]) +4 other tests skip
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr:
- shard-bmg: NOTRUN -> [SKIP][120] ([Intel XE#2322] / [Intel XE#7372]) +3 other tests skip
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-4/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr.html
* igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate:
- shard-ptl: NOTRUN -> [SKIP][121] ([Intel XE#5575] / [Intel XE#7484]) +3 other tests skip
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate.html
* igt@xe_exec_basic@multigpu-once-userptr-invalidate:
- shard-lnl: NOTRUN -> [SKIP][122] ([Intel XE#1392])
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@xe_exec_fault_mode@atomic-many:
- shard-bmg: [PASS][123] -> [FAIL][124] ([Intel XE#8578])
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-bmg-2/igt@[email protected]
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-5/igt@[email protected]
* igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-invalidate:
- shard-bmg: NOTRUN -> [SKIP][125] ([Intel XE#8374]) +4 other tests skip
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-invalidate.html
* igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-rebind-imm:
- shard-lnl: NOTRUN -> [SKIP][126] ([Intel XE#8374]) +3 other tests skip
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-rebind-imm.html
* igt@xe_exec_fault_mode@once-multi-queue-invalid-fault:
- shard-ptl: NOTRUN -> [SKIP][127] ([Intel XE#8374]) +4 other tests skip
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@xe_exec_multi_queue@many-queues-preempt-mode-basic-smem:
- shard-lnl: NOTRUN -> [SKIP][128] ([Intel XE#8364]) +6 other tests skip
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@xe_exec_multi_queue@max-queues-userptr:
- shard-ptl: NOTRUN -> [SKIP][129] ([Intel XE#8364]) +12 other tests skip
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-1/igt@[email protected]
* igt@xe_exec_multi_queue@two-queues-priority:
- shard-bmg: NOTRUN -> [SKIP][130] ([Intel XE#8364]) +16 other tests skip
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-3/igt@[email protected]
* igt@xe_exec_reset@multi-queue-cancel:
- shard-bmg: NOTRUN -> [SKIP][131] ([Intel XE#8369])
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@[email protected]
* igt@xe_exec_reset@multi-queue-close-execqueues:
- shard-ptl: NOTRUN -> [SKIP][132] ([Intel XE#8369]) +1 other test skip
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@xe_exec_threads@threads-multi-queue-cm-shared-vm-userptr-rebind:
- shard-lnl: NOTRUN -> [SKIP][133] ([Intel XE#8378]) +1 other test skip
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@xe_exec_threads@threads-multi-queue-cm-shared-vm-userptr-rebind.html
* igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate-race:
- shard-bmg: NOTRUN -> [SKIP][134] ([Intel XE#8378]) +7 other tests skip
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate-race.html
* igt@xe_exec_threads@threads-multi-queue-userptr-invalidate-race:
- shard-ptl: NOTRUN -> [SKIP][135] ([Intel XE#8378]) +3 other tests skip
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@xe_fault_injection@inject-fault-probe-function-xe_guc_ads_init:
- shard-bmg: [PASS][136] -> [ABORT][137] ([Intel XE#8007])
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-bmg-4/igt@xe_fault_injection@inject-fault-probe-function-xe_guc_ads_init.html
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-2/igt@xe_fault_injection@inject-fault-probe-function-xe_guc_ads_init.html
* igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit:
- shard-ptl: NOTRUN -> [SKIP][138] ([Intel XE#5775])
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html
* igt@xe_media_fill@media-fill:
- shard-ptl: NOTRUN -> [SKIP][139] ([Intel XE#5830] / [Intel XE#7453])
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-1/igt@[email protected]
* igt@xe_mmap@pci-membarrier:
- shard-lnl: NOTRUN -> [SKIP][140] ([Intel XE#5100] / [Intel XE#7322] / [Intel XE#7408])
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@xe_multigpu_svm@mgpu-coherency-prefetch:
- shard-lnl: NOTRUN -> [SKIP][141] ([Intel XE#6964])
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@xe_multigpu_svm@mgpu-xgpu-access-prefetch:
- shard-ptl: NOTRUN -> [SKIP][142] ([Intel XE#6964])
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-3/igt@[email protected]
- shard-bmg: NOTRUN -> [SKIP][143] ([Intel XE#6964])
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@[email protected]
* igt@xe_page_reclaim@basic-mixed:
- shard-bmg: NOTRUN -> [SKIP][144] ([Intel XE#7793])
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@[email protected]
- shard-ptl: NOTRUN -> [SKIP][145] ([Intel XE#7793])
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-3/igt@[email protected]
* igt@xe_pm@d3cold-mmap-vram:
- shard-ptl: NOTRUN -> [SKIP][146] ([Intel XE#5741])
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@xe_pm@d3hot-i2c:
- shard-bmg: NOTRUN -> [SKIP][147] ([Intel XE#5742] / [Intel XE#7328] / [Intel XE#7400])
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-4/igt@[email protected]
* igt@xe_pm@s2idle-d3cold-basic-exec:
- shard-bmg: NOTRUN -> [SKIP][148] ([Intel XE#2284] / [Intel XE#7370]) +1 other test skip
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-4/igt@[email protected]
- shard-lnl: NOTRUN -> [SKIP][149] ([Intel XE#2284] / [Intel XE#366] / [Intel XE#7370])
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@xe_pm@s3-vm-bind-unbind-all:
- shard-ptl: NOTRUN -> [SKIP][150] ([Intel XE#6867])
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@xe_pm@s4-vm-bind-userptr:
- shard-lnl: [PASS][151] -> [ABORT][152] ([Intel XE#9362]) +1 other test abort
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-lnl-6/igt@[email protected]
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-2/igt@[email protected]
* igt@xe_pm_residency@cpg-basic:
- shard-lnl: NOTRUN -> [SKIP][153] ([Intel XE#584] / [Intel XE#7369])
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@xe_pxp@pxp-stale-bo-exec-post-suspend:
- shard-ptl: NOTRUN -> [ABORT][154] ([Intel XE#9362])
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-1/igt@[email protected]
* igt@xe_pxp@pxp-stale-bo-exec-post-termination-irq:
- shard-bmg: NOTRUN -> [SKIP][155] ([Intel XE#4733] / [Intel XE#7417])
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-4/igt@[email protected]
* igt@xe_pxp@pxp-termination-key-update-post-suspend:
- shard-ptl: [PASS][156] -> [ABORT][157] ([Intel XE#9362]) +3 other tests abort
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-ptl-5/igt@[email protected]
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-8/igt@[email protected]
* igt@xe_query@multigpu-query-invalid-query:
- shard-ptl: NOTRUN -> [SKIP][158] ([Intel XE#6019])
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@[email protected]
* igt@xe_query@multigpu-query-invalid-size:
- shard-lnl: NOTRUN -> [SKIP][159] ([Intel XE#944])
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@xe_sriov_admin@bulk-sched-priority-vfs-disabled:
- shard-lnl: NOTRUN -> [SKIP][160] ([Intel XE#7174])
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@xe_survivability@i2c-functionality:
- shard-lnl: NOTRUN -> [SKIP][161] ([Intel XE#8415])
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
* igt@xe_wedged@wedged-at-any-timeout:
- shard-bmg: NOTRUN -> [DMESG-WARN][162] ([Intel XE#8963])
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-9/igt@[email protected]
- shard-ptl: NOTRUN -> [DMESG-WARN][163] ([Intel XE#8963])
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-7/igt@[email protected]
#### Possible fixes ####
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
- shard-bmg: [INCOMPLETE][164] ([Intel XE#7084] / [Intel XE#8150]) -> [PASS][165] +1 other test pass
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-bmg-2/igt@[email protected]
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-3/igt@[email protected]
* igt@kms_cursor_crc@cursor-suspend:
- shard-bmg: [DMESG-WARN][166] ([Intel XE#9365]) -> [PASS][167] +2 other tests pass
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-bmg-9/igt@[email protected]
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-3/igt@[email protected]
* igt@kms_flip@flip-vs-dpms-on-nop@c-dp2:
- shard-bmg: [FAIL][168] ([Intel XE#5408] / [Intel XE#6266]) -> [PASS][169] +1 other test pass
[168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-bmg-8/igt@kms_flip@[email protected]
[169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-10/igt@kms_flip@[email protected]
* igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1:
- shard-lnl: [FAIL][170] ([Intel XE#301]) -> [PASS][171] +1 other test pass
[170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-lnl-4/igt@kms_flip@[email protected]
[171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-8/igt@kms_flip@[email protected]
* igt@kms_flip@flip-vs-suspend:
- shard-bmg: [INCOMPLETE][172] ([Intel XE#2049] / [Intel XE#2597] / [Intel XE#8155]) -> [PASS][173] +1 other test pass
[172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-bmg-7/igt@[email protected]
[173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-4/igt@[email protected]
* igt@kms_flip@flip-vs-suspend@a-dp2:
- shard-bmg: [DMESG-WARN][174] -> [PASS][175]
[174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-bmg-7/igt@kms_flip@[email protected]
[175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-4/igt@kms_flip@[email protected]
* igt@kms_vrr@flip-suspend@pipe-a-edp-1:
- shard-ptl: [ABORT][176] ([Intel XE#9362]) -> [PASS][177] +2 other tests pass
[176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-ptl-5/igt@kms_vrr@[email protected]
[177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-2/igt@kms_vrr@[email protected]
* igt@kms_vrr@flipline@pipe-a-edp-1:
- shard-ptl: [FAIL][178] ([Intel XE#4227] / [Intel XE#7397]) -> [PASS][179] +3 other tests pass
[178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-ptl-5/igt@kms_vrr@[email protected]
[179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-8/igt@kms_vrr@[email protected]
* igt@sriov_basic@pf-unbind-with-vf-probed:
- shard-bmg: [ABORT][180] ([Intel XE#8868]) -> [PASS][181]
[180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-bmg-6/igt@[email protected]
[181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-9/igt@[email protected]
* igt@sriov_basic@pf-unbind-with-vfs-enabled-numvfs-all:
- shard-ptl: [ABORT][182] ([Intel XE#8868]) -> [PASS][183] +1 other test pass
[182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-ptl-5/igt@[email protected]
[183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-3/igt@[email protected]
* igt@xe_pm@s4-mocs:
- shard-bmg: [ABORT][184] ([Intel XE#9399]) -> [PASS][185]
[184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-bmg-5/igt@[email protected]
[185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-7/igt@[email protected]
#### Warnings ####
* igt@kms_tiled_display@basic-test-pattern:
- shard-bmg: [SKIP][186] ([Intel XE#2426] / [Intel XE#5848]) -> [FAIL][187] ([Intel XE#1729] / [Intel XE#7424])
[186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-bmg-8/igt@[email protected]
[187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-1/igt@[email protected]
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-bmg: [SKIP][188] ([Intel XE#2509] / [Intel XE#7437]) -> [SKIP][189] ([Intel XE#2426] / [Intel XE#5848])
[188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-bmg-10/igt@[email protected]
[189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-bmg-8/igt@[email protected]
* igt@kms_vblank@ts-continuation-suspend:
- shard-ptl: [ABORT][190] ([Intel XE#9375]) -> [ABORT][191] ([Intel XE#9362])
[190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-ptl-1/igt@[email protected]
[191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-ptl-5/igt@[email protected]
* igt@xe_pm@s4-vm-bind-prefetch:
- shard-lnl: [ABORT][192] ([Intel XE#9362]) -> [DMESG-WARN][193] ([Intel XE#7727])
[192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a/shard-lnl-5/igt@[email protected]
[193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/shard-lnl-3/igt@[email protected]
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[Intel XE#1091]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1091
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[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#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
[Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
[Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
[Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
[Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[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#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
[Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
[Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
[Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
[Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
[Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2504]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2504
[Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
[Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
[Intel XE#2849]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2849
[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#3141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3141
[Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
[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#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4210]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4210
[Intel XE#4227]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4227
[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#5191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5191
[Intel XE#5408]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5408
[Intel XE#5575]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5575
[Intel XE#5741]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5741
[Intel XE#5742]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5742
[Intel XE#5764]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5764
[Intel XE#5775]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5775
[Intel XE#5800]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5800
[Intel XE#5808]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5808
[Intel XE#5812]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5812
[Intel XE#5813]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5813
[Intel XE#5821]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5821
[Intel XE#5822]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5822
[Intel XE#5824]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5824
[Intel XE#5830]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5830
[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#5855]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5855
[Intel XE#5900]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5900
[Intel XE#5901]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5901
[Intel XE#5907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5907
[Intel XE#5917]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5917
[Intel XE#5959]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5959
[Intel XE#5962]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5962
[Intel XE#6019]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6019
[Intel XE#6035]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6035
[Intel XE#610]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/610
[Intel XE#6144]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6144
[Intel XE#6174]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6174
[Intel XE#6266]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6266
[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#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
[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#6599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6599
[Intel XE#6867]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6867
[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#6900]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6900
[Intel XE#6901]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6901
[Intel XE#6925]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6925
[Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
[Intel XE#6969]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6969
[Intel XE#7059]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7059
[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#7085]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7085
[Intel XE#7174]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7174
[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#7304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7304
[Intel XE#7316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7316
[Intel XE#7319]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7319
[Intel XE#7322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7322
[Intel XE#7328]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7328
[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#7346]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7346
[Intel XE#7349]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7349
[Intel XE#7350]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7350
[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#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#7387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7387
[Intel XE#7397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7397
[Intel XE#7400]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7400
[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#7424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7424
[Intel XE#7437]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7437
[Intel XE#7453]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7453
[Intel XE#7467]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7467
[Intel XE#7482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7482
[Intel XE#7484]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7484
[Intel XE#7642]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7642
[Intel XE#7644]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7644
[Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679
[Intel XE#7727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7727
[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#7865]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7865
[Intel XE#7905]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7905
[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#8155]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8155
[Intel XE#8265]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8265
[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#8369]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8369
[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#8391]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8391
[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#8415]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8415
[Intel XE#8578]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8578
[Intel XE#8695]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8695
[Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
[Intel XE#8868]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8868
[Intel XE#8963]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8963
[Intel XE#9277]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9277
[Intel XE#9278]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9278
[Intel XE#9287]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9287
[Intel XE#9312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9312
[Intel XE#9333]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9333
[Intel XE#9346]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9346
[Intel XE#9362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9362
[Intel XE#9363]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9363
[Intel XE#9365]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9365
[Intel XE#9375]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9375
[Intel XE#9399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9399
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
Build changes
-------------
* Linux: xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a -> xe-pw-174935v1
IGT_9112: 8d3284b5ae16ca1aef353dfaffb6c0896ceacc19 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-5821-c466c7338ac2447a34b4b00c45ac805a9e8ecf7a: c466c7338ac2447a34b4b00c45ac805a9e8ecf7a
xe-pw-174935v1: 174935v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-174935v1/index.html
Patchwork
CI✗ CI.checkpatch: warning for PCI/IOV: Fix SR-IOV locking races and AB-BA deadlocks (rev2)
In reply to Benjamin Block== Series Details ==
== Series Details ==
Series: PCI/IOV: Fix SR-IOV locking races and AB-BA deadlocks (rev2)
URL : https://patchwork.freedesktop.org/series/174935/
State : warning
== Summary ==
+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master 6bef5ce5c74dc76b4ee69ab2832c0d1fd63c91c7
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit a9b69b94066aa26cb02e450bc10399e2aa69e379
Author: Benjamin Block <[email protected]> Date: Fri Oct 2 14:55:53 2026 +0200
s390/pci: Fix circular/recursive deadlocks in PCI-bus and -device release
When removing PCI device or PCI bus objects there are a couple of call-chains where it is possible that the kernel runs into a circular deadlock involving the central pci_rescan_remove_lock.
Two examples:
(A) Thread α receives a PCI event notifying the kernel that a PCI virtual function has been moved into Reserved state, and so the PCI subsystem will try to remove that PCI function. The call-chain for that looks like this:
__zpci_event_availability()
-> zpci_zdev_put() # will lock(zpci_add_remove_lock),
# and lock(zpci_list_lock)
-> zpci_release_device() # will unlock(zpci_list_lock)
-> zpci_cleanup_bus_resources() # will lock(pci_rescan_remove_lock)
Thread β is triggered by userspace writing 0 into the SysFS attribute sriov_numvfs of the parent PCI physical function of the same function we just try to remove. This will also try to release the PCI virtual function; but this time the call-chain looks like this:
sriov_numvfs_store()
-> ... (device driver dependent)
-> sriov_disable()
-> sriov_del_vfs() # will lock(pci_rescan_remove_lock)
-> ... (deep chain)
-> pci_release_dev()
-> pcibios_release_device()
-> zpci_zdev_put() # will lock(zpci_add_remove_lock)
If thread α and β coincide, this will result in a cyclic deadlock.
(B) Thread γ receives a PCI event notifying the kernel that one or more PCI functions got hot plugged, and need to be configured. A possible call-chain that might happen while the PCI subsystem is trying to add those new function looks like this:
__zpci_event_availability()
-> ... (multiple ways in which a device gets added)
-> zpci_add_device() # will lock(zpci_add_remove_lock)
-> zpci_bus_device_register()
-> zpci_bus_put() # will lock(zbus_list_lock)
-> zpci_bus_release() # will unlock(zbus_list_lock)
# will lock(pci_rescan_remove_lock)
Now the same thread β as above in (A) might coincide, and again could result in a cyclic deadlock.
pci_rescan_remove_lock has to be and is taken at a "high level" in most call-chains since it is intended to protect/mutual exclude all rescan and/or removal actions taken in the PCI subsystem. So to prevent the outlined deadlock scenarios above remove it instead from the "low level" release functions for both the PCI device and PCI bus objects.
Instead, lock pci_rescan_remove_lock in all call-chains leading to those release functions:
* initialization of the PCI subsystem;
* processing of availability events (CRWs) for PCI functions;
* processing of error events (CRWs) for PCI functions;
* architecture specific release PCI device implementation.
Additionally, remove pci_rescan_remove_lock from zpci_bus_scan_bus() since its only caller zpci_scan_devices() is now always called with pci_rescan_remove_lock already held.
Lastly, document the new locking expectations after these changes. Add sparse and lockdep annotations to functions that previously locked pci_rescan_remove_lock explicitly, making sure the lock is now already held when called. Additionally also add the annotations to zpci_zdev_put() and zpci_bus_put() to make sure that every function that potentially drops the last reference already holds the lock to prevent surprises.
+ /mt/dim checkpatch 9a844a5028d85ae6d941dddfda6450f3f3887fed drm-intelf4e8964a4743 PCI/IOV: Make pci_lock_rescan_remove() reentrant and protect sriov_add_vfs/sriov_del_vfs d1d8e6118ba8 PCI: Fix AB-BA deadlock between device_lock and pci_rescan_remove_lock in remove_store 118973047c54 PCI: Move declaration of pci_rescan_remove_lock into public pci.h be830271ef34 PCI: Provide lock guard for pci_rescan_remove_locka9b69b94066a s390/pci: Fix circular/recursive deadlocks in PCI-bus and -device release -:331: WARNING:TABSTOP: Statements should start on a tabstop
#331: FILE: arch/s390/pci/pci_sysfs.c:81:
+ if (_T) sysfs_unbreak_active_protection(_T),
-:331: ERROR:TRAILING_STATEMENTS: trailing statements should be on next line #331: FILE: arch/s390/pci/pci_sysfs.c:81:
+ if (_T) sysfs_unbreak_active_protection(_T),
total: 1 errors, 1 warnings, 0 checks, 257 lines checked
Patchwork
CI✓ CI.KUnit: success for PCI/IOV: Fix SR-IOV locking races and AB-BA deadlocks (rev2)
In reply to Benjamin Block== Series Details ==
== Series Details ==
Series: PCI/IOV: Fix SR-IOV locking races and AB-BA deadlocks (rev2)
URL : https://patchwork.freedesktop.org/series/174935/
State : success
== Summary ==
+ trap cleanup EXIT
+ kunitconfigs=('/kernel/drivers/gpu/tests/.kunitconfig' '/kernel/drivers/gpu/drm/xe/.kunitconfig' '/kernel/drivers/gpu/drm/tests/.kunitconfig' '/kernel/drivers/gpu/drm/ttm/tests/.kunitconfig' '/kernel/drivers/dma-buf/.kunitconfig')
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/tests/.kunitconfig
[13:02:50] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig [13:02:54] 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 [13:03:15] Starting KUnit Kernel (1/1)... [13:03:15] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [13:03:15] ============= refcount_interrupt (4 subtests) ============== [13:03:15] [PASSED] test_single_irq_change [13:03:15] [PASSED] test_nested_irq_change [13:03:15] [PASSED] test_multiple_irq_change [13:03:15] [PASSED] test_irq_save [13:03:15] =============== [PASSED] refcount_interrupt ================ [13:03:15] ================= gpu_buddy (14 subtests) ================== [13:03:15] [PASSED] gpu_test_buddy_alloc_limit [13:03:15] [PASSED] gpu_test_buddy_alloc_optimistic [13:03:15] [PASSED] gpu_test_buddy_alloc_pessimistic [13:03:15] [PASSED] gpu_test_buddy_alloc_pathological [13:03:15] [PASSED] gpu_test_buddy_alloc_contiguous [13:03:15] [PASSED] gpu_test_buddy_alloc_clear [13:03:15] [PASSED] gpu_test_buddy_alloc_range [13:03:15] [PASSED] gpu_test_buddy_alloc_range_bias [13:03:16] [PASSED] gpu_test_buddy_fragmentation_performance [13:03:17] [PASSED] gpu_test_buddy_dirty_tracker_performance [13:03:17] [PASSED] gpu_test_buddy_alloc_exceeds_max_order [13:03:17] [PASSED] gpu_test_buddy_offset_aligned_allocation [13:03:17] [PASSED] gpu_test_buddy_subtree_offset_alignment_stress [13:03:17] [PASSED] gpu_test_buddy_addr_to_block [13:03:17] ==================== [PASSED] gpu_buddy ==================== [13:03:17] ============================================================ [13:03:17] Testing complete. Ran 18 tests: passed: 18 [13:03:17] Elapsed time: 27.462s total, 4.303s configuring, 20.991s building, 2.101s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/xe/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig [13:03:17] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig [13:03:19] 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 [13:03:53] Starting KUnit Kernel (1/1)... [13:03:53] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [13:03:53] ============= refcount_interrupt (4 subtests) ============== [13:03:53] [PASSED] test_single_irq_change [13:03:53] [PASSED] test_nested_irq_change [13:03:53] [PASSED] test_multiple_irq_change [13:03:53] [PASSED] test_irq_save [13:03:53] =============== [PASSED] refcount_interrupt ================ [13:03:53] ================== guc_buf (11 subtests) =================== [13:03:53] [PASSED] test_smallest [13:03:53] [PASSED] test_largest [13:03:53] [PASSED] test_granular [13:03:53] [PASSED] test_unique [13:03:53] [PASSED] test_overlap [13:03:53] [PASSED] test_reusable [13:03:53] [PASSED] test_too_big [13:03:53] [PASSED] test_flush [13:03:53] [PASSED] test_lookup [13:03:53] [PASSED] test_data [13:03:53] [PASSED] test_class [13:03:53] ===================== [PASSED] guc_buf ===================== [13:03:53] =================== guc_dbm (7 subtests) =================== [13:03:53] [PASSED] test_empty [13:03:53] [PASSED] test_default [13:03:53] ======================== test_size ======================== [13:03:53] [PASSED] 4 [13:03:53] [PASSED] 8 [13:03:53] [PASSED] 32 [13:03:53] [PASSED] 256 [13:03:53] ==================== [PASSED] test_size ==================== [13:03:53] ======================= test_reuse ======================== [13:03:53] [PASSED] 4 [13:03:53] [PASSED] 8 [13:03:53] [PASSED] 32 [13:03:53] [PASSED] 256 [13:03:53] =================== [PASSED] test_reuse ==================== [13:03:53] =================== test_range_overlap ==================== [13:03:53] [PASSED] 4 [13:03:53] [PASSED] 8 [13:03:53] [PASSED] 32 [13:03:53] [PASSED] 256 [13:03:53] =============== [PASSED] test_range_overlap ================ [13:03:53] =================== test_range_compact ==================== [13:03:53] [PASSED] 4 [13:03:53] [PASSED] 8 [13:03:53] [PASSED] 32 [13:03:53] [PASSED] 256 [13:03:53] =============== [PASSED] test_range_compact ================ [13:03:53] ==================== test_range_spare ===================== [13:03:53] [PASSED] 4 [13:03:53] [PASSED] 8 [13:03:53] [PASSED] 32 [13:03:53] [PASSED] 256 [13:03:53] ================ [PASSED] test_range_spare ================= [13:03:53] ===================== [PASSED] guc_dbm ===================== [13:03:53] =================== guc_idm (6 subtests) =================== [13:03:53] [PASSED] bad_init [13:03:53] [PASSED] no_init [13:03:53] [PASSED] init_fini [13:03:53] [PASSED] check_used [13:03:53] [PASSED] check_quota [13:03:53] [PASSED] check_all [13:03:53] ===================== [PASSED] guc_idm ===================== [13:03:53] ============== guc_klv_helpers (13 subtests) =============== [13:03:53] [PASSED] test_count [13:03:53] [PASSED] test_encode_u32 [13:03:53] [PASSED] test_encode_u64 [13:03:53] [PASSED] test_encode_string [13:03:53] [PASSED] test_encode_object_raw [13:03:53] [PASSED] test_encode_object_klv [13:03:53] [PASSED] test_encode_object_nested [13:03:53] [PASSED] test_encode_object_basic [13:03:53] ===================== test_decode_u16 ===================== [13:03:53] [PASSED] empty [13:03:53] [PASSED] valid [13:03:53] [PASSED] max [13:03:53] [PASSED] big [13:03:53] [PASSED] long [13:03:53] ================= [PASSED] test_decode_u16 ================= [13:03:53] ===================== test_decode_u32 ===================== [13:03:53] [PASSED] empty [13:03:53] [PASSED] valid [13:03:53] [PASSED] max [13:03:53] [PASSED] long [13:03:53] ================= [PASSED] test_decode_u32 ================= [13:03:53] ===================== test_decode_u64 ===================== [13:03:53] [PASSED] empty [13:03:53] [PASSED] short [13:03:53] [PASSED] valid [13:03:53] [PASSED] max [13:03:53] [PASSED] long [13:03:53] ================= [PASSED] test_decode_u64 ================= [13:03:53] ===================== test_decode_str ===================== [13:03:53] [PASSED] empty [13:03:53] [PASSED] one [13:03:53] [PASSED] one_trash [13:03:53] [PASSED] two [13:03:53] [PASSED] two_trash [13:03:53] [PASSED] three [13:03:53] [PASSED] dword [13:03:53] [PASSED] four [13:03:53] [PASSED] five [13:03:53] [PASSED] six [13:03:53] [PASSED] seven [13:03:53] [PASSED] qword [13:03:53] ================= [PASSED] test_decode_str ================= [13:03:53] [PASSED] test_print [13:03:53] ================= [PASSED] guc_klv_helpers ================= [13:03:53] =================== xe_log (4 subtests) ==================== [13:03:53] [PASSED] demo_cper [13:03:53] [PASSED] demo_dmesg [13:03:53] ======================= test_dmesg ======================== [13:03:53] [PASSED] test_fatal [13:03:53] [PASSED] test_fatal_tile [13:03:53] [PASSED] test_fatal_gt [13:03:53] [PASSED] test_fatal_comp [13:03:53] [PASSED] test_fatal_comp_tile [13:03:53] [PASSED] test_fatal_comp_gt [13:03:53] [PASSED] test_fatal_all [13:03:53] [PASSED] test_recoverable [13:03:53] [PASSED] test_recoverable_tile [13:03:53] [PASSED] test_recoverable_gt [13:03:53] [PASSED] test_recoverable_comp [13:03:53] [PASSED] test_recoverable_comp_tile [13:03:53] [PASSED] test_recoverable_comp_gt [13:03:53] [PASSED] test_recoverable_all [13:03:54] [PASSED] test_info [13:03:54] [PASSED] test_info_tile [13:03:54] [PASSED] test_info_gt [13:03:54] [PASSED] test_info_err [13:03:54] [PASSED] test_info_comp [13:03:54] [PASSED] test_info_comp_tile [13:03:54] [PASSED] test_info_comp_gt [13:03:54] [PASSED] test_info_all [13:03:54] [PASSED] test_hw_fatal [13:03:54] [PASSED] test_hw_recoverable [13:03:54] [PASSED] test_hw_corrected [13:03:54] [PASSED] test_hw_informational [13:03:54] =================== [PASSED] test_dmesg ==================== [13:03:54] ====================== test_invalid ======================= [13:03:54] [SKIPPED] no-component no-location no-warn (requires CONFIG_DRM_XE_DEBUG) [13:03:54] [SKIPPED] reserved location (requires CONFIG_DRM_XE_DEBUG) [13:03:54] [SKIPPED] unknown location (requires CONFIG_DRM_XE_DEBUG) [13:03:54] [SKIPPED] nonzero-device-id location (requires CONFIG_DRM_XE_DEBUG) [13:03:54] [SKIPPED] invalid-tile-id location (requires CONFIG_DRM_XE_DEBUG) [13:03:54] [SKIPPED] invalid-gt-id location (requires CONFIG_DRM_XE_DEBUG) [13:03:54] [SKIPPED] unknown component class (requires CONFIG_DRM_XE_DEBUG) [13:03:54] [SKIPPED] unknown system component (requires CONFIG_DRM_XE_DEBUG) [13:03:54] [SKIPPED] unknown hardware component (requires CONFIG_DRM_XE_DEBUG) [13:03:54] [SKIPPED] unknown component and location (requires CONFIG_DRM_XE_DEBUG) [13:03:54] ================== [SKIPPED] test_invalid ================== [13:03:54] ===================== [PASSED] xe_log ====================== [13:03:54] ================== no_relay (3 subtests) =================== [13:03:54] [PASSED] xe_drops_guc2pf_if_not_ready [13:03:54] [PASSED] xe_drops_guc2vf_if_not_ready [13:03:54] [PASSED] xe_rejects_send_if_not_ready [13:03:54] ==================== [PASSED] no_relay ===================== [13:03:54] ================== pf_relay (14 subtests) ================== [13:03:54] [PASSED] pf_rejects_guc2pf_too_short [13:03:54] [PASSED] pf_rejects_guc2pf_too_long [13:03:54] [PASSED] pf_rejects_guc2pf_no_payload [13:03:54] [PASSED] pf_fails_no_payload [13:03:54] [PASSED] pf_fails_bad_origin [13:03:54] [PASSED] pf_fails_bad_type [13:03:54] [PASSED] pf_txn_reports_error [13:03:54] [PASSED] pf_txn_sends_pf2guc [13:03:54] [PASSED] pf_sends_pf2guc [13:03:54] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV) [13:03:54] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV) [13:03:54] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV) [13:03:54] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV) [13:03:54] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV) [13:03:54] ==================== [PASSED] pf_relay ===================== [13:03:54] ================== vf_relay (3 subtests) =================== [13:03:54] [PASSED] vf_rejects_guc2vf_too_short [13:03:54] [PASSED] vf_rejects_guc2vf_too_long [13:03:54] [PASSED] vf_rejects_guc2vf_no_payload [13:03:54] ==================== [PASSED] vf_relay ===================== [13:03:54] ================ pf_gt_config (9 subtests) ================= [13:03:54] [PASSED] fair_contexts_1vf [13:03:54] [PASSED] fair_doorbells_1vf [13:03:54] [PASSED] fair_ggtt_1vf [13:03:54] ====================== fair_vram_1vf ====================== [13:03:54] [PASSED] 3.50 GiB [13:03:54] [PASSED] 11.5 GiB [13:03:54] [PASSED] 15.5 GiB [13:03:54] [PASSED] 31.5 GiB [13:03:54] [PASSED] 63.5 GiB [13:03:54] [PASSED] 1.91 GiB [13:03:54] ================== [PASSED] fair_vram_1vf ================== [13:03:54] ================ fair_vram_1vf_admin_only ================= [13:03:54] [PASSED] 3.50 GiB [13:03:54] [PASSED] 11.5 GiB [13:03:54] [PASSED] 15.5 GiB [13:03:54] [PASSED] 31.5 GiB [13:03:54] [PASSED] 63.5 GiB [13:03:54] [PASSED] 1.91 GiB [13:03:54] ============ [PASSED] fair_vram_1vf_admin_only ============= [13:03:54] ====================== fair_contexts ====================== [13:03:54] [PASSED] 1 VF [13:03:54] [PASSED] 2 VFs [13:03:54] [PASSED] 3 VFs [13:03:54] [PASSED] 4 VFs [13:03:54] [PASSED] 5 VFs [13:03:54] [PASSED] 6 VFs [13:03:54] [PASSED] 7 VFs [13:03:54] [PASSED] 8 VFs [13:03:54] [PASSED] 9 VFs [13:03:54] [PASSED] 10 VFs [13:03:54] [PASSED] 11 VFs [13:03:54] [PASSED] 12 VFs [13:03:54] [PASSED] 13 VFs [13:03:54] [PASSED] 14 VFs [13:03:54] [PASSED] 15 VFs [13:03:54] [PASSED] 16 VFs [13:03:54] [PASSED] 17 VFs [13:03:54] [PASSED] 18 VFs [13:03:54] [PASSED] 19 VFs [13:03:54] [PASSED] 20 VFs [13:03:54] [PASSED] 21 VFs [13:03:54] [PASSED] 22 VFs [13:03:54] [PASSED] 23 VFs [13:03:54] [PASSED] 24 VFs [13:03:54] [PASSED] 25 VFs [13:03:54] [PASSED] 26 VFs [13:03:54] [PASSED] 27 VFs [13:03:54] [PASSED] 28 VFs [13:03:54] [PASSED] 29 VFs [13:03:54] [PASSED] 30 VFs [13:03:54] [PASSED] 31 VFs [13:03:54] [PASSED] 32 VFs [13:03:54] [PASSED] 33 VFs [13:03:54] [PASSED] 34 VFs [13:03:54] [PASSED] 35 VFs [13:03:54] [PASSED] 36 VFs [13:03:54] [PASSED] 37 VFs [13:03:54] [PASSED] 38 VFs [13:03:54] [PASSED] 39 VFs [13:03:54] [PASSED] 40 VFs [13:03:54] [PASSED] 41 VFs [13:03:54] [PASSED] 42 VFs [13:03:54] [PASSED] 43 VFs [13:03:54] [PASSED] 44 VFs [13:03:54] [PASSED] 45 VFs [13:03:54] [PASSED] 46 VFs [13:03:54] [PASSED] 47 VFs [13:03:54] [PASSED] 48 VFs [13:03:54] [PASSED] 49 VFs [13:03:54] [PASSED] 50 VFs [13:03:54] [PASSED] 51 VFs [13:03:54] [PASSED] 52 VFs [13:03:54] [PASSED] 53 VFs [13:03:54] [PASSED] 54 VFs [13:03:54] [PASSED] 55 VFs [13:03:54] [PASSED] 56 VFs [13:03:54] [PASSED] 57 VFs [13:03:54] [PASSED] 58 VFs [13:03:54] [PASSED] 59 VFs [13:03:54] [PASSED] 60 VFs [13:03:54] [PASSED] 61 VFs [13:03:54] [PASSED] 62 VFs [13:03:54] [PASSED] 63 VFs [13:03:54] ================== [PASSED] fair_contexts ================== [13:03:54] ===================== fair_doorbells ====================== [13:03:54] [PASSED] 1 VF [13:03:54] [PASSED] 2 VFs [13:03:54] [PASSED] 3 VFs [13:03:54] [PASSED] 4 VFs [13:03:54] [PASSED] 5 VFs [13:03:54] [PASSED] 6 VFs [13:03:54] [PASSED] 7 VFs [13:03:54] [PASSED] 8 VFs [13:03:54] [PASSED] 9 VFs [13:03:54] [PASSED] 10 VFs [13:03:54] [PASSED] 11 VFs [13:03:54] [PASSED] 12 VFs [13:03:54] [PASSED] 13 VFs [13:03:54] [PASSED] 14 VFs [13:03:54] [PASSED] 15 VFs [13:03:54] [PASSED] 16 VFs [13:03:54] [PASSED] 17 VFs [13:03:54] [PASSED] 18 VFs [13:03:54] [PASSED] 19 VFs [13:03:54] [PASSED] 20 VFs [13:03:54] [PASSED] 21 VFs [13:03:54] [PASSED] 22 VFs [13:03:54] [PASSED] 23 VFs [13:03:54] [PASSED] 24 VFs [13:03:54] [PASSED] 25 VFs [13:03:54] [PASSED] 26 VFs [13:03:54] [PASSED] 27 VFs [13:03:54] [PASSED] 28 VFs [13:03:54] [PASSED] 29 VFs [13:03:54] [PASSED] 30 VFs [13:03:54] [PASSED] 31 VFs [13:03:54] [PASSED] 32 VFs [13:03:54] [PASSED] 33 VFs [13:03:54] [PASSED] 34 VFs [13:03:54] [PASSED] 35 VFs [13:03:54] [PASSED] 36 VFs [13:03:54] [PASSED] 37 VFs [13:03:54] [PASSED] 38 VFs [13:03:54] [PASSED] 39 VFs [13:03:54] [PASSED] 40 VFs [13:03:54] [PASSED] 41 VFs [13:03:54] [PASSED] 42 VFs [13:03:54] [PASSED] 43 VFs [13:03:54] [PASSED] 44 VFs [13:03:54] [PASSED] 45 VFs [13:03:54] [PASSED] 46 VFs [13:03:54] [PASSED] 47 VFs [13:03:54] [PASSED] 48 VFs [13:03:54] [PASSED] 49 VFs [13:03:54] [PASSED] 50 VFs [13:03:54] [PASSED] 51 VFs [13:03:54] [PASSED] 52 VFs [13:03:54] [PASSED] 53 VFs [13:03:54] [PASSED] 54 VFs [13:03:54] [PASSED] 55 VFs [13:03:54] [PASSED] 56 VFs [13:03:54] [PASSED] 57 VFs [13:03:54] [PASSED] 58 VFs [13:03:54] [PASSED] 59 VFs [13:03:54] [PASSED] 60 VFs [13:03:54] [PASSED] 61 VFs [13:03:54] [PASSED] 62 VFs [13:03:54] [PASSED] 63 VFs [13:03:54] ================= [PASSED] fair_doorbells ================== [13:03:54] ======================== fair_ggtt ======================== [13:03:54] [PASSED] 1 VF [13:03:54] [PASSED] 2 VFs [13:03:54] [PASSED] 3 VFs [13:03:54] [PASSED] 4 VFs [13:03:54] [PASSED] 5 VFs [13:03:54] [PASSED] 6 VFs [13:03:54] [PASSED] 7 VFs [13:03:54] [PASSED] 8 VFs [13:03:54] [PASSED] 9 VFs [13:03:54] [PASSED] 10 VFs [13:03:54] [PASSED] 11 VFs [13:03:54] [PASSED] 12 VFs [13:03:54] [PASSED] 13 VFs [13:03:54] [PASSED] 14 VFs [13:03:54] [PASSED] 15 VFs [13:03:54] [PASSED] 16 VFs [13:03:54] [PASSED] 17 VFs [13:03:54] [PASSED] 18 VFs [13:03:54] [PASSED] 19 VFs [13:03:54] [PASSED] 20 VFs [13:03:54] [PASSED] 21 VFs [13:03:54] [PASSED] 22 VFs [13:03:54] [PASSED] 23 VFs [13:03:54] [PASSED] 24 VFs [13:03:54] [PASSED] 25 VFs [13:03:54] [PASSED] 26 VFs [13:03:54] [PASSED] 27 VFs [13:03:54] [PASSED] 28 VFs [13:03:54] [PASSED] 29 VFs [13:03:54] [PASSED] 30 VFs [13:03:54] [PASSED] 31 VFs [13:03:54] [PASSED] 32 VFs [13:03:54] [PASSED] 33 VFs [13:03:54] [PASSED] 34 VFs [13:03:54] [PASSED] 35 VFs [13:03:54] [PASSED] 36 VFs [13:03:54] [PASSED] 37 VFs [13:03:54] [PASSED] 38 VFs [13:03:54] [PASSED] 39 VFs [13:03:54] [PASSED] 40 VFs [13:03:54] [PASSED] 41 VFs [13:03:54] [PASSED] 42 VFs [13:03:54] [PASSED] 43 VFs [13:03:54] [PASSED] 44 VFs [13:03:54] [PASSED] 45 VFs [13:03:54] [PASSED] 46 VFs [13:03:54] [PASSED] 47 VFs [13:03:54] [PASSED] 48 VFs [13:03:54] [PASSED] 49 VFs [13:03:54] [PASSED] 50 VFs [13:03:54] [PASSED] 51 VFs [13:03:54] [PASSED] 52 VFs [13:03:54] [PASSED] 53 VFs [13:03:54] [PASSED] 54 VFs [13:03:54] [PASSED] 55 VFs [13:03:54] [PASSED] 56 VFs [13:03:54] [PASSED] 57 VFs [13:03:54] [PASSED] 58 VFs [13:03:54] [PASSED] 59 VFs [13:03:54] [PASSED] 60 VFs [13:03:54] [PASSED] 61 VFs [13:03:54] [PASSED] 62 VFs [13:03:54] [PASSED] 63 VFs [13:03:54] ==================== [PASSED] fair_ggtt ==================== [13:03:54] ======================== fair_vram ======================== [13:03:54] [PASSED] 1 VF [13:03:54] [PASSED] 2 VFs [13:03:54] [PASSED] 3 VFs [13:03:54] [PASSED] 4 VFs [13:03:54] [PASSED] 5 VFs [13:03:54] [PASSED] 6 VFs [13:03:54] [PASSED] 7 VFs [13:03:54] [PASSED] 8 VFs [13:03:54] [PASSED] 9 VFs [13:03:54] [PASSED] 10 VFs [13:03:54] [PASSED] 11 VFs [13:03:54] [PASSED] 12 VFs [13:03:54] [PASSED] 13 VFs [13:03:54] [PASSED] 14 VFs [13:03:54] [PASSED] 15 VFs [13:03:54] [PASSED] 16 VFs [13:03:54] [PASSED] 17 VFs [13:03:54] [PASSED] 18 VFs [13:03:54] [PASSED] 19 VFs [13:03:54] [PASSED] 20 VFs [13:03:54] [PASSED] 21 VFs [13:03:54] [PASSED] 22 VFs [13:03:54] [PASSED] 23 VFs [13:03:54] [PASSED] 24 VFs [13:03:54] [PASSED] 25 VFs [13:03:54] [PASSED] 26 VFs [13:03:54] [PASSED] 27 VFs [13:03:54] [PASSED] 28 VFs [13:03:54] [PASSED] 29 VFs [13:03:54] [PASSED] 30 VFs [13:03:54] [PASSED] 31 VFs [13:03:54] [PASSED] 32 VFs [13:03:54] [PASSED] 33 VFs [13:03:54] [PASSED] 34 VFs [13:03:54] [PASSED] 35 VFs [13:03:54] [PASSED] 36 VFs [13:03:54] [PASSED] 37 VFs [13:03:54] [PASSED] 38 VFs [13:03:54] [PASSED] 39 VFs [13:03:54] [PASSED] 40 VFs [13:03:54] [PASSED] 41 VFs [13:03:54] [PASSED] 42 VFs [13:03:54] [PASSED] 43 VFs [13:03:54] [PASSED] 44 VFs [13:03:54] [PASSED] 45 VFs [13:03:54] [PASSED] 46 VFs [13:03:54] [PASSED] 47 VFs [13:03:54] [PASSED] 48 VFs [13:03:54] [PASSED] 49 VFs [13:03:54] [PASSED] 50 VFs [13:03:54] [PASSED] 51 VFs [13:03:54] [PASSED] 52 VFs [13:03:54] [PASSED] 53 VFs [13:03:54] [PASSED] 54 VFs [13:03:54] [PASSED] 55 VFs [13:03:54] [PASSED] 56 VFs [13:03:54] [PASSED] 57 VFs [13:03:54] [PASSED] 58 VFs [13:03:54] [PASSED] 59 VFs [13:03:54] [PASSED] 60 VFs [13:03:54] [PASSED] 61 VFs [13:03:54] [PASSED] 62 VFs [13:03:54] [PASSED] 63 VFs [13:03:54] ==================== [PASSED] fair_vram ==================== [13:03:54] ================== [PASSED] pf_gt_config =================== [13:03:54] ===================== lmtt (1 subtest) ===================== [13:03:54] ======================== test_ops ========================= [13:03:54] [PASSED] 2-level [13:03:54] [PASSED] multi-level [13:03:54] ==================== [PASSED] test_ops ===================== [13:03:54] ====================== [PASSED] lmtt ======================= [13:03:54] ================= sriov_packet (1 subtest) ================= [13:03:54] [PASSED] test_descriptor_init [13:03:54] ================== [PASSED] sriov_packet =================== [13:03:54] ================= pf_service (11 subtests) ================= [13:03:54] [PASSED] pf_negotiate_any [13:03:54] [PASSED] pf_negotiate_base_match [13:03:54] [PASSED] pf_negotiate_base_newer [13:03:54] [PASSED] pf_negotiate_base_next [13:03:54] [SKIPPED] pf_negotiate_base_older (no older minor) [13:03:54] [PASSED] pf_negotiate_base_prev [13:03:54] [PASSED] pf_negotiate_latest_match [13:03:54] [PASSED] pf_negotiate_latest_newer [13:03:54] [PASSED] pf_negotiate_latest_next [13:03:54] [SKIPPED] pf_negotiate_latest_older (no older minor) [13:03:54] [SKIPPED] pf_negotiate_latest_prev (no prev major) [13:03:54] =================== [PASSED] pf_service ==================== [13:03:54] ================= xe_guc_g2g (2 subtests) ================== [13:03:54] ============== xe_live_guc_g2g_kunit_default ============== [13:03:54] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ========== [13:03:54] ============== xe_live_guc_g2g_kunit_allmem =============== [13:03:54] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ========== [13:03:54] =================== [SKIPPED] xe_guc_g2g =================== [13:03:54] =================== xe_mocs (2 subtests) =================== [13:03:54] ================ xe_live_mocs_kernel_kunit ================ [13:03:54] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============ [13:03:54] ================ xe_live_mocs_reset_kunit ================= [13:03:54] ============ [SKIPPED] xe_live_mocs_reset_kunit ============ [13:03:54] ==================== [SKIPPED] xe_mocs ===================== [13:03:54] ================= xe_migrate (2 subtests) ================== [13:03:54] ================= xe_migrate_sanity_kunit ================= [13:03:54] ============ [SKIPPED] xe_migrate_sanity_kunit ============= [13:03:54] ================== xe_validate_ccs_kunit ================== [13:03:54] ============= [SKIPPED] xe_validate_ccs_kunit ============== [13:03:54] =================== [SKIPPED] xe_migrate =================== [13:03:54] ================== xe_dma_buf (1 subtest) ================== [13:03:54] ==================== xe_dma_buf_kunit ===================== [13:03:54] ================ [SKIPPED] xe_dma_buf_kunit ================ [13:03:54] =================== [SKIPPED] xe_dma_buf =================== [13:03:54] ================= xe_bo_shrink (1 subtest) ================= [13:03:54] =================== xe_bo_shrink_kunit ==================== [13:03:54] =============== [SKIPPED] xe_bo_shrink_kunit =============== [13:03:54] ================== [SKIPPED] xe_bo_shrink ================== [13:03:54] ==================== xe_bo (2 subtests) ==================== [13:03:54] ================== xe_ccs_migrate_kunit =================== [13:03:54] ============== [SKIPPED] xe_ccs_migrate_kunit ============== [13:03:54] ==================== xe_bo_evict_kunit ==================== [13:03:54] =============== [SKIPPED] xe_bo_evict_kunit ================ [13:03:54] ===================== [SKIPPED] xe_bo ====================== [13:03:54] =================== xe_any (9 subtests) ==================== [13:03:54] [PASSED] test_to_xe [13:03:54] [PASSED] test_to_dev [13:03:54] [PASSED] test_to_pdev [13:03:54] [PASSED] test_to_drm [13:03:54] [PASSED] test_if_pdev [13:03:54] [PASSED] test_if_xe [13:03:54] [PASSED] test_if_tile [13:03:54] [PASSED] test_if_gt [13:03:54] [PASSED] test_to_id [13:03:54] ===================== [PASSED] xe_any ====================== [13:03:54] ==================== args (13 subtests) ==================== [13:03:54] [PASSED] count_args_test [13:03:54] [PASSED] call_args_example [13:03:54] [PASSED] call_args_test [13:03:54] [PASSED] drop_first_arg_example [13:03:54] [PASSED] drop_first_arg_test [13:03:54] [PASSED] first_arg_example [13:03:54] [PASSED] first_arg_test [13:03:54] [PASSED] last_arg_example [13:03:54] [PASSED] last_arg_test [13:03:54] [PASSED] pick_arg_example [13:03:54] [PASSED] if_args_example [13:03:54] [PASSED] if_args_test [13:03:54] [PASSED] sep_comma_example [13:03:54] ====================== [PASSED] args ======================= [13:03:54] =================== xe_pci (3 subtests) ==================== [13:03:54] ==================== check_graphics_ip ==================== [13:03:54] [PASSED] 12.00 Xe_LP [13:03:54] [PASSED] 12.10 Xe_LP+ [13:03:54] [PASSED] 12.55 Xe_HPG [13:03:54] [PASSED] 12.60 Xe_HPC [13:03:54] [PASSED] 12.70 Xe_LPG [13:03:54] [PASSED] 12.71 Xe_LPG [13:03:54] [PASSED] 12.74 Xe_LPG+ [13:03:54] [PASSED] 20.01 Xe2_HPG [13:03:54] [PASSED] 20.02 Xe2_HPG [13:03:54] [PASSED] 20.04 Xe2_LPG [13:03:54] [PASSED] 30.00 Xe3_LPG [13:03:54] [PASSED] 30.01 Xe3_LPG [13:03:54] [PASSED] 30.03 Xe3_LPG [13:03:54] [PASSED] 30.04 Xe3_LPG [13:03:54] [PASSED] 30.05 Xe3_LPG [13:03:54] [PASSED] 35.10 Xe3p_LPG [13:03:54] [PASSED] 35.11 Xe3p_XPC [13:03:54] ================ [PASSED] check_graphics_ip ================ [13:03:54] ===================== check_media_ip ====================== [13:03:54] [PASSED] 12.00 Xe_M [13:03:54] [PASSED] 12.55 Xe_HPM [13:03:54] [PASSED] 13.00 Xe_LPM+ [13:03:54] [PASSED] 13.01 Xe2_HPM [13:03:54] [PASSED] 20.00 Xe2_LPM [13:03:54] [PASSED] 30.00 Xe3_LPM [13:03:54] [PASSED] 30.02 Xe3_LPM [13:03:54] [PASSED] 35.00 Xe3p_LPM [13:03:54] [PASSED] 35.03 Xe3p_HPM [13:03:54] ================= [PASSED] check_media_ip ================== [13:03:54] =================== check_platform_desc =================== [13:03:54] [PASSED] 0x9A60 (TIGERLAKE) [13:03:54] [PASSED] 0x9A68 (TIGERLAKE) [13:03:54] [PASSED] 0x9A70 (TIGERLAKE) [13:03:54] [PASSED] 0x9A40 (TIGERLAKE) [13:03:54] [PASSED] 0x9A49 (TIGERLAKE) [13:03:54] [PASSED] 0x9A59 (TIGERLAKE) [13:03:54] [PASSED] 0x9A78 (TIGERLAKE) [13:03:54] [PASSED] 0x9AC0 (TIGERLAKE) [13:03:54] [PASSED] 0x9AC9 (TIGERLAKE) [13:03:54] [PASSED] 0x9AD9 (TIGERLAKE) [13:03:54] [PASSED] 0x9AF8 (TIGERLAKE) [13:03:54] [PASSED] 0x4C80 (ROCKETLAKE) [13:03:54] [PASSED] 0x4C8A (ROCKETLAKE) [13:03:54] [PASSED] 0x4C8B (ROCKETLAKE) [13:03:54] [PASSED] 0x4C8C (ROCKETLAKE) [13:03:54] [PASSED] 0x4C90 (ROCKETLAKE) [13:03:54] [PASSED] 0x4C9A (ROCKETLAKE) [13:03:54] [PASSED] 0x4680 (ALDERLAKE_S) [13:03:54] [PASSED] 0x4682 (ALDERLAKE_S) [13:03:54] [PASSED] 0x4688 (ALDERLAKE_S) [13:03:54] [PASSED] 0x468A (ALDERLAKE_S) [13:03:54] [PASSED] 0x468B (ALDERLAKE_S) [13:03:54] [PASSED] 0x4690 (ALDERLAKE_S) [13:03:54] [PASSED] 0x4692 (ALDERLAKE_S) [13:03:54] [PASSED] 0x4693 (ALDERLAKE_S) [13:03:54] [PASSED] 0x46A0 (ALDERLAKE_P) [13:03:54] [PASSED] 0x46A1 (ALDERLAKE_P) [13:03:54] [PASSED] 0x46A2 (ALDERLAKE_P) [13:03:54] [PASSED] 0x46A3 (ALDERLAKE_P) [13:03:54] [PASSED] 0x46A6 (ALDERLAKE_P) [13:03:54] [PASSED] 0x46A8 (ALDERLAKE_P) [13:03:54] [PASSED] 0x46AA (ALDERLAKE_P) [13:03:54] [PASSED] 0x462A (ALDERLAKE_P) [13:03:54] [PASSED] 0x4626 (ALDERLAKE_P) [13:03:54] [PASSED] 0x4628 (ALDERLAKE_P) [13:03:54] [PASSED] 0x46B0 (ALDERLAKE_P) [13:03:54] [PASSED] 0x46B1 (ALDERLAKE_P) [13:03:54] [PASSED] 0x46B2 (ALDERLAKE_P) [13:03:54] [PASSED] 0x46B3 (ALDERLAKE_P) [13:03:54] [PASSED] 0x46C0 (ALDERLAKE_P) [13:03:54] [PASSED] 0x46C1 (ALDERLAKE_P) [13:03:54] [PASSED] 0x46C2 (ALDERLAKE_P) [13:03:54] [PASSED] 0x46C3 (ALDERLAKE_P) [13:03:54] [PASSED] 0x46D0 (ALDERLAKE_N) [13:03:54] [PASSED] 0x46D1 (ALDERLAKE_N) [13:03:54] [PASSED] 0x46D2 (ALDERLAKE_N) [13:03:54] [PASSED] 0x46D3 (ALDERLAKE_N) [13:03:54] [PASSED] 0x46D4 (ALDERLAKE_N) [13:03:54] [PASSED] 0xA721 (ALDERLAKE_P) [13:03:54] [PASSED] 0xA7A1 (ALDERLAKE_P) [13:03:54] [PASSED] 0xA7A9 (ALDERLAKE_P) [13:03:54] [PASSED] 0xA7AC (ALDERLAKE_P) [13:03:54] [PASSED] 0xA7AD (ALDERLAKE_P) [13:03:54] [PASSED] 0xA720 (ALDERLAKE_P) [13:03:54] [PASSED] 0xA7A0 (ALDERLAKE_P) [13:03:54] [PASSED] 0xA7A8 (ALDERLAKE_P) [13:03:54] [PASSED] 0xA7AA (ALDERLAKE_P) [13:03:54] [PASSED] 0xA7AB (ALDERLAKE_P) [13:03:54] [PASSED] 0xA780 (ALDERLAKE_S) [13:03:54] [PASSED] 0xA781 (ALDERLAKE_S) [13:03:54] [PASSED] 0xA782 (ALDERLAKE_S) [13:03:54] [PASSED] 0xA783 (ALDERLAKE_S) [13:03:54] [PASSED] 0xA788 (ALDERLAKE_S) [13:03:54] [PASSED] 0xA789 (ALDERLAKE_S) [13:03:54] [PASSED] 0xA78A (ALDERLAKE_S) [13:03:54] [PASSED] 0xA78B (ALDERLAKE_S) [13:03:54] [PASSED] 0x4905 (DG1) [13:03:54] [PASSED] 0x4906 (DG1) [13:03:54] [PASSED] 0x4907 (DG1) [13:03:54] [PASSED] 0x4908 (DG1) [13:03:54] [PASSED] 0x4909 (DG1) [13:03:54] [PASSED] 0x56C0 (DG2) [13:03:54] [PASSED] 0x56C2 (DG2) [13:03:54] [PASSED] 0x56C1 (DG2) [13:03:54] [PASSED] 0x7D51 (METEORLAKE) [13:03:54] [PASSED] 0x7DD1 (METEORLAKE) [13:03:54] [PASSED] 0x7D41 (METEORLAKE) [13:03:54] [PASSED] 0x7D67 (METEORLAKE) [13:03:54] [PASSED] 0xB640 (METEORLAKE) [13:03:54] [PASSED] 0x56A0 (DG2) [13:03:54] [PASSED] 0x56A1 (DG2) [13:03:54] [PASSED] 0x56A2 (DG2) [13:03:54] [PASSED] 0x56BE (DG2) [13:03:54] [PASSED] 0x56BF (DG2) [13:03:54] [PASSED] 0x5690 (DG2) [13:03:54] [PASSED] 0x5691 (DG2) [13:03:54] [PASSED] 0x5692 (DG2) [13:03:54] [PASSED] 0x56A5 (DG2) [13:03:54] [PASSED] 0x56A6 (DG2) [13:03:54] [PASSED] 0x56B0 (DG2) [13:03:54] [PASSED] 0x56B1 (DG2) [13:03:54] [PASSED] 0x56BA (DG2) [13:03:54] [PASSED] 0x56BB (DG2) [13:03:54] [PASSED] 0x56BC (DG2) [13:03:54] [PASSED] 0x56BD (DG2) [13:03:54] [PASSED] 0x5693 (DG2) [13:03:54] [PASSED] 0x5694 (DG2) [13:03:54] [PASSED] 0x5695 (DG2) [13:03:54] [PASSED] 0x56A3 (DG2) [13:03:54] [PASSED] 0x56A4 (DG2) [13:03:54] [PASSED] 0x56B2 (DG2) [13:03:54] [PASSED] 0x56B3 (DG2) [13:03:54] [PASSED] 0x5696 (DG2) [13:03:54] [PASSED] 0x5697 (DG2) [13:03:54] [PASSED] 0xB69 (PVC) [13:03:54] [PASSED] 0xB6E (PVC) [13:03:54] [PASSED] 0xBD4 (PVC) [13:03:54] [PASSED] 0xBD5 (PVC) [13:03:54] [PASSED] 0xBD6 (PVC) [13:03:54] [PASSED] 0xBD7 (PVC) [13:03:54] [PASSED] 0xBD8 (PVC) [13:03:54] [PASSED] 0xBD9 (PVC) [13:03:54] [PASSED] 0xBDA (PVC) [13:03:54] [PASSED] 0xBDB (PVC) [13:03:54] [PASSED] 0xBE0 (PVC) [13:03:54] [PASSED] 0xBE1 (PVC) [13:03:54] [PASSED] 0xBE5 (PVC) [13:03:54] [PASSED] 0x7D40 (METEORLAKE) [13:03:54] [PASSED] 0x7D45 (METEORLAKE) [13:03:54] [PASSED] 0x7D55 (METEORLAKE) [13:03:54] [PASSED] 0x7D60 (METEORLAKE) [13:03:54] [PASSED] 0x7DD5 (METEORLAKE) [13:03:54] [PASSED] 0x6420 (LUNARLAKE) [13:03:54] [PASSED] 0x64A0 (LUNARLAKE) [13:03:54] [PASSED] 0x64B0 (LUNARLAKE) [13:03:54] [PASSED] 0xE202 (BATTLEMAGE) [13:03:54] [PASSED] 0xE209 (BATTLEMAGE) [13:03:54] [PASSED] 0xE20B (BATTLEMAGE) [13:03:54] [PASSED] 0xE20C (BATTLEMAGE) [13:03:54] [PASSED] 0xE20D (BATTLEMAGE) [13:03:54] [PASSED] 0xE210 (BATTLEMAGE) [13:03:54] [PASSED] 0xE211 (BATTLEMAGE) [13:03:54] [PASSED] 0xE212 (BATTLEMAGE) [13:03:54] [PASSED] 0xE216 (BATTLEMAGE) [13:03:54] [PASSED] 0xE220 (BATTLEMAGE) [13:03:54] [PASSED] 0xE221 (BATTLEMAGE) [13:03:54] [PASSED] 0xE222 (BATTLEMAGE) [13:03:54] [PASSED] 0xE223 (BATTLEMAGE) [13:03:54] [PASSED] 0xB080 (PANTHERLAKE) [13:03:54] [PASSED] 0xB081 (PANTHERLAKE) [13:03:54] [PASSED] 0xB082 (PANTHERLAKE) [13:03:54] [PASSED] 0xB083 (PANTHERLAKE) [13:03:54] [PASSED] 0xB084 (PANTHERLAKE) [13:03:54] [PASSED] 0xB085 (PANTHERLAKE) [13:03:54] [PASSED] 0xB086 (PANTHERLAKE) [13:03:54] [PASSED] 0xB087 (PANTHERLAKE) [13:03:54] [PASSED] 0xB08F (PANTHERLAKE) [13:03:54] [PASSED] 0xB090 (PANTHERLAKE) [13:03:54] [PASSED] 0xB0A0 (PANTHERLAKE) [13:03:54] [PASSED] 0xB0A1 (PANTHERLAKE) [13:03:54] [PASSED] 0xB0B0 (PANTHERLAKE) [13:03:54] [PASSED] 0xFD80 (PANTHERLAKE) [13:03:54] [PASSED] 0xFD81 (PANTHERLAKE) [13:03:54] [PASSED] 0xD740 (NOVALAKE_S) [13:03:54] [PASSED] 0xD741 (NOVALAKE_S) [13:03:54] [PASSED] 0xD742 (NOVALAKE_S) [13:03:54] [PASSED] 0xD743 (NOVALAKE_S) [13:03:54] [PASSED] 0xD745 (NOVALAKE_S) [13:03:54] [PASSED] 0xD74A (NOVALAKE_S) [13:03:54] [PASSED] 0xD74B (NOVALAKE_S) [13:03:54] [PASSED] 0x674C (CRESCENTISLAND) [13:03:54] [PASSED] 0x674D (CRESCENTISLAND) [13:03:54] [PASSED] 0x674E (CRESCENTISLAND) [13:03:54] [PASSED] 0x674F (CRESCENTISLAND) [13:03:54] [PASSED] 0x6750 (CRESCENTISLAND) [13:03:54] [PASSED] 0x6751 (CRESCENTISLAND) [13:03:54] [PASSED] 0xD750 (NOVALAKE_P) [13:03:54] [PASSED] 0xD751 (NOVALAKE_P) [13:03:54] [PASSED] 0xD752 (NOVALAKE_P) [13:03:54] [PASSED] 0xD753 (NOVALAKE_P) [13:03:54] [PASSED] 0xD754 (NOVALAKE_P) [13:03:54] [PASSED] 0xD755 (NOVALAKE_P) [13:03:54] [PASSED] 0xD756 (NOVALAKE_P) [13:03:54] [PASSED] 0xD757 (NOVALAKE_P) [13:03:54] [PASSED] 0xD75F (NOVALAKE_P) [13:03:54] =============== [PASSED] check_platform_desc =============== [13:03:54] ===================== [PASSED] xe_pci ====================== [13:03:54] ============= xe_rtp_tables_test (5 subtests) ============== [13:03:54] ================== xe_rtp_table_gt_test =================== [13:03:54] [PASSED] gt_was/14011060649 [13:03:54] [PASSED] gt_was/14011059788 [13:03:54] [PASSED] gt_was/14015795083 [13:03:54] [PASSED] gt_was/16021867713 [13:03:54] [PASSED] gt_was/14019449301 [13:03:54] [PASSED] gt_was/16028005424 [13:03:54] [PASSED] gt_was/14026578760 [13:03:54] [PASSED] gt_was/1409420604 [13:03:54] [PASSED] gt_was/1408615072 [13:03:54] [PASSED] gt_was/22010523718 [13:03:54] [PASSED] gt_was/14011006942 [13:03:54] [PASSED] gt_was/14014830051 [13:03:54] [PASSED] gt_was/18018781329 [13:03:54] [PASSED] gt_was/1509235366 [13:03:54] [PASSED] gt_was/18018781329 [13:03:54] [PASSED] gt_was/16016694945 [13:03:54] [PASSED] gt_was/14018575942 [13:03:54] [PASSED] gt_was/22016670082 [13:03:54] [PASSED] gt_was/22016670082 [13:03:54] [PASSED] gt_was/14017421178 [13:03:54] [PASSED] gt_was/16025250150 [13:03:54] [PASSED] gt_was/14021871409 [13:03:54] [PASSED] gt_was/16021865536 [13:03:54] [PASSED] gt_was/14021486841 [13:03:54] [PASSED] gt_was/14025160223 [13:03:54] [PASSED] gt_was/14026144927, 16029437861, 14026127056 [13:03:54] [PASSED] gt_was/14025635424 [13:03:54] [PASSED] gt_was/16028005424 [13:03:54] ============== [PASSED] xe_rtp_table_gt_test =============== [13:03:54] ================== xe_rtp_table_gt_test =================== [13:03:54] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable [13:03:54] [PASSED] gt_tunings/Tuning: 32B Access Enable [13:03:54] [PASSED] gt_tunings/Tuning: L3 cache [13:03:54] [PASSED] gt_tunings/Tuning: L3 cache - media [13:03:54] [PASSED] gt_tunings/Tuning: Compression Overfetch [13:03:54] [PASSED] gt_tunings/Tuning: Compression Overfetch - media [13:03:54] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 [13:03:54] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media [13:03:54] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only [13:03:54] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media [13:03:54] [PASSED] gt_tunings/Tuning: Stateless compression control [13:03:54] [PASSED] gt_tunings/Tuning: Stateless compression control - media [13:03:54] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache [13:03:54] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media [13:03:54] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB [13:03:54] [PASSED] gt_tunings/Tuning: Force All Non-Compressible Memory Reads to be 256B Overfetches [13:03:54] ============== [PASSED] xe_rtp_table_gt_test =============== [13:03:54] ================== xe_rtp_table_oob_test ================== [13:03:54] [PASSED] oob_was/1607983814 [13:03:54] [PASSED] oob_was/16010904313 [13:03:54] [PASSED] oob_was/18022495364 [13:03:54] [PASSED] oob_was/22012773006 [13:03:54] [PASSED] oob_was/14014475959 [13:03:54] [PASSED] oob_was/22011391025 [13:03:54] [PASSED] oob_was/22012727170 [13:03:54] [PASSED] oob_was/22012727685 [13:03:54] [PASSED] oob_was/22016596838 [13:03:54] [PASSED] oob_was/18020744125 [13:03:54] [PASSED] oob_was/1409600907 [13:03:54] [PASSED] oob_was/22014953428 [13:03:54] [PASSED] oob_was/16017236439 [13:03:54] [PASSED] oob_was/14019821291 [13:03:54] [PASSED] oob_was/14015076503 [13:03:54] [PASSED] oob_was/22016122933 [13:03:54] [PASSED] oob_was/14018913170 [13:03:54] [PASSED] oob_was/14018094691 [13:03:54] [PASSED] oob_was/18024947630 [13:03:54] [PASSED] oob_was/16022287689 [13:03:54] [PASSED] oob_was/13011645652 [13:03:54] [PASSED] oob_was/14022293748 [13:03:54] [PASSED] oob_was/22019794406 [13:03:54] [PASSED] oob_was/22019338487 [13:03:54] [PASSED] oob_was/16023588340 [13:03:54] [PASSED] oob_was/14019789679 [13:03:54] [PASSED] oob_was/14022866841 [13:03:54] [PASSED] oob_was/16021333562 [13:03:54] [PASSED] oob_was/14016712196 [13:03:54] [PASSED] oob_was/14015568240 [13:03:54] [PASSED] oob_was/18013179988 [13:03:54] [PASSED] oob_was/1508761755 [13:03:54] [PASSED] oob_was/16023105232 [13:03:54] [PASSED] oob_was/16026508708 [13:03:54] [PASSED] oob_was/14020001231 [13:03:54] [PASSED] oob_was/16023683509 [13:03:54] [PASSED] oob_was/14025515070 [13:03:54] [PASSED] oob_was/15015404425_disable [13:03:54] [PASSED] oob_was/16026007364 [13:03:54] [PASSED] oob_was/14020316580 [13:03:54] [PASSED] oob_was/14025883347 [13:03:54] [PASSED] oob_was/16029380221 [13:03:54] [PASSED] oob_was/22022079272 [13:03:54] [PASSED] oob_was/16029897822 [13:03:54] [PASSED] oob_was/14027054324 [13:03:54] [PASSED] oob_was/14025941587 [13:03:54] [PASSED] oob_was/16030224309 [13:03:54] ============== [PASSED] xe_rtp_table_oob_test ============== [13:03:54] ================ xe_rtp_table_dev_oob_test ================ [13:03:54] [PASSED] device_oob_was/22010954014 [13:03:54] [PASSED] device_oob_was/15015404425 [13:03:54] [PASSED] device_oob_was/22019338487_display [13:03:54] [PASSED] device_oob_was/14022085890 [13:03:54] [PASSED] device_oob_was/14026539277 [13:03:54] [PASSED] device_oob_was/14026633728 [13:03:54] [PASSED] device_oob_was/14026746987 [13:03:54] [PASSED] device_oob_was/14026779378 [13:03:54] ============ [PASSED] xe_rtp_table_dev_oob_test ============ [13:03:54] ========== xe_rtp_table_missing_upper_bound_test ========== [13:03:54] [PASSED] register_whitelist/WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865 [13:03:54] [PASSED] register_whitelist/1508744258, 14012131227, 1808121037 [13:03:54] [PASSED] register_whitelist/1806527549 [13:03:54] [PASSED] register_whitelist/allow_read_ctx_timestamp [13:03:54] [PASSED] register_whitelist/allow_read_queue_timestamp [13:03:54] [PASSED] register_whitelist/16014440446 [13:03:54] [PASSED] register_whitelist/16017236439 [13:03:54] [PASSED] register_whitelist/16020183090 [13:03:54] [PASSED] register_whitelist/14024997852 [13:03:54] [PASSED] register_whitelist/14024997852 [13:03:54] ====== [PASSED] xe_rtp_table_missing_upper_bound_test ====== [13:03:54] =============== [PASSED] xe_rtp_tables_test ================ [13:03:54] =================== xe_rtp (3 subtests) ==================== [13:03:54] =================== xe_rtp_rules_tests ==================== [13:03:54] [PASSED] no [13:03:54] [PASSED] yes [13:03:54] [PASSED] no-and-no [13:03:54] [PASSED] no-and-yes [13:03:54] [PASSED] yes-and-no [13:03:54] [PASSED] yes-and-yes [13:03:54] [PASSED] no-or-no [13:03:54] [PASSED] no-or-yes [13:03:54] [PASSED] yes-or-no [13:03:54] [PASSED] yes-or-yes [13:03:54] [PASSED] no-yes-or-yes-no [13:03:54] [PASSED] no-yes-or-yes-yes [13:03:54] [PASSED] yes-yes-or-no-yes [13:03:54] [PASSED] yes-yes-or-yes-yes [13:03:54] [PASSED] no-no-or-yes-or-no [13:03:54] [PASSED] or [13:03:54] [PASSED] or-yes [13:03:54] [PASSED] or-no [13:03:54] [PASSED] yes-or [13:03:54] [PASSED] no-or [13:03:54] [PASSED] no-or-or-yes [13:03:54] [PASSED] yes-or-or-no [13:03:54] [PASSED] no-or-or-no [13:03:54] [PASSED] missing-context-engine-class [13:03:54] [PASSED] missing-context-engine-class-or-yes [13:03:54] [PASSED] missing-context-engine-class-or-or-yes [13:03:54] =============== [PASSED] xe_rtp_rules_tests ================ [13:03:54] =============== xe_rtp_process_to_sr_tests ================ [13:03:54] [PASSED] coalesce-same-reg [13:03:54] [PASSED] coalesce-same-reg-literal-and-func [13:03:54] [PASSED] no-match-no-add [13:03:54] [PASSED] two-regs-two-entries [13:03:54] [PASSED] clr-one-set-other [13:03:54] [PASSED] set-field [13:03:54] [PASSED] conflict-duplicate [13:03:54] [PASSED] conflict-not-disjoint [13:03:54] [PASSED] conflict-not-disjoint-literal-and-func [13:03:54] [PASSED] conflict-reg-type [13:03:54] [PASSED] bad-mcr-reg-forced-to-regular [13:03:54] [PASSED] bad-regular-reg-forced-to-mcr [13:03:54] =========== [PASSED] xe_rtp_process_to_sr_tests ============ [13:03:54] ================== xe_rtp_process_tests =================== [13:03:54] [PASSED] active1 [13:03:54] [PASSED] active2 [13:03:54] [PASSED] active-inactive [13:03:54] [PASSED] inactive-active [13:03:54] [PASSED] inactive-active-inactive [13:03:54] [PASSED] inactive-inactive-inactive [13:03:54] ============== [PASSED] xe_rtp_process_tests =============== [13:03:54] ===================== [PASSED] xe_rtp ====================== [13:03:54] ==================== xe_wa (1 subtest) ===================== [13:03:54] ======================== xe_wa_gt ========================= [13:03:54] [PASSED] TIGERLAKE B0 [13:03:54] [PASSED] DG1 A0 [13:03:54] [PASSED] DG1 B0 [13:03:54] [PASSED] ALDERLAKE_S A0 [13:03:54] [PASSED] ALDERLAKE_S B0 [13:03:54] [PASSED] ALDERLAKE_S C0 [13:03:54] [PASSED] ALDERLAKE_S D0 [13:03:54] [PASSED] ALDERLAKE_P A0 [13:03:54] [PASSED] ALDERLAKE_P B0 [13:03:54] [PASSED] ALDERLAKE_P C0 [13:03:54] [PASSED] ALDERLAKE_S RPLS D0 [13:03:54] [PASSED] ALDERLAKE_P RPLU E0 [13:03:54] [PASSED] DG2 G10 C0 [13:03:54] [PASSED] DG2 G11 B1 [13:03:54] [PASSED] DG2 G12 A1 [13:03:54] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0 [13:03:54] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0 [13:03:54] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0 [13:03:54] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0 [13:03:54] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0 [13:03:54] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1 [13:03:54] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0 [13:03:54] ==================== [PASSED] xe_wa_gt ===================== [13:03:54] ====================== [PASSED] xe_wa ====================== [13:03:54] ============================================================ [13:03:54] Testing complete. Ran 825 tests: passed: 797, skipped: 28 [13:03:54] Elapsed time: 36.691s total, 1.772s configuring, 34.203s building, 0.708s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig [13:03:54] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig [13:03:56] 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 [13:04:21] Starting KUnit Kernel (1/1)... [13:04:21] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [13:04:22] ============= refcount_interrupt (4 subtests) ============== [13:04:22] [PASSED] test_single_irq_change [13:04:22] [PASSED] test_nested_irq_change [13:04:22] [PASSED] test_multiple_irq_change [13:04:22] [PASSED] test_irq_save [13:04:22] =============== [PASSED] refcount_interrupt ================ [13:04:22] ============ drm_test_pick_cmdline (2 subtests) ============ [13:04:22] [PASSED] drm_test_pick_cmdline_res_1920_1080_60 [13:04:22] =============== drm_test_pick_cmdline_named =============== [13:04:22] [PASSED] NTSC [13:04:22] [PASSED] NTSC-J [13:04:22] [PASSED] PAL [13:04:22] [PASSED] PAL-M [13:04:22] =========== [PASSED] drm_test_pick_cmdline_named =========== [13:04:22] ============== [PASSED] drm_test_pick_cmdline ============== [13:04:22] == drm_test_atomic_get_connector_for_encoder (1 subtest) === [13:04:22] [PASSED] drm_test_drm_atomic_get_connector_for_encoder [13:04:22] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ==== [13:04:22] =========== drm_validate_clone_mode (2 subtests) =========== [13:04:22] ============== drm_test_check_in_clone_mode =============== [13:04:22] [PASSED] in_clone_mode [13:04:22] [PASSED] not_in_clone_mode [13:04:22] ========== [PASSED] drm_test_check_in_clone_mode =========== [13:04:22] =============== drm_test_check_valid_clones =============== [13:04:22] [PASSED] not_in_clone_mode [13:04:22] [PASSED] valid_clone [13:04:22] [PASSED] invalid_clone [13:04:22] =========== [PASSED] drm_test_check_valid_clones =========== [13:04:22] ============= [PASSED] drm_validate_clone_mode ============= [13:04:22] ============= drm_validate_modeset (1 subtest) ============= [13:04:22] [PASSED] drm_test_check_connector_changed_modeset [13:04:22] ============== [PASSED] drm_validate_modeset =============== [13:04:22] ====== drm_test_bridge_get_current_state (1 subtest) ======= [13:04:22] [PASSED] drm_test_drm_bridge_get_current_state_atomic [13:04:22] ======== [PASSED] drm_test_bridge_get_current_state ======== [13:04:22] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ====== [13:04:22] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic [13:04:22] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled [13:04:22] [PASSED] drm_test_drm_bridge_helper_hdmi_output_bus_fmts [13:04:22] ======== [PASSED] drm_test_bridge_helper_reset_crtc ======== [13:04:22] ============== drm_bridge_alloc (2 subtests) =============== [13:04:22] [PASSED] drm_test_drm_bridge_alloc_basic [13:04:22] [PASSED] drm_test_drm_bridge_alloc_get_put [13:04:22] ================ [PASSED] drm_bridge_alloc ================= [13:04:22] ============= drm_bridge_bus_fmt (5 subtests) ============== [13:04:22] [PASSED] drm_test_bridge_rgb_yuv_rgb [13:04:22] [PASSED] drm_test_bridge_must_convert_to_yuv444 [13:04:22] [PASSED] drm_test_bridge_hdmi_auto_rgb [13:04:22] [PASSED] drm_test_bridge_auto_first [13:04:22] [PASSED] drm_test_bridge_rgb_yuv_no_path [13:04:22] =============== [PASSED] drm_bridge_bus_fmt ================ [13:04:22] ============= drm_cmdline_parser (40 subtests) ============= [13:04:22] [PASSED] drm_test_cmdline_force_d_only [13:04:22] [PASSED] drm_test_cmdline_force_D_only_dvi [13:04:22] [PASSED] drm_test_cmdline_force_D_only_hdmi [13:04:22] [PASSED] drm_test_cmdline_force_D_only_not_digital [13:04:22] [PASSED] drm_test_cmdline_force_e_only [13:04:22] [PASSED] drm_test_cmdline_res [13:04:22] [PASSED] drm_test_cmdline_res_vesa [13:04:22] [PASSED] drm_test_cmdline_res_vesa_rblank [13:04:22] [PASSED] drm_test_cmdline_res_rblank [13:04:22] [PASSED] drm_test_cmdline_res_bpp [13:04:22] [PASSED] drm_test_cmdline_res_refresh [13:04:22] [PASSED] drm_test_cmdline_res_bpp_refresh [13:04:22] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced [13:04:22] [PASSED] drm_test_cmdline_res_bpp_refresh_margins [13:04:22] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off [13:04:22] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on [13:04:22] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog [13:04:22] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital [13:04:22] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on [13:04:22] [PASSED] drm_test_cmdline_res_margins_force_on [13:04:22] [PASSED] drm_test_cmdline_res_vesa_margins [13:04:22] [PASSED] drm_test_cmdline_name [13:04:22] [PASSED] drm_test_cmdline_name_bpp [13:04:22] [PASSED] drm_test_cmdline_name_option [13:04:22] [PASSED] drm_test_cmdline_name_bpp_option [13:04:22] [PASSED] drm_test_cmdline_rotate_0 [13:04:22] [PASSED] drm_test_cmdline_rotate_90 [13:04:22] [PASSED] drm_test_cmdline_rotate_180 [13:04:22] [PASSED] drm_test_cmdline_rotate_270 [13:04:22] [PASSED] drm_test_cmdline_hmirror [13:04:22] [PASSED] drm_test_cmdline_vmirror [13:04:22] [PASSED] drm_test_cmdline_margin_options [13:04:22] [PASSED] drm_test_cmdline_multiple_options [13:04:22] [PASSED] drm_test_cmdline_bpp_extra_and_option [13:04:22] [PASSED] drm_test_cmdline_extra_and_option [13:04:22] [PASSED] drm_test_cmdline_freestanding_options [13:04:22] [PASSED] drm_test_cmdline_freestanding_force_e_and_options [13:04:22] [PASSED] drm_test_cmdline_panel_orientation [13:04:22] ================ drm_test_cmdline_invalid ================= [13:04:22] [PASSED] margin_only [13:04:22] [PASSED] interlace_only [13:04:22] [PASSED] res_missing_x [13:04:22] [PASSED] res_missing_y [13:04:22] [PASSED] res_bad_y [13:04:22] [PASSED] res_missing_y_bpp [13:04:22] [PASSED] res_bad_bpp [13:04:22] [PASSED] res_bad_refresh [13:04:22] [PASSED] res_bpp_refresh_force_on_off [13:04:22] [PASSED] res_invalid_mode [13:04:22] [PASSED] res_bpp_wrong_place_mode [13:04:22] [PASSED] name_bpp_refresh [13:04:22] [PASSED] name_refresh [13:04:22] [PASSED] name_refresh_wrong_mode [13:04:22] [PASSED] name_refresh_invalid_mode [13:04:22] [PASSED] rotate_multiple [13:04:22] [PASSED] rotate_invalid_val [13:04:22] [PASSED] rotate_truncated [13:04:22] [PASSED] invalid_option [13:04:22] [PASSED] invalid_tv_option [13:04:22] [PASSED] truncated_tv_option [13:04:22] ============ [PASSED] drm_test_cmdline_invalid ============= [13:04:22] =============== drm_test_cmdline_tv_options =============== [13:04:22] [PASSED] NTSC [13:04:22] [PASSED] NTSC_443 [13:04:22] [PASSED] NTSC_J [13:04:22] [PASSED] PAL [13:04:22] [PASSED] PAL_M [13:04:22] [PASSED] PAL_N [13:04:22] [PASSED] SECAM [13:04:22] [PASSED] MONO_525 [13:04:22] [PASSED] MONO_625 [13:04:22] =========== [PASSED] drm_test_cmdline_tv_options =========== [13:04:22] =============== [PASSED] drm_cmdline_parser ================ [13:04:22] ========== drmm_connector_hdmi_init (20 subtests) ========== [13:04:22] [PASSED] drm_test_connector_hdmi_init_valid [13:04:22] [PASSED] drm_test_connector_hdmi_init_bpc_8 [13:04:22] [PASSED] drm_test_connector_hdmi_init_bpc_10 [13:04:22] [PASSED] drm_test_connector_hdmi_init_bpc_12 [13:04:22] [PASSED] drm_test_connector_hdmi_init_bpc_invalid [13:04:22] [PASSED] drm_test_connector_hdmi_init_bpc_null [13:04:22] [PASSED] drm_test_connector_hdmi_init_formats_empty [13:04:22] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb [13:04:22] === drm_test_connector_hdmi_init_formats_yuv420_allowed === [13:04:22] [PASSED] supported_formats=0x9 yuv420_allowed=1 [13:04:22] [PASSED] supported_formats=0x9 yuv420_allowed=0 [13:04:22] [PASSED] supported_formats=0x5 yuv420_allowed=1 [13:04:22] [PASSED] supported_formats=0x5 yuv420_allowed=0 [13:04:22] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed === [13:04:22] [PASSED] drm_test_connector_hdmi_init_null_ddc [13:04:22] [PASSED] drm_test_connector_hdmi_init_null_product [13:04:22] [PASSED] drm_test_connector_hdmi_init_null_vendor [13:04:22] [PASSED] drm_test_connector_hdmi_init_product_length_exact [13:04:22] [PASSED] drm_test_connector_hdmi_init_product_length_too_long [13:04:22] [PASSED] drm_test_connector_hdmi_init_product_valid [13:04:22] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact [13:04:22] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long [13:04:22] [PASSED] drm_test_connector_hdmi_init_vendor_valid [13:04:22] ========= drm_test_connector_hdmi_init_type_valid ========= [13:04:22] [PASSED] HDMI-A [13:04:22] [PASSED] HDMI-B [13:04:22] ===== [PASSED] drm_test_connector_hdmi_init_type_valid ===== [13:04:22] ======== drm_test_connector_hdmi_init_type_invalid ======== [13:04:22] [PASSED] Unknown [13:04:22] [PASSED] VGA [13:04:22] [PASSED] DVI-I [13:04:22] [PASSED] DVI-D [13:04:22] [PASSED] DVI-A [13:04:22] [PASSED] Composite [13:04:22] [PASSED] SVIDEO [13:04:22] [PASSED] LVDS [13:04:22] [PASSED] Component [13:04:22] [PASSED] DIN [13:04:22] [PASSED] DP [13:04:22] [PASSED] TV [13:04:22] [PASSED] eDP [13:04:22] [PASSED] Virtual [13:04:22] [PASSED] DSI [13:04:22] [PASSED] DPI [13:04:22] [PASSED] Writeback [13:04:22] [PASSED] SPI [13:04:22] [PASSED] USB [13:04:22] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ==== [13:04:22] ============ [PASSED] drmm_connector_hdmi_init ============= [13:04:22] ============= drmm_connector_init (3 subtests) ============= [13:04:22] [PASSED] drm_test_drmm_connector_init [13:04:22] [PASSED] drm_test_drmm_connector_init_null_ddc [13:04:22] ========= drm_test_drmm_connector_init_type_valid ========= [13:04:22] [PASSED] Unknown [13:04:22] [PASSED] VGA [13:04:22] [PASSED] DVI-I [13:04:22] [PASSED] DVI-D [13:04:22] [PASSED] DVI-A [13:04:22] [PASSED] Composite [13:04:22] [PASSED] SVIDEO [13:04:22] [PASSED] LVDS [13:04:22] [PASSED] Component [13:04:22] [PASSED] DIN [13:04:22] [PASSED] DP [13:04:22] [PASSED] HDMI-A [13:04:22] [PASSED] HDMI-B [13:04:22] [PASSED] TV [13:04:22] [PASSED] eDP [13:04:22] [PASSED] Virtual [13:04:22] [PASSED] DSI [13:04:22] [PASSED] DPI [13:04:22] [PASSED] Writeback [13:04:22] [PASSED] SPI [13:04:22] [PASSED] USB [13:04:22] ===== [PASSED] drm_test_drmm_connector_init_type_valid ===== [13:04:22] =============== [PASSED] drmm_connector_init =============== [13:04:22] ========= drm_connector_dynamic_init (6 subtests) ========== [13:04:22] [PASSED] drm_test_drm_connector_dynamic_init [13:04:22] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc [13:04:22] [PASSED] drm_test_drm_connector_dynamic_init_not_added [13:04:22] [PASSED] drm_test_drm_connector_dynamic_init_properties [13:04:22] ===== drm_test_drm_connector_dynamic_init_type_valid ====== [13:04:22] [PASSED] Unknown [13:04:22] [PASSED] VGA [13:04:22] [PASSED] DVI-I [13:04:22] [PASSED] DVI-D [13:04:22] [PASSED] DVI-A [13:04:22] [PASSED] Composite [13:04:22] [PASSED] SVIDEO [13:04:22] [PASSED] LVDS [13:04:22] [PASSED] Component [13:04:22] [PASSED] DIN [13:04:22] [PASSED] DP [13:04:22] [PASSED] HDMI-A [13:04:22] [PASSED] HDMI-B [13:04:22] [PASSED] TV [13:04:22] [PASSED] eDP [13:04:22] [PASSED] Virtual [13:04:22] [PASSED] DSI [13:04:22] [PASSED] DPI [13:04:22] [PASSED] Writeback [13:04:22] [PASSED] SPI [13:04:22] [PASSED] USB [13:04:22] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid == [13:04:22] ======== drm_test_drm_connector_dynamic_init_name ========= [13:04:22] [PASSED] Unknown [13:04:22] [PASSED] VGA [13:04:22] [PASSED] DVI-I [13:04:22] [PASSED] DVI-D [13:04:22] [PASSED] DVI-A [13:04:22] [PASSED] Composite [13:04:22] [PASSED] SVIDEO [13:04:22] [PASSED] LVDS [13:04:22] [PASSED] Component [13:04:22] [PASSED] DIN [13:04:22] [PASSED] DP [13:04:22] [PASSED] HDMI-A [13:04:22] [PASSED] HDMI-B [13:04:22] [PASSED] TV [13:04:22] [PASSED] eDP [13:04:22] [PASSED] Virtual [13:04:22] [PASSED] DSI [13:04:22] [PASSED] DPI [13:04:22] [PASSED] Writeback [13:04:22] [PASSED] SPI [13:04:22] [PASSED] USB [13:04:22] ==== [PASSED] drm_test_drm_connector_dynamic_init_name ===== [13:04:22] =========== [PASSED] drm_connector_dynamic_init ============ [13:04:22] ==== drm_connector_dynamic_register_early (4 subtests) ===== [13:04:22] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list [13:04:22] [PASSED] drm_test_drm_connector_dynamic_register_early_defer [13:04:22] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init [13:04:22] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object [13:04:22] ====== [PASSED] drm_connector_dynamic_register_early ======= [13:04:22] ======= drm_connector_dynamic_register (7 subtests) ======== [13:04:22] [PASSED] drm_test_drm_connector_dynamic_register_on_list [13:04:22] [PASSED] drm_test_drm_connector_dynamic_register_no_defer [13:04:22] [PASSED] drm_test_drm_connector_dynamic_register_no_init [13:04:22] [PASSED] drm_test_drm_connector_dynamic_register_mode_object [13:04:22] [PASSED] drm_test_drm_connector_dynamic_register_sysfs [13:04:22] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name [13:04:22] [PASSED] drm_test_drm_connector_dynamic_register_debugfs [13:04:22] ========= [PASSED] drm_connector_dynamic_register ========== [13:04:22] = drm_connector_attach_broadcast_rgb_property (2 subtests) = [13:04:22] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property [13:04:22] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector [13:04:22] === [PASSED] drm_connector_attach_broadcast_rgb_property === [13:04:22] ========== drm_get_tv_mode_from_name (2 subtests) ========== [13:04:22] ========== drm_test_get_tv_mode_from_name_valid =========== [13:04:22] [PASSED] NTSC [13:04:22] [PASSED] NTSC-443 [13:04:22] [PASSED] NTSC-J [13:04:22] [PASSED] PAL [13:04:22] [PASSED] PAL-M [13:04:22] [PASSED] PAL-N [13:04:22] [PASSED] SECAM [13:04:22] [PASSED] Mono [13:04:22] ====== [PASSED] drm_test_get_tv_mode_from_name_valid ======= [13:04:22] [PASSED] drm_test_get_tv_mode_from_name_truncated [13:04:22] ============ [PASSED] drm_get_tv_mode_from_name ============ [13:04:22] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) = [13:04:22] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb [13:04:22] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc [13:04:22] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1 [13:04:22] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc [13:04:22] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1 [13:04:22] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double [13:04:22] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid = [13:04:22] [PASSED] VIC 96 [13:04:22] [PASSED] VIC 97 [13:04:22] [PASSED] VIC 101 [13:04:22] [PASSED] VIC 102 [13:04:22] [PASSED] VIC 106 [13:04:22] [PASSED] VIC 107 [13:04:22] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid === [13:04:22] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc [13:04:22] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc [13:04:22] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc [13:04:22] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc [13:04:22] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc [13:04:22] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ==== [13:04:22] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) == [13:04:22] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ==== [13:04:22] [PASSED] Automatic [13:04:22] [PASSED] Full [13:04:22] [PASSED] Limited 16:235 [13:04:22] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name === [13:04:22] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid [13:04:22] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ==== [13:04:22] == drm_hdmi_connector_get_output_format_name (2 subtests) == [13:04:22] === drm_test_drm_hdmi_connector_get_output_format_name ==== [13:04:22] [PASSED] RGB [13:04:22] [PASSED] YUV 4:2:0 [13:04:22] [PASSED] YUV 4:2:2 [13:04:22] [PASSED] YUV 4:4:4 [13:04:22] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name === [13:04:22] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid [13:04:22] ==== [PASSED] drm_hdmi_connector_get_output_format_name ==== [13:04:22] ============= drm_damage_helper (21 subtests) ============== [13:04:22] [PASSED] drm_test_damage_iter_no_damage [13:04:22] [PASSED] drm_test_damage_iter_no_damage_fractional_src [13:04:22] [PASSED] drm_test_damage_iter_no_damage_src_moved [13:04:22] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved [13:04:22] [PASSED] drm_test_damage_iter_no_damage_not_visible [13:04:22] [PASSED] drm_test_damage_iter_no_damage_no_crtc [13:04:22] [PASSED] drm_test_damage_iter_no_damage_no_fb [13:04:22] [PASSED] drm_test_damage_iter_simple_damage [13:04:22] [PASSED] drm_test_damage_iter_single_damage [13:04:22] [PASSED] drm_test_damage_iter_single_damage_intersect_src [13:04:22] [PASSED] drm_test_damage_iter_single_damage_outside_src [13:04:22] [PASSED] drm_test_damage_iter_single_damage_fractional_src [13:04:22] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src [13:04:22] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src [13:04:22] [PASSED] drm_test_damage_iter_single_damage_src_moved [13:04:22] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved [13:04:22] [PASSED] drm_test_damage_iter_damage [13:04:22] [PASSED] drm_test_damage_iter_damage_one_intersect [13:04:22] [PASSED] drm_test_damage_iter_damage_one_outside [13:04:22] [PASSED] drm_test_damage_iter_damage_src_moved [13:04:22] [PASSED] drm_test_damage_iter_damage_not_visible [13:04:22] ================ [PASSED] drm_damage_helper ================ [13:04:22] ============== drm_dp_mst_helper (3 subtests) ============== [13:04:22] ============== drm_test_dp_mst_calc_pbn_mode ============== [13:04:22] [PASSED] Clock 154000 BPP 30 DSC disabled [13:04:22] [PASSED] Clock 234000 BPP 30 DSC disabled [13:04:22] [PASSED] Clock 297000 BPP 24 DSC disabled [13:04:22] [PASSED] Clock 332880 BPP 24 DSC enabled [13:04:22] [PASSED] Clock 324540 BPP 24 DSC enabled [13:04:22] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ========== [13:04:22] ============== drm_test_dp_mst_calc_pbn_div =============== [13:04:22] [PASSED] Link rate 2000000 lane count 4 [13:04:22] [PASSED] Link rate 2000000 lane count 2 [13:04:22] [PASSED] Link rate 2000000 lane count 1 [13:04:22] [PASSED] Link rate 1350000 lane count 4 [13:04:22] [PASSED] Link rate 1350000 lane count 2 [13:04:22] [PASSED] Link rate 1350000 lane count 1 [13:04:22] [PASSED] Link rate 1000000 lane count 4 [13:04:22] [PASSED] Link rate 1000000 lane count 2 [13:04:22] [PASSED] Link rate 1000000 lane count 1 [13:04:22] [PASSED] Link rate 810000 lane count 4 [13:04:22] [PASSED] Link rate 810000 lane count 2 [13:04:22] [PASSED] Link rate 810000 lane count 1 [13:04:22] [PASSED] Link rate 540000 lane count 4 [13:04:22] [PASSED] Link rate 540000 lane count 2 [13:04:22] [PASSED] Link rate 540000 lane count 1 [13:04:22] [PASSED] Link rate 270000 lane count 4 [13:04:22] [PASSED] Link rate 270000 lane count 2 [13:04:22] [PASSED] Link rate 270000 lane count 1 [13:04:22] [PASSED] Link rate 162000 lane count 4 [13:04:22] [PASSED] Link rate 162000 lane count 2 [13:04:22] [PASSED] Link rate 162000 lane count 1 [13:04:22] ========== [PASSED] drm_test_dp_mst_calc_pbn_div =========== [13:04:22] ========= drm_test_dp_mst_sideband_msg_req_decode ========= [13:04:22] [PASSED] DP_ENUM_PATH_RESOURCES with port number [13:04:22] [PASSED] DP_POWER_UP_PHY with port number [13:04:22] [PASSED] DP_POWER_DOWN_PHY with port number [13:04:22] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks [13:04:22] [PASSED] DP_ALLOCATE_PAYLOAD with port number [13:04:22] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI [13:04:22] [PASSED] DP_ALLOCATE_PAYLOAD with PBN [13:04:22] [PASSED] DP_QUERY_PAYLOAD with port number [13:04:22] [PASSED] DP_QUERY_PAYLOAD with VCPI [13:04:22] [PASSED] DP_REMOTE_DPCD_READ with port number [13:04:22] [PASSED] DP_REMOTE_DPCD_READ with DPCD address [13:04:22] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes [13:04:22] [PASSED] DP_REMOTE_DPCD_WRITE with port number [13:04:22] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address [13:04:22] [PASSED] DP_REMOTE_DPCD_WRITE with data array [13:04:22] [PASSED] DP_REMOTE_I2C_READ with port number [13:04:22] [PASSED] DP_REMOTE_I2C_READ with I2C device ID [13:04:22] [PASSED] DP_REMOTE_I2C_READ with transactions array [13:04:22] [PASSED] DP_REMOTE_I2C_WRITE with port number [13:04:22] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID [13:04:22] [PASSED] DP_REMOTE_I2C_WRITE with data array [13:04:22] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID [13:04:22] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID [13:04:22] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event [13:04:22] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event [13:04:22] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior [13:04:22] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior [13:04:22] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode ===== [13:04:22] ================ [PASSED] drm_dp_mst_helper ================ [13:04:22] ================== drm_exec (7 subtests) =================== [13:04:22] [PASSED] sanitycheck [13:04:22] [PASSED] test_lock [13:04:22] [PASSED] test_lock_unlock [13:04:22] [PASSED] test_duplicates [13:04:22] [PASSED] test_prepare [13:04:22] [PASSED] test_prepare_array [13:04:22] [PASSED] test_multiple_loops [13:04:22] ==================== [PASSED] drm_exec ===================== [13:04:22] =========== drm_format_helper_test (17 subtests) =========== [13:04:22] ============== drm_test_fb_xrgb8888_to_gray8 ============== [13:04:22] [PASSED] single_pixel_source_buffer [13:04:22] [PASSED] single_pixel_clip_rectangle [13:04:22] [PASSED] well_known_colors [13:04:22] [PASSED] destination_pitch [13:04:22] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ========== [13:04:22] ============= drm_test_fb_xrgb8888_to_rgb332 ============== [13:04:22] [PASSED] single_pixel_source_buffer [13:04:22] [PASSED] single_pixel_clip_rectangle [13:04:22] [PASSED] well_known_colors [13:04:22] [PASSED] destination_pitch [13:04:22] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ========== [13:04:22] ============= drm_test_fb_xrgb8888_to_rgb565 ============== [13:04:22] [PASSED] single_pixel_source_buffer [13:04:22] [PASSED] single_pixel_clip_rectangle [13:04:22] [PASSED] well_known_colors [13:04:22] [PASSED] destination_pitch [13:04:22] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ========== [13:04:22] ============ drm_test_fb_xrgb8888_to_xrgb1555 ============= [13:04:22] [PASSED] single_pixel_source_buffer [13:04:22] [PASSED] single_pixel_clip_rectangle [13:04:22] [PASSED] well_known_colors [13:04:22] [PASSED] destination_pitch [13:04:22] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 ========= [13:04:22] ============ drm_test_fb_xrgb8888_to_argb1555 ============= [13:04:22] [PASSED] single_pixel_source_buffer [13:04:22] [PASSED] single_pixel_clip_rectangle [13:04:22] [PASSED] well_known_colors [13:04:22] [PASSED] destination_pitch [13:04:22] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 ========= [13:04:22] ============ drm_test_fb_xrgb8888_to_rgba5551 ============= [13:04:22] [PASSED] single_pixel_source_buffer [13:04:22] [PASSED] single_pixel_clip_rectangle [13:04:22] [PASSED] well_known_colors [13:04:22] [PASSED] destination_pitch [13:04:22] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 ========= [13:04:22] ============= drm_test_fb_xrgb8888_to_rgb888 ============== [13:04:22] [PASSED] single_pixel_source_buffer [13:04:22] [PASSED] single_pixel_clip_rectangle [13:04:22] [PASSED] well_known_colors [13:04:22] [PASSED] destination_pitch [13:04:22] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ========== [13:04:22] ============= drm_test_fb_xrgb8888_to_bgr888 ============== [13:04:22] [PASSED] single_pixel_source_buffer [13:04:22] [PASSED] single_pixel_clip_rectangle [13:04:22] [PASSED] well_known_colors [13:04:22] [PASSED] destination_pitch [13:04:22] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ========== [13:04:22] ============ drm_test_fb_xrgb8888_to_argb8888 ============= [13:04:22] [PASSED] single_pixel_source_buffer [13:04:22] [PASSED] single_pixel_clip_rectangle [13:04:22] [PASSED] well_known_colors [13:04:22] [PASSED] destination_pitch [13:04:22] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 ========= [13:04:22] =========== drm_test_fb_xrgb8888_to_xrgb2101010 =========== [13:04:22] [PASSED] single_pixel_source_buffer [13:04:22] [PASSED] single_pixel_clip_rectangle [13:04:22] [PASSED] well_known_colors [13:04:22] [PASSED] destination_pitch [13:04:22] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 ======= [13:04:22] =========== drm_test_fb_xrgb8888_to_argb2101010 =========== [13:04:22] [PASSED] single_pixel_source_buffer [13:04:22] [PASSED] single_pixel_clip_rectangle [13:04:22] [PASSED] well_known_colors [13:04:22] [PASSED] destination_pitch [13:04:22] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 ======= [13:04:22] ============== drm_test_fb_xrgb8888_to_mono =============== [13:04:22] [PASSED] single_pixel_source_buffer [13:04:22] [PASSED] single_pixel_clip_rectangle [13:04:22] [PASSED] well_known_colors [13:04:22] [PASSED] destination_pitch [13:04:22] ========== [PASSED] drm_test_fb_xrgb8888_to_mono =========== [13:04:22] ==================== drm_test_fb_swab ===================== [13:04:22] [PASSED] single_pixel_source_buffer [13:04:22] [PASSED] single_pixel_clip_rectangle [13:04:22] [PASSED] well_known_colors [13:04:22] [PASSED] destination_pitch [13:04:22] ================ [PASSED] drm_test_fb_swab ================= [13:04:22] ============ drm_test_fb_xrgb8888_to_xbgr8888 ============= [13:04:22] [PASSED] single_pixel_source_buffer [13:04:22] [PASSED] single_pixel_clip_rectangle [13:04:22] [PASSED] well_known_colors [13:04:22] [PASSED] destination_pitch [13:04:22] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 ========= [13:04:22] ============ drm_test_fb_xrgb8888_to_abgr8888 ============= [13:04:22] [PASSED] single_pixel_source_buffer [13:04:22] [PASSED] single_pixel_clip_rectangle [13:04:22] [PASSED] well_known_colors [13:04:22] [PASSED] destination_pitch [13:04:22] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 ========= [13:04:22] ================= drm_test_fb_clip_offset ================= [13:04:22] [PASSED] pass through [13:04:22] [PASSED] horizontal offset [13:04:22] [PASSED] vertical offset [13:04:22] [PASSED] horizontal and vertical offset [13:04:22] [PASSED] horizontal offset (custom pitch) [13:04:22] [PASSED] vertical offset (custom pitch) [13:04:22] [PASSED] horizontal and vertical offset (custom pitch) [13:04:22] ============= [PASSED] drm_test_fb_clip_offset ============= [13:04:22] =================== drm_test_fb_memcpy ==================== [13:04:22] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258) [13:04:22] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258) [13:04:22] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559) [13:04:22] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258) [13:04:22] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258) [13:04:22] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559) [13:04:22] [PASSED] well_known_colors: XB24 little-endian (0x34324258) [13:04:22] [PASSED] well_known_colors: XRA8 little-endian (0x38415258) [13:04:22] [PASSED] well_known_colors: YU24 little-endian (0x34325559) [13:04:22] [PASSED] destination_pitch: XB24 little-endian (0x34324258) [13:04:22] [PASSED] destination_pitch: XRA8 little-endian (0x38415258) [13:04:22] [PASSED] destination_pitch: YU24 little-endian (0x34325559) [13:04:22] =============== [PASSED] drm_test_fb_memcpy ================ [13:04:22] ============= [PASSED] drm_format_helper_test ============== [13:04:22] ================= drm_format (18 subtests) ================= [13:04:22] [PASSED] drm_test_format_block_width_invalid [13:04:22] [PASSED] drm_test_format_block_width_one_plane [13:04:22] [PASSED] drm_test_format_block_width_two_plane [13:04:22] [PASSED] drm_test_format_block_width_three_plane [13:04:22] [PASSED] drm_test_format_block_width_tiled [13:04:22] [PASSED] drm_test_format_block_height_invalid [13:04:22] [PASSED] drm_test_format_block_height_one_plane [13:04:22] [PASSED] drm_test_format_block_height_two_plane [13:04:22] [PASSED] drm_test_format_block_height_three_plane [13:04:22] [PASSED] drm_test_format_block_height_tiled [13:04:22] [PASSED] drm_test_format_min_pitch_invalid [13:04:22] [PASSED] drm_test_format_min_pitch_one_plane_8bpp [13:04:22] [PASSED] drm_test_format_min_pitch_one_plane_16bpp [13:04:22] [PASSED] drm_test_format_min_pitch_one_plane_24bpp [13:04:22] [PASSED] drm_test_format_min_pitch_one_plane_32bpp [13:04:22] [PASSED] drm_test_format_min_pitch_two_plane [13:04:22] [PASSED] drm_test_format_min_pitch_three_plane_8bpp [13:04:22] [PASSED] drm_test_format_min_pitch_tiled [13:04:22] =================== [PASSED] drm_format ==================== [13:04:22] ============== drm_framebuffer (10 subtests) =============== [13:04:22] ========== drm_test_framebuffer_check_src_coords ========== [13:04:22] [PASSED] Success: source fits into fb [13:04:22] [PASSED] Fail: overflowing fb with x-axis coordinate [13:04:22] [PASSED] Fail: overflowing fb with y-axis coordinate [13:04:22] [PASSED] Fail: overflowing fb with source width [13:04:22] [PASSED] Fail: overflowing fb with source height [13:04:22] ====== [PASSED] drm_test_framebuffer_check_src_coords ====== [13:04:22] [PASSED] drm_test_framebuffer_cleanup [13:04:22] =============== drm_test_framebuffer_create =============== [13:04:22] [PASSED] ABGR8888 normal sizes [13:04:22] [PASSED] ABGR8888 max sizes [13:04:22] [PASSED] ABGR8888 pitch greater than min required [13:04:22] [PASSED] ABGR8888 pitch less than min required [13:04:22] [PASSED] ABGR8888 Invalid width [13:04:22] [PASSED] ABGR8888 Invalid buffer handle [13:04:22] [PASSED] No pixel format [13:04:22] [PASSED] ABGR8888 Width 0 [13:04:22] [PASSED] ABGR8888 Height 0 [13:04:22] [PASSED] ABGR8888 Out of bound height * pitch combination [13:04:22] [PASSED] ABGR8888 Large buffer offset [13:04:22] [PASSED] ABGR8888 Buffer offset for inexistent plane [13:04:22] [PASSED] ABGR8888 Invalid flag [13:04:22] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers [13:04:22] [PASSED] ABGR8888 Valid buffer modifier [13:04:22] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE) [13:04:22] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS [13:04:22] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS [13:04:22] [PASSED] NV12 Normal sizes [13:04:22] [PASSED] NV12 Max sizes [13:04:22] [PASSED] NV12 Invalid pitch [13:04:22] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag [13:04:22] [PASSED] NV12 different modifier per-plane [13:04:22] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE [13:04:22] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS [13:04:22] [PASSED] NV12 Modifier for inexistent plane [13:04:22] [PASSED] NV12 Handle for inexistent plane [13:04:22] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS [13:04:22] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier [13:04:22] [PASSED] YVU420 Normal sizes [13:04:22] [PASSED] YVU420 Max sizes [13:04:22] [PASSED] YVU420 Invalid pitch [13:04:22] [PASSED] YVU420 Different pitches [13:04:22] [PASSED] YVU420 Different buffer offsets/pitches [13:04:22] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS [13:04:22] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS [13:04:22] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS [13:04:22] [PASSED] YVU420 Valid modifier [13:04:22] [PASSED] YVU420 Different modifiers per plane [13:04:22] [PASSED] YVU420 Modifier for inexistent plane [13:04:22] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR) [13:04:22] [PASSED] X0L2 Normal sizes [13:04:22] [PASSED] X0L2 Max sizes [13:04:22] [PASSED] X0L2 Invalid pitch [13:04:22] [PASSED] X0L2 Pitch greater than minimum required [13:04:22] [PASSED] X0L2 Handle for inexistent plane [13:04:22] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set [13:04:22] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set [13:04:22] [PASSED] X0L2 Valid modifier [13:04:22] [PASSED] X0L2 Modifier for inexistent plane [13:04:22] =========== [PASSED] drm_test_framebuffer_create =========== [13:04:22] [PASSED] drm_test_framebuffer_free [13:04:22] [PASSED] drm_test_framebuffer_init [13:04:22] [PASSED] drm_test_framebuffer_init_bad_format [13:04:22] [PASSED] drm_test_framebuffer_init_dev_mismatch [13:04:22] [PASSED] drm_test_framebuffer_lookup [13:04:22] [PASSED] drm_test_framebuffer_lookup_inexistent [13:04:22] [PASSED] drm_test_framebuffer_modifiers_not_supported [13:04:22] ================= [PASSED] drm_framebuffer ================= [13:04:22] ================ drm_gem_shmem (8 subtests) ================ [13:04:22] [PASSED] drm_gem_shmem_test_obj_create [13:04:22] [PASSED] drm_gem_shmem_test_obj_create_private [13:04:22] [PASSED] drm_gem_shmem_test_pin_pages [13:04:22] [PASSED] drm_gem_shmem_test_vmap [13:04:22] [PASSED] drm_gem_shmem_test_get_sg_table [13:04:22] [PASSED] drm_gem_shmem_test_get_pages_sgt [13:04:22] [PASSED] drm_gem_shmem_test_madvise [13:04:22] [PASSED] drm_gem_shmem_test_purge [13:04:22] ================== [PASSED] drm_gem_shmem ================== [13:04:22] === drm_atomic_helper_connector_hdmi_check (29 subtests) === [13:04:22] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode [13:04:22] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1 [13:04:22] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode [13:04:22] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1 [13:04:22] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode [13:04:22] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1 [13:04:22] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 ======= [13:04:22] [PASSED] Automatic [13:04:22] [PASSED] Full [13:04:22] [PASSED] Limited 16:235 [13:04:22] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 === [13:04:22] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed [13:04:22] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed [13:04:22] [PASSED] drm_test_check_disable_connector [13:04:22] [PASSED] drm_test_check_hdmi_funcs_reject_rate [13:04:22] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb [13:04:22] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420 [13:04:22] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422 [13:04:22] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420 [13:04:22] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420 [13:04:22] [PASSED] drm_test_check_output_bpc_crtc_mode_changed [13:04:22] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed [13:04:22] [PASSED] drm_test_check_output_bpc_dvi [13:04:22] [PASSED] drm_test_check_output_bpc_format_vic_1 [13:04:22] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only [13:04:22] [PASSED] drm_test_check_output_bpc_format_display_rgb_only [13:04:22] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only [13:04:22] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only [13:04:22] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc [13:04:22] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc [13:04:22] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc [13:04:22] ============ drm_test_check_hdmi_color_format ============= [13:04:22] [PASSED] AUTO -> RGB [13:04:22] [PASSED] YCBCR422 -> YUV422 [13:04:22] [PASSED] YCBCR420 -> YUV420 [13:04:22] [PASSED] YCBCR444 -> YUV444 [13:04:22] [PASSED] RGB -> RGB [13:04:22] ======== [PASSED] drm_test_check_hdmi_color_format ========= [13:04:22] ======== drm_test_check_hdmi_color_format_420_only ======== [13:04:22] [PASSED] RGB should fail [13:04:22] [PASSED] YUV444 should fail [13:04:22] [PASSED] YUV422 should fail [13:04:22] [PASSED] YUV420 should work [13:04:22] ==== [PASSED] drm_test_check_hdmi_color_format_420_only ==== [13:04:22] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ====== [13:04:22] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ==== [13:04:22] [PASSED] drm_test_check_broadcast_rgb_value [13:04:22] [PASSED] drm_test_check_bpc_8_value [13:04:22] [PASSED] drm_test_check_bpc_10_value [13:04:22] [PASSED] drm_test_check_bpc_12_value [13:04:22] [PASSED] drm_test_check_format_value [13:04:22] [PASSED] drm_test_check_tmds_char_value [13:04:22] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ====== [13:04:22] = drm_atomic_helper_connector_hdmi_mode_valid (7 subtests) = [13:04:22] [PASSED] drm_test_check_mode_valid [13:04:22] [PASSED] drm_test_check_mode_valid_reject [13:04:22] [PASSED] drm_test_check_mode_valid_reject_rate [13:04:22] [PASSED] drm_test_check_mode_valid_reject_max_clock [13:04:22] [PASSED] drm_test_check_mode_valid_yuv420_only_max_clock [13:04:22] [PASSED] drm_test_check_mode_valid_reject_yuv420_only_connector [13:04:22] [PASSED] drm_test_check_mode_valid_accept_yuv420_also_connector_rgb [13:04:22] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid === [13:04:22] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) = [13:04:22] [PASSED] drm_test_check_infoframes [13:04:22] [PASSED] drm_test_check_reject_avi_infoframe [13:04:22] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8 [13:04:22] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10 [13:04:22] [PASSED] drm_test_check_reject_audio_infoframe [13:04:22] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes === [13:04:22] ================= drm_managed (2 subtests) ================= [13:04:22] [PASSED] drm_test_managed_release_action [13:04:22] [PASSED] drm_test_managed_run_action [13:04:22] =================== [PASSED] drm_managed =================== [13:04:22] =================== drm_mm (6 subtests) ==================== [13:04:22] [PASSED] drm_test_mm_init [13:04:22] [PASSED] drm_test_mm_debug [13:04:22] [PASSED] drm_test_mm_align32 [13:04:22] [PASSED] drm_test_mm_align64 [13:04:22] [PASSED] drm_test_mm_lowest [13:04:22] [PASSED] drm_test_mm_highest [13:04:22] ===================== [PASSED] drm_mm ====================== [13:04:22] ============= drm_modes_analog_tv (5 subtests) ============= [13:04:22] [PASSED] drm_test_modes_analog_tv_mono_576i [13:04:22] [PASSED] drm_test_modes_analog_tv_ntsc_480i [13:04:22] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined [13:04:22] [PASSED] drm_test_modes_analog_tv_pal_576i [13:04:22] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined [13:04:22] =============== [PASSED] drm_modes_analog_tv =============== [13:04:22] ============== drm_panic_helper (3 subtests) =============== [13:04:22] ============= drm_test_panic_screen_user_map ============== [13:04:22] [PASSED] Panic screen user, mode: 1024 x 768 XR24 little-endian (0x34325258) [13:04:22] [PASSED] Panic screen user, mode: 494 x 494 XR24 little-endian (0x34325258) [13:04:22] [PASSED] Panic screen user, mode: 1920 x 1080 XR24 little-endian (0x34325258) [13:04:22] [PASSED] Panic screen user, mode: 1024 x 768 RG16 little-endian (0x36314752) [13:04:22] [PASSED] Panic screen user, mode: 1024 x 768 RG24 little-endian (0x34324752) [13:04:22] [PASSED] Panic screen kmsg, mode: 1024 x 768 XR24 little-endian (0x34325258) [13:04:22] [PASSED] Panic screen kmsg, mode: 494 x 494 XR24 little-endian (0x34325258) [13:04:22] [PASSED] Panic screen kmsg, mode: 1920 x 1080 XR24 little-endian (0x34325258) [13:04:22] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG16 little-endian (0x36314752) [13:04:22] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG24 little-endian (0x34324752) [13:04:22] ========= [PASSED] drm_test_panic_screen_user_map ========== [13:04:22] ============= drm_test_panic_screen_user_page ============= [13:04:22] [PASSED] Panic screen user, mode: 1024 x 768 XR24 little-endian (0x34325258) [13:04:22] [PASSED] Panic screen user, mode: 494 x 494 XR24 little-endian (0x34325258) [13:04:22] [PASSED] Panic screen user, mode: 1920 x 1080 XR24 little-endian (0x34325258) [13:04:22] [PASSED] Panic screen user, mode: 1024 x 768 RG16 little-endian (0x36314752) [13:04:22] [PASSED] Panic screen user, mode: 1024 x 768 RG24 little-endian (0x34324752) [13:04:22] [PASSED] Panic screen kmsg, mode: 1024 x 768 XR24 little-endian (0x34325258) [13:04:22] [PASSED] Panic screen kmsg, mode: 494 x 494 XR24 little-endian (0x34325258) [13:04:22] [PASSED] Panic screen kmsg, mode: 1920 x 1080 XR24 little-endian (0x34325258) [13:04:22] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG16 little-endian (0x36314752) [13:04:22] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG24 little-endian (0x34324752) [13:04:22] ========= [PASSED] drm_test_panic_screen_user_page ========= [13:04:22] ========== drm_test_panic_screen_user_set_pixel =========== [13:04:22] [PASSED] Panic screen user, mode: 1024 x 768 XR24 little-endian (0x34325258) [13:04:22] [PASSED] Panic screen user, mode: 494 x 494 XR24 little-endian (0x34325258) [13:04:22] [PASSED] Panic screen user, mode: 1920 x 1080 XR24 little-endian (0x34325258) [13:04:22] [PASSED] Panic screen user, mode: 1024 x 768 RG16 little-endian (0x36314752) [13:04:22] [PASSED] Panic screen user, mode: 1024 x 768 RG24 little-endian (0x34324752) [13:04:22] [PASSED] Panic screen kmsg, mode: 1024 x 768 XR24 little-endian (0x34325258) [13:04:22] [PASSED] Panic screen kmsg, mode: 494 x 494 XR24 little-endian (0x34325258) [13:04:22] [PASSED] Panic screen kmsg, mode: 1920 x 1080 XR24 little-endian (0x34325258) [13:04:22] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG16 little-endian (0x36314752) [13:04:22] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG24 little-endian (0x34324752) [13:04:22] ====== [PASSED] drm_test_panic_screen_user_set_pixel ======= [13:04:22] ================ [PASSED] drm_panic_helper ================= [13:04:22] ============== drm_plane_helper (2 subtests) =============== [13:04:22] =============== drm_test_check_plane_state ================ [13:04:22] [PASSED] clipping_simple [13:04:22] [PASSED] clipping_rotate_reflect [13:04:22] [PASSED] positioning_simple [13:04:22] [PASSED] upscaling [13:04:22] [PASSED] downscaling [13:04:22] [PASSED] rounding1 [13:04:22] [PASSED] rounding2 [13:04:22] [PASSED] rounding3 [13:04:22] [PASSED] rounding4 [13:04:22] =========== [PASSED] drm_test_check_plane_state ============ [13:04:22] =========== drm_test_check_invalid_plane_state ============ [13:04:22] [PASSED] positioning_invalid [13:04:22] [PASSED] upscaling_invalid [13:04:22] [PASSED] downscaling_invalid [13:04:22] ======= [PASSED] drm_test_check_invalid_plane_state ======== [13:04:22] ================ [PASSED] drm_plane_helper ================= [13:04:22] ====== drm_connector_helper_tv_get_modes (1 subtest) ======= [13:04:22] ====== drm_test_connector_helper_tv_get_modes_check ======= [13:04:22] [PASSED] None [13:04:22] [PASSED] PAL [13:04:22] [PASSED] NTSC [13:04:22] [PASSED] Both, NTSC Default [13:04:22] [PASSED] Both, PAL Default [13:04:22] [PASSED] Both, NTSC Default, with PAL on command-line [13:04:22] [PASSED] Both, PAL Default, with NTSC on command-line [13:04:22] == [PASSED] drm_test_connector_helper_tv_get_modes_check === [13:04:22] ======== [PASSED] drm_connector_helper_tv_get_modes ======== [13:04:22] ================== drm_rect (9 subtests) =================== [13:04:22] [PASSED] drm_test_rect_clip_scaled_div_by_zero [13:04:22] [PASSED] drm_test_rect_clip_scaled_not_clipped [13:04:22] [PASSED] drm_test_rect_clip_scaled_clipped [13:04:22] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned [13:04:22] ================= drm_test_rect_intersect ================= [13:04:22] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0 [13:04:22] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1 [13:04:22] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0 [13:04:22] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1 [13:04:22] [PASSED] right x left: 2x1+0+0 x 3x1+1+0 [13:04:22] [PASSED] left x right: 3x1+1+0 x 2x1+0+0 [13:04:22] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1 [13:04:22] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0 [13:04:22] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1 [13:04:22] [PASSED] touching side: 1x1+0+0 x 1x1+1+0 [13:04:22] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0 [13:04:22] [PASSED] inside another: 2x2+0+0 x 1x1+1+1 [13:04:22] [PASSED] far away: 1x1+0+0 x 1x1+3+6 [13:04:22] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10 [13:04:22] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10 [13:04:22] ============= [PASSED] drm_test_rect_intersect ============= [13:04:22] ================ drm_test_rect_calc_hscale ================ [13:04:22] [PASSED] normal use [13:04:22] [PASSED] out of max range [13:04:22] [PASSED] out of min range [13:04:22] [PASSED] zero dst [13:04:22] [PASSED] negative src [13:04:22] [PASSED] negative dst [13:04:22] ============ [PASSED] drm_test_rect_calc_hscale ============ [13:04:22] ================ drm_test_rect_calc_vscale ================ [13:04:22] [PASSED] normal use [13:04:22] [PASSED] out of max range [13:04:22] [PASSED] out of min range [13:04:22] [PASSED] zero dst [13:04:22] [PASSED] negative src [13:04:22] [PASSED] negative dst [13:04:22] ============ [PASSED] drm_test_rect_calc_vscale ============ [13:04:22] ================== drm_test_rect_rotate =================== [13:04:22] [PASSED] reflect-x [13:04:22] [PASSED] reflect-y [13:04:22] [PASSED] rotate-0 [13:04:22] [PASSED] rotate-90 [13:04:22] [PASSED] rotate-180 [13:04:22] [PASSED] rotate-270 [13:04:22] ============== [PASSED] drm_test_rect_rotate =============== [13:04:22] ================ drm_test_rect_rotate_inv ================= [13:04:22] [PASSED] reflect-x [13:04:22] [PASSED] reflect-y [13:04:22] [PASSED] rotate-0 [13:04:22] [PASSED] rotate-90 [13:04:22] [PASSED] rotate-180 [13:04:22] [PASSED] rotate-270 [13:04:22] ============ [PASSED] drm_test_rect_rotate_inv ============= [13:04:22] ==================== [PASSED] drm_rect ===================== [13:04:22] ============ drm_sysfb_modeset_test (1 subtest) ============ [13:04:22] ============ drm_test_sysfb_build_fourcc_list ============= [13:04:22] [PASSED] no native formats [13:04:22] [PASSED] XRGB8888 as native format [13:04:22] [PASSED] remove duplicates [13:04:22] [PASSED] convert alpha formats [13:04:22] [PASSED] random formats [13:04:22] ======== [PASSED] drm_test_sysfb_build_fourcc_list ========= [13:04:22] ============= [PASSED] drm_sysfb_modeset_test ============== [13:04:22] ================== drm_fixp (2 subtests) =================== [13:04:22] [PASSED] drm_test_int2fixp [13:04:22] [PASSED] drm_test_sm2fixp [13:04:22] ==================== [PASSED] drm_fixp ===================== [13:04:22] ============================================================ [13:04:22] Testing complete. Ran 671 tests: passed: 671 [13:04:22] Elapsed time: 27.901s total, 1.790s configuring, 25.647s building, 0.413s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig [13:04:22] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig [13:04:24] 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 [13:04:34] Starting KUnit Kernel (1/1)... [13:04:34] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [13:04:34] ============= refcount_interrupt (4 subtests) ============== [13:04:34] [PASSED] test_single_irq_change [13:04:34] [PASSED] test_nested_irq_change [13:04:34] [PASSED] test_multiple_irq_change [13:04:34] [PASSED] test_irq_save [13:04:34] =============== [PASSED] refcount_interrupt ================ [13:04:34] ================= ttm_device (5 subtests) ================== [13:04:34] [PASSED] ttm_device_init_basic [13:04:34] [PASSED] ttm_device_init_multiple [13:04:34] [PASSED] ttm_device_fini_basic [13:04:34] [PASSED] ttm_device_init_no_vma_man [13:04:34] ================== ttm_device_init_pools ================== [13:04:34] [PASSED] No DMA allocations, no DMA32 required [13:04:34] [PASSED] DMA allocations, DMA32 required [13:04:34] [PASSED] No DMA allocations, DMA32 required [13:04:34] [PASSED] DMA allocations, no DMA32 required [13:04:34] ============== [PASSED] ttm_device_init_pools ============== [13:04:34] =================== [PASSED] ttm_device ==================== [13:04:34] ================== ttm_pool (8 subtests) =================== [13:04:34] ================== ttm_pool_alloc_basic =================== [13:04:34] [PASSED] One page [13:04:34] [PASSED] More than one page [13:04:34] [PASSED] Above the allocation limit [13:04:34] [PASSED] One page, with coherent DMA mappings enabled [13:04:34] [PASSED] Above the allocation limit, with coherent DMA mappings enabled [13:04:34] ============== [PASSED] ttm_pool_alloc_basic =============== [13:04:34] ============== ttm_pool_alloc_basic_dma_addr ============== [13:04:34] [PASSED] One page [13:04:34] [PASSED] More than one page [13:04:34] [PASSED] Above the allocation limit [13:04:34] [PASSED] One page, with coherent DMA mappings enabled [13:04:34] [PASSED] Above the allocation limit, with coherent DMA mappings enabled [13:04:34] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ========== [13:04:34] [PASSED] ttm_pool_alloc_order_caching_match [13:04:34] [PASSED] ttm_pool_alloc_caching_mismatch [13:04:34] [PASSED] ttm_pool_alloc_order_mismatch [13:04:34] [PASSED] ttm_pool_free_dma_alloc [13:04:34] [PASSED] ttm_pool_free_no_dma_alloc [13:04:34] [PASSED] ttm_pool_fini_basic [13:04:34] ==================== [PASSED] ttm_pool ===================== [13:04:34] ================ ttm_resource (8 subtests) ================= [13:04:34] ================= ttm_resource_init_basic ================= [13:04:34] [PASSED] Init resource in TTM_PL_SYSTEM [13:04:34] [PASSED] Init resource in TTM_PL_VRAM [13:04:34] [PASSED] Init resource in a private placement [13:04:34] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags [13:04:34] ============= [PASSED] ttm_resource_init_basic ============= [13:04:34] [PASSED] ttm_resource_init_pinned [13:04:34] [PASSED] ttm_resource_fini_basic [13:04:34] [PASSED] ttm_resource_manager_init_basic [13:04:34] [PASSED] ttm_resource_manager_usage_basic [13:04:34] [PASSED] ttm_resource_manager_set_used_basic [13:04:34] [PASSED] ttm_sys_man_alloc_basic [13:04:34] [PASSED] ttm_sys_man_free_basic [13:04:34] ================== [PASSED] ttm_resource =================== [13:04:34] =================== ttm_tt (15 subtests) =================== [13:04:34] ==================== ttm_tt_init_basic ==================== [13:04:34] [PASSED] Page-aligned size [13:04:34] [PASSED] Extra pages requested [13:04:34] ================ [PASSED] ttm_tt_init_basic ================ [13:04:34] [PASSED] ttm_tt_init_misaligned [13:04:34] [PASSED] ttm_tt_fini_basic [13:04:34] [PASSED] ttm_tt_fini_sg [13:04:34] [PASSED] ttm_tt_fini_shmem [13:04:34] [PASSED] ttm_tt_create_basic [13:04:34] [PASSED] ttm_tt_create_invalid_bo_type [13:04:34] [PASSED] ttm_tt_create_ttm_exists [13:04:34] [PASSED] ttm_tt_create_failed [13:04:34] [PASSED] ttm_tt_destroy_basic [13:04:34] [PASSED] ttm_tt_populate_null_ttm [13:04:34] [PASSED] ttm_tt_populate_populated_ttm [13:04:34] [PASSED] ttm_tt_unpopulate_basic [13:04:34] [PASSED] ttm_tt_unpopulate_empty_ttm [13:04:34] [PASSED] ttm_tt_swapin_basic [13:04:34] ===================== [PASSED] ttm_tt ====================== [13:04:34] =================== ttm_bo (14 subtests) =================== [13:04:34] =========== ttm_bo_reserve_optimistic_no_ticket =========== [13:04:34] [PASSED] Cannot be interrupted and sleeps [13:04:34] [PASSED] Cannot be interrupted, locks straight away [13:04:34] [PASSED] Can be interrupted, sleeps [13:04:34] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket ======= [13:04:34] [PASSED] ttm_bo_reserve_locked_no_sleep [13:04:34] [PASSED] ttm_bo_reserve_no_wait_ticket [13:04:34] [PASSED] ttm_bo_reserve_double_resv [13:04:34] [PASSED] ttm_bo_reserve_interrupted [13:04:34] [PASSED] ttm_bo_reserve_deadlock [13:04:34] [PASSED] ttm_bo_unreserve_basic [13:04:34] [PASSED] ttm_bo_unreserve_pinned [13:04:34] [PASSED] ttm_bo_unreserve_bulk [13:04:34] [PASSED] ttm_bo_fini_basic [13:04:34] [PASSED] ttm_bo_fini_shared_resv [13:04:34] [PASSED] ttm_bo_pin_basic [13:04:34] [PASSED] ttm_bo_pin_unpin_resource [13:04:34] [PASSED] ttm_bo_multiple_pin_one_unpin [13:04:34] ===================== [PASSED] ttm_bo ====================== [13:04:34] ============== ttm_bo_validate (22 subtests) =============== [13:04:34] ============== ttm_bo_init_reserved_sys_man =============== [13:04:34] [PASSED] Buffer object for userspace [13:04:34] [PASSED] Kernel buffer object [13:04:34] [PASSED] Shared buffer object [13:04:34] ========== [PASSED] ttm_bo_init_reserved_sys_man =========== [13:04:34] ============== ttm_bo_init_reserved_mock_man ============== [13:04:34] [PASSED] Buffer object for userspace [13:04:34] [PASSED] Kernel buffer object [13:04:34] [PASSED] Shared buffer object [13:04:34] ========== [PASSED] ttm_bo_init_reserved_mock_man ========== [13:04:34] [PASSED] ttm_bo_init_reserved_resv [13:04:34] ================== ttm_bo_validate_basic ================== [13:04:34] [PASSED] Buffer object for userspace [13:04:34] [PASSED] Kernel buffer object [13:04:34] [PASSED] Shared buffer object [13:04:34] ============== [PASSED] ttm_bo_validate_basic ============== [13:04:34] [PASSED] ttm_bo_validate_invalid_placement [13:04:34] ============= ttm_bo_validate_same_placement ============== [13:04:34] [PASSED] System manager [13:04:34] [PASSED] VRAM manager [13:04:34] ========= [PASSED] ttm_bo_validate_same_placement ========== [13:04:34] [PASSED] ttm_bo_validate_failed_alloc [13:04:34] [PASSED] ttm_bo_validate_pinned [13:04:34] [PASSED] ttm_bo_validate_busy_placement [13:04:34] ================ ttm_bo_validate_multihop ================= [13:04:34] [PASSED] Buffer object for userspace [13:04:34] [PASSED] Kernel buffer object [13:04:34] [PASSED] Shared buffer object [13:04:34] ============ [PASSED] ttm_bo_validate_multihop ============= [13:04:34] ========== ttm_bo_validate_no_placement_signaled ========== [13:04:34] [PASSED] Buffer object in system domain, no page vector [13:04:34] [PASSED] Buffer object in system domain with an existing page vector [13:04:34] ====== [PASSED] ttm_bo_validate_no_placement_signaled ====== [13:04:34] ======== ttm_bo_validate_no_placement_not_signaled ======== [13:04:34] [PASSED] Buffer object for userspace [13:04:34] [PASSED] Kernel buffer object [13:04:34] [PASSED] Shared buffer object [13:04:34] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ==== [13:04:34] [PASSED] ttm_bo_validate_move_fence_signaled [13:04:34] ========= ttm_bo_validate_move_fence_not_signaled ========= [13:04:34] [PASSED] Waits for GPU [13:04:34] [PASSED] Tries to lock straight away [13:04:34] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled ===== [13:04:34] [PASSED] ttm_bo_validate_swapout [13:04:34] [PASSED] ttm_bo_validate_happy_evict [13:04:34] [PASSED] ttm_bo_validate_all_pinned_evict [13:04:34] [PASSED] ttm_bo_validate_allowed_only_evict [13:04:34] [PASSED] ttm_bo_validate_deleted_evict [13:04:34] [PASSED] ttm_bo_validate_busy_domain_evict [13:04:34] [PASSED] ttm_bo_validate_evict_gutting [13:04:34] [PASSED] ttm_bo_validate_recrusive_evict [13:04:34] ================= [PASSED] ttm_bo_validate ================= [13:04:34] ============================================================ [13:04:34] Testing complete. Ran 106 tests: passed: 106 [13:04:34] Elapsed time: 12.400s total, 1.775s configuring, 10.410s building, 0.176s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/dma-buf/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/dma-buf/.kunitconfig [13:04:35] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig [13:04:36] 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 [13:04:45] Starting KUnit Kernel (1/1)... [13:04:45] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [13:04:45] ============= refcount_interrupt (4 subtests) ============== [13:04:45] [PASSED] test_single_irq_change [13:04:45] [PASSED] test_nested_irq_change [13:04:45] [PASSED] test_multiple_irq_change [13:04:45] [PASSED] test_irq_save [13:04:45] =============== [PASSED] refcount_interrupt ================ [13:04:45] =============== dma-buf-fence (12 subtests) ================ [13:04:45] [PASSED] test_sanitycheck [13:04:45] [PASSED] test_signaling [13:04:45] [PASSED] test_add_callback [13:04:45] [PASSED] test_late_add_callback [13:04:45] [PASSED] test_rm_callback [13:04:45] [PASSED] test_late_rm_callback [13:04:45] [PASSED] test_status [13:04:45] [PASSED] test_error [13:04:45] [PASSED] test_wait [13:04:45] [PASSED] test_wait_timeout [13:04:45] [PASSED] test_stub [13:04:45] [SKIPPED] test_race_signal_callback (requires at least 2 CPUs) [13:04:45] ================== [PASSED] dma-buf-fence ================== [13:04:45] ============ dma-buf-fence-chain (11 subtests) ============= [13:04:45] [PASSED] test_sanitycheck [13:04:45] [PASSED] test_find_seqno [13:04:45] [PASSED] test_find_signaled [13:04:45] [PASSED] test_find_out_of_order [13:04:50] [PASSED] test_find_gap [13:04:50] [PASSED] test_find_race [13:04:50] [PASSED] test_signal_forward [13:04:50] [PASSED] test_signal_backward [13:04:50] [PASSED] test_wait_forward [13:04:50] [PASSED] test_wait_backward [13:04:50] [PASSED] test_wait_random [13:04:50] =============== [PASSED] dma-buf-fence-chain =============== [13:04:50] ============ dma-buf-fence-unwrap (10 subtests) ============ [13:04:50] [PASSED] test_sanitycheck [13:04:50] [PASSED] test_unwrap_array [13:04:50] [PASSED] test_unwrap_chain [13:04:50] [PASSED] test_unwrap_chain_array [13:04:50] [PASSED] test_unwrap_merge [13:04:50] [PASSED] test_unwrap_merge_duplicate [13:04:50] [PASSED] test_unwrap_merge_seqno [13:04:50] [PASSED] test_unwrap_merge_order [13:04:50] [PASSED] test_unwrap_merge_complex [13:04:50] [PASSED] test_unwrap_merge_complex_seqno [13:04:50] ============== [PASSED] dma-buf-fence-unwrap =============== [13:04:50] ================ dma-buf-resv (5 subtests) ================= [13:04:50] [PASSED] test_sanitycheck [13:04:50] ===================== test_signaling ====================== [13:04:50] [PASSED] kernel [13:04:50] [PASSED] write [13:04:50] [PASSED] read [13:04:50] [PASSED] bookkeep [13:04:50] ================= [PASSED] test_signaling ================== [13:04:50] ====================== test_for_each ====================== [13:04:50] [PASSED] kernel [13:04:50] [PASSED] write [13:04:50] [PASSED] read [13:04:50] [PASSED] bookkeep [13:04:50] ================== [PASSED] test_for_each ================== [13:04:50] ================= test_for_each_unlocked ================== [13:04:50] [PASSED] kernel [13:04:50] [PASSED] write [13:04:50] [PASSED] read [13:04:50] [PASSED] bookkeep [13:04:50] ============= [PASSED] test_for_each_unlocked ============== [13:04:50] ===================== test_get_fences ===================== [13:04:50] [PASSED] kernel [13:04:50] [PASSED] write [13:04:50] [PASSED] read [13:04:50] [PASSED] bookkeep [13:04:50] ================= [PASSED] test_get_fences ================= [13:04:50] ================== [PASSED] dma-buf-resv =================== [13:04:50] ============================================================ [13:04:50] Testing complete. Ran 54 tests: passed: 53, skipped: 1 [13:04:50] Elapsed time: 15.864s total, 1.820s configuring, 8.771s building, 5.259s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
Hello Bjorn,
Quoted 50 lines · Benjamin Block
This is the continuation and combination of two patchsets from earlier
this year that try to fix races and various deadlocks involving the
global mutexpci_rescan_remove_owner:
https://lore.kernel.org/linux-pci/cover.1776839248.git.ionut.nechita%40windriver.com/ [v14]
https://lore.kernel.org/linux-pci/cover.1776868550.git.bblock%40linux.ibm.com/ [v4]Since we couldn't make any progress since then I decided to rebase and combine them, hoping this would "revitalize" the topic.
v14 -> v15:
* Rebased the patchset on v7.3-rc4
* Patch 1/5: changed type ofpci_rescan_remove_depthtosize_t
* Patch 1/5: changed accesses ofpci_rescan_remove_ownerto useREAD_ONCE()and/orWRITE_ONCE()since they might happen outside of the lock, and so might be subject to tearing or some such
* Patch 1/5: added comments clarifying that access topci_rescan_remove_depthis always protected bypci_rescan_remove_lock
* Patch 1/5: since the only Reviewed-by was by myself on the last iteration I removed it
* Patch 5/5: fixed a bug with the use ofscoped_guard()inswitchstatements ->breakdoesn't work as it seems it should, becausescoped_guard()is implemented asforstatement
* Patch 5/5: fixed a bug inrecover_store()where it wouldn't reverse the call tosysfs_break_active_protection()in case of an early error-return
* Patch 5/5: since I had to make these bug-fixes I removed Niklas' Reviewed-byOverview:
Patch 1/5: Fixes a regression introduced by
05703271c3cd("PCI/IOV: Add PCI rescan-remove locking when enabling/disabling SR-IOV") that moves the locking ofpci_rescan_remove_lockto a higher
level in the call-chain when enabling/disabling SR-IOV, but by
doing so removed it entirely from the driver's .remove() call-back call-chain.
To add the lock back into that call-chain and also prevent
resulting recursive deadlocks make the lock reentrant via the
existing functions pci_lock_rescan_remove()/pci_unlock_rescan_remove().
Patch 2/5: With the locking back in the .remove() call-back call-chain
it is now possible to trigger an AB-BA deadlock between device
driver unbinds and concurrent PCI device removes. Fix this by unbinding the device driver before starting PCI device
removal (and lockingpci_rescan_remove_lock).
Patch 3/5: In order to use annotations like__must_hold()or assertions
likelockdep_assert_held()onpci_rescan_remove_lockin
code outside the PCI core (such as PCI architecture
implementations) move its declaration to the globallinux/pci.h.
This doesn't increase the "surface" from where it is possible
Quoted 8 lines
to use the lock, since it is already possible today to grab the lock from said code with the functions pci_lock_rescan_remove()/pci_unlock_rescan_remove().
Patch 4/5: Provide a lock guard forpci_rescan_remove_lockso it is
possible to be used in thelinux/cleanup.hmacros.
Patch 5/5: Fix several AB-BA deadlocks in the s390 PCI implementation
involvingpci_rescan_remove_lockby moving the lock to higher levels in the respective call-chains.
is there any feedback from you for this? How can we make progress with this problem?
Last I checked Sashiko had no more complaints about this patch-set, and I also didn't get any other feedback - negative or positive.
Especially the bugs this series fixes in Patch 5 are a serious concern for us on s390, and it's basically been stalled for over half a year now. I need some form of feedback whether this approach has any chance of getting accepted, or whether and why it has not; so that we can look for alternatives if necessary.
Signature · 4 lines
Best Regards, Benjamin Block / Linux on IBM Z Kernel Development IBM Deutschland Research & Development GmbH / https://www.ibm.com/privacy Vors. Aufs.-R.: Wolfgang Wendt / Geschäftsführung: David Faller Sitz der Ges.: Ehningen / Registergericht: AmtsG Stuttgart, HRB 243294